blob: d53b52f887dd73a2ce3dda75a9267234470d0d68 [file] [log] [blame]
/* Replayable replacements for global functions */
/***************************************************************
* BEGIN STABLE.JS
**************************************************************/
//! stable.js 0.1.3, https://github.com/Two-Screen/stable
//! © 2012 Stéphan Kochen, Angry Bytes. MIT licensed.
(function() {
// A stable array sort, because `Array#sort()` is not guaranteed stable.
// This is an implementation of merge sort, without recursion.
var stable = function(arr, comp) {
if (typeof(comp) !== 'function') {
comp = function(a, b) {
a = String(a);
b = String(b);
if (a < b) return -1;
if (a > b) return 1;
return 0;
};
}
var len = arr.length;
if (len <= 1) return arr;
// Rather than dividing input, simply iterate chunks of 1, 2, 4, 8, etc.
// Chunks are the size of the left or right hand in merge sort.
// Stop when the left-hand covers all of the array.
var oarr = arr;
for (var chk = 1; chk < len; chk *= 2) {
arr = pass(arr, comp, chk);
}
for (var i = 0; i < len; i++) {
oarr[i] = arr[i];
}
return oarr;
};
// Run a single pass with the given chunk size. Returns a new array.
var pass = function(arr, comp, chk) {
var len = arr.length;
// Output, and position.
var result = new Array(len);
var i = 0;
// Step size / double chunk size.
var dbl = chk * 2;
// Bounds of the left and right chunks.
var l, r, e;
// Iterators over the left and right chunk.
var li, ri;
// Iterate over pairs of chunks.
for (l = 0; l < len; l += dbl) {
r = l + chk;
e = r + chk;
if (r > len) r = len;
if (e > len) e = len;
// Iterate both chunks in parallel.
li = l;
ri = r;
while (true) {
// Compare the chunks.
if (li < r && ri < e) {
// This works for a regular `sort()` compatible comparator,
// but also for a simple comparator like: `a > b`
if (comp(arr[li], arr[ri]) <= 0) {
result[i++] = arr[li++];
}
else {
result[i++] = arr[ri++];
}
}
// Nothing to compare, just flush what's left.
else if (li < r) {
result[i++] = arr[li++];
}
else if (ri < e) {
result[i++] = arr[ri++];
}
// Both iterators are at the chunk ends.
else {
break;
}
}
}
return result;
};
var arrsort = function(comp) {
return stable(this, comp);
};
if (Object.defineProperty) {
Object.defineProperty(Array.prototype, "sort", {
configurable: true, writable: true, enumerable: false,
value: arrsort
});
} else {
Array.prototype.sort = arrsort;
}
})();
/***************************************************************
* END STABLE.JS
**************************************************************/
/*
* In a generated replay, this file is partially common, boilerplate code
* included in every replay, and partially generated replay code. The following
* header applies to the boilerplate code. A comment indicating "Auto-generated
* below this comment" marks the separation between these two parts.
*
* Copyright (C) 2011, 2012 Purdue University
* Written by Gregor Richards
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
(function() {
// global eval alias
var geval = eval;
// detect if we're in a browser or not
var inbrowser = false;
var inharness = false;
var finished = false;
if (typeof window !== "undefined" && "document" in window) {
inbrowser = true;
if (window.parent && "JSBNG_handleResult" in window.parent) {
inharness = true;
}
} else if (typeof global !== "undefined") {
window = global;
window.top = window;
} else {
window = (function() { return this; })();
window.top = window;
}
if ("console" in window) {
window.JSBNG_Console = window.console;
}
var callpath = [];
// global state
var JSBNG_Replay = window.top.JSBNG_Replay = {
push: function(arr, fun) {
arr.push(fun);
return fun;
},
path: function(str) {
verifyPath(str);
},
forInKeys: function(of) {
var keys = [];
for (var k in of)
keys.push(k);
return keys.sort();
}
};
var currentTimeInMS;
if (inharness) {
currentTimeInMS = window.parent.currentTimeInMS;
} else {
if (window.performance && window.performance.now)
currentTimeInMS = function() { return window.performance.now() };
else if (typeof preciseTime !== 'undefined')
currentTimeInMS = function() { return preciseTime() * 1000; };
else
currentTimeInMS = function() { return Date.now(); };
}
// the actual replay runner
function onload() {
try {
delete window.onload;
} catch (ex) {}
var jr = JSBNG_Replay$;
var cb = function() {
var end = currentTimeInMS();
finished = true;
var msg = "Time: " + (end - st) + "ms";
if (inharness) {
window.parent.JSBNG_handleResult({error:false, time:(end - st)});
} else if (inbrowser) {
var res = document.createElement("div");
res.style.position = "fixed";
res.style.left = "1em";
res.style.top = "1em";
res.style.width = "35em";
res.style.height = "5em";
res.style.padding = "1em";
res.style.backgroundColor = "white";
res.style.color = "black";
res.appendChild(document.createTextNode(msg));
document.body.appendChild(res);
} else if (typeof console !== "undefined") {
console.log(msg);
} else if (typeof print !== "undefined") {
// hopefully not the browser print() function :)
print(msg);
}
};
// force it to JIT
jr(false);
// then time it
var st = currentTimeInMS();
while (jr !== null) {
jr = jr(true, cb);
}
}
// add a frame at replay time
function iframe(pageid) {
var iw;
if (inbrowser) {
// represent the iframe as an iframe (of course)
var iframe = document.createElement("iframe");
iframe.style.display = "none";
document.body.appendChild(iframe);
iw = iframe.contentWindow;
iw.document.write("<script type=\"text/javascript\">var JSBNG_Replay_geval = eval;</script>");
iw.document.close();
} else {
// no general way, just lie and do horrible things
var topwin = window;
(function() {
var window = {};
window.window = window;
window.top = topwin;
window.JSBNG_Replay_geval = function(str) {
eval(str);
}
iw = window;
})();
}
return iw;
}
// called at the end of the replay stuff
function finalize() {
if (inbrowser) {
setTimeout(onload, 0);
} else {
onload();
}
}
// verify this recorded value and this replayed value are close enough
function verify(rep, rec) {
if (rec !== rep &&
(rep === rep || rec === rec) /* NaN test */) {
// FIXME?
if (typeof rec === "function" && typeof rep === "function") {
return true;
}
if (typeof rec !== "object" || rec === null ||
!(("__JSBNG_unknown_" + typeof(rep)) in rec)) {
return false;
}
}
return true;
}
// general message
var firstMessage = true;
function replayMessage(msg) {
if (inbrowser) {
if (firstMessage)
document.open();
firstMessage = false;
document.write(msg);
} else {
console.log(msg);
}
}
// complain when there's an error
function verificationError(msg) {
if (finished) return;
if (inharness) {
window.parent.JSBNG_handleResult({error:true, msg: msg});
} else replayMessage(msg);
throw new Error();
}
// to verify a set
function verifySet(objstr, obj, prop, gvalstr, gval) {
if (/^on/.test(prop)) {
// these aren't instrumented compatibly
return;
}
if (!verify(obj[prop], gval)) {
var bval = obj[prop];
var msg = "Verification failure! " + objstr + "." + prop + " is not " + gvalstr + ", it's " + bval + "!";
verificationError(msg);
}
}
// to verify a call or new
function verifyCall(iscall, func, cthis, cargs) {
var ok = true;
var callArgs = func.callArgs[func.inst];
iscall = iscall ? 1 : 0;
if (cargs.length !== callArgs.length - 1) {
ok = false;
} else {
if (iscall && !verify(cthis, callArgs[0])) ok = false;
for (var i = 0; i < cargs.length; i++) {
if (!verify(cargs[i], callArgs[i+1])) ok = false;
}
}
if (!ok) {
var msg = "Call verification failure!";
verificationError(msg);
}
return func.returns[func.inst++];
}
// to verify the callpath
function verifyPath(func) {
var real = callpath.shift();
if (real !== func) {
var msg = "Call path verification failure! Expected " + real + ", found " + func;
verificationError(msg);
}
}
// figure out how to define getters
var defineGetter;
if (Object.defineProperty) {
var odp = Object.defineProperty;
defineGetter = function(obj, prop, getter, setter) {
if (typeof setter === "undefined") setter = function(){};
odp(obj, prop, {"enumerable": true, "configurable": true, "get": getter, "set": setter});
};
} else if (Object.prototype.__defineGetter__) {
var opdg = Object.prototype.__defineGetter__;
var opds = Object.prototype.__defineSetter__;
defineGetter = function(obj, prop, getter, setter) {
if (typeof setter === "undefined") setter = function(){};
opdg.call(obj, prop, getter);
opds.call(obj, prop, setter);
};
} else {
defineGetter = function() {
verificationError("This replay requires getters for correct behavior, and your JS engine appears to be incapable of defining getters. Sorry!");
};
}
var defineRegetter = function(obj, prop, getter, setter) {
defineGetter(obj, prop, function() {
return getter.call(this, prop);
}, function(val) {
// once it's set by the client, it's claimed
setter.call(this, prop, val);
Object.defineProperty(obj, prop, {
"enumerable": true, "configurable": true, "writable": true,
"value": val
});
});
}
// for calling events
var fpc = Function.prototype.call;
// resist the urge, don't put a })(); here!
/******************************************************************************
* Auto-generated below this comment
*****************************************************************************/
var ow449694821 = window;
var f449694821_0;
var o0;
var o1;
var f449694821_4;
var f449694821_7;
var f449694821_16;
var f449694821_17;
var f449694821_18;
var o2;
var o3;
var o4;
var f449694821_57;
var o5;
var f449694821_64;
var f449694821_239;
var f449694821_386;
var f449694821_387;
var f449694821_388;
var f449694821_389;
var f449694821_391;
var o6;
var o7;
var f449694821_394;
var o8;
var f449694821_396;
var o9;
var f449694821_398;
var o10;
var f449694821_405;
var f449694821_406;
var o11;
var o12;
var o13;
var o14;
var o15;
var o16;
var o17;
var f449694821_419;
var o18;
var f449694821_422;
var f449694821_424;
var f449694821_427;
var f449694821_428;
var f449694821_402;
var o19;
var o20;
var o21;
var o22;
var o23;
var o24;
var o25;
var o26;
var o27;
var f449694821_443;
var f449694821_444;
var f449694821_445;
var f449694821_446;
var f449694821_450;
var o28;
var o29;
var o30;
var o31;
var o32;
var o33;
var o34;
var f449694821_466;
var o35;
var o36;
var o37;
var o38;
var o39;
var o40;
var f449694821_479;
var o41;
var o42;
var o43;
var f449694821_510;
var f449694821_511;
var f449694821_512;
var o44;
var f449694821_514;
var f449694821_516;
var f449694821_517;
var o45;
var f449694821_520;
var f449694821_521;
var f449694821_522;
var o46;
var o47;
var o48;
var o49;
var o50;
var o51;
var o52;
var o53;
var o54;
var o55;
var o56;
var o57;
var o58;
var o59;
var o60;
var o61;
var o62;
var o63;
var o64;
var f449694821_553;
var o65;
var f449694821_563;
var f449694821_566;
var f449694821_691;
var f449694821_748;
var f449694821_767;
var f449694821_770;
var f449694821_771;
var f449694821_795;
var f449694821_799;
var f449694821_800;
var f449694821_802;
var f449694821_812;
var f449694821_816;
var f449694821_818;
var f449694821_820;
var f449694821_822;
var f449694821_823;
var f449694821_824;
var f449694821_825;
var f449694821_826;
var fo449694821_803_readyState;
var f449694821_914;
var f449694821_915;
var f449694821_916;
var f449694821_917;
var f449694821_919;
var f449694821_920;
var f449694821_921;
var f449694821_922;
var o66;
var o67;
var o68;
var o69;
var o70;
var o71;
var o72;
var o73;
var o74;
var o75;
var o76;
var o77;
var o78;
var o79;
var o80;
var o81;
var o82;
var o83;
var o84;
var o85;
var o86;
var o87;
var o88;
var o89;
var o90;
var o91;
var o92;
var o93;
var o94;
var o95;
var o96;
var o97;
var o98;
var o99;
var o100;
var o101;
var o102;
var o103;
var o104;
var o105;
var o106;
var o107;
var o108;
var o109;
var o110;
var o111;
var o112;
var o113;
var o114;
var o115;
var o116;
var o117;
var o118;
var o119;
var o120;
var o121;
var o122;
var o123;
var o124;
var o125;
var o126;
var o127;
var o128;
var o129;
var o130;
var o131;
var o132;
var o133;
var o134;
var o135;
var o136;
var o137;
var o138;
var o139;
var o140;
var o141;
var o142;
var o143;
var o144;
var o145;
var o146;
var o147;
var o148;
var o149;
var o150;
var o151;
var o152;
var o153;
var o154;
var o155;
var o156;
var o157;
var o158;
var o159;
var o160;
var o161;
var o162;
var o163;
var o164;
var o165;
var o166;
var o167;
var o168;
var o169;
var o170;
var o171;
var o172;
var o173;
var o174;
var o175;
var o176;
var o177;
var o178;
var o179;
var o180;
var o181;
var o182;
var o183;
var o184;
var o185;
var o186;
var o187;
var o188;
var o189;
var o190;
var o191;
var o192;
var o193;
var o194;
var o195;
var o196;
var o197;
var o198;
var o199;
var o200;
var o201;
var o202;
var o203;
var o204;
var o205;
var o206;
var o207;
var o208;
var o209;
var o210;
var o211;
var o212;
var o213;
var o214;
var o215;
var o216;
var o217;
var o218;
var o219;
var o220;
var o221;
var o222;
var o223;
var o224;
var o225;
var o226;
var o227;
var o228;
var o229;
var o230;
var o231;
var o232;
var o233;
var o234;
var o235;
var o236;
var o237;
var o238;
var o239;
var o240;
var o241;
var o242;
var o243;
var o244;
var o245;
var o246;
var o247;
var o248;
var o249;
var o250;
var o251;
var o252;
var o253;
var o254;
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1 = [];
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_222 = [];
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190 = [];
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_278 = [];
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_376 = [];
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_378 = [];
JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_42 = [];
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_96 = [];
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_225 = [];
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39 = [];
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_226 = [];
// 1
// record generated by JSBench 8fa236f2f0ec at 2013-07-10T21:01:21.708Z
// 2
// 3
f449694821_0 = function() { return f449694821_0.returns[f449694821_0.inst++]; };
f449694821_0.returns = [];
f449694821_0.inst = 0;
// 4
ow449694821.JSBNG__Date = f449694821_0;
// 5
o0 = {};
// 6
ow449694821.JSBNG__document = o0;
// 7
o1 = {};
// 8
ow449694821.JSBNG__sessionStorage = o1;
// 11
f449694821_4 = function() { return f449694821_4.returns[f449694821_4.inst++]; };
f449694821_4.returns = [];
f449694821_4.inst = 0;
// 12
ow449694821.JSBNG__getComputedStyle = f449694821_4;
// 17
f449694821_7 = function() { return f449694821_7.returns[f449694821_7.inst++]; };
f449694821_7.returns = [];
f449694821_7.inst = 0;
// 18
ow449694821.JSBNG__addEventListener = f449694821_7;
// 19
ow449694821.JSBNG__top = ow449694821;
// 28
ow449694821.JSBNG__scrollX = 0;
// 29
ow449694821.JSBNG__scrollY = 0;
// 38
f449694821_16 = function() { return f449694821_16.returns[f449694821_16.inst++]; };
f449694821_16.returns = [];
f449694821_16.inst = 0;
// 39
ow449694821.JSBNG__setTimeout = f449694821_16;
// 40
f449694821_17 = function() { return f449694821_17.returns[f449694821_17.inst++]; };
f449694821_17.returns = [];
f449694821_17.inst = 0;
// 41
ow449694821.JSBNG__setInterval = f449694821_17;
// 42
f449694821_18 = function() { return f449694821_18.returns[f449694821_18.inst++]; };
f449694821_18.returns = [];
f449694821_18.inst = 0;
// 43
ow449694821.JSBNG__clearTimeout = f449694821_18;
// 60
ow449694821.JSBNG__frames = ow449694821;
// 63
ow449694821.JSBNG__self = ow449694821;
// 64
o2 = {};
// 65
ow449694821.JSBNG__navigator = o2;
// 68
o3 = {};
// 69
ow449694821.JSBNG__history = o3;
// 70
ow449694821.JSBNG__content = ow449694821;
// 81
ow449694821.JSBNG__closed = false;
// 84
ow449694821.JSBNG__pkcs11 = null;
// 87
ow449694821.JSBNG__opener = null;
// 88
ow449694821.JSBNG__defaultStatus = "";
// 89
o4 = {};
// 90
ow449694821.JSBNG__location = o4;
// 91
ow449694821.JSBNG__innerWidth = 994;
// 92
ow449694821.JSBNG__innerHeight = 603;
// 93
ow449694821.JSBNG__outerWidth = 994;
// 94
ow449694821.JSBNG__outerHeight = 690;
// 95
ow449694821.JSBNG__screenX = 9;
// 96
ow449694821.JSBNG__screenY = 31;
// 97
ow449694821.JSBNG__mozInnerScreenX = 0;
// 98
ow449694821.JSBNG__mozInnerScreenY = 0;
// 99
ow449694821.JSBNG__pageXOffset = 0;
// 100
ow449694821.JSBNG__pageYOffset = 0;
// 101
ow449694821.JSBNG__scrollMaxX = 0;
// 102
ow449694821.JSBNG__scrollMaxY = 0;
// 103
ow449694821.JSBNG__fullScreen = false;
// 136
ow449694821.JSBNG__frameElement = null;
// 141
ow449694821.JSBNG__mozPaintCount = 0;
// 142
f449694821_57 = function() { return f449694821_57.returns[f449694821_57.inst++]; };
f449694821_57.returns = [];
f449694821_57.inst = 0;
// 143
ow449694821.JSBNG__mozRequestAnimationFrame = f449694821_57;
// 144
ow449694821.JSBNG__mozAnimationStartTime = 1373490145767;
// 145
o5 = {};
// 146
ow449694821.JSBNG__mozIndexedDB = o5;
// 155
ow449694821.JSBNG__devicePixelRatio = 1;
// 158
f449694821_64 = function() { return f449694821_64.returns[f449694821_64.inst++]; };
f449694821_64.returns = [];
f449694821_64.inst = 0;
// 159
ow449694821.JSBNG__XMLHttpRequest = f449694821_64;
// 166
ow449694821.JSBNG__name = "";
// 173
ow449694821.JSBNG__status = "";
// 176
ow449694821.JSBNG__Components = undefined;
// 511
f449694821_239 = function() { return f449694821_239.returns[f449694821_239.inst++]; };
f449694821_239.returns = [];
f449694821_239.inst = 0;
// 512
ow449694821.JSBNG__Event = f449694821_239;
// 771
ow449694821.JSBNG__indexedDB = o5;
// undefined
o5 = null;
// 804
ow449694821.JSBNG__onerror = null;
// 807
f449694821_386 = function() { return f449694821_386.returns[f449694821_386.inst++]; };
f449694821_386.returns = [];
f449694821_386.inst = 0;
// 808
ow449694821.Math.JSBNG__random = f449694821_386;
// 809
// 813
f449694821_387 = function() { return f449694821_387.returns[f449694821_387.inst++]; };
f449694821_387.returns = [];
f449694821_387.inst = 0;
// 814
f449694821_0.now = f449694821_387;
// 815
f449694821_387.returns.push(1373490150930);
// 816
o4.search = "?sk=welcome";
// 832
// 833
// 835
f449694821_388 = function() { return f449694821_388.returns[f449694821_388.inst++]; };
f449694821_388.returns = [];
f449694821_388.inst = 0;
// 836
o0.JSBNG__addEventListener = f449694821_388;
// 837
o2.userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0";
// 839
f449694821_388.returns.push(undefined);
// 840
f449694821_389 = function() { return f449694821_389.returns[f449694821_389.inst++]; };
f449694821_389.returns = [];
f449694821_389.inst = 0;
// 841
ow449694821.JSBNG__onload = f449694821_389;
// 849
o5 = {};
// 856
o0.documentMode = void 0;
// 858
f449694821_391 = function() { return f449694821_391.returns[f449694821_391.inst++]; };
f449694821_391.returns = [];
f449694821_391.inst = 0;
// 859
o0.getElementsByTagName = f449694821_391;
// 860
o6 = {};
// 861
f449694821_391.returns.push(o6);
// 862
o6.length = 1;
// 863
o7 = {};
// 864
o6["0"] = o7;
// 865
f449694821_394 = function() { return f449694821_394.returns[f449694821_394.inst++]; };
f449694821_394.returns = [];
f449694821_394.inst = 0;
// 866
o0.createDocumentFragment = f449694821_394;
// 867
o8 = {};
// 868
f449694821_394.returns.push(o8);
// 870
f449694821_387.returns.push(1373490151003);
// 871
f449694821_396 = function() { return f449694821_396.returns[f449694821_396.inst++]; };
f449694821_396.returns = [];
f449694821_396.inst = 0;
// 872
o0.createElement = f449694821_396;
// 873
o9 = {};
// 874
f449694821_396.returns.push(o9);
// 875
// 876
// 877
// 878
// 879
// 880
// 881
f449694821_398 = function() { return f449694821_398.returns[f449694821_398.inst++]; };
f449694821_398.returns = [];
f449694821_398.inst = 0;
// 882
o8.appendChild = f449694821_398;
// 883
f449694821_398.returns.push(o9);
// 885
f449694821_387.returns.push(1373490151006);
// 887
o10 = {};
// 888
f449694821_396.returns.push(o10);
// 889
// 890
// 891
// 892
// 893
// 894
// 896
f449694821_398.returns.push(o10);
// 897
o7.appendChild = f449694821_398;
// 898
f449694821_398.returns.push(o8);
// 903
f449694821_387 = function() { return f449694821_387.returns[f449694821_387.inst++]; };
f449694821_387.returns = [];
f449694821_387.inst = 0;
// 905
f449694821_387.returns.push(1373490150930);
// 922
// 923
// 925
f449694821_388 = function() { return f449694821_388.returns[f449694821_388.inst++]; };
f449694821_388.returns = [];
f449694821_388.inst = 0;
// 929
f449694821_388.returns.push(undefined);
// 930
f449694821_389 = function() { return f449694821_389.returns[f449694821_389.inst++]; };
f449694821_389.returns = [];
f449694821_389.inst = 0;
// 939
o5 = {};
// 948
f449694821_391 = function() { return f449694821_391.returns[f449694821_391.inst++]; };
f449694821_391.returns = [];
f449694821_391.inst = 0;
// 950
o6 = {};
// 951
f449694821_391.returns.push(o6);
// 952
o6.length = 1;
// 953
o7 = {};
// 954
o6["0"] = o7;
// undefined
o6 = null;
// 955
f449694821_394 = function() { return f449694821_394.returns[f449694821_394.inst++]; };
f449694821_394.returns = [];
f449694821_394.inst = 0;
// 957
o8 = {};
// 958
f449694821_394.returns.push(o8);
// 960
f449694821_387.returns.push(1373490151003);
// 961
f449694821_396 = function() { return f449694821_396.returns[f449694821_396.inst++]; };
f449694821_396.returns = [];
f449694821_396.inst = 0;
// 963
o9 = {};
// 964
f449694821_396.returns.push(o9);
// 965
// 966
// 967
// 968
// 969
// 970
// 971
f449694821_398 = function() { return f449694821_398.returns[f449694821_398.inst++]; };
f449694821_398.returns = [];
f449694821_398.inst = 0;
// 972
o8.appendChild = f449694821_398;
// 973
f449694821_398.returns.push(o9);
// 975
f449694821_387.returns.push(1373490151006);
// 977
o10 = {};
// 978
f449694821_396.returns.push(o10);
// 979
// 980
// 981
// 982
// 983
// 984
// 986
f449694821_398.returns.push(o10);
// 987
o7.appendChild = f449694821_398;
// 988
f449694821_398.returns.push(o8);
// undefined
o8 = null;
// 999
f449694821_386.returns.push(0.10655516814670318);
// 1000
f449694821_405 = function() { return f449694821_405.returns[f449694821_405.inst++]; };
f449694821_405.returns = [];
f449694821_405.inst = 0;
// 1001
ow449694821.JSBNG__onunload = f449694821_405;
// 1003
f449694821_387.returns.push(1373490154326);
// 1004
f449694821_406 = function() { return f449694821_406.returns[f449694821_406.inst++]; };
f449694821_406.returns = [];
f449694821_406.inst = 0;
// 1005
o1.getItem = f449694821_406;
// undefined
o1 = null;
// 1006
f449694821_406.returns.push(null);
// 1008
f449694821_387.returns.push(1373490154328);
// 1009
f449694821_18.returns.push(undefined);
// 1010
f449694821_16.returns.push(2);
// 1014
o1 = {};
// 1015
o0.documentElement = o1;
// 1016
o1.className = "no_js";
// 1017
// 1019
o0.domain = "jsbngssl.www.facebook.com";
// 1020
// 1022
o4.href = "https://www.facebook.com/?sk=welcome";
// 1066
o6 = {};
// 1067
f449694821_391.returns.push(o6);
// 1068
o6.length = 8;
// 1069
o8 = {};
// 1070
o6["0"] = o8;
// 1071
o8.rel = "alternate";
// 1073
o11 = {};
// 1074
o6["1"] = o11;
// 1075
o11.rel = "stylesheet";
// 1077
o11.href = "http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y0/r/RxMmKV8uOEh.css";
// 1080
o12 = {};
// 1081
o6["2"] = o12;
// 1082
o12.rel = "stylesheet";
// 1084
o12.href = "http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yj/r/KbSyGJkqroJ.css";
// 1093
o13 = {};
// 1094
o6["3"] = o13;
// 1095
o13.rel = "stylesheet";
// 1097
o13.href = "http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yS/r/AXbdtQOFsWr.css";
// 1102
o14 = {};
// 1103
o6["4"] = o14;
// 1104
o14.rel = "shortcut icon";
// 1106
o15 = {};
// 1107
o6["5"] = o15;
// 1108
o15.rel = "stylesheet";
// 1110
o15.href = "http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yD/r/OWwnO_yMqhK.css";
// 1113
o16 = {};
// 1114
o6["6"] = o16;
// 1115
o16.rel = "stylesheet";
// 1117
o16.href = "http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yb/r/tOU0wFcLVo_.css";
// 1120
o17 = {};
// 1121
o6["7"] = o17;
// undefined
o6 = null;
// 1122
o17.rel = "stylesheet";
// 1124
o17.href = "http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/JDr6pTZ60bK.css";
// 1153
o6 = {};
// 1154
f449694821_396.returns.push(o6);
// 1155
// 1156
// 1157
f449694821_419 = function() { return f449694821_419.returns[f449694821_419.inst++]; };
f449694821_419.returns = [];
f449694821_419.inst = 0;
// 1158
o6.getElementsByTagName = f449694821_419;
// 1159
o18 = {};
// 1160
f449694821_419.returns.push(o18);
// 1161
o18.length = 0;
// undefined
o18 = null;
// 1163
o18 = {};
// 1164
o6.childNodes = o18;
// undefined
o6 = null;
// 1165
f449694821_422 = function() { return f449694821_422.returns[f449694821_422.inst++]; };
f449694821_422.returns = [];
f449694821_422.inst = 0;
// 1166
o18.item = f449694821_422;
// 1167
o18.length = 1;
// 1168
o6 = {};
// 1169
o18["0"] = o6;
// undefined
o18 = null;
// 1170
f449694821_424 = function() { return f449694821_424.returns[f449694821_424.inst++]; };
f449694821_424.returns = [];
f449694821_424.inst = 0;
// 1171
o6.getAttributeNode = f449694821_424;
// undefined
o6 = null;
// 1173
o6 = {};
// 1174
f449694821_424.returns.push(o6);
// 1175
o6.value = "u_0_1";
// undefined
o6 = null;
// 1224
f449694821_387.returns.push(1373490160712);
// 1226
f449694821_387.returns.push(1373490160713);
// 1227
f449694821_18.returns.push(undefined);
// 1228
f449694821_16.returns.push(3);
// 1233
f449694821_387.returns.push(1373490160714);
// 1234
o6 = {};
// 1235
o0.body = o6;
// 1236
o6.getElementsByTagName = f449694821_419;
// 1237
f449694821_427 = function() { return f449694821_427.returns[f449694821_427.inst++]; };
f449694821_427.returns = [];
f449694821_427.inst = 0;
// 1238
o0.querySelectorAll = f449694821_427;
// 1239
f449694821_428 = function() { return f449694821_428.returns[f449694821_428.inst++]; };
f449694821_428.returns = [];
f449694821_428.inst = 0;
// 1240
o6.querySelectorAll = f449694821_428;
// 1241
o18 = {};
// 1242
f449694821_428.returns.push(o18);
// 1243
o18.length = 0;
// undefined
o18 = null;
// 1244
f449694821_18.returns.push(undefined);
// 1245
f449694821_16.returns.push(4);
// 1251
o1.clientWidth = 979;
// 1268
f449694821_402 = {};
// 1269
o1.JSBNG__addEventListener = f449694821_402;
// 1271
f449694821_402 = function() { return f449694821_402.returns[f449694821_402.inst++]; };
f449694821_402.returns = [];
f449694821_402.inst = 0;
// 1272
f449694821_402.returns.push(undefined);
// 1274
f449694821_402.returns.push(undefined);
// 1283
f449694821_402.returns.push(undefined);
// 1296
// 1297
// 1298
// 1305
// 1309
// 1313
// 1317
// 1321
// 1325
// 1329
// 1333
// 1337
// 1341
// 1345
// 1349
// 1350
o18 = {};
// 1354
f449694821_387.returns.push(1373490165428);
// 1359
o19 = {};
// 1360
f449694821_394.returns.push(o19);
// 1362
f449694821_387.returns.push(1373490165430);
// 1364
o20 = {};
// 1365
f449694821_396.returns.push(o20);
// 1366
// 1367
// 1368
// 1369
// 1370
// 1371
// 1372
o19.appendChild = f449694821_398;
// 1373
f449694821_398.returns.push(o20);
// 1375
f449694821_387.returns.push(1373490165431);
// 1377
o21 = {};
// 1378
f449694821_396.returns.push(o21);
// 1379
// 1380
// 1381
// 1382
// 1383
// 1384
// 1386
f449694821_398.returns.push(o21);
// 1388
f449694821_387.returns.push(1373490165431);
// 1390
o22 = {};
// 1391
f449694821_396.returns.push(o22);
// 1392
// 1393
// 1394
// 1395
// 1396
// 1397
// 1399
f449694821_398.returns.push(o22);
// 1401
f449694821_387.returns.push(1373490165432);
// 1403
o23 = {};
// 1404
f449694821_396.returns.push(o23);
// 1405
// 1406
// 1407
// 1408
// 1409
// 1410
// 1412
f449694821_398.returns.push(o23);
// 1414
f449694821_387.returns.push(1373490165433);
// 1416
o24 = {};
// 1417
f449694821_396.returns.push(o24);
// 1418
// 1419
// 1420
// 1421
// 1422
// 1423
// 1425
f449694821_398.returns.push(o24);
// 1427
f449694821_387.returns.push(1373490165438);
// 1429
o25 = {};
// 1430
f449694821_396.returns.push(o25);
// 1431
// 1432
// 1433
// 1434
// 1435
// 1436
// 1438
f449694821_398.returns.push(o25);
// 1440
f449694821_387.returns.push(1373490165439);
// 1442
o26 = {};
// 1443
f449694821_396.returns.push(o26);
// 1444
// 1445
// 1446
// 1447
// 1448
// 1449
// 1451
f449694821_398.returns.push(o26);
// 1453
f449694821_387.returns.push(1373490165439);
// 1455
o27 = {};
// 1456
f449694821_396.returns.push(o27);
// 1457
// 1458
// 1459
// 1460
// 1461
// 1462
// 1464
f449694821_398.returns.push(o27);
// 1466
f449694821_398.returns.push(o19);
// 1468
f449694821_398.returns.push(o24);
// 1470
f449694821_387.returns.push(1373490165438);
// 1472
o25 = {};
// 1473
f449694821_396.returns.push(o25);
// 1474
// 1475
// 1476
// 1477
// 1478
// 1479
// 1481
f449694821_398.returns.push(o25);
// 1483
f449694821_387.returns.push(1373490165439);
// 1485
o26 = {};
// 1486
f449694821_396.returns.push(o26);
// 1487
// 1488
// 1489
// 1490
// 1491
// 1492
// 1494
f449694821_398.returns.push(o26);
// 1496
f449694821_387.returns.push(1373490165439);
// 1498
o27 = {};
// 1499
f449694821_396.returns.push(o27);
// 1500
// 1501
// 1502
// 1503
// 1504
// 1505
// 1507
f449694821_398.returns.push(o27);
// 1509
f449694821_398.returns.push(o19);
// 1512
f449694821_398.returns.push(o24);
// 1514
f449694821_387.returns.push(1373490165438);
// 1516
o25 = {};
// 1517
f449694821_396.returns.push(o25);
// 1518
// 1519
// 1520
// 1521
// 1522
// 1523
// 1525
f449694821_398.returns.push(o25);
// 1527
f449694821_387.returns.push(1373490165439);
// 1529
o26 = {};
// 1530
f449694821_396.returns.push(o26);
// 1531
// 1532
// 1533
// 1534
// 1535
// 1536
// 1538
f449694821_398.returns.push(o26);
// 1540
f449694821_387.returns.push(1373490165439);
// 1542
o27 = {};
// 1543
f449694821_396.returns.push(o27);
// 1544
// 1545
// 1546
// 1547
// 1548
// 1549
// 1551
f449694821_398.returns.push(o27);
// 1553
f449694821_398.returns.push(o19);
// undefined
o19 = null;
// 1559
o4.protocol = "https:";
// 1560
o0.cookie = "c_user=100006118350059; csm=2";
// 1562
f449694821_387.returns.push(1373490165629);
// 1563
o19 = {};
// 1564
f449694821_0.returns.push(o19);
// 1565
f449694821_443 = function() { return f449694821_443.returns[f449694821_443.inst++]; };
f449694821_443.returns = [];
f449694821_443.inst = 0;
// 1566
o19.toGMTString = f449694821_443;
// undefined
o19 = null;
// 1567
f449694821_443.returns.push("Wed, 17 Jul 2013 21:02:45 GMT");
// 1568
o4.hostname = "jsbngssl.www.facebook.com";
// 1571
f449694821_387.returns.push(1373490165631);
// 1580
o1.nodeName = "HTML";
// 1581
o1.__FB_TOKEN = void 0;
// 1582
// 1583
f449694821_444 = function() { return f449694821_444.returns[f449694821_444.inst++]; };
f449694821_444.returns = [];
f449694821_444.inst = 0;
// 1584
o1.getAttribute = f449694821_444;
// 1585
f449694821_445 = function() { return f449694821_445.returns[f449694821_445.inst++]; };
f449694821_445.returns = [];
f449694821_445.inst = 0;
// 1586
o1.hasAttribute = f449694821_445;
// 1588
f449694821_445.returns.push(false);
// 1591
f449694821_402.returns.push(undefined);
// 1592
o1.JSBNG__oninput = null;
// 1597
f449694821_402.returns.push(undefined);
// 1598
o1.JSBNG__onkeyup = null;
// 1605
f449694821_402.returns.push(undefined);
// 1606
f449694821_446 = function() { return f449694821_446.returns[f449694821_446.inst++]; };
f449694821_446.returns = [];
f449694821_446.inst = 0;
// 1607
o1.JSBNG__onsubmit = f449694821_446;
// 1610
// 1616
o0.title = "Facebook";
// 1617
// 1620
// 1625
o19 = {};
// 1626
f449694821_396.returns.push(o19);
// undefined
o19 = null;
// 1628
o19 = {};
// 1629
f449694821_396.returns.push(o19);
// undefined
o19 = null;
// 1632
o19 = {};
// 1633
f449694821_396.returns.push(o19);
// 1634
f449694821_450 = function() { return f449694821_450.returns[f449694821_450.inst++]; };
f449694821_450.returns = [];
f449694821_450.inst = 0;
// 1635
o0.getElementById = f449694821_450;
// 1636
o28 = {};
// 1637
f449694821_450.returns.push(o28);
// 1638
o28.getElementsByTagName = f449694821_419;
// 1640
o28.querySelectorAll = f449694821_428;
// 1641
o29 = {};
// 1642
f449694821_428.returns.push(o29);
// 1643
o29.length = 1;
// 1644
o30 = {};
// 1645
o29["0"] = o30;
// undefined
o29 = null;
// 1646
o30.getElementsByTagName = f449694821_419;
// 1648
o30.querySelectorAll = f449694821_428;
// 1649
o29 = {};
// 1650
f449694821_428.returns.push(o29);
// 1651
o29.length = 1;
// 1652
o31 = {};
// 1653
o29["0"] = o31;
// undefined
o29 = null;
// 1654
o31.getElementsByTagName = f449694821_419;
// 1656
o31.querySelectorAll = f449694821_428;
// 1657
o29 = {};
// 1658
f449694821_428.returns.push(o29);
// 1659
o29.length = 1;
// 1660
o32 = {};
// 1661
o29["0"] = o32;
// undefined
o29 = null;
// 1665
o29 = {};
// 1666
f449694821_428.returns.push(o29);
// 1667
o29.length = 1;
// 1668
o33 = {};
// 1669
o29["0"] = o33;
// undefined
o29 = null;
// 1670
o33.getElementsByTagName = f449694821_419;
// 1672
o33.querySelectorAll = f449694821_428;
// 1673
o29 = {};
// 1674
f449694821_428.returns.push(o29);
// 1675
o29.length = 1;
// 1676
o34 = {};
// 1677
o29["0"] = o34;
// undefined
o29 = null;
// 1678
f449694821_16.returns.push(5);
// 1679
o30.nodeName = "DIV";
// 1680
o30.__FB_TOKEN = void 0;
// 1681
// 1682
o30.getAttribute = f449694821_444;
// 1683
o30.hasAttribute = f449694821_445;
// 1685
f449694821_445.returns.push(false);
// 1686
o30.JSBNG__addEventListener = f449694821_402;
// 1688
f449694821_402.returns.push(undefined);
// 1689
o30.JSBNG__onJSBNG__scroll = void 0;
// 1691
o28.nodeName = "DIV";
// 1692
o28.__FB_TOKEN = void 0;
// 1693
// 1694
o28.getAttribute = f449694821_444;
// 1695
o28.hasAttribute = f449694821_445;
// 1697
f449694821_445.returns.push(false);
// 1698
o28.JSBNG__addEventListener = f449694821_402;
// 1700
f449694821_402.returns.push(undefined);
// 1701
o28.JSBNG__onmousemove = null;
// 1703
o33.nodeName = "DIV";
// 1704
o33.__FB_TOKEN = void 0;
// 1705
// 1706
o33.getAttribute = f449694821_444;
// 1707
o33.hasAttribute = f449694821_445;
// 1709
f449694821_445.returns.push(false);
// 1710
o33.JSBNG__addEventListener = f449694821_402;
// 1712
f449694821_402.returns.push(undefined);
// 1713
o33.JSBNG__onclick = null;
// 1715
o29 = {};
// 1716
o19.style = o29;
// 1718
// 1720
// undefined
o29 = null;
// 1722
o19.__html = void 0;
// 1724
o29 = {};
// 1725
f449694821_394.returns.push(o29);
// 1727
o1.appendChild = f449694821_398;
// 1728
f449694821_398.returns.push(o29);
// undefined
o29 = null;
// 1729
o29 = {};
// 1730
f449694821_4.returns.push(o29);
// 1731
o29.pointerEvents = void 0;
// undefined
o29 = null;
// 1732
o19.parentNode = null;
// undefined
o19 = null;
// 1736
f449694821_402.returns.push(undefined);
// 1737
o28.JSBNG__onmouseover = null;
// 1742
f449694821_402.returns.push(undefined);
// 1743
o28.JSBNG__onmouseout = null;
// 1748
f449694821_402.returns.push(undefined);
// 1749
o28.JSBNG__onfocusin = void 0;
// 1754
f449694821_402.returns.push(undefined);
// 1755
o28.JSBNG__onfocusout = void 0;
// 1758
f449694821_402.returns.push(undefined);
// 1759
o34.nodeName = "DIV";
// 1760
o34.__FB_TOKEN = void 0;
// 1761
// 1762
o34.getAttribute = f449694821_444;
// 1763
o34.hasAttribute = f449694821_445;
// 1765
f449694821_445.returns.push(false);
// 1766
o34.JSBNG__addEventListener = f449694821_402;
// 1768
f449694821_402.returns.push(undefined);
// 1769
o34.JSBNG__onmousedown = null;
// 1771
o19 = {};
// 1772
o28.classList = o19;
// 1774
f449694821_466 = function() { return f449694821_466.returns[f449694821_466.inst++]; };
f449694821_466.returns = [];
f449694821_466.inst = 0;
// 1775
o19.add = f449694821_466;
// 1776
f449694821_466.returns.push(undefined);
// 1779
o29 = {};
// 1780
f449694821_450.returns.push(o29);
// 1781
o29.getElementsByTagName = f449694821_419;
// 1783
o29.querySelectorAll = f449694821_428;
// 1784
o35 = {};
// 1785
f449694821_428.returns.push(o35);
// 1786
o35.length = 1;
// 1787
o36 = {};
// 1788
o35["0"] = o36;
// undefined
o35 = null;
// 1789
o36.getElementsByTagName = f449694821_419;
// 1791
o36.querySelectorAll = f449694821_428;
// 1792
o35 = {};
// 1793
f449694821_428.returns.push(o35);
// 1794
o35.length = 1;
// 1795
o37 = {};
// 1796
o35["0"] = o37;
// undefined
o35 = null;
// 1797
o37.getElementsByTagName = f449694821_419;
// 1799
o37.querySelectorAll = f449694821_428;
// 1800
o35 = {};
// 1801
f449694821_428.returns.push(o35);
// 1802
o35.length = 1;
// 1803
o38 = {};
// 1804
o35["0"] = o38;
// undefined
o35 = null;
// 1808
o35 = {};
// 1809
f449694821_428.returns.push(o35);
// 1810
o35.length = 1;
// 1811
o39 = {};
// 1812
o35["0"] = o39;
// undefined
o35 = null;
// 1813
o39.getElementsByTagName = f449694821_419;
// 1815
o39.querySelectorAll = f449694821_428;
// 1816
o35 = {};
// 1817
f449694821_428.returns.push(o35);
// 1818
o35.length = 1;
// 1819
o40 = {};
// 1820
o35["0"] = o40;
// undefined
o35 = null;
// 1821
f449694821_16.returns.push(6);
// 1822
o36.nodeName = "DIV";
// 1823
o36.__FB_TOKEN = void 0;
// 1824
// 1825
o36.getAttribute = f449694821_444;
// 1826
o36.hasAttribute = f449694821_445;
// 1828
f449694821_445.returns.push(false);
// 1829
o36.JSBNG__addEventListener = f449694821_402;
// 1831
f449694821_402.returns.push(undefined);
// 1832
o36.JSBNG__onJSBNG__scroll = void 0;
// 1834
o29.nodeName = "DIV";
// 1835
o29.__FB_TOKEN = void 0;
// 1836
// 1837
o29.getAttribute = f449694821_444;
// 1838
o29.hasAttribute = f449694821_445;
// 1840
f449694821_445.returns.push(false);
// 1841
o29.JSBNG__addEventListener = f449694821_402;
// 1843
f449694821_402.returns.push(undefined);
// 1844
o29.JSBNG__onmousemove = null;
// 1846
o39.nodeName = "DIV";
// 1847
o39.__FB_TOKEN = void 0;
// 1848
// 1849
o39.getAttribute = f449694821_444;
// 1850
o39.hasAttribute = f449694821_445;
// 1852
f449694821_445.returns.push(false);
// 1853
o39.JSBNG__addEventListener = f449694821_402;
// 1855
f449694821_402.returns.push(undefined);
// 1856
o39.JSBNG__onclick = null;
// 1861
f449694821_402.returns.push(undefined);
// 1862
o29.JSBNG__onmouseover = null;
// 1867
f449694821_402.returns.push(undefined);
// 1868
o29.JSBNG__onmouseout = null;
// 1873
f449694821_402.returns.push(undefined);
// 1874
o29.JSBNG__onfocusin = void 0;
// 1879
f449694821_402.returns.push(undefined);
// 1880
o29.JSBNG__onfocusout = void 0;
// 1883
f449694821_402.returns.push(undefined);
// 1884
o40.nodeName = "DIV";
// 1885
o40.__FB_TOKEN = void 0;
// 1886
// 1887
o40.getAttribute = f449694821_444;
// 1888
o40.hasAttribute = f449694821_445;
// 1890
f449694821_445.returns.push(false);
// 1891
o40.JSBNG__addEventListener = f449694821_402;
// 1893
f449694821_402.returns.push(undefined);
// 1894
o40.JSBNG__onmousedown = null;
// 1896
o35 = {};
// 1897
o29.classList = o35;
// 1899
o35.add = f449694821_466;
// 1900
f449694821_466.returns.push(undefined);
// 1906
f449694821_402.returns.push(undefined);
// 1907
o1.JSBNG__onkeydown = null;
// 1917
f449694821_402.returns.push(undefined);
// 1918
f449694821_479 = function() { return f449694821_479.returns[f449694821_479.inst++]; };
f449694821_479.returns = [];
f449694821_479.inst = 0;
// 1919
o1.JSBNG__onclick = f449694821_479;
// 1922
// 1925
f449694821_386.returns.push(0.08142863190076899);
// 1930
f449694821_402.returns.push(undefined);
// 1931
o1.JSBNG__onmousedown = null;
// 1936
o41 = {};
// 1937
f449694821_396.returns.push(o41);
// 1938
// 1939
// 1940
o41.getElementsByTagName = f449694821_419;
// 1941
o42 = {};
// 1942
f449694821_419.returns.push(o42);
// 1943
o42.length = 0;
// undefined
o42 = null;
// 1945
o42 = {};
// 1946
o41.childNodes = o42;
// undefined
o41 = null;
// 1947
o42.item = f449694821_422;
// 1948
o42.length = 1;
// 1949
o41 = {};
// 1950
o42["0"] = o41;
// undefined
o42 = null;
// 1951
o41.getElementsByTagName = f449694821_419;
// 1953
o41.querySelectorAll = f449694821_428;
// 1954
o42 = {};
// 1955
f449694821_428.returns.push(o42);
// 1956
o42.length = 0;
// undefined
o42 = null;
// 1957
o41.__html = void 0;
// 1958
o41.mountComponentIntoNode = void 0;
// 1959
o42 = {};
// 1960
o41.classList = o42;
// undefined
o41 = null;
// 1962
o42.add = f449694821_466;
// undefined
o42 = null;
// 1963
f449694821_466.returns.push(undefined);
// 1965
o41 = {};
// 1966
f449694821_396.returns.push(o41);
// 1967
// 1968
o41.firstChild = null;
// 1971
o42 = {};
// 1972
f449694821_394.returns.push(o42);
// 1974
o41.appendChild = f449694821_398;
// 1975
f449694821_398.returns.push(o42);
// undefined
o42 = null;
// 1977
o42 = {};
// 1978
f449694821_396.returns.push(o42);
// 1979
// 1980
o42.firstChild = null;
// 1981
o41.__html = void 0;
// 1983
o43 = {};
// 1984
f449694821_394.returns.push(o43);
// 1986
o42.appendChild = f449694821_398;
// 1987
f449694821_398.returns.push(o43);
// undefined
o43 = null;
// 1988
o43 = {};
// 1989
o42.classList = o43;
// 1991
o43.add = f449694821_466;
// undefined
o43 = null;
// 1992
f449694821_466.returns.push(undefined);
// 1993
o43 = {};
// 1994
o41.style = o43;
// undefined
o41 = null;
// 1995
// undefined
o43 = null;
// 1999
f449694821_466.returns.push(undefined);
// 2000
o42.__FB_TOKEN = void 0;
// 2001
// 2002
o42.nodeName = "DIV";
// 2003
o42.getAttribute = f449694821_444;
// 2004
o42.hasAttribute = f449694821_445;
// 2006
f449694821_445.returns.push(false);
// 2007
o42.JSBNG__addEventListener = f449694821_402;
// 2009
f449694821_402.returns.push(undefined);
// 2010
o42.JSBNG__onclick = null;
// 2015
f449694821_402.returns.push(undefined);
// 2016
o42.JSBNG__onsubmit = null;
// 2021
f449694821_402.returns.push(undefined);
// 2022
o42.JSBNG__onsuccess = void 0;
// 2027
f449694821_402.returns.push(undefined);
// 2028
o42.JSBNG__onerror = null;
// undefined
o42 = null;
// 2030
f449694821_16.returns.push(7);
// 2033
o41 = {};
// 2034
f449694821_396.returns.push(o41);
// 2035
// 2036
// 2037
o41.getElementsByTagName = f449694821_419;
// 2038
o42 = {};
// 2039
f449694821_419.returns.push(o42);
// 2040
o42.length = 0;
// undefined
o42 = null;
// 2042
o42 = {};
// 2043
o41.childNodes = o42;
// undefined
o41 = null;
// 2044
o42.item = f449694821_422;
// 2045
o42.length = 1;
// 2046
o41 = {};
// 2047
o42["0"] = o41;
// undefined
o42 = null;
// 2048
o41.getElementsByTagName = f449694821_419;
// 2050
o41.querySelectorAll = f449694821_428;
// undefined
o41 = null;
// 2051
o41 = {};
// 2052
f449694821_428.returns.push(o41);
// 2053
o41.length = 1;
// 2054
o42 = {};
// 2055
o41["0"] = o42;
// undefined
o41 = null;
// undefined
o42 = null;
// 2064
// 2065
o41 = {};
// 2066
o42 = {};
// 2068
o41.length = 1;
// 2069
o41["0"] = "63VzN";
// 2071
o43 = {};
// 2072
f449694821_510 = function() { return f449694821_510.returns[f449694821_510.inst++]; };
f449694821_510.returns = [];
f449694821_510.inst = 0;
// 2073
o43._needsGripper = f449694821_510;
// 2074
f449694821_511 = function() { return f449694821_511.returns[f449694821_511.inst++]; };
f449694821_511.returns = [];
f449694821_511.inst = 0;
// 2075
o43._throttledComputeHeights = f449694821_511;
// 2077
f449694821_387.returns.push(1373490165887);
// 2078
o28.clientHeight = 0;
// 2079
o32.offsetHeight = 0;
// 2080
o33.offsetHeight = 0;
// 2081
f449694821_16.returns.push(9);
// 2082
f449694821_511.returns.push(undefined);
// 2083
o43._gripperHeight = NaN;
// 2084
o43._trackHeight = 0;
// 2085
f449694821_510.returns.push(false);
// 2086
f449694821_512 = function() { return f449694821_512.returns[f449694821_512.inst++]; };
f449694821_512.returns = [];
f449694821_512.inst = 0;
// 2087
o43._throttledShowGripperAndShadows = f449694821_512;
// 2089
f449694821_387.returns.push(1373490165889);
// 2091
f449694821_387.returns.push(1373490165890);
// 2092
o44 = {};
// 2093
o34.classList = o44;
// 2095
o44.add = f449694821_466;
// 2096
f449694821_466.returns.push(undefined);
// 2097
o30.scrollTop = 0;
// 2100
f449694821_514 = function() { return f449694821_514.returns[f449694821_514.inst++]; };
f449694821_514.returns = [];
f449694821_514.inst = 0;
// 2101
o19.remove = f449694821_514;
// undefined
o19 = null;
// 2102
f449694821_514.returns.push(undefined);
// 2107
f449694821_514.returns.push(undefined);
// 2108
f449694821_16.returns.push(10);
// 2109
f449694821_512.returns.push(undefined);
// 2110
o19 = {};
// 2111
o19._needsGripper = f449694821_510;
// 2112
f449694821_516 = function() { return f449694821_516.returns[f449694821_516.inst++]; };
f449694821_516.returns = [];
f449694821_516.inst = 0;
// 2113
o19._throttledComputeHeights = f449694821_516;
// 2115
f449694821_387.returns.push(1373490165892);
// 2116
o29.clientHeight = 0;
// 2117
o38.offsetHeight = 0;
// 2118
o39.offsetHeight = 0;
// 2119
f449694821_16.returns.push(11);
// 2120
f449694821_516.returns.push(undefined);
// 2121
o19._gripperHeight = NaN;
// 2122
o19._trackHeight = 0;
// 2123
f449694821_510.returns.push(false);
// 2124
f449694821_517 = function() { return f449694821_517.returns[f449694821_517.inst++]; };
f449694821_517.returns = [];
f449694821_517.inst = 0;
// 2125
o19._throttledShowGripperAndShadows = f449694821_517;
// 2127
f449694821_387.returns.push(1373490165896);
// 2129
f449694821_387.returns.push(1373490165897);
// 2130
o45 = {};
// 2131
o40.classList = o45;
// 2133
o45.add = f449694821_466;
// 2134
f449694821_466.returns.push(undefined);
// 2135
o36.scrollTop = 0;
// 2138
o35.remove = f449694821_514;
// undefined
o35 = null;
// 2139
f449694821_514.returns.push(undefined);
// 2144
f449694821_514.returns.push(undefined);
// 2145
f449694821_16.returns.push(12);
// 2146
f449694821_517.returns.push(undefined);
// 2147
o35 = {};
// 2152
f449694821_387.returns.push(1373490165906);
// 2153
f449694821_520 = function() { return f449694821_520.returns[f449694821_520.inst++]; };
f449694821_520.returns = [];
f449694821_520.inst = 0;
// 2154
o3.pushState = f449694821_520;
// 2155
o0.JSBNG__URL = "http://jsbngssl.www.facebook.com/?sk=welcome";
// 2156
f449694821_521 = function() { return f449694821_521.returns[f449694821_521.inst++]; };
f449694821_521.returns = [];
f449694821_521.inst = 0;
// 2157
o3.replaceState = f449694821_521;
// undefined
o3 = null;
// 2158
f449694821_521.returns.push(undefined);
// 2159
f449694821_7.returns.push(undefined);
// 2160
f449694821_522 = function() { return f449694821_522.returns[f449694821_522.inst++]; };
f449694821_522.returns = [];
f449694821_522.inst = 0;
// 2166
// 2167
o41 = {};
// 2168
o42 = {};
// 2170
o41.length = 1;
// 2171
o41["0"] = "63VzN";
// 2173
o43 = {};
// 2174
f449694821_510 = function() { return f449694821_510.returns[f449694821_510.inst++]; };
f449694821_510.returns = [];
f449694821_510.inst = 0;
// 2175
o43._needsGripper = f449694821_510;
// 2176
f449694821_511 = function() { return f449694821_511.returns[f449694821_511.inst++]; };
f449694821_511.returns = [];
f449694821_511.inst = 0;
// 2177
o43._throttledComputeHeights = f449694821_511;
// 2179
f449694821_387.returns.push(1373490165887);
// 2183
f449694821_16.returns.push(9);
// 2184
f449694821_511.returns.push(undefined);
// 2185
o43._gripperHeight = NaN;
// 2186
o43._trackHeight = 0;
// 2187
f449694821_510.returns.push(false);
// 2188
f449694821_512 = function() { return f449694821_512.returns[f449694821_512.inst++]; };
f449694821_512.returns = [];
f449694821_512.inst = 0;
// 2189
o43._throttledShowGripperAndShadows = f449694821_512;
// 2191
f449694821_387.returns.push(1373490165889);
// 2193
f449694821_387.returns.push(1373490165890);
// 2194
o44 = {};
// 2197
o44.add = f449694821_466;
// 2198
f449694821_466.returns.push(undefined);
// 2202
f449694821_514 = function() { return f449694821_514.returns[f449694821_514.inst++]; };
f449694821_514.returns = [];
f449694821_514.inst = 0;
// 2204
f449694821_514.returns.push(undefined);
// 2209
f449694821_514.returns.push(undefined);
// 2210
f449694821_16.returns.push(10);
// 2211
f449694821_512.returns.push(undefined);
// 2212
o19 = {};
// 2213
o19._needsGripper = f449694821_510;
// 2214
f449694821_516 = function() { return f449694821_516.returns[f449694821_516.inst++]; };
f449694821_516.returns = [];
f449694821_516.inst = 0;
// 2215
o19._throttledComputeHeights = f449694821_516;
// 2217
f449694821_387.returns.push(1373490165892);
// 2221
f449694821_16.returns.push(11);
// 2222
f449694821_516.returns.push(undefined);
// 2223
o19._gripperHeight = NaN;
// 2224
o19._trackHeight = 0;
// 2225
f449694821_510.returns.push(false);
// 2226
f449694821_517 = function() { return f449694821_517.returns[f449694821_517.inst++]; };
f449694821_517.returns = [];
f449694821_517.inst = 0;
// 2227
o19._throttledShowGripperAndShadows = f449694821_517;
// 2229
f449694821_387.returns.push(1373490165896);
// 2231
f449694821_387.returns.push(1373490165897);
// 2232
o45 = {};
// 2235
o45.add = f449694821_466;
// 2236
f449694821_466.returns.push(undefined);
// 2241
f449694821_514.returns.push(undefined);
// 2246
f449694821_514.returns.push(undefined);
// 2247
f449694821_16.returns.push(12);
// 2248
f449694821_517.returns.push(undefined);
// 2249
o35 = {};
// 2254
f449694821_387.returns.push(1373490165906);
// 2255
f449694821_520 = function() { return f449694821_520.returns[f449694821_520.inst++]; };
f449694821_520.returns = [];
f449694821_520.inst = 0;
// 2258
f449694821_521 = function() { return f449694821_521.returns[f449694821_521.inst++]; };
f449694821_521.returns = [];
f449694821_521.inst = 0;
// 2260
f449694821_521.returns.push(undefined);
// 2261
f449694821_7.returns.push(undefined);
// 2262
f449694821_522 = function() { return f449694821_522.returns[f449694821_522.inst++]; };
f449694821_522.returns = [];
f449694821_522.inst = 0;
// 2269
// 2270
o41 = {};
// 2271
o42 = {};
// 2273
o41.length = 1;
// 2274
o41["0"] = "63VzN";
// 2276
o43 = {};
// 2277
f449694821_510 = function() { return f449694821_510.returns[f449694821_510.inst++]; };
f449694821_510.returns = [];
f449694821_510.inst = 0;
// 2278
o43._needsGripper = f449694821_510;
// 2279
f449694821_511 = function() { return f449694821_511.returns[f449694821_511.inst++]; };
f449694821_511.returns = [];
f449694821_511.inst = 0;
// 2280
o43._throttledComputeHeights = f449694821_511;
// 2282
f449694821_387.returns.push(1373490165887);
// 2286
f449694821_16.returns.push(9);
// 2287
f449694821_511.returns.push(undefined);
// 2288
o43._gripperHeight = NaN;
// 2289
o43._trackHeight = 0;
// 2290
f449694821_510.returns.push(false);
// 2291
f449694821_512 = function() { return f449694821_512.returns[f449694821_512.inst++]; };
f449694821_512.returns = [];
f449694821_512.inst = 0;
// 2292
o43._throttledShowGripperAndShadows = f449694821_512;
// undefined
o43 = null;
// 2294
f449694821_387.returns.push(1373490165889);
// 2296
f449694821_387.returns.push(1373490165890);
// 2297
o44 = {};
// 2300
o44.add = f449694821_466;
// undefined
o44 = null;
// 2301
f449694821_466.returns.push(undefined);
// 2305
f449694821_514 = function() { return f449694821_514.returns[f449694821_514.inst++]; };
f449694821_514.returns = [];
f449694821_514.inst = 0;
// 2307
f449694821_514.returns.push(undefined);
// 2312
f449694821_514.returns.push(undefined);
// 2313
f449694821_16.returns.push(10);
// 2314
f449694821_512.returns.push(undefined);
// 2315
o19 = {};
// 2316
o19._needsGripper = f449694821_510;
// 2317
f449694821_516 = function() { return f449694821_516.returns[f449694821_516.inst++]; };
f449694821_516.returns = [];
f449694821_516.inst = 0;
// 2318
o19._throttledComputeHeights = f449694821_516;
// 2320
f449694821_387.returns.push(1373490165892);
// 2324
f449694821_16.returns.push(11);
// 2325
f449694821_516.returns.push(undefined);
// 2326
o19._gripperHeight = NaN;
// 2327
o19._trackHeight = 0;
// 2328
f449694821_510.returns.push(false);
// 2329
f449694821_517 = function() { return f449694821_517.returns[f449694821_517.inst++]; };
f449694821_517.returns = [];
f449694821_517.inst = 0;
// 2330
o19._throttledShowGripperAndShadows = f449694821_517;
// undefined
o19 = null;
// 2332
f449694821_387.returns.push(1373490165896);
// 2334
f449694821_387.returns.push(1373490165897);
// 2335
o45 = {};
// 2338
o45.add = f449694821_466;
// undefined
o45 = null;
// 2339
f449694821_466.returns.push(undefined);
// 2344
f449694821_514.returns.push(undefined);
// 2349
f449694821_514.returns.push(undefined);
// 2350
f449694821_16.returns.push(12);
// 2351
f449694821_517.returns.push(undefined);
// 2352
o35 = {};
// undefined
o35 = null;
// 2357
f449694821_387.returns.push(1373490165906);
// 2358
f449694821_520 = function() { return f449694821_520.returns[f449694821_520.inst++]; };
f449694821_520.returns = [];
f449694821_520.inst = 0;
// 2361
f449694821_521 = function() { return f449694821_521.returns[f449694821_521.inst++]; };
f449694821_521.returns = [];
f449694821_521.inst = 0;
// 2363
f449694821_521.returns.push(undefined);
// 2364
f449694821_7.returns.push(undefined);
// 2365
f449694821_522 = function() { return f449694821_522.returns[f449694821_522.inst++]; };
f449694821_522.returns = [];
f449694821_522.inst = 0;
// 2370
o2.platform = "MacIntel";
// 2375
o3 = {};
// 2376
f449694821_391.returns.push(o3);
// 2377
o3.length = 44;
// 2378
o19 = {};
// 2379
o3["0"] = o19;
// 2380
o19.src = "http://jsbngssl.www.facebook.com/JSBENCH_NG_RECORD_OBJECTS.js";
// 2382
o35 = {};
// 2383
o3["1"] = o35;
// 2384
o35.src = "http://jsbngssl.www.facebook.com/JSBENCH_NG_RECORD.js";
// 2386
o43 = {};
// 2387
o3["2"] = o43;
// 2388
o43.src = "";
// 2390
o44 = {};
// 2391
o3["3"] = o44;
// 2392
o44.src = "";
// 2394
o45 = {};
// 2395
o3["4"] = o45;
// 2396
o45.src = "";
// 2398
o46 = {};
// 2399
o3["5"] = o46;
// 2400
o46.src = "http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yu/r/PHN_xWtDFVJ.js";
// 2402
o47 = {};
// 2403
o3["6"] = o47;
// 2404
o47.src = "";
// 2406
o48 = {};
// 2407
o3["7"] = o48;
// 2408
o48.src = "";
// 2410
o3["8"] = o9;
// 2412
o3["9"] = o10;
// 2414
o49 = {};
// 2415
o3["10"] = o49;
// 2416
o49.src = "";
// 2418
o50 = {};
// 2419
o3["11"] = o50;
// 2420
o50.src = "";
// 2422
o3["12"] = o20;
// 2424
o3["13"] = o21;
// 2426
o3["14"] = o22;
// 2428
o3["15"] = o23;
// 2430
o3["16"] = o24;
// 2432
o3["17"] = o25;
// 2434
o3["18"] = o26;
// 2436
o3["19"] = o27;
// 2438
o51 = {};
// 2439
o3["20"] = o51;
// 2440
o51.src = "";
// 2442
o52 = {};
// 2443
o3["21"] = o52;
// 2444
o52.src = "";
// 2446
o53 = {};
// 2447
o3["22"] = o53;
// 2448
o53.src = "";
// 2450
o54 = {};
// 2451
o3["23"] = o54;
// 2452
o54.src = "";
// 2454
o55 = {};
// 2455
o3["24"] = o55;
// 2456
o55.src = "";
// 2458
o56 = {};
// 2459
o3["25"] = o56;
// 2460
o56.src = "";
// 2462
o57 = {};
// 2463
o3["26"] = o57;
// 2464
o57.src = "";
// 2466
o58 = {};
// 2467
o3["27"] = o58;
// 2468
o58.src = "";
// 2470
o59 = {};
// 2471
o3["28"] = o59;
// 2472
o59.src = "";
// 2474
o60 = {};
// 2475
o3["29"] = o60;
// 2476
o60.src = "";
// 2478
o61 = {};
// 2479
o3["30"] = o61;
// 2480
o61.src = "";
// 2482
o62 = {};
// 2483
o3["31"] = o62;
// 2484
o62.src = "";
// 2486
o63 = {};
// 2487
o3["32"] = o63;
// 2488
o63.src = "";
// 2490
o64 = {};
// 2499
o3 = {};
// 2500
f449694821_391.returns.push(o3);
// 2501
o3.length = 44;
// 2502
o19 = {};
// 2503
o3["0"] = o19;
// 2504
o19.src = "http://jsbngssl.www.facebook.com/JSBENCH_NG_RECORD_OBJECTS.js";
// 2506
o35 = {};
// 2507
o3["1"] = o35;
// 2508
o35.src = "http://jsbngssl.www.facebook.com/JSBENCH_NG_RECORD.js";
// 2510
o43 = {};
// 2511
o3["2"] = o43;
// 2512
o43.src = "";
// 2514
o44 = {};
// 2515
o3["3"] = o44;
// 2516
o44.src = "";
// 2518
o45 = {};
// 2519
o3["4"] = o45;
// 2520
o45.src = "";
// 2522
o46 = {};
// 2523
o3["5"] = o46;
// 2524
o46.src = "http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yu/r/PHN_xWtDFVJ.js";
// 2526
o47 = {};
// 2527
o3["6"] = o47;
// 2528
o47.src = "";
// 2530
o48 = {};
// 2531
o3["7"] = o48;
// 2532
o48.src = "";
// 2534
o3["8"] = o9;
// 2536
o3["9"] = o10;
// 2538
o49 = {};
// 2539
o3["10"] = o49;
// 2540
o49.src = "";
// 2542
o50 = {};
// 2543
o3["11"] = o50;
// 2544
o50.src = "";
// 2546
o3["12"] = o20;
// 2548
o3["13"] = o21;
// 2550
o3["14"] = o22;
// 2552
o3["15"] = o23;
// 2554
o3["16"] = o24;
// 2556
o3["17"] = o25;
// 2558
o3["18"] = o26;
// 2560
o3["19"] = o27;
// 2562
o51 = {};
// 2563
o3["20"] = o51;
// 2564
o51.src = "";
// 2566
o52 = {};
// 2567
o3["21"] = o52;
// 2568
o52.src = "";
// 2570
o53 = {};
// 2571
o3["22"] = o53;
// 2572
o53.src = "";
// 2574
o54 = {};
// 2575
o3["23"] = o54;
// 2576
o54.src = "";
// 2578
o55 = {};
// 2579
o3["24"] = o55;
// 2580
o55.src = "";
// 2582
o56 = {};
// 2583
o3["25"] = o56;
// 2584
o56.src = "";
// 2586
o57 = {};
// 2587
o3["26"] = o57;
// 2588
o57.src = "";
// 2590
o58 = {};
// 2591
o3["27"] = o58;
// 2592
o58.src = "";
// 2594
o59 = {};
// 2595
o3["28"] = o59;
// 2596
o59.src = "";
// 2598
o60 = {};
// 2599
o3["29"] = o60;
// 2600
o60.src = "";
// 2602
o61 = {};
// 2603
o3["30"] = o61;
// 2604
o61.src = "";
// 2606
o62 = {};
// 2607
o3["31"] = o62;
// 2608
o62.src = "";
// 2610
o63 = {};
// 2611
o3["32"] = o63;
// 2612
o63.src = "";
// 2614
o64 = {};
// 2622
o3 = {};
// 2623
f449694821_391.returns.push(o3);
// 2624
o3.length = 44;
// 2625
o19 = {};
// 2626
o3["0"] = o19;
// 2627
o19.src = "http://jsbngssl.www.facebook.com/JSBENCH_NG_RECORD_OBJECTS.js";
// 2629
o35 = {};
// 2630
o3["1"] = o35;
// 2631
o35.src = "http://jsbngssl.www.facebook.com/JSBENCH_NG_RECORD.js";
// 2633
o43 = {};
// 2634
o3["2"] = o43;
// 2635
o43.src = "";
// 2637
o44 = {};
// 2638
o3["3"] = o44;
// 2639
o44.src = "";
// 2641
o45 = {};
// 2642
o3["4"] = o45;
// 2643
o45.src = "";
// 2645
o46 = {};
// 2646
o3["5"] = o46;
// 2647
o46.src = "http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yu/r/PHN_xWtDFVJ.js";
// 2649
o47 = {};
// 2650
o3["6"] = o47;
// 2651
o47.src = "";
// 2653
o48 = {};
// 2654
o3["7"] = o48;
// 2655
o48.src = "";
// 2657
o3["8"] = o9;
// 2659
o3["9"] = o10;
// 2661
o49 = {};
// 2662
o3["10"] = o49;
// 2663
o49.src = "";
// 2665
o50 = {};
// 2666
o3["11"] = o50;
// 2667
o50.src = "";
// 2669
o3["12"] = o20;
// 2671
o3["13"] = o21;
// 2673
o3["14"] = o22;
// 2675
o3["15"] = o23;
// 2677
o3["16"] = o24;
// 2679
o3["17"] = o25;
// 2681
o3["18"] = o26;
// 2683
o3["19"] = o27;
// 2685
o51 = {};
// 2686
o3["20"] = o51;
// 2687
o51.src = "";
// 2689
o52 = {};
// 2690
o3["21"] = o52;
// 2691
o52.src = "";
// 2693
o53 = {};
// 2694
o3["22"] = o53;
// 2695
o53.src = "";
// 2697
o54 = {};
// 2698
o3["23"] = o54;
// 2699
o54.src = "";
// 2701
o55 = {};
// 2702
o3["24"] = o55;
// 2703
o55.src = "";
// 2705
o56 = {};
// 2706
o3["25"] = o56;
// 2707
o56.src = "";
// 2709
o57 = {};
// 2710
o3["26"] = o57;
// 2711
o57.src = "";
// 2713
o58 = {};
// 2714
o3["27"] = o58;
// 2715
o58.src = "";
// 2717
o59 = {};
// 2718
o3["28"] = o59;
// 2719
o59.src = "";
// 2721
o60 = {};
// 2722
o3["29"] = o60;
// 2723
o60.src = "";
// 2725
o61 = {};
// 2726
o3["30"] = o61;
// 2727
o61.src = "";
// 2729
o62 = {};
// 2730
o3["31"] = o62;
// 2731
o62.src = "";
// 2733
o63 = {};
// 2734
o3["32"] = o63;
// 2735
o63.src = "";
// 2737
o64 = {};
// 2747
o3 = {};
// 2748
f449694821_391.returns.push(o3);
// 2749
o3.length = 44;
// 2750
o19 = {};
// 2751
o3["0"] = o19;
// 2752
o19.src = "http://jsbngssl.www.facebook.com/JSBENCH_NG_RECORD_OBJECTS.js";
// 2754
o35 = {};
// 2755
o3["1"] = o35;
// 2756
o35.src = "http://jsbngssl.www.facebook.com/JSBENCH_NG_RECORD.js";
// 2758
o43 = {};
// 2759
o3["2"] = o43;
// 2760
o43.src = "";
// 2762
o44 = {};
// 2763
o3["3"] = o44;
// 2764
o44.src = "";
// 2766
o45 = {};
// 2767
o3["4"] = o45;
// 2768
o45.src = "";
// 2770
o46 = {};
// 2771
o3["5"] = o46;
// 2772
o46.src = "http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yu/r/PHN_xWtDFVJ.js";
// 2774
o47 = {};
// 2775
o3["6"] = o47;
// 2776
o47.src = "";
// 2778
o48 = {};
// 2779
o3["7"] = o48;
// 2780
o48.src = "";
// 2782
o3["8"] = o9;
// 2784
o3["9"] = o10;
// 2786
o49 = {};
// 2787
o3["10"] = o49;
// 2788
o49.src = "";
// 2790
o50 = {};
// 2791
o3["11"] = o50;
// 2792
o50.src = "";
// 2794
o3["12"] = o20;
// 2796
o3["13"] = o21;
// 2798
o3["14"] = o22;
// 2800
o3["15"] = o23;
// 2802
o3["16"] = o24;
// 2804
o3["17"] = o25;
// 2806
o3["18"] = o26;
// 2808
o3["19"] = o27;
// 2810
o51 = {};
// 2811
o3["20"] = o51;
// 2812
o51.src = "";
// 2814
o52 = {};
// 2815
o3["21"] = o52;
// 2816
o52.src = "";
// 2818
o53 = {};
// 2819
o3["22"] = o53;
// 2820
o53.src = "";
// 2822
o54 = {};
// 2823
o3["23"] = o54;
// 2824
o54.src = "";
// 2826
o55 = {};
// 2827
o3["24"] = o55;
// 2828
o55.src = "";
// 2830
o56 = {};
// 2831
o3["25"] = o56;
// 2832
o56.src = "";
// 2834
o57 = {};
// 2835
o3["26"] = o57;
// 2836
o57.src = "";
// 2838
o58 = {};
// 2839
o3["27"] = o58;
// 2840
o58.src = "";
// undefined
o58 = null;
// 2842
o59 = {};
// 2843
o3["28"] = o59;
// 2844
o59.src = "";
// undefined
o59 = null;
// 2846
o60 = {};
// 2847
o3["29"] = o60;
// 2848
o60.src = "";
// undefined
o60 = null;
// 2850
o61 = {};
// 2851
o3["30"] = o61;
// 2852
o61.src = "";
// undefined
o61 = null;
// 2854
o62 = {};
// 2855
o3["31"] = o62;
// 2856
o62.src = "";
// undefined
o62 = null;
// 2858
o63 = {};
// 2859
o3["32"] = o63;
// 2860
o63.src = "";
// undefined
o63 = null;
// 2862
o64 = {};
// 2866
ow449694821.JSBNG__requestAnimationFrame = undefined;
// 2867
ow449694821.JSBNG__webkitRequestAnimationFrame = undefined;
// 2868
f449694821_57.returns.push(1);
// 2870
o58 = {};
// 2871
f449694821_450.returns.push(o58);
// 2872
o58.getElementsByTagName = f449694821_419;
// 2874
o58.querySelectorAll = f449694821_428;
// 2875
o59 = {};
// 2876
f449694821_428.returns.push(o59);
// 2877
o59.length = 1;
// 2878
o60 = {};
// 2879
o59["0"] = o60;
// undefined
o59 = null;
// 2880
f449694821_7.returns.push(undefined);
// 2881
f449694821_553 = function() { return f449694821_553.returns[f449694821_553.inst++]; };
f449694821_553.returns = [];
f449694821_553.inst = 0;
// 2882
ow449694821.JSBNG__onresize = f449694821_553;
// 2886
o59 = {};
// 2887
f449694821_450.returns.push(o59);
// 2888
o59.getElementsByTagName = f449694821_419;
// 2890
o59.querySelectorAll = f449694821_428;
// 2891
o61 = {};
// 2892
f449694821_428.returns.push(o61);
// 2893
o61.length = 1;
// 2894
o62 = {};
// 2895
o61["0"] = o62;
// undefined
o61 = null;
// 2897
o61 = {};
// 2898
f449694821_450.returns.push(o61);
// 2899
o61.getElementsByTagName = f449694821_419;
// 2901
o61.querySelectorAll = f449694821_428;
// 2902
o63 = {};
// 2903
f449694821_428.returns.push(o63);
// 2904
o63.length = 1;
// 2905
o65 = {};
// 2906
o63["0"] = o65;
// undefined
o63 = null;
// 2908
o63 = {};
// 2909
f449694821_450.returns.push(o63);
// undefined
o63 = null;
// 2911
o63 = {};
// 2912
f449694821_450.returns.push(o63);
// undefined
o63 = null;
// 2914
o63 = {};
// 2915
o6.classList = o63;
// 2917
f449694821_563 = function() { return f449694821_563.returns[f449694821_563.inst++]; };
f449694821_563.returns = [];
f449694821_563.inst = 0;
// 2918
o63.contains = f449694821_563;
// undefined
o63 = null;
// 2919
f449694821_563.returns.push(false);
// 2920
o4.pathname = "/";
// undefined
o4 = null;
// 2921
o4 = {};
// 2922
o4.getElementsByTagName = f449694821_419;
// 2924
o4.querySelectorAll = f449694821_428;
// undefined
o4 = null;
// 2925
o4 = {};
// 2926
f449694821_428.returns.push(o4);
// 2927
o4.length = 0;
// undefined
o4 = null;
// 2929
o0.getAttributeNode = void 0;
// 2932
o4 = {};
// 2933
f449694821_391.returns.push(o4);
// 2934
o4.length = 314;
// 2935
o4["0"] = o1;
// 2936
f449694821_566 = function() { return f449694821_566.returns[f449694821_566.inst++]; };
f449694821_566.returns = [];
f449694821_566.inst = 0;
// 2937
o1.getAttributeNode = f449694821_566;
// 2939
o63 = {};
// 2940
f449694821_566.returns.push(o63);
// 2941
o63.value = "facebook";
// undefined
o63 = null;
// 2943
o4["1"] = o7;
// 2944
o7.getAttributeNode = f449694821_566;
// undefined
o7 = null;
// 2946
f449694821_566.returns.push(null);
// 2948
o7 = {};
// 2949
o4["2"] = o7;
// 2950
o7.getAttributeNode = f449694821_566;
// undefined
o7 = null;
// 2952
f449694821_566.returns.push(null);
// 2954
o4["3"] = o19;
// 2955
o19.getAttributeNode = f449694821_566;
// undefined
o19 = null;
// 2957
f449694821_566.returns.push(null);
// 2959
o4["4"] = o35;
// 2960
o35.getAttributeNode = f449694821_566;
// undefined
o35 = null;
// 2962
f449694821_566.returns.push(null);
// 2964
o4["5"] = o43;
// 2965
o43.getAttributeNode = f449694821_566;
// undefined
o43 = null;
// 2967
f449694821_566.returns.push(null);
// 2969
o7 = {};
// 2970
o4["6"] = o7;
// 2971
o7.getAttributeNode = f449694821_566;
// undefined
o7 = null;
// 2973
f449694821_566.returns.push(null);
// 2975
o4["7"] = o44;
// 2976
o44.getAttributeNode = f449694821_566;
// undefined
o44 = null;
// 2978
f449694821_566.returns.push(null);
// 2980
o4["8"] = o45;
// 2981
o45.getAttributeNode = f449694821_566;
// undefined
o45 = null;
// 2983
f449694821_566.returns.push(null);
// 2985
o7 = {};
// 2986
o4["9"] = o7;
// 2987
o7.getAttributeNode = f449694821_566;
// undefined
o7 = null;
// 2989
f449694821_566.returns.push(null);
// 2991
o7 = {};
// 2992
o4["10"] = o7;
// 2993
o7.getAttributeNode = f449694821_566;
// undefined
o7 = null;
// 2995
f449694821_566.returns.push(null);
// 2997
o7 = {};
// 2998
o4["11"] = o7;
// 2999
o7.getAttributeNode = f449694821_566;
// undefined
o7 = null;
// 3001
o7 = {};
// 3002
f449694821_566.returns.push(o7);
// 3003
o7.value = "meta_referrer";
// undefined
o7 = null;
// 3005
o4["12"] = o8;
// 3006
o8.getAttributeNode = f449694821_566;
// undefined
o8 = null;
// 3008
f449694821_566.returns.push(null);
// 3010
o4["13"] = o11;
// 3011
o11.getAttributeNode = f449694821_566;
// undefined
o11 = null;
// 3013
f449694821_566.returns.push(null);
// 3015
o4["14"] = o12;
// 3016
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3018
f449694821_566.returns.push(null);
// 3020
o4["15"] = o13;
// 3021
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3023
f449694821_566.returns.push(null);
// 3025
o4["16"] = o46;
// 3026
o46.getAttributeNode = f449694821_566;
// undefined
o46 = null;
// 3028
f449694821_566.returns.push(null);
// 3030
o4["17"] = o47;
// 3031
o47.getAttributeNode = f449694821_566;
// undefined
o47 = null;
// 3033
f449694821_566.returns.push(null);
// 3035
o4["18"] = o48;
// 3036
o48.getAttributeNode = f449694821_566;
// undefined
o48 = null;
// 3038
f449694821_566.returns.push(null);
// 3040
o4["19"] = o9;
// 3041
o9.getAttributeNode = f449694821_566;
// undefined
o9 = null;
// 3043
f449694821_566.returns.push(null);
// 3045
o4["20"] = o10;
// 3046
o10.getAttributeNode = f449694821_566;
// undefined
o10 = null;
// 3048
f449694821_566.returns.push(null);
// 3050
o4["21"] = o49;
// 3051
o49.getAttributeNode = f449694821_566;
// undefined
o49 = null;
// 3053
f449694821_566.returns.push(null);
// 3055
o7 = {};
// 3056
o4["22"] = o7;
// 3057
o7.getAttributeNode = f449694821_566;
// undefined
o7 = null;
// 3059
o7 = {};
// 3060
f449694821_566.returns.push(o7);
// 3061
o7.value = "pageTitle";
// undefined
o7 = null;
// 3063
o4["23"] = o14;
// 3064
o14.getAttributeNode = f449694821_566;
// undefined
o14 = null;
// 3066
f449694821_566.returns.push(null);
// 3068
o7 = {};
// 3069
o4["24"] = o7;
// 3070
o7.getAttributeNode = f449694821_566;
// undefined
o7 = null;
// 3072
f449694821_566.returns.push(null);
// 3074
o4["25"] = o15;
// 3075
o15.getAttributeNode = f449694821_566;
// undefined
o15 = null;
// 3077
f449694821_566.returns.push(null);
// 3079
o4["26"] = o16;
// 3080
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3082
f449694821_566.returns.push(null);
// 3084
o4["27"] = o17;
// 3085
o17.getAttributeNode = f449694821_566;
// undefined
o17 = null;
// 3087
f449694821_566.returns.push(null);
// 3089
o4["28"] = o50;
// 3090
o50.getAttributeNode = f449694821_566;
// undefined
o50 = null;
// 3092
f449694821_566.returns.push(null);
// 3094
o4["29"] = o20;
// 3095
o20.getAttributeNode = f449694821_566;
// undefined
o20 = null;
// 3097
f449694821_566.returns.push(null);
// 3099
o4["30"] = o21;
// 3100
o21.getAttributeNode = f449694821_566;
// undefined
o21 = null;
// 3102
f449694821_566.returns.push(null);
// 3104
o4["31"] = o22;
// 3105
o22.getAttributeNode = f449694821_566;
// undefined
o22 = null;
// 3107
f449694821_566.returns.push(null);
// 3109
o4["32"] = o23;
// 3110
o23.getAttributeNode = f449694821_566;
// undefined
o23 = null;
// 3112
f449694821_566.returns.push(null);
// 3114
o4["33"] = o24;
// 3115
o24.getAttributeNode = f449694821_566;
// undefined
o24 = null;
// 3117
f449694821_566.returns.push(null);
// 3119
o4["34"] = o25;
// 3120
o25.getAttributeNode = f449694821_566;
// undefined
o25 = null;
// 3122
f449694821_566.returns.push(null);
// 3124
o4["35"] = o26;
// 3125
o26.getAttributeNode = f449694821_566;
// undefined
o26 = null;
// 3127
f449694821_566.returns.push(null);
// 3129
o4["36"] = o27;
// 3130
o27.getAttributeNode = f449694821_566;
// undefined
o27 = null;
// 3132
f449694821_566.returns.push(null);
// 3134
o4["37"] = o6;
// 3135
o6.getAttributeNode = f449694821_566;
// 3137
f449694821_566.returns.push(null);
// 3139
o7 = {};
// 3140
o4["38"] = o7;
// 3141
o7.getAttributeNode = f449694821_566;
// 3143
f449694821_566.returns.push(null);
// 3145
o8 = {};
// 3146
o4["39"] = o8;
// 3147
o8.getAttributeNode = f449694821_566;
// 3149
o9 = {};
// 3150
f449694821_566.returns.push(o9);
// 3151
o9.value = "pagelet_bluebar";
// undefined
o9 = null;
// 3153
o9 = {};
// 3154
o4["40"] = o9;
// 3155
o9.getAttributeNode = f449694821_566;
// 3157
o10 = {};
// 3158
f449694821_566.returns.push(o10);
// 3159
o10.value = "blueBarHolder";
// undefined
o10 = null;
// 3161
o10 = {};
// 3162
o4["41"] = o10;
// 3163
o10.getAttributeNode = f449694821_566;
// 3165
o11 = {};
// 3166
f449694821_566.returns.push(o11);
// 3167
o11.value = "blueBar";
// undefined
o11 = null;
// 3169
o11 = {};
// 3170
o4["42"] = o11;
// 3171
o11.getAttributeNode = f449694821_566;
// 3173
o12 = {};
// 3174
f449694821_566.returns.push(o12);
// 3175
o12.value = "pageHead";
// undefined
o12 = null;
// 3177
o12 = {};
// 3178
o4["43"] = o12;
// 3179
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3181
o12 = {};
// 3182
f449694821_566.returns.push(o12);
// 3183
o12.value = "pageLogo";
// undefined
o12 = null;
// 3185
o12 = {};
// 3186
o4["44"] = o12;
// 3187
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3189
f449694821_566.returns.push(null);
// 3191
o12 = {};
// 3192
o4["45"] = o12;
// 3193
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3195
o12 = {};
// 3196
f449694821_566.returns.push(o12);
// 3197
o12.value = "jewelContainer";
// undefined
o12 = null;
// 3199
o4["46"] = o59;
// 3200
o59.getAttributeNode = f449694821_566;
// undefined
o59 = null;
// 3202
o12 = {};
// 3203
f449694821_566.returns.push(o12);
// 3204
o12.value = "fbRequestsJewel";
// undefined
o12 = null;
// 3206
o12 = {};
// 3207
o4["47"] = o12;
// 3208
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3210
f449694821_566.returns.push(null);
// 3212
o12 = {};
// 3213
o4["48"] = o12;
// 3214
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3216
o12 = {};
// 3217
f449694821_566.returns.push(o12);
// 3218
o12.value = "requestsCountWrapper";
// undefined
o12 = null;
// 3220
o12 = {};
// 3221
o4["49"] = o12;
// 3222
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3224
o12 = {};
// 3225
f449694821_566.returns.push(o12);
// 3226
o12.value = "requestsCountValue";
// undefined
o12 = null;
// 3228
o12 = {};
// 3229
o4["50"] = o12;
// 3230
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3232
f449694821_566.returns.push(null);
// 3234
o4["51"] = o62;
// 3235
o62.getAttributeNode = f449694821_566;
// undefined
o62 = null;
// 3237
o12 = {};
// 3238
f449694821_566.returns.push(o12);
// 3239
o12.value = "fbRequestsFlyout";
// undefined
o12 = null;
// 3241
o12 = {};
// 3242
o4["52"] = o12;
// 3243
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3245
f449694821_566.returns.push(null);
// 3247
o12 = {};
// 3248
o4["53"] = o12;
// 3249
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3251
f449694821_566.returns.push(null);
// 3253
o12 = {};
// 3254
o4["54"] = o12;
// 3255
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3257
f449694821_566.returns.push(null);
// 3259
o12 = {};
// 3260
o4["55"] = o12;
// 3261
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3263
o12 = {};
// 3264
f449694821_566.returns.push(o12);
// 3265
o12.value = "fbRequestsList";
// undefined
o12 = null;
// 3267
o12 = {};
// 3268
o4["56"] = o12;
// 3269
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3271
o12 = {};
// 3272
f449694821_566.returns.push(o12);
// 3273
o12.value = "fbRequestsList_loading_indicator";
// undefined
o12 = null;
// 3275
o12 = {};
// 3276
o4["57"] = o12;
// 3277
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3279
f449694821_566.returns.push(null);
// 3281
o4["58"] = o58;
// 3282
o58.getAttributeNode = f449694821_566;
// undefined
o58 = null;
// 3284
o12 = {};
// 3285
f449694821_566.returns.push(o12);
// 3286
o12.value = "fbMessagesJewel";
// undefined
o12 = null;
// 3288
o12 = {};
// 3289
o4["59"] = o12;
// 3290
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3292
f449694821_566.returns.push(null);
// 3294
o12 = {};
// 3295
o4["60"] = o12;
// 3296
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3298
o12 = {};
// 3299
f449694821_566.returns.push(o12);
// 3300
o12.value = "mercurymessagesCountWrapper";
// undefined
o12 = null;
// 3302
o12 = {};
// 3303
o4["61"] = o12;
// 3304
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3306
o12 = {};
// 3307
f449694821_566.returns.push(o12);
// 3308
o12.value = "mercurymessagesCountValue";
// undefined
o12 = null;
// 3310
o12 = {};
// 3311
o4["62"] = o12;
// 3312
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3314
f449694821_566.returns.push(null);
// 3316
o4["63"] = o60;
// 3317
o60.getAttributeNode = f449694821_566;
// undefined
o60 = null;
// 3319
o12 = {};
// 3320
f449694821_566.returns.push(o12);
// 3321
o12.value = "fbMessagesFlyout";
// undefined
o12 = null;
// 3323
o12 = {};
// 3324
o4["64"] = o12;
// 3325
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3327
f449694821_566.returns.push(null);
// 3329
o12 = {};
// 3330
o4["65"] = o12;
// 3331
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3333
f449694821_566.returns.push(null);
// 3335
o12 = {};
// 3336
o4["66"] = o12;
// 3337
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3339
f449694821_566.returns.push(null);
// 3341
o12 = {};
// 3342
o4["67"] = o12;
// 3343
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3345
f449694821_566.returns.push(null);
// 3347
o12 = {};
// 3348
o4["68"] = o12;
// 3349
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3351
f449694821_566.returns.push(null);
// 3353
o12 = {};
// 3354
o4["69"] = o12;
// 3355
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3357
f449694821_566.returns.push(null);
// 3359
o12 = {};
// 3360
o4["70"] = o12;
// 3361
o12.getAttributeNode = f449694821_566;
// undefined
o12 = null;
// 3363
f449694821_566.returns.push(null);
// 3365
o4["71"] = o51;
// 3366
o51.getAttributeNode = f449694821_566;
// undefined
o51 = null;
// 3368
f449694821_566.returns.push(null);
// 3370
o12 = {};
// 3371
o4["72"] = o12;
// 3372
o12.getAttributeNode = f449694821_566;
// 3374
o13 = {};
// 3375
f449694821_566.returns.push(o13);
// 3376
o13.value = "u_0_4";
// undefined
o13 = null;
// 3378
o13 = {};
// 3379
o4["73"] = o13;
// 3380
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3382
f449694821_566.returns.push(null);
// 3384
o13 = {};
// 3385
o4["74"] = o13;
// 3386
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3388
f449694821_566.returns.push(null);
// 3390
o13 = {};
// 3391
o4["75"] = o13;
// 3392
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3394
f449694821_566.returns.push(null);
// 3396
o13 = {};
// 3397
o4["76"] = o13;
// 3398
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3400
f449694821_566.returns.push(null);
// 3402
o13 = {};
// 3403
o4["77"] = o13;
// 3404
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3406
f449694821_566.returns.push(null);
// 3408
o13 = {};
// 3409
o4["78"] = o13;
// 3410
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3412
f449694821_566.returns.push(null);
// 3414
o13 = {};
// 3415
o4["79"] = o13;
// 3416
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3418
f449694821_566.returns.push(null);
// 3420
o4["80"] = o28;
// 3421
o28.getAttributeNode = f449694821_566;
// undefined
o28 = null;
// 3423
o13 = {};
// 3424
f449694821_566.returns.push(o13);
// 3425
o13.value = "MercuryJewelThreadList";
// undefined
o13 = null;
// 3427
o4["81"] = o30;
// 3428
o30.getAttributeNode = f449694821_566;
// undefined
o30 = null;
// 3430
f449694821_566.returns.push(null);
// 3432
o4["82"] = o31;
// 3433
o31.getAttributeNode = f449694821_566;
// undefined
o31 = null;
// 3435
f449694821_566.returns.push(null);
// 3437
o4["83"] = o32;
// 3438
o32.getAttributeNode = f449694821_566;
// undefined
o32 = null;
// 3440
f449694821_566.returns.push(null);
// 3442
o13 = {};
// 3443
o4["84"] = o13;
// 3444
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3446
f449694821_566.returns.push(null);
// 3448
o13 = {};
// 3449
o4["85"] = o13;
// 3450
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3452
f449694821_566.returns.push(null);
// 3454
o13 = {};
// 3455
o4["86"] = o13;
// 3456
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3458
f449694821_566.returns.push(null);
// 3460
o13 = {};
// 3461
o4["87"] = o13;
// 3462
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3464
f449694821_566.returns.push(null);
// 3466
o13 = {};
// 3467
o4["88"] = o13;
// 3468
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3470
f449694821_566.returns.push(null);
// 3472
o13 = {};
// 3473
o4["89"] = o13;
// 3474
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3476
f449694821_566.returns.push(null);
// 3478
o13 = {};
// 3479
o4["90"] = o13;
// 3480
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3482
f449694821_566.returns.push(null);
// 3484
o13 = {};
// 3485
o4["91"] = o13;
// 3486
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3488
f449694821_566.returns.push(null);
// 3490
o13 = {};
// 3491
o4["92"] = o13;
// 3492
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3494
f449694821_566.returns.push(null);
// 3496
o13 = {};
// 3497
o4["93"] = o13;
// 3498
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3500
f449694821_566.returns.push(null);
// 3502
o4["94"] = o33;
// 3503
o33.getAttributeNode = f449694821_566;
// undefined
o33 = null;
// 3505
f449694821_566.returns.push(null);
// 3507
o4["95"] = o34;
// 3508
o34.getAttributeNode = f449694821_566;
// undefined
o34 = null;
// 3510
f449694821_566.returns.push(null);
// 3512
o13 = {};
// 3513
o4["96"] = o13;
// 3514
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3516
o13 = {};
// 3517
f449694821_566.returns.push(o13);
// 3518
o13.value = "MercuryJewelFooter";
// undefined
o13 = null;
// 3520
o13 = {};
// 3521
o4["97"] = o13;
// 3522
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3524
f449694821_566.returns.push(null);
// 3526
o13 = {};
// 3527
o4["98"] = o13;
// 3528
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3530
f449694821_566.returns.push(null);
// 3532
o13 = {};
// 3533
o4["99"] = o13;
// 3534
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3536
f449694821_566.returns.push(null);
// 3538
o4["100"] = o61;
// 3539
o61.getAttributeNode = f449694821_566;
// undefined
o61 = null;
// 3541
o13 = {};
// 3542
f449694821_566.returns.push(o13);
// 3543
o13.value = "fbNotificationsJewel";
// undefined
o13 = null;
// 3545
o4["101"] = o52;
// 3546
o52.getAttributeNode = f449694821_566;
// undefined
o52 = null;
// 3548
f449694821_566.returns.push(null);
// 3550
o13 = {};
// 3551
o4["102"] = o13;
// 3552
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3554
f449694821_566.returns.push(null);
// 3556
o13 = {};
// 3557
o4["103"] = o13;
// 3558
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3560
o13 = {};
// 3561
f449694821_566.returns.push(o13);
// 3562
o13.value = "notificationsCountWrapper";
// undefined
o13 = null;
// 3564
o13 = {};
// 3565
o4["104"] = o13;
// 3566
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3568
o13 = {};
// 3569
f449694821_566.returns.push(o13);
// 3570
o13.value = "notificationsCountValue";
// undefined
o13 = null;
// 3572
o13 = {};
// 3573
o4["105"] = o13;
// 3574
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3576
f449694821_566.returns.push(null);
// 3578
o4["106"] = o65;
// 3579
o65.getAttributeNode = f449694821_566;
// undefined
o65 = null;
// 3581
o13 = {};
// 3582
f449694821_566.returns.push(o13);
// 3583
o13.value = "fbNotificationsFlyout";
// undefined
o13 = null;
// 3585
o13 = {};
// 3586
o4["107"] = o13;
// 3587
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3589
f449694821_566.returns.push(null);
// 3591
o13 = {};
// 3592
o4["108"] = o13;
// 3593
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3595
f449694821_566.returns.push(null);
// 3597
o13 = {};
// 3598
o4["109"] = o13;
// 3599
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3601
f449694821_566.returns.push(null);
// 3603
o13 = {};
// 3604
o4["110"] = o13;
// 3605
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3607
f449694821_566.returns.push(null);
// 3609
o13 = {};
// 3610
o4["111"] = o13;
// 3611
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3613
f449694821_566.returns.push(null);
// 3615
o13 = {};
// 3616
o4["112"] = o13;
// 3617
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3619
f449694821_566.returns.push(null);
// 3621
o13 = {};
// 3622
o4["113"] = o13;
// 3623
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3625
f449694821_566.returns.push(null);
// 3627
o13 = {};
// 3628
o4["114"] = o13;
// 3629
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3631
f449694821_566.returns.push(null);
// 3633
o13 = {};
// 3634
o4["115"] = o13;
// 3635
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3637
f449694821_566.returns.push(null);
// 3639
o13 = {};
// 3640
o4["116"] = o13;
// 3641
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3643
f449694821_566.returns.push(null);
// 3645
o13 = {};
// 3646
o4["117"] = o13;
// 3647
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3649
f449694821_566.returns.push(null);
// 3651
o4["118"] = o29;
// 3652
o29.getAttributeNode = f449694821_566;
// undefined
o29 = null;
// 3654
o13 = {};
// 3655
f449694821_566.returns.push(o13);
// 3656
o13.value = "u_0_5";
// undefined
o13 = null;
// 3658
o4["119"] = o36;
// 3659
o36.getAttributeNode = f449694821_566;
// undefined
o36 = null;
// 3661
f449694821_566.returns.push(null);
// 3663
o4["120"] = o37;
// 3664
o37.getAttributeNode = f449694821_566;
// undefined
o37 = null;
// 3666
f449694821_566.returns.push(null);
// 3668
o4["121"] = o38;
// 3669
o38.getAttributeNode = f449694821_566;
// undefined
o38 = null;
// 3671
f449694821_566.returns.push(null);
// 3673
o13 = {};
// 3674
o4["122"] = o13;
// 3675
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3677
o13 = {};
// 3678
f449694821_566.returns.push(o13);
// 3679
o13.value = "fbNotificationsList";
// undefined
o13 = null;
// 3681
o13 = {};
// 3682
o4["123"] = o13;
// 3683
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3685
o13 = {};
// 3686
f449694821_566.returns.push(o13);
// 3687
o13.value = "fbNotificationsList_loading_indicator";
// undefined
o13 = null;
// 3689
o13 = {};
// 3690
o4["124"] = o13;
// 3691
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3693
f449694821_566.returns.push(null);
// 3695
o13 = {};
// 3696
o4["125"] = o13;
// 3697
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3699
f449694821_566.returns.push(null);
// 3701
o13 = {};
// 3702
o4["126"] = o13;
// 3703
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3705
f449694821_566.returns.push(null);
// 3707
o13 = {};
// 3708
o4["127"] = o13;
// 3709
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3711
f449694821_566.returns.push(null);
// 3713
o13 = {};
// 3714
o4["128"] = o13;
// 3715
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3717
f449694821_566.returns.push(null);
// 3719
o13 = {};
// 3720
o4["129"] = o13;
// 3721
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3723
f449694821_566.returns.push(null);
// 3725
o13 = {};
// 3726
o4["130"] = o13;
// 3727
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3729
f449694821_566.returns.push(null);
// 3731
o4["131"] = o39;
// 3732
o39.getAttributeNode = f449694821_566;
// undefined
o39 = null;
// 3734
f449694821_566.returns.push(null);
// 3736
o4["132"] = o40;
// 3737
o40.getAttributeNode = f449694821_566;
// undefined
o40 = null;
// 3739
f449694821_566.returns.push(null);
// 3741
o13 = {};
// 3742
o4["133"] = o13;
// 3743
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3745
o13 = {};
// 3746
f449694821_566.returns.push(o13);
// 3747
o13.value = "jewelNotice";
// undefined
o13 = null;
// 3749
o13 = {};
// 3750
o4["134"] = o13;
// 3751
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3753
f449694821_566.returns.push(null);
// 3755
o13 = {};
// 3756
o4["135"] = o13;
// 3757
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3759
f449694821_566.returns.push(null);
// 3761
o13 = {};
// 3762
o4["136"] = o13;
// 3763
o13.getAttributeNode = f449694821_566;
// undefined
o13 = null;
// 3765
f449694821_566.returns.push(null);
// 3767
o13 = {};
// 3768
o4["137"] = o13;
// 3769
o13.getAttributeNode = f449694821_566;
// 3771
o14 = {};
// 3772
f449694821_566.returns.push(o14);
// 3773
o14.value = "headNav";
// undefined
o14 = null;
// 3775
o4["138"] = o53;
// 3776
o53.getAttributeNode = f449694821_566;
// undefined
o53 = null;
// 3778
f449694821_566.returns.push(null);
// 3780
o14 = {};
// 3781
o4["139"] = o14;
// 3782
o14.getAttributeNode = f449694821_424;
// undefined
o14 = null;
// 3784
o14 = {};
// 3785
f449694821_424.returns.push(o14);
// 3786
o14.value = "navSearch";
// undefined
o14 = null;
// 3788
o14 = {};
// 3789
o4["140"] = o14;
// 3790
o14.getAttributeNode = f449694821_566;
// undefined
o14 = null;
// 3792
o14 = {};
// 3793
f449694821_566.returns.push(o14);
// 3794
o14.value = "u_0_2";
// undefined
o14 = null;
// 3796
o14 = {};
// 3797
o4["141"] = o14;
// 3798
o14.getAttributeNode = f449694821_566;
// undefined
o14 = null;
// 3800
f449694821_566.returns.push(null);
// 3802
o14 = {};
// 3803
o4["142"] = o14;
// 3804
f449694821_691 = function() { return f449694821_691.returns[f449694821_691.inst++]; };
f449694821_691.returns = [];
f449694821_691.inst = 0;
// 3805
o14.getAttributeNode = f449694821_691;
// undefined
o14 = null;
// 3807
f449694821_691.returns.push(null);
// 3809
o14 = {};
// 3810
o4["143"] = o14;
// 3811
o14.getAttributeNode = f449694821_566;
// undefined
o14 = null;
// 3813
f449694821_566.returns.push(null);
// 3815
o14 = {};
// 3816
o4["144"] = o14;
// 3817
o14.getAttributeNode = f449694821_566;
// undefined
o14 = null;
// 3819
o14 = {};
// 3820
f449694821_566.returns.push(o14);
// 3821
o14.value = "u_0_3";
// undefined
o14 = null;
// 3823
o14 = {};
// 3824
o4["145"] = o14;
// 3825
o14.getAttributeNode = f449694821_566;
// undefined
o14 = null;
// 3827
f449694821_566.returns.push(null);
// 3829
o4["146"] = o54;
// 3830
o54.getAttributeNode = f449694821_566;
// undefined
o54 = null;
// 3832
f449694821_566.returns.push(null);
// 3834
o4["147"] = o55;
// 3835
o55.getAttributeNode = f449694821_566;
// undefined
o55 = null;
// 3837
f449694821_566.returns.push(null);
// 3839
o14 = {};
// 3840
o4["148"] = o14;
// 3841
o14.getAttributeNode = f449694821_691;
// undefined
o14 = null;
// 3843
o14 = {};
// 3844
f449694821_691.returns.push(o14);
// 3845
o14.value = "q";
// undefined
o14 = null;
// 3847
o4["149"] = o56;
// 3848
o56.getAttributeNode = f449694821_566;
// undefined
o56 = null;
// 3850
f449694821_566.returns.push(null);
// 3852
o14 = {};
// 3853
o4["150"] = o14;
// 3854
o14.getAttributeNode = f449694821_566;
// undefined
o14 = null;
// 3856
f449694821_566.returns.push(null);
// 3858
o14 = {};
// 3859
o4["151"] = o14;
// 3860
o14.getAttributeNode = f449694821_566;
// undefined
o14 = null;
// 3862
f449694821_566.returns.push(null);
// 3864
o14 = {};
// 3865
o4["152"] = o14;
// 3866
o14.getAttributeNode = f449694821_566;
// undefined
o14 = null;
// 3868
o14 = {};
// 3869
f449694821_566.returns.push(o14);
// 3870
o14.value = "u_0_0";
// undefined
o14 = null;
// 3872
o14 = {};
// 3873
o4["153"] = o14;
// 3874
o14.getAttributeNode = f449694821_691;
// undefined
o14 = null;
// 3876
o14 = {};
// 3877
f449694821_691.returns.push(o14);
// 3878
o14.value = "init";
// undefined
o14 = null;
// 3880
o14 = {};
// 3881
o4["154"] = o14;
// 3882
o14.getAttributeNode = f449694821_691;
// undefined
o14 = null;
// 3884
f449694821_691.returns.push(null);
// 3886
o14 = {};
// 3887
o4["155"] = o14;
// 3888
o14.getAttributeNode = f449694821_691;
// undefined
o14 = null;
// 3890
o14 = {};
// 3891
f449694821_691.returns.push(o14);
// 3892
o14.value = "search_first_focus";
// undefined
o14 = null;
// 3894
o14 = {};
// 3895
o4["156"] = o14;
// 3896
o14.getAttributeNode = f449694821_566;
// 3898
f449694821_566.returns.push(null);
// 3900
o15 = {};
// 3901
o4["157"] = o15;
// 3902
o15.getAttributeNode = f449694821_566;
// 3904
o16 = {};
// 3905
f449694821_566.returns.push(o16);
// 3906
o16.value = "pageNav";
// undefined
o16 = null;
// 3908
o16 = {};
// 3909
o4["158"] = o16;
// 3910
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3912
f449694821_566.returns.push(null);
// 3914
o16 = {};
// 3915
o4["159"] = o16;
// 3916
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3918
f449694821_566.returns.push(null);
// 3920
o16 = {};
// 3921
o4["160"] = o16;
// 3922
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3924
o16 = {};
// 3925
f449694821_566.returns.push(o16);
// 3926
o16.value = "profile_pic_header_100006118350059";
// undefined
o16 = null;
// 3928
o16 = {};
// 3929
o4["161"] = o16;
// 3930
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3932
f449694821_566.returns.push(null);
// 3934
o16 = {};
// 3935
o4["162"] = o16;
// 3936
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3938
f449694821_566.returns.push(null);
// 3940
o4["163"] = o57;
// 3941
o57.getAttributeNode = f449694821_566;
// undefined
o57 = null;
// 3943
f449694821_566.returns.push(null);
// 3945
o16 = {};
// 3946
o4["164"] = o16;
// 3947
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3949
f449694821_566.returns.push(null);
// 3951
o16 = {};
// 3952
o4["165"] = o16;
// 3953
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3955
f449694821_566.returns.push(null);
// 3957
o16 = {};
// 3958
o4["166"] = o16;
// 3959
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3961
o16 = {};
// 3962
f449694821_566.returns.push(o16);
// 3963
o16.value = "navFindFriends";
// undefined
o16 = null;
// 3965
o16 = {};
// 3966
o4["167"] = o16;
// 3967
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3969
o16 = {};
// 3970
f449694821_566.returns.push(o16);
// 3971
o16.value = "findFriendsNav";
// undefined
o16 = null;
// 3973
o16 = {};
// 3974
o4["168"] = o16;
// 3975
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3977
o16 = {};
// 3978
f449694821_566.returns.push(o16);
// 3979
o16.value = "navHome";
// undefined
o16 = null;
// 3981
o16 = {};
// 3982
o4["169"] = o16;
// 3983
o16.getAttributeNode = f449694821_566;
// undefined
o16 = null;
// 3985
f449694821_566.returns.push(null);
// 3987
o16 = {};
// 3988
o4["170"] = o16;
// 3989
o16.getAttributeNode = f449694821_566;
// 3991
o17 = {};
// 3992
f449694821_566.returns.push(o17);
// 3993
o17.value = "navPrivacy";
// undefined
o17 = null;
// 3995
o17 = {};
// 3996
o4["171"] = o17;
// 3997
o17.getAttributeNode = f449694821_566;
// 3999
o19 = {};
// 4000
f449694821_566.returns.push(o19);
// 4001
o19.value = "u_0_8";
// undefined
o19 = null;
// 4003
o19 = {};
// 4004
o4["172"] = o19;
// undefined
o4 = null;
// 4005
o19.getAttributeNode = f449694821_566;
// 4007
o4 = {};
// 4008
f449694821_566.returns.push(o4);
// 4009
o4.value = "u_0_6";
// undefined
o4 = null;
// 4011
o4 = {};
// 4012
o19.classList = o4;
// 4014
o4.contains = f449694821_563;
// undefined
o4 = null;
// 4015
f449694821_563.returns.push(false);
// 4016
o19.parentNode = o17;
// undefined
o19 = null;
// 4017
o4 = {};
// 4018
o17.classList = o4;
// 4020
o4.contains = f449694821_563;
// undefined
o4 = null;
// 4021
f449694821_563.returns.push(false);
// 4022
o17.parentNode = o16;
// undefined
o17 = null;
// 4023
o4 = {};
// 4024
o16.classList = o4;
// 4026
o4.contains = f449694821_563;
// undefined
o4 = null;
// 4027
f449694821_563.returns.push(false);
// 4028
o16.parentNode = o15;
// undefined
o16 = null;
// 4029
o4 = {};
// 4030
o15.classList = o4;
// 4032
o4.contains = f449694821_563;
// undefined
o4 = null;
// 4033
f449694821_563.returns.push(false);
// 4034
o15.parentNode = o14;
// undefined
o15 = null;
// 4035
o4 = {};
// 4036
o14.classList = o4;
// 4038
o4.contains = f449694821_563;
// undefined
o4 = null;
// 4039
f449694821_563.returns.push(false);
// 4040
o14.parentNode = o13;
// undefined
o14 = null;
// 4041
o4 = {};
// 4042
o13.classList = o4;
// 4044
o4.contains = f449694821_563;
// undefined
o4 = null;
// 4045
f449694821_563.returns.push(false);
// 4046
o13.parentNode = o11;
// undefined
o13 = null;
// 4047
o4 = {};
// 4048
o11.classList = o4;
// 4050
o4.contains = f449694821_563;
// undefined
o4 = null;
// 4051
f449694821_563.returns.push(false);
// 4052
o11.parentNode = o10;
// undefined
o11 = null;
// 4053
o4 = {};
// 4054
o10.classList = o4;
// 4056
o4.contains = f449694821_563;
// undefined
o4 = null;
// 4057
f449694821_563.returns.push(false);
// 4058
o10.parentNode = o9;
// undefined
o10 = null;
// 4059
o4 = {};
// 4060
o9.classList = o4;
// 4062
o4.contains = f449694821_563;
// undefined
o4 = null;
// 4063
f449694821_563.returns.push(false);
// 4064
o9.parentNode = o8;
// undefined
o9 = null;
// 4065
o4 = {};
// 4066
o8.classList = o4;
// 4068
o4.contains = f449694821_563;
// undefined
o4 = null;
// 4069
f449694821_563.returns.push(false);
// 4070
o8.parentNode = o7;
// undefined
o8 = null;
// 4071
o4 = {};
// 4072
o7.classList = o4;
// 4074
o4.contains = f449694821_563;
// undefined
o4 = null;
// 4075
f449694821_563.returns.push(false);
// 4076
o7.parentNode = o6;
// undefined
o7 = null;
// 4080
ow449694821.JSBNG__random = undefined;
// 4081
f449694821_386.returns.push(0.3433784359517864);
// 4084
f449694821_387.returns.push(1373490177325);
// 4085
o4 = {};
// 4086
f449694821_64.returns.push(o4);
// undefined
o4 = null;
// 4087
f449694821_7.returns.push(undefined);
// 4088
ow449694821.JSBNG__attachEvent = undefined;
// 4089
f449694821_16.returns.push(13);
// 4092
f449694821_450.returns.push(o12);
// 4093
o12.nodeName = "A";
// 4094
o12.__FB_TOKEN = void 0;
// 4095
// 4096
o12.getAttribute = f449694821_444;
// 4097
o12.hasAttribute = f449694821_445;
// 4099
f449694821_445.returns.push(false);
// 4100
o12.JSBNG__addEventListener = f449694821_402;
// 4102
f449694821_402.returns.push(undefined);
// 4103
f449694821_748 = function() { return f449694821_748.returns[f449694821_748.inst++]; };
f449694821_748.returns = [];
f449694821_748.inst = 0;
// 4104
o12.JSBNG__onclick = f449694821_748;
// 4107
// undefined
o12 = null;
// 4111
o4 = {};
// 4112
f449694821_396.returns.push(o4);
// 4113
// 4114
// 4115
o4.getElementsByTagName = f449694821_419;
// 4116
o7 = {};
// 4117
f449694821_419.returns.push(o7);
// 4118
o7.length = 0;
// undefined
o7 = null;
// 4120
o7 = {};
// 4121
o4.childNodes = o7;
// undefined
o4 = null;
// 4122
o7.item = f449694821_422;
// 4123
o7.length = 1;
// 4124
o4 = {};
// 4125
o7["0"] = o4;
// undefined
o7 = null;
// undefined
o4 = null;
// 4127
o4 = {};
// 4128
f449694821_396.returns.push(o4);
// 4129
// 4130
// 4131
o4.getElementsByTagName = f449694821_419;
// 4132
o7 = {};
// 4133
f449694821_419.returns.push(o7);
// 4134
o7.length = 0;
// undefined
o7 = null;
// 4136
o7 = {};
// 4137
o4.childNodes = o7;
// undefined
o4 = null;
// 4138
o7.item = f449694821_422;
// 4139
o7.length = 1;
// 4140
o4 = {};
// 4141
o7["0"] = o4;
// undefined
o7 = null;
// undefined
o4 = null;
// 4143
o4 = {};
// 4144
f449694821_396.returns.push(o4);
// 4145
// 4146
// 4147
o4.getElementsByTagName = f449694821_419;
// 4148
o7 = {};
// 4149
f449694821_419.returns.push(o7);
// 4150
o7.length = 0;
// undefined
o7 = null;
// 4152
o7 = {};
// 4153
o4.childNodes = o7;
// undefined
o4 = null;
// 4154
o7.item = f449694821_422;
// 4155
o7.length = 1;
// 4156
o4 = {};
// 4157
o7["0"] = o4;
// undefined
o7 = null;
// undefined
o4 = null;
// 4159
o4 = {};
// 4160
f449694821_396.returns.push(o4);
// 4161
// 4162
// 4163
o4.getElementsByTagName = f449694821_419;
// 4164
o7 = {};
// 4165
f449694821_419.returns.push(o7);
// 4166
o7.length = 0;
// undefined
o7 = null;
// 4168
o7 = {};
// 4169
o4.childNodes = o7;
// undefined
o4 = null;
// 4170
o7.item = f449694821_422;
// 4171
o7.length = 1;
// 4172
o4 = {};
// 4173
o7["0"] = o4;
// undefined
o7 = null;
// undefined
o4 = null;
// 4175
o4 = {};
// 4176
f449694821_396.returns.push(o4);
// undefined
o4 = null;
// 4177
o4 = {};
// 4178
o0.implementation = o4;
// 4180
f449694821_767 = function() { return f449694821_767.returns[f449694821_767.inst++]; };
f449694821_767.returns = [];
f449694821_767.inst = 0;
// 4181
o4.hasFeature = f449694821_767;
// undefined
o4 = null;
// 4184
f449694821_767.returns.push(true);
// 4186
o4 = {};
// 4187
f449694821_396.returns.push(o4);
// undefined
o4 = null;
// 4189
o4 = {};
// 4190
f449694821_396.returns.push(o4);
// 4191
f449694821_770 = function() { return f449694821_770.returns[f449694821_770.inst++]; };
f449694821_770.returns = [];
f449694821_770.inst = 0;
// 4192
o4.setAttribute = f449694821_770;
// 4193
f449694821_770.returns.push(undefined);
// 4194
o4.JSBNG__onchange = null;
// 4196
// 4197
f449694821_771 = function() { return f449694821_771.returns[f449694821_771.inst++]; };
f449694821_771.returns = [];
f449694821_771.inst = 0;
// 4198
o4.removeAttribute = f449694821_771;
// undefined
o4 = null;
// 4199
f449694821_771.returns.push(undefined);
// 4201
o4 = {};
// 4202
f449694821_396.returns.push(o4);
// 4203
o4.setAttribute = f449694821_770;
// 4204
f449694821_770.returns.push(undefined);
// 4205
o4.JSBNG__oninput = null;
// 4207
// 4208
o4.removeAttribute = f449694821_771;
// undefined
o4 = null;
// 4209
f449694821_771.returns.push(undefined);
// 4211
o4 = {};
// 4212
f449694821_396.returns.push(o4);
// 4213
// 4214
// 4215
o4.getElementsByTagName = f449694821_419;
// 4216
o7 = {};
// 4217
f449694821_419.returns.push(o7);
// 4218
o7.length = 0;
// undefined
o7 = null;
// 4220
o7 = {};
// 4221
o4.childNodes = o7;
// undefined
o4 = null;
// 4222
o7.item = f449694821_422;
// 4223
o7.length = 1;
// 4224
o4 = {};
// 4225
o7["0"] = o4;
// undefined
o7 = null;
// undefined
o4 = null;
// 4227
o4 = {};
// 4228
f449694821_396.returns.push(o4);
// 4229
// 4230
// 4231
o4.getElementsByTagName = f449694821_419;
// 4232
o7 = {};
// 4233
f449694821_419.returns.push(o7);
// 4234
o7.length = 0;
// undefined
o7 = null;
// 4236
o7 = {};
// 4237
o4.childNodes = o7;
// undefined
o4 = null;
// 4238
o7.item = f449694821_422;
// 4239
o7.length = 1;
// 4240
o4 = {};
// 4241
o7["0"] = o4;
// undefined
o7 = null;
// undefined
o4 = null;
// 4242
f449694821_17.returns.push(14);
// 4243
o2.onLine = true;
// 4244
f449694821_7.returns.push(undefined);
// 4245
f449694821_7.returns.push(undefined);
// 4247
f449694821_387.returns.push(1373490177501);
// 4249
f449694821_387.returns.push(1373490177501);
// 4250
o0.compatMode = "CSS1Compat";
// 4253
f449694821_7.returns.push(undefined);
// 4254
ow449694821.JSBNG__onJSBNG__focus = undefined;
// 4259
f449694821_402.returns.push(undefined);
// 4260
o1.JSBNG__onDOMMouseScroll = void 0;
// 4267
f449694821_402.returns.push(undefined);
// 4268
o1.JSBNG__onmousemove = null;
// 4273
f449694821_402.returns.push(undefined);
// 4274
o1.JSBNG__onmouseover = null;
// 4277
o3["33"] = o64;
// 4282
o64.src = "";
// undefined
o64 = null;
// 4288
o4 = {};
// 4291
o3["34"] = o4;
// 4296
o4.src = "";
// undefined
o4 = null;
// 4302
o4 = {};
// 4305
o3["35"] = o4;
// 4310
o4.src = "";
// undefined
o4 = null;
// 4316
o4 = {};
// 4319
o3["36"] = o4;
// 4324
o4.src = "";
// undefined
o4 = null;
// 4330
o4 = {};
// 4333
o3["37"] = o4;
// 4338
o4.src = "";
// undefined
o4 = null;
// 4344
o4 = {};
// 4347
o3["38"] = o4;
// 4352
o4.src = "";
// undefined
o4 = null;
// 4358
o4 = {};
// 4361
o3["39"] = o4;
// 4366
o4.src = "";
// undefined
o4 = null;
// 4372
o4 = {};
// 4375
o3["40"] = o4;
// 4380
o4.src = "";
// undefined
o4 = null;
// 4386
o4 = {};
// 4389
o3["41"] = o4;
// 4394
o4.src = "";
// undefined
o4 = null;
// 4400
o4 = {};
// 4403
o3["42"] = o4;
// 4408
o4.src = "";
// undefined
o4 = null;
// 4414
o4 = {};
// 4417
o3["43"] = o4;
// undefined
o3 = null;
// 4422
o4.src = "";
// undefined
o4 = null;
// 4427
f449694821_795 = function() { return f449694821_795.returns[f449694821_795.inst++]; };
f449694821_795.returns = [];
f449694821_795.inst = 0;
// 4428
o2.javaEnabled = f449694821_795;
// 4429
f449694821_795.returns.push(true);
// 4430
o3 = {};
// 4431
o4 = {};
// 4433
o7 = {};
// 4434
o3._moduleIDsToCleanup = o7;
// 4435
// undefined
o7 = null;
// 4436
f449694821_799 = function() { return f449694821_799.returns[f449694821_799.inst++]; };
f449694821_799.returns = [];
f449694821_799.inst = 0;
// 4437
o3._replaceTransportMarkers = f449694821_799;
// 4438
f449694821_799.returns.push(undefined);
// 4439
f449694821_800 = function() { return f449694821_800.returns[f449694821_800.inst++]; };
f449694821_800.returns = [];
f449694821_800.inst = 0;
// 4440
o4.logUnityVersion = f449694821_800;
// 4442
o7 = {};
// 4443
o2.plugins = o7;
// undefined
o2 = null;
// 4444
f449694821_802 = function() { return f449694821_802.returns[f449694821_802.inst++]; };
f449694821_802.returns = [];
f449694821_802.inst = 0;
// 4445
o7.refresh = f449694821_802;
// undefined
o7 = null;
// 4446
f449694821_802.returns.push(undefined);
// 4452
ow449694821.JSBNG__onpopstate = f449694821_522;
// 4461
o2 = {};
// 4462
f449694821_812 = function() { return f449694821_812.returns[f449694821_812.inst++]; };
f449694821_812.returns = [];
f449694821_812.inst = 0;
// 4463
o7 = {};
// 4464
// 4465
// undefined
o7 = null;
// 4466
// undefined
o2 = null;
// 4467
o2 = {};
// 4470
o7 = {};
// 4472
f449694821_816 = function() { return f449694821_816.returns[f449694821_816.inst++]; };
f449694821_816.returns = [];
f449694821_816.inst = 0;
// 4474
o7.$URIBase0 = null;
// 4475
o7.$URIBase1 = null;
// 4476
o7.$URIBase2 = null;
// 4477
o7.$URIBase3 = "/";
// 4479
o8 = {};
// 4480
o7.$URIBase5 = o8;
// 4481
f449694821_818 = function() { return f449694821_818.returns[f449694821_818.inst++]; };
f449694821_818.returns = [];
f449694821_818.inst = 0;
// 4483
f449694821_818.returns.push(true);
// 4484
o8.sk = "welcome";
// 4486
o7.$URIBase4 = "";
// 4487
f449694821_816.returns.push("/?sk=welcome");
// 4488
o9 = {};
// undefined
o9 = null;
// 4489
f449694821_820 = function() { return f449694821_820.returns[f449694821_820.inst++]; };
f449694821_820.returns = [];
f449694821_820.inst = 0;
// 4490
o9 = {};
// undefined
o9 = null;
// 4491
f449694821_822 = function() { return f449694821_822.returns[f449694821_822.inst++]; };
f449694821_822.returns = [];
f449694821_822.inst = 0;
// 4492
f449694821_823 = function() { return f449694821_823.returns[f449694821_823.inst++]; };
f449694821_823.returns = [];
f449694821_823.inst = 0;
// 4493
o0.nodeName = "#document";
// 4494
o0.__FB_TOKEN = void 0;
// 4495
// 4496
o0.getAttribute = void 0;
// 4499
f449694821_388.returns.push(undefined);
// 4500
o0.JSBNG__onclick = null;
// 4502
f449694821_824 = function() { return f449694821_824.returns[f449694821_824.inst++]; };
f449694821_824.returns = [];
f449694821_824.inst = 0;
// 4506
f449694821_388.returns.push(undefined);
// 4507
o0.JSBNG__onsubmit = null;
// 4509
f449694821_825 = function() { return f449694821_825.returns[f449694821_825.inst++]; };
f449694821_825.returns = [];
f449694821_825.inst = 0;
// 4513
f449694821_826 = function() { return f449694821_826.returns[f449694821_826.inst++]; };
f449694821_826.returns = [];
f449694821_826.inst = 0;
// 4515
o9 = {};
// undefined
o9 = null;
// 4517
f449694821_387.returns.push(1373490177797);
// 4521
f449694821_16.returns.push(15);
// 4523
f449694821_387.returns.push(1373490177800);
// 4525
f449694821_387.returns.push(1373490177803);
// 4529
f449694821_16.returns.push(16);
// 4531
f449694821_387.returns.push(1373490177808);
// 4532
o9 = {};
// 4534
f449694821_389.returns.push(undefined);
// 4539
f449694821_16.returns.push(17);
// 4543
o10 = {};
// 4544
f449694821_394.returns.push(o10);
// 4546
f449694821_398.returns.push(o10);
// undefined
o10 = null;
// 4550
o10 = {};
// 4551
f449694821_396.returns.push(o10);
// 4553
o10.__html = void 0;
// 4555
o11 = {};
// 4556
f449694821_394.returns.push(o11);
// 4558
o6.appendChild = f449694821_398;
// undefined
o6 = null;
// 4559
f449694821_398.returns.push(o11);
// undefined
o11 = null;
// 4560
o6 = {};
// 4561
o10.style = o6;
// undefined
o10 = null;
// 4562
// undefined
o6 = null;
// 4563
o6 = {};
// 4564
f449694821_4.returns.push(o6);
// 4565
o6.getPropertyValue = void 0;
// undefined
o6 = null;
// 4567
f449694821_387.returns.push(1373490179937);
// 4569
f449694821_387.returns.push(1373490179937);
// 4573
// 4576
f449694821_387.returns.push(1373490179939);
// 4580
o6 = {};
// 4581
f449694821_394.returns.push(o6);
// 4583
f449694821_398.returns.push(o6);
// undefined
o6 = null;
// 4584
o6 = {};
// 4589
f449694821_387.returns.push(1373490179951);
// 4590
o6.cancelBubble = false;
// 4591
o6.returnValue = void 0;
// 4592
o10 = {};
// 4597
f449694821_387.returns.push(1373490180360);
// 4598
o10.cancelBubble = false;
// 4599
o10.returnValue = void 0;
// 4600
o11 = {};
// 4605
f449694821_387.returns.push(1373490180386);
// 4606
o11.cancelBubble = false;
// 4607
o11.returnValue = void 0;
// 4608
o12 = {};
// 4613
f449694821_387.returns.push(1373490180410);
// 4614
o12.cancelBubble = false;
// 4615
o12.returnValue = void 0;
// 4616
o13 = {};
// 4621
f449694821_387.returns.push(1373490180423);
// 4622
o13.cancelBubble = false;
// 4623
o13.returnValue = void 0;
// 4624
o14 = {};
// 4629
f449694821_387.returns.push(1373490180433);
// 4630
o14.cancelBubble = false;
// 4631
o14.returnValue = void 0;
// 4632
o15 = {};
// 4637
f449694821_387.returns.push(1373490180483);
// 4638
o15.cancelBubble = false;
// 4639
o15.returnValue = void 0;
// 4640
o16 = {};
// 4645
f449694821_387.returns.push(1373490180491);
// 4646
o16.cancelBubble = false;
// 4647
o16.returnValue = void 0;
// 4648
o17 = {};
// 4653
f449694821_387.returns.push(1373490180500);
// 4654
o17.cancelBubble = false;
// 4655
o17.returnValue = void 0;
// 4656
o19 = {};
// 4661
f449694821_387.returns.push(1373490180509);
// 4662
o19.cancelBubble = false;
// 4663
o19.returnValue = void 0;
// 4664
o20 = {};
// 4669
f449694821_387.returns.push(1373490180520);
// 4670
o20.cancelBubble = false;
// 4671
o20.returnValue = void 0;
// 4672
o21 = {};
// 4677
f449694821_387.returns.push(1373490180530);
// 4678
o21.cancelBubble = false;
// 4679
o21.returnValue = void 0;
// 4680
o22 = {};
// 4685
f449694821_387.returns.push(1373490180539);
// 4686
o22.cancelBubble = false;
// 4687
o22.returnValue = void 0;
// 4688
o23 = {};
// 4693
f449694821_387.returns.push(1373490180550);
// 4694
o23.cancelBubble = false;
// 4695
o23.returnValue = void 0;
// 4696
o24 = {};
// 4701
f449694821_387.returns.push(1373490180560);
// 4702
o24.cancelBubble = false;
// 4703
o24.returnValue = void 0;
// 4704
o25 = {};
// 4709
f449694821_387.returns.push(1373490180570);
// 4710
o25.cancelBubble = false;
// 4711
o25.returnValue = void 0;
// 4712
o26 = {};
// 4717
f449694821_387.returns.push(1373490180581);
// 4718
o26.cancelBubble = false;
// 4719
o26.returnValue = void 0;
// 4722
f449694821_387.returns.push(1373490180979);
// 4723
o27 = {};
// 4728
f449694821_387.returns.push(1373490181509);
// 4729
o27.cancelBubble = false;
// 4730
o27.returnValue = void 0;
// 4731
o28 = {};
// 4736
f449694821_387.returns.push(1373490181511);
// 4737
o28.cancelBubble = false;
// 4738
o28.returnValue = void 0;
// 4739
o29 = {};
// 4744
f449694821_387.returns.push(1373490181517);
// 4745
o29.cancelBubble = false;
// 4746
o29.returnValue = void 0;
// 4747
o30 = {};
// 4752
f449694821_387.returns.push(1373490181521);
// 4753
o30.cancelBubble = false;
// 4754
o30.returnValue = void 0;
// 4755
o31 = {};
// 4760
f449694821_387.returns.push(1373490181523);
// 4761
o31.cancelBubble = false;
// 4762
o31.returnValue = void 0;
// 4763
o32 = {};
// 4768
f449694821_387.returns.push(1373490181525);
// 4769
o32.cancelBubble = false;
// 4770
o32.returnValue = void 0;
// 4771
o33 = {};
// undefined
o33 = null;
// 4772
o33 = {};
// 4777
f449694821_387.returns.push(1373490181609);
// 4778
o33.cancelBubble = false;
// 4779
o33.returnValue = void 0;
// 4780
o34 = {};
// undefined
o34 = null;
// 4781
o34 = {};
// 4786
f449694821_387.returns.push(1373490181627);
// 4787
o34.cancelBubble = false;
// 4788
o34.returnValue = void 0;
// 4789
o35 = {};
// undefined
o35 = null;
// 4790
o35 = {};
// 4795
f449694821_387.returns.push(1373490181643);
// 4796
o35.cancelBubble = false;
// 4797
o35.returnValue = void 0;
// 4798
o36 = {};
// undefined
o36 = null;
// 4799
o36 = {};
// 4804
f449694821_387.returns.push(1373490181660);
// 4805
o36.cancelBubble = false;
// 4806
o36.returnValue = void 0;
// 4807
o37 = {};
// undefined
o37 = null;
// 4808
o37 = {};
// 4813
f449694821_387.returns.push(1373490181679);
// 4814
o37.cancelBubble = false;
// 4815
o37.returnValue = void 0;
// 4816
o38 = {};
// undefined
o38 = null;
// 4817
o38 = {};
// 4822
f449694821_387.returns.push(1373490181709);
// 4823
o38.cancelBubble = false;
// 4824
o38.returnValue = void 0;
// 4825
o39 = {};
// undefined
o39 = null;
// 4826
o39 = {};
// 4831
f449694821_387.returns.push(1373490181974);
// 4832
o39.cancelBubble = false;
// 4833
o39.returnValue = void 0;
// 4836
f449694821_387.returns.push(1373490181987);
// 4837
o40 = {};
// undefined
o40 = null;
// 4838
o40 = {};
// 4843
f449694821_387.returns.push(1373490182020);
// 4844
o40.cancelBubble = false;
// 4845
o40.returnValue = void 0;
// 4846
o43 = {};
// undefined
o43 = null;
// 4847
o43 = {};
// 4852
f449694821_387.returns.push(1373490182038);
// 4853
o43.cancelBubble = false;
// 4854
o43.returnValue = void 0;
// 4855
o44 = {};
// undefined
o44 = null;
// 4856
o44 = {};
// 4861
f449694821_387.returns.push(1373490182040);
// 4862
o44.cancelBubble = false;
// 4863
o44.returnValue = void 0;
// 4864
o45 = {};
// undefined
o45 = null;
// 4865
o45 = {};
// 4870
f449694821_387.returns.push(1373490182054);
// 4871
o45.cancelBubble = false;
// 4872
o45.returnValue = void 0;
// 4873
o46 = {};
// undefined
o46 = null;
// 4874
o46 = {};
// 4879
f449694821_387.returns.push(1373490182103);
// 4880
o46.cancelBubble = false;
// 4881
o46.returnValue = void 0;
// 4882
o47 = {};
// undefined
o47 = null;
// 4883
o47 = {};
// 4888
f449694821_387.returns.push(1373490182424);
// 4889
o47.cancelBubble = false;
// 4890
o47.returnValue = void 0;
// 4891
o48 = {};
// undefined
o48 = null;
// 4892
o48 = {};
// 4897
f449694821_387.returns.push(1373490182432);
// 4898
o48.cancelBubble = false;
// 4899
o48.returnValue = void 0;
// 4900
o49 = {};
// undefined
o49 = null;
// 4901
o49 = {};
// 4906
f449694821_387.returns.push(1373490182437);
// 4907
o49.cancelBubble = false;
// 4908
o49.returnValue = void 0;
// 4909
o50 = {};
// undefined
o50 = null;
// 4910
o50 = {};
// 4915
f449694821_387.returns.push(1373490182444);
// 4916
o50.cancelBubble = false;
// 4917
o50.returnValue = void 0;
// 4918
o51 = {};
// undefined
o51 = null;
// 4919
o51 = {};
// 4924
f449694821_387.returns.push(1373490182447);
// 4925
o51.cancelBubble = false;
// 4926
o51.returnValue = void 0;
// 4927
o52 = {};
// undefined
o52 = null;
// 4928
o52 = {};
// 4933
f449694821_387.returns.push(1373490182472);
// 4934
o52.cancelBubble = false;
// 4935
o52.returnValue = void 0;
// 4936
o53 = {};
// undefined
o53 = null;
// 4937
o53 = {};
// 4942
f449694821_387.returns.push(1373490182505);
// 4943
o53.cancelBubble = false;
// 4944
o53.returnValue = void 0;
// 4945
o54 = {};
// undefined
o54 = null;
// 4946
o54 = {};
// 4951
f449694821_387.returns.push(1373490182692);
// 4952
o54.cancelBubble = false;
// 4953
o54.returnValue = void 0;
// 4954
o55 = {};
// undefined
o55 = null;
// 4955
o55 = {};
// 4960
f449694821_387.returns.push(1373490182709);
// 4961
o55.cancelBubble = false;
// 4962
o55.returnValue = void 0;
// 4963
o56 = {};
// undefined
o56 = null;
// 4964
o56 = {};
// 4969
f449694821_387.returns.push(1373490182720);
// 4970
o56.cancelBubble = false;
// 4971
o56.returnValue = void 0;
// 4972
o57 = {};
// undefined
o57 = null;
// 4973
o57 = {};
// 4978
f449694821_387.returns.push(1373490182736);
// 4979
o57.cancelBubble = false;
// 4980
o57.returnValue = void 0;
// 4981
o58 = {};
// undefined
o58 = null;
// 4982
o58 = {};
// 4987
f449694821_387.returns.push(1373490182749);
// 4988
o58.cancelBubble = false;
// 4989
o58.returnValue = void 0;
// 4990
o59 = {};
// undefined
o59 = null;
// 4991
o59 = {};
// 4996
f449694821_387.returns.push(1373490182753);
// 4997
o59.cancelBubble = false;
// 4998
o59.returnValue = void 0;
// 4999
o60 = {};
// undefined
o60 = null;
// 5000
o60 = {};
// 5005
f449694821_387.returns.push(1373490182766);
// 5006
o60.cancelBubble = false;
// 5007
o60.returnValue = void 0;
// 5008
o61 = {};
// undefined
o61 = null;
// 5009
o61 = {};
// 5014
f449694821_387.returns.push(1373490182837);
// 5015
o61.cancelBubble = false;
// 5016
o61.returnValue = void 0;
// 5017
o62 = {};
// undefined
o62 = null;
// 5018
o62 = {};
// 5019
o63 = {};
// 5020
o62.transport = o63;
// undefined
fo449694821_803_readyState = function() { return fo449694821_803_readyState.returns[fo449694821_803_readyState.inst++]; };
fo449694821_803_readyState.returns = [];
fo449694821_803_readyState.inst = 0;
defineGetter(o63, "readyState", fo449694821_803_readyState, undefined);
// undefined
fo449694821_803_readyState.returns.push(2);
// 5022
o64 = {};
// undefined
o64 = null;
// undefined
fo449694821_803_readyState.returns.push(4);
// 5026
f449694821_914 = function() { return f449694821_914.returns[f449694821_914.inst++]; };
f449694821_914.returns = [];
f449694821_914.inst = 0;
// 5027
o63.getResponseHeader = f449694821_914;
// 5030
f449694821_914.returns.push("03r2+ESLZ7hHWaWOgh6vzkMHWrWL2bMcYoHgcrzN/RI=");
// 5033
f449694821_914.returns.push("03r2+ESLZ7hHWaWOgh6vzkMHWrWL2bMcYoHgcrzN/RI=");
// 5034
// 5036
o63.JSBNG__status = 500;
// 5041
f449694821_915 = function() { return f449694821_915.returns[f449694821_915.inst++]; };
f449694821_915.returns = [];
f449694821_915.inst = 0;
// 5042
o62._invokeErrorHandler = f449694821_915;
// 5043
o62.responseText = void 0;
// 5044
o62._requestAborted = void 0;
// 5048
f449694821_16.returns.push(18);
// 5049
f449694821_916 = function() { return f449694821_916.returns[f449694821_916.inst++]; };
f449694821_916.returns = [];
f449694821_916.inst = 0;
// 5050
o62.transportErrorHandler = f449694821_916;
// 5052
f449694821_917 = function() { return f449694821_917.returns[f449694821_917.inst++]; };
f449694821_917.returns = [];
f449694821_917.inst = 0;
// 5053
o62.getOption = f449694821_917;
// 5054
o64 = {};
// 5055
o62.option = o64;
// 5056
o64.suppressErrorAlerts = false;
// 5059
f449694821_917.returns.push(false);
// 5060
f449694821_919 = function() { return f449694821_919.returns[f449694821_919.inst++]; };
f449694821_919.returns = [];
f449694821_919.inst = 0;
// 5061
o62._dispatchErrorResponse = f449694821_919;
// 5063
f449694821_920 = function() { return f449694821_920.returns[f449694821_920.inst++]; };
f449694821_920.returns = [];
f449694821_920.inst = 0;
// 5064
o62.clearStatusIndicator = f449694821_920;
// 5065
f449694821_921 = function() { return f449694821_921.returns[f449694821_921.inst++]; };
f449694821_921.returns = [];
f449694821_921.inst = 0;
// 5066
o62.getStatusElement = f449694821_921;
// 5067
o62.statusElement = null;
// 5068
f449694821_921.returns.push(null);
// 5069
f449694821_920.returns.push(undefined);
// 5070
o62._sendTimeStamp = void 0;
// 5071
f449694821_922 = function() { return f449694821_922.returns[f449694821_922.inst++]; };
f449694821_922.returns = [];
f449694821_922.inst = 0;
// 5072
o62._isRelevant = f449694821_922;
// 5073
o62._allowCrossPageTransition = void 0;
// 5074
o62.id = 3;
// 5076
f449694821_922.returns.push(true);
// 5077
o62.initialHandler = f449694821_826;
// 5078
f449694821_826.returns.push(undefined);
// 5079
o62.timer = null;
// 5080
f449694821_18.returns.push(undefined);
// 5081
f449694821_386.returns.push(0.2663981191512802);
// 5082
f449694821_916.returns.push(undefined);
// 5083
o62.finallyHandler = f449694821_826;
// 5084
f449694821_826.returns.push(undefined);
// 5085
f449694821_919.returns.push(undefined);
// 5086
f449694821_915.returns.push(undefined);
// 5089
o64.asynchronous = true;
// 5092
f449694821_917.returns.push(true);
// 5093
// 5096
f449694821_387.returns.push(1373490183003);
// 5097
o65 = {};
// 5102
f449694821_387.returns.push(1373490183040);
// 5103
o65.cancelBubble = false;
// 5104
o65.returnValue = void 0;
// 5105
o66 = {};
// 5106
o67 = {};
// 5111
f449694821_387.returns.push(1373490183056);
// 5112
o67.cancelBubble = false;
// 5113
o67.returnValue = void 0;
// 5114
o68 = {};
// 5115
o69 = {};
// 5120
f449694821_387.returns.push(1373490183077);
// 5121
o69.cancelBubble = false;
// undefined
fo449694821_803_readyState.returns.push(4);
// 5125
f449694821_914 = function() { return f449694821_914.returns[f449694821_914.inst++]; };
f449694821_914.returns = [];
f449694821_914.inst = 0;
// 5129
f449694821_914.returns.push("03r2+ESLZ7hHWaWOgh6vzkMHWrWL2bMcYoHgcrzN/RI=");
// 5132
f449694821_914.returns.push("03r2+ESLZ7hHWaWOgh6vzkMHWrWL2bMcYoHgcrzN/RI=");
// 5133
// 5140
f449694821_915 = function() { return f449694821_915.returns[f449694821_915.inst++]; };
f449694821_915.returns = [];
f449694821_915.inst = 0;
// 5147
f449694821_16.returns.push(18);
// 5148
f449694821_916 = function() { return f449694821_916.returns[f449694821_916.inst++]; };
f449694821_916.returns = [];
f449694821_916.inst = 0;
// 5151
f449694821_917 = function() { return f449694821_917.returns[f449694821_917.inst++]; };
f449694821_917.returns = [];
f449694821_917.inst = 0;
// 5153
o64 = {};
// 5155
o64.suppressErrorAlerts = false;
// 5158
f449694821_917.returns.push(false);
// 5159
f449694821_919 = function() { return f449694821_919.returns[f449694821_919.inst++]; };
f449694821_919.returns = [];
f449694821_919.inst = 0;
// 5162
f449694821_920 = function() { return f449694821_920.returns[f449694821_920.inst++]; };
f449694821_920.returns = [];
f449694821_920.inst = 0;
// 5164
f449694821_921 = function() { return f449694821_921.returns[f449694821_921.inst++]; };
f449694821_921.returns = [];
f449694821_921.inst = 0;
// 5167
f449694821_921.returns.push(null);
// 5168
f449694821_920.returns.push(undefined);
// 5170
f449694821_922 = function() { return f449694821_922.returns[f449694821_922.inst++]; };
f449694821_922.returns = [];
f449694821_922.inst = 0;
// 5175
f449694821_922.returns.push(true);
// 5177
f449694821_826.returns.push(undefined);
// 5179
f449694821_18.returns.push(undefined);
// 5180
f449694821_386.returns.push(0.2663981191512802);
// 5181
f449694821_916.returns.push(undefined);
// 5183
f449694821_826.returns.push(undefined);
// 5184
f449694821_919.returns.push(undefined);
// 5185
f449694821_915.returns.push(undefined);
// 5188
o64.asynchronous = true;
// undefined
o64 = null;
// 5191
f449694821_917.returns.push(true);
// 5192
// 5195
f449694821_387.returns.push(1373490183003);
// 5196
o65 = {};
// 5201
f449694821_387.returns.push(1373490183040);
// 5202
o65.cancelBubble = false;
// 5203
o65.returnValue = void 0;
// 5204
o66 = {};
// undefined
o66 = null;
// 5205
o67 = {};
// 5210
f449694821_387.returns.push(1373490183056);
// 5211
o67.cancelBubble = false;
// 5212
o67.returnValue = void 0;
// 5213
o68 = {};
// undefined
o68 = null;
// 5214
o69 = {};
// 5219
f449694821_387.returns.push(1373490183077);
// 5220
o69.cancelBubble = false;
// 5222
o69.returnValue = void 0;
// 5223
o64 = {};
// undefined
o64 = null;
// 5224
o64 = {};
// 5229
f449694821_387.returns.push(1373490183089);
// 5230
o64.cancelBubble = false;
// 5231
o64.returnValue = void 0;
// 5232
o66 = {};
// undefined
o66 = null;
// 5233
o66 = {};
// 5238
f449694821_387.returns.push(1373490183091);
// 5239
o66.cancelBubble = false;
// 5240
o66.returnValue = void 0;
// 5241
o68 = {};
// undefined
o68 = null;
// 5242
o68 = {};
// 5247
f449694821_387.returns.push(1373490183119);
// 5248
o68.cancelBubble = false;
// 5249
o68.returnValue = void 0;
// 5250
o70 = {};
// undefined
o70 = null;
// 5251
o70 = {};
// 5256
f449694821_387.returns.push(1373490183138);
// 5257
o70.cancelBubble = false;
// 5258
o70.returnValue = void 0;
// 5259
o71 = {};
// undefined
o71 = null;
// 5260
o71 = {};
// 5265
f449694821_387.returns.push(1373490183380);
// 5266
o71.cancelBubble = false;
// 5267
o71.returnValue = void 0;
// 5268
o72 = {};
// undefined
o72 = null;
// 5269
o72 = {};
// 5274
f449694821_387.returns.push(1373490183389);
// 5275
o72.cancelBubble = false;
// 5276
o72.returnValue = void 0;
// 5277
o73 = {};
// undefined
o73 = null;
// 5278
o73 = {};
// 5283
f449694821_387.returns.push(1373490183398);
// 5284
o73.cancelBubble = false;
// 5285
o73.returnValue = void 0;
// 5286
o74 = {};
// undefined
o74 = null;
// 5287
o74 = {};
// 5292
f449694821_387.returns.push(1373490183419);
// 5293
o74.cancelBubble = false;
// 5294
o74.returnValue = void 0;
// 5295
o75 = {};
// undefined
o75 = null;
// 5296
o75 = {};
// 5301
f449694821_387.returns.push(1373490183439);
// 5302
o75.cancelBubble = false;
// 5303
o75.returnValue = void 0;
// 5304
o76 = {};
// undefined
o76 = null;
// 5305
o76 = {};
// 5310
f449694821_387.returns.push(1373490183446);
// 5311
o76.cancelBubble = false;
// 5312
o76.returnValue = void 0;
// 5313
o77 = {};
// undefined
o77 = null;
// 5314
o77 = {};
// 5319
f449694821_387.returns.push(1373490183453);
// 5320
o77.cancelBubble = false;
// 5321
o77.returnValue = void 0;
// 5322
o78 = {};
// undefined
o78 = null;
// 5323
o78 = {};
// 5328
f449694821_387.returns.push(1373490183497);
// 5329
o78.cancelBubble = false;
// 5330
o78.returnValue = void 0;
// 5331
o79 = {};
// undefined
o79 = null;
// 5332
o79 = {};
// 5337
f449694821_387.returns.push(1373490183705);
// 5338
o79.cancelBubble = false;
// 5339
o79.returnValue = void 0;
// 5340
o80 = {};
// undefined
o80 = null;
// 5341
o80 = {};
// 5346
f449694821_387.returns.push(1373490183717);
// 5347
o80.cancelBubble = false;
// 5348
o80.returnValue = void 0;
// 5349
o81 = {};
// undefined
o81 = null;
// 5350
o81 = {};
// 5355
f449694821_387.returns.push(1373490183729);
// 5356
o81.cancelBubble = false;
// 5357
o81.returnValue = void 0;
// 5358
o82 = {};
// 5363
f449694821_387.returns.push(1373490183738);
// 5364
o82.cancelBubble = false;
// 5365
o82.returnValue = void 0;
// 5366
o83 = {};
// undefined
o83 = null;
// 5367
o83 = {};
// 5372
f449694821_387.returns.push(1373490183739);
// 5373
o83.cancelBubble = false;
// 5374
o83.returnValue = void 0;
// 5375
o84 = {};
// undefined
o84 = null;
// 5376
o84 = {};
// 5381
f449694821_387.returns.push(1373490183756);
// 5382
o84.cancelBubble = false;
// 5383
o84.returnValue = void 0;
// 5384
o85 = {};
// undefined
o85 = null;
// 5385
o85 = {};
// 5390
f449694821_387.returns.push(1373490183778);
// 5391
o85.cancelBubble = false;
// 5392
o85.returnValue = void 0;
// 5395
f449694821_387.returns.push(1373490184012);
// 5396
o86 = {};
// undefined
o86 = null;
// 5397
o86 = {};
// 5402
f449694821_387.returns.push(1373490184025);
// 5403
o86.cancelBubble = false;
// 5404
o86.returnValue = void 0;
// 5405
o87 = {};
// undefined
o87 = null;
// 5406
o87 = {};
// 5411
f449694821_387.returns.push(1373490184044);
// 5412
o87.cancelBubble = false;
// 5413
o87.returnValue = void 0;
// 5414
o88 = {};
// undefined
o88 = null;
// 5415
o88 = {};
// 5420
f449694821_387.returns.push(1373490184055);
// 5421
o88.cancelBubble = false;
// 5422
o88.returnValue = void 0;
// 5423
o89 = {};
// undefined
o89 = null;
// 5424
o89 = {};
// 5429
f449694821_387.returns.push(1373490184064);
// 5430
o89.cancelBubble = false;
// 5431
o89.returnValue = void 0;
// 5432
o90 = {};
// undefined
o90 = null;
// 5433
o90 = {};
// 5438
f449694821_387.returns.push(1373490184082);
// 5439
o90.cancelBubble = false;
// 5440
o90.returnValue = void 0;
// 5441
o91 = {};
// undefined
o91 = null;
// 5442
o91 = {};
// 5447
f449694821_387.returns.push(1373490184095);
// 5448
o91.cancelBubble = false;
// 5449
o91.returnValue = void 0;
// 5450
o92 = {};
// undefined
o92 = null;
// 5451
o92 = {};
// 5456
f449694821_387.returns.push(1373490184142);
// 5457
o92.cancelBubble = false;
// 5458
o92.returnValue = void 0;
// 5459
o93 = {};
// 5464
f449694821_387.returns.push(1373490184338);
// 5465
o93.cancelBubble = false;
// 5466
o93.returnValue = void 0;
// 5467
o94 = {};
// undefined
o94 = null;
// 5468
o94 = {};
// 5473
f449694821_387.returns.push(1373490184426);
// 5474
o94.cancelBubble = false;
// 5475
o94.returnValue = void 0;
// 5476
o95 = {};
// undefined
o95 = null;
// 5477
o95 = {};
// 5482
f449694821_387.returns.push(1373490184442);
// 5483
o95.cancelBubble = false;
// 5484
o95.returnValue = void 0;
// 5485
o96 = {};
// undefined
o96 = null;
// 5486
o96 = {};
// 5491
f449694821_387.returns.push(1373490184457);
// 5492
o96.cancelBubble = false;
// 5493
o96.returnValue = void 0;
// 5494
o97 = {};
// undefined
o97 = null;
// 5495
o97 = {};
// 5500
f449694821_387.returns.push(1373490184484);
// 5501
o97.cancelBubble = false;
// 5502
o97.returnValue = void 0;
// 5503
o98 = {};
// 5508
f449694821_387.returns.push(1373490184506);
// 5509
o98.cancelBubble = false;
// 5510
o98.returnValue = void 0;
// 5511
o99 = {};
// undefined
o99 = null;
// 5512
o99 = {};
// 5517
f449694821_387.returns.push(1373490184507);
// 5518
o99.cancelBubble = false;
// 5519
o99.returnValue = void 0;
// 5520
o100 = {};
// 5525
f449694821_387.returns.push(1373490184576);
// 5526
o100.cancelBubble = false;
// 5527
o100.returnValue = void 0;
// 5528
o101 = {};
// 5533
f449694821_387.returns.push(1373490184617);
// 5534
o101.cancelBubble = false;
// 5535
o101.returnValue = void 0;
// 5536
o102 = {};
// 5541
f449694821_387.returns.push(1373490184636);
// 5542
o102.cancelBubble = false;
// 5543
o102.returnValue = void 0;
// 5544
o103 = {};
// 5549
f449694821_387.returns.push(1373490184675);
// 5550
o103.cancelBubble = false;
// 5551
o103.returnValue = void 0;
// 5552
o104 = {};
// 5557
f449694821_387.returns.push(1373490184680);
// 5558
o104.cancelBubble = false;
// 5559
o104.returnValue = void 0;
// 5560
o105 = {};
// 5565
f449694821_387.returns.push(1373490184693);
// 5566
o105.cancelBubble = false;
// 5567
o105.returnValue = void 0;
// 5568
o106 = {};
// 5573
f449694821_387.returns.push(1373490184704);
// 5574
o106.cancelBubble = false;
// 5575
o106.returnValue = void 0;
// 5576
o107 = {};
// 5581
f449694821_387.returns.push(1373490184710);
// 5582
o107.cancelBubble = false;
// 5583
o107.returnValue = void 0;
// 5584
o108 = {};
// 5589
f449694821_387.returns.push(1373490184722);
// 5590
o108.cancelBubble = false;
// 5591
o108.returnValue = void 0;
// 5592
o109 = {};
// 5597
f449694821_387.returns.push(1373490184730);
// 5598
o109.cancelBubble = false;
// 5599
o109.returnValue = void 0;
// 5600
o110 = {};
// 5605
f449694821_387.returns.push(1373490184740);
// 5606
o110.cancelBubble = false;
// 5607
o110.returnValue = void 0;
// 5608
o111 = {};
// 5613
f449694821_387.returns.push(1373490184748);
// 5614
o111.cancelBubble = false;
// 5615
o111.returnValue = void 0;
// 5616
o112 = {};
// 5621
f449694821_387.returns.push(1373490184758);
// 5622
o112.cancelBubble = false;
// 5623
o112.returnValue = void 0;
// 5624
o113 = {};
// 5629
f449694821_387.returns.push(1373490184769);
// 5630
o113.cancelBubble = false;
// 5631
o113.returnValue = void 0;
// 5632
o114 = {};
// 5637
f449694821_387.returns.push(1373490184777);
// 5638
o114.cancelBubble = false;
// 5639
o114.returnValue = void 0;
// 5640
o115 = {};
// 5645
f449694821_387.returns.push(1373490184788);
// 5646
o115.cancelBubble = false;
// 5647
o115.returnValue = void 0;
// 5648
o116 = {};
// 5653
f449694821_387.returns.push(1373490184789);
// 5654
o116.cancelBubble = false;
// 5655
o116.returnValue = void 0;
// 5658
f449694821_387.returns.push(1373490185022);
// 5659
o117 = {};
// 5664
f449694821_387.returns.push(1373490185517);
// 5665
o117.cancelBubble = false;
// 5666
o117.returnValue = void 0;
// 5667
o118 = {};
// 5672
f449694821_387.returns.push(1373490185518);
// 5673
o118.cancelBubble = false;
// 5674
o118.returnValue = void 0;
// 5675
o119 = {};
// 5680
f449694821_387.returns.push(1373490185533);
// 5681
o119.cancelBubble = false;
// 5682
o119.returnValue = void 0;
// 5683
o120 = {};
// 5688
f449694821_387.returns.push(1373490185540);
// 5689
o120.cancelBubble = false;
// 5690
o120.returnValue = void 0;
// 5691
o121 = {};
// 5696
f449694821_387.returns.push(1373490185547);
// 5697
o121.cancelBubble = false;
// 5698
o121.returnValue = void 0;
// 5699
o122 = {};
// 5704
f449694821_387.returns.push(1373490185558);
// 5705
o122.cancelBubble = false;
// 5706
o122.returnValue = void 0;
// 5707
o123 = {};
// 5712
f449694821_387.returns.push(1373490185577);
// 5713
o123.cancelBubble = false;
// 5714
o123.returnValue = void 0;
// 5715
o124 = {};
// 5720
f449694821_387.returns.push(1373490185645);
// 5721
o124.cancelBubble = false;
// 5722
o124.returnValue = void 0;
// 5723
o125 = {};
// 5728
f449694821_387.returns.push(1373490185648);
// 5729
o125.cancelBubble = false;
// 5730
o125.returnValue = void 0;
// 5731
o126 = {};
// 5736
f449694821_387.returns.push(1373490185651);
// 5737
o126.cancelBubble = false;
// 5738
o126.returnValue = void 0;
// 5739
o127 = {};
// 5744
f449694821_387.returns.push(1373490185653);
// 5745
o127.cancelBubble = false;
// 5746
o127.returnValue = void 0;
// 5747
o128 = {};
// 5752
f449694821_387.returns.push(1373490185654);
// 5753
o128.cancelBubble = false;
// 5754
o128.returnValue = void 0;
// 5755
o129 = {};
// 5760
f449694821_387.returns.push(1373490185656);
// 5761
o129.cancelBubble = false;
// 5762
o129.returnValue = void 0;
// 5763
o130 = {};
// 5768
f449694821_387.returns.push(1373490185658);
// 5769
o130.cancelBubble = false;
// 5770
o130.returnValue = void 0;
// 5771
o131 = {};
// 5776
f449694821_387.returns.push(1373490185666);
// 5777
o131.cancelBubble = false;
// 5778
o131.returnValue = void 0;
// 5779
o132 = {};
// 5784
f449694821_387.returns.push(1373490185692);
// 5785
o132.cancelBubble = false;
// 5786
o132.returnValue = void 0;
// 5787
o133 = {};
// 5792
f449694821_387.returns.push(1373490185694);
// 5793
o133.cancelBubble = false;
// 5794
o133.returnValue = void 0;
// 5795
o134 = {};
// 5800
f449694821_387.returns.push(1373490185705);
// 5801
o134.cancelBubble = false;
// 5802
o134.returnValue = void 0;
// 5803
o135 = {};
// 5808
f449694821_387.returns.push(1373490185719);
// 5809
o135.cancelBubble = false;
// 5810
o135.returnValue = void 0;
// 5811
o136 = {};
// 5816
f449694821_387.returns.push(1373490185727);
// 5817
o136.cancelBubble = false;
// 5818
o136.returnValue = void 0;
// 5819
o137 = {};
// 5824
f449694821_387.returns.push(1373490185735);
// 5825
o137.cancelBubble = false;
// 5826
o137.returnValue = void 0;
// 5827
o138 = {};
// 5832
f449694821_387.returns.push(1373490185743);
// 5833
o138.cancelBubble = false;
// 5834
o138.returnValue = void 0;
// 5835
o139 = {};
// 5840
f449694821_387.returns.push(1373490185750);
// 5841
o139.cancelBubble = false;
// 5842
o139.returnValue = void 0;
// 5843
o140 = {};
// 5848
f449694821_387.returns.push(1373490185759);
// 5849
o140.cancelBubble = false;
// 5850
o140.returnValue = void 0;
// 5851
o141 = {};
// 5856
f449694821_387.returns.push(1373490185768);
// 5857
o141.cancelBubble = false;
// 5858
o141.returnValue = void 0;
// 5859
o142 = {};
// 5864
f449694821_387.returns.push(1373490185782);
// 5865
o142.cancelBubble = false;
// 5866
o142.returnValue = void 0;
// 5867
o143 = {};
// 5872
f449694821_387.returns.push(1373490185787);
// 5873
o143.cancelBubble = false;
// 5874
o143.returnValue = void 0;
// 5875
o144 = {};
// 5880
f449694821_387.returns.push(1373490185797);
// 5881
o144.cancelBubble = false;
// 5882
o144.returnValue = void 0;
// 5883
o145 = {};
// 5888
f449694821_387.returns.push(1373490185809);
// 5889
o145.cancelBubble = false;
// 5890
o145.returnValue = void 0;
// 5891
o146 = {};
// 5896
f449694821_387.returns.push(1373490185818);
// 5897
o146.cancelBubble = false;
// 5898
o146.returnValue = void 0;
// 5899
o147 = {};
// 5904
f449694821_387.returns.push(1373490185830);
// 5905
o147.cancelBubble = false;
// 5906
o147.returnValue = void 0;
// 5907
o148 = {};
// 5912
f449694821_387.returns.push(1373490185838);
// 5913
o148.cancelBubble = false;
// 5914
o148.returnValue = void 0;
// 5915
o149 = {};
// 5920
f449694821_387.returns.push(1373490185851);
// 5921
o149.cancelBubble = false;
// 5922
o149.returnValue = void 0;
// 5923
o150 = {};
// 5928
f449694821_387.returns.push(1373490185865);
// 5929
o150.cancelBubble = false;
// 5930
o150.returnValue = void 0;
// 5931
o151 = {};
// 5936
f449694821_387.returns.push(1373490185877);
// 5937
o151.cancelBubble = false;
// 5938
o151.returnValue = void 0;
// 5939
o152 = {};
// 5944
f449694821_387.returns.push(1373490185892);
// 5945
o152.cancelBubble = false;
// 5946
o152.returnValue = void 0;
// 5947
o153 = {};
// 5952
f449694821_387.returns.push(1373490185903);
// 5953
o153.cancelBubble = false;
// 5954
o153.returnValue = void 0;
// 5955
o154 = {};
// 5960
f449694821_387.returns.push(1373490185927);
// 5961
o154.cancelBubble = false;
// 5962
o154.returnValue = void 0;
// 5963
o155 = {};
// 5968
f449694821_387.returns.push(1373490185939);
// 5969
o155.cancelBubble = false;
// 5970
o155.returnValue = void 0;
// 5971
o156 = {};
// 5976
f449694821_387.returns.push(1373490185957);
// 5977
o156.cancelBubble = false;
// 5978
o156.returnValue = void 0;
// 5979
o157 = {};
// 5984
f449694821_387.returns.push(1373490185969);
// 5985
o157.cancelBubble = false;
// 5986
o157.returnValue = void 0;
// 5987
o158 = {};
// 5992
f449694821_387.returns.push(1373490185989);
// 5993
o158.cancelBubble = false;
// 5994
o158.returnValue = void 0;
// 5995
o159 = {};
// 6000
f449694821_387.returns.push(1373490186001);
// 6001
o159.cancelBubble = false;
// 6002
o159.returnValue = void 0;
// 6003
o160 = {};
// 6008
f449694821_387.returns.push(1373490186014);
// 6009
o160.cancelBubble = false;
// 6010
o160.returnValue = void 0;
// 6011
o161 = {};
// 6016
f449694821_387.returns.push(1373490186024);
// 6017
o161.cancelBubble = false;
// 6018
o161.returnValue = void 0;
// 6021
f449694821_387.returns.push(1373490186037);
// 6022
o162 = {};
// 6027
f449694821_387.returns.push(1373490186038);
// 6028
o162.cancelBubble = false;
// 6029
o162.returnValue = void 0;
// 6030
o163 = {};
// 6035
f449694821_387.returns.push(1373490186050);
// 6036
o163.cancelBubble = false;
// 6037
o163.returnValue = void 0;
// 6038
o164 = {};
// 6043
f449694821_387.returns.push(1373490186060);
// 6044
o164.cancelBubble = false;
// 6045
o164.returnValue = void 0;
// 6046
o165 = {};
// 6051
f449694821_387.returns.push(1373490186081);
// 6052
o165.cancelBubble = false;
// 6053
o165.returnValue = void 0;
// 6054
o166 = {};
// 6059
f449694821_387.returns.push(1373490186092);
// 6060
o166.cancelBubble = false;
// 6061
o166.returnValue = void 0;
// 6062
o167 = {};
// 6067
f449694821_387.returns.push(1373490186094);
// 6068
o167.cancelBubble = false;
// 6069
o167.returnValue = void 0;
// 6070
o168 = {};
// 6075
f449694821_387.returns.push(1373490186107);
// 6076
o168.cancelBubble = false;
// 6077
o168.returnValue = void 0;
// 6078
o169 = {};
// 6083
f449694821_387.returns.push(1373490186113);
// 6084
o169.cancelBubble = false;
// 6085
o169.returnValue = void 0;
// 6086
o170 = {};
// 6091
f449694821_387.returns.push(1373490186121);
// 6092
o170.cancelBubble = false;
// 6093
o170.returnValue = void 0;
// 6094
o171 = {};
// 6099
f449694821_387.returns.push(1373490186132);
// 6100
o171.cancelBubble = false;
// 6101
o171.returnValue = void 0;
// 6102
o172 = {};
// 6107
f449694821_387.returns.push(1373490186142);
// 6108
o172.cancelBubble = false;
// 6109
o172.returnValue = void 0;
// 6110
o173 = {};
// 6115
f449694821_387.returns.push(1373490186150);
// 6116
o173.cancelBubble = false;
// 6117
o173.returnValue = void 0;
// 6118
o174 = {};
// 6123
f449694821_387.returns.push(1373490186160);
// 6124
o174.cancelBubble = false;
// 6125
o174.returnValue = void 0;
// 6126
o175 = {};
// 6131
f449694821_387.returns.push(1373490186171);
// 6132
o175.cancelBubble = false;
// 6133
o175.returnValue = void 0;
// 6134
o176 = {};
// 6139
f449694821_387.returns.push(1373490186181);
// 6140
o176.cancelBubble = false;
// 6141
o176.returnValue = void 0;
// 6142
o177 = {};
// 6147
f449694821_387.returns.push(1373490186195);
// 6148
o177.cancelBubble = false;
// 6149
o177.returnValue = void 0;
// 6150
o178 = {};
// 6155
f449694821_387.returns.push(1373490186213);
// 6156
o178.cancelBubble = false;
// 6157
o178.returnValue = void 0;
// 6158
o179 = {};
// 6163
f449694821_387.returns.push(1373490186213);
// 6164
o179.cancelBubble = false;
// 6165
o179.returnValue = void 0;
// 6166
o180 = {};
// 6171
f449694821_387.returns.push(1373490186222);
// 6172
o180.cancelBubble = false;
// 6173
o180.returnValue = void 0;
// 6174
o181 = {};
// 6179
f449694821_387.returns.push(1373490186230);
// 6180
o181.cancelBubble = false;
// 6181
o181.returnValue = void 0;
// 6182
o182 = {};
// 6187
f449694821_387.returns.push(1373490186239);
// 6188
o182.cancelBubble = false;
// 6189
o182.returnValue = void 0;
// 6190
o183 = {};
// 6195
f449694821_387.returns.push(1373490186251);
// 6196
o183.cancelBubble = false;
// 6197
o183.returnValue = void 0;
// 6198
o184 = {};
// 6203
f449694821_387.returns.push(1373490186257);
// 6204
o184.cancelBubble = false;
// 6205
o184.returnValue = void 0;
// 6206
o185 = {};
// 6211
f449694821_387.returns.push(1373490186267);
// 6212
o185.cancelBubble = false;
// 6213
o185.returnValue = void 0;
// 6214
o186 = {};
// 6219
f449694821_387.returns.push(1373490186275);
// 6220
o186.cancelBubble = false;
// 6221
o186.returnValue = void 0;
// 6222
o187 = {};
// 6227
f449694821_387.returns.push(1373490186276);
// 6228
o187.cancelBubble = false;
// 6229
o187.returnValue = void 0;
// 6230
o188 = {};
// 6235
f449694821_387.returns.push(1373490186286);
// 6236
o188.cancelBubble = false;
// 6237
o188.returnValue = void 0;
// 6238
o189 = {};
// 6243
f449694821_387.returns.push(1373490186295);
// 6244
o189.cancelBubble = false;
// 6245
o189.returnValue = void 0;
// 6246
o190 = {};
// 6251
f449694821_387.returns.push(1373490186303);
// 6252
o190.cancelBubble = false;
// 6253
o190.returnValue = void 0;
// 6254
o191 = {};
// 6259
f449694821_387.returns.push(1373490186313);
// 6260
o191.cancelBubble = false;
// 6261
o191.returnValue = void 0;
// 6262
o192 = {};
// 6267
f449694821_387.returns.push(1373490186326);
// 6268
o192.cancelBubble = false;
// 6269
o192.returnValue = void 0;
// 6270
o193 = {};
// 6275
f449694821_387.returns.push(1373490186332);
// 6276
o193.cancelBubble = false;
// 6277
o193.returnValue = void 0;
// 6278
o194 = {};
// 6283
f449694821_387.returns.push(1373490186339);
// 6284
o194.cancelBubble = false;
// 6285
o194.returnValue = void 0;
// 6286
o195 = {};
// 6291
f449694821_387.returns.push(1373490186348);
// 6292
o195.cancelBubble = false;
// 6293
o195.returnValue = void 0;
// 6296
f449694821_387.returns.push(1373490187039);
// 6299
f449694821_387.returns.push(1373490188040);
// 6302
f449694821_387.returns.push(1373490189038);
// 6305
f449694821_387.returns.push(1373490190038);
// 6308
f449694821_387.returns.push(1373490191039);
// 6311
f449694821_387.returns.push(1373490192038);
// 6314
f449694821_387.returns.push(1373490193039);
// 6316
f449694821_387.returns.push(1373490193050);
// 6319
f449694821_387.returns.push(1373490194081);
// 6322
f449694821_387.returns.push(1373490195042);
// 6325
f449694821_387.returns.push(1373490196041);
// 6328
f449694821_387.returns.push(1373490197042);
// 6331
f449694821_387.returns.push(1373490198040);
// 6334
f449694821_387.returns.push(1373490199038);
// 6335
o196 = {};
// 6340
f449694821_387.returns.push(1373490199404);
// 6341
o196.cancelBubble = false;
// 6342
o196.returnValue = void 0;
// 6343
o197 = {};
// 6348
f449694821_387.returns.push(1373490199406);
// 6349
o197.cancelBubble = false;
// 6350
o197.returnValue = void 0;
// 6351
o198 = {};
// 6356
f449694821_387.returns.push(1373490199421);
// 6357
o198.cancelBubble = false;
// 6358
o198.returnValue = void 0;
// 6359
o199 = {};
// 6364
f449694821_387.returns.push(1373490199422);
// 6365
o199.cancelBubble = false;
// 6366
o199.returnValue = void 0;
// 6367
o200 = {};
// 6372
f449694821_387.returns.push(1373490199440);
// 6373
o200.cancelBubble = false;
// 6374
o200.returnValue = void 0;
// 6375
o201 = {};
// 6380
f449694821_387.returns.push(1373490199442);
// 6381
o201.cancelBubble = false;
// 6382
o201.returnValue = void 0;
// 6383
o202 = {};
// 6388
f449694821_387.returns.push(1373490199464);
// 6389
o202.cancelBubble = false;
// 6390
o202.returnValue = void 0;
// 6391
o203 = {};
// 6396
f449694821_387.returns.push(1373490199470);
// 6397
o203.cancelBubble = false;
// 6398
o203.returnValue = void 0;
// 6399
o204 = {};
// 6404
f449694821_387.returns.push(1373490199473);
// 6405
o204.cancelBubble = false;
// 6406
o204.returnValue = void 0;
// 6407
o205 = {};
// 6412
f449694821_387.returns.push(1373490199477);
// 6413
o205.cancelBubble = false;
// 6414
o205.returnValue = void 0;
// 6415
o206 = {};
// 6420
f449694821_387.returns.push(1373490199522);
// 6421
o206.cancelBubble = false;
// 6422
o206.returnValue = void 0;
// 6423
o207 = {};
// 6428
f449694821_387.returns.push(1373490199523);
// 6429
o207.cancelBubble = false;
// 6430
o207.returnValue = void 0;
// 6431
o208 = {};
// 6436
f449694821_387.returns.push(1373490199533);
// 6437
o208.cancelBubble = false;
// 6438
o208.returnValue = void 0;
// 6439
o209 = {};
// 6444
f449694821_387.returns.push(1373490199534);
// 6445
o209.cancelBubble = false;
// 6446
o209.returnValue = void 0;
// 6447
o210 = {};
// 6452
f449694821_387.returns.push(1373490199556);
// 6453
o210.cancelBubble = false;
// 6454
o210.returnValue = void 0;
// 6455
o211 = {};
// 6460
f449694821_387.returns.push(1373490199557);
// 6461
o211.cancelBubble = false;
// 6462
o211.returnValue = void 0;
// 6463
o212 = {};
// 6468
f449694821_387.returns.push(1373490199566);
// 6469
o212.cancelBubble = false;
// 6470
o212.returnValue = void 0;
// 6471
o213 = {};
// 6476
f449694821_387.returns.push(1373490199567);
// 6477
o213.cancelBubble = false;
// 6478
o213.returnValue = void 0;
// 6481
f449694821_387.returns.push(1373490200081);
// 6484
f449694821_387.returns.push(1373490201082);
// 6487
f449694821_387.returns.push(1373490202081);
// 6488
o214 = {};
// 6493
f449694821_387.returns.push(1373490202289);
// 6494
o214.cancelBubble = false;
// 6495
o214.returnValue = void 0;
// 6498
f449694821_387.returns.push(1373490203083);
// 6501
f449694821_387.returns.push(1373490204083);
// 6502
o215 = {};
// 6508
// 6511
f449694821_387.returns.push(1373490205127);
// 6512
o216 = {};
// 6517
f449694821_387.returns.push(1373490205307);
// 6518
o216.cancelBubble = false;
// 6519
o216.returnValue = void 0;
// 6520
o217 = {};
// 6525
f449694821_387.returns.push(1373490205330);
// 6526
o217.cancelBubble = false;
// 6527
o217.returnValue = void 0;
// 6528
o218 = {};
// 6533
f449694821_387.returns.push(1373490205332);
// 6534
o218.cancelBubble = false;
// 6535
o218.returnValue = void 0;
// 6536
o219 = {};
// 6541
f449694821_387.returns.push(1373490205381);
// 6542
o219.cancelBubble = false;
// 6543
o219.returnValue = void 0;
// 6544
o220 = {};
// 6549
f449694821_387.returns.push(1373490205382);
// 6550
o220.cancelBubble = false;
// 6551
o220.returnValue = void 0;
// 6552
o221 = {};
// 6557
f449694821_387.returns.push(1373490205398);
// 6558
o221.cancelBubble = false;
// 6559
o221.returnValue = void 0;
// 6560
o222 = {};
// 6565
f449694821_387.returns.push(1373490205411);
// 6566
o222.cancelBubble = false;
// 6567
o222.returnValue = void 0;
// 6568
o223 = {};
// 6573
f449694821_387.returns.push(1373490205412);
// 6574
o223.cancelBubble = false;
// 6575
o223.returnValue = void 0;
// 6576
o224 = {};
// 6581
f449694821_387.returns.push(1373490205416);
// 6582
o224.cancelBubble = false;
// 6583
o224.returnValue = void 0;
// 6584
o225 = {};
// 6589
f449694821_387.returns.push(1373490205416);
// 6590
o225.cancelBubble = false;
// 6591
o225.returnValue = void 0;
// 6592
o226 = {};
// 6597
f449694821_387.returns.push(1373490205426);
// 6598
o226.cancelBubble = false;
// 6599
o226.returnValue = void 0;
// 6600
o227 = {};
// 6605
f449694821_387.returns.push(1373490205435);
// 6606
o227.cancelBubble = false;
// 6607
o227.returnValue = void 0;
// 6608
o228 = {};
// 6613
f449694821_387.returns.push(1373490205448);
// 6614
o228.cancelBubble = false;
// 6615
o228.returnValue = void 0;
// 6616
o229 = {};
// 6621
f449694821_387.returns.push(1373490205452);
// 6622
o229.cancelBubble = false;
// 6623
o229.returnValue = void 0;
// 6624
o230 = {};
// 6629
f449694821_387.returns.push(1373490205461);
// 6630
o230.cancelBubble = false;
// 6631
o230.returnValue = void 0;
// 6632
o231 = {};
// 6637
f449694821_387.returns.push(1373490205475);
// 6638
o231.cancelBubble = false;
// 6639
o231.returnValue = void 0;
// 6640
o232 = {};
// 6645
f449694821_387.returns.push(1373490205498);
// 6646
o232.cancelBubble = false;
// 6647
o232.returnValue = void 0;
// 6648
o233 = {};
// 6653
f449694821_387.returns.push(1373490205520);
// 6654
o233.cancelBubble = false;
// 6655
o233.returnValue = void 0;
// 6656
o234 = {};
// 6661
f449694821_387.returns.push(1373490205521);
// 6662
o234.cancelBubble = false;
// 6663
o234.returnValue = void 0;
// 6664
o235 = {};
// 6669
f449694821_387.returns.push(1373490205579);
// 6670
o235.cancelBubble = false;
// 6671
o235.returnValue = void 0;
// 6672
o236 = {};
// 6677
f449694821_387.returns.push(1373490205581);
// 6678
o236.cancelBubble = false;
// 6679
o236.returnValue = void 0;
// 6680
o237 = {};
// 6685
f449694821_387.returns.push(1373490205799);
// 6686
o237.cancelBubble = false;
// 6687
o237.returnValue = void 0;
// 6688
o238 = {};
// 6693
f449694821_387.returns.push(1373490205805);
// 6694
o238.cancelBubble = false;
// 6695
o238.returnValue = void 0;
// 6696
o239 = {};
// 6701
f449694821_387.returns.push(1373490205817);
// 6702
o239.cancelBubble = false;
// 6703
o239.returnValue = void 0;
// 6704
o240 = {};
// 6709
f449694821_387.returns.push(1373490205826);
// 6710
o240.cancelBubble = false;
// 6711
o240.returnValue = void 0;
// 6712
o241 = {};
// 6717
f449694821_387.returns.push(1373490205842);
// 6718
o241.cancelBubble = false;
// 6719
o241.returnValue = void 0;
// 6720
o242 = {};
// 6725
f449694821_387.returns.push(1373490205849);
// 6726
o242.cancelBubble = false;
// 6727
o242.returnValue = void 0;
// 6728
o243 = {};
// 6733
f449694821_387.returns.push(1373490205966);
// 6734
o243.cancelBubble = false;
// 6735
o243.returnValue = void 0;
// 6736
o244 = {};
// 6741
f449694821_387.returns.push(1373490205967);
// 6742
o244.cancelBubble = false;
// 6743
o244.returnValue = void 0;
// 6744
o245 = {};
// 6749
f449694821_387.returns.push(1373490205982);
// 6750
o245.cancelBubble = false;
// 6751
o245.returnValue = void 0;
// 6752
o246 = {};
// 6757
f449694821_387.returns.push(1373490205984);
// 6758
o246.cancelBubble = false;
// 6759
o246.returnValue = void 0;
// 6760
o247 = {};
// 6765
f449694821_387.returns.push(1373490206000);
// 6766
o247.cancelBubble = false;
// 6767
o247.returnValue = void 0;
// 6768
o248 = {};
// 6773
f449694821_387.returns.push(1373490206000);
// 6774
o248.cancelBubble = false;
// 6775
o248.returnValue = void 0;
// 6778
f449694821_387.returns.push(1373490206092);
// 6779
o249 = {};
// 6784
f449694821_387.returns.push(1373490206319);
// 6785
o249.cancelBubble = false;
// 6786
o249.returnValue = void 0;
// 6787
o250 = {};
// 6792
f449694821_387.returns.push(1373490206320);
// 6793
o250.cancelBubble = false;
// 6794
o250.returnValue = void 0;
// 6795
o251 = {};
// 6800
f449694821_387.returns.push(1373490206327);
// 6801
o251.cancelBubble = false;
// 6802
o251.returnValue = void 0;
// 6803
o252 = {};
// 6808
f449694821_387.returns.push(1373490206337);
// 6809
o252.cancelBubble = false;
// 6810
o252.returnValue = void 0;
// 6811
o253 = {};
// 6816
f449694821_387.returns.push(1373490206352);
// 6817
o253.cancelBubble = false;
// 6818
o253.returnValue = void 0;
// 6819
o254 = {};
// 6820
f449694821_387.returns.push(1373490205842);
// 6823
o242 = {};
// 6828
f449694821_387.returns.push(1373490205849);
// 6829
o242.cancelBubble = false;
// 6830
o242.returnValue = void 0;
// 6831
o243 = {};
// 6836
f449694821_387.returns.push(1373490205966);
// 6837
o243.cancelBubble = false;
// 6838
o243.returnValue = void 0;
// 6839
o244 = {};
// 6844
f449694821_387.returns.push(1373490205967);
// 6845
o244.cancelBubble = false;
// 6846
o244.returnValue = void 0;
// 6847
o245 = {};
// 6852
f449694821_387.returns.push(1373490205982);
// 6853
o245.cancelBubble = false;
// 6854
o245.returnValue = void 0;
// 6855
o246 = {};
// 6860
f449694821_387.returns.push(1373490205984);
// 6861
o246.cancelBubble = false;
// 6862
o246.returnValue = void 0;
// 6863
o247 = {};
// 6868
f449694821_387.returns.push(1373490206000);
// 6869
o247.cancelBubble = false;
// 6870
o247.returnValue = void 0;
// 6871
o248 = {};
// 6876
f449694821_387.returns.push(1373490206000);
// 6877
o248.cancelBubble = false;
// 6878
o248.returnValue = void 0;
// 6881
f449694821_387.returns.push(1373490206092);
// 6882
o249 = {};
// 6887
f449694821_387.returns.push(1373490206319);
// 6888
o249.cancelBubble = false;
// 6889
o249.returnValue = void 0;
// 6890
o250 = {};
// 6895
f449694821_387.returns.push(1373490206320);
// 6896
o250.cancelBubble = false;
// 6897
o250.returnValue = void 0;
// 6898
o251 = {};
// 6903
f449694821_387.returns.push(1373490206327);
// 6904
o251.cancelBubble = false;
// 6905
o251.returnValue = void 0;
// 6906
o252 = {};
// 6911
f449694821_387.returns.push(1373490206337);
// 6912
o252.cancelBubble = false;
// 6913
o252.returnValue = void 0;
// 6914
o253 = {};
// 6919
f449694821_387.returns.push(1373490206352);
// 6920
o253.cancelBubble = false;
// 6921
o253.returnValue = void 0;
// 6922
o254 = {};
// undefined
o254 = null;
// 6923
// 0
JSBNG_Replay$ = function(real, cb) { if (!real) return;
// 810
geval("function envFlush(a) {\n function b(c) {\n {\n var fin0keys = ((window.top.JSBNG_Replay.forInKeys)((a))), fin0i = (0);\n var d;\n for (; (fin0i < fin0keys.length); (fin0i++)) {\n ((d) = (fin0keys[fin0i]));\n {\n c[d] = a[d];\n ;\n };\n };\n };\n ;\n };\n;\n if (window.requireLazy) {\n requireLazy([\"Env\",], b);\n }\n else {\n Env = ((window.Env || {\n }));\n b(Env);\n }\n;\n;\n};\n;\nenvFlush({\n user: \"100006118350059\",\n locale: \"en_US\",\n method: \"GET\",\n svn_rev: 871405,\n tier: \"\",\n push_phase: \"V3\",\n pkg_cohort: \"EXP1:DEFAULT\",\n vip: \"173.252.112.23\",\n www_base: \"http://jsbngssl.www.facebook.com/\",\n fb_dtsg: \"AQCttlPQ\",\n ajaxpipe_token: \"AXg1MJsj67jxFeGx\",\n lhsh: \"5AQFHNAuS\",\n tracking_domain: \"http://jsbngssl.pixel.facebook.com\",\n retry_ajax_on_network_error: \"1\",\n fbid_emoticons: \"1\"\n});");
// 811
geval("envFlush({\n eagleEyeConfig: {\n seed: \"0gpU\"\n }\n});\nCavalryLogger = false;");
// 812
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"FHcQn\",]);\n}\n;\n;\nJSBNG__self.__DEV__ = ((JSBNG__self.__DEV__ || 0));\nif (((JSON.stringify([\"\\u2028\\u2029\",]) === \"[\\\"\\u2028\\u2029\\\"]\"))) {\n JSON.stringify = function(a) {\n var b = /\\u2028/g, c = /\\u2029/g;\n return ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1), function(d, e, f) {\n var g = a.call(this, d, e, f);\n if (g) {\n if (((-1 < g.indexOf(\"\\u2028\")))) {\n g = g.replace(b, \"\\\\u2028\");\n }\n ;\n ;\n if (((-1 < g.indexOf(\"\\u2029\")))) {\n g = g.replace(c, \"\\\\u2029\");\n }\n ;\n ;\n }\n ;\n ;\n return g;\n }));\n }(JSON.stringify);\n}\n;\n;\nvar __t = function(a) {\n return a[0];\n}, __w = function(a) {\n return a;\n};\n(function(a) {\n if (a.require) {\n return;\n }\n;\n;\n var b = Object.prototype.toString, c = {\n }, d = {\n }, e = {\n }, f = 0, g = 1, h = 2, i = Object.prototype.hasOwnProperty;\n function j(s) {\n if (((a.ErrorUtils && !a.ErrorUtils.inGuard()))) {\n return ErrorUtils.applyWithGuard(j, this, arguments);\n }\n ;\n ;\n var t = c[s], u, v, w;\n if (!c[s]) {\n w = ((((\"Requiring unknown module \\\"\" + s)) + \"\\\"\"));\n throw new Error(w);\n }\n ;\n ;\n if (t.hasError) {\n throw new Error(((((\"Requiring module \\\"\" + s)) + \"\\\" which threw an exception\")));\n }\n ;\n ;\n if (t.waiting) {\n w = ((((\"Requiring module \\\"\" + s)) + \"\\\" with unresolved dependencies\"));\n throw new Error(w);\n }\n ;\n ;\n if (!t.exports) {\n var x = t.exports = {\n }, y = t.factory;\n if (((b.call(y) === \"[object Function]\"))) {\n var z = [], aa = t.dependencies, ba = aa.length, ca;\n if (((t.special & h))) {\n ba = Math.min(ba, y.length);\n }\n ;\n ;\n try {\n for (v = 0; ((v < ba)); v++) {\n u = aa[v];\n z.push(((((u === \"module\")) ? t : ((((u === \"exports\")) ? x : j(u))))));\n };\n ;\n ca = y.apply(((t.context || a)), z);\n } catch (da) {\n t.hasError = true;\n throw da;\n };\n ;\n if (ca) {\n t.exports = ca;\n }\n ;\n ;\n }\n else t.exports = y;\n ;\n ;\n }\n ;\n ;\n if (((t.refcount-- === 1))) {\n delete c[s];\n }\n ;\n ;\n return t.exports;\n };\n;\n function k(s, t, u, v, w, x) {\n if (((t === undefined))) {\n t = [];\n u = s;\n s = n();\n }\n else if (((u === undefined))) {\n u = t;\n if (((b.call(s) === \"[object Array]\"))) {\n t = s;\n s = n();\n }\n else t = [];\n ;\n ;\n }\n \n ;\n ;\n var y = {\n cancel: l.bind(this, s)\n }, z = c[s];\n if (z) {\n if (x) {\n z.refcount += x;\n }\n ;\n ;\n return y;\n }\n else if (((((!t && !u)) && x))) {\n e[s] = ((((e[s] || 0)) + x));\n return y;\n }\n else {\n z = {\n id: s\n };\n z.refcount = ((((e[s] || 0)) + ((x || 0))));\n delete e[s];\n }\n \n ;\n ;\n z.factory = u;\n z.dependencies = t;\n z.context = w;\n z.special = v;\n z.waitingMap = {\n };\n z.waiting = 0;\n z.hasError = false;\n c[s] = z;\n p(s);\n return y;\n };\n;\n function l(s) {\n if (!c[s]) {\n return;\n }\n ;\n ;\n var t = c[s];\n delete c[s];\n {\n var fin1keys = ((window.top.JSBNG_Replay.forInKeys)((t.waitingMap))), fin1i = (0);\n var u;\n for (; (fin1i < fin1keys.length); (fin1i++)) {\n ((u) = (fin1keys[fin1i]));\n {\n if (t.waitingMap[u]) {\n delete d[u][s];\n }\n ;\n ;\n };\n };\n };\n ;\n for (var v = 0; ((v < t.dependencies.length)); v++) {\n u = t.dependencies[v];\n if (c[u]) {\n if (((c[u].refcount-- === 1))) {\n l(u);\n }\n ;\n ;\n }\n else if (e[u]) {\n e[u]--;\n }\n \n ;\n ;\n };\n ;\n };\n;\n function m(s, t, u) {\n return k(s, t, undefined, g, u, 1);\n };\n;\n function n() {\n return ((\"__mod__\" + f++));\n };\n;\n function o(s, t) {\n if (((!s.waitingMap[t] && ((s.id !== t))))) {\n s.waiting++;\n s.waitingMap[t] = 1;\n ((d[t] || (d[t] = {\n })));\n d[t][s.id] = 1;\n }\n ;\n ;\n };\n;\n function p(s) {\n var t = [], u = c[s], v, w, x;\n for (w = 0; ((w < u.dependencies.length)); w++) {\n v = u.dependencies[w];\n if (!c[v]) {\n o(u, v);\n }\n else if (c[v].waiting) {\n {\n var fin2keys = ((window.top.JSBNG_Replay.forInKeys)((c[v].waitingMap))), fin2i = (0);\n (0);\n for (; (fin2i < fin2keys.length); (fin2i++)) {\n ((x) = (fin2keys[fin2i]));\n {\n if (c[v].waitingMap[x]) {\n o(u, x);\n }\n ;\n ;\n };\n };\n };\n }\n \n ;\n ;\n };\n ;\n if (((((u.waiting === 0)) && ((u.special & g))))) {\n t.push(s);\n }\n ;\n ;\n if (d[s]) {\n var y = d[s], z;\n d[s] = undefined;\n {\n var fin3keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin3i = (0);\n (0);\n for (; (fin3i < fin3keys.length); (fin3i++)) {\n ((v) = (fin3keys[fin3i]));\n {\n z = c[v];\n {\n var fin4keys = ((window.top.JSBNG_Replay.forInKeys)((u.waitingMap))), fin4i = (0);\n (0);\n for (; (fin4i < fin4keys.length); (fin4i++)) {\n ((x) = (fin4keys[fin4i]));\n {\n if (u.waitingMap[x]) {\n o(z, x);\n }\n ;\n ;\n };\n };\n };\n ;\n if (z.waitingMap[s]) {\n z.waitingMap[s] = undefined;\n z.waiting--;\n }\n ;\n ;\n if (((((z.waiting === 0)) && ((z.special & g))))) {\n t.push(v);\n }\n ;\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n for (w = 0; ((w < t.length)); w++) {\n j(t[w]);\n ;\n };\n ;\n };\n;\n function q(s, t) {\n c[s] = {\n id: s\n };\n c[s].exports = t;\n };\n;\n q(\"module\", 0);\n q(\"exports\", 0);\n q(\"define\", k);\n q(\"global\", a);\n q(\"require\", j);\n q(\"requireDynamic\", j);\n q(\"requireLazy\", m);\n k.amd = {\n };\n a.define = k;\n a.require = j;\n a.requireDynamic = j;\n a.requireLazy = m;\n j.__debug = {\n modules: c,\n deps: d\n };\n var r = function(s, t, u, v) {\n k(s, t, u, ((v || h)));\n };\n a.__d = function(s, t, u, v) {\n t = [\"global\",\"require\",\"requireDynamic\",\"requireLazy\",\"module\",\"exports\",].concat(t);\n r(s, t, u, v);\n };\n})(this);\n__d(\"SidebarPrelude\", [], function(a, b, c, d, e, f) {\n var g = {\n addSidebarMode: function(h) {\n var i = JSBNG__document.documentElement;\n if (((i.clientWidth > h))) {\n i.className = ((i.className + \" sidebarMode\"));\n }\n ;\n ;\n }\n };\n e.exports = g;\n});\n__d(\"eprintf\", [], function(a, b, c, d, e, f) {\n var g = function(h) {\n var i = Array.prototype.slice.call(arguments).map(function(l) {\n return String(l);\n }), j = ((h.split(\"%s\").length - 1));\n if (((j !== ((i.length - 1))))) {\n return g(\"eprintf args number mismatch: %s\", JSON.stringify(i));\n }\n ;\n ;\n var k = 1;\n return h.replace(/%s/g, function(l) {\n return String(i[k++]);\n });\n };\n e.exports = g;\n});\n__d(\"ex\", [], function(a, b, c, d, e, f) {\n var g = function(h) {\n var i = Array.prototype.slice.call(arguments).map(function(k) {\n return String(k);\n }), j = ((h.split(\"%s\").length - 1));\n if (((j !== ((i.length - 1))))) {\n return g(\"ex args number mismatch: %s\", JSON.stringify(i));\n }\n ;\n ;\n return ((((g._prefix + JSON.stringify(i))) + g._suffix));\n };\n g._prefix = \"\\u003C![EX[\";\n g._suffix = \"]]\\u003E\";\n e.exports = g;\n});\n__d(\"erx\", [\"ex\",], function(a, b, c, d, e, f) {\n var g = b(\"ex\"), h = function(i) {\n if (((typeof i !== \"string\"))) {\n return i;\n }\n ;\n ;\n var j = i.indexOf(g._prefix), k = i.lastIndexOf(g._suffix);\n if (((((j < 0)) || ((k < 0))))) {\n return [i,];\n }\n ;\n ;\n var l = ((j + g._prefix.length)), m = ((k + g._suffix.length));\n if (((l >= k))) {\n return [\"erx slice failure: %s\",i,];\n }\n ;\n ;\n var n = i.substring(0, j), o = i.substring(m);\n i = i.substring(l, k);\n var p;\n try {\n p = JSON.parse(i);\n p[0] = ((((n + p[0])) + o));\n } catch (q) {\n return [\"erx parse failure: %s\",i,];\n };\n ;\n return p;\n };\n e.exports = h;\n});\n__d(\"copyProperties\", [], function(a, b, c, d, e, f) {\n function g(h, i, j, k, l, m, n) {\n h = ((h || {\n }));\n var o = [i,j,k,l,m,], p = 0, q;\n while (o[p]) {\n q = o[p++];\n {\n var fin5keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin5i = (0);\n var r;\n for (; (fin5i < fin5keys.length); (fin5i++)) {\n ((r) = (fin5keys[fin5i]));\n {\n h[r] = q[r];\n ;\n };\n };\n };\n ;\n if (((((((q.hasOwnProperty && q.hasOwnProperty(\"toString\"))) && ((typeof q.toString != \"undefined\")))) && ((h.toString !== q.toString))))) {\n h.toString = q.toString;\n }\n ;\n ;\n };\n ;\n return h;\n };\n;\n e.exports = g;\n});\n__d(\"Env\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = {\n start: JSBNG__Date.now()\n };\n if (a.Env) {\n g(h, a.Env);\n a.Env = undefined;\n }\n;\n;\n e.exports = h;\n});\n__d(\"ErrorUtils\", [\"eprintf\",\"erx\",\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"eprintf\"), h = b(\"erx\"), i = b(\"Env\"), j = \"\\u003Canonymous guard\\u003E\", k = \"\\u003Cgenerated guard\\u003E\", l = \"\\u003Cwindow.onerror\\u003E\", m = [], n = [], o = 50, p = ((window.chrome && ((\"type\" in new Error())))), q = false;\n function r(da) {\n if (!da) {\n return;\n }\n ;\n ;\n var ea = da.split(/\\n\\n/)[0].replace(/[\\(\\)]|\\[.*?\\]|^\\w+:\\s.*?\\n/g, \"\").split(\"\\u000a\").map(function(fa) {\n var ga, ha, ia;\n fa = fa.trim();\n if (/(:(\\d+)(:(\\d+))?)$/.test(fa)) {\n ha = RegExp.$2;\n ia = RegExp.$4;\n fa = fa.slice(0, -RegExp.$1.length);\n }\n ;\n ;\n if (/(.*)(@|\\s)[^\\s]+$/.test(fa)) {\n fa = fa.substring(((RegExp.$1.length + 1)));\n ga = ((/(at)?\\s*(.*)([^\\s]+|$)/.test(RegExp.$1) ? RegExp.$2 : \"\"));\n }\n ;\n ;\n return ((((((((((\" at\" + ((ga ? ((((\" \" + ga)) + \" (\")) : \" \")))) + fa.replace(/^@/, \"\"))) + ((ha ? ((\":\" + ha)) : \"\")))) + ((ia ? ((\":\" + ia)) : \"\")))) + ((ga ? \")\" : \"\"))));\n });\n return ea.join(\"\\u000a\");\n };\n;\n function s(da) {\n if (!da) {\n return {\n };\n }\n else if (da._originalError) {\n return da;\n }\n \n ;\n ;\n var ea = {\n line: ((da.lineNumber || da.line)),\n column: ((da.columnNumber || da.column)),\n JSBNG__name: da.JSBNG__name,\n message: da.message,\n script: ((((da.fileName || da.sourceURL)) || da.script)),\n stack: r(((da.stackTrace || da.stack))),\n guard: da.guard\n };\n if (((typeof ea.message === \"string\"))) {\n ea.messageWithParams = h(ea.message);\n ea.message = g.apply(a, ea.messageWithParams);\n }\n else {\n ea.messageObject = ea.message;\n ea.message = String(ea.message);\n }\n ;\n ;\n ea._originalError = da;\n if (((da.framesToPop && ea.stack))) {\n var fa = ea.stack.split(\"\\u000a\");\n fa.shift();\n if (((da.framesToPop === 2))) {\n da.message += ((\" \" + fa.shift().trim()));\n }\n ;\n ;\n ea.stack = fa.join(\"\\u000a\");\n if (/(\\w{3,5}:\\/\\/[^:]+):(\\d+)/.test(fa[0])) {\n ea.script = RegExp.$1;\n ea.line = parseInt(RegExp.$2, 10);\n }\n ;\n ;\n delete da.framesToPop;\n }\n ;\n ;\n if (((p && /(\\w{3,5}:\\/\\/[^:]+):(\\d+)/.test(da.stack)))) {\n ea.script = RegExp.$1;\n ea.line = parseInt(RegExp.$2, 10);\n }\n ;\n ;\n {\n var fin6keys = ((window.top.JSBNG_Replay.forInKeys)((ea))), fin6i = (0);\n var ga;\n for (; (fin6i < fin6keys.length); (fin6i++)) {\n ((ga) = (fin6keys[fin6i]));\n {\n ((((ea[ga] == null)) && delete ea[ga]));\n ;\n };\n };\n };\n ;\n return ea;\n };\n;\n function t() {\n try {\n throw new Error();\n } catch (da) {\n var ea = s(da).stack;\n return ((ea && ea.replace(/[\\s\\S]*__getTrace__.*\\n/, \"\")));\n };\n ;\n };\n;\n function u(da, ea) {\n if (q) {\n return;\n }\n ;\n ;\n da = s(da);\n !ea;\n if (((n.length > o))) {\n n.splice(((o / 2)), 1);\n }\n ;\n ;\n n.push(da);\n q = true;\n for (var fa = 0; ((fa < m.length)); fa++) {\n try {\n m[fa](da);\n } catch (ga) {\n \n };\n ;\n };\n ;\n q = false;\n };\n;\n var v = false;\n function w() {\n return v;\n };\n;\n function x() {\n v = false;\n };\n;\n function y(da, ea, fa, ga, ha) {\n var ia = !v;\n if (ia) {\n v = true;\n }\n ;\n ;\n var ja, ka = ((i.nocatch || (/nocatch/).test(JSBNG__location.search)));\n if (ka) {\n ja = da.apply(ea, ((fa || [])));\n if (ia) {\n x();\n }\n ;\n ;\n return ja;\n }\n ;\n ;\n try {\n ja = da.apply(ea, ((fa || [])));\n if (ia) {\n x();\n }\n ;\n ;\n return ja;\n } catch (la) {\n if (ia) {\n x();\n }\n ;\n ;\n var ma = s(la);\n if (ga) {\n ga(ma);\n }\n ;\n ;\n if (da) {\n ma.callee = da.toString().substring(0, 100);\n }\n ;\n ;\n if (fa) {\n ma.args = String(fa).substring(0, 100);\n }\n ;\n ;\n ma.guard = ((ha || j));\n u(ma);\n };\n ;\n };\n;\n function z(da, ea) {\n ea = ((((ea || da.JSBNG__name)) || k));\n {\n function fa() {\n return y(da, this, arguments, null, ea);\n };\n ((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39.push)((fa)));\n };\n ;\n return fa;\n };\n;\n function aa(da, ea, fa, ga) {\n u({\n message: da,\n script: ea,\n line: fa,\n column: ga,\n guard: l\n }, true);\n };\n;\n window.JSBNG__onerror = aa;\n function ba(da, ea) {\n m.push(da);\n if (!ea) {\n n.forEach(da);\n }\n ;\n ;\n };\n;\n var ca = {\n ANONYMOUS_GUARD_TAG: j,\n GENERATED_GUARD_TAG: k,\n GLOBAL_ERROR_HANDLER_TAG: l,\n addListener: ba,\n applyWithGuard: y,\n getTrace: t,\n guard: z,\n JSBNG__history: n,\n inGuard: w,\n normalizeError: s,\n JSBNG__onerror: aa,\n reportError: u\n };\n e.exports = a.ErrorUtils = ca;\n if (((((typeof __t === \"function\")) && __t.setHandler))) {\n __t.setHandler(u);\n }\n;\n;\n});\n__d(\"CallbackDependencyManager\", [\"ErrorUtils\",], function(a, b, c, d, e, f) {\n var g = b(\"ErrorUtils\");\n function h() {\n this.$CallbackDependencyManager0 = {\n };\n this.$CallbackDependencyManager1 = {\n };\n this.$CallbackDependencyManager2 = 1;\n this.$CallbackDependencyManager3 = {\n };\n };\n;\n h.prototype.$CallbackDependencyManager4 = function(i, j) {\n var k = 0, l = {\n };\n for (var m = 0, n = j.length; ((m < n)); m++) {\n l[j[m]] = 1;\n ;\n };\n ;\n {\n var fin7keys = ((window.top.JSBNG_Replay.forInKeys)((l))), fin7i = (0);\n var o;\n for (; (fin7i < fin7keys.length); (fin7i++)) {\n ((o) = (fin7keys[fin7i]));\n {\n if (this.$CallbackDependencyManager3[o]) {\n continue;\n }\n ;\n ;\n k++;\n if (((this.$CallbackDependencyManager0[o] === undefined))) {\n this.$CallbackDependencyManager0[o] = {\n };\n }\n ;\n ;\n this.$CallbackDependencyManager0[o][i] = ((((this.$CallbackDependencyManager0[o][i] || 0)) + 1));\n };\n };\n };\n ;\n return k;\n };\n h.prototype.$CallbackDependencyManager5 = function(i) {\n if (!this.$CallbackDependencyManager0[i]) {\n return;\n }\n ;\n ;\n {\n var fin8keys = ((window.top.JSBNG_Replay.forInKeys)((this.$CallbackDependencyManager0[i]))), fin8i = (0);\n var j;\n for (; (fin8i < fin8keys.length); (fin8i++)) {\n ((j) = (fin8keys[fin8i]));\n {\n this.$CallbackDependencyManager0[i][j]--;\n if (((this.$CallbackDependencyManager0[i][j] <= 0))) {\n delete this.$CallbackDependencyManager0[i][j];\n }\n ;\n ;\n this.$CallbackDependencyManager1[j].$CallbackDependencyManager6--;\n if (((this.$CallbackDependencyManager1[j].$CallbackDependencyManager6 <= 0))) {\n var k = this.$CallbackDependencyManager1[j].$CallbackDependencyManager7;\n delete this.$CallbackDependencyManager1[j];\n g.applyWithGuard(k);\n }\n ;\n ;\n };\n };\n };\n ;\n };\n h.prototype.addDependenciesToExistingCallback = function(i, j) {\n if (!this.$CallbackDependencyManager1[i]) {\n return null;\n }\n ;\n ;\n var k = this.$CallbackDependencyManager4(i, j);\n this.$CallbackDependencyManager1[i].$CallbackDependencyManager6 += k;\n return i;\n };\n h.prototype.isPersistentDependencySatisfied = function(i) {\n return !!this.$CallbackDependencyManager3[i];\n };\n h.prototype.satisfyPersistentDependency = function(i) {\n this.$CallbackDependencyManager3[i] = 1;\n this.$CallbackDependencyManager5(i);\n };\n h.prototype.satisfyNonPersistentDependency = function(i) {\n var j = ((this.$CallbackDependencyManager3[i] === 1));\n if (!j) {\n this.$CallbackDependencyManager3[i] = 1;\n }\n ;\n ;\n this.$CallbackDependencyManager5(i);\n if (!j) {\n delete this.$CallbackDependencyManager3[i];\n }\n ;\n ;\n };\n h.prototype.registerCallback = function(i, j) {\n var k = this.$CallbackDependencyManager2;\n this.$CallbackDependencyManager2++;\n var l = this.$CallbackDependencyManager4(k, j);\n if (((l === 0))) {\n g.applyWithGuard(i);\n return null;\n }\n ;\n ;\n this.$CallbackDependencyManager1[k] = {\n $CallbackDependencyManager7: i,\n $CallbackDependencyManager6: l\n };\n return k;\n };\n h.prototype.unsatisfyPersistentDependency = function(i) {\n delete this.$CallbackDependencyManager3[i];\n };\n e.exports = h;\n});\n__d(\"hasArrayNature\", [], function(a, b, c, d, e, f) {\n function g(h) {\n return ((((((((!!h && ((((typeof h == \"object\")) || ((typeof h == \"function\")))))) && ((\"length\" in h)))) && !((\"JSBNG__setInterval\" in h)))) && ((((((Object.prototype.toString.call(h) === \"[object Array]\")) || ((\"callee\" in h)))) || ((\"item\" in h))))));\n };\n;\n e.exports = g;\n});\n__d(\"createArrayFrom\", [\"hasArrayNature\",], function(a, b, c, d, e, f) {\n var g = b(\"hasArrayNature\");\n function h(i) {\n if (!g(i)) {\n return [i,];\n }\n ;\n ;\n if (i.item) {\n var j = i.length, k = new Array(j);\n while (j--) {\n k[j] = i[j];\n ;\n };\n ;\n return k;\n }\n ;\n ;\n return Array.prototype.slice.call(i);\n };\n;\n e.exports = h;\n});\n__d(\"invariant\", [], function(a, b, c, d, e, f) {\n function g(h) {\n if (!h) {\n throw new Error(\"Invariant Violation\");\n }\n ;\n ;\n };\n;\n e.exports = g;\n});\n__d(\"EventEmitter\", [\"createArrayFrom\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"createArrayFrom\"), h = b(\"invariant\");\n function i() {\n this.$EventEmitter0 = {\n };\n this.$EventEmitter1 = {\n };\n this.$EventEmitter2 = {\n };\n };\n;\n i.prototype.addListener = function(k, l, m) {\n if (!this.$EventEmitter0[k]) {\n this.$EventEmitter0[k] = [];\n }\n ;\n ;\n var n = this.$EventEmitter0[k].length;\n this.$EventEmitter0[k].push(l);\n if (((m !== undefined))) {\n if (!this.$EventEmitter1[k]) {\n this.$EventEmitter1[k] = [];\n }\n ;\n ;\n this.$EventEmitter1[k][n] = m;\n }\n ;\n ;\n return new j(this, k, n);\n };\n i.prototype.once = function(k, l, m) {\n var n = this;\n return this.addListener(k, function() {\n n.removeCurrentListener();\n l.apply(m, arguments);\n });\n };\n i.prototype.removeAllListeners = function(k) {\n if (((k === undefined))) {\n this.$EventEmitter0 = {\n };\n this.$EventEmitter1 = {\n };\n }\n else {\n delete this.$EventEmitter0[k];\n delete this.$EventEmitter1[k];\n }\n ;\n ;\n };\n i.prototype.removeCurrentListener = function() {\n h(((this.$EventEmitter2.key !== undefined)));\n this.removeSubscription(this.$EventEmitter2);\n };\n i.prototype.removeSubscription = function(k) {\n var l = k.eventType, m = k.key, n = this.$EventEmitter0[l];\n if (n) {\n delete n[m];\n }\n ;\n ;\n var o = this.$EventEmitter1[l];\n if (o) {\n delete o[m];\n }\n ;\n ;\n };\n i.prototype.listeners = function(k) {\n var l = this.$EventEmitter0[k];\n return ((l ? g(l) : []));\n };\n i.prototype.emit = function(k, l, m, n, o, p, q) {\n h(((q === undefined)));\n var r = this.$EventEmitter0[k];\n if (r) {\n var s = this.$EventEmitter1[k];\n this.$EventEmitter2.eventType = k;\n var t = Object.keys(r);\n for (var u = 0; ((u < t.length)); u++) {\n var v = t[u], w = r[v];\n if (w) {\n var x = ((s ? s[v] : undefined));\n this.$EventEmitter2.key = v;\n if (((x === undefined))) {\n w(l, m, n, o, p);\n }\n else w.call(x, l, m, n, o, p);\n ;\n ;\n }\n ;\n ;\n };\n ;\n this.$EventEmitter2.eventType = undefined;\n this.$EventEmitter2.key = undefined;\n }\n ;\n ;\n };\n function j(k, l, m) {\n this.$ListenerSubscription0 = k;\n this.eventType = l;\n this.key = m;\n };\n;\n j.prototype.remove = function() {\n this.$ListenerSubscription0.removeSubscription(this);\n };\n e.exports = i;\n});\n__d(\"EventEmitterWithHolding\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n this.$EventEmitterWithHolding0 = h;\n this.$EventEmitterWithHolding1 = i;\n this.$EventEmitterWithHolding2 = null;\n this.$EventEmitterWithHolding3 = false;\n };\n;\n g.prototype.addListener = function(h, i, j) {\n return this.$EventEmitterWithHolding0.addListener(h, i, j);\n };\n g.prototype.once = function(h, i, j) {\n return this.$EventEmitterWithHolding0.once(h, i, j);\n };\n g.prototype.addRetroactiveListener = function(h, i, j) {\n var k = this.$EventEmitterWithHolding0.addListener(h, i, j);\n this.$EventEmitterWithHolding3 = true;\n this.$EventEmitterWithHolding1.emitToListener(h, i, j);\n this.$EventEmitterWithHolding3 = false;\n return k;\n };\n g.prototype.removeAllListeners = function(h) {\n this.$EventEmitterWithHolding0.removeAllListeners(h);\n };\n g.prototype.removeCurrentListener = function() {\n this.$EventEmitterWithHolding0.removeCurrentListener();\n };\n g.prototype.removeSubscription = function(h) {\n this.$EventEmitterWithHolding0.removeSubscription(h);\n };\n g.prototype.listeners = function(h) {\n return this.$EventEmitterWithHolding0.listeners(h);\n };\n g.prototype.emit = function(h, i, j, k, l, m, n) {\n this.$EventEmitterWithHolding0.emit(h, i, j, k, l, m, n);\n };\n g.prototype.emitAndHold = function(h, i, j, k, l, m, n) {\n this.$EventEmitterWithHolding2 = this.$EventEmitterWithHolding1.holdEvent(h, i, j, k, l, m, n);\n this.$EventEmitterWithHolding0.emit(h, i, j, k, l, m, n);\n this.$EventEmitterWithHolding2 = null;\n };\n g.prototype.releaseCurrentEvent = function() {\n if (((this.$EventEmitterWithHolding2 !== null))) {\n this.$EventEmitterWithHolding1.releaseEvent(this.$EventEmitterWithHolding2);\n }\n else if (this.$EventEmitterWithHolding3) {\n this.$EventEmitterWithHolding1.releaseCurrentEvent();\n }\n \n ;\n ;\n };\n e.exports = g;\n});\n__d(\"EventHolder\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\");\n function h() {\n this.$EventHolder0 = [];\n this.$EventHolder1 = [];\n this.$EventHolder2 = null;\n };\n;\n h.prototype.holdEvent = function(i, j, k, l, m, n, o) {\n var p = this.$EventHolder0.length, JSBNG__event = [i,j,k,l,m,n,o,];\n this.$EventHolder0.push(JSBNG__event);\n return p;\n };\n h.prototype.emitToListener = function(i, j, k) {\n this.forEachHeldEvent(function(l, m, n, o, p, q, r) {\n if (((l === i))) {\n j.call(k, m, n, o, p, q, r);\n }\n ;\n ;\n });\n };\n h.prototype.forEachHeldEvent = function(i, j) {\n this.$EventHolder0.forEach(function(JSBNG__event, k) {\n this.$EventHolder2 = k;\n i.apply(j, JSBNG__event);\n }, this);\n this.$EventHolder2 = null;\n };\n h.prototype.releaseCurrentEvent = function() {\n g(((this.$EventHolder2 !== null)));\n delete this.$EventHolder0[this.$EventHolder2];\n };\n h.prototype.releaseEvent = function(i) {\n delete this.$EventHolder0[i];\n };\n e.exports = h;\n});\n__d(\"asyncCallback\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n if (a.ArbiterMonitor) {\n return a.ArbiterMonitor.asyncCallback(h, i);\n }\n ;\n ;\n return h;\n };\n;\n e.exports = g;\n});\n__d(\"emptyFunction\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\");\n function h(j) {\n return function() {\n return j;\n };\n };\n;\n {\n function i() {\n \n };\n ((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_96.push)((i)));\n };\n;\n g(i, {\n thatReturns: h,\n thatReturnsFalse: h(false),\n thatReturnsTrue: h(true),\n thatReturnsNull: h(null),\n thatReturnsThis: function() {\n return this;\n },\n thatReturnsArgument: function(j) {\n return j;\n }\n });\n e.exports = i;\n});\n__d(\"Arbiter\", [\"CallbackDependencyManager\",\"ErrorUtils\",\"EventEmitter\",\"EventEmitterWithHolding\",\"EventHolder\",\"asyncCallback\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"hasArrayNature\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"CallbackDependencyManager\"), h = b(\"ErrorUtils\"), i = b(\"EventEmitter\"), j = b(\"EventEmitterWithHolding\"), k = b(\"EventHolder\"), l = b(\"asyncCallback\"), m = b(\"copyProperties\"), n = b(\"createArrayFrom\"), o = b(\"emptyFunction\"), p = b(\"hasArrayNature\"), q = b(\"invariant\");\n function r() {\n var v = new i();\n this.$Arbiter0 = new t();\n this.$Arbiter1 = new j(v, this.$Arbiter0);\n this.$Arbiter2 = new g();\n this.$Arbiter3 = [];\n };\n;\n r.prototype.subscribe = function(v, w, x) {\n v = n(v);\n q(v.every(o.thatReturnsArgument));\n x = ((x || r.SUBSCRIBE_ALL));\n q(((((x === r.SUBSCRIBE_NEW)) || ((x === r.SUBSCRIBE_ALL)))));\n var y = v.map(function(z) {\n var aa = this.$Arbiter4.bind(this, w, z);\n if (((x === r.SUBSCRIBE_NEW))) {\n return this.$Arbiter1.addListener(z, aa);\n }\n ;\n ;\n this.$Arbiter3.push({\n });\n var ba = this.$Arbiter1.addRetroactiveListener(z, aa);\n this.$Arbiter3.pop();\n return ba;\n }, this);\n return new u(this, y);\n };\n r.prototype.$Arbiter4 = function(v, w, x) {\n var y = this.$Arbiter3[((this.$Arbiter3.length - 1))];\n if (((y[w] === false))) {\n return;\n }\n ;\n ;\n var z = h.applyWithGuard(v, null, [w,x,]);\n if (((z === false))) {\n this.$Arbiter1.releaseCurrentEvent();\n }\n ;\n ;\n y[w] = z;\n };\n r.prototype.subscribeOnce = function(v, w, x) {\n var y = this.subscribe(v, function(z, aa) {\n ((y && y.unsubscribe()));\n return w(z, aa);\n }, x);\n return y;\n };\n r.prototype.unsubscribe = function(v) {\n q(v.isForArbiterInstance(this));\n v.unsubscribe();\n };\n r.prototype.inform = function(v, w, x) {\n var y = p(v);\n v = n(v);\n x = ((x || r.BEHAVIOR_EVENT));\n var z = ((((x === r.BEHAVIOR_STATE)) || ((x === r.BEHAVIOR_PERSISTENT)))), aa = a.ArbiterMonitor;\n this.$Arbiter3.push({\n });\n for (var ba = 0; ((ba < v.length)); ba++) {\n var ca = v[ba];\n q(ca);\n this.$Arbiter0.setHoldingBehavior(ca, x);\n ((aa && aa.record(\"JSBNG__event\", ca, w, this)));\n this.$Arbiter1.emitAndHold(ca, w);\n this.$Arbiter5(ca, w, z);\n ((aa && aa.record(\"done\", ca, w, this)));\n };\n ;\n var da = this.$Arbiter3.pop();\n return ((y ? da : da[v[0]]));\n };\n r.prototype.query = function(v) {\n var w = this.$Arbiter0.getHoldingBehavior(v);\n q(((!w || ((w === r.BEHAVIOR_STATE)))));\n var x = null;\n this.$Arbiter0.emitToListener(v, function(y) {\n x = y;\n });\n return x;\n };\n r.prototype.registerCallback = function(v, w) {\n if (((typeof v === \"function\"))) {\n return this.$Arbiter2.registerCallback(l(v, \"arbiter\"), w);\n }\n else return this.$Arbiter2.addDependenciesToExistingCallback(v, w)\n ;\n };\n r.prototype.$Arbiter5 = function(v, w, x) {\n if (((w === null))) {\n return;\n }\n ;\n ;\n if (x) {\n this.$Arbiter2.satisfyPersistentDependency(v);\n }\n else this.$Arbiter2.satisfyNonPersistentDependency(v);\n ;\n ;\n };\n var s = ((((k === null)) ? null : k.prototype));\n t.prototype = Object.create(s);\n t.prototype.constructor = t;\n t.__superConstructor__ = k;\n function t() {\n k.call(this);\n this.$ArbiterEventHolder0 = {\n };\n };\n;\n t.prototype.setHoldingBehavior = function(v, w) {\n this.$ArbiterEventHolder0[v] = w;\n };\n t.prototype.getHoldingBehavior = function(v) {\n return this.$ArbiterEventHolder0[v];\n };\n t.prototype.holdEvent = function(v, w, x, y, z) {\n var aa = this.$ArbiterEventHolder0[v];\n if (((aa !== r.BEHAVIOR_PERSISTENT))) {\n this.$ArbiterEventHolder2(v);\n }\n ;\n ;\n if (((aa !== r.BEHAVIOR_EVENT))) {\n return s.holdEvent.call(this, v, w, x, y, z);\n }\n ;\n ;\n };\n t.prototype.$ArbiterEventHolder2 = function(v) {\n this.emitToListener(v, this.releaseCurrentEvent, this);\n };\n m(r, {\n SUBSCRIBE_NEW: \"new\",\n SUBSCRIBE_ALL: \"all\",\n BEHAVIOR_EVENT: \"JSBNG__event\",\n BEHAVIOR_STATE: \"state\",\n BEHAVIOR_PERSISTENT: \"persistent\"\n });\n function u(v, w) {\n this.$ArbiterToken0 = v;\n this.$ArbiterToken1 = w;\n };\n;\n u.prototype.unsubscribe = function() {\n for (var v = 0; ((v < this.$ArbiterToken1.length)); v++) {\n this.$ArbiterToken1[v].remove();\n ;\n };\n ;\n this.$ArbiterToken1.length = 0;\n };\n u.prototype.isForArbiterInstance = function(v) {\n q(this.$ArbiterToken0);\n return ((this.$ArbiterToken0 === v));\n };\n Object.keys(r.prototype).forEach(function(v) {\n r[v] = function() {\n var w = ((((this instanceof r)) ? this : r));\n return r.prototype[v].apply(w, arguments);\n };\n });\n r.call(r);\n e.exports = r;\n});\n__d(\"ArbiterMixin\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = {\n _getArbiterInstance: function() {\n return ((this._arbiter || (this._arbiter = new g())));\n },\n inform: function(i, j, k) {\n return this._getArbiterInstance().inform(i, j, k);\n },\n subscribe: function(i, j, k) {\n return this._getArbiterInstance().subscribe(i, j, k);\n },\n subscribeOnce: function(i, j, k) {\n return this._getArbiterInstance().subscribeOnce(i, j, k);\n },\n unsubscribe: function(i) {\n this._getArbiterInstance().unsubscribe(i);\n },\n registerCallback: function(i, j) {\n this._getArbiterInstance().registerCallback(i, j);\n },\n query: function(i) {\n return this._getArbiterInstance().query(i);\n }\n };\n e.exports = h;\n});\n__d(\"legacy:ArbiterMixin\", [\"ArbiterMixin\",], function(a, b, c, d) {\n a.ArbiterMixin = b(\"ArbiterMixin\");\n}, 3);\n__d(\"ge\", [], function(a, b, c, d, e, f) {\n function g(j, k, l) {\n return ((((typeof j != \"string\")) ? j : ((!k ? JSBNG__document.getElementById(j) : h(j, k, l)))));\n };\n;\n function h(j, k, l) {\n var m, n, o;\n if (((i(k) == j))) {\n return k;\n }\n else if (k.getElementsByTagName) {\n n = k.getElementsByTagName(((l || \"*\")));\n for (o = 0; ((o < n.length)); o++) {\n if (((i(n[o]) == j))) {\n return n[o];\n }\n ;\n ;\n };\n ;\n }\n else {\n n = k.childNodes;\n for (o = 0; ((o < n.length)); o++) {\n m = h(j, n[o]);\n if (m) {\n return m;\n }\n ;\n ;\n };\n ;\n }\n \n ;\n ;\n return null;\n };\n;\n function i(j) {\n var k = ((j.getAttributeNode && j.getAttributeNode(\"id\")));\n return ((k ? k.value : null));\n };\n;\n e.exports = g;\n});\n__d(\"$\", [\"ge\",\"ex\",], function(a, b, c, d, e, f) {\n var g = b(\"ge\"), h = b(\"ex\");\n function i(j) {\n var k = g(j);\n if (!k) {\n throw new Error(h(\"Tried to get element with id of \\\"%s\\\" but it is not present on the page.\", j));\n }\n ;\n ;\n return k;\n };\n;\n e.exports = i;\n});\n__d(\"CSSCore\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\");\n function h(j, k) {\n if (j.classList) {\n return ((!!k && j.classList.contains(k)));\n }\n ;\n ;\n return ((((((\" \" + j.className)) + \" \")).indexOf(((((\" \" + k)) + \" \"))) > -1));\n };\n;\n var i = {\n addClass: function(j, k) {\n g(!/\\s/.test(k));\n if (k) {\n if (j.classList) {\n j.classList.add(k);\n }\n else if (!h(j, k)) {\n j.className = ((((j.className + \" \")) + k));\n }\n \n ;\n }\n ;\n ;\n return j;\n },\n removeClass: function(j, k) {\n g(!/\\s/.test(k));\n if (k) {\n if (j.classList) {\n j.classList.remove(k);\n }\n else if (h(j, k)) {\n j.className = j.className.replace(new RegExp(((((\"(^|\\\\s)\" + k)) + \"(?:\\\\s|$)\")), \"g\"), \"$1\").replace(/\\s+/g, \" \").replace(/^\\s*|\\s*$/g, \"\");\n }\n \n ;\n }\n ;\n ;\n return j;\n },\n conditionClass: function(j, k, l) {\n return ((l ? i.addClass : i.removeClass))(j, k);\n }\n };\n e.exports = i;\n});\n__d(\"CSS\", [\"$\",\"CSSCore\",], function(a, b, c, d, e, f) {\n var g = b(\"$\"), h = b(\"CSSCore\"), i = \"hidden_elem\", j = {\n setClass: function(k, l) {\n g(k).className = ((l || \"\"));\n return k;\n },\n hasClass: function(k, l) {\n k = g(k);\n if (k.classList) {\n return ((!!l && k.classList.contains(l)));\n }\n ;\n ;\n return ((((((\" \" + k.className)) + \" \")).indexOf(((((\" \" + l)) + \" \"))) > -1));\n },\n addClass: function(k, l) {\n return h.addClass(g(k), l);\n },\n removeClass: function(k, l) {\n return h.removeClass(g(k), l);\n },\n conditionClass: function(k, l, m) {\n return h.conditionClass(g(k), l, m);\n },\n toggleClass: function(k, l) {\n return j.conditionClass(k, l, !j.hasClass(k, l));\n },\n shown: function(k) {\n return !j.hasClass(k, i);\n },\n hide: function(k) {\n return j.addClass(k, i);\n },\n show: function(k) {\n return j.removeClass(k, i);\n },\n toggle: function(k) {\n return j.toggleClass(k, i);\n },\n conditionShow: function(k, l) {\n return j.conditionClass(k, i, !l);\n }\n };\n e.exports = j;\n});\n__d(\"legacy:css-core\", [\"CSS\",], function(a, b, c, d) {\n a.CSS = b(\"CSS\");\n}, 3);\n__d(\"legacy:dom-core\", [\"$\",\"ge\",], function(a, b, c, d) {\n a.$ = b(\"$\");\n a.ge = b(\"ge\");\n}, 3);\n__d(\"Parent\", [\"CSS\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = {\n byTag: function(i, j) {\n j = j.toUpperCase();\n while (((i && ((i.nodeName != j))))) {\n i = i.parentNode;\n ;\n };\n ;\n return i;\n },\n byClass: function(i, j) {\n while (((i && !g.hasClass(i, j)))) {\n i = i.parentNode;\n ;\n };\n ;\n return i;\n },\n byAttribute: function(i, j) {\n while (((i && ((!i.getAttribute || !i.getAttribute(j)))))) {\n i = i.parentNode;\n ;\n };\n ;\n return i;\n }\n };\n e.exports = h;\n});\n__d(\"legacy:parent\", [\"Parent\",], function(a, b, c, d) {\n a.Parent = b(\"Parent\");\n}, 3);\n__d(\"legacy:emptyFunction\", [\"emptyFunction\",], function(a, b, c, d) {\n a.emptyFunction = b(\"emptyFunction\");\n}, 3);\n__d(\"isEmpty\", [], function(a, b, c, d, e, f) {\n function g(h) {\n if (Array.isArray(h)) {\n return ((h.length === 0));\n }\n else if (((typeof h === \"object\"))) {\n {\n var fin9keys = ((window.top.JSBNG_Replay.forInKeys)((h))), fin9i = (0);\n var i;\n for (; (fin9i < fin9keys.length); (fin9i++)) {\n ((i) = (fin9keys[fin9i]));\n {\n return false;\n };\n };\n };\n ;\n return true;\n }\n else return !h\n \n ;\n };\n;\n e.exports = g;\n});\n__d(\"CSSLoader\", [\"isEmpty\",], function(a, b, c, d, e, f) {\n var g = b(\"isEmpty\"), h = 20, i = 5000, j, k, l = {\n }, m = [], n, o = {\n };\n function p(t) {\n if (k) {\n return;\n }\n ;\n ;\n k = true;\n var u = JSBNG__document.createElement(\"link\");\n u.JSBNG__onload = function() {\n j = true;\n u.parentNode.removeChild(u);\n };\n u.rel = \"stylesheet\";\n u.href = \"data:text/css;base64,\";\n t.appendChild(u);\n };\n;\n function q() {\n var t, u = [], v = [];\n if (((JSBNG__Date.now() >= n))) {\n {\n var fin10keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin10i = (0);\n (0);\n for (; (fin10i < fin10keys.length); (fin10i++)) {\n ((t) = (fin10keys[fin10i]));\n {\n v.push(o[t].signal);\n u.push(o[t].error);\n };\n };\n };\n ;\n o = {\n };\n }\n else {\n var fin11keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin11i = (0);\n (0);\n for (; (fin11i < fin11keys.length); (fin11i++)) {\n ((t) = (fin11keys[fin11i]));\n {\n var w = o[t].signal, x = ((window.JSBNG__getComputedStyle ? JSBNG__getComputedStyle(w, null) : w.currentStyle));\n if (((x && ((parseInt(x.height, 10) > 1))))) {\n u.push(o[t].load);\n v.push(w);\n delete o[t];\n }\n ;\n ;\n };\n };\n }\n ;\n ;\n for (var y = 0; ((y < v.length)); y++) {\n v[y].parentNode.removeChild(v[y]);\n ;\n };\n ;\n if (!g(u)) {\n for (y = 0; ((y < u.length)); y++) {\n u[y]();\n ;\n };\n ;\n n = ((JSBNG__Date.now() + i));\n }\n ;\n ;\n return g(o);\n };\n;\n function r(t, u, v, w) {\n var x = JSBNG__document.createElement(\"meta\");\n x.id = ((\"bootloader_\" + t.replace(/[^a-z0-9]/gi, \"_\")));\n u.appendChild(x);\n var y = !g(o);\n n = ((JSBNG__Date.now() + i));\n o[t] = {\n signal: x,\n load: v,\n error: w\n };\n if (!y) {\n var z = JSBNG__setInterval(function aa() {\n if (q()) {\n JSBNG__clearInterval(z);\n }\n ;\n ;\n }, h, false);\n }\n ;\n ;\n };\n;\n var s = {\n loadStyleSheet: function(t, u, v, w, x) {\n if (l[t]) {\n throw new Error(((((\"CSS component \" + t)) + \" has already been requested.\")));\n }\n ;\n ;\n if (JSBNG__document.createStyleSheet) {\n var y;\n for (var z = 0; ((z < m.length)); z++) {\n if (((m[z].imports.length < 31))) {\n y = z;\n break;\n }\n ;\n ;\n };\n ;\n if (((y === undefined))) {\n m.push(JSBNG__document.createStyleSheet());\n y = ((m.length - 1));\n }\n ;\n ;\n m[y].addImport(u);\n l[t] = {\n styleSheet: m[y],\n uri: u\n };\n r(t, v, w, x);\n return;\n }\n ;\n ;\n var aa = JSBNG__document.createElement(\"link\");\n aa.rel = \"stylesheet\";\n aa.type = \"text/css\";\n aa.href = u;\n l[t] = {\n link: aa\n };\n if (j) {\n aa.JSBNG__onload = function() {\n aa.JSBNG__onload = aa.JSBNG__onerror = null;\n w();\n };\n aa.JSBNG__onerror = function() {\n aa.JSBNG__onload = aa.JSBNG__onerror = null;\n x();\n };\n }\n else {\n r(t, v, w, x);\n if (((j === undefined))) {\n p(v);\n }\n ;\n ;\n }\n ;\n ;\n v.appendChild(aa);\n },\n registerLoadedStyleSheet: function(t, u) {\n if (l[t]) {\n throw new Error(((((((\"CSS component \" + t)) + \" has been requested and should not be \")) + \"loaded more than once.\")));\n }\n ;\n ;\n l[t] = {\n link: u\n };\n },\n unloadStyleSheet: function(t) {\n if (((!t in l))) {\n return;\n }\n ;\n ;\n var u = l[t], v = u.link;\n if (v) {\n v.JSBNG__onload = v.JSBNG__onerror = null;\n v.parentNode.removeChild(v);\n }\n else {\n var w = u.styleSheet;\n for (var x = 0; ((x < w.imports.length)); x++) {\n if (((w.imports[x].href == u.uri))) {\n w.removeImport(x);\n break;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n delete o[t];\n delete l[t];\n }\n };\n e.exports = s;\n});\n__d(\"Bootloader\", [\"CSSLoader\",\"CallbackDependencyManager\",\"createArrayFrom\",\"ErrorUtils\",], function(a, b, c, d, e, f) {\n var g = b(\"CSSLoader\"), h = b(\"CallbackDependencyManager\"), i = b(\"createArrayFrom\"), j = b(\"ErrorUtils\"), k = {\n }, l = {\n }, m = {\n }, n = null, o = {\n }, p = {\n }, q = {\n }, r = {\n }, s = false, t = [], u = new h(), v = [];\n j.addListener(function(ca) {\n ca.loadingUrls = Object.keys(p);\n }, true);\n function w(ca, da, ea, fa) {\n var ga = ba.done.bind(null, [ea,], ((ca === \"css\")), da);\n p[da] = JSBNG__Date.now();\n if (((ca == \"js\"))) {\n var ha = JSBNG__document.createElement(\"script\");\n ha.src = da;\n ha.async = true;\n var ia = o[ea];\n if (((ia && ia.crossOrigin))) {\n ha.crossOrigin = \"anonymous\";\n }\n ;\n ;\n ha.JSBNG__onload = ga;\n ha.JSBNG__onerror = function() {\n q[da] = true;\n ga();\n };\n ha.onreadystatechange = function() {\n if (((this.readyState in {\n loaded: 1,\n complete: 1\n }))) {\n ga();\n }\n ;\n ;\n };\n fa.appendChild(ha);\n }\n else if (((ca == \"css\"))) {\n g.loadStyleSheet(ea, da, fa, ga, function() {\n q[da] = true;\n ga();\n });\n }\n \n ;\n ;\n };\n;\n function x(ca) {\n if (!o[ca]) {\n return;\n }\n ;\n ;\n if (((o[ca].type == \"css\"))) {\n g.unloadStyleSheet(ca);\n delete k[ca];\n u.unsatisfyPersistentDependency(ca);\n }\n ;\n ;\n };\n;\n function y(ca, da) {\n if (!s) {\n t.push([ca,da,]);\n return;\n }\n ;\n ;\n ca = i(ca);\n var ea = [];\n for (var fa = 0; ((fa < ca.length)); ++fa) {\n if (!ca[fa]) {\n continue;\n }\n ;\n ;\n var ga = m[ca[fa]];\n if (ga) {\n var ha = ga.resources;\n for (var ia = 0; ((ia < ha.length)); ++ia) {\n ea.push(ha[ia]);\n ;\n };\n ;\n }\n ;\n ;\n };\n ;\n ba.loadResources(ea, da);\n };\n;\n function z(ca) {\n ca = i(ca);\n for (var da = 0; ((da < ca.length)); ++da) {\n if (((ca[da] !== undefined))) {\n k[ca[da]] = true;\n }\n ;\n ;\n };\n ;\n };\n;\n function aa(ca) {\n if (!ca) {\n return [];\n }\n ;\n ;\n var da = [];\n for (var ea = 0; ((ea < ca.length)); ++ea) {\n if (((typeof ca[ea] == \"string\"))) {\n if (((ca[ea] in o))) {\n da.push(o[ca[ea]]);\n }\n ;\n ;\n }\n else da.push(ca[ea]);\n ;\n ;\n };\n ;\n return da;\n };\n;\n var ba = {\n configurePage: function(ca) {\n var da = {\n }, ea = aa(ca), fa;\n for (fa = 0; ((fa < ea.length)); fa++) {\n da[ea[fa].src] = ea[fa];\n z(ea[fa].JSBNG__name);\n };\n ;\n var ga = JSBNG__document.getElementsByTagName(\"link\");\n for (fa = 0; ((fa < ga.length)); ++fa) {\n if (((ga[fa].rel != \"stylesheet\"))) {\n continue;\n }\n ;\n ;\n {\n var fin12keys = ((window.top.JSBNG_Replay.forInKeys)((da))), fin12i = (0);\n var ha;\n for (; (fin12i < fin12keys.length); (fin12i++)) {\n ((ha) = (fin12keys[fin12i]));\n {\n if (((ga[fa].href.indexOf(ha) !== -1))) {\n var ia = da[ha].JSBNG__name;\n if (da[ha].permanent) {\n l[ia] = true;\n }\n ;\n ;\n delete da[ha];\n g.registerLoadedStyleSheet(ia, ga[fa]);\n ba.done([ia,], true);\n break;\n }\n ;\n ;\n };\n };\n };\n ;\n };\n ;\n },\n loadComponents: function(ca, da) {\n ca = i(ca);\n var ea = [], fa = [];\n for (var ga = 0; ((ga < ca.length)); ga++) {\n var ha = m[ca[ga]];\n if (((ha && !ha.module))) {\n continue;\n }\n ;\n ;\n var ia = ((\"legacy:\" + ca[ga]));\n if (m[ia]) {\n ca[ga] = ia;\n ea.push(ia);\n }\n else if (((ha && ha.module))) {\n ea.push(ca[ga]);\n if (!ha.runWhenReady) {\n fa.push(ca[ga]);\n }\n ;\n ;\n }\n \n ;\n ;\n };\n ;\n y(ca, ((ea.length ? d.bind(null, ea, da) : da)));\n },\n loadModules: function(ca, da) {\n var ea = [], fa = [];\n for (var ga = 0; ((ga < ca.length)); ga++) {\n var ha = m[ca[ga]];\n if (((!ha || ha.module))) {\n ea.push(ca[ga]);\n }\n ;\n ;\n };\n ;\n y(ca, d.bind(null, ea, da));\n },\n loadResources: function(ca, da, ea, fa) {\n var ga;\n ca = aa(i(ca));\n if (ea) {\n var ha = {\n };\n for (ga = 0; ((ga < ca.length)); ++ga) {\n ha[ca[ga].JSBNG__name] = true;\n ;\n };\n ;\n {\n var fin13keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin13i = (0);\n var ia;\n for (; (fin13i < fin13keys.length); (fin13i++)) {\n ((ia) = (fin13keys[fin13i]));\n {\n if (((((!((ia in l)) && !((ia in ha)))) && !((ia in r))))) {\n x(ia);\n }\n ;\n ;\n };\n };\n };\n ;\n r = {\n };\n }\n ;\n ;\n var ja = [], ka = [];\n for (ga = 0; ((ga < ca.length)); ++ga) {\n var la = ca[ga];\n if (la.permanent) {\n l[la.JSBNG__name] = true;\n }\n ;\n ;\n if (u.isPersistentDependencySatisfied(la.JSBNG__name)) {\n continue;\n }\n ;\n ;\n if (!la.nonblocking) {\n ka.push(la.JSBNG__name);\n }\n ;\n ;\n if (!k[la.JSBNG__name]) {\n z(la.JSBNG__name);\n ja.push(la);\n ((window.CavalryLogger && window.CavalryLogger.getInstance().measureResources(la, fa)));\n }\n ;\n ;\n };\n ;\n var ma;\n if (da) {\n if (((typeof da === \"function\"))) {\n ma = u.registerCallback(da, ka);\n }\n else ma = u.addDependenciesToExistingCallback(da, ka);\n ;\n }\n ;\n ;\n var na = ((JSBNG__document.documentMode || +((/MSIE.(\\d+)/.exec(JSBNG__navigator.userAgent) || []))[1])), oa = ba.getHardpoint(), pa = ((na ? oa : JSBNG__document.createDocumentFragment()));\n for (ga = 0; ((ga < ja.length)); ++ga) {\n w(ja[ga].type, ja[ga].src, ja[ga].JSBNG__name, pa);\n ;\n };\n ;\n if (((oa !== pa))) {\n oa.appendChild(pa);\n }\n ;\n ;\n return ma;\n },\n requestJSResource: function(ca) {\n var da = ba.getHardpoint();\n w(\"js\", ca, null, da);\n },\n done: ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190), function(ca, da, ea) {\n if (ea) {\n delete p[ea];\n }\n ;\n ;\n z(ca);\n if (!da) {\n for (var fa = 0, ga = v.length; ((fa < ga)); fa++) {\n v[fa]();\n ;\n };\n }\n ;\n ;\n for (var ha = 0; ((ha < ca.length)); ++ha) {\n var ia = ca[ha];\n if (((ia !== undefined))) {\n u.satisfyPersistentDependency(ia);\n }\n ;\n ;\n };\n ;\n })),\n subscribeToLoadedResources_DEPRECATED: function(ca) {\n v.push(ca);\n },\n enableBootload: function(ca) {\n {\n var fin14keys = ((window.top.JSBNG_Replay.forInKeys)((ca))), fin14i = (0);\n var da;\n for (; (fin14i < fin14keys.length); (fin14i++)) {\n ((da) = (fin14keys[fin14i]));\n {\n if (!m[da]) {\n m[da] = ca[da];\n }\n ;\n ;\n };\n };\n };\n ;\n if (!s) {\n s = true;\n for (var ea = 0; ((ea < t.length)); ea++) {\n y.apply(null, t[ea]);\n ;\n };\n ;\n t = [];\n }\n ;\n ;\n },\n getHardpoint: function() {\n if (!n) {\n var ca = JSBNG__document.getElementsByTagName(\"head\");\n n = ((((ca.length && ca[0])) || JSBNG__document.body));\n }\n ;\n ;\n return n;\n },\n setResourceMap: function(ca) {\n {\n var fin15keys = ((window.top.JSBNG_Replay.forInKeys)((ca))), fin15i = (0);\n var da;\n for (; (fin15i < fin15keys.length); (fin15i++)) {\n ((da) = (fin15keys[fin15i]));\n {\n if (!o[da]) {\n ca[da].JSBNG__name = da;\n o[da] = ca[da];\n }\n ;\n ;\n };\n };\n };\n ;\n },\n loadEarlyResources: function(ca) {\n ba.setResourceMap(ca);\n var da = [];\n {\n var fin16keys = ((window.top.JSBNG_Replay.forInKeys)((ca))), fin16i = (0);\n var ea;\n for (; (fin16i < fin16keys.length); (fin16i++)) {\n ((ea) = (fin16keys[fin16i]));\n {\n var fa = o[ea];\n da.push(fa);\n if (!fa.permanent) {\n r[fa.JSBNG__name] = fa;\n }\n ;\n ;\n };\n };\n };\n ;\n ba.loadResources(da);\n },\n getLoadingUrls: function() {\n var ca = {\n }, da = JSBNG__Date.now();\n {\n var fin17keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin17i = (0);\n var ea;\n for (; (fin17i < fin17keys.length); (fin17i++)) {\n ((ea) = (fin17keys[fin17i]));\n {\n ca[ea] = ((da - p[ea]));\n ;\n };\n };\n };\n ;\n return ca;\n },\n getErrorUrls: function() {\n return Object.keys(q);\n }\n };\n e.exports = ba;\n});\n__d(\"BlueBarController\", [\"Bootloader\",\"CSS\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"CSS\");\n f.init = function(i) {\n if (((\"getBoundingClientRect\" in i))) {\n var j = function() {\n var k = i.getBoundingClientRect(), l = ((Math.round(k.JSBNG__top) - JSBNG__document.documentElement.clientTop));\n h.conditionClass(i.firstChild, \"fixed_elem\", ((l <= 0)));\n };\n j();\n g.loadModules([\"JSBNG__Event\",], function(k) {\n k.listen(window, \"JSBNG__scroll\", j);\n });\n }\n ;\n ;\n };\n});\n__d(\"legacy:arbiter\", [\"Arbiter\",], function(a, b, c, d) {\n a.Arbiter = b(\"Arbiter\");\n}, 3);\n__d(\"event-form-bubbling\", [], function(a, b, c, d, e, f) {\n a.JSBNG__Event = ((a.JSBNG__Event || function() {\n \n }));\n a.JSBNG__Event.__inlineSubmit = function(g, JSBNG__event) {\n var h = ((a.JSBNG__Event.__getHandler && a.JSBNG__Event.__getHandler(g, \"submit\")));\n return ((h ? null : a.JSBNG__Event.__bubbleSubmit(g, JSBNG__event)));\n };\n a.JSBNG__Event.__bubbleSubmit = function(g, JSBNG__event) {\n if (JSBNG__document.documentElement.JSBNG__attachEvent) {\n var h;\n while (((((h !== false)) && (g = g.parentNode)))) {\n h = ((g.JSBNG__onsubmit ? g.JSBNG__onsubmit(JSBNG__event) : ((a.JSBNG__Event.__fire && a.JSBNG__Event.__fire(g, \"submit\", JSBNG__event)))));\n ;\n };\n ;\n return h;\n }\n ;\n ;\n };\n}, 3);\n__d(\"OnloadEvent\", [], function(a, b, c, d, e, f) {\n var g = {\n ONLOAD: \"onload/onload\",\n ONLOAD_CALLBACK: \"onload/onload_callback\",\n ONLOAD_DOMCONTENT: \"onload/dom_content_ready\",\n ONLOAD_DOMCONTENT_CALLBACK: \"onload/domcontent_callback\",\n ONBEFOREUNLOAD: \"onload/beforeunload\",\n ONUNLOAD: \"onload/unload\"\n };\n e.exports = g;\n});\n__d(\"Run\", [\"Arbiter\",\"OnloadEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"OnloadEvent\"), i = \"onunloadhooks\", j = \"onafterunloadhooks\", k = g.BEHAVIOR_STATE;\n function l(ba) {\n var ca = a.CavalryLogger;\n ((ca && ca.getInstance().setTimeStamp(ba)));\n };\n;\n function m() {\n return !window.loading_page_chrome;\n };\n;\n function n(ba) {\n var ca = a.OnloadHooks;\n if (((window.loaded && ca))) {\n ca.runHook(ba, \"onlateloadhooks\");\n }\n else u(\"onloadhooks\", ba);\n ;\n ;\n };\n;\n function o(ba) {\n var ca = a.OnloadHooks;\n if (((window.afterloaded && ca))) {\n JSBNG__setTimeout(function() {\n ca.runHook(ba, \"onlateafterloadhooks\");\n }, 0);\n }\n else u(\"onafterloadhooks\", ba);\n ;\n ;\n };\n;\n function p(ba, ca) {\n if (((ca === undefined))) {\n ca = m();\n }\n ;\n ;\n ((ca ? u(\"onbeforeleavehooks\", ba) : u(\"onbeforeunloadhooks\", ba)));\n };\n;\n function q(ba, ca) {\n if (!window.JSBNG__onunload) {\n window.JSBNG__onunload = function() {\n g.inform(h.ONUNLOAD, true, k);\n };\n }\n ;\n ;\n u(ba, ca);\n };\n;\n function r(ba) {\n q(i, ba);\n };\n;\n function s(ba) {\n q(j, ba);\n };\n;\n function t(ba) {\n u(\"onleavehooks\", ba);\n };\n;\n function u(ba, ca) {\n window[ba] = ((window[ba] || [])).concat(ca);\n };\n;\n function v(ba) {\n window[ba] = [];\n };\n;\n {\n function w() {\n g.inform(h.ONLOAD_DOMCONTENT, true, k);\n };\n ((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_222.push)((w)));\n };\n;\n a._domcontentready = w;\n function x() {\n var ba = JSBNG__document, ca = window;\n if (ba.JSBNG__addEventListener) {\n var da = /AppleWebKit.(\\d+)/.exec(JSBNG__navigator.userAgent);\n if (((da && ((da[1] < 525))))) {\n var ea = JSBNG__setInterval(function() {\n if (/loaded|complete/.test(ba.readyState)) {\n w();\n JSBNG__clearInterval(ea);\n }\n ;\n ;\n }, 10);\n }\n else ba.JSBNG__addEventListener(\"DOMContentLoaded\", w, true);\n ;\n ;\n }\n else {\n var fa = \"javascript:void(0)\";\n if (((ca.JSBNG__location.protocol == \"https:\"))) {\n fa = \"//:\";\n }\n ;\n ;\n ba.write(((((((((\"\\u003Cscript onreadystatechange=\\\"if (this.readyState=='complete') {\" + \"this.parentNode.removeChild(this);_domcontentready();}\\\" \")) + \"defer=\\\"defer\\\" src=\\\"\")) + fa)) + \"\\\"\\u003E\\u003C/script\\u003E\")));\n }\n ;\n ;\n var ga = ca.JSBNG__onload;\n ca.JSBNG__onload = ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_225), function() {\n l(\"t_layout\");\n ((ga && ga()));\n g.inform(h.ONLOAD, true, k);\n }));\n ca.JSBNG__onbeforeunload = ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_226), function() {\n var ha = {\n };\n g.inform(h.ONBEFOREUNLOAD, ha, k);\n if (!ha.warn) {\n g.inform(\"onload/exit\", true);\n }\n ;\n ;\n return ha.warn;\n }));\n };\n;\n var y = g.registerCallback(function() {\n l(\"t_onload\");\n g.inform(h.ONLOAD_CALLBACK, true, k);\n }, [h.ONLOAD,]), z = g.registerCallback(function() {\n l(\"t_domcontent\");\n var ba = {\n timeTriggered: JSBNG__Date.now()\n };\n g.inform(h.ONLOAD_DOMCONTENT_CALLBACK, ba, k);\n }, [h.ONLOAD_DOMCONTENT,]);\n x();\n var aa = {\n onLoad: n,\n onAfterLoad: o,\n onLeave: t,\n onBeforeUnload: p,\n onUnload: r,\n onAfterUnload: s,\n __domContentCallback: z,\n __onloadCallback: y,\n __removeHook: v\n };\n e.exports = aa;\n});\n__d(\"legacy:onload\", [\"Run\",\"OnloadEvent\",], function(a, b, c, d) {\n var e = b(\"Run\");\n a.OnloadEvent = b(\"OnloadEvent\");\n a.onloadRegister_DEPRECATED = e.onLoad;\n a.onloadRegister = function() {\n return e.onLoad.apply(this, arguments);\n };\n a.onafterloadRegister_DEPRECATED = e.onAfterLoad;\n a.onafterloadRegister = function() {\n return e.onAfterLoad.apply(this, arguments);\n };\n a.onleaveRegister = e.onLeave;\n a.onbeforeunloadRegister = e.onBeforeUnload;\n a.onunloadRegister = e.onUnload;\n}, 3);\n__d(\"wait_for_load\", [\"Bootloader\",\"Run\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"Run\");\n function i(l, m) {\n return ((window.loaded && m.call(l)));\n };\n;\n function j(l, m, n) {\n g.loadComponents.call(g, m, n.bind(l));\n return false;\n };\n;\n function k(l, m, n) {\n n = n.bind(l, m);\n if (window.loaded) {\n return n();\n }\n ;\n ;\n switch (((m || JSBNG__event)).type) {\n case \"load\":\n \n case \"JSBNG__focus\":\n h.onAfterLoad(n);\n return;\n case \"click\":\n var o = l.style, p = JSBNG__document.body.style;\n o.cursor = p.cursor = \"progress\";\n h.onAfterLoad(function() {\n o.cursor = p.cursor = \"\";\n if (((l.tagName.toLowerCase() == \"a\"))) {\n if (((((false !== n())) && l.href))) {\n window.JSBNG__location.href = l.href;\n }\n ;\n ;\n }\n else if (l.click) {\n l.click();\n }\n \n ;\n ;\n });\n break;\n };\n ;\n return false;\n };\n;\n a.run_if_loaded = i;\n a.run_with = j;\n a.wait_for_load = k;\n}, 3);\n__d(\"markJSEnabled\", [], function(a, b, c, d, e, f) {\n var g = JSBNG__document.documentElement;\n g.className = g.className.replace(\"no_js\", \"\");\n});\n__d(\"JSCC\", [], function(a, b, c, d, e, f) {\n var g = {\n };\n function h(j) {\n var k, l = false;\n return function() {\n if (!l) {\n k = j();\n l = true;\n }\n ;\n ;\n return k;\n };\n };\n;\n var i = {\n get: function(j) {\n if (!g[j]) {\n throw new Error(\"JSCC entry is missing\");\n }\n ;\n ;\n return g[j]();\n },\n init: function(j) {\n {\n var fin18keys = ((window.top.JSBNG_Replay.forInKeys)((j))), fin18i = (0);\n var k;\n for (; (fin18i < fin18keys.length); (fin18i++)) {\n ((k) = (fin18keys[fin18i]));\n {\n g[k] = h(j[k]);\n ;\n };\n };\n };\n ;\n return function l() {\n {\n var fin19keys = ((window.top.JSBNG_Replay.forInKeys)((j))), fin19i = (0);\n var m;\n for (; (fin19i < fin19keys.length); (fin19i++)) {\n ((m) = (fin19keys[fin19i]));\n {\n delete g[m];\n ;\n };\n };\n };\n ;\n };\n }\n };\n e.exports = i;\n});\n__d(\"PageletSet\", [\"Arbiter\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = {\n }, j = {\n hasPagelet: function(m) {\n return i.hasOwnProperty(m);\n },\n getPagelet: function(m) {\n return i[m];\n },\n getOrCreatePagelet: function(m) {\n if (!j.hasPagelet(m)) {\n var n = new l(m);\n i[m] = n;\n }\n ;\n ;\n return j.getPagelet(m);\n },\n getPageletIDs: function() {\n return Object.keys(i);\n },\n removePagelet: function(m) {\n if (j.hasPagelet(m)) {\n i[m].destroy();\n delete i[m];\n }\n ;\n ;\n }\n };\n function k(m, n) {\n return ((m.contains ? m.contains(n) : ((m.compareDocumentPosition(n) & 16))));\n };\n;\n function l(m) {\n this.id = m;\n this._root = null;\n this._destructors = [];\n this.addDestructor(function n() {\n g.inform(\"pagelet/destroy\", {\n id: this.id,\n root: this._root\n });\n }.bind(this));\n };\n;\n h(l.prototype, {\n setRoot: function(m) {\n this._root = m;\n },\n _getDescendantPagelets: function() {\n var m = [];\n if (!this._root) {\n return m;\n }\n ;\n ;\n var n = j.getPageletIDs();\n for (var o = 0; ((o < n.length)); o++) {\n var p = n[o];\n if (((p === this.id))) {\n continue;\n }\n ;\n ;\n var q = i[p];\n if (((q._root && k(this._root, q._root)))) {\n m.push(q);\n }\n ;\n ;\n };\n ;\n return m;\n },\n addDestructor: function(m) {\n this._destructors.push(m);\n },\n destroy: function() {\n var m = this._getDescendantPagelets();\n for (var n = 0; ((n < m.length)); n++) {\n var o = m[n];\n if (j.hasPagelet(o.id)) {\n j.removePagelet(o.id);\n }\n ;\n ;\n };\n ;\n for (n = 0; ((n < this._destructors.length)); n++) {\n this._destructors[n]();\n ;\n };\n ;\n if (this._root) {\n while (this._root.firstChild) {\n this._root.removeChild(this._root.firstChild);\n ;\n };\n }\n ;\n ;\n }\n });\n e.exports = j;\n});\n__d(\"repeatString\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\");\n function h(i, j) {\n if (((j === 1))) {\n return i;\n }\n ;\n ;\n g(((j >= 0)));\n var k = \"\";\n while (j) {\n if (((j & 1))) {\n k += i;\n }\n ;\n ;\n if ((j >>= 1)) {\n i += i;\n }\n ;\n ;\n };\n ;\n return k;\n };\n;\n e.exports = h;\n});\n__d(\"BitMap\", [\"copyProperties\",\"repeatString\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"repeatString\"), i = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_\";\n function j() {\n this._bits = [];\n };\n;\n g(j.prototype, {\n set: function(m) {\n this._bits[m] = 1;\n return this;\n },\n toString: function() {\n var m = [];\n for (var n = 0; ((n < this._bits.length)); n++) {\n m.push(((this._bits[n] ? 1 : 0)));\n ;\n };\n ;\n return ((m.length ? l(m.join(\"\")) : \"\"));\n },\n toCompressedString: function() {\n if (((this._bits.length === 0))) {\n return \"\";\n }\n ;\n ;\n var m = [], n = 1, o = ((this._bits[0] || 0)), p = o.toString(2);\n for (var q = 1; ((q < this._bits.length)); q++) {\n var r = ((this._bits[q] || 0));\n if (((r === o))) {\n n++;\n }\n else {\n m.push(k(n));\n o = r;\n n = 1;\n }\n ;\n ;\n };\n ;\n if (n) {\n m.push(k(n));\n }\n ;\n ;\n return l(((p + m.join(\"\"))));\n }\n });\n function k(m) {\n var n = m.toString(2), o = h(\"0\", ((n.length - 1)));\n return ((o + n));\n };\n;\n function l(m) {\n var n = ((m + \"00000\")).match(/[01]{6}/g), o = \"\";\n for (var p = 0; ((p < n.length)); p++) {\n o += i[parseInt(n[p], 2)];\n ;\n };\n ;\n return o;\n };\n;\n e.exports = j;\n});\n__d(\"ServerJS\", [\"BitMap\",\"ErrorUtils\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"BitMap\"), h = b(\"ErrorUtils\"), i = b(\"copyProperties\"), j = b(\"ge\"), k = 0, l = new g();\n function m() {\n this._moduleMap = {\n };\n this._relativeTo = null;\n this._moduleIDsToCleanup = {\n };\n };\n;\n m.getLoadedModuleHash = function() {\n return l.toCompressedString();\n };\n i(m.prototype, {\n handle: function(q) {\n if (q.__guard) {\n throw new Error(\"ServerJS.handle called on data that has already been handled\");\n }\n ;\n ;\n q.__guard = true;\n n(((q.define || [])), this._handleDefine, this);\n n(((q.markup || [])), this._handleMarkup, this);\n n(((q.elements || [])), this._handleElement, this);\n n(((q.instances || [])), this._handleInstance, this);\n var r = n(((q.require || [])), this._handleRequire, this);\n return {\n cancel: function() {\n for (var s = 0; ((s < r.length)); s++) {\n if (r[s]) {\n r[s].cancel();\n }\n ;\n ;\n };\n ;\n }\n };\n },\n handlePartial: function(q) {\n ((q.instances || [])).forEach(o.bind(null, this._moduleMap, 3));\n ((q.markup || [])).forEach(o.bind(null, this._moduleMap, 2));\n return this.handle(q);\n },\n setRelativeTo: function(q) {\n this._relativeTo = q;\n return this;\n },\n cleanup: function() {\n var q = [];\n {\n var fin20keys = ((window.top.JSBNG_Replay.forInKeys)((this._moduleMap))), fin20i = (0);\n var r;\n for (; (fin20i < fin20keys.length); (fin20i++)) {\n ((r) = (fin20keys[fin20i]));\n {\n q.push(r);\n ;\n };\n };\n };\n ;\n d.call(null, q, p);\n this._moduleMap = {\n };\n function s(u) {\n var v = this._moduleIDsToCleanup[u], w = v[0], x = v[1];\n delete this._moduleIDsToCleanup[u];\n var y = ((x ? ((((((((\"JS::call(\\\"\" + w)) + \"\\\", \\\"\")) + x)) + \"\\\", ...)\")) : ((((\"JS::requireModule(\\\"\" + w)) + \"\\\")\")))), z = ((y + \" did not fire because it has missing dependencies.\"));\n throw new Error(z);\n };\n ;\n {\n var fin21keys = ((window.top.JSBNG_Replay.forInKeys)((this._moduleIDsToCleanup))), fin21i = (0);\n var t;\n for (; (fin21i < fin21keys.length); (fin21i++)) {\n ((t) = (fin21keys[fin21i]));\n {\n h.applyWithGuard(s, this, [t,]);\n ;\n };\n };\n };\n ;\n },\n _handleDefine: function(q, r, s, t) {\n if (((t >= 0))) {\n l.set(t);\n }\n ;\n ;\n define(q, r, function() {\n this._replaceTransportMarkers(s);\n return s;\n }.bind(this));\n },\n _handleRequire: function(q, r, s, t) {\n var u = [q,].concat(((s || []))), v = ((((r ? \"__call__\" : \"__requireModule__\")) + k++));\n this._moduleIDsToCleanup[v] = [q,r,];\n return define(v, u, ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_278), function(w) {\n delete this._moduleIDsToCleanup[v];\n ((t && this._replaceTransportMarkers(t)));\n if (r) {\n if (!w[r]) {\n throw new TypeError(((((((\"Module \" + q)) + \" has no method \")) + r)));\n }\n ;\n ;\n w[r].apply(w, ((t || [])));\n }\n ;\n ;\n })), 1, this, 1);\n },\n _handleInstance: function(q, r, s, t) {\n var u = null;\n if (r) {\n u = function(v) {\n this._replaceTransportMarkers(s);\n var w = Object.create(v.prototype);\n v.apply(w, s);\n return w;\n }.bind(this);\n }\n ;\n ;\n define(q, r, u, 0, null, t);\n },\n _handleMarkup: function(q, r, s) {\n define(q, [\"HTML\",], function(t) {\n return t.replaceJSONWrapper(r).getRootNode();\n }, 0, null, s);\n },\n _handleElement: function(q, r, s, t) {\n var u = [], v = 0;\n if (t) {\n u.push(t);\n v = 1;\n s++;\n }\n ;\n ;\n define(q, u, function(w) {\n var x = j(r, w);\n if (!x) {\n var y = ((\"Could not find element \" + r));\n throw new Error(y);\n }\n ;\n ;\n return x;\n }, v, null, s);\n },\n _replaceTransportMarkers: function(q, r) {\n var s = ((((typeof r !== \"undefined\")) ? q[r] : q)), t;\n if (Array.isArray(s)) {\n for (t = 0; ((t < s.length)); t++) {\n this._replaceTransportMarkers(s, t);\n ;\n };\n ;\n }\n else if (((s && ((typeof s == \"object\"))))) {\n if (s.__m) {\n q[r] = b.call(null, s.__m);\n }\n else if (s.__e) {\n q[r] = j(s.__e);\n }\n else if (s.__rel) {\n q[r] = this._relativeTo;\n }\n else {\n var fin22keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin22i = (0);\n var u;\n for (; (fin22i < fin22keys.length); (fin22i++)) {\n ((u) = (fin22keys[fin22i]));\n {\n this._replaceTransportMarkers(s, u);\n ;\n };\n };\n }\n \n \n ;\n }\n \n ;\n ;\n }\n });\n function n(q, r, s) {\n return q.map(function(t) {\n return h.applyWithGuard(r, s, t);\n });\n };\n;\n function o(q, r, s) {\n var t = s[0];\n if (!((t in q))) {\n s[r] = ((((s[r] || 0)) + 1));\n }\n ;\n ;\n q[t] = true;\n };\n;\n function p() {\n return {\n };\n };\n;\n e.exports = m;\n});\n__d(\"invokeCallbacks\", [\"ErrorUtils\",], function(a, b, c, d, e, f) {\n var g = b(\"ErrorUtils\");\n function h(i, j) {\n if (i) {\n for (var k = 0; ((k < i.length)); k++) {\n g.applyWithGuard(new Function(i[k]), j);\n ;\n };\n }\n ;\n ;\n };\n;\n e.exports = h;\n});\n__d(\"ix\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = {\n };\n function i(j) {\n return h[j];\n };\n;\n i.add = g.bind(null, h);\n e.exports = i;\n});\n__d(\"BigPipe\", [\"Arbiter\",\"Bootloader\",\"Env\",\"ErrorUtils\",\"JSCC\",\"OnloadEvent\",\"PageletSet\",\"Run\",\"ServerJS\",\"$\",\"copyProperties\",\"ge\",\"invokeCallbacks\",\"ix\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"Env\"), j = b(\"ErrorUtils\"), k = b(\"JSCC\"), l = b(\"OnloadEvent\"), m = b(\"PageletSet\"), n = b(\"Run\"), o = b(\"ServerJS\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"ge\"), s = b(\"invokeCallbacks\"), t = b(\"ix\"), u = ((JSBNG__document.documentMode || +((/MSIE.(\\d+)/.exec(JSBNG__navigator.userAgent) || []))[1])), v = g.BEHAVIOR_STATE, w = g.BEHAVIOR_PERSISTENT;\n function x(ba) {\n q(this, {\n arbiter: g,\n rootNodeID: \"JSBNG__content\",\n lid: 0,\n isAjax: false,\n domContentCallback: n.__domContentCallback,\n onloadCallback: n.__onloadCallback,\n domContentEvt: l.ONLOAD_DOMCONTENT_CALLBACK,\n onloadEvt: l.ONLOAD_CALLBACK,\n forceFinish: false,\n _phaseDoneCallbacks: [],\n _currentPhase: 0,\n _lastPhase: -1,\n _livePagelets: {\n }\n });\n q(this, ba);\n if (this.automatic) {\n this._relevant_instance = x._current_instance;\n }\n else x._current_instance = this;\n ;\n ;\n this._serverJS = new o();\n g.inform(\"BigPipe/init\", {\n lid: this.lid,\n arbiter: this.arbiter\n }, w);\n this.arbiter.registerCallback(this.domContentCallback, [\"pagelet_displayed_all\",]);\n this._informEventExternal(\"phase_begin\", {\n phase: 0\n });\n this.arbiter.inform(\"phase_begin_0\", true, v);\n this.onloadCallback = this.arbiter.registerCallback(this.onloadCallback, [\"pagelet_displayed_all\",]);\n this.arbiter.registerCallback(this._serverJS.cleanup.bind(this._serverJS), [this.onloadEvt,]);\n };\n;\n x.getCurrentInstance = function() {\n return x._current_instance;\n };\n q(x.prototype, {\n onPageletArrive: j.guard(function(ba) {\n this._informPageletEvent(\"arrive\", ba.id, ba.phase);\n ba.JSBNG__content = ((ba.JSBNG__content || {\n }));\n var ca = ba.phase;\n if (!this._phaseDoneCallbacks[ca]) {\n this._phaseDoneCallbacks[ca] = this.arbiter.registerCallback(this._onPhaseDone.bind(this), [((\"phase_complete_\" + ca)),]);\n }\n ;\n ;\n this.arbiter.registerCallback(this._phaseDoneCallbacks[ca], [((ba.id + \"_displayed\")),]);\n var da = this._getPageletRootID(ba), ea = m.getOrCreatePagelet(da);\n if (ba.the_end) {\n this._lastPhase = ca;\n }\n ;\n ;\n if (((ba.tti_phase !== undefined))) {\n this._ttiPhase = ba.tti_phase;\n }\n ;\n ;\n if (ba.is_second_to_last_phase) {\n this._secondToLastPhase = ca;\n }\n ;\n ;\n this._livePagelets[ea.id] = true;\n ea.addDestructor(function() {\n delete this._livePagelets[ea.id];\n }.bind(this));\n if (ba.jscc_map) {\n var fa = (eval)(ba.jscc_map), ga = k.init(fa);\n ea.addDestructor(ga);\n }\n ;\n ;\n if (ba.resource_map) {\n h.setResourceMap(ba.resource_map);\n }\n ;\n ;\n if (ba.bootloadable) {\n h.enableBootload(ba.bootloadable);\n }\n ;\n ;\n t.add(ba.ixData);\n this._informPageletEvent(\"setup\", ba.id);\n var ha = new g();\n ha.registerCallback(this._displayPageletHandler.bind(this, ba), [\"preceding_pagelets_displayed\",\"display_resources_downloaded\",]);\n var ia = ((ba.display_dependency || [])), ja = ia.map(function(la) {\n return ((la + \"_displayed\"));\n });\n this.arbiter.registerCallback(function() {\n ha.inform(\"preceding_pagelets_displayed\");\n }, ja);\n this.arbiter.registerCallback(function() {\n this._informPageletEvent(\"css\", ba.id);\n var la = ((ba.css || [])).concat(((ba.displayJS || [])));\n h.loadResources(la, function() {\n this._informPageletEvent(\"css_load\", ba.id);\n ha.inform(\"display_resources_downloaded\");\n }.bind(this), false, ba.id);\n }.bind(this), [((\"phase_begin_\" + ca)),]);\n this.arbiter.registerCallback(this.onloadCallback, [\"pagelet_onload\",]);\n var ka = [((ba.id + \"_displayed\")),];\n if (!this.jsNonBlock) {\n ka.push(this.domContentEvt);\n }\n ;\n ;\n this.arbiter.registerCallback(this._downloadJsForPagelet.bind(this, ba), ka);\n if (ba.is_last) {\n this._endPhase(ca);\n }\n ;\n ;\n }),\n _beginPhase: function(ba) {\n this._informEventExternal(\"phase_begin\", {\n phase: ba\n });\n this.arbiter.inform(((\"phase_begin_\" + ba)), true, v);\n },\n _endPhase: function(ba) {\n this.arbiter.inform(((\"phase_complete_\" + ba)), true, v);\n },\n _displayPageletHandler: function(ba) {\n if (this.displayCallback) {\n this.displayCallback(this._displayPagelet.bind(this, ba));\n }\n else this._displayPagelet(ba);\n ;\n ;\n },\n _displayPagelet: function(ba) {\n this._informPageletEvent(\"display_start\", ba.id);\n var ca = this._getPagelet(ba);\n {\n var fin23keys = ((window.top.JSBNG_Replay.forInKeys)((ba.JSBNG__content))), fin23i = (0);\n var da;\n for (; (fin23i < fin23keys.length); (fin23i++)) {\n ((da) = (fin23keys[fin23i]));\n {\n var ea = ba.JSBNG__content[da];\n if (ba.append) {\n da = this._getPageletRootID(ba);\n }\n ;\n ;\n var fa = r(da);\n if (!fa) {\n continue;\n }\n ;\n ;\n if (((da === ca.id))) {\n ca.setRoot(fa);\n }\n ;\n ;\n ea = y(ea);\n if (ea) {\n if (((ba.append || ((u < 8))))) {\n if (!ba.append) {\n while (fa.firstChild) {\n fa.removeChild(fa.firstChild);\n ;\n };\n }\n ;\n ;\n aa(fa, ea);\n }\n else fa.innerHTML = ea;\n ;\n }\n ;\n ;\n var ga = fa.getAttribute(\"data-referrer\");\n if (!ga) {\n fa.setAttribute(\"data-referrer\", da);\n }\n ;\n ;\n if (((ba.cache_hit && i.pc_debug))) {\n fa.style.border = \"1px red solid\";\n }\n ;\n ;\n };\n };\n };\n ;\n if (ba.jsmods) {\n var ha = JSON.parse(JSON.stringify(ba.jsmods)), ia = this._serverJS.handlePartial(ha);\n ca.addDestructor(ia.cancel.bind(ia));\n }\n ;\n ;\n this._informPageletEvent(\"display\", ba.id);\n this.arbiter.inform(((ba.id + \"_displayed\")), true, v);\n },\n _onPhaseDone: function() {\n if (((this._currentPhase === this._ttiPhase))) {\n this._informEventExternal(\"tti_bigpipe\", {\n phase: this._ttiPhase\n });\n }\n ;\n ;\n if (((((this._currentPhase === this._lastPhase)) && this._isRelevant()))) {\n this.arbiter.inform(\"pagelet_displayed_all\", true, v);\n }\n ;\n ;\n this._currentPhase++;\n if (((u <= 8))) {\n JSBNG__setTimeout(this._beginPhase.bind(this, this._currentPhase), 20);\n }\n else this._beginPhase(this._currentPhase);\n ;\n ;\n },\n _downloadJsForPagelet: function(ba) {\n this._informPageletEvent(\"jsstart\", ba.id);\n h.loadResources(((ba.js || [])), function() {\n this._informPageletEvent(\"jsdone\", ba.id);\n ba.requires = ((ba.requires || []));\n if (((!this.isAjax || ((ba.phase >= 1))))) {\n ba.requires.push(\"uipage_onload\");\n }\n ;\n ;\n var ca = function() {\n this._informPageletEvent(\"preonload\", ba.id);\n if (this._isRelevantPagelet(ba)) {\n s(ba.JSBNG__onload);\n }\n ;\n ;\n this._informPageletEvent(\"JSBNG__onload\", ba.id);\n this.arbiter.inform(\"pagelet_onload\", true, g.BEHAVIOR_EVENT);\n ((ba.provides && this.arbiter.inform(ba.provides, true, v)));\n }.bind(this), da = function() {\n ((this._isRelevantPagelet(ba) && s(ba.onafterload)));\n }.bind(this);\n this.arbiter.registerCallback(ca, ba.requires);\n this.arbiter.registerCallback(da, [this.onloadEvt,]);\n }.bind(this), false, ba.id);\n },\n _getPagelet: function(ba) {\n var ca = this._getPageletRootID(ba);\n return m.getPagelet(ca);\n },\n _getPageletRootID: function(ba) {\n var ca = ba.append;\n if (ca) {\n return ((((ca === \"bigpipe_root\")) ? this.rootNodeID : ca));\n }\n ;\n ;\n return ((Object.keys(ba.JSBNG__content)[0] || null));\n },\n _isRelevant: function() {\n return ((((((((this == x._current_instance)) || ((this.automatic && ((this._relevant_instance == x._current_instance)))))) || this.jsNonBlock)) || this.forceFinish));\n },\n _isRelevantPagelet: function(ba) {\n if (!this._isRelevant()) {\n return false;\n }\n ;\n ;\n var ca = this._getPageletRootID(ba);\n return !!this._livePagelets[ca];\n },\n _informEventExternal: function(ba, ca) {\n ca = ((ca || {\n }));\n ca.ts = JSBNG__Date.now();\n ca.lid = this.lid;\n this.arbiter.inform(ba, ca, w);\n },\n _informPageletEvent: function(ba, ca, da) {\n var ea = {\n JSBNG__event: ba,\n id: ca\n };\n if (da) {\n ea.phase = da;\n }\n ;\n ;\n this._informEventExternal(\"pagelet_event\", ea);\n }\n });\n function y(ba) {\n if (((!ba || ((typeof ba === \"string\"))))) {\n return ba;\n }\n ;\n ;\n if (ba.container_id) {\n var ca = p(ba.container_id);\n ba = ((z(ca) || \"\"));\n ca.parentNode.removeChild(ca);\n return ba;\n }\n ;\n ;\n return null;\n };\n;\n function z(ba) {\n if (!ba.firstChild) {\n h.loadModules([\"ErrorSignal\",], function(da) {\n da.sendErrorSignal(\"bigpipe\", \"Pagelet markup container is empty.\");\n });\n return null;\n }\n ;\n ;\n if (((ba.firstChild.nodeType !== 8))) {\n return null;\n }\n ;\n ;\n var ca = ba.firstChild.nodeValue;\n ca = ca.substring(1, ((ca.length - 1)));\n return ca.replace(/\\\\([\\s\\S]|$)/g, \"$1\");\n };\n;\n function aa(ba, ca) {\n var da = JSBNG__document.createElement(\"div\"), ea = ((u < 7));\n if (ea) {\n ba.appendChild(da);\n }\n ;\n ;\n da.innerHTML = ca;\n var fa = JSBNG__document.createDocumentFragment();\n while (da.firstChild) {\n fa.appendChild(da.firstChild);\n ;\n };\n ;\n ba.appendChild(fa);\n if (ea) {\n ba.removeChild(da);\n }\n ;\n ;\n };\n;\n e.exports = x;\n});\n__d(\"legacy:bootloader\", [\"Bootloader\",], function(a, b, c, d) {\n a.Bootloader = b(\"Bootloader\");\n}, 3);\n__d(\"Class\", [\"CallbackDependencyManager\",\"Bootloader\",], function(a, b, c, d, e, f) {\n var g = b(\"CallbackDependencyManager\"), h = b(\"Bootloader\"), i = \"bootload_done\", j = false, k = new g(), l = {\n }, m = {\n extend: function(u, v) {\n if (!j) {\n h.subscribeToLoadedResources_DEPRECATED(o);\n j = true;\n }\n ;\n ;\n if (((typeof v == \"string\"))) {\n n(u, v);\n }\n else p(u, v);\n ;\n ;\n }\n };\n function n(u, v) {\n u.__class_extending = true;\n var w = k.registerCallback(p.bind(null, u, v), [v,i,]);\n if (((w !== null))) {\n l[v] = true;\n }\n ;\n ;\n };\n;\n function o() {\n k.satisfyNonPersistentDependency(i);\n {\n var fin24keys = ((window.top.JSBNG_Replay.forInKeys)((l))), fin24i = (0);\n var u;\n for (; (fin24i < fin24keys.length); (fin24i++)) {\n ((u) = (fin24keys[fin24i]));\n {\n if (!!a[u]) {\n delete l[u];\n if (!a[u].__class_extending) {\n k.satisfyNonPersistentDependency(u);\n }\n else a[u].__class_name = u;\n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n };\n;\n function p(u, v) {\n delete u.__class_extending;\n v = ((((typeof v == \"string\")) ? a[v] : v));\n var w = q(v, 0), x = q(u, ((w.prototype.__level + 1)));\n x.parent = w;\n if (!!u.__class_name) {\n k.satisfyNonPersistentDependency(u.__class_name);\n }\n ;\n ;\n };\n;\n function q(u, v) {\n if (u._metaprototype) {\n return u._metaprototype;\n }\n ;\n ;\n var w = new Function();\n w.construct = r;\n w.prototype.construct = t(u, v, true);\n w.prototype.__level = v;\n w.base = u;\n u.prototype.parent = w;\n u._metaprototype = w;\n return w;\n };\n;\n function r(u) {\n s(u.parent);\n var v = [], w = u;\n while (w.parent) {\n var x = new w.parent();\n v.push(x);\n x.__instance = u;\n w = w.parent;\n };\n ;\n u.parent = v[1];\n v.reverse();\n v.pop();\n u.__parents = v;\n u.__instance = u;\n return u.parent.construct.apply(u.parent, arguments);\n };\n;\n function s(u) {\n if (u.initialized) {\n return;\n }\n ;\n ;\n var v = u.base.prototype;\n if (u.parent) {\n s(u.parent);\n var w = u.parent.prototype;\n {\n var fin25keys = ((window.top.JSBNG_Replay.forInKeys)((w))), fin25i = (0);\n var x;\n for (; (fin25i < fin25keys.length); (fin25i++)) {\n ((x) = (fin25keys[fin25i]));\n {\n if (((((((x != \"__level\")) && ((x != \"construct\")))) && ((v[x] === undefined))))) {\n v[x] = u.prototype[x] = w[x];\n }\n ;\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n u.initialized = true;\n var y = u.prototype.__level;\n {\n var fin26keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin26i = (0);\n var x;\n for (; (fin26i < fin26keys.length); (fin26i++)) {\n ((x) = (fin26keys[fin26i]));\n {\n if (((x != \"parent\"))) {\n v[x] = u.prototype[x] = t(v[x], y);\n }\n ;\n ;\n };\n };\n };\n ;\n };\n;\n function t(u, v, w) {\n if (((((typeof u != \"function\")) || u.__prototyped))) {\n return u;\n }\n ;\n ;\n var x = function() {\n var y = this.__instance;\n if (y) {\n var z = y.parent;\n y.parent = ((v ? y.__parents[((v - 1))] : null));\n var aa = arguments;\n if (w) {\n aa = [];\n for (var ba = 1; ((ba < arguments.length)); ba++) {\n aa.push(arguments[ba]);\n ;\n };\n ;\n }\n ;\n ;\n var ca = u.apply(y, aa);\n y.parent = z;\n return ca;\n }\n else return u.apply(this, arguments)\n ;\n };\n x.__prototyped = true;\n return x;\n };\n;\n e.exports = m;\n});\n__d(\"legacy:Class\", [\"Class\",], function(a, b, c, d) {\n a.Class = b(\"Class\");\n}, 3);\n__d(\"legacy:constructor-cache\", [\"JSCC\",], function(a, b, c, d) {\n a.JSCC = b(\"JSCC\");\n}, 3);\n__d(\"function-extensions\", [\"createArrayFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"createArrayFrom\");\n Function.prototype.curry = function() {\n var h = g(arguments);\n return this.bind.apply(this, [null,].concat(h));\n };\n Function.prototype.defer = function(h, i) {\n if (((typeof this != \"function\"))) {\n throw new TypeError();\n }\n ;\n ;\n h = ((h || 0));\n return JSBNG__setTimeout(this, h, i);\n };\n}, 3);\n__d(\"goURI\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n h = h.toString();\n if (((((!i && a.PageTransitions)) && PageTransitions.isInitialized()))) {\n PageTransitions.go(h, j);\n }\n else if (((window.JSBNG__location.href == h))) {\n window.JSBNG__location.reload();\n }\n else window.JSBNG__location.href = h;\n \n ;\n ;\n };\n;\n e.exports = g;\n});\n__d(\"legacy:goURI\", [\"goURI\",], function(a, b, c, d) {\n a.goURI = b(\"goURI\");\n}, 3);\n__d(\"InitialJSLoader\", [\"Arbiter\",\"Bootloader\",\"OnloadEvent\",\"Run\",\"ServerJS\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"OnloadEvent\"), j = b(\"Run\"), k = b(\"ServerJS\"), l = {\n INITIAL_JS_READY: \"BOOTLOAD/JSREADY\",\n loadOnDOMContentReady: function(m, n) {\n g.subscribe(i.ONLOAD_DOMCONTENT_CALLBACK, function() {\n function o() {\n h.loadResources(m, function() {\n g.inform(l.INITIAL_JS_READY, true, g.BEHAVIOR_STATE);\n });\n };\n ;\n if (n) {\n JSBNG__setTimeout(o, n);\n }\n else o();\n ;\n ;\n });\n },\n handleServerJS: function(m) {\n var n = new k();\n n.handle(m);\n j.onAfterLoad(n.cleanup.bind(n));\n }\n };\n e.exports = l;\n});\n__d(\"lowerDomain\", [], function(a, b, c, d, e, f) {\n if (JSBNG__document.domain.toLowerCase().match(/(^|\\.)facebook\\..*/)) {\n JSBNG__document.domain = \"facebook.com\";\n }\n;\n;\n});\n__d(\"legacy:object-core-utils\", [\"isEmpty\",\"copyProperties\",], function(a, b, c, d) {\n a.is_empty = b(\"isEmpty\");\n a.copyProperties = b(\"copyProperties\");\n}, 3);\n__d(\"PlaceholderListener\", [\"Arbiter\",\"CSS\",\"Parent\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"Parent\"), j = JSBNG__document.documentElement, k = function(m) {\n m = ((m || window.JSBNG__event));\n var n = ((m.target || m.srcElement));\n if (n.getAttribute(\"data-silentPlaceholderListener\")) {\n return;\n }\n ;\n ;\n var o = n.getAttribute(\"placeholder\");\n if (o) {\n var p = i.byClass(n, \"focus_target\");\n if (((((\"JSBNG__focus\" == m.type)) || ((\"focusin\" == m.type))))) {\n var q = n.value.replace(/\\r\\n/g, \"\\u000a\"), r = o.replace(/\\r\\n/g, \"\\u000a\");\n if (((((q == r)) && h.hasClass(n, \"DOMControl_placeholder\")))) {\n n.value = \"\";\n h.removeClass(n, \"DOMControl_placeholder\");\n }\n ;\n ;\n if (p) {\n l.expandInput(p);\n }\n ;\n ;\n }\n else {\n if (((n.value === \"\"))) {\n h.addClass(n, \"DOMControl_placeholder\");\n n.value = o;\n ((p && h.removeClass(p, \"child_is_active\")));\n n.style.direction = \"\";\n }\n ;\n ;\n ((p && h.removeClass(p, \"child_is_focused\")));\n }\n ;\n ;\n }\n ;\n ;\n };\n if (j.JSBNG__addEventListener) {\n j.JSBNG__addEventListener(\"JSBNG__focus\", k, true);\n j.JSBNG__addEventListener(\"JSBNG__blur\", k, true);\n }\n else {\n j.JSBNG__attachEvent(\"onfocusin\", k);\n j.JSBNG__attachEvent(\"onfocusout\", k);\n }\n;\n;\n var l = {\n expandInput: function(m) {\n h.addClass(m, \"child_is_active\");\n h.addClass(m, \"child_is_focused\");\n h.addClass(m, \"child_was_focused\");\n g.inform(\"reflow\");\n }\n };\n e.exports = l;\n});\n__d(\"clickRefAction\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\");\n function h(l, m, n, o, p) {\n var q = ((((l + \"/\")) + m));\n this.ue = q;\n this._ue_ts = l;\n this._ue_count = m;\n this._context = n;\n this._ns = null;\n this._node = o;\n this._type = p;\n };\n;\n h.prototype.set_namespace = function(l) {\n this._ns = l;\n return this;\n };\n h.prototype.coalesce_namespace = function(l) {\n if (((this._ns === null))) {\n this._ns = l;\n }\n ;\n ;\n return this;\n };\n h.prototype.add_event = function() {\n return this;\n };\n var i = 0, j = [];\n function k(l, m, JSBNG__event, n, o) {\n var p = JSBNG__Date.now(), q = ((JSBNG__event && JSBNG__event.type));\n o = ((o || {\n }));\n if (((!m && JSBNG__event))) {\n m = JSBNG__event.getTarget();\n }\n ;\n ;\n var r = 50;\n if (((m && ((n != \"FORCE\"))))) {\n for (var s = ((j.length - 1)); ((((s >= 0)) && ((((p - j[s]._ue_ts)) < r)))); --s) {\n if (((((j[s]._node == m)) && ((j[s]._type == q))))) {\n return j[s];\n }\n ;\n ;\n };\n }\n ;\n ;\n var t = new h(p, i, l, m, q);\n j.push(t);\n while (((j.length > 10))) {\n j.shift();\n ;\n };\n ;\n g.inform(\"ClickRefAction/new\", {\n cfa: t,\n node: m,\n mode: n,\n JSBNG__event: JSBNG__event,\n extra_data: o\n }, g.BEHAVIOR_PERSISTENT);\n i++;\n return t;\n };\n;\n e.exports = a.clickRefAction = k;\n});\n__d(\"trackReferrer\", [\"Parent\",], function(a, b, c, d, e, f) {\n var g = b(\"Parent\");\n function h(i, j) {\n i = g.byAttribute(i, \"data-referrer\");\n if (i) {\n var k = ((/^(?:(?:[^:\\/?#]+):)?(?:\\/\\/(?:[^\\/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?/.exec(j)[1] || \"\"));\n if (!k) {\n return;\n }\n ;\n ;\n var l = ((((k + \"|\")) + i.getAttribute(\"data-referrer\"))), m = new JSBNG__Date();\n m.setTime(((JSBNG__Date.now() + 1000)));\n JSBNG__document.cookie = ((((((((((((\"x-src=\" + encodeURIComponent(l))) + \"; \")) + \"expires=\")) + m.toGMTString())) + \";path=/; domain=\")) + window.JSBNG__location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\")));\n }\n ;\n ;\n return i;\n };\n;\n e.exports = h;\n});\n__d(\"Miny\", [], function(a, b, c, d, e, f) {\n var g = \"Miny1\", h = {\n encode: [],\n decode: {\n }\n }, i = \"wxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_\".split(\"\");\n function j(n) {\n for (var o = h.encode.length; ((o < n)); o++) {\n var p = o.toString(32).split(\"\");\n p[((p.length - 1))] = i[parseInt(p[((p.length - 1))], 32)];\n p = p.join(\"\");\n h.encode[o] = p;\n h.decode[p] = o;\n };\n ;\n return h;\n };\n;\n function k(n) {\n var o = n.match(/\\w+|\\W+/g), p = {\n };\n for (var q = 0; ((q < o.length)); q++) {\n p[o[q]] = ((((p[o[q]] || 0)) + 1));\n ;\n };\n ;\n var r = Object.keys(p);\n r.sort(function(u, v) {\n return ((((p[u] < p[v])) ? 1 : ((((p[v] < p[u])) ? -1 : 0))));\n });\n var s = j(r.length).encode;\n for (q = 0; ((q < r.length)); q++) {\n p[r[q]] = s[q];\n ;\n };\n ;\n var t = [];\n for (q = 0; ((q < o.length)); q++) {\n t[q] = p[o[q]];\n ;\n };\n ;\n for (q = 0; ((q < r.length)); q++) {\n r[q] = r[q].replace(/'~'/g, \"\\\\~\");\n ;\n };\n ;\n return [g,r.length,].concat(r).concat(t.join(\"\")).join(\"~\");\n };\n;\n function l(n) {\n var o = n.split(\"~\");\n if (((o.shift() != g))) {\n throw new Error(\"Not a Miny stream\");\n }\n ;\n ;\n var p = parseInt(o.shift(), 10), q = o.pop();\n q = q.match(/[0-9a-v]*[\\-w-zA-Z_]/g);\n var r = o, s = j(p).decode, t = [];\n for (var u = 0; ((u < q.length)); u++) {\n t[u] = r[s[q[u]]];\n ;\n };\n ;\n return t.join(\"\");\n };\n;\n var m = {\n encode: k,\n decode: l\n };\n e.exports = m;\n});\n__d(\"QueryString\", [], function(a, b, c, d, e, f) {\n function g(k) {\n var l = [];\n Object.keys(k).forEach(function(m) {\n var n = k[m];\n if (((typeof n === \"undefined\"))) {\n return;\n }\n ;\n ;\n if (((n === null))) {\n l.push(m);\n return;\n }\n ;\n ;\n l.push(((((encodeURIComponent(m) + \"=\")) + encodeURIComponent(n))));\n });\n return l.join(\"&\");\n };\n;\n function h(k, l) {\n var m = {\n };\n if (((k === \"\"))) {\n return m;\n }\n ;\n ;\n var n = k.split(\"&\");\n for (var o = 0; ((o < n.length)); o++) {\n var p = n[o].split(\"=\", 2), q = decodeURIComponent(p[0]);\n if (((l && m.hasOwnProperty(q)))) {\n throw new URIError(((\"Duplicate key: \" + q)));\n }\n ;\n ;\n m[q] = ((((p.length === 2)) ? decodeURIComponent(p[1]) : null));\n };\n ;\n return m;\n };\n;\n function i(k, l) {\n return ((((k + ((~k.indexOf(\"?\") ? \"&\" : \"?\")))) + ((((typeof l === \"string\")) ? l : j.encode(l)))));\n };\n;\n var j = {\n encode: g,\n decode: h,\n appendToUrl: i\n };\n e.exports = j;\n});\n__d(\"UserAgent\", [], function(a, b, c, d, e, f) {\n var g = false, h, i, j, k, l, m, n, o, p, q, r, s, t, u;\n function v() {\n if (g) {\n return;\n }\n ;\n ;\n g = true;\n var x = JSBNG__navigator.userAgent, y = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))/.exec(x), z = /(Mac OS X)|(Windows)|(Linux)/.exec(x);\n r = /\\b(iPhone|iP[ao]d)/.exec(x);\n s = /\\b(iP[ao]d)/.exec(x);\n p = /Android/i.exec(x);\n t = /FBAN\\/\\w+;/i.exec(x);\n u = /Mobile/i.exec(x);\n q = !!(/Win64/.exec(x));\n if (y) {\n h = ((y[1] ? parseFloat(y[1]) : NaN));\n if (((h && JSBNG__document.documentMode))) {\n h = JSBNG__document.documentMode;\n }\n ;\n ;\n i = ((y[2] ? parseFloat(y[2]) : NaN));\n j = ((y[3] ? parseFloat(y[3]) : NaN));\n k = ((y[4] ? parseFloat(y[4]) : NaN));\n if (k) {\n y = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(x);\n l = ((((y && y[1])) ? parseFloat(y[1]) : NaN));\n }\n else l = NaN;\n ;\n ;\n }\n else h = i = j = l = k = NaN;\n ;\n ;\n if (z) {\n if (z[1]) {\n var aa = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(x);\n m = ((aa ? parseFloat(aa[1].replace(\"_\", \".\")) : true));\n }\n else m = false;\n ;\n ;\n n = !!z[2];\n o = !!z[3];\n }\n else m = n = o = false;\n ;\n ;\n };\n;\n var w = {\n ie: function() {\n return ((v() || h));\n },\n ie64: function() {\n return ((w.ie() && q));\n },\n firefox: function() {\n return ((v() || i));\n },\n JSBNG__opera: function() {\n return ((v() || j));\n },\n webkit: ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_376), function() {\n return ((v() || k));\n })),\n safari: function() {\n return w.webkit();\n },\n chrome: ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_378), function() {\n return ((v() || l));\n })),\n windows: function() {\n return ((v() || n));\n },\n osx: function() {\n return ((v() || m));\n },\n linux: function() {\n return ((v() || o));\n },\n iphone: function() {\n return ((v() || r));\n },\n mobile: function() {\n return ((v() || ((((((r || s)) || p)) || u))));\n },\n nativeApp: function() {\n return ((v() || t));\n },\n android: function() {\n return ((v() || p));\n },\n ipad: function() {\n return ((v() || s));\n }\n };\n e.exports = w;\n});\n__d(\"XHR\", [\"Env\",\"ServerJS\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\"), h = b(\"ServerJS\"), i = 1, j = {\n create: function() {\n try {\n return ((a.JSBNG__XMLHttpRequest ? new a.JSBNG__XMLHttpRequest() : new ActiveXObject(\"MSXML2.XMLHTTP.3.0\")));\n } catch (k) {\n \n };\n ;\n },\n getAsyncParams: function(k) {\n var l = {\n __user: g.user,\n __a: 1,\n __dyn: h.getLoadedModuleHash(),\n __req: (i++).toString(36)\n };\n if (((((k == \"POST\")) && g.fb_dtsg))) {\n l.fb_dtsg = g.fb_dtsg;\n }\n ;\n ;\n if (g.fb_isb) {\n l.fb_isb = g.fb_isb;\n }\n ;\n ;\n return l;\n }\n };\n e.exports = j;\n});\n__d(\"BanzaiAdapter\", [\"Arbiter\",\"Env\",\"Miny\",\"QueryString\",\"Run\",\"UserAgent\",\"XHR\",\"BanzaiConfig\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Env\"), i = b(\"Miny\"), j = b(\"QueryString\"), k = b(\"Run\"), l = b(\"UserAgent\"), m = b(\"XHR\"), n = null, o = new g(), p = b(\"BanzaiConfig\"), q = \"/ajax/bz\", r = {\n }, s = r.adapter = {\n config: p,\n getUserID: function() {\n return h.user;\n },\n inform: function(t) {\n o.inform(t);\n },\n subscribe: function(t, u) {\n o.subscribe(t, u);\n },\n cleanup: function() {\n if (((n && ((n.readyState < 4))))) {\n n.abort();\n }\n ;\n ;\n if (n) {\n delete n.onreadystatechange;\n n = null;\n }\n ;\n ;\n },\n readyToSend: function() {\n var t = ((((l.ie() <= 8)) ? true : JSBNG__navigator.onLine));\n return ((!n && t));\n },\n send: function(t, u, v) {\n var w = \"POST\";\n n = m.create();\n n.open(w, q, true);\n n.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n n.onreadystatechange = function() {\n if (((n.readyState >= 4))) {\n var aa = n.JSBNG__status;\n s.cleanup();\n if (((aa == 200))) {\n if (u) {\n u();\n }\n ;\n ;\n s.inform(r.OK);\n }\n else {\n if (v) {\n v(aa);\n }\n ;\n ;\n s.inform(r.ERROR);\n }\n ;\n ;\n }\n ;\n ;\n };\n JSBNG__setTimeout(s.cleanup, r.SEND_TIMEOUT, false);\n var x = m.getAsyncParams(w);\n x.q = JSON.stringify(t);\n x.ts = JSBNG__Date.now();\n x.ph = h.push_phase;\n if (r.FBTRACE) {\n x.fbtrace = r.FBTRACE;\n }\n ;\n ;\n if (r.isEnabled(\"miny_compression\")) {\n var y = JSBNG__Date.now(), z = i.encode(x.q);\n if (((z.length < x.q.length))) {\n x.q = z;\n x.miny_encode_ms = ((JSBNG__Date.now() - y));\n }\n ;\n ;\n }\n ;\n ;\n n.send(j.encode(x));\n },\n onUnload: function(t) {\n k.onAfterUnload(t);\n }\n };\n e.exports = r;\n});\n__d(\"pageID\", [], function(a, b, c, d, e, f) {\n e.exports = Math.floor(((2147483648 * Math.JSBNG__random()))).toString(36);\n});\n__d(\"Banzai\", [\"BanzaiAdapter\",\"pageID\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"BanzaiAdapter\"), h = g.adapter, i = b(\"pageID\"), j = b(\"copyProperties\"), k = b(\"emptyFunction\"), l = \"Banzai\", m = \"sequencer\", n, o, p, q = [], r = {\n }, s = ((a != a.JSBNG__top));\n function t() {\n if (((p && ((p.posts.length > 0))))) {\n q.push(p);\n }\n ;\n ;\n p = {\n user: h.getUserID(),\n page_id: i,\n trigger: null,\n time: JSBNG__Date.now(),\n posts: []\n };\n if (g.isEnabled(m)) {\n p.sequence = [];\n }\n ;\n ;\n };\n;\n function u(z) {\n var aa = ((JSBNG__Date.now() + z));\n if (((!o || ((aa < o))))) {\n o = aa;\n JSBNG__clearTimeout(n);\n n = JSBNG__setTimeout(v, z, false);\n return true;\n }\n ;\n ;\n };\n;\n function v() {\n o = null;\n u(g.BASIC.delay);\n if (!h.readyToSend()) {\n return;\n }\n ;\n ;\n h.inform(g.SEND);\n if (((((q.length <= 0)) && ((p.posts.length <= 0))))) {\n h.inform(g.OK);\n return;\n }\n ;\n ;\n t();\n var z = q;\n q = [];\n h.send(z, null, function(aa) {\n var ba = ((JSBNG__Date.now() - ((h.config.EXPIRY || g.EXPIRY)))), ca = ((((aa >= 400)) && ((aa < 600)))), da = z.map(function(ea) {\n ea.posts = ea.posts.filter(function(fa) {\n var ga = ((ca || fa.__meta.options.retry));\n fa.__meta.retryCount = ((((fa.__meta.retryCount || 0)) + 1));\n fa[3] = fa.__meta.retryCount;\n return ((ga && ((fa.__meta.timestamp > ba))));\n });\n return ea;\n });\n da = da.filter(function(ea) {\n return ((ea.posts.length > 0));\n });\n q = da.concat(q);\n });\n };\n;\n var w, x;\n try {\n x = a.JSBNG__sessionStorage;\n } catch (y) {\n \n };\n;\n if (((x && !s))) {\n w = {\n store: function z() {\n try {\n t();\n var ba = h.getUserID(), ca = q.filter(function(ea) {\n return ((ea.user == ba));\n }).map(function(ea) {\n ea = j({\n }, ea);\n ea.posts = ea.posts.map(function(fa) {\n return [fa[0],fa[1],fa[2],fa.__meta,];\n });\n return ea;\n }), da = JSON.stringify(ca);\n x.setItem(l, da);\n } catch (aa) {\n \n };\n ;\n },\n restore: function z() {\n try {\n var ba = x.getItem(l);\n if (ba) {\n x.removeItem(l);\n var ca = h.getUserID(), da = JSON.parse(ba);\n da = da.filter(function(ea) {\n ea.posts.forEach(function(fa) {\n fa.__meta = fa.pop();\n if (((\"retryCount\" in fa.__meta))) {\n fa[3] = fa.__meta.retryCount;\n }\n ;\n ;\n });\n return ((ea.user == ca));\n });\n q = q.concat(da);\n }\n ;\n ;\n } catch (aa) {\n \n };\n ;\n }\n };\n }\n else w = {\n store: k,\n restore: k\n };\n;\n;\n g.SEND = \"Banzai:SEND\";\n g.OK = \"Banzai:OK\";\n g.ERROR = \"Banzai:ERROR\";\n g.SHUTDOWN = \"Banzai:SHUTDOWN\";\n g.SEND_TIMEOUT = 15000;\n g.VITAL_WAIT = 1000;\n g.BASIC_WAIT = 60000;\n g.EXPIRY = ((30 * 60000));\n g.VITAL = {\n delay: ((h.config.MIN_WAIT || g.VITAL_WAIT))\n };\n g.BASIC = {\n delay: ((h.config.MAX_WAIT || g.BASIC_WAIT))\n };\n g.FBTRACE = h.config.fbtrace, g.isEnabled = function(z) {\n return ((h.config.gks && h.config.gks[z]));\n };\n g.post = function(z, aa, ba) {\n ba = ((ba || {\n }));\n if (s) {\n if (((JSBNG__document.domain == \"facebook.com\"))) {\n try {\n var da = a.JSBNG__top.require(\"Banzai\");\n da.post.apply(da, arguments);\n } catch (ca) {\n \n };\n }\n ;\n ;\n return;\n }\n ;\n ;\n if (h.config.disabled) {\n return;\n }\n ;\n ;\n var ea = h.config.blacklist;\n if (ea) {\n if (((((ea && ea.join)) && !ea._regex))) {\n ea._regex = new RegExp(((((\"^(?:\" + ea.join(\"|\"))) + \")\")));\n }\n ;\n ;\n if (((ea._regex && ea._regex.test(z)))) {\n return;\n }\n ;\n ;\n }\n ;\n ;\n if (((p.user != h.getUserID()))) {\n t();\n }\n ;\n ;\n var fa = JSBNG__Date.now(), ga = [z,aa,((fa - p.time)),];\n ga.__meta = {\n options: ba,\n timestamp: fa\n };\n p.posts.push(ga);\n var ha = ba.delay;\n if (((ha == null))) {\n ha = g.BASIC_WAIT;\n }\n ;\n ;\n if (g.isEnabled(m)) {\n if (!((z in r))) {\n r[z] = 0;\n }\n else r[z]++;\n ;\n ;\n p.sequence.push([z,r[z],]);\n }\n ;\n ;\n if (((u(ha) || !p.trigger))) {\n p.trigger = z;\n }\n ;\n ;\n };\n g.subscribe = h.subscribe;\n g._testState = function() {\n return {\n wad: p,\n wads: q\n };\n };\n h.onUnload(function() {\n h.cleanup();\n h.inform(g.SHUTDOWN);\n w.store();\n });\n t();\n w.restore();\n u(g.BASIC.delay);\n e.exports = g;\n});\n__d(\"userAction\", [\"Arbiter\",\"Banzai\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"copyProperties\"), j = 50, k = [], l = {\n }, m = {\n };\n function n(v, w, x, y, JSBNG__event) {\n var z = ((((v + \"/\")) + w)), aa = u(y);\n i(this, {\n ue: z,\n _uai_logged: false,\n _uai_timeout: null,\n _primary: {\n },\n _fallback: {\n },\n _default_ua_id: ((aa || \"-\")),\n _default_action_type: ((JSBNG__event ? JSBNG__event.type : \"-\")),\n _ts: v,\n _ns: x,\n _start_ts: v,\n _prev_event: \"s\",\n _ue_ts: v,\n _ue_count: w,\n _data_version: 1,\n _event_version: 2,\n _info_version: 2\n });\n this._log(\"ua:n\", [1,z,]);\n };\n;\n function o(v, w, x, y) {\n var z = ((((v in m)) ? m[v] : {\n })), aa = ((((w in z)) ? z[w] : {\n })), ba;\n if (((x in aa))) {\n if (((\"*\" in aa[x]))) {\n ba = aa[x][\"*\"];\n }\n else if (((y in aa[x]))) {\n ba = aa[x][y];\n }\n \n ;\n }\n ;\n ;\n return ba;\n };\n;\n var p = {\n store: true,\n delay: 3000,\n retry: true\n };\n i(n.prototype, {\n _log: function(v, w) {\n var x = ((l[v] === true)), y = o(v, this._ns, \"ua_id\", this._get_ua_id()), z = o(v, this._ns, \"action\", this._get_action_type()), aa = ((((y !== undefined)) || ((z !== undefined)))), ba = ((aa ? ((y || z)) : x));\n if (((h.isEnabled(\"useraction\") && ba))) {\n h.post(v, w, p);\n }\n ;\n ;\n },\n _get_action_type: function() {\n return ((((this._primary._action_type || this._fallback._action_type)) || this._default_action_type));\n },\n _get_ua_id: function() {\n return ((((this._primary._ua_id || this._fallback._ua_id)) || this._default_ua_id));\n },\n _log_uai: function() {\n var v = [this._info_version,this.ue,this._ns,this._get_ua_id(),this._get_action_type(),];\n this._log(\"ua:i\", v);\n this._uai_logged = true;\n this._uai_timeout = null;\n },\n uai: function(v, w, x) {\n if (!this._uai_logged) {\n ((this._uai_timeout && JSBNG__clearTimeout(this._uai_timeout)));\n this._primary._ua_id = w;\n this._primary._action_type = v;\n if (((x === undefined))) {\n this._log_uai();\n }\n else if (((x === false))) {\n this._uai_logged = true;\n }\n else {\n var y = this;\n x = ((x || 0));\n this._uai_timeout = JSBNG__setTimeout(function() {\n y._log_uai.apply(y);\n }, x);\n }\n \n ;\n ;\n }\n ;\n ;\n return this;\n },\n uai_fallback: function(v, w, x) {\n if (!this._uai_logged) {\n var y = this;\n ((this._uai_timeout && JSBNG__clearTimeout(this._uai_timeout)));\n this._fallback._ua_id = w;\n this._fallback._action_type = v;\n x = ((((x === undefined)) ? j : x));\n this._uai_timeout = JSBNG__setTimeout(function() {\n y._log_uai.apply(y);\n }, x);\n }\n ;\n ;\n return this;\n },\n add_event: function(v, w, x) {\n w = ((w || 0));\n var y = ((JSBNG__Date.now() - w)), z = ((y - this._ts)), aa = ((y - ((x ? x : this._ue_ts)))), ba = [this._event_version,this.ue,this._ns,this._get_ua_id(),this._prev_event,v,z,aa,];\n if (this._get_ua_id()) {\n this._log(\"ua:e\", ba);\n this._ts = y;\n this._prev_event = v;\n }\n ;\n ;\n return this;\n },\n add_data: function(v) {\n var w = [this._data_version,this.ue,v,];\n this._log(\"ua:d\", w);\n return this;\n }\n });\n var q = 0, r = 0, s = null;\n function t(v, w, JSBNG__event, x) {\n x = ((x || {\n }));\n var y = JSBNG__Date.now();\n if (((!w && JSBNG__event))) {\n w = JSBNG__event.getTarget();\n }\n ;\n ;\n if (((w && s))) {\n if (((((((((y - r)) < j)) && ((w == s)))) && ((x.mode == \"DEDUP\"))))) {\n return k[((k.length - 1))];\n }\n ;\n }\n ;\n ;\n var z = new n(y, q, v, w, JSBNG__event);\n s = w;\n k.push(z);\n while (((k.length > 10))) {\n k.shift();\n ;\n };\n ;\n g.inform(\"UserAction/new\", {\n ua: z,\n node: w,\n mode: x.mode,\n JSBNG__event: JSBNG__event\n });\n r = y;\n q++;\n return z;\n };\n;\n function u(v) {\n if (((!v || !v.nodeName))) {\n return null;\n }\n ;\n ;\n return v.nodeName.toLowerCase();\n };\n;\n t.setUATypeConfig = function(v) {\n i(l, v);\n };\n t.setCustomSampleConfig = function(v) {\n i(m, v);\n };\n t.getCurrentUECount = function() {\n return q;\n };\n e.exports = a.userAction = t;\n});\n__d(\"Primer\", [\"function-extensions\",\"Bootloader\",\"CSS\",\"ErrorUtils\",\"Parent\",\"clickRefAction\",\"trackReferrer\",\"userAction\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"Bootloader\"), h = b(\"CSS\"), i = b(\"ErrorUtils\"), j = b(\"Parent\"), k = b(\"clickRefAction\"), l = b(\"trackReferrer\"), m = b(\"userAction\"), n = null, o = /async(?:-post)?|dialog(?:-post)?|theater|toggle/, p = JSBNG__document.documentElement;\n function q(t, u) {\n t = j.byAttribute(t, u);\n if (!t) {\n return;\n }\n ;\n ;\n do {\n var v = t.getAttribute(u);\n JSON.parse(v).forEach(function(w) {\n var x = t;\n g.loadModules.call(g, [w[0],], function(y) {\n y[w[1]](x);\n });\n });\n } while (t = j.byAttribute(t.parentNode, u));\n return false;\n };\n;\n p.JSBNG__onclick = i.guard(function(t) {\n t = ((t || window.JSBNG__event));\n n = ((t.target || t.srcElement));\n var u = q(n, \"data-onclick\"), v = j.byTag(n, \"A\");\n if (!v) {\n return u;\n }\n ;\n ;\n var w = v.getAttribute(\"ajaxify\"), x = v.href, y = ((w || x));\n if (y) {\n k(\"a\", v, t).coalesce_namespace(\"primer\");\n var z = m(\"primer\", v, t, {\n mode: \"DEDUP\"\n }).uai_fallback(\"click\");\n if (a.ArbiterMonitor) {\n a.ArbiterMonitor.initUA(z, [v,]);\n }\n ;\n ;\n }\n ;\n ;\n if (((((w && x)) && !(/#$/).test(x)))) {\n var aa = ((t.which && ((t.which === 2)))), ba = ((((((t.altKey || t.ctrlKey)) || t.metaKey)) || t.shiftKey));\n if (((aa || ba))) {\n return;\n }\n ;\n ;\n }\n ;\n ;\n l(v, y);\n var ca = ((v.rel && v.rel.match(o)));\n ca = ((ca && ca[0]));\n switch (ca) {\n case \"dialog\":\n \n case \"dialog-post\":\n g.loadModules([\"AsyncDialog\",], function(da) {\n da.bootstrap(y, v, ca);\n });\n break;\n case \"async\":\n \n case \"async-post\":\n g.loadModules([\"AsyncRequest\",], function(da) {\n da.bootstrap(y, v);\n });\n break;\n case \"theater\":\n g.loadModules([\"PhotoSnowlift\",], function(da) {\n da.bootstrap(y, v);\n });\n break;\n case \"toggle\":\n h.toggleClass(v.parentNode, \"openToggler\");\n g.loadModules([\"Toggler\",], function(da) {\n da.bootstrap(v);\n });\n break;\n default:\n return u;\n };\n ;\n return false;\n });\n p.JSBNG__onsubmit = i.guard(function(t) {\n t = ((t || window.JSBNG__event));\n var u = ((t.target || t.srcElement));\n if (((((u && ((u.nodeName == \"FORM\")))) && ((u.getAttribute(\"rel\") == \"async\"))))) {\n k(\"f\", u, t).coalesce_namespace(\"primer\");\n var v = m(\"primer\", u, t, {\n mode: \"DEDUP\"\n }).uai_fallback(\"submit\");\n if (a.ArbiterMonitor) {\n a.ArbiterMonitor.initUA(v, [u,]);\n }\n ;\n ;\n var w = n;\n g.loadModules([\"Form\",], function(x) {\n x.bootstrap(u, w);\n });\n return false;\n }\n ;\n ;\n });\n var r = null, s = i.guard(function(t, u) {\n u = ((u || window.JSBNG__event));\n r = ((u.target || u.srcElement));\n q(r, ((\"data-on\" + t)));\n var v = j.byAttribute(r, \"data-hover\");\n if (!v) {\n return;\n }\n ;\n ;\n switch (v.getAttribute(\"data-hover\")) {\n case \"tooltip\":\n g.loadModules([\"Tooltip\",], function(w) {\n w.process(v, r);\n });\n break;\n };\n ;\n });\n p.JSBNG__onmouseover = s.curry(\"mouseover\");\n if (p.JSBNG__addEventListener) {\n p.JSBNG__addEventListener(\"JSBNG__focus\", s.curry(\"JSBNG__focus\"), true);\n }\n else p.JSBNG__attachEvent(\"onfocusin\", s.curry(\"JSBNG__focus\"));\n;\n;\n});\n__d(\"ScriptPath\", [\"Banzai\",\"ErrorUtils\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\"), h = b(\"ErrorUtils\"), i = \"script_path_change\", j = {\n scriptPath: null,\n categoryToken: null\n }, k = {\n PAGE_LOAD: \"load\",\n PAGE_UNLOAD: \"unload\",\n TRANSITION: \"transition\"\n }, l = null, m = null, n = {\n }, o = 0, p = false, q = null;\n function r(z) {\n var aa = ++o;\n n[aa] = z;\n return aa;\n };\n;\n function s(z) {\n if (n[z]) {\n delete n[z];\n }\n ;\n ;\n };\n;\n function t() {\n Object.keys(n).forEach(function(z) {\n h.applyWithGuard(n[z], null, [{\n source: l,\n dest: m\n },]);\n });\n };\n;\n function u(z, aa, ba) {\n if (!p) {\n return;\n }\n ;\n ;\n var ca = {\n source_path: z.scriptPath,\n source_token: z.categoryToken,\n dest_path: aa.scriptPath,\n dest_token: aa.categoryToken,\n navigation: q,\n cause: ba\n };\n g.post(i, ca);\n };\n;\n function v() {\n u(j, m, k.PAGE_LOAD);\n };\n;\n function w(z, aa) {\n u(z, aa, k.TRANSITION);\n };\n;\n function x() {\n u(m, j, k.PAGE_UNLOAD);\n };\n;\n g.subscribe(g.SHUTDOWN, x);\n var y = {\n set: function(z, aa) {\n var ba = m;\n m = {\n scriptPath: z,\n categoryToken: aa\n };\n window._script_path = z;\n t();\n if (p) {\n if (ba) {\n w(ba, m);\n }\n else v();\n ;\n }\n ;\n ;\n },\n setNavigation: function(z) {\n q = z;\n },\n startLogging: function() {\n p = true;\n if (m) {\n v();\n }\n ;\n ;\n },\n stopLogging: function() {\n p = false;\n },\n getScriptPath: function() {\n return ((m ? m.scriptPath : undefined));\n },\n getCategoryToken: function() {\n return ((m ? m.categoryToken : undefined));\n },\n subscribe: function(z) {\n return r(z);\n },\n unsubscribe: function(z) {\n s(z);\n }\n };\n y.CAUSE = k;\n y.BANZAI_LOGGING_ROUTE = i;\n e.exports = y;\n});\n__d(\"URLFragmentPrelude\", [\"ScriptPath\",\"URLFragmentPreludeConfig\",], function(a, b, c, d, e, f) {\n var g = b(\"ScriptPath\"), h = b(\"URLFragmentPreludeConfig\"), i = /^(?:(?:[^:\\/?#]+):)?(?:\\/\\/(?:[^\\/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?/, j = \"\", k = /^[^\\/\\\\#!\\.\\?\\*\\&\\^]+$/;\n window.JSBNG__location.href.replace(i, function(l, m, n, o) {\n var p, q, r, s;\n p = q = ((m + ((n ? ((\"?\" + n)) : \"\"))));\n if (o) {\n if (h.incorporateQuicklingFragment) {\n var t = o.replace(/^(!|%21)/, \"\");\n r = t.charAt(0);\n if (((((r == \"/\")) || ((r == \"\\\\\"))))) {\n p = t.replace(/^[\\\\\\/]+/, \"/\");\n }\n ;\n ;\n }\n ;\n ;\n if (h.hashtagRedirect) {\n if (((q == p))) {\n var u = o.match(k);\n if (((((u && !n)) && ((m == \"/\"))))) {\n p = ((\"/hashtag/\" + o));\n }\n ;\n ;\n }\n ;\n }\n ;\n ;\n }\n ;\n ;\n if (((p != q))) {\n s = g.getScriptPath();\n if (s) {\n JSBNG__document.cookie = ((((((\"rdir=\" + s)) + \"; path=/; domain=\")) + window.JSBNG__location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\")));\n }\n ;\n ;\n window.JSBNG__location.replace(((j + p)));\n }\n ;\n ;\n });\n});\n__d(\"removeArrayReduce\", [], function(a, b, c, d, e, f) {\n Array.prototype.reduce = undefined;\n Array.prototype.reduceRight = undefined;\n});\n__d(\"cx\", [], function(a, b, c, d, e, f) {\n function g(h) {\n throw new Error(((\"cx\" + \"(...): Unexpected class transformation.\")));\n };\n;\n e.exports = g;\n});\n__d(\"LitestandSidebarPrelude\", [\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"cx\");\n e.exports = {\n init: function(i, j, k) {\n var l = JSBNG__document.documentElement;\n l.className = ((l.className + \" sidebarMode\"));\n if (((j || ((l.clientWidth <= k))))) {\n l.className = ((((l.className + \" \")) + \"_4kdq\"));\n }\n ;\n ;\n g.show(i);\n }\n };\n});\n__d(\"SubmitOnEnterListener\", [\"Bootloader\",\"CSS\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"CSS\");\n JSBNG__document.documentElement.JSBNG__onkeydown = function(i) {\n i = ((i || window.JSBNG__event));\n var j = ((i.target || i.srcElement)), k = ((((((((((((i.keyCode == 13)) && !i.altKey)) && !i.ctrlKey)) && !i.metaKey)) && !i.shiftKey)) && h.hasClass(j, \"enter_submit\")));\n if (k) {\n g.loadModules([\"DOM\",\"Input\",\"trackReferrer\",\"Form\",], function(l, m, n, o) {\n if (!m.isEmpty(j)) {\n var p = j.form, q = ((l.scry(p, \".enter_submit_target\")[0] || l.scry(p, \"[type=\\\"submit\\\"]\")[0]));\n if (q) {\n var r = ((o.getAttribute(p, \"ajaxify\") || o.getAttribute(p, \"action\")));\n if (r) {\n n(p, r);\n }\n ;\n ;\n q.click();\n }\n ;\n ;\n }\n ;\n ;\n });\n return false;\n }\n ;\n ;\n };\n});\n__d(\"CommentPrelude\", [\"CSS\",\"Parent\",\"clickRefAction\",\"userAction\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"Parent\"), i = b(\"clickRefAction\"), j = b(\"userAction\");\n function k(o, p) {\n j(\"ufi\", o).uai(\"click\");\n i(\"ufi\", o, null, \"FORCE\");\n return l(o, p);\n };\n;\n function l(o, p) {\n var q = h.byTag(o, \"form\");\n m(q);\n var r = g.removeClass.curry(q, \"hidden_add_comment\");\n if (window.ScrollAwareDOM) {\n window.ScrollAwareDOM.monitor(q, r);\n }\n else r();\n ;\n ;\n if (((p !== false))) {\n var s = ((q.add_comment_text_text || q.add_comment_text)), t = s.length;\n if (t) {\n if (!h.byClass(s[((t - 1))], \"UFIReplyList\")) {\n s[((t - 1))].JSBNG__focus();\n }\n else if (!h.byClass(s[0], \"UFIReplyList\")) {\n s[0].JSBNG__focus();\n }\n \n ;\n ;\n }\n else s.JSBNG__focus();\n ;\n ;\n }\n ;\n ;\n return false;\n };\n;\n function m(o) {\n var p = g.removeClass.curry(o, \"collapsed_comments\");\n if (window.ScrollAwareDOM) {\n window.ScrollAwareDOM.monitor(o, p);\n }\n else p();\n ;\n ;\n };\n;\n var n = {\n click: k,\n expand: l,\n uncollapse: m\n };\n e.exports = n;\n});\n__d(\"legacy:ufi-comment-prelude-js\", [\"CommentPrelude\",], function(a, b, c, d) {\n var e = b(\"CommentPrelude\");\n a.fc_click = e.click;\n a.fc_expand = e.expand;\n}, 3);\n__d(\"ScriptMonitor\", [], function(a, b, c, d, e, f) {\n var g, h = [], i = ((((window.JSBNG__MutationObserver || window.JSBNG__WebKitMutationObserver)) || window.MozMutationObserver));\n e.exports = {\n activate: function() {\n if (!i) {\n return;\n }\n ;\n ;\n g = new i(function(j) {\n for (var k = 0; ((k < j.length)); k++) {\n var l = j[k];\n if (((l.type == \"childList\"))) {\n for (var m = 0; ((m < l.addedNodes.length)); m++) {\n var n = l.addedNodes[m];\n if (((((((n.tagName == \"SCRIPT\")) || ((n.tagName == \"div\")))) && n.src))) {\n h.push(n.src);\n }\n ;\n ;\n };\n ;\n }\n else if (((((l.type == \"attributes\")) && ((l.attributeName == \"src\"))))) {\n h.push(l.target.src);\n }\n \n ;\n ;\n };\n ;\n });\n g.observe(JSBNG__document, {\n attributes: true,\n childList: true,\n subtree: true\n });\n },\n JSBNG__stop: function() {\n ((g && g.disconnect()));\n return h;\n }\n };\n});");
// 850
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"(window.Bootloader && Bootloader.done([\"FHcQn\",]));");
// 851
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s1ec9de22962c463704debb06fba6d985fa278804");
// 852
geval("((window.Bootloader && Bootloader.done([\"FHcQn\",])));");
// 853
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"Bootloader.loadEarlyResources({\n OJTM4: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yd/r/-z4vUS8jrpA.js\"\n },\n AyUu6: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yF/r/pmYy9aLa5q_.js\"\n }\n});");
// 854
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s43794b4efa32e54c72f64603cd840e51369fb0ed");
// 855
geval("Bootloader.loadEarlyResources({\n OJTM4: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yd/r/-z4vUS8jrpA.js\"\n },\n AyUu6: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yF/r/pmYy9aLa5q_.js\"\n }\n});");
// 899
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 900
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"sda39a3ee5e6b4b0d3255bfef95601890afd80709");
// 901
geval("");
// 902
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"new (require(\"ServerJS\"))().handle({\n require: [[\"removeArrayReduce\",],[\"markJSEnabled\",],[\"lowerDomain\",],[\"URLFragmentPrelude\",],],\n define: [[\"BanzaiConfig\",[],{\n MAX_WAIT: 150000,\n MAX_SIZE: 10000,\n COMPRESSION_THRESHOLD: 800,\n gks: {\n jslogger: true,\n miny_compression: true,\n boosted_posts: true,\n time_spent: true,\n time_spent_bit_array: true,\n time_spent_debug: true,\n useraction: true,\n videos: true\n }\n },7,],[\"URLFragmentPreludeConfig\",[],{\n hashtagRedirect: true,\n incorporateQuicklingFragment: true\n },137,],]\n});");
// 940
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"(window.Bootloader && Bootloader.done([\"FHcQn\",]));");
// 941
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s1ec9de22962c463704debb06fba6d985fa278804");
// 942
geval("((window.Bootloader && Bootloader.done([\"FHcQn\",])));");
// 943
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"Bootloader.loadEarlyResources({\n OJTM4: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yd/r/-z4vUS8jrpA.js\"\n },\n AyUu6: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yF/r/pmYy9aLa5q_.js\"\n }\n});");
// 944
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s43794b4efa32e54c72f64603cd840e51369fb0ed");
// 945
geval("Bootloader.loadEarlyResources({\n OJTM4: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yd/r/-z4vUS8jrpA.js\"\n },\n AyUu6: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yF/r/pmYy9aLa5q_.js\"\n }\n});");
// 989
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 990
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"sda39a3ee5e6b4b0d3255bfef95601890afd80709");
// 991
geval("");
// 992
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"new (require(\"ServerJS\"))().handle({\n require: [[\"removeArrayReduce\",],[\"markJSEnabled\",],[\"lowerDomain\",],[\"URLFragmentPrelude\",],],\n define: [[\"BanzaiConfig\",[],{\n MAX_WAIT: 150000,\n MAX_SIZE: 10000,\n COMPRESSION_THRESHOLD: 800,\n gks: {\n jslogger: true,\n miny_compression: true,\n boosted_posts: true,\n time_spent: true,\n time_spent_bit_array: true,\n time_spent_debug: true,\n useraction: true,\n videos: true\n }\n },7,],[\"URLFragmentPreludeConfig\",[],{\n hashtagRedirect: true,\n incorporateQuicklingFragment: true\n },137,],]\n});");
// 993
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"AyUu6\",]);\n}\n;\n;\n__d(\"XdArbiterBuffer\", [], function(a, b, c, d, e, f) {\n if (!a.XdArbiter) {\n a.XdArbiter = {\n _m: [],\n _p: [],\n register: function(g, h, i) {\n h = ((h || (((/^apps\\./).test(JSBNG__location.hostname) ? \"canvas\" : \"tab\"))));\n this._p.push([g,h,i,]);\n return h;\n },\n handleMessage: function(g, h) {\n this._m.push([g,h,]);\n }\n };\n }\n;\n;\n});\n__d(\"CanvasIFrameLoader\", [\"XdArbiterBuffer\",\"$\",], function(a, b, c, d, e, f) {\n b(\"XdArbiterBuffer\");\n var g = b(\"$\"), h = {\n loadFromForm: function(i) {\n i.submit();\n }\n };\n e.exports = h;\n});\n__d(\"PHPQuerySerializer\", [], function(a, b, c, d, e, f) {\n function g(n) {\n return h(n, null);\n };\n;\n function h(n, o) {\n o = ((o || \"\"));\n var p = [];\n if (((((n === null)) || ((n === undefined))))) {\n p.push(i(o));\n }\n else if (((typeof (n) == \"object\"))) {\n {\n var fin27keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin27i = (0);\n var q;\n for (; (fin27i < fin27keys.length); (fin27i++)) {\n ((q) = (fin27keys[fin27i]));\n {\n if (((n.hasOwnProperty(q) && ((n[q] !== undefined))))) {\n p.push(h(n[q], ((o ? ((((((o + \"[\")) + q)) + \"]\")) : q))));\n }\n ;\n ;\n };\n };\n };\n ;\n }\n else p.push(((((i(o) + \"=\")) + i(n))));\n \n ;\n ;\n return p.join(\"&\");\n };\n;\n function i(n) {\n return encodeURIComponent(n).replace(/%5D/g, \"]\").replace(/%5B/g, \"[\");\n };\n;\n var j = /^(\\w+)((?:\\[\\w*\\])+)=?(.*)/;\n function k(n) {\n if (!n) {\n return {\n };\n }\n ;\n ;\n var o = {\n };\n n = n.replace(/%5B/gi, \"[\").replace(/%5D/gi, \"]\");\n n = n.split(\"&\");\n var p = Object.prototype.hasOwnProperty;\n for (var q = 0, r = n.length; ((q < r)); q++) {\n var s = n[q].match(j);\n if (!s) {\n var t = n[q].split(\"=\");\n o[l(t[0])] = ((((t[1] === undefined)) ? null : l(t[1])));\n }\n else {\n var u = s[2].split(/\\]\\[|\\[|\\]/).slice(0, -1), v = s[1], w = l(((s[3] || \"\")));\n u[0] = v;\n var x = o;\n for (var y = 0; ((y < ((u.length - 1)))); y++) {\n if (u[y]) {\n if (!p.call(x, u[y])) {\n var z = ((((u[((y + 1))] && !u[((y + 1))].match(/^\\d{1,3}$/))) ? {\n } : []));\n x[u[y]] = z;\n if (((x[u[y]] !== z))) {\n return o;\n }\n ;\n ;\n }\n ;\n ;\n x = x[u[y]];\n }\n else {\n if (((u[((y + 1))] && !u[((y + 1))].match(/^\\d{1,3}$/)))) {\n x.push({\n });\n }\n else x.push([]);\n ;\n ;\n x = x[((x.length - 1))];\n }\n ;\n ;\n };\n ;\n if (((((x instanceof Array)) && ((u[((u.length - 1))] === \"\"))))) {\n x.push(w);\n }\n else x[u[((u.length - 1))]] = w;\n ;\n ;\n }\n ;\n ;\n };\n ;\n return o;\n };\n;\n function l(n) {\n return decodeURIComponent(n.replace(/\\+/g, \" \"));\n };\n;\n var m = {\n serialize: g,\n encodeComponent: i,\n deserialize: k,\n decodeComponent: l\n };\n e.exports = m;\n});\n__d(\"URIBase\", [\"PHPQuerySerializer\",\"copyProperties\",\"ex\",], function(a, b, c, d, e, f) {\n var g = b(\"PHPQuerySerializer\"), h = b(\"copyProperties\"), i = b(\"ex\"), j = /((([\\-\\w]+):\\/\\/)([^\\/:]*)(:(\\d+))?)?([^#?]*)(\\?([^#]*))?(#(.*))?/, k = new RegExp(((((\"[\\\\x00-\\\\x2c\\\\x2f\\\\x3b-\\\\x40\\\\x5c\\\\x5e\\\\x60\\\\x7b-\\\\x7f\" + \"\\\\uFDD0-\\\\uFDEF\\\\uFFF0-\\\\uFFFF\")) + \"\\\\u2047\\\\u2048\\\\uFE56\\\\uFE5F\\\\uFF03\\\\uFF0F\\\\uFF1F]\"))), l = new RegExp(((\"^(?:[^/]*:|\" + \"[\\\\x00-\\\\x1f]*/[\\\\x00-\\\\x1f]*/)\")));\n function m(o, p, q) {\n if (!p) {\n return true;\n }\n ;\n ;\n if (((p instanceof n))) {\n o.setProtocol(p.getProtocol());\n o.setDomain(p.getDomain());\n o.setPort(p.getPort());\n o.setPath(p.getPath());\n o.setQueryData(JSON.parse(JSON.stringify(p.getQueryData())));\n o.setFragment(p.getFragment());\n return true;\n }\n ;\n ;\n p = p.toString();\n var r = p.match(j);\n o.setProtocol(((r[3] || \"\")));\n if (((k.test(((r[4] || \"\"))) && !q))) {\n return false;\n }\n ;\n ;\n o.setDomain(((r[4] || \"\")));\n o.setPort(((r[6] || \"\")));\n o.setPath(((r[7] || \"\")));\n if (q) {\n o.setQueryData(((g.deserialize(r[9]) || {\n })));\n }\n else try {\n o.setQueryData(((g.deserialize(r[9]) || {\n })));\n } catch (s) {\n return false;\n }\n ;\n ;\n o.setFragment(((r[11] || \"\")));\n if (((!o.getDomain() && ((o.getPath().indexOf(\"\\\\\") !== -1))))) {\n if (q) {\n throw new Error(i(\"URI.parse: invalid URI (no domain but multiple back-slashes): %s\", o.toString()));\n }\n else return false\n ;\n }\n ;\n ;\n if (((!o.getProtocol() && l.test(p)))) {\n if (q) {\n throw new Error(i(\"URI.parse: invalid URI (unsafe protocol-relative URLs): %s\", o.toString()));\n }\n else return false\n ;\n }\n ;\n ;\n return true;\n };\n;\n function n(o) {\n this.$URIBase0 = \"\";\n this.$URIBase1 = \"\";\n this.$URIBase2 = \"\";\n this.$URIBase3 = \"\";\n this.$URIBase4 = \"\";\n this.$URIBase5 = {\n };\n m(this, o, true);\n };\n;\n n.prototype.setProtocol = function(o) {\n this.$URIBase0 = o;\n return this;\n };\n n.prototype.getProtocol = function(o) {\n return this.$URIBase0;\n };\n n.prototype.setSecure = function(o) {\n return this.setProtocol(((o ? \"https\" : \"http\")));\n };\n n.prototype.isSecure = function() {\n return ((this.getProtocol() === \"https\"));\n };\n n.prototype.setDomain = function(o) {\n if (k.test(o)) {\n throw new Error(i(\"URI.setDomain: unsafe domain specified: %s for url %s\", o, this.toString()));\n }\n ;\n ;\n this.$URIBase1 = o;\n return this;\n };\n n.prototype.getDomain = function() {\n return this.$URIBase1;\n };\n n.prototype.setPort = function(o) {\n this.$URIBase2 = o;\n return this;\n };\n n.prototype.getPort = function() {\n return this.$URIBase2;\n };\n n.prototype.setPath = function(o) {\n this.$URIBase3 = o;\n return this;\n };\n n.prototype.getPath = function() {\n return this.$URIBase3;\n };\n n.prototype.addQueryData = function(o, p) {\n if (((o instanceof Object))) {\n h(this.$URIBase5, o);\n }\n else this.$URIBase5[o] = p;\n ;\n ;\n return this;\n };\n n.prototype.setQueryData = function(o) {\n this.$URIBase5 = o;\n return this;\n };\n n.prototype.getQueryData = function() {\n return this.$URIBase5;\n };\n n.prototype.removeQueryData = function(o) {\n if (!Array.isArray(o)) {\n o = [o,];\n }\n ;\n ;\n for (var p = 0, q = o.length; ((p < q)); ++p) {\n delete this.$URIBase5[o[p]];\n ;\n };\n ;\n return this;\n };\n n.prototype.setFragment = function(o) {\n this.$URIBase4 = o;\n return this;\n };\n n.prototype.getFragment = function() {\n return this.$URIBase4;\n };\n n.prototype.toString = function() {\n var o = \"\";\n if (this.$URIBase0) {\n o += ((this.$URIBase0 + \"://\"));\n }\n ;\n ;\n if (this.$URIBase1) {\n o += this.$URIBase1;\n }\n ;\n ;\n if (this.$URIBase2) {\n o += ((\":\" + this.$URIBase2));\n }\n ;\n ;\n if (this.$URIBase3) {\n o += this.$URIBase3;\n }\n else if (o) {\n o += \"/\";\n }\n \n ;\n ;\n var p = g.serialize(this.$URIBase5);\n if (p) {\n o += ((\"?\" + p));\n }\n ;\n ;\n if (this.$URIBase4) {\n o += ((\"#\" + this.$URIBase4));\n }\n ;\n ;\n return o;\n };\n n.prototype.getOrigin = function() {\n return ((((((this.$URIBase0 + \"://\")) + this.$URIBase1)) + ((this.$URIBase2 ? ((\":\" + this.$URIBase2)) : \"\"))));\n };\n n.isValidURI = function(o) {\n return m(new n(), o, false);\n };\n e.exports = n;\n});\n__d(\"URI\", [\"URIBase\",\"copyProperties\",\"goURI\",], function(a, b, c, d, e, f) {\n var g = b(\"URIBase\"), h = b(\"copyProperties\"), i = b(\"goURI\"), j = ((((g === null)) ? null : g.prototype));\n k.prototype = Object.create(j);\n k.prototype.constructor = k;\n k.__superConstructor__ = g;\n function k(l) {\n if (!((this instanceof k))) {\n return new k(((l || window.JSBNG__location.href)));\n }\n ;\n ;\n g.call(this, ((l || \"\")));\n };\n;\n k.prototype.setPath = function(l) {\n this.path = l;\n return j.setPath.call(this, l);\n };\n k.prototype.getPath = function() {\n var l = j.getPath.call(this);\n if (l) {\n return l.replace(/^\\/+/, \"/\");\n }\n ;\n ;\n return l;\n };\n k.prototype.setProtocol = function(l) {\n this.protocol = l;\n return j.setProtocol.call(this, l);\n };\n k.prototype.setDomain = function(l) {\n this.domain = l;\n return j.setDomain.call(this, l);\n };\n k.prototype.setPort = function(l) {\n this.port = l;\n return j.setPort.call(this, l);\n };\n k.prototype.setFragment = function(l) {\n this.fragment = l;\n return j.setFragment.call(this, l);\n };\n k.prototype.isEmpty = function() {\n return !((((((((((this.getPath() || this.getProtocol())) || this.getDomain())) || this.getPort())) || ((Object.keys(this.getQueryData()).length > 0)))) || this.getFragment()));\n };\n k.prototype.valueOf = ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_42), function() {\n return this.toString();\n }));\n k.prototype.isFacebookURI = function() {\n if (!k.$URI5) {\n k.$URI5 = new RegExp(\"(^|\\\\.)facebook\\\\.com$\", \"i\");\n }\n ;\n ;\n if (this.isEmpty()) {\n return false;\n }\n ;\n ;\n if (((!this.getDomain() && !this.getProtocol()))) {\n return true;\n }\n ;\n ;\n return (((([\"http\",\"https\",].indexOf(this.getProtocol()) !== -1)) && k.$URI5.test(this.getDomain())));\n };\n k.prototype.getRegisteredDomain = function() {\n if (!this.getDomain()) {\n return \"\";\n }\n ;\n ;\n if (!this.isFacebookURI()) {\n return null;\n }\n ;\n ;\n var l = this.getDomain().split(\".\"), m = l.indexOf(\"facebook\");\n return l.slice(m).join(\".\");\n };\n k.prototype.getUnqualifiedURI = function() {\n return new k(this).setProtocol(null).setDomain(null).setPort(null);\n };\n k.prototype.getQualifiedURI = function() {\n return new k(this).$URI6();\n };\n k.prototype.$URI6 = function() {\n if (!this.getDomain()) {\n var l = k();\n this.setProtocol(l.getProtocol()).setDomain(l.getDomain()).setPort(l.getPort());\n }\n ;\n ;\n return this;\n };\n k.prototype.isSameOrigin = function(l) {\n var m = ((l || window.JSBNG__location.href));\n if (!((m instanceof k))) {\n m = new k(m.toString());\n }\n ;\n ;\n if (((this.isEmpty() || m.isEmpty()))) {\n return false;\n }\n ;\n ;\n if (((this.getProtocol() && ((this.getProtocol() != m.getProtocol()))))) {\n return false;\n }\n ;\n ;\n if (((this.getDomain() && ((this.getDomain() != m.getDomain()))))) {\n return false;\n }\n ;\n ;\n if (((this.getPort() && ((this.getPort() != m.getPort()))))) {\n return false;\n }\n ;\n ;\n return true;\n };\n k.prototype.go = function(l) {\n i(this, l);\n };\n k.prototype.setSubdomain = function(l) {\n var m = this.$URI6().getDomain().split(\".\");\n if (((m.length <= 2))) {\n m.unshift(l);\n }\n else m[0] = l;\n ;\n ;\n return this.setDomain(m.join(\".\"));\n };\n k.prototype.getSubdomain = function() {\n if (!this.getDomain()) {\n return \"\";\n }\n ;\n ;\n var l = this.getDomain().split(\".\");\n if (((l.length <= 2))) {\n return \"\";\n }\n else return l[0]\n ;\n };\n k.isValidURI = g.isValidURI;\n h(k, {\n getRequestURI: function(l, m) {\n l = ((((l === undefined)) || l));\n var n = a.PageTransitions;\n if (((((l && n)) && n.isInitialized()))) {\n return n.getCurrentURI(!!m).getQualifiedURI();\n }\n else return new k(window.JSBNG__location.href)\n ;\n },\n getMostRecentURI: function() {\n var l = a.PageTransitions;\n if (((l && l.isInitialized()))) {\n return l.getMostRecentURI().getQualifiedURI();\n }\n else return new k(window.JSBNG__location.href)\n ;\n },\n getNextURI: function() {\n var l = a.PageTransitions;\n if (((l && l.isInitialized()))) {\n return l.getNextURI().getQualifiedURI();\n }\n else return new k(window.JSBNG__location.href)\n ;\n },\n expression: /(((\\w+):\\/\\/)([^\\/:]*)(:(\\d+))?)?([^#?]*)(\\?([^#]*))?(#(.*))?/,\n arrayQueryExpression: /^(\\w+)((?:\\[\\w*\\])+)=?(.*)/,\n explodeQuery: function(l) {\n if (!l) {\n return {\n };\n }\n ;\n ;\n var m = {\n };\n l = l.replace(/%5B/gi, \"[\").replace(/%5D/gi, \"]\");\n l = l.split(\"&\");\n var n = Object.prototype.hasOwnProperty;\n for (var o = 0, p = l.length; ((o < p)); o++) {\n var q = l[o].match(k.arrayQueryExpression);\n if (!q) {\n var r = l[o].split(\"=\");\n m[k.decodeComponent(r[0])] = ((((r[1] === undefined)) ? null : k.decodeComponent(r[1])));\n }\n else {\n var s = q[2].split(/\\]\\[|\\[|\\]/).slice(0, -1), t = q[1], u = k.decodeComponent(((q[3] || \"\")));\n s[0] = t;\n var v = m;\n for (var w = 0; ((w < ((s.length - 1)))); w++) {\n if (s[w]) {\n if (!n.call(v, s[w])) {\n var x = ((((s[((w + 1))] && !s[((w + 1))].match(/^\\d{1,3}$/))) ? {\n } : []));\n v[s[w]] = x;\n if (((v[s[w]] !== x))) {\n return m;\n }\n ;\n ;\n }\n ;\n ;\n v = v[s[w]];\n }\n else {\n if (((s[((w + 1))] && !s[((w + 1))].match(/^\\d{1,3}$/)))) {\n v.push({\n });\n }\n else v.push([]);\n ;\n ;\n v = v[((v.length - 1))];\n }\n ;\n ;\n };\n ;\n if (((((v instanceof Array)) && ((s[((s.length - 1))] === \"\"))))) {\n v.push(u);\n }\n else v[s[((s.length - 1))]] = u;\n ;\n ;\n }\n ;\n ;\n };\n ;\n return m;\n },\n implodeQuery: function(l, m, n) {\n m = ((m || \"\"));\n if (((n === undefined))) {\n n = true;\n }\n ;\n ;\n var o = [];\n if (((((l === null)) || ((l === undefined))))) {\n o.push(((n ? k.encodeComponent(m) : m)));\n }\n else if (((l instanceof Array))) {\n for (var p = 0; ((p < l.length)); ++p) {\n try {\n if (((l[p] !== undefined))) {\n o.push(k.implodeQuery(l[p], ((m ? ((((((m + \"[\")) + p)) + \"]\")) : p)), n));\n }\n ;\n ;\n } catch (q) {\n \n };\n ;\n };\n ;\n }\n else if (((typeof (l) == \"object\"))) {\n if (((((\"nodeName\" in l)) && ((\"nodeType\" in l))))) {\n o.push(\"{node}\");\n }\n else {\n var fin28keys = ((window.top.JSBNG_Replay.forInKeys)((l))), fin28i = (0);\n var r;\n for (; (fin28i < fin28keys.length); (fin28i++)) {\n ((r) = (fin28keys[fin28i]));\n {\n try {\n if (((l[r] !== undefined))) {\n o.push(k.implodeQuery(l[r], ((m ? ((((((m + \"[\")) + r)) + \"]\")) : r)), n));\n }\n ;\n ;\n } catch (q) {\n \n };\n ;\n };\n };\n }\n ;\n ;\n }\n else if (n) {\n o.push(((((k.encodeComponent(m) + \"=\")) + k.encodeComponent(l))));\n }\n else o.push(((((m + \"=\")) + l)));\n \n \n \n ;\n ;\n return o.join(\"&\");\n },\n encodeComponent: function(l) {\n return encodeURIComponent(l).replace(/%5D/g, \"]\").replace(/%5B/g, \"[\");\n },\n decodeComponent: function(l) {\n return decodeURIComponent(l.replace(/\\+/g, \" \"));\n }\n });\n e.exports = k;\n});\n__d(\"AsyncSignal\", [\"Env\",\"ErrorUtils\",\"QueryString\",\"URI\",\"XHR\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\"), h = b(\"ErrorUtils\"), i = b(\"QueryString\"), j = b(\"URI\"), k = b(\"XHR\"), l = b(\"copyProperties\");\n function m(n, o) {\n this.data = ((o || {\n }));\n if (((g.tracking_domain && ((n.charAt(0) == \"/\"))))) {\n n = ((g.tracking_domain + n));\n }\n ;\n ;\n this.uri = n;\n };\n;\n m.prototype.setHandler = function(n) {\n this.handler = n;\n return this;\n };\n m.prototype.send = function() {\n var n = this.handler, o = this.data, p = new JSBNG__Image();\n if (n) {\n p.JSBNG__onload = p.JSBNG__onerror = function() {\n h.applyWithGuard(n, null, [((p.height == 1)),]);\n };\n }\n ;\n ;\n o.asyncSignal = ((((((Math.JSBNG__random() * 10000)) | 0)) + 1));\n var q = new j(this.uri).isFacebookURI();\n l(o, k.getAsyncParams(((q ? \"POST\" : \"GET\"))));\n p.src = i.appendToUrl(this.uri, o);\n return this;\n };\n e.exports = m;\n});\n__d(\"createObjectFrom\", [\"hasArrayNature\",], function(a, b, c, d, e, f) {\n var g = b(\"hasArrayNature\");\n function h(i, j) {\n var k = {\n }, l = g(j);\n if (((typeof j == \"undefined\"))) {\n j = true;\n }\n ;\n ;\n for (var m = i.length; m--; ) {\n k[i[m]] = ((l ? j[m] : j));\n ;\n };\n ;\n return k;\n };\n;\n e.exports = h;\n});\n__d(\"DOMQuery\", [\"CSS\",\"UserAgent\",\"createArrayFrom\",\"createObjectFrom\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"UserAgent\"), i = b(\"createArrayFrom\"), j = b(\"createObjectFrom\"), k = b(\"ge\"), l = null;\n function m(o, p) {\n return ((o.hasAttribute ? o.hasAttribute(p) : ((o.getAttribute(p) !== null))));\n };\n;\n var n = {\n JSBNG__find: function(o, p) {\n var q = n.scry(o, p);\n return q[0];\n },\n scry: function(o, p) {\n if (((!o || !o.getElementsByTagName))) {\n return [];\n }\n ;\n ;\n var q = p.split(\" \"), r = [o,];\n for (var s = 0; ((s < q.length)); s++) {\n if (((r.length === 0))) {\n break;\n }\n ;\n ;\n if (((q[s] === \"\"))) {\n continue;\n }\n ;\n ;\n var t = q[s], u = q[s], v = [], w = false;\n if (((t.charAt(0) == \"^\"))) {\n if (((s === 0))) {\n w = true;\n t = t.slice(1);\n }\n else return []\n ;\n }\n ;\n ;\n t = t.replace(/\\[(?:[^=\\]]*=(?:\"[^\"]*\"|'[^']*'))?|[.#]/g, \" $&\");\n var x = t.split(\" \"), y = ((x[0] || \"*\")), z = ((y == \"*\")), aa = ((x[1] && ((x[1].charAt(0) == \"#\"))));\n if (aa) {\n var ba = k(x[1].slice(1), o, y);\n if (((ba && ((z || ((ba.tagName.toLowerCase() == y))))))) {\n for (var ca = 0; ((ca < r.length)); ca++) {\n if (((w && n.contains(ba, r[ca])))) {\n v = [ba,];\n break;\n }\n else if (((((JSBNG__document == r[ca])) || n.contains(r[ca], ba)))) {\n v = [ba,];\n break;\n }\n \n ;\n ;\n };\n }\n ;\n ;\n }\n else {\n var da = [], ea = r.length, fa, ga = ((((!w && ((u.indexOf(\"[\") < 0)))) && JSBNG__document.querySelectorAll));\n for (var ha = 0; ((ha < ea)); ha++) {\n if (w) {\n fa = [];\n var ia = r[ha].parentNode;\n while (n.isElementNode(ia)) {\n if (((z || ((ia.tagName.toLowerCase() == y))))) {\n fa.push(ia);\n }\n ;\n ;\n ia = ia.parentNode;\n };\n ;\n }\n else if (ga) {\n fa = r[ha].querySelectorAll(u);\n }\n else fa = r[ha].getElementsByTagName(y);\n \n ;\n ;\n var ja = fa.length;\n for (var ka = 0; ((ka < ja)); ka++) {\n da.push(fa[ka]);\n ;\n };\n ;\n };\n ;\n if (!ga) {\n for (var la = 1; ((la < x.length)); la++) {\n var ma = x[la], na = ((ma.charAt(0) == \".\")), oa = ma.substring(1);\n for (ha = 0; ((ha < da.length)); ha++) {\n var pa = da[ha];\n if (((!pa || ((pa.nodeType !== 1))))) {\n continue;\n }\n ;\n ;\n if (na) {\n if (!g.hasClass(pa, oa)) {\n delete da[ha];\n }\n ;\n ;\n continue;\n }\n else {\n var qa = ma.slice(1, ((ma.length - 1)));\n if (((qa.indexOf(\"=\") == -1))) {\n if (!m(pa, qa)) {\n delete da[ha];\n continue;\n }\n ;\n ;\n }\n else {\n var ra = qa.split(\"=\"), sa = ra[0], ta = ra[1];\n ta = ta.slice(1, ((ta.length - 1)));\n if (((pa.getAttribute(sa) != ta))) {\n delete da[ha];\n continue;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n };\n }\n ;\n ;\n for (ha = 0; ((ha < da.length)); ha++) {\n if (da[ha]) {\n v.push(da[ha]);\n if (w) {\n break;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n r = v;\n };\n ;\n return r;\n },\n getText: function(o) {\n if (n.isTextNode(o)) {\n return o.data;\n }\n else if (n.isElementNode(o)) {\n if (((l === null))) {\n var p = JSBNG__document.createElement(\"div\");\n l = ((((p.textContent != null)) ? \"textContent\" : \"innerText\"));\n }\n ;\n ;\n return o[l];\n }\n else return \"\"\n \n ;\n },\n JSBNG__getSelection: function() {\n var o = window.JSBNG__getSelection, p = JSBNG__document.selection;\n if (o) {\n return ((o() + \"\"));\n }\n else if (p) {\n return p.createRange().text;\n }\n \n ;\n ;\n return null;\n },\n contains: function(o, p) {\n o = k(o);\n p = k(p);\n if (((!o || !p))) {\n return false;\n }\n else if (((o === p))) {\n return true;\n }\n else if (n.isTextNode(o)) {\n return false;\n }\n else if (n.isTextNode(p)) {\n return n.contains(o, p.parentNode);\n }\n else if (o.contains) {\n return o.contains(p);\n }\n else if (o.compareDocumentPosition) {\n return !!((o.compareDocumentPosition(p) & 16));\n }\n else return false\n \n \n \n \n \n ;\n },\n getRootElement: function() {\n var o = null;\n if (((window.Quickling && Quickling.isActive()))) {\n o = k(\"JSBNG__content\");\n }\n ;\n ;\n return ((o || JSBNG__document.body));\n },\n isNode: function(o) {\n return !!((o && ((((typeof JSBNG__Node !== \"undefined\")) ? ((o instanceof JSBNG__Node)) : ((((((typeof o == \"object\")) && ((typeof o.nodeType == \"number\")))) && ((typeof o.nodeName == \"string\"))))))));\n },\n isNodeOfType: function(o, p) {\n var q = i(p).join(\"|\").toUpperCase().split(\"|\"), r = j(q);\n return ((n.isNode(o) && ((o.nodeName in r))));\n },\n isElementNode: function(o) {\n return ((n.isNode(o) && ((o.nodeType == 1))));\n },\n isTextNode: function(o) {\n return ((n.isNode(o) && ((o.nodeType == 3))));\n },\n isInputNode: function(o) {\n return ((n.isNodeOfType(o, [\"input\",\"textarea\",]) || ((o.contentEditable === \"true\"))));\n },\n getDocumentScrollElement: function(o) {\n o = ((o || JSBNG__document));\n var p = ((h.chrome() || h.webkit()));\n return ((((!p && ((o.compatMode === \"CSS1Compat\")))) ? o.documentElement : o.body));\n }\n };\n e.exports = n;\n});\n__d(\"DataStore\", [], function(a, b, c, d, e, f) {\n var g = {\n }, h = 1;\n function i(l) {\n if (((typeof l == \"string\"))) {\n return ((\"str_\" + l));\n }\n else return ((\"elem_\" + ((l.__FB_TOKEN || (l.__FB_TOKEN = [h++,])))[0]))\n ;\n };\n;\n function j(l) {\n var m = i(l);\n return ((g[m] || (g[m] = {\n })));\n };\n;\n var k = {\n set: function(l, m, n) {\n if (!l) {\n throw new TypeError(((\"DataStore.set: namespace is required, got \" + (typeof l))));\n }\n ;\n ;\n var o = j(l);\n o[m] = n;\n return l;\n },\n get: function(l, m, n) {\n if (!l) {\n throw new TypeError(((\"DataStore.get: namespace is required, got \" + (typeof l))));\n }\n ;\n ;\n var o = j(l), p = o[m];\n if (((((typeof p === \"undefined\")) && l.getAttribute))) {\n if (((l.hasAttribute && !l.hasAttribute(((\"data-\" + m)))))) {\n p = undefined;\n }\n else {\n var q = l.getAttribute(((\"data-\" + m)));\n p = ((((null === q)) ? undefined : q));\n }\n ;\n }\n ;\n ;\n if (((((n !== undefined)) && ((p === undefined))))) {\n p = o[m] = n;\n }\n ;\n ;\n return p;\n },\n remove: function(l, m) {\n if (!l) {\n throw new TypeError(((\"DataStore.remove: namespace is required, got \" + (typeof l))));\n }\n ;\n ;\n var n = j(l), o = n[m];\n delete n[m];\n return o;\n },\n purge: function(l) {\n delete g[i(l)];\n }\n };\n e.exports = k;\n});\n__d(\"DOMEvent\", [\"copyProperties\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"invariant\");\n function i(j) {\n this.JSBNG__event = ((j || window.JSBNG__event));\n h(((typeof (this.JSBNG__event.srcElement) != \"unknown\")));\n this.target = ((this.JSBNG__event.target || this.JSBNG__event.srcElement));\n };\n;\n i.killThenCall = function(j) {\n return function(k) {\n new i(k).kill();\n return j();\n };\n };\n g(i.prototype, {\n preventDefault: function() {\n var j = this.JSBNG__event;\n if (j.preventDefault) {\n j.preventDefault();\n if (!((\"defaultPrevented\" in j))) {\n j.defaultPrevented = true;\n }\n ;\n ;\n }\n else j.returnValue = false;\n ;\n ;\n return this;\n },\n isDefaultPrevented: function() {\n var j = this.JSBNG__event;\n return ((((\"defaultPrevented\" in j)) ? j.defaultPrevented : ((j.returnValue === false))));\n },\n stopPropagation: function() {\n var j = this.JSBNG__event;\n ((j.stopPropagation ? j.stopPropagation() : j.cancelBubble = true));\n return this;\n },\n kill: function() {\n this.stopPropagation().preventDefault();\n return this;\n }\n });\n e.exports = i;\n});\n__d(\"getObjectValues\", [\"hasArrayNature\",], function(a, b, c, d, e, f) {\n var g = b(\"hasArrayNature\");\n function h(i) {\n var j = [];\n {\n var fin29keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin29i = (0);\n var k;\n for (; (fin29i < fin29keys.length); (fin29i++)) {\n ((k) = (fin29keys[fin29i]));\n {\n j.push(i[k]);\n ;\n };\n };\n };\n ;\n return j;\n };\n;\n e.exports = h;\n});\n__d(\"JSBNG__Event\", [\"event-form-bubbling\",\"Arbiter\",\"DataStore\",\"DOMQuery\",\"DOMEvent\",\"ErrorUtils\",\"Parent\",\"UserAgent\",\"$\",\"copyProperties\",\"getObjectValues\",], function(a, b, c, d, e, f) {\n b(\"event-form-bubbling\");\n var g = b(\"Arbiter\"), h = b(\"DataStore\"), i = b(\"DOMQuery\"), j = b(\"DOMEvent\"), k = b(\"ErrorUtils\"), l = b(\"Parent\"), m = b(\"UserAgent\"), n = b(\"$\"), o = b(\"copyProperties\"), p = b(\"getObjectValues\"), q = a.JSBNG__Event;\n q.DATASTORE_KEY = \"JSBNG__Event.listeners\";\n if (!q.prototype) {\n q.prototype = {\n };\n }\n;\n;\n function r(ca) {\n if (((((((ca.type === \"click\")) || ((ca.type === \"mouseover\")))) || ((ca.type === \"keydown\"))))) {\n g.inform(\"Event/stop\", {\n JSBNG__event: ca\n });\n }\n ;\n ;\n };\n;\n function s(ca, da, ea) {\n this.target = ca;\n this.type = da;\n this.data = ea;\n };\n;\n o(s.prototype, {\n getData: function() {\n this.data = ((this.data || {\n }));\n return this.data;\n },\n JSBNG__stop: function() {\n return q.JSBNG__stop(this);\n },\n prevent: function() {\n return q.prevent(this);\n },\n isDefaultPrevented: function() {\n return q.isDefaultPrevented(this);\n },\n kill: function() {\n return q.kill(this);\n },\n getTarget: function() {\n return ((new j(this).target || null));\n }\n });\n function t(ca) {\n if (((ca instanceof s))) {\n return ca;\n }\n ;\n ;\n if (!ca) {\n if (((!window.JSBNG__addEventListener && JSBNG__document.createEventObject))) {\n ca = ((window.JSBNG__event ? JSBNG__document.createEventObject(window.JSBNG__event) : {\n }));\n }\n else ca = {\n };\n ;\n }\n ;\n ;\n if (!ca._inherits_from_prototype) {\n {\n var fin30keys = ((window.top.JSBNG_Replay.forInKeys)((q.prototype))), fin30i = (0);\n var da;\n for (; (fin30i < fin30keys.length); (fin30i++)) {\n ((da) = (fin30keys[fin30i]));\n {\n try {\n ca[da] = q.prototype[da];\n } catch (ea) {\n \n };\n ;\n };\n };\n };\n }\n ;\n ;\n return ca;\n };\n;\n o(q.prototype, {\n _inherits_from_prototype: true,\n getRelatedTarget: function() {\n var ca = ((this.relatedTarget || ((((this.fromElement === this.srcElement)) ? this.toElement : this.fromElement))));\n return ((((ca && ca.nodeType)) ? ca : null));\n },\n getModifiers: function() {\n var ca = {\n control: !!this.ctrlKey,\n shift: !!this.shiftKey,\n alt: !!this.altKey,\n meta: !!this.metaKey\n };\n ca.access = ((m.osx() ? ca.control : ca.alt));\n ca.any = ((((((ca.control || ca.shift)) || ca.alt)) || ca.meta));\n return ca;\n },\n isRightClick: function() {\n if (this.which) {\n return ((this.which === 3));\n }\n ;\n ;\n return ((this.button && ((this.button === 2))));\n },\n isMiddleClick: function() {\n if (this.which) {\n return ((this.which === 2));\n }\n ;\n ;\n return ((this.button && ((this.button === 4))));\n },\n isDefaultRequested: function() {\n return ((((this.getModifiers().any || this.isMiddleClick())) || this.isRightClick()));\n }\n });\n o(q.prototype, s.prototype);\n o(q, {\n listen: function(ca, da, ea, fa) {\n if (((typeof ca == \"string\"))) {\n ca = n(ca);\n }\n ;\n ;\n if (((typeof fa == \"undefined\"))) {\n fa = q.Priority.NORMAL;\n }\n ;\n ;\n if (((typeof da == \"object\"))) {\n var ga = {\n };\n {\n var fin31keys = ((window.top.JSBNG_Replay.forInKeys)((da))), fin31i = (0);\n var ha;\n for (; (fin31i < fin31keys.length); (fin31i++)) {\n ((ha) = (fin31keys[fin31i]));\n {\n ga[ha] = q.listen(ca, ha, da[ha], fa);\n ;\n };\n };\n };\n ;\n return ga;\n }\n ;\n ;\n if (da.match(/^on/i)) {\n throw new TypeError(((((\"Bad event name `\" + da)) + \"': use `click', not `onclick'.\")));\n }\n ;\n ;\n if (((((ca.nodeName == \"LABEL\")) && ((da == \"click\"))))) {\n var ia = ca.getElementsByTagName(\"input\");\n ca = ((((ia.length == 1)) ? ia[0] : ca));\n }\n else if (((((ca === window)) && ((da === \"JSBNG__scroll\"))))) {\n var ja = i.getDocumentScrollElement();\n if (((((ja !== JSBNG__document.documentElement)) && ((ja !== JSBNG__document.body))))) {\n ca = ja;\n }\n ;\n ;\n }\n \n ;\n ;\n var ka = h.get(ca, v, {\n });\n if (x[da]) {\n var la = x[da];\n da = la.base;\n if (la.wrap) {\n ea = la.wrap(ea);\n }\n ;\n ;\n }\n ;\n ;\n z(ca, da);\n var ma = ka[da];\n if (!((fa in ma))) {\n ma[fa] = [];\n }\n ;\n ;\n var na = ma[fa].length, oa = new ba(ea, ma[fa], na);\n ma[fa].push(oa);\n return oa;\n },\n JSBNG__stop: function(ca) {\n var da = new j(ca).stopPropagation();\n r(da.JSBNG__event);\n return ca;\n },\n prevent: function(ca) {\n new j(ca).preventDefault();\n return ca;\n },\n isDefaultPrevented: function(ca) {\n return new j(ca).isDefaultPrevented(ca);\n },\n kill: function(ca) {\n var da = new j(ca).kill();\n r(da.JSBNG__event);\n return false;\n },\n getKeyCode: function(JSBNG__event) {\n JSBNG__event = new j(JSBNG__event).JSBNG__event;\n if (!JSBNG__event) {\n return false;\n }\n ;\n ;\n switch (JSBNG__event.keyCode) {\n case 63232:\n return 38;\n case 63233:\n return 40;\n case 63234:\n return 37;\n case 63235:\n return 39;\n case 63272:\n \n case 63273:\n \n case 63275:\n return null;\n case 63276:\n return 33;\n case 63277:\n return 34;\n };\n ;\n if (JSBNG__event.shiftKey) {\n switch (JSBNG__event.keyCode) {\n case 33:\n \n case 34:\n \n case 37:\n \n case 38:\n \n case 39:\n \n case 40:\n return null;\n };\n }\n ;\n ;\n return JSBNG__event.keyCode;\n },\n getPriorities: function() {\n if (!u) {\n var ca = p(q.Priority);\n ca.sort(function(da, ea) {\n return ((da - ea));\n });\n u = ca;\n }\n ;\n ;\n return u;\n },\n fire: function(ca, da, ea) {\n var fa = new s(ca, da, ea), ga;\n do {\n var ha = q.__getHandler(ca, da);\n if (ha) {\n ga = ha(fa);\n }\n ;\n ;\n ca = ca.parentNode;\n } while (((((ca && ((ga !== false)))) && !fa.cancelBubble)));\n return ((ga !== false));\n },\n __fire: function(ca, da, JSBNG__event) {\n var ea = q.__getHandler(ca, da);\n if (ea) {\n return ea(t(JSBNG__event));\n }\n ;\n ;\n },\n __getHandler: function(ca, da) {\n return h.get(ca, ((q.DATASTORE_KEY + da)));\n },\n getPosition: function(ca) {\n ca = new j(ca).JSBNG__event;\n var da = i.getDocumentScrollElement(), ea = ((ca.clientX + da.scrollLeft)), fa = ((ca.clientY + da.scrollTop));\n return {\n x: ea,\n y: fa\n };\n }\n });\n var u = null, v = q.DATASTORE_KEY, w = function(ca) {\n return function(da) {\n if (!i.contains(this, da.getRelatedTarget())) {\n return ca.call(this, da);\n }\n ;\n ;\n };\n }, x;\n if (!window.JSBNG__navigator.msPointerEnabled) {\n x = {\n mouseenter: {\n base: \"mouseover\",\n wrap: w\n },\n mouseleave: {\n base: \"mouseout\",\n wrap: w\n }\n };\n }\n else x = {\n mousedown: {\n base: \"MSPointerDown\"\n },\n mousemove: {\n base: \"MSPointerMove\"\n },\n mouseup: {\n base: \"MSPointerUp\"\n },\n mouseover: {\n base: \"MSPointerOver\"\n },\n mouseout: {\n base: \"MSPointerOut\"\n },\n mouseenter: {\n base: \"MSPointerOver\",\n wrap: w\n },\n mouseleave: {\n base: \"MSPointerOut\",\n wrap: w\n }\n };\n;\n;\n if (m.firefox()) {\n var y = function(ca, JSBNG__event) {\n JSBNG__event = t(JSBNG__event);\n var da = JSBNG__event.getTarget();\n while (da) {\n q.__fire(da, ca, JSBNG__event);\n da = da.parentNode;\n };\n ;\n };\n JSBNG__document.documentElement.JSBNG__addEventListener(\"JSBNG__focus\", y.curry(\"focusin\"), true);\n JSBNG__document.documentElement.JSBNG__addEventListener(\"JSBNG__blur\", y.curry(\"focusout\"), true);\n }\n;\n;\n var z = function(ca, da) {\n var ea = ((\"JSBNG__on\" + da)), fa = aa.bind(ca, da), ga = h.get(ca, v);\n if (((da in ga))) {\n return;\n }\n ;\n ;\n ga[da] = {\n };\n if (ca.JSBNG__addEventListener) {\n ca.JSBNG__addEventListener(da, fa, false);\n }\n else if (ca.JSBNG__attachEvent) {\n ca.JSBNG__attachEvent(ea, fa);\n }\n \n ;\n ;\n h.set(ca, ((v + da)), fa);\n if (ca[ea]) {\n var ha = ((((ca === JSBNG__document.documentElement)) ? q.Priority._BUBBLE : q.Priority.TRADITIONAL)), ia = ca[ea];\n ca[ea] = null;\n q.listen(ca, da, ia, ha);\n }\n ;\n ;\n if (((((ca.nodeName === \"FORM\")) && ((da === \"submit\"))))) {\n q.listen(ca, da, q.__bubbleSubmit.curry(ca), q.Priority._BUBBLE);\n }\n ;\n ;\n }, aa = k.guard(function(ca, JSBNG__event) {\n JSBNG__event = t(JSBNG__event);\n if (!h.get(this, v)) {\n throw new Error(\"Bad listenHandler context.\");\n }\n ;\n ;\n var da = h.get(this, v)[ca];\n if (!da) {\n throw new Error(((((\"No registered handlers for `\" + ca)) + \"'.\")));\n }\n ;\n ;\n if (((ca == \"click\"))) {\n var ea = l.byTag(JSBNG__event.getTarget(), \"a\");\n if (window.userAction) {\n var fa = window.userAction(\"evt_ext\", ea, JSBNG__event, {\n mode: \"DEDUP\"\n }).uai_fallback(\"click\");\n if (window.ArbiterMonitor) {\n window.ArbiterMonitor.initUA(fa, [ea,]);\n }\n ;\n ;\n }\n ;\n ;\n if (window.clickRefAction) {\n window.clickRefAction(\"click\", ea, JSBNG__event);\n }\n ;\n ;\n }\n ;\n ;\n var ga = q.getPriorities();\n for (var ha = 0; ((ha < ga.length)); ha++) {\n var ia = ga[ha];\n if (((ia in da))) {\n var ja = da[ia];\n for (var ka = 0; ((ka < ja.length)); ka++) {\n if (!ja[ka]) {\n continue;\n }\n ;\n ;\n var la = ja[ka].fire(this, JSBNG__event);\n if (((la === false))) {\n return JSBNG__event.kill();\n }\n else if (JSBNG__event.cancelBubble) {\n JSBNG__event.JSBNG__stop();\n }\n \n ;\n ;\n };\n ;\n }\n ;\n ;\n };\n ;\n return JSBNG__event.returnValue;\n });\n q.Priority = {\n URGENT: -20,\n TRADITIONAL: -10,\n NORMAL: 0,\n _BUBBLE: 1000\n };\n function ba(ca, da, ea) {\n this._handler = ca;\n this._container = da;\n this._index = ea;\n };\n;\n o(ba.prototype, {\n remove: function() {\n delete this._handler;\n delete this._container[this._index];\n },\n fire: function(ca, JSBNG__event) {\n return k.applyWithGuard(this._handler, ca, [JSBNG__event,], function(da) {\n da.event_type = JSBNG__event.type;\n da.dom_element = ((ca.JSBNG__name || ca.id));\n da.category = \"eventhandler\";\n });\n }\n });\n a.$E = q.$E = t;\n e.exports = q;\n});\n__d(\"evalGlobal\", [], function(a, b, c, d, e, f) {\n function g(h) {\n if (((typeof h != \"string\"))) {\n throw new TypeError(\"JS sent to evalGlobal is not a string. Only strings are permitted.\");\n }\n ;\n ;\n if (!h) {\n return;\n }\n ;\n ;\n var i = JSBNG__document.createElement(\"script\");\n try {\n i.appendChild(JSBNG__document.createTextNode(h));\n } catch (j) {\n i.text = h;\n };\n ;\n var k = ((JSBNG__document.getElementsByTagName(\"head\")[0] || JSBNG__document.documentElement));\n k.appendChild(i);\n k.removeChild(i);\n };\n;\n e.exports = g;\n});\n__d(\"HTML\", [\"function-extensions\",\"Bootloader\",\"UserAgent\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"evalGlobal\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"Bootloader\"), h = b(\"UserAgent\"), i = b(\"copyProperties\"), j = b(\"createArrayFrom\"), k = b(\"emptyFunction\"), l = b(\"evalGlobal\");\n function m(n) {\n if (((n && ((typeof n.__html == \"string\"))))) {\n n = n.__html;\n }\n ;\n ;\n if (!((this instanceof m))) {\n if (((n instanceof m))) {\n return n;\n }\n ;\n ;\n return new m(n);\n }\n ;\n ;\n this._content = n;\n this._defer = false;\n this._extra_action = \"\";\n this._nodes = null;\n this._inline_js = k;\n this._rootNode = null;\n return this;\n };\n;\n m.isHTML = function(n) {\n return ((n && ((((n instanceof m)) || ((n.__html !== undefined))))));\n };\n m.replaceJSONWrapper = function(n) {\n return ((((n && ((n.__html !== undefined)))) ? new m(n.__html) : n));\n };\n i(m.prototype, {\n toString: function() {\n var n = ((this._content || \"\"));\n if (this._extra_action) {\n n += ((((((\"\\u003Cscript type=\\\"text/javascript\\\"\\u003E\" + this._extra_action)) + \"\\u003C/scr\")) + \"ipt\\u003E\"));\n }\n ;\n ;\n return n;\n },\n setAction: function(n) {\n this._extra_action = n;\n return this;\n },\n getAction: function() {\n this._fillCache();\n var n = function() {\n this._inline_js();\n l(this._extra_action);\n }.bind(this);\n if (this.getDeferred()) {\n return n.defer.bind(n);\n }\n else return n\n ;\n },\n setDeferred: function(n) {\n this._defer = !!n;\n return this;\n },\n getDeferred: function() {\n return this._defer;\n },\n getContent: function() {\n return this._content;\n },\n getNodes: function() {\n this._fillCache();\n return this._nodes;\n },\n getRootNode: function() {\n var n = this.getNodes();\n if (((n.length === 1))) {\n this._rootNode = n[0];\n }\n else {\n var o = JSBNG__document.createDocumentFragment();\n for (var p = 0; ((p < n.length)); p++) {\n o.appendChild(n[p]);\n ;\n };\n ;\n this._rootNode = o;\n }\n ;\n ;\n return this._rootNode;\n },\n _fillCache: function() {\n if (((null !== this._nodes))) {\n return;\n }\n ;\n ;\n var n = this._content;\n if (!n) {\n this._nodes = [];\n return;\n }\n ;\n ;\n n = n.replace(/(<(\\w+)[^>]*?)\\/>/g, function(y, z, aa) {\n return ((aa.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? y : ((((((z + \"\\u003E\\u003C/\")) + aa)) + \"\\u003E\"))));\n });\n var o = n.trim().toLowerCase(), p = JSBNG__document.createElement(\"div\"), q = false, r = ((((((((((((((!o.indexOf(\"\\u003Copt\") && [1,\"\\u003Cselect multiple=\\\"multiple\\\" class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/select\\u003E\",])) || ((!o.indexOf(\"\\u003Cleg\") && [1,\"\\u003Cfieldset class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/fieldset\\u003E\",])))) || ((o.match(/^<(thead|tbody|tfoot|colg|cap)/) && [1,\"\\u003Ctable class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/table\\u003E\",])))) || ((!o.indexOf(\"\\u003Ctr\") && [2,\"\\u003Ctable\\u003E\\u003Ctbody class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/tbody\\u003E\\u003C/table\\u003E\",])))) || ((((!o.indexOf(\"\\u003Ctd\") || !o.indexOf(\"\\u003Cth\"))) && [3,\"\\u003Ctable\\u003E\\u003Ctbody\\u003E\\u003Ctr class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\",])))) || ((!o.indexOf(\"\\u003Ccol\") && [2,\"\\u003Ctable\\u003E\\u003Ctbody\\u003E\\u003C/tbody\\u003E\\u003Ccolgroup class=\\\"__WRAPPER\\\"\\u003E\",\"\\u003C/colgroup\\u003E\\u003C/table\\u003E\",])))) || null));\n if (((null === r))) {\n p.className = \"__WRAPPER\";\n if (h.ie()) {\n r = [0,\"\\u003Cspan style=\\\"display:none\\\"\\u003E&nbsp;\\u003C/span\\u003E\",\"\",];\n q = true;\n }\n else r = [0,\"\",\"\",];\n ;\n ;\n }\n ;\n ;\n p.innerHTML = ((((r[1] + n)) + r[2]));\n while (r[0]--) {\n p = p.lastChild;\n ;\n };\n ;\n if (q) {\n p.removeChild(p.firstChild);\n }\n ;\n ;\n ((p.className != \"__WRAPPER\"));\n if (h.ie()) {\n var s;\n if (((!o.indexOf(\"\\u003Ctable\") && ((-1 == o.indexOf(\"\\u003Ctbody\")))))) {\n s = ((p.firstChild && p.firstChild.childNodes));\n }\n else if (((((r[1] == \"\\u003Ctable\\u003E\")) && ((-1 == o.indexOf(\"\\u003Ctbody\")))))) {\n s = p.childNodes;\n }\n else s = [];\n \n ;\n ;\n for (var t = ((s.length - 1)); ((t >= 0)); --t) {\n if (((((s[t].nodeName && ((s[t].nodeName.toLowerCase() == \"tbody\")))) && ((s[t].childNodes.length == 0))))) {\n s[t].parentNode.removeChild(s[t]);\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n var u = p.getElementsByTagName(\"script\"), v = [];\n for (var w = 0; ((w < u.length)); w++) {\n if (u[w].src) {\n v.push(g.requestJSResource.bind(g, u[w].src));\n }\n else v.push(l.bind(null, u[w].innerHTML));\n ;\n ;\n };\n ;\n for (var w = ((u.length - 1)); ((w >= 0)); w--) {\n u[w].parentNode.removeChild(u[w]);\n ;\n };\n ;\n var x = function() {\n for (var y = 0; ((y < v.length)); y++) {\n v[y]();\n ;\n };\n ;\n };\n this._nodes = j(p.childNodes);\n this._inline_js = x;\n }\n });\n e.exports = m;\n});\n__d(\"isScalar\", [], function(a, b, c, d, e, f) {\n function g(h) {\n return (/string|number|boolean/).test(typeof h);\n };\n;\n e.exports = g;\n});\n__d(\"JSBNG__Intl\", [], function(a, b, c, d, e, f) {\n var g;\n function h(j) {\n if (((typeof j != \"string\"))) {\n return false;\n }\n ;\n ;\n return j.match(new RegExp(((((((((((((((((((((((((((((((((((((((((((((((((((((h.punct_char_class + \"[\")) + \")\\\"\")) + \"'\")) + \"\\u00bb\")) + \"\\u0f3b\")) + \"\\u0f3d\")) + \"\\u2019\")) + \"\\u201d\")) + \"\\u203a\")) + \"\\u3009\")) + \"\\u300b\")) + \"\\u300d\")) + \"\\u300f\")) + \"\\u3011\")) + \"\\u3015\")) + \"\\u3017\")) + \"\\u3019\")) + \"\\u301b\")) + \"\\u301e\")) + \"\\u301f\")) + \"\\ufd3f\")) + \"\\uff07\")) + \"\\uff09\")) + \"\\uff3d\")) + \"\\\\s\")) + \"]*$\"))));\n };\n;\n h.punct_char_class = ((((((((((((((((((((((\"[\" + \".!?\")) + \"\\u3002\")) + \"\\uff01\")) + \"\\uff1f\")) + \"\\u0964\")) + \"\\u2026\")) + \"\\u0eaf\")) + \"\\u1801\")) + \"\\u0e2f\")) + \"\\uff0e\")) + \"]\"));\n function i(j) {\n if (g) {\n var k = [], l = [];\n {\n var fin32keys = ((window.top.JSBNG_Replay.forInKeys)((g.patterns))), fin32i = (0);\n var m;\n for (; (fin32i < fin32keys.length); (fin32i++)) {\n ((m) = (fin32keys[fin32i]));\n {\n var n = g.patterns[m];\n {\n var fin33keys = ((window.top.JSBNG_Replay.forInKeys)((g.meta))), fin33i = (0);\n var o;\n for (; (fin33i < fin33keys.length); (fin33i++)) {\n ((o) = (fin33keys[fin33i]));\n {\n var p = new RegExp(o.slice(1, -1), \"g\"), q = g.meta[o];\n m = m.replace(p, q);\n n = n.replace(p, q);\n };\n };\n };\n ;\n k.push(m);\n l.push(n);\n };\n };\n };\n ;\n for (var r = 0; ((r < k.length)); r++) {\n var s = new RegExp(k[r].slice(1, -1), \"g\");\n if (((l[r] == \"javascript\"))) {\n j.replace(s, function(t) {\n return t.slice(1).toLowerCase();\n });\n }\n else j = j.replace(s, l[r]);\n ;\n ;\n };\n ;\n }\n ;\n ;\n return j.replace(/\\x01/g, \"\");\n };\n;\n e.exports = {\n endsInPunct: h,\n applyPhonologicalRules: i,\n setPhonologicalRules: function(j) {\n g = j;\n }\n };\n});\n__d(\"substituteTokens\", [\"invariant\",\"JSBNG__Intl\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\"), h = b(\"JSBNG__Intl\");\n function i(j, k) {\n if (!k) {\n return j;\n }\n ;\n ;\n g(((typeof k === \"object\")));\n var l = ((((\"\\\\{([^}]+)\\\\}(\" + h.endsInPunct.punct_char_class)) + \"*)\")), m = new RegExp(l, \"g\"), n = [], o = j.replace(m, function(r, s, t) {\n var u = k[s];\n if (((u && ((typeof u === \"object\"))))) {\n n.push(u);\n return ((\"\\u0017\" + t));\n }\n ;\n ;\n return ((u + ((h.endsInPunct(u) ? \"\" : t))));\n }).split(\"\\u0017\").map(h.applyPhonologicalRules);\n if (((o.length === 1))) {\n return o[0];\n }\n ;\n ;\n var p = [o[0],];\n for (var q = 0; ((q < n.length)); q++) {\n p.push(n[q], o[((q + 1))]);\n ;\n };\n ;\n return p;\n };\n;\n e.exports = i;\n});\n__d(\"tx\", [\"substituteTokens\",], function(a, b, c, d, e, f) {\n var g = b(\"substituteTokens\");\n function h(i, j) {\n if (((typeof _string_table == \"undefined\"))) {\n return;\n }\n ;\n ;\n i = _string_table[i];\n return g(i, j);\n };\n;\n h._ = g;\n e.exports = h;\n});\n__d(\"DOM\", [\"function-extensions\",\"DOMQuery\",\"JSBNG__Event\",\"HTML\",\"UserAgent\",\"$\",\"copyProperties\",\"createArrayFrom\",\"isScalar\",\"tx\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"DOMQuery\"), h = b(\"JSBNG__Event\"), i = b(\"HTML\"), j = b(\"UserAgent\"), k = b(\"$\"), l = b(\"copyProperties\"), m = b(\"createArrayFrom\"), n = b(\"isScalar\"), o = b(\"tx\"), p = \"js_\", q = 0, r = {\n };\n l(r, g);\n l(r, {\n create: function(u, v, w) {\n var x = JSBNG__document.createElement(u);\n if (v) {\n r.setAttributes(x, v);\n }\n ;\n ;\n if (((w != null))) {\n r.setContent(x, w);\n }\n ;\n ;\n return x;\n },\n setAttributes: function(u, v) {\n if (v.type) {\n u.type = v.type;\n }\n ;\n ;\n {\n var fin34keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin34i = (0);\n var w;\n for (; (fin34i < fin34keys.length); (fin34i++)) {\n ((w) = (fin34keys[fin34i]));\n {\n var x = v[w], y = (/^on/i).test(w);\n if (((w == \"type\"))) {\n continue;\n }\n else if (((w == \"style\"))) {\n if (((typeof x == \"string\"))) {\n u.style.cssText = x;\n }\n else l(u.style, x);\n ;\n ;\n }\n else if (y) {\n h.listen(u, w.substr(2), x);\n }\n else if (((w in u))) {\n u[w] = x;\n }\n else if (u.setAttribute) {\n u.setAttribute(w, x);\n }\n \n \n \n \n ;\n ;\n };\n };\n };\n ;\n },\n prependContent: function(u, v) {\n return s(v, u, function(w) {\n ((u.firstChild ? u.insertBefore(w, u.firstChild) : u.appendChild(w)));\n });\n },\n insertAfter: function(u, v) {\n var w = u.parentNode;\n return s(v, w, function(x) {\n ((u.nextSibling ? w.insertBefore(x, u.nextSibling) : w.appendChild(x)));\n });\n },\n insertBefore: function(u, v) {\n var w = u.parentNode;\n return s(v, w, function(x) {\n w.insertBefore(x, u);\n });\n },\n setContent: function(u, v) {\n r.empty(u);\n return r.appendContent(u, v);\n },\n appendContent: function(u, v) {\n return s(v, u, function(w) {\n u.appendChild(w);\n });\n },\n replace: function(u, v) {\n var w = u.parentNode;\n return s(v, w, function(x) {\n w.replaceChild(x, u);\n });\n },\n remove: function(u) {\n u = k(u);\n if (u.parentNode) {\n u.parentNode.removeChild(u);\n }\n ;\n ;\n },\n empty: function(u) {\n u = k(u);\n while (u.firstChild) {\n r.remove(u.firstChild);\n ;\n };\n ;\n },\n getID: function(u) {\n var v = u.id;\n if (!v) {\n v = ((p + q++));\n u.id = v;\n }\n ;\n ;\n return v;\n }\n });\n function s(u, v, w) {\n u = i.replaceJSONWrapper(u);\n if (((((((u instanceof i)) && ((\"\" === v.innerHTML)))) && ((-1 === u.toString().indexOf(((\"\\u003Cscr\" + \"ipt\")))))))) {\n var x = j.ie();\n if (((!x || ((((x > 7)) && !g.isNodeOfType(v, [\"table\",\"tbody\",\"thead\",\"tfoot\",\"tr\",\"select\",\"fieldset\",])))))) {\n var y = ((x ? \"\\u003Cem style=\\\"display:none;\\\"\\u003E&nbsp;\\u003C/em\\u003E\" : \"\"));\n v.innerHTML = ((y + u));\n ((x && v.removeChild(v.firstChild)));\n return m(v.childNodes);\n }\n ;\n ;\n }\n else if (g.isTextNode(v)) {\n v.data = u;\n return [u,];\n }\n \n ;\n ;\n var z = JSBNG__document.createDocumentFragment(), aa, ba = [], ca = [];\n if (!Array.isArray(u)) {\n u = [u,];\n }\n ;\n ;\n for (var da = 0; ((da < u.length)); da++) {\n aa = i.replaceJSONWrapper(u[da]);\n if (((aa instanceof i))) {\n ca.push(aa.getAction());\n var ea = aa.getNodes();\n for (var fa = 0; ((fa < ea.length)); fa++) {\n ba.push(ea[fa]);\n z.appendChild(ea[fa]);\n };\n ;\n }\n else if (n(aa)) {\n var ga = JSBNG__document.createTextNode(aa);\n ba.push(ga);\n z.appendChild(ga);\n }\n else if (g.isNode(aa)) {\n ba.push(aa);\n z.appendChild(aa);\n }\n \n \n ;\n ;\n };\n ;\n w(z);\n ca.forEach(function(ha) {\n ha();\n });\n return ba;\n };\n;\n function t(u) {\n function v(w) {\n return r.create(\"div\", {\n }, w).innerHTML;\n };\n ;\n return function(w, x) {\n var y = {\n };\n if (x) {\n {\n var fin35keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin35i = (0);\n var z;\n for (; (fin35i < fin35keys.length); (fin35i++)) {\n ((z) = (fin35keys[fin35i]));\n {\n y[z] = v(x[z]);\n ;\n };\n };\n };\n }\n ;\n ;\n return i(u(w, y));\n };\n };\n;\n r.tx = t(o);\n r.tx._ = r._tx = t(o._);\n e.exports = r;\n});\n__d(\"LinkshimAsyncLink\", [\"$\",\"AsyncSignal\",\"DOM\",\"UserAgent\",], function(a, b, c, d, e, f) {\n var g = b(\"$\"), h = b(\"AsyncSignal\"), i = b(\"DOM\"), j = b(\"UserAgent\"), k = {\n swap: function(l, m) {\n var n = ((j.ie() <= 8));\n if (n) {\n var o = i.create(\"wbr\", {\n }, null);\n i.appendContent(l, o);\n }\n ;\n ;\n l.href = m;\n if (n) {\n i.remove(o);\n }\n ;\n ;\n },\n referrer_log: function(l, m, n) {\n var o = g(\"meta_referrer\");\n o.JSBNG__content = \"origin\";\n k.swap(l, m);\n (function() {\n o.JSBNG__content = \"default\";\n new h(n, {\n }).send();\n }).defer(100);\n }\n };\n e.exports = k;\n});\n__d(\"legacy:dom-asynclinkshim\", [\"LinkshimAsyncLink\",], function(a, b, c, d) {\n a.LinkshimAsyncLink = b(\"LinkshimAsyncLink\");\n}, 3);\n__d(\"CookieCore\", [], function(a, b, c, d, e, f) {\n var g = {\n set: function(h, i, j, k, l) {\n JSBNG__document.cookie = ((((((((((((((((((h + \"=\")) + encodeURIComponent(i))) + \"; \")) + ((j ? ((((\"expires=\" + (new JSBNG__Date(((JSBNG__Date.now() + j)))).toGMTString())) + \"; \")) : \"\")))) + \"path=\")) + ((k || \"/\")))) + \"; domain=\")) + window.JSBNG__location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\"))) + ((l ? \"; secure\" : \"\"))));\n },\n clear: function(h, i) {\n i = ((i || \"/\"));\n JSBNG__document.cookie = ((((((((((h + \"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; \")) + \"path=\")) + i)) + \"; domain=\")) + window.JSBNG__location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\")));\n },\n get: function(h) {\n var i = JSBNG__document.cookie.match(((((\"(?:^|;\\\\s*)\" + h)) + \"=(.*?)(?:;|$)\")));\n return ((i ? decodeURIComponent(i[1]) : i));\n }\n };\n e.exports = g;\n});\n__d(\"Cookie\", [\"CookieCore\",\"Env\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"CookieCore\"), h = b(\"Env\"), i = b(\"copyProperties\");\n function j(l, m, n, o, p) {\n if (((h.no_cookies && ((l != \"tpa\"))))) {\n return;\n }\n ;\n ;\n g.set(l, m, n, o, p);\n };\n;\n var k = i({\n }, g);\n k.set = j;\n e.exports = k;\n});\n__d(\"detect_broken_proxy_cache\", [\"AsyncSignal\",\"Cookie\",\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncSignal\"), h = b(\"Cookie\"), i = b(\"URI\");\n function j(k, l) {\n var m = h.get(l);\n if (((((((m != k)) && ((m != null)))) && ((k != \"0\"))))) {\n var n = {\n c: \"si_detect_broken_proxy_cache\",\n m: ((((((((l + \" \")) + k)) + \" \")) + m))\n }, o = new i(\"/common/scribe_endpoint.php\").getQualifiedURI().toString();\n new g(o, n).send();\n }\n ;\n ;\n };\n;\n e.exports = j;\n});\n__d(\"legacy:detect-broken-proxy-cache\", [\"detect_broken_proxy_cache\",], function(a, b, c, d) {\n a.detect_broken_proxy_cache = b(\"detect_broken_proxy_cache\");\n}, 3);\n__d(\"link_rel_preload\", [\"Bootloader\",\"Parent\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"Parent\");\n function i() {\n var j = /async(?:-post)?|dialog(?:-pipe|-post)?|theater|toggle/;\n JSBNG__document.documentElement.JSBNG__onmousedown = function(k) {\n k = ((k || window.JSBNG__event));\n var l = ((k.target || k.srcElement)), m = h.byTag(l, \"A\");\n if (!m) {\n return;\n }\n ;\n ;\n var n = m.getAttribute(\"ajaxify\"), o = m.href, p = ((n || o));\n if (((((n && o)) && !(/#$/).test(o)))) {\n var q = ((k.which && ((k.which != 1)))), r = ((((((k.altKey || k.ctrlKey)) || k.metaKey)) || k.shiftKey));\n if (((q || r))) {\n return;\n }\n ;\n ;\n }\n ;\n ;\n var s = ((m.rel && m.rel.match(j)));\n s = ((s && s[0]));\n switch (s) {\n case \"dialog\":\n \n case \"dialog-post\":\n g.loadModules([\"Dialog\",]);\n break;\n case \"dialog-pipe\":\n g.loadModules([\"AjaxPipeRequest\",\"Dialog\",]);\n break;\n case \"async\":\n \n case \"async-post\":\n g.loadModules([\"AsyncRequest\",]);\n break;\n case \"theater\":\n g.loadModules([\"PhotoSnowlift\",], function(t) {\n t.preload(p, m);\n });\n break;\n case \"toggle\":\n g.loadModules([\"Toggler\",]);\n break;\n };\n ;\n return;\n };\n };\n;\n e.exports = i;\n});\n__d(\"legacy:link-rel-preload\", [\"link_rel_preload\",], function(a, b, c, d) {\n a.link_rel_preload = b(\"link_rel_preload\");\n}, 3);\n__d(\"AsyncResponse\", [\"Bootloader\",\"Env\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"Env\"), i = b(\"copyProperties\"), j = b(\"tx\");\n function k(l, m) {\n i(this, {\n error: 0,\n errorSummary: null,\n errorDescription: null,\n JSBNG__onload: null,\n replay: false,\n payload: ((m || null)),\n request: ((l || null)),\n silentError: false,\n transientError: false,\n is_last: true\n });\n return this;\n };\n;\n i(k, {\n defaultErrorHandler: function(l) {\n try {\n if (!l.silentError) {\n k.verboseErrorHandler(l);\n }\n else l.logErrorByGroup(\"silent\", 10);\n ;\n ;\n } catch (m) {\n JSBNG__alert(l);\n };\n ;\n },\n verboseErrorHandler: function(l) {\n try {\n var n = l.getErrorSummary(), o = l.getErrorDescription();\n l.logErrorByGroup(\"popup\", 10);\n if (((l.silentError && ((o == \"\"))))) {\n o = \"Something went wrong. We're working on getting this fixed as soon as we can. You may be able to try again.\";\n }\n ;\n ;\n g.loadModules([\"Dialog\",], function(p) {\n new p().setTitle(n).setBody(o).setButtons([p.OK,]).setModal(true).setCausalElement(this.relativeTo).show();\n });\n } catch (m) {\n JSBNG__alert(l);\n };\n ;\n }\n });\n i(k.prototype, {\n getRequest: function() {\n return this.request;\n },\n getPayload: function() {\n return this.payload;\n },\n getError: function() {\n return this.error;\n },\n getErrorSummary: function() {\n return this.errorSummary;\n },\n setErrorSummary: function(l) {\n l = ((((l === undefined)) ? null : l));\n this.errorSummary = l;\n return this;\n },\n getErrorDescription: function() {\n return this.errorDescription;\n },\n getErrorIsWarning: function() {\n return this.errorIsWarning;\n },\n isTransient: function() {\n return this.transientError;\n },\n logError: function(l, m) {\n var n = a.ErrorSignal;\n if (n) {\n var o = {\n err_code: this.error,\n vip: ((h.vip || \"-\"))\n };\n if (m) {\n o.duration = m.duration;\n o.xfb_ip = m.xfb_ip;\n }\n ;\n ;\n var p = this.request.getURI();\n o.path = ((p || \"-\"));\n o.aid = this.request.userActionID;\n if (((p && ((p.indexOf(\"scribe_endpoint.php\") != -1))))) {\n l = \"async_error_double\";\n }\n ;\n ;\n n.sendErrorSignal(l, JSON.stringify(o));\n }\n ;\n ;\n },\n logErrorByGroup: function(l, m) {\n if (((Math.floor(((Math.JSBNG__random() * m))) == 0))) {\n if (((((this.error == 1357010)) || ((this.error < 15000))))) {\n this.logError(((\"async_error_oops_\" + l)));\n }\n else this.logError(((\"async_error_logic_\" + l)));\n ;\n }\n ;\n ;\n }\n });\n e.exports = k;\n});\n__d(\"HTTPErrors\", [\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"emptyFunction\"), h = {\n get: g,\n getAll: g\n };\n e.exports = h;\n});\n__d(\"bind\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n var j = Array.prototype.slice.call(arguments, 2);\n if (((typeof i != \"string\"))) {\n return Function.prototype.bind.apply(i, [h,].concat(j));\n }\n ;\n ;\n function k() {\n var l = j.concat(Array.prototype.slice.call(arguments));\n if (h[i]) {\n return h[i].apply(h, l);\n }\n ;\n ;\n };\n ;\n k.toString = function() {\n return ((\"bound lazily: \" + h[i]));\n };\n return k;\n };\n;\n e.exports = g;\n});\n__d(\"executeAfter\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n return function() {\n h.apply(((j || this)), arguments);\n i.apply(((j || this)), arguments);\n };\n };\n;\n e.exports = g;\n});\n__d(\"AsyncRequest\", [\"Arbiter\",\"AsyncResponse\",\"Bootloader\",\"CSS\",\"Env\",\"ErrorUtils\",\"JSBNG__Event\",\"HTTPErrors\",\"JSCC\",\"Parent\",\"Run\",\"ServerJS\",\"URI\",\"UserAgent\",\"XHR\",\"asyncCallback\",\"bind\",\"copyProperties\",\"emptyFunction\",\"evalGlobal\",\"ge\",\"goURI\",\"isEmpty\",\"ix\",\"tx\",\"executeAfter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"AsyncResponse\"), i = b(\"Bootloader\"), j = b(\"CSS\"), k = b(\"Env\"), l = b(\"ErrorUtils\"), m = b(\"JSBNG__Event\"), n = b(\"HTTPErrors\"), o = b(\"JSCC\"), p = b(\"Parent\"), q = b(\"Run\"), r = b(\"ServerJS\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"XHR\"), v = b(\"asyncCallback\"), w = b(\"bind\"), x = b(\"copyProperties\"), y = b(\"emptyFunction\"), z = b(\"evalGlobal\"), aa = b(\"ge\"), ba = b(\"goURI\"), ca = b(\"isEmpty\"), da = b(\"ix\"), ea = b(\"tx\"), fa = b(\"executeAfter\");\n function ga() {\n try {\n return !window.loaded;\n } catch (pa) {\n return true;\n };\n ;\n };\n;\n function ha(pa) {\n return ((((\"upload\" in pa)) && ((\"JSBNG__onprogress\" in pa.upload))));\n };\n;\n function ia(pa) {\n return ((\"withCredentials\" in pa));\n };\n;\n function ja(pa) {\n return ((pa.JSBNG__status in {\n 0: 1,\n 12029: 1,\n 12030: 1,\n 12031: 1,\n 12152: 1\n }));\n };\n;\n function ka(pa) {\n var qa = ((!pa || ((typeof (pa) === \"function\"))));\n return qa;\n };\n;\n var la = 2, ma = la;\n g.subscribe(\"page_transition\", function(pa, qa) {\n ma = qa.id;\n });\n function na(pa) {\n x(this, {\n transport: null,\n method: \"POST\",\n uri: \"\",\n timeout: null,\n timer: null,\n initialHandler: y,\n handler: null,\n uploadProgressHandler: null,\n errorHandler: null,\n transportErrorHandler: null,\n timeoutHandler: null,\n interceptHandler: y,\n finallyHandler: y,\n abortHandler: y,\n serverDialogCancelHandler: null,\n relativeTo: null,\n statusElement: null,\n statusClass: \"\",\n data: {\n },\n file: null,\n context: {\n },\n readOnly: false,\n writeRequiredParams: [],\n remainingRetries: 0,\n userActionID: \"-\"\n });\n this.option = {\n asynchronous: true,\n suppressErrorHandlerWarning: false,\n suppressEvaluation: false,\n suppressErrorAlerts: false,\n retries: 0,\n jsonp: false,\n bundle: false,\n useIframeTransport: false,\n handleErrorAfterUnload: false\n };\n this.errorHandler = h.defaultErrorHandler;\n this.transportErrorHandler = w(this, \"errorHandler\");\n if (((pa !== undefined))) {\n this.setURI(pa);\n }\n ;\n ;\n };\n;\n x(na, {\n bootstrap: function(pa, qa, ra) {\n var sa = \"GET\", ta = true, ua = {\n };\n if (((ra || ((qa && ((qa.rel == \"async-post\"))))))) {\n sa = \"POST\";\n ta = false;\n if (pa) {\n pa = s(pa);\n ua = pa.getQueryData();\n pa.setQueryData({\n });\n }\n ;\n ;\n }\n ;\n ;\n var va = ((p.byClass(qa, \"stat_elem\") || qa));\n if (((va && j.hasClass(va, \"async_saving\")))) {\n return false;\n }\n ;\n ;\n var wa = new na(pa).setReadOnly(ta).setMethod(sa).setData(ua).setNectarModuleDataSafe(qa).setRelativeTo(qa);\n if (qa) {\n wa.setHandler(function(ya) {\n m.fire(qa, \"success\", {\n response: ya\n });\n });\n wa.setErrorHandler(function(ya) {\n if (((m.fire(qa, \"error\", {\n response: ya\n }) !== false))) {\n h.defaultErrorHandler(ya);\n }\n ;\n ;\n });\n }\n ;\n ;\n if (va) {\n wa.setStatusElement(va);\n var xa = va.getAttribute(\"data-status-class\");\n ((xa && wa.setStatusClass(xa)));\n }\n ;\n ;\n if (qa) {\n m.fire(qa, \"AsyncRequest/send\", {\n request: wa\n });\n }\n ;\n ;\n wa.send();\n return false;\n },\n post: function(pa, qa) {\n new na(pa).setReadOnly(false).setMethod(\"POST\").setData(qa).send();\n return false;\n },\n getLastID: function() {\n return la;\n },\n suppressOnloadToken: {\n },\n _inflight: [],\n _inflightCount: 0,\n _inflightAdd: y,\n _inflightPurge: y,\n getInflightCount: function() {\n return this._inflightCount;\n },\n _inflightEnable: function() {\n if (t.ie()) {\n x(na, {\n _inflightAdd: function(pa) {\n this._inflight.push(pa);\n },\n _inflightPurge: function() {\n na._inflight = na._inflight.filter(function(pa) {\n return ((pa.transport && ((pa.transport.readyState < 4))));\n });\n }\n });\n q.onUnload(function() {\n na._inflight.forEach(function(pa) {\n if (((pa.transport && ((pa.transport.readyState < 4))))) {\n pa.transport.abort();\n delete pa.transport;\n }\n ;\n ;\n });\n });\n }\n ;\n ;\n }\n });\n x(na.prototype, {\n _dispatchResponse: function(pa) {\n this.clearStatusIndicator();\n if (!this._isRelevant()) {\n this._invokeErrorHandler(1010);\n return;\n }\n ;\n ;\n if (((this.initialHandler(pa) === false))) {\n return;\n }\n ;\n ;\n JSBNG__clearTimeout(this.timer);\n if (pa.jscc_map) {\n var qa = (eval)(pa.jscc_map);\n o.init(qa);\n }\n ;\n ;\n var ra;\n if (this.handler) {\n try {\n ra = this._shouldSuppressJS(this.handler(pa));\n } catch (sa) {\n ((pa.is_last && this.finallyHandler(pa)));\n throw sa;\n };\n }\n ;\n ;\n if (!ra) {\n this._handleJSResponse(pa);\n }\n ;\n ;\n ((pa.is_last && this.finallyHandler(pa)));\n },\n _shouldSuppressJS: function(pa) {\n return ((pa === na.suppressOnloadToken));\n },\n _handleJSResponse: function(pa) {\n var qa = this.getRelativeTo(), ra = pa.domops, sa = pa.jsmods, ta = new r().setRelativeTo(qa), ua;\n if (((sa && sa.require))) {\n ua = sa.require;\n delete sa.require;\n }\n ;\n ;\n if (sa) {\n ta.handle(sa);\n }\n ;\n ;\n var va = function(wa) {\n if (((ra && wa))) {\n wa.invoke(ra, qa);\n }\n ;\n ;\n if (ua) {\n ta.handle({\n require: ua\n });\n }\n ;\n ;\n this._handleJSRegisters(pa, \"JSBNG__onload\");\n if (this.lid) {\n g.inform(\"tti_ajax\", {\n s: this.lid,\n d: [((this._sendTimeStamp || 0)),((((this._sendTimeStamp && this._responseTime)) ? ((this._responseTime - this._sendTimeStamp)) : 0)),]\n }, g.BEHAVIOR_EVENT);\n }\n ;\n ;\n this._handleJSRegisters(pa, \"onafterload\");\n ta.cleanup();\n }.bind(this);\n if (ra) {\n i.loadModules([\"AsyncDOM\",], va);\n }\n else va(null);\n ;\n ;\n },\n _handleJSRegisters: function(pa, qa) {\n var ra = pa[qa];\n if (ra) {\n for (var sa = 0; ((sa < ra.length)); sa++) {\n l.applyWithGuard(new Function(ra[sa]), this);\n ;\n };\n }\n ;\n ;\n },\n invokeResponseHandler: function(pa) {\n if (((typeof (pa.redirect) !== \"undefined\"))) {\n (function() {\n this.setURI(pa.redirect).send();\n }).bind(this).defer();\n return;\n }\n ;\n ;\n if (((((!this.handler && !this.errorHandler)) && !this.transportErrorHandler))) {\n return;\n }\n ;\n ;\n var qa = pa.asyncResponse;\n if (((typeof (qa) !== \"undefined\"))) {\n if (!this._isRelevant()) {\n this._invokeErrorHandler(1010);\n return;\n }\n ;\n ;\n if (qa.inlinejs) {\n z(qa.inlinejs);\n }\n ;\n ;\n if (qa.lid) {\n this._responseTime = JSBNG__Date.now();\n if (a.CavalryLogger) {\n this.cavalry = a.CavalryLogger.getInstance(qa.lid);\n }\n ;\n ;\n this.lid = qa.lid;\n }\n ;\n ;\n if (qa.resource_map) {\n i.setResourceMap(qa.resource_map);\n }\n ;\n ;\n if (qa.bootloadable) {\n i.enableBootload(qa.bootloadable);\n }\n ;\n ;\n da.add(qa.ixData);\n var ra, sa;\n if (((qa.getError() && !qa.getErrorIsWarning()))) {\n var ta = this.errorHandler.bind(this);\n ra = l.guard(this._dispatchErrorResponse);\n ra = ra.bind(this, qa, ta);\n sa = \"error\";\n }\n else {\n ra = l.guard(this._dispatchResponse);\n ra = ra.bind(this, qa);\n sa = \"response\";\n }\n ;\n ;\n ra = fa(ra, function() {\n g.inform(((\"AsyncRequest/\" + sa)), {\n request: this,\n response: qa\n });\n }.bind(this));\n ra = ra.defer.bind(ra);\n var ua = false;\n if (this.preBootloadHandler) {\n ua = this.preBootloadHandler(qa);\n }\n ;\n ;\n qa.css = ((qa.css || []));\n qa.js = ((qa.js || []));\n i.loadResources(qa.css.concat(qa.js), ra, ua, this.getURI());\n }\n else if (((typeof (pa.transportError) !== \"undefined\"))) {\n if (this._xFbServer) {\n this._invokeErrorHandler(1008);\n }\n else this._invokeErrorHandler(1012);\n ;\n ;\n }\n else this._invokeErrorHandler(1007);\n \n ;\n ;\n },\n _invokeErrorHandler: function(pa) {\n var qa;\n if (((this.responseText === \"\"))) {\n qa = 1002;\n }\n else if (this._requestAborted) {\n qa = 1011;\n }\n else {\n try {\n qa = ((((pa || this.transport.JSBNG__status)) || 1004));\n } catch (ra) {\n qa = 1005;\n };\n ;\n if (((false === JSBNG__navigator.onLine))) {\n qa = 1006;\n }\n ;\n ;\n }\n \n ;\n ;\n var sa, ta, ua = true;\n if (((qa === 1006))) {\n ta = \"No Network Connection\";\n sa = \"Your browser appears to be offline. Please check your internet connection and try again.\";\n }\n else if (((((qa >= 300)) && ((qa <= 399))))) {\n ta = \"Redirection\";\n sa = \"Your access to Facebook was redirected or blocked by a third party at this time, please contact your ISP or reload. \";\n var va = this.transport.getResponseHeader(\"Location\");\n if (va) {\n ba(va, true);\n }\n ;\n ;\n ua = true;\n }\n else {\n ta = \"Oops\";\n sa = \"Something went wrong. We're working on getting this fixed as soon as we can. You may be able to try again.\";\n }\n \n ;\n ;\n var wa = new h(this);\n x(wa, {\n error: qa,\n errorSummary: ta,\n errorDescription: sa,\n silentError: ua\n });\n (function() {\n g.inform(\"AsyncRequest/error\", {\n request: this,\n response: wa\n });\n }).bind(this).defer();\n if (((ga() && !this.getOption(\"handleErrorAfterUnload\")))) {\n return;\n }\n ;\n ;\n if (!this.transportErrorHandler) {\n return;\n }\n ;\n ;\n var xa = this.transportErrorHandler.bind(this);\n !this.getOption(\"suppressErrorAlerts\");\n l.applyWithGuard(this._dispatchErrorResponse, this, [wa,xa,]);\n },\n _dispatchErrorResponse: function(pa, qa) {\n var ra = pa.getError();\n this.clearStatusIndicator();\n var sa = ((this._sendTimeStamp && {\n duration: ((JSBNG__Date.now() - this._sendTimeStamp)),\n xfb_ip: ((this._xFbServer || \"-\"))\n }));\n pa.logError(\"async_error\", sa);\n if (((!this._isRelevant() || ((ra === 1010))))) {\n this.abort();\n return;\n }\n ;\n ;\n if (((((((((ra == 1357008)) || ((ra == 1357007)))) || ((ra == 1442002)))) || ((ra == 1357001))))) {\n var ta = ((((ra == 1357008)) || ((ra == 1357007))));\n this.interceptHandler(pa);\n this._displayServerDialog(pa, ta);\n }\n else if (((this.initialHandler(pa) !== false))) {\n JSBNG__clearTimeout(this.timer);\n try {\n qa(pa);\n } catch (ua) {\n this.finallyHandler(pa);\n throw ua;\n };\n ;\n this.finallyHandler(pa);\n }\n \n ;\n ;\n },\n _displayServerDialog: function(pa, qa) {\n var ra = pa.getPayload();\n if (((ra.__dialog !== undefined))) {\n this._displayServerLegacyDialog(pa, qa);\n return;\n }\n ;\n ;\n var sa = ra.__dialogx;\n new r().handle(sa);\n i.loadModules([\"ConfirmationDialog\",], function(ta) {\n ta.setupConfirmation(pa, this);\n }.bind(this));\n },\n _displayServerLegacyDialog: function(pa, qa) {\n var ra = pa.getPayload().__dialog;\n i.loadModules([\"Dialog\",], function(sa) {\n var ta = new sa(ra);\n if (qa) {\n ta.setHandler(this._displayConfirmationHandler.bind(this, ta));\n }\n ;\n ;\n ta.setCancelHandler(function() {\n var ua = this.getServerDialogCancelHandler();\n try {\n ((ua && ua(pa)));\n } catch (va) {\n throw va;\n } finally {\n this.finallyHandler(pa);\n };\n ;\n }.bind(this)).setCausalElement(this.relativeTo).show();\n }.bind(this));\n },\n _displayConfirmationHandler: function(pa) {\n this.data.confirmed = 1;\n x(this.data, pa.getFormData());\n this.send();\n },\n setJSONPTransport: function(pa) {\n pa.subscribe(\"response\", this._handleJSONPResponse.bind(this));\n pa.subscribe(\"abort\", this._handleJSONPAbort.bind(this));\n this.transport = pa;\n },\n _handleJSONPResponse: function(pa, qa) {\n this.is_first = ((this.is_first === undefined));\n var ra = this._interpretResponse(qa);\n ra.asyncResponse.is_first = this.is_first;\n ra.asyncResponse.is_last = this.transport.hasFinished();\n this.invokeResponseHandler(ra);\n if (this.transport.hasFinished()) {\n delete this.transport;\n }\n ;\n ;\n },\n _handleJSONPAbort: function() {\n this._invokeErrorHandler();\n delete this.transport;\n },\n _handleXHRResponse: function(pa) {\n var qa;\n if (this.getOption(\"suppressEvaluation\")) {\n qa = {\n asyncResponse: new h(this, pa)\n };\n }\n else {\n var ra = pa.responseText, sa = null;\n try {\n var ua = this._unshieldResponseText(ra);\n try {\n var va = (eval)(((((\"(\" + ua)) + \")\")));\n qa = this._interpretResponse(va);\n } catch (ta) {\n sa = \"excep\";\n qa = {\n transportError: ((\"eval() failed on async to \" + this.getURI()))\n };\n };\n ;\n } catch (ta) {\n sa = \"empty\";\n qa = {\n transportError: ta.message\n };\n };\n ;\n if (sa) {\n var wa = a.ErrorSignal;\n ((wa && wa.sendErrorSignal(\"async_xport_resp\", [((((this._xFbServer ? \"1008_\" : \"1012_\")) + sa)),((this._xFbServer || \"-\")),this.getURI(),ra.length,ra.substr(0, 1600),].join(\":\"))));\n }\n ;\n ;\n }\n ;\n ;\n this.invokeResponseHandler(qa);\n },\n _unshieldResponseText: function(pa) {\n var qa = \"for (;;);\", ra = qa.length;\n if (((pa.length <= ra))) {\n throw new Error(((\"Response too short on async to \" + this.getURI())));\n }\n ;\n ;\n var sa = 0;\n while (((((pa.charAt(sa) == \" \")) || ((pa.charAt(sa) == \"\\u000a\"))))) {\n sa++;\n ;\n };\n ;\n ((sa && ((pa.substring(sa, ((sa + ra))) == qa))));\n return pa.substring(((sa + ra)));\n },\n _interpretResponse: function(pa) {\n if (pa.redirect) {\n return {\n redirect: pa.redirect\n };\n }\n ;\n ;\n var qa = new h(this);\n if (((pa.__ar != 1))) {\n qa.payload = pa;\n }\n else x(qa, pa);\n ;\n ;\n return {\n asyncResponse: qa\n };\n },\n _onStateChange: function() {\n try {\n if (((this.transport.readyState == 4))) {\n na._inflightCount--;\n na._inflightPurge();\n try {\n if (((((typeof (this.transport.getResponseHeader) !== \"undefined\")) && this.transport.getResponseHeader(\"X-FB-Debug\")))) {\n this._xFbServer = this.transport.getResponseHeader(\"X-FB-Debug\");\n }\n ;\n ;\n } catch (qa) {\n \n };\n ;\n if (((((this.transport.JSBNG__status >= 200)) && ((this.transport.JSBNG__status < 300))))) {\n na.lastSuccessTime = JSBNG__Date.now();\n this._handleXHRResponse(this.transport);\n }\n else if (((t.webkit() && ((typeof (this.transport.JSBNG__status) == \"undefined\"))))) {\n this._invokeErrorHandler(1002);\n }\n else if (((((k.retry_ajax_on_network_error && ja(this.transport))) && ((this.remainingRetries > 0))))) {\n this.remainingRetries--;\n delete this.transport;\n this.send(true);\n return;\n }\n else this._invokeErrorHandler();\n \n \n ;\n ;\n if (((this.getOption(\"asynchronous\") !== false))) {\n delete this.transport;\n }\n ;\n ;\n }\n ;\n ;\n } catch (pa) {\n if (ga()) {\n return;\n }\n ;\n ;\n delete this.transport;\n if (((this.remainingRetries > 0))) {\n this.remainingRetries--;\n this.send(true);\n }\n else {\n !this.getOption(\"suppressErrorAlerts\");\n var ra = a.ErrorSignal;\n ((ra && ra.sendErrorSignal(\"async_xport_resp\", [1007,((this._xFbServer || \"-\")),this.getURI(),pa.message,].join(\":\"))));\n this._invokeErrorHandler(1007);\n }\n ;\n ;\n };\n ;\n },\n _isMultiplexable: function() {\n if (((this.getOption(\"jsonp\") || this.getOption(\"useIframeTransport\")))) {\n return false;\n }\n ;\n ;\n if (!this.uri.isFacebookURI()) {\n return false;\n }\n ;\n ;\n if (!this.getOption(\"asynchronous\")) {\n return false;\n }\n ;\n ;\n return true;\n },\n handleResponse: function(pa) {\n var qa = this._interpretResponse(pa);\n this.invokeResponseHandler(qa);\n },\n setMethod: function(pa) {\n this.method = pa.toString().toUpperCase();\n return this;\n },\n getMethod: function() {\n return this.method;\n },\n setData: function(pa) {\n this.data = pa;\n return this;\n },\n _setDataHash: function() {\n if (((((this.method != \"POST\")) || this.data.phstamp))) {\n return;\n }\n ;\n ;\n if (((typeof this.data.fb_dtsg !== \"string\"))) {\n return;\n }\n ;\n ;\n var pa = s.implodeQuery(this.data).length, qa = \"\";\n for (var ra = 0; ((ra < this.data.fb_dtsg.length)); ra++) {\n qa += this.data.fb_dtsg.charCodeAt(ra);\n ;\n };\n ;\n this.data.phstamp = ((((\"1\" + qa)) + pa));\n },\n setRawData: function(pa) {\n this.rawData = pa;\n return this;\n },\n getData: function() {\n return this.data;\n },\n setContextData: function(pa, qa, ra) {\n ra = ((((ra === undefined)) ? true : ra));\n if (ra) {\n this.context[((\"_log_\" + pa))] = qa;\n }\n ;\n ;\n return this;\n },\n _setUserActionID: function() {\n var pa = ((((a.ArbiterMonitor && a.ArbiterMonitor.getUE())) || \"-\"));\n this.userActionID = ((((((((a.EagleEye && a.EagleEye.getSessionID())) || \"-\")) + \"/\")) + pa));\n },\n setURI: function(pa) {\n var qa = s(pa);\n if (((this.getOption(\"useIframeTransport\") && !qa.isFacebookURI()))) {\n return this;\n }\n ;\n ;\n if (((((((!this._allowCrossOrigin && !this.getOption(\"jsonp\"))) && !this.getOption(\"useIframeTransport\"))) && !qa.isSameOrigin()))) {\n return this;\n }\n ;\n ;\n this._setUserActionID();\n if (((!pa || qa.isEmpty()))) {\n var ra = a.ErrorSignal, sa = a.getErrorStack;\n if (((ra && sa))) {\n var ta = {\n err_code: 1013,\n vip: \"-\",\n duration: 0,\n xfb_ip: \"-\",\n path: window.JSBNG__location.href,\n aid: this.userActionID\n };\n ra.sendErrorSignal(\"async_error\", JSON.stringify(ta));\n ra.sendErrorSignal(\"async_xport_stack\", [1013,window.JSBNG__location.href,null,sa(),].join(\":\"));\n }\n ;\n ;\n return this;\n }\n ;\n ;\n this.uri = qa;\n return this;\n },\n getURI: function() {\n return this.uri.toString();\n },\n setInitialHandler: function(pa) {\n this.initialHandler = pa;\n return this;\n },\n setHandler: function(pa) {\n if (ka(pa)) {\n this.handler = pa;\n }\n ;\n ;\n return this;\n },\n getHandler: function() {\n return this.handler;\n },\n setUploadProgressHandler: function(pa) {\n if (ka(pa)) {\n this.uploadProgressHandler = pa;\n }\n ;\n ;\n return this;\n },\n setErrorHandler: function(pa) {\n if (ka(pa)) {\n this.errorHandler = pa;\n }\n ;\n ;\n return this;\n },\n setTransportErrorHandler: function(pa) {\n this.transportErrorHandler = pa;\n return this;\n },\n getErrorHandler: function() {\n return this.errorHandler;\n },\n getTransportErrorHandler: function() {\n return this.transportErrorHandler;\n },\n setTimeoutHandler: function(pa, qa) {\n if (ka(qa)) {\n this.timeout = pa;\n this.timeoutHandler = qa;\n }\n ;\n ;\n return this;\n },\n resetTimeout: function(pa) {\n if (!((this.timeoutHandler === null))) {\n if (((pa === null))) {\n this.timeout = null;\n JSBNG__clearTimeout(this.timer);\n this.timer = null;\n }\n else {\n var qa = !this._allowCrossPageTransition;\n this.timeout = pa;\n JSBNG__clearTimeout(this.timer);\n this.timer = this._handleTimeout.bind(this).defer(this.timeout, qa);\n }\n ;\n }\n ;\n ;\n return this;\n },\n _handleTimeout: function() {\n this.abandon();\n this.timeoutHandler(this);\n },\n setNewSerial: function() {\n this.id = ++la;\n return this;\n },\n setInterceptHandler: function(pa) {\n this.interceptHandler = pa;\n return this;\n },\n setFinallyHandler: function(pa) {\n this.finallyHandler = pa;\n return this;\n },\n setAbortHandler: function(pa) {\n this.abortHandler = pa;\n return this;\n },\n getServerDialogCancelHandler: function() {\n return this.serverDialogCancelHandler;\n },\n setServerDialogCancelHandler: function(pa) {\n this.serverDialogCancelHandler = pa;\n return this;\n },\n setPreBootloadHandler: function(pa) {\n this.preBootloadHandler = pa;\n return this;\n },\n setReadOnly: function(pa) {\n if (!((typeof (pa) != \"boolean\"))) {\n this.readOnly = pa;\n }\n ;\n ;\n return this;\n },\n setFBMLForm: function() {\n this.writeRequiredParams = [\"fb_sig\",];\n return this;\n },\n getReadOnly: function() {\n return this.readOnly;\n },\n setRelativeTo: function(pa) {\n this.relativeTo = pa;\n return this;\n },\n getRelativeTo: function() {\n return this.relativeTo;\n },\n setStatusClass: function(pa) {\n this.statusClass = pa;\n return this;\n },\n setStatusElement: function(pa) {\n this.statusElement = pa;\n return this;\n },\n getStatusElement: function() {\n return aa(this.statusElement);\n },\n _isRelevant: function() {\n if (this._allowCrossPageTransition) {\n return true;\n }\n ;\n ;\n if (!this.id) {\n return true;\n }\n ;\n ;\n return ((this.id > ma));\n },\n clearStatusIndicator: function() {\n var pa = this.getStatusElement();\n if (pa) {\n j.removeClass(pa, \"async_saving\");\n j.removeClass(pa, this.statusClass);\n }\n ;\n ;\n },\n addStatusIndicator: function() {\n var pa = this.getStatusElement();\n if (pa) {\n j.addClass(pa, \"async_saving\");\n j.addClass(pa, this.statusClass);\n }\n ;\n ;\n },\n specifiesWriteRequiredParams: function() {\n return this.writeRequiredParams.every(function(pa) {\n this.data[pa] = ((((this.data[pa] || k[pa])) || ((aa(pa) || {\n })).value));\n if (((this.data[pa] !== undefined))) {\n return true;\n }\n ;\n ;\n return false;\n }, this);\n },\n setOption: function(pa, qa) {\n if (((typeof (this.option[pa]) != \"undefined\"))) {\n this.option[pa] = qa;\n }\n ;\n ;\n return this;\n },\n getOption: function(pa) {\n ((typeof (this.option[pa]) == \"undefined\"));\n return this.option[pa];\n },\n abort: function() {\n if (this.transport) {\n var pa = this.getTransportErrorHandler();\n this.setOption(\"suppressErrorAlerts\", true);\n this.setTransportErrorHandler(y);\n this._requestAborted = true;\n this.transport.abort();\n this.setTransportErrorHandler(pa);\n }\n ;\n ;\n this.abortHandler();\n },\n abandon: function() {\n JSBNG__clearTimeout(this.timer);\n this.setOption(\"suppressErrorAlerts\", true).setHandler(y).setErrorHandler(y).setTransportErrorHandler(y);\n if (this.transport) {\n this._requestAborted = true;\n this.transport.abort();\n }\n ;\n ;\n },\n setNectarData: function(pa) {\n if (pa) {\n if (((this.data.nctr === undefined))) {\n this.data.nctr = {\n };\n }\n ;\n ;\n x(this.data.nctr, pa);\n }\n ;\n ;\n return this;\n },\n setNectarModuleDataSafe: function(pa) {\n if (this.setNectarModuleData) {\n this.setNectarModuleData(pa);\n }\n ;\n ;\n return this;\n },\n setNectarImpressionIdSafe: function() {\n if (this.setNectarImpressionId) {\n this.setNectarImpressionId();\n }\n ;\n ;\n return this;\n },\n setAllowCrossPageTransition: function(pa) {\n this._allowCrossPageTransition = !!pa;\n if (this.timer) {\n this.resetTimeout(this.timeout);\n }\n ;\n ;\n return this;\n },\n setAllowCrossOrigin: function(pa) {\n this._allowCrossOrigin = pa;\n return this;\n },\n send: function(pa) {\n pa = ((pa || false));\n if (!this.uri) {\n return false;\n }\n ;\n ;\n ((!this.errorHandler && !this.getOption(\"suppressErrorHandlerWarning\")));\n if (((this.getOption(\"jsonp\") && ((this.method != \"GET\"))))) {\n this.setMethod(\"GET\");\n }\n ;\n ;\n if (((this.getOption(\"useIframeTransport\") && ((this.method != \"GET\"))))) {\n this.setMethod(\"GET\");\n }\n ;\n ;\n ((((this.timeoutHandler !== null)) && ((this.getOption(\"jsonp\") || this.getOption(\"useIframeTransport\")))));\n if (!this.getReadOnly()) {\n this.specifiesWriteRequiredParams();\n if (((this.method != \"POST\"))) {\n return false;\n }\n ;\n ;\n }\n ;\n ;\n x(this.data, u.getAsyncParams(this.method));\n if (!ca(this.context)) {\n x(this.data, this.context);\n this.data.ajax_log = 1;\n }\n ;\n ;\n if (k.force_param) {\n x(this.data, k.force_param);\n }\n ;\n ;\n this._setUserActionID();\n if (((this.getOption(\"bundle\") && this._isMultiplexable()))) {\n oa.schedule(this);\n return true;\n }\n ;\n ;\n this.setNewSerial();\n if (!this.getOption(\"asynchronous\")) {\n this.uri.addQueryData({\n __s: 1\n });\n }\n ;\n ;\n this.finallyHandler = v(this.finallyHandler, \"final\");\n var qa, ra;\n if (((((this.method == \"GET\")) || this.rawData))) {\n qa = this.uri.addQueryData(this.data).toString();\n ra = ((this.rawData || \"\"));\n }\n else {\n qa = this.uri.toString();\n this._setDataHash();\n ra = s.implodeQuery(this.data);\n }\n ;\n ;\n if (this.transport) {\n return false;\n }\n ;\n ;\n if (((this.getOption(\"jsonp\") || this.getOption(\"useIframeTransport\")))) {\n d([\"JSONPTransport\",], function(va) {\n var wa = new va(((this.getOption(\"jsonp\") ? \"jsonp\" : \"div\")), this.uri);\n this.setJSONPTransport(wa);\n wa.send();\n }.bind(this));\n return true;\n }\n ;\n ;\n var sa = u.create();\n if (!sa) {\n return false;\n }\n ;\n ;\n sa.onreadystatechange = v(this._onStateChange.bind(this), \"xhr\");\n if (((this.uploadProgressHandler && ha(sa)))) {\n sa.upload.JSBNG__onprogress = this.uploadProgressHandler.bind(this);\n }\n ;\n ;\n if (!pa) {\n this.remainingRetries = this.getOption(\"retries\");\n }\n ;\n ;\n if (((a.ErrorSignal || a.ArbiterMonitor))) {\n this._sendTimeStamp = ((this._sendTimeStamp || JSBNG__Date.now()));\n }\n ;\n ;\n this.transport = sa;\n try {\n this.transport.open(this.method, qa, this.getOption(\"asynchronous\"));\n } catch (ta) {\n return false;\n };\n ;\n var ua = k.svn_rev;\n if (ua) {\n this.transport.setRequestHeader(\"X-SVN-Rev\", String(ua));\n }\n ;\n ;\n if (((((!this.uri.isSameOrigin() && !this.getOption(\"jsonp\"))) && !this.getOption(\"useIframeTransport\")))) {\n if (!ia(this.transport)) {\n return false;\n }\n ;\n ;\n if (this.uri.isFacebookURI()) {\n this.transport.withCredentials = true;\n }\n ;\n ;\n }\n ;\n ;\n if (((((this.method == \"POST\")) && !this.rawData))) {\n this.transport.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n }\n ;\n ;\n g.inform(\"AsyncRequest/send\", {\n request: this\n });\n this.addStatusIndicator();\n this.transport.send(ra);\n if (((this.timeout !== null))) {\n this.resetTimeout(this.timeout);\n }\n ;\n ;\n na._inflightCount++;\n na._inflightAdd(this);\n return true;\n }\n });\n function oa() {\n this._requests = [];\n };\n;\n x(oa, {\n multiplex: null,\n schedule: function(pa) {\n if (!oa.multiplex) {\n oa.multiplex = new oa();\n (function() {\n oa.multiplex.send();\n oa.multiplex = null;\n }).defer();\n }\n ;\n ;\n oa.multiplex.add(pa);\n }\n });\n x(oa.prototype, {\n add: function(pa) {\n this._requests.push(pa);\n },\n send: function() {\n var pa = this._requests;\n if (!pa.length) {\n return;\n }\n ;\n ;\n var qa;\n if (((pa.length === 1))) {\n qa = pa[0];\n }\n else {\n var ra = pa.map(function(sa) {\n return [sa.uri.getPath(),s.implodeQuery(sa.data),];\n });\n qa = new na(\"/ajax/proxy.php\").setAllowCrossPageTransition(true).setData({\n data: ra\n }).setHandler(this._handler.bind(this)).setTransportErrorHandler(this._transportErrorHandler.bind(this));\n }\n ;\n ;\n qa.setOption(\"bundle\", false).send();\n },\n _handler: function(pa) {\n var qa = pa.getPayload().responses;\n if (((qa.length !== this._requests.length))) {\n return;\n }\n ;\n ;\n for (var ra = 0; ((ra < this._requests.length)); ra++) {\n var sa = this._requests[ra], ta = sa.uri.getPath();\n sa.id = this.id;\n if (((qa[ra][0] !== ta))) {\n sa.invokeResponseHandler({\n transportError: ((\"Wrong response order in bundled request to \" + ta))\n });\n continue;\n }\n ;\n ;\n sa.handleResponse(qa[ra][1]);\n };\n ;\n },\n _transportErrorHandler: function(pa) {\n var qa = {\n transportError: pa.errorDescription\n }, ra = this._requests.map(function(sa) {\n sa.id = this.id;\n sa.invokeResponseHandler(qa);\n return sa.uri.getPath();\n });\n }\n });\n e.exports = na;\n});\n__d(\"legacy:async\", [\"AsyncRequest\",\"AsyncResponse\",], function(a, b, c, d) {\n a.AsyncRequest = b(\"AsyncRequest\");\n a.AsyncResponse = b(\"AsyncResponse\");\n}, 3);\n__d(\"debounce\", [], function(a, b, c, d, e, f) {\n function g(h, i, j, k) {\n if (((i == null))) {\n i = 100;\n }\n ;\n ;\n var l;\n function m(n, o, p, q, r) {\n m.reset();\n l = JSBNG__setTimeout(function() {\n h.call(j, n, o, p, q, r);\n }, i, !k);\n };\n ;\n m.reset = function() {\n JSBNG__clearTimeout(l);\n };\n return m;\n };\n;\n e.exports = g;\n});\n__d(\"LitestandViewportHeight\", [\"Arbiter\",\"CSS\",\"JSBNG__Event\",\"cx\",\"debounce\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"JSBNG__Event\"), j = b(\"cx\"), k = b(\"debounce\"), l = b(\"emptyFunction\"), m, n = {\n SMALL: \"small\",\n NORMAL: \"normal\",\n LARGE: \"large\",\n getSize: function() {\n if (((m === \"_4vcw\"))) {\n return n.SMALL;\n }\n ;\n ;\n if (((m === \"_4vcx\"))) {\n return n.LARGE;\n }\n ;\n ;\n return n.NORMAL;\n },\n init: function(o) {\n n.init = l;\n var p = k(function() {\n var q = JSBNG__document.documentElement, r = q.clientHeight, s;\n if (((r <= o.max_small_height))) {\n s = \"_4vcw\";\n }\n else if (((r >= o.min_large_height))) {\n s = \"_4vcx\";\n }\n \n ;\n ;\n if (((s !== m))) {\n ((m && h.removeClass(q, m)));\n m = s;\n ((m && h.addClass(q, m)));\n g.inform(\"ViewportSizeChange\");\n }\n ;\n ;\n });\n p();\n i.listen(window, \"resize\", p);\n }\n };\n e.exports = n;\n});\n__d(\"AsyncDOM\", [\"CSS\",\"DOM\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DOM\"), i = {\n invoke: function(j, k) {\n for (var l = 0; ((l < j.length)); ++l) {\n var m = j[l], n = m[0], o = m[1], p = m[2], q = m[3], r = ((((p && k)) || null));\n if (o) {\n r = h.scry(((r || JSBNG__document.documentElement)), o)[0];\n }\n ;\n ;\n switch (n) {\n case \"eval\":\n (new Function(q)).apply(r);\n break;\n case \"hide\":\n g.hide(r);\n break;\n case \"show\":\n g.show(r);\n break;\n case \"setContent\":\n h.setContent(r, q);\n break;\n case \"appendContent\":\n h.appendContent(r, q);\n break;\n case \"prependContent\":\n h.prependContent(r, q);\n break;\n case \"insertAfter\":\n h.insertAfter(r, q);\n break;\n case \"insertBefore\":\n h.insertBefore(r, q);\n break;\n case \"remove\":\n h.remove(r);\n break;\n case \"replace\":\n h.replace(r, q);\n break;\n default:\n \n };\n ;\n };\n ;\n }\n };\n e.exports = i;\n});\n__d(\"Live\", [\"Arbiter\",\"AsyncDOM\",\"AsyncSignal\",\"ChannelConstants\",\"DataStore\",\"DOM\",\"ServerJS\",\"createArrayFrom\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"AsyncDOM\"), i = b(\"AsyncSignal\"), j = b(\"ChannelConstants\"), k = b(\"DataStore\"), l = b(\"DOM\"), m = b(\"ServerJS\"), n = b(\"createArrayFrom\"), o = b(\"emptyFunction\");\n function p(r, s) {\n s = JSON.parse(JSON.stringify(s));\n new m().setRelativeTo(r).handle(s);\n };\n;\n var q = {\n logAll: false,\n startup: function() {\n q.startup = o;\n g.subscribe(j.getArbiterType(\"live\"), q.handleMessage.bind(q));\n },\n lookupLiveNode: function(r, s) {\n var t = l.scry(JSBNG__document.body, ((((((\".live_\" + r)) + \"_\")) + s)));\n t.forEach(function(u) {\n if (((k.get(u, \"seqnum\") === undefined))) {\n var v = JSON.parse(u.getAttribute(\"data-live\"));\n k.set(u, \"seqnum\", v.seq);\n }\n ;\n ;\n });\n return t;\n },\n handleMessage: function(r, s) {\n var t = s.obj, u = t.fbid, v = t.assoc, w = this.lookupLiveNode(u, v);\n if (!w) {\n return false;\n }\n ;\n ;\n w.forEach(function(x) {\n if (t.expseq) {\n var y = k.get(x, \"seqnum\"), z = k.get(x, \"message_buffer\");\n if (((z === undefined))) {\n z = {\n };\n k.set(x, \"message_buffer\", z);\n }\n ;\n ;\n var aa = {\n obj: t\n };\n z[t.expseq] = aa;\n if (((t.expseq != y))) {\n q.log(\"mismatch\", t.fbid, t.expseq, y);\n return false;\n }\n ;\n ;\n while (true) {\n y = k.get(x, \"seqnum\");\n var ba = z[y];\n if (ba) {\n h.invoke(ba.obj.updates, x);\n if (ba.obj.js) {\n p(x, ba.obj.js);\n }\n ;\n ;\n q.log(\"seqmatch\", t.fbid, \"exp\", t.expseq, \"cur\", y);\n delete z[y];\n }\n else break;\n ;\n ;\n };\n ;\n }\n else {\n h.invoke(t.updates, x);\n if (t.js) {\n p(x, t.js);\n }\n ;\n ;\n }\n ;\n ;\n });\n },\n log: function() {\n if (q.logAll) {\n var r = n(arguments).join(\":\");\n new i(\"/common/scribe_endpoint.php\", {\n c: \"live_sequence\",\n m: r\n }).send();\n }\n ;\n ;\n }\n };\n e.exports = q;\n});\n__d(\"legacy:live-js\", [\"Live\",], function(a, b, c, d) {\n a.Live = b(\"Live\");\n}, 3);\n__d(\"fbt\", [\"copyProperties\",\"substituteTokens\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"substituteTokens\"), i = function() {\n \n };\n i._ = function(j, k) {\n var l = {\n };\n for (var m = 0; ((m < k.length)); m++) {\n g(l, k[m][1]);\n ;\n };\n ;\n return h(j, l);\n };\n i.param = function(j, k) {\n var l = {\n };\n l[j] = k;\n return [null,l,];\n };\n e.exports = i;\n});\n__d(\"LiveTimer\", [\"CSS\",\"DOM\",\"UserAgent\",\"emptyFunction\",\"fbt\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"UserAgent\"), j = b(\"emptyFunction\"), k = b(\"fbt\"), l = b(\"tx\"), m = 1000, n = 60, o = 3600, p = 43200, q = 60, r = 20000, s = {\n restart: function(t) {\n this.serverTime = t;\n this.localStartTime = ((JSBNG__Date.now() / 1000));\n this.updateTimeStamps();\n },\n getApproximateServerTime: function() {\n return ((this.getServerTimeOffset() + JSBNG__Date.now()));\n },\n getServerTimeOffset: function() {\n return ((((this.serverTime - this.localStartTime)) * m));\n },\n updateTimeStamps: function() {\n s.timestamps = h.scry(JSBNG__document.body, \"abbr.livetimestamp\");\n s.startLoop(r);\n },\n addTimeStamps: function(t) {\n if (!t) {\n return;\n }\n ;\n ;\n s.timestamps = ((s.timestamps || []));\n if (((h.isNodeOfType(t, \"abbr\") && g.hasClass(t, \"livetimestamp\")))) {\n s.timestamps.push(t);\n }\n else {\n var u = h.scry(t, \"abbr.livetimestamp\");\n for (var v = 0; ((v < u.length)); ++v) {\n s.timestamps.push(u[v]);\n ;\n };\n ;\n }\n ;\n ;\n s.startLoop(0);\n },\n startLoop: function(t) {\n this.JSBNG__stop();\n this.timeout = JSBNG__setTimeout(function() {\n s.loop();\n }, t);\n },\n JSBNG__stop: function() {\n JSBNG__clearTimeout(this.timeout);\n },\n updateNode: function(t, u) {\n s.updateNode = ((((i.ie() < 7)) ? j : h.setContent));\n s.updateNode(t, u);\n },\n loop: function(t) {\n if (t) {\n s.updateTimeStamps();\n }\n ;\n ;\n var u = Math.floor(((s.getApproximateServerTime() / m))), v = -1;\n ((s.timestamps && s.timestamps.forEach(function(x) {\n var y = x.getAttribute(\"data-utime\"), z = x.getAttribute(\"data-shorten\"), aa = s.renderRelativeTime(u, y, z);\n if (aa.text) {\n s.updateNode(x, aa.text);\n }\n ;\n ;\n if (((((aa.next != -1)) && ((((aa.next < v)) || ((v == -1))))))) {\n v = aa.next;\n }\n ;\n ;\n })));\n if (((v != -1))) {\n var w = Math.max(r, ((v * m)));\n s.timeout = JSBNG__setTimeout(function() {\n s.loop();\n }, w);\n }\n ;\n ;\n },\n renderRelativeTime: function(t, u, v) {\n var w = {\n text: \"\",\n next: -1\n };\n if (((((t - u)) > (p)))) {\n return w;\n }\n ;\n ;\n var x = ((t - u)), y = Math.floor(((x / n))), z = Math.floor(((y / q)));\n if (((y < 1))) {\n if (v) {\n x = ((((x > 1)) ? x : 2));\n w.text = k._(\"{number} secs\", [k.param(\"number\", x),]);\n w.next = ((20 - ((x % 20))));\n }\n else {\n w.text = \"a few seconds ago\";\n w.next = ((n - ((x % n))));\n }\n ;\n ;\n return w;\n }\n ;\n ;\n if (((z < 1))) {\n if (((v && ((y == 1))))) {\n w.text = \"1 min\";\n }\n else if (v) {\n w.text = k._(\"{number} mins\", [k.param(\"number\", y),]);\n }\n else w.text = ((((y == 1)) ? \"about a minute ago\" : l._(\"{number} minutes ago\", {\n number: y\n })));\n \n ;\n ;\n w.next = ((n - ((x % n))));\n return w;\n }\n ;\n ;\n if (((z < 11))) {\n w.next = ((o - ((x % o))));\n }\n ;\n ;\n if (((v && ((z == 1))))) {\n w.text = \"1 hr\";\n }\n else if (v) {\n w.text = k._(\"{number} hrs\", [k.param(\"number\", z),]);\n }\n else w.text = ((((z == 1)) ? \"about an hour ago\" : l._(\"{number} hours ago\", {\n number: z\n })));\n \n ;\n ;\n return w;\n },\n renderRelativeTimeToServer: function(t) {\n return s.renderRelativeTime(Math.floor(((s.getApproximateServerTime() / m))), t);\n }\n };\n e.exports = s;\n});\n__d(\"legacy:live-timer\", [\"LiveTimer\",], function(a, b, c, d) {\n a.LiveTimer = b(\"LiveTimer\");\n}, 3);\n__d(\"JSLogger\", [], function(a, b, c, d, e, f) {\n var g = {\n MAX_HISTORY: 500,\n counts: {\n },\n categories: {\n },\n seq: 0,\n pageId: ((((Math.JSBNG__random() * 2147483648)) | 0)).toString(36),\n forwarding: false\n };\n function h(l) {\n if (((((l instanceof Error)) && a.ErrorUtils))) {\n l = a.ErrorUtils.normalizeError(l);\n }\n ;\n ;\n try {\n return JSON.stringify(l);\n } catch (m) {\n return \"{}\";\n };\n ;\n };\n;\n function i(l, JSBNG__event, m) {\n if (!g.counts[l]) {\n g.counts[l] = {\n };\n }\n ;\n ;\n if (!g.counts[l][JSBNG__event]) {\n g.counts[l][JSBNG__event] = 0;\n }\n ;\n ;\n m = ((((m == null)) ? 1 : Number(m)));\n g.counts[l][JSBNG__event] += ((isFinite(m) ? m : 0));\n };\n;\n g.logAction = function(JSBNG__event, l, m) {\n if (((this.type == \"bump\"))) {\n i(this.cat, JSBNG__event, l);\n }\n else if (((this.type == \"rate\"))) {\n ((l && i(this.cat, ((JSBNG__event + \"_n\")), m)));\n i(this.cat, ((JSBNG__event + \"_d\")), m);\n }\n else {\n var n = {\n cat: this.cat,\n type: this.type,\n JSBNG__event: JSBNG__event,\n data: ((((l != null)) ? h(l) : null)),\n date: JSBNG__Date.now(),\n seq: g.seq++\n };\n g.head = ((g.head ? (g.head.next = n) : (g.tail = n)));\n while (((((g.head.seq - g.tail.seq)) > g.MAX_HISTORY))) {\n g.tail = g.tail.next;\n ;\n };\n ;\n return n;\n }\n \n ;\n ;\n };\n function j(l) {\n if (!g.categories[l]) {\n g.categories[l] = {\n };\n var m = function(n) {\n var o = {\n cat: l,\n type: n\n };\n g.categories[l][n] = function() {\n g.forwarding = false;\n var p = null;\n if (((JSBNG__document.domain != \"facebook.com\"))) {\n return;\n }\n ;\n ;\n p = g.logAction;\n if (/^\\/+(dialogs|plugins?)\\//.test(JSBNG__location.pathname)) {\n g.forwarding = false;\n }\n else try {\n p = a.JSBNG__top.require(\"JSLogger\")._.logAction;\n g.forwarding = ((p !== g.logAction));\n } catch (q) {\n \n }\n ;\n ;\n ((p && p.apply(o, arguments)));\n };\n };\n m(\"debug\");\n m(\"log\");\n m(\"warn\");\n m(\"error\");\n m(\"bump\");\n m(\"rate\");\n }\n ;\n ;\n return g.categories[l];\n };\n;\n function k(l, m) {\n var n = [];\n for (var o = ((m || g.tail)); o; o = o.next) {\n if (((!l || l(o)))) {\n var p = {\n type: o.type,\n cat: o.cat,\n date: o.date,\n JSBNG__event: o.JSBNG__event,\n seq: o.seq\n };\n if (o.data) {\n p.data = JSON.parse(o.data);\n }\n ;\n ;\n n.push(p);\n }\n ;\n ;\n };\n ;\n return n;\n };\n;\n e.exports = {\n _: g,\n DUMP_EVENT: \"jslogger/dump\",\n create: j,\n getEntries: k\n };\n});\n__d(\"startsWith\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n var k = String(h);\n j = Math.min(Math.max(((j || 0)), 0), k.length);\n return ((k.lastIndexOf(String(i), j) === j));\n };\n;\n e.exports = g;\n});\n__d(\"getContextualParent\", [\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"ge\");\n function h(i, j) {\n var k, l = false;\n do {\n if (((i.getAttribute && (k = i.getAttribute(\"data-ownerid\"))))) {\n i = g(k);\n l = true;\n }\n else i = i.parentNode;\n ;\n ;\n } while (((((j && i)) && !l)));\n return i;\n };\n;\n e.exports = h;\n});\n__d(\"Nectar\", [\"Env\",\"startsWith\",\"getContextualParent\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\"), h = b(\"startsWith\"), i = b(\"getContextualParent\");\n function j(m) {\n if (!m.nctr) {\n m.nctr = {\n };\n }\n ;\n ;\n };\n;\n function k(m) {\n if (((g.module || !m))) {\n return g.module;\n }\n ;\n ;\n var n = {\n fbpage_fan_confirm: true,\n photos_snowlift: true\n }, o;\n while (((m && m.getAttributeNode))) {\n var p = ((m.getAttributeNode(\"id\") || {\n })).value;\n if (h(p, \"pagelet_\")) {\n return p;\n }\n ;\n ;\n if (((!o && n[p]))) {\n o = p;\n }\n ;\n ;\n m = i(m);\n };\n ;\n return o;\n };\n;\n var l = {\n addModuleData: function(m, n) {\n var o = k(n);\n if (o) {\n j(m);\n m.nctr._mod = o;\n }\n ;\n ;\n },\n addImpressionID: function(m) {\n if (g.impid) {\n j(m);\n m.nctr._impid = g.impid;\n }\n ;\n ;\n }\n };\n e.exports = l;\n});\n__d(\"BrowserSupport\", [\"DOM\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = {\n }, i = [\"Webkit\",\"Moz\",\"O\",\"ms\",], j = JSBNG__document.createElement(\"div\"), k = function(m) {\n if (((h[m] === undefined))) {\n var n = null;\n if (((m in j.style))) {\n n = m;\n }\n else for (var o = 0; ((o < i.length)); o++) {\n var p = ((((i[o] + m.charAt(0).toUpperCase())) + m.slice(1)));\n if (((p in j.style))) {\n n = p;\n break;\n }\n ;\n ;\n }\n ;\n ;\n h[m] = n;\n }\n ;\n ;\n return h[m];\n }, l = {\n hasCSSAnimations: function() {\n return !!k(\"animationName\");\n },\n hasCSSTransforms: function() {\n return !!k(\"transform\");\n },\n hasCSS3DTransforms: function() {\n return !!k(\"perspective\");\n },\n hasCSSTransitions: function() {\n return !!k(\"transition\");\n },\n hasPositionSticky: function() {\n if (((h.sticky === undefined))) {\n j.style.cssText = ((\"position:-webkit-sticky;position:-moz-sticky;\" + \"position:-o-sticky;position:-ms-sticky;position:sticky;\"));\n h.sticky = /sticky/.test(j.style.position);\n }\n ;\n ;\n return h.sticky;\n },\n hasPointerEvents: function() {\n if (((h.pointerEvents === undefined))) {\n if (!((\"pointerEvents\" in j.style))) {\n h.pointerEvents = false;\n }\n else {\n j.style.pointerEvents = \"auto\";\n j.style.pointerEvents = \"x\";\n g.appendContent(JSBNG__document.documentElement, j);\n h.pointerEvents = ((window.JSBNG__getComputedStyle && ((JSBNG__getComputedStyle(j, \"\").pointerEvents === \"auto\"))));\n g.remove(j);\n }\n ;\n }\n ;\n ;\n return h.pointerEvents;\n },\n getTransitionEndEvent: function() {\n if (((h.transitionEnd === undefined))) {\n var m = {\n transition: \"transitionend\",\n WebkitTransition: \"webkitTransitionEnd\",\n MozTransition: \"mozTransitionEnd\",\n OTransition: \"oTransitionEnd\"\n }, n = k(\"transition\");\n h.transitionEnd = ((m[n] || null));\n }\n ;\n ;\n return h.transitionEnd;\n }\n };\n e.exports = l;\n});\n__d(\"hyphenate\", [], function(a, b, c, d, e, f) {\n var g = /([A-Z])/g;\n function h(i) {\n return i.replace(g, \"-$1\").toLowerCase();\n };\n;\n e.exports = h;\n});\n__d(\"Style\", [\"DOMQuery\",\"UserAgent\",\"$\",\"copyProperties\",\"hyphenate\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMQuery\"), h = b(\"UserAgent\"), i = b(\"$\"), j = b(\"copyProperties\"), k = b(\"hyphenate\");\n function l(s) {\n return s.replace(/-(.)/g, function(t, u) {\n return u.toUpperCase();\n });\n };\n;\n function m(s, t) {\n var u = r.get(s, t);\n return ((((u === \"auto\")) || ((u === \"JSBNG__scroll\"))));\n };\n;\n var n = new RegExp(((((((((\"\\\\s*\" + \"([^\\\\s:]+)\")) + \"\\\\s*:\\\\s*\")) + \"([^;('\\\"]*(?:(?:\\\\([^)]*\\\\)|\\\"[^\\\"]*\\\"|'[^']*')[^;(?:'\\\"]*)*)\")) + \"(?:;|$)\")), \"g\");\n function o(s) {\n var t = {\n };\n s.replace(n, function(u, v, w) {\n t[v] = w;\n });\n return t;\n };\n;\n function p(s) {\n var t = \"\";\n {\n var fin36keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin36i = (0);\n var u;\n for (; (fin36i < fin36keys.length); (fin36i++)) {\n ((u) = (fin36keys[fin36i]));\n {\n if (s[u]) {\n t += ((((((u + \":\")) + s[u])) + \";\"));\n }\n ;\n ;\n };\n };\n };\n ;\n return t;\n };\n;\n function q(s) {\n return ((((s !== \"\")) ? ((((\"alpha(opacity=\" + ((s * 100)))) + \")\")) : \"\"));\n };\n;\n var r = {\n set: function(s, t, u) {\n switch (t) {\n case \"opacity\":\n if (((t === \"opacity\"))) {\n if (((h.ie() < 9))) {\n s.style.filter = q(u);\n }\n else s.style.opacity = u;\n ;\n }\n ;\n ;\n break;\n case \"float\":\n s.style.cssFloat = s.style.styleFloat = ((u || \"\"));\n break;\n default:\n try {\n s.style[l(t)] = u;\n } catch (v) {\n throw new Error(((((((((\"Style.set: \\\"\" + t)) + \"\\\" argument is invalid: \\\"\")) + u)) + \"\\\"\")));\n };\n ;\n };\n ;\n },\n apply: function(s, t) {\n var u;\n if (((((\"opacity\" in t)) && ((h.ie() < 9))))) {\n var v = t.opacity;\n t.filter = q(v);\n delete t.opacity;\n }\n ;\n ;\n var w = o(s.style.cssText);\n {\n var fin37keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin37i = (0);\n (0);\n for (; (fin37i < fin37keys.length); (fin37i++)) {\n ((u) = (fin37keys[fin37i]));\n {\n var x = t[u];\n delete t[u];\n u = k(u);\n {\n var fin38keys = ((window.top.JSBNG_Replay.forInKeys)((w))), fin38i = (0);\n var y;\n for (; (fin38i < fin38keys.length); (fin38i++)) {\n ((y) = (fin38keys[fin38i]));\n {\n if (((((y === u)) || ((y.indexOf(((u + \"-\"))) === 0))))) {\n delete w[y];\n }\n ;\n ;\n };\n };\n };\n ;\n t[u] = x;\n };\n };\n };\n ;\n t = j(w, t);\n s.style.cssText = p(t);\n if (((h.ie() < 9))) {\n {\n var fin39keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin39i = (0);\n (0);\n for (; (fin39i < fin39keys.length); (fin39i++)) {\n ((u) = (fin39keys[fin39i]));\n {\n if (!t[u]) {\n r.set(s, u, \"\");\n }\n ;\n ;\n };\n };\n };\n }\n ;\n ;\n },\n get: function(s, t) {\n s = i(s);\n var u;\n if (window.JSBNG__getComputedStyle) {\n u = window.JSBNG__getComputedStyle(s, null);\n if (u) {\n return u.getPropertyValue(k(t));\n }\n ;\n ;\n }\n ;\n ;\n if (((JSBNG__document.defaultView && JSBNG__document.defaultView.JSBNG__getComputedStyle))) {\n u = JSBNG__document.defaultView.JSBNG__getComputedStyle(s, null);\n if (u) {\n return u.getPropertyValue(k(t));\n }\n ;\n ;\n if (((t == \"display\"))) {\n return \"none\";\n }\n ;\n ;\n }\n ;\n ;\n t = l(t);\n if (s.currentStyle) {\n if (((t === \"float\"))) {\n return ((s.currentStyle.cssFloat || s.currentStyle.styleFloat));\n }\n ;\n ;\n return s.currentStyle[t];\n }\n ;\n ;\n return ((s.style && s.style[t]));\n },\n getFloat: function(s, t) {\n return parseFloat(r.get(s, t), 10);\n },\n getOpacity: function(s) {\n s = i(s);\n var t = r.get(s, \"filter\"), u = null;\n if (((t && (u = /(\\d+(?:\\.\\d+)?)/.exec(t))))) {\n return ((parseFloat(u.pop()) / 100));\n }\n else if (t = r.get(s, \"opacity\")) {\n return parseFloat(t);\n }\n else return 1\n \n ;\n },\n isFixed: function(s) {\n while (g.contains(JSBNG__document.body, s)) {\n if (((r.get(s, \"position\") === \"fixed\"))) {\n return true;\n }\n ;\n ;\n s = s.parentNode;\n };\n ;\n return false;\n },\n getScrollParent: function(s) {\n if (!s) {\n return null;\n }\n ;\n ;\n while (((s !== JSBNG__document.body))) {\n if (((((m(s, \"overflow\") || m(s, \"overflowY\"))) || m(s, \"overflowX\")))) {\n return s;\n }\n ;\n ;\n s = s.parentNode;\n };\n ;\n return window;\n }\n };\n e.exports = r;\n});\n__d(\"shield\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n if (((typeof h != \"function\"))) {\n throw new TypeError();\n }\n ;\n ;\n var j = Array.prototype.slice.call(arguments, 2);\n return function() {\n return h.apply(i, j);\n };\n };\n;\n e.exports = g;\n});\n__d(\"Animation\", [\"BrowserSupport\",\"CSS\",\"DataStore\",\"DOM\",\"Style\",\"shield\",], function(a, b, c, d, e, f) {\n var g = b(\"BrowserSupport\"), h = b(\"CSS\"), i = b(\"DataStore\"), j = b(\"DOM\"), k = b(\"Style\"), l = b(\"shield\"), m, n = [], o;\n function p(ga) {\n if (((a == this))) {\n return new p(ga);\n }\n else {\n this.obj = ga;\n this._reset_state();\n this.queue = [];\n this.last_attr = null;\n }\n ;\n ;\n };\n;\n function q(ga) {\n if (g.hasCSS3DTransforms()) {\n return t(ga);\n }\n else return s(ga)\n ;\n };\n;\n function r(ga) {\n return ga.toFixed(8);\n };\n;\n function s(ga) {\n ga = [ga[0],ga[4],ga[1],ga[5],ga[12],ga[13],];\n return ((((\"matrix(\" + ga.map(r).join(\",\"))) + \")\"));\n };\n;\n function t(ga) {\n return ((((\"matrix3d(\" + ga.map(r).join(\",\"))) + \")\"));\n };\n;\n function u(ga, ha) {\n if (!ga) {\n ga = [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,];\n }\n ;\n ;\n var ia = [];\n for (var ja = 0; ((ja < 4)); ja++) {\n for (var ka = 0; ((ka < 4)); ka++) {\n var la = 0;\n for (var ma = 0; ((ma < 4)); ma++) {\n la += ((ga[((((ja * 4)) + ma))] * ha[((((ma * 4)) + ka))]));\n ;\n };\n ;\n ia[((((ja * 4)) + ka))] = la;\n };\n ;\n };\n ;\n return ia;\n };\n;\n var v = 0;\n p.prototype._reset_state = function() {\n this.state = {\n attrs: {\n },\n duration: 500\n };\n };\n p.prototype.JSBNG__stop = function() {\n this._reset_state();\n this.queue = [];\n return this;\n };\n p.prototype._build_container = function() {\n if (this.container_div) {\n this._refresh_container();\n return;\n }\n ;\n ;\n if (((this.obj.firstChild && this.obj.firstChild.__animation_refs))) {\n this.container_div = this.obj.firstChild;\n this.container_div.__animation_refs++;\n this._refresh_container();\n return;\n }\n ;\n ;\n var ga = JSBNG__document.createElement(\"div\");\n ga.style.padding = \"0px\";\n ga.style.margin = \"0px\";\n ga.style.border = \"0px\";\n ga.__animation_refs = 1;\n var ha = this.obj.childNodes;\n while (ha.length) {\n ga.appendChild(ha[0]);\n ;\n };\n ;\n this.obj.appendChild(ga);\n this._orig_overflow = this.obj.style.overflow;\n this.obj.style.overflow = \"hidden\";\n this.container_div = ga;\n this._refresh_container();\n };\n p.prototype._refresh_container = function() {\n this.container_div.style.height = \"auto\";\n this.container_div.style.width = \"auto\";\n this.container_div.style.height = ((this.container_div.offsetHeight + \"px\"));\n this.container_div.style.width = ((this.container_div.offsetWidth + \"px\"));\n };\n p.prototype._destroy_container = function() {\n if (!this.container_div) {\n return;\n }\n ;\n ;\n if (!--this.container_div.__animation_refs) {\n var ga = this.container_div.childNodes;\n while (ga.length) {\n this.obj.appendChild(ga[0]);\n ;\n };\n ;\n this.obj.removeChild(this.container_div);\n }\n ;\n ;\n this.container_div = null;\n this.obj.style.overflow = this._orig_overflow;\n };\n var w = 1, x = 2, y = 3;\n p.prototype._attr = function(ga, ha, ia) {\n ga = ga.replace(/-[a-z]/gi, function(ka) {\n return ka.substring(1).toUpperCase();\n });\n var ja = false;\n switch (ga) {\n case \"background\":\n this._attr(\"backgroundColor\", ha, ia);\n return this;\n case \"backgroundColor\":\n \n case \"borderColor\":\n \n case \"color\":\n ha = ca(ha);\n break;\n case \"opacity\":\n ha = parseFloat(ha, 10);\n break;\n case \"height\":\n \n case \"width\":\n if (((ha == \"auto\"))) {\n ja = true;\n }\n else ha = parseInt(ha, 10);\n ;\n ;\n break;\n case \"borderWidth\":\n \n case \"lineHeight\":\n \n case \"fontSize\":\n \n case \"margin\":\n \n case \"marginBottom\":\n \n case \"marginLeft\":\n \n case \"marginRight\":\n \n case \"marginTop\":\n \n case \"padding\":\n \n case \"paddingBottom\":\n \n case \"paddingLeft\":\n \n case \"paddingRight\":\n \n case \"paddingTop\":\n \n case \"bottom\":\n \n case \"left\":\n \n case \"right\":\n \n case \"JSBNG__top\":\n \n case \"scrollTop\":\n \n case \"scrollLeft\":\n ha = parseInt(ha, 10);\n break;\n case \"rotateX\":\n \n case \"rotateY\":\n \n case \"rotateZ\":\n ha = ((((parseInt(ha, 10) * Math.PI)) / 180));\n break;\n case \"translateX\":\n \n case \"translateY\":\n \n case \"translateZ\":\n \n case \"scaleX\":\n \n case \"scaleY\":\n \n case \"scaleZ\":\n ha = parseFloat(ha, 10);\n break;\n case \"rotate3d\":\n this._attr(\"rotateX\", ha[0], ia);\n this._attr(\"rotateY\", ha[1], ia);\n this._attr(\"rotateZ\", ha[2], ia);\n return this;\n case \"rotate\":\n this._attr(\"rotateZ\", ha, ia);\n return this;\n case \"scale3d\":\n this._attr(\"scaleZ\", ha[2], ia);\n case \"scale\":\n this._attr(\"scaleX\", ha[0], ia);\n this._attr(\"scaleY\", ha[1], ia);\n return this;\n case \"translate3d\":\n this._attr(\"translateZ\", ha[2], ia);\n case \"translate\":\n this._attr(\"translateX\", ha[0], ia);\n this._attr(\"translateY\", ha[1], ia);\n return this;\n default:\n throw new Error(((ga + \" is not a supported attribute!\")));\n };\n ;\n if (((this.state.attrs[ga] === undefined))) {\n this.state.attrs[ga] = {\n };\n }\n ;\n ;\n if (ja) {\n this.state.attrs[ga].auto = true;\n }\n ;\n ;\n switch (ia) {\n case y:\n this.state.attrs[ga].start = ha;\n break;\n case x:\n this.state.attrs[ga].by = true;\n case w:\n this.state.attrs[ga].value = ha;\n break;\n };\n ;\n };\n function z(ga) {\n var ha = parseInt(k.get(ga, \"paddingLeft\"), 10), ia = parseInt(k.get(ga, \"paddingRight\"), 10), ja = parseInt(k.get(ga, \"borderLeftWidth\"), 10), ka = parseInt(k.get(ga, \"borderRightWidth\"), 10);\n return ((((((((ga.offsetWidth - ((ha ? ha : 0)))) - ((ia ? ia : 0)))) - ((ja ? ja : 0)))) - ((ka ? ka : 0))));\n };\n;\n function aa(ga) {\n var ha = parseInt(k.get(ga, \"paddingTop\"), 10), ia = parseInt(k.get(ga, \"paddingBottom\"), 10), ja = parseInt(k.get(ga, \"borderTopWidth\"), 10), ka = parseInt(k.get(ga, \"borderBottomWidth\"), 10);\n return ((((((((ga.offsetHeight - ((ha ? ha : 0)))) - ((ia ? ia : 0)))) - ((ja ? ja : 0)))) - ((ka ? ka : 0))));\n };\n;\n p.prototype.to = function(ga, ha) {\n if (((ha === undefined))) {\n this._attr(this.last_attr, ga, w);\n }\n else {\n this._attr(ga, ha, w);\n this.last_attr = ga;\n }\n ;\n ;\n return this;\n };\n p.prototype.by = function(ga, ha) {\n if (((ha === undefined))) {\n this._attr(this.last_attr, ga, x);\n }\n else {\n this._attr(ga, ha, x);\n this.last_attr = ga;\n }\n ;\n ;\n return this;\n };\n p.prototype.from = function(ga, ha) {\n if (((ha === undefined))) {\n this._attr(this.last_attr, ga, y);\n }\n else {\n this._attr(ga, ha, y);\n this.last_attr = ga;\n }\n ;\n ;\n return this;\n };\n p.prototype.duration = function(ga) {\n this.state.duration = ((ga ? ga : 0));\n return this;\n };\n p.prototype.checkpoint = function(ga, ha) {\n if (((ga === undefined))) {\n ga = 1;\n }\n ;\n ;\n this.state.checkpoint = ga;\n this.queue.push(this.state);\n this._reset_state();\n this.state.checkpointcb = ha;\n return this;\n };\n p.prototype.blind = function() {\n this.state.blind = true;\n return this;\n };\n p.prototype.hide = function() {\n this.state.hide = true;\n return this;\n };\n p.prototype.show = function() {\n this.state.show = true;\n return this;\n };\n p.prototype.ease = function(ga) {\n this.state.ease = ga;\n return this;\n };\n p.prototype.go = function() {\n var ga = JSBNG__Date.now();\n this.queue.push(this.state);\n for (var ha = 0; ((ha < this.queue.length)); ha++) {\n this.queue[ha].start = ((ga - v));\n if (this.queue[ha].checkpoint) {\n ga += ((this.queue[ha].checkpoint * this.queue[ha].duration));\n }\n ;\n ;\n };\n ;\n da(this);\n return this;\n };\n p.prototype._show = function() {\n h.show(this.obj);\n };\n p.prototype._hide = function() {\n h.hide(this.obj);\n };\n p.prototype._frame = function(ga) {\n var ha = true, ia = false, ja;\n function ka(db) {\n return ((JSBNG__document.documentElement[db] || JSBNG__document.body[db]));\n };\n ;\n for (var la = 0; ((la < this.queue.length)); la++) {\n var ma = this.queue[la];\n if (((ma.start > ga))) {\n ha = false;\n continue;\n }\n ;\n ;\n if (ma.checkpointcb) {\n this._callback(ma.checkpointcb, ((ga - ma.start)));\n ma.checkpointcb = null;\n }\n ;\n ;\n if (((ma.started === undefined))) {\n if (ma.show) {\n this._show();\n }\n ;\n ;\n {\n var fin40keys = ((window.top.JSBNG_Replay.forInKeys)((ma.attrs))), fin40i = (0);\n var na;\n for (; (fin40i < fin40keys.length); (fin40i++)) {\n ((na) = (fin40keys[fin40i]));\n {\n if (((ma.attrs[na].start !== undefined))) {\n continue;\n }\n ;\n ;\n switch (na) {\n case \"backgroundColor\":\n \n case \"borderColor\":\n \n case \"color\":\n ja = ca(k.get(this.obj, ((((na == \"borderColor\")) ? \"borderLeftColor\" : na))));\n if (ma.attrs[na].by) {\n ma.attrs[na].value[0] = Math.min(255, Math.max(0, ((ma.attrs[na].value[0] + ja[0]))));\n ma.attrs[na].value[1] = Math.min(255, Math.max(0, ((ma.attrs[na].value[1] + ja[1]))));\n ma.attrs[na].value[2] = Math.min(255, Math.max(0, ((ma.attrs[na].value[2] + ja[2]))));\n }\n ;\n ;\n break;\n case \"opacity\":\n ja = k.getOpacity(this.obj);\n if (ma.attrs[na].by) {\n ma.attrs[na].value = Math.min(1, Math.max(0, ((ma.attrs[na].value + ja))));\n }\n ;\n ;\n break;\n case \"height\":\n ja = aa(this.obj);\n if (ma.attrs[na].by) {\n ma.attrs[na].value += ja;\n }\n ;\n ;\n break;\n case \"width\":\n ja = z(this.obj);\n if (ma.attrs[na].by) {\n ma.attrs[na].value += ja;\n }\n ;\n ;\n break;\n case \"scrollLeft\":\n \n case \"scrollTop\":\n ja = ((((this.obj === JSBNG__document.body)) ? ka(na) : this.obj[na]));\n if (ma.attrs[na].by) {\n ma.attrs[na].value += ja;\n }\n ;\n ;\n ma[((\"last\" + na))] = ja;\n break;\n case \"rotateX\":\n \n case \"rotateY\":\n \n case \"rotateZ\":\n \n case \"translateX\":\n \n case \"translateY\":\n \n case \"translateZ\":\n ja = i.get(this.obj, na, 0);\n if (ma.attrs[na].by) {\n ma.attrs[na].value += ja;\n }\n ;\n ;\n break;\n case \"scaleX\":\n \n case \"scaleY\":\n \n case \"scaleZ\":\n ja = i.get(this.obj, na, 1);\n if (ma.attrs[na].by) {\n ma.attrs[na].value += ja;\n }\n ;\n ;\n break;\n default:\n ja = ((parseInt(k.get(this.obj, na), 10) || 0));\n if (ma.attrs[na].by) {\n ma.attrs[na].value += ja;\n }\n ;\n ;\n break;\n };\n ;\n ma.attrs[na].start = ja;\n };\n };\n };\n ;\n if (((((ma.attrs.height && ma.attrs.height.auto)) || ((ma.attrs.width && ma.attrs.width.auto))))) {\n this._destroy_container();\n {\n var fin41keys = ((window.top.JSBNG_Replay.forInKeys)(({\n height: 1,\n width: 1,\n fontSize: 1,\n borderLeftWidth: 1,\n borderRightWidth: 1,\n borderTopWidth: 1,\n borderBottomWidth: 1,\n paddingLeft: 1,\n paddingRight: 1,\n paddingTop: 1,\n paddingBottom: 1\n }))), fin41i = (0);\n var na;\n for (; (fin41i < fin41keys.length); (fin41i++)) {\n ((na) = (fin41keys[fin41i]));\n {\n if (ma.attrs[na]) {\n this.obj.style[na] = ((ma.attrs[na].value + ((((typeof ma.attrs[na].value == \"number\")) ? \"px\" : \"\"))));\n }\n ;\n ;\n };\n };\n };\n ;\n if (((ma.attrs.height && ma.attrs.height.auto))) {\n ma.attrs.height.value = aa(this.obj);\n }\n ;\n ;\n if (((ma.attrs.width && ma.attrs.width.auto))) {\n ma.attrs.width.value = z(this.obj);\n }\n ;\n ;\n }\n ;\n ;\n ma.started = true;\n if (ma.blind) {\n this._build_container();\n }\n ;\n ;\n }\n ;\n ;\n var oa = ((((ga - ma.start)) / ma.duration));\n if (((oa >= 1))) {\n oa = 1;\n if (ma.hide) {\n this._hide();\n }\n ;\n ;\n }\n else ha = false;\n ;\n ;\n var pa = ((ma.ease ? ma.ease(oa) : oa));\n if (((((!ia && ((oa != 1)))) && ma.blind))) {\n ia = true;\n }\n ;\n ;\n {\n var fin42keys = ((window.top.JSBNG_Replay.forInKeys)((ma.attrs))), fin42i = (0);\n var na;\n for (; (fin42i < fin42keys.length); (fin42i++)) {\n ((na) = (fin42keys[fin42i]));\n {\n switch (na) {\n case \"backgroundColor\":\n \n case \"borderColor\":\n \n case \"color\":\n if (((ma.attrs[na].start[3] != ma.attrs[na].value[3]))) {\n this.obj.style[na] = ((((((((((((((((\"rgba(\" + ba(pa, ma.attrs[na].start[0], ma.attrs[na].value[0], true))) + \",\")) + ba(pa, ma.attrs[na].start[1], ma.attrs[na].value[1], true))) + \",\")) + ba(pa, ma.attrs[na].start[2], ma.attrs[na].value[2], true))) + \",\")) + ba(pa, ma.attrs[na].start[3], ma.attrs[na].value[3], false))) + \")\"));\n }\n else this.obj.style[na] = ((((((((((((\"rgb(\" + ba(pa, ma.attrs[na].start[0], ma.attrs[na].value[0], true))) + \",\")) + ba(pa, ma.attrs[na].start[1], ma.attrs[na].value[1], true))) + \",\")) + ba(pa, ma.attrs[na].start[2], ma.attrs[na].value[2], true))) + \")\"));\n ;\n ;\n break;\n case \"opacity\":\n k.set(this.obj, \"opacity\", ba(pa, ma.attrs[na].start, ma.attrs[na].value));\n break;\n case \"height\":\n \n case \"width\":\n this.obj.style[na] = ((((((pa == 1)) && ma.attrs[na].auto)) ? \"auto\" : ((ba(pa, ma.attrs[na].start, ma.attrs[na].value, true) + \"px\"))));\n break;\n case \"scrollLeft\":\n \n case \"scrollTop\":\n var qa = ((this.obj === JSBNG__document.body));\n ja = ((qa ? ka(na) : this.obj[na]));\n if (((ma[((\"last\" + na))] !== ja))) {\n delete ma.attrs[na];\n }\n else {\n var ra = ba(pa, ma.attrs[na].start, ma.attrs[na].value, true);\n if (!qa) {\n ra = this.obj[na] = ra;\n }\n else {\n if (((na == \"scrollLeft\"))) {\n a.JSBNG__scrollTo(ra, ka(\"scrollTop\"));\n }\n else a.JSBNG__scrollTo(ka(\"scrollLeft\"), ra);\n ;\n ;\n ra = ka(na);\n }\n ;\n ;\n ma[((\"last\" + na))] = ra;\n }\n ;\n ;\n break;\n case \"translateX\":\n \n case \"translateY\":\n \n case \"translateZ\":\n \n case \"rotateX\":\n \n case \"rotateY\":\n \n case \"rotateZ\":\n \n case \"scaleX\":\n \n case \"scaleY\":\n \n case \"scaleZ\":\n i.set(this.obj, na, ba(pa, ma.attrs[na].start, ma.attrs[na].value, false));\n break;\n default:\n this.obj.style[na] = ((ba(pa, ma.attrs[na].start, ma.attrs[na].value, true) + \"px\"));\n break;\n };\n ;\n };\n };\n };\n ;\n var sa = null, ta = i.get(this.obj, \"translateX\", 0), ua = i.get(this.obj, \"translateY\", 0), va = i.get(this.obj, \"translateZ\", 0);\n if (((((ta || ua)) || va))) {\n sa = u(sa, [1,0,0,0,0,1,0,0,0,0,1,0,ta,ua,va,1,]);\n }\n ;\n ;\n var wa = i.get(this.obj, \"scaleX\", 1), xa = i.get(this.obj, \"scaleY\", 1), ya = i.get(this.obj, \"scaleZ\", 1);\n if (((((((wa - 1)) || ((xa - 1)))) || ((ya - 1))))) {\n sa = u(sa, [wa,0,0,0,0,xa,0,0,0,0,ya,0,0,0,0,1,]);\n }\n ;\n ;\n var za = i.get(this.obj, \"rotateX\", 0);\n if (za) {\n sa = u(sa, [1,0,0,0,0,Math.cos(za),Math.sin(-za),0,0,Math.sin(za),Math.cos(za),0,0,0,0,1,]);\n }\n ;\n ;\n var ab = i.get(this.obj, \"rotateY\", 0);\n if (ab) {\n sa = u(sa, [Math.cos(ab),0,Math.sin(ab),0,0,1,0,0,Math.sin(-ab),0,Math.cos(ab),0,0,0,0,1,]);\n }\n ;\n ;\n var bb = i.get(this.obj, \"rotateZ\", 0);\n if (bb) {\n sa = u(sa, [Math.cos(bb),Math.sin(-bb),0,0,Math.sin(bb),Math.cos(bb),0,0,0,0,1,0,0,0,0,1,]);\n }\n ;\n ;\n if (sa) {\n var cb = q(sa);\n k.apply(this.obj, {\n \"-webkit-transform\": cb,\n \"-moz-transform\": cb,\n \"-ms-transform\": cb,\n \"-o-transform\": cb,\n transform: cb\n });\n }\n else if (ha) {\n k.apply(this.obj, {\n \"-webkit-transform\": null,\n \"-moz-transform\": null,\n \"-ms-transform\": null,\n \"-o-transform\": null,\n transform: null\n });\n }\n \n ;\n ;\n if (((oa == 1))) {\n this.queue.splice(la--, 1);\n this._callback(ma.ondone, ((((ga - ma.start)) - ma.duration)));\n }\n ;\n ;\n };\n ;\n if (((!ia && this.container_div))) {\n this._destroy_container();\n }\n ;\n ;\n return !ha;\n };\n p.prototype.ondone = function(ga) {\n this.state.ondone = ga;\n return this;\n };\n p.prototype._callback = function(ga, ha) {\n if (ga) {\n v = ha;\n ga.call(this);\n v = 0;\n }\n ;\n ;\n };\n function ba(ga, ha, ia, ja) {\n return ((ja ? parseInt : parseFloat))(((((((ia - ha)) * ga)) + ha)), 10);\n };\n;\n function ca(ga) {\n var ha = /^#([a-f0-9]{1,2})([a-f0-9]{1,2})([a-f0-9]{1,2})$/i.exec(ga);\n if (ha) {\n return [parseInt(((((ha[1].length == 1)) ? ((ha[1] + ha[1])) : ha[1])), 16),parseInt(((((ha[2].length == 1)) ? ((ha[2] + ha[2])) : ha[2])), 16),parseInt(((((ha[3].length == 1)) ? ((ha[3] + ha[3])) : ha[3])), 16),1,];\n }\n else {\n var ia = /^rgba? *\\(([0-9]+), *([0-9]+), *([0-9]+)(?:, *([0-9\\.]+))?\\)$/.exec(ga);\n if (ia) {\n return [parseInt(ia[1], 10),parseInt(ia[2], 10),parseInt(ia[3], 10),((ia[4] ? parseFloat(ia[4]) : 1)),];\n }\n else if (((ga == \"transparent\"))) {\n return [255,255,255,0,];\n }\n else throw \"Named color attributes are not supported.\"\n \n ;\n }\n ;\n ;\n };\n;\n function da(ga) {\n n.push(ga);\n if (((n.length === 1))) {\n if (!m) {\n var ha = ((((a.JSBNG__requestAnimationFrame || a.JSBNG__webkitRequestAnimationFrame)) || a.JSBNG__mozRequestAnimationFrame));\n if (ha) {\n m = ha.bind(a);\n }\n ;\n ;\n }\n ;\n ;\n if (m) {\n m(fa);\n }\n else o = JSBNG__setInterval(fa, 20, false);\n ;\n ;\n }\n ;\n ;\n if (m) {\n ea();\n }\n ;\n ;\n fa(JSBNG__Date.now(), true);\n };\n;\n function ea() {\n if (!m) {\n throw new Error(\"Ending timer only valid with requestAnimationFrame\");\n }\n ;\n ;\n var ga = 0;\n for (var ha = 0; ((ha < n.length)); ha++) {\n var ia = n[ha];\n for (var ja = 0; ((ja < ia.queue.length)); ja++) {\n var ka = ((ia.queue[ja].start + ia.queue[ja].duration));\n if (((ka > ga))) {\n ga = ka;\n }\n ;\n ;\n };\n ;\n };\n ;\n if (o) {\n JSBNG__clearTimeout(o);\n o = null;\n }\n ;\n ;\n var la = JSBNG__Date.now();\n if (((ga > la))) {\n o = JSBNG__setTimeout(l(fa), ((ga - la)), false);\n }\n ;\n ;\n };\n;\n function fa(ga, ha) {\n var ia = JSBNG__Date.now();\n for (var ja = ((((ha === true)) ? ((n.length - 1)) : 0)); ((ja < n.length)); ja++) {\n try {\n if (!n[ja]._frame(ia)) {\n n.splice(ja--, 1);\n }\n ;\n ;\n } catch (ka) {\n n.splice(ja--, 1);\n };\n ;\n };\n ;\n if (((n.length === 0))) {\n if (o) {\n if (m) {\n JSBNG__clearTimeout(o);\n }\n else JSBNG__clearInterval(o);\n ;\n ;\n o = null;\n }\n ;\n ;\n }\n else if (m) {\n m(fa);\n }\n \n ;\n ;\n };\n;\n p.ease = {\n };\n p.ease.begin = function(ga) {\n return ((Math.sin(((((Math.PI / 2)) * ((ga - 1))))) + 1));\n };\n p.ease.end = function(ga) {\n return Math.sin(((((80962 * Math.PI)) * ga)));\n };\n p.ease.both = function(ga) {\n return ((((81011 * Math.sin(((Math.PI * ((ga - 81035))))))) + 81040));\n };\n p.prependInsert = function(ga, ha) {\n p.insert(ga, ha, j.prependContent);\n };\n p.appendInsert = function(ga, ha) {\n p.insert(ga, ha, j.appendContent);\n };\n p.insert = function(ga, ha, ia) {\n k.set(ha, \"opacity\", 0);\n ia(ga, ha);\n new p(ha).from(\"opacity\", 0).to(\"opacity\", 1).duration(400).go();\n };\n e.exports = p;\n});\n__d(\"BootloadedReact\", [\"Bootloader\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = function(j) {\n g.loadModules([\"React\",], j);\n }, i = {\n isValidComponent: function(j) {\n return ((((j && ((typeof j.mountComponentIntoNode === \"function\")))) && ((typeof j.receiveProps === \"function\"))));\n },\n initializeTouchEvents: function(j, k) {\n h(function(l) {\n l.initializeTouchEvents(j);\n ((k && k()));\n });\n },\n createClass: function(j, k) {\n h(function(l) {\n var m = l.createClass(j);\n ((k && k(m)));\n });\n },\n renderComponent: function(j, k, l) {\n h(function(m) {\n var n = m.renderComponent(j, k);\n ((l && l(n)));\n });\n },\n unmountAndReleaseReactRootNode: function(j, k) {\n h(function(l) {\n l.unmountAndReleaseReactRootNode(j);\n ((k && k()));\n });\n }\n };\n e.exports = i;\n});\n__d(\"ContextualThing\", [\"DOM\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"ge\"), i = {\n register: function(j, k) {\n j.setAttribute(\"data-ownerid\", g.getID(k));\n },\n containsIncludingLayers: function(j, k) {\n while (k) {\n if (g.contains(j, k)) {\n return true;\n }\n ;\n ;\n k = i.getContext(k);\n };\n ;\n return false;\n },\n getContext: function(j) {\n var k;\n while (j) {\n if (((j.getAttribute && (k = j.getAttribute(\"data-ownerid\"))))) {\n return h(k);\n }\n ;\n ;\n j = j.parentNode;\n };\n ;\n return null;\n }\n };\n e.exports = i;\n});\n__d(\"DOMControl\", [\"DataStore\",\"$\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"DataStore\"), h = b(\"$\"), i = b(\"copyProperties\");\n function j(k) {\n this.root = h(k);\n this.updating = false;\n g.set(k, \"DOMControl\", this);\n };\n;\n i(j.prototype, {\n getRoot: function() {\n return this.root;\n },\n beginUpdate: function() {\n if (this.updating) {\n return false;\n }\n ;\n ;\n this.updating = true;\n return true;\n },\n endUpdate: function() {\n this.updating = false;\n },\n update: function(k) {\n if (!this.beginUpdate()) {\n return this;\n }\n ;\n ;\n this.onupdate(k);\n this.endUpdate();\n },\n onupdate: function(k) {\n \n }\n });\n j.getInstance = function(k) {\n return g.get(k, \"DOMControl\");\n };\n e.exports = j;\n});\n__d(\"DOMDimensions\", [\"DOMQuery\",\"Style\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMQuery\"), h = b(\"Style\"), i = {\n getElementDimensions: function(j) {\n return {\n width: ((j.offsetWidth || 0)),\n height: ((j.offsetHeight || 0))\n };\n },\n getViewportDimensions: function() {\n var j = ((((((((window && window.JSBNG__innerWidth)) || ((((JSBNG__document && JSBNG__document.documentElement)) && JSBNG__document.documentElement.clientWidth)))) || ((((JSBNG__document && JSBNG__document.body)) && JSBNG__document.body.clientWidth)))) || 0)), k = ((((((((window && window.JSBNG__innerHeight)) || ((((JSBNG__document && JSBNG__document.documentElement)) && JSBNG__document.documentElement.clientHeight)))) || ((((JSBNG__document && JSBNG__document.body)) && JSBNG__document.body.clientHeight)))) || 0));\n return {\n width: j,\n height: k\n };\n },\n getViewportWithoutScrollbarDimensions: function() {\n var j = ((((((((JSBNG__document && JSBNG__document.documentElement)) && JSBNG__document.documentElement.clientWidth)) || ((((JSBNG__document && JSBNG__document.body)) && JSBNG__document.body.clientWidth)))) || 0)), k = ((((((((JSBNG__document && JSBNG__document.documentElement)) && JSBNG__document.documentElement.clientHeight)) || ((((JSBNG__document && JSBNG__document.body)) && JSBNG__document.body.clientHeight)))) || 0));\n return {\n width: j,\n height: k\n };\n },\n getDocumentDimensions: function(j) {\n j = ((j || JSBNG__document));\n var k = g.getDocumentScrollElement(j), l = ((k.scrollWidth || 0)), m = ((k.scrollHeight || 0));\n return {\n width: l,\n height: m\n };\n },\n measureElementBox: function(j, k, l, m, n) {\n var o;\n switch (k) {\n case \"left\":\n \n case \"right\":\n \n case \"JSBNG__top\":\n \n case \"bottom\":\n o = [k,];\n break;\n case \"width\":\n o = [\"left\",\"right\",];\n break;\n case \"height\":\n o = [\"JSBNG__top\",\"bottom\",];\n break;\n default:\n throw Error(((\"Invalid plane: \" + k)));\n };\n ;\n var p = function(q, r) {\n var s = 0;\n for (var t = 0; ((t < o.length)); t++) {\n s += ((parseInt(h.get(j, ((((((q + \"-\")) + o[t])) + r))), 10) || 0));\n ;\n };\n ;\n return s;\n };\n return ((((((l ? p(\"padding\", \"\") : 0)) + ((m ? p(\"border\", \"-width\") : 0)))) + ((n ? p(\"margin\", \"\") : 0))));\n }\n };\n e.exports = i;\n});\n__d(\"wrapFunction\", [], function(a, b, c, d, e, f) {\n var g = {\n };\n function h(i, j, k) {\n j = ((j || \"default\"));\n return function() {\n var l = ((((j in g)) ? g[j](i, k) : i));\n return l.apply(this, arguments);\n };\n };\n;\n h.setWrapper = function(i, j) {\n j = ((j || \"default\"));\n g[j] = i;\n };\n e.exports = h;\n});\n__d(\"DOMEventListener\", [\"wrapFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"wrapFunction\"), h, i;\n if (window.JSBNG__addEventListener) {\n h = function(k, l, m) {\n m.wrapper = g(m, \"entry\", ((((k + \":\")) + l)));\n k.JSBNG__addEventListener(l, m.wrapper, false);\n };\n i = function(k, l, m) {\n k.JSBNG__removeEventListener(l, m.wrapper, false);\n };\n }\n else if (window.JSBNG__attachEvent) {\n h = function(k, l, m) {\n m.wrapper = g(m, \"entry\", ((((k + \":\")) + l)));\n k.JSBNG__attachEvent(((\"JSBNG__on\" + l)), m.wrapper);\n };\n i = function(k, l, m) {\n k.JSBNG__detachEvent(((\"JSBNG__on\" + l)), m.wrapper);\n };\n }\n \n;\n;\n var j = {\n add: function(k, l, m) {\n h(k, l, m);\n return {\n remove: function() {\n i(k, l, m);\n k = null;\n }\n };\n },\n remove: i\n };\n e.exports = j;\n});\n__d(\"DOMPosition\", [\"DOMDimensions\",\"DOMQuery\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMDimensions\"), h = b(\"DOMQuery\"), i = {\n getScrollPosition: function() {\n var j = h.getDocumentScrollElement();\n return {\n x: j.scrollLeft,\n y: j.scrollTop\n };\n },\n getNormalizedScrollPosition: function() {\n var j = i.getScrollPosition(), k = g.getDocumentDimensions(), l = g.getViewportDimensions(), m = ((k.height - l.height)), n = ((k.width - l.width));\n return {\n y: Math.max(0, Math.min(j.y, m)),\n x: Math.max(0, Math.min(j.x, n))\n };\n },\n getElementPosition: function(j) {\n if (!j) {\n return;\n }\n ;\n ;\n var k = JSBNG__document.documentElement;\n if (((!((\"getBoundingClientRect\" in j)) || !h.contains(k, j)))) {\n return {\n x: 0,\n y: 0\n };\n }\n ;\n ;\n var l = j.getBoundingClientRect(), m = ((Math.round(l.left) - k.clientLeft)), n = ((Math.round(l.JSBNG__top) - k.clientTop));\n return {\n x: m,\n y: n\n };\n }\n };\n e.exports = i;\n});\n__d(\"isInIframe\", [], function(a, b, c, d, e, f) {\n function g() {\n return ((window != window.JSBNG__top));\n };\n;\n e.exports = g;\n});\n__d(\"DimensionTracking\", [\"Cookie\",\"DOMDimensions\",\"JSBNG__Event\",\"debounce\",\"isInIframe\",], function(a, b, c, d, e, f) {\n var g = b(\"Cookie\"), h = b(\"DOMDimensions\"), i = b(\"JSBNG__Event\"), j = b(\"debounce\"), k = b(\"isInIframe\");\n function l() {\n var m = h.getViewportDimensions();\n g.set(\"wd\", ((((m.width + \"x\")) + m.height)));\n };\n;\n if (!k()) {\n l.defer(100);\n i.listen(window, \"resize\", j(l, 250));\n i.listen(window, \"JSBNG__focus\", l);\n }\n;\n;\n});\n__d(\"Focus\", [\"CSS\",\"DOM\",\"JSBNG__Event\",\"Run\",\"cx\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"JSBNG__Event\"), j = b(\"Run\"), k = b(\"cx\"), l = b(\"ge\"), m = {\n }, n, o = {\n set: function(s) {\n try {\n s.tabIndex = s.tabIndex;\n s.JSBNG__focus();\n } catch (t) {\n \n };\n ;\n },\n setWithoutOutline: function(s) {\n g.addClass(s, \"_1qp5\");\n var t = i.listen(s, \"JSBNG__blur\", function() {\n g.removeClass(s, \"_1qp5\");\n t.remove();\n });\n o.set(s);\n },\n relocate: function(s, t) {\n p();\n var u = h.getID(s);\n m[u] = t;\n g.addClass(s, \"_1qp5\");\n j.onLeave(r.curry(u));\n },\n reset: function(s) {\n var t = h.getID(s);\n g.removeClass(s, \"_1qp5\");\n if (m[t]) {\n g.removeClass(m[t], \"_3oxt\");\n delete m[t];\n }\n ;\n ;\n }\n };\n function p() {\n if (n) {\n return;\n }\n ;\n ;\n i.listen(JSBNG__document.documentElement, \"focusout\", q);\n i.listen(JSBNG__document.documentElement, \"focusin\", q);\n n = true;\n };\n;\n function q(JSBNG__event) {\n var s = JSBNG__event.getTarget();\n if (!g.hasClass(s, \"_1qp5\")) {\n return;\n }\n ;\n ;\n if (m[s.id]) {\n g.conditionClass(m[s.id], \"_3oxt\", ((((JSBNG__event.type === \"focusin\")) || ((JSBNG__event.type === \"JSBNG__focus\")))));\n }\n ;\n ;\n };\n;\n function r(s) {\n if (((m[s] && !l(s)))) {\n delete m[s];\n }\n ;\n ;\n };\n;\n e.exports = o;\n});\n__d(\"HighContrastMode\", [\"AsyncSignal\",\"Cookie\",\"CSS\",\"DOM\",\"Env\",\"Style\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncSignal\"), h = b(\"Cookie\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"Env\"), l = b(\"Style\"), m = null, n = {\n init: function(o) {\n if (((((m !== null)) && ((o.currentState != m))))) {\n return;\n }\n ;\n ;\n var p = j.create(\"div\");\n j.appendContent(JSBNG__document.body, p);\n p.style.cssText = ((((((((((((((\"border: 1px solid;\" + \"border-color: red green;\")) + \"position: fixed;\")) + \"height: 5px;\")) + \"top: -999px;\")) + \"background-image: url(\")) + o.spacerImage)) + \");\"));\n var q = l.get(p, \"background-image\"), r = l.get(p, \"border-top-color\"), s = l.get(p, \"border-right-color\"), t = ((((r == s)) || ((q && ((((q == \"none\")) || ((q == \"url(invalid-url:)\"))))))));\n if (((t != o.currentState))) {\n i.conditionClass(JSBNG__document.documentElement, \"highContrast\", t);\n if (k.user) {\n h.set(\"highContrastMode\", ((t ? 1 : 0)));\n if (t) {\n new g(\"/ajax/highcontrast\").send();\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n j.remove(p);\n m = t;\n }\n };\n e.exports = n;\n});\n__d(\"Input\", [\"CSS\",\"DOMQuery\",\"DOMControl\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DOMQuery\"), i = b(\"DOMControl\"), j = function(l) {\n var m = l.getAttribute(\"maxlength\");\n if (((m && ((m > 0))))) {\n d([\"enforceMaxLength\",], function(n) {\n n(l, m);\n });\n }\n ;\n ;\n }, k = {\n isEmpty: function(l) {\n return ((!(/\\S/).test(((l.value || \"\"))) || g.hasClass(l, \"DOMControl_placeholder\")));\n },\n getValue: function(l) {\n return ((k.isEmpty(l) ? \"\" : l.value));\n },\n setValue: function(l, m) {\n g.removeClass(l, \"DOMControl_placeholder\");\n l.value = ((m || \"\"));\n j(l);\n var n = i.getInstance(l);\n ((((n && n.resetHeight)) && n.resetHeight()));\n },\n setPlaceholder: function(l, m) {\n l.setAttribute(\"aria-label\", m);\n l.setAttribute(\"placeholder\", m);\n if (((l == JSBNG__document.activeElement))) {\n return;\n }\n ;\n ;\n if (k.isEmpty(l)) {\n g.conditionClass(l, \"DOMControl_placeholder\", m);\n l.value = ((m || \"\"));\n }\n ;\n ;\n },\n reset: function(l) {\n var m = ((((l !== JSBNG__document.activeElement)) ? ((l.getAttribute(\"placeholder\") || \"\")) : \"\"));\n l.value = m;\n g.conditionClass(l, \"DOMControl_placeholder\", m);\n l.style.height = \"\";\n },\n setSubmitOnEnter: function(l, m) {\n g.conditionClass(l, \"enter_submit\", m);\n },\n getSubmitOnEnter: function(l) {\n return g.hasClass(l, \"enter_submit\");\n },\n setMaxLength: function(l, m) {\n if (((m > 0))) {\n l.setAttribute(\"maxlength\", m);\n j(l);\n }\n else l.removeAttribute(\"maxlength\");\n ;\n ;\n }\n };\n e.exports = k;\n});\n__d(\"KeyEventController\", [\"DOM\",\"JSBNG__Event\",\"Run\",\"copyProperties\",\"isEmpty\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"JSBNG__Event\"), i = b(\"Run\"), j = b(\"copyProperties\"), k = b(\"isEmpty\");\n function l() {\n this.handlers = {\n };\n JSBNG__document.JSBNG__onkeyup = this.onkeyevent.bind(this, \"JSBNG__onkeyup\");\n JSBNG__document.JSBNG__onkeydown = this.onkeyevent.bind(this, \"JSBNG__onkeydown\");\n JSBNG__document.JSBNG__onkeypress = this.onkeyevent.bind(this, \"JSBNG__onkeypress\");\n };\n;\n j(l, {\n instance: null,\n getInstance: function() {\n return ((l.instance || (l.instance = new l())));\n },\n defaultFilter: function(JSBNG__event, m) {\n JSBNG__event = h.$E(JSBNG__event);\n return ((((l.filterEventTypes(JSBNG__event, m) && l.filterEventTargets(JSBNG__event, m))) && l.filterEventModifiers(JSBNG__event, m)));\n },\n filterEventTypes: function(JSBNG__event, m) {\n if (((m === \"JSBNG__onkeydown\"))) {\n return true;\n }\n ;\n ;\n return false;\n },\n filterEventTargets: function(JSBNG__event, m) {\n var n = JSBNG__event.getTarget(), o = ((n.contentEditable === \"true\"));\n return ((((!((o || g.isNodeOfType(n, l._interactiveElements))) || ((n.type in l._uninterestingTypes)))) || ((((JSBNG__event.keyCode in l._controlKeys)) && ((((g.isNodeOfType(n, [\"input\",\"textarea\",]) && ((n.value.length === 0)))) || ((o && ((g.getText(n).length === 0))))))))));\n },\n filterEventModifiers: function(JSBNG__event, m) {\n if (((((((JSBNG__event.ctrlKey || JSBNG__event.altKey)) || JSBNG__event.metaKey)) || JSBNG__event.repeat))) {\n return false;\n }\n ;\n ;\n return true;\n },\n registerKey: function(m, n, o, p) {\n if (((o === undefined))) {\n o = l.defaultFilter;\n }\n ;\n ;\n var q = l.getInstance(), r = q.mapKey(m);\n if (k(q.handlers)) {\n i.onLeave(q.resetHandlers.bind(q));\n }\n ;\n ;\n var s = {\n };\n for (var t = 0; ((t < r.length)); t++) {\n m = r[t];\n if (((!q.handlers[m] || p))) {\n q.handlers[m] = [];\n }\n ;\n ;\n var u = {\n callback: n,\n filter: o\n };\n s[m] = u;\n q.handlers[m].push(u);\n };\n ;\n return {\n remove: function() {\n {\n var fin43keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin43i = (0);\n var v;\n for (; (fin43i < fin43keys.length); (fin43i++)) {\n ((v) = (fin43keys[fin43i]));\n {\n if (((q.handlers[v] && q.handlers[v].length))) {\n var w = q.handlers[v].indexOf(s[v]);\n ((((w >= 0)) && q.handlers[v].splice(w, 1)));\n }\n ;\n ;\n delete s[v];\n };\n };\n };\n ;\n }\n };\n },\n keyCodeMap: {\n BACKSPACE: [8,],\n TAB: [9,],\n RETURN: [13,],\n ESCAPE: [27,],\n LEFT: [37,63234,],\n UP: [38,63232,],\n RIGHT: [39,63235,],\n DOWN: [40,63233,],\n DELETE: [46,],\n COMMA: [188,],\n PERIOD: [190,],\n SLASH: [191,],\n \"`\": [192,],\n \"[\": [219,],\n \"]\": [221,]\n },\n _interactiveElements: [\"input\",\"select\",\"textarea\",\"object\",\"embed\",],\n _uninterestingTypes: {\n button: 1,\n checkbox: 1,\n radio: 1,\n submit: 1\n },\n _controlKeys: {\n 8: 1,\n 9: 1,\n 13: 1,\n 27: 1,\n 37: 1,\n 63234: 1,\n 38: 1,\n 63232: 1,\n 39: 1,\n 63235: 1,\n 40: 1,\n 63233: 1,\n 46: 1\n }\n });\n j(l.prototype, {\n mapKey: function(m) {\n if (((((m >= 0)) && ((m <= 9))))) {\n if (((typeof (m) != \"number\"))) {\n m = ((m.charCodeAt(0) - 48));\n }\n ;\n ;\n return [((48 + m)),((96 + m)),];\n }\n ;\n ;\n var n = l.keyCodeMap[m.toUpperCase()];\n if (n) {\n return n;\n }\n ;\n ;\n return [m.toUpperCase().charCodeAt(0),];\n },\n onkeyevent: function(m, n) {\n n = h.$E(n);\n var o = ((this.handlers[n.keyCode] || this.handlers[n.which])), p, q, r;\n if (o) {\n for (var s = 0; ((s < o.length)); s++) {\n p = o[s].callback;\n q = o[s].filter;\n try {\n if (((!q || q(n, m)))) {\n r = p(n, m);\n if (((r === false))) {\n return h.kill(n);\n }\n ;\n ;\n }\n ;\n ;\n } catch (t) {\n \n };\n ;\n };\n }\n ;\n ;\n return true;\n },\n resetHandlers: function() {\n this.handlers = {\n };\n }\n });\n e.exports = l;\n});\n__d(\"KeyStatus\", [\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = null, i = null;\n function j() {\n if (!i) {\n i = g.listen(window, \"JSBNG__blur\", function() {\n h = null;\n k();\n });\n }\n ;\n ;\n };\n;\n function k() {\n if (i) {\n i.remove();\n i = null;\n }\n ;\n ;\n };\n;\n g.listen(JSBNG__document.documentElement, \"keydown\", function(m) {\n h = g.getKeyCode(m);\n j();\n }, g.Priority.URGENT);\n g.listen(JSBNG__document.documentElement, \"keyup\", function(m) {\n h = null;\n k();\n }, g.Priority.URGENT);\n var l = {\n isKeyDown: function() {\n return !!h;\n },\n getKeyDownCode: function() {\n return h;\n }\n };\n e.exports = l;\n});\n__d(\"BehaviorsMixin\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\");\n function h(l) {\n this._behavior = l;\n this._enabled = false;\n };\n;\n g(h.prototype, {\n enable: function() {\n if (!this._enabled) {\n this._enabled = true;\n this._behavior.enable();\n }\n ;\n ;\n },\n disable: function() {\n if (this._enabled) {\n this._enabled = false;\n this._behavior.disable();\n }\n ;\n ;\n }\n });\n var i = 1;\n function j(l) {\n if (!l.__BEHAVIOR_ID) {\n l.__BEHAVIOR_ID = i++;\n }\n ;\n ;\n return l.__BEHAVIOR_ID;\n };\n;\n var k = {\n enableBehavior: function(l) {\n if (!this._behaviors) {\n this._behaviors = {\n };\n }\n ;\n ;\n var m = j(l);\n if (!this._behaviors[m]) {\n this._behaviors[m] = new h(new l(this));\n }\n ;\n ;\n this._behaviors[m].enable();\n return this;\n },\n disableBehavior: function(l) {\n if (this._behaviors) {\n var m = j(l);\n if (this._behaviors[m]) {\n this._behaviors[m].disable();\n }\n ;\n ;\n }\n ;\n ;\n return this;\n },\n enableBehaviors: function(l) {\n l.forEach(this.enableBehavior.bind(this));\n return this;\n },\n destroyBehaviors: function() {\n if (this._behaviors) {\n {\n var fin44keys = ((window.top.JSBNG_Replay.forInKeys)((this._behaviors))), fin44i = (0);\n var l;\n for (; (fin44i < fin44keys.length); (fin44i++)) {\n ((l) = (fin44keys[fin44i]));\n {\n this._behaviors[l].disable();\n ;\n };\n };\n };\n ;\n this._behaviors = {\n };\n }\n ;\n ;\n }\n };\n e.exports = k;\n});\n__d(\"removeFromArray\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n var j = h.indexOf(i);\n ((((j != -1)) && h.splice(j, 1)));\n };\n;\n e.exports = g;\n});\n__d(\"Layer\", [\"JSBNG__Event\",\"function-extensions\",\"ArbiterMixin\",\"BehaviorsMixin\",\"BootloadedReact\",\"ContextualThing\",\"CSS\",\"DataStore\",\"DOM\",\"HTML\",\"KeyEventController\",\"Parent\",\"Style\",\"copyProperties\",\"ge\",\"removeFromArray\",\"KeyStatus\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"ArbiterMixin\"), i = b(\"BehaviorsMixin\"), j = b(\"BootloadedReact\"), k = b(\"ContextualThing\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"HTML\"), p = b(\"KeyEventController\"), q = b(\"Parent\"), r = b(\"Style\"), s = b(\"copyProperties\"), t = b(\"ge\"), u = b(\"removeFromArray\");\n b(\"KeyStatus\");\n var v = [];\n function w(x, y) {\n this._config = ((x || {\n }));\n if (y) {\n this._configure(this._config, y);\n var z = ((this._config.addedBehaviors || []));\n this.enableBehaviors(this._getDefaultBehaviors().concat(z));\n }\n ;\n ;\n };\n;\n s(w, h);\n s(w, {\n init: function(x, y) {\n x.init(y);\n },\n initAndShow: function(x, y) {\n x.init(y).show();\n },\n show: function(x) {\n x.show();\n },\n getTopmostLayer: function() {\n return v[((v.length - 1))];\n }\n });\n s(w.prototype, h, i, {\n _initialized: false,\n _root: null,\n _shown: false,\n _hiding: false,\n _causalElement: null,\n _reactContainer: null,\n init: function(x) {\n this._configure(this._config, x);\n var y = ((this._config.addedBehaviors || []));\n this.enableBehaviors(this._getDefaultBehaviors().concat(y));\n this._initialized = true;\n return this;\n },\n _configure: function(x, y) {\n if (y) {\n var z = n.isNode(y), aa = ((((typeof y === \"string\")) || o.isHTML(y)));\n this.containsReactComponent = j.isValidComponent(y);\n if (aa) {\n y = o(y).getRootNode();\n }\n else if (this.containsReactComponent) {\n var ba = JSBNG__document.createElement(\"div\");\n j.renderComponent(y, ba);\n y = this._reactContainer = ba;\n }\n \n ;\n ;\n }\n ;\n ;\n this._root = this._buildWrapper(x, y);\n if (x.attributes) {\n n.setAttributes(this._root, x.attributes);\n }\n ;\n ;\n if (x.classNames) {\n x.classNames.forEach(l.addClass.curry(this._root));\n }\n ;\n ;\n l.addClass(this._root, \"uiLayer\");\n if (x.causalElement) {\n this._causalElement = t(x.causalElement);\n }\n ;\n ;\n if (x.permanent) {\n this._permanent = x.permanent;\n }\n ;\n ;\n m.set(this._root, \"layer\", this);\n },\n _getDefaultBehaviors: function() {\n return [];\n },\n getCausalElement: function() {\n return this._causalElement;\n },\n setCausalElement: function(x) {\n this._causalElement = x;\n return this;\n },\n getInsertParent: function() {\n return ((this._insertParent || JSBNG__document.body));\n },\n getRoot: function() {\n return this._root;\n },\n getContentRoot: function() {\n return this._root;\n },\n _buildWrapper: function(x, y) {\n return y;\n },\n setInsertParent: function(x) {\n if (x) {\n if (((this._shown && ((x !== this.getInsertParent()))))) {\n n.appendContent(x, this.getRoot());\n this.updatePosition();\n }\n ;\n ;\n this._insertParent = x;\n }\n ;\n ;\n return this;\n },\n show: function() {\n if (this._shown) {\n return this;\n }\n ;\n ;\n var x = this.getRoot();\n this.inform(\"beforeshow\");\n r.set(x, \"visibility\", \"hidden\");\n r.set(x, \"overflow\", \"hidden\");\n l.show(x);\n n.appendContent(this.getInsertParent(), x);\n if (((this.updatePosition() !== false))) {\n this._shown = true;\n this.inform(\"show\");\n w.inform(\"show\", this);\n if (!this._permanent) {\n !function() {\n if (this._shown) {\n v.push(this);\n }\n ;\n ;\n }.bind(this).defer();\n }\n ;\n ;\n }\n else l.hide(x);\n ;\n ;\n r.set(x, \"visibility\", \"\");\n r.set(x, \"overflow\", \"\");\n this.inform(\"aftershow\");\n return this;\n },\n hide: function() {\n if (((((this._hiding || !this._shown)) || ((this.inform(\"beforehide\") === false))))) {\n return this;\n }\n ;\n ;\n this._hiding = true;\n if (((this.inform(\"starthide\") !== false))) {\n this.finishHide();\n }\n ;\n ;\n return this;\n },\n conditionShow: function(x) {\n return ((x ? this.show() : this.hide()));\n },\n finishHide: function() {\n if (this._shown) {\n if (!this._permanent) {\n u(v, this);\n }\n ;\n ;\n this._hiding = false;\n this._shown = false;\n l.hide(this.getRoot());\n this.inform(\"hide\");\n w.inform(\"hide\", this);\n }\n ;\n ;\n },\n isShown: function() {\n return this._shown;\n },\n updatePosition: function() {\n return true;\n },\n destroy: function() {\n if (this.containsReactComponent) {\n j.unmountAndReleaseReactRootNode(this._reactContainer);\n }\n ;\n ;\n this.finishHide();\n var x = this.getRoot();\n n.remove(x);\n this.destroyBehaviors();\n this.inform(\"destroy\");\n w.inform(\"destroy\", this);\n m.remove(x, \"layer\");\n this._root = this._causalElement = null;\n }\n });\n g.listen(JSBNG__document.documentElement, \"keydown\", function(JSBNG__event) {\n if (p.filterEventTargets(JSBNG__event, \"keydown\")) {\n for (var x = ((v.length - 1)); ((x >= 0)); x--) {\n if (((v[x].inform(\"key\", JSBNG__event) === false))) {\n return false;\n }\n ;\n ;\n };\n }\n ;\n ;\n }, g.Priority.URGENT);\n g.listen(JSBNG__document.documentElement, \"click\", function(JSBNG__event) {\n var x = v.length;\n if (!x) {\n return;\n }\n ;\n ;\n var y = JSBNG__event.getTarget();\n if (!n.contains(JSBNG__document.documentElement, y)) {\n return;\n }\n ;\n ;\n if (!y.offsetWidth) {\n return;\n }\n ;\n ;\n if (q.byClass(y, \"generic_dialog\")) {\n return;\n }\n ;\n ;\n while (x--) {\n var z = v[x], aa = z.getContentRoot();\n if (k.containsIncludingLayers(aa, y)) {\n return;\n }\n ;\n ;\n if (((((z.inform(\"JSBNG__blur\") === false)) || z.isShown()))) {\n return;\n }\n ;\n ;\n };\n ;\n });\n e.exports = w;\n});\n__d(\"PopupWindow\", [\"DOMDimensions\",\"DOMQuery\",\"Layer\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMDimensions\"), h = b(\"DOMQuery\"), i = b(\"Layer\"), j = b(\"copyProperties\"), k = {\n _opts: {\n allowShrink: true,\n strategy: \"vector\",\n timeout: 100,\n widthElement: null\n },\n init: function(l) {\n j(k._opts, l);\n JSBNG__setInterval(k._resizeCheck, k._opts.timeout);\n },\n _resizeCheck: function() {\n var l = g.getViewportDimensions(), m = k._getDocumentSize(), n = i.getTopmostLayer();\n if (n) {\n var o = n.getRoot().firstChild, p = g.getElementDimensions(o);\n p.height += g.measureElementBox(o, \"height\", true, true, true);\n p.width += g.measureElementBox(o, \"width\", true, true, true);\n m.height = Math.max(m.height, p.height);\n m.width = Math.max(m.width, p.width);\n }\n ;\n ;\n var q = ((m.height - l.height)), r = ((m.width - l.width));\n if (((((r < 0)) && !k._opts.widthElement))) {\n r = 0;\n }\n ;\n ;\n r = ((((r > 1)) ? r : 0));\n if (((!k._opts.allowShrink && ((q < 0))))) {\n q = 0;\n }\n ;\n ;\n if (((q || r))) {\n try {\n ((window.JSBNG__console && window.JSBNG__console.firebug));\n window.JSBNG__resizeBy(r, q);\n if (r) {\n window.JSBNG__moveBy(((r / -2)), 0);\n }\n ;\n ;\n } catch (s) {\n \n };\n }\n ;\n ;\n },\n _getDocumentSize: function() {\n var l = g.getDocumentDimensions();\n if (((k._opts.strategy === \"offsetHeight\"))) {\n l.height = JSBNG__document.body.offsetHeight;\n }\n ;\n ;\n if (k._opts.widthElement) {\n var m = h.scry(JSBNG__document.body, k._opts.widthElement)[0];\n if (m) {\n l.width = g.getElementDimensions(m).width;\n }\n ;\n ;\n }\n ;\n ;\n var n = a.Dialog;\n if (((((n && n.max_bottom)) && ((n.max_bottom > l.height))))) {\n l.height = n.max_bottom;\n }\n ;\n ;\n return l;\n },\n open: function(l, m, n) {\n var o = ((((typeof window.JSBNG__screenX != \"undefined\")) ? window.JSBNG__screenX : window.JSBNG__screenLeft)), p = ((((typeof window.JSBNG__screenY != \"undefined\")) ? window.JSBNG__screenY : window.JSBNG__screenTop)), q = ((((typeof window.JSBNG__outerWidth != \"undefined\")) ? window.JSBNG__outerWidth : JSBNG__document.body.clientWidth)), r = ((((typeof window.JSBNG__outerHeight != \"undefined\")) ? window.JSBNG__outerHeight : ((JSBNG__document.body.clientHeight - 22)))), s = parseInt(((o + ((((q - n)) / 2)))), 10), t = parseInt(((p + ((((r - m)) / 2.5)))), 10), u = ((((((((((((((\"width=\" + n)) + \",height=\")) + m)) + \",left=\")) + s)) + \",top=\")) + t));\n return window.open(l, \"_blank\", u);\n }\n };\n e.exports = k;\n});\n__d(\"TidyArbiterMixin\", [\"Arbiter\",\"ArbiterMixin\",\"Run\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"Run\"), j = b(\"copyProperties\"), k = {\n };\n j(k, h, {\n _getArbiterInstance: function() {\n if (!this._arbiter) {\n this._arbiter = new g();\n i.onLeave(function() {\n delete this._arbiter;\n }.bind(this));\n }\n ;\n ;\n return this._arbiter;\n }\n });\n e.exports = k;\n});\n__d(\"TidyArbiter\", [\"TidyArbiterMixin\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"TidyArbiterMixin\"), h = b(\"copyProperties\"), i = {\n };\n h(i, g);\n e.exports = i;\n});\n__d(\"Vector\", [\"JSBNG__Event\",\"DOMDimensions\",\"DOMPosition\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"DOMDimensions\"), i = b(\"DOMPosition\"), j = b(\"copyProperties\");\n function k(l, m, n) {\n j(this, {\n x: parseFloat(l),\n y: parseFloat(m),\n domain: ((n || \"pure\"))\n });\n };\n;\n j(k.prototype, {\n toString: function() {\n return ((((((((\"(\" + this.x)) + \", \")) + this.y)) + \")\"));\n },\n add: function(l, m) {\n if (((arguments.length == 1))) {\n if (((l.domain != \"pure\"))) {\n l = l.convertTo(this.domain);\n }\n ;\n ;\n return this.add(l.x, l.y);\n }\n ;\n ;\n var n = parseFloat(l), o = parseFloat(m);\n return new k(((this.x + n)), ((this.y + o)), this.domain);\n },\n mul: function(l, m) {\n if (((typeof m == \"undefined\"))) {\n m = l;\n }\n ;\n ;\n return new k(((this.x * l)), ((this.y * m)), this.domain);\n },\n sub: function(l, m) {\n if (((arguments.length == 1))) {\n return this.add(l.mul(-1));\n }\n else return this.add(-l, -m)\n ;\n },\n distanceTo: function(l) {\n return this.sub(l).magnitude();\n },\n magnitude: function() {\n return Math.sqrt(((((this.x * this.x)) + ((this.y * this.y)))));\n },\n rotate: function(l) {\n return new k(((((this.x * Math.cos(l))) - ((this.y * Math.sin(l))))), ((((this.x * Math.sin(l))) + ((this.y * Math.cos(l))))));\n },\n convertTo: function(l) {\n if (((((((l != \"pure\")) && ((l != \"viewport\")))) && ((l != \"JSBNG__document\"))))) {\n return new k(0, 0);\n }\n ;\n ;\n if (((l == this.domain))) {\n return new k(this.x, this.y, this.domain);\n }\n ;\n ;\n if (((l == \"pure\"))) {\n return new k(this.x, this.y);\n }\n ;\n ;\n if (((this.domain == \"pure\"))) {\n return new k(0, 0);\n }\n ;\n ;\n var m = k.getScrollPosition(\"JSBNG__document\"), n = this.x, o = this.y;\n if (((this.domain == \"JSBNG__document\"))) {\n n -= m.x;\n o -= m.y;\n }\n else {\n n += m.x;\n o += m.y;\n }\n ;\n ;\n return new k(n, o, l);\n },\n setElementPosition: function(l) {\n var m = this.convertTo(\"JSBNG__document\");\n l.style.left = ((parseInt(m.x) + \"px\"));\n l.style.JSBNG__top = ((parseInt(m.y) + \"px\"));\n return this;\n },\n setElementDimensions: function(l) {\n return this.setElementWidth(l).setElementHeight(l);\n },\n setElementWidth: function(l) {\n l.style.width = ((parseInt(this.x, 10) + \"px\"));\n return this;\n },\n setElementHeight: function(l) {\n l.style.height = ((parseInt(this.y, 10) + \"px\"));\n return this;\n },\n scrollElementBy: function(l) {\n if (((l == JSBNG__document.body))) {\n window.JSBNG__scrollBy(this.x, this.y);\n }\n else {\n l.scrollLeft += this.x;\n l.scrollTop += this.y;\n }\n ;\n ;\n return this;\n }\n });\n j(k, {\n getEventPosition: function(l, m) {\n m = ((m || \"JSBNG__document\"));\n var n = g.getPosition(l), o = new k(n.x, n.y, \"JSBNG__document\");\n return o.convertTo(m);\n },\n getScrollPosition: function(l) {\n l = ((l || \"JSBNG__document\"));\n var m = i.getScrollPosition();\n return new k(m.x, m.y, \"JSBNG__document\").convertTo(l);\n },\n getElementPosition: function(l, m) {\n m = ((m || \"JSBNG__document\"));\n var n = i.getElementPosition(l);\n return new k(n.x, n.y, \"viewport\").convertTo(m);\n },\n getElementDimensions: function(l) {\n var m = h.getElementDimensions(l);\n return new k(m.width, m.height);\n },\n getViewportDimensions: function() {\n var l = h.getViewportDimensions();\n return new k(l.width, l.height, \"viewport\");\n },\n getDocumentDimensions: function(l) {\n var m = h.getDocumentDimensions(l);\n return new k(m.width, m.height, \"JSBNG__document\");\n },\n deserialize: function(l) {\n var m = l.split(\",\");\n return new k(m[0], m[1]);\n }\n });\n e.exports = k;\n});\n__d(\"collectDataAttributes\", [\"getContextualParent\",], function(a, b, c, d, e, f) {\n var g = b(\"getContextualParent\");\n function h(i, j) {\n var k = {\n }, l = {\n }, m = j.length, n;\n for (n = 0; ((n < m)); ++n) {\n k[j[n]] = {\n };\n l[j[n]] = ((\"data-\" + j[n]));\n };\n ;\n var o = {\n tn: \"\",\n \"tn-debug\": \",\"\n };\n while (i) {\n if (i.getAttribute) {\n for (n = 0; ((n < m)); ++n) {\n var p = i.getAttribute(l[j[n]]);\n if (p) {\n var q = JSON.parse(p);\n {\n var fin45keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin45i = (0);\n var r;\n for (; (fin45i < fin45keys.length); (fin45i++)) {\n ((r) = (fin45keys[fin45i]));\n {\n if (((o[r] !== undefined))) {\n if (((k[j[n]][r] === undefined))) {\n k[j[n]][r] = [];\n }\n ;\n ;\n k[j[n]][r].push(q[r]);\n }\n else if (((k[j[n]][r] === undefined))) {\n k[j[n]][r] = q[r];\n }\n \n ;\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n };\n }\n ;\n ;\n i = g(i);\n };\n ;\n {\n var fin46keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin46i = (0);\n var s;\n for (; (fin46i < fin46keys.length); (fin46i++)) {\n ((s) = (fin46keys[fin46i]));\n {\n {\n var fin47keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin47i = (0);\n var t;\n for (; (fin47i < fin47keys.length); (fin47i++)) {\n ((t) = (fin47keys[fin47i]));\n {\n if (((k[s][t] !== undefined))) {\n k[s][t] = k[s][t].join(o[t]);\n }\n ;\n ;\n };\n };\n };\n ;\n };\n };\n };\n ;\n return k;\n };\n;\n e.exports = h;\n});\n__d(\"csx\", [], function(a, b, c, d, e, f) {\n function g(h) {\n throw new Error(\"csx(...): Unexpected class selector transformation.\");\n };\n;\n e.exports = g;\n});\n__d(\"JSBNG__requestAnimationFrame\", [\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"emptyFunction\"), h = 0, i = ((((((((((a.JSBNG__requestAnimationFrame || a.JSBNG__webkitRequestAnimationFrame)) || a.JSBNG__mozRequestAnimationFrame)) || a.oRequestAnimationFrame)) || a.msRequestAnimationFrame)) || function(j) {\n var k = JSBNG__Date.now(), l = Math.max(0, ((16 - ((k - h)))));\n h = ((k + l));\n return a.JSBNG__setTimeout(j, l);\n }));\n i(g);\n e.exports = i;\n});\n__d(\"queryThenMutateDOM\", [\"function-extensions\",\"Run\",\"createArrayFrom\",\"emptyFunction\",\"JSBNG__requestAnimationFrame\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"Run\"), h = b(\"createArrayFrom\"), i = b(\"emptyFunction\"), j = b(\"JSBNG__requestAnimationFrame\"), k, l, m = {\n }, n = [], o = [];\n function p(s, t, u) {\n if (((!s && !t))) {\n return;\n }\n ;\n ;\n if (((u && m.hasOwnProperty(u)))) {\n return;\n }\n else if (u) {\n m[u] = 1;\n }\n \n ;\n ;\n n.push(((t || i)));\n o.push(((s || i)));\n r();\n if (!k) {\n k = true;\n g.onLeave(function() {\n k = false;\n l = false;\n m = {\n };\n n.length = 0;\n o.length = 0;\n });\n }\n ;\n ;\n };\n;\n p.prepare = function(s, t, u) {\n return function() {\n var v = h(arguments);\n v.unshift(this);\n var w = Function.prototype.bind.apply(s, v), x = t.bind(this);\n p(w, x, u);\n };\n };\n function q() {\n m = {\n };\n var s = o.length, t = n.length, u = [], v;\n while (s--) {\n v = o.shift();\n u.push(v());\n };\n ;\n while (t--) {\n v = n.shift();\n v(u.shift());\n };\n ;\n l = false;\n r();\n };\n;\n function r() {\n if (((!l && ((o.length || n.length))))) {\n l = true;\n j(q);\n }\n ;\n ;\n };\n;\n e.exports = p;\n});\n__d(\"setTimeoutAcrossTransitions\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n return JSBNG__setTimeout(h, i, false);\n };\n;\n e.exports = g;\n});\n__d(\"TimelineCoverCollapse\", [\"Arbiter\",\"DOMDimensions\",\"Style\",\"TidyArbiter\",\"$\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"DOMDimensions\"), i = b(\"Style\"), j = b(\"TidyArbiter\"), k = b(\"$\");\n f.collapse = function(l, m) {\n m--;\n var n = h.getViewportDimensions().height, o = h.getDocumentDimensions().height, p = ((n + m));\n if (((o <= p))) {\n i.set(k(\"pagelet_timeline_main_column\"), \"min-height\", ((p + \"px\")));\n }\n ;\n ;\n window.JSBNG__scrollBy(0, m);\n j.inform(\"TimelineCover/coverCollapsed\", m, g.BEHAVIOR_STATE);\n };\n});\nfunction tz_calculate(a) {\n var b = new JSBNG__Date(), c = ((b.getTimezoneOffset() / 30)), d = ((b.getTime() / 1000)), e = Math.round(((((a - d)) / 1800))), f = ((Math.round(((c + e))) % 48));\n if (((f == 0))) {\n return 0;\n }\n else if (((f > 24))) {\n f -= ((Math.ceil(((f / 48))) * 48));\n }\n else if (((f < -28))) {\n f += ((Math.ceil(((f / -48))) * 48));\n }\n \n \n;\n;\n return ((f * 30));\n};\n;\nfunction tz_autoset(a, b, c) {\n if (((!a || ((undefined == b))))) {\n return;\n }\n;\n;\n if (window.tz_autoset.calculated) {\n return;\n }\n;\n;\n window.tz_autoset.calculated = true;\n var d = -tz_calculate(a);\n if (((c || ((d != b))))) {\n var e = \"/ajax/timezone/update.php\";\n new AsyncRequest().setURI(e).setData({\n gmt_off: d,\n is_forced: c\n }).setErrorHandler(emptyFunction).setTransportErrorHandler(emptyFunction).setOption(\"suppressErrorAlerts\", true).send();\n }\n;\n;\n};\n;\n__d(\"UFITracking\", [\"Bootloader\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\");\n function h(j) {\n g.loadModules([\"DOM\",\"collectDataAttributes\",], function(k, l) {\n j.forEach(function(m) {\n var n = k.scry(JSBNG__document.body, m);\n if (((!n || n.link_data))) {\n return;\n }\n ;\n ;\n var o = l(n, [\"ft\",]).ft;\n if (Object.keys(o).length) {\n var p = k.create(\"input\", {\n type: \"hidden\",\n JSBNG__name: \"link_data\",\n value: JSON.stringify(o)\n });\n n.appendChild(p);\n }\n ;\n ;\n });\n });\n };\n;\n var i = {\n addAllLinkData: function() {\n h([\"form.commentable_item\",]);\n },\n addAllLinkDataForQuestion: function() {\n h([\"form.fbEigenpollForm\",\"form.fbQuestionPollForm\",]);\n }\n };\n e.exports = i;\n});\n__d(\"legacy:ufi-tracking-js\", [\"UFITracking\",], function(a, b, c, d) {\n var e = b(\"UFITracking\");\n a.ufi_add_all_link_data = e.addAllLinkData;\n a.question_add_all_link_data = e.addAllLinkDataForQuestion;\n}, 3);\n__d(\"LayerRemoveOnHide\", [\"function-extensions\",\"DOM\",\"copyProperties\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"DOM\"), h = b(\"copyProperties\");\n function i(j) {\n this._layer = j;\n };\n;\n h(i.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"hide\", g.remove.curry(this._layer.getRoot()));\n },\n disable: function() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n ;\n ;\n }\n });\n e.exports = i;\n});\n__d(\"Keys\", [], function(a, b, c, d, e, f) {\n e.exports = {\n BACKSPACE: 8,\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46,\n COMMA: 188\n };\n});\n__d(\"areObjectsEqual\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n return ((JSON.stringify(h) == JSON.stringify(i)));\n };\n;\n e.exports = g;\n});\n__d(\"flattenArray\", [], function(a, b, c, d, e, f) {\n function g(h) {\n var i = h.slice(), j = [];\n while (i.length) {\n var k = i.pop();\n if (Array.isArray(k)) {\n Array.prototype.push.apply(i, k);\n }\n else j.push(k);\n ;\n ;\n };\n ;\n return j.reverse();\n };\n;\n e.exports = g;\n});\n__d(\"htmlSpecialChars\", [], function(a, b, c, d, e, f) {\n var g = /&/g, h = /</g, i = />/g, j = /\"/g, k = /'/g;\n function l(m) {\n if (((((((typeof m == \"undefined\")) || ((m === null)))) || !m.toString))) {\n return \"\";\n }\n ;\n ;\n if (((m === false))) {\n return \"0\";\n }\n else if (((m === true))) {\n return \"1\";\n }\n \n ;\n ;\n return m.toString().replace(g, \"&amp;\").replace(j, \"&quot;\").replace(k, \"&#039;\").replace(h, \"&lt;\").replace(i, \"&gt;\");\n };\n;\n e.exports = l;\n});\n__d(\"htmlize\", [\"htmlSpecialChars\",], function(a, b, c, d, e, f) {\n var g = b(\"htmlSpecialChars\");\n function h(i) {\n return g(i).replace(/\\r\\n|[\\r\\n]/g, \"\\u003Cbr/\\u003E\");\n };\n;\n e.exports = h;\n});");
// 994
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"new (require(\"ServerJS\"))().handle({\n require: [[\"removeArrayReduce\",],[\"markJSEnabled\",],[\"lowerDomain\",],[\"URLFragmentPrelude\",],],\n define: [[\"BanzaiConfig\",[],{\n MAX_WAIT: 150000,\n MAX_SIZE: 10000,\n COMPRESSION_THRESHOLD: 800,\n gks: {\n jslogger: true,\n miny_compression: true,\n boosted_posts: true,\n time_spent: true,\n time_spent_bit_array: true,\n time_spent_debug: true,\n useraction: true,\n videos: true\n }\n },7,],[\"URLFragmentPreludeConfig\",[],{\n hashtagRedirect: true,\n incorporateQuicklingFragment: true\n },137,],]\n});");
// 995
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"sbc7df7f6bb75d7e29414a7bf76d7afea4393a8e7");
// 996
geval("new (require(\"ServerJS\"))().handle({\n require: [[\"removeArrayReduce\",],[\"markJSEnabled\",],[\"lowerDomain\",],[\"URLFragmentPrelude\",],],\n define: [[\"BanzaiConfig\",[],{\n MAX_WAIT: 150000,\n MAX_SIZE: 10000,\n COMPRESSION_THRESHOLD: 800,\n gks: {\n jslogger: true,\n miny_compression: true,\n boosted_posts: true,\n time_spent: true,\n time_spent_bit_array: true,\n time_spent_debug: true,\n useraction: true,\n videos: true\n }\n },7,],[\"URLFragmentPreludeConfig\",[],{\n hashtagRedirect: true,\n incorporateQuicklingFragment: true\n },137,],]\n});");
// 1023
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"function e7838c840e018d6d5d0870c8a3c3cef5ceacd537d(event) {\n (window.Toggler && Toggler.hide());\n};");
// 1024
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s1bc020b23c1b7acf1a158f38463f085640438838");
// 1025
geval("function e7838c840e018d6d5d0870c8a3c3cef5ceacd537d(JSBNG__event) {\n ((window.Toggler && Toggler.hide()));\n};\n;");
// 1026
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"function ec0804b7f3ae255200c43d00c014bb94f344d06fe(event) {\n return run_with(this, [\"min-notifications-jewel\",], function() {\n MinNotifications.bootstrap(this);\n });\n};");
// 1027
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s1809336c878b583a8c25754764340693ab124489");
// 1028
geval("function ec0804b7f3ae255200c43d00c014bb94f344d06fe(JSBNG__event) {\n return run_with(this, [\"min-notifications-jewel\",], function() {\n MinNotifications.bootstrap(this);\n });\n};\n;");
// 1029
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"function e6560603264ef5f7501e684e8b01c646c45b86b81(event) {\n return ((window.Event && Event.__inlineSubmit) && Event.__inlineSubmit(this, event));\n};");
// 1030
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s988454fbbebb4f5c39047686ab0f805cb3d35ac8");
// 1031
geval("function e6560603264ef5f7501e684e8b01c646c45b86b81(JSBNG__event) {\n return ((((window.JSBNG__Event && JSBNG__Event.__inlineSubmit)) && JSBNG__Event.__inlineSubmit(this, JSBNG__event)));\n};\n;");
// 1032
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"function ee033beee9f71f1d153c463cc75dee372f3a3da79(event) {\n var q = $(\"q\");\n if ((q.value == q.getAttribute(\"placeholder\"))) {\n q.focus();\n return false;\n }\n;\n};");
// 1033
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s239bb89ed65f190b08d1208ef21dad35f6f20ab6");
// 1034
geval("function ee033beee9f71f1d153c463cc75dee372f3a3da79(JSBNG__event) {\n var q = $(\"q\");\n if (((q.value == q.getAttribute(\"placeholder\")))) {\n q.JSBNG__focus();\n return false;\n }\n;\n;\n};\n;");
// 1035
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"function e16dd16226f2f839519b14343b6f79699ae341c78(event) {\n $(\"search_first_focus\").value = ($(\"search_first_focus\").value || +new Date());\n;\n Bootloader.loadComponents(\"SearchBootloader\", emptyFunction);\n};");
// 1036
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s83cdd098baa8b8fc7670e9e599802f7562d1ef57");
// 1037
geval("function e16dd16226f2f839519b14343b6f79699ae341c78(JSBNG__event) {\n $(\"search_first_focus\").value = (($(\"search_first_focus\").value || +new JSBNG__Date()));\n;\n Bootloader.loadComponents(\"SearchBootloader\", emptyFunction);\n};\n;");
// 1038
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"function ecd0969c627f884b0fe8383ca5dc6c38a1102c7c7(event) {\n var q = $(\"q\");\n if ((q.value == q.getAttribute(\"placeholder\"))) {\n q.focus();\n return false;\n }\n;\n};");
// 1039
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"sa76cfe207e27b0c3cfc65c72854b0c60d158f298");
// 1040
geval("function ecd0969c627f884b0fe8383ca5dc6c38a1102c7c7(JSBNG__event) {\n var q = $(\"q\");\n if (((q.value == q.getAttribute(\"placeholder\")))) {\n q.JSBNG__focus();\n return false;\n }\n;\n;\n};\n;");
// 1041
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"function e92e53530d37ff46fa3100cf588fe77bbd832310b(event) {\n Arbiter.inform(\"PagesVoiceBar/toggle\");\n};");
// 1042
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"sf777aa9a026c7df2982a326f292ed315c4c3f095");
// 1043
geval("function e92e53530d37ff46fa3100cf588fe77bbd832310b(JSBNG__event) {\n Arbiter.inform(\"PagesVoiceBar/toggle\");\n};\n;");
// 1044
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"function e842a4cf819e0ef651842e8b08f46fb0e6d79ceb5(event) {\n return ((window.Event && Event.__inlineSubmit) && Event.__inlineSubmit(this, event));\n};");
// 1045
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s03e241bc8c6c7f05e2d20517a7be89baaefad2df");
// 1046
geval("function e842a4cf819e0ef651842e8b08f46fb0e6d79ceb5(JSBNG__event) {\n return ((((window.JSBNG__Event && JSBNG__Event.__inlineSubmit)) && JSBNG__Event.__inlineSubmit(this, JSBNG__event)));\n};\n;");
// 1047
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"function si_cj(m) {\n setTimeout(function() {\n new Image().src = ((\"http://jsbngssl.error.facebook.com/common/scribe_endpoint.php?c=si_clickjacking&t=3095\" + \"&m=\") + m);\n }, 5000);\n};\nif (((top != self) && !false)) {\n try {\n if ((parent != top)) {\n throw 1;\n }\n ;\n var si_cj_d = [\"apps.facebook.com\",\"/pages/\",\"apps.beta.facebook.com\",];\n var href = top.location.href.toLowerCase();\n for (var i = 0; (i < si_cj_d.length); i++) {\n if ((href.indexOf(si_cj_d[i]) >= 0)) {\n throw 1;\n }\n ;\n };\n si_cj(\"3 http://jsbngssl.www.facebook.com/\");\n } catch (e) {\n si_cj(\"1 \\u0009http://jsbngssl.www.facebook.com/\");\n window.document.write(\"\\u003Cstyle\\u003Ebody * {display:none !important;}\\u003C/style\\u003E\\u003Ca href=\\\"#\\\" onclick=\\\"top.location.href=window.location.href\\\" style=\\\"display:block !important;padding:10px\\\"\\u003E\\u003Ci class=\\\"img sp_4p6kmz sx_aac1e3\\\" style=\\\"display:block !important\\\"\\u003E\\u003C/i\\u003EGo to Facebook.com\\u003C/a\\u003E\");\n };\n}\n;");
// 1048
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s55cde185bfc8d1d54c4ed4c94d147ba99e53a6b0");
// 1049
geval("function si_cj(m) {\n JSBNG__setTimeout(function() {\n new JSBNG__Image().src = ((((\"http://jsbngssl.error.facebook.com/common/scribe_endpoint.php?c=si_clickjacking&t=3095\" + \"&m=\")) + m));\n }, 5000);\n};\n;\nif (((((JSBNG__top != JSBNG__self)) && !false))) {\n try {\n if (((parent != JSBNG__top))) {\n throw 1;\n }\n ;\n ;\n var si_cj_d = [\"apps.facebook.com\",\"/pages/\",\"apps.beta.facebook.com\",];\n var href = JSBNG__top.JSBNG__location.href.toLowerCase();\n for (var i = 0; ((i < si_cj_d.length)); i++) {\n if (((href.indexOf(si_cj_d[i]) >= 0))) {\n throw 1;\n }\n ;\n ;\n };\n ;\n si_cj(\"3 http://jsbngssl.www.facebook.com/\");\n } catch (e) {\n si_cj(\"1 \\u0009http://jsbngssl.www.facebook.com/\");\n window.JSBNG__document.write(\"\\u003Cstyle\\u003Ebody * {display:none !important;}\\u003C/style\\u003E\\u003Ca href=\\\"#\\\" onclick=\\\"top.JSBNG__location.href=window.JSBNG__location.href\\\" style=\\\"display:block !important;padding:10px\\\"\\u003E\\u003Ci class=\\\"img sp_4p6kmz sx_aac1e3\\\" style=\\\"display:block !important\\\"\\u003E\\u003C/i\\u003EGo to Facebook.com\\u003C/a\\u003E\");\n };\n;\n}\n;\n;");
// 1050
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"Bootloader.setResourceMap({\n yagwf: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/JDr6pTZ60bK.css\"\n },\n VDymv: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yZ/r/2OiKY3nDQvQ.css\"\n },\n \"X/Fq6\": {\n type: \"css\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y6/r/YlbIHaln_Rk.css\"\n },\n \"0duP3\": {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yj/r/KbSyGJkqroJ.css\"\n },\n ynBUm: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yD/r/OWwnO_yMqhK.css\"\n },\n vFtag: {\n type: \"css\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yS/r/AXbdtQOFsWr.css\"\n },\n cy4a0: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yC/r/Ef0wezTRsTI.css\"\n },\n xqZGj: {\n type: \"css\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yb/r/tOU0wFcLVo_.css\"\n },\n W3Ky6: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y0/r/RxMmKV8uOEh.css\"\n }\n});\nBootloader.setResourceMap({\n oE4Do: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yq/r/MDwOqV08JHh.js\"\n },\n C3MER: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yP/r/hnJRUTuHHeP.js\"\n },\n AyUu6: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yF/r/pmYy9aLa5q_.js\"\n },\n \"+h1d2\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yo/r/0gMMCDzw75A.js\"\n },\n h9fqQ: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yF/r/FmIXX_SfTzh.js\"\n },\n \"63VzN\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ye/r/v9y92rsUvEH.js\"\n },\n \"wxq+C\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y7/r/HXOT2PHhPzY.js\"\n },\n MqSmz: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yH/r/ghlEJgSKAee.js\"\n },\n tIw4R: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yq/r/ztXltT1LKGv.js\"\n },\n pR9EP: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yE/r/jKneATMaMne.js\"\n },\n AtxWD: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yU/r/RXieOTwv9ZN.js\"\n },\n \"1XxM1\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yK/r/WyMulbsltUU.js\"\n },\n qu1rX: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ym/r/5vdmAFTChHH.js\"\n },\n \"4vv8/\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/VctjjLR0rnO.js\"\n },\n \"5dFET\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yg/r/ojsbRUPU0Sl.js\"\n },\n C6rJk: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yk/r/mvmvxDKTeL4.js\"\n },\n \"xO/k5\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yB/r/fQIoBRZLBHX.js\"\n },\n H42Jh: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y3/r/ppwOo4BAmlb.js\"\n },\n bwsMw: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y_/r/hwOyT9fmfZV.js\"\n },\n Pc0ie: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yu/r/aUem8WpGyly.js\"\n },\n hfrQl: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y7/r/MX9CLuapN6V.js\"\n },\n OJTM4: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yd/r/-z4vUS8jrpA.js\"\n },\n AsDOA: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yg/r/4CJ_klaVGHP.js\"\n },\n zyFOp: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yA/r/HAFtXNlDnG9.js\"\n },\n \"u//Ut\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yn/r/-5WtOV0lZ_r.js\"\n },\n bUzfU: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yz/r/CVXUroaYxOH.js\"\n },\n hofTc: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yP/r/EKA5EzGo0o5.js\"\n },\n Rs18G: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ys/r/t80qJDlUD7e.js\"\n },\n EzMPG: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yr/r/r-aTsS_RKim.js\"\n },\n \"LpC/l\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yC/r/3O1MmhNwV3-.js\"\n },\n brbS1: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y1/r/-lwVuunZG1z.js\"\n },\n \"/vuZw\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yC/r/yXqVwx5GyZ4.js\"\n },\n cNca2: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yv/r/OHUUx9tXXmr.js\"\n }\n});\nBootloader.enableBootload({\n PhotoTagger: {\n resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",\"+h1d2\",\"h9fqQ\",],\n \"module\": true\n },\n AsyncDOM: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n HighContrastMode: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n SearchBootloader: {\n resources: [\"AyUu6\",\"W3Ky6\",\"u//Ut\",\"hfrQl\",\"OJTM4\",\"AsDOA\",\"0duP3\",\"63VzN\",]\n },\n Toggler: {\n resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",],\n \"module\": true\n },\n TagTokenizer: {\n resources: [\"AyUu6\",\"W3Ky6\",\"LpC/l\",\"h9fqQ\",\"AsDOA\",],\n \"module\": true\n },\n PhotoTagApproval: {\n resources: [\"AyUu6\",\"+h1d2\",\"h9fqQ\",],\n \"module\": true\n },\n ErrorSignal: {\n resources: [\"AyUu6\",\"cNca2\",],\n \"module\": true\n },\n DesktopNotifications: {\n resources: [\"C3MER\",],\n \"module\": true\n },\n VideoRotate: {\n resources: [\"AyUu6\",\"H42Jh\",],\n \"module\": true\n },\n PhotoSnowlift: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",\"+h1d2\",],\n \"module\": true\n },\n FbdDialogProvider: {\n resources: [\"/vuZw\",\"AyUu6\",\"bwsMw\",],\n \"module\": true\n },\n AsyncResponse: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n trackReferrer: {\n resources: [],\n \"module\": true\n },\n Event: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n AsyncDialog: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",],\n \"module\": true\n },\n DOM: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n SpotlightShareViewer: {\n resources: [\"AyUu6\",\"AsDOA\",\"X/Fq6\",\"zyFOp\",],\n \"module\": true\n },\n ChatTabModel: {\n resources: [\"AyUu6\",\"u//Ut\",\"OJTM4\",\"AsDOA\",\"EzMPG\",\"brbS1\",],\n \"module\": true\n },\n Input: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n Music: {\n resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"63VzN\",\"qu1rX\",\"pR9EP\",\"brbS1\",\"cy4a0\",],\n \"module\": true\n },\n ConfirmationDialog: {\n resources: [\"AyUu6\",\"AsDOA\",\"oE4Do\",],\n \"module\": true\n },\n Dialog: {\n resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",],\n \"module\": true\n },\n IframeShim: {\n resources: [\"AyUu6\",\"AsDOA\",\"MqSmz\",],\n \"module\": true\n },\n \"autoset-timezone\": {\n resources: [\"AyUu6\",]\n },\n PhotosButtonTooltips: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"Rs18G\",],\n \"module\": true\n },\n SnowliftPicCropper: {\n resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"+h1d2\",\"Pc0ie\",\"0duP3\",\"wxq+C\",],\n \"module\": true\n },\n SpotifyJSONPRequest: {\n resources: [\"AyUu6\",\"xO/k5\",],\n \"module\": true\n },\n Live: {\n resources: [\"AyUu6\",\"OJTM4\",],\n \"module\": true\n },\n DimensionTracking: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n PrivacyLiteNUXController: {\n resources: [\"AyUu6\",\"AsDOA\",\"hfrQl\",\"0duP3\",\"u//Ut\",\"W3Ky6\",\"OJTM4\",],\n \"module\": true\n },\n Tooltip: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",],\n \"module\": true\n },\n \"legacy:detect-broken-proxy-cache\": {\n resources: [\"AyUu6\",]\n },\n PhotoInlineEditor: {\n resources: [\"AyUu6\",\"+h1d2\",\"W3Ky6\",\"AsDOA\",\"h9fqQ\",\"AtxWD\",],\n \"module\": true\n },\n LiveTimer: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n \"legacy:min-notifications-jewel\": {\n resources: [\"AyUu6\",\"AsDOA\",\"tIw4R\",\"hofTc\",]\n },\n AsyncRequest: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n React: {\n resources: [\"OJTM4\",\"AyUu6\",],\n \"module\": true\n },\n PhotoTags: {\n resources: [\"AyUu6\",\"+h1d2\",\"W3Ky6\",\"h9fqQ\",],\n \"module\": true\n },\n \"fb-photos-snowlift-fullscreen-css\": {\n resources: [\"VDymv\",]\n },\n PrivacyLiteFlyout: {\n resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"0duP3\",\"hfrQl\",],\n \"module\": true\n },\n Form: {\n resources: [\"AyUu6\",\"AsDOA\",],\n \"module\": true\n }\n});");
// 1051
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s6483de5fe55246b950f8bbeb8dd035ac37f6c8b7");
// 1052
geval("Bootloader.setResourceMap({\n yagwf: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/JDr6pTZ60bK.css\"\n },\n VDymv: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yZ/r/2OiKY3nDQvQ.css\"\n },\n \"X/Fq6\": {\n type: \"css\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y6/r/YlbIHaln_Rk.css\"\n },\n \"0duP3\": {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yj/r/KbSyGJkqroJ.css\"\n },\n ynBUm: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yD/r/OWwnO_yMqhK.css\"\n },\n vFtag: {\n type: \"css\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yS/r/AXbdtQOFsWr.css\"\n },\n cy4a0: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yC/r/Ef0wezTRsTI.css\"\n },\n xqZGj: {\n type: \"css\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yb/r/tOU0wFcLVo_.css\"\n },\n W3Ky6: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y0/r/RxMmKV8uOEh.css\"\n }\n});\nBootloader.setResourceMap({\n oE4Do: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yq/r/MDwOqV08JHh.js\"\n },\n C3MER: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yP/r/hnJRUTuHHeP.js\"\n },\n AyUu6: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yF/r/pmYy9aLa5q_.js\"\n },\n \"+h1d2\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yo/r/0gMMCDzw75A.js\"\n },\n h9fqQ: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yF/r/FmIXX_SfTzh.js\"\n },\n \"63VzN\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ye/r/v9y92rsUvEH.js\"\n },\n \"wxq+C\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y7/r/HXOT2PHhPzY.js\"\n },\n MqSmz: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yH/r/ghlEJgSKAee.js\"\n },\n tIw4R: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yq/r/ztXltT1LKGv.js\"\n },\n pR9EP: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yE/r/jKneATMaMne.js\"\n },\n AtxWD: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yU/r/RXieOTwv9ZN.js\"\n },\n \"1XxM1\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yK/r/WyMulbsltUU.js\"\n },\n qu1rX: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ym/r/5vdmAFTChHH.js\"\n },\n \"4vv8/\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/VctjjLR0rnO.js\"\n },\n \"5dFET\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yg/r/ojsbRUPU0Sl.js\"\n },\n C6rJk: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yk/r/mvmvxDKTeL4.js\"\n },\n \"xO/k5\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yB/r/fQIoBRZLBHX.js\"\n },\n H42Jh: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y3/r/ppwOo4BAmlb.js\"\n },\n bwsMw: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y_/r/hwOyT9fmfZV.js\"\n },\n Pc0ie: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yu/r/aUem8WpGyly.js\"\n },\n hfrQl: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y7/r/MX9CLuapN6V.js\"\n },\n OJTM4: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yd/r/-z4vUS8jrpA.js\"\n },\n AsDOA: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yg/r/4CJ_klaVGHP.js\"\n },\n zyFOp: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yA/r/HAFtXNlDnG9.js\"\n },\n \"u//Ut\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yn/r/-5WtOV0lZ_r.js\"\n },\n bUzfU: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yz/r/CVXUroaYxOH.js\"\n },\n hofTc: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yP/r/EKA5EzGo0o5.js\"\n },\n Rs18G: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ys/r/t80qJDlUD7e.js\"\n },\n EzMPG: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yr/r/r-aTsS_RKim.js\"\n },\n \"LpC/l\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yC/r/3O1MmhNwV3-.js\"\n },\n brbS1: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y1/r/-lwVuunZG1z.js\"\n },\n \"/vuZw\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yC/r/yXqVwx5GyZ4.js\"\n },\n cNca2: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yv/r/OHUUx9tXXmr.js\"\n }\n});\nBootloader.enableBootload({\n PhotoTagger: {\n resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",\"+h1d2\",\"h9fqQ\",],\n \"module\": true\n },\n AsyncDOM: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n HighContrastMode: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n SearchBootloader: {\n resources: [\"AyUu6\",\"W3Ky6\",\"u//Ut\",\"hfrQl\",\"OJTM4\",\"AsDOA\",\"0duP3\",\"63VzN\",]\n },\n Toggler: {\n resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",],\n \"module\": true\n },\n TagTokenizer: {\n resources: [\"AyUu6\",\"W3Ky6\",\"LpC/l\",\"h9fqQ\",\"AsDOA\",],\n \"module\": true\n },\n PhotoTagApproval: {\n resources: [\"AyUu6\",\"+h1d2\",\"h9fqQ\",],\n \"module\": true\n },\n ErrorSignal: {\n resources: [\"AyUu6\",\"cNca2\",],\n \"module\": true\n },\n DesktopNotifications: {\n resources: [\"C3MER\",],\n \"module\": true\n },\n VideoRotate: {\n resources: [\"AyUu6\",\"H42Jh\",],\n \"module\": true\n },\n PhotoSnowlift: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",\"+h1d2\",],\n \"module\": true\n },\n FbdDialogProvider: {\n resources: [\"/vuZw\",\"AyUu6\",\"bwsMw\",],\n \"module\": true\n },\n AsyncResponse: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n trackReferrer: {\n resources: [],\n \"module\": true\n },\n JSBNG__Event: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n AsyncDialog: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"OJTM4\",],\n \"module\": true\n },\n DOM: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n SpotlightShareViewer: {\n resources: [\"AyUu6\",\"AsDOA\",\"X/Fq6\",\"zyFOp\",],\n \"module\": true\n },\n ChatTabModel: {\n resources: [\"AyUu6\",\"u//Ut\",\"OJTM4\",\"AsDOA\",\"EzMPG\",\"brbS1\",],\n \"module\": true\n },\n Input: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n Music: {\n resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"63VzN\",\"qu1rX\",\"pR9EP\",\"brbS1\",\"cy4a0\",],\n \"module\": true\n },\n ConfirmationDialog: {\n resources: [\"AyUu6\",\"AsDOA\",\"oE4Do\",],\n \"module\": true\n },\n Dialog: {\n resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",],\n \"module\": true\n },\n IframeShim: {\n resources: [\"AyUu6\",\"AsDOA\",\"MqSmz\",],\n \"module\": true\n },\n \"autoset-timezone\": {\n resources: [\"AyUu6\",]\n },\n PhotosButtonTooltips: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"Rs18G\",],\n \"module\": true\n },\n SnowliftPicCropper: {\n resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"+h1d2\",\"Pc0ie\",\"0duP3\",\"wxq+C\",],\n \"module\": true\n },\n SpotifyJSONPRequest: {\n resources: [\"AyUu6\",\"xO/k5\",],\n \"module\": true\n },\n Live: {\n resources: [\"AyUu6\",\"OJTM4\",],\n \"module\": true\n },\n DimensionTracking: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n PrivacyLiteNUXController: {\n resources: [\"AyUu6\",\"AsDOA\",\"hfrQl\",\"0duP3\",\"u//Ut\",\"W3Ky6\",\"OJTM4\",],\n \"module\": true\n },\n Tooltip: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",],\n \"module\": true\n },\n \"legacy:detect-broken-proxy-cache\": {\n resources: [\"AyUu6\",]\n },\n PhotoInlineEditor: {\n resources: [\"AyUu6\",\"+h1d2\",\"W3Ky6\",\"AsDOA\",\"h9fqQ\",\"AtxWD\",],\n \"module\": true\n },\n LiveTimer: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n \"legacy:min-notifications-jewel\": {\n resources: [\"AyUu6\",\"AsDOA\",\"tIw4R\",\"hofTc\",]\n },\n AsyncRequest: {\n resources: [\"AyUu6\",],\n \"module\": true\n },\n React: {\n resources: [\"OJTM4\",\"AyUu6\",],\n \"module\": true\n },\n PhotoTags: {\n resources: [\"AyUu6\",\"+h1d2\",\"W3Ky6\",\"h9fqQ\",],\n \"module\": true\n },\n \"fb-photos-snowlift-fullscreen-css\": {\n resources: [\"VDymv\",]\n },\n PrivacyLiteFlyout: {\n resources: [\"AyUu6\",\"OJTM4\",\"W3Ky6\",\"AsDOA\",\"0duP3\",\"hfrQl\",],\n \"module\": true\n },\n Form: {\n resources: [\"AyUu6\",\"AsDOA\",],\n \"module\": true\n }\n});");
// 1053
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"require(\"InitialJSLoader\").loadOnDOMContentReady([\"AyUu6\",\"OJTM4\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"1XxM1\",\"5dFET\",\"hfrQl\",\"C6rJk\",]);");
// 1054
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s155ee47747f88107b39149bfb79eabbf2eb896fa");
// 1055
geval("require(\"InitialJSLoader\").loadOnDOMContentReady([\"AyUu6\",\"OJTM4\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"1XxM1\",\"5dFET\",\"hfrQl\",\"C6rJk\",]);");
// 1057
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"Bootloader.configurePage([\"W3Ky6\",\"0duP3\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",]);\nBootloader.done([\"jDr+c\",]);\nJSCC.init(({\n j1O7KQQXRw2M7DXJek0: function() {\n return new RequestsJewel();\n }\n}));\nrequire(\"InitialJSLoader\").handleServerJS({\n require: [[\"Intl\",\"setPhonologicalRules\",[],[{\n meta: {\n \"/_B/\": \"([.,!?\\\\s]|^)\",\n \"/_E/\": \"([.,!?\\\\s]|$)\"\n },\n patterns: {\n \"/\\u0001(.*)('|&#039;)s\\u0001(?:'|&#039;)s(.*)/\": \"\\u0001$1$2s\\u0001$3\",\n \"/_\\u0001([^\\u0001]*)\\u0001/e\": \"mb_strtolower(\\\"\\u0001$1\\u0001\\\")\",\n \"/\\\\^\\\\x01([^\\\\x01])(?=[^\\\\x01]*\\\\x01)/e\": \"mb_strtoupper(\\\"\\u0001$1\\\")\",\n \"/_\\u0001([^\\u0001]*)\\u0001/\": \"javascript\"\n }\n },],],[\"PostLoadJS\",\"loadAndRequire\",[],[\"DimensionTracking\",],],[\"PostLoadJS\",\"loadAndCall\",[],[\"HighContrastMode\",\"init\",[{\n currentState: null,\n spacerImage: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\"\n },],],],[\"ScriptPath\",\"set\",[],[\"/home.php\",\"6bc96d96\",],],[\"ClickRefLogger\",],[\"userAction\",\"setUATypeConfig\",[],[{\n \"ua:n\": false,\n \"ua:i\": false,\n \"ua:d\": false,\n \"ua:e\": false\n },],],[\"ScriptPathState\",\"setUserURISampleRate\",[],[1050,],],[\"userAction\",\"setCustomSampleConfig\",[],[{\n \"ua:n\": {\n test: {\n ua_id: {\n test: true\n }\n }\n },\n \"ua:i\": {\n snowlift: {\n action: {\n open: true,\n close: true\n }\n },\n canvas: {\n action: {\n mouseover: true,\n mouseout: true\n }\n }\n }\n },],],[\"UserActionHistory\",],[\"ScriptPath\",\"startLogging\",[],[],],[\"TimeSpentBitArrayLogger\",\"init\",[],[],],[\"PixelRatio\",\"startDetecting\",[],[1,],],[\"LiveTimer\",\"restart\",[],[1373490143,],],[\"MessagingReliabilityLogger\",],[\"UnityLogging\",\"logUnityVersion\",[],[],],[\"DocumentTitle\",\"set\",[],[\"Facebook\",],],[\"SidebarPrelude\",\"addSidebarMode\",[],[1225,],],[\"m_0_0\",],[\"Quickling\",],[\"TinyViewport\",],[\"WebStorageMonster\",\"schedule\",[],[false,],],[\"AsyncRequestNectarLogging\",],[\"ViewasChromeBar\",\"initChromeBar\",[\"m_0_1\",],[{\n __m: \"m_0_1\"\n },],],[\"PagesVoiceBar\",\"initVoiceBar\",[],[],],[\"TypeaheadSearchBrowseUpsell\",\"registerForm\",[\"m_0_2\",],[{\n __m: \"m_0_2\"\n },],],[\"TypeaheadSearchSponsored\",\"setAuctionOptions\",[],[{\n maxNumberAds: 3,\n maxNumberRemovedResults: 2,\n maxNumberResultsAndAds: 8,\n v1: 1000000,\n v2: 0,\n v0: 100000,\n v3: 1000000,\n v4: 1000000,\n bootstrap: false,\n rerankingStrategy: 5\n },],],[\"AccessibleMenu\",\"init\",[\"m_0_4\",],[{\n __m: \"m_0_4\"\n },],],[\"MercuryJewel\",],[\"TitanLeftNav\",\"initialize\",[],[],],[\"m_0_7\",],[\"Typeahead\",\"init\",[\"m_0_8\",\"m_0_7\",\"TypeaheadExcludeBootstrapFromQueryCache\",\"TypeaheadSearchBrowseUpsell\",\"TypeaheadDetectQueryLocale\",],[{\n __m: \"m_0_8\"\n },{\n __m: \"m_0_7\"\n },[{\n __m: \"TypeaheadExcludeBootstrapFromQueryCache\"\n },{\n __m: \"TypeaheadSearchBrowseUpsell\"\n },{\n __m: \"TypeaheadDetectQueryLocale\"\n },\"searchSponsored\",\"searchRecorderBasic\",\"regulateMemorializedUsers\",\"showLoadingIndicator\",\"initFilters\",],null,],],[\"PlaceholderListener\",],[\"PlaceholderOnsubmitFormListener\",],[\"FlipDirectionOnKeypress\",],[\"enforceMaxLength\",],[\"m_0_5\",],[\"ChatOpenTab\",\"listenOpenEmptyTab\",[\"m_0_d\",],[{\n __m: \"m_0_d\"\n },],],[\"Scrollable\",],[\"m_0_f\",],[\"m_0_c\",],[\"WebStorageMonster\",\"registerLogoutForm\",[\"m_0_h\",],[{\n __m: \"m_0_h\"\n },[\"^Banzai$\",\"^\\\\:userchooser\\\\:osessusers$\",\"^[0-9]+:powereditor:\",\"^[0-9]+:page_insights:\",\"^_SocialFoxExternal_machineid$\",\"^_SocialFoxExternal_LoggedInBefore$\",\"^_socialfox_worker_enabled$\",],],],[\"m_0_k\",],[\"m_0_m\",],[\"m_0_n\",],[\"PrivacyLiteNUXController\",\"init\",[\"m_0_n\",],[{\n dialog: {\n __m: \"m_0_n\"\n },\n sectionID: \"who_can_see\",\n subsectionID: \"plite_activity_log\",\n showOnExpand: true\n },],],[\"m_0_p\",],[\"PrivacyLiteFlyout\",\"registerFinalReminderFlyout\",[\"m_0_p\",],[{\n __m: \"m_0_p\"\n },],],[\"PrivacyLiteFlyout\",\"registerFlyoutToggler\",[\"m_0_r\",\"m_0_s\",],[{\n __m: \"m_0_r\"\n },{\n __m: \"m_0_s\"\n },],],[\"Primer\",],[\"m_0_y\",],],\n instances: [[\"m_0_0\",[\"AsyncLayout\",],[\"contentArea\",],1,],[\"m_0_7\",[\"Typeahead\",\"m_0_a\",\"SearchTypeaheadView\",\"SearchTypeaheadRenderer\",\"m_0_8\",\"SearchTypeaheadCore\",\"m_0_9\",],[{\n __m: \"m_0_a\"\n },{\n node_id: \"u_0_0\",\n node: null,\n ctor: {\n __m: \"SearchTypeaheadView\"\n },\n options: {\n autoSelect: true,\n renderer: {\n __m: \"SearchTypeaheadRenderer\"\n },\n causalElement: {\n __m: \"m_0_8\"\n },\n maxResults: 8,\n minWidth: 0,\n alignment: \"left\",\n showBadges: 1,\n typeObjects: {\n app: {\n uid: \"app\",\n text: \"app\",\n type: \"header\",\n markup: \"Apps\"\n },\n event: {\n uid: \"event\",\n text: \"event\",\n type: \"header\",\n markup: \"Events\"\n },\n group: {\n uid: \"group\",\n text: \"group\",\n type: \"header\",\n markup: \"Groups\"\n },\n page: {\n uid: \"page\",\n text: \"page\",\n type: \"header\",\n markup: \"Pages\"\n },\n place: {\n uid: \"place\",\n text: \"place\",\n type: \"header\",\n markup: \"Places\"\n },\n shortcut: {\n uid: \"shortcut\",\n text: \"shortcut\",\n type: \"header\",\n markup: \"Facebook\"\n },\n user: {\n uid: \"user\",\n text: \"user\",\n type: \"header\",\n markup: \"People\"\n },\n song: {\n uid: \"song\",\n text: \"song\",\n type: \"header\",\n markup: \"Music\"\n },\n friendlist: {\n uid: \"friendlist\",\n text: \"friendlist\",\n type: \"header\",\n markup: \"Lists\"\n },\n hashtag_exact: {\n uid: \"hashtag_exact\",\n text: \"hashtag_exact\",\n type: \"header\",\n markup: \"Hashtag\"\n },\n websuggestion: {\n uid: \"websuggestion\",\n text: \"websuggestion\",\n type: \"header\",\n markup: \"Search the Web\"\n },\n ownsection: {\n uid: \"ownsection\",\n text: \"ownsection\",\n type: \"header\",\n markup: \"Sponsored\"\n },\n tophit: {\n uid: \"tophit\",\n text: \"tophit\",\n type: \"header\",\n markup: \"Top Hit\"\n }\n },\n seeMoreEndpoint: \"http://jsbngssl.www.facebook.com/search/results.php?init=quick\",\n showKeywordResultsPage: false,\n showFilterResults: false\n }\n },{\n ctor: {\n __m: \"SearchTypeaheadCore\"\n },\n options: {\n keepFocused: false,\n resetOnSelect: true\n }\n },{\n __m: \"m_0_9\"\n },],4,],[\"m_0_5\",[\"JewelX\",\"m_0_b\",],[{\n __m: \"m_0_b\"\n },{\n name: \"mercurymessages\"\n },],2,],[\"m_0_f\",[\"ScrollableArea\",\"m_0_e\",],[{\n __m: \"m_0_e\"\n },{\n persistent: true\n },],1,],[\"m_0_c\",[\"JewelX\",\"m_0_g\",],[{\n __m: \"m_0_g\"\n },{\n name: \"requests\"\n },],2,],[\"m_0_k\",[\"JewelX\",\"m_0_j\",],[{\n __m: \"m_0_j\"\n },{\n name: \"notifications\"\n },],1,],[\"m_0_m\",[\"ScrollableArea\",\"m_0_l\",],[{\n __m: \"m_0_l\"\n },{\n persistent: true\n },],1,],[\"m_0_n\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"m_0_o\",],[{\n width: 300,\n context: null,\n contextID: null,\n contextSelector: null,\n position: \"left\",\n alignment: \"left\",\n offsetX: 0,\n offsetY: 0,\n arrowBehavior: {\n __m: \"ContextualDialogArrow\"\n },\n theme: {\n __m: \"ContextualDialogDefaultTheme\"\n },\n addedBehaviors: [{\n __m: \"LayerRemoveOnHide\"\n },{\n __m: \"LayerHideOnTransition\"\n },{\n __m: \"LayerFadeOnShow\"\n },]\n },{\n __m: \"m_0_o\"\n },],3,],[\"m_0_p\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerDestroyOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_q\",],[{\n width: 300,\n context: null,\n contextID: \"u_0_6\",\n contextSelector: null,\n position: \"below\",\n alignment: \"right\",\n offsetX: 0,\n offsetY: 0,\n arrowBehavior: {\n __m: \"ContextualDialogArrow\"\n },\n theme: {\n __m: \"ContextualDialogDefaultTheme\"\n },\n addedBehaviors: [{\n __m: \"LayerRemoveOnHide\"\n },{\n __m: \"LayerDestroyOnHide\"\n },{\n __m: \"LayerHideOnTransition\"\n },{\n __m: \"LayerFadeOnShow\"\n },{\n __m: \"ContextualLayerAutoFlip\"\n },{\n __m: \"DialogHideOnSuccess\"\n },],\n classNames: [\"_57bl\",]\n },{\n __m: \"m_0_q\"\n },],3,],[\"m_0_y\",[\"PrivacyLiteFlyoutHelp\",\"m_0_t\",\"m_0_u\",\"m_0_v\",\"m_0_w\",\"m_0_x\",],[{\n __m: \"m_0_t\"\n },{\n __m: \"m_0_u\"\n },{\n __m: \"m_0_v\"\n },{\n __m: \"m_0_w\"\n },{\n __m: \"m_0_x\"\n },],1,],[\"m_0_a\",[\"SearchDataSource\",],[{\n minWebSugg: 3,\n minQueryLength: 2,\n maxWebSuggToCountFetchMore: 2,\n maxResults: 8,\n indexedFields: [\"text\",\"tokens\",\"alias\",\"non_title_tokens\",],\n titleFields: [\"text\",\"alias\",\"tokens\",],\n queryData: {\n viewer: 100006118350059,\n rsp: \"search\",\n context: \"search\"\n },\n queryEndpoint: \"/ajax/typeahead/search.php\",\n bootstrapData: {\n viewer: 100006118350059,\n token: \"v7\"\n },\n bootstrapEndpoint: \"/ajax/typeahead/search/bootstrap.php\",\n token: \"1372173655-7\",\n genTime: 1373490143,\n enabledQueryCache: true,\n queryExactMatch: false,\n enabledHashtag: true\n },],2,],[\"m_0_z\",[\"XHPTemplate\",\"m_0_15\",],[{\n __m: \"m_0_15\"\n },],2,],[\"m_0_10\",[\"XHPTemplate\",\"m_0_16\",],[{\n __m: \"m_0_16\"\n },],2,],[\"m_0_11\",[\"XHPTemplate\",\"m_0_17\",],[{\n __m: \"m_0_17\"\n },],2,],[\"m_0_12\",[\"XHPTemplate\",\"m_0_18\",],[{\n __m: \"m_0_18\"\n },],2,],[\"m_0_13\",[\"XHPTemplate\",\"m_0_19\",],[{\n __m: \"m_0_19\"\n },],2,],[\"m_0_14\",[\"XHPTemplate\",\"m_0_1a\",],[{\n __m: \"m_0_1a\"\n },],2,],],\n define: [[\"TimeSpentConfig\",[],{\n delay: 200000,\n initial_timeout: 8,\n initial_delay: 1000\n },142,],[\"MessagingReliabilityLoggerInitialData\",[],{\n enabled: false,\n app: \"mercury\"\n },44,],[\"QuicklingConfig\",[],{\n version: \"871405;0;0;0\",\n inactivePageRegex: \"^/(fr/u\\\\.php|ads/|advertising|ac\\\\.php|ae\\\\.php|ajax/emu/(end|f|h)\\\\.php|badges/|comments\\\\.php|connect/uiserver\\\\.php|editalbum\\\\.php.+add=1|ext/|feeds/|help([/?]|$)|identity_switch\\\\.php|intern/|login\\\\.php|logout\\\\.php|sitetour/homepage_tour\\\\.php|sorry\\\\.php|syndication\\\\.php|webmessenger|/plugins/subscribe|\\\\.pdf$|brandpermissions|gameday|pxlcld)\",\n sessionLength: 30\n },60,],[\"MercuryThreadlistIconTemplates\",[\"m_0_z\",\"m_0_10\",],{\n \":fb:mercury:attachment-indicator\": {\n __m: \"m_0_z\"\n },\n \":fb:mercury:attachment-icon-text\": {\n __m: \"m_0_10\"\n }\n },42,],[\"MercuryThreadlistConstants\",[],{\n SEARCH_TAB: \"searchtab\",\n JEWEL_MORE_COUNT: 10,\n WEBMESSENGER_SEARCH_SNIPPET_COUNT: 5,\n WEBMESSENGER_SEARCH_SNIPPET_MORE: 5,\n RECENT_MESSAGES_LIMIT: 10,\n WEBMESSENGER_SEARCH_SNIPPET_LIMIT: 5,\n WEBMESSENGER_MORE_MESSAGES_COUNT: 20,\n WEBMESSENGER_MORE_COUNT: 20,\n JEWEL_THREAD_COUNT: 5,\n RECENT_THREAD_OFFSET: 0,\n MAX_CHARS_BEFORE_BREAK: 280,\n MESSAGE_TIMESTAMP_THRESHOLD: 1209600000,\n GROUPING_THRESHOLD: 300000,\n MAX_UNSEEN_COUNT: 99,\n MAX_UNREAD_COUNT: 99,\n WEBMESSENGER_THREAD_COUNT: 20\n },96,],[\"MessagingConfig\",[],{\n SEND_BATCH_LIMIT: 5,\n IDLE_CUTOFF: 30000,\n SEND_CONNECTION_RETRIES: 2\n },97,],[\"MercuryParticipantsConstants\",[],{\n EMAIL_IMAGE: \"/images/messaging/threadlist/envelope.png\",\n BIG_IMAGE_SIZE: 50,\n IMAGE_SIZE: 32,\n UNKNOWN_GENDER: 0\n },109,],[\"MercuryConfig\",[],{\n \"24h_times\": false,\n activity_limit: 60000,\n idle_poll_interval: 300000,\n WebMessengerThreadSearchGK: 1,\n ChatSaveDraftsGK: 0,\n VideoCallingNoJavaGK: 0,\n MessagesJewelToggleReadGK: 1,\n SocialContextGK: 0,\n ChatMultiTypGK: 0,\n ChatMultiTypSendGK: 1,\n NewVCGK: 0,\n local_storage_crypto: null,\n MessagesDisableForwardingGK: 1,\n MessagesJewelOpenInChat: 0,\n filtering_active: true,\n idle_limit: 1800000,\n MessagingDisplayEmojiGK: 1,\n \"roger.seen_delay\": 15000\n },35,],[\"DateFormatConfig\",[],{\n weekStart: 6,\n ordinalSuffixes: {\n 1: \"st\",\n 2: \"nd\",\n 3: \"rd\",\n 4: \"th\",\n 5: \"th\",\n 6: \"th\",\n 7: \"th\",\n 8: \"th\",\n 9: \"th\",\n 10: \"th\",\n 11: \"th\",\n 12: \"th\",\n 13: \"th\",\n 14: \"th\",\n 15: \"th\",\n 16: \"th\",\n 17: \"th\",\n 18: \"th\",\n 19: \"th\",\n 20: \"th\",\n 21: \"st\",\n 22: \"nd\",\n 23: \"rd\",\n 24: \"th\",\n 25: \"th\",\n 26: \"th\",\n 27: \"th\",\n 28: \"th\",\n 29: \"th\",\n 30: \"th\",\n 31: \"st\"\n },\n numericDateSeparator: \"/\",\n numericDateOrder: [\"m\",\"d\",\"y\",],\n shortDayNames: [\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\",],\n formats: []\n },165,],[\"MercuryJewelTemplates\",[\"m_0_11\",],{\n \":fb:mercury:jewel:threadlist-row\": {\n __m: \"m_0_11\"\n }\n },39,],[\"MercuryStatusTemplates\",[\"m_0_12\",\"m_0_13\",\"m_0_14\",],{\n \":fb:mercury:resend-indicator\": {\n __m: \"m_0_12\"\n },\n \":fb:mercury:filtered-message\": {\n __m: \"m_0_13\"\n },\n \":fb:mercury:error-indicator\": {\n __m: \"m_0_14\"\n }\n },41,],[\"MercuryServerRequestsConfig\",[],{\n sendMessageTimeout: 45000\n },107,],[\"PresencePrivacyInitialData\",[],{\n visibility: 1,\n privacyData: {\n },\n onlinePolicy: 1\n },58,],[\"HashtagSearchResultConfig\",[],{\n boost_result: 1,\n hashtag_cost: 10959,\n image_url: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yF/r/irmqzCEvUpb.png\"\n },146,],],\n elements: [[\"m_0_3\",\"u_0_1\",2,\"m_0_2\",],[\"m_0_9\",\"u_0_2\",2,],[\"m_0_8\",\"u_0_3\",4,],[\"m_0_b\",\"fbMessagesJewel\",2,],[\"m_0_d\",\"u_0_4\",2,],[\"m_0_e\",\"MercuryJewelThreadList\",2,],[\"m_0_g\",\"fbRequestsJewel\",2,],[\"m_0_h\",\"logout_form\",2,],[\"m_0_j\",\"fbNotificationsJewel\",2,],[\"m_0_l\",\"u_0_5\",2,],[\"m_0_s\",\"u_0_8\",2,],[\"m_0_x\",\"u_0_9\",2,],[\"m_0_u\",\"u_0_a\",2,],[\"m_0_w\",\"u_0_b\",2,],[\"m_0_6\",\"navSearch\",2,],[\"m_0_r\",\"u_0_7\",2,],[\"m_0_v\",\"u_0_c\",2,],[\"m_0_t\",\"u_0_d\",2,],[\"m_0_4\",\"u_0_e\",2,],[\"m_0_i\",\"logout_form\",2,],[\"m_0_1\",\"u_0_f\",2,],],\n markup: [[\"m_0_2\",{\n __html: \"\\u003Cform rel=\\\"async\\\" action=\\\"/ajax/marketing/optin\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"project\\\" value=\\\"320951738012113\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"product\\\" value=\\\"Graph Search\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"source\\\" value=\\\"search_taui\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"mtm mlm rfloat\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu browseSignup selected _42gz\\\" type=\\\"submit\\\"\\u003EGet Graph Search\\u003C/button\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fr _42fu browseJoined selected _42gz\\\" disabled=\\\"1\\\" type=\\\"submit\\\"\\u003EYou&#039;re on the List!\\u003C/button\\u003E\\u003C/div\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"fwb\\\"\\u003ENew! Try Graph Search\\u003C/div\\u003EFind more of what you&#039;re looking for through friends and connections. \\u003Ca href=\\\"/about/graphsearch?source=search_tau\\\"\\u003ELearn More\\u003C/a\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\"\n },3,],[\"m_0_o\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Ca class=\\\"_1luv _1lvq\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"img\\\" alt=\\\"Close\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y0/r/K4K8h0mqOQN.png\\\" width=\\\"11\\\" height=\\\"13\\\" /\\u003E\\u003C/a\\u003E\\u003Cspan class=\\\"fsl\\\"\\u003E\\u003Cspan class=\\\"_3oyf\\\"\\u003ETry your new Privacy Shortcuts.\\u003C/span\\u003E Visit your Activity Log to review photos you&#039;re tagged in and things you&#039;ve hidden from your timeline.\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_q\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Cstrong\\u003ETip\\u003C/strong\\u003E: Graph Search is rolling out now, so it&#039;s getting easier for people to find photos and other things you&#039;ve shared with them. To check who can see your stuff, just click \\u003Cimg class=\\\"img\\\" alt=\\\"Privacy Shortcuts\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yO/r/eYJycDMyJiy.png\\\" width=\\\"12\\\" height=\\\"9\\\" /\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter _572u uiBoxGray topborder\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu layerConfirm _57bk uiOverlayButton selected _42g-\\\" type=\\\"submit\\\"\\u003EOkay\\u003C/button\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_15\",{\n __html: \"\\u003Ci class=\\\"mrs MercuryThreadlistIcon img sp_2gr8ms sx_22d5af\\\"\\u003E\\u003C/i\\u003E\"\n },2,],[\"m_0_16\",{\n __html: \"\\u003Cspan class=\\\"uiIconText _3tn\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\"\n },2,],[\"m_0_17\",{\n __html: \"\\u003Cli\\u003E\\u003Ca class=\\\"messagesContent\\\" data-jsid=\\\"link\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"MercuryThreadImage _8o _8s lfloat\\\" data-jsid=\\\"image\\\"\\u003E\\u003Cimg class=\\\"_s0 _rw img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"clearfix _42ef\\\"\\u003E\\u003Cdiv class=\\\"snippetThumbnail rfloat\\\"\\u003E\\u003Cspan class=\\\"_56hv hidden_elem\\\" data-jsid=\\\"snippet-thumbnail-single\\\"\\u003E\\u003Ci style=\\\"background-image: url(/images/blank.gif);\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"hidden_elem\\\" data-jsid=\\\"snippet-thumbnail-multiple\\\"\\u003E\\u003Cspan class=\\\"_56hy\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"_56hv\\\"\\u003E\\u003Ci style=\\\"background-image: url(/images/blank.gif);\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"content fsm fwn fcg\\\"\\u003E\\u003Cdiv class=\\\"author\\\"\\u003E\\u003Cstrong data-jsid=\\\"name\\\"\\u003E\\u003C/strong\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"snippet preview fsm fwn fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"snippet\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"time\\\"\\u003E\\u003Cabbr title=\\\"Wednesday, December 31, 1969 at 7:00pm\\\" data-utime=\\\"0\\\" class=\\\"hidden_elem timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003Eover a year ago\\u003C/abbr\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_18\",{\n __html: \"\\u003Cdiv class=\\\"_542d\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yv/r/O7ihJIPh_G0.gif\\\" alt=\\\"\\\" width=\\\"15\\\" height=\\\"15\\\" /\\u003E\\u003Cspan class=\\\"_55r6\\\"\\u003ESending...\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_19\",{\n __html: \"\\u003Cdiv class=\\\"mas pam uiBoxYellow\\\"\\u003E\\u003Cstrong\\u003EThis message is no longer available\\u003C/strong\\u003E because it was identified as abusive or marked as spam.\\u003C/div\\u003E\"\n },2,],[\"m_0_1a\",{\n __html: \"\\u003Cdiv class=\\\"_542d\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ye/r/NNg0bu4GBuz.png\\\" alt=\\\"\\\" width=\\\"13\\\" height=\\\"11\\\" /\\u003E\\u003Cspan class=\\\"_55r7\\\"\\u003EFailed to send\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],]\n});\nonloadRegister_DEPRECATED(function() {\n new AsyncRequest().setURI(\"/ajax/marketing/tour/privacy_dialog.php\").send();\n});\nonloadRegister_DEPRECATED(function() {\n requireLazy([\"MercuryJewel\",], function(MercuryJewel) {\n new MercuryJewel($(\"fbMessagesFlyout\"), $(\"fbMessagesJewel\"), require(\"m_0_5\"), {\n message_counts: [{\n unread_count: 0,\n unseen_count: 0,\n seen_timestamp: 0,\n last_action_id: 0,\n folder: \"inbox\"\n },{\n unread_count: 0,\n unseen_count: 0,\n seen_timestamp: 0,\n last_action_id: null,\n folder: \"other\"\n },],\n payload_source: \"server_initial_data\"\n });\n });\n});\nonloadRegister_DEPRECATED(function() {\n require(\"m_0_7\").getData().onLoad(false, true);\n});\nonloadRegister_DEPRECATED(function() {\n window.presenceRequests = JSCC.get(\"j1O7KQQXRw2M7DXJek0\").init(require(\"m_0_c\"), \"[fb]requests\", false);\n});\nonloadRegister_DEPRECATED(function() {\n window.presenceNotifications = new Notifications({\n updateTime: 1373490143000,\n latestNotif: null,\n latestReadNotif: null,\n updatePeriod: 480000,\n cacheVersion: 2,\n allowDesktopNotifications: false,\n notifReceivedType: \"notification\",\n wrapperID: \"fbNotificationsJewel\",\n contentID: \"fbNotificationsList\",\n shouldLogImpressions: 0,\n useInfiniteScroll: 1,\n persistUnreadColor: true,\n unseenVsUnread: 0\n });\n});\nonloadRegister_DEPRECATED(function() {\n Arbiter.inform(\"jewel/count-initial\", {\n jewel: \"notifications\",\n count: 0\n }, Arbiter.BEHAVIOR_STATE);\n});\nonafterloadRegister_DEPRECATED(function() {\n Bootloader.loadComponents([\"legacy:detect-broken-proxy-cache\",], function() {\n detect_broken_proxy_cache(\"100006118350059\", \"c_user\");\n });\n});\nonafterloadRegister_DEPRECATED(function() {\n Bootloader.loadComponents([\"autoset-timezone\",], function() {\n tz_autoset(1373490143, -240, 0);\n });\n});");
// 1058
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s1781b0f90407e4130b9cb2d35dc8345bef88e4c3");
// 1059
geval("Bootloader.configurePage([\"W3Ky6\",\"0duP3\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",]);\nBootloader.done([\"jDr+c\",]);\nJSCC.init(({\n j1O7KQQXRw2M7DXJek0: function() {\n return new RequestsJewel();\n }\n}));\nrequire(\"InitialJSLoader\").handleServerJS({\n require: [[\"JSBNG__Intl\",\"setPhonologicalRules\",[],[{\n meta: {\n \"/_B/\": \"([.,!?\\\\s]|^)\",\n \"/_E/\": \"([.,!?\\\\s]|$)\"\n },\n patterns: {\n \"/\\u0001(.*)('|&#039;)s\\u0001(?:'|&#039;)s(.*)/\": \"\\u0001$1$2s\\u0001$3\",\n \"/_\\u0001([^\\u0001]*)\\u0001/e\": \"mb_strtolower(\\\"\\u0001$1\\u0001\\\")\",\n \"/\\\\^\\\\x01([^\\\\x01])(?=[^\\\\x01]*\\\\x01)/e\": \"mb_strtoupper(\\\"\\u0001$1\\\")\",\n \"/_\\u0001([^\\u0001]*)\\u0001/\": \"javascript\"\n }\n },],],[\"PostLoadJS\",\"loadAndRequire\",[],[\"DimensionTracking\",],],[\"PostLoadJS\",\"loadAndCall\",[],[\"HighContrastMode\",\"init\",[{\n currentState: null,\n spacerImage: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\"\n },],],],[\"ScriptPath\",\"set\",[],[\"/home.php\",\"6bc96d96\",],],[\"ClickRefLogger\",],[\"userAction\",\"setUATypeConfig\",[],[{\n \"ua:n\": false,\n \"ua:i\": false,\n \"ua:d\": false,\n \"ua:e\": false\n },],],[\"ScriptPathState\",\"setUserURISampleRate\",[],[1050,],],[\"userAction\",\"setCustomSampleConfig\",[],[{\n \"ua:n\": {\n test: {\n ua_id: {\n test: true\n }\n }\n },\n \"ua:i\": {\n snowlift: {\n action: {\n open: true,\n close: true\n }\n },\n canvas: {\n action: {\n mouseover: true,\n mouseout: true\n }\n }\n }\n },],],[\"UserActionHistory\",],[\"ScriptPath\",\"startLogging\",[],[],],[\"TimeSpentBitArrayLogger\",\"init\",[],[],],[\"PixelRatio\",\"startDetecting\",[],[1,],],[\"LiveTimer\",\"restart\",[],[1373490143,],],[\"MessagingReliabilityLogger\",],[\"UnityLogging\",\"logUnityVersion\",[],[],],[\"DocumentTitle\",\"set\",[],[\"Facebook\",],],[\"SidebarPrelude\",\"addSidebarMode\",[],[1225,],],[\"m_0_0\",],[\"Quickling\",],[\"TinyViewport\",],[\"WebStorageMonster\",\"schedule\",[],[false,],],[\"AsyncRequestNectarLogging\",],[\"ViewasChromeBar\",\"initChromeBar\",[\"m_0_1\",],[{\n __m: \"m_0_1\"\n },],],[\"PagesVoiceBar\",\"initVoiceBar\",[],[],],[\"TypeaheadSearchBrowseUpsell\",\"registerForm\",[\"m_0_2\",],[{\n __m: \"m_0_2\"\n },],],[\"TypeaheadSearchSponsored\",\"setAuctionOptions\",[],[{\n maxNumberAds: 3,\n maxNumberRemovedResults: 2,\n maxNumberResultsAndAds: 8,\n v1: 1000000,\n v2: 0,\n v0: 100000,\n v3: 1000000,\n v4: 1000000,\n bootstrap: false,\n rerankingStrategy: 5\n },],],[\"AccessibleMenu\",\"init\",[\"m_0_4\",],[{\n __m: \"m_0_4\"\n },],],[\"MercuryJewel\",],[\"TitanLeftNav\",\"initialize\",[],[],],[\"m_0_7\",],[\"Typeahead\",\"init\",[\"m_0_8\",\"m_0_7\",\"TypeaheadExcludeBootstrapFromQueryCache\",\"TypeaheadSearchBrowseUpsell\",\"TypeaheadDetectQueryLocale\",],[{\n __m: \"m_0_8\"\n },{\n __m: \"m_0_7\"\n },[{\n __m: \"TypeaheadExcludeBootstrapFromQueryCache\"\n },{\n __m: \"TypeaheadSearchBrowseUpsell\"\n },{\n __m: \"TypeaheadDetectQueryLocale\"\n },\"searchSponsored\",\"searchRecorderBasic\",\"regulateMemorializedUsers\",\"showLoadingIndicator\",\"initFilters\",],null,],],[\"PlaceholderListener\",],[\"PlaceholderOnsubmitFormListener\",],[\"FlipDirectionOnKeypress\",],[\"enforceMaxLength\",],[\"m_0_5\",],[\"ChatOpenTab\",\"listenOpenEmptyTab\",[\"m_0_d\",],[{\n __m: \"m_0_d\"\n },],],[\"Scrollable\",],[\"m_0_f\",],[\"m_0_c\",],[\"WebStorageMonster\",\"registerLogoutForm\",[\"m_0_h\",],[{\n __m: \"m_0_h\"\n },[\"^Banzai$\",\"^\\\\:userchooser\\\\:osessusers$\",\"^[0-9]+:powereditor:\",\"^[0-9]+:page_insights:\",\"^_SocialFoxExternal_machineid$\",\"^_SocialFoxExternal_LoggedInBefore$\",\"^_socialfox_worker_enabled$\",],],],[\"m_0_k\",],[\"m_0_m\",],[\"m_0_n\",],[\"PrivacyLiteNUXController\",\"init\",[\"m_0_n\",],[{\n dialog: {\n __m: \"m_0_n\"\n },\n sectionID: \"who_can_see\",\n subsectionID: \"plite_activity_log\",\n showOnExpand: true\n },],],[\"m_0_p\",],[\"PrivacyLiteFlyout\",\"registerFinalReminderFlyout\",[\"m_0_p\",],[{\n __m: \"m_0_p\"\n },],],[\"PrivacyLiteFlyout\",\"registerFlyoutToggler\",[\"m_0_r\",\"m_0_s\",],[{\n __m: \"m_0_r\"\n },{\n __m: \"m_0_s\"\n },],],[\"Primer\",],[\"m_0_y\",],],\n instances: [[\"m_0_0\",[\"AsyncLayout\",],[\"contentArea\",],1,],[\"m_0_7\",[\"Typeahead\",\"m_0_a\",\"SearchTypeaheadView\",\"SearchTypeaheadRenderer\",\"m_0_8\",\"SearchTypeaheadCore\",\"m_0_9\",],[{\n __m: \"m_0_a\"\n },{\n node_id: \"u_0_0\",\n node: null,\n ctor: {\n __m: \"SearchTypeaheadView\"\n },\n options: {\n autoSelect: true,\n renderer: {\n __m: \"SearchTypeaheadRenderer\"\n },\n causalElement: {\n __m: \"m_0_8\"\n },\n maxResults: 8,\n minWidth: 0,\n alignment: \"left\",\n showBadges: 1,\n typeObjects: {\n app: {\n uid: \"app\",\n text: \"app\",\n type: \"header\",\n markup: \"Apps\"\n },\n JSBNG__event: {\n uid: \"JSBNG__event\",\n text: \"JSBNG__event\",\n type: \"header\",\n markup: \"Events\"\n },\n group: {\n uid: \"group\",\n text: \"group\",\n type: \"header\",\n markup: \"Groups\"\n },\n page: {\n uid: \"page\",\n text: \"page\",\n type: \"header\",\n markup: \"Pages\"\n },\n place: {\n uid: \"place\",\n text: \"place\",\n type: \"header\",\n markup: \"Places\"\n },\n shortcut: {\n uid: \"shortcut\",\n text: \"shortcut\",\n type: \"header\",\n markup: \"Facebook\"\n },\n user: {\n uid: \"user\",\n text: \"user\",\n type: \"header\",\n markup: \"People\"\n },\n song: {\n uid: \"song\",\n text: \"song\",\n type: \"header\",\n markup: \"Music\"\n },\n friendlist: {\n uid: \"friendlist\",\n text: \"friendlist\",\n type: \"header\",\n markup: \"Lists\"\n },\n hashtag_exact: {\n uid: \"hashtag_exact\",\n text: \"hashtag_exact\",\n type: \"header\",\n markup: \"Hashtag\"\n },\n websuggestion: {\n uid: \"websuggestion\",\n text: \"websuggestion\",\n type: \"header\",\n markup: \"Search the Web\"\n },\n ownsection: {\n uid: \"ownsection\",\n text: \"ownsection\",\n type: \"header\",\n markup: \"Sponsored\"\n },\n tophit: {\n uid: \"tophit\",\n text: \"tophit\",\n type: \"header\",\n markup: \"Top Hit\"\n }\n },\n seeMoreEndpoint: \"http://jsbngssl.www.facebook.com/search/results.php?init=quick\",\n showKeywordResultsPage: false,\n showFilterResults: false\n }\n },{\n ctor: {\n __m: \"SearchTypeaheadCore\"\n },\n options: {\n keepFocused: false,\n resetOnSelect: true\n }\n },{\n __m: \"m_0_9\"\n },],4,],[\"m_0_5\",[\"JewelX\",\"m_0_b\",],[{\n __m: \"m_0_b\"\n },{\n JSBNG__name: \"mercurymessages\"\n },],2,],[\"m_0_f\",[\"ScrollableArea\",\"m_0_e\",],[{\n __m: \"m_0_e\"\n },{\n persistent: true\n },],1,],[\"m_0_c\",[\"JewelX\",\"m_0_g\",],[{\n __m: \"m_0_g\"\n },{\n JSBNG__name: \"requests\"\n },],2,],[\"m_0_k\",[\"JewelX\",\"m_0_j\",],[{\n __m: \"m_0_j\"\n },{\n JSBNG__name: \"notifications\"\n },],1,],[\"m_0_m\",[\"ScrollableArea\",\"m_0_l\",],[{\n __m: \"m_0_l\"\n },{\n persistent: true\n },],1,],[\"m_0_n\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"m_0_o\",],[{\n width: 300,\n context: null,\n contextID: null,\n contextSelector: null,\n position: \"left\",\n alignment: \"left\",\n offsetX: 0,\n offsetY: 0,\n arrowBehavior: {\n __m: \"ContextualDialogArrow\"\n },\n theme: {\n __m: \"ContextualDialogDefaultTheme\"\n },\n addedBehaviors: [{\n __m: \"LayerRemoveOnHide\"\n },{\n __m: \"LayerHideOnTransition\"\n },{\n __m: \"LayerFadeOnShow\"\n },]\n },{\n __m: \"m_0_o\"\n },],3,],[\"m_0_p\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerDestroyOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_q\",],[{\n width: 300,\n context: null,\n contextID: \"u_0_6\",\n contextSelector: null,\n position: \"below\",\n alignment: \"right\",\n offsetX: 0,\n offsetY: 0,\n arrowBehavior: {\n __m: \"ContextualDialogArrow\"\n },\n theme: {\n __m: \"ContextualDialogDefaultTheme\"\n },\n addedBehaviors: [{\n __m: \"LayerRemoveOnHide\"\n },{\n __m: \"LayerDestroyOnHide\"\n },{\n __m: \"LayerHideOnTransition\"\n },{\n __m: \"LayerFadeOnShow\"\n },{\n __m: \"ContextualLayerAutoFlip\"\n },{\n __m: \"DialogHideOnSuccess\"\n },],\n classNames: [\"_57bl\",]\n },{\n __m: \"m_0_q\"\n },],3,],[\"m_0_y\",[\"PrivacyLiteFlyoutHelp\",\"m_0_t\",\"m_0_u\",\"m_0_v\",\"m_0_w\",\"m_0_x\",],[{\n __m: \"m_0_t\"\n },{\n __m: \"m_0_u\"\n },{\n __m: \"m_0_v\"\n },{\n __m: \"m_0_w\"\n },{\n __m: \"m_0_x\"\n },],1,],[\"m_0_a\",[\"SearchDataSource\",],[{\n minWebSugg: 3,\n minQueryLength: 2,\n maxWebSuggToCountFetchMore: 2,\n maxResults: 8,\n indexedFields: [\"text\",\"tokens\",\"alias\",\"non_title_tokens\",],\n titleFields: [\"text\",\"alias\",\"tokens\",],\n queryData: {\n viewer: 100006118350059,\n rsp: \"search\",\n context: \"search\"\n },\n queryEndpoint: \"/ajax/typeahead/search.php\",\n bootstrapData: {\n viewer: 100006118350059,\n token: \"v7\"\n },\n bootstrapEndpoint: \"/ajax/typeahead/search/bootstrap.php\",\n token: \"1372173655-7\",\n genTime: 1373490143,\n enabledQueryCache: true,\n queryExactMatch: false,\n enabledHashtag: true\n },],2,],[\"m_0_z\",[\"XHPTemplate\",\"m_0_15\",],[{\n __m: \"m_0_15\"\n },],2,],[\"m_0_10\",[\"XHPTemplate\",\"m_0_16\",],[{\n __m: \"m_0_16\"\n },],2,],[\"m_0_11\",[\"XHPTemplate\",\"m_0_17\",],[{\n __m: \"m_0_17\"\n },],2,],[\"m_0_12\",[\"XHPTemplate\",\"m_0_18\",],[{\n __m: \"m_0_18\"\n },],2,],[\"m_0_13\",[\"XHPTemplate\",\"m_0_19\",],[{\n __m: \"m_0_19\"\n },],2,],[\"m_0_14\",[\"XHPTemplate\",\"m_0_1a\",],[{\n __m: \"m_0_1a\"\n },],2,],],\n define: [[\"TimeSpentConfig\",[],{\n delay: 200000,\n initial_timeout: 8,\n initial_delay: 1000\n },142,],[\"MessagingReliabilityLoggerInitialData\",[],{\n enabled: false,\n app: \"mercury\"\n },44,],[\"QuicklingConfig\",[],{\n version: \"871405;0;0;0\",\n inactivePageRegex: \"^/(fr/u\\\\.php|ads/|advertising|ac\\\\.php|ae\\\\.php|ajax/emu/(end|f|h)\\\\.php|badges/|comments\\\\.php|connect/uiserver\\\\.php|editalbum\\\\.php.+add=1|ext/|feeds/|help([/?]|$)|identity_switch\\\\.php|intern/|login\\\\.php|logout\\\\.php|sitetour/homepage_tour\\\\.php|sorry\\\\.php|syndication\\\\.php|webmessenger|/plugins/subscribe|\\\\.pdf$|brandpermissions|gameday|pxlcld)\",\n sessionLength: 30\n },60,],[\"MercuryThreadlistIconTemplates\",[\"m_0_z\",\"m_0_10\",],{\n \":fb:mercury:attachment-indicator\": {\n __m: \"m_0_z\"\n },\n \":fb:mercury:attachment-icon-text\": {\n __m: \"m_0_10\"\n }\n },42,],[\"MercuryThreadlistConstants\",[],{\n SEARCH_TAB: \"searchtab\",\n JEWEL_MORE_COUNT: 10,\n WEBMESSENGER_SEARCH_SNIPPET_COUNT: 5,\n WEBMESSENGER_SEARCH_SNIPPET_MORE: 5,\n RECENT_MESSAGES_LIMIT: 10,\n WEBMESSENGER_SEARCH_SNIPPET_LIMIT: 5,\n WEBMESSENGER_MORE_MESSAGES_COUNT: 20,\n WEBMESSENGER_MORE_COUNT: 20,\n JEWEL_THREAD_COUNT: 5,\n RECENT_THREAD_OFFSET: 0,\n MAX_CHARS_BEFORE_BREAK: 280,\n MESSAGE_TIMESTAMP_THRESHOLD: 1209600000,\n GROUPING_THRESHOLD: 300000,\n MAX_UNSEEN_COUNT: 99,\n MAX_UNREAD_COUNT: 99,\n WEBMESSENGER_THREAD_COUNT: 20\n },96,],[\"MessagingConfig\",[],{\n SEND_BATCH_LIMIT: 5,\n IDLE_CUTOFF: 30000,\n SEND_CONNECTION_RETRIES: 2\n },97,],[\"MercuryParticipantsConstants\",[],{\n EMAIL_IMAGE: \"/images/messaging/threadlist/envelope.png\",\n BIG_IMAGE_SIZE: 50,\n IMAGE_SIZE: 32,\n UNKNOWN_GENDER: 0\n },109,],[\"MercuryConfig\",[],{\n \"24h_times\": false,\n activity_limit: 60000,\n idle_poll_interval: 300000,\n WebMessengerThreadSearchGK: 1,\n ChatSaveDraftsGK: 0,\n VideoCallingNoJavaGK: 0,\n MessagesJewelToggleReadGK: 1,\n SocialContextGK: 0,\n ChatMultiTypGK: 0,\n ChatMultiTypSendGK: 1,\n NewVCGK: 0,\n local_storage_crypto: null,\n MessagesDisableForwardingGK: 1,\n MessagesJewelOpenInChat: 0,\n filtering_active: true,\n idle_limit: 1800000,\n MessagingDisplayEmojiGK: 1,\n \"roger.seen_delay\": 15000\n },35,],[\"DateFormatConfig\",[],{\n weekStart: 6,\n ordinalSuffixes: {\n 1: \"st\",\n 2: \"nd\",\n 3: \"rd\",\n 4: \"th\",\n 5: \"th\",\n 6: \"th\",\n 7: \"th\",\n 8: \"th\",\n 9: \"th\",\n 10: \"th\",\n 11: \"th\",\n 12: \"th\",\n 13: \"th\",\n 14: \"th\",\n 15: \"th\",\n 16: \"th\",\n 17: \"th\",\n 18: \"th\",\n 19: \"th\",\n 20: \"th\",\n 21: \"st\",\n 22: \"nd\",\n 23: \"rd\",\n 24: \"th\",\n 25: \"th\",\n 26: \"th\",\n 27: \"th\",\n 28: \"th\",\n 29: \"th\",\n 30: \"th\",\n 31: \"st\"\n },\n numericDateSeparator: \"/\",\n numericDateOrder: [\"m\",\"d\",\"y\",],\n shortDayNames: [\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\",],\n formats: []\n },165,],[\"MercuryJewelTemplates\",[\"m_0_11\",],{\n \":fb:mercury:jewel:threadlist-row\": {\n __m: \"m_0_11\"\n }\n },39,],[\"MercuryStatusTemplates\",[\"m_0_12\",\"m_0_13\",\"m_0_14\",],{\n \":fb:mercury:resend-indicator\": {\n __m: \"m_0_12\"\n },\n \":fb:mercury:filtered-message\": {\n __m: \"m_0_13\"\n },\n \":fb:mercury:error-indicator\": {\n __m: \"m_0_14\"\n }\n },41,],[\"MercuryServerRequestsConfig\",[],{\n sendMessageTimeout: 45000\n },107,],[\"PresencePrivacyInitialData\",[],{\n visibility: 1,\n privacyData: {\n },\n onlinePolicy: 1\n },58,],[\"HashtagSearchResultConfig\",[],{\n boost_result: 1,\n hashtag_cost: 10959,\n image_url: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yF/r/irmqzCEvUpb.png\"\n },146,],],\n elements: [[\"m_0_3\",\"u_0_1\",2,\"m_0_2\",],[\"m_0_9\",\"u_0_2\",2,],[\"m_0_8\",\"u_0_3\",4,],[\"m_0_b\",\"fbMessagesJewel\",2,],[\"m_0_d\",\"u_0_4\",2,],[\"m_0_e\",\"MercuryJewelThreadList\",2,],[\"m_0_g\",\"fbRequestsJewel\",2,],[\"m_0_h\",\"logout_form\",2,],[\"m_0_j\",\"fbNotificationsJewel\",2,],[\"m_0_l\",\"u_0_5\",2,],[\"m_0_s\",\"u_0_8\",2,],[\"m_0_x\",\"u_0_9\",2,],[\"m_0_u\",\"u_0_a\",2,],[\"m_0_w\",\"u_0_b\",2,],[\"m_0_6\",\"navSearch\",2,],[\"m_0_r\",\"u_0_7\",2,],[\"m_0_v\",\"u_0_c\",2,],[\"m_0_t\",\"u_0_d\",2,],[\"m_0_4\",\"u_0_e\",2,],[\"m_0_i\",\"logout_form\",2,],[\"m_0_1\",\"u_0_f\",2,],],\n markup: [[\"m_0_2\",{\n __html: \"\\u003Cform rel=\\\"async\\\" action=\\\"/ajax/marketing/optin\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"project\\\" value=\\\"320951738012113\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"product\\\" value=\\\"Graph Search\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"source\\\" value=\\\"search_taui\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"mtm mlm rfloat\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu browseSignup selected _42gz\\\" type=\\\"submit\\\"\\u003EGet Graph Search\\u003C/button\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fr _42fu browseJoined selected _42gz\\\" disabled=\\\"1\\\" type=\\\"submit\\\"\\u003EYou&#039;re on the List!\\u003C/button\\u003E\\u003C/div\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"fwb\\\"\\u003ENew! Try Graph Search\\u003C/div\\u003EFind more of what you&#039;re looking for through friends and connections. \\u003Ca href=\\\"/about/graphsearch?source=search_tau\\\"\\u003ELearn More\\u003C/a\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\"\n },3,],[\"m_0_o\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Ca class=\\\"_1luv _1lvq\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"img\\\" alt=\\\"Close\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y0/r/K4K8h0mqOQN.png\\\" width=\\\"11\\\" height=\\\"13\\\" /\\u003E\\u003C/a\\u003E\\u003Cspan class=\\\"fsl\\\"\\u003E\\u003Cspan class=\\\"_3oyf\\\"\\u003ETry your new Privacy Shortcuts.\\u003C/span\\u003E Visit your Activity Log to review photos you&#039;re tagged in and things you&#039;ve hidden from your timeline.\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_q\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Cstrong\\u003ETip\\u003C/strong\\u003E: Graph Search is rolling out now, so it&#039;s getting easier for people to find photos and other things you&#039;ve shared with them. To check who can see your stuff, just click \\u003Cimg class=\\\"img\\\" alt=\\\"Privacy Shortcuts\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yO/r/eYJycDMyJiy.png\\\" width=\\\"12\\\" height=\\\"9\\\" /\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter _572u uiBoxGray topborder\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu layerConfirm _57bk uiOverlayButton selected _42g-\\\" type=\\\"submit\\\"\\u003EOkay\\u003C/button\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_15\",{\n __html: \"\\u003Ci class=\\\"mrs MercuryThreadlistIcon img sp_2gr8ms sx_22d5af\\\"\\u003E\\u003C/i\\u003E\"\n },2,],[\"m_0_16\",{\n __html: \"\\u003Cspan class=\\\"uiIconText _3tn\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\"\n },2,],[\"m_0_17\",{\n __html: \"\\u003Cli\\u003E\\u003Ca class=\\\"messagesContent\\\" data-jsid=\\\"link\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"MercuryThreadImage _8o _8s lfloat\\\" data-jsid=\\\"image\\\"\\u003E\\u003Cimg class=\\\"_s0 _rw img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"clearfix _42ef\\\"\\u003E\\u003Cdiv class=\\\"snippetThumbnail rfloat\\\"\\u003E\\u003Cspan class=\\\"_56hv hidden_elem\\\" data-jsid=\\\"snippet-thumbnail-single\\\"\\u003E\\u003Ci style=\\\"background-image: url(/images/blank.gif);\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"hidden_elem\\\" data-jsid=\\\"snippet-thumbnail-multiple\\\"\\u003E\\u003Cspan class=\\\"_56hy\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"_56hv\\\"\\u003E\\u003Ci style=\\\"background-image: url(/images/blank.gif);\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"content fsm fwn fcg\\\"\\u003E\\u003Cdiv class=\\\"author\\\"\\u003E\\u003Cstrong data-jsid=\\\"name\\\"\\u003E\\u003C/strong\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"snippet preview fsm fwn fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"snippet\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"time\\\"\\u003E\\u003Cabbr title=\\\"Wednesday, December 31, 1969 at 7:00pm\\\" data-utime=\\\"0\\\" class=\\\"hidden_elem timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003Eover a year ago\\u003C/abbr\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_18\",{\n __html: \"\\u003Cdiv class=\\\"_542d\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yv/r/O7ihJIPh_G0.gif\\\" alt=\\\"\\\" width=\\\"15\\\" height=\\\"15\\\" /\\u003E\\u003Cspan class=\\\"_55r6\\\"\\u003ESending...\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_19\",{\n __html: \"\\u003Cdiv class=\\\"mas pam uiBoxYellow\\\"\\u003E\\u003Cstrong\\u003EThis message is no longer available\\u003C/strong\\u003E because it was identified as abusive or marked as spam.\\u003C/div\\u003E\"\n },2,],[\"m_0_1a\",{\n __html: \"\\u003Cdiv class=\\\"_542d\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ye/r/NNg0bu4GBuz.png\\\" alt=\\\"\\\" width=\\\"13\\\" height=\\\"11\\\" /\\u003E\\u003Cspan class=\\\"_55r7\\\"\\u003EFailed to send\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],]\n});\nonloadRegister_DEPRECATED(function() {\n new AsyncRequest().setURI(\"/ajax/marketing/tour/privacy_dialog.php\").send();\n});\nonloadRegister_DEPRECATED(function() {\n requireLazy([\"MercuryJewel\",], function(MercuryJewel) {\n new MercuryJewel($(\"fbMessagesFlyout\"), $(\"fbMessagesJewel\"), require(\"m_0_5\"), {\n message_counts: [{\n unread_count: 0,\n unseen_count: 0,\n seen_timestamp: 0,\n last_action_id: 0,\n folder: \"inbox\"\n },{\n unread_count: 0,\n unseen_count: 0,\n seen_timestamp: 0,\n last_action_id: null,\n folder: \"other\"\n },],\n payload_source: \"server_initial_data\"\n });\n });\n});\nonloadRegister_DEPRECATED(function() {\n require(\"m_0_7\").getData().onLoad(false, true);\n});\nonloadRegister_DEPRECATED(function() {\n window.presenceRequests = JSCC.get(\"j1O7KQQXRw2M7DXJek0\").init(require(\"m_0_c\"), \"[fb]requests\", false);\n});\nonloadRegister_DEPRECATED(function() {\n window.presenceNotifications = new Notifications({\n updateTime: 1373490143000,\n latestNotif: null,\n latestReadNotif: null,\n updatePeriod: 480000,\n cacheVersion: 2,\n allowDesktopNotifications: false,\n notifReceivedType: \"notification\",\n wrapperID: \"fbNotificationsJewel\",\n contentID: \"fbNotificationsList\",\n shouldLogImpressions: 0,\n useInfiniteScroll: 1,\n persistUnreadColor: true,\n unseenVsUnread: 0\n });\n});\nonloadRegister_DEPRECATED(function() {\n Arbiter.inform(\"jewel/count-initial\", {\n jewel: \"notifications\",\n count: 0\n }, Arbiter.BEHAVIOR_STATE);\n});\nonafterloadRegister_DEPRECATED(function() {\n Bootloader.loadComponents([\"legacy:detect-broken-proxy-cache\",], function() {\n detect_broken_proxy_cache(\"100006118350059\", \"c_user\");\n });\n});\nonafterloadRegister_DEPRECATED(function() {\n Bootloader.loadComponents([\"autoset-timezone\",], function() {\n tz_autoset(1373490143, -240, 0);\n });\n});");
// 1060
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s1781b0f90407e4130b9cb2d35dc8345bef88e4c3");
// 1061
geval("try {\n Bootloader.configurePage([\"W3Ky6\",\"0duP3\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",]);\n Bootloader.done([\"jDr+c\",]);\n JSCC.init(({\n j1O7KQQXRw2M7DXJek0: function() {\n return new RequestsJewel();\n }\n }));\n require(\"InitialJSLoader\").handleServerJS({\n require: [[\"JSBNG__Intl\",\"setPhonologicalRules\",[],[{\n meta: {\n \"/_B/\": \"([.,!?\\\\s]|^)\",\n \"/_E/\": \"([.,!?\\\\s]|$)\"\n },\n patterns: {\n \"/\\u0001(.*)('|&#039;)s\\u0001(?:'|&#039;)s(.*)/\": \"\\u0001$1$2s\\u0001$3\",\n \"/_\\u0001([^\\u0001]*)\\u0001/e\": \"mb_strtolower(\\\"\\u0001$1\\u0001\\\")\",\n \"/\\\\^\\\\x01([^\\\\x01])(?=[^\\\\x01]*\\\\x01)/e\": \"mb_strtoupper(\\\"\\u0001$1\\\")\",\n \"/_\\u0001([^\\u0001]*)\\u0001/\": \"javascript\"\n }\n },],],[\"PostLoadJS\",\"loadAndRequire\",[],[\"DimensionTracking\",],],[\"PostLoadJS\",\"loadAndCall\",[],[\"HighContrastMode\",\"init\",[{\n currentState: null,\n spacerImage: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\"\n },],],],[\"ScriptPath\",\"set\",[],[\"/home.php\",\"6bc96d96\",],],[\"ClickRefLogger\",],[\"userAction\",\"setUATypeConfig\",[],[{\n \"ua:n\": false,\n \"ua:i\": false,\n \"ua:d\": false,\n \"ua:e\": false\n },],],[\"ScriptPathState\",\"setUserURISampleRate\",[],[1050,],],[\"userAction\",\"setCustomSampleConfig\",[],[{\n \"ua:n\": {\n test: {\n ua_id: {\n test: true\n }\n }\n },\n \"ua:i\": {\n snowlift: {\n action: {\n open: true,\n close: true\n }\n },\n canvas: {\n action: {\n mouseover: true,\n mouseout: true\n }\n }\n }\n },],],[\"UserActionHistory\",],[\"ScriptPath\",\"startLogging\",[],[],],[\"TimeSpentBitArrayLogger\",\"init\",[],[],],[\"PixelRatio\",\"startDetecting\",[],[1,],],[\"LiveTimer\",\"restart\",[],[1373490143,],],[\"MessagingReliabilityLogger\",],[\"UnityLogging\",\"logUnityVersion\",[],[],],[\"DocumentTitle\",\"set\",[],[\"Facebook\",],],[\"SidebarPrelude\",\"addSidebarMode\",[],[1225,],],[\"m_0_0\",],[\"Quickling\",],[\"TinyViewport\",],[\"WebStorageMonster\",\"schedule\",[],[false,],],[\"AsyncRequestNectarLogging\",],[\"ViewasChromeBar\",\"initChromeBar\",[\"m_0_1\",],[{\n __m: \"m_0_1\"\n },],],[\"PagesVoiceBar\",\"initVoiceBar\",[],[],],[\"TypeaheadSearchBrowseUpsell\",\"registerForm\",[\"m_0_2\",],[{\n __m: \"m_0_2\"\n },],],[\"TypeaheadSearchSponsored\",\"setAuctionOptions\",[],[{\n maxNumberAds: 3,\n maxNumberRemovedResults: 2,\n maxNumberResultsAndAds: 8,\n v1: 1000000,\n v2: 0,\n v0: 100000,\n v3: 1000000,\n v4: 1000000,\n bootstrap: false,\n rerankingStrategy: 5\n },],],[\"AccessibleMenu\",\"init\",[\"m_0_4\",],[{\n __m: \"m_0_4\"\n },],],[\"MercuryJewel\",],[\"TitanLeftNav\",\"initialize\",[],[],],[\"m_0_7\",],[\"Typeahead\",\"init\",[\"m_0_8\",\"m_0_7\",\"TypeaheadExcludeBootstrapFromQueryCache\",\"TypeaheadSearchBrowseUpsell\",\"TypeaheadDetectQueryLocale\",],[{\n __m: \"m_0_8\"\n },{\n __m: \"m_0_7\"\n },[{\n __m: \"TypeaheadExcludeBootstrapFromQueryCache\"\n },{\n __m: \"TypeaheadSearchBrowseUpsell\"\n },{\n __m: \"TypeaheadDetectQueryLocale\"\n },\"searchSponsored\",\"searchRecorderBasic\",\"regulateMemorializedUsers\",\"showLoadingIndicator\",\"initFilters\",],null,],],[\"PlaceholderListener\",],[\"PlaceholderOnsubmitFormListener\",],[\"FlipDirectionOnKeypress\",],[\"enforceMaxLength\",],[\"m_0_5\",],[\"ChatOpenTab\",\"listenOpenEmptyTab\",[\"m_0_d\",],[{\n __m: \"m_0_d\"\n },],],[\"Scrollable\",],[\"m_0_f\",],[\"m_0_c\",],[\"WebStorageMonster\",\"registerLogoutForm\",[\"m_0_h\",],[{\n __m: \"m_0_h\"\n },[\"^Banzai$\",\"^\\\\:userchooser\\\\:osessusers$\",\"^[0-9]+:powereditor:\",\"^[0-9]+:page_insights:\",\"^_SocialFoxExternal_machineid$\",\"^_SocialFoxExternal_LoggedInBefore$\",\"^_socialfox_worker_enabled$\",],],],[\"m_0_k\",],[\"m_0_m\",],[\"m_0_n\",],[\"PrivacyLiteNUXController\",\"init\",[\"m_0_n\",],[{\n dialog: {\n __m: \"m_0_n\"\n },\n sectionID: \"who_can_see\",\n subsectionID: \"plite_activity_log\",\n showOnExpand: true\n },],],[\"m_0_p\",],[\"PrivacyLiteFlyout\",\"registerFinalReminderFlyout\",[\"m_0_p\",],[{\n __m: \"m_0_p\"\n },],],[\"PrivacyLiteFlyout\",\"registerFlyoutToggler\",[\"m_0_r\",\"m_0_s\",],[{\n __m: \"m_0_r\"\n },{\n __m: \"m_0_s\"\n },],],[\"Primer\",],[\"m_0_y\",],],\n instances: [[\"m_0_0\",[\"AsyncLayout\",],[\"contentArea\",],1,],[\"m_0_7\",[\"Typeahead\",\"m_0_a\",\"SearchTypeaheadView\",\"SearchTypeaheadRenderer\",\"m_0_8\",\"SearchTypeaheadCore\",\"m_0_9\",],[{\n __m: \"m_0_a\"\n },{\n node_id: \"u_0_0\",\n node: null,\n ctor: {\n __m: \"SearchTypeaheadView\"\n },\n options: {\n autoSelect: true,\n renderer: {\n __m: \"SearchTypeaheadRenderer\"\n },\n causalElement: {\n __m: \"m_0_8\"\n },\n maxResults: 8,\n minWidth: 0,\n alignment: \"left\",\n showBadges: 1,\n typeObjects: {\n app: {\n uid: \"app\",\n text: \"app\",\n type: \"header\",\n markup: \"Apps\"\n },\n JSBNG__event: {\n uid: \"JSBNG__event\",\n text: \"JSBNG__event\",\n type: \"header\",\n markup: \"Events\"\n },\n group: {\n uid: \"group\",\n text: \"group\",\n type: \"header\",\n markup: \"Groups\"\n },\n page: {\n uid: \"page\",\n text: \"page\",\n type: \"header\",\n markup: \"Pages\"\n },\n place: {\n uid: \"place\",\n text: \"place\",\n type: \"header\",\n markup: \"Places\"\n },\n shortcut: {\n uid: \"shortcut\",\n text: \"shortcut\",\n type: \"header\",\n markup: \"Facebook\"\n },\n user: {\n uid: \"user\",\n text: \"user\",\n type: \"header\",\n markup: \"People\"\n },\n song: {\n uid: \"song\",\n text: \"song\",\n type: \"header\",\n markup: \"Music\"\n },\n friendlist: {\n uid: \"friendlist\",\n text: \"friendlist\",\n type: \"header\",\n markup: \"Lists\"\n },\n hashtag_exact: {\n uid: \"hashtag_exact\",\n text: \"hashtag_exact\",\n type: \"header\",\n markup: \"Hashtag\"\n },\n websuggestion: {\n uid: \"websuggestion\",\n text: \"websuggestion\",\n type: \"header\",\n markup: \"Search the Web\"\n },\n ownsection: {\n uid: \"ownsection\",\n text: \"ownsection\",\n type: \"header\",\n markup: \"Sponsored\"\n },\n tophit: {\n uid: \"tophit\",\n text: \"tophit\",\n type: \"header\",\n markup: \"Top Hit\"\n }\n },\n seeMoreEndpoint: \"http://jsbngssl.www.facebook.com/search/results.php?init=quick\",\n showKeywordResultsPage: false,\n showFilterResults: false\n }\n },{\n ctor: {\n __m: \"SearchTypeaheadCore\"\n },\n options: {\n keepFocused: false,\n resetOnSelect: true\n }\n },{\n __m: \"m_0_9\"\n },],4,],[\"m_0_5\",[\"JewelX\",\"m_0_b\",],[{\n __m: \"m_0_b\"\n },{\n JSBNG__name: \"mercurymessages\"\n },],2,],[\"m_0_f\",[\"ScrollableArea\",\"m_0_e\",],[{\n __m: \"m_0_e\"\n },{\n persistent: true\n },],1,],[\"m_0_c\",[\"JewelX\",\"m_0_g\",],[{\n __m: \"m_0_g\"\n },{\n JSBNG__name: \"requests\"\n },],2,],[\"m_0_k\",[\"JewelX\",\"m_0_j\",],[{\n __m: \"m_0_j\"\n },{\n JSBNG__name: \"notifications\"\n },],1,],[\"m_0_m\",[\"ScrollableArea\",\"m_0_l\",],[{\n __m: \"m_0_l\"\n },{\n persistent: true\n },],1,],[\"m_0_n\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"m_0_o\",],[{\n width: 300,\n context: null,\n contextID: null,\n contextSelector: null,\n position: \"left\",\n alignment: \"left\",\n offsetX: 0,\n offsetY: 0,\n arrowBehavior: {\n __m: \"ContextualDialogArrow\"\n },\n theme: {\n __m: \"ContextualDialogDefaultTheme\"\n },\n addedBehaviors: [{\n __m: \"LayerRemoveOnHide\"\n },{\n __m: \"LayerHideOnTransition\"\n },{\n __m: \"LayerFadeOnShow\"\n },]\n },{\n __m: \"m_0_o\"\n },],3,],[\"m_0_p\",[\"ContextualDialog\",\"ContextualDialogArrow\",\"ContextualDialogDefaultTheme\",\"LayerRemoveOnHide\",\"LayerDestroyOnHide\",\"LayerHideOnTransition\",\"LayerFadeOnShow\",\"ContextualLayerAutoFlip\",\"DialogHideOnSuccess\",\"m_0_q\",],[{\n width: 300,\n context: null,\n contextID: \"u_0_6\",\n contextSelector: null,\n position: \"below\",\n alignment: \"right\",\n offsetX: 0,\n offsetY: 0,\n arrowBehavior: {\n __m: \"ContextualDialogArrow\"\n },\n theme: {\n __m: \"ContextualDialogDefaultTheme\"\n },\n addedBehaviors: [{\n __m: \"LayerRemoveOnHide\"\n },{\n __m: \"LayerDestroyOnHide\"\n },{\n __m: \"LayerHideOnTransition\"\n },{\n __m: \"LayerFadeOnShow\"\n },{\n __m: \"ContextualLayerAutoFlip\"\n },{\n __m: \"DialogHideOnSuccess\"\n },],\n classNames: [\"_57bl\",]\n },{\n __m: \"m_0_q\"\n },],3,],[\"m_0_y\",[\"PrivacyLiteFlyoutHelp\",\"m_0_t\",\"m_0_u\",\"m_0_v\",\"m_0_w\",\"m_0_x\",],[{\n __m: \"m_0_t\"\n },{\n __m: \"m_0_u\"\n },{\n __m: \"m_0_v\"\n },{\n __m: \"m_0_w\"\n },{\n __m: \"m_0_x\"\n },],1,],[\"m_0_a\",[\"SearchDataSource\",],[{\n minWebSugg: 3,\n minQueryLength: 2,\n maxWebSuggToCountFetchMore: 2,\n maxResults: 8,\n indexedFields: [\"text\",\"tokens\",\"alias\",\"non_title_tokens\",],\n titleFields: [\"text\",\"alias\",\"tokens\",],\n queryData: {\n viewer: 100006118350059,\n rsp: \"search\",\n context: \"search\"\n },\n queryEndpoint: \"/ajax/typeahead/search.php\",\n bootstrapData: {\n viewer: 100006118350059,\n token: \"v7\"\n },\n bootstrapEndpoint: \"/ajax/typeahead/search/bootstrap.php\",\n token: \"1372173655-7\",\n genTime: 1373490143,\n enabledQueryCache: true,\n queryExactMatch: false,\n enabledHashtag: true\n },],2,],[\"m_0_z\",[\"XHPTemplate\",\"m_0_15\",],[{\n __m: \"m_0_15\"\n },],2,],[\"m_0_10\",[\"XHPTemplate\",\"m_0_16\",],[{\n __m: \"m_0_16\"\n },],2,],[\"m_0_11\",[\"XHPTemplate\",\"m_0_17\",],[{\n __m: \"m_0_17\"\n },],2,],[\"m_0_12\",[\"XHPTemplate\",\"m_0_18\",],[{\n __m: \"m_0_18\"\n },],2,],[\"m_0_13\",[\"XHPTemplate\",\"m_0_19\",],[{\n __m: \"m_0_19\"\n },],2,],[\"m_0_14\",[\"XHPTemplate\",\"m_0_1a\",],[{\n __m: \"m_0_1a\"\n },],2,],],\n define: [[\"TimeSpentConfig\",[],{\n delay: 200000,\n initial_timeout: 8,\n initial_delay: 1000\n },142,],[\"MessagingReliabilityLoggerInitialData\",[],{\n enabled: false,\n app: \"mercury\"\n },44,],[\"QuicklingConfig\",[],{\n version: \"871405;0;0;0\",\n inactivePageRegex: \"^/(fr/u\\\\.php|ads/|advertising|ac\\\\.php|ae\\\\.php|ajax/emu/(end|f|h)\\\\.php|badges/|comments\\\\.php|connect/uiserver\\\\.php|editalbum\\\\.php.+add=1|ext/|feeds/|help([/?]|$)|identity_switch\\\\.php|intern/|login\\\\.php|logout\\\\.php|sitetour/homepage_tour\\\\.php|sorry\\\\.php|syndication\\\\.php|webmessenger|/plugins/subscribe|\\\\.pdf$|brandpermissions|gameday|pxlcld)\",\n sessionLength: 30\n },60,],[\"MercuryThreadlistIconTemplates\",[\"m_0_z\",\"m_0_10\",],{\n \":fb:mercury:attachment-indicator\": {\n __m: \"m_0_z\"\n },\n \":fb:mercury:attachment-icon-text\": {\n __m: \"m_0_10\"\n }\n },42,],[\"MercuryThreadlistConstants\",[],{\n SEARCH_TAB: \"searchtab\",\n JEWEL_MORE_COUNT: 10,\n WEBMESSENGER_SEARCH_SNIPPET_COUNT: 5,\n WEBMESSENGER_SEARCH_SNIPPET_MORE: 5,\n RECENT_MESSAGES_LIMIT: 10,\n WEBMESSENGER_SEARCH_SNIPPET_LIMIT: 5,\n WEBMESSENGER_MORE_MESSAGES_COUNT: 20,\n WEBMESSENGER_MORE_COUNT: 20,\n JEWEL_THREAD_COUNT: 5,\n RECENT_THREAD_OFFSET: 0,\n MAX_CHARS_BEFORE_BREAK: 280,\n MESSAGE_TIMESTAMP_THRESHOLD: 1209600000,\n GROUPING_THRESHOLD: 300000,\n MAX_UNSEEN_COUNT: 99,\n MAX_UNREAD_COUNT: 99,\n WEBMESSENGER_THREAD_COUNT: 20\n },96,],[\"MessagingConfig\",[],{\n SEND_BATCH_LIMIT: 5,\n IDLE_CUTOFF: 30000,\n SEND_CONNECTION_RETRIES: 2\n },97,],[\"MercuryParticipantsConstants\",[],{\n EMAIL_IMAGE: \"/images/messaging/threadlist/envelope.png\",\n BIG_IMAGE_SIZE: 50,\n IMAGE_SIZE: 32,\n UNKNOWN_GENDER: 0\n },109,],[\"MercuryConfig\",[],{\n \"24h_times\": false,\n activity_limit: 60000,\n idle_poll_interval: 300000,\n WebMessengerThreadSearchGK: 1,\n ChatSaveDraftsGK: 0,\n VideoCallingNoJavaGK: 0,\n MessagesJewelToggleReadGK: 1,\n SocialContextGK: 0,\n ChatMultiTypGK: 0,\n ChatMultiTypSendGK: 1,\n NewVCGK: 0,\n local_storage_crypto: null,\n MessagesDisableForwardingGK: 1,\n MessagesJewelOpenInChat: 0,\n filtering_active: true,\n idle_limit: 1800000,\n MessagingDisplayEmojiGK: 1,\n \"roger.seen_delay\": 15000\n },35,],[\"DateFormatConfig\",[],{\n weekStart: 6,\n ordinalSuffixes: {\n 1: \"st\",\n 2: \"nd\",\n 3: \"rd\",\n 4: \"th\",\n 5: \"th\",\n 6: \"th\",\n 7: \"th\",\n 8: \"th\",\n 9: \"th\",\n 10: \"th\",\n 11: \"th\",\n 12: \"th\",\n 13: \"th\",\n 14: \"th\",\n 15: \"th\",\n 16: \"th\",\n 17: \"th\",\n 18: \"th\",\n 19: \"th\",\n 20: \"th\",\n 21: \"st\",\n 22: \"nd\",\n 23: \"rd\",\n 24: \"th\",\n 25: \"th\",\n 26: \"th\",\n 27: \"th\",\n 28: \"th\",\n 29: \"th\",\n 30: \"th\",\n 31: \"st\"\n },\n numericDateSeparator: \"/\",\n numericDateOrder: [\"m\",\"d\",\"y\",],\n shortDayNames: [\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\",],\n formats: []\n },165,],[\"MercuryJewelTemplates\",[\"m_0_11\",],{\n \":fb:mercury:jewel:threadlist-row\": {\n __m: \"m_0_11\"\n }\n },39,],[\"MercuryStatusTemplates\",[\"m_0_12\",\"m_0_13\",\"m_0_14\",],{\n \":fb:mercury:resend-indicator\": {\n __m: \"m_0_12\"\n },\n \":fb:mercury:filtered-message\": {\n __m: \"m_0_13\"\n },\n \":fb:mercury:error-indicator\": {\n __m: \"m_0_14\"\n }\n },41,],[\"MercuryServerRequestsConfig\",[],{\n sendMessageTimeout: 45000\n },107,],[\"PresencePrivacyInitialData\",[],{\n visibility: 1,\n privacyData: {\n },\n onlinePolicy: 1\n },58,],[\"HashtagSearchResultConfig\",[],{\n boost_result: 1,\n hashtag_cost: 10959,\n image_url: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yF/r/irmqzCEvUpb.png\"\n },146,],],\n elements: [[\"m_0_3\",\"u_0_1\",2,\"m_0_2\",],[\"m_0_9\",\"u_0_2\",2,],[\"m_0_8\",\"u_0_3\",4,],[\"m_0_b\",\"fbMessagesJewel\",2,],[\"m_0_d\",\"u_0_4\",2,],[\"m_0_e\",\"MercuryJewelThreadList\",2,],[\"m_0_g\",\"fbRequestsJewel\",2,],[\"m_0_h\",\"logout_form\",2,],[\"m_0_j\",\"fbNotificationsJewel\",2,],[\"m_0_l\",\"u_0_5\",2,],[\"m_0_s\",\"u_0_8\",2,],[\"m_0_x\",\"u_0_9\",2,],[\"m_0_u\",\"u_0_a\",2,],[\"m_0_w\",\"u_0_b\",2,],[\"m_0_6\",\"navSearch\",2,],[\"m_0_r\",\"u_0_7\",2,],[\"m_0_v\",\"u_0_c\",2,],[\"m_0_t\",\"u_0_d\",2,],[\"m_0_4\",\"u_0_e\",2,],[\"m_0_i\",\"logout_form\",2,],[\"m_0_1\",\"u_0_f\",2,],],\n markup: [[\"m_0_2\",{\n __html: \"\\u003Cform rel=\\\"async\\\" action=\\\"/ajax/marketing/optin\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"project\\\" value=\\\"320951738012113\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"product\\\" value=\\\"Graph Search\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"source\\\" value=\\\"search_taui\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"mtm mlm rfloat\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu browseSignup selected _42gz\\\" type=\\\"submit\\\"\\u003EGet Graph Search\\u003C/button\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fr _42fu browseJoined selected _42gz\\\" disabled=\\\"1\\\" type=\\\"submit\\\"\\u003EYou&#039;re on the List!\\u003C/button\\u003E\\u003C/div\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"fwb\\\"\\u003ENew! Try Graph Search\\u003C/div\\u003EFind more of what you&#039;re looking for through friends and connections. \\u003Ca href=\\\"/about/graphsearch?source=search_tau\\\"\\u003ELearn More\\u003C/a\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\"\n },3,],[\"m_0_o\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Ca class=\\\"_1luv _1lvq\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"img\\\" alt=\\\"Close\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y0/r/K4K8h0mqOQN.png\\\" width=\\\"11\\\" height=\\\"13\\\" /\\u003E\\u003C/a\\u003E\\u003Cspan class=\\\"fsl\\\"\\u003E\\u003Cspan class=\\\"_3oyf\\\"\\u003ETry your new Privacy Shortcuts.\\u003C/span\\u003E Visit your Activity Log to review photos you&#039;re tagged in and things you&#039;ve hidden from your timeline.\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_q\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"_53iv\\\"\\u003E\\u003Cdiv\\u003E\\u003Cstrong\\u003ETip\\u003C/strong\\u003E: Graph Search is rolling out now, so it&#039;s getting easier for people to find photos and other things you&#039;ve shared with them. To check who can see your stuff, just click \\u003Cimg class=\\\"img\\\" alt=\\\"Privacy Shortcuts\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yO/r/eYJycDMyJiy.png\\\" width=\\\"12\\\" height=\\\"9\\\" /\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter _572u uiBoxGray topborder\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu layerConfirm _57bk uiOverlayButton selected _42g-\\\" type=\\\"submit\\\"\\u003EOkay\\u003C/button\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_15\",{\n __html: \"\\u003Ci class=\\\"mrs MercuryThreadlistIcon img sp_2gr8ms sx_22d5af\\\"\\u003E\\u003C/i\\u003E\"\n },2,],[\"m_0_16\",{\n __html: \"\\u003Cspan class=\\\"uiIconText _3tn\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\"\n },2,],[\"m_0_17\",{\n __html: \"\\u003Cli\\u003E\\u003Ca class=\\\"messagesContent\\\" data-jsid=\\\"link\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"MercuryThreadImage _8o _8s lfloat\\\" data-jsid=\\\"image\\\"\\u003E\\u003Cimg class=\\\"_s0 _rw img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"clearfix _42ef\\\"\\u003E\\u003Cdiv class=\\\"snippetThumbnail rfloat\\\"\\u003E\\u003Cspan class=\\\"_56hv hidden_elem\\\" data-jsid=\\\"snippet-thumbnail-single\\\"\\u003E\\u003Ci style=\\\"background-image: url(/images/blank.gif);\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"hidden_elem\\\" data-jsid=\\\"snippet-thumbnail-multiple\\\"\\u003E\\u003Cspan class=\\\"_56hy\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"_56hv\\\"\\u003E\\u003Ci style=\\\"background-image: url(/images/blank.gif);\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"content fsm fwn fcg\\\"\\u003E\\u003Cdiv class=\\\"author\\\"\\u003E\\u003Cstrong data-jsid=\\\"name\\\"\\u003E\\u003C/strong\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"snippet preview fsm fwn fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"snippet\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"time\\\"\\u003E\\u003Cabbr title=\\\"Wednesday, December 31, 1969 at 7:00pm\\\" data-utime=\\\"0\\\" class=\\\"hidden_elem timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003Eover a year ago\\u003C/abbr\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_18\",{\n __html: \"\\u003Cdiv class=\\\"_542d\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yv/r/O7ihJIPh_G0.gif\\\" alt=\\\"\\\" width=\\\"15\\\" height=\\\"15\\\" /\\u003E\\u003Cspan class=\\\"_55r6\\\"\\u003ESending...\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_19\",{\n __html: \"\\u003Cdiv class=\\\"mas pam uiBoxYellow\\\"\\u003E\\u003Cstrong\\u003EThis message is no longer available\\u003C/strong\\u003E because it was identified as abusive or marked as spam.\\u003C/div\\u003E\"\n },2,],[\"m_0_1a\",{\n __html: \"\\u003Cdiv class=\\\"_542d\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ye/r/NNg0bu4GBuz.png\\\" alt=\\\"\\\" width=\\\"13\\\" height=\\\"11\\\" /\\u003E\\u003Cspan class=\\\"_55r7\\\"\\u003EFailed to send\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],]\n });\n onloadRegister_DEPRECATED(function() {\n new AsyncRequest().setURI(\"/ajax/marketing/tour/privacy_dialog.php\").send();\n });\n onloadRegister_DEPRECATED(function() {\n requireLazy([\"MercuryJewel\",], function(MercuryJewel) {\n new MercuryJewel($(\"fbMessagesFlyout\"), $(\"fbMessagesJewel\"), require(\"m_0_5\"), {\n message_counts: [{\n unread_count: 0,\n unseen_count: 0,\n seen_timestamp: 0,\n last_action_id: 0,\n folder: \"inbox\"\n },{\n unread_count: 0,\n unseen_count: 0,\n seen_timestamp: 0,\n last_action_id: null,\n folder: \"other\"\n },],\n payload_source: \"server_initial_data\"\n });\n });\n });\n onloadRegister_DEPRECATED(function() {\n require(\"m_0_7\").getData().onLoad(false, true);\n });\n onloadRegister_DEPRECATED(function() {\n window.presenceRequests = JSCC.get(\"j1O7KQQXRw2M7DXJek0\").init(require(\"m_0_c\"), \"[fb]requests\", false);\n });\n onloadRegister_DEPRECATED(function() {\n window.presenceNotifications = new Notifications({\n updateTime: 1373490143000,\n latestNotif: null,\n latestReadNotif: null,\n updatePeriod: 480000,\n cacheVersion: 2,\n allowDesktopNotifications: false,\n notifReceivedType: \"notification\",\n wrapperID: \"fbNotificationsJewel\",\n contentID: \"fbNotificationsList\",\n shouldLogImpressions: 0,\n useInfiniteScroll: 1,\n persistUnreadColor: true,\n unseenVsUnread: 0\n });\n });\n onloadRegister_DEPRECATED(function() {\n Arbiter.inform(\"jewel/count-initial\", {\n jewel: \"notifications\",\n count: 0\n }, Arbiter.BEHAVIOR_STATE);\n });\n onafterloadRegister_DEPRECATED(function() {\n Bootloader.loadComponents([\"legacy:detect-broken-proxy-cache\",], function() {\n detect_broken_proxy_cache(\"100006118350059\", \"c_user\");\n });\n });\n onafterloadRegister_DEPRECATED(function() {\n Bootloader.loadComponents([\"autoset-timezone\",], function() {\n tz_autoset(1373490143, -240, 0);\n });\n });\n} catch (JSBNG_ex) {\n\n};");
// 1062
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"if (self.CavalryLogger) {\n CavalryLogger.start_js([\"OJTM4\",]);\n}\n;\n__d(\"AjaxRequest\", [\"ErrorUtils\",\"Keys\",\"URI\",\"UserAgent\",\"XHR\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ErrorUtils\"), h = b(\"Keys\"), i = b(\"URI\"), j = b(\"UserAgent\"), k = b(\"XHR\"), l = b(\"copyProperties\");\n function m(q, r, s) {\n this.xhr = k.create();\n if (!((r instanceof i))) {\n r = new i(r);\n };\n if ((s && (q == \"GET\"))) {\n r.setQueryData(s);\n }\n else this._params = s;\n ;\n this.method = q;\n this.uri = r;\n this.xhr.open(q, r);\n };\n var n = (window.XMLHttpRequest && ((\"withCredentials\" in new XMLHttpRequest())));\n m.supportsCORS = function() {\n return n;\n };\n m.ERROR = \"ar:error\";\n m.TIMEOUT = \"ar:timeout\";\n m.PROXY_ERROR = \"ar:proxy error\";\n m.TRANSPORT_ERROR = \"ar:transport error\";\n m.SERVER_ERROR = \"ar:http error\";\n m.PARSE_ERROR = \"ar:parse error\";\n m._inflight = [];\n function o() {\n var q = m._inflight;\n m._inflight = [];\n q.forEach(function(r) {\n r.abort();\n });\n };\n function p(q) {\n q.onJSON = q.onError = q.onSuccess = null;\n clearTimeout(q._timer);\n if ((q.xhr && (q.xhr.readyState < 4))) {\n q.xhr.abort();\n q.xhr = null;\n }\n ;\n m._inflight = m._inflight.filter(function(r) {\n return (((r && (r != q)) && r.xhr) && (r.xhr.readyState < 4));\n });\n };\n l(m.prototype, {\n timeout: 60000,\n streamMode: true,\n prelude: /^for \\(;;\\);/,\n status: null,\n _eol: -1,\n _call: function(q) {\n if (this[q]) {\n this[q](this);\n };\n },\n _parseStatus: function() {\n var q;\n try {\n this.status = this.xhr.status;\n q = this.xhr.statusText;\n } catch (r) {\n if ((this.xhr.readyState >= 4)) {\n this.errorType = m.TRANSPORT_ERROR;\n this.errorText = r.message;\n }\n ;\n return;\n };\n if (((this.status === 0) && !(/^(file|ftp)/.test(this.uri)))) {\n this.errorType = m.TRANSPORT_ERROR;\n }\n else if (((this.status >= 100) && (this.status < 200))) {\n this.errorType = m.PROXY_ERROR;\n }\n else if (((this.status >= 200) && (this.status < 300))) {\n return;\n }\n else if (((this.status >= 300) && (this.status < 400))) {\n this.errorType = m.PROXY_ERROR;\n }\n else if (((this.status >= 400) && (this.status < 500))) {\n this.errorType = m.SERVER_ERROR;\n }\n else if (((this.status >= 500) && (this.status < 600))) {\n this.errorType = m.PROXY_ERROR;\n }\n else if ((this.status == 1223)) {\n return;\n }\n else if (((this.status >= 12001) && (this.status <= 12156))) {\n this.errorType = m.TRANSPORT_ERROR;\n }\n else {\n q = (\"unrecognized status code: \" + this.status);\n this.errorType = m.ERROR;\n }\n \n \n \n \n \n \n \n ;\n if (!this.errorText) {\n this.errorText = q;\n };\n },\n _parseResponse: function() {\n var q, r = this.xhr.readyState;\n try {\n q = (this.xhr.responseText || \"\");\n } catch (s) {\n if ((r >= 4)) {\n this.errorType = m.ERROR;\n this.errorText = (\"responseText not available - \" + s.message);\n }\n ;\n return;\n };\n while (this.xhr) {\n var t = (this._eol + 1), u = (this.streamMode ? q.indexOf(\"\\u000a\", t) : q.length);\n if (((u < 0) && (r == 4))) {\n u = q.length;\n };\n if ((u <= this._eol)) {\n break;\n };\n var v = q;\n if (this.streamMode) {\n v = q.substr(t, (u - t)).replace(/^\\s*|\\s*$/g, \"\");\n };\n if (((t === 0) && this.prelude)) {\n if (this.prelude.test(v)) {\n v = v.replace(this.prelude, \"\");\n }\n };\n this._eol = u;\n if (v) {\n try {\n this.json = JSON.parse(v);\n } catch (s) {\n var w = ((/(<body[\\S\\s]+?<\\/body>)/i).test(q) && RegExp.$1), x = {\n message: s.message,\n char: t,\n excerpt: (((((t === 0) && w)) || v)).substr(512)\n };\n this.errorType = m.PARSE_ERROR;\n this.errorText = (\"parse error - \" + JSON.stringify(x));\n return;\n };\n g.applyWithGuard(this._call, this, [\"onJSON\",]);\n }\n ;\n };\n },\n _onReadyState: function() {\n var q = ((this.xhr && this.xhr.readyState) || 0);\n if (((this.status == null) && (q >= 2))) {\n this._parseStatus();\n };\n if ((!this.errorType && (this.status != null))) {\n if (((((q == 3) && this.streamMode)) || (q == 4))) {\n this._parseResponse();\n }\n };\n if ((this.errorType || (q == 4))) {\n this._time = (Date.now() - this._sentAt);\n this._call((!this.errorType ? \"onSuccess\" : \"onError\"));\n p(this);\n }\n ;\n },\n send: function(q) {\n this.xhr.onreadystatechange = function() {\n g.applyWithGuard(this._onReadyState, this, arguments);\n }.bind(this);\n var r = this.timeout;\n if (r) {\n this._timer = setTimeout((function() {\n this.errorType = m.TIMEOUT;\n this.errorText = \"timeout\";\n this._time = (Date.now() - this._sentAt);\n this._call(\"onError\");\n p(this);\n }).bind(this), r, false);\n };\n m._inflight.push(this);\n if ((this.method == \"POST\")) {\n this.xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n };\n this._sentAt = Date.now();\n this.xhr.send((q ? i.implodeQuery(q) : \"\"));\n },\n abort: function() {\n p(this);\n },\n toString: function() {\n var q = (\"[AjaxRequest readyState=\" + this.xhr.readyState);\n if (this.errorType) {\n q += ((((\" errorType=\" + this.errorType) + \" (\") + this.errorText) + \")\");\n };\n return (q + \"]\");\n },\n toJSON: function() {\n var q = {\n json: this.json,\n status: this.status,\n errorType: this.errorType,\n errorText: this.errorText,\n time: this._time\n };\n if (this.errorType) {\n q.uri = this.uri;\n };\n for (var r in q) {\n if ((q[r] == null)) {\n delete q[r];\n };\n };\n return q;\n }\n });\n if ((window.addEventListener && j.firefox())) {\n window.addEventListener(\"keydown\", function(event) {\n if ((event.keyCode === h.ESC)) {\n event.prevent();\n };\n }, false);\n };\n if (window.attachEvent) {\n window.attachEvent(\"onunload\", o);\n };\n e.exports = m;\n});\n__d(\"FBAjaxRequest\", [\"AjaxRequest\",\"copyProperties\",\"XHR\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxRequest\"), h = b(\"copyProperties\"), i = b(\"XHR\");\n function j(k, l, m) {\n m = h(i.getAsyncParams(k), m);\n var n = new g(k, l, m);\n n.streamMode = false;\n var o = n._call;\n n._call = function(p) {\n if (((p == \"onJSON\") && this.json)) {\n if (this.json.error) {\n this.errorType = g.SERVER_ERROR;\n this.errorText = (\"AsyncResponse error: \" + this.json.error);\n }\n ;\n this.json = this.json.payload;\n }\n ;\n o.apply(this, arguments);\n };\n n.ajaxReqSend = n.send;\n n.send = function(p) {\n this.ajaxReqSend(h(p, m));\n };\n return n;\n };\n e.exports = j;\n});\n__d(\"CallbackManagerController\", [\"ErrorUtils\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ErrorUtils\"), h = b(\"copyProperties\"), i = function(j) {\n this._pendingIDs = [];\n this._allRequests = [undefined,];\n this._callbackArgHandler = j;\n };\n h(i.prototype, {\n executeOrEnqueue: function(j, k, l) {\n l = (l || {\n });\n var m = this._attemptCallback(k, j, l);\n if (m) {\n return 0\n };\n this._allRequests.push({\n fn: k,\n request: j,\n options: l\n });\n var n = (this._allRequests.length - 1);\n this._pendingIDs.push(n);\n return n;\n },\n unsubscribe: function(j) {\n delete this._allRequests[j];\n },\n reset: function() {\n this._allRequests = [];\n },\n getRequest: function(j) {\n return this._allRequests[j];\n },\n runPossibleCallbacks: function() {\n var j = this._pendingIDs;\n this._pendingIDs = [];\n var k = [];\n j.forEach(function(l) {\n var m = this._allRequests[l];\n if (!m) {\n return\n };\n if (this._callbackArgHandler(m.request, m.options)) {\n k.push(l);\n }\n else this._pendingIDs.push(l);\n ;\n }.bind(this));\n k.forEach(function(l) {\n var m = this._allRequests[l];\n delete this._allRequests[l];\n this._attemptCallback(m.fn, m.request, m.options);\n }.bind(this));\n },\n _attemptCallback: function(j, k, l) {\n var m = this._callbackArgHandler(k, l);\n if (m) {\n var n = {\n ids: k\n };\n g.applyWithGuard(j, n, m);\n }\n ;\n return !!m;\n }\n });\n e.exports = i;\n});\n__d(\"deferred\", [], function(a, b, c, d, e, f) {\n var g = 0, h = 1, i = 2, j = 4, k = \"callbacks\", l = \"errbacks\", m = \"cancelbacks\", n = \"completeCallbacks\", o = [], p = o.slice, q = o.unshift;\n function r(w, x) {\n return (w ? p.call(w, x) : o);\n };\n function s(w, x) {\n return ((x < w.length) ? r(w, x) : o);\n };\n function t() {\n this.$Deferred0 = g;\n };\n t.prototype.addCallback = function(w, x) {\n return this.$Deferred1(h, this.$Deferred2(k), w, x, s(arguments, 2));\n };\n t.prototype.removeCallback = function(w, x) {\n return this.$Deferred3(this.$Deferred2(k), w, x);\n };\n t.prototype.addCompleteCallback = function(w, x) {\n return this.$Deferred1(null, this.$Deferred2(n), w, x, s(arguments, 2));\n };\n t.prototype.removeCompleteCallback = function(w, x) {\n return this.$Deferred3(this.$Deferred2(n), w, x);\n };\n t.prototype.addErrback = function(w, x) {\n return this.$Deferred1(i, this.$Deferred2(l), w, x, s(arguments, 2));\n };\n t.prototype.removeErrback = function(w, x) {\n return this.$Deferred3(this.$Deferred2(l), w, x);\n };\n t.prototype.addCancelback = function(w, x) {\n return this.$Deferred1(j, this.$Deferred2(m), w, x, s(arguments, 2));\n };\n t.prototype.removeCancelback = function(w, x) {\n return this.$Deferred3(this.$Deferred2(m), w, x);\n };\n t.prototype.getStatus = function() {\n return this.$Deferred0;\n };\n t.prototype.setStatus = function(w) {\n var x;\n this.$Deferred0 = w;\n this.callbackArgs = r(arguments, 1);\n if ((w === i)) {\n x = l;\n }\n else if ((w === h)) {\n x = k;\n }\n else if ((w === j)) {\n x = m;\n }\n \n ;\n if (x) {\n this.$Deferred4(this[x], this.callbackArgs);\n };\n this.$Deferred4(this[n], this.callbackArgs);\n return this;\n };\n t.prototype.setTimeout = function(w) {\n if (this.timeout) {\n this.clearTimeout();\n };\n this.$Deferred5 = (this.$Deferred5 || this.fail.bind(this));\n this.timeout = window.setTimeout(this.$Deferred5, w);\n };\n t.prototype.clearTimeout = function() {\n window.clearTimeout(this.timeout);\n delete this.timeout;\n };\n t.prototype.succeed = function() {\n return this.$Deferred6(h, arguments);\n };\n t.prototype.fail = function() {\n return this.$Deferred6(i, arguments);\n };\n t.prototype.cancel = function() {\n delete this[k];\n delete this[l];\n return this.$Deferred6(j, arguments);\n };\n t.prototype.$Deferred6 = function(w, x) {\n q.call(x, w);\n return this.setStatus.apply(this, x);\n };\n t.prototype.$Deferred2 = function(w) {\n return (this[w] || (this[w] = []));\n };\n t.prototype.then = function(w, x, y, z) {\n var aa = new t(), w, ba, ca, da = r(arguments, 0);\n if ((typeof da[0] === \"function\")) {\n w = da.shift();\n };\n if ((typeof da[0] === \"function\")) {\n ba = da.shift();\n };\n if ((typeof da[0] === \"function\")) {\n ca = da.shift();\n };\n var ea = da.shift();\n if (w) {\n var fa = [this.$Deferred7,this,aa,\"succeed\",w,ea,].concat(da);\n this.addCallback.apply(this, fa);\n }\n else this.addCallback(aa.succeed, aa);\n ;\n if (ba) {\n var ga = [this.$Deferred7,this,aa,\"fail\",ba,ea,].concat(da);\n this.addErrback.apply(this, ga);\n }\n else this.addErrback(aa.fail, aa);\n ;\n if (ca) {\n var ha = [this.$Deferred7,this,aa,\"cancel\",ca,ea,].concat(da);\n this.addCancelback.apply(this, ha);\n }\n else this.addCancelback(aa.cancel, aa);\n ;\n return aa;\n };\n t.prototype.$Deferred1 = function(w, x, y, z, aa) {\n var ba = this.getStatus();\n if ((((!w && (ba !== g))) || (ba === w))) {\n y.apply((z || this), aa.concat(this.callbackArgs));\n }\n else x.push(y, z, aa);\n ;\n return this;\n };\n t.prototype.$Deferred3 = function(w, x, y) {\n for (var z = 0; (z < w.length); z += 3) {\n if (((w[z] === x) && ((!y || (w[(z + 1)] === y))))) {\n w.splice(z, 3);\n if (y) {\n break;\n };\n z -= 3;\n }\n ;\n };\n return this;\n };\n t.prototype.pipe = function(w) {\n this.addCallback(w.succeed, w).addErrback(w.fail, w).addCancelback(w.cancel, w);\n };\n t.prototype.$Deferred4 = function(w, x) {\n for (var y = 0; (y < ((w || o)).length); y += 3) {\n w[y].apply((w[(y + 1)] || this), ((w[(y + 2)] || o)).concat(x));;\n };\n };\n t.prototype.$Deferred7 = function(w, x, y, z) {\n var aa = r(arguments, 4), ba = y.apply(z, aa);\n if ((ba instanceof t)) {\n ba.pipe(w);\n }\n else w[x](ba);\n ;\n };\n var u = ((t === null) ? null : t.prototype);\n v.prototype = Object.create(u);\n v.prototype.constructor = v;\n v.__superConstructor__ = t;\n function v(w) {\n t.call(this);\n this.completed = 0;\n this.list = [];\n if (w) {\n w.forEach(this.waitFor, this);\n this.startWaiting();\n }\n ;\n };\n v.prototype.startWaiting = function() {\n this.waiting = true;\n this.checkDeferreds();\n return this;\n };\n v.prototype.waitFor = function(w) {\n this.list.push(w);\n this.checkDeferreds();\n w.addCompleteCallback(this.deferredComplete, this);\n return this;\n };\n v.prototype.createWaitForDeferred = function() {\n var w = new t();\n this.waitFor(w);\n return w;\n };\n v.prototype.createWaitForCallback = function() {\n var w = this.createWaitForDeferred();\n return w.succeed.bind(w);\n };\n v.prototype.deferredComplete = function() {\n this.completed++;\n if ((this.completed === this.list.length)) {\n this.checkDeferreds();\n };\n };\n v.prototype.checkDeferreds = function() {\n if ((!this.waiting || (this.completed !== this.list.length))) {\n return\n };\n var w = false, x = false, y = [g,];\n for (var z = 0, aa = this.list.length; (z < aa); z++) {\n var ba = this.list[z];\n y.push([ba,].concat(ba.callbackArgs));\n if ((ba.getStatus() === i)) {\n w = true;\n }\n else if ((ba.getStatus() === j)) {\n x = true;\n }\n ;\n };\n if (w) {\n y[0] = i;\n this.fail.apply(this, y);\n }\n else if (x) {\n y[0] = j;\n this.cancel.apply(this, y);\n }\n else {\n y[0] = h;\n this.succeed.apply(this, y);\n }\n \n ;\n };\n f.Deferred = t;\n f.DeferredList = v;\n f.Deferred.toArray = r;\n f.Deferred.STATUS_UNKNOWN = g;\n f.Deferred.STATUS_SUCCEEDED = h;\n f.Deferred.STATUS_CANCELED = j;\n f.Deferred.STATUS_FAILED = i;\n});\n__d(\"KeyedCallbackManager\", [\"CallbackManagerController\",\"deferred\",\"ErrorUtils\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"CallbackManagerController\"), h = b(\"deferred\").Deferred, i = b(\"ErrorUtils\"), j = b(\"copyProperties\"), k = function() {\n this._resources = {\n };\n this._controller = new g(this._constructCallbackArg.bind(this));\n };\n j(k.prototype, {\n executeOrEnqueue: function(l, m) {\n if (!((l instanceof Array))) {\n var n = l, o = m;\n l = [l,];\n m = function(p) {\n o(p[n]);\n };\n }\n ;\n l = l.filter(function(p) {\n var q = (((p !== null) && (p !== undefined)));\n if (!q) {\n i.applyWithGuard(function() {\n throw new Error(((\"KeyedCallbackManager.executeOrEnqueue: key \" + JSON.stringify(p)) + \" is invalid\"));\n });\n };\n return q;\n });\n return this._controller.executeOrEnqueue(l, m);\n },\n deferredExecuteOrEnqueue: function(l) {\n var m = new h();\n this.executeOrEnqueue(l, m.succeed.bind(m));\n return m;\n },\n unsubscribe: function(l) {\n this._controller.unsubscribe(l);\n },\n reset: function() {\n this._controller.reset();\n this._resources = {\n };\n },\n getUnavailableResources: function(l) {\n var m = this._controller.getRequest(l), n = [];\n if (m) {\n n = m.request.filter(function(o) {\n return !this._resources[o];\n }.bind(this));\n };\n return n;\n },\n getUnavailableResourcesFromRequest: function(l) {\n var m = (Array.isArray(l) ? l : [l,]);\n return m.filter(function(n) {\n if (((n !== null) && (n !== undefined))) {\n return !this._resources[n]\n };\n }, this);\n },\n addResourcesAndExecute: function(l) {\n j(this._resources, l);\n this._controller.runPossibleCallbacks();\n },\n setResource: function(l, m) {\n this._resources[l] = m;\n this._controller.runPossibleCallbacks();\n },\n getResource: function(l) {\n return this._resources[l];\n },\n getAllResources: function() {\n return this._resources;\n },\n dumpResources: function() {\n var l = {\n };\n for (var m in this._resources) {\n var n = this._resources[m];\n if ((typeof n === \"object\")) {\n n = j({\n }, n);\n };\n l[m] = n;\n };\n return l;\n },\n _constructCallbackArg: function(l) {\n var m = {\n };\n for (var n = 0; (n < l.length); n++) {\n var o = l[n], p = this._resources[o];\n if ((typeof p == \"undefined\")) {\n return false\n };\n m[o] = p;\n };\n return [m,];\n }\n });\n e.exports = k;\n});\n__d(\"BaseAsyncLoader\", [\"KeyedCallbackManager\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"KeyedCallbackManager\"), h = b(\"copyProperties\"), i = {\n };\n function j(l, m, n) {\n var o = new g(), p = false, q = [];\n function r() {\n if ((!q.length || p)) {\n return\n };\n p = true;\n t.defer();\n };\n function s(w) {\n p = false;\n w.forEach(o.unsubscribe.bind(o));\n r();\n };\n function t() {\n var w = {\n }, x = [];\n q = q.filter(function(z) {\n var aa = o.getUnavailableResources(z);\n if (aa.length) {\n aa.forEach(function(ba) {\n w[ba] = true;\n });\n x.push(z);\n return true;\n }\n ;\n return false;\n });\n var y = Object.keys(w);\n if (y.length) {\n n(l, y, x, u.curry(x), v.curry(x));\n }\n else p = false;\n ;\n };\n function u(w, x) {\n var y = (x.payload[m] || x.payload);\n o.addResourcesAndExecute(y);\n s(w);\n };\n function v(w) {\n s(w);\n };\n return {\n get: function(w, x) {\n var y = o.executeOrEnqueue(w, x), z = o.getUnavailableResources(y);\n if (z.length) {\n q.push(y);\n r();\n }\n ;\n },\n getCachedKeys: function() {\n return Object.keys(o.getAllResources());\n },\n getNow: function(w) {\n return (o.getResource(w) || null);\n },\n set: function(w) {\n o.addResourcesAndExecute(w);\n }\n };\n };\n function k(l, m) {\n throw (\"BaseAsyncLoader can't be instantiated\");\n };\n h(k.prototype, {\n _getLoader: function() {\n if (!i[this._endpoint]) {\n i[this._endpoint] = j(this._endpoint, this._type, this.send);\n };\n return i[this._endpoint];\n },\n get: function(l, m) {\n return this._getLoader().get(l, m);\n },\n getCachedKeys: function() {\n return this._getLoader().getCachedKeys();\n },\n getNow: function(l) {\n return this._getLoader().getNow(l);\n },\n reset: function() {\n i[this._endpoint] = null;\n },\n set: function(l) {\n this._getLoader().set(l);\n }\n });\n e.exports = k;\n});\n__d(\"AjaxLoader\", [\"copyProperties\",\"FBAjaxRequest\",\"BaseAsyncLoader\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"FBAjaxRequest\"), i = b(\"BaseAsyncLoader\");\n function j(k, l) {\n this._endpoint = k;\n this._type = l;\n };\n g(j.prototype, i.prototype);\n j.prototype.send = function(k, l, m, n, o) {\n var p = new h(\"GET\", k, {\n ids: l\n });\n p.onJSON = function(q) {\n n({\n payload: q.json\n });\n };\n p.onError = o;\n p.send();\n };\n e.exports = j;\n});\n__d(\"CLoggerX\", [\"Banzai\",\"DOM\",\"debounce\",\"Event\",\"ge\",\"Parent\",\"Keys\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\"), h = b(\"DOM\"), i = b(\"debounce\"), j = b(\"Event\"), k = b(\"ge\"), l = b(\"Parent\"), m = ((10 * 60) * 1000), n = b(\"Keys\").RETURN, o = {\n }, p = function(s) {\n var t = ((s.target || s.srcElement)).id, u = ((s.target || s.srcElement)).value.trim().length, v = q.getTracker(t);\n if (!v) {\n return\n };\n if (((u > 5) && !v.submitted)) {\n g.post(\"censorlogger\", {\n cl_impid: v.impid,\n clearcounter: v.clearcounter,\n instrument: v.type,\n elementid: t,\n parent_fbid: (((v.parent_fbid == \"unknown\") ? null : v.parent_fbid)),\n version: \"x\"\n }, g.VITAL);\n q.setSubmitted(t, true);\n }\n else if ((((u === 0) && v.submitted) && (s.which != n))) {\n o[t] = r(t);\n o[t]();\n }\n else if (((u > 0) && v.submitted)) {\n if (o[t]) {\n o[t].reset();\n }\n }\n \n ;\n }, q = {\n init: function() {\n this.trackedElements = (this.trackedElements || {\n });\n this.feedbackForms = (this.feedbackForms || {\n });\n },\n setImpressionID: function(s) {\n this.init();\n this.impressionID = s;\n this.clean();\n },\n setComposerTargetData: function(s) {\n this.cTargetID = (s.targetID || \"unknown\");\n this.cTargetFBType = (s.targetType || \"unknown\");\n },\n clean: function() {\n for (var s in this.trackedElements) {\n if (o[s]) {\n o[s].reset();\n delete o[s];\n }\n ;\n delete this.trackedElements[s];\n };\n },\n trackComposer: function(s, t, u) {\n this.setComposerTargetData(u);\n this.startTracking(s, \"composer\", this.cTargetID, this.cTargetFBType, t);\n },\n trackFeedbackForm: function(s, t, u) {\n this.init();\n this.impressionID = (this.impressionID || u);\n var v, w, x;\n v = h.getID(s);\n w = (t ? (t.targetID || \"unknown\") : \"unknown\");\n x = (t ? (t.targetType || \"unknown\") : \"unknown\");\n this.feedbackForms[v] = {\n parent_fbid: w,\n parent_type: x\n };\n },\n trackMentionsInput: function(s, t) {\n this.init();\n var u, v, w;\n if (!s) {\n return\n };\n u = l.byTag(s, \"form\");\n if (!u) {\n return\n };\n v = h.getID(u);\n w = this.feedbackForms[v];\n if (!w) {\n return\n };\n var x = (t || w.parent_fbid), y = (t ? 416 : w.parent_type);\n this.startTracking(s, \"comment\", x, y, u);\n },\n startTracking: function(s, t, u, v, w) {\n this.init();\n var x = h.getID(s);\n if (this.getTracker(x)) {\n return\n };\n var y = h.getID(w);\n j.listen(s, \"keyup\", p.bind(this));\n this.trackedElements[x] = {\n submitted: false,\n clearcounter: 0,\n type: t,\n impid: this.impressionID,\n parent_fbid: u,\n parent_type: v,\n parentElID: y\n };\n this.addJoinTableInfoToForm(w, x);\n },\n getTracker: function(s) {\n return ((this.trackedElements ? this.trackedElements[s] : null));\n },\n setSubmitted: function(s, t) {\n if (this.trackedElements[s]) {\n this.trackedElements[s].submitted = t;\n };\n },\n incrementClearCounter: function(s) {\n var t = this.getTracker(s);\n if (!t) {\n return\n };\n t.clearcounter++;\n t.submitted = false;\n var u = h.scry(k(t.parentElID), \"input[name=\\\"clp\\\"]\")[0];\n if (u) {\n u.value = this.getJSONRepForTrackerID(s);\n };\n this.trackedElements[s] = t;\n },\n addJoinTableInfoToForm: function(s, t) {\n var u = this.getTracker(t);\n if (!u) {\n return\n };\n var v = h.scry(s, \"input[name=\\\"clp\\\"]\")[0];\n if (!v) {\n h.prependContent(s, h.create(\"input\", {\n type: \"hidden\",\n name: \"clp\",\n value: this.getJSONRepForTrackerID(t)\n }));\n };\n },\n getCLParamsForTarget: function(s, t) {\n if (!s) {\n return \"\"\n };\n var u = h.getID(s);\n return this.getJSONRepForTrackerID(u, t);\n },\n getJSONRepForTrackerID: function(s, t) {\n var u = this.getTracker(s);\n if (!u) {\n return \"\"\n };\n return JSON.stringify({\n cl_impid: u.impid,\n clearcounter: u.clearcounter,\n elementid: s,\n version: \"x\",\n parent_fbid: (t || u.parent_fbid)\n });\n }\n }, r = function(s) {\n return i(function() {\n q.incrementClearCounter(s);\n }, m, q);\n };\n e.exports = q;\n});\n__d(\"ChannelConstants\", [], function(a, b, c, d, e, f) {\n var g = \"channel/\", h = {\n ON_SHUTDOWN: (g + \"shutdown\"),\n ON_INVALID_HISTORY: (g + \"invalid_history\"),\n ON_CONFIG: (g + \"config\"),\n ON_ENTER_STATE: (g + \"enter_state\"),\n ON_EXIT_STATE: (g + \"exit_state\"),\n OK: \"ok\",\n ERROR: \"error\",\n ERROR_MAX: \"error_max\",\n ERROR_MISSING: \"error_missing\",\n ERROR_MSG_TYPE: \"error_msg_type\",\n ERROR_SHUTDOWN: \"error_shutdown\",\n ERROR_STALE: \"error_stale\",\n SYS_OWNER: \"sys_owner\",\n SYS_NONOWNER: \"sys_nonowner\",\n SYS_ONLINE: \"sys_online\",\n SYS_OFFLINE: \"sys_offline\",\n SYS_TIMETRAVEL: \"sys_timetravel\",\n HINT_AUTH: \"shutdown auth\",\n HINT_CONN: \"shutdown conn\",\n HINT_DISABLED: \"shutdown disabled\",\n HINT_INVALID_STATE: \"shutdown invalid state\",\n HINT_MAINT: \"shutdown maint\",\n HINT_UNSUPPORTED: \"shutdown unsupported\",\n reason_Unknown: 0,\n reason_AsyncError: 1,\n reason_TooLong: 2,\n reason_Refresh: 3,\n reason_RefreshDelay: 4,\n reason_UIRestart: 5,\n reason_NeedSeq: 6,\n reason_PrevFailed: 7,\n reason_IFrameLoadGiveUp: 8,\n reason_IFrameLoadRetry: 9,\n reason_IFrameLoadRetryWorked: 10,\n reason_PageTransitionRetry: 11,\n reason_IFrameLoadMaxSubdomain: 12,\n reason_NoChannelInfo: 13,\n reason_NoChannelHost: 14,\n CAPABILITY_VOIP: 8,\n getArbiterType: function(i) {\n return ((g + \"message:\") + i);\n }\n };\n e.exports = h;\n});\n__d(\"ShortProfiles\", [\"ArbiterMixin\",\"AjaxLoader\",\"Env\",\"FBAjaxRequest\",\"JSLogger\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"AjaxLoader\"), i = b(\"Env\"), j = b(\"FBAjaxRequest\"), k = b(\"JSLogger\"), l = b(\"copyProperties\"), m = \"/ajax/chat/user_info.php\", n = \"/ajax/chat/user_info_all.php\", o = new h(m, \"profiles\"), p = false, q = k.create(\"short_profiles\");\n function r() {\n if (!p) {\n q.log(\"fetch_all\");\n p = true;\n var u = new j(\"GET\", n, {\n viewer: i.user\n });\n u.onJSON = function(v) {\n o.set(v.json);\n t.inform(\"updated\");\n };\n u.send();\n }\n ;\n };\n function s(u) {\n return JSON.parse(JSON.stringify(u));\n };\n var t = {\n };\n l(t, g, {\n get: function(u, v) {\n this.getMulti([u,], function(w) {\n v(w[u], u);\n });\n },\n getMulti: function(u, v) {\n function w(x) {\n v(s(x));\n };\n o.get(u, w);\n },\n getNow: function(u) {\n return s((o.getNow(u) || null));\n },\n getNowUnsafe: function(u) {\n return (o.getNow(u) || null);\n },\n getCachedProfileIDs: function() {\n return o.getCachedKeys();\n },\n hasAll: function() {\n return p;\n },\n fetchAll: function() {\n r();\n },\n set: function(u, v) {\n var w = {\n };\n w[u] = v;\n this.setMulti(w);\n },\n setMulti: function(u) {\n o.set(s(u));\n }\n });\n e.exports = t;\n});\n__d(\"ClickTTIIdentifiers\", [], function(a, b, c, d, e, f) {\n var g = {\n types: {\n TIMELINE_SEE_LIKERS: \"timeline:seelikes\"\n },\n getUserActionID: function(h) {\n return ((\"{\\\"ua_id\\\":\\\"\" + h) + \"\\\"}\");\n }\n };\n e.exports = g;\n});\n__d(\"ReactCurrentOwner\", [], function(a, b, c, d, e, f) {\n var g = {\n current: null\n };\n e.exports = g;\n});\n__d(\"CSSProperty\", [], function(a, b, c, d, e, f) {\n var g = {\n fillOpacity: true,\n fontWeight: true,\n opacity: true,\n orphans: true,\n zIndex: true,\n zoom: true\n }, h = {\n background: {\n backgroundImage: true,\n backgroundPosition: true,\n backgroundRepeat: true,\n backgroundColor: true\n },\n border: {\n borderWidth: true,\n borderStyle: true,\n borderColor: true\n },\n borderBottom: {\n borderBottomWidth: true,\n borderBottomStyle: true,\n borderBottomColor: true\n },\n borderLeft: {\n borderLeftWidth: true,\n borderLeftStyle: true,\n borderLeftColor: true\n },\n borderRight: {\n borderRightWidth: true,\n borderRightStyle: true,\n borderRightColor: true\n },\n borderTop: {\n borderTopWidth: true,\n borderTopStyle: true,\n borderTopColor: true\n },\n font: {\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n fontSize: true,\n lineHeight: true,\n fontFamily: true\n }\n }, i = {\n isUnitlessNumber: g,\n shorthandPropertyExpansions: h\n };\n e.exports = i;\n});\n__d(\"dangerousStyleValue\", [\"CSSProperty\",], function(a, b, c, d, e, f) {\n var g = b(\"CSSProperty\");\n function h(i, j) {\n var k = (((j == null) || (typeof j === \"boolean\")) || (j === \"\"));\n if (k) {\n return \"\"\n };\n var l = isNaN(j);\n if (((l || (j === 0)) || g.isUnitlessNumber[i])) {\n return (\"\" + j)\n };\n return (j + \"px\");\n };\n e.exports = h;\n});\n__d(\"throwIf\", [], function(a, b, c, d, e, f) {\n var g = function(h, i) {\n if (h) {\n throw new Error(i)\n };\n };\n e.exports = g;\n});\n__d(\"escapeTextForBrowser\", [\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"throwIf\"), h, i = {\n \"&\": \"&amp;\",\n \"\\u003E\": \"&gt;\",\n \"\\u003C\": \"&lt;\",\n \"\\\"\": \"&quot;\",\n \"'\": \"&#x27;\",\n \"/\": \"&#x2f;\"\n };\n function j(l) {\n return i[l];\n };\n var k = function(l) {\n var m = typeof l, n = (m === \"object\");\n if (((l === \"\") || n)) {\n return \"\";\n }\n else if ((m === \"string\")) {\n return l.replace(/[&><\"'\\/]/g, j);\n }\n else return ((\"\" + l)).replace(/[&><\"'\\/]/g, j)\n \n ;\n };\n e.exports = k;\n});\n__d(\"memoizeStringOnly\", [], function(a, b, c, d, e, f) {\n function g(h) {\n var i = {\n };\n return function(j) {\n if (i.hasOwnProperty(j)) {\n return i[j];\n }\n else return i[j] = h.call(this, j)\n ;\n };\n };\n e.exports = g;\n});\n__d(\"CSSPropertyOperations\", [\"CSSProperty\",\"dangerousStyleValue\",\"escapeTextForBrowser\",\"hyphenate\",\"memoizeStringOnly\",], function(a, b, c, d, e, f) {\n var g = b(\"CSSProperty\"), h = b(\"dangerousStyleValue\"), i = b(\"escapeTextForBrowser\"), j = b(\"hyphenate\"), k = b(\"memoizeStringOnly\"), l = k(function(n) {\n return i(j(n));\n }), m = {\n createMarkupForStyles: function(n) {\n var o = \"\";\n for (var p in n) {\n if (!n.hasOwnProperty(p)) {\n continue;\n };\n var q = n[p];\n if ((q != null)) {\n o += (l(p) + \":\");\n o += (h(p, q) + \";\");\n }\n ;\n };\n return (o || null);\n },\n setValueForStyles: function(n, o) {\n var p = n.style;\n for (var q in o) {\n if (!o.hasOwnProperty(q)) {\n continue;\n };\n var r = h(q, o[q]);\n if (r) {\n p[q] = r;\n }\n else {\n var s = g.shorthandPropertyExpansions[q];\n if (s) {\n for (var t in s) {\n p[t] = \"\";;\n };\n }\n else p[q] = \"\";\n ;\n }\n ;\n };\n }\n };\n e.exports = m;\n});\n__d(\"ExecutionEnvironment\", [], function(a, b, c, d, e, f) {\n var g = (typeof window !== \"undefined\"), h = {\n canUseDOM: g,\n canUseWorkers: (typeof Worker !== \"undefined\"),\n isInWorker: !g,\n global: new Function(\"return this;\")()\n };\n e.exports = h;\n});\n__d(\"Danger\", [\"ExecutionEnvironment\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\"), h = b(\"throwIf\"), i, j, k, l, m = {\n };\n function n(t) {\n var u = t.tagName;\n return (m[u] || (m[u] = document.createElement(u)));\n };\n function o(t, u, v) {\n if (v) {\n if (v.nextSibling) {\n return t.insertBefore(u, v.nextSibling);\n }\n else return t.appendChild(u)\n ;\n }\n else return t.insertBefore(u, t.firstChild)\n ;\n };\n function p(t, u, v) {\n var w, x = u.length;\n for (var y = 0; (y < x); y++) {\n w = o(t, u[0], (w || v));;\n };\n };\n function q(t, u, v) {\n var w = n(t);\n w.innerHTML = u;\n var x = w.childNodes, y = (v ? t.childNodes[(v - 1)] : null);\n p(t, x, y);\n };\n function r(t, u) {\n var v = t.parentNode, w = n(v);\n w.innerHTML = u;\n var x = w.childNodes;\n v.replaceChild(x[0], t);\n };\n var s = {\n dangerouslyInsertMarkupAt: q,\n dangerouslyReplaceNodeWithMarkup: r\n };\n e.exports = s;\n});\n__d(\"insertNodeAt\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n var k = h.childNodes, l = h.childNodes[j];\n if ((l === i)) {\n return i\n };\n if (i.parentNode) {\n i.parentNode.removeChild(i);\n };\n if ((j >= k.length)) {\n h.appendChild(i);\n }\n else h.insertBefore(i, k[j]);\n ;\n return i;\n };\n e.exports = g;\n});\n__d(\"keyOf\", [], function(a, b, c, d, e, f) {\n var g = function(h) {\n var i;\n for (i in h) {\n if (!h.hasOwnProperty(i)) {\n continue;\n };\n return i;\n };\n return null;\n };\n e.exports = g;\n});\n__d(\"DOMChildrenOperations\", [\"Danger\",\"insertNodeAt\",\"keyOf\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"Danger\"), h = b(\"insertNodeAt\"), i = b(\"keyOf\"), j = b(\"throwIf\"), k, l = i({\n moveFrom: null\n }), m = i({\n insertMarkup: null\n }), n = i({\n removeAt: null\n }), o = function(u, v) {\n var w, x, y;\n for (var z = 0; (z < v.length); z++) {\n x = v[z];\n if ((l in x)) {\n w = (w || []);\n y = x.moveFrom;\n w[y] = u.childNodes[y];\n }\n else if ((n in x)) {\n w = (w || []);\n y = x.removeAt;\n w[y] = u.childNodes[y];\n }\n \n ;\n };\n return w;\n }, p = function(u, v) {\n for (var w = 0; (w < v.length); w++) {\n var x = v[w];\n if (x) {\n u.removeChild(v[w]);\n };\n };\n }, q = function(u, v, w) {\n var x, y, z = -1, aa;\n for (var ba = 0; (ba < v.length); ba++) {\n aa = v[ba];\n if ((l in aa)) {\n x = w[aa.moveFrom];\n y = aa.finalIndex;\n h(u, x, y);\n }\n else if (!((n in aa))) {\n if ((m in aa)) {\n y = aa.finalIndex;\n var ca = aa.insertMarkup;\n g.dangerouslyInsertMarkupAt(u, ca, y);\n }\n \n }\n ;\n };\n }, r = function(u, v) {\n var w = o(u, v);\n if (w) {\n p(u, w);\n };\n q(u, v, w);\n }, s = function(u, v, w) {\n u.childNodes[v].nodeValue = w;\n }, t = {\n dangerouslyReplaceNodeWithMarkup: g.dangerouslyReplaceNodeWithMarkup,\n manageChildren: r,\n setTextNodeValueAtIndex: s\n };\n e.exports = t;\n});\n__d(\"DOMProperty\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\"), h = {\n MUST_USE_ATTRIBUTE: 1,\n MUST_USE_PROPERTY: 2,\n HAS_BOOLEAN_VALUE: 4,\n HAS_SIDE_EFFECTS: 8,\n injectDOMPropertyConfig: function(k) {\n var l = (k.Properties || {\n }), m = (k.DOMAttributeNames || {\n }), n = (k.DOMPropertyNames || {\n }), o = (k.DOMMutationMethods || {\n });\n if (k.isCustomAttribute) {\n j._isCustomAttributeFunctions.push(k.isCustomAttribute);\n };\n for (var p in l) {\n g(!j.isStandardName[p]);\n j.isStandardName[p] = true;\n j.getAttributeName[p] = (m[p] || p.toLowerCase());\n j.getPropertyName[p] = (n[p] || p);\n var q = o[p];\n if (q) {\n j.getMutationMethod[p] = q;\n };\n var r = l[p];\n j.mustUseAttribute[p] = (r & h.MUST_USE_ATTRIBUTE);\n j.mustUseProperty[p] = (r & h.MUST_USE_PROPERTY);\n j.hasBooleanValue[p] = (r & h.HAS_BOOLEAN_VALUE);\n j.hasSideEffects[p] = (r & h.HAS_SIDE_EFFECTS);\n g((!j.mustUseAttribute[p] || !j.mustUseProperty[p]));\n g((j.mustUseProperty[p] || !j.hasSideEffects[p]));\n };\n }\n }, i = {\n }, j = {\n isStandardName: {\n },\n getAttributeName: {\n },\n getPropertyName: {\n },\n getMutationMethod: {\n },\n mustUseAttribute: {\n },\n mustUseProperty: {\n },\n hasBooleanValue: {\n },\n hasSideEffects: {\n },\n _isCustomAttributeFunctions: [],\n isCustomAttribute: function(k) {\n return j._isCustomAttributeFunctions.some(function(l) {\n return l.call(null, k);\n });\n },\n getDefaultValueForProperty: function(k, l) {\n var m = i[k], n;\n if (!m) {\n i[k] = m = {\n };\n };\n if (!((l in m))) {\n n = document.createElement(k);\n m[l] = n[l];\n }\n ;\n return m[l];\n },\n injection: h\n };\n e.exports = j;\n});\n__d(\"DOMPropertyOperations\", [\"DOMProperty\",\"escapeTextForBrowser\",\"memoizeStringOnly\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMProperty\"), h = b(\"escapeTextForBrowser\"), i = b(\"memoizeStringOnly\"), j = i(function(l) {\n return (h(l) + \"=\\\"\");\n }), k = {\n createMarkupForProperty: function(l, m) {\n if (g.isStandardName[l]) {\n if (((m == null) || (g.hasBooleanValue[l] && !m))) {\n return \"\"\n };\n var n = g.getAttributeName[l];\n return ((j(n) + h(m)) + \"\\\"\");\n }\n else if (g.isCustomAttribute(l)) {\n if ((m == null)) {\n return \"\"\n };\n return ((j(l) + h(m)) + \"\\\"\");\n }\n else return null\n \n ;\n },\n setValueForProperty: function(l, m, n) {\n if (g.isStandardName[m]) {\n var o = g.getMutationMethod[m];\n if (o) {\n o(l, n);\n }\n else if (g.mustUseAttribute[m]) {\n if ((g.hasBooleanValue[m] && !n)) {\n l.removeAttribute(g.getAttributeName[m]);\n }\n else l.setAttribute(g.getAttributeName[m], n);\n ;\n }\n else {\n var p = g.getPropertyName[m];\n if ((!g.hasSideEffects[m] || (l[p] !== n))) {\n l[p] = n;\n };\n }\n \n ;\n }\n else if (g.isCustomAttribute(m)) {\n l.setAttribute(m, n);\n }\n ;\n },\n deleteValueForProperty: function(l, m) {\n if (g.isStandardName[m]) {\n var n = g.getMutationMethod[m];\n if (n) {\n n(l, undefined);\n }\n else if (g.mustUseAttribute[m]) {\n l.removeAttribute(g.getAttributeName[m]);\n }\n else {\n var o = g.getPropertyName[m];\n l[o] = g.getDefaultValueForProperty(l.nodeName, m);\n }\n \n ;\n }\n else if (g.isCustomAttribute(m)) {\n l.removeAttribute(m);\n }\n ;\n }\n };\n e.exports = k;\n});\n__d(\"keyMirror\", [\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"throwIf\"), h = \"NOT_OBJECT_ERROR\", i = function(j) {\n var k = {\n }, l;\n g((!((j instanceof Object)) || Array.isArray(j)), h);\n for (l in j) {\n if (!j.hasOwnProperty(l)) {\n continue;\n };\n k[l] = l;\n };\n return k;\n };\n e.exports = i;\n});\n__d(\"EventConstants\", [\"keyMirror\",], function(a, b, c, d, e, f) {\n var g = b(\"keyMirror\"), h = g({\n bubbled: null,\n captured: null\n }), i = g({\n topBlur: null,\n topChange: null,\n topClick: null,\n topDOMCharacterDataModified: null,\n topDoubleClick: null,\n topDrag: null,\n topDragEnd: null,\n topDragEnter: null,\n topDragExit: null,\n topDragLeave: null,\n topDragOver: null,\n topDragStart: null,\n topDrop: null,\n topFocus: null,\n topInput: null,\n topKeyDown: null,\n topKeyPress: null,\n topKeyUp: null,\n topMouseDown: null,\n topMouseMove: null,\n topMouseOut: null,\n topMouseOver: null,\n topMouseUp: null,\n topScroll: null,\n topSelectionChange: null,\n topSubmit: null,\n topTouchCancel: null,\n topTouchEnd: null,\n topTouchMove: null,\n topTouchStart: null,\n topWheel: null\n }), j = {\n topLevelTypes: i,\n PropagationPhases: h\n };\n e.exports = j;\n});\n__d(\"EventListener\", [\"Event\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = {\n listen: g.listen,\n capture: function(i, j, k) {\n if (!i.addEventListener) {\n return;\n }\n else i.addEventListener(j, k, true);\n ;\n }\n };\n e.exports = h;\n});\n__d(\"CallbackRegistry\", [], function(a, b, c, d, e, f) {\n var g = {\n }, h = {\n putListener: function(i, j, k) {\n var l = (g[j] || (g[j] = {\n }));\n l[i] = k;\n },\n getListener: function(i, j) {\n var k = g[j];\n return (k && k[i]);\n },\n deleteListener: function(i, j) {\n var k = g[j];\n if (k) {\n delete k[i];\n };\n },\n deleteAllListeners: function(i) {\n for (var j in g) {\n delete g[j][i];;\n };\n },\n __purge: function() {\n g = {\n };\n }\n };\n e.exports = h;\n});\n__d(\"EventPluginRegistry\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\"), h = null, i = {\n };\n function j() {\n if (!h) {\n return\n };\n for (var n in i) {\n var o = i[n], p = h.indexOf(n);\n g((p > -1));\n if (m.plugins[p]) {\n continue;\n };\n g(o.extractEvents);\n m.plugins[p] = o;\n var q = o.eventTypes;\n for (var r in q) {\n g(k(q[r], o));;\n };\n };\n };\n function k(n, o) {\n var p = n.phasedRegistrationNames;\n if (p) {\n for (var q in p) {\n if (p.hasOwnProperty(q)) {\n var r = p[q];\n l(r, o);\n }\n ;\n };\n return true;\n }\n else if (n.registrationName) {\n l(n.registrationName, o);\n return true;\n }\n \n ;\n return false;\n };\n function l(n, o) {\n g(!m.registrationNames[n]);\n m.registrationNames[n] = o;\n m.registrationNamesKeys.push(n);\n };\n var m = {\n plugins: [],\n registrationNames: {\n },\n registrationNamesKeys: [],\n injectEventPluginOrder: function(n) {\n g(!h);\n h = Array.prototype.slice.call(n);\n j();\n },\n injectEventPluginsByName: function(n) {\n var o = false;\n for (var p in n) {\n if (!n.hasOwnProperty(p)) {\n continue;\n };\n var q = n[p];\n if ((i[p] !== q)) {\n g(!i[p]);\n i[p] = q;\n o = true;\n }\n ;\n };\n if (o) {\n j();\n };\n },\n getPluginModuleForEvent: function(event) {\n var n = event.dispatchConfig;\n if (n.registrationName) {\n return (m.registrationNames[n.registrationName] || null)\n };\n for (var o in n.phasedRegistrationNames) {\n if (!n.phasedRegistrationNames.hasOwnProperty(o)) {\n continue;\n };\n var p = m.registrationNames[n.phasedRegistrationNames[o]];\n if (p) {\n return p\n };\n };\n return null;\n },\n _resetEventPlugins: function() {\n h = null;\n for (var n in i) {\n if (i.hasOwnProperty(n)) {\n delete i[n];\n };\n };\n m.plugins.length = 0;\n var o = m.registrationNames;\n for (var p in o) {\n if (o.hasOwnProperty(p)) {\n delete o[p];\n };\n };\n m.registrationNamesKeys.length = 0;\n }\n };\n e.exports = m;\n});\n__d(\"EventPluginUtils\", [\"EventConstants\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"EventConstants\"), h = b(\"invariant\"), i = g.topLevelTypes;\n function j(u) {\n return (((u === i.topMouseUp) || (u === i.topTouchEnd)) || (u === i.topTouchCancel));\n };\n function k(u) {\n return ((u === i.topMouseMove) || (u === i.topTouchMove));\n };\n function l(u) {\n return ((u === i.topMouseDown) || (u === i.topTouchStart));\n };\n var m;\n function n(event, u) {\n var v = event._dispatchListeners, w = event._dispatchIDs;\n if (Array.isArray(v)) {\n for (var x = 0; (x < v.length); x++) {\n if (event.isPropagationStopped()) {\n break;\n };\n u(event, v[x], w[x]);\n };\n }\n else if (v) {\n u(event, v, w);\n }\n ;\n };\n function o(event, u, v) {\n u(event, v);\n };\n function p(event, u) {\n n(event, u);\n event._dispatchListeners = null;\n event._dispatchIDs = null;\n };\n function q(event) {\n var u = event._dispatchListeners, v = event._dispatchIDs;\n if (Array.isArray(u)) {\n for (var w = 0; (w < u.length); w++) {\n if (event.isPropagationStopped()) {\n break;\n };\n if (u[w](event, v[w])) {\n return v[w]\n };\n };\n }\n else if (u) {\n if (u(event, v)) {\n return v\n }\n }\n ;\n return null;\n };\n function r(event) {\n var u = event._dispatchListeners, v = event._dispatchIDs;\n h(!Array.isArray(u));\n var w = (u ? u(event, v) : null);\n event._dispatchListeners = null;\n event._dispatchIDs = null;\n return w;\n };\n function s(event) {\n return !!event._dispatchListeners;\n };\n var t = {\n isEndish: j,\n isMoveish: k,\n isStartish: l,\n executeDispatchesInOrder: p,\n executeDispatchesInOrderStopAtTrue: q,\n executeDirectDispatch: r,\n hasDispatches: s,\n executeDispatch: o\n };\n e.exports = t;\n});\n__d(\"accumulate\", [\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"throwIf\"), h = \"INVALID_ACCUM_ARGS\";\n function i(j, k) {\n var l = (j == null), m = (k === null);\n if (m) {\n return j;\n }\n else if (l) {\n return k;\n }\n else {\n var n = Array.isArray(j), o = Array.isArray(k);\n if (n) {\n return j.concat(k);\n }\n else if (o) {\n return [j,].concat(k);\n }\n else return [j,k,]\n \n ;\n }\n \n ;\n };\n e.exports = i;\n});\n__d(\"forEachAccumulated\", [], function(a, b, c, d, e, f) {\n var g = function(h, i, j) {\n if (Array.isArray(h)) {\n h.forEach(i, j);\n }\n else if (h) {\n i.call(j, h);\n }\n ;\n };\n e.exports = g;\n});\n__d(\"EventPropagators\", [\"CallbackRegistry\",\"EventConstants\",\"accumulate\",\"forEachAccumulated\",], function(a, b, c, d, e, f) {\n var g = b(\"CallbackRegistry\"), h = b(\"EventConstants\"), i = b(\"accumulate\"), j = b(\"forEachAccumulated\"), k = g.getListener, l = h.PropagationPhases, m = {\n InstanceHandle: null,\n injectInstanceHandle: function(w) {\n m.InstanceHandle = w;\n },\n validate: function() {\n var w = ((!m.InstanceHandle || !m.InstanceHandle.traverseTwoPhase) || !m.InstanceHandle.traverseEnterLeave);\n if (w) {\n throw new Error(\"InstanceHandle not injected before use!\")\n };\n }\n };\n function n(w, event, x) {\n var y = event.dispatchConfig.phasedRegistrationNames[x];\n return k(w, y);\n };\n function o(w, x, event) {\n var y = (x ? l.bubbled : l.captured), z = n(w, event, y);\n if (z) {\n event._dispatchListeners = i(event._dispatchListeners, z);\n event._dispatchIDs = i(event._dispatchIDs, w);\n }\n ;\n };\n function p(event) {\n if ((event && event.dispatchConfig.phasedRegistrationNames)) {\n m.InstanceHandle.traverseTwoPhase(event.dispatchMarker, o, event);\n };\n };\n function q(w, x, event) {\n if ((event && event.dispatchConfig.registrationName)) {\n var y = event.dispatchConfig.registrationName, z = k(w, y);\n if (z) {\n event._dispatchListeners = i(event._dispatchListeners, z);\n event._dispatchIDs = i(event._dispatchIDs, w);\n }\n ;\n }\n ;\n };\n function r(event) {\n if ((event && event.dispatchConfig.registrationName)) {\n q(event.dispatchMarker, null, event);\n };\n };\n function s(w) {\n j(w, p);\n };\n function t(w, x, y, z) {\n m.InstanceHandle.traverseEnterLeave(y, z, q, w, x);\n };\n function u(w) {\n j(w, r);\n };\n var v = {\n accumulateTwoPhaseDispatches: s,\n accumulateDirectDispatches: u,\n accumulateEnterLeaveDispatches: t,\n injection: m\n };\n e.exports = v;\n});\n__d(\"EventPluginHub\", [\"CallbackRegistry\",\"EventPluginRegistry\",\"EventPluginUtils\",\"EventPropagators\",\"ExecutionEnvironment\",\"accumulate\",\"forEachAccumulated\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"CallbackRegistry\"), h = b(\"EventPluginRegistry\"), i = b(\"EventPluginUtils\"), j = b(\"EventPropagators\"), k = b(\"ExecutionEnvironment\"), l = b(\"accumulate\"), m = b(\"forEachAccumulated\"), n = b(\"invariant\"), o = null, p = function(event) {\n if (event) {\n var r = i.executeDispatch, s = h.getPluginModuleForEvent(event);\n if ((s && s.executeDispatch)) {\n r = s.executeDispatch;\n };\n i.executeDispatchesInOrder(event, r);\n if (!event.isPersistent()) {\n event.constructor.release(event);\n };\n }\n ;\n }, q = {\n injection: {\n injectInstanceHandle: j.injection.injectInstanceHandle,\n injectEventPluginOrder: h.injectEventPluginOrder,\n injectEventPluginsByName: h.injectEventPluginsByName\n },\n registrationNames: h.registrationNames,\n putListener: g.putListener,\n getListener: g.getListener,\n deleteListener: g.deleteListener,\n deleteAllListeners: g.deleteAllListeners,\n extractEvents: function(r, s, t, u) {\n var v, w = h.plugins;\n for (var x = 0, y = w.length; (x < y); x++) {\n var z = w[x];\n if (z) {\n var aa = z.extractEvents(r, s, t, u);\n if (aa) {\n v = l(v, aa);\n };\n }\n ;\n };\n return v;\n },\n enqueueEvents: function(r) {\n if (r) {\n o = l(o, r);\n };\n },\n processEventQueue: function() {\n var r = o;\n o = null;\n m(r, p);\n n(!o);\n }\n };\n if (k.canUseDOM) {\n window.EventPluginHub = q;\n };\n e.exports = q;\n});\n__d(\"ReactUpdates\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\"), h = false, i = [];\n function j(m) {\n if (h) {\n m();\n return;\n }\n ;\n h = true;\n try {\n m();\n for (var o = 0; (o < i.length); o++) {\n var p = i[o];\n if (p.isMounted()) {\n var q = p._pendingCallbacks;\n p._pendingCallbacks = null;\n p.performUpdateIfNecessary();\n if (q) {\n for (var r = 0; (r < q.length); r++) {\n q[r]();;\n }\n };\n }\n ;\n };\n } catch (n) {\n throw n;\n } finally {\n i.length = 0;\n h = false;\n };\n };\n function k(m, n) {\n g((!n || (typeof n === \"function\")));\n if (!h) {\n m.performUpdateIfNecessary();\n (n && n());\n return;\n }\n ;\n i.push(m);\n if (n) {\n if (m._pendingCallbacks) {\n m._pendingCallbacks.push(n);\n }\n else m._pendingCallbacks = [n,];\n \n };\n };\n var l = {\n batchedUpdates: j,\n enqueueUpdate: k\n };\n e.exports = l;\n});\n__d(\"ViewportMetrics\", [], function(a, b, c, d, e, f) {\n var g = {\n currentScrollLeft: 0,\n currentScrollTop: 0,\n refreshScrollValues: function() {\n g.currentScrollLeft = (document.body.scrollLeft + document.documentElement.scrollLeft);\n g.currentScrollTop = (document.body.scrollTop + document.documentElement.scrollTop);\n }\n };\n e.exports = g;\n});\n__d(\"isEventSupported\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\"), h, i;\n if (g.canUseDOM) {\n h = document.createElement(\"div\");\n i = ((document.implementation && document.implementation.hasFeature) && (document.implementation.hasFeature(\"\", \"\") !== true));\n }\n;\n function j(k, l) {\n if ((!h || ((l && !h.addEventListener)))) {\n return false\n };\n var m = document.createElement(\"div\"), n = (\"on\" + k), o = (n in m);\n if (!o) {\n m.setAttribute(n, \"\");\n o = (typeof m[n] === \"function\");\n if ((typeof m[n] !== \"undefined\")) {\n m[n] = undefined;\n };\n m.removeAttribute(n);\n }\n ;\n if (((!o && i) && (k === \"wheel\"))) {\n o = document.implementation.hasFeature(\"Events.wheel\", \"3.0\");\n };\n m = null;\n return o;\n };\n e.exports = j;\n});\n__d(\"ReactEventEmitter\", [\"EventConstants\",\"EventListener\",\"EventPluginHub\",\"ExecutionEnvironment\",\"ReactUpdates\",\"ViewportMetrics\",\"invariant\",\"isEventSupported\",], function(a, b, c, d, e, f) {\n var g = b(\"EventConstants\"), h = b(\"EventListener\"), i = b(\"EventPluginHub\"), j = b(\"ExecutionEnvironment\"), k = b(\"ReactUpdates\"), l = b(\"ViewportMetrics\"), m = b(\"invariant\"), n = b(\"isEventSupported\"), o = false;\n function p(u, v, w) {\n h.listen(w, v, t.TopLevelCallbackCreator.createTopLevelCallback(u));\n };\n function q(u, v, w) {\n h.capture(w, v, t.TopLevelCallbackCreator.createTopLevelCallback(u));\n };\n function r() {\n var u = l.refreshScrollValues;\n h.listen(window, \"scroll\", u);\n h.listen(window, \"resize\", u);\n };\n function s(u) {\n m(!o);\n var v = g.topLevelTypes, w = document;\n r();\n p(v.topMouseOver, \"mouseover\", w);\n p(v.topMouseDown, \"mousedown\", w);\n p(v.topMouseUp, \"mouseup\", w);\n p(v.topMouseMove, \"mousemove\", w);\n p(v.topMouseOut, \"mouseout\", w);\n p(v.topClick, \"click\", w);\n p(v.topDoubleClick, \"dblclick\", w);\n if (u) {\n p(v.topTouchStart, \"touchstart\", w);\n p(v.topTouchEnd, \"touchend\", w);\n p(v.topTouchMove, \"touchmove\", w);\n p(v.topTouchCancel, \"touchcancel\", w);\n }\n ;\n p(v.topKeyUp, \"keyup\", w);\n p(v.topKeyPress, \"keypress\", w);\n p(v.topKeyDown, \"keydown\", w);\n p(v.topInput, \"input\", w);\n p(v.topChange, \"change\", w);\n p(v.topSelectionChange, \"selectionchange\", w);\n p(v.topDOMCharacterDataModified, \"DOMCharacterDataModified\", w);\n if (n(\"drag\")) {\n p(v.topDrag, \"drag\", w);\n p(v.topDragEnd, \"dragend\", w);\n p(v.topDragEnter, \"dragenter\", w);\n p(v.topDragExit, \"dragexit\", w);\n p(v.topDragLeave, \"dragleave\", w);\n p(v.topDragOver, \"dragover\", w);\n p(v.topDragStart, \"dragstart\", w);\n p(v.topDrop, \"drop\", w);\n }\n ;\n if (n(\"wheel\")) {\n p(v.topWheel, \"wheel\", w);\n }\n else if (n(\"mousewheel\")) {\n p(v.topWheel, \"mousewheel\", w);\n }\n else p(v.topWheel, \"DOMMouseScroll\", w);\n \n ;\n if (n(\"scroll\", true)) {\n q(v.topScroll, \"scroll\", w);\n }\n else p(v.topScroll, \"scroll\", window);\n ;\n if (n(\"focus\", true)) {\n q(v.topFocus, \"focus\", w);\n q(v.topBlur, \"blur\", w);\n }\n else if (n(\"focusin\")) {\n p(v.topFocus, \"focusin\", w);\n p(v.topBlur, \"focusout\", w);\n }\n \n ;\n };\n var t = {\n TopLevelCallbackCreator: null,\n ensureListening: function(u, v) {\n m(j.canUseDOM);\n if (!o) {\n t.TopLevelCallbackCreator = v;\n s(u);\n o = true;\n }\n ;\n },\n setEnabled: function(u) {\n m(j.canUseDOM);\n if (t.TopLevelCallbackCreator) {\n t.TopLevelCallbackCreator.setEnabled(u);\n };\n },\n isEnabled: function() {\n return !!((t.TopLevelCallbackCreator && t.TopLevelCallbackCreator.isEnabled()));\n },\n handleTopLevel: function(u, v, w, x) {\n var y = i.extractEvents(u, v, w, x);\n k.batchedUpdates(function() {\n i.enqueueEvents(y);\n i.processEventQueue();\n });\n },\n registrationNames: i.registrationNames,\n putListener: i.putListener,\n getListener: i.getListener,\n deleteListener: i.deleteListener,\n deleteAllListeners: i.deleteAllListeners,\n trapBubbledEvent: p,\n trapCapturedEvent: q\n };\n e.exports = t;\n});\n__d(\"getEventTarget\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\");\n function h(i) {\n var j = ((i.target || i.srcElement) || g.global);\n return ((j.nodeType === 3) ? j.parentNode : j);\n };\n e.exports = h;\n});\n__d(\"ReactEventTopLevelCallback\", [\"ExecutionEnvironment\",\"ReactEventEmitter\",\"ReactID\",\"ReactInstanceHandles\",\"getEventTarget\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\"), h = b(\"ReactEventEmitter\"), i = b(\"ReactID\"), j = b(\"ReactInstanceHandles\"), k = b(\"getEventTarget\"), l = true, m = {\n setEnabled: function(n) {\n l = !!n;\n },\n isEnabled: function() {\n return l;\n },\n createTopLevelCallback: function(n) {\n return function(o) {\n if (!l) {\n return\n };\n if ((o.srcElement && (o.srcElement !== o.target))) {\n o.target = o.srcElement;\n };\n var p = (j.getFirstReactDOM(k(o)) || g.global), q = (i.getID(p) || \"\");\n h.handleTopLevel(n, p, q, o);\n };\n }\n };\n e.exports = m;\n});\n__d(\"ReactInstanceHandles\", [\"ReactID\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactID\"), h = b(\"invariant\"), i = \".\", j = i.length, k = 100, l = 9999999;\n function m(v) {\n return (((i + \"r[\") + v.toString(36)) + \"]\");\n };\n function n(v, w) {\n return ((v.charAt(w) === i) || (w === v.length));\n };\n function o(v) {\n return ((v === \"\") || (((v.charAt(0) === i) && (v.charAt((v.length - 1)) !== i))));\n };\n function p(v, w) {\n return (((w.indexOf(v) === 0) && n(w, v.length)));\n };\n function q(v) {\n return (v ? v.substr(0, v.lastIndexOf(i)) : \"\");\n };\n function r(v, w) {\n h((o(v) && o(w)));\n h(p(v, w));\n if ((v === w)) {\n return v\n };\n var x = (v.length + j);\n for (var y = x; (y < w.length); y++) {\n if (n(w, y)) {\n break;\n };\n };\n return w.substr(0, y);\n };\n function s(v, w) {\n var x = Math.min(v.length, w.length);\n if ((x === 0)) {\n return \"\"\n };\n var y = 0;\n for (var z = 0; (z <= x); z++) {\n if ((n(v, z) && n(w, z))) {\n y = z;\n }\n else if ((v.charAt(z) !== w.charAt(z))) {\n break;\n }\n ;\n };\n var aa = v.substr(0, y);\n h(o(aa));\n return aa;\n };\n function t(v, w, x, y, z, aa) {\n v = (v || \"\");\n w = (w || \"\");\n h((v !== w));\n var ba = p(w, v);\n h((ba || p(v, w)));\n var ca = 0, da = (ba ? q : r);\n for (var ea = v; ; ea = da(ea, w)) {\n if ((((!z || (ea !== v))) && ((!aa || (ea !== w))))) {\n x(ea, ba, y);\n };\n if ((ea === w)) {\n break;\n };\n h((ca++ < k));\n };\n };\n var u = {\n separator: i,\n createReactRootID: function() {\n return m(Math.ceil((Math.random() * l)));\n },\n isRenderedByReact: function(v) {\n if ((v.nodeType !== 1)) {\n return false\n };\n var w = g.getID(v);\n return (w ? (w.charAt(0) === i) : false);\n },\n getFirstReactDOM: function(v) {\n var w = v;\n while ((w && (w.parentNode !== w))) {\n if (u.isRenderedByReact(w)) {\n return w\n };\n w = w.parentNode;\n };\n return null;\n },\n findComponentRoot: function(v, w) {\n var x = [v.firstChild,], y = 0;\n while ((y < x.length)) {\n var z = x[y++];\n while (z) {\n var aa = g.getID(z);\n if (aa) {\n if ((w === aa)) {\n return z;\n }\n else if (p(aa, w)) {\n x.length = y = 0;\n x.push(z.firstChild);\n break;\n }\n else x.push(z.firstChild);\n \n ;\n }\n else x.push(z.firstChild);\n ;\n z = z.nextSibling;\n };\n };\n ((a.console && emptyFunction) && false);\n h(false);\n },\n getReactRootIDFromNodeID: function(v) {\n var w = /\\.r\\[[^\\]]+\\]/.exec(v);\n return (w && w[0]);\n },\n traverseEnterLeave: function(v, w, x, y, z) {\n var aa = s(v, w);\n if ((aa !== v)) {\n t(v, aa, x, y, false, true);\n };\n if ((aa !== w)) {\n t(aa, w, x, z, true, false);\n };\n },\n traverseTwoPhase: function(v, w, x) {\n if (v) {\n t(\"\", v, w, x, true, false);\n t(v, \"\", w, x, false, true);\n }\n ;\n },\n _getFirstCommonAncestorID: s,\n _getNextDescendantID: r\n };\n e.exports = u;\n});\n__d(\"ReactMount\", [\"ReactEventEmitter\",\"ReactInstanceHandles\",\"ReactEventTopLevelCallback\",\"ReactID\",\"$\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactEventEmitter\"), h = b(\"ReactInstanceHandles\"), i = b(\"ReactEventTopLevelCallback\"), j = b(\"ReactID\"), k = b(\"$\"), l = {\n }, m = {\n };\n function n(q) {\n return (q && q.firstChild);\n };\n function o(q) {\n var r = n(q);\n return (r && j.getID(r));\n };\n var p = {\n totalInstantiationTime: 0,\n totalInjectionTime: 0,\n useTouchEvents: false,\n scrollMonitor: function(q, r) {\n r();\n },\n prepareTopLevelEvents: function(q) {\n g.ensureListening(p.useTouchEvents, q);\n },\n _updateRootComponent: function(q, r, s, t) {\n var u = r.props;\n p.scrollMonitor(s, function() {\n q.replaceProps(u, t);\n });\n return q;\n },\n _registerComponent: function(q, r) {\n p.prepareTopLevelEvents(i);\n var s = p.registerContainer(r);\n l[s] = q;\n return s;\n },\n _renderNewRootComponent: function(q, r, s) {\n var t = p._registerComponent(q, r);\n q.mountComponentIntoNode(t, r, s);\n return q;\n },\n renderComponent: function(q, r, s) {\n var t = l[o(r)];\n if (t) {\n if ((t.constructor === q.constructor)) {\n return p._updateRootComponent(t, q, r, s);\n }\n else p.unmountAndReleaseReactRootNode(r);\n \n };\n var u = n(r), v = (u && h.isRenderedByReact(u)), w = (v && !t), x = p._renderNewRootComponent(q, r, w);\n (s && s());\n return x;\n },\n constructAndRenderComponent: function(q, r, s) {\n return p.renderComponent(q(r), s);\n },\n constructAndRenderComponentByID: function(q, r, s) {\n return p.constructAndRenderComponent(q, r, k(s));\n },\n registerContainer: function(q) {\n var r = o(q);\n if (r) {\n r = h.getReactRootIDFromNodeID(r);\n };\n if (!r) {\n r = h.createReactRootID();\n };\n m[r] = q;\n return r;\n },\n unmountAndReleaseReactRootNode: function(q) {\n var r = o(q), s = l[r];\n if (!s) {\n return false\n };\n s.unmountComponentFromNode(q);\n delete l[r];\n delete m[r];\n return true;\n },\n findReactContainerForID: function(q) {\n var r = h.getReactRootIDFromNodeID(q);\n return m[r];\n },\n findReactNodeByID: function(q) {\n var r = p.findReactContainerForID(q);\n return h.findComponentRoot(r, q);\n }\n };\n e.exports = p;\n});\n__d(\"ReactID\", [\"invariant\",\"ReactMount\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\"), h = b(\"ReactMount\"), i = \"data-reactid\", j = {\n };\n function k(s) {\n var t = l(s);\n if (t) {\n if (j.hasOwnProperty(t)) {\n var u = j[t];\n if ((u !== s)) {\n g(!o(u, t));\n j[t] = s;\n }\n ;\n }\n else j[t] = s;\n \n };\n return t;\n };\n function l(s) {\n if ((s && s.getAttributeNode)) {\n var t = s.getAttributeNode(i);\n if (t) {\n return (t.value || \"\")\n };\n }\n ;\n return \"\";\n };\n function m(s, t) {\n var u = l(s);\n if ((u !== t)) {\n delete j[u];\n };\n s.setAttribute(i, t);\n j[t] = s;\n };\n function n(s) {\n if ((!j.hasOwnProperty(s) || !o(j[s], s))) {\n j[s] = h.findReactNodeByID(s);\n };\n return j[s];\n };\n function o(s, t) {\n if (s) {\n g((l(s) === t));\n var u = h.findReactContainerForID(t);\n if ((u && p(u, s))) {\n return true\n };\n }\n ;\n return false;\n };\n function p(s, t) {\n if (s.contains) {\n return s.contains(t)\n };\n if ((t === s)) {\n return true\n };\n if ((t.nodeType === 3)) {\n t = t.parentNode;\n };\n while ((t && (t.nodeType === 1))) {\n if ((t === s)) {\n return true\n };\n t = t.parentNode;\n };\n return false;\n };\n function q(s) {\n delete j[s];\n };\n function r() {\n j = {\n };\n };\n f.ATTR_NAME = i;\n f.getID = k;\n f.setID = m;\n f.getNode = n;\n f.purgeID = q;\n f.purgeEntireCache = r;\n});\n__d(\"getTextContentAccessor\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\"), h = null;\n function i() {\n if ((!h && g.canUseDOM)) {\n h = ((\"innerText\" in document.createElement(\"div\")) ? \"innerText\" : \"textContent\");\n };\n return h;\n };\n e.exports = i;\n});\n__d(\"ReactDOMIDOperations\", [\"CSSPropertyOperations\",\"DOMChildrenOperations\",\"DOMPropertyOperations\",\"ReactID\",\"getTextContentAccessor\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"CSSPropertyOperations\"), h = b(\"DOMChildrenOperations\"), i = b(\"DOMPropertyOperations\"), j = b(\"ReactID\"), k = b(\"getTextContentAccessor\"), l = b(\"invariant\"), m = {\n dangerouslySetInnerHTML: \"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.\",\n style: \"`style` must be set using `updateStylesByID()`.\"\n }, n = (k() || \"NA\"), o = {\n updatePropertyByID: function(p, q, r) {\n var s = j.getNode(p);\n l(!m.hasOwnProperty(q));\n i.setValueForProperty(s, q, r);\n },\n deletePropertyByID: function(p, q, r) {\n var s = j.getNode(p);\n l(!m.hasOwnProperty(q));\n i.deleteValueForProperty(s, q, r);\n },\n updatePropertiesByID: function(p, q) {\n for (var r in q) {\n if (!q.hasOwnProperty(r)) {\n continue;\n };\n o.updatePropertiesByID(p, r, q[r]);\n };\n },\n updateStylesByID: function(p, q) {\n var r = j.getNode(p);\n g.setValueForStyles(r, q);\n },\n updateInnerHTMLByID: function(p, q) {\n var r = j.getNode(p);\n r.innerHTML = (((q && q.__html) || \"\")).replace(/^ /g, \"&nbsp;\");\n },\n updateTextContentByID: function(p, q) {\n var r = j.getNode(p);\n r[n] = q;\n },\n dangerouslyReplaceNodeWithMarkupByID: function(p, q) {\n var r = j.getNode(p);\n h.dangerouslyReplaceNodeWithMarkup(r, q);\n j.purgeEntireCache();\n },\n manageChildrenByParentID: function(p, q) {\n var r = j.getNode(p);\n h.manageChildren(r, q);\n j.purgeEntireCache();\n },\n setTextNodeValueAtIndexByParentID: function(p, q, r) {\n var s = j.getNode(p);\n h.setTextNodeValueAtIndex(s, q, r);\n }\n };\n e.exports = o;\n});\n__d(\"ReactOwner\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\"), h = {\n isValidOwner: function(i) {\n return !!(((i && (typeof i.attachRef === \"function\")) && (typeof i.detachRef === \"function\")));\n },\n addComponentAsRefTo: function(i, j, k) {\n g(h.isValidOwner(k));\n k.attachRef(j, i);\n },\n removeComponentAsRefFrom: function(i, j, k) {\n g(h.isValidOwner(k));\n if ((k.refs[j] === i)) {\n k.detachRef(j);\n };\n },\n Mixin: {\n attachRef: function(i, j) {\n g(j.isOwnedBy(this));\n var k = (this.refs || (this.refs = {\n }));\n k[i] = j;\n },\n detachRef: function(i) {\n delete this.refs[i];\n }\n }\n };\n e.exports = h;\n});\n__d(\"PooledClass\", [], function(a, b, c, d, e, f) {\n var g = function(p) {\n var q = this;\n if (q.instancePool.length) {\n var r = q.instancePool.pop();\n q.call(r, p);\n return r;\n }\n else return new q(p)\n ;\n }, h = function(p, q) {\n var r = this;\n if (r.instancePool.length) {\n var s = r.instancePool.pop();\n r.call(s, p, q);\n return s;\n }\n else return new r(p, q)\n ;\n }, i = function(p, q, r) {\n var s = this;\n if (s.instancePool.length) {\n var t = s.instancePool.pop();\n s.call(t, p, q, r);\n return t;\n }\n else return new s(p, q, r)\n ;\n }, j = function(p, q, r, s, t) {\n var u = this;\n if (u.instancePool.length) {\n var v = u.instancePool.pop();\n u.call(v, p, q, r, s, t);\n return v;\n }\n else return new u(p, q, r, s, t)\n ;\n }, k = function(p) {\n var q = this;\n if (p.destructor) {\n p.destructor();\n };\n if ((q.instancePool.length < q.poolSize)) {\n q.instancePool.push(p);\n };\n }, l = 10, m = g, n = function(p, q) {\n var r = p;\n r.instancePool = [];\n r.getPooled = (q || m);\n if (!r.poolSize) {\n r.poolSize = l;\n };\n r.release = k;\n return r;\n }, o = {\n addPoolingTo: n,\n oneArgumentPooler: g,\n twoArgumentPooler: h,\n threeArgumentPooler: i,\n fiveArgumentPooler: j\n };\n e.exports = o;\n});\n__d(\"ReactInputSelection\", [], function(a, b, c, d, e, f) {\n function g() {\n try {\n return document.activeElement;\n } catch (j) {\n \n };\n };\n function h(j) {\n return document.documentElement.contains(j);\n };\n var i = {\n hasSelectionCapabilities: function(j) {\n return (j && ((((((j.nodeName === \"INPUT\") && (j.type === \"text\"))) || (j.nodeName === \"TEXTAREA\")) || (j.contentEditable === \"true\"))));\n },\n getSelectionInformation: function() {\n var j = g();\n return {\n focusedElem: j,\n selectionRange: (i.hasSelectionCapabilities(j) ? i.getSelection(j) : null)\n };\n },\n restoreSelection: function(j) {\n var k = g(), l = j.focusedElem, m = j.selectionRange;\n if (((k !== l) && h(l))) {\n if (i.hasSelectionCapabilities(l)) {\n i.setSelection(l, m);\n };\n l.focus();\n }\n ;\n },\n getSelection: function(j) {\n var k;\n if (((j.contentEditable === \"true\") && window.getSelection)) {\n k = window.getSelection().getRangeAt(0);\n var l = k.commonAncestorContainer;\n if ((l && (l.nodeType === 3))) {\n l = l.parentNode;\n };\n if ((l !== j)) {\n return {\n start: 0,\n end: 0\n };\n }\n else return {\n start: k.startOffset,\n end: k.endOffset\n }\n ;\n }\n ;\n if (!document.selection) {\n return {\n start: j.selectionStart,\n end: j.selectionEnd\n }\n };\n k = document.selection.createRange();\n if ((k.parentElement() !== j)) {\n return {\n start: 0,\n end: 0\n }\n };\n var m = j.value.length;\n if ((j.nodeName === \"INPUT\")) {\n return {\n start: -k.moveStart(\"character\", -m),\n end: -k.moveEnd(\"character\", -m)\n };\n }\n else {\n var n = k.duplicate();\n n.moveToElementText(j);\n n.setEndPoint(\"StartToEnd\", k);\n var o = (m - n.text.length);\n n.setEndPoint(\"StartToStart\", k);\n return {\n start: (m - n.text.length),\n end: o\n };\n }\n ;\n },\n setSelection: function(j, k) {\n var l, m = k.start, n = k.end;\n if ((typeof n === \"undefined\")) {\n n = m;\n };\n if (document.selection) {\n if ((j.tagName === \"TEXTAREA\")) {\n var o = ((j.value.slice(0, m).match(/\\r/g) || [])).length, p = ((j.value.slice(m, n).match(/\\r/g) || [])).length;\n m -= o;\n n -= (o + p);\n }\n ;\n l = j.createTextRange();\n l.collapse(true);\n l.moveStart(\"character\", m);\n l.moveEnd(\"character\", (n - m));\n l.select();\n }\n else if ((j.contentEditable === \"true\")) {\n if ((j.childNodes.length === 1)) {\n l = document.createRange();\n l.setStart(j.childNodes[0], m);\n l.setEnd(j.childNodes[0], n);\n var q = window.getSelection();\n q.removeAllRanges();\n q.addRange(l);\n }\n ;\n }\n else {\n j.selectionStart = m;\n j.selectionEnd = Math.min(n, j.value.length);\n j.focus();\n }\n \n ;\n }\n };\n e.exports = i;\n});\n__d(\"mixInto\", [], function(a, b, c, d, e, f) {\n var g = function(h, i) {\n var j;\n for (j in i) {\n if (!i.hasOwnProperty(j)) {\n continue;\n };\n h.prototype[j] = i[j];\n };\n };\n e.exports = g;\n});\n__d(\"ReactOnDOMReady\", [\"PooledClass\",\"mixInto\",], function(a, b, c, d, e, f) {\n var g = b(\"PooledClass\"), h = b(\"mixInto\");\n function i(j) {\n this._queue = (j || null);\n };\n h(i, {\n enqueue: function(j, k) {\n this._queue = (this._queue || []);\n this._queue.push({\n component: j,\n callback: k\n });\n },\n notifyAll: function() {\n var j = this._queue;\n if (j) {\n this._queue = null;\n for (var k = 0, l = j.length; (k < l); k++) {\n var m = j[k].component, n = j[k].callback;\n n.call(m, m.getDOMNode());\n };\n j.length = 0;\n }\n ;\n },\n reset: function() {\n this._queue = null;\n },\n destructor: function() {\n this.reset();\n }\n });\n g.addPoolingTo(i);\n e.exports = i;\n});\n__d(\"Transaction\", [\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"throwIf\"), h = \"DUAL_TRANSACTION\", i = \"MISSING_TRANSACTION\", j = {\n reinitializeTransaction: function() {\n this.transactionWrappers = this.getTransactionWrappers();\n if (!this.wrapperInitData) {\n this.wrapperInitData = [];\n }\n else this.wrapperInitData.length = 0;\n ;\n if (!this.timingMetrics) {\n this.timingMetrics = {\n };\n };\n this.timingMetrics.methodInvocationTime = 0;\n if (!this.timingMetrics.wrapperInitTimes) {\n this.timingMetrics.wrapperInitTimes = [];\n }\n else this.timingMetrics.wrapperInitTimes.length = 0;\n ;\n if (!this.timingMetrics.wrapperCloseTimes) {\n this.timingMetrics.wrapperCloseTimes = [];\n }\n else this.timingMetrics.wrapperCloseTimes.length = 0;\n ;\n this._isInTransaction = false;\n },\n _isInTransaction: false,\n getTransactionWrappers: null,\n isInTransaction: function() {\n return !!this._isInTransaction;\n },\n perform: function(l, m, n, o, p, q, r, s) {\n g(this.isInTransaction(), h);\n var t = Date.now(), u = null, v;\n try {\n this.initializeAll();\n v = l.call(m, n, o, p, q, r, s);\n } catch (w) {\n u = w;\n } finally {\n var x = Date.now();\n this.methodInvocationTime += ((x - t));\n try {\n this.closeAll();\n } catch (y) {\n u = (u || y);\n };\n };\n if (u) {\n throw u\n };\n return v;\n },\n initializeAll: function() {\n this._isInTransaction = true;\n var l = this.transactionWrappers, m = this.timingMetrics.wrapperInitTimes, n = null;\n for (var o = 0; (o < l.length); o++) {\n var p = Date.now(), q = l[o];\n try {\n this.wrapperInitData[o] = (q.initialize ? q.initialize.call(this) : null);\n } catch (r) {\n n = (n || r);\n this.wrapperInitData[o] = k.OBSERVED_ERROR;\n } finally {\n var s = m[o], t = Date.now();\n m[o] = (((s || 0)) + ((t - p)));\n };\n };\n if (n) {\n throw n\n };\n },\n closeAll: function() {\n g(!this.isInTransaction(), i);\n var l = this.transactionWrappers, m = this.timingMetrics.wrapperCloseTimes, n = null;\n for (var o = 0; (o < l.length); o++) {\n var p = l[o], q = Date.now(), r = this.wrapperInitData[o];\n try {\n if ((r !== k.OBSERVED_ERROR)) {\n (p.close && p.close.call(this, r));\n };\n } catch (s) {\n n = (n || s);\n } finally {\n var t = Date.now(), u = m[o];\n m[o] = (((u || 0)) + ((t - q)));\n };\n };\n this.wrapperInitData.length = 0;\n this._isInTransaction = false;\n if (n) {\n throw n\n };\n }\n }, k = {\n Mixin: j,\n OBSERVED_ERROR: {\n }\n };\n e.exports = k;\n});\n__d(\"ReactReconcileTransaction\", [\"ExecutionEnvironment\",\"PooledClass\",\"ReactEventEmitter\",\"ReactInputSelection\",\"ReactOnDOMReady\",\"Transaction\",\"mixInto\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\"), h = b(\"PooledClass\"), i = b(\"ReactEventEmitter\"), j = b(\"ReactInputSelection\"), k = b(\"ReactOnDOMReady\"), l = b(\"Transaction\"), m = b(\"mixInto\"), n = {\n initialize: j.getSelectionInformation,\n close: j.restoreSelection\n }, o = {\n initialize: function() {\n var t = i.isEnabled();\n i.setEnabled(false);\n return t;\n },\n close: function(t) {\n i.setEnabled(t);\n }\n }, p = {\n initialize: function() {\n this.reactOnDOMReady.reset();\n },\n close: function() {\n this.reactOnDOMReady.notifyAll();\n }\n }, q = [n,o,p,];\n function r() {\n this.reinitializeTransaction();\n this.reactOnDOMReady = k.getPooled(null);\n };\n var s = {\n getTransactionWrappers: function() {\n if (g.canUseDOM) {\n return q;\n }\n else return []\n ;\n },\n getReactOnDOMReady: function() {\n return this.reactOnDOMReady;\n },\n destructor: function() {\n k.release(this.reactOnDOMReady);\n this.reactOnDOMReady = null;\n }\n };\n m(r, l.Mixin);\n m(r, s);\n h.addPoolingTo(r);\n e.exports = r;\n});\n__d(\"mergeHelpers\", [\"keyMirror\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"keyMirror\"), h = b(\"throwIf\"), i = 36, j = g({\n MERGE_ARRAY_FAIL: null,\n MERGE_CORE_FAILURE: null,\n MERGE_TYPE_USAGE_FAILURE: null,\n MERGE_DEEP_MAX_LEVELS: null,\n MERGE_DEEP_NO_ARR_STRATEGY: null\n }), k = function(m) {\n return ((typeof m !== \"object\") || (m === null));\n }, l = {\n MAX_MERGE_DEPTH: i,\n isTerminal: k,\n normalizeMergeArg: function(m) {\n return (((m === undefined) || (m === null)) ? {\n } : m);\n },\n checkMergeArrayArgs: function(m, n) {\n h((!Array.isArray(m) || !Array.isArray(n)), j.MERGE_CORE_FAILURE);\n },\n checkMergeObjectArgs: function(m, n) {\n l.checkMergeObjectArg(m);\n l.checkMergeObjectArg(n);\n },\n checkMergeObjectArg: function(m) {\n h((k(m) || Array.isArray(m)), j.MERGE_CORE_FAILURE);\n },\n checkMergeLevel: function(m) {\n h((m >= i), j.MERGE_DEEP_MAX_LEVELS);\n },\n checkArrayStrategy: function(m) {\n h(((m !== undefined) && !((m in l.ArrayStrategies))), j.MERGE_DEEP_NO_ARR_STRATEGY);\n },\n ArrayStrategies: g({\n Clobber: true,\n IndexByIndex: true\n }),\n ERRORS: j\n };\n e.exports = l;\n});\n__d(\"mergeInto\", [\"mergeHelpers\",], function(a, b, c, d, e, f) {\n var g = b(\"mergeHelpers\"), h = g.checkMergeObjectArg;\n function i(j, k) {\n h(j);\n if ((k != null)) {\n h(k);\n for (var l in k) {\n if (!k.hasOwnProperty(l)) {\n continue;\n };\n j[l] = k[l];\n };\n }\n ;\n };\n e.exports = i;\n});\n__d(\"merge\", [\"mergeInto\",], function(a, b, c, d, e, f) {\n var g = b(\"mergeInto\"), h = function(i, j) {\n var k = {\n };\n g(k, i);\n g(k, j);\n return k;\n };\n e.exports = h;\n});\n__d(\"ReactComponent\", [\"ReactCurrentOwner\",\"ReactDOMIDOperations\",\"ReactID\",\"ReactMount\",\"ReactOwner\",\"ReactReconcileTransaction\",\"ReactUpdates\",\"invariant\",\"keyMirror\",\"merge\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactCurrentOwner\"), h = b(\"ReactDOMIDOperations\"), i = b(\"ReactID\"), j = b(\"ReactMount\"), k = b(\"ReactOwner\"), l = b(\"ReactReconcileTransaction\"), m = b(\"ReactUpdates\"), n = b(\"invariant\"), o = b(\"keyMirror\"), p = b(\"merge\"), q = \"{owner}\", r = \"{is.key.validated}\", s = o({\n MOUNTED: null,\n UNMOUNTED: null\n }), t = {\n };\n function u(x) {\n if ((x[r] || (x.props.key != null))) {\n return\n };\n x[r] = true;\n if (!g.current) {\n return\n };\n var y = g.current.constructor.displayName;\n if (t.hasOwnProperty(y)) {\n return\n };\n t[y] = true;\n var z = (((\"Each child in an array should have a unique \\\"key\\\" prop. \" + \"Check the render method of \") + y) + \".\");\n if (!x.isOwnedBy(g.current)) {\n var aa = (x.props[q] && x.props[q].constructor.displayName);\n z += ((\" It was passed a child from \" + aa) + \".\");\n }\n ;\n };\n function v(x) {\n if (Array.isArray(x)) {\n for (var y = 0; (y < x.length); y++) {\n var z = x[y];\n if (w.isValidComponent(z)) {\n u(z);\n };\n };\n }\n else if (w.isValidComponent(x)) {\n x[r] = true;\n }\n ;\n };\n var w = {\n isValidComponent: function(x) {\n return !!(((x && (typeof x.mountComponentIntoNode === \"function\")) && (typeof x.receiveProps === \"function\")));\n },\n getKey: function(x, y) {\n if (((x && x.props) && (x.props.key != null))) {\n return (\"\" + x.props.key)\n };\n return (\"\" + y);\n },\n LifeCycle: s,\n DOMIDOperations: h,\n ReactReconcileTransaction: l,\n setDOMOperations: function(x) {\n w.DOMIDOperations = x;\n },\n setReactReconcileTransaction: function(x) {\n w.ReactReconcileTransaction = x;\n },\n Mixin: {\n isMounted: function() {\n return (this._lifeCycleState === s.MOUNTED);\n },\n getDOMNode: function() {\n n(this.isMounted());\n return i.getNode(this._rootNodeID);\n },\n setProps: function(x, y) {\n this.replaceProps(p((this._pendingProps || this.props), x), y);\n },\n replaceProps: function(x, y) {\n n(!this.props[q]);\n this._pendingProps = x;\n m.enqueueUpdate(this, y);\n },\n construct: function(x, y) {\n this.props = (x || {\n });\n this.props[q] = g.current;\n this._lifeCycleState = s.UNMOUNTED;\n this._pendingProps = null;\n this._pendingCallbacks = null;\n var z = (arguments.length - 1);\n if ((z === 1)) {\n this.props.children = y;\n }\n else if ((z > 1)) {\n var aa = Array(z);\n for (var ba = 0; (ba < z); ba++) {\n aa[ba] = arguments[(ba + 1)];;\n };\n this.props.children = aa;\n }\n \n ;\n },\n mountComponent: function(x, y) {\n n(!this.isMounted());\n var z = this.props;\n if ((z.ref != null)) {\n k.addComponentAsRefTo(this, z.ref, z[q]);\n };\n this._rootNodeID = x;\n this._lifeCycleState = s.MOUNTED;\n },\n unmountComponent: function() {\n n(this.isMounted());\n var x = this.props;\n if ((x.ref != null)) {\n k.removeComponentAsRefFrom(this, x.ref, x[q]);\n };\n i.purgeID(this._rootNodeID);\n this._rootNodeID = null;\n this._lifeCycleState = s.UNMOUNTED;\n },\n receiveProps: function(x, y) {\n n(this.isMounted());\n this._pendingProps = x;\n this._performUpdateIfNecessary(y);\n },\n performUpdateIfNecessary: function() {\n var x = w.ReactReconcileTransaction.getPooled();\n x.perform(this._performUpdateIfNecessary, this, x);\n w.ReactReconcileTransaction.release(x);\n },\n _performUpdateIfNecessary: function(x) {\n if ((this._pendingProps == null)) {\n return\n };\n var y = this.props;\n this.props = this._pendingProps;\n this._pendingProps = null;\n this.updateComponent(x, y);\n },\n updateComponent: function(x, y) {\n var z = this.props;\n if (((z[q] !== y[q]) || (z.ref !== y.ref))) {\n if ((y.ref != null)) {\n k.removeComponentAsRefFrom(this, y.ref, y[q]);\n };\n if ((z.ref != null)) {\n k.addComponentAsRefTo(this, z.ref, z[q]);\n };\n }\n ;\n },\n mountComponentIntoNode: function(x, y, z) {\n var aa = w.ReactReconcileTransaction.getPooled();\n aa.perform(this._mountComponentIntoNode, this, x, y, aa, z);\n w.ReactReconcileTransaction.release(aa);\n },\n _mountComponentIntoNode: function(x, y, z, aa) {\n n((y && (y.nodeType === 1)));\n var ba = Date.now(), ca = this.mountComponent(x, z);\n j.totalInstantiationTime += ((Date.now() - ba));\n if (aa) {\n return\n };\n var da = Date.now(), ea = y.parentNode;\n if (ea) {\n var fa = y.nextSibling;\n ea.removeChild(y);\n y.innerHTML = ca;\n if (fa) {\n ea.insertBefore(y, fa);\n }\n else ea.appendChild(y);\n ;\n }\n else y.innerHTML = ca;\n ;\n j.totalInjectionTime += ((Date.now() - da));\n },\n unmountComponentFromNode: function(x) {\n this.unmountComponent();\n while (x.lastChild) {\n x.removeChild(x.lastChild);;\n };\n },\n isOwnedBy: function(x) {\n return (this.props[q] === x);\n },\n getSiblingByRef: function(x) {\n var y = this.props[q];\n if ((!y || !y.refs)) {\n return null\n };\n return y.refs[x];\n }\n }\n };\n e.exports = w;\n});\n__d(\"joinClasses\", [], function(a, b, c, d, e, f) {\n function g(h) {\n if (!h) {\n h = \"\";\n };\n var i, j = arguments.length;\n if ((j > 1)) {\n for (var k = 1; (k < j); k++) {\n i = arguments[k];\n (i && (h += (\" \" + i)));\n }\n };\n return h;\n };\n e.exports = g;\n});\n__d(\"ReactPropTransferer\", [\"emptyFunction\",\"joinClasses\",\"merge\",], function(a, b, c, d, e, f) {\n var g = b(\"emptyFunction\"), h = b(\"joinClasses\"), i = b(\"merge\");\n function j(m) {\n return function(n, o, p) {\n if (!n.hasOwnProperty(o)) {\n n[o] = p;\n }\n else n[o] = m(n[o], p);\n ;\n };\n };\n var k = {\n children: g,\n className: j(h),\n ref: g,\n style: j(i)\n }, l = {\n TransferStrategies: k,\n Mixin: {\n transferPropsTo: function(m) {\n var n = {\n };\n for (var o in m.props) {\n if (m.props.hasOwnProperty(o)) {\n n[o] = m.props[o];\n };\n };\n for (var p in this.props) {\n if (!this.props.hasOwnProperty(p)) {\n continue;\n };\n var q = k[p];\n if (q) {\n q(n, p, this.props[p]);\n }\n else if (!n.hasOwnProperty(p)) {\n n[p] = this.props[p];\n }\n ;\n };\n m.props = n;\n return m;\n }\n }\n };\n e.exports = l;\n});\n__d(\"ReactCompositeComponent\", [\"ReactComponent\",\"ReactCurrentOwner\",\"ReactOwner\",\"ReactPropTransferer\",\"ReactUpdates\",\"invariant\",\"keyMirror\",\"merge\",\"mixInto\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactComponent\"), h = b(\"ReactCurrentOwner\"), i = b(\"ReactOwner\"), j = b(\"ReactPropTransferer\"), k = b(\"ReactUpdates\"), l = b(\"invariant\"), m = b(\"keyMirror\"), n = b(\"merge\"), o = b(\"mixInto\"), p = m({\n DEFINE_ONCE: null,\n DEFINE_MANY: null,\n OVERRIDE_BASE: null\n }), q = {\n mixins: p.DEFINE_MANY,\n props: p.DEFINE_ONCE,\n getDefaultProps: p.DEFINE_ONCE,\n getInitialState: p.DEFINE_ONCE,\n render: p.DEFINE_ONCE,\n componentWillMount: p.DEFINE_MANY,\n componentDidMount: p.DEFINE_MANY,\n componentWillReceiveProps: p.DEFINE_MANY,\n shouldComponentUpdate: p.DEFINE_ONCE,\n componentWillUpdate: p.DEFINE_MANY,\n componentDidUpdate: p.DEFINE_MANY,\n componentWillUnmount: p.DEFINE_MANY,\n updateComponent: p.OVERRIDE_BASE\n }, r = {\n displayName: function(aa, ba) {\n aa.displayName = ba;\n },\n mixins: function(aa, ba) {\n if (ba) {\n for (var ca = 0; (ca < ba.length); ca++) {\n u(aa, ba[ca]);;\n }\n };\n },\n props: function(aa, ba) {\n aa.propDeclarations = ba;\n }\n };\n function s(aa, ba) {\n var ca = q[ba];\n if (x.hasOwnProperty(ba)) {\n l((ca === p.OVERRIDE_BASE));\n };\n if (aa.hasOwnProperty(ba)) {\n l((ca === p.DEFINE_MANY));\n };\n };\n function t(aa) {\n var ba = aa._compositeLifeCycleState;\n l((aa.isMounted() || (ba === w.MOUNTING)));\n l(((ba !== w.RECEIVING_STATE) && (ba !== w.UNMOUNTING)));\n };\n function u(aa, ba) {\n var ca = aa.prototype;\n for (var da in ba) {\n var ea = ba[da];\n if ((!ba.hasOwnProperty(da) || !ea)) {\n continue;\n };\n s(ca, da);\n if (r.hasOwnProperty(da)) {\n r[da](aa, ea);\n }\n else {\n var fa = (da in q), ga = (da in ca), ha = ea.__reactDontBind, ia = (typeof ea === \"function\"), ja = (((ia && !fa) && !ga) && !ha);\n if (ja) {\n if (!ca.__reactAutoBindMap) {\n ca.__reactAutoBindMap = {\n };\n };\n ca.__reactAutoBindMap[da] = ea;\n ca[da] = ea;\n }\n else if (ga) {\n ca[da] = v(ca[da], ea);\n }\n else ca[da] = ea;\n \n ;\n }\n ;\n };\n };\n function v(aa, ba) {\n return function ca() {\n aa.apply(this, arguments);\n ba.apply(this, arguments);\n };\n };\n var w = m({\n MOUNTING: null,\n UNMOUNTING: null,\n RECEIVING_PROPS: null,\n RECEIVING_STATE: null\n }), x = {\n construct: function(aa, ba) {\n g.Mixin.construct.apply(this, arguments);\n this.state = null;\n this._pendingState = null;\n this._compositeLifeCycleState = null;\n },\n isMounted: function() {\n return (g.Mixin.isMounted.call(this) && (this._compositeLifeCycleState !== w.MOUNTING));\n },\n mountComponent: function(aa, ba) {\n g.Mixin.mountComponent.call(this, aa, ba);\n this._compositeLifeCycleState = w.MOUNTING;\n this._defaultProps = (this.getDefaultProps ? this.getDefaultProps() : null);\n this._processProps(this.props);\n if (this.__reactAutoBindMap) {\n this._bindAutoBindMethods();\n };\n this.state = (this.getInitialState ? this.getInitialState() : null);\n this._pendingState = null;\n this._pendingForceUpdate = false;\n if (this.componentWillMount) {\n this.componentWillMount();\n if (this._pendingState) {\n this.state = this._pendingState;\n this._pendingState = null;\n }\n ;\n }\n ;\n this._renderedComponent = this._renderValidatedComponent();\n this._compositeLifeCycleState = null;\n var ca = this._renderedComponent.mountComponent(aa, ba);\n if (this.componentDidMount) {\n ba.getReactOnDOMReady().enqueue(this, this.componentDidMount);\n };\n return ca;\n },\n unmountComponent: function() {\n this._compositeLifeCycleState = w.UNMOUNTING;\n if (this.componentWillUnmount) {\n this.componentWillUnmount();\n };\n this._compositeLifeCycleState = null;\n this._defaultProps = null;\n g.Mixin.unmountComponent.call(this);\n this._renderedComponent.unmountComponent();\n this._renderedComponent = null;\n if (this.refs) {\n this.refs = null;\n };\n },\n setState: function(aa, ba) {\n this.replaceState(n((this._pendingState || this.state), aa), ba);\n },\n replaceState: function(aa, ba) {\n t.call(null, this);\n this._pendingState = aa;\n k.enqueueUpdate(this, ba);\n },\n _processProps: function(aa) {\n var ba, ca = this._defaultProps;\n for (ba in ca) {\n if (!((ba in aa))) {\n aa[ba] = ca[ba];\n };\n };\n var da = this.constructor.propDeclarations;\n if (da) {\n var ea = this.constructor.displayName;\n for (ba in da) {\n var fa = da[ba];\n if (fa) {\n fa(aa, ba, ea);\n };\n };\n }\n ;\n },\n performUpdateIfNecessary: function() {\n var aa = this._compositeLifeCycleState;\n if (((aa === w.MOUNTING) || (aa === w.RECEIVING_PROPS))) {\n return\n };\n g.Mixin.performUpdateIfNecessary.call(this);\n },\n _performUpdateIfNecessary: function(aa) {\n if ((((this._pendingProps == null) && (this._pendingState == null)) && !this._pendingForceUpdate)) {\n return\n };\n var ba = this.props;\n if ((this._pendingProps != null)) {\n ba = this._pendingProps;\n this._processProps(ba);\n this._pendingProps = null;\n this._compositeLifeCycleState = w.RECEIVING_PROPS;\n if (this.componentWillReceiveProps) {\n this.componentWillReceiveProps(ba, aa);\n };\n }\n ;\n this._compositeLifeCycleState = w.RECEIVING_STATE;\n var ca = (this._pendingState || this.state);\n this._pendingState = null;\n if (((this._pendingForceUpdate || !this.shouldComponentUpdate) || this.shouldComponentUpdate(ba, ca))) {\n this._pendingForceUpdate = false;\n this._performComponentUpdate(ba, ca, aa);\n }\n else {\n this.props = ba;\n this.state = ca;\n }\n ;\n this._compositeLifeCycleState = null;\n },\n _performComponentUpdate: function(aa, ba, ca) {\n var da = this.props, ea = this.state;\n if (this.componentWillUpdate) {\n this.componentWillUpdate(aa, ba, ca);\n };\n this.props = aa;\n this.state = ba;\n this.updateComponent(ca, da, ea);\n if (this.componentDidUpdate) {\n ca.getReactOnDOMReady().enqueue(this, this.componentDidUpdate.bind(this, da, ea));\n };\n },\n updateComponent: function(aa, ba, ca) {\n g.Mixin.updateComponent.call(this, aa, ba);\n var da = this._renderedComponent, ea = this._renderValidatedComponent();\n if ((da.constructor === ea.constructor)) {\n da.receiveProps(ea.props, aa);\n }\n else {\n var fa = this._rootNodeID, ga = da._rootNodeID;\n da.unmountComponent();\n var ha = ea.mountComponent(fa, aa);\n g.DOMIDOperations.dangerouslyReplaceNodeWithMarkupByID(ga, ha);\n this._renderedComponent = ea;\n }\n ;\n },\n forceUpdate: function(aa) {\n var ba = this._compositeLifeCycleState;\n l((this.isMounted() || (ba === w.MOUNTING)));\n l(((ba !== w.RECEIVING_STATE) && (ba !== w.UNMOUNTING)));\n this._pendingForceUpdate = true;\n k.enqueueUpdate(this, aa);\n },\n _renderValidatedComponent: function() {\n var aa;\n h.current = this;\n try {\n aa = this.render();\n } catch (ba) {\n throw ba;\n } finally {\n h.current = null;\n };\n l(g.isValidComponent(aa));\n return aa;\n },\n _bindAutoBindMethods: function() {\n for (var aa in this.__reactAutoBindMap) {\n if (!this.__reactAutoBindMap.hasOwnProperty(aa)) {\n continue;\n };\n var ba = this.__reactAutoBindMap[aa];\n this[aa] = this._bindAutoBindMethod(ba);\n };\n },\n _bindAutoBindMethod: function(aa) {\n var ba = this;\n return function() {\n return aa.apply(ba, arguments);\n };\n }\n }, y = function() {\n \n };\n o(y, g.Mixin);\n o(y, i.Mixin);\n o(y, j.Mixin);\n o(y, x);\n var z = {\n LifeCycle: w,\n Base: y,\n createClass: function(aa) {\n var ba = function() {\n \n };\n ba.prototype = new y();\n ba.prototype.constructor = ba;\n u(ba, aa);\n l(ba.prototype.render);\n var ca = function(da, ea) {\n var fa = new ba();\n fa.construct.apply(fa, arguments);\n return fa;\n };\n ca.componentConstructor = ba;\n ca.originalSpec = aa;\n return ca;\n },\n autoBind: function(aa) {\n return aa;\n }\n };\n e.exports = z;\n});\n__d(\"ReactMultiChild\", [\"ReactComponent\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactComponent\");\n function h(k, l) {\n return ((k && l) && (k.constructor === l.constructor));\n };\n var i = {\n enqueueMarkupAt: function(k, l) {\n this.domOperations = (this.domOperations || []);\n this.domOperations.push({\n insertMarkup: k,\n finalIndex: l\n });\n },\n enqueueMove: function(k, l) {\n this.domOperations = (this.domOperations || []);\n this.domOperations.push({\n moveFrom: k,\n finalIndex: l\n });\n },\n enqueueUnmountChildByName: function(k, l) {\n if (g.isValidComponent(l)) {\n this.domOperations = (this.domOperations || []);\n this.domOperations.push({\n removeAt: l._domIndex\n });\n (l.unmountComponent && l.unmountComponent());\n delete this._renderedChildren[k];\n }\n ;\n },\n processChildDOMOperationsQueue: function() {\n if (this.domOperations) {\n g.DOMIDOperations.manageChildrenByParentID(this._rootNodeID, this.domOperations);\n this.domOperations = null;\n }\n ;\n },\n unmountMultiChild: function() {\n var k = this._renderedChildren;\n for (var l in k) {\n if ((k.hasOwnProperty(l) && k[l])) {\n var m = k[l];\n (m.unmountComponent && m.unmountComponent());\n }\n ;\n };\n this._renderedChildren = null;\n },\n mountMultiChild: function(k, l) {\n var m = \"\", n = 0;\n for (var o in k) {\n var p = k[o];\n if ((k.hasOwnProperty(o) && p)) {\n m += p.mountComponent(((this._rootNodeID + \".\") + o), l);\n p._domIndex = n;\n n++;\n }\n ;\n };\n this._renderedChildren = k;\n this.domOperations = null;\n return m;\n },\n updateMultiChild: function(k, l) {\n if ((!k && !this._renderedChildren)) {\n return;\n }\n else if ((k && !this._renderedChildren)) {\n this._renderedChildren = {\n };\n }\n else if ((!k && this._renderedChildren)) {\n k = {\n };\n }\n \n ;\n var m = (this._rootNodeID + \".\"), n = null, o = 0, p = 0, q = 0;\n for (var r in k) {\n if (!k.hasOwnProperty(r)) {\n continue;\n };\n var s = this._renderedChildren[r], t = k[r];\n if (h(s, t)) {\n if (n) {\n this.enqueueMarkupAt(n, (p - o));\n n = null;\n }\n ;\n o = 0;\n if ((s._domIndex < q)) {\n this.enqueueMove(s._domIndex, p);\n };\n q = Math.max(s._domIndex, q);\n s.receiveProps(t.props, l);\n s._domIndex = p;\n }\n else {\n if (s) {\n this.enqueueUnmountChildByName(r, s);\n q = Math.max(s._domIndex, q);\n }\n ;\n if (t) {\n this._renderedChildren[r] = t;\n var u = t.mountComponent((m + r), l);\n n = (n ? (n + u) : u);\n o++;\n t._domIndex = p;\n }\n ;\n }\n ;\n p = (t ? (p + 1) : p);\n };\n if (n) {\n this.enqueueMarkupAt(n, (p - o));\n };\n for (var v in this._renderedChildren) {\n if (!this._renderedChildren.hasOwnProperty(v)) {\n continue;\n };\n var w = this._renderedChildren[v];\n if ((w && !k[v])) {\n this.enqueueUnmountChildByName(v, w);\n };\n };\n this.processChildDOMOperationsQueue();\n }\n }, j = {\n Mixin: i\n };\n e.exports = j;\n});\n__d(\"ReactTextComponent\", [\"ReactComponent\",\"ReactID\",\"escapeTextForBrowser\",\"mixInto\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactComponent\"), h = b(\"ReactID\"), i = b(\"escapeTextForBrowser\"), j = b(\"mixInto\"), k = function(l) {\n this.construct({\n text: l\n });\n };\n j(k, g.Mixin);\n j(k, {\n mountComponent: function(l) {\n g.Mixin.mountComponent.call(this, l);\n return (((((((\"\\u003Cspan \" + h.ATTR_NAME) + \"=\\\"\") + l) + \"\\\"\\u003E\") + i(this.props.text)) + \"\\u003C/span\\u003E\"));\n },\n receiveProps: function(l, m) {\n if ((l.text !== this.props.text)) {\n this.props.text = l.text;\n g.DOMIDOperations.updateTextContentByID(this._rootNodeID, l.text);\n }\n ;\n }\n });\n e.exports = k;\n});\n__d(\"flattenChildren\", [\"ReactComponent\",\"ReactTextComponent\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactComponent\"), h = b(\"ReactTextComponent\"), i = b(\"throwIf\"), j = \"INVALID_CHILD\", k = (\"You have two children with identical keys. Make sure that you set the \" + \"\\\"key\\\" property to a unique value such as a row ID.\"), l = function(n, o, p) {\n if (Array.isArray(o)) {\n for (var q = 0; (q < o.length); q++) {\n var r = o[q];\n l(n, r, (((p + \"[\") + g.getKey(r, q)) + \"]\"));\n };\n }\n else {\n var s = typeof o, t = (p === \"\"), u = (t ? ((\"[\" + g.getKey(o, 0)) + \"]\") : p);\n if ((((o === null) || (o === undefined)) || (s === \"boolean\"))) {\n n[u] = null;\n }\n else if (o.mountComponentIntoNode) {\n n[u] = o;\n }\n else if ((s === \"object\")) {\n i((o && (o.nodeType === 1)), j);\n for (var v in o) {\n if (o.hasOwnProperty(v)) {\n l(n, o[v], (((p + \"{\") + v) + \"}\"));\n };\n };\n }\n else if ((s === \"string\")) {\n n[u] = new h(o);\n }\n else if ((s === \"number\")) {\n n[u] = new h((\"\" + o));\n }\n \n \n \n ;\n }\n ;\n };\n function m(n) {\n if (((n === null) || (n === undefined))) {\n return n\n };\n var o = {\n };\n l(o, n, \"\");\n return o;\n };\n e.exports = m;\n});\n__d(\"ReactNativeComponent\", [\"CSSPropertyOperations\",\"DOMPropertyOperations\",\"ReactComponent\",\"ReactEventEmitter\",\"ReactMultiChild\",\"ReactID\",\"escapeTextForBrowser\",\"flattenChildren\",\"invariant\",\"keyOf\",\"merge\",\"mixInto\",], function(a, b, c, d, e, f) {\n var g = b(\"CSSPropertyOperations\"), h = b(\"DOMPropertyOperations\"), i = b(\"ReactComponent\"), j = b(\"ReactEventEmitter\"), k = b(\"ReactMultiChild\"), l = b(\"ReactID\"), m = b(\"escapeTextForBrowser\"), n = b(\"flattenChildren\"), o = b(\"invariant\"), p = b(\"keyOf\"), q = b(\"merge\"), r = b(\"mixInto\"), s = j.putListener, t = j.deleteListener, u = j.registrationNames, v = {\n string: true,\n number: true\n }, w = p({\n dangerouslySetInnerHTML: null\n }), x = p({\n style: null\n });\n function y(aa) {\n if (!aa) {\n return\n };\n o(((aa.children == null) || (aa.dangerouslySetInnerHTML == null)));\n o(((aa.style == null) || (typeof aa.style === \"object\")));\n };\n function z(aa, ba) {\n this._tagOpen = ((\"\\u003C\" + aa) + \" \");\n this._tagClose = (ba ? \"\" : ((\"\\u003C/\" + aa) + \"\\u003E\"));\n this.tagName = aa.toUpperCase();\n };\n z.Mixin = {\n mountComponent: function(aa, ba) {\n i.Mixin.mountComponent.call(this, aa, ba);\n y(this.props);\n return (((this._createOpenTagMarkup() + this._createContentMarkup(ba)) + this._tagClose));\n },\n _createOpenTagMarkup: function() {\n var aa = this.props, ba = this._tagOpen;\n for (var ca in aa) {\n if (!aa.hasOwnProperty(ca)) {\n continue;\n };\n var da = aa[ca];\n if ((da == null)) {\n continue;\n };\n if (u[ca]) {\n s(this._rootNodeID, ca, da);\n }\n else {\n if ((ca === x)) {\n if (da) {\n da = aa.style = q(aa.style);\n };\n da = g.createMarkupForStyles(da);\n }\n ;\n var ea = h.createMarkupForProperty(ca, da);\n if (ea) {\n ba += (\" \" + ea);\n };\n }\n ;\n };\n var fa = m(this._rootNodeID);\n return (((((ba + \" \") + l.ATTR_NAME) + \"=\\\"\") + fa) + \"\\\"\\u003E\");\n },\n _createContentMarkup: function(aa) {\n var ba = this.props.dangerouslySetInnerHTML;\n if ((ba != null)) {\n if ((ba.__html != null)) {\n return ba.__html\n };\n }\n else {\n var ca = (v[typeof this.props.children] ? this.props.children : null), da = ((ca != null) ? null : this.props.children);\n if ((ca != null)) {\n return m(ca);\n }\n else if ((da != null)) {\n return this.mountMultiChild(n(da), aa)\n }\n ;\n }\n ;\n return \"\";\n },\n receiveProps: function(aa, ba) {\n y(aa);\n i.Mixin.receiveProps.call(this, aa, ba);\n },\n updateComponent: function(aa, ba) {\n i.Mixin.updateComponent.call(this, aa, ba);\n this._updateDOMProperties(ba);\n this._updateDOMChildren(ba, aa);\n },\n _updateDOMProperties: function(aa) {\n var ba = this.props, ca, da, ea;\n for (ca in aa) {\n if ((ba.hasOwnProperty(ca) || !aa.hasOwnProperty(ca))) {\n continue;\n };\n if ((ca === x)) {\n var fa = aa[ca];\n for (da in fa) {\n if (fa.hasOwnProperty(da)) {\n ea = (ea || {\n });\n ea[da] = \"\";\n }\n ;\n };\n }\n else if ((ca === w)) {\n i.DOMIDOperations.updateTextContentByID(this._rootNodeID, \"\");\n }\n else if (u[ca]) {\n t(this._rootNodeID, ca);\n }\n else i.DOMIDOperations.deletePropertyByID(this._rootNodeID, ca);\n \n \n ;\n };\n for (ca in ba) {\n var ga = ba[ca], ha = aa[ca];\n if ((!ba.hasOwnProperty(ca) || (ga === ha))) {\n continue;\n };\n if ((ca === x)) {\n if (ga) {\n ga = ba.style = q(ga);\n };\n if (ha) {\n for (da in ha) {\n if ((ha.hasOwnProperty(da) && !ga.hasOwnProperty(da))) {\n ea = (ea || {\n });\n ea[da] = \"\";\n }\n ;\n };\n for (da in ga) {\n if ((ga.hasOwnProperty(da) && (ha[da] !== ga[da]))) {\n ea = (ea || {\n });\n ea[da] = ga[da];\n }\n ;\n };\n }\n else ea = ga;\n ;\n }\n else if ((ca === w)) {\n var ia = (ha && ha.__html), ja = (ga && ga.__html);\n if ((ia !== ja)) {\n i.DOMIDOperations.updateInnerHTMLByID(this._rootNodeID, ga);\n };\n }\n else if (u[ca]) {\n s(this._rootNodeID, ca, ga);\n }\n else i.DOMIDOperations.updatePropertyByID(this._rootNodeID, ca, ga);\n \n \n ;\n };\n if (ea) {\n i.DOMIDOperations.updateStylesByID(this._rootNodeID, ea);\n };\n },\n _updateDOMChildren: function(aa, ba) {\n var ca = this.props, da = (v[typeof aa.children] ? aa.children : null), ea = (v[typeof ca.children] ? ca.children : null), fa = ((da != null) ? null : aa.children), ga = ((ea != null) ? null : ca.children);\n if ((ea != null)) {\n var ha = ((fa != null) && (ga == null));\n if (ha) {\n this.updateMultiChild(null, ba);\n };\n if ((da !== ea)) {\n i.DOMIDOperations.updateTextContentByID(this._rootNodeID, (\"\" + ea));\n };\n }\n else {\n var ia = ((da != null) && (ea == null));\n if (ia) {\n i.DOMIDOperations.updateTextContentByID(this._rootNodeID, \"\");\n };\n this.updateMultiChild(n(ca.children), ba);\n }\n ;\n },\n unmountComponent: function() {\n j.deleteAllListeners(this._rootNodeID);\n i.Mixin.unmountComponent.call(this);\n this.unmountMultiChild();\n }\n };\n r(z, i.Mixin);\n r(z, z.Mixin);\n r(z, k.Mixin);\n e.exports = z;\n});\n__d(\"objMapKeyVal\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n if (!h) {\n return null\n };\n var k = 0, l = {\n };\n for (var m in h) {\n if (h.hasOwnProperty(m)) {\n l[m] = i.call(j, m, h[m], k++);\n };\n };\n return l;\n };\n e.exports = g;\n});\n__d(\"ReactDOM\", [\"ReactNativeComponent\",\"mergeInto\",\"objMapKeyVal\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactNativeComponent\"), h = b(\"mergeInto\"), i = b(\"objMapKeyVal\");\n function j(m, n) {\n var o = function() {\n \n };\n o.prototype = new g(m, n);\n o.prototype.constructor = o;\n var p = function(q, r) {\n var s = new o();\n s.construct.apply(s, arguments);\n return s;\n };\n p.componentConstructor = o;\n return p;\n };\n var k = i({\n a: false,\n abbr: false,\n address: false,\n audio: false,\n b: false,\n blockquote: false,\n body: false,\n br: true,\n button: false,\n code: false,\n col: true,\n colgroup: false,\n dd: false,\n div: false,\n section: false,\n dl: false,\n dt: false,\n em: false,\n embed: true,\n fieldset: false,\n figcaption: false,\n figure: false,\n footer: false,\n form: false,\n h1: false,\n h2: false,\n h3: false,\n h4: false,\n h5: false,\n h6: false,\n header: false,\n hr: true,\n i: false,\n iframe: false,\n img: true,\n input: true,\n label: false,\n legend: false,\n li: false,\n line: false,\n nav: false,\n object: false,\n ol: false,\n optgroup: false,\n option: false,\n p: false,\n param: true,\n pre: false,\n select: false,\n small: false,\n source: false,\n span: false,\n sub: false,\n sup: false,\n strong: false,\n table: false,\n tbody: false,\n td: false,\n textarea: false,\n tfoot: false,\n th: false,\n thead: false,\n time: false,\n title: false,\n tr: false,\n u: false,\n ul: false,\n video: false,\n wbr: false,\n circle: false,\n g: false,\n path: false,\n polyline: false,\n rect: false,\n svg: false,\n text: false\n }, j), l = {\n injectComponentClasses: function(m) {\n h(k, m);\n }\n };\n k.injection = l;\n e.exports = k;\n});\n__d(\"ReactProps\", [\"createObjectFrom\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"createObjectFrom\"), h = b(\"invariant\"), i = {\n array: k(\"array\"),\n bool: k(\"boolean\"),\n func: k(\"function\"),\n number: k(\"number\"),\n object: k(\"object\"),\n string: k(\"string\"),\n oneOf: l,\n instanceOf: m\n }, j = \"\\u003C\\u003Canonymous\\u003E\\u003E\";\n function k(o) {\n function p(q, r, s) {\n var t = typeof q;\n if (((t === \"object\") && Array.isArray(q))) {\n t = \"array\";\n };\n h((t === o));\n };\n return n(p);\n };\n function l(o) {\n var p = g(o);\n function q(r, s, t) {\n h(p[r]);\n };\n return n(q);\n };\n function m(o) {\n function p(q, r, s) {\n h((q instanceof o));\n };\n return n(p);\n };\n function n(o) {\n function p(q) {\n function r(s, t, u) {\n var v = s[t];\n if ((v != null)) {\n o(v, t, (u || j));\n }\n else h(!q);\n ;\n };\n if (!q) {\n r.isRequired = p(true);\n };\n return r;\n };\n return p(false);\n };\n e.exports = i;\n});\n__d(\"ReactServerRendering\", [\"ReactReconcileTransaction\",\"ReactInstanceHandles\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactReconcileTransaction\"), h = b(\"ReactInstanceHandles\");\n function i(j, k) {\n var l = h.createReactRootID(), m = g.getPooled();\n m.reinitializeTransaction();\n try {\n m.perform(function() {\n k(j.mountComponent(l, m));\n }, null);\n } finally {\n g.release(m);\n };\n };\n e.exports = {\n renderComponentToString: i\n };\n});\n__d(\"ReactDOMForm\", [\"ReactCompositeComponent\",\"ReactDOM\",\"ReactEventEmitter\",\"EventConstants\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactCompositeComponent\"), h = b(\"ReactDOM\"), i = b(\"ReactEventEmitter\"), j = b(\"EventConstants\"), k = h.form, l = g.createClass({\n render: function() {\n return this.transferPropsTo(k(null, this.props.children));\n },\n componentDidMount: function(m) {\n i.trapBubbledEvent(j.topLevelTypes.topSubmit, \"submit\", m);\n }\n });\n e.exports = l;\n});\n__d(\"ReactDOMInput\", [\"DOMPropertyOperations\",\"ReactCompositeComponent\",\"ReactDOM\",\"merge\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMPropertyOperations\"), h = b(\"ReactCompositeComponent\"), i = b(\"ReactDOM\"), j = b(\"merge\"), k = i.input, l = h.createClass({\n getInitialState: function() {\n return {\n checked: (this.props.defaultChecked || false),\n value: (this.props.defaultValue || \"\")\n };\n },\n shouldComponentUpdate: function() {\n return !this._isChanging;\n },\n getChecked: function() {\n return ((this.props.checked != null) ? this.props.checked : this.state.checked);\n },\n getValue: function() {\n return ((this.props.value != null) ? this.props.value : this.state.value);\n },\n render: function() {\n var m = j(this.props);\n m.checked = this.getChecked();\n m.value = this.getValue();\n m.onChange = this.handleChange;\n return k(m, this.props.children);\n },\n componentDidUpdate: function(m, n, o) {\n if ((this.props.checked != null)) {\n g.setValueForProperty(o, \"checked\", (this.props.checked || false));\n };\n if ((this.props.value != null)) {\n g.setValueForProperty(o, \"value\", (this.props.value || \"\"));\n };\n },\n handleChange: h.autoBind(function(event) {\n var m;\n if (this.props.onChange) {\n this._isChanging = true;\n m = this.props.onChange(event);\n this._isChanging = false;\n }\n ;\n this.setState({\n checked: event.target.checked,\n value: event.target.value\n });\n return m;\n })\n });\n e.exports = l;\n});\n__d(\"ReactDOMTextarea\", [\"DOMPropertyOperations\",\"ReactCompositeComponent\",\"ReactDOM\",\"invariant\",\"merge\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMPropertyOperations\"), h = b(\"ReactCompositeComponent\"), i = b(\"ReactDOM\"), j = b(\"invariant\"), k = b(\"merge\"), l = i.textarea, m = {\n string: true,\n number: true\n }, n = h.createClass({\n getInitialState: function() {\n var o = this.props.defaultValue, p = this.props.children;\n if ((p != null)) {\n j((o == null));\n if (Array.isArray(p)) {\n j((p.length <= 1));\n p = p[0];\n }\n ;\n j(m[typeof p]);\n o = (\"\" + p);\n }\n ;\n o = (o || \"\");\n return {\n initialValue: ((this.props.value != null) ? this.props.value : o),\n value: o\n };\n },\n shouldComponentUpdate: function() {\n return !this._isChanging;\n },\n getValue: function() {\n return ((this.props.value != null) ? this.props.value : this.state.value);\n },\n render: function() {\n var o = k(this.props);\n j((o.dangerouslySetInnerHTML == null));\n o.value = this.getValue();\n o.onChange = this.handleChange;\n return l(o, this.state.initialValue);\n },\n componentDidUpdate: function(o, p, q) {\n if ((this.props.value != null)) {\n g.setValueForProperty(q, \"value\", (this.props.value || \"\"));\n };\n },\n handleChange: h.autoBind(function(event) {\n var o;\n if (this.props.onChange) {\n this._isChanging = true;\n o = this.props.onChange(event);\n this._isChanging = false;\n }\n ;\n this.setState({\n value: event.target.value\n });\n return o;\n })\n });\n e.exports = n;\n});\n__d(\"DefaultDOMPropertyConfig\", [\"DOMProperty\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMProperty\"), h = g.injection.MUST_USE_ATTRIBUTE, i = g.injection.MUST_USE_PROPERTY, j = g.injection.HAS_BOOLEAN_VALUE, k = g.injection.HAS_SIDE_EFFECTS, l = {\n isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\\d_.\\-]*$/),\n Properties: {\n accept: null,\n action: null,\n ajaxify: h,\n allowFullScreen: (h | j),\n alt: null,\n autoComplete: null,\n autoplay: j,\n cellPadding: null,\n cellSpacing: null,\n checked: (i | j),\n className: i,\n colSpan: null,\n contentEditable: null,\n controls: (i | j),\n data: null,\n dir: null,\n disabled: (i | j),\n draggable: null,\n enctype: null,\n height: h,\n hidden: (h | j),\n href: null,\n htmlFor: null,\n id: i,\n max: null,\n method: null,\n min: null,\n multiple: (i | j),\n name: null,\n poster: null,\n preload: null,\n placeholder: null,\n rel: null,\n required: j,\n role: h,\n scrollLeft: i,\n scrollTop: i,\n selected: (i | j),\n spellCheck: null,\n src: null,\n step: null,\n style: null,\n tabIndex: null,\n target: null,\n title: null,\n type: null,\n value: (i | k),\n width: h,\n wmode: h,\n cx: i,\n cy: i,\n d: i,\n fill: i,\n fx: i,\n fy: i,\n points: i,\n r: i,\n stroke: i,\n strokeLinecap: i,\n strokeWidth: i,\n transform: i,\n x: i,\n x1: i,\n x2: i,\n version: i,\n viewBox: i,\n y: i,\n y1: i,\n y2: i,\n spreadMethod: i,\n offset: i,\n stopColor: i,\n stopOpacity: i,\n gradientUnits: i,\n gradientTransform: i\n },\n DOMAttributeNames: {\n className: \"class\",\n htmlFor: \"for\",\n strokeLinecap: \"stroke-linecap\",\n strokeWidth: \"stroke-width\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\"\n },\n DOMPropertyNames: {\n autoComplete: \"autocomplete\",\n spellCheck: \"spellcheck\"\n },\n DOMMutationMethods: {\n className: function(m, n) {\n m.className = (n || \"\");\n }\n }\n };\n e.exports = l;\n});\n__d(\"DefaultEventPluginOrder\", [\"keyOf\",], function(a, b, c, d, e, f) {\n var g = b(\"keyOf\"), h = [g({\n ResponderEventPlugin: null\n }),g({\n SimpleEventPlugin: null\n }),g({\n TapEventPlugin: null\n }),g({\n EnterLeaveEventPlugin: null\n }),g({\n ChangeEventPlugin: null\n }),g({\n AnalyticsEventPlugin: null\n }),];\n e.exports = h;\n});\n__d(\"SyntheticEvent\", [\"PooledClass\",\"emptyFunction\",\"getEventTarget\",\"merge\",\"mergeInto\",], function(a, b, c, d, e, f) {\n var g = b(\"PooledClass\"), h = b(\"emptyFunction\"), i = b(\"getEventTarget\"), j = b(\"merge\"), k = b(\"mergeInto\"), l = {\n type: null,\n target: i,\n currentTarget: null,\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function(event) {\n return (event.timeStamp || Date.now());\n },\n defaultPrevented: null,\n isTrusted: null\n };\n function m(n, o, p) {\n this.dispatchConfig = n;\n this.dispatchMarker = o;\n this.nativeEvent = p;\n var q = this.constructor.Interface;\n for (var r in q) {\n var s = q[r];\n if (s) {\n this[r] = s(p);\n }\n else this[r] = p[r];\n ;\n };\n if ((p.defaultPrevented || (p.returnValue === false))) {\n this.isDefaultPrevented = h.thatReturnsTrue;\n }\n else this.isDefaultPrevented = h.thatReturnsFalse;\n ;\n this.isPropagationStopped = h.thatReturnsFalse;\n };\n k(m.prototype, {\n preventDefault: function() {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n (event.preventDefault ? event.preventDefault() : event.returnValue = false);\n this.isDefaultPrevented = h.thatReturnsTrue;\n },\n stopPropagation: function() {\n var event = this.nativeEvent;\n (event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true);\n this.isPropagationStopped = h.thatReturnsTrue;\n },\n persist: function() {\n this.isPersistent = h.thatReturnsTrue;\n },\n isPersistent: h.thatReturnsFalse,\n destructor: function() {\n var n = this.constructor.Interface;\n for (var o in n) {\n this[o] = null;;\n };\n this.dispatchConfig = null;\n this.dispatchMarker = null;\n this.nativeEvent = null;\n }\n });\n m.Interface = l;\n m.augmentClass = function(n, o) {\n var p = this, q = Object.create(p.prototype);\n k(q, n.prototype);\n n.prototype = q;\n n.prototype.constructor = n;\n n.Interface = j(p.Interface, o);\n n.augmentClass = p.augmentClass;\n g.addPoolingTo(n, g.threeArgumentPooler);\n };\n g.addPoolingTo(m, g.threeArgumentPooler);\n e.exports = m;\n});\n__d(\"SyntheticUIEvent\", [\"SyntheticEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticEvent\"), h = {\n view: null,\n detail: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SyntheticMouseEvent\", [\"SyntheticUIEvent\",\"ViewportMetrics\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticUIEvent\"), h = b(\"ViewportMetrics\"), i = {\n screenX: null,\n screenY: null,\n clientX: null,\n clientY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n button: function(event) {\n var k = event.button;\n if ((\"which\" in event)) {\n return k\n };\n return ((k === 2) ? 2 : ((k === 4) ? 1 : 0));\n },\n buttons: null,\n relatedTarget: function(event) {\n return (event.relatedTarget || (((event.fromElement === event.srcElement) ? event.toElement : event.fromElement)));\n },\n pageX: function(event) {\n return ((\"pageX\" in event) ? event.pageX : (event.clientX + h.currentScrollLeft));\n },\n pageY: function(event) {\n return ((\"pageY\" in event) ? event.pageY : (event.clientY + h.currentScrollTop));\n }\n };\n function j(k, l, m) {\n g.call(this, k, l, m);\n };\n g.augmentClass(j, i);\n e.exports = j;\n});\n__d(\"EnterLeaveEventPlugin\", [\"EventConstants\",\"EventPropagators\",\"ExecutionEnvironment\",\"ReactInstanceHandles\",\"SyntheticMouseEvent\",\"ReactID\",\"keyOf\",], function(a, b, c, d, e, f) {\n var g = b(\"EventConstants\"), h = b(\"EventPropagators\"), i = b(\"ExecutionEnvironment\"), j = b(\"ReactInstanceHandles\"), k = b(\"SyntheticMouseEvent\"), l = b(\"ReactID\"), m = b(\"keyOf\"), n = g.topLevelTypes, o = j.getFirstReactDOM, p = {\n mouseEnter: {\n registrationName: m({\n onMouseEnter: null\n })\n },\n mouseLeave: {\n registrationName: m({\n onMouseLeave: null\n })\n }\n }, q = {\n eventTypes: p,\n extractEvents: function(r, s, t, u) {\n if (((r === n.topMouseOver) && ((u.relatedTarget || u.fromElement)))) {\n return null\n };\n if (((r !== n.topMouseOut) && (r !== n.topMouseOver))) {\n return null\n };\n var v, w;\n if ((r === n.topMouseOut)) {\n v = s;\n w = (o((u.relatedTarget || u.toElement)) || i.global);\n }\n else {\n v = i.global;\n w = s;\n }\n ;\n if ((v === w)) {\n return null\n };\n var x = (v ? l.getID(v) : \"\"), y = (w ? l.getID(w) : \"\"), z = k.getPooled(p.mouseLeave, x, u), aa = k.getPooled(p.mouseEnter, y, u);\n h.accumulateEnterLeaveDispatches(z, aa, x, y);\n return [z,aa,];\n }\n };\n e.exports = q;\n});\n__d(\"ChangeEventPlugin\", [\"EventConstants\",\"EventPluginHub\",\"EventPropagators\",\"ExecutionEnvironment\",\"SyntheticEvent\",\"isEventSupported\",\"keyOf\",], function(a, b, c, d, e, f) {\n var g = b(\"EventConstants\"), h = b(\"EventPluginHub\"), i = b(\"EventPropagators\"), j = b(\"ExecutionEnvironment\"), k = b(\"SyntheticEvent\"), l = b(\"isEventSupported\"), m = b(\"keyOf\"), n = g.topLevelTypes, o = {\n change: {\n phasedRegistrationNames: {\n bubbled: m({\n onChange: null\n }),\n captured: m({\n onChangeCapture: null\n })\n }\n }\n }, p = null, q = null, r = null, s = null;\n function t(na) {\n return (((na.nodeName === \"SELECT\") || (((na.nodeName === \"INPUT\") && (na.type === \"file\")))));\n };\n var u = false;\n if (j.canUseDOM) {\n u = (l(\"change\") && ((!((\"documentMode\" in document)) || (document.documentMode > 8))));\n };\n function v(na) {\n var event = k.getPooled(o.change, q, na);\n i.accumulateTwoPhaseDispatches(event);\n h.enqueueEvents(event);\n h.processEventQueue();\n };\n function w(na, oa) {\n p = na;\n q = oa;\n p.attachEvent(\"onchange\", v);\n };\n function x() {\n if (!p) {\n return\n };\n p.detachEvent(\"onchange\", v);\n p = null;\n q = null;\n };\n function y(na, oa, pa) {\n if ((na === n.topChange)) {\n return pa\n };\n };\n function z(na, oa, pa) {\n if ((na === n.topFocus)) {\n x();\n w(oa, pa);\n }\n else if ((na === n.topBlur)) {\n x();\n }\n ;\n };\n var aa = false;\n if (j.canUseDOM) {\n aa = (l(\"input\") && ((!((\"documentMode\" in document)) || (document.documentMode > 9))));\n };\n var ba = {\n color: true,\n date: true,\n datetime: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true\n };\n function ca(na) {\n return (((((na.nodeName === \"INPUT\") && ba[na.type])) || (na.nodeName === \"TEXTAREA\")));\n };\n var da = {\n get: function() {\n return s.get.call(this);\n },\n set: function(na) {\n r = na;\n s.set.call(this, na);\n }\n };\n function ea(na, oa) {\n p = na;\n q = oa;\n r = na.value;\n s = Object.getOwnPropertyDescriptor(na.constructor.prototype, \"value\");\n Object.defineProperty(p, \"value\", da);\n p.attachEvent(\"onpropertychange\", ga);\n };\n function fa() {\n if (!p) {\n return\n };\n delete p.value;\n p.detachEvent(\"onpropertychange\", ga);\n p = null;\n q = null;\n r = null;\n s = null;\n };\n function ga(na) {\n if ((na.propertyName !== \"value\")) {\n return\n };\n var oa = na.srcElement.value;\n if ((oa === r)) {\n return\n };\n r = oa;\n v(na);\n };\n function ha(na, oa, pa) {\n if ((na === n.topInput)) {\n return pa\n };\n };\n function ia(na, oa, pa) {\n if ((na === n.topFocus)) {\n fa();\n ea(oa, pa);\n }\n else if ((na === n.topBlur)) {\n fa();\n }\n ;\n };\n function ja(na, oa, pa) {\n if ((((na === n.topSelectionChange) || (na === n.topKeyUp)) || (na === n.topKeyDown))) {\n if ((p && (p.value !== r))) {\n r = p.value;\n return q;\n }\n \n };\n };\n function ka(na) {\n return (((na.nodeName === \"INPUT\") && (((na.type === \"checkbox\") || (na.type === \"radio\")))));\n };\n function la(na, oa, pa) {\n if ((na === n.topClick)) {\n return pa\n };\n };\n var ma = {\n eventTypes: o,\n extractEvents: function(na, oa, pa, qa) {\n var ra, sa;\n if (t(oa)) {\n if (u) {\n ra = y;\n }\n else sa = z;\n ;\n }\n else if (ca(oa)) {\n if (aa) {\n ra = ha;\n }\n else {\n ra = ja;\n sa = ia;\n }\n ;\n }\n else if (ka(oa)) {\n ra = la;\n }\n \n ;\n if (ra) {\n var ta = ra(na, oa, pa);\n if (ta) {\n var event = k.getPooled(o.change, ta, qa);\n i.accumulateTwoPhaseDispatches(event);\n return event;\n }\n ;\n }\n ;\n if (sa) {\n sa(na, oa, pa);\n };\n }\n };\n e.exports = ma;\n});\n__d(\"SyntheticFocusEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticUIEvent\"), h = {\n relatedTarget: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SyntheticKeyboardEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticUIEvent\"), h = {\n char: null,\n key: null,\n location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n charCode: null,\n keyCode: null,\n which: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SyntheticMutationEvent\", [\"SyntheticEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticEvent\"), h = {\n relatedNode: null,\n prevValue: null,\n newValue: null,\n attrName: null,\n attrChange: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SyntheticTouchEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticUIEvent\"), h = {\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SyntheticWheelEvent\", [\"SyntheticMouseEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticMouseEvent\"), h = {\n deltaX: function(event) {\n return (((\"deltaX\" in event) ? event.deltaX : ((\"wheelDeltaX\" in event) ? -event.wheelDeltaX : 0)));\n },\n deltaY: function(event) {\n return (((\"deltaY\" in event) ? -event.deltaY : ((\"wheelDeltaY\" in event) ? event.wheelDeltaY : ((\"wheelDelta\" in event) ? event.wheelData : 0))));\n },\n deltaZ: null,\n deltaMode: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SimpleEventPlugin\", [\"EventConstants\",\"EventPropagators\",\"SyntheticEvent\",\"SyntheticFocusEvent\",\"SyntheticKeyboardEvent\",\"SyntheticMouseEvent\",\"SyntheticMutationEvent\",\"SyntheticTouchEvent\",\"SyntheticUIEvent\",\"SyntheticWheelEvent\",\"invariant\",\"keyOf\",], function(a, b, c, d, e, f) {\n var g = b(\"EventConstants\"), h = b(\"EventPropagators\"), i = b(\"SyntheticEvent\"), j = b(\"SyntheticFocusEvent\"), k = b(\"SyntheticKeyboardEvent\"), l = b(\"SyntheticMouseEvent\"), m = b(\"SyntheticMutationEvent\"), n = b(\"SyntheticTouchEvent\"), o = b(\"SyntheticUIEvent\"), p = b(\"SyntheticWheelEvent\"), q = b(\"invariant\"), r = b(\"keyOf\"), s = g.topLevelTypes, t = {\n blur: {\n phasedRegistrationNames: {\n bubbled: r({\n onBlur: true\n }),\n captured: r({\n onBlurCapture: true\n })\n }\n },\n click: {\n phasedRegistrationNames: {\n bubbled: r({\n onClick: true\n }),\n captured: r({\n onClickCapture: true\n })\n }\n },\n doubleClick: {\n phasedRegistrationNames: {\n bubbled: r({\n onDoubleClick: true\n }),\n captured: r({\n onDoubleClickCapture: true\n })\n }\n },\n drag: {\n phasedRegistrationNames: {\n bubbled: r({\n onDrag: true\n }),\n captured: r({\n onDragCapture: true\n })\n }\n },\n dragEnd: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragEnd: true\n }),\n captured: r({\n onDragEndCapture: true\n })\n }\n },\n dragEnter: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragEnter: true\n }),\n captured: r({\n onDragEnterCapture: true\n })\n }\n },\n dragExit: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragExit: true\n }),\n captured: r({\n onDragExitCapture: true\n })\n }\n },\n dragLeave: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragLeave: true\n }),\n captured: r({\n onDragLeaveCapture: true\n })\n }\n },\n dragOver: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragOver: true\n }),\n captured: r({\n onDragOverCapture: true\n })\n }\n },\n dragStart: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragStart: true\n }),\n captured: r({\n onDragStartCapture: true\n })\n }\n },\n drop: {\n phasedRegistrationNames: {\n bubbled: r({\n onDrop: true\n }),\n captured: r({\n onDropCapture: true\n })\n }\n },\n DOMCharacterDataModified: {\n phasedRegistrationNames: {\n bubbled: r({\n onDOMCharacterDataModified: true\n }),\n captured: r({\n onDOMCharacterDataModifiedCapture: true\n })\n }\n },\n focus: {\n phasedRegistrationNames: {\n bubbled: r({\n onFocus: true\n }),\n captured: r({\n onFocusCapture: true\n })\n }\n },\n input: {\n phasedRegistrationNames: {\n bubbled: r({\n onInput: true\n }),\n captured: r({\n onInputCapture: true\n })\n }\n },\n keyDown: {\n phasedRegistrationNames: {\n bubbled: r({\n onKeyDown: true\n }),\n captured: r({\n onKeyDownCapture: true\n })\n }\n },\n keyPress: {\n phasedRegistrationNames: {\n bubbled: r({\n onKeyPress: true\n }),\n captured: r({\n onKeyPressCapture: true\n })\n }\n },\n keyUp: {\n phasedRegistrationNames: {\n bubbled: r({\n onKeyUp: true\n }),\n captured: r({\n onKeyUpCapture: true\n })\n }\n },\n mouseDown: {\n phasedRegistrationNames: {\n bubbled: r({\n onMouseDown: true\n }),\n captured: r({\n onMouseDownCapture: true\n })\n }\n },\n mouseMove: {\n phasedRegistrationNames: {\n bubbled: r({\n onMouseMove: true\n }),\n captured: r({\n onMouseMoveCapture: true\n })\n }\n },\n mouseUp: {\n phasedRegistrationNames: {\n bubbled: r({\n onMouseUp: true\n }),\n captured: r({\n onMouseUpCapture: true\n })\n }\n },\n scroll: {\n phasedRegistrationNames: {\n bubbled: r({\n onScroll: true\n }),\n captured: r({\n onScrollCapture: true\n })\n }\n },\n submit: {\n phasedRegistrationNames: {\n bubbled: r({\n onSubmit: true\n }),\n captured: r({\n onSubmitCapture: true\n })\n }\n },\n touchCancel: {\n phasedRegistrationNames: {\n bubbled: r({\n onTouchCancel: true\n }),\n captured: r({\n onTouchCancelCapture: true\n })\n }\n },\n touchEnd: {\n phasedRegistrationNames: {\n bubbled: r({\n onTouchEnd: true\n }),\n captured: r({\n onTouchEndCapture: true\n })\n }\n },\n touchMove: {\n phasedRegistrationNames: {\n bubbled: r({\n onTouchMove: true\n }),\n captured: r({\n onTouchMoveCapture: true\n })\n }\n },\n touchStart: {\n phasedRegistrationNames: {\n bubbled: r({\n onTouchStart: true\n }),\n captured: r({\n onTouchStartCapture: true\n })\n }\n },\n wheel: {\n phasedRegistrationNames: {\n bubbled: r({\n onWheel: true\n }),\n captured: r({\n onWheelCapture: true\n })\n }\n }\n }, u = {\n topBlur: t.blur,\n topClick: t.click,\n topDoubleClick: t.doubleClick,\n topDOMCharacterDataModified: t.DOMCharacterDataModified,\n topDrag: t.drag,\n topDragEnd: t.dragEnd,\n topDragEnter: t.dragEnter,\n topDragExit: t.dragExit,\n topDragLeave: t.dragLeave,\n topDragOver: t.dragOver,\n topDragStart: t.dragStart,\n topDrop: t.drop,\n topFocus: t.focus,\n topInput: t.input,\n topKeyDown: t.keyDown,\n topKeyPress: t.keyPress,\n topKeyUp: t.keyUp,\n topMouseDown: t.mouseDown,\n topMouseMove: t.mouseMove,\n topMouseUp: t.mouseUp,\n topScroll: t.scroll,\n topSubmit: t.submit,\n topTouchCancel: t.touchCancel,\n topTouchEnd: t.touchEnd,\n topTouchMove: t.touchMove,\n topTouchStart: t.touchStart,\n topWheel: t.wheel\n }, v = {\n eventTypes: t,\n executeDispatch: function(event, w, x) {\n var y = w(event, x);\n if ((y === false)) {\n event.stopPropagation();\n event.preventDefault();\n }\n ;\n },\n extractEvents: function(w, x, y, z) {\n var aa = u[w];\n if (!aa) {\n return null\n };\n var ba;\n switch (w) {\n case s.topInput:\n \n case s.topSubmit:\n ba = i;\n break;\n case s.topKeyDown:\n \n case s.topKeyPress:\n \n case s.topKeyUp:\n ba = k;\n break;\n case s.topBlur:\n \n case s.topFocus:\n ba = j;\n break;\n case s.topClick:\n \n case s.topDoubleClick:\n \n case s.topDrag:\n \n case s.topDragEnd:\n \n case s.topDragEnter:\n \n case s.topDragExit:\n \n case s.topDragLeave:\n \n case s.topDragOver:\n \n case s.topDragStart:\n \n case s.topDrop:\n \n case s.topMouseDown:\n \n case s.topMouseMove:\n \n case s.topMouseUp:\n ba = l;\n break;\n case s.topDOMCharacterDataModified:\n ba = m;\n break;\n case s.topTouchCancel:\n \n case s.topTouchEnd:\n \n case s.topTouchMove:\n \n case s.topTouchStart:\n ba = n;\n break;\n case s.topScroll:\n ba = o;\n break;\n case s.topWheel:\n ba = p;\n break;\n };\n q(ba);\n var event = ba.getPooled(aa, y, z);\n h.accumulateTwoPhaseDispatches(event);\n return event;\n }\n };\n e.exports = v;\n});\n__d(\"ReactDefaultInjection\", [\"ReactDOM\",\"ReactDOMForm\",\"ReactDOMInput\",\"ReactDOMTextarea\",\"DefaultDOMPropertyConfig\",\"DOMProperty\",\"DefaultEventPluginOrder\",\"EnterLeaveEventPlugin\",\"ChangeEventPlugin\",\"EventPluginHub\",\"ReactInstanceHandles\",\"SimpleEventPlugin\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactDOM\"), h = b(\"ReactDOMForm\"), i = b(\"ReactDOMInput\"), j = b(\"ReactDOMTextarea\"), k = b(\"DefaultDOMPropertyConfig\"), l = b(\"DOMProperty\"), m = b(\"DefaultEventPluginOrder\"), n = b(\"EnterLeaveEventPlugin\"), o = b(\"ChangeEventPlugin\"), p = b(\"EventPluginHub\"), q = b(\"ReactInstanceHandles\"), r = b(\"SimpleEventPlugin\");\n function s() {\n p.injection.injectEventPluginOrder(m);\n p.injection.injectInstanceHandle(q);\n p.injection.injectEventPluginsByName({\n SimpleEventPlugin: r,\n EnterLeaveEventPlugin: n,\n ChangeEventPlugin: o\n });\n g.injection.injectComponentClasses({\n form: h,\n input: i,\n textarea: j\n });\n l.injection.injectDOMPropertyConfig(k);\n };\n e.exports = {\n inject: s\n };\n});\n__d(\"React\", [\"ReactCompositeComponent\",\"ReactComponent\",\"ReactDOM\",\"ReactMount\",\"ReactProps\",\"ReactServerRendering\",\"ReactDefaultInjection\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactCompositeComponent\"), h = b(\"ReactComponent\"), i = b(\"ReactDOM\"), j = b(\"ReactMount\"), k = b(\"ReactProps\"), l = b(\"ReactServerRendering\"), m = b(\"ReactDefaultInjection\");\n m.inject();\n var n = {\n DOM: i,\n Props: k,\n initializeTouchEvents: function(o) {\n j.useTouchEvents = o;\n },\n autoBind: g.autoBind,\n createClass: g.createClass,\n constructAndRenderComponent: j.constructAndRenderComponent,\n constructAndRenderComponentByID: j.constructAndRenderComponentByID,\n renderComponent: j.renderComponent,\n renderComponentToString: l.renderComponentToString,\n unmountAndReleaseReactRootNode: j.unmountAndReleaseReactRootNode,\n isValidComponent: h.isValidComponent\n };\n e.exports = n;\n});\n__d(\"TrackingNodes\", [], function(a, b, c, d, e, f) {\n var g = {\n types: {\n USER_NAME: 2,\n LIKE_LINK: 5,\n UNLIKE_LINK: 6,\n ATTACHMENT: 15,\n SHARE_LINK: 17,\n USER_MESSAGE: 18,\n SOURCE: 21,\n BLINGBOX: 22,\n VIEW_ALL_COMMENTS: 24,\n COMMENT: 25,\n COMMENT_LINK: 26,\n SMALL_ACTOR_PHOTO: 27,\n XBUTTON: 29,\n HIDE_LINK: 30,\n REPORT_SPAM_LINK: 31,\n HIDE_ALL_LINK: 32,\n ADD_COMMENT_BOX: 34,\n UFI: 36,\n DROPDOWN_BUTTON: 55,\n UNHIDE_LINK: 71\n },\n BASE_CODE_START: 58,\n BASE_CODE_END: 126,\n BASE_CODE_SIZE: 69,\n PREFIX_CODE_START: 42,\n PREFIX_CODE_END: 47,\n PREFIX_CODE_SIZE: 6,\n encodeTrackingInfo: function(h, i) {\n var j = (((h - 1)) % g.BASE_CODE_SIZE), k = parseInt((((h - 1)) / g.BASE_CODE_SIZE), 10);\n if (((h < 1) || (k > g.PREFIX_CODE_SIZE))) {\n throw Error((\"Invalid tracking node: \" + h))\n };\n var l = \"\";\n if ((k > 0)) {\n l += String.fromCharCode(((k - 1) + g.PREFIX_CODE_START));\n };\n l += String.fromCharCode((j + g.BASE_CODE_START));\n if (((typeof i != \"undefined\") && (i > 0))) {\n l += String.fromCharCode(((48 + Math.min(i, 10)) - 1));\n };\n return l;\n },\n decodeTN: function(h) {\n if ((h.length === 0)) {\n return [0,]\n };\n var i = h.charCodeAt(0), j = 1, k, l;\n if (((i >= g.PREFIX_CODE_START) && (i <= g.PREFIX_CODE_END))) {\n if ((h.length == 1)) {\n return [0,]\n };\n l = ((i - g.PREFIX_CODE_START) + 1);\n k = h.charCodeAt(1);\n j = 2;\n }\n else {\n l = 0;\n k = i;\n }\n ;\n if (((k < g.BASE_CODE_START) || (k > g.BASE_CODE_END))) {\n return [0,]\n };\n var m = (((l * g.BASE_CODE_SIZE) + ((k - g.BASE_CODE_START))) + 1);\n if (((h.length > j) && (((h.charAt(j) >= \"0\") && (h.charAt(j) <= \"9\"))))) {\n return [(j + 1),[m,(parseInt(h.charAt(j), 10) + 1),],]\n };\n return [j,[m,],];\n },\n parseTrackingNodeString: function(h) {\n var i = [];\n while ((h.length > 0)) {\n var j = g.decodeTN(h);\n if ((j.length == 1)) {\n return []\n };\n i.push(j[1]);\n h = h.substring(j[0]);\n };\n return i;\n },\n getTrackingInfo: function(h, i) {\n return ((\"{\\\"tn\\\":\\\"\" + g.encodeTrackingInfo(h, i)) + \"\\\"}\");\n }\n };\n e.exports = g;\n});\n__d(\"NumberFormat\", [\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\"), h = /(\\d{3})(?=\\d)/g, i = 10000, j = function(l) {\n return ((\"\" + l)).split(\"\").reverse().join(\"\");\n }, k = {\n formatIntegerWithDelimiter: function(l, m) {\n if (((((g.locale == \"nb_NO\") || (g.locale == \"nn_NO\"))) && ((Math.abs(l) < i)))) {\n return l.toString()\n };\n var n = j(l);\n return j(n.replace(h, (\"$1\" + m)));\n }\n };\n e.exports = k;\n});\n__d(\"UFIBlingItem.react\", [\"React\",\"NumberFormat\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"NumberFormat\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = g.createClass({\n displayName: \"UFIBlingItem\",\n render: function() {\n var l = j(this.props.className, this.props.iconClassName, \"UFIBlingBoxSprite\"), m = h.formatIntegerWithDelimiter(this.props.count, (this.props.contextArgs.numberdelimiter || \",\"));\n return (g.DOM.span(null, g.DOM.i({\n className: l\n }), g.DOM.span({\n className: \"UFIBlingBoxText\"\n }, m)));\n }\n });\n e.exports = k;\n});\n__d(\"UFIConstants\", [], function(a, b, c, d, e, f) {\n var g = {\n COMMENT_LIKE: \"fa-type:comment-like\",\n COMMENT_SET_SPAM: \"fa-type:mark-spam\",\n DELETE_COMMENT: \"fa-type:delete-comment\",\n LIVE_DELETE_COMMENT: \"fa-type:live-delete-comment\",\n LIKE_ACTION: \"fa-type:like\",\n REMOVE_PREVIEW: \"fa-type:remove-preview\",\n CONFIRM_COMMENT_REMOVAL: \"fa-type:confirm-remove\",\n TRANSLATE_COMMENT: \"fa-type:translate-comment\",\n SUBSCRIBE_ACTION: \"fa-type:subscribe\",\n GIFT_SUGGESTION: \"fa-type:gift-suggestion\",\n UNDO_DELETE_COMMENT: \"fa-type:undo-delete-comment\"\n }, h = {\n DELETED: \"status:deleted\",\n SPAM: \"status:spam\",\n SPAM_DISPLAY: \"status:spam-display\",\n LIVE_DELETED: \"status:live-deleted\",\n FAILED_ADD: \"status:failed-add\",\n FAILED_EDIT: \"status:failed-edit\",\n PENDING_EDIT: \"status:pending-edit\",\n PENDING_UNDO_DELETE: \"status:pending-undo-delete\"\n }, i = {\n MOBILE: 1,\n SMS: 3,\n EMAIL: 4\n }, j = {\n PROFILE: 0,\n NEWS_FEED: 1,\n OBJECT: 2,\n MOBILE: 3,\n EMAIL: 4,\n PROFILE_APROVAL: 10,\n TICKER: 12,\n NONE: 13,\n INTERN: 14,\n ADS: 15,\n PHOTOS_SNOWLIFT: 17\n }, k = {\n UNKNOWN: 0,\n INITIAL_SERVER: 1,\n LIVE_SEND: 2,\n USER_ACTION: 3,\n COLLAPSED_UFI: 4,\n ENDPOINT_LIKE: 10,\n ENDPOINT_COMMENT_LIKE: 11,\n ENDPOINT_ADD_COMMENT: 12,\n ENDPOINT_EDIT_COMMENT: 13,\n ENDPOINT_DELETE_COMMENT: 14,\n ENDPOINT_UNDO_DELETE_COMMENT: 15,\n ENDPOINT_COMMENT_SPAM: 16,\n ENDPOINT_REMOVE_PREVIEW: 17,\n ENDPOINT_ID_COMMENT_FETCH: 18,\n ENDPOINT_COMMENT_FETCH: 19,\n ENDPOINT_TRANSLATE_COMMENT: 20,\n ENDPOINT_BAN: 21,\n ENDPOINT_SUBSCRIBE: 22\n }, l = {\n CHRONOLOGICAL: \"chronological\",\n RANKED_THREADED: \"ranked_threaded\",\n TOPLEVEL: \"toplevel\",\n RECENT_ACTIVITY: \"recent_activity\"\n }, m = 50, n = 97244, o = 420, p = 5, q = 80, r = 2;\n e.exports = {\n UFIActionType: g,\n UFIStatus: h,\n UFISourceType: i,\n UFIFeedbackSourceType: j,\n UFIPayloadSourceType: k,\n UFICommentOrderingMode: l,\n defaultPageSize: m,\n commentTruncationLength: o,\n commentTruncationPercent: n,\n commentTruncationMaxLines: p,\n attachmentTruncationLength: q,\n minCommentsForOrderingModeSelector: r\n };\n});\n__d(\"UFIBlingBox.react\", [\"React\",\"UFIBlingItem.react\",\"UFIConstants\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"UFIBlingItem.react\"), i = b(\"UFIConstants\"), j = b(\"cx\"), k = b(\"tx\"), l = g.createClass({\n displayName: \"UFIBlingBox\",\n render: function() {\n var m = [], n = \"\";\n if (this.props.likes) {\n m.push(h({\n count: this.props.likes,\n className: (((m.length > 0) ? \"mls\" : \"\")),\n iconClassName: \"UFIBlingBoxLikeIcon\",\n contextArgs: this.props.contextArgs\n }));\n n += (((this.props.likes == 1)) ? \"1 like\" : k._(\"{count} likes\", {\n count: this.props.likes\n }));\n n += \" \";\n }\n ;\n if (this.props.comments) {\n m.push(h({\n count: this.props.comments,\n className: (((m.length > 0) ? \"mls\" : \"\")),\n iconClassName: \"UFIBlingBoxCommentIcon\",\n contextArgs: this.props.contextArgs\n }));\n n += (((this.props.comments == 1)) ? \"1 comment\" : k._(\"{count} comments\", {\n count: this.props.comments\n }));\n n += \" \";\n }\n ;\n if (this.props.reshares) {\n m.push(h({\n count: this.props.reshares,\n className: (((m.length > 0) ? \"mls\" : \"\")),\n iconClassName: \"UFIBlingBoxReshareIcon\",\n contextArgs: this.props.contextArgs\n }));\n n += (((this.props.reshares == 1)) ? \"1 share\" : k._(\"{count} shares\", {\n count: this.props.reshares\n }));\n }\n ;\n var o = g.DOM.a({\n className: \"UFIBlingBox uiBlingBox feedbackBling\",\n href: this.props.permalink,\n \"data-ft\": this.props[\"data-ft\"],\n \"aria-label\": n\n }, m);\n if ((this.props.comments < i.defaultPageSize)) {\n o.props.onClick = this.props.onClick;\n o.props.rel = \"ignore\";\n }\n ;\n return o;\n }\n });\n e.exports = l;\n});\n__d(\"UFICentralUpdates\", [\"Arbiter\",\"ChannelConstants\",\"LiveTimer\",\"ShortProfiles\",\"UFIConstants\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"LiveTimer\"), j = b(\"ShortProfiles\"), k = b(\"UFIConstants\"), l = b(\"copyProperties\"), m = b(\"tx\"), n = 0, o = {\n }, p = {\n }, q = {\n }, r = {\n }, s = [];\n g.subscribe(h.getArbiterType(\"live-data\"), function(x, y) {\n if ((y && y.obj)) {\n var z = y.obj, aa = (z.comments || []);\n aa.forEach(function(ba) {\n ba.timestamp.text = \"a few seconds ago\";\n });\n w.handleUpdate(k.UFIPayloadSourceType.LIVE_SEND, z);\n }\n ;\n });\n function t() {\n if (!n) {\n var x = q, y = o, z = p, aa = r;\n q = {\n };\n o = {\n };\n p = {\n };\n r = {\n };\n if (Object.keys(x).length) {\n v(\"feedback-id-changed\", x);\n };\n if (Object.keys(y).length) {\n v(\"feedback-updated\", y);\n };\n if (Object.keys(z).length) {\n v(\"comments-updated\", z);\n };\n if (Object.keys(aa).length) {\n v(\"instance-updated\", aa);\n };\n s.pop();\n }\n ;\n };\n function u() {\n if (s.length) {\n return s[(s.length - 1)];\n }\n else return k.UFIPayloadSourceType.UNKNOWN\n ;\n };\n function v(event, x) {\n w.inform(event, {\n updates: x,\n payloadSource: u()\n });\n };\n var w = l(new g(), {\n handleUpdate: function(x, y) {\n if (Object.keys(y).length) {\n this.synchronizeInforms(function() {\n s.push(x);\n var z = l({\n payloadsource: u()\n }, y);\n this.inform(\"update-feedback\", z);\n this.inform(\"update-comment-lists\", z);\n this.inform(\"update-comments\", z);\n this.inform(\"update-actions\", z);\n ((y.profiles || [])).forEach(function(aa) {\n j.set(aa.id, aa);\n });\n if (y.servertime) {\n i.restart(y.servertime);\n };\n }.bind(this));\n };\n },\n didUpdateFeedback: function(x) {\n o[x] = true;\n t();\n },\n didUpdateComment: function(x) {\n p[x] = true;\n t();\n },\n didUpdateFeedbackID: function(x, y) {\n q[x] = y;\n t();\n },\n didUpdateInstanceState: function(x, y) {\n if (!r[x]) {\n r[x] = {\n };\n };\n r[x][y] = true;\n t();\n },\n synchronizeInforms: function(x) {\n n++;\n try {\n x();\n } catch (y) {\n throw y;\n } finally {\n n--;\n t();\n };\n }\n });\n e.exports = w;\n});\n__d(\"randomInt\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\");\n function h(i, j) {\n var k = arguments.length;\n g(((k > 0) && (k <= 2)));\n if ((k === 1)) {\n j = i;\n i = 0;\n }\n ;\n g((j > i));\n var l = (this.random || Math.random);\n return Math.floor((i + (l() * ((j - i)))));\n };\n e.exports = h;\n});\n__d(\"ClientIDs\", [\"randomInt\",], function(a, b, c, d, e, f) {\n var g = b(\"randomInt\"), h = {\n }, i = {\n getNewClientID: function() {\n var j = Date.now(), k = ((j + \":\") + ((g(0, 4294967295) + 1)));\n h[k] = true;\n return k;\n },\n isExistingClientID: function(j) {\n return !!h[j];\n }\n };\n e.exports = i;\n});\n__d(\"ImmutableObject\", [\"keyMirror\",\"merge\",\"mergeInto\",\"mergeHelpers\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"keyMirror\"), h = b(\"merge\"), i = b(\"mergeInto\"), j = b(\"mergeHelpers\"), k = b(\"throwIf\"), l = j.checkMergeObjectArgs, m = j.isTerminal, n, o;\n n = g({\n INVALID_MAP_SET_ARG: null\n });\n o = function(q) {\n i(this, q);\n };\n o.set = function(q, r) {\n k(!((q instanceof o)), n.INVALID_MAP_SET_ARG);\n var s = new o(q);\n i(s, r);\n return s;\n };\n o.setField = function(q, r, s) {\n var t = {\n };\n t[r] = s;\n return o.set(q, t);\n };\n o.setDeep = function(q, r) {\n k(!((q instanceof o)), n.INVALID_MAP_SET_ARG);\n return p(q, r);\n };\n function p(q, r) {\n l(q, r);\n var s = {\n }, t = Object.keys(q);\n for (var u = 0; (u < t.length); u++) {\n var v = t[u];\n if (!r.hasOwnProperty(v)) {\n s[v] = q[v];\n }\n else if ((m(q[v]) || m(r[v]))) {\n s[v] = r[v];\n }\n else s[v] = p(q[v], r[v]);\n \n ;\n };\n var w = Object.keys(r);\n for (u = 0; (u < w.length); u++) {\n var x = w[u];\n if (q.hasOwnProperty(x)) {\n continue;\n };\n s[x] = r[x];\n };\n return ((((q instanceof o) || (r instanceof o))) ? new o(s) : s);\n };\n e.exports = o;\n});\n__d(\"debounceAcrossTransitions\", [\"debounce\",], function(a, b, c, d, e, f) {\n var g = b(\"debounce\");\n function h(i, j, k) {\n return g(i, j, k, true);\n };\n e.exports = h;\n});\n__d(\"MercuryServerDispatcher\", [\"AsyncRequest\",\"FBAjaxRequest\",\"Env\",\"JSLogger\",\"Run\",\"areObjectsEqual\",\"copyProperties\",\"debounceAcrossTransitions\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"FBAjaxRequest\"), i = b(\"Env\"), j = b(\"JSLogger\"), k = b(\"Run\"), l = b(\"areObjectsEqual\"), m = b(\"copyProperties\"), n = b(\"debounceAcrossTransitions\"), o = {\n }, p = j.create(\"mercury_dispatcher\"), q = false, r = {\n IMMEDIATE: \"immediate\",\n IDEMPOTENT: \"idempotent\",\n BATCH_SUCCESSIVE: \"batch-successive\",\n BATCH_SUCCESSIVE_UNIQUE: \"batch-successive-unique\",\n BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR: \"batch-successive-piggyback-retry\",\n BATCH_DEFERRED_MULTI: \"batch-deferred-multi\",\n BATCH_CONDITIONAL: \"batch-conditional\",\n registerEndpoints: function(v) {\n for (var w in v) {\n var x = v[w], y = (x.request_user_id || i.user);\n if (!o[w]) {\n o[w] = {\n };\n };\n if (!o[w][y]) {\n o[w][y] = {\n };\n };\n o[w][y] = new s(w, x);\n };\n },\n trySend: function(v, w, x, y) {\n y = (y || i.user);\n if (((v == \"/ajax/mercury/client_reliability.php\") && !o[v][y])) {\n o[v][y] = o[v][undefined];\n };\n o[v][y].trySend(w, x);\n }\n };\n function s(v, w) {\n var x = (w.mode || r.IMMEDIATE);\n switch (x) {\n case r.IMMEDIATE:\n \n case r.IDEMPOTENT:\n \n case r.BATCH_SUCCESSIVE:\n \n case r.BATCH_SUCCESSIVE_UNIQUE:\n \n case r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR:\n \n case r.BATCH_DEFERRED_MULTI:\n \n case r.BATCH_CONDITIONAL:\n break;\n default:\n throw new Error((\"Invalid MercuryServerDispatcher mode \" + x));\n };\n this._endpoint = v;\n this._mode = x;\n this._requestUserID = w.request_user_id;\n this._combineData = w.batch_function;\n this._combineDataIf = w.batch_if;\n this._batchSizeLimit = w.batch_size_limit;\n this._batches = [];\n this._handler = w.handler;\n this._errorHandler = w.error_handler;\n this._transportErrorHandler = (w.transport_error_handler || w.error_handler);\n this._connectionRetries = (w.connection_retries || 0);\n this._timeoutHandler = w.timeout_handler;\n this._timeout = w.timeout;\n this._serverDialogCancelHandler = (w.server_dialog_cancel_handler || w.error_handler);\n this._deferredSend = n(this._batchSend, 0, this);\n if (this._batchSizeLimit) {\n k.onUnload(function() {\n p.bump((\"unload_batches_count_\" + u(this._batches.length)));\n }.bind(this));\n };\n };\n m(s.prototype, {\n _inFlight: 0,\n _handler: null,\n _errorHandler: null,\n _transportErrorHandler: null,\n _timeoutHandler: null,\n _timeout: null,\n _serverDialogCancelHandler: null,\n _combineData: null,\n trySend: function(v, w) {\n if (q) {\n return\n };\n if ((typeof v == \"undefined\")) {\n v = null;\n };\n var x = (w || this._mode);\n if ((x == r.IMMEDIATE)) {\n this._send(v);\n }\n else if ((x == r.IDEMPOTENT)) {\n if (!this._inFlight) {\n this._send(v);\n };\n }\n else if (((x == r.BATCH_SUCCESSIVE) || (x == r.BATCH_SUCCESSIVE_UNIQUE))) {\n if (!this._inFlight) {\n this._send(v);\n }\n else this._batchData(v);\n ;\n }\n else if ((x == r.BATCH_CONDITIONAL)) {\n var y = (this._batches[0] && this._batches[0].getData());\n if ((this._inFlight && ((this._combineDataIf(this._pendingRequestData, v) || this._combineDataIf(y, v))))) {\n this._batchData(v);\n }\n else this._send(v);\n ;\n }\n else if ((x == r.BATCH_DEFERRED_MULTI)) {\n this._batchData(v);\n this._deferredSend();\n }\n else if ((x == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR)) {\n this._batchData(v);\n if (!this._inFlight) {\n this._batchSend();\n };\n }\n \n \n \n \n \n ;\n },\n _send: function(v) {\n this._inFlight++;\n this._pendingRequestData = m({\n }, v);\n if ((this._requestUserID != i.user)) {\n v.request_user_id = this._requestUserID;\n };\n p.log(\"send\", {\n endpoint: this._endpoint,\n data: v,\n inflight_count: this._inFlight\n });\n var w = null;\n if (i.worker_context) {\n w = new h(\"POST\", this._endpoint, v);\n w.onError = function(x) {\n x.getPayload = function() {\n return x.errorText;\n };\n x.getRequest = function() {\n var y = x;\n x.getData = function() {\n return v;\n };\n return y;\n };\n x.getError = function() {\n return x.errorText;\n };\n x.getErrorDescription = function() {\n return x.errorText;\n };\n x.isTransient = function() {\n return false;\n };\n this._handleError(x);\n }.bind(this);\n w.onJSON = function(x) {\n x.getPayload = function() {\n return x.json;\n };\n x.getRequest = function() {\n return w;\n };\n this._handleResponse(x);\n }.bind(this);\n w.getData = function() {\n return v;\n };\n w.send();\n }\n else {\n w = new g(this._endpoint).setData(v).setOption(\"retries\", this._connectionRetries).setHandler(this._handleResponse.bind(this)).setErrorHandler(this._handleError.bind(this)).setTransportErrorHandler(this._handleTransportError.bind(this)).setServerDialogCancelHandler(this._handleServerDialogCancel.bind(this)).setAllowCrossPageTransition(true);\n if ((this._timeout && this._timeoutHandler)) {\n w.setTimeoutHandler(this._timeout, this._handleTimeout.bind(this));\n };\n w.send();\n }\n ;\n },\n _batchData: function(v, w) {\n if ((((this._mode == r.BATCH_SUCCESSIVE_UNIQUE) && (typeof this._pendingRequestData != \"undefined\")) && l(v, this._pendingRequestData))) {\n return;\n }\n else {\n var x = (this._batches.length - 1);\n if (((x >= 0) && !this._hasReachedBatchLimit(this._batches[x]))) {\n (w ? this._batches[x].combineWithOlder(v, this._combineData) : this._batches[x].combineWith(v, this._combineData));\n }\n else {\n this._batches.push(new t(v));\n p.bump((\"batches_count_\" + u(this._batches.length)));\n }\n ;\n p.debug(\"batch\", {\n endpoint: this._endpoint,\n batches: this._batches,\n batch_limit: this._batchSizeLimit\n });\n }\n ;\n },\n _hasReachedBatchLimit: function(v) {\n return (this._batchSizeLimit && (v.getSize() >= this._batchSizeLimit));\n },\n _batchSend: function() {\n if (this._batches[0]) {\n this._send(this._batches[0].getData());\n this._batches.shift();\n }\n ;\n },\n _handleResponse: function(v) {\n this._inFlight--;\n p.log(\"response\", {\n endpoint: this._endpoint,\n inflight_count: this._inFlight\n });\n var w = v.getPayload();\n q = (w && w.kill_chat);\n if (q) {\n p.log(\"killswitch_enabled\", {\n endpoint: this._endpoint,\n inflight_count: this._inFlight\n });\n };\n if ((w && w.error_payload)) {\n if (this._errorHandler) {\n this._errorHandler(v);\n };\n }\n else (this._handler && this._handler(w, v.getRequest()));\n ;\n if (((((this._mode == r.BATCH_SUCCESSIVE) || (this._mode == r.BATCH_SUCCESSIVE_UNIQUE)) || (this._mode == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR)) || (this._mode == r.BATCH_CONDITIONAL))) {\n this._batchSend();\n };\n delete this._pendingRequestData;\n },\n _postErrorHandler: function() {\n p.error(\"error\", {\n endpoint: this._endpoint,\n inflight_count: (this._inFlight - 1)\n });\n this._inFlight--;\n var v = this._mode;\n if ((((v == r.BATCH_SUCCESSIVE) || (v == r.BATCH_SUCCESSIVE_UNIQUE)) || (v == r.BATCH_CONDITIONAL))) {\n this._batchSend();\n }\n else if ((v == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR)) {\n if (this._batches[0]) {\n this._batchData(this._pendingRequestData, true);\n this._batchSend();\n }\n else this._batchData(this._pendingRequestData, true);\n \n }\n ;\n delete this._pendingRequestData;\n },\n _handleError: function(v) {\n (this._errorHandler && this._errorHandler(v));\n this._postErrorHandler();\n },\n _handleTransportError: function(v) {\n (this._transportErrorHandler && this._transportErrorHandler(v));\n this._postErrorHandler();\n },\n _handleTimeout: function(v) {\n (this._timeoutHandler && this._timeoutHandler(v));\n this._postErrorHandler();\n },\n _handleServerDialogCancel: function(v) {\n (this._serverDialogCancelHandler && this._serverDialogCancelHandler(v));\n this._postErrorHandler();\n }\n });\n function t(v) {\n this._data = v;\n this._size = 1;\n };\n m(t.prototype, {\n getData: function() {\n return this._data;\n },\n getSize: function() {\n return this._size;\n },\n combineWith: function(v, w) {\n this._data = w(this._data, v);\n this._size++;\n },\n combineWithOlder: function(v, w) {\n this._data = w(v, this._data);\n this._size++;\n }\n });\n function u(v) {\n if ((v === 1)) {\n return \"equals1\";\n }\n else if (((v >= 2) && (v <= 3))) {\n return \"between2and3\";\n }\n else return \"over4\"\n \n ;\n };\n e.exports = r;\n});\n__d(\"UFIFeedbackTargets\", [\"ClientIDs\",\"KeyedCallbackManager\",\"UFICentralUpdates\",\"UFIConstants\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ClientIDs\"), h = b(\"KeyedCallbackManager\"), i = b(\"UFICentralUpdates\"), j = b(\"UFIConstants\"), k = b(\"copyProperties\"), l = new h();\n function m(v) {\n var w = {\n };\n v.forEach(function(x) {\n var y = k({\n }, x);\n delete y.commentlist;\n delete y.commentcount;\n w[x.entidentifier] = y;\n i.didUpdateFeedback(x.entidentifier);\n });\n l.addResourcesAndExecute(w);\n };\n function n(v) {\n for (var w = 0; (w < v.length); w++) {\n var x = v[w];\n switch (x.actiontype) {\n case j.UFIActionType.LIKE_ACTION:\n p(x);\n break;\n case j.UFIActionType.SUBSCRIBE_ACTION:\n q(x);\n break;\n case j.UFIActionType.GIFT_SUGGESTION:\n r(x);\n break;\n };\n };\n };\n function o(v) {\n for (var w = 0; (w < v.length); w++) {\n var x = v[w];\n if (x.orig_ftentidentifier) {\n t(x.orig_ftentidentifier, x.ftentidentifier);\n };\n };\n };\n function p(v) {\n var w = s(v);\n if (w) {\n v.hasviewerliked = !!v.hasviewerliked;\n if (((v.clientid && g.isExistingClientID(v.clientid)) && (v.hasviewerliked != w.hasviewerliked))) {\n return\n };\n w.likecount = (v.likecount || 0);\n w.likesentences = v.likesentences;\n if ((v.actorid == w.actorforpost)) {\n w.hasviewerliked = v.hasviewerliked;\n }\n else if ((v.hasviewerliked != w.hasviewerliked)) {\n w.likesentences = {\n current: v.likesentences.alternate,\n alternate: v.likesentences.current\n };\n if (w.hasviewerliked) {\n w.likecount++;\n }\n else w.likecount--;\n ;\n }\n \n ;\n if ((v.actorid != w.actorforpost)) {\n w.likesentences.isunseen = true;\n };\n m([w,]);\n }\n ;\n };\n function q(v) {\n var w = s(v);\n if (w) {\n v.hasviewersubscribed = !!v.hasviewersubscribed;\n if (((v.clientid && g.isExistingClientID(v.clientid)) && (v.hasviewersubscribed != w.hasviewersubscribed))) {\n return\n };\n if ((v.actorid == w.actorforpost)) {\n w.hasviewersubscribed = v.hasviewersubscribed;\n };\n m([w,]);\n }\n ;\n };\n function r(v) {\n var w = s(v);\n if (!w) {\n return\n };\n if (((v.clientid && g.isExistingClientID(v.clientid)) && (v.hasviewerliked != w.hasviewerliked))) {\n return\n };\n w.giftdata = v.giftdata;\n m([w,]);\n };\n function s(v) {\n if (v.orig_entidentifier) {\n t(v.orig_entidentifier, v.entidentifier);\n };\n return l.getResource(v.entidentifier);\n };\n function t(v, w) {\n var x = l.getResource(v);\n if (x) {\n l.setResource(v, null);\n x.entidentifier = w;\n l.setResource(w, x);\n i.didUpdateFeedbackID(v, w);\n }\n ;\n };\n var u = {\n getFeedbackTarget: function(v, w) {\n var x = l.executeOrEnqueue(v, w), y = l.getUnavailableResources(x);\n if (!y.length) {\n return\n };\n }\n };\n i.subscribe(\"update-feedback\", function(v, w) {\n var x = w.feedbacktargets;\n if ((x && x.length)) {\n m(x);\n };\n });\n i.subscribe(\"update-actions\", function(v, w) {\n if ((w.actions && w.actions.length)) {\n n(w.actions);\n };\n });\n i.subscribe(\"update-comments\", function(v, w) {\n if ((w.comments && w.comments.length)) {\n o(w.comments);\n };\n });\n e.exports = u;\n});\n__d(\"UFIInstanceState\", [\"UFICentralUpdates\",], function(a, b, c, d, e, f) {\n var g = b(\"UFICentralUpdates\"), h = {\n };\n function i(k) {\n if (!h[k]) {\n h[k] = {\n };\n };\n };\n var j = {\n getKeyForInstance: function(k, l) {\n i(k);\n return h[k][l];\n },\n updateState: function(k, l, m) {\n i(k);\n h[k][l] = m;\n g.didUpdateInstanceState(k, l);\n },\n updateStateField: function(k, l, m, n) {\n var o = (this.getKeyForInstance(k, l) || {\n });\n o[m] = n;\n this.updateState(k, l, o);\n }\n };\n e.exports = j;\n});\n__d(\"UFIComments\", [\"ClientIDs\",\"ImmutableObject\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryServerDispatcher\",\"UFICentralUpdates\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"URI\",\"keyMirror\",\"merge\",\"randomInt\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"ClientIDs\"), h = b(\"ImmutableObject\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryServerDispatcher\"), l = b(\"UFICentralUpdates\"), m = b(\"UFIConstants\"), n = b(\"UFIFeedbackTargets\"), o = b(\"UFIInstanceState\"), p = b(\"URI\"), q = b(\"keyMirror\"), r = b(\"merge\"), s = b(\"randomInt\"), t = b(\"throwIf\"), u = q({\n INVALID_COMMENT_TYPE: null\n }), v = i.create(\"UFIComments\"), w = {\n }, x = {\n }, y = {\n }, z = {\n }, aa = {\n }, ba = {\n }, ca = \"unavailable_comment_key\";\n function da(ab) {\n return ((ab in ba) ? ba[ab] : ab);\n };\n function ea(ab, bb) {\n if (!x[ab]) {\n x[ab] = {\n };\n };\n if (!x[ab][bb]) {\n x[ab][bb] = new j();\n };\n return x[ab][bb];\n };\n function fa(ab) {\n var bb = [];\n if (x[ab]) {\n for (var cb in x[ab]) {\n bb.push(x[ab][cb]);;\n }\n };\n return bb;\n };\n function ga(ab) {\n if (!y[ab]) {\n y[ab] = new j();\n };\n return y[ab];\n };\n function ha(ab) {\n var bb = fa(ab);\n bb.forEach(function(cb) {\n cb.reset();\n });\n };\n function ia(ab, bb) {\n ab.forEach(function(cb) {\n var db = cb.ftentidentifier, eb = (cb.parentcommentid || db);\n n.getFeedbackTarget(db, function(fb) {\n var gb = m.UFIPayloadSourceType, hb = cb.clientid, ib = false, jb = r({\n }, cb);\n if (hb) {\n delete jb.clientid;\n ib = g.isExistingClientID(hb);\n if ((ib && ba[hb])) {\n return\n };\n }\n ;\n if ((((bb === gb.LIVE_SEND) && cb.parentcommentid) && (z[eb] === undefined))) {\n return\n };\n if ((((((bb === gb.LIVE_SEND)) || ((bb === gb.USER_ACTION))) || ((bb === gb.ENDPOINT_ADD_COMMENT))) || ((bb === gb.ENDPOINT_EDIT_COMMENT)))) {\n jb.isunseen = true;\n };\n if (((bb === gb.ENDPOINT_COMMENT_FETCH) || (bb === gb.ENDPOINT_ID_COMMENT_FETCH))) {\n jb.fromfetch = true;\n };\n if (ib) {\n if (w[hb].ufiinstanceid) {\n o.updateStateField(w[hb].ufiinstanceid, \"locallycomposed\", cb.id, true);\n };\n jb.ufiinstanceid = w[hb].ufiinstanceid;\n ba[hb] = cb.id;\n w[cb.id] = w[hb];\n delete w[hb];\n l.didUpdateComment(hb);\n }\n ;\n var kb, lb;\n if (cb.parentcommentid) {\n lb = [ga(eb),];\n }\n else lb = fa(eb);\n ;\n var mb = false;\n lb.forEach(function(qb) {\n var rb = qb.getAllResources(), sb = {\n };\n for (var tb in rb) {\n var ub = rb[tb];\n sb[ub] = tb;\n };\n if (ib) {\n if ((hb in sb)) {\n sb[cb.id] = sb[hb];\n var vb = sb[hb];\n qb.setResource(vb, cb.id);\n }\n \n };\n if (sb[cb.id]) {\n mb = true;\n }\n else {\n var wb = (z[eb] || 0);\n sb[cb.id] = wb;\n qb.setResource(wb, cb.id);\n }\n ;\n kb = sb[cb.id];\n });\n if (!mb) {\n var nb = (z[eb] || 0);\n z[eb] = (nb + 1);\n qa(eb);\n }\n ;\n if ((cb.status === m.UFIStatus.FAILED_ADD)) {\n aa[eb] = (aa[eb] + 1);\n };\n var ob = z[eb];\n jb.replycount = (((z[cb.id] || 0)) - ((aa[cb.id] || 0)));\n var pb = ja(kb, ob);\n if ((cb.parentcommentid && w[cb.parentcommentid])) {\n jb.permalink = p(fb.permalink).addQueryData({\n comment_id: w[cb.parentcommentid].legacyid,\n reply_comment_id: cb.legacyid,\n total_comments: ob\n }).toString();\n }\n else jb.permalink = p(fb.permalink).addQueryData({\n comment_id: cb.legacyid,\n offset: pb,\n total_comments: ob\n }).toString();\n ;\n za.setComment(cb.id, new h(jb));\n l.didUpdateComment(cb.id);\n l.didUpdateFeedback(db);\n });\n });\n };\n function ja(ab, bb) {\n return (Math.floor(((((bb - ab) - 1)) / m.defaultPageSize)) * m.defaultPageSize);\n };\n function ka(ab) {\n for (var bb = 0; (bb < ab.length); bb++) {\n var cb = ab[bb];\n switch (cb.actiontype) {\n case m.UFIActionType.COMMENT_LIKE:\n na(cb);\n break;\n case m.UFIActionType.DELETE_COMMENT:\n ra(cb);\n break;\n case m.UFIActionType.LIVE_DELETE_COMMENT:\n sa(cb);\n break;\n case m.UFIActionType.UNDO_DELETE_COMMENT:\n ta(cb);\n break;\n case m.UFIActionType.REMOVE_PREVIEW:\n ua(cb);\n break;\n case m.UFIActionType.COMMENT_SET_SPAM:\n va(cb);\n break;\n case m.UFIActionType.CONFIRM_COMMENT_REMOVAL:\n wa(cb);\n break;\n case m.UFIActionType.TRANSLATE_COMMENT:\n oa(cb);\n break;\n };\n };\n };\n function la(ab, bb, cb) {\n var db = bb.range, eb = bb.values;\n if (!db) {\n v.error(\"nullrange\", {\n target: ab,\n commentList: bb\n });\n return;\n }\n ;\n var fb = {\n };\n for (var gb = 0; (gb < db.length); gb++) {\n fb[(db.offset + gb)] = (eb[gb] || ca);;\n };\n var hb, ib;\n if (cb) {\n hb = ea(ab, cb);\n ib = ab;\n }\n else {\n hb = ga(ab);\n ib = bb.ftentidentifier;\n if ((bb.count !== undefined)) {\n z[ab] = bb.count;\n aa[ab] = 0;\n }\n ;\n }\n ;\n hb.addResourcesAndExecute(fb);\n l.didUpdateFeedback(ib);\n };\n function ma(ab) {\n ab.forEach(function(bb) {\n z[bb.entidentifier] = bb.commentcount;\n aa[bb.entidentifier] = 0;\n l.didUpdateFeedback(bb.entidentifier);\n });\n };\n function na(ab) {\n var bb = za.getComment(ab.commentid);\n if (bb) {\n var cb = {\n }, db = (ab.clientid && g.isExistingClientID(ab.clientid));\n if (!db) {\n cb.hasviewerliked = ab.viewerliked;\n cb.likecount = ab.likecount;\n }\n ;\n cb.likeconfirmhash = s(0, 1024);\n ya(ab.commentid, cb);\n }\n ;\n };\n function oa(ab) {\n var bb = ab.commentid, cb = za.getComment(ab.commentid);\n if (cb) {\n ya(bb, {\n translatedtext: ab.translatedtext\n });\n };\n };\n function pa(ab) {\n var bb = {\n reportLink: ab.reportLink,\n commenterIsFOF: ab.commenterIsFOF,\n userIsMinor: ab.userIsMinor\n };\n if (ab.undoData) {\n bb.undoData = ab.undoData;\n };\n return bb;\n };\n function qa(ab, bb) {\n if (ab) {\n if ((bb !== undefined)) {\n var cb = (((aa[ab] || 0)) + ((bb ? 1 : -1)));\n aa[ab] = Math.max(cb, 0);\n }\n ;\n var db = za.getComment(ab);\n if (db) {\n var eb = {\n replycount: za.getDisplayedCommentCount(ab)\n };\n ya(ab, eb);\n }\n ;\n }\n ;\n };\n function ra(ab) {\n var bb = za.getComment(ab.commentid);\n if ((bb.status !== m.UFIStatus.DELETED)) {\n var cb = (bb.parentcommentid || bb.ftentidentifier);\n if ((bb.status === m.UFIStatus.FAILED_ADD)) {\n qa(cb);\n }\n else qa(cb, true);\n ;\n }\n ;\n xa(bb, m.UFIStatus.DELETED);\n };\n function sa(ab) {\n var bb = za.getComment(ab.commentid);\n if ((bb && (bb.status !== m.UFIStatus.DELETED))) {\n xa(bb, m.UFIStatus.LIVE_DELETED);\n };\n };\n function ta(ab) {\n var bb = za.getComment(ab.commentid);\n if ((bb.status === m.UFIStatus.DELETED)) {\n var cb = (bb.parentcommentid || bb.ftentidentifier);\n qa(cb, false);\n }\n ;\n xa(bb, m.UFIStatus.PENDING_UNDO_DELETE);\n };\n function ua(ab) {\n ya(ab.commentid, {\n attachment: null\n });\n };\n function va(ab) {\n var bb = za.getComment(ab.commentid), cb = (ab.shouldHideAsSpam ? m.UFIStatus.SPAM_DISPLAY : null);\n xa(bb, cb);\n };\n function wa(ab) {\n ya(ab.commentid, pa(ab));\n };\n function xa(ab, bb) {\n ya(ab.id, {\n priorstatus: ab.status,\n status: bb\n });\n };\n function ya(ab, bb) {\n var cb = (za.getComment(ab) || new h({\n }));\n za.setComment(ab, h.set(cb, bb));\n l.didUpdateComment(cb.id);\n l.didUpdateFeedback(cb.ftentidentifier);\n };\n var za = {\n getComments: function(ab) {\n var bb = {\n };\n for (var cb = 0; (cb < ab.length); cb++) {\n bb[ab[cb]] = za.getComment(ab[cb]);;\n };\n return bb;\n },\n getComment: function(ab) {\n return w[da(ab)];\n },\n setComment: function(ab, bb) {\n w[da(ab)] = bb;\n },\n resetFeedbackTarget: function(ab) {\n var bb = fa(ab), cb = {\n };\n bb.forEach(function(eb) {\n var fb = eb.getAllResources();\n for (var gb in fb) {\n var hb = fb[gb];\n cb[hb] = 1;\n };\n });\n for (var db in cb) {\n delete w[da(db)];;\n };\n ha(ab);\n },\n getCommentsInRange: function(ab, bb, cb, db, eb) {\n var fb = ea(ab, cb);\n n.getFeedbackTarget(ab, function(gb) {\n var hb = [];\n for (var ib = 0; (ib < bb.length); ib++) {\n hb.push((bb.offset + ib));;\n };\n var jb = function(pb) {\n var qb = [], rb = bb.offset, sb = ((bb.offset + bb.length) - 1);\n for (var tb = 0; (tb < bb.length); tb++) {\n var ub = (gb.isranked ? (sb - tb) : (rb + tb));\n if ((pb[ub] != ca)) {\n var vb = this.getComment(pb[ub]);\n if (vb) {\n qb.push(vb);\n };\n }\n ;\n };\n eb(qb);\n }, kb = fb.getUnavailableResourcesFromRequest(hb);\n if (kb.length) {\n var lb = Math.min.apply(Math, kb), mb = Math.max.apply(Math, kb), nb = lb, ob = ((mb - lb) + 1);\n k.trySend(\"/ajax/ufi/comment_fetch.php\", {\n ft_ent_identifier: gb.entidentifier,\n viewas: db,\n source: null,\n offset: nb,\n length: ob,\n orderingmode: cb\n });\n }\n else fb.deferredExecuteOrEnqueue(hb).addCallback(jb, this);\n ;\n }.bind(this));\n },\n getRepliesInRanges: function(ab, bb, cb) {\n var db = {\n }, eb = {\n }, fb = {\n }, gb = false;\n n.getFeedbackTarget(ab, function(hb) {\n for (var ib in bb) {\n var jb = ga(ib), kb = bb[ib], lb = [];\n for (var mb = 0; (mb < kb.length); mb++) {\n lb.push((kb.offset + mb));;\n };\n db[ib] = jb.executeOrEnqueue(lb, function(wb) {\n var xb = [];\n for (var yb = 0; (yb < kb.length); yb++) {\n var zb = (kb.offset + yb);\n if ((wb[zb] != ca)) {\n var ac = this.getComment(wb[zb]);\n if (ac) {\n xb.push(ac);\n };\n }\n ;\n };\n eb[ib] = xb;\n }.bind(this));\n fb[ib] = jb.getUnavailableResources(db[ib]);\n if (fb[ib].length) {\n gb = true;\n jb.unsubscribe(db[ib]);\n }\n ;\n };\n if (!gb) {\n cb(eb);\n }\n else {\n var nb = [], ob = [], pb = [];\n for (var qb in fb) {\n var rb = fb[qb];\n if (rb.length) {\n var sb = Math.min.apply(Math, rb), tb = Math.max.apply(Math, rb), ub = sb, vb = ((tb - sb) + 1);\n nb.push(qb);\n ob.push(ub);\n pb.push(vb);\n }\n ;\n };\n k.trySend(\"/ajax/ufi/reply_fetch.php\", {\n ft_ent_identifier: hb.entidentifier,\n parent_comment_ids: nb,\n source: null,\n offsets: ob,\n lengths: pb\n });\n }\n ;\n }.bind(this));\n return db;\n },\n getCommentCount: function(ab) {\n return (z[ab] || 0);\n },\n getDeletedCount: function(ab) {\n return (aa[ab] || 0);\n },\n getDisplayedCommentCount: function(ab) {\n return (((z[ab] || 0)) - ((aa[ab] || 0)));\n },\n _dump: function() {\n var ab = {\n _comments: w,\n _commentLists: x,\n _replyLists: y,\n _commentCounts: z,\n _deletedCounts: aa,\n _localIDMap: ba\n };\n return JSON.stringify(ab);\n }\n };\n k.registerEndpoints({\n \"/ajax/ufi/comment_fetch.php\": {\n mode: k.IMMEDIATE,\n handler: l.handleUpdate.bind(l, m.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH)\n },\n \"/ajax/ufi/reply_fetch.php\": {\n mode: k.IMMEDIATE,\n handler: l.handleUpdate.bind(l, m.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH)\n }\n });\n l.subscribe(\"update-comments\", function(ab, bb) {\n if ((bb.comments && bb.comments.length)) {\n ia(bb.comments, bb.payloadsource);\n };\n });\n l.subscribe(\"update-actions\", function(ab, bb) {\n if ((bb.actions && bb.actions.length)) {\n ka(bb.actions);\n };\n });\n l.subscribe(\"update-comment-lists\", function(ab, bb) {\n var cb = bb.commentlists;\n if ((cb && Object.keys(cb).length)) {\n if (cb.comments) {\n for (var db in cb.comments) {\n for (var eb in cb.comments[db]) {\n la(db, cb.comments[db][eb], eb);;\n };\n }\n };\n if (cb.replies) {\n for (var fb in cb.replies) {\n la(fb, cb.replies[fb]);;\n }\n };\n }\n ;\n });\n l.subscribe(\"update-feedback\", function(ab, bb) {\n var cb = bb.feedbacktargets;\n if ((cb && cb.length)) {\n ma(cb);\n };\n });\n e.exports = za;\n});\n__d(\"UFILikeLink.react\", [\"React\",\"TrackingNodes\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"TrackingNodes\"), i = b(\"tx\"), j = g.createClass({\n displayName: \"UFILikeLink\",\n render: function() {\n var k = (this.props.likeAction ? \"Like\" : \"Unlike\"), l = h.getTrackingInfo((this.props.likeAction ? h.types.LIKE_LINK : h.types.UNLIKE_LINK)), m = (this.props.likeAction ? \"Like this\" : \"Unlike this\");\n return (g.DOM.a({\n className: \"UFILikeLink\",\n href: \"#\",\n role: \"button\",\n \"aria-live\": \"polite\",\n title: m,\n onClick: this.props.onClick,\n \"data-ft\": l\n }, k));\n }\n });\n e.exports = j;\n});\n__d(\"UFISubscribeLink.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n displayName: \"UFISubscribeLink\",\n render: function() {\n var j = (this.props.subscribeAction ? \"Follow Post\" : \"Unfollow Post\"), k = (this.props.subscribeAction ? \"Get notified when someone comments\" : \"Stop getting notified when someone comments\");\n return (g.DOM.a({\n className: \"UFISubscribeLink\",\n href: \"#\",\n role: \"button\",\n \"aria-live\": \"polite\",\n title: k,\n onClick: this.props.onClick\n }, j));\n }\n });\n e.exports = i;\n});\n__d(\"ProfileBrowserLink\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = \"/ajax/browser/dialog/\", i = \"/browse/\", j = function(l, m, n) {\n return new g((l + m)).setQueryData(n);\n }, k = {\n constructPageURI: function(l, m) {\n return j(i, l, m);\n },\n constructDialogURI: function(l, m) {\n return j(h, l, m);\n }\n };\n e.exports = k;\n});\n__d(\"ProfileBrowserTypes\", [], function(a, b, c, d, e, f) {\n var g = {\n LIKES: \"likes\",\n GROUP_MESSAGE_VIEWERS: \"group_message_viewers\",\n MUTUAL_FRIENDS: \"mutual_friends\"\n };\n e.exports = g;\n});\n__d(\"UFITimelineBlingBox.react\", [\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"UFIBlingItem.react\",\"URI\",\"cx\",\"fbt\",], function(a, b, c, d, e, f) {\n var g = b(\"ProfileBrowserLink\"), h = b(\"ProfileBrowserTypes\"), i = b(\"React\"), j = b(\"UFIBlingItem.react\"), k = b(\"URI\"), l = b(\"cx\"), m = b(\"fbt\"), n = i.createClass({\n displayName: \"UFITimelineBlingBox\",\n render: function() {\n var o = [];\n if ((this.props.likes && this.props.enableShowLikes)) {\n var p = this._getProfileBrowserURI(), q = \"See who likes this\", r = i.DOM.a({\n ajaxify: p.dialog,\n className: this._getItemClassName(o),\n \"data-ft\": this.props[\"data-ft\"],\n \"data-gt\": this.props[\"data-gt\"],\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"right\",\n \"data-tooltip-uri\": this._getLikeToolTipURI(),\n href: p.page,\n rel: \"dialog\",\n role: \"button\",\n title: q\n }, j({\n contextArgs: this.props.contextArgs,\n count: this.props.likes,\n iconClassName: \"UFIBlingBoxTimelineLikeIcon\"\n }));\n o.push(r);\n }\n ;\n if ((this.props.comments && this.props.enableShowComments)) {\n var s = \"Show comments\", t = i.DOM.a({\n \"aria-label\": s,\n className: this._getItemClassName(o),\n \"data-ft\": this.props[\"data-ft\"],\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"right\",\n href: \"#\",\n onClick: this.props.commentOnClick\n }, j({\n contextArgs: this.props.contextArgs,\n count: this.props.comments,\n iconClassName: \"UFIBlingBoxTimelineCommentIcon\"\n }));\n o.push(t);\n }\n ;\n if (this.props.reshares) {\n var u = \"Show shares\", v = this._getShareViewURI(), w = i.DOM.a({\n ajaxify: v.dialog,\n \"aria-label\": u,\n className: this._getItemClassName(o),\n \"data-ft\": this.props[\"data-ft\"],\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"right\",\n href: v.page,\n rel: \"async\"\n }, j({\n contextArgs: this.props.contextArgs,\n count: this.props.reshares,\n iconClassName: \"UFIBlingBoxTimelineReshareIcon\"\n }));\n o.push(w);\n }\n ;\n return (i.DOM.span(null, o));\n },\n _getItemClassName: function(o) {\n return (((((o.length > 0) ? \"mls\" : \"\")) + ((\" \" + \"UFIBlingBoxTimelineItem\"))));\n },\n _getLikeToolTipURI: function() {\n if (this.props.feedbackFBID) {\n var o = new k(\"/ajax/timeline/likestooltip.php\").setQueryData({\n obj_fbid: this.props.feedbackFBID\n });\n return o.toString();\n }\n else return null\n ;\n },\n _getProfileBrowserURI: function() {\n if (this.props.feedbackFBID) {\n var o = h.LIKES, p = {\n id: this.props.feedbackFBID\n }, q = g.constructDialogURI(o, p), r = g.constructPageURI(o, p), s = {\n dialog: q.toString(),\n page: r.toString()\n };\n return s;\n }\n ;\n },\n _getShareViewURI: function() {\n if (this.props.feedbackFBID) {\n var o = new k(\"/ajax/shares/view\").setQueryData({\n target_fbid: this.props.feedbackFBID\n }), p = new k(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n id: this.props.feedbackFBID\n }), q = {\n dialog: o.toString(),\n page: p.toString()\n };\n return q;\n }\n ;\n }\n });\n e.exports = n;\n});\n__d(\"UFIUserActions\", [\"AsyncResponse\",\"CLoggerX\",\"ClientIDs\",\"ImmutableObject\",\"JSLogger\",\"Nectar\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"MercuryServerDispatcher\",\"collectDataAttributes\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncResponse\"), h = b(\"CLoggerX\"), i = b(\"ClientIDs\"), j = b(\"ImmutableObject\"), k = b(\"JSLogger\"), l = b(\"Nectar\"), m = b(\"UFICentralUpdates\"), n = b(\"UFIComments\"), o = b(\"UFIConstants\"), p = b(\"UFIFeedbackTargets\"), q = b(\"MercuryServerDispatcher\"), r = b(\"collectDataAttributes\"), s = b(\"copyProperties\"), t = b(\"tx\"), u = k.create(\"UFIUserActions\"), v = {\n BAN: \"ban\",\n UNDO_BAN: \"undo_ban\"\n }, w = {\n changeCommentLike: function(ka, la, ma) {\n var na = n.getComment(ka);\n if ((na.hasviewerliked != la)) {\n var oa = x(ma.target), pa = (la ? 1 : -1), qa = {\n commentid: ka,\n actiontype: o.UFIActionType.COMMENT_LIKE,\n viewerliked: la,\n likecount: (na.likecount + pa)\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [qa,]\n });\n q.trySend(\"/ajax/ufi/comment_like.php\", s({\n comment_id: ka,\n legacy_id: na.legacyid,\n like_action: la,\n ft_ent_identifier: na.ftentidentifier,\n source: ma.source,\n client_id: i.getNewClientID()\n }, oa));\n }\n ;\n },\n addComment: function(ka, la, ma, na) {\n p.getFeedbackTarget(ka, function(oa) {\n var pa = x(na.target), qa = i.getNewClientID();\n if (!oa.actorforpost) {\n return\n };\n var ra = {\n ftentidentifier: ka,\n body: {\n text: la\n },\n author: oa.actorforpost,\n id: qa,\n islocal: true,\n ufiinstanceid: na.ufiinstanceid,\n likecount: 0,\n hasviewerliked: false,\n parentcommentid: na.replyid,\n photo_comment: na.attachedphoto,\n timestamp: {\n time: Date.now(),\n text: \"a few seconds ago\"\n }\n }, sa = {\n actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n actorid: oa.actorforpost,\n hasviewersubscribed: true,\n entidentifier: ka\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n comments: [ra,],\n actions: [sa,]\n });\n var ta = null;\n if (na.replyid) {\n ta = (n.getComment(na.replyid)).fbid;\n };\n var ua = h.getCLParamsForTarget(na.target, ta);\n q.trySend(\"/ajax/ufi/add_comment.php\", s({\n ft_ent_identifier: oa.entidentifier,\n comment_text: ma,\n source: na.source,\n client_id: qa,\n reply_fbid: ta,\n parent_comment_id: na.replyid,\n timeline_log_data: na.timelinelogdata,\n rootid: na.rootid,\n clp: ua,\n attached_photo_fbid: (na.attachedphoto ? na.attachedphoto.fbid : 0),\n giftoccasion: na.giftoccasion\n }, pa));\n });\n },\n editComment: function(ka, la, ma, na) {\n var oa = x(na.target), pa = n.getComment(ka);\n pa = j.set(pa, {\n status: o.UFIStatus.PENDING_EDIT,\n body: {\n text: la\n },\n timestamp: {\n time: Date.now(),\n text: \"a few seconds ago\"\n },\n originalTimestamp: pa.timestamp.time,\n editnux: null,\n attachment: null\n });\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n comments: [pa,]\n });\n q.trySend(\"/ajax/ufi/edit_comment.php\", s({\n ft_ent_identifier: pa.ftentidentifier,\n comment_text: ma,\n source: na.source,\n comment_id: pa.id,\n parent_comment_id: pa.parentcommentid,\n attached_photo_fbid: (na.attachedPhoto ? na.attachedPhoto.fbid : 0)\n }, oa));\n },\n translateComment: function(ka, la) {\n q.trySend(\"/ajax/ufi/translate_comment.php\", {\n ft_ent_identifier: ka.ftentidentifier,\n comment_ids: [ka.id,],\n source: la.source\n });\n },\n setHideAsSpam: function(ka, la, ma) {\n var na = x(ma.target), oa = n.getComment(ka), pa = {\n commentid: ka,\n actiontype: o.UFIActionType.COMMENT_SET_SPAM,\n shouldHideAsSpam: la\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [pa,]\n });\n q.trySend(\"/ajax/ufi/comment_spam.php\", s({\n comment_id: ka,\n spam_action: la,\n ft_ent_identifier: oa.ftentidentifier,\n source: ma.source\n }, na));\n },\n removeComment: function(ka, la) {\n var ma = x(la.target), na = n.getComment(ka), oa = {\n actiontype: o.UFIActionType.DELETE_COMMENT,\n commentid: ka,\n oneclick: la.oneclick\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [oa,]\n });\n q.trySend(\"/ajax/ufi/delete_comment.php\", s({\n comment_id: na.id,\n comment_legacyid: na.legacyid,\n ft_ent_identifier: na.ftentidentifier,\n one_click: la.oneclick,\n source: la.source,\n client_id: i.getNewClientID(),\n timeline_log_data: la.timelinelogdata\n }, ma));\n },\n undoRemoveComment: function(ka, la, ma) {\n var na = n.getComment(ka);\n if (!na.undoData) {\n u.error(\"noundodata\", {\n comment: ka\n });\n return;\n }\n ;\n var oa = x(ma.target), pa = {\n actiontype: o.UFIActionType.UNDO_DELETE_COMMENT,\n commentid: ka\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [pa,]\n });\n var qa = na.undoData;\n qa.page_admin = la;\n var ra = s(oa, qa);\n q.trySend(\"/ajax/ufi/undo_delete_comment.php\", ra);\n },\n banUser: function(ka, la, ma, na) {\n var oa = (ma ? v.BAN : v.UNDO_BAN);\n q.trySend(\"/ajax/ufi/ban_user.php\", {\n page_id: la,\n commenter_id: ka.author,\n action: oa,\n comment_id: ka.id,\n client_side: true\n });\n },\n changeLike: function(ka, la, ma) {\n p.getFeedbackTarget(ka, function(na) {\n var oa = x(ma.target);\n if ((na.hasviewerliked !== la)) {\n var pa = (la ? 1 : -1), qa = {\n actiontype: o.UFIActionType.LIKE_ACTION,\n actorid: na.actorforpost,\n hasviewerliked: la,\n likecount: (na.likecount + pa),\n entidentifier: ka,\n likesentences: {\n current: na.likesentences.alternate,\n alternate: na.likesentences.current\n }\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [qa,]\n });\n q.trySend(\"/ajax/ufi/like.php\", s({\n like_action: la,\n ft_ent_identifier: ka,\n source: ma.source,\n client_id: i.getNewClientID(),\n rootid: ma.rootid,\n giftoccasion: ma.giftoccasion\n }, oa));\n }\n ;\n });\n },\n changeSubscribe: function(ka, la, ma) {\n p.getFeedbackTarget(ka, function(na) {\n var oa = x(ma.target);\n if ((na.hasviewersubscribed !== la)) {\n var pa = {\n actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n actorid: na.actorforpost,\n hasviewersubscribed: la,\n entidentifier: ka\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [pa,]\n });\n q.trySend(\"/ajax/ufi/subscribe.php\", s({\n subscribe_action: la,\n ft_ent_identifier: ka,\n source: ma.source,\n client_id: i.getNewClientID(),\n rootid: ma.rootid,\n comment_expand_mode: ma.commentexpandmode\n }, oa));\n }\n ;\n });\n },\n fetchSpamComments: function(ka, la, ma, na) {\n q.trySend(\"/ajax/ufi/id_comment_fetch.php\", {\n ft_ent_identifier: ka,\n viewas: na,\n comment_ids: la,\n parent_comment_id: ma,\n source: null\n });\n },\n removePreview: function(ka, la) {\n var ma = x(la.target), na = {\n commentid: ka.id,\n actiontype: o.UFIActionType.REMOVE_PREVIEW\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [na,]\n });\n q.trySend(\"/ajax/ufi/remove_preview.php\", s({\n comment_id: ka.id,\n ft_ent_identifier: ka.ftentidentifier,\n source: la.source\n }, ma));\n }\n };\n function x(ka) {\n if (!ka) {\n return {\n ft: {\n }\n }\n };\n var la = {\n ft: r(ka, [\"ft\",]).ft\n };\n l.addModuleData(la, ka);\n return la;\n };\n function y(ka) {\n var la = ka.request.data;\n g.defaultErrorHandler(ka);\n var ma = (la.client_id || la.comment_id), na = n.getComment(ma), oa = (((na.status === o.UFIStatus.PENDING_EDIT)) ? o.UFIStatus.FAILED_EDIT : o.UFIStatus.FAILED_ADD);\n na = j.setDeep(na, {\n status: oa,\n allowRetry: z(ka),\n body: {\n mentionstext: la.comment_text\n }\n });\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n comments: [na,]\n });\n };\n function z(ka) {\n var la = ka.getError();\n if ((la === 1404102)) {\n return false\n };\n if (ka.silentError) {\n return true\n };\n if (((la === 1357012) || (la === 1357006))) {\n return false\n };\n return true;\n };\n function aa(ka) {\n var la = ka.request.data, ma = la.comment_id, na = n.getComment(ma);\n na = j.set(na, {\n status: (na.priorstatus || null),\n priorstatus: undefined\n });\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n comments: [na,]\n });\n };\n function ba(ka) {\n var la = ka.request.data, ma = la.comment_id, na = n.getComment(ma);\n if ((la.like_action === na.hasviewerliked)) {\n var oa = (na.hasviewerliked ? -1 : 1), pa = {\n commentid: ma,\n actiontype: o.UFIActionType.COMMENT_LIKE,\n viewerliked: !na.hasviewerliked,\n likecount: (na.likecount + oa)\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [pa,]\n });\n }\n ;\n g.defaultErrorHandler(ka);\n };\n function ca(ka) {\n var la = ka.request.data, ma = la.ft_ent_identifier;\n p.getFeedbackTarget(ma, function(na) {\n if ((na.hasviewerliked === la.like_action)) {\n var oa = (na.hasviewerliked ? -1 : 1), pa = {\n actiontype: o.UFIActionType.LIKE_ACTION,\n actorid: na.actorforpost,\n hasviewerliked: !na.hasviewerliked,\n likecount: (na.likecount + oa),\n entidentifier: ma,\n likesentences: {\n current: na.likesentences.alternate,\n alternate: na.likesentences.current\n }\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [pa,]\n });\n }\n ;\n });\n g.defaultErrorHandler(ka);\n };\n function da(ka) {\n var la = ka.request.data, ma = la.ft_ent_identifier;\n p.getFeedbackTarget(ma, function(na) {\n if ((na.hasviewersubscribed === la.subscribe_action)) {\n var oa = {\n actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n actorid: na.actorforpost,\n hasviewersubscribed: !na.hasviewersubscribed,\n entidentifier: ma\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [oa,]\n });\n }\n ;\n });\n g.defaultErrorHandler(ka);\n };\n var ea = function(ka) {\n return m.handleUpdate.bind(m, ka);\n }, fa = o.UFIPayloadSourceType;\n q.registerEndpoints({\n \"/ajax/ufi/comment_like.php\": {\n mode: q.BATCH_CONDITIONAL,\n handler: ea(fa.ENDPOINT_COMMENT_LIKE),\n error_handler: ba,\n batch_if: ga,\n batch_function: ja\n },\n \"/ajax/ufi/comment_spam.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_COMMENT_SPAM),\n error_handler: aa\n },\n \"/ajax/ufi/add_comment.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_ADD_COMMENT),\n error_handler: y\n },\n \"/ajax/ufi/delete_comment.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_DELETE_COMMENT),\n error_handler: aa\n },\n \"/ajax/ufi/undo_delete_comment.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_UNDO_DELETE_COMMENT),\n error_handler: aa\n },\n \"/ajax/ufi/ban_user.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_BAN)\n },\n \"/ajax/ufi/edit_comment.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_EDIT_COMMENT),\n error_handler: y\n },\n \"/ajax/ufi/like.php\": {\n mode: q.BATCH_CONDITIONAL,\n handler: ea(fa.ENDPOINT_LIKE),\n error_handler: ca,\n batch_if: ha,\n batch_function: ja\n },\n \"/ajax/ufi/subscribe.php\": {\n mode: q.BATCH_CONDITIONAL,\n handler: ea(fa.ENDPOINT_SUBSCRIBE),\n error_handler: da,\n batch_if: ia,\n batch_function: ja\n },\n \"/ajax/ufi/id_comment_fetch.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_ID_COMMENT_FETCH)\n },\n \"/ajax/ufi/remove_preview.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_REMOVE_PREVIEW)\n },\n \"/ajax/ufi/translate_comment.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_TRANSLATE_COMMENT)\n }\n });\n function ga(ka, la) {\n return ((ka && (ka.ft_ent_identifier == la.ft_ent_identifier)) && (ka.comment_id == la.comment_id));\n };\n function ha(ka, la) {\n return (ka && (ka.ft_ent_identifier == la.ft_ent_identifier));\n };\n function ia(ka, la) {\n return (ka && (ka.ft_ent_identifier == la.ft_ent_identifier));\n };\n function ja(ka, la) {\n return la;\n };\n e.exports = w;\n});\n__d(\"UFIActionLinkController\", [\"Arbiter\",\"ClickTTIIdentifiers\",\"CSS\",\"DOMQuery\",\"Parent\",\"React\",\"TrackingNodes\",\"UFIBlingBox.react\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFILikeLink.react\",\"UFISubscribeLink.react\",\"UFITimelineBlingBox.react\",\"UFIUserActions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ClickTTIIdentifiers\"), i = b(\"CSS\"), j = b(\"DOMQuery\"), k = b(\"Parent\"), l = b(\"React\"), m = b(\"TrackingNodes\"), n = b(\"UFIBlingBox.react\"), o = b(\"UFICentralUpdates\"), p = b(\"UFIComments\"), q = b(\"UFIConstants\"), r = b(\"UFIFeedbackTargets\"), s = b(\"UFILikeLink.react\"), t = b(\"UFISubscribeLink.react\"), u = b(\"UFITimelineBlingBox.react\"), v = b(\"UFIUserActions\"), w = b(\"copyProperties\");\n function x(z, aa, ba) {\n if (this._root) {\n throw new Error((\"UFIActionLinkController attempted to initialize when a root was\" + \" already present\"))\n };\n var ca = j.scry(z, aa)[0];\n if (ca) {\n var da = document.createElement(\"span\");\n ca.parentNode.replaceChild(da, ca);\n da.appendChild(ca);\n if ((typeof ba === \"function\")) {\n ba(da);\n };\n }\n else var ea = g.subscribe(\"PhotoSnowlift.DATA_CHANGE\", function() {\n g.unsubscribe(ea);\n x(z, aa, ba);\n }, g.SUBSCRIBE_NEW)\n ;\n };\n var y = function(z, aa, ba) {\n this._id = aa.ftentidentifier;\n this._ftFBID = ba.targetfbid;\n this._source = aa.source;\n this._contextArgs = aa;\n this._ufiRoot = z;\n if (this._isSourceProfile(this._contextArgs.source)) {\n this._attemptInitializeTimelineBling();\n }\n else this._attemptInitializeBling();\n ;\n if (ba.viewercanlike) {\n this._attemptInitializeLike();\n };\n if (ba.viewercansubscribetopost) {\n this._attemptInitializeSubscribe();\n };\n o.subscribe(\"feedback-updated\", function(ca, da) {\n var ea = da.updates;\n if ((this._id in ea)) {\n this.render();\n };\n }.bind(this));\n o.subscribe(\"feedback-id-changed\", function(ca, da) {\n var ea = da.updates;\n if ((this._id in ea)) {\n this._id = ea[this._id];\n };\n }.bind(this));\n };\n w(y.prototype, {\n _attemptInitializeBling: function() {\n x(this._ufiRoot, \"^form .uiBlingBox\", function(z) {\n this._blingRoot = z;\n if (this._dataReady) {\n this._renderBling();\n };\n }.bind(this));\n },\n _attemptInitializeTimelineBling: function() {\n if (this._root) {\n throw new Error((\"UFIActionLinkController attempted to initialize when a root was\" + \" already present\"))\n };\n var z = j.scry(this._ufiRoot, \"^form .fbTimelineFeedbackActions span\")[0];\n if (z) {\n i.addClass(z, \"UFIBlingBoxTimeline\");\n var aa = j.scry(z, \".fbTimelineFeedbackLikes\")[0];\n this._enableShowLikes = (aa ? true : false);\n var ba = j.scry(z, \".fbTimelineFeedbackComments\")[0];\n this._enableShowComments = (ba ? true : false);\n }\n ;\n this._blingTimelineRoot = z;\n if (this._dataReady) {\n this._renderTimelineBling();\n };\n },\n _attemptInitializeLike: function() {\n x(this._ufiRoot, \"^form .like_link\", function(z) {\n this._likeRoot = z;\n if (this._dataReady) {\n this._renderLike();\n };\n }.bind(this));\n },\n _attemptInitializeSubscribe: function() {\n x(this._ufiRoot, \"^form .unsub_link\", function(z) {\n this._subscribeRoot = z;\n if (this._dataReady) {\n this._renderSubscribe();\n };\n }.bind(this));\n },\n render: function() {\n this._dataReady = true;\n if (this._isSourceProfile(this._contextArgs.source)) {\n this._renderTimelineBling();\n }\n else this._renderBling();\n ;\n this._renderLike();\n this._renderSubscribe();\n },\n _renderBling: function() {\n if (this._blingRoot) {\n r.getFeedbackTarget(this._id, function(z) {\n var aa = function(event) {\n var da = k.byTag(event.target, \"form\");\n i.toggleClass(da, \"collapsed_comments\");\n i.toggleClass(da, \"hidden_add_comment\");\n event.preventDefault();\n }.bind(this), ba = m.getTrackingInfo(m.types.BLINGBOX), ca = n({\n likes: z.likecount,\n comments: p.getDisplayedCommentCount(this._id),\n reshares: z.sharecount,\n permalink: z.permalink,\n contextArgs: this._contextArgs,\n onClick: aa,\n \"data-ft\": ba\n });\n this._blingBox = l.renderComponent(ca, this._blingRoot);\n }.bind(this));\n };\n },\n _renderTimelineBling: function() {\n if (this._blingTimelineRoot) {\n r.getFeedbackTarget(this._id, function(z) {\n var aa = m.getTrackingInfo(m.types.BLINGBOX), ba = h.getUserActionID(h.types.TIMELINE_SEE_LIKERS), ca = function(event) {\n var ea = k.byTag(event.target, \"form\");\n i.removeClass(ea, \"collapsed_comments\");\n var fa = j.scry(ea, \"a.UFIPagerLink\");\n if (fa.length) {\n fa[0].click();\n };\n event.preventDefault();\n }.bind(this), da = u({\n comments: p.getDisplayedCommentCount(this._id),\n commentOnClick: ca,\n contextArgs: this._contextArgs,\n \"data-ft\": aa,\n \"data-gt\": ba,\n enableShowComments: this._enableShowComments,\n enableShowLikes: this._enableShowLikes,\n feedbackFBID: this._ftFBID,\n likes: z.likecount,\n reshares: z.sharecount\n });\n l.renderComponent(da, this._blingTimelineRoot);\n }.bind(this));\n };\n },\n _renderLike: function() {\n if (this._likeRoot) {\n r.getFeedbackTarget(this._id, function(z) {\n var aa = !z.hasviewerliked, ba = function(event) {\n v.changeLike(this._id, aa, {\n source: this._source,\n target: event.target,\n rootid: this._contextArgs.rootid,\n giftoccasion: this._contextArgs.giftoccasion\n });\n event.preventDefault();\n }.bind(this), ca = s({\n onClick: ba,\n likeAction: aa\n });\n this._likeLink = l.renderComponent(ca, this._likeRoot);\n }.bind(this));\n };\n },\n _renderSubscribe: function() {\n if (this._subscribeRoot) {\n r.getFeedbackTarget(this._id, function(z) {\n var aa = !z.hasviewersubscribed, ba = function(event) {\n v.changeSubscribe(this._id, aa, {\n source: this._source,\n target: event.target,\n rootid: this._contextArgs.rootid,\n commentexpandmode: z.commentexpandmode\n });\n event.preventDefault();\n }.bind(this), ca = t({\n onClick: ba,\n subscribeAction: aa\n });\n this._subscribeLink = l.renderComponent(ca, this._subscribeRoot);\n }.bind(this));\n };\n },\n _isSourceProfile: function(z) {\n return (z === q.UFIFeedbackSourceType.PROFILE);\n }\n });\n e.exports = y;\n});\n__d(\"MentionsInputUtils\", [], function(a, b, c, d, e, f) {\n var g = {\n generateDataFromTextWithEntities: function(h) {\n var i = h.text, j = [];\n ((h.ranges || [])).forEach(function(l) {\n var m = l.entities[0];\n if (!m.external) {\n j.push({\n uid: m.id,\n text: i.substr(l.offset, l.length),\n offset: l.offset,\n length: l.length,\n weakreference: !!m.weakreference\n });\n };\n });\n var k = {\n value: i,\n mentions: j\n };\n return k;\n }\n };\n e.exports = g;\n});\n__d(\"ClipboardPhotoUploader\", [\"ArbiterMixin\",\"AsyncRequest\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"copyProperties\");\n function j(k, l) {\n this.uploadURIString = k;\n this.data = l;\n };\n i(j.prototype, g, {\n handlePaste: function(event) {\n if (!event.clipboardData) {\n return\n };\n var k = event.clipboardData.items;\n if (!k) {\n return\n };\n for (var l = 0; (l < k.length); ++l) {\n var m = k[l];\n if (((m.kind === \"file\") && (m.type.indexOf(\"image/\") !== -1))) {\n var n = new FormData();\n n.append(\"pasted_file\", m.getAsFile());\n var o = new h();\n o.setURI(this.uploadURIString).setData(this.data).setRawData(n).setHandler(function(p) {\n this.inform(\"upload_success\", p);\n }.bind(this)).setErrorHandler(function(p) {\n this.inform(\"upload_error\", p);\n }.bind(this));\n this.inform(\"upload_start\");\n o.send();\n break;\n }\n ;\n };\n }\n });\n e.exports = j;\n});\n__d(\"CloseButton.react\", [\"React\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"cx\"), i = g.createClass({\n displayName: \"CloseButton\",\n render: function() {\n var j = this.props, k = (j.size || \"medium\"), l = (j.appearance || \"normal\"), m = (k === \"small\"), n = (k === \"huge\"), o = (l === \"dark\"), p = (l === \"inverted\"), q = ((((((((\"uiCloseButton\") + ((m ? (\" \" + \"uiCloseButtonSmall\") : \"\"))) + ((n ? (\" \" + \"uiCloseButtonHuge\") : \"\"))) + (((m && o) ? (\" \" + \"uiCloseButtonSmallDark\") : \"\"))) + (((m && p) ? (\" \" + \"uiCloseButtonSmallInverted\") : \"\"))) + (((!m && o) ? (\" \" + \"uiCloseButtonDark\") : \"\"))) + (((!m && p) ? (\" \" + \"uiCloseButtonInverted\") : \"\"))));\n return this.transferPropsTo(g.DOM.a({\n href: \"#\",\n role: \"button\",\n \"aria-label\": j.tooltip,\n \"data-hover\": (j.tooltip && \"tooltip\"),\n \"data-tooltip-alignh\": (j.tooltip && \"center\"),\n className: q\n }));\n }\n });\n e.exports = i;\n});\n__d(\"LoadingIndicator.react\", [\"React\",\"joinClasses\",\"keyMirror\",\"merge\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"joinClasses\"), i = b(\"keyMirror\"), j = b(\"merge\"), k = i({\n white: true,\n blue: true,\n black: true\n }), l = i({\n small: true,\n medium: true,\n large: true\n }), m = {\n white: {\n large: \"/images/loaders/indicator_blue_large.gif\",\n medium: \"/images/loaders/indicator_blue_medium.gif\",\n small: \"/images/loaders/indicator_blue_small.gif\"\n },\n blue: {\n large: \"/images/loaders/indicator_white_large.gif\",\n small: \"/images/loaders/indicator_white_small.gif\"\n },\n black: {\n large: \"/images/loaders/indicator_black.gif\"\n }\n }, n = g.createClass({\n displayName: \"LoadingIndicator\",\n render: function() {\n var o = this.props.color, p = this.props.size;\n if (!m[o]) {\n return g.DOM.span(null)\n };\n if (!m[o][p]) {\n return g.DOM.span(null)\n };\n var q = ((this.props.showonasync ? \"uiLoadingIndicatorAsync\" : \"\"));\n if (this.props.className) {\n q = h(this.props.className, q);\n };\n var r = m[o][p], s = g.DOM.img({\n src: r,\n className: q\n });\n s.props = j(this.props, s.props);\n return s;\n }\n });\n n.SIZES = l;\n n.COLORS = k;\n e.exports = n;\n});\n__d(\"LegacyMentionsInput.react\", [\"PlaceholderListener\",\"Bootloader\",\"Event\",\"Keys\",\"React\",\"cx\",], function(a, b, c, d, e, f) {\n b(\"PlaceholderListener\");\n var g = b(\"Bootloader\"), h = b(\"Event\"), i = b(\"Keys\"), j = b(\"React\"), k = b(\"cx\"), l = j.createClass({\n displayName: \"ReactLegacyMentionsInput\",\n componentDidMount: function(m) {\n (this.props.initialData && this._initializeTextarea(m));\n },\n hasEnteredText: function() {\n return !!((this._mentionsInput && this._mentionsInput.getValue().trim()));\n },\n _handleKeydown: function(event) {\n var m = event.nativeEvent, n = this.props.onEnterSubmit, o = ((h.getKeyCode(m) == i.RETURN) && !h.$E(m).getModifiers().any), p = (this._mentionsInput && this._mentionsInput.getTypeahead().getView().getSelection());\n if (((n && o) && !p)) {\n if (this.props.isLoadingPhoto) {\n return false\n };\n var q = event.target, r = (q.value && q.value.trim());\n if ((r || this.props.acceptEmptyInput)) {\n var s = {\n visibleValue: r,\n encodedValue: r,\n attachedPhoto: null\n };\n if (this._mentionsInput) {\n s.encodedValue = this._mentionsInput.getRawValue().trim();\n this._mentionsInput.reset();\n }\n ;\n n(s, event);\n }\n ;\n event.preventDefault();\n }\n ;\n },\n _handleFocus: function() {\n (this.props.onFocus && this.props.onFocus());\n this._initializeTextarea(this.refs.root.getDOMNode());\n },\n _handleBlur: function() {\n (this.props.onBlur && this.props.onBlur());\n },\n _initializeTextarea: function(m) {\n if ((this._mentionsInput || this._bootloadingMentions)) {\n return\n };\n this._bootloadingMentions = true;\n g.loadModules([\"CompactTypeaheadRenderer\",\"ContextualTypeaheadView\",\"InputSelection\",\"MentionsInput\",\"TextAreaControl\",\"Typeahead\",\"TypeaheadAreaCore\",\"TypeaheadBestName\",\"TypeaheadHoistFriends\",\"TypeaheadMetrics\",\"TypingDetector\",], function(n, o, p, q, r, s, t, u, v, w, x) {\n var y = this.refs.textarea.getDOMNode();\n new r(y);\n if (this.props.onTypingStateChange) {\n var z = new x(y);\n z.init();\n z.subscribe(\"change\", this.props.onTypingStateChange);\n }\n ;\n var aa = {\n autoSelect: true,\n renderer: n,\n causalElement: y\n };\n if (this.props.viewOptionsTypeObjects) {\n aa.typeObjects = this.props.viewOptionsTypeObjects;\n };\n if (this.props.viewOptionsTypeObjectsOrder) {\n aa.typeObjectsOrder = this.props.viewOptionsTypeObjectsOrder;\n };\n var ba = new s(this.props.datasource, {\n ctor: o,\n options: aa\n }, {\n ctor: t\n }, this.refs.typeahead.getDOMNode()), ca = [u,v,], da = new w({\n extraData: {\n event_name: \"mentions\"\n }\n });\n s.initNow(ba, ca, da);\n this._mentionsInput = new q(m, ba, y, {\n hashtags: this.props.sht\n });\n this._mentionsInput.init({\n max: 6\n }, this.props.initialData);\n if (this.props.initialData) {\n p.set(y, y.value.length);\n };\n if (this.props.onPaste) {\n h.listen(y, \"paste\", this.props.onPaste);\n };\n this._bootloadingMentions = false;\n }.bind(this));\n },\n focus: function() {\n try {\n this.refs.textarea.getDOMNode().focus();\n } catch (m) {\n \n };\n },\n render: function() {\n var m = (((((((\"textInput\") + ((\" \" + \"mentionsTextarea\"))) + ((\" \" + \"uiTextareaAutogrow\"))) + ((\" \" + \"uiTextareaNoResize\"))) + ((\" \" + \"UFIAddCommentInput\"))) + ((\" \" + \"DOMControl_placeholder\"))));\n return (j.DOM.div({\n ref: \"root\",\n className: \"uiMentionsInput textBoxContainer ReactLegacyMentionsInput\"\n }, j.DOM.div({\n className: \"highlighter\"\n }, j.DOM.div(null, j.DOM.span({\n className: \"highlighterContent hidden_elem\"\n }))), j.DOM.div({\n ref: \"typeahead\",\n className: \"uiTypeahead mentionsTypeahead\"\n }, j.DOM.div({\n className: \"wrap\"\n }, j.DOM.input({\n type: \"hidden\",\n autocomplete: \"off\",\n className: \"hiddenInput\"\n }), j.DOM.div({\n className: \"innerWrap\"\n }, j.DOM.textarea({\n ref: \"textarea\",\n name: \"add_comment_text\",\n className: m,\n title: this.props.placeholder,\n placeholder: this.props.placeholder,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n onKeyDown: this._handleKeydown,\n defaultValue: this.props.placeholder\n })))), j.DOM.input({\n type: \"hidden\",\n autocomplete: \"off\",\n className: \"mentionsHidden\",\n defaultValue: \"\"\n })));\n }\n });\n e.exports = l;\n});\n__d(\"UFIClassNames\", [\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\");\n e.exports = {\n ACTOR_IMAGE: \"img UFIActorImage _54ru\",\n ROW: \"UFIRow\",\n UNSEEN_ITEM: \"UFIUnseenItem\"\n };\n});\n__d(\"LeftRight.react\", [\"React\",\"cx\",\"keyMirror\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"cx\"), i = b(\"keyMirror\"), j = b(\"throwIf\"), k = i({\n left: true,\n right: true,\n both: true\n });\n function l(n) {\n j(((!n.children || (n.children.length < 1)) || (n.children.length > 2)), \"LeftRight component must have one or two children.\");\n };\n var m = g.createClass({\n displayName: \"LeftRight\",\n render: function() {\n l(this.props);\n var n = (this.props.direction || k.both), o = ((n === k.both)), p = g.DOM.div({\n key: \"left\",\n className: (((o || (n === k.left)) ? \"lfloat\" : \"\"))\n }, this.props.children[0]), q = (((this.props.children.length < 2)) ? null : g.DOM.div({\n key: \"right\",\n className: (((o || (n === k.right)) ? \"rfloat\" : \"\"))\n }, this.props.children[1])), r = ((((n === k.right) && q)) ? [q,p,] : [p,q,]);\n return this.transferPropsTo(g.DOM.div({\n className: \"clearfix\"\n }, r));\n }\n });\n m.DIRECTION = k;\n e.exports = m;\n});\n__d(\"ImageBlock.react\", [\"LeftRight.react\",\"React\",\"cx\",\"joinClasses\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"LeftRight.react\"), h = b(\"React\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = b(\"throwIf\");\n function l(p) {\n k(((!p.children || (p.children.length > 3)) || (p.children.length < 1)), \"ImageBlock requires two or three children.\");\n };\n function m(p) {\n return ((((((\"img\") + ((\" \" + \"_8o\"))) + (((p === \"small\") ? (\" \" + \"_8r\") : \"\"))) + (((p === \"medium\") ? (\" \" + \"_8s\") : \"\"))) + (((p === \"large\") ? (\" \" + \"_8t\") : \"\"))));\n };\n function n(p, q, r) {\n p.props.className = j(m(q), p.props.className, r);\n };\n var o = h.createClass({\n displayName: \"ImageBlock\",\n render: function() {\n l(this.props);\n var p = this.props.children[0], q = this.props.children[1], r = this.props.children[2], s = (this.props.spacing || \"small\");\n n(p, s, this.props.imageClassName);\n var t = j(this.props.contentClassName, (((\"_42ef\") + (((s === \"small\") ? (\" \" + \"_8u\") : \"\")))));\n if ((p.tagName == \"IMG\")) {\n if ((p.props.alt === undefined)) {\n p.props.alt = \"\";\n };\n }\n else if (((((((p.tagName == \"A\") || (p.tagName == \"LINK\"))) && (p.props.tabIndex === undefined)) && (p.props.title === undefined)) && (p.props[\"aria-label\"] === undefined))) {\n p.props.tabIndex = \"-1\";\n p.props[\"aria-hidden\"] = \"true\";\n }\n \n ;\n var u;\n if (!r) {\n u = h.DOM.div({\n className: t\n }, q);\n }\n else u = g({\n className: t,\n direction: g.DIRECTION.right\n }, q, r);\n ;\n return this.transferPropsTo(g({\n direction: g.DIRECTION.left\n }, p, u));\n }\n });\n e.exports = o;\n});\n__d(\"UFIImageBlock.react\", [\"ImageBlock.react\",\"React\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"ImageBlock.react\"), h = b(\"React\"), i = b(\"cx\"), j = h.createClass({\n displayName: \"UFIImageBlock\",\n render: function() {\n return this.transferPropsTo(g({\n imageClassName: \"UFIImageBlockImage\",\n contentClassName: \"UFIImageBlockContent\"\n }, this.props.children));\n }\n });\n e.exports = j;\n});\n__d(\"UFIAddComment.react\", [\"Bootloader\",\"CLogConfig\",\"ClipboardPhotoUploader\",\"CloseButton.react\",\"Event\",\"Keys\",\"LoadingIndicator.react\",\"React\",\"LegacyMentionsInput.react\",\"TrackingNodes\",\"Run\",\"UFIClassNames\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"CLogConfig\"), i = b(\"ClipboardPhotoUploader\"), j = b(\"CloseButton.react\"), k = b(\"Event\"), l = b(\"Keys\"), m = b(\"LoadingIndicator.react\"), n = b(\"React\"), o = b(\"LegacyMentionsInput.react\"), p = b(\"TrackingNodes\"), q = b(\"Run\"), r = b(\"UFIClassNames\"), s = b(\"UFIImageBlock.react\"), t = b(\"cx\"), u = b(\"joinClasses\"), v = b(\"tx\"), w = \"Write a comment...\", x = \"Write a reply...\", y = \"fcg fss UFICommentTip\", z = 19, aa = \"/ajax/ufi/upload/\", ba = n.createClass({\n displayName: \"UFIAddComment\",\n getInitialState: function() {\n if (this.props.attachedPhoto) {\n this.props.contextArgs.attachedphoto = this.props.attachedPhoto;\n };\n return {\n attachedPhoto: (this.props.attachedPhoto ? this.props.attachedPhoto : null),\n isCommenting: false,\n isLoadingPhoto: false,\n isOnBeforeUnloadListenerAdded: false\n };\n },\n _onKeyDown: function(event) {\n if ((this.props.isEditing && (k.getKeyCode(event.nativeEvent) === l.ESC))) {\n this.props.onCancel();\n };\n if ((this.isMounted() && !this.state.isOnBeforeUnloadListenerAdded)) {\n q.onBeforeUnload(this._handleUnsavedChanges);\n this.setState({\n isOnBeforeUnloadListenerAdded: true\n });\n }\n ;\n },\n _handleUnsavedChanges: function() {\n var ca = a.PageTransitions;\n if (ca) {\n var da = ca.getNextURI(), ea = ca.getMostRecentURI();\n if ((da.getQueryData().hasOwnProperty(\"theater\") || ea.getQueryData().hasOwnProperty(\"theater\"))) {\n return\n };\n }\n ;\n if (((this.refs && this.refs.mentionsinput) && this.refs.mentionsinput.hasEnteredText())) {\n return \"You haven't finished your comment yet. Do you want to leave without finishing?\"\n };\n },\n _blur: function() {\n if ((this.refs.mentionsinput && this.refs.mentionsinput.hasEnteredText())) {\n return\n };\n this.setState({\n isCommenting: false\n });\n },\n _onPaste: function(event) {\n var ca = new i(aa, this._getPhotoUploadData());\n this._cancelCurrentSubscriptions();\n this._subscriptions = [ca.subscribe(\"upload_start\", this._prepareForAttachedPhotoPreview),ca.subscribe(\"upload_error\", this._onRemoveAttachedPhotoPreviewClicked),ca.subscribe(\"upload_success\", function(da, ea) {\n this._onPhotoUploadComplete(ea);\n }.bind(this)),];\n ca.handlePaste(event);\n },\n _cancelCurrentSubscriptions: function() {\n if (this._subscriptions) {\n this._subscriptions.forEach(function(ca) {\n ca.unsubscribe();\n });\n };\n },\n componentWillUnmount: function() {\n this._cancelCurrentSubscriptions();\n },\n focus: function() {\n if ((this.refs && this.refs.mentionsinput)) {\n this.refs.mentionsinput.focus();\n };\n },\n render: function() {\n var ca = (!this.props.contextArgs.collapseaddcomment || this.state.isCommenting), da = null;\n if (this.props.isEditing) {\n da = n.DOM.span({\n className: y\n }, \"Press Esc to cancel.\");\n }\n else if (this.props.showSendOnEnterTip) {\n da = n.DOM.span({\n className: y\n }, \"Press Enter to post.\");\n }\n else if (this.props.subtitle) {\n da = n.DOM.span({\n className: y\n }, this.props.subtitle);\n }\n \n ;\n var ea = null, fa = this.state.attachedPhoto, ga = null;\n if (this.props.allowPhotoAttachments) {\n ga = this._onPaste;\n var ha = n.DOM.input({\n ref: \"PhotoInput\",\n accept: \"image/*\",\n className: \"_n\",\n name: \"file[]\",\n type: \"file\",\n multiple: false\n }), ia = (fa ? \"UFICommentPhotoAttachedIcon\" : \"UFICommentPhotoIcon\"), ja = \"UFIPhotoAttachLinkWrapper _m\";\n ea = n.DOM.div({\n ref: \"PhotoInputContainer\",\n className: ja,\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"aria-label\": \"Attach a Photo\"\n }, n.DOM.i({\n ref: \"PhotoInputControl\",\n className: ia\n }), ha);\n }\n ;\n var ka = p.getTrackingInfo(p.types.ADD_COMMENT_BOX), la = u(r.ACTOR_IMAGE, ((!ca ? \"hidden_elem\" : \"\"))), ma = n.DOM.div({\n className: \"UFIReplyActorPhotoWrapper\"\n }, n.DOM.img({\n className: la,\n src: this.props.viewerActor.thumbSrc\n })), na = u(r.ROW, ((((((((this.props.hide ? \"noDisplay\" : \"\")) + ((\" \" + \"UFIAddComment\"))) + ((this.props.allowPhotoAttachments ? (\" \" + \"UFIAddCommentWithPhotoAttacher\") : \"\"))) + ((this.props.withoutSeparator ? (\" \" + \"UFIAddCommentWithoutSeparator\") : \"\"))) + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))))), oa = (!!this.props.replyCommentID ? x : w), pa = (this.props.contextArgs.entstream ? this._blur : null), qa = this.props.contextArgs.viewoptionstypeobjects, ra = this.props.contextArgs.viewoptionstypeobjectsorder, sa = null, ta = this.props.onCommentSubmit;\n if (fa) {\n sa = n.DOM.div({\n isStatic: true,\n dangerouslySetInnerHTML: (this.state.attachedPhoto.markupPreview ? this.state.attachedPhoto.markupPreview : this.state.attachedPhoto.markup)\n });\n da = null;\n }\n else if (this.state.isLoadingPhoto) {\n sa = m({\n color: \"white\",\n className: \"UFICommentPhotoAttachedPreviewLoadingIndicator\",\n size: \"medium\"\n });\n }\n ;\n var ua;\n if ((sa != null)) {\n ua = n.DOM.div({\n className: \"UFICommentPhotoAttachedPreview pas\"\n }, sa, j({\n onClick: this._onRemoveAttachedPhotoPreviewClicked\n }));\n ta = function(va, event) {\n this.setState({\n isLoadingPhoto: false,\n attachedPhoto: null\n });\n va.attachedPhoto = this.props.contextArgs.attachedphoto;\n this.props.onCommentSubmit(va, event);\n }.bind(this);\n }\n ;\n return (n.DOM.li({\n className: na,\n onKeyDown: this._onKeyDown,\n \"data-ft\": ka\n }, s({\n className: \"UFIMentionsInputWrap\"\n }, ma, n.DOM.div(null, o({\n initialData: this.props.initialData,\n placeholder: oa,\n ref: \"mentionsinput\",\n datasource: this.props.mentionsDataSource,\n acceptEmptyInput: (this.props.isEditing || this.props.contextArgs.attachedphoto),\n onEnterSubmit: ta,\n onFocus: this.setState.bind(this, {\n isCommenting: true\n }),\n viewOptionsTypeObjects: qa,\n viewOptionsTypeObjectsOrder: ra,\n onBlur: pa,\n onTypingStateChange: this.props.onTypingStateChange,\n onPaste: ga,\n sht: this.props.contextArgs.sht,\n isLoadingPhoto: this.state.isLoadingPhoto\n }), ea, ua, da))));\n },\n componentDidMount: function(ca) {\n if (h.gkResults) {\n var da = this.props.replyCommentID;\n if ((this.refs && this.refs.mentionsinput)) {\n var ea = this.refs.mentionsinput.refs.textarea.getDOMNode();\n g.loadModules([\"CLoggerX\",\"UFIComments\",], function(ja, ka) {\n var la = ka.getComment(da), ma = (la ? la.fbid : null);\n ja.trackMentionsInput(ea, ma);\n });\n }\n ;\n }\n ;\n if (!this.props.allowPhotoAttachments) {\n return\n };\n var fa = this.refs.PhotoInputContainer.getDOMNode(), ga = this.refs.PhotoInputControl.getDOMNode(), ha = this.refs.PhotoInput.getDOMNode(), ia = k.listen(fa, \"click\", function(event) {\n g.loadModules([\"FileInput\",\"FileInputUploader\",\"Input\",], function(ja, ka, la) {\n var ma = new ja(fa, ga, ha), na = new ka().setURI(aa).setData(this._getPhotoUploadData());\n ma.subscribe(\"change\", function(event) {\n if (ma.getValue()) {\n this._prepareForAttachedPhotoPreview();\n na.setInput(ma.getInput()).send();\n }\n ;\n }.bind(this));\n na.subscribe(\"success\", function(oa, pa) {\n ma.clear();\n this._onPhotoUploadComplete(pa.response);\n }.bind(this));\n }.bind(this));\n ia.remove();\n }.bind(this));\n },\n _getPhotoUploadData: function() {\n return {\n profile_id: this.props.viewerActor.id,\n source: z\n };\n },\n _onPhotoUploadComplete: function(ca) {\n if (!this.state.isLoadingPhoto) {\n return\n };\n var da = ca.getPayload();\n if ((da && da.fbid)) {\n this.props.contextArgs.attachedphoto = da;\n this.setState({\n attachedPhoto: da,\n isLoadingPhoto: false\n });\n }\n ;\n },\n _onRemoveAttachedPhotoPreviewClicked: function(event) {\n this.props.contextArgs.attachedphoto = null;\n this.setState({\n attachedPhoto: null,\n isLoadingPhoto: false\n });\n },\n _prepareForAttachedPhotoPreview: function() {\n this.props.contextArgs.attachedphoto = null;\n this.setState({\n attachedPhoto: null,\n isLoadingPhoto: true\n });\n }\n });\n e.exports = ba;\n});\n__d(\"UFIAddCommentController\", [\"Arbiter\",\"copyProperties\",\"MentionsInputUtils\",\"Parent\",\"UFIAddComment.react\",\"React\",\"ShortProfiles\",\"UFICentralUpdates\",\"UFIComments\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"UFIUserActions\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = b(\"MentionsInputUtils\"), j = b(\"Parent\"), k = b(\"UFIAddComment.react\"), l = b(\"React\"), m = b(\"ShortProfiles\"), n = b(\"UFICentralUpdates\"), o = b(\"UFIComments\"), p = b(\"UFIFeedbackTargets\"), q = b(\"UFIInstanceState\"), r = b(\"UFIUserActions\");\n function s(t, u, v, w) {\n this.id = u;\n this._ufiInstanceID = w.instanceid;\n this._contextArgs = w;\n this._replyCommentID = v;\n if (t) {\n this.root = t;\n if (!this._contextArgs.rootid) {\n this._contextArgs.rootid = t.id;\n };\n this.render();\n n.subscribe(\"instance-updated\", function(x, y) {\n var z = y.updates;\n if ((this._ufiInstanceID in z)) {\n this.render();\n };\n }.bind(this));\n }\n ;\n n.subscribe(\"feedback-id-changed\", function(x, y) {\n var z = y.updates;\n if ((this.id in z)) {\n this.id = z[this.id];\n };\n }.bind(this));\n };\n h(s.prototype, {\n _onCommentSubmit: function(t, event) {\n r.addComment(this.id, t.visibleValue, t.encodedValue, {\n source: this._contextArgs.source,\n ufiinstanceid: this._ufiInstanceID,\n target: event.target,\n replyid: this._replyCommentID,\n timelinelogdata: this._contextArgs.timelinelogdata,\n rootid: this._contextArgs.rootid,\n attachedphoto: this._contextArgs.attachedphoto,\n giftoccasion: this._contextArgs.giftoccasion\n });\n this._contextArgs.attachedphoto = null;\n p.getFeedbackTarget(this.id, function(u) {\n var v = j.byTag(this.root, \"form\");\n if (v) {\n g.inform(\"ufi/comment\", {\n form: v,\n isranked: u.isranked\n });\n };\n }.bind(this));\n return false;\n },\n _onTypingStateChange: function(t, u) {\n \n },\n renderAddComment: function(t, u, v, w, x, y, z) {\n var aa = (this._contextArgs.logtyping ? this._onTypingStateChange.bind(this) : null), ba = null, ca = (q.getKeyForInstance(this._ufiInstanceID, \"isediting\") && !this._replyCommentID);\n return (k({\n hide: ca,\n replyCommentID: this._replyCommentID,\n viewerActor: t,\n initialData: ba,\n ref: w,\n withoutSeparator: x,\n onCommentSubmit: this._onCommentSubmit.bind(this),\n mentionsDataSource: u,\n onTypingStateChange: aa,\n showSendOnEnterTip: v,\n allowPhotoAttachments: y,\n source: this._contextArgs.source,\n contextArgs: this._contextArgs,\n subtitle: z\n }));\n },\n renderEditComment: function(t, u, v, w, x, y) {\n var z = o.getComment(u), aa = i.generateDataFromTextWithEntities(z.body);\n return (k({\n viewerActor: t,\n initialData: aa,\n onCommentSubmit: w,\n onCancel: x,\n mentionsDataSource: v,\n source: this._contextArgs.source,\n contextArgs: this._contextArgs,\n isEditing: true,\n editingCommentID: u,\n attachedPhoto: z.photo_comment,\n allowPhotoAttachments: y\n }));\n },\n render: function() {\n if (!this.root) {\n throw new Error(\"render called on UFIAddCommentController with no root\")\n };\n p.getFeedbackTarget(this.id, function(t) {\n if ((t.cancomment && t.actorforpost)) {\n m.get(t.actorforpost, function(u) {\n var v = this.renderAddComment(u, t.mentionsdatasource, t.showsendonentertip, null, null, t.allowphotoattachments, t.subtitle);\n this._addComment = l.renderComponent(v, this.root);\n }.bind(this));\n };\n }.bind(this));\n }\n });\n e.exports = s;\n});\n__d(\"Scrollable\", [\"Event\",\"Parent\",\"UserAgent\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"Parent\"), i = b(\"UserAgent\"), j = function(event) {\n var m = h.byClass(event.getTarget(), \"scrollable\");\n if (!m) {\n return\n };\n if ((((((typeof event.axis !== \"undefined\") && (event.axis === event.HORIZONTAL_AXIS))) || ((event.wheelDeltaX && !event.wheelDeltaY))) || ((event.deltaX && !event.deltaY)))) {\n return\n };\n var n = ((event.wheelDelta || -event.deltaY) || -event.detail), o = m.scrollHeight, p = m.clientHeight;\n if ((o > p)) {\n var q = m.scrollTop;\n if (((((n > 0) && (q === 0))) || (((n < 0) && (q >= (o - p)))))) {\n event.prevent();\n }\n else if ((i.ie() < 9)) {\n if (m.currentStyle) {\n var r = m.currentStyle.fontSize;\n if ((r.indexOf(\"px\") < 0)) {\n var s = document.createElement(\"div\");\n s.style.fontSize = r;\n s.style.height = \"1em\";\n r = s.style.pixelHeight;\n }\n else r = parseInt(r, 10);\n ;\n m.scrollTop = (q - Math.round(((n / 120) * r)));\n event.prevent();\n }\n \n }\n ;\n }\n ;\n }, k = document.documentElement;\n if (i.firefox()) {\n var l = (((\"WheelEvent\" in window)) ? \"wheel\" : \"DOMMouseScroll\");\n k.addEventListener(l, j, false);\n }\n else g.listen(k, \"mousewheel\", j);\n;\n});\n__d(\"LegacyScrollableArea.react\", [\"Scrollable\",\"Bootloader\",\"React\",\"Style\",\"cx\",], function(a, b, c, d, e, f) {\n b(\"Scrollable\");\n var g = b(\"Bootloader\"), h = b(\"React\"), i = b(\"Style\"), j = b(\"cx\"), k = \"uiScrollableArea native\", l = \"uiScrollableAreaWrap scrollable\", m = \"uiScrollableAreaBody\", n = \"uiScrollableAreaContent\", o = h.createClass({\n displayName: \"ReactLegacyScrollableArea\",\n render: function() {\n var p = {\n height: (this.props.height ? (this.props.height + \"px\") : \"auto\")\n };\n return (h.DOM.div({\n className: k,\n ref: \"root\",\n style: p\n }, h.DOM.div({\n className: l\n }, h.DOM.div({\n className: m,\n ref: \"body\"\n }, h.DOM.div({\n className: n\n }, this.props.children)))));\n },\n getArea: function() {\n return this._area;\n },\n componentDidMount: function() {\n g.loadModules([\"ScrollableArea\",], this._loadScrollableArea);\n },\n _loadScrollableArea: function(p) {\n this._area = p.fromNative(this.refs.root.getDOMNode(), {\n fade: this.props.fade,\n persistent: this.props.persistent\n });\n var q = this.refs.body.getDOMNode();\n i.set(q, \"width\", (this.props.width + \"px\"));\n (this.props.onScroll && this._area.subscribe(\"scroll\", this.props.onScroll));\n }\n });\n e.exports = o;\n});\n__d(\"UFIAddCommentLink.react\", [\"React\",\"UFIClassNames\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"UFIClassNames\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = b(\"tx\"), l = g.createClass({\n displayName: \"UFIAddCommentLink\",\n render: function() {\n var m = j(h.ROW, ((((((\"UFIAddCommentLink\") + ((this.props.isFirstCommentComponent ? (\" \" + \"UFIFirstCommentComponent\") : \"\"))) + ((this.props.isLastCommentComponent ? (\" \" + \"UFILastCommentComponent\") : \"\"))) + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))))), n = \"Write a comment...\";\n return (g.DOM.li({\n className: m,\n \"data-ft\": this.props[\"data-ft\"]\n }, g.DOM.a({\n className: \"UFICommentLink\",\n onClick: this.props.onClick,\n href: \"#\",\n role: \"button\"\n }, n)));\n }\n });\n e.exports = l;\n});\n__d(\"HovercardLink\", [\"Bootloader\",\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"URI\"), i = {\n getBaseURI: function() {\n return h(\"/ajax/hovercard/hovercard.php\");\n },\n constructEndpoint: function(j, k) {\n return i.constructEndpointWithGroupAndLocation(j, k, null);\n },\n constructEndpointWithLocation: function(j, k) {\n return i.constructEndpointWithGroupAndLocation(j, null, k);\n },\n constructEndpointWithGroupAndLocation: function(j, k, l) {\n g.loadModules([\"Hovercard\",], function() {\n \n });\n var m = new h(i.getBaseURI()).setQueryData({\n id: j.id\n }), n = {\n };\n if ((j.weakreference && k)) {\n n.group_id = k;\n };\n if (l) {\n n.hc_location = l;\n };\n m.addQueryData({\n extragetparams: JSON.stringify(n)\n });\n return m;\n }\n };\n e.exports = i;\n});\n__d(\"UntrustedLink\", [\"DOM\",\"Event\",\"URI\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"Event\"), i = b(\"URI\"), j = b(\"UserAgent\"), k = b(\"copyProperties\");\n function l(m, n, o, p) {\n this.dom = m;\n this.url = m.href;\n this.hash = n;\n this.func_get_params = (p || function() {\n return {\n };\n });\n h.listen(this.dom, \"click\", this.onclick.bind(this));\n h.listen(this.dom, \"mousedown\", this.onmousedown.bind(this));\n h.listen(this.dom, \"mouseup\", this.onmouseup.bind(this));\n h.listen(this.dom, \"mouseout\", this.onmouseout.bind(this));\n this.onmousedown(h.$E(o));\n };\n l.bootstrap = function(m, n, o, p) {\n if (m.__untrusted) {\n return\n };\n m.__untrusted = true;\n new l(m, n, o, p);\n };\n l.prototype.getRewrittenURI = function() {\n var m = k({\n u: this.url,\n h: this.hash\n }, this.func_get_params(this.dom)), n = new i(\"/l.php\");\n return n.setQueryData(m).setSubdomain(\"www\").setProtocol(\"http\");\n };\n l.prototype.onclick = function() {\n (function() {\n this.setHref(this.url);\n }).bind(this).defer(100);\n this.setHref(this.getRewrittenURI());\n };\n l.prototype.onmousedown = function(m) {\n if ((m.button == 2)) {\n this.setHref(this.getRewrittenURI());\n };\n };\n l.prototype.onmouseup = function() {\n this.setHref(this.getRewrittenURI());\n };\n l.prototype.onmouseout = function() {\n this.setHref(this.url);\n };\n l.prototype.setHref = function(m) {\n if ((j.ie() < 9)) {\n var n = g.create(\"span\");\n g.appendContent(this.dom, n);\n this.dom.href = m;\n g.remove(n);\n }\n else this.dom.href = m;\n ;\n };\n e.exports = l;\n});\n__d(\"Link.react\", [\"React\",\"UntrustedLink\",\"mergeInto\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"UntrustedLink\"), i = b(\"mergeInto\"), j = g.createClass({\n displayName: \"Link\",\n _installLinkshimOnMouseDown: function(event) {\n var k = this.props.href;\n if (k.shimhash) {\n h.bootstrap(this.getDOMNode(), k.shimhash);\n };\n (this.props.onMouseDown && this.props.onMouseDown(event));\n },\n render: function() {\n var k = this.props.href, l = g.DOM.a(null);\n i(l.props, this.props);\n if (k) {\n l.props.href = k.url;\n var m = !!k.shimhash;\n if (m) {\n l.props.rel = (l.props.rel ? ((l.props.rel + \" nofollow\")) : \"nofollow\");\n l.props.onMouseDown = this._installLinkshimOnMouseDown;\n }\n ;\n }\n else l.props.href = \"#\";\n ;\n return l;\n }\n });\n e.exports = j;\n});\n__d(\"PubContentTypes\", [], function(a, b, c, d, e, f) {\n var g = {\n HASHTAG: \"hashtag\",\n TOPIC: \"topic\",\n URL: \"url\"\n };\n e.exports = g;\n});\n__d(\"HovercardLinkInterpolator\", [\"Bootloader\",\"CSS\",\"Event\",\"HovercardLink\",\"Link.react\",\"Parent\",\"PubContentTypes\",\"React\",\"URI\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"CSS\"), i = b(\"Event\"), j = b(\"HovercardLink\"), k = b(\"Link.react\"), l = b(\"Parent\"), m = b(\"PubContentTypes\"), n = b(\"React\"), o = b(\"URI\"), p = b(\"cx\");\n function q(r, s, t, u, v) {\n var w = s.entities[0], x = (t || ((w.external ? \"_blank\" : null))), y, z = ((((!w.external ? \"profileLink\" : \"\")) + ((w.weakreference ? (\" \" + \"weakReference\") : \"\"))));\n if (w.hashtag) {\n var aa = h.hasClass(document.body, \"_6nw\"), ba = function(ea) {\n if (i.$E(ea.nativeEvent).isDefaultRequested()) {\n return\n };\n ea.preventDefault();\n var fa = l.byTag(ea.target, \"A\");\n if (aa) {\n g.loadModules([\"EntstreamPubContentOverlay\",], function(ga) {\n ga.pubClick(fa);\n });\n }\n else g.loadModules([\"HashtagLayerPageController\",], function(ga) {\n ga.click(fa);\n });\n ;\n }, ca = null;\n if (aa) {\n ca = {\n type: m.HASHTAG,\n id: w.id,\n source: \"comment\"\n };\n }\n else ca = {\n id: w.id\n };\n ;\n var da = new o(w.url).setSubdomain(\"www\");\n y = n.DOM.a({\n className: \"_58cn\",\n \"data-pub\": JSON.stringify(ca),\n href: da.toString(),\n onClick: ba\n }, n.DOM.span({\n className: \"_58cl\"\n }, r.substring(0, 1)), n.DOM.span({\n className: \"_58cm\"\n }, r.substring(1)));\n }\n else if (w.weakreference) {\n y = k({\n className: z,\n href: w,\n target: x\n }, n.DOM.i({\n className: \"UFIWeakReferenceIcon\"\n }), r);\n }\n else y = k({\n className: z,\n href: w,\n target: x\n }, r);\n \n ;\n if ((!w.external && !w.hashtag)) {\n y.props[\"data-hovercard\"] = j.constructEndpointWithGroupAndLocation(w, u, v).toString();\n };\n return y;\n };\n e.exports = q;\n});\n__d(\"LinkButton\", [\"cx\",\"React\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\"), h = b(\"React\"), i = function(j) {\n var k = ((j.name && j.value) ? (((j.name + \"[\") + encodeURIComponent(j.value)) + \"]\") : null);\n return (h.DOM.label({\n className: ((((\"uiLinkButton\") + ((j.subtle ? (\" \" + \"uiLinkButtonSubtle\") : \"\"))) + ((j.showSaving ? (\" \" + \"async_throbber\") : \"\"))))\n }, h.DOM.input({\n type: (j.inputType || \"button\"),\n name: k,\n value: j.label,\n className: ((j.showSaving ? \"stat_elem\" : \"\"))\n })));\n };\n e.exports = i;\n});\n__d(\"Timestamp.react\", [\"LiveTimer\",\"React\",], function(a, b, c, d, e, f) {\n var g = b(\"LiveTimer\"), h = b(\"React\"), i = h.createClass({\n displayName: \"Timestamp\",\n render: function() {\n var j = g.renderRelativeTimeToServer(this.props.time);\n return this.transferPropsTo(h.DOM.abbr({\n className: \"livetimestamp\",\n title: this.props.verbose,\n \"data-utime\": this.props.time\n }, (j.text || this.props.text)));\n }\n });\n e.exports = i;\n});\n__d(\"EmoteTypes\", [], function(a, b, c, d, e, f) {\n f.TEXT = \"text\";\n f.EMOTE = \"emote\";\n f.EMOTE_FBID = \"emote_fbid\";\n});\n__d(\"EmoticonsList\", [], function(a, b, c, d, e, f) {\n e.exports = {\n emotes: {\n \":)\": \"smile\",\n \":-)\": \"smile\",\n \":]\": \"smile\",\n \"=)\": \"smile\",\n \":(\": \"frown\",\n \":-(\": \"frown\",\n \":[\": \"frown\",\n \"=(\": \"frown\",\n \":P\": \"tongue\",\n \":-P\": \"tongue\",\n \":-p\": \"tongue\",\n \":p\": \"tongue\",\n \"=P\": \"tongue\",\n \"=D\": \"grin\",\n \":-D\": \"grin\",\n \":D\": \"grin\",\n \":o\": \"gasp\",\n \":-O\": \"gasp\",\n \":O\": \"gasp\",\n \":-o\": \"gasp\",\n \";)\": \"wink\",\n \";-)\": \"wink\",\n \"8)\": \"glasses\",\n \"8-)\": \"glasses\",\n \"B)\": \"glasses\",\n \"B-)\": \"glasses\",\n \"B|\": \"sunglasses\",\n \"8-|\": \"sunglasses\",\n \"8|\": \"sunglasses\",\n \"B-|\": \"sunglasses\",\n \"\\u003E:(\": \"grumpy\",\n \"\\u003E:-(\": \"grumpy\",\n \":/\": \"unsure\",\n \":-/\": \"unsure\",\n \":\\\\\": \"unsure\",\n \":-\\\\\": \"unsure\",\n \"=/\": \"unsure\",\n \"=\\\\\": \"unsure\",\n \":'(\": \"cry\",\n \"3:)\": \"devil\",\n \"3:-)\": \"devil\",\n \"O:)\": \"angel\",\n \"O:-)\": \"angel\",\n \":*\": \"kiss\",\n \":-*\": \"kiss\",\n \"\\u003C3\": \"heart\",\n \"&lt;3\": \"heart\",\n \"\\u2665\": \"heart\",\n \"^_^\": \"kiki\",\n \"-_-\": \"squint\",\n \"o.O\": \"confused\",\n \"O.o\": \"confused_rev\",\n \"\\u003E:o\": \"upset\",\n \"\\u003E:O\": \"upset\",\n \"\\u003E:-O\": \"upset\",\n \"\\u003E:-o\": \"upset\",\n \"\\u003E_\\u003C\": \"upset\",\n \"\\u003E.\\u003C\": \"upset\",\n \":v\": \"pacman\",\n \":|]\": \"robot\",\n \":3\": \"colonthree\",\n \"\\u003C(\\\")\": \"penguin\",\n \":putnam:\": \"putnam\",\n \"(^^^)\": \"shark\",\n \"(y)\": \"like\",\n \":like:\": \"like\",\n \"(Y)\": \"like\",\n \":poop:\": \"poop\"\n },\n symbols: {\n smile: \":)\",\n frown: \":(\",\n tongue: \":P\",\n grin: \"=D\",\n gasp: \":o\",\n wink: \";)\",\n glasses: \"8)\",\n sunglasses: \"B|\",\n grumpy: \"\\u003E:(\",\n unsure: \":/\",\n cry: \":'(\",\n devil: \"3:)\",\n angel: \"O:)\",\n kiss: \":*\",\n heart: \"\\u003C3\",\n kiki: \"^_^\",\n squint: \"-_-\",\n confused: \"o.O\",\n confused_rev: \"O.o\",\n upset: \"\\u003E:o\",\n pacman: \":v\",\n robot: \":|]\",\n colonthree: \":3\",\n penguin: \"\\u003C(\\\")\",\n putnam: \":putnam:\",\n shark: \"(^^^)\",\n like: \"(y)\",\n poop: \":poop:\"\n },\n regexp: /(^|[\\s'\".])(:\\)|:\\-\\)|:\\]|=\\)|:\\(|:\\-\\(|:\\[|=\\(|:P|:\\-P|:\\-p|:p|=P|=D|:\\-D|:D|:o|:\\-O|:O|:\\-o|;\\)|;\\-\\)|8\\)|8\\-\\)|B\\)|B\\-\\)|B\\||8\\-\\||8\\||B\\-\\||>:\\(|>:\\-\\(|:\\/|:\\-\\/|:\\\\|:\\-\\\\|=\\/|=\\\\|:'\\(|3:\\)|3:\\-\\)|O:\\)|O:\\-\\)|:\\*|:\\-\\*|<3|&lt;3|\\u2665|\\^_\\^|\\-_\\-|o\\.O|O\\.o|>:o|>:O|>:\\-O|>:\\-o|>_<|>\\.<|:v|:\\|\\]|:3|<\\(\"\\)|:putnam:|\\(\\^\\^\\^\\)|\\(y\\)|:like:|\\(Y\\)|:poop:)([\\s'\".,!?]|<br>|$)/\n };\n});\n__d(\"createEmoteTokenizer\", [\"EmoteTypes\",], function(a, b, c, d, e, f) {\n var g = b(\"EmoteTypes\"), h = 40;\n function i(j) {\n return function(k) {\n var l = k, m = [], n = h;\n while (n--) {\n var o = j.regexp.exec(l);\n if ((!o || !o.length)) {\n break;\n };\n var p = o[2], q = (o.index + o[1].length), r = l.substring(0, q);\n if (r) {\n m.push({\n type: g.TEXT,\n text: r\n });\n };\n var s = j.emotes[p];\n if (s) {\n m.push({\n type: g.EMOTE,\n text: p,\n emote: s\n });\n }\n else m.push({\n type: g.TEXT,\n text: p\n });\n ;\n l = l.substring((q + p.length));\n };\n if (l) {\n m.push({\n type: g.TEXT,\n text: l\n });\n };\n return m;\n };\n };\n e.exports = i;\n});\n__d(\"emoteFBIDTokenizer\", [\"EmoteTypes\",], function(a, b, c, d, e, f) {\n var g = b(\"EmoteTypes\"), h = /\\[\\[([a-z\\d\\.]+)\\]\\]/gi;\n function i(j) {\n return j.split(h).map(function(k, l) {\n if (((l % 2) === 0)) {\n return {\n type: g.TEXT,\n text: k\n };\n }\n else return {\n type: g.EMOTE_FBID,\n text: ((\"[[\" + k) + \"]]\"),\n value: k\n }\n ;\n });\n };\n e.exports = i;\n});\n__d(\"Emote\", [\"DOM\",\"EmoteTypes\",\"EmoticonsList\",\"createEmoteTokenizer\",\"emoteFBIDTokenizer\",\"flattenArray\",\"htmlize\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"EmoteTypes\"), i = b(\"EmoticonsList\"), j = b(\"createEmoteTokenizer\"), k = b(\"emoteFBIDTokenizer\"), l = b(\"flattenArray\"), m = b(\"htmlize\"), n = j(i), o = e.exports = {\n };\n o.htmlEmoteWithoutFBID = function(p, q) {\n if ((typeof q != \"function\")) {\n q = m;\n };\n return l(n(p).map(function(r) {\n if ((r.type === h.TEXT)) {\n return q(r.text);\n }\n else if ((r.type === h.EMOTE)) {\n return [\"\\u003Cspan class=\\\"emoticon_text\\\" aria-hidden=\\\"true\\\"\\u003E\",r.text,\"\\u003C/span\\u003E\",g.create(\"span\", {\n }, g.create(\"span\", {\n title: r.text,\n className: (\"emoticon emoticon_\" + r.emote)\n })).innerHTML,]\n }\n ;\n })).join(\"\");\n };\n o.htmlEmote = function(p, q) {\n if ((typeof q != \"function\")) {\n q = m;\n };\n return l(k(p).map(function(r) {\n if ((r.type === h.TEXT)) {\n return o.htmlEmoteWithoutFBID(r.text, q);\n }\n else if ((r.type === h.EMOTE_FBID)) {\n return [\"\\u003Cspan class=\\\"emoticon_text\\\" aria-hidden=\\\"true\\\"\\u003E\",r.text,\"\\u003C/span\\u003E\",g.create(\"span\", {\n }, g.create(\"img\", {\n alt: r.text,\n className: \"emoticon emoticon_custom\",\n src: (((window.location.protocol + \"//graph.facebook.com/\") + encodeURIComponent(r.value)) + \"/picture\")\n })).innerHTML,]\n }\n ;\n })).join(\"\");\n };\n});\n__d(\"SupportedEmoji\", [\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\");\n e.exports = {\n utf16Regex: /[\\u203C\\u2049\\u2100-\\u21FF\\u2300-\\u27FF\\u2900-\\u29FF\\u2B00-\\u2BFF\\u3000-\\u30FF\\u3200-\\u32FF]|\\uD83C[\\uDC00-\\uDFFF]|\\uD83D[\\uDC00-\\uDEFF]/,\n emoji: {\n 127744: \"_2b_\",\n 127746: \"_2c0\",\n 127754: \"_2c1\",\n 127769: \"_2c2\",\n 127775: \"_2c3\",\n 127793: \"_2c4\",\n 127796: \"_2c5\",\n 127797: \"_2c6\",\n 127799: \"_2c7\",\n 127800: \"_2c8\",\n 127801: \"_2c9\",\n 127802: \"_2ca\",\n 127803: \"_2cb\",\n 127806: \"_2cc\",\n 127808: \"_2cd\",\n 127809: \"_2ce\",\n 127810: \"_2cf\",\n 127811: \"_2cg\",\n 127818: \"_2ch\",\n 127822: \"_2ci\",\n 127827: \"_2cj\",\n 127828: \"_2ck\",\n 127864: \"_2cl\",\n 127866: \"_2cm\",\n 127873: \"_2cn\",\n 127875: \"_2co\",\n 127876: \"_2cp\",\n 127877: \"_2cq\",\n 127880: \"_2cr\",\n 127881: \"_2cs\",\n 127885: \"_2ct\",\n 127886: \"_2cu\",\n 127887: \"_2cv\",\n 127888: \"_2cw\",\n 127891: \"_2cx\",\n 127925: \"_2cy\",\n 127926: \"_2cz\",\n 127932: \"_2c-\",\n 128013: \"_2c_\",\n 128014: \"_2d0\",\n 128017: \"_2d1\",\n 128018: \"_2d2\",\n 128020: \"_2d3\",\n 128023: \"_2d4\",\n 128024: \"_2d5\",\n 128025: \"_2d6\",\n 128026: \"_2d7\",\n 128027: \"_2d8\",\n 128031: \"_2d9\",\n 128032: \"_2da\",\n 128033: \"_2db\",\n 128037: \"_2dc\",\n 128038: \"_2dd\",\n 128039: \"_2de\",\n 128040: \"_2df\",\n 128041: \"_2dg\",\n 128043: \"_2dh\",\n 128044: \"_2di\",\n 128045: \"_2dj\",\n 128046: \"_2dk\",\n 128047: \"_2dl\",\n 128048: \"_2dm\",\n 128049: \"_2dn\",\n 128051: \"_2do\",\n 128052: \"_2dp\",\n 128053: \"_2dq\",\n 128054: \"_491\",\n 128055: \"_2dr\",\n 128056: \"_2ds\",\n 128057: \"_2dt\",\n 128058: \"_2du\",\n 128059: \"_2dv\",\n 128062: \"_2dw\",\n 128064: \"_2dx\",\n 128066: \"_2dy\",\n 128067: \"_2dz\",\n 128068: \"_2d-\",\n 128069: \"_2d_\",\n 128070: \"_2e0\",\n 128071: \"_2e1\",\n 128072: \"_2e2\",\n 128073: \"_2e3\",\n 128074: \"_2e4\",\n 128075: \"_2e5\",\n 128076: \"_2e6\",\n 128077: \"_2e7\",\n 128078: \"_2e8\",\n 128079: \"_2e9\",\n 128080: \"_2ea\",\n 128102: \"_2eb\",\n 128103: \"_2ec\",\n 128104: \"_2ed\",\n 128105: \"_2ee\",\n 128107: \"_2ef\",\n 128110: \"_2eg\",\n 128111: \"_2eh\",\n 128113: \"_2ei\",\n 128114: \"_2ej\",\n 128115: \"_2ek\",\n 128116: \"_2el\",\n 128117: \"_2em\",\n 128118: \"_2en\",\n 128119: \"_2eo\",\n 128120: \"_2ep\",\n 128123: \"_2eq\",\n 128124: \"_2er\",\n 128125: \"_2es\",\n 128126: \"_2et\",\n 128127: \"_2eu\",\n 128128: \"_2ev\",\n 128130: \"_2ew\",\n 128131: \"_2ex\",\n 128133: \"_2ey\",\n 128139: \"_2ez\",\n 128143: \"_2e-\",\n 128144: \"_2e_\",\n 128145: \"_2f0\",\n 128147: \"_2f1\",\n 128148: \"_2f2\",\n 128150: \"_2f3\",\n 128151: \"_2f4\",\n 128152: \"_2f5\",\n 128153: \"_2f6\",\n 128154: \"_2f7\",\n 128155: \"_2f8\",\n 128156: \"_2f9\",\n 128157: \"_2fa\",\n 128162: \"_2fb\",\n 128164: \"_2fc\",\n 128166: \"_2fd\",\n 128168: \"_2fe\",\n 128169: \"_2ff\",\n 128170: \"_2fg\",\n 128187: \"_2fh\",\n 128189: \"_2fi\",\n 128190: \"_2fj\",\n 128191: \"_2fk\",\n 128192: \"_2fl\",\n 128222: \"_2fm\",\n 128224: \"_2fn\",\n 128241: \"_2fo\",\n 128242: \"_2fp\",\n 128250: \"_2fq\",\n 128276: \"_2fr\",\n 128293: \"_492\",\n 128513: \"_2fs\",\n 128514: \"_2ft\",\n 128515: \"_2fu\",\n 128516: \"_2fv\",\n 128518: \"_2fw\",\n 128521: \"_2fx\",\n 128523: \"_2fy\",\n 128524: \"_2fz\",\n 128525: \"_2f-\",\n 128527: \"_2f_\",\n 128530: \"_2g0\",\n 128531: \"_2g1\",\n 128532: \"_2g2\",\n 128534: \"_2g3\",\n 128536: \"_2g4\",\n 128538: \"_2g5\",\n 128540: \"_2g6\",\n 128541: \"_2g7\",\n 128542: \"_2g8\",\n 128544: \"_2g9\",\n 128545: \"_2ga\",\n 128546: \"_2gb\",\n 128547: \"_2gc\",\n 128548: \"_2gd\",\n 128549: \"_2ge\",\n 128552: \"_2gf\",\n 128553: \"_2gg\",\n 128554: \"_2gh\",\n 128555: \"_2gi\",\n 128557: \"_2gj\",\n 128560: \"_2gk\",\n 128561: \"_2gl\",\n 128562: \"_2gm\",\n 128563: \"_2gn\",\n 128565: \"_2go\",\n 128567: \"_2gp\",\n 128568: \"_2gq\",\n 128569: \"_2gr\",\n 128570: \"_2gs\",\n 128571: \"_2gt\",\n 128572: \"_2gu\",\n 128573: \"_2gv\",\n 128575: \"_2gw\",\n 128576: \"_2gx\",\n 128587: \"_2gy\",\n 128588: \"_2gz\",\n 128589: \"_2g-\",\n 128591: \"_2g_\",\n 9757: \"_2h0\",\n 9786: \"_2h1\",\n 9889: \"_2h2\",\n 9924: \"_2h3\",\n 9994: \"_2h4\",\n 9995: \"_2h5\",\n 9996: \"_2h6\",\n 9728: \"_2h7\",\n 9729: \"_2h8\",\n 9748: \"_2h9\",\n 9749: \"_2ha\",\n 10024: \"_2hb\",\n 10084: \"_2hc\"\n }\n };\n});\n__d(\"Utf16\", [], function(a, b, c, d, e, f) {\n var g = {\n decode: function(h) {\n switch (h.length) {\n case 1:\n return h.charCodeAt(0);\n case 2:\n return ((65536 | ((((h.charCodeAt(0) - 55296)) * 1024))) | ((h.charCodeAt(1) - 56320)));\n };\n },\n encode: function(h) {\n if ((h < 65536)) {\n return String.fromCharCode(h);\n }\n else return (String.fromCharCode((55296 + ((((h - 65536)) >> 10)))) + String.fromCharCode((56320 + ((h % 1024)))))\n ;\n }\n };\n e.exports = g;\n});\n__d(\"Emoji\", [\"cx\",\"DOM\",\"Emote\",\"SupportedEmoji\",\"htmlize\",\"Utf16\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\"), h = b(\"DOM\"), i = b(\"Emote\"), j = b(\"SupportedEmoji\"), k = b(\"htmlize\"), l = b(\"Utf16\"), m = 40, n = e.exports = {\n htmlEmojiAndEmote: function(o, p) {\n return n.htmlEmoji(o, function(q) {\n return i.htmlEmote(q, p);\n });\n },\n htmlEmoji: function(o, p) {\n if ((typeof p != \"function\")) {\n p = k;\n };\n var q = o, r = [], s = m;\n while (s--) {\n var t = j.utf16Regex.exec(q);\n if ((!t || !t.length)) {\n break;\n };\n var u = t[0], v = t.index;\n r.push(p(q.substring(0, v)));\n var w = l.decode(u);\n if (j.emoji[w]) {\n var x = ((\"_1az _1a-\" + \" \") + j.emoji[w]), y = h.create(\"span\", {\n className: x\n });\n r.push(h.create(\"span\", {\n }, y).innerHTML);\n }\n else r.push(p(u));\n ;\n q = q.substring((v + u.length));\n };\n r.push(p(q));\n return r.join(\"\");\n }\n };\n});\n__d(\"TextWithEmoticons.react\", [\"Emoji\",\"Emote\",\"React\",], function(a, b, c, d, e, f) {\n var g = b(\"Emoji\"), h = b(\"Emote\"), i = b(\"React\"), j = i.createClass({\n displayName: \"ReactTextWithEmoticons\",\n render: function() {\n if ((!this.props.renderEmoticons && !this.props.renderEmoji)) {\n return i.DOM.span(null, this.props.text)\n };\n var k;\n if ((this.props.renderEmoticons && this.props.renderEmoji)) {\n k = g.htmlEmoji(this.props.text, h.htmlEmoteWithoutFBID);\n }\n else if (this.props.renderEmoticons) {\n k = h.htmlEmoteWithoutFBID(this.props.text);\n }\n else k = g.htmlEmoji(this.props.text);\n \n ;\n return i.DOM.span({\n dangerouslySetInnerHTML: {\n __html: k\n }\n });\n }\n });\n e.exports = j;\n});\n__d(\"TextWithEntities.react\", [\"Link.react\",\"React\",\"TextWithEmoticons.react\",], function(a, b, c, d, e, f) {\n var g = b(\"Link.react\"), h = b(\"React\"), i = b(\"TextWithEmoticons.react\");\n function j(o) {\n return (o).replace(/<3\\b|&hearts;/g, \"\\u2665\");\n };\n function k(o, p) {\n return (g({\n href: p.entities[0]\n }, o));\n };\n function l(o, p) {\n return (o.offset - p.offset);\n };\n var m = /(\\r\\n|[\\r\\n])/, n = h.createClass({\n displayName: \"ReactTextWithEntities\",\n _formatStandardText: function(o) {\n var p = o.split(m), q = [];\n for (var r = 0; (r < p.length); r++) {\n var s = p[r];\n if (s) {\n if (m.test(s)) {\n q.push(h.DOM.br(null));\n }\n else if ((this.props.renderEmoticons || this.props.renderEmoji)) {\n q.push(i({\n text: s,\n renderEmoticons: this.props.renderEmoticons,\n renderEmoji: this.props.renderEmoji\n }));\n }\n else q.push(j(s));\n \n \n };\n };\n return q;\n },\n render: function() {\n var o = 0, p = this.props.ranges, q = this.props.aggregatedRanges, r = this.props.text, s = null;\n if (p) {\n s = (q ? p.concat(q) : p.slice());\n }\n else if (q) {\n s = q.slice();\n }\n ;\n if (s) {\n s.sort(l);\n };\n var t = [], u = (s ? s.length : 0);\n for (var v = 0, w = u; (v < w); v++) {\n var x = s[v];\n if ((x.offset < o)) {\n continue;\n };\n if ((x.offset > o)) {\n t = t.concat(this._formatStandardText(r.substring(o, x.offset)));\n };\n var y = r.substr(x.offset, x.length);\n t = t.concat([(this.props.interpolator ? this.props.interpolator(y, x) : k(y, x)),]);\n o = (x.offset + x.length);\n };\n if ((r.length > o)) {\n t = t.concat(this._formatStandardText(r.substr(o)));\n };\n return h.DOM.span(null, t);\n }\n });\n e.exports = n;\n});\n__d(\"SeeMore.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n displayName: \"SeeMore\",\n getInitialState: function() {\n return {\n isCollapsed: true\n };\n },\n handleClick: function() {\n this.setState({\n isCollapsed: false\n });\n },\n render: function() {\n var j = this.state.isCollapsed, k = (!j ? null : g.DOM.span(null, \"...\")), l = this.props.children[0], m = (j ? null : g.DOM.span(null, this.props.children[1])), n = (!j ? null : g.DOM.a({\n className: \"SeeMoreLink fss\",\n onClick: this.handleClick,\n href: \"#\",\n role: \"button\"\n }, \"See More\"));\n return (g.DOM.span({\n className: this.props.className\n }, l, k, n, m));\n }\n });\n e.exports = i;\n});\n__d(\"TruncatedTextWithEntities.react\", [\"React\",\"TextWithEntities.react\",\"SeeMore.react\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"TextWithEntities.react\"), i = b(\"SeeMore.react\");\n function j(n, o) {\n var p = (n.offset + n.length);\n return ((o > n.offset) && (o < p));\n };\n function k(n, o) {\n for (var p = 0; (p < n.length); p++) {\n var q = n[p];\n if (j(q, o)) {\n return q.offset\n };\n };\n return o;\n };\n var l = function(n, o, p) {\n var q = [], r = [], s = k(o, p);\n for (var t = 0; (t < o.length); t++) {\n var u = o[t];\n if ((u.offset < s)) {\n q.push(u);\n }\n else r.push({\n offset: (u.offset - s),\n length: u.length,\n entities: u.entities\n });\n ;\n };\n return {\n first: {\n ranges: q,\n text: n.substr(0, s)\n },\n second: {\n ranges: r,\n text: n.substr(s)\n }\n };\n }, m = g.createClass({\n displayName: \"TruncatedTextWithEntities\",\n render: function() {\n var n = this.props.maxLines, o = this.props.maxLength, p = (this.props.truncationPercent || 175898), q = Math.floor((p * o)), r = (this.props.text || \"\"), s = (this.props.ranges || []), t = r.split(\"\\u000a\"), u = (t.length - 1), v = (o && (r.length > o)), w = (n && (u > n));\n if (w) {\n q = Math.min(t.slice(0, n).join(\"\\u000a\").length, q);\n };\n if ((v || w)) {\n var x = l(r, s, q);\n return (g.DOM.span({\n \"data-ft\": this.props[\"data-ft\"],\n dir: this.props.dir\n }, i({\n className: this.props.className\n }, h({\n interpolator: this.props.interpolator,\n ranges: x.first.ranges,\n text: x.first.text,\n renderEmoticons: this.props.renderEmoticons,\n renderEmoji: this.props.renderEmoji\n }), h({\n interpolator: this.props.interpolator,\n ranges: x.second.ranges,\n text: x.second.text,\n renderEmoticons: this.props.renderEmoticons,\n renderEmoji: this.props.renderEmoji\n }))));\n }\n else return (g.DOM.span({\n \"data-ft\": this.props[\"data-ft\"],\n dir: this.props.dir\n }, h({\n className: this.props.className,\n interpolator: this.props.interpolator,\n ranges: s,\n text: r,\n renderEmoticons: this.props.renderEmoticons,\n renderEmoji: this.props.renderEmoji\n })))\n ;\n }\n });\n e.exports = m;\n});\n__d(\"UFICommentAttachment.react\", [\"DOM\",\"React\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"React\"), i = h.createClass({\n displayName: \"UFICommentAttachment\",\n _attachmentFromCommentData: function(j) {\n return (j.photo_comment || j.attachment);\n },\n componentDidMount: function(j) {\n var k = this._attachmentFromCommentData(this.props.comment);\n if (k) {\n this.renderAttachment(k);\n };\n },\n shouldComponentUpdate: function(j, k) {\n var l = this._attachmentFromCommentData(this.props.comment), m = this._attachmentFromCommentData(j.comment);\n if ((!l && !m)) {\n return false\n };\n if (((!l || !m) || (l.markup != m.markup))) {\n return true;\n }\n else return false\n ;\n },\n componentDidUpdate: function(j) {\n var k = this._attachmentFromCommentData(this.props.comment);\n this.renderAttachment(k);\n },\n renderAttachment: function(j) {\n if ((j && this.refs.contents)) {\n g.setContent(this.refs.contents.getDOMNode(), j.markup);\n };\n },\n render: function() {\n if (this._attachmentFromCommentData(this.props.comment)) {\n return h.DOM.div({\n ref: \"contents\"\n });\n }\n else return h.DOM.span(null)\n ;\n }\n });\n e.exports = i;\n});\n__d(\"UFIReplyLink.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n displayName: \"UFIReplyLink\",\n render: function() {\n return (g.DOM.a({\n className: \"UFIReplyLink\",\n href: \"#\",\n onClick: this.props.onClick\n }, \"Reply\"));\n }\n });\n e.exports = i;\n});\n__d(\"UFISpamCount\", [\"UFISpamCountImpl\",], function(a, b, c, d, e, f) {\n e.exports = (b(\"UFISpamCountImpl\").module || {\n enabled: false\n });\n});\n__d(\"UFIComment.react\", [\"function-extensions\",\"Bootloader\",\"CloseButton.react\",\"Env\",\"Focus\",\"HovercardLink\",\"HovercardLinkInterpolator\",\"LinkButton\",\"NumberFormat\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"Timestamp.react\",\"TrackingNodes\",\"TruncatedTextWithEntities.react\",\"UFIClassNames\",\"UFICommentAttachment.react\",\"UFIConfig\",\"UFIConstants\",\"UFIImageBlock.react\",\"UFIInstanceState\",\"UFIReplyLink.react\",\"UFISpamCount\",\"URI\",\"cx\",\"keyMirror\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"Bootloader\"), h = b(\"CloseButton.react\"), i = b(\"Env\"), j = b(\"Focus\"), k = b(\"HovercardLink\"), l = b(\"HovercardLinkInterpolator\"), m = b(\"LinkButton\"), n = b(\"NumberFormat\"), o = b(\"ProfileBrowserLink\"), p = b(\"ProfileBrowserTypes\"), q = b(\"React\"), r = b(\"Timestamp.react\"), s = b(\"TrackingNodes\"), t = b(\"TruncatedTextWithEntities.react\"), u = b(\"UFIClassNames\"), v = b(\"UFICommentAttachment.react\"), w = b(\"UFIConfig\"), x = b(\"UFIConstants\"), y = b(\"UFIImageBlock.react\"), z = b(\"UFIInstanceState\"), aa = b(\"UFIReplyLink.react\"), ba = b(\"UFISpamCount\"), ca = b(\"URI\"), da = b(\"cx\"), ea = b(\"keyMirror\"), fa = b(\"joinClasses\"), ga = b(\"tx\"), ha = x.UFIStatus, ia = \" \\u00b7 \", ja = ea({\n edit: true,\n hide: true,\n remove: true\n }), ka = \"UFICommentBody\", la = \"UFICommentActorName\", ma = \"UFICommentNotSpamLink\", na = \"fsm fwn fcg UFICommentActions\", oa = \"UFIDeletedMessageIcon\", pa = \"UFIDeletedMessage\", qa = \"UFIFailureMessageIcon\", ra = \"UFIFailureMessage\", sa = \"UFICommentLikeButton\", ta = \"UFICommentLikeIcon\", ua = \"UFITranslateLink\", va = \"UFITranslatedText\", wa = \"uiLinkSubtle\", xa = \"stat_elem\", ya = \"pls\", za = \"fcg\", ab = 27, bb = null, cb = function(kb, lb) {\n var mb = new ca(\"/ajax/like/tooltip.php\").setQueryData({\n comment_fbid: kb.fbid,\n comment_from: kb.author,\n cache_buster: (kb.likeconfirmhash || 0)\n });\n if (lb) {\n mb.addQueryData({\n viewas: lb\n });\n };\n return mb;\n }, db = function(kb) {\n var lb = kb.status;\n return ((lb === ha.FAILED_ADD) || (lb === ha.FAILED_EDIT));\n };\n function eb(kb) {\n return (((kb.commenterIsFOF !== undefined) && (kb.userIsMinor !== undefined)) && (kb.reportLink !== undefined));\n };\n var fb = q.createClass({\n displayName: \"UFICommentLikeCount\",\n render: function() {\n var kb = this.props.comment, lb = n.formatIntegerWithDelimiter((kb.likecount || 0), this.props.contextArgs.numberdelimiter), mb = p.LIKES, nb = {\n id: kb.fbid\n }, ob = cb(this.props.comment, this.props.viewas), pb = q.DOM.i({\n className: ta\n }), qb = q.DOM.span(null, lb);\n return (q.DOM.a({\n className: sa,\n role: \"button\",\n rel: \"dialog\",\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"data-tooltip-uri\": ob.toString(),\n ajaxify: o.constructDialogURI(mb, nb).toString(),\n href: o.constructPageURI(mb, nb).toString()\n }, pb, qb));\n }\n }), gb = q.createClass({\n displayName: \"UFICommentActions\",\n render: function() {\n var kb = this.props, lb = kb.comment, mb = kb.feedback, nb = kb.markedAsSpamHere, ob = (lb.status === ha.SPAM_DISPLAY), pb = this.props.showReplyLink, qb = this.props.hideAsSpamForPageAdmin, rb, sb, tb, ub, vb, wb, xb = (!lb.islocal && (lb.status !== ha.LIVE_DELETED));\n if (xb) {\n if ((ob && !nb)) {\n if (kb.viewerCanMarkNotSpam) {\n rb = q.DOM.a({\n onClick: kb.onMarkAsNotSpam,\n className: ma,\n href: \"#\",\n role: \"button\"\n }, \"Unhide\");\n };\n if ((((qb && mb.isthreaded) && mb.cancomment) && pb)) {\n vb = aa({\n comment: lb,\n onClick: kb.onCommentReply,\n contextArgs: kb.contextArgs\n });\n };\n }\n else {\n if (mb.viewercanlike) {\n var yb = s.getTrackingInfo((lb.hasviewerliked ? s.types.UNLIKE_LINK : s.types.LIKE_LINK)), zb = (lb.hasviewerliked ? \"Unlike this comment\" : \"Like this comment\");\n sb = q.DOM.a({\n className: \"UFILikeLink\",\n href: \"#\",\n role: \"button\",\n onClick: kb.onCommentLikeToggle,\n \"data-ft\": yb,\n title: zb\n }, (lb.hasviewerliked ? \"Unlike\" : \"Like\"));\n }\n ;\n if (((mb.isthreaded && mb.cancomment) && pb)) {\n vb = aa({\n comment: lb,\n onClick: kb.onCommentReply,\n contextArgs: kb.contextArgs\n });\n };\n if ((lb.likecount > 0)) {\n tb = fb({\n comment: lb,\n viewas: this.props.viewas,\n contextArgs: this.props.contextArgs\n });\n };\n if ((lb.spamcount && ba.enabled)) {\n ub = ba({\n count: lb.spamcount\n });\n };\n }\n ;\n if ((lb.attachment && lb.canremove)) {\n wb = q.DOM.a({\n onClick: kb.onPreviewRemove,\n href: \"#\",\n role: \"button\"\n }, \"Remove Preview\");\n };\n }\n ;\n var ac = hb({\n comment: lb,\n onRetrySubmit: kb.onRetrySubmit,\n showPermalink: kb.showPermalink\n }), bc;\n if (kb.contextArgs.entstream) {\n bc = [ac,sb,tb,vb,ub,rb,wb,];\n }\n else if (mb.isthreaded) {\n bc = [sb,vb,rb,wb,tb,ub,ac,];\n }\n else bc = [ac,sb,tb,ub,vb,rb,wb,];\n \n ;\n if ((lb.status === ha.LIVE_DELETED)) {\n var cc = q.DOM.span({\n className: pa\n }, q.DOM.i({\n className: oa,\n \"data-hover\": \"tooltip\",\n \"aria-label\": \"Comment deleted\"\n }));\n bc.push(cc);\n }\n ;\n var dc = [];\n for (var ec = 0; (ec < bc.length); ec++) {\n if (bc[ec]) {\n dc.push(ia);\n dc.push(bc[ec]);\n }\n ;\n };\n dc.shift();\n return (q.DOM.div({\n className: na\n }, dc));\n }\n }), hb = q.createClass({\n displayName: \"UFICommentMetadata\",\n render: function() {\n var kb = this.props.comment, lb = this.props.onRetrySubmit, mb, nb;\n if (db(kb)) {\n mb = [q.DOM.span({\n className: ra\n }, q.DOM.i({\n className: qa\n }), \"Unable to post comment.\"),((kb.allowRetry && lb) ? [\" \",q.DOM.a({\n onClick: lb,\n href: \"#\",\n role: \"button\"\n }, \"Try Again\"),] : null),];\n }\n else {\n var ob = (this.props.showPermalink ? kb.permalink : null), pb = s.getTrackingInfo(s.types.SOURCE), qb = q.DOM.a({\n className: wa,\n href: ob,\n \"data-ft\": pb\n }, r({\n time: kb.timestamp.time,\n text: kb.timestamp.text,\n verbose: kb.timestamp.verbose\n })), rb;\n switch (kb.source) {\n case x.UFISourceType.MOBILE:\n rb = q.DOM.a({\n className: wa,\n href: new ca(\"/mobile/\").setSubdomain(\"www\").toString()\n }, \"mobile\");\n break;\n case x.UFISourceType.SMS:\n rb = q.DOM.a({\n className: wa,\n href: new ca(\"/mobile/?v=texts\").setSubdomain(\"www\").toString()\n }, \"text message\");\n break;\n case x.UFISourceType.EMAIL:\n rb = m({\n subtle: true,\n label: \"email\",\n inputType: \"submit\",\n name: \"email_explain\",\n value: true,\n className: xa\n });\n break;\n };\n nb = (rb ? ga._(\"{time} via {source}\", {\n time: qb,\n source: rb\n }) : qb);\n }\n ;\n var sb = null;\n if (kb.originalTimestamp) {\n var tb = new ca(\"/ajax/edits/browser/comment\").addQueryData({\n comment_token: kb.id\n }).toString();\n sb = [ia,q.DOM.a({\n ref: \"EditLink\",\n href: \"#\",\n role: \"button\",\n rel: \"dialog\",\n className: \"uiLinkSubtle\",\n ajaxify: tb,\n \"data-hover\": \"tooltip\",\n \"aria-label\": \"Show edit history\",\n title: \"Show edit history\"\n }, \"Edited\"),];\n }\n ;\n return (q.DOM.span(null, nb, mb, sb));\n },\n componentWillUpdate: function(kb) {\n var lb = this.props.comment, mb = kb.comment;\n if ((!lb.editnux && !!mb.editnux)) {\n g.loadModules([\"LegacyContextualDialog\",], function(nb) {\n var ob = new nb();\n ob.init(mb.editnux).setContext(this.refs.EditLink.getDOMNode()).setWidth(300).setPosition(\"below\").show();\n }.bind(this));\n };\n }\n }), ib = q.createClass({\n displayName: \"UFISocialContext\",\n render: function() {\n var kb = this.props.topMutualFriend, lb = this.props.otherMutualCount, mb = this.props.commentAuthor, nb = k.constructEndpoint(kb).toString(), ob = q.DOM.a({\n href: kb.uri,\n \"data-hovercard\": nb\n }, kb.name), pb = (mb.name.length + kb.name.length), qb;\n if ((lb === 0)) {\n qb = ga._(\"Friends with {name}\", {\n name: ob\n });\n }\n else if ((pb < ab)) {\n var rb;\n if ((lb == 1)) {\n rb = \"1 other\";\n }\n else rb = ga._(\"{count} others\", {\n count: lb\n });\n ;\n qb = ga._(\"Friends with {name} and {others}\", {\n name: ob,\n others: this.getOthersLink(rb, mb, kb)\n });\n }\n else {\n var sb = ga._(\"{count} mutual friends\", {\n count: (lb + 1)\n });\n qb = this.getOthersLink(sb, mb);\n }\n \n ;\n return (q.DOM.span({\n className: \"UFICommentSocialContext\"\n }, ia, qb));\n },\n getOthersLink: function(kb, lb, mb) {\n var nb = p.MUTUAL_FRIENDS, ob = {\n uid: lb.id\n }, pb = new ca(\"/ajax/mutual_friends/tooltip.php\").setQueryData({\n friend_id: lb.id\n });\n if (mb) {\n pb.addQueryData({\n exclude_id: mb.id\n });\n };\n var qb = o.constructDialogURI(nb, ob).toString();\n return (q.DOM.a({\n rel: \"dialog\",\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"data-tooltip-uri\": pb.toString(),\n ajaxify: qb,\n href: o.constructPageURI(nb, ob).toString()\n }, kb));\n }\n }), jb = q.createClass({\n displayName: \"UFIComment\",\n getInitialState: function() {\n return {\n isHighlighting: this.props.comment.highlightcomment,\n wasHighlighted: this.props.comment.highlightcomment,\n markedAsSpamHere: false,\n oneClickRemovedHere: false,\n isInlinePageDeleted: false,\n isInlineBanned: false\n };\n },\n _onHideAsSpam: function(event) {\n this.props.onHideAsSpam(event);\n this.setState({\n markedAsSpamHere: true\n });\n },\n _onMarkAsNotSpam: function(event) {\n this.props.onMarkAsNotSpam(event);\n this.setState({\n markedAsSpamHere: false\n });\n },\n _onDeleteSpam: function(event) {\n this.props.onOneClickRemove(event);\n this.setState({\n isInlinePageDeleted: true\n });\n },\n _onUndoDeleteSpam: function(event) {\n this.props.onUndoOneClickRemove(event);\n this.setState({\n isInlinePageDeleted: false\n });\n },\n _onInlineBan: function(event) {\n this.props.onInlineBan(event);\n this.setState({\n isInlineBanned: true\n });\n },\n _onUndoInlineBan: function(event) {\n this.props.onUndoInlineBan(event);\n this.setState({\n isInlineBanned: false\n });\n },\n _onOneClickRemove: function(event) {\n this.props.onOneClickRemove(event);\n this.setState({\n oneClickRemovedHere: true\n });\n },\n _onUndoOneClickRemove: function(event) {\n this.props.onUndoOneClickRemove(event);\n this.setState({\n oneClickRemovedHere: false\n });\n },\n _onAction: function(event, kb) {\n if ((kb === ja.remove)) {\n this.props.onRemove(event);\n }\n else if ((kb === ja.edit)) {\n this.props.onEdit(event);\n }\n else if ((kb === ja.hide)) {\n this._onHideAsSpam(event);\n }\n \n ;\n },\n _createRemoveReportMenu: function(event) {\n if (this._removeReportMenu) {\n return\n };\n var kb = [{\n label: \"Delete Comment...\",\n value: ja.remove\n },{\n label: \"Hide Comment\",\n value: ja.hide\n },];\n if (event.persist) {\n event.persist();\n }\n else event = event.constructor.persistentCloneOf(event);\n ;\n g.loadModules([\"LegacyMenuUtils\",], function(lb) {\n this._removeReportMenu = lb.createAndShowPopoverMenu(event.target, kb, this._onAction.bind(this, event));\n }.bind(this));\n },\n _createEditDeleteMenu: function(event) {\n if (event.persist) {\n event.persist();\n }\n else event = event.constructor.persistentCloneOf(event);\n ;\n if (this._editDeleteMenu) {\n return\n };\n var kb = [{\n label: \"Edit...\",\n value: ja.edit\n },{\n label: \"Delete...\",\n value: ja.remove\n },];\n g.loadModules([\"LegacyMenuUtils\",], function(lb) {\n this._editDeleteMenu = lb.createAndShowPopoverMenu(event.target, kb, this._onAction.bind(this, event));\n }.bind(this));\n },\n _renderCloseButton: function() {\n var kb = this.props.comment, lb = this.props.feedback, mb = null, nb = null, ob = false;\n if ((kb.canremove && !this.props.hideAsSpamForPageAdmin)) {\n if (this.props.viewerIsAuthor) {\n if (kb.canedit) {\n nb = \"Edit or Delete\";\n mb = this._createEditDeleteMenu;\n ob = true;\n }\n else {\n nb = \"Remove\";\n mb = this.props.onRemove;\n }\n ;\n }\n else if (lb.canremoveall) {\n if (this.props.showRemoveReportMenu) {\n nb = \"Remove or Report\";\n mb = this._createRemoveReportMenu;\n }\n else {\n nb = \"Remove\";\n mb = this._onOneClickRemove;\n }\n \n }\n ;\n }\n else if (kb.canreport) {\n nb = \"Hide\";\n mb = this._onHideAsSpam;\n }\n \n ;\n var pb = ((((\"UFICommentCloseButton\") + ((ob ? (\" \" + \"UFIEditButton\") : \"\"))) + (((mb === null) ? (\" \" + \"hdn\") : \"\"))));\n return (h({\n onClick: mb,\n tooltip: nb,\n className: pb\n }));\n },\n componentDidMount: function(kb) {\n var lb = this.props.comment.ufiinstanceid;\n if (this.state.isHighlighting) {\n g.loadModules([\"UFIScrollHighlight\",], function(nb) {\n nb.actOn.curry(kb).defer();\n });\n this.setState({\n isHighlighting: false\n });\n }\n ;\n var mb = z.getKeyForInstance(lb, \"autofocus\");\n if (mb) {\n j.setWithoutOutline(this.refs.AuthorName.getDOMNode());\n z.updateState(lb, \"autofocus\", false);\n }\n ;\n },\n shouldComponentUpdate: function(kb) {\n var lb = this.props;\n return ((((((((((((kb.comment !== lb.comment) || (kb.showReplyLink !== lb.showReplyLink)) || (kb.showReplies !== lb.showReplies)) || (kb.isFirst !== lb.isFirst)) || (kb.isLast !== lb.isLast)) || (kb.isFirstCommentComponent !== lb.isFirstCommentComponent)) || (kb.isLastCommentComponent !== lb.isLastCommentComponent)) || (kb.isFirstComponent !== lb.isFirstComponent)) || (kb.isLastComponent !== lb.isLastComponent)) || (kb.isFeaturedComment !== lb.isFeaturedComment)) || (kb.hasPartialBorder !== lb.hasPartialBorder)));\n },\n render: function() {\n var kb = this.props.comment, lb = this.props.feedback, mb = (kb.status === ha.DELETED), nb = (kb.status === ha.LIVE_DELETED), ob = (kb.status === ha.SPAM_DISPLAY), pb = (kb.status === ha.PENDING_UNDO_DELETE), qb = this.state.markedAsSpamHere, rb = this.state.oneClickRemovedHere, sb = this.state.isInlinePageDeleted, tb = this.props.hideAsSpamForPageAdmin, ub = this.state.isInlineBanned, vb = eb(kb), wb = (!kb.status && ((kb.isunseen || kb.islocal)));\n if ((!kb.status && lb.lastseentime)) {\n var xb = (kb.originalTimestamp || kb.timestamp.time);\n wb = (wb || (xb > lb.lastseentime));\n }\n ;\n var yb = this.props.contextArgs.markedcomments;\n if ((yb && yb[kb.legacyid])) {\n wb = true;\n };\n if (vb) {\n if (bb) {\n var zb, ac = null, bc = null, cc = null;\n if (tb) {\n bc = (ub ? this._onUndoInlineBan : this._onInlineBan);\n if (sb) {\n ac = this._onUndoDeleteSpam;\n var dc = q.DOM.a({\n href: \"#\",\n onClick: ac\n }, \"Undo\");\n zb = ga._(\"You've deleted this comment so no one can see it. {undo}.\", {\n undo: dc\n });\n }\n else if (qb) {\n zb = \"Now this is only visible to the person who wrote it and their friends.\";\n cc = this._onDeleteSpam;\n ac = this._onMarkAsNotSpam;\n }\n \n ;\n }\n else if (qb) {\n zb = \"This comment has been hidden.\";\n cc = this._onDeleteSpam;\n ac = this._onMarkAsNotSpam;\n }\n else if (rb) {\n zb = \"This comment has been removed.\";\n ac = this._onUndoOneClickRemove;\n }\n \n \n ;\n if (zb) {\n return (q.DOM.li({\n className: fa(u.ROW, \"UFIHide\")\n }, bb({\n notice: zb,\n comment: this.props.comment,\n authorProfiles: this.props.authorProfiles,\n onUndo: ac,\n onBanAction: bc,\n onDeleteAction: cc,\n isInlineBanned: ub,\n hideAsSpamForPageAdmin: tb\n })))\n };\n }\n else g.loadModules([\"UFICommentRemovalControls.react\",], function(gc) {\n bb = gc;\n setTimeout(function() {\n this.forceUpdate();\n }.bind(this));\n }.bind(this));\n \n };\n var ec = fa(u.ROW, ((((((((((((((\"UFIComment\") + ((db(kb) ? (\" \" + \"UFICommentFailed\") : \"\"))) + (((((mb || nb) || ob) || pb) ? (\" \" + \"UFITranslucentComment\") : \"\"))) + ((this.state.isHighlighting ? (\" \" + \"highlightComment\") : \"\"))) + (((mb && !rb) ? (\" \" + \"noDisplay\") : \"\"))) + (((this.props.isFirst && !this.props.isReply) ? (\" \" + \"UFIFirstComment\") : \"\"))) + (((this.props.isLast && !this.props.isReply) ? (\" \" + \"UFILastComment\") : \"\"))) + ((this.props.isFirstCommentComponent ? (\" \" + \"UFIFirstCommentComponent\") : \"\"))) + ((this.props.isLastCommentComponent ? (\" \" + \"UFILastCommentComponent\") : \"\"))) + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))) + ((this.props.isFeatured ? (\" \" + \"UFIFeaturedComment\") : \"\"))) + (((this.props.hasPartialBorder && !this.props.contextArgs.entstream) ? (\" \" + \"UFIPartialBorder\") : \"\"))))), fc = this.renderComment();\n if (wb) {\n if (this.props.contextArgs.snowliftredesign) {\n fc = q.DOM.div({\n className: \"_5cis\"\n }, q.DOM.div({\n className: \"_5cit\"\n }), fc);\n }\n else if ((this.props.contextArgs.entstream && !this.props.isReply)) {\n fc = q.DOM.div({\n className: \"_52mp\"\n }, q.DOM.div({\n className: \"_52mq\"\n }), fc);\n }\n else ec = fa(ec, u.UNSEEN_ITEM);\n \n \n };\n return (q.DOM.li({\n className: ec,\n \"data-ft\": this.props[\"data-ft\"]\n }, fc));\n },\n renderComment: function() {\n var kb = this.props, lb = kb.comment, mb = kb.feedback, nb = kb.authorProfiles[lb.author], ob = (lb.status === ha.SPAM_DISPLAY), pb = (lb.status === ha.LIVE_DELETED), qb = !((ob || pb)), rb = (mb.canremoveall || lb.hiddenbyviewer), sb = null, tb = null;\n if (((!kb.isLocallyComposed && !this.state.wasHighlighted) && !lb.fromfetch)) {\n tb = x.commentTruncationLength;\n sb = x.commentTruncationMaxLines;\n }\n ;\n var ub = s.getTrackingInfo(s.types.SMALL_ACTOR_PHOTO), vb = s.getTrackingInfo(s.types.USER_NAME), wb = s.getTrackingInfo(s.types.USER_MESSAGE), xb = null, yb = null;\n if ((lb.istranslatable && ((lb.translatedtext === undefined)))) {\n xb = q.DOM.a({\n href: \"#\",\n role: \"button\",\n title: \"Translate this comment\",\n className: ua,\n onClick: kb.onCommentTranslate\n }, \"See Translation\");\n };\n if (lb.translatedtext) {\n var zb = new ca(\"http://bing.com/translator\").addQueryData({\n text: lb.body.text\n });\n yb = q.DOM.span({\n className: va\n }, lb.translatedtext, q.DOM.span({\n className: ya\n }, \" (\", q.DOM.a({\n href: zb.toString(),\n className: za\n }, \"Translated by Bing\"), \") \"));\n }\n ;\n var ac;\n if ((i.rtl && (lb.body.dir === \"ltr\"))) {\n ac = \"rtl\";\n }\n else if ((!i.rtl && (lb.body.dir === \"rtl\"))) {\n ac = \"ltr\";\n }\n ;\n var bc = k.constructEndpointWithLocation(nb, \"ufi\").toString(), cc = q.DOM.a({\n ref: \"AuthorName\",\n className: la,\n href: nb.uri,\n \"data-hovercard\": bc,\n \"data-ft\": vb,\n dir: ac\n }, nb.name), dc = function(ic, jc) {\n return l(ic, jc, \"_blank\", mb.grouporeventid, \"ufi\");\n }, ec = t({\n className: ka,\n interpolator: dc,\n ranges: lb.body.ranges,\n text: lb.body.text,\n truncationPercent: x.commentTruncationPercent,\n maxLength: tb,\n maxLines: sb,\n renderEmoticons: w.renderEmoticons,\n renderEmoji: w.renderEmoji,\n \"data-ft\": wb,\n dir: lb.body.dir\n }), fc;\n if (lb.socialcontext) {\n var gc = lb.socialcontext, hc = ib({\n topMutualFriend: kb.authorProfiles[gc.topmutualid],\n otherMutualCount: gc.othermutualcount,\n commentAuthor: nb\n });\n fc = [cc,hc,q.DOM.div(null, ec),];\n }\n else fc = [cc,\" \",ec,];\n ;\n return (y({\n spacing: \"medium\"\n }, q.DOM.a({\n href: nb.uri,\n \"data-hovercard\": bc,\n \"data-ft\": ub\n }, q.DOM.img({\n src: nb.thumbSrc,\n className: u.ACTOR_IMAGE,\n alt: \"\"\n })), q.DOM.div(null, q.DOM.div({\n className: \"UFICommentContent\"\n }, fc, xb, yb, v({\n comment: kb.comment\n })), gb({\n comment: lb,\n feedback: mb,\n onBlingBoxClick: kb.onBlingBoxClick,\n onCommentLikeToggle: kb.onCommentLikeToggle,\n onCommentReply: kb.onCommentReply,\n onPreviewRemove: kb.onPreviewRemove,\n onRetrySubmit: kb.onRetrySubmit,\n onMarkAsNotSpam: this._onMarkAsNotSpam,\n viewerCanMarkNotSpam: rb,\n viewas: kb.contextArgs.viewas,\n showPermalink: kb.showPermalink,\n showReplyLink: kb.showReplyLink,\n showReplies: kb.showReplies,\n contextArgs: kb.contextArgs,\n markedAsSpamHere: this.state.markedAsSpamHere,\n hideAsSpamForPageAdmin: kb.hideAsSpamForPageAdmin\n })), (qb ? this._renderCloseButton() : null)));\n }\n });\n e.exports = jb;\n});\n__d(\"UFIContainer.react\", [\"React\",\"TrackingNodes\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"TrackingNodes\"), i = b(\"cx\"), j = g.createClass({\n displayName: \"UFIContainer\",\n render: function() {\n var k = null;\n if (this.props.hasNub) {\n k = g.DOM.li({\n className: \"UFIArrow\"\n }, g.DOM.i(null));\n };\n var l = (((((((((!this.props.isReplyList ? \"UFIList\" : \"\")) + ((this.props.isReplyList ? (\" \" + \"UFIReplyList\") : \"\"))) + ((this.props.isParentLiveDeleted ? (\" \" + \"UFITranslucentReplyList\") : \"\"))) + ((this.props.isFirstCommentComponent ? (\" \" + \"UFIFirstCommentComponent\") : \"\"))) + ((this.props.isLastCommentComponent ? (\" \" + \"UFILastCommentComponent\") : \"\"))) + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))));\n return (g.DOM.ul({\n className: l,\n \"data-ft\": h.getTrackingInfo(h.types.UFI)\n }, k, this.props.children));\n }\n });\n e.exports = j;\n});\n__d(\"GiftOpportunityLogger\", [\"AsyncRequest\",\"Event\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"Event\"), i = {\n init: function(k, l, m) {\n var n = false;\n h.listen(k, \"click\", function(o) {\n if (n) {\n return true\n };\n n = true;\n i.send(l, m);\n });\n },\n send: function(k, l) {\n if (j[k.opportunity_id]) {\n return\n };\n j[k.opportunity_id] = true;\n return new g().setURI(\"/ajax/gifts/log/opportunity\").setData({\n data: k,\n entry_point: l\n }).send();\n }\n }, j = {\n };\n e.exports = i;\n});\n__d(\"InlineBlock.react\", [\"ReactProps\",\"React\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactProps\"), h = b(\"React\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = {\n baseline: null,\n bottom: \"_6d\",\n middle: \"_6b\",\n top: \"_6e\"\n }, l = h.createClass({\n displayName: \"InlineBlock\",\n props: {\n alignv: g.oneOf([\"baseline\",\"bottom\",\"middle\",\"top\",]),\n height: g.number\n },\n getDefaultProps: function() {\n return {\n alignv: \"baseline\"\n };\n },\n render: function() {\n var m = k[this.props.alignv], n = h.DOM.div({\n className: j(\"_6a\", m)\n }, this.props.children);\n if ((this.props.height != null)) {\n var o = h.DOM.div({\n className: j(\"_6a\", m),\n style: {\n height: (this.props.height + \"px\")\n }\n });\n n = h.DOM.div({\n className: \"_6a\",\n height: null\n }, o, n);\n }\n ;\n return this.transferPropsTo(n);\n }\n });\n e.exports = l;\n});\n__d(\"Image.react\", [\"React\",\"invariant\",\"joinClasses\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"invariant\"), i = b(\"joinClasses\"), j = g.createClass({\n displayName: \"ReactImage\",\n props: {\n src: function(k, l, m) {\n var n = k[l];\n h(((typeof n === \"string\") || (((typeof n === \"object\") && (((((n.sprited && n.spriteMapCssClass) && n.spriteCssClass)) || ((!n.sprited && n.uri))))))));\n }\n },\n render: function() {\n var k, l, m = this.props.src, n = \"img\";\n l = true;\n if ((typeof m === \"string\")) {\n k = g.DOM.img({\n className: n,\n src: m\n });\n }\n else if (m.sprited) {\n n = i(n, m.spriteMapCssClass, m.spriteCssClass);\n k = g.DOM.i({\n className: n,\n src: null\n });\n l = false;\n }\n else {\n k = g.DOM.img({\n className: n,\n src: m.uri\n });\n if (((typeof this.props.width === \"undefined\") && (typeof this.props.height === \"undefined\"))) {\n k.props.width = m.width;\n k.props.height = m.height;\n }\n ;\n }\n \n ;\n if (this.props.alt) {\n if (l) {\n k.props.alt = this.props.alt;\n }\n else k.props.children = g.DOM.u(null, this.props.alt);\n \n };\n return this.transferPropsTo(k);\n }\n });\n e.exports = j;\n});\n__d(\"UFIGiftSentence.react\", [\"AsyncRequest\",\"CloseButton.react\",\"GiftOpportunityLogger\",\"ImageBlock.react\",\"InlineBlock.react\",\"LeftRight.react\",\"Link.react\",\"React\",\"Image.react\",\"UFIClassNames\",\"UFIImageBlock.react\",\"URI\",\"DOM\",\"ix\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"CloseButton.react\"), i = b(\"GiftOpportunityLogger\"), j = b(\"ImageBlock.react\"), k = b(\"InlineBlock.react\"), l = b(\"LeftRight.react\"), m = b(\"Link.react\"), n = b(\"React\"), o = b(\"Image.react\"), p = b(\"UFIClassNames\"), q = b(\"UFIImageBlock.react\"), r = b(\"URI\"), s = b(\"DOM\"), t = b(\"ix\"), u = b(\"tx\"), v = n.createClass({\n displayName: \"UFIGiftSentence\",\n _entry_point: \"detected_gift_worthy_story_inline\",\n render: function() {\n var w = this.props.recipient, x = this.props.giftdata, y = (x ? x.giftproductid : null), z = this._getURI(y).toString();\n this._log();\n return (n.DOM.li({\n className: p.ROW,\n ref: \"UFIGiftSentence\"\n }, l({\n direction: \"right\"\n }, (x ? this._renderGiftSuggestion(z, w, x) : this._renderGiftLink(z, w)), h({\n size: \"small\",\n onClick: function() {\n var aa = this.refs.UFIGiftSentence.getDOMNode();\n s.remove(aa);\n this._requestClose();\n }.bind(this)\n }))));\n },\n _renderGiftSuggestion: function(w, x, y) {\n return (q(null, o({\n src: t(\"/images/group_gifts/icons/gift_icon_red-13px.png\"),\n alt: \"invite\"\n }), n.DOM.div(null, n.DOM.span({\n className: \"fwb\"\n }, u._(\"Surprise {name} with a gift\", {\n name: x.firstName\n })), j({\n spacing: \"medium\",\n className: \"mvs\"\n }, m({\n className: \"fwb\",\n rel: \"async-post\",\n ajaxify: w,\n href: {\n url: \"#\"\n }\n }, o({\n className: \"UFIGiftProductImg\",\n src: y.giftproductimgsrc,\n alt: \"product image\"\n })), k({\n alignv: \"middle\",\n height: 79\n }, n.DOM.p({\n className: \"mvs\"\n }, m({\n className: \"fwb\",\n rel: \"async-post\",\n ajaxify: w,\n href: {\n url: \"#\"\n }\n }, y.giftproductname)), n.DOM.p({\n className: \"mvs fcg\"\n }, y.giftproductpricerange), n.DOM.p({\n className: \"mvs\"\n }, m({\n rel: \"async-post\",\n ajaxify: w,\n href: {\n url: \"#\"\n }\n }, \"Give This Gift\"), \" \\u00b7 \", m({\n rel: \"async-post\",\n ajaxify: this._getURI().toString(),\n href: {\n url: \"#\"\n }\n }, \"See All Gifts\")))))));\n },\n _renderGiftLink: function(w, x) {\n return (q(null, m({\n className: \"UFIGiftIcon\",\n tabIndex: \"-1\",\n href: {\n url: \"#\"\n },\n rel: \"async-post\",\n ajaxify: w\n }, o({\n src: t(\"/images/group_gifts/icons/gift_icon_red-13px.png\"),\n alt: \"invite\"\n })), m({\n rel: \"async-post\",\n href: {\n url: \"#\"\n },\n ajaxify: w\n }, u._(\"Surprise {name} with a gift\", {\n name: x.firstName\n }))));\n },\n _log: function() {\n var w = this.props.giftdata, x = {\n opportunity_id: this.props.contextArgs.ftentidentifier,\n sender_id: this.props.sender.id,\n recipient_id: this.props.recipient.id,\n link_description: \"UFIGiftSentence\",\n product_id: (w ? w.giftproductid : null),\n custom: {\n gift_occasion: this.props.contextArgs.giftoccasion,\n ftentidentifier: this.props.contextArgs.ftentidentifier\n }\n };\n i.send([x,], this._entry_point);\n },\n _getURI: function(w) {\n return r(\"/ajax/gifts/send\").addQueryData({\n gift_occasion: this.props.contextArgs.giftoccasion,\n recipient_id: this.props.recipient.id,\n entry_point: this._entry_point,\n product_id: w\n });\n },\n _requestClose: function() {\n var w = r(\"/ajax/gifts/moments/close/\");\n new g().setMethod(\"POST\").setReadOnly(false).setURI(w).setData({\n action: \"hide\",\n data: JSON.stringify({\n type: \"detected_moment\",\n friend_id: this.props.recipient.id,\n ftentidentifier: this.props.contextArgs.ftentidentifier\n })\n }).send();\n }\n });\n e.exports = v;\n});\n__d(\"UFILikeSentenceText.react\", [\"HovercardLinkInterpolator\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"TextWithEntities.react\",\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"HovercardLinkInterpolator\"), h = b(\"ProfileBrowserLink\"), i = b(\"ProfileBrowserTypes\"), j = b(\"React\"), k = b(\"TextWithEntities.react\"), l = b(\"URI\");\n function m(p, q, r, s) {\n if ((s.count != null)) {\n var t = i.LIKES, u = {\n id: p.targetfbid\n };\n return (j.DOM.a({\n href: h.constructPageURI(t, u).toString(),\n target: \"_blank\"\n }, r));\n }\n else return g(r, s, \"_blank\", null, \"ufi\")\n ;\n };\n function n(p, q, r, s) {\n if ((s.count != null)) {\n var t = i.LIKES, u = {\n id: p.targetfbid\n }, v = [];\n for (var w = 0; (w < q.length); w++) {\n if (!q[w].count) {\n v.push(q[w].entities[0].id);\n };\n };\n var x = new l(\"/ajax/like/tooltip.php\").setQueryData({\n comment_fbid: p.targetfbid,\n comment_from: p.actorforpost,\n seen_user_fbids: (v.length ? v : true)\n });\n return (j.DOM.a({\n rel: \"dialog\",\n ajaxify: h.constructDialogURI(t, u).toString(),\n href: h.constructPageURI(t, u).toString(),\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"data-tooltip-uri\": x.toString()\n }, r));\n }\n else return g(r, s, null, null, \"ufi\")\n ;\n };\n var o = j.createClass({\n displayName: \"UFILikeSentenceText\",\n render: function() {\n var p = this.props.feedback, q = this.props.likeSentenceData, r;\n if (this.props.contextArgs.embedded) {\n r = m;\n }\n else r = n;\n ;\n r = r.bind(null, p, q.ranges);\n return (k({\n interpolator: r,\n ranges: q.ranges,\n aggregatedRanges: q.aggregatedranges,\n text: q.text\n }));\n }\n });\n e.exports = o;\n});\n__d(\"UFILikeSentence.react\", [\"Bootloader\",\"LeftRight.react\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"UFILikeSentenceText.react\",\"URI\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"LeftRight.react\"), i = b(\"ProfileBrowserLink\"), j = b(\"ProfileBrowserTypes\"), k = b(\"React\"), l = b(\"UFIClassNames\"), m = b(\"UFIImageBlock.react\"), n = b(\"UFILikeSentenceText.react\"), o = b(\"URI\"), p = b(\"cx\"), q = b(\"joinClasses\"), r = b(\"tx\"), s = k.createClass({\n displayName: \"UFILikeSentence\",\n getInitialState: function() {\n return {\n selectorModule: null,\n bootloadedSelectorModule: false\n };\n },\n componentWillMount: function() {\n this._bootloadSelectorModule(this.props);\n },\n componentWillReceiveProps: function(t) {\n this._bootloadSelectorModule(t);\n },\n _bootloadSelectorModule: function(t) {\n if ((t.showOrderingModeSelector && !this.state.bootloadedSelectorModule)) {\n var u = function(v) {\n this.setState({\n selectorModule: v\n });\n }.bind(this);\n if (t.contextArgs.entstream) {\n g.loadModules([\"UFIEntStreamOrderingModeSelector.react\",], u);\n }\n else g.loadModules([\"UFIOrderingModeSelector.react\",], u);\n ;\n this.setState({\n bootloadedSelectorModule: true\n });\n }\n ;\n },\n render: function() {\n var t = this.props.feedback, u = t.likesentences.current, v = this.props.contextArgs.entstream, w = q(l.ROW, (t.likesentences.isunseen ? l.UNSEEN_ITEM : \"\"), ((((\"UFILikeSentence\") + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))))), x = null, y = null;\n if (u.text) {\n y = k.DOM.div({\n className: \"UFILikeSentenceText\"\n }, n({\n contextArgs: this.props.contextArgs,\n feedback: t,\n likeSentenceData: u\n }));\n };\n if ((y && !v)) {\n x = k.DOM.i({\n className: \"UFILikeIcon\"\n });\n if ((t.viewercanlike && !t.hasviewerliked)) {\n x = k.DOM.a({\n className: \"UFILikeThumb\",\n href: \"#\",\n tabIndex: \"-1\",\n title: \"Like this\",\n onClick: this.props.onTargetLikeToggle\n }, x);\n };\n }\n ;\n var z = y, aa = null;\n if (((t.seencount > 0) && !v)) {\n var ba = j.GROUP_MESSAGE_VIEWERS, ca = {\n id: t.targetfbid\n }, da = i.constructDialogURI(ba, ca), ea = i.constructPageURI(ba, ca), fa = new o(\"/ajax/ufi/seen_tooltip.php\").setQueryData({\n ft_ent_identifier: t.entidentifier,\n displayed_count: t.seencount\n }), ga;\n if (t.seenbyall) {\n ga = \"Seen by everyone\";\n }\n else ga = ((t.seencount == 1) ? \"Seen by 1\" : r._(\"Seen by {count}\", {\n count: t.seencount\n }));\n ;\n aa = k.DOM.a({\n rel: \"dialog\",\n ajaxify: da.toString(),\n href: ea.toString(),\n tabindex: \"-1\",\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"left\",\n \"data-tooltip-uri\": fa.toString(),\n className: (((\"UFISeenCount\") + ((!!u.text ? (\" \" + \"UFISeenCountRight\") : \"\"))))\n }, k.DOM.span({\n className: \"UFISeenCountIcon\"\n }), ga);\n }\n else if ((this.props.showOrderingModeSelector && this.state.selectorModule)) {\n var ha = this.state.selectorModule;\n aa = ha({\n currentOrderingMode: this.props.orderingMode,\n entstream: v,\n orderingmodes: t.orderingmodes,\n onOrderChanged: this.props.onOrderingModeChange\n });\n if (!z) {\n z = k.DOM.div(null);\n };\n }\n \n ;\n var ia = null;\n if ((x && y)) {\n ia = m(null, x, y, aa);\n }\n else if (z) {\n ia = h(null, z, aa);\n }\n else ia = aa;\n \n ;\n return (k.DOM.li({\n className: w\n }, ia));\n }\n });\n e.exports = s;\n});\n__d(\"UFIPager.react\", [\"LeftRight.react\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n var g = b(\"LeftRight.react\"), h = b(\"React\"), i = b(\"UFIClassNames\"), j = b(\"UFIImageBlock.react\"), k = b(\"cx\"), l = b(\"joinClasses\"), m = h.createClass({\n displayName: \"UFIPager\",\n onPagerClick: function(n) {\n ((!this.props.isLoading && this.props.onPagerClick) && this.props.onPagerClick());\n n.nativeEvent.prevent();\n },\n render: function() {\n var n = this.onPagerClick, o = ((this.props.isLoading ? \"ufiPagerLoading\" : \"\")), p = l(i.ROW, (this.props.isUnseen ? i.UNSEEN_ITEM : \"\"), ((((((\"UFIPagerRow\") + ((this.props.isFirstCommentComponent ? (\" \" + \"UFIFirstCommentComponent\") : \"\"))) + ((this.props.isLastCommentComponent ? (\" \" + \"UFILastCommentComponent\") : \"\"))) + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))))), q = h.DOM.a({\n className: \"UFIPagerLink\",\n onClick: n,\n href: \"#\",\n role: \"button\"\n }, h.DOM.span({\n className: o\n }, this.props.pagerLabel)), r = (((\"fcg\") + ((\" \" + \"UFIPagerCount\")))), s = h.DOM.span({\n className: r\n }, this.props.countSentence), t;\n if (this.props.contextArgs.entstream) {\n t = (g({\n direction: g.DIRECTION.right\n }, q, s));\n }\n else t = (j(null, h.DOM.a({\n className: \"UFIPagerIcon\",\n onClick: n,\n href: \"#\",\n role: \"button\"\n }), q, s));\n ;\n return (h.DOM.li({\n className: p,\n \"data-ft\": this.props[\"data-ft\"]\n }, t));\n }\n });\n e.exports = m;\n});\n__d(\"UFIReplySocialSentence.react\", [\"LiveTimer\",\"React\",\"Timestamp.react\",\"UFIClassNames\",\"UFIConstants\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"LiveTimer\"), h = b(\"React\"), i = b(\"Timestamp.react\"), j = b(\"UFIClassNames\"), k = b(\"UFIConstants\"), l = b(\"UFIImageBlock.react\"), m = b(\"cx\"), n = b(\"joinClasses\"), o = b(\"tx\"), p = \" \\u00b7 \", q = 43200, r = h.createClass({\n displayName: \"UFIReplySocialSentence\",\n render: function() {\n var s = ((this.props.isLoading ? \"UFIReplySocialSentenceLoading\" : \"\")), t = n(j.ROW, ((((\"UFIReplySocialSentenceRow\") + ((this.props.isFirstComponent ? (\" \" + \"UFIFirstComponent\") : \"\"))) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\"))))), u, v;\n if (this.props.isExpanded) {\n u = ((this.props.replies > 1) ? o._(\"Hide {count} Replies\", {\n count: this.props.replies\n }) : \"Hide 1 Reply\");\n }\n else {\n u = ((this.props.replies > 1) ? o._(\"{count} Replies\", {\n count: this.props.replies\n }) : \"1 Reply\");\n if (this.props.timestamp) {\n var w = ((g.getApproximateServerTime() / 1000) - this.props.timestamp.time);\n if (((w < q) || (this.props.orderingMode == k.UFICommentOrderingMode.RECENT_ACTIVITY))) {\n v = h.DOM.span({\n className: \"fcg\"\n }, p, i({\n time: this.props.timestamp.time,\n text: this.props.timestamp.text,\n verbose: this.props.timestamp.verbose\n }));\n };\n }\n ;\n }\n ;\n var x = Object.keys(this.props.authors), y = (x.length && !this.props.isExpanded), z, aa;\n if (y) {\n var ba = this.props.authors[x[0]];\n z = h.DOM.img({\n alt: \"\",\n src: ba.thumbSrc,\n className: j.ACTOR_IMAGE\n });\n aa = [o._(\"{author} replied\", {\n author: ba.name\n }),p,u,];\n }\n else {\n z = h.DOM.i({\n className: ((((!this.props.isExpanded ? \"UFIPagerIcon\" : \"\")) + ((this.props.isExpanded ? (\" \" + \"UFICollapseIcon\") : \"\"))))\n });\n aa = u;\n }\n ;\n return (h.DOM.li({\n className: t,\n \"data-ft\": this.props[\"data-ft\"]\n }, h.DOM.a({\n className: \"UFICommentLink\",\n onClick: this.props.onClick,\n href: \"#\",\n role: \"button\"\n }, l(null, h.DOM.div({\n className: ((y ? \"UFIReplyActorPhotoWrapper\" : \"\"))\n }, z), h.DOM.span({\n className: s\n }, h.DOM.span({\n className: \"UFIReplySocialSentenceLinkText\"\n }, aa), v)))));\n }\n });\n e.exports = r;\n});\n__d(\"UFIShareRow.react\", [\"NumberFormat\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"URI\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"NumberFormat\"), h = b(\"React\"), i = b(\"UFIClassNames\"), j = b(\"UFIImageBlock.react\"), k = b(\"URI\"), l = b(\"cx\"), m = b(\"joinClasses\"), n = b(\"tx\"), o = h.createClass({\n displayName: \"UFIShareRow\",\n render: function() {\n var p = new k(\"/ajax/shares/view\").setQueryData({\n target_fbid: this.props.targetID\n }), q = new k(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n id: this.props.targetID\n }), r;\n if ((this.props.shareCount > 1)) {\n var s = g.formatIntegerWithDelimiter(this.props.shareCount, (this.props.contextArgs.numberdelimiter || \",\"));\n r = n._(\"{count} shares\", {\n count: s\n });\n }\n else r = \"1 share\";\n ;\n var t = m(i.ROW, ((((this.props.isFirstComponent ? \"UFIFirstComponent\" : \"\")) + ((this.props.isLastComponent ? (\" \" + \"UFILastComponent\") : \"\")))));\n return (h.DOM.li({\n className: t\n }, j(null, h.DOM.a({\n className: \"UFIShareIcon\",\n rel: \"dialog\",\n ajaxify: p.toString(),\n href: q.toString()\n }), h.DOM.a({\n className: \"UFIShareLink\",\n rel: \"dialog\",\n ajaxify: p.toString(),\n href: q.toString()\n }, r))));\n }\n });\n e.exports = o;\n});\n__d(\"UFISpamPlaceholder.react\", [\"React\",\"UFIClassNames\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"UFIClassNames\"), i = b(\"cx\"), j = b(\"tx\"), k = g.createClass({\n displayName: \"UFISpamPlaceholder\",\n render: function() {\n var l = (((\"UFISpamCommentWrapper\") + ((this.props.isLoading ? (\" \" + \"UFISpamCommentLoading\") : \"\"))));\n return (g.DOM.li({\n className: h.ROW\n }, g.DOM.a({\n href: \"#\",\n role: \"button\",\n className: \"UFISpamCommentLink\",\n onClick: this.props.onClick\n }, g.DOM.span({\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"aria-label\": j._(\"{count} hidden\", {\n count: this.props.numHidden\n }),\n className: l\n }, g.DOM.i({\n className: \"placeholderIcon\"\n })))));\n }\n });\n e.exports = k;\n});\n__d(\"UFI.react\", [\"NumberFormat\",\"React\",\"LegacyScrollableArea.react\",\"TrackingNodes\",\"UFIAddCommentController\",\"UFIAddCommentLink.react\",\"UFIComment.react\",\"UFIConstants\",\"UFIContainer.react\",\"UFIGiftSentence.react\",\"UFIInstanceState\",\"UFILikeSentence.react\",\"UFIPager.react\",\"UFIReplySocialSentence.react\",\"UFIShareRow.react\",\"UFISpamPlaceholder.react\",\"copyProperties\",\"isEmpty\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"NumberFormat\"), h = b(\"React\"), i = b(\"LegacyScrollableArea.react\"), j = b(\"TrackingNodes\"), k = b(\"UFIAddCommentController\"), l = b(\"UFIAddCommentLink.react\"), m = b(\"UFIComment.react\"), n = b(\"UFIConstants\"), o = b(\"UFIContainer.react\"), p = b(\"UFIGiftSentence.react\"), q = b(\"UFIInstanceState\"), r = b(\"UFILikeSentence.react\"), s = b(\"UFIPager.react\"), t = b(\"UFIReplySocialSentence.react\"), u = b(\"UFIShareRow.react\"), v = b(\"UFISpamPlaceholder.react\"), w = b(\"copyProperties\"), x = b(\"isEmpty\"), y = b(\"tx\"), z = h.createClass({\n displayName: \"UFI\",\n getInitialState: function() {\n return {\n requestRanges: w({\n }, this.props.availableRanges),\n instanceShowRepliesMap: {\n },\n instanceShowReplySocialSentenceMap: {\n },\n loadingSpamIDs: {\n },\n isActiveLoading: false,\n hasPagedToplevel: false\n };\n },\n componentWillReceiveProps: function(aa) {\n if (this.state.isActiveLoading) {\n var ba = this.props.availableRanges[this.props.id], ca = aa.availableRanges[this.props.id];\n if (((ba.offset != ca.offset) || (ba.length != ca.length))) {\n var da = (((ca.offset < ba.offset)) ? 0 : ba.length);\n if ((da < aa.availableComments.length)) {\n var ea = aa.availableComments[da].ufiinstanceid;\n q.updateState(ea, \"autofocus\", true);\n }\n ;\n }\n ;\n this.setState({\n isActiveLoading: false\n });\n }\n ;\n if ((aa.orderingMode != this.props.orderingMode)) {\n this.setState({\n requestRanges: w({\n }, aa.availableRanges)\n });\n };\n },\n render: function() {\n var aa = this.props, ba = aa.feedback, ca = aa.contextArgs, da = (aa.source != n.UFIFeedbackSourceType.ADS), ea = (ba.orderingmodes && (aa.commentCounts[aa.id] >= n.minCommentsForOrderingModeSelector)), fa = ((((!x(ba.likesentences.current) || (((ba.seencount > 0) && !ca.entstream))) || ea)) && da), ga = null;\n if (fa) {\n ga = r({\n contextArgs: ca,\n feedback: ba,\n onTargetLikeToggle: aa.onTargetLikeToggle,\n onOrderingModeChange: aa.onOrderingModeChange,\n orderingMode: aa.orderingMode,\n showOrderingModeSelector: ea\n });\n };\n var ha = null;\n if ((aa.feedback.hasviewerliked && this._shouldShowGiftSentence())) {\n ha = p({\n contextArgs: ca,\n recipient: aa.giftRecipient,\n sender: aa.authorProfiles[ba.actorforpost],\n giftdata: aa.feedback.giftdata\n });\n };\n var ia = ((aa.availableComments && aa.availableComments.length) && da), ja = null;\n if (ia) {\n ja = this.renderCommentMap(aa.availableComments, aa.availableRanges[aa.id].offset);\n };\n var ka = null, la = ba.cancomment, ma = ((la && ca.showaddcomment) && ba.actorforpost);\n if (ma) {\n var na = new k(null, aa.id, null, ca), oa = aa.authorProfiles[ba.actorforpost];\n ka = na.renderAddComment(oa, ba.mentionsdatasource, ba.showsendonentertip, \"toplevelcomposer\", null, ba.allowphotoattachments, ba.subtitle);\n }\n ;\n var pa = null, qa = ((ca.showshares && ba.sharecount) && da);\n if ((qa && !ca.entstream)) {\n pa = u({\n targetID: ba.targetfbid,\n shareCount: ba.sharecount,\n contextArgs: ca\n });\n };\n var ra = (((fa || qa) || ia) || la), sa = this.renderPagers();\n this.applyToUFIComponents([sa.topPager,], ja, [sa.bottomPager,], {\n isFirstCommentComponent: true\n }, {\n isLastCommentComponent: true\n });\n var ta = (ba.commentboxhoisted ? ka : null), ua = (ba.commentboxhoisted ? null : ka), va = null;\n if (((ma && ba.hasaddcommentlink) && this.state.hasPagedToplevel)) {\n va = l({\n onClick: this.onComment\n });\n };\n this.applyToUFIComponents([ga,pa,ta,sa.topPager,], ja, [sa.bottomPager,ua,va,], {\n isFirstComponent: true\n }, {\n isLastComponent: true\n });\n var wa = [sa.topPager,ja,sa.bottomPager,];\n if ((ca.scrollcomments && ca.scrollwidth)) {\n wa = h.DOM.li(null, i({\n width: ca.scrollwidth\n }, h.DOM.ul(null, wa)));\n };\n return (o({\n hasNub: (ca.shownub && ra)\n }, ga, ha, pa, ta, wa, ua, va));\n },\n applyToUFIComponents: function(aa, ba, ca, da, ea) {\n var fa = Object.keys((ba || {\n })).map(function(ha) {\n return ba[ha];\n }), ga = [].concat(aa, fa, ca);\n this._applyToFirstComponent(ga, da);\n ga.reverse();\n this._applyToFirstComponent(ga, ea);\n },\n _applyToFirstComponent: function(aa, ba) {\n for (var ca = 0; (ca < ((aa || [])).length); ca++) {\n if (aa[ca]) {\n w(aa[ca].props, ba);\n return;\n }\n ;\n };\n },\n renderCommentMap: function(aa, ba) {\n var ca = this.props, da = {\n }, ea = aa.length;\n if (!ea) {\n return da\n };\n var fa = aa[0].parentcommentid, ga = [], ha = function() {\n if ((ga.length > 0)) {\n var qa = function(ra, sa) {\n this.state.loadingSpamIDs[ra[0]] = true;\n this.forceUpdate();\n ca.onSpamFetch(ra, sa);\n }.bind(this, ga, fa);\n da[(\"spam\" + ga[0])] = v({\n onClick: qa,\n numHidden: ga.length,\n isLoading: !!this.state.loadingSpamIDs[ga[0]]\n });\n ga = [];\n }\n ;\n }.bind(this), ia = ca.instanceid, ja = q.getKeyForInstance(ia, \"editcommentid\"), ka = !!aa[0].parentcommentid, la = false;\n for (var ma = 0; (ma < ea); ma++) {\n if ((aa[ma].status == n.UFIStatus.SPAM)) {\n ga.push(aa[ma].id);\n }\n else {\n ha();\n var na = Math.max(((ca.loggingOffset - ma) - ba), 0), oa = aa[ma], pa;\n if ((oa.id == ja)) {\n pa = this.renderEditCommentBox(oa);\n }\n else {\n pa = this.renderComment(oa, na);\n pa.props.isFirst = (ma === 0);\n pa.props.isLast = (ma === (ea - 1));\n if (!ka) {\n pa.props.showReplyLink = true;\n };\n }\n ;\n da[(\"comment\" + oa.id)] = pa;\n if (((((ca.feedback.actorforpost === oa.author) && !la) && !ca.feedback.hasviewerliked) && this._shouldShowGiftSentence())) {\n da[(\"gift\" + oa.id)] = p({\n contextArgs: ca.contextArgs,\n recipient: ca.giftRecipient,\n sender: ca.authorProfiles[ca.feedback.actorforpost],\n giftdata: ca.feedback.giftdata\n });\n la = true;\n }\n ;\n if ((oa.status !== n.UFIStatus.DELETED)) {\n da[(\"replies\" + oa.id)] = this.renderReplyContainer(oa);\n };\n }\n ;\n };\n ha();\n return da;\n },\n _shouldShowGiftSentence: function() {\n var aa = this.props;\n return (aa.contextArgs.giftoccasion && !aa.contextArgs.entstream);\n },\n renderReplyContainer: function(aa) {\n var ba = this.props, ca = {\n };\n for (var da = 0; (da < ((aa.replyauthors || [])).length); da++) {\n var ea = ba.authorProfiles[aa.replyauthors[da]];\n if (ea) {\n ca[ea.id] = ea;\n };\n };\n var fa = ((ba.repliesMap && ba.repliesMap[aa.id]) && this._shouldShowCommentReplies(aa.id)), ga, ha = Math.max((aa.replycount - aa.spamreplycount), 0);\n if ((ha && this._shouldShowReplySocialSentence(aa.id))) {\n var ia = (this._shouldShowCommentReplies(aa.id) && ((this.isLoadingPrev(aa.id) || this.isLoadingNext(aa.id))));\n ga = t({\n authors: ca,\n replies: ha,\n timestamp: aa.recentreplytimestamp,\n onClick: this.onToggleReplies.bind(this, aa),\n isLoading: ia,\n isExpanded: fa,\n orderingMode: this.props.orderingMode\n });\n }\n ;\n var ja, ka, la, ma;\n if (fa) {\n var na = this.renderPagers(aa.id);\n ja = na.topPager;\n la = na.bottomPager;\n ka = this.renderCommentMap(ba.repliesMap[aa.id], ba.availableRanges[aa.id].offset);\n var oa = Object.keys(ka);\n for (var pa = 0; (pa < oa.length); pa++) {\n var qa = ka[oa[pa]];\n if (qa) {\n qa.props.hasPartialBorder = (pa !== 0);\n };\n };\n if (ba.feedback.cancomment) {\n var ra = false, sa = Object.keys(ka);\n for (var da = (sa.length - 1); (da >= 0); da--) {\n var ta = sa[da];\n if ((ta && ka[ta])) {\n ra = ka[ta].props.isAuthorReply;\n break;\n }\n ;\n };\n ma = this.renderReplyComposer(aa, !ra);\n }\n ;\n }\n ;\n var ua;\n if (((((ga || ja) || ka) || la) || ma)) {\n this.applyToUFIComponents([ga,ja,], ka, [la,ma,], {\n isFirstComponent: true\n }, {\n isLastComponent: true\n });\n var va = (aa.status === n.UFIStatus.LIVE_DELETED);\n ua = o({\n isParentLiveDeleted: va,\n isReplyList: true\n }, ga, ja, ka, la, ma);\n }\n ;\n return ua;\n },\n renderReplyComposer: function(aa, ba) {\n var ca = this.props;\n return (new k(null, ca.id, aa.id, ca.contextArgs)).renderAddComment(ca.authorProfiles[ca.feedback.actorforpost], ca.feedback.mentionsdatasource, false, (\"replycomposer-\" + aa.id), ba, ca.feedback.allowphotoattachments);\n },\n renderEditCommentBox: function(aa) {\n var ba = new k(null, this.props.id, null, {\n }), ca = ba.renderEditComment(this.props.authorProfiles[this.props.feedback.actorforpost], aa.id, this.props.feedback.mentionsdatasource, this.props.onEditAttempt.bind(null, aa), this.props.onCancelEdit, this.props.feedback.allowphotoattachments);\n return ca;\n },\n _shouldShowCommentReplies: function(aa) {\n if ((aa in this.state.instanceShowRepliesMap)) {\n return this.state.instanceShowRepliesMap[aa];\n }\n else if ((aa in this.props.showRepliesMap)) {\n return this.props.showRepliesMap[aa]\n }\n ;\n return false;\n },\n _shouldShowReplySocialSentence: function(aa) {\n if ((aa in this.state.instanceShowReplySocialSentenceMap)) {\n return this.state.instanceShowReplySocialSentenceMap[aa];\n }\n else if ((aa in this.props.showReplySocialSentenceMap)) {\n return this.props.showReplySocialSentenceMap[aa]\n }\n ;\n return false;\n },\n renderComment: function(aa, ba) {\n var ca = this.props, da = ca.feedback, ea = (da.actorforpost === aa.author), fa = q.getKeyForInstance(this.props.instanceid, \"locallycomposed\"), ga = (aa.islocal || (fa && fa[aa.id])), ha = (da.showremovemenu || ((da.viewerid === aa.author))), ia = ((da.canremoveall && da.isownerpage) && !ea), ja = (ca.source != n.UFIFeedbackSourceType.INTERN), ka = j.getTrackingInfo(j.types.COMMENT, ba), la = !!aa.parentcommentid, ma = this._shouldShowCommentReplies(aa.id), na = !!aa.isfeatured;\n return (m({\n comment: aa,\n authorProfiles: this.props.authorProfiles,\n viewerIsAuthor: ea,\n feedback: da,\n \"data-ft\": ka,\n contextArgs: this.props.contextArgs,\n hideAsSpamForPageAdmin: ia,\n isLocallyComposed: ga,\n isReply: la,\n isFeatured: na,\n showPermalink: ja,\n showRemoveReportMenu: ha,\n showReplies: ma,\n onCommentLikeToggle: ca.onCommentLikeToggle.bind(null, aa),\n onCommentReply: this.onCommentReply.bind(this, aa),\n onCommentTranslate: ca.onCommentTranslate.bind(null, aa),\n onEdit: ca.onCommentEdit.bind(null, aa),\n onHideAsSpam: ca.onCommentHideAsSpam.bind(null, aa),\n onInlineBan: ca.onCommentInlineBan.bind(null, aa),\n onMarkAsNotSpam: ca.onCommentMarkAsNotSpam.bind(null, aa),\n onOneClickRemove: ca.onCommentOneClickRemove.bind(null, aa),\n onPreviewRemove: ca.onPreviewRemove.bind(null, aa),\n onRemove: ca.onCommentRemove.bind(null, aa),\n onRetrySubmit: ca.onRetrySubmit.bind(null, aa),\n onUndoInlineBan: ca.onCommentUndoInlineBan.bind(null, aa),\n onUndoOneClickRemove: ca.onCommentUndoOneClickRemove.bind(null, aa)\n }));\n },\n _updateRepliesState: function(aa, ba, ca) {\n var da = this.state.instanceShowRepliesMap;\n da[aa] = ba;\n var ea = this.state.instanceShowReplySocialSentenceMap;\n ea[aa] = ca;\n this.setState({\n instanceShowRepliesMap: da,\n instanceShowReplySocialSentenceMap: ea\n });\n },\n onToggleReplies: function(aa) {\n var ba = !this._shouldShowCommentReplies(aa.id), ca = (this._shouldShowReplySocialSentence(aa.id) && !((ba && (aa.replycount <= this.props.replySocialSentenceMaxReplies))));\n this._updateRepliesState(aa.id, ba, ca);\n var da = (this.state.requestRanges[aa.id].length - this.props.deletedCounts[aa.id]);\n if ((ba && (da === 0))) {\n var ea = this.props.commentCounts[aa.id], fa = Math.min(ea, this.props.pageSize);\n this.onPage(aa.id, {\n offset: (ea - fa),\n length: fa\n });\n }\n ;\n },\n onPage: function(aa, ba) {\n var ca = this.state.requestRanges;\n ca[aa] = ba;\n var da = (this.state.hasPagedToplevel || (aa === this.props.id));\n this.setState({\n requestRanges: ca,\n isActiveLoading: true,\n hasPagedToplevel: da\n });\n this.props.onChangeRange(aa, ba);\n },\n isLoadingPrev: function(aa) {\n var ba = this.props;\n aa = (aa || ba.id);\n if (!this.state.requestRanges[aa]) {\n this.state.requestRanges[aa] = ba.availableRanges[aa];\n };\n var ca = this.state.requestRanges[aa].offset, da = ba.availableRanges[aa].offset;\n return (ca < da);\n },\n isLoadingNext: function(aa) {\n var ba = this.props;\n aa = (aa || ba.id);\n if (!this.state.requestRanges[aa]) {\n this.state.requestRanges[aa] = ba.availableRanges[aa];\n };\n var ca = this.state.requestRanges[aa].offset, da = this.state.requestRanges[aa].length, ea = ba.availableRanges[aa].offset, fa = ba.availableRanges[aa].length;\n return ((ca + da) > (ea + fa));\n },\n renderPagers: function(aa) {\n var ba = this.props;\n aa = (aa || ba.id);\n var ca = ba.availableRanges[aa].offset, da = ba.availableRanges[aa].length, ea = ba.deletedCounts[aa], fa = ba.commentCounts[aa], ga = (fa - ea), ha = (da - ea), ia = (ba.contextArgs.numberdelimiter || \",\"), ja = (aa !== ba.id), ka = {\n topPager: null,\n bottomPager: null\n };\n if ((ba.source == n.UFIFeedbackSourceType.ADS)) {\n return ka\n };\n var la = this.isLoadingPrev(aa), ma = this.isLoadingNext(aa);\n if ((da == fa)) {\n return ka\n };\n var na = (((ca + da)) == fa);\n if (((((fa < ba.pageSize) && na)) || (ha === 0))) {\n var oa = Math.min(fa, ba.pageSize), pa = this.onPage.bind(this, aa, {\n offset: (fa - oa),\n length: oa\n }), qa, ra;\n if ((ha === 0)) {\n if ((ga == 1)) {\n qa = (ja ? \"View 1 reply\" : \"View 1 comment\");\n }\n else {\n ra = g.formatIntegerWithDelimiter(ga, ia);\n qa = (ja ? y._(\"View all {count} replies\", {\n count: ra\n }) : y._(\"View all {count} comments\", {\n count: ra\n }));\n }\n ;\n }\n else if (((ga - ha) == 1)) {\n qa = (ja ? \"View 1 more reply\" : \"View 1 more comment\");\n }\n else {\n ra = g.formatIntegerWithDelimiter((ga - ha), ia);\n qa = (ja ? y._(\"View {count} more replies\", {\n count: ra\n }) : y._(\"View {count} more comments\", {\n count: ra\n }));\n }\n \n ;\n var sa = j.getTrackingInfo(j.types.VIEW_ALL_COMMENTS), ta = s({\n contextArgs: ba.contextArgs,\n isUnseen: ba.feedback.hasunseencollapsed,\n isLoading: la,\n pagerLabel: qa,\n onPagerClick: pa,\n \"data-ft\": sa\n });\n if ((ba.feedback.isranked && !ja)) {\n ka.bottomPager = ta;\n }\n else ka.topPager = ta;\n ;\n return ka;\n }\n ;\n if ((ca > 0)) {\n var ua = Math.max((ca - ba.pageSize), 0), oa = ((ca + da) - ua), va = this.onPage.bind(this, aa, {\n offset: ua,\n length: oa\n }), wa = g.formatIntegerWithDelimiter(ha, ia), xa = g.formatIntegerWithDelimiter(ga, ia), ya = y._(\"{countshown} of {totalcount}\", {\n countshown: wa,\n totalcount: xa\n });\n if ((ba.feedback.isranked && !ja)) {\n ka.bottomPager = s({\n contextArgs: ba.contextArgs,\n isLoading: la,\n pagerLabel: \"View more comments\",\n onPagerClick: va,\n countSentence: ya\n });\n }\n else {\n var za = (ja ? \"View previous replies\" : \"View previous comments\");\n ka.topPager = s({\n contextArgs: ba.contextArgs,\n isLoading: la,\n pagerLabel: za,\n onPagerClick: va,\n countSentence: ya\n });\n }\n ;\n }\n ;\n if (((ca + da) < fa)) {\n var ab = Math.min((da + ba.pageSize), (fa - ca)), bb = this.onPage.bind(this, aa, {\n offset: ca,\n length: ab\n });\n if ((ba.feedback.isranked && !ja)) {\n ka.topPager = s({\n contextArgs: ba.contextArgs,\n isLoading: ma,\n pagerLabel: \"View previous comments\",\n onPagerClick: bb\n });\n }\n else {\n var cb = (ja ? \"View more replies\" : \"View more comments\");\n ka.bottomPager = s({\n contextArgs: ba.contextArgs,\n isLoading: ma,\n pagerLabel: cb,\n onPagerClick: bb\n });\n }\n ;\n }\n ;\n return ka;\n },\n onCommentReply: function(aa) {\n var ba = (aa.parentcommentid || aa.id);\n if (!this._shouldShowCommentReplies(ba)) {\n this.onToggleReplies(aa);\n };\n if ((this.refs && this.refs[(\"replycomposer-\" + ba)])) {\n this.refs[(\"replycomposer-\" + ba)].focus();\n };\n },\n onComment: function() {\n if ((this.refs && this.refs.toplevelcomposer)) {\n this.refs.toplevelcomposer.focus();\n };\n }\n });\n e.exports = z;\n});\n__d(\"UFIController\", [\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"DOMQuery\",\"ImmutableObject\",\"LayerRemoveOnHide\",\"LiveTimer\",\"Parent\",\"React\",\"ReactMount\",\"ShortProfiles\",\"UFI.react\",\"UFIActionLinkController\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"UFIUserActions\",\"URI\",\"copyProperties\",\"isEmpty\",\"tx\",\"UFICommentTemplates\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"ImmutableObject\"), m = b(\"LayerRemoveOnHide\"), n = b(\"LiveTimer\"), o = b(\"Parent\"), p = b(\"React\"), q = b(\"ReactMount\"), r = b(\"ShortProfiles\"), s = b(\"UFI.react\"), t = b(\"UFIActionLinkController\"), u = b(\"UFICentralUpdates\"), v = b(\"UFIComments\"), w = b(\"UFIConstants\"), x = b(\"UFIFeedbackTargets\"), y = b(\"UFIInstanceState\"), z = b(\"UFIUserActions\"), aa = b(\"URI\"), ba = b(\"copyProperties\"), ca = b(\"isEmpty\"), da = b(\"tx\"), ea = b(\"UFICommentTemplates\"), fa = function(ia, ja, ka, la) {\n var ma = ((ia.offset + ia.length) === ja);\n return {\n offset: ia.offset,\n length: (((ma && ga(la))) ? (ka - ia.offset) : ia.length)\n };\n }, ga = function(ia) {\n return ((ia == w.UFIPayloadSourceType.USER_ACTION) || (ia == w.UFIPayloadSourceType.LIVE_SEND));\n };\n function ha(ia, ja, ka) {\n this.root = ia;\n this.id = ja.ftentidentifier;\n this.source = ja.source;\n this._ufiInstanceID = ja.instanceid;\n this._contextArgs = ja;\n this._contextArgs.rootid = this.root.id;\n this._verifiedCommentsExpanded = false;\n var la = ka.feedbacktargets[0];\n this.actionLink = new t(ia, this._contextArgs, la);\n this.orderingMode = la.defaultcommentorderingmode;\n var ma = ka.commentlists.comments[this.id][this.orderingMode];\n this.replyRanges = {\n };\n this.repliesMap = {\n };\n this.showRepliesMap = {\n };\n this.showReplySocialSentenceMap = {\n };\n this.commentcounts = {\n };\n this.commentcounts[this.id] = v.getCommentCount(this.id);\n var na = {\n }, oa = (la.orderingmodes || [{\n value: this.orderingMode\n },]);\n oa.forEach(function(sa) {\n na[sa.value] = ba({\n }, ma.range);\n });\n this.ranges = na;\n if (ka.commentlists.replies) {\n for (var pa = 0; (pa < ma.values.length); pa++) {\n var qa = ma.values[pa], ra = ka.commentlists.replies[qa];\n if (ra) {\n this.commentcounts[qa] = v.getCommentCount(qa);\n this.replyRanges[qa] = ba({\n }, ra.range);\n }\n ;\n }\n };\n this._loggingOffset = null;\n this._ufi = null;\n this.ufiCentralUpdatesSubscriptions = [u.subscribe(\"feedback-updated\", function(sa, ta) {\n var ua = ta.updates, va = ta.payloadSource;\n if (((va != w.UFIPayloadSourceType.COLLAPSED_UFI) && (this.id in ua))) {\n this.fetchAndUpdate(this.render.bind(this), va);\n };\n }.bind(this)),u.subscribe(\"feedback-id-changed\", function(sa, ta) {\n var ua = ta.updates;\n if ((this.id in ua)) {\n this.id = ua[this.id];\n };\n }.bind(this)),u.subscribe(\"instance-updated\", function(sa, ta) {\n var ua = ta.updates;\n if ((this._ufiInstanceID in ua)) {\n var va = ua[this._ufiInstanceID];\n if (va.editcommentid) {\n this.render(ta.payloadSource);\n };\n }\n ;\n }.bind(this)),u.subscribe(\"update-comment-lists\", function(sa, ta) {\n if ((ta.commentlists && ta.commentlists.replies)) {\n var ua = ta.commentlists.replies;\n for (var va in ua) {\n if (((((this.id != va) && ua[va]) && (ua[va].ftentidentifier == this.id)) && !this.replyRanges[va])) {\n this.replyRanges[va] = ua[va].range;\n };\n };\n }\n ;\n }.bind(this)),];\n this.clearPageletSubscription = g.subscribe(\"pagelet/destroy\", this.onPageletDestroy.bind(this));\n this.clearPageSubscription = g.subscribe(\"ufi/page_cleared\", this._onDestroy.bind(this));\n u.handleUpdate(w.UFIPayloadSourceType.INITIAL_SERVER, ka);\n if (this._contextArgs.viewas) {\n this.viewasUFICleanSubscription = g.subscribe(\"pre_page_transition\", function(sa, ta) {\n if ((this._contextArgs.viewas !== aa(ta.to).getQueryData(\"viewas\"))) {\n v.resetFeedbackTarget(this.id);\n };\n }.bind(this));\n };\n h.loadModules([\"ScrollAwareDOM\",], function(sa) {\n q.scrollMonitor = sa.monitor;\n });\n };\n ba(ha.prototype, {\n _getParentForm: function() {\n if (!this._form) {\n this._form = o.byTag(this.root, \"form\");\n };\n return this._form;\n },\n _onTargetLikeToggle: function(event) {\n var ia = !this.feedback.hasviewerliked;\n z.changeLike(this.id, ia, {\n source: this.source,\n target: event.target,\n rootid: this._contextArgs.rootid\n });\n event.preventDefault();\n },\n _onCommentLikeToggle: function(ia, event) {\n var ja = !ia.hasviewerliked;\n z.changeCommentLike(ia.id, ja, {\n source: this.source,\n target: event.target\n });\n },\n _onCommentEdit: function(ia) {\n y.updateState(this._ufiInstanceID, \"isediting\", true);\n y.updateState(this._ufiInstanceID, \"editcommentid\", ia.id);\n },\n _onEditAttempt: function(ia, ja, event) {\n if ((!ja.visibleValue && !ja.attachedPhoto)) {\n this._onCommentRemove(ia, event);\n }\n else z.editComment(ia.id, ja.visibleValue, ja.encodedValue, {\n source: this._contextArgs.source,\n target: event.target,\n attachedPhoto: ja.attachedPhoto\n });\n ;\n y.updateStateField(this._ufiInstanceID, \"locallycomposed\", ia.id, true);\n this._onEditReset();\n },\n _onEditReset: function() {\n y.updateState(this._ufiInstanceID, \"isediting\", false);\n y.updateState(this._ufiInstanceID, \"editcommentid\", null);\n },\n _onCommentRemove: function(ia, event) {\n var ja = ea[\":fb:ufi:hide-dialog-template\"].build();\n j.setContent(ja.getNode(\"body\"), \"Are you sure you want to delete this comment?\");\n j.setContent(ja.getNode(\"title\"), \"Delete Comment\");\n h.loadModules([\"DialogX\",], function(ka) {\n var la = new ka({\n modal: true,\n width: 465,\n addedBehaviors: [m,]\n }, ja.getRoot());\n la.subscribe(\"confirm\", function() {\n z.removeComment(ia.id, {\n source: this.source,\n oneclick: false,\n target: event.target,\n timelinelogdata: this._contextArgs.timelinelogdata\n });\n la.hide();\n }.bind(this));\n la.show();\n }.bind(this));\n },\n _onCommentOneClickRemove: function(ia, event) {\n z.removeComment(ia.id, {\n source: this.source,\n oneclick: true,\n target: event.target,\n timelinelogdata: this._contextArgs.timelinelogdata\n });\n },\n _onCommentUndoOneClickRemove: function(ia, event) {\n var ja = ((this.feedback.canremoveall && this.feedback.isownerpage) && (this.feedback.actorforpost !== this.authorProfiles[ia.author]));\n z.undoRemoveComment(ia.id, ja, {\n source: this.source,\n target: event.target\n });\n },\n _onCommentHideAsSpam: function(ia, event) {\n z.setHideAsSpam(ia.id, true, {\n source: this.source,\n target: event.target\n });\n },\n _onCommentMarkAsNotSpam: function(ia, event) {\n z.setHideAsSpam(ia.id, false, {\n source: this.source,\n target: event.target\n });\n },\n _onCommentTranslate: function(ia, event) {\n z.translateComment(ia, {\n source: this.source,\n target: event.target\n });\n },\n _onCommentInlineBanChange: function(ia, ja, event) {\n z.banUser(ia, this.feedback.ownerid, ja, {\n source: this.source,\n target: event.target\n });\n },\n _onCommentInlineBan: function(ia, event) {\n this._onCommentInlineBanChange(ia, true, event);\n },\n _onCommentUndoInlineBan: function(ia, event) {\n this._onCommentInlineBanChange(ia, false, event);\n },\n _fetchSpamComments: function(ia, ja) {\n z.fetchSpamComments(this.id, ia, ja, this._contextArgs.viewas);\n },\n _removePreview: function(ia, event) {\n z.removePreview(ia, {\n source: this.source,\n target: event.target\n });\n },\n _retrySubmit: function(ia) {\n h.loadModules([\"UFIRetryActions\",], function(ja) {\n ja.retrySubmit(ia, {\n source: this.source\n });\n }.bind(this));\n },\n _ensureCommentsExpanded: function() {\n if (this._verifiedCommentsExpanded) {\n return\n };\n var ia = o.byTag(this.root, \"form\");\n if (ia) {\n i.removeClass(ia, \"collapsed_comments\");\n this._verifiedCommentsExpanded = true;\n }\n ;\n },\n render: function(ia) {\n var ja = (this.comments.length || !ca(this.feedback.likesentences.current));\n if ((ja && ga(ia))) {\n this._ensureCommentsExpanded();\n };\n if ((this._loggingOffset === null)) {\n this._loggingOffset = ((this.ranges[this.orderingMode].offset + this.comments.length) - 1);\n };\n var ka = (this.feedback.replysocialsentencemaxreplies || -1), la = {\n };\n la[this.id] = v.getDeletedCount(this.id);\n this.comments.forEach(function(oa) {\n la[oa.id] = v.getDeletedCount(oa.id);\n });\n var ma = ba({\n }, this.replyRanges);\n ma[this.id] = this.ranges[this.orderingMode];\n ma = new l(ma);\n var na = s({\n feedback: this.feedback,\n id: this.id,\n onTargetLikeToggle: this._onTargetLikeToggle.bind(this),\n onCommentLikeToggle: this._onCommentLikeToggle.bind(this),\n onCommentRemove: this._onCommentRemove.bind(this),\n onCommentHideAsSpam: this._onCommentHideAsSpam.bind(this),\n onCommentMarkAsNotSpam: this._onCommentMarkAsNotSpam.bind(this),\n onCommentEdit: this._onCommentEdit.bind(this),\n onCommentOneClickRemove: this._onCommentOneClickRemove.bind(this),\n onCommentUndoOneClickRemove: this._onCommentUndoOneClickRemove.bind(this),\n onCommentTranslate: this._onCommentTranslate.bind(this),\n onCommentInlineBan: this._onCommentInlineBan.bind(this),\n onCommentUndoInlineBan: this._onCommentUndoInlineBan.bind(this),\n onEditAttempt: this._onEditAttempt.bind(this),\n onCancelEdit: this._onEditReset.bind(this),\n onChangeRange: this._changeRange.bind(this),\n onSpamFetch: this._fetchSpamComments.bind(this),\n onPreviewRemove: this._removePreview.bind(this),\n onRetrySubmit: this._retrySubmit.bind(this),\n onOrderingModeChange: this._onOrderingModeChange.bind(this),\n contextArgs: this._contextArgs,\n repliesMap: this.repliesMap,\n showRepliesMap: this.showRepliesMap,\n showReplySocialSentenceMap: this.showReplySocialSentenceMap,\n commentCounts: this.commentcounts,\n deletedCounts: la,\n availableComments: this.comments,\n source: this.source,\n availableRanges: ma,\n pageSize: w.defaultPageSize,\n authorProfiles: this.authorProfiles,\n instanceid: this._ufiInstanceID,\n loggingOffset: this._loggingOffset,\n replySocialSentenceMaxReplies: ka,\n giftRecipient: this._giftRecipient,\n orderingMode: this.orderingMode\n });\n this._ufi = p.renderComponent(na, this.root);\n n.updateTimeStamps();\n if (this._getParentForm()) {\n g.inform(\"ufi/changed\", {\n form: this._getParentForm()\n });\n };\n if (((ia != w.UFIPayloadSourceType.INITIAL_SERVER) && (ia != w.UFIPayloadSourceType.COLLAPSED_UFI))) {\n g.inform(\"reflow\");\n };\n },\n fetchAndUpdate: function(ia, ja) {\n x.getFeedbackTarget(this.id, function(ka) {\n var la = v.getCommentCount(this.id), ma = fa(this.ranges[this.orderingMode], this.commentcounts[this.id], la, ja);\n v.getCommentsInRange(this.id, ma, this.orderingMode, this._contextArgs.viewas, function(na) {\n var oa = [], pa = {\n }, qa = {\n };\n if (ka.actorforpost) {\n oa.push(ka.actorforpost);\n };\n for (var ra = 0; (ra < na.length); ra++) {\n if (na[ra].author) {\n oa.push(na[ra].author);\n };\n if (na[ra].socialcontext) {\n oa.push(na[ra].socialcontext.topmutualid);\n };\n if ((na[ra].replyauthors && na[ra].replyauthors.length)) {\n for (var sa = 0; (sa < na[ra].replyauthors.length); sa++) {\n oa.push(na[ra].replyauthors[sa]);;\n }\n };\n if (ka.isthreaded) {\n var ta = na[ra].id, ua = v.getCommentCount(ta), va;\n if (this.replyRanges[ta]) {\n va = fa(this.replyRanges[ta], this.commentcounts[ta], ua, ja);\n }\n else va = {\n offset: 0,\n length: Math.min(ua, 2)\n };\n ;\n pa[ta] = va;\n qa[ta] = ua;\n }\n ;\n };\n v.getRepliesInRanges(this.id, pa, function(wa) {\n for (var xa = 0; (xa < na.length); xa++) {\n var ya = na[xa].id, za = (wa[ya] || []);\n for (var ab = 0; (ab < za.length); ab++) {\n if (za[ab].author) {\n oa.push(za[ab].author);\n };\n if (za[ab].socialcontext) {\n oa.push(za[ab].socialcontext.topmutualid);\n };\n };\n };\n if (this._contextArgs.giftoccasion) {\n oa.push(ka.actorid);\n };\n r.getMulti(oa, function(bb) {\n if (this._contextArgs.giftoccasion) {\n this._giftRecipient = bb[ka.actorid];\n };\n this.authorProfiles = bb;\n this.feedback = ka;\n this.commentcounts[this.id] = la;\n this.comments = na;\n this.ranges[this.orderingMode] = ma;\n for (var cb = 0; (cb < na.length); cb++) {\n var db = na[cb].id, eb = pa[db];\n this.repliesMap[db] = wa[db];\n this.replyRanges[db] = eb;\n this.commentcounts[db] = qa[db];\n this.showRepliesMap[db] = (eb && (eb.length > 0));\n if (((this.showReplySocialSentenceMap[db] === undefined) && (qa[db] > 0))) {\n this.showReplySocialSentenceMap[db] = !this.showRepliesMap[db];\n };\n };\n ia(ja);\n if ((ja == w.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH)) {\n g.inform(\"CommentUFI.Pager\");\n };\n }.bind(this));\n }.bind(this));\n }.bind(this));\n }.bind(this));\n },\n _changeRange: function(ia, ja) {\n if ((ia == this.id)) {\n this.ranges[this.orderingMode] = ja;\n }\n else this.replyRanges[ia] = ja;\n ;\n this.fetchAndUpdate(this.render.bind(this), w.UFIPayloadSourceType.USER_ACTION);\n },\n onPageletDestroy: function(ia, ja) {\n if (k.contains(ja.root, this.root)) {\n this._onDestroy();\n };\n },\n _onDestroy: function() {\n p.unmountAndReleaseReactRootNode(this.root);\n this.ufiCentralUpdatesSubscriptions.forEach(u.unsubscribe.bind(u));\n g.unsubscribe(this.clearPageletSubscription);\n g.unsubscribe(this.clearPageSubscription);\n (this.viewasUFICleanSubscription && g.unsubscribe(this.viewasUFICleanSubscription));\n },\n _onOrderingModeChange: function(ia) {\n this.orderingMode = ia;\n this.fetchAndUpdate(this.render.bind(this), w.UFIPayloadSourceType.USER_ACTION);\n }\n });\n e.exports = ha;\n});\n__d(\"Ease\", [], function(a, b, c, d, e, f) {\n var g = {\n makePowerOut: function(h) {\n return function(i) {\n var j = (1 - Math.pow((1 - i), h));\n return ((((j * 10000) | 0)) / 10000);\n };\n },\n makePowerIn: function(h) {\n return function(i) {\n var j = Math.pow(i, h);\n return ((((j * 10000) | 0)) / 10000);\n };\n },\n makePowerInOut: function(h) {\n return function(i) {\n var j = ((((i *= 2) < 1)) ? (Math.pow(i, h) * 233395) : (1 - (Math.abs(Math.pow((2 - i), h)) * 233426)));\n return ((((j * 10000) | 0)) / 10000);\n };\n },\n sineOut: function(h) {\n return Math.sin(((h * Math.PI) * 233504));\n },\n sineIn: function(h) {\n return (1 - Math.cos(((h * Math.PI) * 233557)));\n },\n sineInOut: function(h) {\n return (-233593 * ((Math.cos((Math.PI * h)) - 1)));\n },\n circOut: function(h) {\n return Math.sqrt((1 - ((--h) * h)));\n },\n circIn: function(h) {\n return -((Math.sqrt((1 - (h * h))) - 1));\n },\n circInOut: function(h) {\n return ((((h *= 2) < 1)) ? (-233763 * ((Math.sqrt((1 - (h * h))) - 1))) : (233787 * ((Math.sqrt((1 - ((h -= 2) * h))) + 1))));\n },\n bounceOut: function(h) {\n if ((h < (1 / 2.75))) {\n return (((7.5625 * h) * h));\n }\n else if ((h < (2 / 2.75))) {\n return ((((7.5625 * (h -= (1.5 / 2.75))) * h) + 233923));\n }\n else if ((h < (2.5 / 2.75))) {\n return ((((7.5625 * (h -= (2.25 / 2.75))) * h) + 233981));\n }\n else return ((((7.5625 * (h -= (2.625 / 2.75))) * h) + 234027))\n \n \n ;\n },\n bounceIn: function(h) {\n return (1 - g.bounceOut((1 - h)));\n },\n bounceInOut: function(h) {\n return (((h < 234121)) ? (g.bounceIn((h * 2)) * 234141) : ((g.bounceOut(((h * 2) - 1)) * 234163) + 234166));\n },\n _makeBouncy: function(h) {\n h = (h || 1);\n return function(i) {\n i = (((((1 - Math.cos(((i * Math.PI) * h)))) * ((1 - i)))) + i);\n return ((i <= 1) ? i : (2 - i));\n };\n },\n makeBounceOut: function(h) {\n return this._makeBouncy(h);\n },\n makeBounceIn: function(h) {\n var i = this._makeBouncy(h);\n return function(j) {\n return (1 - i((1 - j)));\n };\n },\n makeElasticOut: function(h, i) {\n ((h < 1) && (h = 1));\n var j = (Math.PI * 2);\n return function(k) {\n if (((k === 0) || (k === 1))) {\n return k\n };\n var l = ((i / j) * Math.asin((1 / h)));\n return (((h * Math.pow(2, (-10 * k))) * Math.sin(((((k - l)) * j) / i))) + 1);\n };\n },\n makeElasticIn: function(h, i) {\n ((h < 1) && (h = 1));\n var j = (Math.PI * 2);\n return function(k) {\n if (((k === 0) || (k === 1))) {\n return k\n };\n var l = ((i / j) * Math.asin((1 / h)));\n return -(((h * Math.pow(2, (10 * (k -= 1)))) * Math.sin(((((k - l)) * j) / i))));\n };\n },\n makeElasticInOut: function(h, i) {\n ((h < 1) && (h = 1));\n i *= 1.5;\n var j = (Math.PI * 2);\n return function(k) {\n var l = ((i / j) * Math.asin((1 / h)));\n return ((((k *= 2) < 1)) ? (((-234914 * h) * Math.pow(2, (10 * (k -= 1)))) * Math.sin(((((k - l)) * j) / i))) : (1 + (((234963 * h) * Math.pow(2, (-10 * (k -= 1)))) * Math.sin(((((k - l)) * j) / i)))));\n };\n },\n makeBackOut: function(h) {\n return function(i) {\n return ((((--i * i) * (((((h + 1)) * i) + h))) + 1));\n };\n },\n makeBackIn: function(h) {\n return function(i) {\n return ((i * i) * (((((h + 1)) * i) - h)));\n };\n },\n makeBackInOut: function(h) {\n h *= 1.525;\n return function(i) {\n return ((((i *= 2) < 1)) ? (235232 * (((i * i) * (((((h + 1)) * i) - h))))) : (235253 * (((((i -= 2) * i) * (((((h + 1)) * i) + h))) + 2))));\n };\n },\n easeOutExpo: function(h) {\n return (-Math.pow(2, (-10 * h)) + 1);\n }\n };\n g.elasticOut = g.makeElasticOut(1, 235372);\n g.elasticIn = g.makeElasticIn(1, 235406);\n g.elasticInOut = g.makeElasticInOut(1, 235446);\n g.backOut = g.makeBackOut(1.7);\n g.backIn = g.makeBackIn(1.7);\n g.backInOut = g.makeBackInOut(1.7);\n e.exports = g;\n});\n__d(\"EntstreamCollapsedUFIActions\", [\"PopupWindow\",\"React\",\"TrackingNodes\",\"URI\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"PopupWindow\"), h = b(\"React\"), i = b(\"TrackingNodes\"), j = b(\"URI\"), k = b(\"cx\"), l = b(\"tx\"), m = h.createClass({\n displayName: \"EntstreamCollapsedUFIActions\",\n getLikeButton: function() {\n return this.refs.likeButton.getDOMNode();\n },\n getLikeIcon: function() {\n return this.refs.likeIcon.getDOMNode();\n },\n render: function() {\n var n;\n if ((this.props.shareHref !== null)) {\n var o = i.getTrackingInfo(i.types.SHARE_LINK), p = j(this.props.shareHref), q = [h.DOM.i({\n className: \"_6k1 _528f\"\n }),\"Share\",];\n if ((p.getPath().indexOf(\"/ajax\") === 0)) {\n n = h.DOM.a({\n ajaxify: this.props.shareHref,\n className: \"_6j_ _5cix\",\n \"data-ft\": o,\n href: \"#\",\n rel: \"dialog\",\n title: \"Share this item\"\n }, q);\n }\n else {\n var r = function() {\n g.open(this.props.shareHref, 480, 600);\n return false;\n }.bind(this);\n n = h.DOM.a({\n className: \"_6j_ _5cix\",\n \"data-ft\": o,\n href: this.props.shareHref,\n onClick: r,\n target: \"_blank\",\n title: \"Share this item\"\n }, q);\n }\n ;\n }\n ;\n var s;\n if (this.props.canComment) {\n var t = \"_6k4 _528f\", u = [h.DOM.i({\n className: t\n }),\"Comment\",], v = \"_6k2 _5cix\", w = i.getTrackingInfo(i.types.COMMENT_LINK);\n if (this.props.storyHref) {\n s = h.DOM.a({\n className: v,\n \"data-ft\": w,\n href: this.props.storyHref,\n target: \"_blank\",\n title: \"Write a comment...\"\n }, u);\n }\n else s = h.DOM.a({\n className: v,\n \"data-ft\": w,\n href: \"#\",\n onClick: this.props.onCommentClick,\n title: \"Write a comment...\"\n }, u);\n ;\n }\n ;\n var x;\n if (this.props.canLike) {\n var y = (((((this.props.hasViewerLiked ? \"_6k5\" : \"\")) + ((\" \" + \"_6k6\"))) + ((\" \" + \"_5cix\")))), z = i.getTrackingInfo((this.props.hasViewerLiked ? i.types.UNLIKE_LINK : i.types.LIKE_LINK)), aa = (this.props.hasViewerLiked ? \"Unlike this\" : \"Like this\");\n x = h.DOM.a({\n className: y,\n \"data-ft\": z,\n href: \"#\",\n onClick: this.props.onLike,\n onMouseDown: this.props.onLikeMouseDown,\n ref: \"likeButton\",\n title: aa\n }, h.DOM.i({\n className: \"_6k7 _528f\",\n ref: \"likeIcon\"\n }), \"Like\", h.DOM.div({\n className: \"_55k4\"\n }));\n }\n ;\n return (h.DOM.div({\n className: \"_5ciy\"\n }, x, s, n));\n }\n });\n e.exports = m;\n});\n__d(\"EntstreamCollapsedUFISentence\", [\"Bootloader\",\"NumberFormat\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"URI\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"NumberFormat\"), i = b(\"ProfileBrowserLink\"), j = b(\"ProfileBrowserTypes\"), k = b(\"React\"), l = b(\"URI\"), m = b(\"cx\"), n = b(\"tx\"), o = k.createClass({\n displayName: \"EntstreamCollapsedUFISentence\",\n _showShareDialog: function(event) {\n event = event.nativeEvent;\n if (event.isDefaultRequested()) {\n return\n };\n g.loadModules([\"EntstreamShareOverlay\",], function(p) {\n p.display(this.props.feedback.targetfbid, this._getShareString());\n }.bind(this));\n event.prevent();\n },\n _getShareString: function() {\n var p = this.props.feedback.sharecount, q = (this.props.numberDelimiter || \",\");\n if ((p === 1)) {\n return \"1 Share\";\n }\n else if ((p > 1)) {\n var r = h.formatIntegerWithDelimiter(p, q);\n return n._(\"{count} Shares\", {\n count: r\n });\n }\n \n ;\n },\n render: function() {\n var p = this.props.feedback, q = p.likecount, r = this.props.commentCount, s = p.sharecount, t = p.seencount, u = this.props.hasAttachedUFIExpanded, v = (this.props.numberDelimiter || \",\");\n if (u) {\n q = 0;\n r = 0;\n }\n ;\n if ((((!q && !r) && !s) && !t)) {\n return k.DOM.span(null)\n };\n var w;\n if ((q === 1)) {\n w = \"1 Like\";\n }\n else if ((q > 1)) {\n var x = h.formatIntegerWithDelimiter(q, v);\n w = n._(\"{count} Likes\", {\n count: x\n });\n }\n \n ;\n var y;\n if ((r === 1)) {\n y = \"1 Comment\";\n }\n else if ((r > 1)) {\n var z = h.formatIntegerWithDelimiter(r, v);\n y = n._(\"{count} Comments\", {\n count: z\n });\n }\n \n ;\n var aa = this._getShareString(), ba, ca, da;\n if (w) {\n ca = new l(\"/ajax/like/tooltip.php\").setQueryData({\n comment_fbid: p.targetfbid,\n comment_from: p.actorforpost,\n seen_user_fbids: true\n });\n var ea = (((y || aa) ? \"prm\" : \"\"));\n ba = j.LIKES;\n da = {\n id: p.targetfbid\n };\n var fa = i.constructDialogURI(ba, da).toString();\n if (this.props.storyHref) {\n w = null;\n }\n else w = k.DOM.a({\n ajaxify: fa,\n className: ea,\n href: i.constructPageURI(ba, da).toString(),\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"data-tooltip-uri\": ca.toString(),\n rel: \"dialog\"\n }, w);\n ;\n }\n ;\n var ga;\n if ((t > 0)) {\n ba = j.GROUP_MESSAGE_VIEWERS;\n da = {\n id: p.targetfbid\n };\n var ha = i.constructDialogURI(ba, da), ia = i.constructPageURI(ba, da);\n ca = new l(\"/ajax/ufi/seen_tooltip.php\").setQueryData({\n ft_ent_identifier: p.entidentifier,\n displayed_count: t\n });\n var ja = h.formatIntegerWithDelimiter(t, v);\n if (p.seenbyall) {\n ga = \"Seen by everyone\";\n }\n else ga = ((ja == 1) ? \"Seen by 1\" : n._(\"Seen by {count}\", {\n count: ja\n }));\n ;\n ga = k.DOM.a({\n ajaxify: ha.toString(),\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"data-tooltip-uri\": ca.toString(),\n href: ia.toString(),\n rel: \"dialog\",\n tabindex: \"-1\"\n }, ga);\n }\n ;\n if (y) {\n var ka = ((aa ? \"prm\" : \"\"));\n if (this.props.storyHref) {\n y = k.DOM.a({\n className: ka,\n href: this.props.storyHref,\n target: \"_blank\"\n }, y);\n }\n else y = k.DOM.a({\n className: ka,\n onClick: this.props.onCommentClick\n }, y);\n ;\n }\n ;\n if (aa) {\n var la = new l(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n id: p.targetfbid\n });\n if (this.props.storyHref) {\n aa = k.DOM.a({\n href: la.toString(),\n target: \"_blank\"\n }, aa);\n }\n else aa = k.DOM.a({\n href: la.toString(),\n onClick: this._showShareDialog,\n rel: \"ignore\"\n }, aa);\n ;\n }\n ;\n return (k.DOM.span({\n className: \"_5civ\"\n }, w, y, aa, ga));\n }\n });\n e.exports = o;\n});\n__d(\"EntstreamCollapsedUFI\", [\"Event\",\"Animation\",\"BrowserSupport\",\"CSS\",\"DOM\",\"Ease\",\"EntstreamCollapsedUFIActions\",\"EntstreamCollapsedUFISentence\",\"React\",\"TrackingNodes\",\"Vector\",\"cx\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"Animation\"), i = b(\"BrowserSupport\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Ease\"), m = b(\"EntstreamCollapsedUFIActions\"), n = b(\"EntstreamCollapsedUFISentence\"), o = b(\"React\"), p = b(\"TrackingNodes\"), q = b(\"Vector\"), r = b(\"cx\"), s = b(\"queryThenMutateDOM\"), t = 16, u = o.createClass({\n displayName: \"EntstreamCollapsedUFI\",\n _animate: function(v, w, x, y) {\n if (!i.hasCSSTransforms()) {\n return\n };\n var z = this.refs.icons.getLikeIcon();\n (this._animation && this._animation.stop());\n this._animation = new h(z).from(\"scaleX\", v).from(\"scaleY\", v).to(\"scaleX\", w).to(\"scaleY\", w).duration(x);\n (y && this._animation.ease(y));\n this._animation.go();\n },\n bounceLike: function() {\n this._animate(1.35, 1, 750, l.bounceOut);\n },\n shrinkLike: function() {\n this._animate(1, 241196, 150);\n this._mouseUpListener = g.listen(document.body, \"mouseup\", this._onMouseUp);\n },\n _onMouseUp: function(event) {\n this._mouseUpListener.remove();\n if (!k.contains(this.refs.icons.getLikeButton(), event.getTarget())) {\n this._animate(241417, 1, 150);\n };\n },\n render: function() {\n var v = this.props.feedback, w = p.getTrackingInfo(p.types.BLINGBOX);\n return (o.DOM.div({\n className: \"clearfix\"\n }, m({\n canLike: v.viewercanlike,\n canComment: v.cancomment,\n hasViewerLiked: v.hasviewerliked,\n onCommentClick: this.props.onCommentClick,\n onLike: this.props.onLike,\n onLikeMouseDown: this.props.onLikeMouseDown,\n ref: \"icons\",\n shareHref: this.props.shareHref,\n storyHref: this.props.storyHref\n }), o.DOM.div({\n className: \"_6j-\",\n \"data-ft\": w,\n ref: \"sentence\"\n }, n({\n commentCount: this.props.commentCount,\n feedback: v,\n hasAttachedUFIExpanded: this.props.hasAttachedUFIExpanded,\n numberDelimiter: this.props.numberDelimiter,\n onCommentClick: this.props.onCommentClick,\n storyHref: this.props.storyHref\n }))));\n },\n componentDidMount: function(v) {\n var w = this.refs.icons.getDOMNode(), x = this.refs.sentence.getDOMNode(), y, z, aa;\n s(function() {\n y = q.getElementDimensions(v).x;\n z = q.getElementDimensions(w).x;\n aa = q.getElementDimensions(x).x;\n }, function() {\n if (((z + aa) > (y + t))) {\n j.addClass(v, \"_4nej\");\n };\n });\n }\n });\n e.exports = u;\n});\n__d(\"EntstreamCollapsedUFIController\", [\"Bootloader\",\"CommentPrelude\",\"CSS\",\"DOM\",\"EntstreamCollapsedUFI\",\"React\",\"ReactMount\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIUserActions\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"CommentPrelude\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"EntstreamCollapsedUFI\"), l = b(\"React\"), m = b(\"ReactMount\"), n = b(\"UFICentralUpdates\"), o = b(\"UFIComments\"), p = b(\"UFIConstants\"), q = b(\"UFIFeedbackTargets\"), r = b(\"UFIUserActions\"), s = b(\"copyProperties\"), t = b(\"cx\"), u = p.UFIPayloadSourceType;\n function v(w, x, y) {\n this._root = w;\n this._id = y.ftentidentifier;\n this._contextArgs = y;\n this._ufiVisible = y.hasattachedufiexpanded;\n n.subscribe(\"feedback-updated\", function(z, aa) {\n if (((aa.payloadSource != u.INITIAL_SERVER) && (this._id in aa.updates))) {\n this.render();\n };\n }.bind(this));\n n.handleUpdate(p.UFIPayloadSourceType.COLLAPSED_UFI, x);\n g.loadModules([\"ScrollAwareDOM\",], function(z) {\n m.scrollMonitor = z.monitor;\n });\n };\n s(v.prototype, {\n _onLike: function(event) {\n q.getFeedbackTarget(this._id, function(w) {\n r.changeLike(this._id, !w.hasviewerliked, {\n source: this._contextArgs.source,\n target: event.target,\n rootid: j.getID(this._root)\n });\n }.bind(this));\n this._ufi.bounceLike();\n event.preventDefault();\n },\n _onLikeMouseDown: function(event) {\n this._ufi.shrinkLike();\n event.preventDefault();\n },\n _onCommentClick: function(event) {\n if (!this._ufiVisible) {\n this._ufiVisible = true;\n i.addClass(this._root, \"_6ka\");\n }\n ;\n h.click(this._root);\n event.preventDefault();\n },\n render: function() {\n q.getFeedbackTarget(this._id, function(w) {\n var x = k({\n commentCount: o.getCommentCount(this._id),\n feedback: w,\n hasAttachedUFIExpanded: this._contextArgs.hasattachedufiexpanded,\n numberDelimiter: this._contextArgs.numberdelimiter,\n onCommentClick: this._onCommentClick.bind(this),\n onLike: this._onLike.bind(this),\n onLikeMouseDown: this._onLikeMouseDown.bind(this),\n shareHref: this._contextArgs.sharehref,\n storyHref: this._contextArgs.storyhref\n });\n l.renderComponent(x, this._root);\n this._ufi = (this._ufi || x);\n }.bind(this));\n }\n });\n e.exports = v;\n});\n__d(\"TypeaheadUtil\", [\"repeatString\",], function(a, b, c, d, e, f) {\n var g = b(\"repeatString\"), h = /[ ]+/g, i = /[^ ]+/g, j = /[.,+*?$|#{}()\\^\\-\\[\\]\\\\\\/!@%'\"~=<>_:;\\u30fb\\u3001\\u3002\\u3008-\\u3011\\u3014-\\u301f\\uff1a-\\uff1f\\uff01-\\uff0f\\uff3b-\\uff40\\uff5b-\\uff65\\u2E2E\\u061f\\u066a-\\u066c\\u061b\\u060c\\u060d\\uFD3e\\uFD3F\\u1801\\u0964\\u104a\\u104b\\u2010-\\u2027\\u2030-\\u205e\\u00a1-\\u00b1\\u00b4-\\u00b8\\u00ba\\u00bb\\u00bf]/g, k = {\n }, l = {\n a: \"\\u0430 \\u00e0 \\u00e1 \\u00e2 \\u00e3 \\u00e4 \\u00e5\",\n b: \"\\u0431\",\n c: \"\\u0446 \\u00e7 \\u010d\",\n d: \"\\u0434 \\u00f0 \\u010f \\u0111\",\n e: \"\\u044d \\u0435 \\u00e8 \\u00e9 \\u00ea \\u00eb \\u011b\",\n f: \"\\u0444\",\n g: \"\\u0433 \\u011f\",\n h: \"\\u0445 \\u0127\",\n i: \"\\u0438 \\u00ec \\u00ed \\u00ee \\u00ef \\u0131\",\n j: \"\\u0439\",\n k: \"\\u043a \\u0138\",\n l: \"\\u043b \\u013e \\u013a \\u0140 \\u0142\",\n m: \"\\u043c\",\n n: \"\\u043d \\u00f1 \\u0148 \\u0149 \\u014b\",\n o: \"\\u043e \\u00f8 \\u00f6 \\u00f5 \\u00f4 \\u00f3 \\u00f2\",\n p: \"\\u043f\",\n r: \"\\u0440 \\u0159 \\u0155\",\n s: \"\\u0441 \\u015f \\u0161 \\u017f\",\n t: \"\\u0442 \\u0165 \\u0167 \\u00fe\",\n u: \"\\u0443 \\u044e \\u00fc \\u00fb \\u00fa \\u00f9 \\u016f\",\n v: \"\\u0432\",\n y: \"\\u044b \\u00ff \\u00fd\",\n z: \"\\u0437 \\u017e\",\n ae: \"\\u00e6\",\n oe: \"\\u0153\",\n ts: \"\\u0446\",\n ch: \"\\u0447\",\n ij: \"\\u0133\",\n sh: \"\\u0448\",\n ss: \"\\u00df\",\n ya: \"\\u044f\"\n };\n for (var m in l) {\n var n = l[m].split(\" \");\n for (var o = 0; (o < n.length); o++) {\n k[n[o]] = m;;\n };\n };\n var p = {\n };\n function q(w) {\n return (w ? w.replace(j, \" \") : \"\");\n };\n function r(w) {\n w = w.toLowerCase();\n var x = \"\", y = \"\";\n for (var z = w.length; z--; ) {\n y = w.charAt(z);\n x = (((k[y] || y)) + x);\n };\n return x.replace(h, \" \");\n };\n function s(w) {\n var x = [], y = i.exec(w);\n while (y) {\n y = y[0];\n x.push(y);\n y = i.exec(w);\n };\n return x;\n };\n function t(w, x) {\n if (!p.hasOwnProperty(w)) {\n var y = r(w), z = q(y);\n p[w] = {\n value: w,\n flatValue: y,\n tokens: s(z),\n isPrefixQuery: (z && (z[(z.length - 1)] != \" \"))\n };\n }\n ;\n if ((x && (typeof p[w].sortedTokens == \"undefined\"))) {\n p[w].sortedTokens = p[w].tokens.slice();\n p[w].sortedTokens.sort(function(aa, ba) {\n return (ba.length - aa.length);\n });\n }\n ;\n return p[w];\n };\n function u(w, x, y) {\n var z = t(x, (w == \"prefix\")), aa = ((w == \"prefix\") ? z.sortedTokens : z.tokens), ba = t(y).tokens, ca = {\n }, da = ((z.isPrefixQuery && (w == \"query\")) ? (aa.length - 1) : null), ea = function(fa, ga) {\n for (var ha = 0; (ha < ba.length); ++ha) {\n var ia = ba[ha];\n if ((!ca[ha] && (((ia == fa) || ((((((w == \"query\") && (ga === da)) || (w == \"prefix\"))) && (ia.indexOf(fa) === 0))))))) {\n return (ca[ha] = true)\n };\n };\n return false;\n };\n return Boolean((aa.length && aa.every(ea)));\n };\n var v = {\n flatten: r,\n parse: t,\n isExactMatch: u.bind(null, \"exact\"),\n isQueryMatch: u.bind(null, \"query\"),\n isPrefixMatch: u.bind(null, \"prefix\")\n };\n e.exports = v;\n});\n__d(\"KanaUtils\", [], function(a, b, c, d, e, f) {\n var g = 12353, h = 12436, i = 96, j = {\n normalizeHiragana: function(k) {\n if ((k !== null)) {\n var l = [];\n for (var m = 0; (m < k.length); m++) {\n var n = k.charCodeAt(m);\n if (((n < g) || (n > h))) {\n l.push(k.charAt(m));\n }\n else {\n var o = (n + i);\n l.push(String.fromCharCode(o));\n }\n ;\n };\n return l.join(\"\");\n }\n else return null\n ;\n }\n };\n e.exports = j;\n});\n__d(\"DataSource\", [\"ArbiterMixin\",\"AsyncRequest\",\"TypeaheadUtil\",\"copyProperties\",\"createArrayFrom\",\"createObjectFrom\",\"emptyFunction\",\"KanaUtils\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"TypeaheadUtil\"), j = b(\"copyProperties\"), k = b(\"createArrayFrom\"), l = b(\"createObjectFrom\"), m = b(\"emptyFunction\"), n = b(\"KanaUtils\");\n function o(p) {\n this._maxResults = (p.maxResults || 10);\n this.token = p.token;\n this.queryData = (p.queryData || {\n });\n this.queryEndpoint = (p.queryEndpoint || \"\");\n this.bootstrapData = (p.bootstrapData || {\n });\n this.bootstrapEndpoint = (p.bootstrapEndpoint || \"\");\n this._exclusions = (p.exclusions || []);\n this._indexedFields = (p.indexedFields || [\"text\",\"tokens\",]);\n this._titleFields = (p.titleFields || []);\n this._alwaysPrefixMatch = (p.alwaysPrefixMatch || false);\n this._deduplicationKey = (p.deduplicationKey || null);\n this._enabledQueryCache = (p.enabledQueryCache || true);\n this._queryExactMatch = (p.queryExactMatch || false);\n this._acrossTransitions = (p.acrossTransitions || false);\n this._kanaNormalization = (p.kanaNormalization || false);\n this._minQueryLength = (p.minQueryLength || -1);\n this._minExactMatchLength = 4;\n this._filters = [];\n };\n j(o.prototype, g, {\n events: [\"bootstrap\",\"query\",\"respond\",],\n init: function() {\n this.init = m;\n this._fields = l(this._indexedFields);\n this._activeQueries = 0;\n this.dirty();\n },\n dirty: function() {\n this.value = \"\";\n this._bootstrapped = false;\n this._bootstrapping = false;\n this._data = {\n };\n this.localCache = {\n };\n this.queryCache = {\n };\n this.inform(\"dirty\", {\n });\n return this;\n },\n bootstrap: function() {\n if (this._bootstrapped) {\n return\n };\n this.bootstrapWithoutToken();\n this._bootstrapped = true;\n this._bootstrapping = true;\n this.inform(\"bootstrap\", {\n bootstrapping: true\n });\n },\n bootstrapWithoutToken: function() {\n this.fetch(this.bootstrapEndpoint, this.bootstrapData, {\n bootstrap: true,\n token: this.token\n });\n },\n bootstrapWithToken: function() {\n var p = j({\n }, this.bootstrapData);\n p.token = this.token;\n this.fetch(this.bootstrapEndpoint, p, {\n bootstrap: true,\n replaceCache: true\n });\n },\n query: function(p, q, r, s) {\n this.inform(\"beforeQuery\", {\n value: p,\n local_only: q,\n exclusions: r,\n time_waited: s\n });\n if (!this._enabledQueryCache) {\n this.queryCache = {\n };\n };\n var t = this.buildUids(p, [], r), u = this.respond(p, t);\n this.value = p;\n this.inform(\"query\", {\n value: p,\n results: u\n });\n var v = this._normalizeString(p).flatValue;\n if ((((((q || !v) || this._isQueryTooShort(v)) || !this.queryEndpoint) || this.getQueryCache().hasOwnProperty(v)) || !this.shouldFetchMoreResults(u))) {\n return false\n };\n this.inform(\"queryEndpoint\", {\n value: p\n });\n this.fetch(this.queryEndpoint, this.getQueryData(p, t), {\n value: p,\n exclusions: r\n });\n return true;\n },\n _isQueryTooShort: function(p) {\n return ((p.length < this._minQueryLength));\n },\n _normalizeString: function(p, q) {\n var r = p;\n if (this._kanaNormalization) {\n r = n.normalizeHiragana(p);\n };\n return i.parse(r, q);\n },\n shouldFetchMoreResults: function(p) {\n return (p.length < this._maxResults);\n },\n getQueryData: function(p, q) {\n var r = j({\n value: p\n }, (this.queryData || {\n }));\n q = (q || []);\n if (q.length) {\n r.existing_ids = q.join(\",\");\n };\n if (this._bootstrapping) {\n r.bsp = true;\n };\n return r;\n },\n setQueryData: function(p, q) {\n if (q) {\n this.queryData = {\n };\n };\n j(this.queryData, p);\n return this;\n },\n setBootstrapData: function(p, q) {\n if (q) {\n this.bootstrapData = {\n };\n };\n j(this.bootstrapData, p);\n return this;\n },\n getExclusions: function() {\n return k(this._exclusions);\n },\n setExclusions: function(p) {\n this._exclusions = (p || []);\n },\n addFilter: function(p) {\n var q = this._filters;\n q.push(p);\n return {\n remove: function() {\n q.splice(q.indexOf(p), 1);\n }\n };\n },\n clearFilters: function() {\n this._filters = [];\n },\n respond: function(p, q, r) {\n var s = this.buildData(q);\n this.inform(\"respond\", {\n value: p,\n results: s,\n isAsync: !!r\n });\n return s;\n },\n asyncErrorHandler: m,\n fetch: function(p, q, r) {\n if (!p) {\n return\n };\n var s = new h().setURI(p).setData(q).setMethod(\"GET\").setReadOnly(true).setAllowCrossPageTransition(this._acrossTransitions).setHandler(function(t) {\n this.fetchHandler(t, (r || {\n }));\n }.bind(this));\n if ((p === this.queryEndpoint)) {\n s.setFinallyHandler(function() {\n this._activeQueries--;\n if (!this._activeQueries) {\n this.inform(\"activity\", {\n activity: false\n });\n };\n }.bind(this));\n };\n s.setErrorHandler(this.asyncErrorHandler);\n this.inform(\"beforeFetch\", {\n request: s,\n fetch_context: r\n });\n s.send();\n if ((p === this.queryEndpoint)) {\n if (!this._activeQueries) {\n this.inform(\"activity\", {\n activity: true\n });\n };\n this._activeQueries++;\n }\n ;\n },\n fetchHandler: function(p, q) {\n var r = q.value, s = q.exclusions;\n if ((!r && q.replaceCache)) {\n this.localCache = {\n };\n };\n this.inform(\"buildQueryCache\", {\n });\n var t = p.getPayload().entries;\n this.addEntries(t, r);\n this.inform(\"fetchComplete\", {\n entries: t,\n response: p,\n value: r,\n fetch_context: q\n });\n var u = (((!r && this.value)) ? this.value : r);\n this.respond(u, this.buildUids(u, [], s), true);\n if (!r) {\n if (this._bootstrapping) {\n this._bootstrapping = false;\n this.inform(\"bootstrap\", {\n bootstrapping: false\n });\n }\n ;\n if ((q.token && (p.getPayload().token !== q.token))) {\n this.bootstrapWithToken();\n };\n }\n ;\n },\n addEntries: function(p, q) {\n var r = this.processEntries(k((p || [])), q), s = this.buildUids(q, r);\n if (q) {\n var t = this.getQueryCache();\n t[this._normalizeString(q).flatValue] = s;\n }\n else this.fillCache(s);\n ;\n },\n processEntries: function(p, q) {\n return p.map(function(r, s) {\n var t = (r.uid = (r.uid + \"\")), u = this.getEntry(t);\n if (!u) {\n u = r;\n u.query = q;\n this.setEntry(t, u);\n }\n else j(u, r);\n ;\n ((u.index === undefined) && (u.index = s));\n return t;\n }, this);\n },\n getAllEntries: function() {\n return (this._data || {\n });\n },\n getEntry: function(p) {\n return (this._data[p] || null);\n },\n setEntry: function(p, q) {\n this._data[p] = q;\n },\n fillCache: function(p) {\n var q = this.localCache;\n p.forEach(function(r) {\n var s = this.getEntry(r);\n if (!s) {\n return\n };\n s.bootstrapped = true;\n var t = this._normalizeString(this.getTextToIndex(s)).tokens;\n for (var u = 0, v = t.length; (u < v); ++u) {\n var w = t[u];\n if (!q.hasOwnProperty(w)) {\n q[w] = {\n };\n };\n q[w][r] = true;\n };\n }, this);\n },\n getTextToIndex: function(p) {\n if ((p.textToIndex && !p.needs_update)) {\n return p.textToIndex\n };\n p.needs_update = false;\n p.textToIndex = this.getTextToIndexFromFields(p, this._indexedFields);\n return p.textToIndex;\n },\n getTextToIndexFromFields: function(p, q) {\n var r = [];\n for (var s = 0; (s < q.length); ++s) {\n var t = p[q[s]];\n if (t) {\n r.push((t.join ? t.join(\" \") : t));\n };\n };\n return r.join(\" \");\n },\n mergeUids: function(p, q, r, s) {\n this.inform(\"mergeUids\", {\n local_uids: p,\n query_uids: q,\n new_uids: r,\n value: s\n });\n var t = function(u, v) {\n var w = this.getEntry(u), x = this.getEntry(v);\n if ((w.extended_match !== x.extended_match)) {\n return (w.extended_match ? 1 : -1)\n };\n if ((w.index !== x.index)) {\n return (w.index - x.index)\n };\n if ((w.text.length !== x.text.length)) {\n return (w.text.length - x.text.length)\n };\n return (w.uid < x.uid);\n }.bind(this);\n this._checkExtendedMatch(s, p);\n return this.deduplicateByKey(p.sort(t).concat(q, r));\n },\n _checkExtendedMatch: function(p, q) {\n var r = (this._alwaysPrefixMatch ? i.isPrefixMatch : i.isQueryMatch);\n for (var s = 0; (s < q.length); ++s) {\n var t = this.getEntry(q[s]);\n t.extended_match = (t.tokens ? !r(p, t.text) : false);\n };\n },\n buildUids: function(p, q, r) {\n if (!q) {\n q = [];\n };\n if (!p) {\n return q\n };\n if (!r) {\n r = [];\n };\n var s = this.buildCacheResults(p, this.localCache), t = this.buildQueryResults(p), u = this.mergeUids(s, t, q, p), v = l(r.concat(this._exclusions)), w = u.filter(function(x) {\n if ((v.hasOwnProperty(x) || !this.getEntry(x))) {\n return false\n };\n for (var y = 0; (y < this._filters.length); ++y) {\n if (!this._filters[y](this.getEntry(x), p)) {\n return false\n };\n };\n return (v[x] = true);\n }, this);\n return this.uidsIncludingExact(p, w, v);\n },\n uidsIncludingExact: function(p, q, r) {\n var s = q.length;\n if (((p.length < this._minExactMatchLength) || (s <= this._maxResults))) {\n return q\n };\n for (var t = 0; (t < s); ++t) {\n var u = this.getEntry(q[t]);\n (u.text_lower || (u.text_lower = u.text.toLowerCase()));\n if ((u.text_lower === this._normalizeString(p).flatValue)) {\n if ((t >= this._maxResults)) {\n var v = q.splice(t, 1);\n q.splice((this._maxResults - 1), 0, v);\n }\n ;\n break;\n }\n ;\n };\n return q;\n },\n buildData: function(p) {\n var q = [], r = Math.min(p.length, this._maxResults);\n for (var s = 0; (s < r); ++s) {\n q.push(this.getEntry(p[s]));;\n };\n return q;\n },\n findQueryCache: function(p) {\n var q = 0, r = null, s = this.getQueryCache();\n if (this._queryExactMatch) {\n return (s[p] || [])\n };\n for (var t in s) {\n if (((p.indexOf(t) === 0) && (t.length > q))) {\n q = t.length;\n r = t;\n }\n ;\n };\n return (s[r] || []);\n },\n buildQueryResults: function(p) {\n var q = this._normalizeString(p).flatValue, r = this.findQueryCache(q);\n if (this.getQueryCache().hasOwnProperty(q)) {\n return r\n };\n return this.filterQueryResults(p, r);\n },\n filterQueryResults: function(p, q) {\n var r = (this._alwaysPrefixMatch ? i.isPrefixMatch : i.isQueryMatch);\n return q.filter(function(s) {\n return r(p, this.getTextToIndex(this.getEntry(s)));\n }, this);\n },\n buildCacheResults: function(p, q) {\n var r = this._normalizeString(p, this._alwaysPrefixMatch), s = (this._alwaysPrefixMatch ? r.sortedTokens : r.tokens), t = s.length, u = (r.isPrefixQuery ? (t - 1) : null), v = {\n }, w = {\n }, x = {\n }, y = [], z = false, aa = {\n }, ba = 0;\n for (var ca = 0; (ca < t); ++ca) {\n var da = s[ca];\n if (!aa.hasOwnProperty(da)) {\n ba++;\n aa[da] = true;\n }\n else continue;\n ;\n for (var ea in q) {\n if ((((!v.hasOwnProperty(ea) && (ea === da))) || ((((this._alwaysPrefixMatch || (u === ca))) && (ea.indexOf(da) === 0))))) {\n if ((ea === da)) {\n if (w.hasOwnProperty(ea)) {\n z = true;\n };\n v[ea] = true;\n }\n else {\n if ((v.hasOwnProperty(ea) || w.hasOwnProperty(ea))) {\n z = true;\n };\n w[ea] = true;\n }\n ;\n for (var fa in q[ea]) {\n if (((ca === 0) || ((x.hasOwnProperty(fa) && (x[fa] == (ba - 1)))))) {\n x[fa] = ba;\n };\n };\n }\n ;\n };\n };\n for (var ga in x) {\n if ((x[ga] == ba)) {\n y.push(ga);\n };\n };\n if ((z || (ba < t))) {\n y = this.filterQueryResults(p, y);\n };\n if ((this._titleFields && (this._titleFields.length > 0))) {\n y = this.filterNonTitleMatchQueryResults(p, y);\n };\n return y;\n },\n filterNonTitleMatchQueryResults: function(p, q) {\n return q.filter(function(r) {\n var s = this._normalizeString(p), t = s.tokens.length;\n if ((t === 0)) {\n return true\n };\n var u = this.getTitleTerms(this.getEntry(r)), v = s.tokens[0];\n return (((((t === 1)) || this._alwaysPrefixMatch)) ? i.isPrefixMatch(v, u) : i.isQueryMatch(v, u));\n }, this);\n },\n getTitleTerms: function(p) {\n if (!p.titleToIndex) {\n p.titleToIndex = this.getTextToIndexFromFields(p, this._titleFields);\n };\n return p.titleToIndex;\n },\n deduplicateByKey: function(p) {\n if (!this._deduplicationKey) {\n return p\n };\n var q = l(p.map(this._getDeduplicationKey.bind(this)), p);\n return p.filter(function(r) {\n return (q[this._getDeduplicationKey(r)] == r);\n }.bind(this));\n },\n _getDeduplicationKey: function(p) {\n var q = this.getEntry(p);\n return (q[this._deduplicationKey] || ((\"__\" + p) + \"__\"));\n },\n getQueryCache: function() {\n return this.queryCache;\n },\n setMaxResults: function(p) {\n this._maxResults = p;\n (this.value && this.respond(this.value, this.buildUids(this.value)));\n },\n updateToken: function(p) {\n this.token = p;\n this.dirty();\n return this;\n }\n });\n e.exports = o;\n});\n__d(\"BanzaiNectar\", [\"Banzai\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\");\n function h(j) {\n return {\n log: function(k, l, m) {\n var n = {\n e: l,\n a: m\n };\n g.post((\"nectar:\" + k), n, j);\n }\n };\n };\n var i = h();\n i.create = h;\n e.exports = i;\n});\n__d(\"DimensionLogging\", [\"BanzaiNectar\",\"DOMDimensions\",], function(a, b, c, d, e, f) {\n var g = b(\"BanzaiNectar\"), h = b(\"DOMDimensions\"), i = h.getViewportDimensions();\n g.log(\"browser_dimension\", \"homeload\", {\n x: i.width,\n y: i.height,\n sw: window.screen.width,\n sh: window.screen.height,\n aw: window.screen.availWidth,\n ah: window.screen.availHeight,\n at: window.screen.availTop,\n al: window.screen.availLeft\n });\n});\n__d(\"MultiBootstrapDataSource\", [\"Class\",\"DataSource\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"DataSource\");\n function i(j) {\n this._bootstrapEndpoints = j.bootstrapEndpoints;\n this.parent.construct(this, j);\n };\n g.extend(i, h);\n i.prototype.bootstrapWithoutToken = function() {\n for (var j = 0; (j < this._bootstrapEndpoints.length); j++) {\n this.fetch(this._bootstrapEndpoints[j].endpoint, (this._bootstrapEndpoints[j].data || {\n }), {\n bootstrap: true\n });;\n };\n };\n e.exports = i;\n});\n__d(\"XHPTemplate\", [\"DataStore\",\"DOM\",\"HTML\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"DataStore\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"copyProperties\");\n function k(m) {\n this._model = m;\n };\n j(k.prototype, {\n render: function() {\n if (i.isHTML(this._model)) {\n this._model = h.setContent(document.createDocumentFragment(), this._model)[0];\n };\n return this._model.cloneNode(true);\n },\n build: function() {\n return new l(this.render());\n }\n });\n j(k, {\n getNode: function(m, n) {\n return k.getNodes(m)[n];\n },\n getNodes: function(m) {\n var n = g.get(m, \"XHPTemplate:nodes\");\n if (!n) {\n n = {\n };\n var o = h.scry(m, \"[data-jsid]\");\n o.push(m);\n var p = o.length;\n while (p--) {\n var q = o[p];\n n[q.getAttribute(\"data-jsid\")] = q;\n q.removeAttribute(\"data-jsid\");\n };\n g.set(m, \"XHPTemplate:nodes\", n);\n }\n ;\n return n;\n }\n });\n function l(m) {\n this._root = m;\n this._populateNodes();\n };\n j(l.prototype, {\n _populateNodes: function() {\n this._nodes = {\n };\n this._leaves = {\n };\n var m = this._root.getElementsByTagName(\"*\");\n for (var n = 0, o = m.length; (n < o); n++) {\n var p = m[n], q = p.getAttribute(\"data-jsid\");\n if (q) {\n p.removeAttribute(\"data-jsid\");\n this._nodes[q] = p;\n this._leaves[q] = !p.childNodes.length;\n }\n ;\n };\n },\n getRoot: function() {\n return this._root;\n },\n getNode: function(m) {\n return this._nodes[m];\n },\n setNodeProperty: function(m, n, o) {\n this.getNode(m)[n] = o;\n return this;\n },\n setNodeContent: function(m, n) {\n if (!this._leaves[m]) {\n throw new Error((\"Can't setContent on non-leaf node: \" + m))\n };\n h.setContent(this.getNode(m), n);\n return this;\n }\n });\n e.exports = k;\n});");
// 1063
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s93c2e40407555ddbaca9d11f5326c966155ad343");
// 1064
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"OJTM4\",]);\n}\n;\n;\n__d(\"AjaxRequest\", [\"ErrorUtils\",\"Keys\",\"URI\",\"UserAgent\",\"XHR\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ErrorUtils\"), h = b(\"Keys\"), i = b(\"URI\"), j = b(\"UserAgent\"), k = b(\"XHR\"), l = b(\"copyProperties\");\n function m(q, r, s) {\n this.xhr = k.create();\n if (!((r instanceof i))) {\n r = new i(r);\n }\n ;\n ;\n if (((s && ((q == \"GET\"))))) {\n r.setQueryData(s);\n }\n else this._params = s;\n ;\n ;\n this.method = q;\n this.uri = r;\n this.xhr.open(q, r);\n };\n;\n var n = ((window.JSBNG__XMLHttpRequest && ((\"withCredentials\" in new JSBNG__XMLHttpRequest()))));\n m.supportsCORS = function() {\n return n;\n };\n m.ERROR = \"ar:error\";\n m.TIMEOUT = \"ar:timeout\";\n m.PROXY_ERROR = \"ar:proxy error\";\n m.TRANSPORT_ERROR = \"ar:transport error\";\n m.SERVER_ERROR = \"ar:http error\";\n m.PARSE_ERROR = \"ar:parse error\";\n m._inflight = [];\n function o() {\n var q = m._inflight;\n m._inflight = [];\n q.forEach(function(r) {\n r.abort();\n });\n };\n;\n function p(q) {\n q.onJSON = q.onError = q.onSuccess = null;\n JSBNG__clearTimeout(q._timer);\n if (((q.xhr && ((q.xhr.readyState < 4))))) {\n q.xhr.abort();\n q.xhr = null;\n }\n ;\n ;\n m._inflight = m._inflight.filter(function(r) {\n return ((((((r && ((r != q)))) && r.xhr)) && ((r.xhr.readyState < 4))));\n });\n };\n;\n l(m.prototype, {\n timeout: 60000,\n streamMode: true,\n prelude: /^for \\(;;\\);/,\n JSBNG__status: null,\n _eol: -1,\n _call: function(q) {\n if (this[q]) {\n this[q](this);\n }\n ;\n ;\n },\n _parseStatus: function() {\n var q;\n try {\n this.JSBNG__status = this.xhr.JSBNG__status;\n q = this.xhr.statusText;\n } catch (r) {\n if (((this.xhr.readyState >= 4))) {\n this.errorType = m.TRANSPORT_ERROR;\n this.errorText = r.message;\n }\n ;\n ;\n return;\n };\n ;\n if (((((this.JSBNG__status === 0)) && !(/^(file|ftp)/.test(this.uri))))) {\n this.errorType = m.TRANSPORT_ERROR;\n }\n else if (((((this.JSBNG__status >= 100)) && ((this.JSBNG__status < 200))))) {\n this.errorType = m.PROXY_ERROR;\n }\n else if (((((this.JSBNG__status >= 200)) && ((this.JSBNG__status < 300))))) {\n return;\n }\n else if (((((this.JSBNG__status >= 300)) && ((this.JSBNG__status < 400))))) {\n this.errorType = m.PROXY_ERROR;\n }\n else if (((((this.JSBNG__status >= 400)) && ((this.JSBNG__status < 500))))) {\n this.errorType = m.SERVER_ERROR;\n }\n else if (((((this.JSBNG__status >= 500)) && ((this.JSBNG__status < 600))))) {\n this.errorType = m.PROXY_ERROR;\n }\n else if (((this.JSBNG__status == 1223))) {\n return;\n }\n else if (((((this.JSBNG__status >= 12001)) && ((this.JSBNG__status <= 12156))))) {\n this.errorType = m.TRANSPORT_ERROR;\n }\n else {\n q = ((\"unrecognized status code: \" + this.JSBNG__status));\n this.errorType = m.ERROR;\n }\n \n \n \n \n \n \n \n ;\n ;\n if (!this.errorText) {\n this.errorText = q;\n }\n ;\n ;\n },\n _parseResponse: function() {\n var q, r = this.xhr.readyState;\n try {\n q = ((this.xhr.responseText || \"\"));\n } catch (s) {\n if (((r >= 4))) {\n this.errorType = m.ERROR;\n this.errorText = ((\"responseText not available - \" + s.message));\n }\n ;\n ;\n return;\n };\n ;\n while (this.xhr) {\n var t = ((this._eol + 1)), u = ((this.streamMode ? q.indexOf(\"\\u000a\", t) : q.length));\n if (((((u < 0)) && ((r == 4))))) {\n u = q.length;\n }\n ;\n ;\n if (((u <= this._eol))) {\n break;\n }\n ;\n ;\n var v = q;\n if (this.streamMode) {\n v = q.substr(t, ((u - t))).replace(/^\\s*|\\s*$/g, \"\");\n }\n ;\n ;\n if (((((t === 0)) && this.prelude))) {\n if (this.prelude.test(v)) {\n v = v.replace(this.prelude, \"\");\n }\n ;\n }\n ;\n ;\n this._eol = u;\n if (v) {\n try {\n this.json = JSON.parse(v);\n } catch (s) {\n var w = (((/(<body[\\S\\s]+?<\\/body>)/i).test(q) && RegExp.$1)), x = {\n message: s.message,\n char: t,\n excerpt: ((((((t === 0)) && w)) || v)).substr(512)\n };\n this.errorType = m.PARSE_ERROR;\n this.errorText = ((\"parse error - \" + JSON.stringify(x)));\n return;\n };\n ;\n g.applyWithGuard(this._call, this, [\"onJSON\",]);\n }\n ;\n ;\n };\n ;\n },\n _onReadyState: function() {\n var q = ((((this.xhr && this.xhr.readyState)) || 0));\n if (((((this.JSBNG__status == null)) && ((q >= 2))))) {\n this._parseStatus();\n }\n ;\n ;\n if (((!this.errorType && ((this.JSBNG__status != null))))) {\n if (((((((q == 3)) && this.streamMode)) || ((q == 4))))) {\n this._parseResponse();\n }\n ;\n }\n ;\n ;\n if (((this.errorType || ((q == 4))))) {\n this._time = ((JSBNG__Date.now() - this._sentAt));\n this._call(((!this.errorType ? \"onSuccess\" : \"onError\")));\n p(this);\n }\n ;\n ;\n },\n send: function(q) {\n this.xhr.onreadystatechange = function() {\n g.applyWithGuard(this._onReadyState, this, arguments);\n }.bind(this);\n var r = this.timeout;\n if (r) {\n this._timer = JSBNG__setTimeout((function() {\n this.errorType = m.TIMEOUT;\n this.errorText = \"timeout\";\n this._time = ((JSBNG__Date.now() - this._sentAt));\n this._call(\"onError\");\n p(this);\n }).bind(this), r, false);\n }\n ;\n ;\n m._inflight.push(this);\n if (((this.method == \"POST\"))) {\n this.xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n }\n ;\n ;\n this._sentAt = JSBNG__Date.now();\n this.xhr.send(((q ? i.implodeQuery(q) : \"\")));\n },\n abort: function() {\n p(this);\n },\n toString: function() {\n var q = ((\"[AjaxRequest readyState=\" + this.xhr.readyState));\n if (this.errorType) {\n q += ((((((((\" errorType=\" + this.errorType)) + \" (\")) + this.errorText)) + \")\"));\n }\n ;\n ;\n return ((q + \"]\"));\n },\n toJSON: function() {\n var q = {\n json: this.json,\n JSBNG__status: this.JSBNG__status,\n errorType: this.errorType,\n errorText: this.errorText,\n time: this._time\n };\n if (this.errorType) {\n q.uri = this.uri;\n }\n ;\n ;\n {\n var fin48keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin48i = (0);\n var r;\n for (; (fin48i < fin48keys.length); (fin48i++)) {\n ((r) = (fin48keys[fin48i]));\n {\n if (((q[r] == null))) {\n delete q[r];\n }\n ;\n ;\n };\n };\n };\n ;\n return q;\n }\n });\n if (((window.JSBNG__addEventListener && j.firefox()))) {\n window.JSBNG__addEventListener(\"keydown\", function(JSBNG__event) {\n if (((JSBNG__event.keyCode === h.ESC))) {\n JSBNG__event.prevent();\n }\n ;\n ;\n }, false);\n }\n;\n;\n if (window.JSBNG__attachEvent) {\n window.JSBNG__attachEvent(\"JSBNG__onunload\", o);\n }\n;\n;\n e.exports = m;\n});\n__d(\"FBAjaxRequest\", [\"AjaxRequest\",\"copyProperties\",\"XHR\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxRequest\"), h = b(\"copyProperties\"), i = b(\"XHR\");\n function j(k, l, m) {\n m = h(i.getAsyncParams(k), m);\n var n = new g(k, l, m);\n n.streamMode = false;\n var o = n._call;\n n._call = function(p) {\n if (((((p == \"onJSON\")) && this.json))) {\n if (this.json.error) {\n this.errorType = g.SERVER_ERROR;\n this.errorText = ((\"AsyncResponse error: \" + this.json.error));\n }\n ;\n ;\n this.json = this.json.payload;\n }\n ;\n ;\n o.apply(this, arguments);\n };\n n.ajaxReqSend = n.send;\n n.send = function(p) {\n this.ajaxReqSend(h(p, m));\n };\n return n;\n };\n;\n e.exports = j;\n});\n__d(\"CallbackManagerController\", [\"ErrorUtils\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ErrorUtils\"), h = b(\"copyProperties\"), i = function(j) {\n this._pendingIDs = [];\n this._allRequests = [undefined,];\n this._callbackArgHandler = j;\n };\n h(i.prototype, {\n executeOrEnqueue: function(j, k, l) {\n l = ((l || {\n }));\n var m = this._attemptCallback(k, j, l);\n if (m) {\n return 0;\n }\n ;\n ;\n this._allRequests.push({\n fn: k,\n request: j,\n options: l\n });\n var n = ((this._allRequests.length - 1));\n this._pendingIDs.push(n);\n return n;\n },\n unsubscribe: function(j) {\n delete this._allRequests[j];\n },\n reset: function() {\n this._allRequests = [];\n },\n getRequest: function(j) {\n return this._allRequests[j];\n },\n runPossibleCallbacks: function() {\n var j = this._pendingIDs;\n this._pendingIDs = [];\n var k = [];\n j.forEach(function(l) {\n var m = this._allRequests[l];\n if (!m) {\n return;\n }\n ;\n ;\n if (this._callbackArgHandler(m.request, m.options)) {\n k.push(l);\n }\n else this._pendingIDs.push(l);\n ;\n ;\n }.bind(this));\n k.forEach(function(l) {\n var m = this._allRequests[l];\n delete this._allRequests[l];\n this._attemptCallback(m.fn, m.request, m.options);\n }.bind(this));\n },\n _attemptCallback: function(j, k, l) {\n var m = this._callbackArgHandler(k, l);\n if (m) {\n var n = {\n ids: k\n };\n g.applyWithGuard(j, n, m);\n }\n ;\n ;\n return !!m;\n }\n });\n e.exports = i;\n});\n__d(\"deferred\", [], function(a, b, c, d, e, f) {\n var g = 0, h = 1, i = 2, j = 4, k = \"callbacks\", l = \"errbacks\", m = \"cancelbacks\", n = \"completeCallbacks\", o = [], p = o.slice, q = o.unshift;\n function r(w, x) {\n return ((w ? p.call(w, x) : o));\n };\n;\n function s(w, x) {\n return ((((x < w.length)) ? r(w, x) : o));\n };\n;\n function t() {\n this.$Deferred0 = g;\n };\n;\n t.prototype.addCallback = function(w, x) {\n return this.$Deferred1(h, this.$Deferred2(k), w, x, s(arguments, 2));\n };\n t.prototype.removeCallback = function(w, x) {\n return this.$Deferred3(this.$Deferred2(k), w, x);\n };\n t.prototype.addCompleteCallback = function(w, x) {\n return this.$Deferred1(null, this.$Deferred2(n), w, x, s(arguments, 2));\n };\n t.prototype.removeCompleteCallback = function(w, x) {\n return this.$Deferred3(this.$Deferred2(n), w, x);\n };\n t.prototype.addErrback = function(w, x) {\n return this.$Deferred1(i, this.$Deferred2(l), w, x, s(arguments, 2));\n };\n t.prototype.removeErrback = function(w, x) {\n return this.$Deferred3(this.$Deferred2(l), w, x);\n };\n t.prototype.addCancelback = function(w, x) {\n return this.$Deferred1(j, this.$Deferred2(m), w, x, s(arguments, 2));\n };\n t.prototype.removeCancelback = function(w, x) {\n return this.$Deferred3(this.$Deferred2(m), w, x);\n };\n t.prototype.getStatus = function() {\n return this.$Deferred0;\n };\n t.prototype.setStatus = function(w) {\n var x;\n this.$Deferred0 = w;\n this.callbackArgs = r(arguments, 1);\n if (((w === i))) {\n x = l;\n }\n else if (((w === h))) {\n x = k;\n }\n else if (((w === j))) {\n x = m;\n }\n \n \n ;\n ;\n if (x) {\n this.$Deferred4(this[x], this.callbackArgs);\n }\n ;\n ;\n this.$Deferred4(this[n], this.callbackArgs);\n return this;\n };\n t.prototype.JSBNG__setTimeout = function(w) {\n if (this.timeout) {\n this.JSBNG__clearTimeout();\n }\n ;\n ;\n this.$Deferred5 = ((this.$Deferred5 || this.fail.bind(this)));\n this.timeout = window.JSBNG__setTimeout(this.$Deferred5, w);\n };\n t.prototype.JSBNG__clearTimeout = function() {\n window.JSBNG__clearTimeout(this.timeout);\n delete this.timeout;\n };\n t.prototype.succeed = function() {\n return this.$Deferred6(h, arguments);\n };\n t.prototype.fail = function() {\n return this.$Deferred6(i, arguments);\n };\n t.prototype.cancel = function() {\n delete this[k];\n delete this[l];\n return this.$Deferred6(j, arguments);\n };\n t.prototype.$Deferred6 = function(w, x) {\n q.call(x, w);\n return this.setStatus.apply(this, x);\n };\n t.prototype.$Deferred2 = function(w) {\n return ((this[w] || (this[w] = [])));\n };\n t.prototype.then = function(w, x, y, z) {\n var aa = new t(), w, ba, ca, da = r(arguments, 0);\n if (((typeof da[0] === \"function\"))) {\n w = da.shift();\n }\n ;\n ;\n if (((typeof da[0] === \"function\"))) {\n ba = da.shift();\n }\n ;\n ;\n if (((typeof da[0] === \"function\"))) {\n ca = da.shift();\n }\n ;\n ;\n var ea = da.shift();\n if (w) {\n var fa = [this.$Deferred7,this,aa,\"succeed\",w,ea,].concat(da);\n this.addCallback.apply(this, fa);\n }\n else this.addCallback(aa.succeed, aa);\n ;\n ;\n if (ba) {\n var ga = [this.$Deferred7,this,aa,\"fail\",ba,ea,].concat(da);\n this.addErrback.apply(this, ga);\n }\n else this.addErrback(aa.fail, aa);\n ;\n ;\n if (ca) {\n var ha = [this.$Deferred7,this,aa,\"cancel\",ca,ea,].concat(da);\n this.addCancelback.apply(this, ha);\n }\n else this.addCancelback(aa.cancel, aa);\n ;\n ;\n return aa;\n };\n t.prototype.$Deferred1 = function(w, x, y, z, aa) {\n var ba = this.getStatus();\n if (((((!w && ((ba !== g)))) || ((ba === w))))) {\n y.apply(((z || this)), aa.concat(this.callbackArgs));\n }\n else x.push(y, z, aa);\n ;\n ;\n return this;\n };\n t.prototype.$Deferred3 = function(w, x, y) {\n for (var z = 0; ((z < w.length)); z += 3) {\n if (((((w[z] === x)) && ((!y || ((w[((z + 1))] === y))))))) {\n w.splice(z, 3);\n if (y) {\n break;\n }\n ;\n ;\n z -= 3;\n }\n ;\n ;\n };\n ;\n return this;\n };\n t.prototype.pipe = function(w) {\n this.addCallback(w.succeed, w).addErrback(w.fail, w).addCancelback(w.cancel, w);\n };\n t.prototype.$Deferred4 = function(w, x) {\n for (var y = 0; ((y < ((w || o)).length)); y += 3) {\n w[y].apply(((w[((y + 1))] || this)), ((w[((y + 2))] || o)).concat(x));\n ;\n };\n ;\n };\n t.prototype.$Deferred7 = function(w, x, y, z) {\n var aa = r(arguments, 4), ba = y.apply(z, aa);\n if (((ba instanceof t))) {\n ba.pipe(w);\n }\n else w[x](ba);\n ;\n ;\n };\n var u = ((((t === null)) ? null : t.prototype));\n v.prototype = Object.create(u);\n v.prototype.constructor = v;\n v.__superConstructor__ = t;\n function v(w) {\n t.call(this);\n this.completed = 0;\n this.list = [];\n if (w) {\n w.forEach(this.waitFor, this);\n this.startWaiting();\n }\n ;\n ;\n };\n;\n v.prototype.startWaiting = function() {\n this.waiting = true;\n this.checkDeferreds();\n return this;\n };\n v.prototype.waitFor = function(w) {\n this.list.push(w);\n this.checkDeferreds();\n w.addCompleteCallback(this.deferredComplete, this);\n return this;\n };\n v.prototype.createWaitForDeferred = function() {\n var w = new t();\n this.waitFor(w);\n return w;\n };\n v.prototype.createWaitForCallback = function() {\n var w = this.createWaitForDeferred();\n return w.succeed.bind(w);\n };\n v.prototype.deferredComplete = function() {\n this.completed++;\n if (((this.completed === this.list.length))) {\n this.checkDeferreds();\n }\n ;\n ;\n };\n v.prototype.checkDeferreds = function() {\n if (((!this.waiting || ((this.completed !== this.list.length))))) {\n return;\n }\n ;\n ;\n var w = false, x = false, y = [g,];\n for (var z = 0, aa = this.list.length; ((z < aa)); z++) {\n var ba = this.list[z];\n y.push([ba,].concat(ba.callbackArgs));\n if (((ba.getStatus() === i))) {\n w = true;\n }\n else if (((ba.getStatus() === j))) {\n x = true;\n }\n \n ;\n ;\n };\n ;\n if (w) {\n y[0] = i;\n this.fail.apply(this, y);\n }\n else if (x) {\n y[0] = j;\n this.cancel.apply(this, y);\n }\n else {\n y[0] = h;\n this.succeed.apply(this, y);\n }\n \n ;\n ;\n };\n f.Deferred = t;\n f.DeferredList = v;\n f.Deferred.toArray = r;\n f.Deferred.STATUS_UNKNOWN = g;\n f.Deferred.STATUS_SUCCEEDED = h;\n f.Deferred.STATUS_CANCELED = j;\n f.Deferred.STATUS_FAILED = i;\n});\n__d(\"KeyedCallbackManager\", [\"CallbackManagerController\",\"deferred\",\"ErrorUtils\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"CallbackManagerController\"), h = b(\"deferred\").Deferred, i = b(\"ErrorUtils\"), j = b(\"copyProperties\"), k = function() {\n this._resources = {\n };\n this._controller = new g(this._constructCallbackArg.bind(this));\n };\n j(k.prototype, {\n executeOrEnqueue: function(l, m) {\n if (!((l instanceof Array))) {\n var n = l, o = m;\n l = [l,];\n m = function(p) {\n o(p[n]);\n };\n }\n ;\n ;\n l = l.filter(function(p) {\n var q = ((((p !== null)) && ((p !== undefined))));\n if (!q) {\n i.applyWithGuard(function() {\n throw new Error(((((\"KeyedCallbackManager.executeOrEnqueue: key \" + JSON.stringify(p))) + \" is invalid\")));\n });\n }\n ;\n ;\n return q;\n });\n return this._controller.executeOrEnqueue(l, m);\n },\n deferredExecuteOrEnqueue: function(l) {\n var m = new h();\n this.executeOrEnqueue(l, m.succeed.bind(m));\n return m;\n },\n unsubscribe: function(l) {\n this._controller.unsubscribe(l);\n },\n reset: function() {\n this._controller.reset();\n this._resources = {\n };\n },\n getUnavailableResources: function(l) {\n var m = this._controller.getRequest(l), n = [];\n if (m) {\n n = m.request.filter(function(o) {\n return !this._resources[o];\n }.bind(this));\n }\n ;\n ;\n return n;\n },\n getUnavailableResourcesFromRequest: function(l) {\n var m = ((Array.isArray(l) ? l : [l,]));\n return m.filter(function(n) {\n if (((((n !== null)) && ((n !== undefined))))) {\n return !this._resources[n];\n }\n ;\n ;\n }, this);\n },\n addResourcesAndExecute: function(l) {\n j(this._resources, l);\n this._controller.runPossibleCallbacks();\n },\n setResource: function(l, m) {\n this._resources[l] = m;\n this._controller.runPossibleCallbacks();\n },\n getResource: function(l) {\n return this._resources[l];\n },\n getAllResources: function() {\n return this._resources;\n },\n dumpResources: function() {\n var l = {\n };\n {\n var fin49keys = ((window.top.JSBNG_Replay.forInKeys)((this._resources))), fin49i = (0);\n var m;\n for (; (fin49i < fin49keys.length); (fin49i++)) {\n ((m) = (fin49keys[fin49i]));\n {\n var n = this._resources[m];\n if (((typeof n === \"object\"))) {\n n = j({\n }, n);\n }\n ;\n ;\n l[m] = n;\n };\n };\n };\n ;\n return l;\n },\n _constructCallbackArg: function(l) {\n var m = {\n };\n for (var n = 0; ((n < l.length)); n++) {\n var o = l[n], p = this._resources[o];\n if (((typeof p == \"undefined\"))) {\n return false;\n }\n ;\n ;\n m[o] = p;\n };\n ;\n return [m,];\n }\n });\n e.exports = k;\n});\n__d(\"BaseAsyncLoader\", [\"KeyedCallbackManager\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"KeyedCallbackManager\"), h = b(\"copyProperties\"), i = {\n };\n function j(l, m, n) {\n var o = new g(), p = false, q = [];\n function r() {\n if (((!q.length || p))) {\n return;\n }\n ;\n ;\n p = true;\n t.defer();\n };\n ;\n function s(w) {\n p = false;\n w.forEach(o.unsubscribe.bind(o));\n r();\n };\n ;\n function t() {\n var w = {\n }, x = [];\n q = q.filter(function(z) {\n var aa = o.getUnavailableResources(z);\n if (aa.length) {\n aa.forEach(function(ba) {\n w[ba] = true;\n });\n x.push(z);\n return true;\n }\n ;\n ;\n return false;\n });\n var y = Object.keys(w);\n if (y.length) {\n n(l, y, x, u.curry(x), v.curry(x));\n }\n else p = false;\n ;\n ;\n };\n ;\n function u(w, x) {\n var y = ((x.payload[m] || x.payload));\n o.addResourcesAndExecute(y);\n s(w);\n };\n ;\n function v(w) {\n s(w);\n };\n ;\n return {\n get: function(w, x) {\n var y = o.executeOrEnqueue(w, x), z = o.getUnavailableResources(y);\n if (z.length) {\n q.push(y);\n r();\n }\n ;\n ;\n },\n getCachedKeys: function() {\n return Object.keys(o.getAllResources());\n },\n getNow: function(w) {\n return ((o.getResource(w) || null));\n },\n set: function(w) {\n o.addResourcesAndExecute(w);\n }\n };\n };\n;\n function k(l, m) {\n throw (\"BaseAsyncLoader can't be instantiated\");\n };\n;\n h(k.prototype, {\n _getLoader: function() {\n if (!i[this._endpoint]) {\n i[this._endpoint] = j(this._endpoint, this._type, this.send);\n }\n ;\n ;\n return i[this._endpoint];\n },\n get: function(l, m) {\n return this._getLoader().get(l, m);\n },\n getCachedKeys: function() {\n return this._getLoader().getCachedKeys();\n },\n getNow: function(l) {\n return this._getLoader().getNow(l);\n },\n reset: function() {\n i[this._endpoint] = null;\n },\n set: function(l) {\n this._getLoader().set(l);\n }\n });\n e.exports = k;\n});\n__d(\"AjaxLoader\", [\"copyProperties\",\"FBAjaxRequest\",\"BaseAsyncLoader\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"FBAjaxRequest\"), i = b(\"BaseAsyncLoader\");\n function j(k, l) {\n this._endpoint = k;\n this._type = l;\n };\n;\n g(j.prototype, i.prototype);\n j.prototype.send = function(k, l, m, n, o) {\n var p = new h(\"GET\", k, {\n ids: l\n });\n p.onJSON = function(q) {\n n({\n payload: q.json\n });\n };\n p.onError = o;\n p.send();\n };\n e.exports = j;\n});\n__d(\"CLoggerX\", [\"Banzai\",\"DOM\",\"debounce\",\"JSBNG__Event\",\"ge\",\"Parent\",\"Keys\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\"), h = b(\"DOM\"), i = b(\"debounce\"), j = b(\"JSBNG__Event\"), k = b(\"ge\"), l = b(\"Parent\"), m = ((((10 * 60)) * 1000)), n = b(\"Keys\").RETURN, o = {\n }, p = function(s) {\n var t = ((s.target || s.srcElement)).id, u = ((s.target || s.srcElement)).value.trim().length, v = q.getTracker(t);\n if (!v) {\n return;\n }\n ;\n ;\n if (((((u > 5)) && !v.submitted))) {\n g.post(\"censorlogger\", {\n cl_impid: v.impid,\n clearcounter: v.clearcounter,\n instrument: v.type,\n elementid: t,\n parent_fbid: ((((v.parent_fbid == \"unknown\")) ? null : v.parent_fbid)),\n version: \"x\"\n }, g.VITAL);\n q.setSubmitted(t, true);\n }\n else if (((((((u === 0)) && v.submitted)) && ((s.which != n))))) {\n o[t] = r(t);\n o[t]();\n }\n else if (((((u > 0)) && v.submitted))) {\n if (o[t]) {\n o[t].reset();\n }\n ;\n }\n \n \n ;\n ;\n }, q = {\n init: function() {\n this.trackedElements = ((this.trackedElements || {\n }));\n this.feedbackForms = ((this.feedbackForms || {\n }));\n },\n setImpressionID: function(s) {\n this.init();\n this.impressionID = s;\n this.clean();\n },\n setComposerTargetData: function(s) {\n this.cTargetID = ((s.targetID || \"unknown\"));\n this.cTargetFBType = ((s.targetType || \"unknown\"));\n },\n clean: function() {\n {\n var fin50keys = ((window.top.JSBNG_Replay.forInKeys)((this.trackedElements))), fin50i = (0);\n var s;\n for (; (fin50i < fin50keys.length); (fin50i++)) {\n ((s) = (fin50keys[fin50i]));\n {\n if (o[s]) {\n o[s].reset();\n delete o[s];\n }\n ;\n ;\n delete this.trackedElements[s];\n };\n };\n };\n ;\n },\n trackComposer: function(s, t, u) {\n this.setComposerTargetData(u);\n this.startTracking(s, \"composer\", this.cTargetID, this.cTargetFBType, t);\n },\n trackFeedbackForm: function(s, t, u) {\n this.init();\n this.impressionID = ((this.impressionID || u));\n var v, w, x;\n v = h.getID(s);\n w = ((t ? ((t.targetID || \"unknown\")) : \"unknown\"));\n x = ((t ? ((t.targetType || \"unknown\")) : \"unknown\"));\n this.feedbackForms[v] = {\n parent_fbid: w,\n parent_type: x\n };\n },\n trackMentionsInput: function(s, t) {\n this.init();\n var u, v, w;\n if (!s) {\n return;\n }\n ;\n ;\n u = l.byTag(s, \"form\");\n if (!u) {\n return;\n }\n ;\n ;\n v = h.getID(u);\n w = this.feedbackForms[v];\n if (!w) {\n return;\n }\n ;\n ;\n var x = ((t || w.parent_fbid)), y = ((t ? 416 : w.parent_type));\n this.startTracking(s, \"comment\", x, y, u);\n },\n startTracking: function(s, t, u, v, w) {\n this.init();\n var x = h.getID(s);\n if (this.getTracker(x)) {\n return;\n }\n ;\n ;\n var y = h.getID(w);\n j.listen(s, \"keyup\", p.bind(this));\n this.trackedElements[x] = {\n submitted: false,\n clearcounter: 0,\n type: t,\n impid: this.impressionID,\n parent_fbid: u,\n parent_type: v,\n parentElID: y\n };\n this.addJoinTableInfoToForm(w, x);\n },\n getTracker: function(s) {\n return ((this.trackedElements ? this.trackedElements[s] : null));\n },\n setSubmitted: function(s, t) {\n if (this.trackedElements[s]) {\n this.trackedElements[s].submitted = t;\n }\n ;\n ;\n },\n incrementClearCounter: function(s) {\n var t = this.getTracker(s);\n if (!t) {\n return;\n }\n ;\n ;\n t.clearcounter++;\n t.submitted = false;\n var u = h.scry(k(t.parentElID), \"input[name=\\\"clp\\\"]\")[0];\n if (u) {\n u.value = this.getJSONRepForTrackerID(s);\n }\n ;\n ;\n this.trackedElements[s] = t;\n },\n addJoinTableInfoToForm: function(s, t) {\n var u = this.getTracker(t);\n if (!u) {\n return;\n }\n ;\n ;\n var v = h.scry(s, \"input[name=\\\"clp\\\"]\")[0];\n if (!v) {\n h.prependContent(s, h.create(\"input\", {\n type: \"hidden\",\n JSBNG__name: \"clp\",\n value: this.getJSONRepForTrackerID(t)\n }));\n }\n ;\n ;\n },\n getCLParamsForTarget: function(s, t) {\n if (!s) {\n return \"\";\n }\n ;\n ;\n var u = h.getID(s);\n return this.getJSONRepForTrackerID(u, t);\n },\n getJSONRepForTrackerID: function(s, t) {\n var u = this.getTracker(s);\n if (!u) {\n return \"\";\n }\n ;\n ;\n return JSON.stringify({\n cl_impid: u.impid,\n clearcounter: u.clearcounter,\n elementid: s,\n version: \"x\",\n parent_fbid: ((t || u.parent_fbid))\n });\n }\n }, r = function(s) {\n return i(function() {\n q.incrementClearCounter(s);\n }, m, q);\n };\n e.exports = q;\n});\n__d(\"ChannelConstants\", [], function(a, b, c, d, e, f) {\n var g = \"channel/\", h = {\n ON_SHUTDOWN: ((g + \"shutdown\")),\n ON_INVALID_HISTORY: ((g + \"invalid_history\")),\n ON_CONFIG: ((g + \"config\")),\n ON_ENTER_STATE: ((g + \"enter_state\")),\n ON_EXIT_STATE: ((g + \"exit_state\")),\n OK: \"ok\",\n ERROR: \"error\",\n ERROR_MAX: \"error_max\",\n ERROR_MISSING: \"error_missing\",\n ERROR_MSG_TYPE: \"error_msg_type\",\n ERROR_SHUTDOWN: \"error_shutdown\",\n ERROR_STALE: \"error_stale\",\n SYS_OWNER: \"sys_owner\",\n SYS_NONOWNER: \"sys_nonowner\",\n SYS_ONLINE: \"sys_online\",\n SYS_OFFLINE: \"sys_offline\",\n SYS_TIMETRAVEL: \"sys_timetravel\",\n HINT_AUTH: \"shutdown auth\",\n HINT_CONN: \"shutdown conn\",\n HINT_DISABLED: \"shutdown disabled\",\n HINT_INVALID_STATE: \"shutdown invalid state\",\n HINT_MAINT: \"shutdown maint\",\n HINT_UNSUPPORTED: \"shutdown unsupported\",\n reason_Unknown: 0,\n reason_AsyncError: 1,\n reason_TooLong: 2,\n reason_Refresh: 3,\n reason_RefreshDelay: 4,\n reason_UIRestart: 5,\n reason_NeedSeq: 6,\n reason_PrevFailed: 7,\n reason_IFrameLoadGiveUp: 8,\n reason_IFrameLoadRetry: 9,\n reason_IFrameLoadRetryWorked: 10,\n reason_PageTransitionRetry: 11,\n reason_IFrameLoadMaxSubdomain: 12,\n reason_NoChannelInfo: 13,\n reason_NoChannelHost: 14,\n CAPABILITY_VOIP: 8,\n getArbiterType: function(i) {\n return ((((g + \"message:\")) + i));\n }\n };\n e.exports = h;\n});\n__d(\"ShortProfiles\", [\"ArbiterMixin\",\"AjaxLoader\",\"Env\",\"FBAjaxRequest\",\"JSLogger\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"AjaxLoader\"), i = b(\"Env\"), j = b(\"FBAjaxRequest\"), k = b(\"JSLogger\"), l = b(\"copyProperties\"), m = \"/ajax/chat/user_info.php\", n = \"/ajax/chat/user_info_all.php\", o = new h(m, \"profiles\"), p = false, q = k.create(\"short_profiles\");\n function r() {\n if (!p) {\n q.log(\"fetch_all\");\n p = true;\n var u = new j(\"GET\", n, {\n viewer: i.user\n });\n u.onJSON = function(v) {\n o.set(v.json);\n t.inform(\"updated\");\n };\n u.send();\n }\n ;\n ;\n };\n;\n function s(u) {\n return JSON.parse(JSON.stringify(u));\n };\n;\n var t = {\n };\n l(t, g, {\n get: function(u, v) {\n this.getMulti([u,], function(w) {\n v(w[u], u);\n });\n },\n getMulti: function(u, v) {\n function w(x) {\n v(s(x));\n };\n ;\n o.get(u, w);\n },\n getNow: function(u) {\n return s(((o.getNow(u) || null)));\n },\n getNowUnsafe: function(u) {\n return ((o.getNow(u) || null));\n },\n getCachedProfileIDs: function() {\n return o.getCachedKeys();\n },\n hasAll: function() {\n return p;\n },\n fetchAll: function() {\n r();\n },\n set: function(u, v) {\n var w = {\n };\n w[u] = v;\n this.setMulti(w);\n },\n setMulti: function(u) {\n o.set(s(u));\n }\n });\n e.exports = t;\n});\n__d(\"ClickTTIIdentifiers\", [], function(a, b, c, d, e, f) {\n var g = {\n types: {\n TIMELINE_SEE_LIKERS: \"timeline:seelikes\"\n },\n getUserActionID: function(h) {\n return ((((\"{\\\"ua_id\\\":\\\"\" + h)) + \"\\\"}\"));\n }\n };\n e.exports = g;\n});\n__d(\"ReactCurrentOwner\", [], function(a, b, c, d, e, f) {\n var g = {\n current: null\n };\n e.exports = g;\n});\n__d(\"CSSProperty\", [], function(a, b, c, d, e, f) {\n var g = {\n fillOpacity: true,\n fontWeight: true,\n opacity: true,\n orphans: true,\n zIndex: true,\n zoom: true\n }, h = {\n background: {\n backgroundImage: true,\n backgroundPosition: true,\n backgroundRepeat: true,\n backgroundColor: true\n },\n border: {\n borderWidth: true,\n borderStyle: true,\n borderColor: true\n },\n borderBottom: {\n borderBottomWidth: true,\n borderBottomStyle: true,\n borderBottomColor: true\n },\n borderLeft: {\n borderLeftWidth: true,\n borderLeftStyle: true,\n borderLeftColor: true\n },\n borderRight: {\n borderRightWidth: true,\n borderRightStyle: true,\n borderRightColor: true\n },\n borderTop: {\n borderTopWidth: true,\n borderTopStyle: true,\n borderTopColor: true\n },\n font: {\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n fontSize: true,\n lineHeight: true,\n fontFamily: true\n }\n }, i = {\n isUnitlessNumber: g,\n shorthandPropertyExpansions: h\n };\n e.exports = i;\n});\n__d(\"dangerousStyleValue\", [\"CSSProperty\",], function(a, b, c, d, e, f) {\n var g = b(\"CSSProperty\");\n function h(i, j) {\n var k = ((((((j == null)) || ((typeof j === \"boolean\")))) || ((j === \"\"))));\n if (k) {\n return \"\";\n }\n ;\n ;\n var l = isNaN(j);\n if (((((l || ((j === 0)))) || g.isUnitlessNumber[i]))) {\n return ((\"\" + j));\n }\n ;\n ;\n return ((j + \"px\"));\n };\n;\n e.exports = h;\n});\n__d(\"throwIf\", [], function(a, b, c, d, e, f) {\n var g = function(h, i) {\n if (h) {\n throw new Error(i);\n }\n ;\n ;\n };\n e.exports = g;\n});\n__d(\"escapeTextForBrowser\", [\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"throwIf\"), h, i = {\n \"&\": \"&amp;\",\n \"\\u003E\": \"&gt;\",\n \"\\u003C\": \"&lt;\",\n \"\\\"\": \"&quot;\",\n \"'\": \"&#x27;\",\n \"/\": \"&#x2f;\"\n };\n function j(l) {\n return i[l];\n };\n;\n var k = function(l) {\n var m = typeof l, n = ((m === \"object\"));\n if (((((l === \"\")) || n))) {\n return \"\";\n }\n else if (((m === \"string\"))) {\n return l.replace(/[&><\"'\\/]/g, j);\n }\n else return ((\"\" + l)).replace(/[&><\"'\\/]/g, j)\n \n ;\n };\n e.exports = k;\n});\n__d(\"memoizeStringOnly\", [], function(a, b, c, d, e, f) {\n function g(h) {\n var i = {\n };\n return function(j) {\n if (i.hasOwnProperty(j)) {\n return i[j];\n }\n else return i[j] = h.call(this, j)\n ;\n };\n };\n;\n e.exports = g;\n});\n__d(\"CSSPropertyOperations\", [\"CSSProperty\",\"dangerousStyleValue\",\"escapeTextForBrowser\",\"hyphenate\",\"memoizeStringOnly\",], function(a, b, c, d, e, f) {\n var g = b(\"CSSProperty\"), h = b(\"dangerousStyleValue\"), i = b(\"escapeTextForBrowser\"), j = b(\"hyphenate\"), k = b(\"memoizeStringOnly\"), l = k(function(n) {\n return i(j(n));\n }), m = {\n createMarkupForStyles: function(n) {\n var o = \"\";\n {\n var fin51keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin51i = (0);\n var p;\n for (; (fin51i < fin51keys.length); (fin51i++)) {\n ((p) = (fin51keys[fin51i]));\n {\n if (!n.hasOwnProperty(p)) {\n continue;\n }\n ;\n ;\n var q = n[p];\n if (((q != null))) {\n o += ((l(p) + \":\"));\n o += ((h(p, q) + \";\"));\n }\n ;\n ;\n };\n };\n };\n ;\n return ((o || null));\n },\n setValueForStyles: function(n, o) {\n var p = n.style;\n {\n var fin52keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin52i = (0);\n var q;\n for (; (fin52i < fin52keys.length); (fin52i++)) {\n ((q) = (fin52keys[fin52i]));\n {\n if (!o.hasOwnProperty(q)) {\n continue;\n }\n ;\n ;\n var r = h(q, o[q]);\n if (r) {\n p[q] = r;\n }\n else {\n var s = g.shorthandPropertyExpansions[q];\n if (s) {\n {\n var fin53keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin53i = (0);\n var t;\n for (; (fin53i < fin53keys.length); (fin53i++)) {\n ((t) = (fin53keys[fin53i]));\n {\n p[t] = \"\";\n ;\n };\n };\n };\n ;\n }\n else p[q] = \"\";\n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n }\n };\n e.exports = m;\n});\n__d(\"ExecutionEnvironment\", [], function(a, b, c, d, e, f) {\n var g = ((typeof window !== \"undefined\")), h = {\n canUseDOM: g,\n canUseWorkers: ((typeof JSBNG__Worker !== \"undefined\")),\n isInWorker: !g,\n global: new Function(\"return this;\")()\n };\n e.exports = h;\n});\n__d(\"Danger\", [\"ExecutionEnvironment\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\"), h = b(\"throwIf\"), i, j, k, l, m = {\n };\n function n(t) {\n var u = t.tagName;\n return ((m[u] || (m[u] = JSBNG__document.createElement(u))));\n };\n;\n function o(t, u, v) {\n if (v) {\n if (v.nextSibling) {\n return t.insertBefore(u, v.nextSibling);\n }\n else return t.appendChild(u)\n ;\n }\n else return t.insertBefore(u, t.firstChild)\n ;\n };\n;\n function p(t, u, v) {\n var w, x = u.length;\n for (var y = 0; ((y < x)); y++) {\n w = o(t, u[0], ((w || v)));\n ;\n };\n ;\n };\n;\n function q(t, u, v) {\n var w = n(t);\n w.innerHTML = u;\n var x = w.childNodes, y = ((v ? t.childNodes[((v - 1))] : null));\n p(t, x, y);\n };\n;\n function r(t, u) {\n var v = t.parentNode, w = n(v);\n w.innerHTML = u;\n var x = w.childNodes;\n v.replaceChild(x[0], t);\n };\n;\n var s = {\n dangerouslyInsertMarkupAt: q,\n dangerouslyReplaceNodeWithMarkup: r\n };\n e.exports = s;\n});\n__d(\"insertNodeAt\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n var k = h.childNodes, l = h.childNodes[j];\n if (((l === i))) {\n return i;\n }\n ;\n ;\n if (i.parentNode) {\n i.parentNode.removeChild(i);\n }\n ;\n ;\n if (((j >= k.length))) {\n h.appendChild(i);\n }\n else h.insertBefore(i, k[j]);\n ;\n ;\n return i;\n };\n;\n e.exports = g;\n});\n__d(\"keyOf\", [], function(a, b, c, d, e, f) {\n var g = function(h) {\n var i;\n {\n var fin54keys = ((window.top.JSBNG_Replay.forInKeys)((h))), fin54i = (0);\n (0);\n for (; (fin54i < fin54keys.length); (fin54i++)) {\n ((i) = (fin54keys[fin54i]));\n {\n if (!h.hasOwnProperty(i)) {\n continue;\n }\n ;\n ;\n return i;\n };\n };\n };\n ;\n return null;\n };\n e.exports = g;\n});\n__d(\"DOMChildrenOperations\", [\"Danger\",\"insertNodeAt\",\"keyOf\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"Danger\"), h = b(\"insertNodeAt\"), i = b(\"keyOf\"), j = b(\"throwIf\"), k, l = i({\n moveFrom: null\n }), m = i({\n insertMarkup: null\n }), n = i({\n removeAt: null\n }), o = function(u, v) {\n var w, x, y;\n for (var z = 0; ((z < v.length)); z++) {\n x = v[z];\n if (((l in x))) {\n w = ((w || []));\n y = x.moveFrom;\n w[y] = u.childNodes[y];\n }\n else if (((n in x))) {\n w = ((w || []));\n y = x.removeAt;\n w[y] = u.childNodes[y];\n }\n \n ;\n ;\n };\n ;\n return w;\n }, p = function(u, v) {\n for (var w = 0; ((w < v.length)); w++) {\n var x = v[w];\n if (x) {\n u.removeChild(v[w]);\n }\n ;\n ;\n };\n ;\n }, q = function(u, v, w) {\n var x, y, z = -1, aa;\n for (var ba = 0; ((ba < v.length)); ba++) {\n aa = v[ba];\n if (((l in aa))) {\n x = w[aa.moveFrom];\n y = aa.finalIndex;\n h(u, x, y);\n }\n else if (!((n in aa))) {\n if (((m in aa))) {\n y = aa.finalIndex;\n var ca = aa.insertMarkup;\n g.dangerouslyInsertMarkupAt(u, ca, y);\n }\n ;\n }\n \n ;\n ;\n };\n ;\n }, r = function(u, v) {\n var w = o(u, v);\n if (w) {\n p(u, w);\n }\n ;\n ;\n q(u, v, w);\n }, s = function(u, v, w) {\n u.childNodes[v].nodeValue = w;\n }, t = {\n dangerouslyReplaceNodeWithMarkup: g.dangerouslyReplaceNodeWithMarkup,\n manageChildren: r,\n setTextNodeValueAtIndex: s\n };\n e.exports = t;\n});\n__d(\"DOMProperty\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\"), h = {\n MUST_USE_ATTRIBUTE: 1,\n MUST_USE_PROPERTY: 2,\n HAS_BOOLEAN_VALUE: 4,\n HAS_SIDE_EFFECTS: 8,\n injectDOMPropertyConfig: function(k) {\n var l = ((k.Properties || {\n })), m = ((k.DOMAttributeNames || {\n })), n = ((k.DOMPropertyNames || {\n })), o = ((k.DOMMutationMethods || {\n }));\n if (k.isCustomAttribute) {\n j._isCustomAttributeFunctions.push(k.isCustomAttribute);\n }\n ;\n ;\n {\n var fin55keys = ((window.top.JSBNG_Replay.forInKeys)((l))), fin55i = (0);\n var p;\n for (; (fin55i < fin55keys.length); (fin55i++)) {\n ((p) = (fin55keys[fin55i]));\n {\n g(!j.isStandardName[p]);\n j.isStandardName[p] = true;\n j.getAttributeName[p] = ((m[p] || p.toLowerCase()));\n j.getPropertyName[p] = ((n[p] || p));\n var q = o[p];\n if (q) {\n j.getMutationMethod[p] = q;\n }\n ;\n ;\n var r = l[p];\n j.mustUseAttribute[p] = ((r & h.MUST_USE_ATTRIBUTE));\n j.mustUseProperty[p] = ((r & h.MUST_USE_PROPERTY));\n j.hasBooleanValue[p] = ((r & h.HAS_BOOLEAN_VALUE));\n j.hasSideEffects[p] = ((r & h.HAS_SIDE_EFFECTS));\n g(((!j.mustUseAttribute[p] || !j.mustUseProperty[p])));\n g(((j.mustUseProperty[p] || !j.hasSideEffects[p])));\n };\n };\n };\n ;\n }\n }, i = {\n }, j = {\n isStandardName: {\n },\n getAttributeName: {\n },\n getPropertyName: {\n },\n getMutationMethod: {\n },\n mustUseAttribute: {\n },\n mustUseProperty: {\n },\n hasBooleanValue: {\n },\n hasSideEffects: {\n },\n _isCustomAttributeFunctions: [],\n isCustomAttribute: function(k) {\n return j._isCustomAttributeFunctions.some(function(l) {\n return l.call(null, k);\n });\n },\n getDefaultValueForProperty: function(k, l) {\n var m = i[k], n;\n if (!m) {\n i[k] = m = {\n };\n }\n ;\n ;\n if (!((l in m))) {\n n = JSBNG__document.createElement(k);\n m[l] = n[l];\n }\n ;\n ;\n return m[l];\n },\n injection: h\n };\n e.exports = j;\n});\n__d(\"DOMPropertyOperations\", [\"DOMProperty\",\"escapeTextForBrowser\",\"memoizeStringOnly\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMProperty\"), h = b(\"escapeTextForBrowser\"), i = b(\"memoizeStringOnly\"), j = i(function(l) {\n return ((h(l) + \"=\\\"\"));\n }), k = {\n createMarkupForProperty: function(l, m) {\n if (g.isStandardName[l]) {\n if (((((m == null)) || ((g.hasBooleanValue[l] && !m))))) {\n return \"\";\n }\n ;\n ;\n var n = g.getAttributeName[l];\n return ((((j(n) + h(m))) + \"\\\"\"));\n }\n else if (g.isCustomAttribute(l)) {\n if (((m == null))) {\n return \"\";\n }\n ;\n ;\n return ((((j(l) + h(m))) + \"\\\"\"));\n }\n else return null\n \n ;\n },\n setValueForProperty: function(l, m, n) {\n if (g.isStandardName[m]) {\n var o = g.getMutationMethod[m];\n if (o) {\n o(l, n);\n }\n else if (g.mustUseAttribute[m]) {\n if (((g.hasBooleanValue[m] && !n))) {\n l.removeAttribute(g.getAttributeName[m]);\n }\n else l.setAttribute(g.getAttributeName[m], n);\n ;\n ;\n }\n else {\n var p = g.getPropertyName[m];\n if (((!g.hasSideEffects[m] || ((l[p] !== n))))) {\n l[p] = n;\n }\n ;\n ;\n }\n \n ;\n ;\n }\n else if (g.isCustomAttribute(m)) {\n l.setAttribute(m, n);\n }\n \n ;\n ;\n },\n deleteValueForProperty: function(l, m) {\n if (g.isStandardName[m]) {\n var n = g.getMutationMethod[m];\n if (n) {\n n(l, undefined);\n }\n else if (g.mustUseAttribute[m]) {\n l.removeAttribute(g.getAttributeName[m]);\n }\n else {\n var o = g.getPropertyName[m];\n l[o] = g.getDefaultValueForProperty(l.nodeName, m);\n }\n \n ;\n ;\n }\n else if (g.isCustomAttribute(m)) {\n l.removeAttribute(m);\n }\n \n ;\n ;\n }\n };\n e.exports = k;\n});\n__d(\"keyMirror\", [\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"throwIf\"), h = \"NOT_OBJECT_ERROR\", i = function(j) {\n var k = {\n }, l;\n g(((!((j instanceof Object)) || Array.isArray(j))), h);\n {\n var fin56keys = ((window.top.JSBNG_Replay.forInKeys)((j))), fin56i = (0);\n (0);\n for (; (fin56i < fin56keys.length); (fin56i++)) {\n ((l) = (fin56keys[fin56i]));\n {\n if (!j.hasOwnProperty(l)) {\n continue;\n }\n ;\n ;\n k[l] = l;\n };\n };\n };\n ;\n return k;\n };\n e.exports = i;\n});\n__d(\"EventConstants\", [\"keyMirror\",], function(a, b, c, d, e, f) {\n var g = b(\"keyMirror\"), h = g({\n bubbled: null,\n captured: null\n }), i = g({\n topBlur: null,\n topChange: null,\n topClick: null,\n topDOMCharacterDataModified: null,\n topDoubleClick: null,\n topDrag: null,\n topDragEnd: null,\n topDragEnter: null,\n topDragExit: null,\n topDragLeave: null,\n topDragOver: null,\n topDragStart: null,\n topDrop: null,\n topFocus: null,\n topInput: null,\n topKeyDown: null,\n topKeyPress: null,\n topKeyUp: null,\n topMouseDown: null,\n topMouseMove: null,\n topMouseOut: null,\n topMouseOver: null,\n topMouseUp: null,\n topScroll: null,\n topSelectionChange: null,\n topSubmit: null,\n topTouchCancel: null,\n topTouchEnd: null,\n topTouchMove: null,\n topTouchStart: null,\n topWheel: null\n }), j = {\n topLevelTypes: i,\n PropagationPhases: h\n };\n e.exports = j;\n});\n__d(\"EventListener\", [\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = {\n listen: g.listen,\n capture: function(i, j, k) {\n if (!i.JSBNG__addEventListener) {\n return;\n }\n else i.JSBNG__addEventListener(j, k, true);\n ;\n ;\n }\n };\n e.exports = h;\n});\n__d(\"CallbackRegistry\", [], function(a, b, c, d, e, f) {\n var g = {\n }, h = {\n putListener: function(i, j, k) {\n var l = ((g[j] || (g[j] = {\n })));\n l[i] = k;\n },\n getListener: function(i, j) {\n var k = g[j];\n return ((k && k[i]));\n },\n deleteListener: function(i, j) {\n var k = g[j];\n if (k) {\n delete k[i];\n }\n ;\n ;\n },\n deleteAllListeners: function(i) {\n {\n var fin57keys = ((window.top.JSBNG_Replay.forInKeys)((g))), fin57i = (0);\n var j;\n for (; (fin57i < fin57keys.length); (fin57i++)) {\n ((j) = (fin57keys[fin57i]));\n {\n delete g[j][i];\n ;\n };\n };\n };\n ;\n },\n __purge: function() {\n g = {\n };\n }\n };\n e.exports = h;\n});\n__d(\"EventPluginRegistry\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\"), h = null, i = {\n };\n function j() {\n if (!h) {\n return;\n }\n ;\n ;\n {\n var fin58keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin58i = (0);\n var n;\n for (; (fin58i < fin58keys.length); (fin58i++)) {\n ((n) = (fin58keys[fin58i]));\n {\n var o = i[n], p = h.indexOf(n);\n g(((p > -1)));\n if (m.plugins[p]) {\n continue;\n }\n ;\n ;\n g(o.extractEvents);\n m.plugins[p] = o;\n var q = o.eventTypes;\n {\n var fin59keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin59i = (0);\n var r;\n for (; (fin59i < fin59keys.length); (fin59i++)) {\n ((r) = (fin59keys[fin59i]));\n {\n g(k(q[r], o));\n ;\n };\n };\n };\n ;\n };\n };\n };\n ;\n };\n;\n function k(n, o) {\n var p = n.phasedRegistrationNames;\n if (p) {\n {\n var fin60keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin60i = (0);\n var q;\n for (; (fin60i < fin60keys.length); (fin60i++)) {\n ((q) = (fin60keys[fin60i]));\n {\n if (p.hasOwnProperty(q)) {\n var r = p[q];\n l(r, o);\n }\n ;\n ;\n };\n };\n };\n ;\n return true;\n }\n else if (n.registrationName) {\n l(n.registrationName, o);\n return true;\n }\n \n ;\n ;\n return false;\n };\n;\n function l(n, o) {\n g(!m.registrationNames[n]);\n m.registrationNames[n] = o;\n m.registrationNamesKeys.push(n);\n };\n;\n var m = {\n plugins: [],\n registrationNames: {\n },\n registrationNamesKeys: [],\n injectEventPluginOrder: function(n) {\n g(!h);\n h = Array.prototype.slice.call(n);\n j();\n },\n injectEventPluginsByName: function(n) {\n var o = false;\n {\n var fin61keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin61i = (0);\n var p;\n for (; (fin61i < fin61keys.length); (fin61i++)) {\n ((p) = (fin61keys[fin61i]));\n {\n if (!n.hasOwnProperty(p)) {\n continue;\n }\n ;\n ;\n var q = n[p];\n if (((i[p] !== q))) {\n g(!i[p]);\n i[p] = q;\n o = true;\n }\n ;\n ;\n };\n };\n };\n ;\n if (o) {\n j();\n }\n ;\n ;\n },\n getPluginModuleForEvent: function(JSBNG__event) {\n var n = JSBNG__event.dispatchConfig;\n if (n.registrationName) {\n return ((m.registrationNames[n.registrationName] || null));\n }\n ;\n ;\n {\n var fin62keys = ((window.top.JSBNG_Replay.forInKeys)((n.phasedRegistrationNames))), fin62i = (0);\n var o;\n for (; (fin62i < fin62keys.length); (fin62i++)) {\n ((o) = (fin62keys[fin62i]));\n {\n if (!n.phasedRegistrationNames.hasOwnProperty(o)) {\n continue;\n }\n ;\n ;\n var p = m.registrationNames[n.phasedRegistrationNames[o]];\n if (p) {\n return p;\n }\n ;\n ;\n };\n };\n };\n ;\n return null;\n },\n _resetEventPlugins: function() {\n h = null;\n {\n var fin63keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin63i = (0);\n var n;\n for (; (fin63i < fin63keys.length); (fin63i++)) {\n ((n) = (fin63keys[fin63i]));\n {\n if (i.hasOwnProperty(n)) {\n delete i[n];\n }\n ;\n ;\n };\n };\n };\n ;\n m.plugins.length = 0;\n var o = m.registrationNames;\n {\n var fin64keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin64i = (0);\n var p;\n for (; (fin64i < fin64keys.length); (fin64i++)) {\n ((p) = (fin64keys[fin64i]));\n {\n if (o.hasOwnProperty(p)) {\n delete o[p];\n }\n ;\n ;\n };\n };\n };\n ;\n m.registrationNamesKeys.length = 0;\n }\n };\n e.exports = m;\n});\n__d(\"EventPluginUtils\", [\"EventConstants\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"EventConstants\"), h = b(\"invariant\"), i = g.topLevelTypes;\n function j(u) {\n return ((((((u === i.topMouseUp)) || ((u === i.topTouchEnd)))) || ((u === i.topTouchCancel))));\n };\n;\n function k(u) {\n return ((((u === i.topMouseMove)) || ((u === i.topTouchMove))));\n };\n;\n function l(u) {\n return ((((u === i.topMouseDown)) || ((u === i.topTouchStart))));\n };\n;\n var m;\n function n(JSBNG__event, u) {\n var v = JSBNG__event._dispatchListeners, w = JSBNG__event._dispatchIDs;\n if (Array.isArray(v)) {\n for (var x = 0; ((x < v.length)); x++) {\n if (JSBNG__event.isPropagationStopped()) {\n break;\n }\n ;\n ;\n u(JSBNG__event, v[x], w[x]);\n };\n ;\n }\n else if (v) {\n u(JSBNG__event, v, w);\n }\n \n ;\n ;\n };\n;\n function o(JSBNG__event, u, v) {\n u(JSBNG__event, v);\n };\n;\n function p(JSBNG__event, u) {\n n(JSBNG__event, u);\n JSBNG__event._dispatchListeners = null;\n JSBNG__event._dispatchIDs = null;\n };\n;\n function q(JSBNG__event) {\n var u = JSBNG__event._dispatchListeners, v = JSBNG__event._dispatchIDs;\n if (Array.isArray(u)) {\n for (var w = 0; ((w < u.length)); w++) {\n if (JSBNG__event.isPropagationStopped()) {\n break;\n }\n ;\n ;\n if (u[w](JSBNG__event, v[w])) {\n return v[w];\n }\n ;\n ;\n };\n ;\n }\n else if (u) {\n if (u(JSBNG__event, v)) {\n return v;\n }\n ;\n }\n \n ;\n ;\n return null;\n };\n;\n function r(JSBNG__event) {\n var u = JSBNG__event._dispatchListeners, v = JSBNG__event._dispatchIDs;\n h(!Array.isArray(u));\n var w = ((u ? u(JSBNG__event, v) : null));\n JSBNG__event._dispatchListeners = null;\n JSBNG__event._dispatchIDs = null;\n return w;\n };\n;\n function s(JSBNG__event) {\n return !!JSBNG__event._dispatchListeners;\n };\n;\n var t = {\n isEndish: j,\n isMoveish: k,\n isStartish: l,\n executeDispatchesInOrder: p,\n executeDispatchesInOrderStopAtTrue: q,\n executeDirectDispatch: r,\n hasDispatches: s,\n executeDispatch: o\n };\n e.exports = t;\n});\n__d(\"accumulate\", [\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"throwIf\"), h = \"INVALID_ACCUM_ARGS\";\n function i(j, k) {\n var l = ((j == null)), m = ((k === null));\n if (m) {\n return j;\n }\n else if (l) {\n return k;\n }\n else {\n var n = Array.isArray(j), o = Array.isArray(k);\n if (n) {\n return j.concat(k);\n }\n else if (o) {\n return [j,].concat(k);\n }\n else return [j,k,]\n \n ;\n }\n \n ;\n ;\n };\n;\n e.exports = i;\n});\n__d(\"forEachAccumulated\", [], function(a, b, c, d, e, f) {\n var g = function(h, i, j) {\n if (Array.isArray(h)) {\n h.forEach(i, j);\n }\n else if (h) {\n i.call(j, h);\n }\n \n ;\n ;\n };\n e.exports = g;\n});\n__d(\"EventPropagators\", [\"CallbackRegistry\",\"EventConstants\",\"accumulate\",\"forEachAccumulated\",], function(a, b, c, d, e, f) {\n var g = b(\"CallbackRegistry\"), h = b(\"EventConstants\"), i = b(\"accumulate\"), j = b(\"forEachAccumulated\"), k = g.getListener, l = h.PropagationPhases, m = {\n InstanceHandle: null,\n injectInstanceHandle: function(w) {\n m.InstanceHandle = w;\n },\n validate: function() {\n var w = ((((!m.InstanceHandle || !m.InstanceHandle.traverseTwoPhase)) || !m.InstanceHandle.traverseEnterLeave));\n if (w) {\n throw new Error(\"InstanceHandle not injected before use!\");\n }\n ;\n ;\n }\n };\n function n(w, JSBNG__event, x) {\n var y = JSBNG__event.dispatchConfig.phasedRegistrationNames[x];\n return k(w, y);\n };\n;\n function o(w, x, JSBNG__event) {\n var y = ((x ? l.bubbled : l.captured)), z = n(w, JSBNG__event, y);\n if (z) {\n JSBNG__event._dispatchListeners = i(JSBNG__event._dispatchListeners, z);\n JSBNG__event._dispatchIDs = i(JSBNG__event._dispatchIDs, w);\n }\n ;\n ;\n };\n;\n function p(JSBNG__event) {\n if (((JSBNG__event && JSBNG__event.dispatchConfig.phasedRegistrationNames))) {\n m.InstanceHandle.traverseTwoPhase(JSBNG__event.dispatchMarker, o, JSBNG__event);\n }\n ;\n ;\n };\n;\n function q(w, x, JSBNG__event) {\n if (((JSBNG__event && JSBNG__event.dispatchConfig.registrationName))) {\n var y = JSBNG__event.dispatchConfig.registrationName, z = k(w, y);\n if (z) {\n JSBNG__event._dispatchListeners = i(JSBNG__event._dispatchListeners, z);\n JSBNG__event._dispatchIDs = i(JSBNG__event._dispatchIDs, w);\n }\n ;\n ;\n }\n ;\n ;\n };\n;\n function r(JSBNG__event) {\n if (((JSBNG__event && JSBNG__event.dispatchConfig.registrationName))) {\n q(JSBNG__event.dispatchMarker, null, JSBNG__event);\n }\n ;\n ;\n };\n;\n function s(w) {\n j(w, p);\n };\n;\n function t(w, x, y, z) {\n m.InstanceHandle.traverseEnterLeave(y, z, q, w, x);\n };\n;\n function u(w) {\n j(w, r);\n };\n;\n var v = {\n accumulateTwoPhaseDispatches: s,\n accumulateDirectDispatches: u,\n accumulateEnterLeaveDispatches: t,\n injection: m\n };\n e.exports = v;\n});\n__d(\"EventPluginHub\", [\"CallbackRegistry\",\"EventPluginRegistry\",\"EventPluginUtils\",\"EventPropagators\",\"ExecutionEnvironment\",\"accumulate\",\"forEachAccumulated\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"CallbackRegistry\"), h = b(\"EventPluginRegistry\"), i = b(\"EventPluginUtils\"), j = b(\"EventPropagators\"), k = b(\"ExecutionEnvironment\"), l = b(\"accumulate\"), m = b(\"forEachAccumulated\"), n = b(\"invariant\"), o = null, p = function(JSBNG__event) {\n if (JSBNG__event) {\n var r = i.executeDispatch, s = h.getPluginModuleForEvent(JSBNG__event);\n if (((s && s.executeDispatch))) {\n r = s.executeDispatch;\n }\n ;\n ;\n i.executeDispatchesInOrder(JSBNG__event, r);\n if (!JSBNG__event.isPersistent()) {\n JSBNG__event.constructor.release(JSBNG__event);\n }\n ;\n ;\n }\n ;\n ;\n }, q = {\n injection: {\n injectInstanceHandle: j.injection.injectInstanceHandle,\n injectEventPluginOrder: h.injectEventPluginOrder,\n injectEventPluginsByName: h.injectEventPluginsByName\n },\n registrationNames: h.registrationNames,\n putListener: g.putListener,\n getListener: g.getListener,\n deleteListener: g.deleteListener,\n deleteAllListeners: g.deleteAllListeners,\n extractEvents: function(r, s, t, u) {\n var v, w = h.plugins;\n for (var x = 0, y = w.length; ((x < y)); x++) {\n var z = w[x];\n if (z) {\n var aa = z.extractEvents(r, s, t, u);\n if (aa) {\n v = l(v, aa);\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n return v;\n },\n enqueueEvents: function(r) {\n if (r) {\n o = l(o, r);\n }\n ;\n ;\n },\n processEventQueue: function() {\n var r = o;\n o = null;\n m(r, p);\n n(!o);\n }\n };\n if (k.canUseDOM) {\n window.EventPluginHub = q;\n }\n;\n;\n e.exports = q;\n});\n__d(\"ReactUpdates\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\"), h = false, i = [];\n function j(m) {\n if (h) {\n m();\n return;\n }\n ;\n ;\n h = true;\n try {\n m();\n for (var o = 0; ((o < i.length)); o++) {\n var p = i[o];\n if (p.isMounted()) {\n var q = p._pendingCallbacks;\n p._pendingCallbacks = null;\n p.performUpdateIfNecessary();\n if (q) {\n for (var r = 0; ((r < q.length)); r++) {\n q[r]();\n ;\n };\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n } catch (n) {\n throw n;\n } finally {\n i.length = 0;\n h = false;\n };\n ;\n };\n;\n function k(m, n) {\n g(((!n || ((typeof n === \"function\")))));\n if (!h) {\n m.performUpdateIfNecessary();\n ((n && n()));\n return;\n }\n ;\n ;\n i.push(m);\n if (n) {\n if (m._pendingCallbacks) {\n m._pendingCallbacks.push(n);\n }\n else m._pendingCallbacks = [n,];\n ;\n }\n ;\n ;\n };\n;\n var l = {\n batchedUpdates: j,\n enqueueUpdate: k\n };\n e.exports = l;\n});\n__d(\"ViewportMetrics\", [], function(a, b, c, d, e, f) {\n var g = {\n currentScrollLeft: 0,\n currentScrollTop: 0,\n refreshScrollValues: function() {\n g.currentScrollLeft = ((JSBNG__document.body.scrollLeft + JSBNG__document.documentElement.scrollLeft));\n g.currentScrollTop = ((JSBNG__document.body.scrollTop + JSBNG__document.documentElement.scrollTop));\n }\n };\n e.exports = g;\n});\n__d(\"isEventSupported\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\"), h, i;\n if (g.canUseDOM) {\n h = JSBNG__document.createElement(\"div\");\n i = ((((JSBNG__document.implementation && JSBNG__document.implementation.hasFeature)) && ((JSBNG__document.implementation.hasFeature(\"\", \"\") !== true))));\n }\n;\n;\n function j(k, l) {\n if (((!h || ((l && !h.JSBNG__addEventListener))))) {\n return false;\n }\n ;\n ;\n var m = JSBNG__document.createElement(\"div\"), n = ((\"JSBNG__on\" + k)), o = ((n in m));\n if (!o) {\n m.setAttribute(n, \"\");\n o = ((typeof m[n] === \"function\"));\n if (((typeof m[n] !== \"undefined\"))) {\n m[n] = undefined;\n }\n ;\n ;\n m.removeAttribute(n);\n }\n ;\n ;\n if (((((!o && i)) && ((k === \"wheel\"))))) {\n o = JSBNG__document.implementation.hasFeature(\"Events.wheel\", \"3.0\");\n }\n ;\n ;\n m = null;\n return o;\n };\n;\n e.exports = j;\n});\n__d(\"ReactEventEmitter\", [\"EventConstants\",\"EventListener\",\"EventPluginHub\",\"ExecutionEnvironment\",\"ReactUpdates\",\"ViewportMetrics\",\"invariant\",\"isEventSupported\",], function(a, b, c, d, e, f) {\n var g = b(\"EventConstants\"), h = b(\"EventListener\"), i = b(\"EventPluginHub\"), j = b(\"ExecutionEnvironment\"), k = b(\"ReactUpdates\"), l = b(\"ViewportMetrics\"), m = b(\"invariant\"), n = b(\"isEventSupported\"), o = false;\n function p(u, v, w) {\n h.listen(w, v, t.TopLevelCallbackCreator.createTopLevelCallback(u));\n };\n;\n function q(u, v, w) {\n h.capture(w, v, t.TopLevelCallbackCreator.createTopLevelCallback(u));\n };\n;\n function r() {\n var u = l.refreshScrollValues;\n h.listen(window, \"JSBNG__scroll\", u);\n h.listen(window, \"resize\", u);\n };\n;\n function s(u) {\n m(!o);\n var v = g.topLevelTypes, w = JSBNG__document;\n r();\n p(v.topMouseOver, \"mouseover\", w);\n p(v.topMouseDown, \"mousedown\", w);\n p(v.topMouseUp, \"mouseup\", w);\n p(v.topMouseMove, \"mousemove\", w);\n p(v.topMouseOut, \"mouseout\", w);\n p(v.topClick, \"click\", w);\n p(v.topDoubleClick, \"dblclick\", w);\n if (u) {\n p(v.topTouchStart, \"touchstart\", w);\n p(v.topTouchEnd, \"touchend\", w);\n p(v.topTouchMove, \"touchmove\", w);\n p(v.topTouchCancel, \"touchcancel\", w);\n }\n ;\n ;\n p(v.topKeyUp, \"keyup\", w);\n p(v.topKeyPress, \"keypress\", w);\n p(v.topKeyDown, \"keydown\", w);\n p(v.topInput, \"input\", w);\n p(v.topChange, \"change\", w);\n p(v.topSelectionChange, \"selectionchange\", w);\n p(v.topDOMCharacterDataModified, \"DOMCharacterDataModified\", w);\n if (n(\"drag\")) {\n p(v.topDrag, \"drag\", w);\n p(v.topDragEnd, \"dragend\", w);\n p(v.topDragEnter, \"dragenter\", w);\n p(v.topDragExit, \"dragexit\", w);\n p(v.topDragLeave, \"dragleave\", w);\n p(v.topDragOver, \"dragover\", w);\n p(v.topDragStart, \"dragstart\", w);\n p(v.topDrop, \"drop\", w);\n }\n ;\n ;\n if (n(\"wheel\")) {\n p(v.topWheel, \"wheel\", w);\n }\n else if (n(\"mousewheel\")) {\n p(v.topWheel, \"mousewheel\", w);\n }\n else p(v.topWheel, \"DOMMouseScroll\", w);\n \n ;\n ;\n if (n(\"JSBNG__scroll\", true)) {\n q(v.topScroll, \"JSBNG__scroll\", w);\n }\n else p(v.topScroll, \"JSBNG__scroll\", window);\n ;\n ;\n if (n(\"JSBNG__focus\", true)) {\n q(v.topFocus, \"JSBNG__focus\", w);\n q(v.topBlur, \"JSBNG__blur\", w);\n }\n else if (n(\"focusin\")) {\n p(v.topFocus, \"focusin\", w);\n p(v.topBlur, \"focusout\", w);\n }\n \n ;\n ;\n };\n;\n var t = {\n TopLevelCallbackCreator: null,\n ensureListening: function(u, v) {\n m(j.canUseDOM);\n if (!o) {\n t.TopLevelCallbackCreator = v;\n s(u);\n o = true;\n }\n ;\n ;\n },\n setEnabled: function(u) {\n m(j.canUseDOM);\n if (t.TopLevelCallbackCreator) {\n t.TopLevelCallbackCreator.setEnabled(u);\n }\n ;\n ;\n },\n isEnabled: function() {\n return !!((t.TopLevelCallbackCreator && t.TopLevelCallbackCreator.isEnabled()));\n },\n handleTopLevel: function(u, v, w, x) {\n var y = i.extractEvents(u, v, w, x);\n k.batchedUpdates(function() {\n i.enqueueEvents(y);\n i.processEventQueue();\n });\n },\n registrationNames: i.registrationNames,\n putListener: i.putListener,\n getListener: i.getListener,\n deleteListener: i.deleteListener,\n deleteAllListeners: i.deleteAllListeners,\n trapBubbledEvent: p,\n trapCapturedEvent: q\n };\n e.exports = t;\n});\n__d(\"getEventTarget\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\");\n function h(i) {\n var j = ((((i.target || i.srcElement)) || g.global));\n return ((((j.nodeType === 3)) ? j.parentNode : j));\n };\n;\n e.exports = h;\n});\n__d(\"ReactEventTopLevelCallback\", [\"ExecutionEnvironment\",\"ReactEventEmitter\",\"ReactID\",\"ReactInstanceHandles\",\"getEventTarget\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\"), h = b(\"ReactEventEmitter\"), i = b(\"ReactID\"), j = b(\"ReactInstanceHandles\"), k = b(\"getEventTarget\"), l = true, m = {\n setEnabled: function(n) {\n l = !!n;\n },\n isEnabled: function() {\n return l;\n },\n createTopLevelCallback: function(n) {\n return function(o) {\n if (!l) {\n return;\n }\n ;\n ;\n if (((o.srcElement && ((o.srcElement !== o.target))))) {\n o.target = o.srcElement;\n }\n ;\n ;\n var p = ((j.getFirstReactDOM(k(o)) || g.global)), q = ((i.getID(p) || \"\"));\n h.handleTopLevel(n, p, q, o);\n };\n }\n };\n e.exports = m;\n});\n__d(\"ReactInstanceHandles\", [\"ReactID\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactID\"), h = b(\"invariant\"), i = \".\", j = i.length, k = 100, l = 9999999;\n function m(v) {\n return ((((((i + \"r[\")) + v.toString(36))) + \"]\"));\n };\n;\n function n(v, w) {\n return ((((v.charAt(w) === i)) || ((w === v.length))));\n };\n;\n function o(v) {\n return ((((v === \"\")) || ((((v.charAt(0) === i)) && ((v.charAt(((v.length - 1))) !== i))))));\n };\n;\n function p(v, w) {\n return ((((w.indexOf(v) === 0)) && n(w, v.length)));\n };\n;\n function q(v) {\n return ((v ? v.substr(0, v.lastIndexOf(i)) : \"\"));\n };\n;\n function r(v, w) {\n h(((o(v) && o(w))));\n h(p(v, w));\n if (((v === w))) {\n return v;\n }\n ;\n ;\n var x = ((v.length + j));\n for (var y = x; ((y < w.length)); y++) {\n if (n(w, y)) {\n break;\n }\n ;\n ;\n };\n ;\n return w.substr(0, y);\n };\n;\n function s(v, w) {\n var x = Math.min(v.length, w.length);\n if (((x === 0))) {\n return \"\";\n }\n ;\n ;\n var y = 0;\n for (var z = 0; ((z <= x)); z++) {\n if (((n(v, z) && n(w, z)))) {\n y = z;\n }\n else if (((v.charAt(z) !== w.charAt(z)))) {\n break;\n }\n \n ;\n ;\n };\n ;\n var aa = v.substr(0, y);\n h(o(aa));\n return aa;\n };\n;\n function t(v, w, x, y, z, aa) {\n v = ((v || \"\"));\n w = ((w || \"\"));\n h(((v !== w)));\n var ba = p(w, v);\n h(((ba || p(v, w))));\n var ca = 0, da = ((ba ? q : r));\n for (var ea = v; ; ea = da(ea, w)) {\n if (((((!z || ((ea !== v)))) && ((!aa || ((ea !== w))))))) {\n x(ea, ba, y);\n }\n ;\n ;\n if (((ea === w))) {\n break;\n }\n ;\n ;\n h(((ca++ < k)));\n };\n ;\n };\n;\n var u = {\n separator: i,\n createReactRootID: function() {\n return m(Math.ceil(((Math.JSBNG__random() * l))));\n },\n isRenderedByReact: function(v) {\n if (((v.nodeType !== 1))) {\n return false;\n }\n ;\n ;\n var w = g.getID(v);\n return ((w ? ((w.charAt(0) === i)) : false));\n },\n getFirstReactDOM: function(v) {\n var w = v;\n while (((w && ((w.parentNode !== w))))) {\n if (u.isRenderedByReact(w)) {\n return w;\n }\n ;\n ;\n w = w.parentNode;\n };\n ;\n return null;\n },\n findComponentRoot: function(v, w) {\n var x = [v.firstChild,], y = 0;\n while (((y < x.length))) {\n var z = x[y++];\n while (z) {\n var aa = g.getID(z);\n if (aa) {\n if (((w === aa))) {\n return z;\n }\n else if (p(aa, w)) {\n x.length = y = 0;\n x.push(z.firstChild);\n break;\n }\n else x.push(z.firstChild);\n \n ;\n ;\n }\n else x.push(z.firstChild);\n ;\n ;\n z = z.nextSibling;\n };\n ;\n };\n ;\n ((((a.JSBNG__console && emptyFunction)) && false));\n h(false);\n },\n getReactRootIDFromNodeID: function(v) {\n var w = /\\.r\\[[^\\]]+\\]/.exec(v);\n return ((w && w[0]));\n },\n traverseEnterLeave: function(v, w, x, y, z) {\n var aa = s(v, w);\n if (((aa !== v))) {\n t(v, aa, x, y, false, true);\n }\n ;\n ;\n if (((aa !== w))) {\n t(aa, w, x, z, true, false);\n }\n ;\n ;\n },\n traverseTwoPhase: function(v, w, x) {\n if (v) {\n t(\"\", v, w, x, true, false);\n t(v, \"\", w, x, false, true);\n }\n ;\n ;\n },\n _getFirstCommonAncestorID: s,\n _getNextDescendantID: r\n };\n e.exports = u;\n});\n__d(\"ReactMount\", [\"ReactEventEmitter\",\"ReactInstanceHandles\",\"ReactEventTopLevelCallback\",\"ReactID\",\"$\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactEventEmitter\"), h = b(\"ReactInstanceHandles\"), i = b(\"ReactEventTopLevelCallback\"), j = b(\"ReactID\"), k = b(\"$\"), l = {\n }, m = {\n };\n function n(q) {\n return ((q && q.firstChild));\n };\n;\n function o(q) {\n var r = n(q);\n return ((r && j.getID(r)));\n };\n;\n var p = {\n totalInstantiationTime: 0,\n totalInjectionTime: 0,\n useTouchEvents: false,\n scrollMonitor: function(q, r) {\n r();\n },\n prepareTopLevelEvents: function(q) {\n g.ensureListening(p.useTouchEvents, q);\n },\n _updateRootComponent: function(q, r, s, t) {\n var u = r.props;\n p.scrollMonitor(s, function() {\n q.replaceProps(u, t);\n });\n return q;\n },\n _registerComponent: function(q, r) {\n p.prepareTopLevelEvents(i);\n var s = p.registerContainer(r);\n l[s] = q;\n return s;\n },\n _renderNewRootComponent: function(q, r, s) {\n var t = p._registerComponent(q, r);\n q.mountComponentIntoNode(t, r, s);\n return q;\n },\n renderComponent: function(q, r, s) {\n var t = l[o(r)];\n if (t) {\n if (((t.constructor === q.constructor))) {\n return p._updateRootComponent(t, q, r, s);\n }\n else p.unmountAndReleaseReactRootNode(r);\n ;\n }\n ;\n ;\n var u = n(r), v = ((u && h.isRenderedByReact(u))), w = ((v && !t)), x = p._renderNewRootComponent(q, r, w);\n ((s && s()));\n return x;\n },\n constructAndRenderComponent: function(q, r, s) {\n return p.renderComponent(q(r), s);\n },\n constructAndRenderComponentByID: function(q, r, s) {\n return p.constructAndRenderComponent(q, r, k(s));\n },\n registerContainer: function(q) {\n var r = o(q);\n if (r) {\n r = h.getReactRootIDFromNodeID(r);\n }\n ;\n ;\n if (!r) {\n r = h.createReactRootID();\n }\n ;\n ;\n m[r] = q;\n return r;\n },\n unmountAndReleaseReactRootNode: function(q) {\n var r = o(q), s = l[r];\n if (!s) {\n return false;\n }\n ;\n ;\n s.unmountComponentFromNode(q);\n delete l[r];\n delete m[r];\n return true;\n },\n findReactContainerForID: function(q) {\n var r = h.getReactRootIDFromNodeID(q);\n return m[r];\n },\n findReactNodeByID: function(q) {\n var r = p.findReactContainerForID(q);\n return h.findComponentRoot(r, q);\n }\n };\n e.exports = p;\n});\n__d(\"ReactID\", [\"invariant\",\"ReactMount\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\"), h = b(\"ReactMount\"), i = \"data-reactid\", j = {\n };\n function k(s) {\n var t = l(s);\n if (t) {\n if (j.hasOwnProperty(t)) {\n var u = j[t];\n if (((u !== s))) {\n g(!o(u, t));\n j[t] = s;\n }\n ;\n ;\n }\n else j[t] = s;\n ;\n }\n ;\n ;\n return t;\n };\n;\n function l(s) {\n if (((s && s.getAttributeNode))) {\n var t = s.getAttributeNode(i);\n if (t) {\n return ((t.value || \"\"));\n }\n ;\n ;\n }\n ;\n ;\n return \"\";\n };\n;\n function m(s, t) {\n var u = l(s);\n if (((u !== t))) {\n delete j[u];\n }\n ;\n ;\n s.setAttribute(i, t);\n j[t] = s;\n };\n;\n function n(s) {\n if (((!j.hasOwnProperty(s) || !o(j[s], s)))) {\n j[s] = h.findReactNodeByID(s);\n }\n ;\n ;\n return j[s];\n };\n;\n function o(s, t) {\n if (s) {\n g(((l(s) === t)));\n var u = h.findReactContainerForID(t);\n if (((u && p(u, s)))) {\n return true;\n }\n ;\n ;\n }\n ;\n ;\n return false;\n };\n;\n function p(s, t) {\n if (s.contains) {\n return s.contains(t);\n }\n ;\n ;\n if (((t === s))) {\n return true;\n }\n ;\n ;\n if (((t.nodeType === 3))) {\n t = t.parentNode;\n }\n ;\n ;\n while (((t && ((t.nodeType === 1))))) {\n if (((t === s))) {\n return true;\n }\n ;\n ;\n t = t.parentNode;\n };\n ;\n return false;\n };\n;\n function q(s) {\n delete j[s];\n };\n;\n function r() {\n j = {\n };\n };\n;\n f.ATTR_NAME = i;\n f.getID = k;\n f.setID = m;\n f.getNode = n;\n f.purgeID = q;\n f.purgeEntireCache = r;\n});\n__d(\"getTextContentAccessor\", [\"ExecutionEnvironment\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\"), h = null;\n function i() {\n if (((!h && g.canUseDOM))) {\n h = ((((\"innerText\" in JSBNG__document.createElement(\"div\"))) ? \"innerText\" : \"textContent\"));\n }\n ;\n ;\n return h;\n };\n;\n e.exports = i;\n});\n__d(\"ReactDOMIDOperations\", [\"CSSPropertyOperations\",\"DOMChildrenOperations\",\"DOMPropertyOperations\",\"ReactID\",\"getTextContentAccessor\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"CSSPropertyOperations\"), h = b(\"DOMChildrenOperations\"), i = b(\"DOMPropertyOperations\"), j = b(\"ReactID\"), k = b(\"getTextContentAccessor\"), l = b(\"invariant\"), m = {\n dangerouslySetInnerHTML: \"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.\",\n style: \"`style` must be set using `updateStylesByID()`.\"\n }, n = ((k() || \"NA\")), o = {\n updatePropertyByID: function(p, q, r) {\n var s = j.getNode(p);\n l(!m.hasOwnProperty(q));\n i.setValueForProperty(s, q, r);\n },\n deletePropertyByID: function(p, q, r) {\n var s = j.getNode(p);\n l(!m.hasOwnProperty(q));\n i.deleteValueForProperty(s, q, r);\n },\n updatePropertiesByID: function(p, q) {\n {\n var fin65keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin65i = (0);\n var r;\n for (; (fin65i < fin65keys.length); (fin65i++)) {\n ((r) = (fin65keys[fin65i]));\n {\n if (!q.hasOwnProperty(r)) {\n continue;\n }\n ;\n ;\n o.updatePropertiesByID(p, r, q[r]);\n };\n };\n };\n ;\n },\n updateStylesByID: function(p, q) {\n var r = j.getNode(p);\n g.setValueForStyles(r, q);\n },\n updateInnerHTMLByID: function(p, q) {\n var r = j.getNode(p);\n r.innerHTML = ((((q && q.__html)) || \"\")).replace(/^ /g, \"&nbsp;\");\n },\n updateTextContentByID: function(p, q) {\n var r = j.getNode(p);\n r[n] = q;\n },\n dangerouslyReplaceNodeWithMarkupByID: function(p, q) {\n var r = j.getNode(p);\n h.dangerouslyReplaceNodeWithMarkup(r, q);\n j.purgeEntireCache();\n },\n manageChildrenByParentID: function(p, q) {\n var r = j.getNode(p);\n h.manageChildren(r, q);\n j.purgeEntireCache();\n },\n setTextNodeValueAtIndexByParentID: function(p, q, r) {\n var s = j.getNode(p);\n h.setTextNodeValueAtIndex(s, q, r);\n }\n };\n e.exports = o;\n});\n__d(\"ReactOwner\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\"), h = {\n isValidOwner: function(i) {\n return !!((((i && ((typeof i.attachRef === \"function\")))) && ((typeof i.detachRef === \"function\"))));\n },\n addComponentAsRefTo: function(i, j, k) {\n g(h.isValidOwner(k));\n k.attachRef(j, i);\n },\n removeComponentAsRefFrom: function(i, j, k) {\n g(h.isValidOwner(k));\n if (((k.refs[j] === i))) {\n k.detachRef(j);\n }\n ;\n ;\n },\n Mixin: {\n attachRef: function(i, j) {\n g(j.isOwnedBy(this));\n var k = ((this.refs || (this.refs = {\n })));\n k[i] = j;\n },\n detachRef: function(i) {\n delete this.refs[i];\n }\n }\n };\n e.exports = h;\n});\n__d(\"PooledClass\", [], function(a, b, c, d, e, f) {\n var g = function(p) {\n var q = this;\n if (q.instancePool.length) {\n var r = q.instancePool.pop();\n q.call(r, p);\n return r;\n }\n else return new q(p)\n ;\n }, h = function(p, q) {\n var r = this;\n if (r.instancePool.length) {\n var s = r.instancePool.pop();\n r.call(s, p, q);\n return s;\n }\n else return new r(p, q)\n ;\n }, i = function(p, q, r) {\n var s = this;\n if (s.instancePool.length) {\n var t = s.instancePool.pop();\n s.call(t, p, q, r);\n return t;\n }\n else return new s(p, q, r)\n ;\n }, j = function(p, q, r, s, t) {\n var u = this;\n if (u.instancePool.length) {\n var v = u.instancePool.pop();\n u.call(v, p, q, r, s, t);\n return v;\n }\n else return new u(p, q, r, s, t)\n ;\n }, k = function(p) {\n var q = this;\n if (p.destructor) {\n p.destructor();\n }\n ;\n ;\n if (((q.instancePool.length < q.poolSize))) {\n q.instancePool.push(p);\n }\n ;\n ;\n }, l = 10, m = g, n = function(p, q) {\n var r = p;\n r.instancePool = [];\n r.getPooled = ((q || m));\n if (!r.poolSize) {\n r.poolSize = l;\n }\n ;\n ;\n r.release = k;\n return r;\n }, o = {\n addPoolingTo: n,\n oneArgumentPooler: g,\n twoArgumentPooler: h,\n threeArgumentPooler: i,\n fiveArgumentPooler: j\n };\n e.exports = o;\n});\n__d(\"ReactInputSelection\", [], function(a, b, c, d, e, f) {\n function g() {\n try {\n return JSBNG__document.activeElement;\n } catch (j) {\n \n };\n ;\n };\n;\n function h(j) {\n return JSBNG__document.documentElement.contains(j);\n };\n;\n var i = {\n hasSelectionCapabilities: function(j) {\n return ((j && ((((((((j.nodeName === \"INPUT\")) && ((j.type === \"text\")))) || ((j.nodeName === \"TEXTAREA\")))) || ((j.contentEditable === \"true\"))))));\n },\n getSelectionInformation: function() {\n var j = g();\n return {\n focusedElem: j,\n selectionRange: ((i.hasSelectionCapabilities(j) ? i.JSBNG__getSelection(j) : null))\n };\n },\n restoreSelection: function(j) {\n var k = g(), l = j.focusedElem, m = j.selectionRange;\n if (((((k !== l)) && h(l)))) {\n if (i.hasSelectionCapabilities(l)) {\n i.setSelection(l, m);\n }\n ;\n ;\n l.JSBNG__focus();\n }\n ;\n ;\n },\n JSBNG__getSelection: function(j) {\n var k;\n if (((((j.contentEditable === \"true\")) && window.JSBNG__getSelection))) {\n k = window.JSBNG__getSelection().getRangeAt(0);\n var l = k.commonAncestorContainer;\n if (((l && ((l.nodeType === 3))))) {\n l = l.parentNode;\n }\n ;\n ;\n if (((l !== j))) {\n return {\n start: 0,\n end: 0\n };\n }\n else return {\n start: k.startOffset,\n end: k.endOffset\n }\n ;\n }\n ;\n ;\n if (!JSBNG__document.selection) {\n return {\n start: j.selectionStart,\n end: j.selectionEnd\n };\n }\n ;\n ;\n k = JSBNG__document.selection.createRange();\n if (((k.parentElement() !== j))) {\n return {\n start: 0,\n end: 0\n };\n }\n ;\n ;\n var m = j.value.length;\n if (((j.nodeName === \"INPUT\"))) {\n return {\n start: -k.moveStart(\"character\", -m),\n end: -k.moveEnd(\"character\", -m)\n };\n }\n else {\n var n = k.duplicate();\n n.moveToElementText(j);\n n.setEndPoint(\"StartToEnd\", k);\n var o = ((m - n.text.length));\n n.setEndPoint(\"StartToStart\", k);\n return {\n start: ((m - n.text.length)),\n end: o\n };\n }\n ;\n ;\n },\n setSelection: function(j, k) {\n var l, m = k.start, n = k.end;\n if (((typeof n === \"undefined\"))) {\n n = m;\n }\n ;\n ;\n if (JSBNG__document.selection) {\n if (((j.tagName === \"TEXTAREA\"))) {\n var o = ((j.value.slice(0, m).match(/\\r/g) || [])).length, p = ((j.value.slice(m, n).match(/\\r/g) || [])).length;\n m -= o;\n n -= ((o + p));\n }\n ;\n ;\n l = j.createTextRange();\n l.collapse(true);\n l.moveStart(\"character\", m);\n l.moveEnd(\"character\", ((n - m)));\n l.select();\n }\n else if (((j.contentEditable === \"true\"))) {\n if (((j.childNodes.length === 1))) {\n l = JSBNG__document.createRange();\n l.setStart(j.childNodes[0], m);\n l.setEnd(j.childNodes[0], n);\n var q = window.JSBNG__getSelection();\n q.removeAllRanges();\n q.addRange(l);\n }\n ;\n ;\n }\n else {\n j.selectionStart = m;\n j.selectionEnd = Math.min(n, j.value.length);\n j.JSBNG__focus();\n }\n \n ;\n ;\n }\n };\n e.exports = i;\n});\n__d(\"mixInto\", [], function(a, b, c, d, e, f) {\n var g = function(h, i) {\n var j;\n {\n var fin66keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin66i = (0);\n (0);\n for (; (fin66i < fin66keys.length); (fin66i++)) {\n ((j) = (fin66keys[fin66i]));\n {\n if (!i.hasOwnProperty(j)) {\n continue;\n }\n ;\n ;\n h.prototype[j] = i[j];\n };\n };\n };\n ;\n };\n e.exports = g;\n});\n__d(\"ReactOnDOMReady\", [\"PooledClass\",\"mixInto\",], function(a, b, c, d, e, f) {\n var g = b(\"PooledClass\"), h = b(\"mixInto\");\n function i(j) {\n this._queue = ((j || null));\n };\n;\n h(i, {\n enqueue: function(j, k) {\n this._queue = ((this._queue || []));\n this._queue.push({\n component: j,\n callback: k\n });\n },\n notifyAll: function() {\n var j = this._queue;\n if (j) {\n this._queue = null;\n for (var k = 0, l = j.length; ((k < l)); k++) {\n var m = j[k].component, n = j[k].callback;\n n.call(m, m.getDOMNode());\n };\n ;\n j.length = 0;\n }\n ;\n ;\n },\n reset: function() {\n this._queue = null;\n },\n destructor: function() {\n this.reset();\n }\n });\n g.addPoolingTo(i);\n e.exports = i;\n});\n__d(\"Transaction\", [\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"throwIf\"), h = \"DUAL_TRANSACTION\", i = \"MISSING_TRANSACTION\", j = {\n reinitializeTransaction: function() {\n this.transactionWrappers = this.getTransactionWrappers();\n if (!this.wrapperInitData) {\n this.wrapperInitData = [];\n }\n else this.wrapperInitData.length = 0;\n ;\n ;\n if (!this.timingMetrics) {\n this.timingMetrics = {\n };\n }\n ;\n ;\n this.timingMetrics.methodInvocationTime = 0;\n if (!this.timingMetrics.wrapperInitTimes) {\n this.timingMetrics.wrapperInitTimes = [];\n }\n else this.timingMetrics.wrapperInitTimes.length = 0;\n ;\n ;\n if (!this.timingMetrics.wrapperCloseTimes) {\n this.timingMetrics.wrapperCloseTimes = [];\n }\n else this.timingMetrics.wrapperCloseTimes.length = 0;\n ;\n ;\n this._isInTransaction = false;\n },\n _isInTransaction: false,\n getTransactionWrappers: null,\n isInTransaction: function() {\n return !!this._isInTransaction;\n },\n perform: function(l, m, n, o, p, q, r, s) {\n g(this.isInTransaction(), h);\n var t = JSBNG__Date.now(), u = null, v;\n try {\n this.initializeAll();\n v = l.call(m, n, o, p, q, r, s);\n } catch (w) {\n u = w;\n } finally {\n var x = JSBNG__Date.now();\n this.methodInvocationTime += ((x - t));\n try {\n this.closeAll();\n } catch (y) {\n u = ((u || y));\n };\n ;\n };\n ;\n if (u) {\n throw u;\n }\n ;\n ;\n return v;\n },\n initializeAll: function() {\n this._isInTransaction = true;\n var l = this.transactionWrappers, m = this.timingMetrics.wrapperInitTimes, n = null;\n for (var o = 0; ((o < l.length)); o++) {\n var p = JSBNG__Date.now(), q = l[o];\n try {\n this.wrapperInitData[o] = ((q.initialize ? q.initialize.call(this) : null));\n } catch (r) {\n n = ((n || r));\n this.wrapperInitData[o] = k.OBSERVED_ERROR;\n } finally {\n var s = m[o], t = JSBNG__Date.now();\n m[o] = ((((s || 0)) + ((t - p))));\n };\n ;\n };\n ;\n if (n) {\n throw n;\n }\n ;\n ;\n },\n closeAll: function() {\n g(!this.isInTransaction(), i);\n var l = this.transactionWrappers, m = this.timingMetrics.wrapperCloseTimes, n = null;\n for (var o = 0; ((o < l.length)); o++) {\n var p = l[o], q = JSBNG__Date.now(), r = this.wrapperInitData[o];\n try {\n if (((r !== k.OBSERVED_ERROR))) {\n ((p.close && p.close.call(this, r)));\n }\n ;\n ;\n } catch (s) {\n n = ((n || s));\n } finally {\n var t = JSBNG__Date.now(), u = m[o];\n m[o] = ((((u || 0)) + ((t - q))));\n };\n ;\n };\n ;\n this.wrapperInitData.length = 0;\n this._isInTransaction = false;\n if (n) {\n throw n;\n }\n ;\n ;\n }\n }, k = {\n Mixin: j,\n OBSERVED_ERROR: {\n }\n };\n e.exports = k;\n});\n__d(\"ReactReconcileTransaction\", [\"ExecutionEnvironment\",\"PooledClass\",\"ReactEventEmitter\",\"ReactInputSelection\",\"ReactOnDOMReady\",\"Transaction\",\"mixInto\",], function(a, b, c, d, e, f) {\n var g = b(\"ExecutionEnvironment\"), h = b(\"PooledClass\"), i = b(\"ReactEventEmitter\"), j = b(\"ReactInputSelection\"), k = b(\"ReactOnDOMReady\"), l = b(\"Transaction\"), m = b(\"mixInto\"), n = {\n initialize: j.getSelectionInformation,\n close: j.restoreSelection\n }, o = {\n initialize: function() {\n var t = i.isEnabled();\n i.setEnabled(false);\n return t;\n },\n close: function(t) {\n i.setEnabled(t);\n }\n }, p = {\n initialize: function() {\n this.reactOnDOMReady.reset();\n },\n close: function() {\n this.reactOnDOMReady.notifyAll();\n }\n }, q = [n,o,p,];\n function r() {\n this.reinitializeTransaction();\n this.reactOnDOMReady = k.getPooled(null);\n };\n;\n var s = {\n getTransactionWrappers: function() {\n if (g.canUseDOM) {\n return q;\n }\n else return []\n ;\n },\n getReactOnDOMReady: function() {\n return this.reactOnDOMReady;\n },\n destructor: function() {\n k.release(this.reactOnDOMReady);\n this.reactOnDOMReady = null;\n }\n };\n m(r, l.Mixin);\n m(r, s);\n h.addPoolingTo(r);\n e.exports = r;\n});\n__d(\"mergeHelpers\", [\"keyMirror\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"keyMirror\"), h = b(\"throwIf\"), i = 36, j = g({\n MERGE_ARRAY_FAIL: null,\n MERGE_CORE_FAILURE: null,\n MERGE_TYPE_USAGE_FAILURE: null,\n MERGE_DEEP_MAX_LEVELS: null,\n MERGE_DEEP_NO_ARR_STRATEGY: null\n }), k = function(m) {\n return ((((typeof m !== \"object\")) || ((m === null))));\n }, l = {\n MAX_MERGE_DEPTH: i,\n isTerminal: k,\n normalizeMergeArg: function(m) {\n return ((((((m === undefined)) || ((m === null)))) ? {\n } : m));\n },\n checkMergeArrayArgs: function(m, n) {\n h(((!Array.isArray(m) || !Array.isArray(n))), j.MERGE_CORE_FAILURE);\n },\n checkMergeObjectArgs: function(m, n) {\n l.checkMergeObjectArg(m);\n l.checkMergeObjectArg(n);\n },\n checkMergeObjectArg: function(m) {\n h(((k(m) || Array.isArray(m))), j.MERGE_CORE_FAILURE);\n },\n checkMergeLevel: function(m) {\n h(((m >= i)), j.MERGE_DEEP_MAX_LEVELS);\n },\n checkArrayStrategy: function(m) {\n h(((((m !== undefined)) && !((m in l.ArrayStrategies)))), j.MERGE_DEEP_NO_ARR_STRATEGY);\n },\n ArrayStrategies: g({\n Clobber: true,\n IndexByIndex: true\n }),\n ERRORS: j\n };\n e.exports = l;\n});\n__d(\"mergeInto\", [\"mergeHelpers\",], function(a, b, c, d, e, f) {\n var g = b(\"mergeHelpers\"), h = g.checkMergeObjectArg;\n function i(j, k) {\n h(j);\n if (((k != null))) {\n h(k);\n {\n var fin67keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin67i = (0);\n var l;\n for (; (fin67i < fin67keys.length); (fin67i++)) {\n ((l) = (fin67keys[fin67i]));\n {\n if (!k.hasOwnProperty(l)) {\n continue;\n }\n ;\n ;\n j[l] = k[l];\n };\n };\n };\n ;\n }\n ;\n ;\n };\n;\n e.exports = i;\n});\n__d(\"merge\", [\"mergeInto\",], function(a, b, c, d, e, f) {\n var g = b(\"mergeInto\"), h = function(i, j) {\n var k = {\n };\n g(k, i);\n g(k, j);\n return k;\n };\n e.exports = h;\n});\n__d(\"ReactComponent\", [\"ReactCurrentOwner\",\"ReactDOMIDOperations\",\"ReactID\",\"ReactMount\",\"ReactOwner\",\"ReactReconcileTransaction\",\"ReactUpdates\",\"invariant\",\"keyMirror\",\"merge\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactCurrentOwner\"), h = b(\"ReactDOMIDOperations\"), i = b(\"ReactID\"), j = b(\"ReactMount\"), k = b(\"ReactOwner\"), l = b(\"ReactReconcileTransaction\"), m = b(\"ReactUpdates\"), n = b(\"invariant\"), o = b(\"keyMirror\"), p = b(\"merge\"), q = \"{owner}\", r = \"{is.key.validated}\", s = o({\n MOUNTED: null,\n UNMOUNTED: null\n }), t = {\n };\n function u(x) {\n if (((x[r] || ((x.props.key != null))))) {\n return;\n }\n ;\n ;\n x[r] = true;\n if (!g.current) {\n return;\n }\n ;\n ;\n var y = g.current.constructor.displayName;\n if (t.hasOwnProperty(y)) {\n return;\n }\n ;\n ;\n t[y] = true;\n var z = ((((((\"Each child in an array should have a unique \\\"key\\\" prop. \" + \"Check the render method of \")) + y)) + \".\"));\n if (!x.isOwnedBy(g.current)) {\n var aa = ((x.props[q] && x.props[q].constructor.displayName));\n z += ((((\" It was passed a child from \" + aa)) + \".\"));\n }\n ;\n ;\n };\n;\n function v(x) {\n if (Array.isArray(x)) {\n for (var y = 0; ((y < x.length)); y++) {\n var z = x[y];\n if (w.isValidComponent(z)) {\n u(z);\n }\n ;\n ;\n };\n ;\n }\n else if (w.isValidComponent(x)) {\n x[r] = true;\n }\n \n ;\n ;\n };\n;\n var w = {\n isValidComponent: function(x) {\n return !!((((x && ((typeof x.mountComponentIntoNode === \"function\")))) && ((typeof x.receiveProps === \"function\"))));\n },\n getKey: function(x, y) {\n if (((((x && x.props)) && ((x.props.key != null))))) {\n return ((\"\" + x.props.key));\n }\n ;\n ;\n return ((\"\" + y));\n },\n LifeCycle: s,\n DOMIDOperations: h,\n ReactReconcileTransaction: l,\n setDOMOperations: function(x) {\n w.DOMIDOperations = x;\n },\n setReactReconcileTransaction: function(x) {\n w.ReactReconcileTransaction = x;\n },\n Mixin: {\n isMounted: function() {\n return ((this._lifeCycleState === s.MOUNTED));\n },\n getDOMNode: function() {\n n(this.isMounted());\n return i.getNode(this._rootNodeID);\n },\n setProps: function(x, y) {\n this.replaceProps(p(((this._pendingProps || this.props)), x), y);\n },\n replaceProps: function(x, y) {\n n(!this.props[q]);\n this._pendingProps = x;\n m.enqueueUpdate(this, y);\n },\n construct: function(x, y) {\n this.props = ((x || {\n }));\n this.props[q] = g.current;\n this._lifeCycleState = s.UNMOUNTED;\n this._pendingProps = null;\n this._pendingCallbacks = null;\n var z = ((arguments.length - 1));\n if (((z === 1))) {\n this.props.children = y;\n }\n else if (((z > 1))) {\n var aa = Array(z);\n for (var ba = 0; ((ba < z)); ba++) {\n aa[ba] = arguments[((ba + 1))];\n ;\n };\n ;\n this.props.children = aa;\n }\n \n ;\n ;\n },\n mountComponent: function(x, y) {\n n(!this.isMounted());\n var z = this.props;\n if (((z.ref != null))) {\n k.addComponentAsRefTo(this, z.ref, z[q]);\n }\n ;\n ;\n this._rootNodeID = x;\n this._lifeCycleState = s.MOUNTED;\n },\n unmountComponent: function() {\n n(this.isMounted());\n var x = this.props;\n if (((x.ref != null))) {\n k.removeComponentAsRefFrom(this, x.ref, x[q]);\n }\n ;\n ;\n i.purgeID(this._rootNodeID);\n this._rootNodeID = null;\n this._lifeCycleState = s.UNMOUNTED;\n },\n receiveProps: function(x, y) {\n n(this.isMounted());\n this._pendingProps = x;\n this._performUpdateIfNecessary(y);\n },\n performUpdateIfNecessary: function() {\n var x = w.ReactReconcileTransaction.getPooled();\n x.perform(this._performUpdateIfNecessary, this, x);\n w.ReactReconcileTransaction.release(x);\n },\n _performUpdateIfNecessary: function(x) {\n if (((this._pendingProps == null))) {\n return;\n }\n ;\n ;\n var y = this.props;\n this.props = this._pendingProps;\n this._pendingProps = null;\n this.updateComponent(x, y);\n },\n updateComponent: function(x, y) {\n var z = this.props;\n if (((((z[q] !== y[q])) || ((z.ref !== y.ref))))) {\n if (((y.ref != null))) {\n k.removeComponentAsRefFrom(this, y.ref, y[q]);\n }\n ;\n ;\n if (((z.ref != null))) {\n k.addComponentAsRefTo(this, z.ref, z[q]);\n }\n ;\n ;\n }\n ;\n ;\n },\n mountComponentIntoNode: function(x, y, z) {\n var aa = w.ReactReconcileTransaction.getPooled();\n aa.perform(this._mountComponentIntoNode, this, x, y, aa, z);\n w.ReactReconcileTransaction.release(aa);\n },\n _mountComponentIntoNode: function(x, y, z, aa) {\n n(((y && ((y.nodeType === 1)))));\n var ba = JSBNG__Date.now(), ca = this.mountComponent(x, z);\n j.totalInstantiationTime += ((JSBNG__Date.now() - ba));\n if (aa) {\n return;\n }\n ;\n ;\n var da = JSBNG__Date.now(), ea = y.parentNode;\n if (ea) {\n var fa = y.nextSibling;\n ea.removeChild(y);\n y.innerHTML = ca;\n if (fa) {\n ea.insertBefore(y, fa);\n }\n else ea.appendChild(y);\n ;\n ;\n }\n else y.innerHTML = ca;\n ;\n ;\n j.totalInjectionTime += ((JSBNG__Date.now() - da));\n },\n unmountComponentFromNode: function(x) {\n this.unmountComponent();\n while (x.lastChild) {\n x.removeChild(x.lastChild);\n ;\n };\n ;\n },\n isOwnedBy: function(x) {\n return ((this.props[q] === x));\n },\n getSiblingByRef: function(x) {\n var y = this.props[q];\n if (((!y || !y.refs))) {\n return null;\n }\n ;\n ;\n return y.refs[x];\n }\n }\n };\n e.exports = w;\n});\n__d(\"joinClasses\", [], function(a, b, c, d, e, f) {\n function g(h) {\n if (!h) {\n h = \"\";\n }\n ;\n ;\n var i, j = arguments.length;\n if (((j > 1))) {\n for (var k = 1; ((k < j)); k++) {\n i = arguments[k];\n ((i && (h += ((\" \" + i)))));\n };\n }\n ;\n ;\n return h;\n };\n;\n e.exports = g;\n});\n__d(\"ReactPropTransferer\", [\"emptyFunction\",\"joinClasses\",\"merge\",], function(a, b, c, d, e, f) {\n var g = b(\"emptyFunction\"), h = b(\"joinClasses\"), i = b(\"merge\");\n function j(m) {\n return function(n, o, p) {\n if (!n.hasOwnProperty(o)) {\n n[o] = p;\n }\n else n[o] = m(n[o], p);\n ;\n ;\n };\n };\n;\n var k = {\n children: g,\n className: j(h),\n ref: g,\n style: j(i)\n }, l = {\n TransferStrategies: k,\n Mixin: {\n transferPropsTo: function(m) {\n var n = {\n };\n {\n var fin68keys = ((window.top.JSBNG_Replay.forInKeys)((m.props))), fin68i = (0);\n var o;\n for (; (fin68i < fin68keys.length); (fin68i++)) {\n ((o) = (fin68keys[fin68i]));\n {\n if (m.props.hasOwnProperty(o)) {\n n[o] = m.props[o];\n }\n ;\n ;\n };\n };\n };\n ;\n {\n var fin69keys = ((window.top.JSBNG_Replay.forInKeys)((this.props))), fin69i = (0);\n var p;\n for (; (fin69i < fin69keys.length); (fin69i++)) {\n ((p) = (fin69keys[fin69i]));\n {\n if (!this.props.hasOwnProperty(p)) {\n continue;\n }\n ;\n ;\n var q = k[p];\n if (q) {\n q(n, p, this.props[p]);\n }\n else if (!n.hasOwnProperty(p)) {\n n[p] = this.props[p];\n }\n \n ;\n ;\n };\n };\n };\n ;\n m.props = n;\n return m;\n }\n }\n };\n e.exports = l;\n});\n__d(\"ReactCompositeComponent\", [\"ReactComponent\",\"ReactCurrentOwner\",\"ReactOwner\",\"ReactPropTransferer\",\"ReactUpdates\",\"invariant\",\"keyMirror\",\"merge\",\"mixInto\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactComponent\"), h = b(\"ReactCurrentOwner\"), i = b(\"ReactOwner\"), j = b(\"ReactPropTransferer\"), k = b(\"ReactUpdates\"), l = b(\"invariant\"), m = b(\"keyMirror\"), n = b(\"merge\"), o = b(\"mixInto\"), p = m({\n DEFINE_ONCE: null,\n DEFINE_MANY: null,\n OVERRIDE_BASE: null\n }), q = {\n mixins: p.DEFINE_MANY,\n props: p.DEFINE_ONCE,\n getDefaultProps: p.DEFINE_ONCE,\n getInitialState: p.DEFINE_ONCE,\n render: p.DEFINE_ONCE,\n componentWillMount: p.DEFINE_MANY,\n componentDidMount: p.DEFINE_MANY,\n componentWillReceiveProps: p.DEFINE_MANY,\n shouldComponentUpdate: p.DEFINE_ONCE,\n componentWillUpdate: p.DEFINE_MANY,\n componentDidUpdate: p.DEFINE_MANY,\n componentWillUnmount: p.DEFINE_MANY,\n updateComponent: p.OVERRIDE_BASE\n }, r = {\n displayName: function(aa, ba) {\n aa.displayName = ba;\n },\n mixins: function(aa, ba) {\n if (ba) {\n for (var ca = 0; ((ca < ba.length)); ca++) {\n u(aa, ba[ca]);\n ;\n };\n }\n ;\n ;\n },\n props: function(aa, ba) {\n aa.propDeclarations = ba;\n }\n };\n function s(aa, ba) {\n var ca = q[ba];\n if (x.hasOwnProperty(ba)) {\n l(((ca === p.OVERRIDE_BASE)));\n }\n ;\n ;\n if (aa.hasOwnProperty(ba)) {\n l(((ca === p.DEFINE_MANY)));\n }\n ;\n ;\n };\n;\n function t(aa) {\n var ba = aa._compositeLifeCycleState;\n l(((aa.isMounted() || ((ba === w.MOUNTING)))));\n l(((((ba !== w.RECEIVING_STATE)) && ((ba !== w.UNMOUNTING)))));\n };\n;\n function u(aa, ba) {\n var ca = aa.prototype;\n {\n var fin70keys = ((window.top.JSBNG_Replay.forInKeys)((ba))), fin70i = (0);\n var da;\n for (; (fin70i < fin70keys.length); (fin70i++)) {\n ((da) = (fin70keys[fin70i]));\n {\n var ea = ba[da];\n if (((!ba.hasOwnProperty(da) || !ea))) {\n continue;\n }\n ;\n ;\n s(ca, da);\n if (r.hasOwnProperty(da)) {\n r[da](aa, ea);\n }\n else {\n var fa = ((da in q)), ga = ((da in ca)), ha = ea.__reactDontBind, ia = ((typeof ea === \"function\")), ja = ((((((ia && !fa)) && !ga)) && !ha));\n if (ja) {\n if (!ca.__reactAutoBindMap) {\n ca.__reactAutoBindMap = {\n };\n }\n ;\n ;\n ca.__reactAutoBindMap[da] = ea;\n ca[da] = ea;\n }\n else if (ga) {\n ca[da] = v(ca[da], ea);\n }\n else ca[da] = ea;\n \n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n };\n;\n function v(aa, ba) {\n return function ca() {\n aa.apply(this, arguments);\n ba.apply(this, arguments);\n };\n };\n;\n var w = m({\n MOUNTING: null,\n UNMOUNTING: null,\n RECEIVING_PROPS: null,\n RECEIVING_STATE: null\n }), x = {\n construct: function(aa, ba) {\n g.Mixin.construct.apply(this, arguments);\n this.state = null;\n this._pendingState = null;\n this._compositeLifeCycleState = null;\n },\n isMounted: function() {\n return ((g.Mixin.isMounted.call(this) && ((this._compositeLifeCycleState !== w.MOUNTING))));\n },\n mountComponent: function(aa, ba) {\n g.Mixin.mountComponent.call(this, aa, ba);\n this._compositeLifeCycleState = w.MOUNTING;\n this._defaultProps = ((this.getDefaultProps ? this.getDefaultProps() : null));\n this._processProps(this.props);\n if (this.__reactAutoBindMap) {\n this._bindAutoBindMethods();\n }\n ;\n ;\n this.state = ((this.getInitialState ? this.getInitialState() : null));\n this._pendingState = null;\n this._pendingForceUpdate = false;\n if (this.componentWillMount) {\n this.componentWillMount();\n if (this._pendingState) {\n this.state = this._pendingState;\n this._pendingState = null;\n }\n ;\n ;\n }\n ;\n ;\n this._renderedComponent = this._renderValidatedComponent();\n this._compositeLifeCycleState = null;\n var ca = this._renderedComponent.mountComponent(aa, ba);\n if (this.componentDidMount) {\n ba.getReactOnDOMReady().enqueue(this, this.componentDidMount);\n }\n ;\n ;\n return ca;\n },\n unmountComponent: function() {\n this._compositeLifeCycleState = w.UNMOUNTING;\n if (this.componentWillUnmount) {\n this.componentWillUnmount();\n }\n ;\n ;\n this._compositeLifeCycleState = null;\n this._defaultProps = null;\n g.Mixin.unmountComponent.call(this);\n this._renderedComponent.unmountComponent();\n this._renderedComponent = null;\n if (this.refs) {\n this.refs = null;\n }\n ;\n ;\n },\n setState: function(aa, ba) {\n this.replaceState(n(((this._pendingState || this.state)), aa), ba);\n },\n replaceState: function(aa, ba) {\n t.call(null, this);\n this._pendingState = aa;\n k.enqueueUpdate(this, ba);\n },\n _processProps: function(aa) {\n var ba, ca = this._defaultProps;\n {\n var fin71keys = ((window.top.JSBNG_Replay.forInKeys)((ca))), fin71i = (0);\n (0);\n for (; (fin71i < fin71keys.length); (fin71i++)) {\n ((ba) = (fin71keys[fin71i]));\n {\n if (!((ba in aa))) {\n aa[ba] = ca[ba];\n }\n ;\n ;\n };\n };\n };\n ;\n var da = this.constructor.propDeclarations;\n if (da) {\n var ea = this.constructor.displayName;\n {\n var fin72keys = ((window.top.JSBNG_Replay.forInKeys)((da))), fin72i = (0);\n (0);\n for (; (fin72i < fin72keys.length); (fin72i++)) {\n ((ba) = (fin72keys[fin72i]));\n {\n var fa = da[ba];\n if (fa) {\n fa(aa, ba, ea);\n }\n ;\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n },\n performUpdateIfNecessary: function() {\n var aa = this._compositeLifeCycleState;\n if (((((aa === w.MOUNTING)) || ((aa === w.RECEIVING_PROPS))))) {\n return;\n }\n ;\n ;\n g.Mixin.performUpdateIfNecessary.call(this);\n },\n _performUpdateIfNecessary: function(aa) {\n if (((((((this._pendingProps == null)) && ((this._pendingState == null)))) && !this._pendingForceUpdate))) {\n return;\n }\n ;\n ;\n var ba = this.props;\n if (((this._pendingProps != null))) {\n ba = this._pendingProps;\n this._processProps(ba);\n this._pendingProps = null;\n this._compositeLifeCycleState = w.RECEIVING_PROPS;\n if (this.componentWillReceiveProps) {\n this.componentWillReceiveProps(ba, aa);\n }\n ;\n ;\n }\n ;\n ;\n this._compositeLifeCycleState = w.RECEIVING_STATE;\n var ca = ((this._pendingState || this.state));\n this._pendingState = null;\n if (((((this._pendingForceUpdate || !this.shouldComponentUpdate)) || this.shouldComponentUpdate(ba, ca)))) {\n this._pendingForceUpdate = false;\n this._performComponentUpdate(ba, ca, aa);\n }\n else {\n this.props = ba;\n this.state = ca;\n }\n ;\n ;\n this._compositeLifeCycleState = null;\n },\n _performComponentUpdate: function(aa, ba, ca) {\n var da = this.props, ea = this.state;\n if (this.componentWillUpdate) {\n this.componentWillUpdate(aa, ba, ca);\n }\n ;\n ;\n this.props = aa;\n this.state = ba;\n this.updateComponent(ca, da, ea);\n if (this.componentDidUpdate) {\n ca.getReactOnDOMReady().enqueue(this, this.componentDidUpdate.bind(this, da, ea));\n }\n ;\n ;\n },\n updateComponent: function(aa, ba, ca) {\n g.Mixin.updateComponent.call(this, aa, ba);\n var da = this._renderedComponent, ea = this._renderValidatedComponent();\n if (((da.constructor === ea.constructor))) {\n da.receiveProps(ea.props, aa);\n }\n else {\n var fa = this._rootNodeID, ga = da._rootNodeID;\n da.unmountComponent();\n var ha = ea.mountComponent(fa, aa);\n g.DOMIDOperations.dangerouslyReplaceNodeWithMarkupByID(ga, ha);\n this._renderedComponent = ea;\n }\n ;\n ;\n },\n forceUpdate: function(aa) {\n var ba = this._compositeLifeCycleState;\n l(((this.isMounted() || ((ba === w.MOUNTING)))));\n l(((((ba !== w.RECEIVING_STATE)) && ((ba !== w.UNMOUNTING)))));\n this._pendingForceUpdate = true;\n k.enqueueUpdate(this, aa);\n },\n _renderValidatedComponent: function() {\n var aa;\n h.current = this;\n try {\n aa = this.render();\n } catch (ba) {\n throw ba;\n } finally {\n h.current = null;\n };\n ;\n l(g.isValidComponent(aa));\n return aa;\n },\n _bindAutoBindMethods: function() {\n {\n var fin73keys = ((window.top.JSBNG_Replay.forInKeys)((this.__reactAutoBindMap))), fin73i = (0);\n var aa;\n for (; (fin73i < fin73keys.length); (fin73i++)) {\n ((aa) = (fin73keys[fin73i]));\n {\n if (!this.__reactAutoBindMap.hasOwnProperty(aa)) {\n continue;\n }\n ;\n ;\n var ba = this.__reactAutoBindMap[aa];\n this[aa] = this._bindAutoBindMethod(ba);\n };\n };\n };\n ;\n },\n _bindAutoBindMethod: function(aa) {\n var ba = this;\n return function() {\n return aa.apply(ba, arguments);\n };\n }\n }, y = function() {\n \n };\n o(y, g.Mixin);\n o(y, i.Mixin);\n o(y, j.Mixin);\n o(y, x);\n var z = {\n LifeCycle: w,\n Base: y,\n createClass: function(aa) {\n var ba = function() {\n \n };\n ba.prototype = new y();\n ba.prototype.constructor = ba;\n u(ba, aa);\n l(ba.prototype.render);\n var ca = function(da, ea) {\n var fa = new ba();\n fa.construct.apply(fa, arguments);\n return fa;\n };\n ca.componentConstructor = ba;\n ca.originalSpec = aa;\n return ca;\n },\n autoBind: function(aa) {\n return aa;\n }\n };\n e.exports = z;\n});\n__d(\"ReactMultiChild\", [\"ReactComponent\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactComponent\");\n function h(k, l) {\n return ((((k && l)) && ((k.constructor === l.constructor))));\n };\n;\n var i = {\n enqueueMarkupAt: function(k, l) {\n this.domOperations = ((this.domOperations || []));\n this.domOperations.push({\n insertMarkup: k,\n finalIndex: l\n });\n },\n enqueueMove: function(k, l) {\n this.domOperations = ((this.domOperations || []));\n this.domOperations.push({\n moveFrom: k,\n finalIndex: l\n });\n },\n enqueueUnmountChildByName: function(k, l) {\n if (g.isValidComponent(l)) {\n this.domOperations = ((this.domOperations || []));\n this.domOperations.push({\n removeAt: l._domIndex\n });\n ((l.unmountComponent && l.unmountComponent()));\n delete this._renderedChildren[k];\n }\n ;\n ;\n },\n processChildDOMOperationsQueue: function() {\n if (this.domOperations) {\n g.DOMIDOperations.manageChildrenByParentID(this._rootNodeID, this.domOperations);\n this.domOperations = null;\n }\n ;\n ;\n },\n unmountMultiChild: function() {\n var k = this._renderedChildren;\n {\n var fin74keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin74i = (0);\n var l;\n for (; (fin74i < fin74keys.length); (fin74i++)) {\n ((l) = (fin74keys[fin74i]));\n {\n if (((k.hasOwnProperty(l) && k[l]))) {\n var m = k[l];\n ((m.unmountComponent && m.unmountComponent()));\n }\n ;\n ;\n };\n };\n };\n ;\n this._renderedChildren = null;\n },\n mountMultiChild: function(k, l) {\n var m = \"\", n = 0;\n {\n var fin75keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin75i = (0);\n var o;\n for (; (fin75i < fin75keys.length); (fin75i++)) {\n ((o) = (fin75keys[fin75i]));\n {\n var p = k[o];\n if (((k.hasOwnProperty(o) && p))) {\n m += p.mountComponent(((((this._rootNodeID + \".\")) + o)), l);\n p._domIndex = n;\n n++;\n }\n ;\n ;\n };\n };\n };\n ;\n this._renderedChildren = k;\n this.domOperations = null;\n return m;\n },\n updateMultiChild: function(k, l) {\n if (((!k && !this._renderedChildren))) {\n return;\n }\n else if (((k && !this._renderedChildren))) {\n this._renderedChildren = {\n };\n }\n else if (((!k && this._renderedChildren))) {\n k = {\n };\n }\n \n \n ;\n ;\n var m = ((this._rootNodeID + \".\")), n = null, o = 0, p = 0, q = 0;\n {\n var fin76keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin76i = (0);\n var r;\n for (; (fin76i < fin76keys.length); (fin76i++)) {\n ((r) = (fin76keys[fin76i]));\n {\n if (!k.hasOwnProperty(r)) {\n continue;\n }\n ;\n ;\n var s = this._renderedChildren[r], t = k[r];\n if (h(s, t)) {\n if (n) {\n this.enqueueMarkupAt(n, ((p - o)));\n n = null;\n }\n ;\n ;\n o = 0;\n if (((s._domIndex < q))) {\n this.enqueueMove(s._domIndex, p);\n }\n ;\n ;\n q = Math.max(s._domIndex, q);\n s.receiveProps(t.props, l);\n s._domIndex = p;\n }\n else {\n if (s) {\n this.enqueueUnmountChildByName(r, s);\n q = Math.max(s._domIndex, q);\n }\n ;\n ;\n if (t) {\n this._renderedChildren[r] = t;\n var u = t.mountComponent(((m + r)), l);\n n = ((n ? ((n + u)) : u));\n o++;\n t._domIndex = p;\n }\n ;\n ;\n }\n ;\n ;\n p = ((t ? ((p + 1)) : p));\n };\n };\n };\n ;\n if (n) {\n this.enqueueMarkupAt(n, ((p - o)));\n }\n ;\n ;\n {\n var fin77keys = ((window.top.JSBNG_Replay.forInKeys)((this._renderedChildren))), fin77i = (0);\n var v;\n for (; (fin77i < fin77keys.length); (fin77i++)) {\n ((v) = (fin77keys[fin77i]));\n {\n if (!this._renderedChildren.hasOwnProperty(v)) {\n continue;\n }\n ;\n ;\n var w = this._renderedChildren[v];\n if (((w && !k[v]))) {\n this.enqueueUnmountChildByName(v, w);\n }\n ;\n ;\n };\n };\n };\n ;\n this.processChildDOMOperationsQueue();\n }\n }, j = {\n Mixin: i\n };\n e.exports = j;\n});\n__d(\"ReactTextComponent\", [\"ReactComponent\",\"ReactID\",\"escapeTextForBrowser\",\"mixInto\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactComponent\"), h = b(\"ReactID\"), i = b(\"escapeTextForBrowser\"), j = b(\"mixInto\"), k = function(l) {\n this.construct({\n text: l\n });\n };\n j(k, g.Mixin);\n j(k, {\n mountComponent: function(l) {\n g.Mixin.mountComponent.call(this, l);\n return ((((((((((((\"\\u003Cspan \" + h.ATTR_NAME)) + \"=\\\"\")) + l)) + \"\\\"\\u003E\")) + i(this.props.text))) + \"\\u003C/span\\u003E\"));\n },\n receiveProps: function(l, m) {\n if (((l.text !== this.props.text))) {\n this.props.text = l.text;\n g.DOMIDOperations.updateTextContentByID(this._rootNodeID, l.text);\n }\n ;\n ;\n }\n });\n e.exports = k;\n});\n__d(\"flattenChildren\", [\"ReactComponent\",\"ReactTextComponent\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactComponent\"), h = b(\"ReactTextComponent\"), i = b(\"throwIf\"), j = \"INVALID_CHILD\", k = ((\"You have two children with identical keys. Make sure that you set the \" + \"\\\"key\\\" property to a unique value such as a row ID.\")), l = function(n, o, p) {\n if (Array.isArray(o)) {\n for (var q = 0; ((q < o.length)); q++) {\n var r = o[q];\n l(n, r, ((((((p + \"[\")) + g.getKey(r, q))) + \"]\")));\n };\n ;\n }\n else {\n var s = typeof o, t = ((p === \"\")), u = ((t ? ((((\"[\" + g.getKey(o, 0))) + \"]\")) : p));\n if (((((((o === null)) || ((o === undefined)))) || ((s === \"boolean\"))))) {\n n[u] = null;\n }\n else if (o.mountComponentIntoNode) {\n n[u] = o;\n }\n else if (((s === \"object\"))) {\n i(((o && ((o.nodeType === 1)))), j);\n {\n var fin78keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin78i = (0);\n var v;\n for (; (fin78i < fin78keys.length); (fin78i++)) {\n ((v) = (fin78keys[fin78i]));\n {\n if (o.hasOwnProperty(v)) {\n l(n, o[v], ((((((p + \"{\")) + v)) + \"}\")));\n }\n ;\n ;\n };\n };\n };\n ;\n }\n else if (((s === \"string\"))) {\n n[u] = new h(o);\n }\n else if (((s === \"number\"))) {\n n[u] = new h(((\"\" + o)));\n }\n \n \n \n \n ;\n ;\n }\n ;\n ;\n };\n function m(n) {\n if (((((n === null)) || ((n === undefined))))) {\n return n;\n }\n ;\n ;\n var o = {\n };\n l(o, n, \"\");\n return o;\n };\n;\n e.exports = m;\n});\n__d(\"ReactNativeComponent\", [\"CSSPropertyOperations\",\"DOMPropertyOperations\",\"ReactComponent\",\"ReactEventEmitter\",\"ReactMultiChild\",\"ReactID\",\"escapeTextForBrowser\",\"flattenChildren\",\"invariant\",\"keyOf\",\"merge\",\"mixInto\",], function(a, b, c, d, e, f) {\n var g = b(\"CSSPropertyOperations\"), h = b(\"DOMPropertyOperations\"), i = b(\"ReactComponent\"), j = b(\"ReactEventEmitter\"), k = b(\"ReactMultiChild\"), l = b(\"ReactID\"), m = b(\"escapeTextForBrowser\"), n = b(\"flattenChildren\"), o = b(\"invariant\"), p = b(\"keyOf\"), q = b(\"merge\"), r = b(\"mixInto\"), s = j.putListener, t = j.deleteListener, u = j.registrationNames, v = {\n string: true,\n number: true\n }, w = p({\n dangerouslySetInnerHTML: null\n }), x = p({\n style: null\n });\n function y(aa) {\n if (!aa) {\n return;\n }\n ;\n ;\n o(((((aa.children == null)) || ((aa.dangerouslySetInnerHTML == null)))));\n o(((((aa.style == null)) || ((typeof aa.style === \"object\")))));\n };\n;\n function z(aa, ba) {\n this._tagOpen = ((((\"\\u003C\" + aa)) + \" \"));\n this._tagClose = ((ba ? \"\" : ((((\"\\u003C/\" + aa)) + \"\\u003E\"))));\n this.tagName = aa.toUpperCase();\n };\n;\n z.Mixin = {\n mountComponent: function(aa, ba) {\n i.Mixin.mountComponent.call(this, aa, ba);\n y(this.props);\n return ((((this._createOpenTagMarkup() + this._createContentMarkup(ba))) + this._tagClose));\n },\n _createOpenTagMarkup: function() {\n var aa = this.props, ba = this._tagOpen;\n {\n var fin79keys = ((window.top.JSBNG_Replay.forInKeys)((aa))), fin79i = (0);\n var ca;\n for (; (fin79i < fin79keys.length); (fin79i++)) {\n ((ca) = (fin79keys[fin79i]));\n {\n if (!aa.hasOwnProperty(ca)) {\n continue;\n }\n ;\n ;\n var da = aa[ca];\n if (((da == null))) {\n continue;\n }\n ;\n ;\n if (u[ca]) {\n s(this._rootNodeID, ca, da);\n }\n else {\n if (((ca === x))) {\n if (da) {\n da = aa.style = q(aa.style);\n }\n ;\n ;\n da = g.createMarkupForStyles(da);\n }\n ;\n ;\n var ea = h.createMarkupForProperty(ca, da);\n if (ea) {\n ba += ((\" \" + ea));\n }\n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n var fa = m(this._rootNodeID);\n return ((((((((((ba + \" \")) + l.ATTR_NAME)) + \"=\\\"\")) + fa)) + \"\\\"\\u003E\"));\n },\n _createContentMarkup: function(aa) {\n var ba = this.props.dangerouslySetInnerHTML;\n if (((ba != null))) {\n if (((ba.__html != null))) {\n return ba.__html;\n }\n ;\n ;\n }\n else {\n var ca = ((v[typeof this.props.children] ? this.props.children : null)), da = ((((ca != null)) ? null : this.props.children));\n if (((ca != null))) {\n return m(ca);\n }\n else if (((da != null))) {\n return this.mountMultiChild(n(da), aa);\n }\n \n ;\n ;\n }\n ;\n ;\n return \"\";\n },\n receiveProps: function(aa, ba) {\n y(aa);\n i.Mixin.receiveProps.call(this, aa, ba);\n },\n updateComponent: function(aa, ba) {\n i.Mixin.updateComponent.call(this, aa, ba);\n this._updateDOMProperties(ba);\n this._updateDOMChildren(ba, aa);\n },\n _updateDOMProperties: function(aa) {\n var ba = this.props, ca, da, ea;\n {\n var fin80keys = ((window.top.JSBNG_Replay.forInKeys)((aa))), fin80i = (0);\n (0);\n for (; (fin80i < fin80keys.length); (fin80i++)) {\n ((ca) = (fin80keys[fin80i]));\n {\n if (((ba.hasOwnProperty(ca) || !aa.hasOwnProperty(ca)))) {\n continue;\n }\n ;\n ;\n if (((ca === x))) {\n var fa = aa[ca];\n {\n var fin81keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin81i = (0);\n (0);\n for (; (fin81i < fin81keys.length); (fin81i++)) {\n ((da) = (fin81keys[fin81i]));\n {\n if (fa.hasOwnProperty(da)) {\n ea = ((ea || {\n }));\n ea[da] = \"\";\n }\n ;\n ;\n };\n };\n };\n ;\n }\n else if (((ca === w))) {\n i.DOMIDOperations.updateTextContentByID(this._rootNodeID, \"\");\n }\n else if (u[ca]) {\n t(this._rootNodeID, ca);\n }\n else i.DOMIDOperations.deletePropertyByID(this._rootNodeID, ca);\n \n \n ;\n ;\n };\n };\n };\n ;\n {\n var fin82keys = ((window.top.JSBNG_Replay.forInKeys)((ba))), fin82i = (0);\n (0);\n for (; (fin82i < fin82keys.length); (fin82i++)) {\n ((ca) = (fin82keys[fin82i]));\n {\n var ga = ba[ca], ha = aa[ca];\n if (((!ba.hasOwnProperty(ca) || ((ga === ha))))) {\n continue;\n }\n ;\n ;\n if (((ca === x))) {\n if (ga) {\n ga = ba.style = q(ga);\n }\n ;\n ;\n if (ha) {\n {\n var fin83keys = ((window.top.JSBNG_Replay.forInKeys)((ha))), fin83i = (0);\n (0);\n for (; (fin83i < fin83keys.length); (fin83i++)) {\n ((da) = (fin83keys[fin83i]));\n {\n if (((ha.hasOwnProperty(da) && !ga.hasOwnProperty(da)))) {\n ea = ((ea || {\n }));\n ea[da] = \"\";\n }\n ;\n ;\n };\n };\n };\n ;\n {\n var fin84keys = ((window.top.JSBNG_Replay.forInKeys)((ga))), fin84i = (0);\n (0);\n for (; (fin84i < fin84keys.length); (fin84i++)) {\n ((da) = (fin84keys[fin84i]));\n {\n if (((ga.hasOwnProperty(da) && ((ha[da] !== ga[da]))))) {\n ea = ((ea || {\n }));\n ea[da] = ga[da];\n }\n ;\n ;\n };\n };\n };\n ;\n }\n else ea = ga;\n ;\n ;\n }\n else if (((ca === w))) {\n var ia = ((ha && ha.__html)), ja = ((ga && ga.__html));\n if (((ia !== ja))) {\n i.DOMIDOperations.updateInnerHTMLByID(this._rootNodeID, ga);\n }\n ;\n ;\n }\n else if (u[ca]) {\n s(this._rootNodeID, ca, ga);\n }\n else i.DOMIDOperations.updatePropertyByID(this._rootNodeID, ca, ga);\n \n \n ;\n ;\n };\n };\n };\n ;\n if (ea) {\n i.DOMIDOperations.updateStylesByID(this._rootNodeID, ea);\n }\n ;\n ;\n },\n _updateDOMChildren: function(aa, ba) {\n var ca = this.props, da = ((v[typeof aa.children] ? aa.children : null)), ea = ((v[typeof ca.children] ? ca.children : null)), fa = ((((da != null)) ? null : aa.children)), ga = ((((ea != null)) ? null : ca.children));\n if (((ea != null))) {\n var ha = ((((fa != null)) && ((ga == null))));\n if (ha) {\n this.updateMultiChild(null, ba);\n }\n ;\n ;\n if (((da !== ea))) {\n i.DOMIDOperations.updateTextContentByID(this._rootNodeID, ((\"\" + ea)));\n }\n ;\n ;\n }\n else {\n var ia = ((((da != null)) && ((ea == null))));\n if (ia) {\n i.DOMIDOperations.updateTextContentByID(this._rootNodeID, \"\");\n }\n ;\n ;\n this.updateMultiChild(n(ca.children), ba);\n }\n ;\n ;\n },\n unmountComponent: function() {\n j.deleteAllListeners(this._rootNodeID);\n i.Mixin.unmountComponent.call(this);\n this.unmountMultiChild();\n }\n };\n r(z, i.Mixin);\n r(z, z.Mixin);\n r(z, k.Mixin);\n e.exports = z;\n});\n__d(\"objMapKeyVal\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n if (!h) {\n return null;\n }\n ;\n ;\n var k = 0, l = {\n };\n {\n var fin85keys = ((window.top.JSBNG_Replay.forInKeys)((h))), fin85i = (0);\n var m;\n for (; (fin85i < fin85keys.length); (fin85i++)) {\n ((m) = (fin85keys[fin85i]));\n {\n if (h.hasOwnProperty(m)) {\n l[m] = i.call(j, m, h[m], k++);\n }\n ;\n ;\n };\n };\n };\n ;\n return l;\n };\n;\n e.exports = g;\n});\n__d(\"ReactDOM\", [\"ReactNativeComponent\",\"mergeInto\",\"objMapKeyVal\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactNativeComponent\"), h = b(\"mergeInto\"), i = b(\"objMapKeyVal\");\n function j(m, n) {\n var o = function() {\n \n };\n o.prototype = new g(m, n);\n o.prototype.constructor = o;\n var p = function(q, r) {\n var s = new o();\n s.construct.apply(s, arguments);\n return s;\n };\n p.componentConstructor = o;\n return p;\n };\n;\n var k = i({\n a: false,\n abbr: false,\n address: false,\n audio: false,\n b: false,\n blockquote: false,\n body: false,\n br: true,\n button: false,\n code: false,\n col: true,\n colgroup: false,\n dd: false,\n div: false,\n section: false,\n dl: false,\n dt: false,\n em: false,\n embed: true,\n fieldset: false,\n figcaption: false,\n figure: false,\n footer: false,\n form: false,\n h1: false,\n h2: false,\n h3: false,\n h4: false,\n h5: false,\n h6: false,\n header: false,\n hr: true,\n i: false,\n iframe: false,\n img: true,\n input: true,\n label: false,\n legend: false,\n li: false,\n line: false,\n nav: false,\n object: false,\n ol: false,\n optgroup: false,\n option: false,\n p: false,\n param: true,\n pre: false,\n select: false,\n small: false,\n source: false,\n span: false,\n sub: false,\n sup: false,\n strong: false,\n table: false,\n tbody: false,\n td: false,\n textarea: false,\n tfoot: false,\n th: false,\n thead: false,\n time: false,\n title: false,\n tr: false,\n u: false,\n ul: false,\n video: false,\n wbr: false,\n circle: false,\n g: false,\n path: false,\n polyline: false,\n rect: false,\n svg: false,\n text: false\n }, j), l = {\n injectComponentClasses: function(m) {\n h(k, m);\n }\n };\n k.injection = l;\n e.exports = k;\n});\n__d(\"ReactProps\", [\"createObjectFrom\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"createObjectFrom\"), h = b(\"invariant\"), i = {\n array: k(\"array\"),\n bool: k(\"boolean\"),\n func: k(\"function\"),\n number: k(\"number\"),\n object: k(\"object\"),\n string: k(\"string\"),\n oneOf: l,\n instanceOf: m\n }, j = \"\\u003C\\u003Canonymous\\u003E\\u003E\";\n function k(o) {\n function p(q, r, s) {\n var t = typeof q;\n if (((((t === \"object\")) && Array.isArray(q)))) {\n t = \"array\";\n }\n ;\n ;\n h(((t === o)));\n };\n ;\n return n(p);\n };\n;\n function l(o) {\n var p = g(o);\n function q(r, s, t) {\n h(p[r]);\n };\n ;\n return n(q);\n };\n;\n function m(o) {\n function p(q, r, s) {\n h(((q instanceof o)));\n };\n ;\n return n(p);\n };\n;\n function n(o) {\n function p(q) {\n function r(s, t, u) {\n var v = s[t];\n if (((v != null))) {\n o(v, t, ((u || j)));\n }\n else h(!q);\n ;\n ;\n };\n ;\n if (!q) {\n r.isRequired = p(true);\n }\n ;\n ;\n return r;\n };\n ;\n return p(false);\n };\n;\n e.exports = i;\n});\n__d(\"ReactServerRendering\", [\"ReactReconcileTransaction\",\"ReactInstanceHandles\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactReconcileTransaction\"), h = b(\"ReactInstanceHandles\");\n function i(j, k) {\n var l = h.createReactRootID(), m = g.getPooled();\n m.reinitializeTransaction();\n try {\n m.perform(function() {\n k(j.mountComponent(l, m));\n }, null);\n } finally {\n g.release(m);\n };\n ;\n };\n;\n e.exports = {\n renderComponentToString: i\n };\n});\n__d(\"ReactDOMForm\", [\"ReactCompositeComponent\",\"ReactDOM\",\"ReactEventEmitter\",\"EventConstants\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactCompositeComponent\"), h = b(\"ReactDOM\"), i = b(\"ReactEventEmitter\"), j = b(\"EventConstants\"), k = h.form, l = g.createClass({\n render: function() {\n return this.transferPropsTo(k(null, this.props.children));\n },\n componentDidMount: function(m) {\n i.trapBubbledEvent(j.topLevelTypes.topSubmit, \"submit\", m);\n }\n });\n e.exports = l;\n});\n__d(\"ReactDOMInput\", [\"DOMPropertyOperations\",\"ReactCompositeComponent\",\"ReactDOM\",\"merge\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMPropertyOperations\"), h = b(\"ReactCompositeComponent\"), i = b(\"ReactDOM\"), j = b(\"merge\"), k = i.input, l = h.createClass({\n getInitialState: function() {\n return {\n checked: ((this.props.defaultChecked || false)),\n value: ((this.props.defaultValue || \"\"))\n };\n },\n shouldComponentUpdate: function() {\n return !this._isChanging;\n },\n getChecked: function() {\n return ((((this.props.checked != null)) ? this.props.checked : this.state.checked));\n },\n getValue: function() {\n return ((((this.props.value != null)) ? this.props.value : this.state.value));\n },\n render: function() {\n var m = j(this.props);\n m.checked = this.getChecked();\n m.value = this.getValue();\n m.onChange = this.handleChange;\n return k(m, this.props.children);\n },\n componentDidUpdate: function(m, n, o) {\n if (((this.props.checked != null))) {\n g.setValueForProperty(o, \"checked\", ((this.props.checked || false)));\n }\n ;\n ;\n if (((this.props.value != null))) {\n g.setValueForProperty(o, \"value\", ((this.props.value || \"\")));\n }\n ;\n ;\n },\n handleChange: h.autoBind(function(JSBNG__event) {\n var m;\n if (this.props.onChange) {\n this._isChanging = true;\n m = this.props.onChange(JSBNG__event);\n this._isChanging = false;\n }\n ;\n ;\n this.setState({\n checked: JSBNG__event.target.checked,\n value: JSBNG__event.target.value\n });\n return m;\n })\n });\n e.exports = l;\n});\n__d(\"ReactDOMTextarea\", [\"DOMPropertyOperations\",\"ReactCompositeComponent\",\"ReactDOM\",\"invariant\",\"merge\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMPropertyOperations\"), h = b(\"ReactCompositeComponent\"), i = b(\"ReactDOM\"), j = b(\"invariant\"), k = b(\"merge\"), l = i.textarea, m = {\n string: true,\n number: true\n }, n = h.createClass({\n getInitialState: function() {\n var o = this.props.defaultValue, p = this.props.children;\n if (((p != null))) {\n j(((o == null)));\n if (Array.isArray(p)) {\n j(((p.length <= 1)));\n p = p[0];\n }\n ;\n ;\n j(m[typeof p]);\n o = ((\"\" + p));\n }\n ;\n ;\n o = ((o || \"\"));\n return {\n initialValue: ((((this.props.value != null)) ? this.props.value : o)),\n value: o\n };\n },\n shouldComponentUpdate: function() {\n return !this._isChanging;\n },\n getValue: function() {\n return ((((this.props.value != null)) ? this.props.value : this.state.value));\n },\n render: function() {\n var o = k(this.props);\n j(((o.dangerouslySetInnerHTML == null)));\n o.value = this.getValue();\n o.onChange = this.handleChange;\n return l(o, this.state.initialValue);\n },\n componentDidUpdate: function(o, p, q) {\n if (((this.props.value != null))) {\n g.setValueForProperty(q, \"value\", ((this.props.value || \"\")));\n }\n ;\n ;\n },\n handleChange: h.autoBind(function(JSBNG__event) {\n var o;\n if (this.props.onChange) {\n this._isChanging = true;\n o = this.props.onChange(JSBNG__event);\n this._isChanging = false;\n }\n ;\n ;\n this.setState({\n value: JSBNG__event.target.value\n });\n return o;\n })\n });\n e.exports = n;\n});\n__d(\"DefaultDOMPropertyConfig\", [\"DOMProperty\",], function(a, b, c, d, e, f) {\n var g = b(\"DOMProperty\"), h = g.injection.MUST_USE_ATTRIBUTE, i = g.injection.MUST_USE_PROPERTY, j = g.injection.HAS_BOOLEAN_VALUE, k = g.injection.HAS_SIDE_EFFECTS, l = {\n isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\\d_.\\-]*$/),\n Properties: {\n accept: null,\n action: null,\n ajaxify: h,\n allowFullScreen: ((h | j)),\n alt: null,\n autoComplete: null,\n autoplay: j,\n cellPadding: null,\n cellSpacing: null,\n checked: ((i | j)),\n className: i,\n colSpan: null,\n contentEditable: null,\n controls: ((i | j)),\n data: null,\n dir: null,\n disabled: ((i | j)),\n draggable: null,\n enctype: null,\n height: h,\n hidden: ((h | j)),\n href: null,\n htmlFor: null,\n id: i,\n max: null,\n method: null,\n min: null,\n multiple: ((i | j)),\n JSBNG__name: null,\n poster: null,\n preload: null,\n placeholder: null,\n rel: null,\n required: j,\n role: h,\n scrollLeft: i,\n scrollTop: i,\n selected: ((i | j)),\n spellCheck: null,\n src: null,\n step: null,\n style: null,\n tabIndex: null,\n target: null,\n title: null,\n type: null,\n value: ((i | k)),\n width: h,\n wmode: h,\n cx: i,\n cy: i,\n d: i,\n fill: i,\n fx: i,\n fy: i,\n points: i,\n r: i,\n stroke: i,\n strokeLinecap: i,\n strokeWidth: i,\n transform: i,\n x: i,\n x1: i,\n x2: i,\n version: i,\n viewBox: i,\n y: i,\n y1: i,\n y2: i,\n spreadMethod: i,\n offset: i,\n stopColor: i,\n stopOpacity: i,\n gradientUnits: i,\n gradientTransform: i\n },\n DOMAttributeNames: {\n className: \"class\",\n htmlFor: \"for\",\n strokeLinecap: \"stroke-linecap\",\n strokeWidth: \"stroke-width\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\"\n },\n DOMPropertyNames: {\n autoComplete: \"autocomplete\",\n spellCheck: \"spellcheck\"\n },\n DOMMutationMethods: {\n className: function(m, n) {\n m.className = ((n || \"\"));\n }\n }\n };\n e.exports = l;\n});\n__d(\"DefaultEventPluginOrder\", [\"keyOf\",], function(a, b, c, d, e, f) {\n var g = b(\"keyOf\"), h = [g({\n ResponderEventPlugin: null\n }),g({\n SimpleEventPlugin: null\n }),g({\n TapEventPlugin: null\n }),g({\n EnterLeaveEventPlugin: null\n }),g({\n ChangeEventPlugin: null\n }),g({\n AnalyticsEventPlugin: null\n }),];\n e.exports = h;\n});\n__d(\"SyntheticEvent\", [\"PooledClass\",\"emptyFunction\",\"getEventTarget\",\"merge\",\"mergeInto\",], function(a, b, c, d, e, f) {\n var g = b(\"PooledClass\"), h = b(\"emptyFunction\"), i = b(\"getEventTarget\"), j = b(\"merge\"), k = b(\"mergeInto\"), l = {\n type: null,\n target: i,\n currentTarget: null,\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function(JSBNG__event) {\n return ((JSBNG__event.timeStamp || JSBNG__Date.now()));\n },\n defaultPrevented: null,\n isTrusted: null\n };\n function m(n, o, p) {\n this.dispatchConfig = n;\n this.dispatchMarker = o;\n this.nativeEvent = p;\n var q = this.constructor.Interface;\n {\n var fin86keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin86i = (0);\n var r;\n for (; (fin86i < fin86keys.length); (fin86i++)) {\n ((r) = (fin86keys[fin86i]));\n {\n var s = q[r];\n if (s) {\n this[r] = s(p);\n }\n else this[r] = p[r];\n ;\n ;\n };\n };\n };\n ;\n if (((p.defaultPrevented || ((p.returnValue === false))))) {\n this.isDefaultPrevented = h.thatReturnsTrue;\n }\n else this.isDefaultPrevented = h.thatReturnsFalse;\n ;\n ;\n this.isPropagationStopped = h.thatReturnsFalse;\n };\n;\n k(m.prototype, {\n preventDefault: function() {\n this.defaultPrevented = true;\n var JSBNG__event = this.nativeEvent;\n ((JSBNG__event.preventDefault ? JSBNG__event.preventDefault() : JSBNG__event.returnValue = false));\n this.isDefaultPrevented = h.thatReturnsTrue;\n },\n stopPropagation: function() {\n var JSBNG__event = this.nativeEvent;\n ((JSBNG__event.stopPropagation ? JSBNG__event.stopPropagation() : JSBNG__event.cancelBubble = true));\n this.isPropagationStopped = h.thatReturnsTrue;\n },\n persist: function() {\n this.isPersistent = h.thatReturnsTrue;\n },\n isPersistent: h.thatReturnsFalse,\n destructor: function() {\n var n = this.constructor.Interface;\n {\n var fin87keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin87i = (0);\n var o;\n for (; (fin87i < fin87keys.length); (fin87i++)) {\n ((o) = (fin87keys[fin87i]));\n {\n this[o] = null;\n ;\n };\n };\n };\n ;\n this.dispatchConfig = null;\n this.dispatchMarker = null;\n this.nativeEvent = null;\n }\n });\n m.Interface = l;\n m.augmentClass = function(n, o) {\n var p = this, q = Object.create(p.prototype);\n k(q, n.prototype);\n n.prototype = q;\n n.prototype.constructor = n;\n n.Interface = j(p.Interface, o);\n n.augmentClass = p.augmentClass;\n g.addPoolingTo(n, g.threeArgumentPooler);\n };\n g.addPoolingTo(m, g.threeArgumentPooler);\n e.exports = m;\n});\n__d(\"SyntheticUIEvent\", [\"SyntheticEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticEvent\"), h = {\n view: null,\n detail: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n;\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SyntheticMouseEvent\", [\"SyntheticUIEvent\",\"ViewportMetrics\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticUIEvent\"), h = b(\"ViewportMetrics\"), i = {\n JSBNG__screenX: null,\n JSBNG__screenY: null,\n clientX: null,\n clientY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n button: function(JSBNG__event) {\n var k = JSBNG__event.button;\n if (((\"which\" in JSBNG__event))) {\n return k;\n }\n ;\n ;\n return ((((k === 2)) ? 2 : ((((k === 4)) ? 1 : 0))));\n },\n buttons: null,\n relatedTarget: function(JSBNG__event) {\n return ((JSBNG__event.relatedTarget || ((((JSBNG__event.fromElement === JSBNG__event.srcElement)) ? JSBNG__event.toElement : JSBNG__event.fromElement))));\n },\n pageX: function(JSBNG__event) {\n return ((((\"pageX\" in JSBNG__event)) ? JSBNG__event.pageX : ((JSBNG__event.clientX + h.currentScrollLeft))));\n },\n pageY: function(JSBNG__event) {\n return ((((\"pageY\" in JSBNG__event)) ? JSBNG__event.pageY : ((JSBNG__event.clientY + h.currentScrollTop))));\n }\n };\n function j(k, l, m) {\n g.call(this, k, l, m);\n };\n;\n g.augmentClass(j, i);\n e.exports = j;\n});\n__d(\"EnterLeaveEventPlugin\", [\"EventConstants\",\"EventPropagators\",\"ExecutionEnvironment\",\"ReactInstanceHandles\",\"SyntheticMouseEvent\",\"ReactID\",\"keyOf\",], function(a, b, c, d, e, f) {\n var g = b(\"EventConstants\"), h = b(\"EventPropagators\"), i = b(\"ExecutionEnvironment\"), j = b(\"ReactInstanceHandles\"), k = b(\"SyntheticMouseEvent\"), l = b(\"ReactID\"), m = b(\"keyOf\"), n = g.topLevelTypes, o = j.getFirstReactDOM, p = {\n mouseEnter: {\n registrationName: m({\n onMouseEnter: null\n })\n },\n mouseLeave: {\n registrationName: m({\n onMouseLeave: null\n })\n }\n }, q = {\n eventTypes: p,\n extractEvents: function(r, s, t, u) {\n if (((((r === n.topMouseOver)) && ((u.relatedTarget || u.fromElement))))) {\n return null;\n }\n ;\n ;\n if (((((r !== n.topMouseOut)) && ((r !== n.topMouseOver))))) {\n return null;\n }\n ;\n ;\n var v, w;\n if (((r === n.topMouseOut))) {\n v = s;\n w = ((o(((u.relatedTarget || u.toElement))) || i.global));\n }\n else {\n v = i.global;\n w = s;\n }\n ;\n ;\n if (((v === w))) {\n return null;\n }\n ;\n ;\n var x = ((v ? l.getID(v) : \"\")), y = ((w ? l.getID(w) : \"\")), z = k.getPooled(p.mouseLeave, x, u), aa = k.getPooled(p.mouseEnter, y, u);\n h.accumulateEnterLeaveDispatches(z, aa, x, y);\n return [z,aa,];\n }\n };\n e.exports = q;\n});\n__d(\"ChangeEventPlugin\", [\"EventConstants\",\"EventPluginHub\",\"EventPropagators\",\"ExecutionEnvironment\",\"SyntheticEvent\",\"isEventSupported\",\"keyOf\",], function(a, b, c, d, e, f) {\n var g = b(\"EventConstants\"), h = b(\"EventPluginHub\"), i = b(\"EventPropagators\"), j = b(\"ExecutionEnvironment\"), k = b(\"SyntheticEvent\"), l = b(\"isEventSupported\"), m = b(\"keyOf\"), n = g.topLevelTypes, o = {\n change: {\n phasedRegistrationNames: {\n bubbled: m({\n onChange: null\n }),\n captured: m({\n onChangeCapture: null\n })\n }\n }\n }, p = null, q = null, r = null, s = null;\n function t(na) {\n return ((((na.nodeName === \"SELECT\")) || ((((na.nodeName === \"INPUT\")) && ((na.type === \"file\"))))));\n };\n;\n var u = false;\n if (j.canUseDOM) {\n u = ((l(\"change\") && ((!((\"documentMode\" in JSBNG__document)) || ((JSBNG__document.documentMode > 8))))));\n }\n;\n;\n function v(na) {\n var JSBNG__event = k.getPooled(o.change, q, na);\n i.accumulateTwoPhaseDispatches(JSBNG__event);\n h.enqueueEvents(JSBNG__event);\n h.processEventQueue();\n };\n;\n function w(na, oa) {\n p = na;\n q = oa;\n p.JSBNG__attachEvent(\"JSBNG__onchange\", v);\n };\n;\n function x() {\n if (!p) {\n return;\n }\n ;\n ;\n p.JSBNG__detachEvent(\"JSBNG__onchange\", v);\n p = null;\n q = null;\n };\n;\n function y(na, oa, pa) {\n if (((na === n.topChange))) {\n return pa;\n }\n ;\n ;\n };\n;\n function z(na, oa, pa) {\n if (((na === n.topFocus))) {\n x();\n w(oa, pa);\n }\n else if (((na === n.topBlur))) {\n x();\n }\n \n ;\n ;\n };\n;\n var aa = false;\n if (j.canUseDOM) {\n aa = ((l(\"input\") && ((!((\"documentMode\" in JSBNG__document)) || ((JSBNG__document.documentMode > 9))))));\n }\n;\n;\n var ba = {\n color: true,\n date: true,\n datetime: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true\n };\n function ca(na) {\n return ((((((na.nodeName === \"INPUT\")) && ba[na.type])) || ((na.nodeName === \"TEXTAREA\"))));\n };\n;\n var da = {\n get: function() {\n return s.get.call(this);\n },\n set: function(na) {\n r = na;\n s.set.call(this, na);\n }\n };\n function ea(na, oa) {\n p = na;\n q = oa;\n r = na.value;\n s = Object.getOwnPropertyDescriptor(na.constructor.prototype, \"value\");\n Object.defineProperty(p, \"value\", da);\n p.JSBNG__attachEvent(\"onpropertychange\", ga);\n };\n;\n function fa() {\n if (!p) {\n return;\n }\n ;\n ;\n delete p.value;\n p.JSBNG__detachEvent(\"onpropertychange\", ga);\n p = null;\n q = null;\n r = null;\n s = null;\n };\n;\n function ga(na) {\n if (((na.propertyName !== \"value\"))) {\n return;\n }\n ;\n ;\n var oa = na.srcElement.value;\n if (((oa === r))) {\n return;\n }\n ;\n ;\n r = oa;\n v(na);\n };\n;\n function ha(na, oa, pa) {\n if (((na === n.topInput))) {\n return pa;\n }\n ;\n ;\n };\n;\n function ia(na, oa, pa) {\n if (((na === n.topFocus))) {\n fa();\n ea(oa, pa);\n }\n else if (((na === n.topBlur))) {\n fa();\n }\n \n ;\n ;\n };\n;\n function ja(na, oa, pa) {\n if (((((((na === n.topSelectionChange)) || ((na === n.topKeyUp)))) || ((na === n.topKeyDown))))) {\n if (((p && ((p.value !== r))))) {\n r = p.value;\n return q;\n }\n ;\n }\n ;\n ;\n };\n;\n function ka(na) {\n return ((((na.nodeName === \"INPUT\")) && ((((na.type === \"checkbox\")) || ((na.type === \"radio\"))))));\n };\n;\n function la(na, oa, pa) {\n if (((na === n.topClick))) {\n return pa;\n }\n ;\n ;\n };\n;\n var ma = {\n eventTypes: o,\n extractEvents: function(na, oa, pa, qa) {\n var ra, sa;\n if (t(oa)) {\n if (u) {\n ra = y;\n }\n else sa = z;\n ;\n ;\n }\n else if (ca(oa)) {\n if (aa) {\n ra = ha;\n }\n else {\n ra = ja;\n sa = ia;\n }\n ;\n ;\n }\n else if (ka(oa)) {\n ra = la;\n }\n \n \n ;\n ;\n if (ra) {\n var ta = ra(na, oa, pa);\n if (ta) {\n var JSBNG__event = k.getPooled(o.change, ta, qa);\n i.accumulateTwoPhaseDispatches(JSBNG__event);\n return JSBNG__event;\n }\n ;\n ;\n }\n ;\n ;\n if (sa) {\n sa(na, oa, pa);\n }\n ;\n ;\n }\n };\n e.exports = ma;\n});\n__d(\"SyntheticFocusEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticUIEvent\"), h = {\n relatedTarget: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n;\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SyntheticKeyboardEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticUIEvent\"), h = {\n char: null,\n key: null,\n JSBNG__location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n charCode: null,\n keyCode: null,\n which: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n;\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SyntheticMutationEvent\", [\"SyntheticEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticEvent\"), h = {\n relatedNode: null,\n prevValue: null,\n newValue: null,\n attrName: null,\n attrChange: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n;\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SyntheticTouchEvent\", [\"SyntheticUIEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticUIEvent\"), h = {\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n;\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SyntheticWheelEvent\", [\"SyntheticMouseEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"SyntheticMouseEvent\"), h = {\n deltaX: function(JSBNG__event) {\n return ((((\"deltaX\" in JSBNG__event)) ? JSBNG__event.deltaX : ((((\"wheelDeltaX\" in JSBNG__event)) ? -JSBNG__event.wheelDeltaX : 0))));\n },\n deltaY: function(JSBNG__event) {\n return ((((\"deltaY\" in JSBNG__event)) ? -JSBNG__event.deltaY : ((((\"wheelDeltaY\" in JSBNG__event)) ? JSBNG__event.wheelDeltaY : ((((\"wheelDelta\" in JSBNG__event)) ? JSBNG__event.wheelData : 0))))));\n },\n deltaZ: null,\n deltaMode: null\n };\n function i(j, k, l) {\n g.call(this, j, k, l);\n };\n;\n g.augmentClass(i, h);\n e.exports = i;\n});\n__d(\"SimpleEventPlugin\", [\"EventConstants\",\"EventPropagators\",\"SyntheticEvent\",\"SyntheticFocusEvent\",\"SyntheticKeyboardEvent\",\"SyntheticMouseEvent\",\"SyntheticMutationEvent\",\"SyntheticTouchEvent\",\"SyntheticUIEvent\",\"SyntheticWheelEvent\",\"invariant\",\"keyOf\",], function(a, b, c, d, e, f) {\n var g = b(\"EventConstants\"), h = b(\"EventPropagators\"), i = b(\"SyntheticEvent\"), j = b(\"SyntheticFocusEvent\"), k = b(\"SyntheticKeyboardEvent\"), l = b(\"SyntheticMouseEvent\"), m = b(\"SyntheticMutationEvent\"), n = b(\"SyntheticTouchEvent\"), o = b(\"SyntheticUIEvent\"), p = b(\"SyntheticWheelEvent\"), q = b(\"invariant\"), r = b(\"keyOf\"), s = g.topLevelTypes, t = {\n JSBNG__blur: {\n phasedRegistrationNames: {\n bubbled: r({\n onBlur: true\n }),\n captured: r({\n onBlurCapture: true\n })\n }\n },\n click: {\n phasedRegistrationNames: {\n bubbled: r({\n onClick: true\n }),\n captured: r({\n onClickCapture: true\n })\n }\n },\n doubleClick: {\n phasedRegistrationNames: {\n bubbled: r({\n onDoubleClick: true\n }),\n captured: r({\n onDoubleClickCapture: true\n })\n }\n },\n drag: {\n phasedRegistrationNames: {\n bubbled: r({\n onDrag: true\n }),\n captured: r({\n onDragCapture: true\n })\n }\n },\n dragEnd: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragEnd: true\n }),\n captured: r({\n onDragEndCapture: true\n })\n }\n },\n dragEnter: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragEnter: true\n }),\n captured: r({\n onDragEnterCapture: true\n })\n }\n },\n dragExit: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragExit: true\n }),\n captured: r({\n onDragExitCapture: true\n })\n }\n },\n dragLeave: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragLeave: true\n }),\n captured: r({\n onDragLeaveCapture: true\n })\n }\n },\n dragOver: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragOver: true\n }),\n captured: r({\n onDragOverCapture: true\n })\n }\n },\n dragStart: {\n phasedRegistrationNames: {\n bubbled: r({\n onDragStart: true\n }),\n captured: r({\n onDragStartCapture: true\n })\n }\n },\n drop: {\n phasedRegistrationNames: {\n bubbled: r({\n onDrop: true\n }),\n captured: r({\n onDropCapture: true\n })\n }\n },\n DOMCharacterDataModified: {\n phasedRegistrationNames: {\n bubbled: r({\n onDOMCharacterDataModified: true\n }),\n captured: r({\n onDOMCharacterDataModifiedCapture: true\n })\n }\n },\n JSBNG__focus: {\n phasedRegistrationNames: {\n bubbled: r({\n onFocus: true\n }),\n captured: r({\n onFocusCapture: true\n })\n }\n },\n input: {\n phasedRegistrationNames: {\n bubbled: r({\n onInput: true\n }),\n captured: r({\n onInputCapture: true\n })\n }\n },\n keyDown: {\n phasedRegistrationNames: {\n bubbled: r({\n onKeyDown: true\n }),\n captured: r({\n onKeyDownCapture: true\n })\n }\n },\n keyPress: {\n phasedRegistrationNames: {\n bubbled: r({\n onKeyPress: true\n }),\n captured: r({\n onKeyPressCapture: true\n })\n }\n },\n keyUp: {\n phasedRegistrationNames: {\n bubbled: r({\n onKeyUp: true\n }),\n captured: r({\n onKeyUpCapture: true\n })\n }\n },\n mouseDown: {\n phasedRegistrationNames: {\n bubbled: r({\n onMouseDown: true\n }),\n captured: r({\n onMouseDownCapture: true\n })\n }\n },\n mouseMove: {\n phasedRegistrationNames: {\n bubbled: r({\n onMouseMove: true\n }),\n captured: r({\n onMouseMoveCapture: true\n })\n }\n },\n mouseUp: {\n phasedRegistrationNames: {\n bubbled: r({\n onMouseUp: true\n }),\n captured: r({\n onMouseUpCapture: true\n })\n }\n },\n JSBNG__scroll: {\n phasedRegistrationNames: {\n bubbled: r({\n onScroll: true\n }),\n captured: r({\n onScrollCapture: true\n })\n }\n },\n submit: {\n phasedRegistrationNames: {\n bubbled: r({\n onSubmit: true\n }),\n captured: r({\n onSubmitCapture: true\n })\n }\n },\n touchCancel: {\n phasedRegistrationNames: {\n bubbled: r({\n onTouchCancel: true\n }),\n captured: r({\n onTouchCancelCapture: true\n })\n }\n },\n touchEnd: {\n phasedRegistrationNames: {\n bubbled: r({\n onTouchEnd: true\n }),\n captured: r({\n onTouchEndCapture: true\n })\n }\n },\n touchMove: {\n phasedRegistrationNames: {\n bubbled: r({\n onTouchMove: true\n }),\n captured: r({\n onTouchMoveCapture: true\n })\n }\n },\n touchStart: {\n phasedRegistrationNames: {\n bubbled: r({\n onTouchStart: true\n }),\n captured: r({\n onTouchStartCapture: true\n })\n }\n },\n wheel: {\n phasedRegistrationNames: {\n bubbled: r({\n onWheel: true\n }),\n captured: r({\n onWheelCapture: true\n })\n }\n }\n }, u = {\n topBlur: t.JSBNG__blur,\n topClick: t.click,\n topDoubleClick: t.doubleClick,\n topDOMCharacterDataModified: t.DOMCharacterDataModified,\n topDrag: t.drag,\n topDragEnd: t.dragEnd,\n topDragEnter: t.dragEnter,\n topDragExit: t.dragExit,\n topDragLeave: t.dragLeave,\n topDragOver: t.dragOver,\n topDragStart: t.dragStart,\n topDrop: t.drop,\n topFocus: t.JSBNG__focus,\n topInput: t.input,\n topKeyDown: t.keyDown,\n topKeyPress: t.keyPress,\n topKeyUp: t.keyUp,\n topMouseDown: t.mouseDown,\n topMouseMove: t.mouseMove,\n topMouseUp: t.mouseUp,\n topScroll: t.JSBNG__scroll,\n topSubmit: t.submit,\n topTouchCancel: t.touchCancel,\n topTouchEnd: t.touchEnd,\n topTouchMove: t.touchMove,\n topTouchStart: t.touchStart,\n topWheel: t.wheel\n }, v = {\n eventTypes: t,\n executeDispatch: function(JSBNG__event, w, x) {\n var y = w(JSBNG__event, x);\n if (((y === false))) {\n JSBNG__event.stopPropagation();\n JSBNG__event.preventDefault();\n }\n ;\n ;\n },\n extractEvents: function(w, x, y, z) {\n var aa = u[w];\n if (!aa) {\n return null;\n }\n ;\n ;\n var ba;\n switch (w) {\n case s.topInput:\n \n case s.topSubmit:\n ba = i;\n break;\n case s.topKeyDown:\n \n case s.topKeyPress:\n \n case s.topKeyUp:\n ba = k;\n break;\n case s.topBlur:\n \n case s.topFocus:\n ba = j;\n break;\n case s.topClick:\n \n case s.topDoubleClick:\n \n case s.topDrag:\n \n case s.topDragEnd:\n \n case s.topDragEnter:\n \n case s.topDragExit:\n \n case s.topDragLeave:\n \n case s.topDragOver:\n \n case s.topDragStart:\n \n case s.topDrop:\n \n case s.topMouseDown:\n \n case s.topMouseMove:\n \n case s.topMouseUp:\n ba = l;\n break;\n case s.topDOMCharacterDataModified:\n ba = m;\n break;\n case s.topTouchCancel:\n \n case s.topTouchEnd:\n \n case s.topTouchMove:\n \n case s.topTouchStart:\n ba = n;\n break;\n case s.topScroll:\n ba = o;\n break;\n case s.topWheel:\n ba = p;\n break;\n };\n ;\n q(ba);\n var JSBNG__event = ba.getPooled(aa, y, z);\n h.accumulateTwoPhaseDispatches(JSBNG__event);\n return JSBNG__event;\n }\n };\n e.exports = v;\n});\n__d(\"ReactDefaultInjection\", [\"ReactDOM\",\"ReactDOMForm\",\"ReactDOMInput\",\"ReactDOMTextarea\",\"DefaultDOMPropertyConfig\",\"DOMProperty\",\"DefaultEventPluginOrder\",\"EnterLeaveEventPlugin\",\"ChangeEventPlugin\",\"EventPluginHub\",\"ReactInstanceHandles\",\"SimpleEventPlugin\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactDOM\"), h = b(\"ReactDOMForm\"), i = b(\"ReactDOMInput\"), j = b(\"ReactDOMTextarea\"), k = b(\"DefaultDOMPropertyConfig\"), l = b(\"DOMProperty\"), m = b(\"DefaultEventPluginOrder\"), n = b(\"EnterLeaveEventPlugin\"), o = b(\"ChangeEventPlugin\"), p = b(\"EventPluginHub\"), q = b(\"ReactInstanceHandles\"), r = b(\"SimpleEventPlugin\");\n function s() {\n p.injection.injectEventPluginOrder(m);\n p.injection.injectInstanceHandle(q);\n p.injection.injectEventPluginsByName({\n SimpleEventPlugin: r,\n EnterLeaveEventPlugin: n,\n ChangeEventPlugin: o\n });\n g.injection.injectComponentClasses({\n form: h,\n input: i,\n textarea: j\n });\n l.injection.injectDOMPropertyConfig(k);\n };\n;\n e.exports = {\n inject: s\n };\n});\n__d(\"React\", [\"ReactCompositeComponent\",\"ReactComponent\",\"ReactDOM\",\"ReactMount\",\"ReactProps\",\"ReactServerRendering\",\"ReactDefaultInjection\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactCompositeComponent\"), h = b(\"ReactComponent\"), i = b(\"ReactDOM\"), j = b(\"ReactMount\"), k = b(\"ReactProps\"), l = b(\"ReactServerRendering\"), m = b(\"ReactDefaultInjection\");\n m.inject();\n var n = {\n DOM: i,\n Props: k,\n initializeTouchEvents: function(o) {\n j.useTouchEvents = o;\n },\n autoBind: g.autoBind,\n createClass: g.createClass,\n constructAndRenderComponent: j.constructAndRenderComponent,\n constructAndRenderComponentByID: j.constructAndRenderComponentByID,\n renderComponent: j.renderComponent,\n renderComponentToString: l.renderComponentToString,\n unmountAndReleaseReactRootNode: j.unmountAndReleaseReactRootNode,\n isValidComponent: h.isValidComponent\n };\n e.exports = n;\n});\n__d(\"TrackingNodes\", [], function(a, b, c, d, e, f) {\n var g = {\n types: {\n USER_NAME: 2,\n LIKE_LINK: 5,\n UNLIKE_LINK: 6,\n ATTACHMENT: 15,\n SHARE_LINK: 17,\n USER_MESSAGE: 18,\n SOURCE: 21,\n BLINGBOX: 22,\n VIEW_ALL_COMMENTS: 24,\n COMMENT: 25,\n COMMENT_LINK: 26,\n SMALL_ACTOR_PHOTO: 27,\n XBUTTON: 29,\n HIDE_LINK: 30,\n REPORT_SPAM_LINK: 31,\n HIDE_ALL_LINK: 32,\n ADD_COMMENT_BOX: 34,\n UFI: 36,\n DROPDOWN_BUTTON: 55,\n UNHIDE_LINK: 71\n },\n BASE_CODE_START: 58,\n BASE_CODE_END: 126,\n BASE_CODE_SIZE: 69,\n PREFIX_CODE_START: 42,\n PREFIX_CODE_END: 47,\n PREFIX_CODE_SIZE: 6,\n encodeTrackingInfo: function(h, i) {\n var j = ((((h - 1)) % g.BASE_CODE_SIZE)), k = parseInt(((((h - 1)) / g.BASE_CODE_SIZE)), 10);\n if (((((h < 1)) || ((k > g.PREFIX_CODE_SIZE))))) {\n throw Error(((\"Invalid tracking node: \" + h)));\n }\n ;\n ;\n var l = \"\";\n if (((k > 0))) {\n l += String.fromCharCode(((((k - 1)) + g.PREFIX_CODE_START)));\n }\n ;\n ;\n l += String.fromCharCode(((j + g.BASE_CODE_START)));\n if (((((typeof i != \"undefined\")) && ((i > 0))))) {\n l += String.fromCharCode(((((48 + Math.min(i, 10))) - 1)));\n }\n ;\n ;\n return l;\n },\n decodeTN: function(h) {\n if (((h.length === 0))) {\n return [0,];\n }\n ;\n ;\n var i = h.charCodeAt(0), j = 1, k, l;\n if (((((i >= g.PREFIX_CODE_START)) && ((i <= g.PREFIX_CODE_END))))) {\n if (((h.length == 1))) {\n return [0,];\n }\n ;\n ;\n l = ((((i - g.PREFIX_CODE_START)) + 1));\n k = h.charCodeAt(1);\n j = 2;\n }\n else {\n l = 0;\n k = i;\n }\n ;\n ;\n if (((((k < g.BASE_CODE_START)) || ((k > g.BASE_CODE_END))))) {\n return [0,];\n }\n ;\n ;\n var m = ((((((l * g.BASE_CODE_SIZE)) + ((k - g.BASE_CODE_START)))) + 1));\n if (((((h.length > j)) && ((((h.charAt(j) >= \"0\")) && ((h.charAt(j) <= \"9\"))))))) {\n return [((j + 1)),[m,((parseInt(h.charAt(j), 10) + 1)),],];\n }\n ;\n ;\n return [j,[m,],];\n },\n parseTrackingNodeString: function(h) {\n var i = [];\n while (((h.length > 0))) {\n var j = g.decodeTN(h);\n if (((j.length == 1))) {\n return [];\n }\n ;\n ;\n i.push(j[1]);\n h = h.substring(j[0]);\n };\n ;\n return i;\n },\n getTrackingInfo: function(h, i) {\n return ((((\"{\\\"tn\\\":\\\"\" + g.encodeTrackingInfo(h, i))) + \"\\\"}\"));\n }\n };\n e.exports = g;\n});\n__d(\"NumberFormat\", [\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\"), h = /(\\d{3})(?=\\d)/g, i = 10000, j = function(l) {\n return ((\"\" + l)).split(\"\").reverse().join(\"\");\n }, k = {\n formatIntegerWithDelimiter: function(l, m) {\n if (((((((g.locale == \"nb_NO\")) || ((g.locale == \"nn_NO\")))) && ((Math.abs(l) < i))))) {\n return l.toString();\n }\n ;\n ;\n var n = j(l);\n return j(n.replace(h, ((\"$1\" + m))));\n }\n };\n e.exports = k;\n});\n__d(\"UFIBlingItem.react\", [\"React\",\"NumberFormat\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"NumberFormat\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = g.createClass({\n displayName: \"UFIBlingItem\",\n render: function() {\n var l = j(this.props.className, this.props.iconClassName, \"UFIBlingBoxSprite\"), m = h.formatIntegerWithDelimiter(this.props.count, ((this.props.contextArgs.numberdelimiter || \",\")));\n return (g.DOM.span(null, g.DOM.i({\n className: l\n }), g.DOM.span({\n className: \"UFIBlingBoxText\"\n }, m)));\n }\n });\n e.exports = k;\n});\n__d(\"UFIConstants\", [], function(a, b, c, d, e, f) {\n var g = {\n COMMENT_LIKE: \"fa-type:comment-like\",\n COMMENT_SET_SPAM: \"fa-type:mark-spam\",\n DELETE_COMMENT: \"fa-type:delete-comment\",\n LIVE_DELETE_COMMENT: \"fa-type:live-delete-comment\",\n LIKE_ACTION: \"fa-type:like\",\n REMOVE_PREVIEW: \"fa-type:remove-preview\",\n CONFIRM_COMMENT_REMOVAL: \"fa-type:confirm-remove\",\n TRANSLATE_COMMENT: \"fa-type:translate-comment\",\n SUBSCRIBE_ACTION: \"fa-type:subscribe\",\n GIFT_SUGGESTION: \"fa-type:gift-suggestion\",\n UNDO_DELETE_COMMENT: \"fa-type:undo-delete-comment\"\n }, h = {\n DELETED: \"status:deleted\",\n SPAM: \"status:spam\",\n SPAM_DISPLAY: \"status:spam-display\",\n LIVE_DELETED: \"status:live-deleted\",\n FAILED_ADD: \"status:failed-add\",\n FAILED_EDIT: \"status:failed-edit\",\n PENDING_EDIT: \"status:pending-edit\",\n PENDING_UNDO_DELETE: \"status:pending-undo-delete\"\n }, i = {\n MOBILE: 1,\n SMS: 3,\n EMAIL: 4\n }, j = {\n PROFILE: 0,\n NEWS_FEED: 1,\n OBJECT: 2,\n MOBILE: 3,\n EMAIL: 4,\n PROFILE_APROVAL: 10,\n TICKER: 12,\n NONE: 13,\n INTERN: 14,\n ADS: 15,\n PHOTOS_SNOWLIFT: 17\n }, k = {\n UNKNOWN: 0,\n INITIAL_SERVER: 1,\n LIVE_SEND: 2,\n USER_ACTION: 3,\n COLLAPSED_UFI: 4,\n ENDPOINT_LIKE: 10,\n ENDPOINT_COMMENT_LIKE: 11,\n ENDPOINT_ADD_COMMENT: 12,\n ENDPOINT_EDIT_COMMENT: 13,\n ENDPOINT_DELETE_COMMENT: 14,\n ENDPOINT_UNDO_DELETE_COMMENT: 15,\n ENDPOINT_COMMENT_SPAM: 16,\n ENDPOINT_REMOVE_PREVIEW: 17,\n ENDPOINT_ID_COMMENT_FETCH: 18,\n ENDPOINT_COMMENT_FETCH: 19,\n ENDPOINT_TRANSLATE_COMMENT: 20,\n ENDPOINT_BAN: 21,\n ENDPOINT_SUBSCRIBE: 22\n }, l = {\n CHRONOLOGICAL: \"chronological\",\n RANKED_THREADED: \"ranked_threaded\",\n TOPLEVEL: \"toplevel\",\n RECENT_ACTIVITY: \"recent_activity\"\n }, m = 50, n = 97244, o = 420, p = 5, q = 80, r = 2;\n e.exports = {\n UFIActionType: g,\n UFIStatus: h,\n UFISourceType: i,\n UFIFeedbackSourceType: j,\n UFIPayloadSourceType: k,\n UFICommentOrderingMode: l,\n defaultPageSize: m,\n commentTruncationLength: o,\n commentTruncationPercent: n,\n commentTruncationMaxLines: p,\n attachmentTruncationLength: q,\n minCommentsForOrderingModeSelector: r\n };\n});\n__d(\"UFIBlingBox.react\", [\"React\",\"UFIBlingItem.react\",\"UFIConstants\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"UFIBlingItem.react\"), i = b(\"UFIConstants\"), j = b(\"cx\"), k = b(\"tx\"), l = g.createClass({\n displayName: \"UFIBlingBox\",\n render: function() {\n var m = [], n = \"\";\n if (this.props.likes) {\n m.push(h({\n count: this.props.likes,\n className: ((((m.length > 0)) ? \"mls\" : \"\")),\n iconClassName: \"UFIBlingBoxLikeIcon\",\n contextArgs: this.props.contextArgs\n }));\n n += ((((this.props.likes == 1)) ? \"1 like\" : k._(\"{count} likes\", {\n count: this.props.likes\n })));\n n += \" \";\n }\n ;\n ;\n if (this.props.comments) {\n m.push(h({\n count: this.props.comments,\n className: ((((m.length > 0)) ? \"mls\" : \"\")),\n iconClassName: \"UFIBlingBoxCommentIcon\",\n contextArgs: this.props.contextArgs\n }));\n n += ((((this.props.comments == 1)) ? \"1 comment\" : k._(\"{count} comments\", {\n count: this.props.comments\n })));\n n += \" \";\n }\n ;\n ;\n if (this.props.reshares) {\n m.push(h({\n count: this.props.reshares,\n className: ((((m.length > 0)) ? \"mls\" : \"\")),\n iconClassName: \"UFIBlingBoxReshareIcon\",\n contextArgs: this.props.contextArgs\n }));\n n += ((((this.props.reshares == 1)) ? \"1 share\" : k._(\"{count} shares\", {\n count: this.props.reshares\n })));\n }\n ;\n ;\n var o = g.DOM.a({\n className: \"UFIBlingBox uiBlingBox feedbackBling\",\n href: this.props.permalink,\n \"data-ft\": this.props[\"data-ft\"],\n \"aria-label\": n\n }, m);\n if (((this.props.comments < i.defaultPageSize))) {\n o.props.onClick = this.props.onClick;\n o.props.rel = \"ignore\";\n }\n ;\n ;\n return o;\n }\n });\n e.exports = l;\n});\n__d(\"UFICentralUpdates\", [\"Arbiter\",\"ChannelConstants\",\"LiveTimer\",\"ShortProfiles\",\"UFIConstants\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"LiveTimer\"), j = b(\"ShortProfiles\"), k = b(\"UFIConstants\"), l = b(\"copyProperties\"), m = b(\"tx\"), n = 0, o = {\n }, p = {\n }, q = {\n }, r = {\n }, s = [];\n g.subscribe(h.getArbiterType(\"live-data\"), function(x, y) {\n if (((y && y.obj))) {\n var z = y.obj, aa = ((z.comments || []));\n aa.forEach(function(ba) {\n ba.timestamp.text = \"a few seconds ago\";\n });\n w.handleUpdate(k.UFIPayloadSourceType.LIVE_SEND, z);\n }\n ;\n ;\n });\n function t() {\n if (!n) {\n var x = q, y = o, z = p, aa = r;\n q = {\n };\n o = {\n };\n p = {\n };\n r = {\n };\n if (Object.keys(x).length) {\n v(\"feedback-id-changed\", x);\n }\n ;\n ;\n if (Object.keys(y).length) {\n v(\"feedback-updated\", y);\n }\n ;\n ;\n if (Object.keys(z).length) {\n v(\"comments-updated\", z);\n }\n ;\n ;\n if (Object.keys(aa).length) {\n v(\"instance-updated\", aa);\n }\n ;\n ;\n s.pop();\n }\n ;\n ;\n };\n;\n function u() {\n if (s.length) {\n return s[((s.length - 1))];\n }\n else return k.UFIPayloadSourceType.UNKNOWN\n ;\n };\n;\n function v(JSBNG__event, x) {\n w.inform(JSBNG__event, {\n updates: x,\n payloadSource: u()\n });\n };\n;\n var w = l(new g(), {\n handleUpdate: function(x, y) {\n if (Object.keys(y).length) {\n this.synchronizeInforms(function() {\n s.push(x);\n var z = l({\n payloadsource: u()\n }, y);\n this.inform(\"update-feedback\", z);\n this.inform(\"update-comment-lists\", z);\n this.inform(\"update-comments\", z);\n this.inform(\"update-actions\", z);\n ((y.profiles || [])).forEach(function(aa) {\n j.set(aa.id, aa);\n });\n if (y.servertime) {\n i.restart(y.servertime);\n }\n ;\n ;\n }.bind(this));\n }\n ;\n ;\n },\n didUpdateFeedback: function(x) {\n o[x] = true;\n t();\n },\n didUpdateComment: function(x) {\n p[x] = true;\n t();\n },\n didUpdateFeedbackID: function(x, y) {\n q[x] = y;\n t();\n },\n didUpdateInstanceState: function(x, y) {\n if (!r[x]) {\n r[x] = {\n };\n }\n ;\n ;\n r[x][y] = true;\n t();\n },\n synchronizeInforms: function(x) {\n n++;\n try {\n x();\n } catch (y) {\n throw y;\n } finally {\n n--;\n t();\n };\n ;\n }\n });\n e.exports = w;\n});\n__d(\"randomInt\", [\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"invariant\");\n function h(i, j) {\n var k = arguments.length;\n g(((((k > 0)) && ((k <= 2)))));\n if (((k === 1))) {\n j = i;\n i = 0;\n }\n ;\n ;\n g(((j > i)));\n var l = ((this.JSBNG__random || Math.JSBNG__random));\n return Math.floor(((i + ((l() * ((j - i)))))));\n };\n;\n e.exports = h;\n});\n__d(\"ClientIDs\", [\"randomInt\",], function(a, b, c, d, e, f) {\n var g = b(\"randomInt\"), h = {\n }, i = {\n getNewClientID: function() {\n var j = JSBNG__Date.now(), k = ((((j + \":\")) + ((g(0, 4294967295) + 1))));\n h[k] = true;\n return k;\n },\n isExistingClientID: function(j) {\n return !!h[j];\n }\n };\n e.exports = i;\n});\n__d(\"ImmutableObject\", [\"keyMirror\",\"merge\",\"mergeInto\",\"mergeHelpers\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"keyMirror\"), h = b(\"merge\"), i = b(\"mergeInto\"), j = b(\"mergeHelpers\"), k = b(\"throwIf\"), l = j.checkMergeObjectArgs, m = j.isTerminal, n, o;\n n = g({\n INVALID_MAP_SET_ARG: null\n });\n o = function(q) {\n i(this, q);\n };\n o.set = function(q, r) {\n k(!((q instanceof o)), n.INVALID_MAP_SET_ARG);\n var s = new o(q);\n i(s, r);\n return s;\n };\n o.setField = function(q, r, s) {\n var t = {\n };\n t[r] = s;\n return o.set(q, t);\n };\n o.setDeep = function(q, r) {\n k(!((q instanceof o)), n.INVALID_MAP_SET_ARG);\n return p(q, r);\n };\n function p(q, r) {\n l(q, r);\n var s = {\n }, t = Object.keys(q);\n for (var u = 0; ((u < t.length)); u++) {\n var v = t[u];\n if (!r.hasOwnProperty(v)) {\n s[v] = q[v];\n }\n else if (((m(q[v]) || m(r[v])))) {\n s[v] = r[v];\n }\n else s[v] = p(q[v], r[v]);\n \n ;\n ;\n };\n ;\n var w = Object.keys(r);\n for (u = 0; ((u < w.length)); u++) {\n var x = w[u];\n if (q.hasOwnProperty(x)) {\n continue;\n }\n ;\n ;\n s[x] = r[x];\n };\n ;\n return ((((((q instanceof o)) || ((r instanceof o)))) ? new o(s) : s));\n };\n;\n e.exports = o;\n});\n__d(\"debounceAcrossTransitions\", [\"debounce\",], function(a, b, c, d, e, f) {\n var g = b(\"debounce\");\n function h(i, j, k) {\n return g(i, j, k, true);\n };\n;\n e.exports = h;\n});\n__d(\"MercuryServerDispatcher\", [\"AsyncRequest\",\"FBAjaxRequest\",\"Env\",\"JSLogger\",\"Run\",\"areObjectsEqual\",\"copyProperties\",\"debounceAcrossTransitions\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"FBAjaxRequest\"), i = b(\"Env\"), j = b(\"JSLogger\"), k = b(\"Run\"), l = b(\"areObjectsEqual\"), m = b(\"copyProperties\"), n = b(\"debounceAcrossTransitions\"), o = {\n }, p = j.create(\"mercury_dispatcher\"), q = false, r = {\n IMMEDIATE: \"immediate\",\n IDEMPOTENT: \"idempotent\",\n BATCH_SUCCESSIVE: \"batch-successive\",\n BATCH_SUCCESSIVE_UNIQUE: \"batch-successive-unique\",\n BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR: \"batch-successive-piggyback-retry\",\n BATCH_DEFERRED_MULTI: \"batch-deferred-multi\",\n BATCH_CONDITIONAL: \"batch-conditional\",\n registerEndpoints: function(v) {\n {\n var fin88keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin88i = (0);\n var w;\n for (; (fin88i < fin88keys.length); (fin88i++)) {\n ((w) = (fin88keys[fin88i]));\n {\n var x = v[w], y = ((x.request_user_id || i.user));\n if (!o[w]) {\n o[w] = {\n };\n }\n ;\n ;\n if (!o[w][y]) {\n o[w][y] = {\n };\n }\n ;\n ;\n o[w][y] = new s(w, x);\n };\n };\n };\n ;\n },\n trySend: function(v, w, x, y) {\n y = ((y || i.user));\n if (((((v == \"/ajax/mercury/client_reliability.php\")) && !o[v][y]))) {\n o[v][y] = o[v][undefined];\n }\n ;\n ;\n o[v][y].trySend(w, x);\n }\n };\n function s(v, w) {\n var x = ((w.mode || r.IMMEDIATE));\n switch (x) {\n case r.IMMEDIATE:\n \n case r.IDEMPOTENT:\n \n case r.BATCH_SUCCESSIVE:\n \n case r.BATCH_SUCCESSIVE_UNIQUE:\n \n case r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR:\n \n case r.BATCH_DEFERRED_MULTI:\n \n case r.BATCH_CONDITIONAL:\n break;\n default:\n throw new Error(((\"Invalid MercuryServerDispatcher mode \" + x)));\n };\n ;\n this._endpoint = v;\n this._mode = x;\n this._requestUserID = w.request_user_id;\n this._combineData = w.batch_function;\n this._combineDataIf = w.batch_if;\n this._batchSizeLimit = w.batch_size_limit;\n this._batches = [];\n this._handler = w.handler;\n this._errorHandler = w.error_handler;\n this._transportErrorHandler = ((w.transport_error_handler || w.error_handler));\n this._connectionRetries = ((w.connection_retries || 0));\n this._timeoutHandler = w.timeout_handler;\n this._timeout = w.timeout;\n this._serverDialogCancelHandler = ((w.server_dialog_cancel_handler || w.error_handler));\n this._deferredSend = n(this._batchSend, 0, this);\n if (this._batchSizeLimit) {\n k.onUnload(function() {\n p.bump(((\"unload_batches_count_\" + u(this._batches.length))));\n }.bind(this));\n }\n ;\n ;\n };\n;\n m(s.prototype, {\n _inFlight: 0,\n _handler: null,\n _errorHandler: null,\n _transportErrorHandler: null,\n _timeoutHandler: null,\n _timeout: null,\n _serverDialogCancelHandler: null,\n _combineData: null,\n trySend: function(v, w) {\n if (q) {\n return;\n }\n ;\n ;\n if (((typeof v == \"undefined\"))) {\n v = null;\n }\n ;\n ;\n var x = ((w || this._mode));\n if (((x == r.IMMEDIATE))) {\n this._send(v);\n }\n else if (((x == r.IDEMPOTENT))) {\n if (!this._inFlight) {\n this._send(v);\n }\n ;\n ;\n }\n else if (((((x == r.BATCH_SUCCESSIVE)) || ((x == r.BATCH_SUCCESSIVE_UNIQUE))))) {\n if (!this._inFlight) {\n this._send(v);\n }\n else this._batchData(v);\n ;\n ;\n }\n else if (((x == r.BATCH_CONDITIONAL))) {\n var y = ((this._batches[0] && this._batches[0].getData()));\n if (((this._inFlight && ((this._combineDataIf(this._pendingRequestData, v) || this._combineDataIf(y, v)))))) {\n this._batchData(v);\n }\n else this._send(v);\n ;\n ;\n }\n else if (((x == r.BATCH_DEFERRED_MULTI))) {\n this._batchData(v);\n this._deferredSend();\n }\n else if (((x == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR))) {\n this._batchData(v);\n if (!this._inFlight) {\n this._batchSend();\n }\n ;\n ;\n }\n \n \n \n \n \n ;\n ;\n },\n _send: function(v) {\n this._inFlight++;\n this._pendingRequestData = m({\n }, v);\n if (((this._requestUserID != i.user))) {\n v.request_user_id = this._requestUserID;\n }\n ;\n ;\n p.log(\"send\", {\n endpoint: this._endpoint,\n data: v,\n inflight_count: this._inFlight\n });\n var w = null;\n if (i.worker_context) {\n w = new h(\"POST\", this._endpoint, v);\n w.onError = function(x) {\n x.getPayload = function() {\n return x.errorText;\n };\n x.getRequest = function() {\n var y = x;\n x.getData = function() {\n return v;\n };\n return y;\n };\n x.getError = function() {\n return x.errorText;\n };\n x.getErrorDescription = function() {\n return x.errorText;\n };\n x.isTransient = function() {\n return false;\n };\n this._handleError(x);\n }.bind(this);\n w.onJSON = function(x) {\n x.getPayload = function() {\n return x.json;\n };\n x.getRequest = function() {\n return w;\n };\n this._handleResponse(x);\n }.bind(this);\n w.getData = function() {\n return v;\n };\n w.send();\n }\n else {\n w = new g(this._endpoint).setData(v).setOption(\"retries\", this._connectionRetries).setHandler(this._handleResponse.bind(this)).setErrorHandler(this._handleError.bind(this)).setTransportErrorHandler(this._handleTransportError.bind(this)).setServerDialogCancelHandler(this._handleServerDialogCancel.bind(this)).setAllowCrossPageTransition(true);\n if (((this._timeout && this._timeoutHandler))) {\n w.setTimeoutHandler(this._timeout, this._handleTimeout.bind(this));\n }\n ;\n ;\n w.send();\n }\n ;\n ;\n },\n _batchData: function(v, w) {\n if (((((((this._mode == r.BATCH_SUCCESSIVE_UNIQUE)) && ((typeof this._pendingRequestData != \"undefined\")))) && l(v, this._pendingRequestData)))) {\n return;\n }\n else {\n var x = ((this._batches.length - 1));\n if (((((x >= 0)) && !this._hasReachedBatchLimit(this._batches[x])))) {\n ((w ? this._batches[x].combineWithOlder(v, this._combineData) : this._batches[x].combineWith(v, this._combineData)));\n }\n else {\n this._batches.push(new t(v));\n p.bump(((\"batches_count_\" + u(this._batches.length))));\n }\n ;\n ;\n p.debug(\"batch\", {\n endpoint: this._endpoint,\n batches: this._batches,\n batch_limit: this._batchSizeLimit\n });\n }\n ;\n ;\n },\n _hasReachedBatchLimit: function(v) {\n return ((this._batchSizeLimit && ((v.getSize() >= this._batchSizeLimit))));\n },\n _batchSend: function() {\n if (this._batches[0]) {\n this._send(this._batches[0].getData());\n this._batches.shift();\n }\n ;\n ;\n },\n _handleResponse: function(v) {\n this._inFlight--;\n p.log(\"response\", {\n endpoint: this._endpoint,\n inflight_count: this._inFlight\n });\n var w = v.getPayload();\n q = ((w && w.kill_chat));\n if (q) {\n p.log(\"killswitch_enabled\", {\n endpoint: this._endpoint,\n inflight_count: this._inFlight\n });\n }\n ;\n ;\n if (((w && w.error_payload))) {\n if (this._errorHandler) {\n this._errorHandler(v);\n }\n ;\n ;\n }\n else ((this._handler && this._handler(w, v.getRequest())));\n ;\n ;\n if (((((((((this._mode == r.BATCH_SUCCESSIVE)) || ((this._mode == r.BATCH_SUCCESSIVE_UNIQUE)))) || ((this._mode == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR)))) || ((this._mode == r.BATCH_CONDITIONAL))))) {\n this._batchSend();\n }\n ;\n ;\n delete this._pendingRequestData;\n },\n _postErrorHandler: function() {\n p.error(\"error\", {\n endpoint: this._endpoint,\n inflight_count: ((this._inFlight - 1))\n });\n this._inFlight--;\n var v = this._mode;\n if (((((((v == r.BATCH_SUCCESSIVE)) || ((v == r.BATCH_SUCCESSIVE_UNIQUE)))) || ((v == r.BATCH_CONDITIONAL))))) {\n this._batchSend();\n }\n else if (((v == r.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR))) {\n if (this._batches[0]) {\n this._batchData(this._pendingRequestData, true);\n this._batchSend();\n }\n else this._batchData(this._pendingRequestData, true);\n ;\n }\n \n ;\n ;\n delete this._pendingRequestData;\n },\n _handleError: function(v) {\n ((this._errorHandler && this._errorHandler(v)));\n this._postErrorHandler();\n },\n _handleTransportError: function(v) {\n ((this._transportErrorHandler && this._transportErrorHandler(v)));\n this._postErrorHandler();\n },\n _handleTimeout: function(v) {\n ((this._timeoutHandler && this._timeoutHandler(v)));\n this._postErrorHandler();\n },\n _handleServerDialogCancel: function(v) {\n ((this._serverDialogCancelHandler && this._serverDialogCancelHandler(v)));\n this._postErrorHandler();\n }\n });\n function t(v) {\n this._data = v;\n this._size = 1;\n };\n;\n m(t.prototype, {\n getData: function() {\n return this._data;\n },\n getSize: function() {\n return this._size;\n },\n combineWith: function(v, w) {\n this._data = w(this._data, v);\n this._size++;\n },\n combineWithOlder: function(v, w) {\n this._data = w(v, this._data);\n this._size++;\n }\n });\n function u(v) {\n if (((v === 1))) {\n return \"equals1\";\n }\n else if (((((v >= 2)) && ((v <= 3))))) {\n return \"between2and3\";\n }\n else return \"over4\"\n \n ;\n };\n;\n e.exports = r;\n});\n__d(\"UFIFeedbackTargets\", [\"ClientIDs\",\"KeyedCallbackManager\",\"UFICentralUpdates\",\"UFIConstants\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ClientIDs\"), h = b(\"KeyedCallbackManager\"), i = b(\"UFICentralUpdates\"), j = b(\"UFIConstants\"), k = b(\"copyProperties\"), l = new h();\n function m(v) {\n var w = {\n };\n v.forEach(function(x) {\n var y = k({\n }, x);\n delete y.commentlist;\n delete y.commentcount;\n w[x.entidentifier] = y;\n i.didUpdateFeedback(x.entidentifier);\n });\n l.addResourcesAndExecute(w);\n };\n;\n function n(v) {\n for (var w = 0; ((w < v.length)); w++) {\n var x = v[w];\n switch (x.actiontype) {\n case j.UFIActionType.LIKE_ACTION:\n p(x);\n break;\n case j.UFIActionType.SUBSCRIBE_ACTION:\n q(x);\n break;\n case j.UFIActionType.GIFT_SUGGESTION:\n r(x);\n break;\n };\n ;\n };\n ;\n };\n;\n function o(v) {\n for (var w = 0; ((w < v.length)); w++) {\n var x = v[w];\n if (x.orig_ftentidentifier) {\n t(x.orig_ftentidentifier, x.ftentidentifier);\n }\n ;\n ;\n };\n ;\n };\n;\n function p(v) {\n var w = s(v);\n if (w) {\n v.hasviewerliked = !!v.hasviewerliked;\n if (((((v.clientid && g.isExistingClientID(v.clientid))) && ((v.hasviewerliked != w.hasviewerliked))))) {\n return;\n }\n ;\n ;\n w.likecount = ((v.likecount || 0));\n w.likesentences = v.likesentences;\n if (((v.actorid == w.actorforpost))) {\n w.hasviewerliked = v.hasviewerliked;\n }\n else if (((v.hasviewerliked != w.hasviewerliked))) {\n w.likesentences = {\n current: v.likesentences.alternate,\n alternate: v.likesentences.current\n };\n if (w.hasviewerliked) {\n w.likecount++;\n }\n else w.likecount--;\n ;\n ;\n }\n \n ;\n ;\n if (((v.actorid != w.actorforpost))) {\n w.likesentences.isunseen = true;\n }\n ;\n ;\n m([w,]);\n }\n ;\n ;\n };\n;\n function q(v) {\n var w = s(v);\n if (w) {\n v.hasviewersubscribed = !!v.hasviewersubscribed;\n if (((((v.clientid && g.isExistingClientID(v.clientid))) && ((v.hasviewersubscribed != w.hasviewersubscribed))))) {\n return;\n }\n ;\n ;\n if (((v.actorid == w.actorforpost))) {\n w.hasviewersubscribed = v.hasviewersubscribed;\n }\n ;\n ;\n m([w,]);\n }\n ;\n ;\n };\n;\n function r(v) {\n var w = s(v);\n if (!w) {\n return;\n }\n ;\n ;\n if (((((v.clientid && g.isExistingClientID(v.clientid))) && ((v.hasviewerliked != w.hasviewerliked))))) {\n return;\n }\n ;\n ;\n w.giftdata = v.giftdata;\n m([w,]);\n };\n;\n function s(v) {\n if (v.orig_entidentifier) {\n t(v.orig_entidentifier, v.entidentifier);\n }\n ;\n ;\n return l.getResource(v.entidentifier);\n };\n;\n function t(v, w) {\n var x = l.getResource(v);\n if (x) {\n l.setResource(v, null);\n x.entidentifier = w;\n l.setResource(w, x);\n i.didUpdateFeedbackID(v, w);\n }\n ;\n ;\n };\n;\n var u = {\n getFeedbackTarget: function(v, w) {\n var x = l.executeOrEnqueue(v, w), y = l.getUnavailableResources(x);\n if (!y.length) {\n return;\n }\n ;\n ;\n }\n };\n i.subscribe(\"update-feedback\", function(v, w) {\n var x = w.feedbacktargets;\n if (((x && x.length))) {\n m(x);\n }\n ;\n ;\n });\n i.subscribe(\"update-actions\", function(v, w) {\n if (((w.actions && w.actions.length))) {\n n(w.actions);\n }\n ;\n ;\n });\n i.subscribe(\"update-comments\", function(v, w) {\n if (((w.comments && w.comments.length))) {\n o(w.comments);\n }\n ;\n ;\n });\n e.exports = u;\n});\n__d(\"UFIInstanceState\", [\"UFICentralUpdates\",], function(a, b, c, d, e, f) {\n var g = b(\"UFICentralUpdates\"), h = {\n };\n function i(k) {\n if (!h[k]) {\n h[k] = {\n };\n }\n ;\n ;\n };\n;\n var j = {\n getKeyForInstance: function(k, l) {\n i(k);\n return h[k][l];\n },\n updateState: function(k, l, m) {\n i(k);\n h[k][l] = m;\n g.didUpdateInstanceState(k, l);\n },\n updateStateField: function(k, l, m, n) {\n var o = ((this.getKeyForInstance(k, l) || {\n }));\n o[m] = n;\n this.updateState(k, l, o);\n }\n };\n e.exports = j;\n});\n__d(\"UFIComments\", [\"ClientIDs\",\"ImmutableObject\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryServerDispatcher\",\"UFICentralUpdates\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"URI\",\"keyMirror\",\"merge\",\"randomInt\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"ClientIDs\"), h = b(\"ImmutableObject\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryServerDispatcher\"), l = b(\"UFICentralUpdates\"), m = b(\"UFIConstants\"), n = b(\"UFIFeedbackTargets\"), o = b(\"UFIInstanceState\"), p = b(\"URI\"), q = b(\"keyMirror\"), r = b(\"merge\"), s = b(\"randomInt\"), t = b(\"throwIf\"), u = q({\n INVALID_COMMENT_TYPE: null\n }), v = i.create(\"UFIComments\"), w = {\n }, x = {\n }, y = {\n }, z = {\n }, aa = {\n }, ba = {\n }, ca = \"unavailable_comment_key\";\n function da(ab) {\n return ((((ab in ba)) ? ba[ab] : ab));\n };\n;\n function ea(ab, bb) {\n if (!x[ab]) {\n x[ab] = {\n };\n }\n ;\n ;\n if (!x[ab][bb]) {\n x[ab][bb] = new j();\n }\n ;\n ;\n return x[ab][bb];\n };\n;\n function fa(ab) {\n var bb = [];\n if (x[ab]) {\n {\n var fin89keys = ((window.top.JSBNG_Replay.forInKeys)((x[ab]))), fin89i = (0);\n var cb;\n for (; (fin89i < fin89keys.length); (fin89i++)) {\n ((cb) = (fin89keys[fin89i]));\n {\n bb.push(x[ab][cb]);\n ;\n };\n };\n };\n }\n ;\n ;\n return bb;\n };\n;\n function ga(ab) {\n if (!y[ab]) {\n y[ab] = new j();\n }\n ;\n ;\n return y[ab];\n };\n;\n function ha(ab) {\n var bb = fa(ab);\n bb.forEach(function(cb) {\n cb.reset();\n });\n };\n;\n function ia(ab, bb) {\n ab.forEach(function(cb) {\n var db = cb.ftentidentifier, eb = ((cb.parentcommentid || db));\n n.getFeedbackTarget(db, function(fb) {\n var gb = m.UFIPayloadSourceType, hb = cb.clientid, ib = false, jb = r({\n }, cb);\n if (hb) {\n delete jb.clientid;\n ib = g.isExistingClientID(hb);\n if (((ib && ba[hb]))) {\n return;\n }\n ;\n ;\n }\n ;\n ;\n if (((((((bb === gb.LIVE_SEND)) && cb.parentcommentid)) && ((z[eb] === undefined))))) {\n return;\n }\n ;\n ;\n if (((((((((bb === gb.LIVE_SEND)) || ((bb === gb.USER_ACTION)))) || ((bb === gb.ENDPOINT_ADD_COMMENT)))) || ((bb === gb.ENDPOINT_EDIT_COMMENT))))) {\n jb.isunseen = true;\n }\n ;\n ;\n if (((((bb === gb.ENDPOINT_COMMENT_FETCH)) || ((bb === gb.ENDPOINT_ID_COMMENT_FETCH))))) {\n jb.fromfetch = true;\n }\n ;\n ;\n if (ib) {\n if (w[hb].ufiinstanceid) {\n o.updateStateField(w[hb].ufiinstanceid, \"locallycomposed\", cb.id, true);\n }\n ;\n ;\n jb.ufiinstanceid = w[hb].ufiinstanceid;\n ba[hb] = cb.id;\n w[cb.id] = w[hb];\n delete w[hb];\n l.didUpdateComment(hb);\n }\n ;\n ;\n var kb, lb;\n if (cb.parentcommentid) {\n lb = [ga(eb),];\n }\n else lb = fa(eb);\n ;\n ;\n var mb = false;\n lb.forEach(function(qb) {\n var rb = qb.getAllResources(), sb = {\n };\n {\n var fin90keys = ((window.top.JSBNG_Replay.forInKeys)((rb))), fin90i = (0);\n var tb;\n for (; (fin90i < fin90keys.length); (fin90i++)) {\n ((tb) = (fin90keys[fin90i]));\n {\n var ub = rb[tb];\n sb[ub] = tb;\n };\n };\n };\n ;\n if (ib) {\n if (((hb in sb))) {\n sb[cb.id] = sb[hb];\n var vb = sb[hb];\n qb.setResource(vb, cb.id);\n }\n ;\n }\n ;\n ;\n if (sb[cb.id]) {\n mb = true;\n }\n else {\n var wb = ((z[eb] || 0));\n sb[cb.id] = wb;\n qb.setResource(wb, cb.id);\n }\n ;\n ;\n kb = sb[cb.id];\n });\n if (!mb) {\n var nb = ((z[eb] || 0));\n z[eb] = ((nb + 1));\n qa(eb);\n }\n ;\n ;\n if (((cb.JSBNG__status === m.UFIStatus.FAILED_ADD))) {\n aa[eb] = ((aa[eb] + 1));\n }\n ;\n ;\n var ob = z[eb];\n jb.replycount = ((((z[cb.id] || 0)) - ((aa[cb.id] || 0))));\n var pb = ja(kb, ob);\n if (((cb.parentcommentid && w[cb.parentcommentid]))) {\n jb.permalink = p(fb.permalink).addQueryData({\n comment_id: w[cb.parentcommentid].legacyid,\n reply_comment_id: cb.legacyid,\n total_comments: ob\n }).toString();\n }\n else jb.permalink = p(fb.permalink).addQueryData({\n comment_id: cb.legacyid,\n offset: pb,\n total_comments: ob\n }).toString();\n ;\n ;\n za.setComment(cb.id, new h(jb));\n l.didUpdateComment(cb.id);\n l.didUpdateFeedback(db);\n });\n });\n };\n;\n function ja(ab, bb) {\n return ((Math.floor(((((((bb - ab)) - 1)) / m.defaultPageSize))) * m.defaultPageSize));\n };\n;\n function ka(ab) {\n for (var bb = 0; ((bb < ab.length)); bb++) {\n var cb = ab[bb];\n switch (cb.actiontype) {\n case m.UFIActionType.COMMENT_LIKE:\n na(cb);\n break;\n case m.UFIActionType.DELETE_COMMENT:\n ra(cb);\n break;\n case m.UFIActionType.LIVE_DELETE_COMMENT:\n sa(cb);\n break;\n case m.UFIActionType.UNDO_DELETE_COMMENT:\n ta(cb);\n break;\n case m.UFIActionType.REMOVE_PREVIEW:\n ua(cb);\n break;\n case m.UFIActionType.COMMENT_SET_SPAM:\n va(cb);\n break;\n case m.UFIActionType.CONFIRM_COMMENT_REMOVAL:\n wa(cb);\n break;\n case m.UFIActionType.TRANSLATE_COMMENT:\n oa(cb);\n break;\n };\n ;\n };\n ;\n };\n;\n function la(ab, bb, cb) {\n var db = bb.range, eb = bb.values;\n if (!db) {\n v.error(\"nullrange\", {\n target: ab,\n commentList: bb\n });\n return;\n }\n ;\n ;\n var fb = {\n };\n for (var gb = 0; ((gb < db.length)); gb++) {\n fb[((db.offset + gb))] = ((eb[gb] || ca));\n ;\n };\n ;\n var hb, ib;\n if (cb) {\n hb = ea(ab, cb);\n ib = ab;\n }\n else {\n hb = ga(ab);\n ib = bb.ftentidentifier;\n if (((bb.count !== undefined))) {\n z[ab] = bb.count;\n aa[ab] = 0;\n }\n ;\n ;\n }\n ;\n ;\n hb.addResourcesAndExecute(fb);\n l.didUpdateFeedback(ib);\n };\n;\n function ma(ab) {\n ab.forEach(function(bb) {\n z[bb.entidentifier] = bb.commentcount;\n aa[bb.entidentifier] = 0;\n l.didUpdateFeedback(bb.entidentifier);\n });\n };\n;\n function na(ab) {\n var bb = za.getComment(ab.commentid);\n if (bb) {\n var cb = {\n }, db = ((ab.clientid && g.isExistingClientID(ab.clientid)));\n if (!db) {\n cb.hasviewerliked = ab.viewerliked;\n cb.likecount = ab.likecount;\n }\n ;\n ;\n cb.likeconfirmhash = s(0, 1024);\n ya(ab.commentid, cb);\n }\n ;\n ;\n };\n;\n function oa(ab) {\n var bb = ab.commentid, cb = za.getComment(ab.commentid);\n if (cb) {\n ya(bb, {\n translatedtext: ab.translatedtext\n });\n }\n ;\n ;\n };\n;\n function pa(ab) {\n var bb = {\n reportLink: ab.reportLink,\n commenterIsFOF: ab.commenterIsFOF,\n userIsMinor: ab.userIsMinor\n };\n if (ab.undoData) {\n bb.undoData = ab.undoData;\n }\n ;\n ;\n return bb;\n };\n;\n function qa(ab, bb) {\n if (ab) {\n if (((bb !== undefined))) {\n var cb = ((((aa[ab] || 0)) + ((bb ? 1 : -1))));\n aa[ab] = Math.max(cb, 0);\n }\n ;\n ;\n var db = za.getComment(ab);\n if (db) {\n var eb = {\n replycount: za.getDisplayedCommentCount(ab)\n };\n ya(ab, eb);\n }\n ;\n ;\n }\n ;\n ;\n };\n;\n function ra(ab) {\n var bb = za.getComment(ab.commentid);\n if (((bb.JSBNG__status !== m.UFIStatus.DELETED))) {\n var cb = ((bb.parentcommentid || bb.ftentidentifier));\n if (((bb.JSBNG__status === m.UFIStatus.FAILED_ADD))) {\n qa(cb);\n }\n else qa(cb, true);\n ;\n ;\n }\n ;\n ;\n xa(bb, m.UFIStatus.DELETED);\n };\n;\n function sa(ab) {\n var bb = za.getComment(ab.commentid);\n if (((bb && ((bb.JSBNG__status !== m.UFIStatus.DELETED))))) {\n xa(bb, m.UFIStatus.LIVE_DELETED);\n }\n ;\n ;\n };\n;\n function ta(ab) {\n var bb = za.getComment(ab.commentid);\n if (((bb.JSBNG__status === m.UFIStatus.DELETED))) {\n var cb = ((bb.parentcommentid || bb.ftentidentifier));\n qa(cb, false);\n }\n ;\n ;\n xa(bb, m.UFIStatus.PENDING_UNDO_DELETE);\n };\n;\n function ua(ab) {\n ya(ab.commentid, {\n attachment: null\n });\n };\n;\n function va(ab) {\n var bb = za.getComment(ab.commentid), cb = ((ab.shouldHideAsSpam ? m.UFIStatus.SPAM_DISPLAY : null));\n xa(bb, cb);\n };\n;\n function wa(ab) {\n ya(ab.commentid, pa(ab));\n };\n;\n function xa(ab, bb) {\n ya(ab.id, {\n priorstatus: ab.JSBNG__status,\n JSBNG__status: bb\n });\n };\n;\n function ya(ab, bb) {\n var cb = ((za.getComment(ab) || new h({\n })));\n za.setComment(ab, h.set(cb, bb));\n l.didUpdateComment(cb.id);\n l.didUpdateFeedback(cb.ftentidentifier);\n };\n;\n var za = {\n getComments: function(ab) {\n var bb = {\n };\n for (var cb = 0; ((cb < ab.length)); cb++) {\n bb[ab[cb]] = za.getComment(ab[cb]);\n ;\n };\n ;\n return bb;\n },\n getComment: function(ab) {\n return w[da(ab)];\n },\n setComment: function(ab, bb) {\n w[da(ab)] = bb;\n },\n resetFeedbackTarget: function(ab) {\n var bb = fa(ab), cb = {\n };\n bb.forEach(function(eb) {\n var fb = eb.getAllResources();\n {\n var fin91keys = ((window.top.JSBNG_Replay.forInKeys)((fb))), fin91i = (0);\n var gb;\n for (; (fin91i < fin91keys.length); (fin91i++)) {\n ((gb) = (fin91keys[fin91i]));\n {\n var hb = fb[gb];\n cb[hb] = 1;\n };\n };\n };\n ;\n });\n {\n var fin92keys = ((window.top.JSBNG_Replay.forInKeys)((cb))), fin92i = (0);\n var db;\n for (; (fin92i < fin92keys.length); (fin92i++)) {\n ((db) = (fin92keys[fin92i]));\n {\n delete w[da(db)];\n ;\n };\n };\n };\n ;\n ha(ab);\n },\n getCommentsInRange: function(ab, bb, cb, db, eb) {\n var fb = ea(ab, cb);\n n.getFeedbackTarget(ab, function(gb) {\n var hb = [];\n for (var ib = 0; ((ib < bb.length)); ib++) {\n hb.push(((bb.offset + ib)));\n ;\n };\n ;\n var jb = function(pb) {\n var qb = [], rb = bb.offset, sb = ((((bb.offset + bb.length)) - 1));\n for (var tb = 0; ((tb < bb.length)); tb++) {\n var ub = ((gb.isranked ? ((sb - tb)) : ((rb + tb))));\n if (((pb[ub] != ca))) {\n var vb = this.getComment(pb[ub]);\n if (vb) {\n qb.push(vb);\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n eb(qb);\n }, kb = fb.getUnavailableResourcesFromRequest(hb);\n if (kb.length) {\n var lb = Math.min.apply(Math, kb), mb = Math.max.apply(Math, kb), nb = lb, ob = ((((mb - lb)) + 1));\n k.trySend(\"/ajax/ufi/comment_fetch.php\", {\n ft_ent_identifier: gb.entidentifier,\n viewas: db,\n source: null,\n offset: nb,\n length: ob,\n orderingmode: cb\n });\n }\n else fb.deferredExecuteOrEnqueue(hb).addCallback(jb, this);\n ;\n ;\n }.bind(this));\n },\n getRepliesInRanges: function(ab, bb, cb) {\n var db = {\n }, eb = {\n }, fb = {\n }, gb = false;\n n.getFeedbackTarget(ab, function(hb) {\n {\n var fin93keys = ((window.top.JSBNG_Replay.forInKeys)((bb))), fin93i = (0);\n var ib;\n for (; (fin93i < fin93keys.length); (fin93i++)) {\n ((ib) = (fin93keys[fin93i]));\n {\n var jb = ga(ib), kb = bb[ib], lb = [];\n for (var mb = 0; ((mb < kb.length)); mb++) {\n lb.push(((kb.offset + mb)));\n ;\n };\n ;\n db[ib] = jb.executeOrEnqueue(lb, function(wb) {\n var xb = [];\n for (var yb = 0; ((yb < kb.length)); yb++) {\n var zb = ((kb.offset + yb));\n if (((wb[zb] != ca))) {\n var ac = this.getComment(wb[zb]);\n if (ac) {\n xb.push(ac);\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n eb[ib] = xb;\n }.bind(this));\n fb[ib] = jb.getUnavailableResources(db[ib]);\n if (fb[ib].length) {\n gb = true;\n jb.unsubscribe(db[ib]);\n }\n ;\n ;\n };\n };\n };\n ;\n if (!gb) {\n cb(eb);\n }\n else {\n var nb = [], ob = [], pb = [];\n {\n var fin94keys = ((window.top.JSBNG_Replay.forInKeys)((fb))), fin94i = (0);\n var qb;\n for (; (fin94i < fin94keys.length); (fin94i++)) {\n ((qb) = (fin94keys[fin94i]));\n {\n var rb = fb[qb];\n if (rb.length) {\n var sb = Math.min.apply(Math, rb), tb = Math.max.apply(Math, rb), ub = sb, vb = ((((tb - sb)) + 1));\n nb.push(qb);\n ob.push(ub);\n pb.push(vb);\n }\n ;\n ;\n };\n };\n };\n ;\n k.trySend(\"/ajax/ufi/reply_fetch.php\", {\n ft_ent_identifier: hb.entidentifier,\n parent_comment_ids: nb,\n source: null,\n offsets: ob,\n lengths: pb\n });\n }\n ;\n ;\n }.bind(this));\n return db;\n },\n getCommentCount: function(ab) {\n return ((z[ab] || 0));\n },\n getDeletedCount: function(ab) {\n return ((aa[ab] || 0));\n },\n getDisplayedCommentCount: function(ab) {\n return ((((z[ab] || 0)) - ((aa[ab] || 0))));\n },\n _dump: function() {\n var ab = {\n _comments: w,\n _commentLists: x,\n _replyLists: y,\n _commentCounts: z,\n _deletedCounts: aa,\n _localIDMap: ba\n };\n return JSON.stringify(ab);\n }\n };\n k.registerEndpoints({\n \"/ajax/ufi/comment_fetch.php\": {\n mode: k.IMMEDIATE,\n handler: l.handleUpdate.bind(l, m.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH)\n },\n \"/ajax/ufi/reply_fetch.php\": {\n mode: k.IMMEDIATE,\n handler: l.handleUpdate.bind(l, m.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH)\n }\n });\n l.subscribe(\"update-comments\", function(ab, bb) {\n if (((bb.comments && bb.comments.length))) {\n ia(bb.comments, bb.payloadsource);\n }\n ;\n ;\n });\n l.subscribe(\"update-actions\", function(ab, bb) {\n if (((bb.actions && bb.actions.length))) {\n ka(bb.actions);\n }\n ;\n ;\n });\n l.subscribe(\"update-comment-lists\", function(ab, bb) {\n var cb = bb.commentlists;\n if (((cb && Object.keys(cb).length))) {\n if (cb.comments) {\n {\n var fin95keys = ((window.top.JSBNG_Replay.forInKeys)((cb.comments))), fin95i = (0);\n var db;\n for (; (fin95i < fin95keys.length); (fin95i++)) {\n ((db) = (fin95keys[fin95i]));\n {\n {\n var fin96keys = ((window.top.JSBNG_Replay.forInKeys)((cb.comments[db]))), fin96i = (0);\n var eb;\n for (; (fin96i < fin96keys.length); (fin96i++)) {\n ((eb) = (fin96keys[fin96i]));\n {\n la(db, cb.comments[db][eb], eb);\n ;\n };\n };\n };\n ;\n };\n };\n };\n }\n ;\n ;\n if (cb.replies) {\n {\n var fin97keys = ((window.top.JSBNG_Replay.forInKeys)((cb.replies))), fin97i = (0);\n var fb;\n for (; (fin97i < fin97keys.length); (fin97i++)) {\n ((fb) = (fin97keys[fin97i]));\n {\n la(fb, cb.replies[fb]);\n ;\n };\n };\n };\n }\n ;\n ;\n }\n ;\n ;\n });\n l.subscribe(\"update-feedback\", function(ab, bb) {\n var cb = bb.feedbacktargets;\n if (((cb && cb.length))) {\n ma(cb);\n }\n ;\n ;\n });\n e.exports = za;\n});\n__d(\"UFILikeLink.react\", [\"React\",\"TrackingNodes\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"TrackingNodes\"), i = b(\"tx\"), j = g.createClass({\n displayName: \"UFILikeLink\",\n render: function() {\n var k = ((this.props.likeAction ? \"Like\" : \"Unlike\")), l = h.getTrackingInfo(((this.props.likeAction ? h.types.LIKE_LINK : h.types.UNLIKE_LINK))), m = ((this.props.likeAction ? \"Like this\" : \"Unlike this\"));\n return (g.DOM.a({\n className: \"UFILikeLink\",\n href: \"#\",\n role: \"button\",\n \"aria-live\": \"polite\",\n title: m,\n onClick: this.props.onClick,\n \"data-ft\": l\n }, k));\n }\n });\n e.exports = j;\n});\n__d(\"UFISubscribeLink.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n displayName: \"UFISubscribeLink\",\n render: function() {\n var j = ((this.props.subscribeAction ? \"Follow Post\" : \"Unfollow Post\")), k = ((this.props.subscribeAction ? \"Get notified when someone comments\" : \"Stop getting notified when someone comments\"));\n return (g.DOM.a({\n className: \"UFISubscribeLink\",\n href: \"#\",\n role: \"button\",\n \"aria-live\": \"polite\",\n title: k,\n onClick: this.props.onClick\n }, j));\n }\n });\n e.exports = i;\n});\n__d(\"ProfileBrowserLink\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = \"/ajax/browser/dialog/\", i = \"/browse/\", j = function(l, m, n) {\n return new g(((l + m))).setQueryData(n);\n }, k = {\n constructPageURI: function(l, m) {\n return j(i, l, m);\n },\n constructDialogURI: function(l, m) {\n return j(h, l, m);\n }\n };\n e.exports = k;\n});\n__d(\"ProfileBrowserTypes\", [], function(a, b, c, d, e, f) {\n var g = {\n LIKES: \"likes\",\n GROUP_MESSAGE_VIEWERS: \"group_message_viewers\",\n MUTUAL_FRIENDS: \"mutual_friends\"\n };\n e.exports = g;\n});\n__d(\"UFITimelineBlingBox.react\", [\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"UFIBlingItem.react\",\"URI\",\"cx\",\"fbt\",], function(a, b, c, d, e, f) {\n var g = b(\"ProfileBrowserLink\"), h = b(\"ProfileBrowserTypes\"), i = b(\"React\"), j = b(\"UFIBlingItem.react\"), k = b(\"URI\"), l = b(\"cx\"), m = b(\"fbt\"), n = i.createClass({\n displayName: \"UFITimelineBlingBox\",\n render: function() {\n var o = [];\n if (((this.props.likes && this.props.enableShowLikes))) {\n var p = this._getProfileBrowserURI(), q = \"See who likes this\", r = i.DOM.a({\n ajaxify: p.dialog,\n className: this._getItemClassName(o),\n \"data-ft\": this.props[\"data-ft\"],\n \"data-gt\": this.props[\"data-gt\"],\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"right\",\n \"data-tooltip-uri\": this._getLikeToolTipURI(),\n href: p.page,\n rel: \"dialog\",\n role: \"button\",\n title: q\n }, j({\n contextArgs: this.props.contextArgs,\n count: this.props.likes,\n iconClassName: \"UFIBlingBoxTimelineLikeIcon\"\n }));\n o.push(r);\n }\n ;\n ;\n if (((this.props.comments && this.props.enableShowComments))) {\n var s = \"Show comments\", t = i.DOM.a({\n \"aria-label\": s,\n className: this._getItemClassName(o),\n \"data-ft\": this.props[\"data-ft\"],\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"right\",\n href: \"#\",\n onClick: this.props.commentOnClick\n }, j({\n contextArgs: this.props.contextArgs,\n count: this.props.comments,\n iconClassName: \"UFIBlingBoxTimelineCommentIcon\"\n }));\n o.push(t);\n }\n ;\n ;\n if (this.props.reshares) {\n var u = \"Show shares\", v = this._getShareViewURI(), w = i.DOM.a({\n ajaxify: v.dialog,\n \"aria-label\": u,\n className: this._getItemClassName(o),\n \"data-ft\": this.props[\"data-ft\"],\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"right\",\n href: v.page,\n rel: \"async\"\n }, j({\n contextArgs: this.props.contextArgs,\n count: this.props.reshares,\n iconClassName: \"UFIBlingBoxTimelineReshareIcon\"\n }));\n o.push(w);\n }\n ;\n ;\n return (i.DOM.span(null, o));\n },\n _getItemClassName: function(o) {\n return ((((((o.length > 0)) ? \"mls\" : \"\")) + ((\" \" + \"UFIBlingBoxTimelineItem\"))));\n },\n _getLikeToolTipURI: function() {\n if (this.props.feedbackFBID) {\n var o = new k(\"/ajax/timeline/likestooltip.php\").setQueryData({\n obj_fbid: this.props.feedbackFBID\n });\n return o.toString();\n }\n else return null\n ;\n },\n _getProfileBrowserURI: function() {\n if (this.props.feedbackFBID) {\n var o = h.LIKES, p = {\n id: this.props.feedbackFBID\n }, q = g.constructDialogURI(o, p), r = g.constructPageURI(o, p), s = {\n dialog: q.toString(),\n page: r.toString()\n };\n return s;\n }\n ;\n ;\n },\n _getShareViewURI: function() {\n if (this.props.feedbackFBID) {\n var o = new k(\"/ajax/shares/view\").setQueryData({\n target_fbid: this.props.feedbackFBID\n }), p = new k(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n id: this.props.feedbackFBID\n }), q = {\n dialog: o.toString(),\n page: p.toString()\n };\n return q;\n }\n ;\n ;\n }\n });\n e.exports = n;\n});\n__d(\"UFIUserActions\", [\"AsyncResponse\",\"CLoggerX\",\"ClientIDs\",\"ImmutableObject\",\"JSLogger\",\"Nectar\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"MercuryServerDispatcher\",\"collectDataAttributes\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncResponse\"), h = b(\"CLoggerX\"), i = b(\"ClientIDs\"), j = b(\"ImmutableObject\"), k = b(\"JSLogger\"), l = b(\"Nectar\"), m = b(\"UFICentralUpdates\"), n = b(\"UFIComments\"), o = b(\"UFIConstants\"), p = b(\"UFIFeedbackTargets\"), q = b(\"MercuryServerDispatcher\"), r = b(\"collectDataAttributes\"), s = b(\"copyProperties\"), t = b(\"tx\"), u = k.create(\"UFIUserActions\"), v = {\n BAN: \"ban\",\n UNDO_BAN: \"undo_ban\"\n }, w = {\n changeCommentLike: function(ka, la, ma) {\n var na = n.getComment(ka);\n if (((na.hasviewerliked != la))) {\n var oa = x(ma.target), pa = ((la ? 1 : -1)), qa = {\n commentid: ka,\n actiontype: o.UFIActionType.COMMENT_LIKE,\n viewerliked: la,\n likecount: ((na.likecount + pa))\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [qa,]\n });\n q.trySend(\"/ajax/ufi/comment_like.php\", s({\n comment_id: ka,\n legacy_id: na.legacyid,\n like_action: la,\n ft_ent_identifier: na.ftentidentifier,\n source: ma.source,\n client_id: i.getNewClientID()\n }, oa));\n }\n ;\n ;\n },\n addComment: function(ka, la, ma, na) {\n p.getFeedbackTarget(ka, function(oa) {\n var pa = x(na.target), qa = i.getNewClientID();\n if (!oa.actorforpost) {\n return;\n }\n ;\n ;\n var ra = {\n ftentidentifier: ka,\n body: {\n text: la\n },\n author: oa.actorforpost,\n id: qa,\n islocal: true,\n ufiinstanceid: na.ufiinstanceid,\n likecount: 0,\n hasviewerliked: false,\n parentcommentid: na.replyid,\n photo_comment: na.attachedphoto,\n timestamp: {\n time: JSBNG__Date.now(),\n text: \"a few seconds ago\"\n }\n }, sa = {\n actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n actorid: oa.actorforpost,\n hasviewersubscribed: true,\n entidentifier: ka\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n comments: [ra,],\n actions: [sa,]\n });\n var ta = null;\n if (na.replyid) {\n ta = (n.getComment(na.replyid)).fbid;\n }\n ;\n ;\n var ua = h.getCLParamsForTarget(na.target, ta);\n q.trySend(\"/ajax/ufi/add_comment.php\", s({\n ft_ent_identifier: oa.entidentifier,\n comment_text: ma,\n source: na.source,\n client_id: qa,\n reply_fbid: ta,\n parent_comment_id: na.replyid,\n timeline_log_data: na.timelinelogdata,\n rootid: na.rootid,\n clp: ua,\n attached_photo_fbid: ((na.attachedphoto ? na.attachedphoto.fbid : 0)),\n giftoccasion: na.giftoccasion\n }, pa));\n });\n },\n editComment: function(ka, la, ma, na) {\n var oa = x(na.target), pa = n.getComment(ka);\n pa = j.set(pa, {\n JSBNG__status: o.UFIStatus.PENDING_EDIT,\n body: {\n text: la\n },\n timestamp: {\n time: JSBNG__Date.now(),\n text: \"a few seconds ago\"\n },\n originalTimestamp: pa.timestamp.time,\n editnux: null,\n attachment: null\n });\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n comments: [pa,]\n });\n q.trySend(\"/ajax/ufi/edit_comment.php\", s({\n ft_ent_identifier: pa.ftentidentifier,\n comment_text: ma,\n source: na.source,\n comment_id: pa.id,\n parent_comment_id: pa.parentcommentid,\n attached_photo_fbid: ((na.attachedPhoto ? na.attachedPhoto.fbid : 0))\n }, oa));\n },\n translateComment: function(ka, la) {\n q.trySend(\"/ajax/ufi/translate_comment.php\", {\n ft_ent_identifier: ka.ftentidentifier,\n comment_ids: [ka.id,],\n source: la.source\n });\n },\n setHideAsSpam: function(ka, la, ma) {\n var na = x(ma.target), oa = n.getComment(ka), pa = {\n commentid: ka,\n actiontype: o.UFIActionType.COMMENT_SET_SPAM,\n shouldHideAsSpam: la\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [pa,]\n });\n q.trySend(\"/ajax/ufi/comment_spam.php\", s({\n comment_id: ka,\n spam_action: la,\n ft_ent_identifier: oa.ftentidentifier,\n source: ma.source\n }, na));\n },\n removeComment: function(ka, la) {\n var ma = x(la.target), na = n.getComment(ka), oa = {\n actiontype: o.UFIActionType.DELETE_COMMENT,\n commentid: ka,\n oneclick: la.oneclick\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [oa,]\n });\n q.trySend(\"/ajax/ufi/delete_comment.php\", s({\n comment_id: na.id,\n comment_legacyid: na.legacyid,\n ft_ent_identifier: na.ftentidentifier,\n one_click: la.oneclick,\n source: la.source,\n client_id: i.getNewClientID(),\n timeline_log_data: la.timelinelogdata\n }, ma));\n },\n undoRemoveComment: function(ka, la, ma) {\n var na = n.getComment(ka);\n if (!na.undoData) {\n u.error(\"noundodata\", {\n comment: ka\n });\n return;\n }\n ;\n ;\n var oa = x(ma.target), pa = {\n actiontype: o.UFIActionType.UNDO_DELETE_COMMENT,\n commentid: ka\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [pa,]\n });\n var qa = na.undoData;\n qa.page_admin = la;\n var ra = s(oa, qa);\n q.trySend(\"/ajax/ufi/undo_delete_comment.php\", ra);\n },\n banUser: function(ka, la, ma, na) {\n var oa = ((ma ? v.BAN : v.UNDO_BAN));\n q.trySend(\"/ajax/ufi/ban_user.php\", {\n page_id: la,\n commenter_id: ka.author,\n action: oa,\n comment_id: ka.id,\n client_side: true\n });\n },\n changeLike: function(ka, la, ma) {\n p.getFeedbackTarget(ka, function(na) {\n var oa = x(ma.target);\n if (((na.hasviewerliked !== la))) {\n var pa = ((la ? 1 : -1)), qa = {\n actiontype: o.UFIActionType.LIKE_ACTION,\n actorid: na.actorforpost,\n hasviewerliked: la,\n likecount: ((na.likecount + pa)),\n entidentifier: ka,\n likesentences: {\n current: na.likesentences.alternate,\n alternate: na.likesentences.current\n }\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [qa,]\n });\n q.trySend(\"/ajax/ufi/like.php\", s({\n like_action: la,\n ft_ent_identifier: ka,\n source: ma.source,\n client_id: i.getNewClientID(),\n rootid: ma.rootid,\n giftoccasion: ma.giftoccasion\n }, oa));\n }\n ;\n ;\n });\n },\n changeSubscribe: function(ka, la, ma) {\n p.getFeedbackTarget(ka, function(na) {\n var oa = x(ma.target);\n if (((na.hasviewersubscribed !== la))) {\n var pa = {\n actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n actorid: na.actorforpost,\n hasviewersubscribed: la,\n entidentifier: ka\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [pa,]\n });\n q.trySend(\"/ajax/ufi/subscribe.php\", s({\n subscribe_action: la,\n ft_ent_identifier: ka,\n source: ma.source,\n client_id: i.getNewClientID(),\n rootid: ma.rootid,\n comment_expand_mode: ma.commentexpandmode\n }, oa));\n }\n ;\n ;\n });\n },\n fetchSpamComments: function(ka, la, ma, na) {\n q.trySend(\"/ajax/ufi/id_comment_fetch.php\", {\n ft_ent_identifier: ka,\n viewas: na,\n comment_ids: la,\n parent_comment_id: ma,\n source: null\n });\n },\n removePreview: function(ka, la) {\n var ma = x(la.target), na = {\n commentid: ka.id,\n actiontype: o.UFIActionType.REMOVE_PREVIEW\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [na,]\n });\n q.trySend(\"/ajax/ufi/remove_preview.php\", s({\n comment_id: ka.id,\n ft_ent_identifier: ka.ftentidentifier,\n source: la.source\n }, ma));\n }\n };\n function x(ka) {\n if (!ka) {\n return {\n ft: {\n }\n };\n }\n ;\n ;\n var la = {\n ft: r(ka, [\"ft\",]).ft\n };\n l.addModuleData(la, ka);\n return la;\n };\n;\n function y(ka) {\n var la = ka.request.data;\n g.defaultErrorHandler(ka);\n var ma = ((la.client_id || la.comment_id)), na = n.getComment(ma), oa = ((((na.JSBNG__status === o.UFIStatus.PENDING_EDIT)) ? o.UFIStatus.FAILED_EDIT : o.UFIStatus.FAILED_ADD));\n na = j.setDeep(na, {\n JSBNG__status: oa,\n allowRetry: z(ka),\n body: {\n mentionstext: la.comment_text\n }\n });\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n comments: [na,]\n });\n };\n;\n function z(ka) {\n var la = ka.getError();\n if (((la === 1404102))) {\n return false;\n }\n ;\n ;\n if (ka.silentError) {\n return true;\n }\n ;\n ;\n if (((((la === 1357012)) || ((la === 1357006))))) {\n return false;\n }\n ;\n ;\n return true;\n };\n;\n function aa(ka) {\n var la = ka.request.data, ma = la.comment_id, na = n.getComment(ma);\n na = j.set(na, {\n JSBNG__status: ((na.priorstatus || null)),\n priorstatus: undefined\n });\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n comments: [na,]\n });\n };\n;\n function ba(ka) {\n var la = ka.request.data, ma = la.comment_id, na = n.getComment(ma);\n if (((la.like_action === na.hasviewerliked))) {\n var oa = ((na.hasviewerliked ? -1 : 1)), pa = {\n commentid: ma,\n actiontype: o.UFIActionType.COMMENT_LIKE,\n viewerliked: !na.hasviewerliked,\n likecount: ((na.likecount + oa))\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [pa,]\n });\n }\n ;\n ;\n g.defaultErrorHandler(ka);\n };\n;\n function ca(ka) {\n var la = ka.request.data, ma = la.ft_ent_identifier;\n p.getFeedbackTarget(ma, function(na) {\n if (((na.hasviewerliked === la.like_action))) {\n var oa = ((na.hasviewerliked ? -1 : 1)), pa = {\n actiontype: o.UFIActionType.LIKE_ACTION,\n actorid: na.actorforpost,\n hasviewerliked: !na.hasviewerliked,\n likecount: ((na.likecount + oa)),\n entidentifier: ma,\n likesentences: {\n current: na.likesentences.alternate,\n alternate: na.likesentences.current\n }\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [pa,]\n });\n }\n ;\n ;\n });\n g.defaultErrorHandler(ka);\n };\n;\n function da(ka) {\n var la = ka.request.data, ma = la.ft_ent_identifier;\n p.getFeedbackTarget(ma, function(na) {\n if (((na.hasviewersubscribed === la.subscribe_action))) {\n var oa = {\n actiontype: o.UFIActionType.SUBSCRIBE_ACTION,\n actorid: na.actorforpost,\n hasviewersubscribed: !na.hasviewersubscribed,\n entidentifier: ma\n };\n m.handleUpdate(o.UFIPayloadSourceType.USER_ACTION, {\n actions: [oa,]\n });\n }\n ;\n ;\n });\n g.defaultErrorHandler(ka);\n };\n;\n var ea = function(ka) {\n return m.handleUpdate.bind(m, ka);\n }, fa = o.UFIPayloadSourceType;\n q.registerEndpoints({\n \"/ajax/ufi/comment_like.php\": {\n mode: q.BATCH_CONDITIONAL,\n handler: ea(fa.ENDPOINT_COMMENT_LIKE),\n error_handler: ba,\n batch_if: ga,\n batch_function: ja\n },\n \"/ajax/ufi/comment_spam.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_COMMENT_SPAM),\n error_handler: aa\n },\n \"/ajax/ufi/add_comment.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_ADD_COMMENT),\n error_handler: y\n },\n \"/ajax/ufi/delete_comment.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_DELETE_COMMENT),\n error_handler: aa\n },\n \"/ajax/ufi/undo_delete_comment.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_UNDO_DELETE_COMMENT),\n error_handler: aa\n },\n \"/ajax/ufi/ban_user.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_BAN)\n },\n \"/ajax/ufi/edit_comment.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_EDIT_COMMENT),\n error_handler: y\n },\n \"/ajax/ufi/like.php\": {\n mode: q.BATCH_CONDITIONAL,\n handler: ea(fa.ENDPOINT_LIKE),\n error_handler: ca,\n batch_if: ha,\n batch_function: ja\n },\n \"/ajax/ufi/subscribe.php\": {\n mode: q.BATCH_CONDITIONAL,\n handler: ea(fa.ENDPOINT_SUBSCRIBE),\n error_handler: da,\n batch_if: ia,\n batch_function: ja\n },\n \"/ajax/ufi/id_comment_fetch.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_ID_COMMENT_FETCH)\n },\n \"/ajax/ufi/remove_preview.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_REMOVE_PREVIEW)\n },\n \"/ajax/ufi/translate_comment.php\": {\n mode: q.IMMEDIATE,\n handler: ea(fa.ENDPOINT_TRANSLATE_COMMENT)\n }\n });\n function ga(ka, la) {\n return ((((ka && ((ka.ft_ent_identifier == la.ft_ent_identifier)))) && ((ka.comment_id == la.comment_id))));\n };\n;\n function ha(ka, la) {\n return ((ka && ((ka.ft_ent_identifier == la.ft_ent_identifier))));\n };\n;\n function ia(ka, la) {\n return ((ka && ((ka.ft_ent_identifier == la.ft_ent_identifier))));\n };\n;\n function ja(ka, la) {\n return la;\n };\n;\n e.exports = w;\n});\n__d(\"UFIActionLinkController\", [\"Arbiter\",\"ClickTTIIdentifiers\",\"CSS\",\"DOMQuery\",\"Parent\",\"React\",\"TrackingNodes\",\"UFIBlingBox.react\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFILikeLink.react\",\"UFISubscribeLink.react\",\"UFITimelineBlingBox.react\",\"UFIUserActions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ClickTTIIdentifiers\"), i = b(\"CSS\"), j = b(\"DOMQuery\"), k = b(\"Parent\"), l = b(\"React\"), m = b(\"TrackingNodes\"), n = b(\"UFIBlingBox.react\"), o = b(\"UFICentralUpdates\"), p = b(\"UFIComments\"), q = b(\"UFIConstants\"), r = b(\"UFIFeedbackTargets\"), s = b(\"UFILikeLink.react\"), t = b(\"UFISubscribeLink.react\"), u = b(\"UFITimelineBlingBox.react\"), v = b(\"UFIUserActions\"), w = b(\"copyProperties\");\n function x(z, aa, ba) {\n if (this._root) {\n throw new Error(((\"UFIActionLinkController attempted to initialize when a root was\" + \" already present\")));\n }\n ;\n ;\n var ca = j.scry(z, aa)[0];\n if (ca) {\n var da = JSBNG__document.createElement(\"span\");\n ca.parentNode.replaceChild(da, ca);\n da.appendChild(ca);\n if (((typeof ba === \"function\"))) {\n ba(da);\n }\n ;\n ;\n }\n else var ea = g.subscribe(\"PhotoSnowlift.DATA_CHANGE\", function() {\n g.unsubscribe(ea);\n x(z, aa, ba);\n }, g.SUBSCRIBE_NEW)\n ;\n };\n;\n var y = function(z, aa, ba) {\n this._id = aa.ftentidentifier;\n this._ftFBID = ba.targetfbid;\n this._source = aa.source;\n this._contextArgs = aa;\n this._ufiRoot = z;\n if (this._isSourceProfile(this._contextArgs.source)) {\n this._attemptInitializeTimelineBling();\n }\n else this._attemptInitializeBling();\n ;\n ;\n if (ba.viewercanlike) {\n this._attemptInitializeLike();\n }\n ;\n ;\n if (ba.viewercansubscribetopost) {\n this._attemptInitializeSubscribe();\n }\n ;\n ;\n o.subscribe(\"feedback-updated\", function(ca, da) {\n var ea = da.updates;\n if (((this._id in ea))) {\n this.render();\n }\n ;\n ;\n }.bind(this));\n o.subscribe(\"feedback-id-changed\", function(ca, da) {\n var ea = da.updates;\n if (((this._id in ea))) {\n this._id = ea[this._id];\n }\n ;\n ;\n }.bind(this));\n };\n w(y.prototype, {\n _attemptInitializeBling: function() {\n x(this._ufiRoot, \"^form .uiBlingBox\", function(z) {\n this._blingRoot = z;\n if (this._dataReady) {\n this._renderBling();\n }\n ;\n ;\n }.bind(this));\n },\n _attemptInitializeTimelineBling: function() {\n if (this._root) {\n throw new Error(((\"UFIActionLinkController attempted to initialize when a root was\" + \" already present\")));\n }\n ;\n ;\n var z = j.scry(this._ufiRoot, \"^form .fbTimelineFeedbackActions span\")[0];\n if (z) {\n i.addClass(z, \"UFIBlingBoxTimeline\");\n var aa = j.scry(z, \".fbTimelineFeedbackLikes\")[0];\n this._enableShowLikes = ((aa ? true : false));\n var ba = j.scry(z, \".fbTimelineFeedbackComments\")[0];\n this._enableShowComments = ((ba ? true : false));\n }\n ;\n ;\n this._blingTimelineRoot = z;\n if (this._dataReady) {\n this._renderTimelineBling();\n }\n ;\n ;\n },\n _attemptInitializeLike: function() {\n x(this._ufiRoot, \"^form .like_link\", function(z) {\n this._likeRoot = z;\n if (this._dataReady) {\n this._renderLike();\n }\n ;\n ;\n }.bind(this));\n },\n _attemptInitializeSubscribe: function() {\n x(this._ufiRoot, \"^form .unsub_link\", function(z) {\n this._subscribeRoot = z;\n if (this._dataReady) {\n this._renderSubscribe();\n }\n ;\n ;\n }.bind(this));\n },\n render: function() {\n this._dataReady = true;\n if (this._isSourceProfile(this._contextArgs.source)) {\n this._renderTimelineBling();\n }\n else this._renderBling();\n ;\n ;\n this._renderLike();\n this._renderSubscribe();\n },\n _renderBling: function() {\n if (this._blingRoot) {\n r.getFeedbackTarget(this._id, function(z) {\n var aa = function(JSBNG__event) {\n var da = k.byTag(JSBNG__event.target, \"form\");\n i.toggleClass(da, \"collapsed_comments\");\n i.toggleClass(da, \"hidden_add_comment\");\n JSBNG__event.preventDefault();\n }.bind(this), ba = m.getTrackingInfo(m.types.BLINGBOX), ca = n({\n likes: z.likecount,\n comments: p.getDisplayedCommentCount(this._id),\n reshares: z.sharecount,\n permalink: z.permalink,\n contextArgs: this._contextArgs,\n onClick: aa,\n \"data-ft\": ba\n });\n this._blingBox = l.renderComponent(ca, this._blingRoot);\n }.bind(this));\n }\n ;\n ;\n },\n _renderTimelineBling: function() {\n if (this._blingTimelineRoot) {\n r.getFeedbackTarget(this._id, function(z) {\n var aa = m.getTrackingInfo(m.types.BLINGBOX), ba = h.getUserActionID(h.types.TIMELINE_SEE_LIKERS), ca = function(JSBNG__event) {\n var ea = k.byTag(JSBNG__event.target, \"form\");\n i.removeClass(ea, \"collapsed_comments\");\n var fa = j.scry(ea, \"a.UFIPagerLink\");\n if (fa.length) {\n fa[0].click();\n }\n ;\n ;\n JSBNG__event.preventDefault();\n }.bind(this), da = u({\n comments: p.getDisplayedCommentCount(this._id),\n commentOnClick: ca,\n contextArgs: this._contextArgs,\n \"data-ft\": aa,\n \"data-gt\": ba,\n enableShowComments: this._enableShowComments,\n enableShowLikes: this._enableShowLikes,\n feedbackFBID: this._ftFBID,\n likes: z.likecount,\n reshares: z.sharecount\n });\n l.renderComponent(da, this._blingTimelineRoot);\n }.bind(this));\n }\n ;\n ;\n },\n _renderLike: function() {\n if (this._likeRoot) {\n r.getFeedbackTarget(this._id, function(z) {\n var aa = !z.hasviewerliked, ba = function(JSBNG__event) {\n v.changeLike(this._id, aa, {\n source: this._source,\n target: JSBNG__event.target,\n rootid: this._contextArgs.rootid,\n giftoccasion: this._contextArgs.giftoccasion\n });\n JSBNG__event.preventDefault();\n }.bind(this), ca = s({\n onClick: ba,\n likeAction: aa\n });\n this._likeLink = l.renderComponent(ca, this._likeRoot);\n }.bind(this));\n }\n ;\n ;\n },\n _renderSubscribe: function() {\n if (this._subscribeRoot) {\n r.getFeedbackTarget(this._id, function(z) {\n var aa = !z.hasviewersubscribed, ba = function(JSBNG__event) {\n v.changeSubscribe(this._id, aa, {\n source: this._source,\n target: JSBNG__event.target,\n rootid: this._contextArgs.rootid,\n commentexpandmode: z.commentexpandmode\n });\n JSBNG__event.preventDefault();\n }.bind(this), ca = t({\n onClick: ba,\n subscribeAction: aa\n });\n this._subscribeLink = l.renderComponent(ca, this._subscribeRoot);\n }.bind(this));\n }\n ;\n ;\n },\n _isSourceProfile: function(z) {\n return ((z === q.UFIFeedbackSourceType.PROFILE));\n }\n });\n e.exports = y;\n});\n__d(\"MentionsInputUtils\", [], function(a, b, c, d, e, f) {\n var g = {\n generateDataFromTextWithEntities: function(h) {\n var i = h.text, j = [];\n ((h.ranges || [])).forEach(function(l) {\n var m = l.entities[0];\n if (!m.JSBNG__external) {\n j.push({\n uid: m.id,\n text: i.substr(l.offset, l.length),\n offset: l.offset,\n length: l.length,\n weakreference: !!m.weakreference\n });\n }\n ;\n ;\n });\n var k = {\n value: i,\n mentions: j\n };\n return k;\n }\n };\n e.exports = g;\n});\n__d(\"ClipboardPhotoUploader\", [\"ArbiterMixin\",\"AsyncRequest\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"copyProperties\");\n function j(k, l) {\n this.uploadURIString = k;\n this.data = l;\n };\n;\n i(j.prototype, g, {\n handlePaste: function(JSBNG__event) {\n if (!JSBNG__event.JSBNG__clipboardData) {\n return;\n }\n ;\n ;\n var k = JSBNG__event.JSBNG__clipboardData.items;\n if (!k) {\n return;\n }\n ;\n ;\n for (var l = 0; ((l < k.length)); ++l) {\n var m = k[l];\n if (((((m.kind === \"file\")) && ((m.type.indexOf(\"image/\") !== -1))))) {\n var n = new JSBNG__FormData();\n n.append(\"pasted_file\", m.getAsFile());\n var o = new h();\n o.setURI(this.uploadURIString).setData(this.data).setRawData(n).setHandler(function(p) {\n this.inform(\"upload_success\", p);\n }.bind(this)).setErrorHandler(function(p) {\n this.inform(\"upload_error\", p);\n }.bind(this));\n this.inform(\"upload_start\");\n o.send();\n break;\n }\n ;\n ;\n };\n ;\n }\n });\n e.exports = j;\n});\n__d(\"CloseButton.react\", [\"React\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"cx\"), i = g.createClass({\n displayName: \"CloseButton\",\n render: function() {\n var j = this.props, k = ((j.size || \"medium\")), l = ((j.appearance || \"normal\")), m = ((k === \"small\")), n = ((k === \"huge\")), o = ((l === \"dark\")), p = ((l === \"inverted\")), q = (((((((((((((\"uiCloseButton\") + ((m ? ((\" \" + \"uiCloseButtonSmall\")) : \"\")))) + ((n ? ((\" \" + \"uiCloseButtonHuge\")) : \"\")))) + ((((m && o)) ? ((\" \" + \"uiCloseButtonSmallDark\")) : \"\")))) + ((((m && p)) ? ((\" \" + \"uiCloseButtonSmallInverted\")) : \"\")))) + ((((!m && o)) ? ((\" \" + \"uiCloseButtonDark\")) : \"\")))) + ((((!m && p)) ? ((\" \" + \"uiCloseButtonInverted\")) : \"\"))));\n return this.transferPropsTo(g.DOM.a({\n href: \"#\",\n role: \"button\",\n \"aria-label\": j.tooltip,\n \"data-hover\": ((j.tooltip && \"tooltip\")),\n \"data-tooltip-alignh\": ((j.tooltip && \"center\")),\n className: q\n }));\n }\n });\n e.exports = i;\n});\n__d(\"LoadingIndicator.react\", [\"React\",\"joinClasses\",\"keyMirror\",\"merge\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"joinClasses\"), i = b(\"keyMirror\"), j = b(\"merge\"), k = i({\n white: true,\n blue: true,\n black: true\n }), l = i({\n small: true,\n medium: true,\n large: true\n }), m = {\n white: {\n large: \"/images/loaders/indicator_blue_large.gif\",\n medium: \"/images/loaders/indicator_blue_medium.gif\",\n small: \"/images/loaders/indicator_blue_small.gif\"\n },\n blue: {\n large: \"/images/loaders/indicator_white_large.gif\",\n small: \"/images/loaders/indicator_white_small.gif\"\n },\n black: {\n large: \"/images/loaders/indicator_black.gif\"\n }\n }, n = g.createClass({\n displayName: \"LoadingIndicator\",\n render: function() {\n var o = this.props.color, p = this.props.size;\n if (!m[o]) {\n return g.DOM.span(null);\n }\n ;\n ;\n if (!m[o][p]) {\n return g.DOM.span(null);\n }\n ;\n ;\n var q = ((this.props.showonasync ? \"uiLoadingIndicatorAsync\" : \"\"));\n if (this.props.className) {\n q = h(this.props.className, q);\n }\n ;\n ;\n var r = m[o][p], s = g.DOM.img({\n src: r,\n className: q\n });\n s.props = j(this.props, s.props);\n return s;\n }\n });\n n.SIZES = l;\n n.COLORS = k;\n e.exports = n;\n});\n__d(\"LegacyMentionsInput.react\", [\"PlaceholderListener\",\"Bootloader\",\"JSBNG__Event\",\"Keys\",\"React\",\"cx\",], function(a, b, c, d, e, f) {\n b(\"PlaceholderListener\");\n var g = b(\"Bootloader\"), h = b(\"JSBNG__Event\"), i = b(\"Keys\"), j = b(\"React\"), k = b(\"cx\"), l = j.createClass({\n displayName: \"ReactLegacyMentionsInput\",\n componentDidMount: function(m) {\n ((this.props.initialData && this._initializeTextarea(m)));\n },\n hasEnteredText: function() {\n return !!((this._mentionsInput && this._mentionsInput.getValue().trim()));\n },\n _handleKeydown: function(JSBNG__event) {\n var m = JSBNG__event.nativeEvent, n = this.props.onEnterSubmit, o = ((((h.getKeyCode(m) == i.RETURN)) && !h.$E(m).getModifiers().any)), p = ((this._mentionsInput && this._mentionsInput.getTypeahead().getView().JSBNG__getSelection()));\n if (((((n && o)) && !p))) {\n if (this.props.isLoadingPhoto) {\n return false;\n }\n ;\n ;\n var q = JSBNG__event.target, r = ((q.value && q.value.trim()));\n if (((r || this.props.acceptEmptyInput))) {\n var s = {\n visibleValue: r,\n encodedValue: r,\n attachedPhoto: null\n };\n if (this._mentionsInput) {\n s.encodedValue = this._mentionsInput.getRawValue().trim();\n this._mentionsInput.reset();\n }\n ;\n ;\n n(s, JSBNG__event);\n }\n ;\n ;\n JSBNG__event.preventDefault();\n }\n ;\n ;\n },\n _handleFocus: function() {\n ((this.props.onFocus && this.props.onFocus()));\n this._initializeTextarea(this.refs.root.getDOMNode());\n },\n _handleBlur: function() {\n ((this.props.onBlur && this.props.onBlur()));\n },\n _initializeTextarea: function(m) {\n if (((this._mentionsInput || this._bootloadingMentions))) {\n return;\n }\n ;\n ;\n this._bootloadingMentions = true;\n g.loadModules([\"CompactTypeaheadRenderer\",\"ContextualTypeaheadView\",\"InputSelection\",\"MentionsInput\",\"TextAreaControl\",\"Typeahead\",\"TypeaheadAreaCore\",\"TypeaheadBestName\",\"TypeaheadHoistFriends\",\"TypeaheadMetrics\",\"TypingDetector\",], function(n, o, p, q, r, s, t, u, v, w, x) {\n var y = this.refs.textarea.getDOMNode();\n new r(y);\n if (this.props.onTypingStateChange) {\n var z = new x(y);\n z.init();\n z.subscribe(\"change\", this.props.onTypingStateChange);\n }\n ;\n ;\n var aa = {\n autoSelect: true,\n renderer: n,\n causalElement: y\n };\n if (this.props.viewOptionsTypeObjects) {\n aa.typeObjects = this.props.viewOptionsTypeObjects;\n }\n ;\n ;\n if (this.props.viewOptionsTypeObjectsOrder) {\n aa.typeObjectsOrder = this.props.viewOptionsTypeObjectsOrder;\n }\n ;\n ;\n var ba = new s(this.props.datasource, {\n ctor: o,\n options: aa\n }, {\n ctor: t\n }, this.refs.typeahead.getDOMNode()), ca = [u,v,], da = new w({\n extraData: {\n event_name: \"mentions\"\n }\n });\n s.initNow(ba, ca, da);\n this._mentionsInput = new q(m, ba, y, {\n hashtags: this.props.sht\n });\n this._mentionsInput.init({\n max: 6\n }, this.props.initialData);\n if (this.props.initialData) {\n p.set(y, y.value.length);\n }\n ;\n ;\n if (this.props.onPaste) {\n h.listen(y, \"paste\", this.props.onPaste);\n }\n ;\n ;\n this._bootloadingMentions = false;\n }.bind(this));\n },\n JSBNG__focus: function() {\n try {\n this.refs.textarea.getDOMNode().JSBNG__focus();\n } catch (m) {\n \n };\n ;\n },\n render: function() {\n var m = (((((((((((\"textInput\") + ((\" \" + \"mentionsTextarea\")))) + ((\" \" + \"uiTextareaAutogrow\")))) + ((\" \" + \"uiTextareaNoResize\")))) + ((\" \" + \"UFIAddCommentInput\")))) + ((\" \" + \"DOMControl_placeholder\"))));\n return (j.DOM.div({\n ref: \"root\",\n className: \"uiMentionsInput textBoxContainer ReactLegacyMentionsInput\"\n }, j.DOM.div({\n className: \"highlighter\"\n }, j.DOM.div(null, j.DOM.span({\n className: \"highlighterContent hidden_elem\"\n }))), j.DOM.div({\n ref: \"typeahead\",\n className: \"uiTypeahead mentionsTypeahead\"\n }, j.DOM.div({\n className: \"wrap\"\n }, j.DOM.input({\n type: \"hidden\",\n autocomplete: \"off\",\n className: \"hiddenInput\"\n }), j.DOM.div({\n className: \"innerWrap\"\n }, j.DOM.textarea({\n ref: \"textarea\",\n JSBNG__name: \"add_comment_text\",\n className: m,\n title: this.props.placeholder,\n placeholder: this.props.placeholder,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n onKeyDown: this._handleKeydown,\n defaultValue: this.props.placeholder\n })))), j.DOM.input({\n type: \"hidden\",\n autocomplete: \"off\",\n className: \"mentionsHidden\",\n defaultValue: \"\"\n })));\n }\n });\n e.exports = l;\n});\n__d(\"UFIClassNames\", [\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\");\n e.exports = {\n ACTOR_IMAGE: \"img UFIActorImage _54ru\",\n ROW: \"UFIRow\",\n UNSEEN_ITEM: \"UFIUnseenItem\"\n };\n});\n__d(\"LeftRight.react\", [\"React\",\"cx\",\"keyMirror\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"cx\"), i = b(\"keyMirror\"), j = b(\"throwIf\"), k = i({\n left: true,\n right: true,\n both: true\n });\n function l(n) {\n j(((((!n.children || ((n.children.length < 1)))) || ((n.children.length > 2)))), \"LeftRight component must have one or two children.\");\n };\n;\n var m = g.createClass({\n displayName: \"LeftRight\",\n render: function() {\n l(this.props);\n var n = ((this.props.direction || k.both)), o = ((n === k.both)), p = g.DOM.div({\n key: \"left\",\n className: ((((o || ((n === k.left)))) ? \"lfloat\" : \"\"))\n }, this.props.children[0]), q = ((((this.props.children.length < 2)) ? null : g.DOM.div({\n key: \"right\",\n className: ((((o || ((n === k.right)))) ? \"rfloat\" : \"\"))\n }, this.props.children[1]))), r = ((((((n === k.right)) && q)) ? [q,p,] : [p,q,]));\n return this.transferPropsTo(g.DOM.div({\n className: \"clearfix\"\n }, r));\n }\n });\n m.DIRECTION = k;\n e.exports = m;\n});\n__d(\"ImageBlock.react\", [\"LeftRight.react\",\"React\",\"cx\",\"joinClasses\",\"throwIf\",], function(a, b, c, d, e, f) {\n var g = b(\"LeftRight.react\"), h = b(\"React\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = b(\"throwIf\");\n function l(p) {\n k(((((!p.children || ((p.children.length > 3)))) || ((p.children.length < 1)))), \"ImageBlock requires two or three children.\");\n };\n;\n function m(p) {\n return (((((((((\"img\") + ((\" \" + \"_8o\")))) + ((((p === \"small\")) ? ((\" \" + \"_8r\")) : \"\")))) + ((((p === \"medium\")) ? ((\" \" + \"_8s\")) : \"\")))) + ((((p === \"large\")) ? ((\" \" + \"_8t\")) : \"\"))));\n };\n;\n function n(p, q, r) {\n p.props.className = j(m(q), p.props.className, r);\n };\n;\n var o = h.createClass({\n displayName: \"ImageBlock\",\n render: function() {\n l(this.props);\n var p = this.props.children[0], q = this.props.children[1], r = this.props.children[2], s = ((this.props.spacing || \"small\"));\n n(p, s, this.props.imageClassName);\n var t = j(this.props.contentClassName, (((\"_42ef\") + ((((s === \"small\")) ? ((\" \" + \"_8u\")) : \"\")))));\n if (((p.tagName == \"IMG\"))) {\n if (((p.props.alt === undefined))) {\n p.props.alt = \"\";\n }\n ;\n ;\n }\n else if (((((((((((p.tagName == \"A\")) || ((p.tagName == \"LINK\")))) && ((p.props.tabIndex === undefined)))) && ((p.props.title === undefined)))) && ((p.props[\"aria-label\"] === undefined))))) {\n p.props.tabIndex = \"-1\";\n p.props[\"aria-hidden\"] = \"true\";\n }\n \n ;\n ;\n var u;\n if (!r) {\n u = h.DOM.div({\n className: t\n }, q);\n }\n else u = g({\n className: t,\n direction: g.DIRECTION.right\n }, q, r);\n ;\n ;\n return this.transferPropsTo(g({\n direction: g.DIRECTION.left\n }, p, u));\n }\n });\n e.exports = o;\n});\n__d(\"UFIImageBlock.react\", [\"ImageBlock.react\",\"React\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"ImageBlock.react\"), h = b(\"React\"), i = b(\"cx\"), j = h.createClass({\n displayName: \"UFIImageBlock\",\n render: function() {\n return this.transferPropsTo(g({\n imageClassName: \"UFIImageBlockImage\",\n contentClassName: \"UFIImageBlockContent\"\n }, this.props.children));\n }\n });\n e.exports = j;\n});\n__d(\"UFIAddComment.react\", [\"Bootloader\",\"CLogConfig\",\"ClipboardPhotoUploader\",\"CloseButton.react\",\"JSBNG__Event\",\"Keys\",\"LoadingIndicator.react\",\"React\",\"LegacyMentionsInput.react\",\"TrackingNodes\",\"Run\",\"UFIClassNames\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"CLogConfig\"), i = b(\"ClipboardPhotoUploader\"), j = b(\"CloseButton.react\"), k = b(\"JSBNG__Event\"), l = b(\"Keys\"), m = b(\"LoadingIndicator.react\"), n = b(\"React\"), o = b(\"LegacyMentionsInput.react\"), p = b(\"TrackingNodes\"), q = b(\"Run\"), r = b(\"UFIClassNames\"), s = b(\"UFIImageBlock.react\"), t = b(\"cx\"), u = b(\"joinClasses\"), v = b(\"tx\"), w = \"Write a comment...\", x = \"Write a reply...\", y = \"fcg fss UFICommentTip\", z = 19, aa = \"/ajax/ufi/upload/\", ba = n.createClass({\n displayName: \"UFIAddComment\",\n getInitialState: function() {\n if (this.props.attachedPhoto) {\n this.props.contextArgs.attachedphoto = this.props.attachedPhoto;\n }\n ;\n ;\n return {\n attachedPhoto: ((this.props.attachedPhoto ? this.props.attachedPhoto : null)),\n isCommenting: false,\n isLoadingPhoto: false,\n isOnBeforeUnloadListenerAdded: false\n };\n },\n _onKeyDown: function(JSBNG__event) {\n if (((this.props.isEditing && ((k.getKeyCode(JSBNG__event.nativeEvent) === l.ESC))))) {\n this.props.onCancel();\n }\n ;\n ;\n if (((this.isMounted() && !this.state.isOnBeforeUnloadListenerAdded))) {\n q.onBeforeUnload(this._handleUnsavedChanges);\n this.setState({\n isOnBeforeUnloadListenerAdded: true\n });\n }\n ;\n ;\n },\n _handleUnsavedChanges: function() {\n var ca = a.PageTransitions;\n if (ca) {\n var da = ca.getNextURI(), ea = ca.getMostRecentURI();\n if (((da.getQueryData().hasOwnProperty(\"theater\") || ea.getQueryData().hasOwnProperty(\"theater\")))) {\n return;\n }\n ;\n ;\n }\n ;\n ;\n if (((((this.refs && this.refs.mentionsinput)) && this.refs.mentionsinput.hasEnteredText()))) {\n return \"You haven't finished your comment yet. Do you want to leave without finishing?\";\n }\n ;\n ;\n },\n _blur: function() {\n if (((this.refs.mentionsinput && this.refs.mentionsinput.hasEnteredText()))) {\n return;\n }\n ;\n ;\n this.setState({\n isCommenting: false\n });\n },\n _onPaste: function(JSBNG__event) {\n var ca = new i(aa, this._getPhotoUploadData());\n this._cancelCurrentSubscriptions();\n this._subscriptions = [ca.subscribe(\"upload_start\", this._prepareForAttachedPhotoPreview),ca.subscribe(\"upload_error\", this._onRemoveAttachedPhotoPreviewClicked),ca.subscribe(\"upload_success\", function(da, ea) {\n this._onPhotoUploadComplete(ea);\n }.bind(this)),];\n ca.handlePaste(JSBNG__event);\n },\n _cancelCurrentSubscriptions: function() {\n if (this._subscriptions) {\n this._subscriptions.forEach(function(ca) {\n ca.unsubscribe();\n });\n }\n ;\n ;\n },\n componentWillUnmount: function() {\n this._cancelCurrentSubscriptions();\n },\n JSBNG__focus: function() {\n if (((this.refs && this.refs.mentionsinput))) {\n this.refs.mentionsinput.JSBNG__focus();\n }\n ;\n ;\n },\n render: function() {\n var ca = ((!this.props.contextArgs.collapseaddcomment || this.state.isCommenting)), da = null;\n if (this.props.isEditing) {\n da = n.DOM.span({\n className: y\n }, \"Press Esc to cancel.\");\n }\n else if (this.props.showSendOnEnterTip) {\n da = n.DOM.span({\n className: y\n }, \"Press Enter to post.\");\n }\n else if (this.props.subtitle) {\n da = n.DOM.span({\n className: y\n }, this.props.subtitle);\n }\n \n \n ;\n ;\n var ea = null, fa = this.state.attachedPhoto, ga = null;\n if (this.props.allowPhotoAttachments) {\n ga = this._onPaste;\n var ha = n.DOM.input({\n ref: \"PhotoInput\",\n accept: \"image/*\",\n className: \"_n\",\n JSBNG__name: \"file[]\",\n type: \"file\",\n multiple: false\n }), ia = ((fa ? \"UFICommentPhotoAttachedIcon\" : \"UFICommentPhotoIcon\")), ja = \"UFIPhotoAttachLinkWrapper _m\";\n ea = n.DOM.div({\n ref: \"PhotoInputContainer\",\n className: ja,\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"aria-label\": \"Attach a Photo\"\n }, n.DOM.i({\n ref: \"PhotoInputControl\",\n className: ia\n }), ha);\n }\n ;\n ;\n var ka = p.getTrackingInfo(p.types.ADD_COMMENT_BOX), la = u(r.ACTOR_IMAGE, ((!ca ? \"hidden_elem\" : \"\"))), ma = n.DOM.div({\n className: \"UFIReplyActorPhotoWrapper\"\n }, n.DOM.img({\n className: la,\n src: this.props.viewerActor.thumbSrc\n })), na = u(r.ROW, ((((((((((((this.props.hide ? \"noDisplay\" : \"\")) + ((\" \" + \"UFIAddComment\")))) + ((this.props.allowPhotoAttachments ? ((\" \" + \"UFIAddCommentWithPhotoAttacher\")) : \"\")))) + ((this.props.withoutSeparator ? ((\" \" + \"UFIAddCommentWithoutSeparator\")) : \"\")))) + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))))), oa = ((!!this.props.replyCommentID ? x : w)), pa = ((this.props.contextArgs.entstream ? this._blur : null)), qa = this.props.contextArgs.viewoptionstypeobjects, ra = this.props.contextArgs.viewoptionstypeobjectsorder, sa = null, ta = this.props.onCommentSubmit;\n if (fa) {\n sa = n.DOM.div({\n isStatic: true,\n dangerouslySetInnerHTML: ((this.state.attachedPhoto.markupPreview ? this.state.attachedPhoto.markupPreview : this.state.attachedPhoto.markup))\n });\n da = null;\n }\n else if (this.state.isLoadingPhoto) {\n sa = m({\n color: \"white\",\n className: \"UFICommentPhotoAttachedPreviewLoadingIndicator\",\n size: \"medium\"\n });\n }\n \n ;\n ;\n var ua;\n if (((sa != null))) {\n ua = n.DOM.div({\n className: \"UFICommentPhotoAttachedPreview pas\"\n }, sa, j({\n onClick: this._onRemoveAttachedPhotoPreviewClicked\n }));\n ta = function(va, JSBNG__event) {\n this.setState({\n isLoadingPhoto: false,\n attachedPhoto: null\n });\n va.attachedPhoto = this.props.contextArgs.attachedphoto;\n this.props.onCommentSubmit(va, JSBNG__event);\n }.bind(this);\n }\n ;\n ;\n return (n.DOM.li({\n className: na,\n onKeyDown: this._onKeyDown,\n \"data-ft\": ka\n }, s({\n className: \"UFIMentionsInputWrap\"\n }, ma, n.DOM.div(null, o({\n initialData: this.props.initialData,\n placeholder: oa,\n ref: \"mentionsinput\",\n datasource: this.props.mentionsDataSource,\n acceptEmptyInput: ((this.props.isEditing || this.props.contextArgs.attachedphoto)),\n onEnterSubmit: ta,\n onFocus: this.setState.bind(this, {\n isCommenting: true\n }),\n viewOptionsTypeObjects: qa,\n viewOptionsTypeObjectsOrder: ra,\n onBlur: pa,\n onTypingStateChange: this.props.onTypingStateChange,\n onPaste: ga,\n sht: this.props.contextArgs.sht,\n isLoadingPhoto: this.state.isLoadingPhoto\n }), ea, ua, da))));\n },\n componentDidMount: function(ca) {\n if (h.gkResults) {\n var da = this.props.replyCommentID;\n if (((this.refs && this.refs.mentionsinput))) {\n var ea = this.refs.mentionsinput.refs.textarea.getDOMNode();\n g.loadModules([\"CLoggerX\",\"UFIComments\",], function(ja, ka) {\n var la = ka.getComment(da), ma = ((la ? la.fbid : null));\n ja.trackMentionsInput(ea, ma);\n });\n }\n ;\n ;\n }\n ;\n ;\n if (!this.props.allowPhotoAttachments) {\n return;\n }\n ;\n ;\n var fa = this.refs.PhotoInputContainer.getDOMNode(), ga = this.refs.PhotoInputControl.getDOMNode(), ha = this.refs.PhotoInput.getDOMNode(), ia = k.listen(fa, \"click\", function(JSBNG__event) {\n g.loadModules([\"FileInput\",\"FileInputUploader\",\"Input\",], function(ja, ka, la) {\n var ma = new ja(fa, ga, ha), na = new ka().setURI(aa).setData(this._getPhotoUploadData());\n ma.subscribe(\"change\", function(JSBNG__event) {\n if (ma.getValue()) {\n this._prepareForAttachedPhotoPreview();\n na.setInput(ma.getInput()).send();\n }\n ;\n ;\n }.bind(this));\n na.subscribe(\"success\", function(oa, pa) {\n ma.clear();\n this._onPhotoUploadComplete(pa.response);\n }.bind(this));\n }.bind(this));\n ia.remove();\n }.bind(this));\n },\n _getPhotoUploadData: function() {\n return {\n profile_id: this.props.viewerActor.id,\n source: z\n };\n },\n _onPhotoUploadComplete: function(ca) {\n if (!this.state.isLoadingPhoto) {\n return;\n }\n ;\n ;\n var da = ca.getPayload();\n if (((da && da.fbid))) {\n this.props.contextArgs.attachedphoto = da;\n this.setState({\n attachedPhoto: da,\n isLoadingPhoto: false\n });\n }\n ;\n ;\n },\n _onRemoveAttachedPhotoPreviewClicked: function(JSBNG__event) {\n this.props.contextArgs.attachedphoto = null;\n this.setState({\n attachedPhoto: null,\n isLoadingPhoto: false\n });\n },\n _prepareForAttachedPhotoPreview: function() {\n this.props.contextArgs.attachedphoto = null;\n this.setState({\n attachedPhoto: null,\n isLoadingPhoto: true\n });\n }\n });\n e.exports = ba;\n});\n__d(\"UFIAddCommentController\", [\"Arbiter\",\"copyProperties\",\"MentionsInputUtils\",\"Parent\",\"UFIAddComment.react\",\"React\",\"ShortProfiles\",\"UFICentralUpdates\",\"UFIComments\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"UFIUserActions\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"copyProperties\"), i = b(\"MentionsInputUtils\"), j = b(\"Parent\"), k = b(\"UFIAddComment.react\"), l = b(\"React\"), m = b(\"ShortProfiles\"), n = b(\"UFICentralUpdates\"), o = b(\"UFIComments\"), p = b(\"UFIFeedbackTargets\"), q = b(\"UFIInstanceState\"), r = b(\"UFIUserActions\");\n function s(t, u, v, w) {\n this.id = u;\n this._ufiInstanceID = w.instanceid;\n this._contextArgs = w;\n this._replyCommentID = v;\n if (t) {\n this.root = t;\n if (!this._contextArgs.rootid) {\n this._contextArgs.rootid = t.id;\n }\n ;\n ;\n this.render();\n n.subscribe(\"instance-updated\", function(x, y) {\n var z = y.updates;\n if (((this._ufiInstanceID in z))) {\n this.render();\n }\n ;\n ;\n }.bind(this));\n }\n ;\n ;\n n.subscribe(\"feedback-id-changed\", function(x, y) {\n var z = y.updates;\n if (((this.id in z))) {\n this.id = z[this.id];\n }\n ;\n ;\n }.bind(this));\n };\n;\n h(s.prototype, {\n _onCommentSubmit: function(t, JSBNG__event) {\n r.addComment(this.id, t.visibleValue, t.encodedValue, {\n source: this._contextArgs.source,\n ufiinstanceid: this._ufiInstanceID,\n target: JSBNG__event.target,\n replyid: this._replyCommentID,\n timelinelogdata: this._contextArgs.timelinelogdata,\n rootid: this._contextArgs.rootid,\n attachedphoto: this._contextArgs.attachedphoto,\n giftoccasion: this._contextArgs.giftoccasion\n });\n this._contextArgs.attachedphoto = null;\n p.getFeedbackTarget(this.id, function(u) {\n var v = j.byTag(this.root, \"form\");\n if (v) {\n g.inform(\"ufi/comment\", {\n form: v,\n isranked: u.isranked\n });\n }\n ;\n ;\n }.bind(this));\n return false;\n },\n _onTypingStateChange: function(t, u) {\n \n },\n renderAddComment: function(t, u, v, w, x, y, z) {\n var aa = ((this._contextArgs.logtyping ? this._onTypingStateChange.bind(this) : null)), ba = null, ca = ((q.getKeyForInstance(this._ufiInstanceID, \"isediting\") && !this._replyCommentID));\n return (k({\n hide: ca,\n replyCommentID: this._replyCommentID,\n viewerActor: t,\n initialData: ba,\n ref: w,\n withoutSeparator: x,\n onCommentSubmit: this._onCommentSubmit.bind(this),\n mentionsDataSource: u,\n onTypingStateChange: aa,\n showSendOnEnterTip: v,\n allowPhotoAttachments: y,\n source: this._contextArgs.source,\n contextArgs: this._contextArgs,\n subtitle: z\n }));\n },\n renderEditComment: function(t, u, v, w, x, y) {\n var z = o.getComment(u), aa = i.generateDataFromTextWithEntities(z.body);\n return (k({\n viewerActor: t,\n initialData: aa,\n onCommentSubmit: w,\n onCancel: x,\n mentionsDataSource: v,\n source: this._contextArgs.source,\n contextArgs: this._contextArgs,\n isEditing: true,\n editingCommentID: u,\n attachedPhoto: z.photo_comment,\n allowPhotoAttachments: y\n }));\n },\n render: function() {\n if (!this.root) {\n throw new Error(\"render called on UFIAddCommentController with no root\");\n }\n ;\n ;\n p.getFeedbackTarget(this.id, function(t) {\n if (((t.cancomment && t.actorforpost))) {\n m.get(t.actorforpost, function(u) {\n var v = this.renderAddComment(u, t.mentionsdatasource, t.showsendonentertip, null, null, t.allowphotoattachments, t.subtitle);\n this._addComment = l.renderComponent(v, this.root);\n }.bind(this));\n }\n ;\n ;\n }.bind(this));\n }\n });\n e.exports = s;\n});\n__d(\"Scrollable\", [\"JSBNG__Event\",\"Parent\",\"UserAgent\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Parent\"), i = b(\"UserAgent\"), j = function(JSBNG__event) {\n var m = h.byClass(JSBNG__event.getTarget(), \"scrollable\");\n if (!m) {\n return;\n }\n ;\n ;\n if (((((((((typeof JSBNG__event.axis !== \"undefined\")) && ((JSBNG__event.axis === JSBNG__event.HORIZONTAL_AXIS)))) || ((JSBNG__event.wheelDeltaX && !JSBNG__event.wheelDeltaY)))) || ((JSBNG__event.deltaX && !JSBNG__event.deltaY))))) {\n return;\n }\n ;\n ;\n var n = ((((JSBNG__event.wheelDelta || -JSBNG__event.deltaY)) || -JSBNG__event.detail)), o = m.scrollHeight, p = m.clientHeight;\n if (((o > p))) {\n var q = m.scrollTop;\n if (((((((n > 0)) && ((q === 0)))) || ((((n < 0)) && ((q >= ((o - p))))))))) {\n JSBNG__event.prevent();\n }\n else if (((i.ie() < 9))) {\n if (m.currentStyle) {\n var r = m.currentStyle.fontSize;\n if (((r.indexOf(\"px\") < 0))) {\n var s = JSBNG__document.createElement(\"div\");\n s.style.fontSize = r;\n s.style.height = \"1em\";\n r = s.style.pixelHeight;\n }\n else r = parseInt(r, 10);\n ;\n ;\n m.scrollTop = ((q - Math.round(((((n / 120)) * r)))));\n JSBNG__event.prevent();\n }\n ;\n }\n \n ;\n ;\n }\n ;\n ;\n }, k = JSBNG__document.documentElement;\n if (i.firefox()) {\n var l = ((((\"JSBNG__WheelEvent\" in window)) ? \"wheel\" : \"DOMMouseScroll\"));\n k.JSBNG__addEventListener(l, j, false);\n }\n else g.listen(k, \"mousewheel\", j);\n;\n;\n});\n__d(\"LegacyScrollableArea.react\", [\"Scrollable\",\"Bootloader\",\"React\",\"Style\",\"cx\",], function(a, b, c, d, e, f) {\n b(\"Scrollable\");\n var g = b(\"Bootloader\"), h = b(\"React\"), i = b(\"Style\"), j = b(\"cx\"), k = \"uiScrollableArea native\", l = \"uiScrollableAreaWrap scrollable\", m = \"uiScrollableAreaBody\", n = \"uiScrollableAreaContent\", o = h.createClass({\n displayName: \"ReactLegacyScrollableArea\",\n render: function() {\n var p = {\n height: ((this.props.height ? ((this.props.height + \"px\")) : \"auto\"))\n };\n return (h.DOM.div({\n className: k,\n ref: \"root\",\n style: p\n }, h.DOM.div({\n className: l\n }, h.DOM.div({\n className: m,\n ref: \"body\"\n }, h.DOM.div({\n className: n\n }, this.props.children)))));\n },\n getArea: function() {\n return this._area;\n },\n componentDidMount: function() {\n g.loadModules([\"ScrollableArea\",], this._loadScrollableArea);\n },\n _loadScrollableArea: function(p) {\n this._area = p.fromNative(this.refs.root.getDOMNode(), {\n fade: this.props.fade,\n persistent: this.props.persistent\n });\n var q = this.refs.body.getDOMNode();\n i.set(q, \"width\", ((this.props.width + \"px\")));\n ((this.props.onScroll && this._area.subscribe(\"JSBNG__scroll\", this.props.onScroll)));\n }\n });\n e.exports = o;\n});\n__d(\"UFIAddCommentLink.react\", [\"React\",\"UFIClassNames\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"UFIClassNames\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = b(\"tx\"), l = g.createClass({\n displayName: \"UFIAddCommentLink\",\n render: function() {\n var m = j(h.ROW, (((((((((\"UFIAddCommentLink\") + ((this.props.isFirstCommentComponent ? ((\" \" + \"UFIFirstCommentComponent\")) : \"\")))) + ((this.props.isLastCommentComponent ? ((\" \" + \"UFILastCommentComponent\")) : \"\")))) + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))))), n = \"Write a comment...\";\n return (g.DOM.li({\n className: m,\n \"data-ft\": this.props[\"data-ft\"]\n }, g.DOM.a({\n className: \"UFICommentLink\",\n onClick: this.props.onClick,\n href: \"#\",\n role: \"button\"\n }, n)));\n }\n });\n e.exports = l;\n});\n__d(\"HovercardLink\", [\"Bootloader\",\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"URI\"), i = {\n getBaseURI: function() {\n return h(\"/ajax/hovercard/hovercard.php\");\n },\n constructEndpoint: function(j, k) {\n return i.constructEndpointWithGroupAndLocation(j, k, null);\n },\n constructEndpointWithLocation: function(j, k) {\n return i.constructEndpointWithGroupAndLocation(j, null, k);\n },\n constructEndpointWithGroupAndLocation: function(j, k, l) {\n g.loadModules([\"Hovercard\",], function() {\n \n });\n var m = new h(i.getBaseURI()).setQueryData({\n id: j.id\n }), n = {\n };\n if (((j.weakreference && k))) {\n n.group_id = k;\n }\n ;\n ;\n if (l) {\n n.hc_location = l;\n }\n ;\n ;\n m.addQueryData({\n extragetparams: JSON.stringify(n)\n });\n return m;\n }\n };\n e.exports = i;\n});\n__d(\"UntrustedLink\", [\"DOM\",\"JSBNG__Event\",\"URI\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"JSBNG__Event\"), i = b(\"URI\"), j = b(\"UserAgent\"), k = b(\"copyProperties\");\n function l(m, n, o, p) {\n this.dom = m;\n this.url = m.href;\n this.hash = n;\n this.func_get_params = ((p || function() {\n return {\n };\n }));\n h.listen(this.dom, \"click\", this.JSBNG__onclick.bind(this));\n h.listen(this.dom, \"mousedown\", this.JSBNG__onmousedown.bind(this));\n h.listen(this.dom, \"mouseup\", this.JSBNG__onmouseup.bind(this));\n h.listen(this.dom, \"mouseout\", this.JSBNG__onmouseout.bind(this));\n this.JSBNG__onmousedown(h.$E(o));\n };\n;\n l.bootstrap = function(m, n, o, p) {\n if (m.__untrusted) {\n return;\n }\n ;\n ;\n m.__untrusted = true;\n new l(m, n, o, p);\n };\n l.prototype.getRewrittenURI = function() {\n var m = k({\n u: this.url,\n h: this.hash\n }, this.func_get_params(this.dom)), n = new i(\"/l.php\");\n return n.setQueryData(m).setSubdomain(\"www\").setProtocol(\"http\");\n };\n l.prototype.JSBNG__onclick = function() {\n (function() {\n this.setHref(this.url);\n }).bind(this).defer(100);\n this.setHref(this.getRewrittenURI());\n };\n l.prototype.JSBNG__onmousedown = function(m) {\n if (((m.button == 2))) {\n this.setHref(this.getRewrittenURI());\n }\n ;\n ;\n };\n l.prototype.JSBNG__onmouseup = function() {\n this.setHref(this.getRewrittenURI());\n };\n l.prototype.JSBNG__onmouseout = function() {\n this.setHref(this.url);\n };\n l.prototype.setHref = function(m) {\n if (((j.ie() < 9))) {\n var n = g.create(\"span\");\n g.appendContent(this.dom, n);\n this.dom.href = m;\n g.remove(n);\n }\n else this.dom.href = m;\n ;\n ;\n };\n e.exports = l;\n});\n__d(\"Link.react\", [\"React\",\"UntrustedLink\",\"mergeInto\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"UntrustedLink\"), i = b(\"mergeInto\"), j = g.createClass({\n displayName: \"Link\",\n _installLinkshimOnMouseDown: function(JSBNG__event) {\n var k = this.props.href;\n if (k.shimhash) {\n h.bootstrap(this.getDOMNode(), k.shimhash);\n }\n ;\n ;\n ((this.props.onMouseDown && this.props.onMouseDown(JSBNG__event)));\n },\n render: function() {\n var k = this.props.href, l = g.DOM.a(null);\n i(l.props, this.props);\n if (k) {\n l.props.href = k.url;\n var m = !!k.shimhash;\n if (m) {\n l.props.rel = ((l.props.rel ? ((l.props.rel + \" nofollow\")) : \"nofollow\"));\n l.props.onMouseDown = this._installLinkshimOnMouseDown;\n }\n ;\n ;\n }\n else l.props.href = \"#\";\n ;\n ;\n return l;\n }\n });\n e.exports = j;\n});\n__d(\"PubContentTypes\", [], function(a, b, c, d, e, f) {\n var g = {\n HASHTAG: \"hashtag\",\n TOPIC: \"topic\",\n JSBNG__URL: \"url\"\n };\n e.exports = g;\n});\n__d(\"HovercardLinkInterpolator\", [\"Bootloader\",\"CSS\",\"JSBNG__Event\",\"HovercardLink\",\"Link.react\",\"Parent\",\"PubContentTypes\",\"React\",\"URI\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"CSS\"), i = b(\"JSBNG__Event\"), j = b(\"HovercardLink\"), k = b(\"Link.react\"), l = b(\"Parent\"), m = b(\"PubContentTypes\"), n = b(\"React\"), o = b(\"URI\"), p = b(\"cx\");\n function q(r, s, t, u, v) {\n var w = s.entities[0], x = ((t || ((w.JSBNG__external ? \"_blank\" : null)))), y, z = ((((!w.JSBNG__external ? \"profileLink\" : \"\")) + ((w.weakreference ? ((\" \" + \"weakReference\")) : \"\"))));\n if (w.hashtag) {\n var aa = h.hasClass(JSBNG__document.body, \"_6nw\"), ba = function(ea) {\n if (i.$E(ea.nativeEvent).isDefaultRequested()) {\n return;\n }\n ;\n ;\n ea.preventDefault();\n var fa = l.byTag(ea.target, \"A\");\n if (aa) {\n g.loadModules([\"EntstreamPubContentOverlay\",], function(ga) {\n ga.pubClick(fa);\n });\n }\n else g.loadModules([\"HashtagLayerPageController\",], function(ga) {\n ga.click(fa);\n });\n ;\n ;\n }, ca = null;\n if (aa) {\n ca = {\n type: m.HASHTAG,\n id: w.id,\n source: \"comment\"\n };\n }\n else ca = {\n id: w.id\n };\n ;\n ;\n var da = new o(w.url).setSubdomain(\"www\");\n y = n.DOM.a({\n className: \"_58cn\",\n \"data-pub\": JSON.stringify(ca),\n href: da.toString(),\n onClick: ba\n }, n.DOM.span({\n className: \"_58cl\"\n }, r.substring(0, 1)), n.DOM.span({\n className: \"_58cm\"\n }, r.substring(1)));\n }\n else if (w.weakreference) {\n y = k({\n className: z,\n href: w,\n target: x\n }, n.DOM.i({\n className: \"UFIWeakReferenceIcon\"\n }), r);\n }\n else y = k({\n className: z,\n href: w,\n target: x\n }, r);\n \n ;\n ;\n if (((!w.JSBNG__external && !w.hashtag))) {\n y.props[\"data-hovercard\"] = j.constructEndpointWithGroupAndLocation(w, u, v).toString();\n }\n ;\n ;\n return y;\n };\n;\n e.exports = q;\n});\n__d(\"LinkButton\", [\"cx\",\"React\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\"), h = b(\"React\"), i = function(j) {\n var k = ((((j.JSBNG__name && j.value)) ? ((((((j.JSBNG__name + \"[\")) + encodeURIComponent(j.value))) + \"]\")) : null));\n return (h.DOM.label({\n className: (((((\"uiLinkButton\") + ((j.subtle ? ((\" \" + \"uiLinkButtonSubtle\")) : \"\")))) + ((j.showSaving ? ((\" \" + \"async_throbber\")) : \"\"))))\n }, h.DOM.input({\n type: ((j.inputType || \"button\")),\n JSBNG__name: k,\n value: j.label,\n className: ((j.showSaving ? \"stat_elem\" : \"\"))\n })));\n };\n e.exports = i;\n});\n__d(\"Timestamp.react\", [\"LiveTimer\",\"React\",], function(a, b, c, d, e, f) {\n var g = b(\"LiveTimer\"), h = b(\"React\"), i = h.createClass({\n displayName: \"Timestamp\",\n render: function() {\n var j = g.renderRelativeTimeToServer(this.props.time);\n return this.transferPropsTo(h.DOM.abbr({\n className: \"livetimestamp\",\n title: this.props.verbose,\n \"data-utime\": this.props.time\n }, ((j.text || this.props.text))));\n }\n });\n e.exports = i;\n});\n__d(\"EmoteTypes\", [], function(a, b, c, d, e, f) {\n f.TEXT = \"text\";\n f.EMOTE = \"emote\";\n f.EMOTE_FBID = \"emote_fbid\";\n});\n__d(\"EmoticonsList\", [], function(a, b, c, d, e, f) {\n e.exports = {\n emotes: {\n \":)\": \"smile\",\n \":-)\": \"smile\",\n \":]\": \"smile\",\n \"=)\": \"smile\",\n \":(\": \"frown\",\n \":-(\": \"frown\",\n \":[\": \"frown\",\n \"=(\": \"frown\",\n \":P\": \"tongue\",\n \":-P\": \"tongue\",\n \":-p\": \"tongue\",\n \":p\": \"tongue\",\n \"=P\": \"tongue\",\n \"=D\": \"grin\",\n \":-D\": \"grin\",\n \":D\": \"grin\",\n \":o\": \"gasp\",\n \":-O\": \"gasp\",\n \":O\": \"gasp\",\n \":-o\": \"gasp\",\n \";)\": \"wink\",\n \";-)\": \"wink\",\n \"8)\": \"glasses\",\n \"8-)\": \"glasses\",\n \"B)\": \"glasses\",\n \"B-)\": \"glasses\",\n \"B|\": \"sunglasses\",\n \"8-|\": \"sunglasses\",\n \"8|\": \"sunglasses\",\n \"B-|\": \"sunglasses\",\n \"\\u003E:(\": \"grumpy\",\n \"\\u003E:-(\": \"grumpy\",\n \":/\": \"unsure\",\n \":-/\": \"unsure\",\n \":\\\\\": \"unsure\",\n \":-\\\\\": \"unsure\",\n \"=/\": \"unsure\",\n \"=\\\\\": \"unsure\",\n \":'(\": \"cry\",\n \"3:)\": \"devil\",\n \"3:-)\": \"devil\",\n \"O:)\": \"angel\",\n \"O:-)\": \"angel\",\n \":*\": \"kiss\",\n \":-*\": \"kiss\",\n \"\\u003C3\": \"heart\",\n \"&lt;3\": \"heart\",\n \"\\u2665\": \"heart\",\n \"^_^\": \"kiki\",\n \"-_-\": \"squint\",\n \"o.O\": \"confused\",\n \"O.o\": \"confused_rev\",\n \"\\u003E:o\": \"upset\",\n \"\\u003E:O\": \"upset\",\n \"\\u003E:-O\": \"upset\",\n \"\\u003E:-o\": \"upset\",\n \"\\u003E_\\u003C\": \"upset\",\n \"\\u003E.\\u003C\": \"upset\",\n \":v\": \"pacman\",\n \":|]\": \"robot\",\n \":3\": \"colonthree\",\n \"\\u003C(\\\")\": \"penguin\",\n \":putnam:\": \"putnam\",\n \"(^^^)\": \"shark\",\n \"(y)\": \"like\",\n \":like:\": \"like\",\n \"(Y)\": \"like\",\n \":poop:\": \"poop\"\n },\n symbols: {\n smile: \":)\",\n frown: \":(\",\n tongue: \":P\",\n grin: \"=D\",\n gasp: \":o\",\n wink: \";)\",\n glasses: \"8)\",\n sunglasses: \"B|\",\n grumpy: \"\\u003E:(\",\n unsure: \":/\",\n cry: \":'(\",\n devil: \"3:)\",\n angel: \"O:)\",\n kiss: \":*\",\n heart: \"\\u003C3\",\n kiki: \"^_^\",\n squint: \"-_-\",\n confused: \"o.O\",\n confused_rev: \"O.o\",\n upset: \"\\u003E:o\",\n pacman: \":v\",\n robot: \":|]\",\n colonthree: \":3\",\n penguin: \"\\u003C(\\\")\",\n putnam: \":putnam:\",\n shark: \"(^^^)\",\n like: \"(y)\",\n poop: \":poop:\"\n },\n regexp: /(^|[\\s'\".])(:\\)|:\\-\\)|:\\]|=\\)|:\\(|:\\-\\(|:\\[|=\\(|:P|:\\-P|:\\-p|:p|=P|=D|:\\-D|:D|:o|:\\-O|:O|:\\-o|;\\)|;\\-\\)|8\\)|8\\-\\)|B\\)|B\\-\\)|B\\||8\\-\\||8\\||B\\-\\||>:\\(|>:\\-\\(|:\\/|:\\-\\/|:\\\\|:\\-\\\\|=\\/|=\\\\|:'\\(|3:\\)|3:\\-\\)|O:\\)|O:\\-\\)|:\\*|:\\-\\*|<3|&lt;3|\\u2665|\\^_\\^|\\-_\\-|o\\.O|O\\.o|>:o|>:O|>:\\-O|>:\\-o|>_<|>\\.<|:v|:\\|\\]|:3|<\\(\"\\)|:putnam:|\\(\\^\\^\\^\\)|\\(y\\)|:like:|\\(Y\\)|:poop:)([\\s'\".,!?]|<br>|$)/\n };\n});\n__d(\"createEmoteTokenizer\", [\"EmoteTypes\",], function(a, b, c, d, e, f) {\n var g = b(\"EmoteTypes\"), h = 40;\n function i(j) {\n return function(k) {\n var l = k, m = [], n = h;\n while (n--) {\n var o = j.regexp.exec(l);\n if (((!o || !o.length))) {\n break;\n }\n ;\n ;\n var p = o[2], q = ((o.index + o[1].length)), r = l.substring(0, q);\n if (r) {\n m.push({\n type: g.TEXT,\n text: r\n });\n }\n ;\n ;\n var s = j.emotes[p];\n if (s) {\n m.push({\n type: g.EMOTE,\n text: p,\n emote: s\n });\n }\n else m.push({\n type: g.TEXT,\n text: p\n });\n ;\n ;\n l = l.substring(((q + p.length)));\n };\n ;\n if (l) {\n m.push({\n type: g.TEXT,\n text: l\n });\n }\n ;\n ;\n return m;\n };\n };\n;\n e.exports = i;\n});\n__d(\"emoteFBIDTokenizer\", [\"EmoteTypes\",], function(a, b, c, d, e, f) {\n var g = b(\"EmoteTypes\"), h = /\\[\\[([a-z\\d\\.]+)\\]\\]/gi;\n function i(j) {\n return j.split(h).map(function(k, l) {\n if (((((l % 2)) === 0))) {\n return {\n type: g.TEXT,\n text: k\n };\n }\n else return {\n type: g.EMOTE_FBID,\n text: ((((\"[[\" + k)) + \"]]\")),\n value: k\n }\n ;\n });\n };\n;\n e.exports = i;\n});\n__d(\"Emote\", [\"DOM\",\"EmoteTypes\",\"EmoticonsList\",\"createEmoteTokenizer\",\"emoteFBIDTokenizer\",\"flattenArray\",\"htmlize\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"EmoteTypes\"), i = b(\"EmoticonsList\"), j = b(\"createEmoteTokenizer\"), k = b(\"emoteFBIDTokenizer\"), l = b(\"flattenArray\"), m = b(\"htmlize\"), n = j(i), o = e.exports = {\n };\n o.htmlEmoteWithoutFBID = function(p, q) {\n if (((typeof q != \"function\"))) {\n q = m;\n }\n ;\n ;\n return l(n(p).map(function(r) {\n if (((r.type === h.TEXT))) {\n return q(r.text);\n }\n else if (((r.type === h.EMOTE))) {\n return [\"\\u003Cspan class=\\\"emoticon_text\\\" aria-hidden=\\\"true\\\"\\u003E\",r.text,\"\\u003C/span\\u003E\",g.create(\"span\", {\n }, g.create(\"span\", {\n title: r.text,\n className: ((\"emoticon emoticon_\" + r.emote))\n })).innerHTML,];\n }\n \n ;\n ;\n })).join(\"\");\n };\n o.htmlEmote = function(p, q) {\n if (((typeof q != \"function\"))) {\n q = m;\n }\n ;\n ;\n return l(k(p).map(function(r) {\n if (((r.type === h.TEXT))) {\n return o.htmlEmoteWithoutFBID(r.text, q);\n }\n else if (((r.type === h.EMOTE_FBID))) {\n return [\"\\u003Cspan class=\\\"emoticon_text\\\" aria-hidden=\\\"true\\\"\\u003E\",r.text,\"\\u003C/span\\u003E\",g.create(\"span\", {\n }, g.create(\"img\", {\n alt: r.text,\n className: \"emoticon emoticon_custom\",\n src: ((((((window.JSBNG__location.protocol + \"//graph.facebook.com/\")) + encodeURIComponent(r.value))) + \"/picture\"))\n })).innerHTML,];\n }\n \n ;\n ;\n })).join(\"\");\n };\n});\n__d(\"SupportedEmoji\", [\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\");\n e.exports = {\n utf16Regex: /[\\u203C\\u2049\\u2100-\\u21FF\\u2300-\\u27FF\\u2900-\\u29FF\\u2B00-\\u2BFF\\u3000-\\u30FF\\u3200-\\u32FF]|\\uD83C[\\uDC00-\\uDFFF]|\\uD83D[\\uDC00-\\uDEFF]/,\n emoji: {\n 127744: \"_2b_\",\n 127746: \"_2c0\",\n 127754: \"_2c1\",\n 127769: \"_2c2\",\n 127775: \"_2c3\",\n 127793: \"_2c4\",\n 127796: \"_2c5\",\n 127797: \"_2c6\",\n 127799: \"_2c7\",\n 127800: \"_2c8\",\n 127801: \"_2c9\",\n 127802: \"_2ca\",\n 127803: \"_2cb\",\n 127806: \"_2cc\",\n 127808: \"_2cd\",\n 127809: \"_2ce\",\n 127810: \"_2cf\",\n 127811: \"_2cg\",\n 127818: \"_2ch\",\n 127822: \"_2ci\",\n 127827: \"_2cj\",\n 127828: \"_2ck\",\n 127864: \"_2cl\",\n 127866: \"_2cm\",\n 127873: \"_2cn\",\n 127875: \"_2co\",\n 127876: \"_2cp\",\n 127877: \"_2cq\",\n 127880: \"_2cr\",\n 127881: \"_2cs\",\n 127885: \"_2ct\",\n 127886: \"_2cu\",\n 127887: \"_2cv\",\n 127888: \"_2cw\",\n 127891: \"_2cx\",\n 127925: \"_2cy\",\n 127926: \"_2cz\",\n 127932: \"_2c-\",\n 128013: \"_2c_\",\n 128014: \"_2d0\",\n 128017: \"_2d1\",\n 128018: \"_2d2\",\n 128020: \"_2d3\",\n 128023: \"_2d4\",\n 128024: \"_2d5\",\n 128025: \"_2d6\",\n 128026: \"_2d7\",\n 128027: \"_2d8\",\n 128031: \"_2d9\",\n 128032: \"_2da\",\n 128033: \"_2db\",\n 128037: \"_2dc\",\n 128038: \"_2dd\",\n 128039: \"_2de\",\n 128040: \"_2df\",\n 128041: \"_2dg\",\n 128043: \"_2dh\",\n 128044: \"_2di\",\n 128045: \"_2dj\",\n 128046: \"_2dk\",\n 128047: \"_2dl\",\n 128048: \"_2dm\",\n 128049: \"_2dn\",\n 128051: \"_2do\",\n 128052: \"_2dp\",\n 128053: \"_2dq\",\n 128054: \"_491\",\n 128055: \"_2dr\",\n 128056: \"_2ds\",\n 128057: \"_2dt\",\n 128058: \"_2du\",\n 128059: \"_2dv\",\n 128062: \"_2dw\",\n 128064: \"_2dx\",\n 128066: \"_2dy\",\n 128067: \"_2dz\",\n 128068: \"_2d-\",\n 128069: \"_2d_\",\n 128070: \"_2e0\",\n 128071: \"_2e1\",\n 128072: \"_2e2\",\n 128073: \"_2e3\",\n 128074: \"_2e4\",\n 128075: \"_2e5\",\n 128076: \"_2e6\",\n 128077: \"_2e7\",\n 128078: \"_2e8\",\n 128079: \"_2e9\",\n 128080: \"_2ea\",\n 128102: \"_2eb\",\n 128103: \"_2ec\",\n 128104: \"_2ed\",\n 128105: \"_2ee\",\n 128107: \"_2ef\",\n 128110: \"_2eg\",\n 128111: \"_2eh\",\n 128113: \"_2ei\",\n 128114: \"_2ej\",\n 128115: \"_2ek\",\n 128116: \"_2el\",\n 128117: \"_2em\",\n 128118: \"_2en\",\n 128119: \"_2eo\",\n 128120: \"_2ep\",\n 128123: \"_2eq\",\n 128124: \"_2er\",\n 128125: \"_2es\",\n 128126: \"_2et\",\n 128127: \"_2eu\",\n 128128: \"_2ev\",\n 128130: \"_2ew\",\n 128131: \"_2ex\",\n 128133: \"_2ey\",\n 128139: \"_2ez\",\n 128143: \"_2e-\",\n 128144: \"_2e_\",\n 128145: \"_2f0\",\n 128147: \"_2f1\",\n 128148: \"_2f2\",\n 128150: \"_2f3\",\n 128151: \"_2f4\",\n 128152: \"_2f5\",\n 128153: \"_2f6\",\n 128154: \"_2f7\",\n 128155: \"_2f8\",\n 128156: \"_2f9\",\n 128157: \"_2fa\",\n 128162: \"_2fb\",\n 128164: \"_2fc\",\n 128166: \"_2fd\",\n 128168: \"_2fe\",\n 128169: \"_2ff\",\n 128170: \"_2fg\",\n 128187: \"_2fh\",\n 128189: \"_2fi\",\n 128190: \"_2fj\",\n 128191: \"_2fk\",\n 128192: \"_2fl\",\n 128222: \"_2fm\",\n 128224: \"_2fn\",\n 128241: \"_2fo\",\n 128242: \"_2fp\",\n 128250: \"_2fq\",\n 128276: \"_2fr\",\n 128293: \"_492\",\n 128513: \"_2fs\",\n 128514: \"_2ft\",\n 128515: \"_2fu\",\n 128516: \"_2fv\",\n 128518: \"_2fw\",\n 128521: \"_2fx\",\n 128523: \"_2fy\",\n 128524: \"_2fz\",\n 128525: \"_2f-\",\n 128527: \"_2f_\",\n 128530: \"_2g0\",\n 128531: \"_2g1\",\n 128532: \"_2g2\",\n 128534: \"_2g3\",\n 128536: \"_2g4\",\n 128538: \"_2g5\",\n 128540: \"_2g6\",\n 128541: \"_2g7\",\n 128542: \"_2g8\",\n 128544: \"_2g9\",\n 128545: \"_2ga\",\n 128546: \"_2gb\",\n 128547: \"_2gc\",\n 128548: \"_2gd\",\n 128549: \"_2ge\",\n 128552: \"_2gf\",\n 128553: \"_2gg\",\n 128554: \"_2gh\",\n 128555: \"_2gi\",\n 128557: \"_2gj\",\n 128560: \"_2gk\",\n 128561: \"_2gl\",\n 128562: \"_2gm\",\n 128563: \"_2gn\",\n 128565: \"_2go\",\n 128567: \"_2gp\",\n 128568: \"_2gq\",\n 128569: \"_2gr\",\n 128570: \"_2gs\",\n 128571: \"_2gt\",\n 128572: \"_2gu\",\n 128573: \"_2gv\",\n 128575: \"_2gw\",\n 128576: \"_2gx\",\n 128587: \"_2gy\",\n 128588: \"_2gz\",\n 128589: \"_2g-\",\n 128591: \"_2g_\",\n 9757: \"_2h0\",\n 9786: \"_2h1\",\n 9889: \"_2h2\",\n 9924: \"_2h3\",\n 9994: \"_2h4\",\n 9995: \"_2h5\",\n 9996: \"_2h6\",\n 9728: \"_2h7\",\n 9729: \"_2h8\",\n 9748: \"_2h9\",\n 9749: \"_2ha\",\n 10024: \"_2hb\",\n 10084: \"_2hc\"\n }\n };\n});\n__d(\"Utf16\", [], function(a, b, c, d, e, f) {\n var g = {\n decode: function(h) {\n switch (h.length) {\n case 1:\n return h.charCodeAt(0);\n case 2:\n return ((((65536 | ((((h.charCodeAt(0) - 55296)) * 1024)))) | ((h.charCodeAt(1) - 56320))));\n };\n ;\n },\n encode: function(h) {\n if (((h < 65536))) {\n return String.fromCharCode(h);\n }\n else return ((String.fromCharCode(((55296 + ((((h - 65536)) >> 10))))) + String.fromCharCode(((56320 + ((h % 1024)))))))\n ;\n }\n };\n e.exports = g;\n});\n__d(\"Emoji\", [\"cx\",\"DOM\",\"Emote\",\"SupportedEmoji\",\"htmlize\",\"Utf16\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\"), h = b(\"DOM\"), i = b(\"Emote\"), j = b(\"SupportedEmoji\"), k = b(\"htmlize\"), l = b(\"Utf16\"), m = 40, n = e.exports = {\n htmlEmojiAndEmote: function(o, p) {\n return n.htmlEmoji(o, function(q) {\n return i.htmlEmote(q, p);\n });\n },\n htmlEmoji: function(o, p) {\n if (((typeof p != \"function\"))) {\n p = k;\n }\n ;\n ;\n var q = o, r = [], s = m;\n while (s--) {\n var t = j.utf16Regex.exec(q);\n if (((!t || !t.length))) {\n break;\n }\n ;\n ;\n var u = t[0], v = t.index;\n r.push(p(q.substring(0, v)));\n var w = l.decode(u);\n if (j.emoji[w]) {\n var x = ((((\"_1az _1a-\" + \" \")) + j.emoji[w])), y = h.create(\"span\", {\n className: x\n });\n r.push(h.create(\"span\", {\n }, y).innerHTML);\n }\n else r.push(p(u));\n ;\n ;\n q = q.substring(((v + u.length)));\n };\n ;\n r.push(p(q));\n return r.join(\"\");\n }\n };\n});\n__d(\"TextWithEmoticons.react\", [\"Emoji\",\"Emote\",\"React\",], function(a, b, c, d, e, f) {\n var g = b(\"Emoji\"), h = b(\"Emote\"), i = b(\"React\"), j = i.createClass({\n displayName: \"ReactTextWithEmoticons\",\n render: function() {\n if (((!this.props.renderEmoticons && !this.props.renderEmoji))) {\n return i.DOM.span(null, this.props.text);\n }\n ;\n ;\n var k;\n if (((this.props.renderEmoticons && this.props.renderEmoji))) {\n k = g.htmlEmoji(this.props.text, h.htmlEmoteWithoutFBID);\n }\n else if (this.props.renderEmoticons) {\n k = h.htmlEmoteWithoutFBID(this.props.text);\n }\n else k = g.htmlEmoji(this.props.text);\n \n ;\n ;\n return i.DOM.span({\n dangerouslySetInnerHTML: {\n __html: k\n }\n });\n }\n });\n e.exports = j;\n});\n__d(\"TextWithEntities.react\", [\"Link.react\",\"React\",\"TextWithEmoticons.react\",], function(a, b, c, d, e, f) {\n var g = b(\"Link.react\"), h = b(\"React\"), i = b(\"TextWithEmoticons.react\");\n function j(o) {\n return (o).replace(/<3\\b|&hearts;/g, \"\\u2665\");\n };\n;\n function k(o, p) {\n return (g({\n href: p.entities[0]\n }, o));\n };\n;\n function l(o, p) {\n return ((o.offset - p.offset));\n };\n;\n var m = /(\\r\\n|[\\r\\n])/, n = h.createClass({\n displayName: \"ReactTextWithEntities\",\n _formatStandardText: function(o) {\n var p = o.split(m), q = [];\n for (var r = 0; ((r < p.length)); r++) {\n var s = p[r];\n if (s) {\n if (m.test(s)) {\n q.push(h.DOM.br(null));\n }\n else if (((this.props.renderEmoticons || this.props.renderEmoji))) {\n q.push(i({\n text: s,\n renderEmoticons: this.props.renderEmoticons,\n renderEmoji: this.props.renderEmoji\n }));\n }\n else q.push(j(s));\n \n ;\n }\n ;\n ;\n };\n ;\n return q;\n },\n render: function() {\n var o = 0, p = this.props.ranges, q = this.props.aggregatedRanges, r = this.props.text, s = null;\n if (p) {\n s = ((q ? p.concat(q) : p.slice()));\n }\n else if (q) {\n s = q.slice();\n }\n \n ;\n ;\n if (s) {\n s.sort(l);\n }\n ;\n ;\n var t = [], u = ((s ? s.length : 0));\n for (var v = 0, w = u; ((v < w)); v++) {\n var x = s[v];\n if (((x.offset < o))) {\n continue;\n }\n ;\n ;\n if (((x.offset > o))) {\n t = t.concat(this._formatStandardText(r.substring(o, x.offset)));\n }\n ;\n ;\n var y = r.substr(x.offset, x.length);\n t = t.concat([((this.props.interpolator ? this.props.interpolator(y, x) : k(y, x))),]);\n o = ((x.offset + x.length));\n };\n ;\n if (((r.length > o))) {\n t = t.concat(this._formatStandardText(r.substr(o)));\n }\n ;\n ;\n return h.DOM.span(null, t);\n }\n });\n e.exports = n;\n});\n__d(\"SeeMore.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n displayName: \"SeeMore\",\n getInitialState: function() {\n return {\n isCollapsed: true\n };\n },\n handleClick: function() {\n this.setState({\n isCollapsed: false\n });\n },\n render: function() {\n var j = this.state.isCollapsed, k = ((!j ? null : g.DOM.span(null, \"...\"))), l = this.props.children[0], m = ((j ? null : g.DOM.span(null, this.props.children[1]))), n = ((!j ? null : g.DOM.a({\n className: \"SeeMoreLink fss\",\n onClick: this.handleClick,\n href: \"#\",\n role: \"button\"\n }, \"See More\")));\n return (g.DOM.span({\n className: this.props.className\n }, l, k, n, m));\n }\n });\n e.exports = i;\n});\n__d(\"TruncatedTextWithEntities.react\", [\"React\",\"TextWithEntities.react\",\"SeeMore.react\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"TextWithEntities.react\"), i = b(\"SeeMore.react\");\n function j(n, o) {\n var p = ((n.offset + n.length));\n return ((((o > n.offset)) && ((o < p))));\n };\n;\n function k(n, o) {\n for (var p = 0; ((p < n.length)); p++) {\n var q = n[p];\n if (j(q, o)) {\n return q.offset;\n }\n ;\n ;\n };\n ;\n return o;\n };\n;\n var l = function(n, o, p) {\n var q = [], r = [], s = k(o, p);\n for (var t = 0; ((t < o.length)); t++) {\n var u = o[t];\n if (((u.offset < s))) {\n q.push(u);\n }\n else r.push({\n offset: ((u.offset - s)),\n length: u.length,\n entities: u.entities\n });\n ;\n ;\n };\n ;\n return {\n first: {\n ranges: q,\n text: n.substr(0, s)\n },\n second: {\n ranges: r,\n text: n.substr(s)\n }\n };\n }, m = g.createClass({\n displayName: \"TruncatedTextWithEntities\",\n render: function() {\n var n = this.props.maxLines, o = this.props.maxLength, p = ((this.props.truncationPercent || 175898)), q = Math.floor(((p * o))), r = ((this.props.text || \"\")), s = ((this.props.ranges || [])), t = r.split(\"\\u000a\"), u = ((t.length - 1)), v = ((o && ((r.length > o)))), w = ((n && ((u > n))));\n if (w) {\n q = Math.min(t.slice(0, n).join(\"\\u000a\").length, q);\n }\n ;\n ;\n if (((v || w))) {\n var x = l(r, s, q);\n return (g.DOM.span({\n \"data-ft\": this.props[\"data-ft\"],\n dir: this.props.dir\n }, i({\n className: this.props.className\n }, h({\n interpolator: this.props.interpolator,\n ranges: x.first.ranges,\n text: x.first.text,\n renderEmoticons: this.props.renderEmoticons,\n renderEmoji: this.props.renderEmoji\n }), h({\n interpolator: this.props.interpolator,\n ranges: x.second.ranges,\n text: x.second.text,\n renderEmoticons: this.props.renderEmoticons,\n renderEmoji: this.props.renderEmoji\n }))));\n }\n else return (g.DOM.span({\n \"data-ft\": this.props[\"data-ft\"],\n dir: this.props.dir\n }, h({\n className: this.props.className,\n interpolator: this.props.interpolator,\n ranges: s,\n text: r,\n renderEmoticons: this.props.renderEmoticons,\n renderEmoji: this.props.renderEmoji\n })))\n ;\n }\n });\n e.exports = m;\n});\n__d(\"UFICommentAttachment.react\", [\"DOM\",\"React\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"React\"), i = h.createClass({\n displayName: \"UFICommentAttachment\",\n _attachmentFromCommentData: function(j) {\n return ((j.photo_comment || j.attachment));\n },\n componentDidMount: function(j) {\n var k = this._attachmentFromCommentData(this.props.comment);\n if (k) {\n this.renderAttachment(k);\n }\n ;\n ;\n },\n shouldComponentUpdate: function(j, k) {\n var l = this._attachmentFromCommentData(this.props.comment), m = this._attachmentFromCommentData(j.comment);\n if (((!l && !m))) {\n return false;\n }\n ;\n ;\n if (((((!l || !m)) || ((l.markup != m.markup))))) {\n return true;\n }\n else return false\n ;\n },\n componentDidUpdate: function(j) {\n var k = this._attachmentFromCommentData(this.props.comment);\n this.renderAttachment(k);\n },\n renderAttachment: function(j) {\n if (((j && this.refs.contents))) {\n g.setContent(this.refs.contents.getDOMNode(), j.markup);\n }\n ;\n ;\n },\n render: function() {\n if (this._attachmentFromCommentData(this.props.comment)) {\n return h.DOM.div({\n ref: \"contents\"\n });\n }\n else return h.DOM.span(null)\n ;\n }\n });\n e.exports = i;\n});\n__d(\"UFIReplyLink.react\", [\"React\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"tx\"), i = g.createClass({\n displayName: \"UFIReplyLink\",\n render: function() {\n return (g.DOM.a({\n className: \"UFIReplyLink\",\n href: \"#\",\n onClick: this.props.onClick\n }, \"Reply\"));\n }\n });\n e.exports = i;\n});\n__d(\"UFISpamCount\", [\"UFISpamCountImpl\",], function(a, b, c, d, e, f) {\n e.exports = ((b(\"UFISpamCountImpl\").module || {\n enabled: false\n }));\n});\n__d(\"UFIComment.react\", [\"function-extensions\",\"Bootloader\",\"CloseButton.react\",\"Env\",\"Focus\",\"HovercardLink\",\"HovercardLinkInterpolator\",\"LinkButton\",\"NumberFormat\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"Timestamp.react\",\"TrackingNodes\",\"TruncatedTextWithEntities.react\",\"UFIClassNames\",\"UFICommentAttachment.react\",\"UFIConfig\",\"UFIConstants\",\"UFIImageBlock.react\",\"UFIInstanceState\",\"UFIReplyLink.react\",\"UFISpamCount\",\"URI\",\"cx\",\"keyMirror\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"Bootloader\"), h = b(\"CloseButton.react\"), i = b(\"Env\"), j = b(\"Focus\"), k = b(\"HovercardLink\"), l = b(\"HovercardLinkInterpolator\"), m = b(\"LinkButton\"), n = b(\"NumberFormat\"), o = b(\"ProfileBrowserLink\"), p = b(\"ProfileBrowserTypes\"), q = b(\"React\"), r = b(\"Timestamp.react\"), s = b(\"TrackingNodes\"), t = b(\"TruncatedTextWithEntities.react\"), u = b(\"UFIClassNames\"), v = b(\"UFICommentAttachment.react\"), w = b(\"UFIConfig\"), x = b(\"UFIConstants\"), y = b(\"UFIImageBlock.react\"), z = b(\"UFIInstanceState\"), aa = b(\"UFIReplyLink.react\"), ba = b(\"UFISpamCount\"), ca = b(\"URI\"), da = b(\"cx\"), ea = b(\"keyMirror\"), fa = b(\"joinClasses\"), ga = b(\"tx\"), ha = x.UFIStatus, ia = \" \\u00b7 \", ja = ea({\n edit: true,\n hide: true,\n remove: true\n }), ka = \"UFICommentBody\", la = \"UFICommentActorName\", ma = \"UFICommentNotSpamLink\", na = \"fsm fwn fcg UFICommentActions\", oa = \"UFIDeletedMessageIcon\", pa = \"UFIDeletedMessage\", qa = \"UFIFailureMessageIcon\", ra = \"UFIFailureMessage\", sa = \"UFICommentLikeButton\", ta = \"UFICommentLikeIcon\", ua = \"UFITranslateLink\", va = \"UFITranslatedText\", wa = \"uiLinkSubtle\", xa = \"stat_elem\", ya = \"pls\", za = \"fcg\", ab = 27, bb = null, cb = function(kb, lb) {\n var mb = new ca(\"/ajax/like/tooltip.php\").setQueryData({\n comment_fbid: kb.fbid,\n comment_from: kb.author,\n cache_buster: ((kb.likeconfirmhash || 0))\n });\n if (lb) {\n mb.addQueryData({\n viewas: lb\n });\n }\n ;\n ;\n return mb;\n }, db = function(kb) {\n var lb = kb.JSBNG__status;\n return ((((lb === ha.FAILED_ADD)) || ((lb === ha.FAILED_EDIT))));\n };\n function eb(kb) {\n return ((((((kb.commenterIsFOF !== undefined)) && ((kb.userIsMinor !== undefined)))) && ((kb.reportLink !== undefined))));\n };\n;\n var fb = q.createClass({\n displayName: \"UFICommentLikeCount\",\n render: function() {\n var kb = this.props.comment, lb = n.formatIntegerWithDelimiter(((kb.likecount || 0)), this.props.contextArgs.numberdelimiter), mb = p.LIKES, nb = {\n id: kb.fbid\n }, ob = cb(this.props.comment, this.props.viewas), pb = q.DOM.i({\n className: ta\n }), qb = q.DOM.span(null, lb);\n return (q.DOM.a({\n className: sa,\n role: \"button\",\n rel: \"dialog\",\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"data-tooltip-uri\": ob.toString(),\n ajaxify: o.constructDialogURI(mb, nb).toString(),\n href: o.constructPageURI(mb, nb).toString()\n }, pb, qb));\n }\n }), gb = q.createClass({\n displayName: \"UFICommentActions\",\n render: function() {\n var kb = this.props, lb = kb.comment, mb = kb.feedback, nb = kb.markedAsSpamHere, ob = ((lb.JSBNG__status === ha.SPAM_DISPLAY)), pb = this.props.showReplyLink, qb = this.props.hideAsSpamForPageAdmin, rb, sb, tb, ub, vb, wb, xb = ((!lb.islocal && ((lb.JSBNG__status !== ha.LIVE_DELETED))));\n if (xb) {\n if (((ob && !nb))) {\n if (kb.viewerCanMarkNotSpam) {\n rb = q.DOM.a({\n onClick: kb.onMarkAsNotSpam,\n className: ma,\n href: \"#\",\n role: \"button\"\n }, \"Unhide\");\n }\n ;\n ;\n if (((((((qb && mb.isthreaded)) && mb.cancomment)) && pb))) {\n vb = aa({\n comment: lb,\n onClick: kb.onCommentReply,\n contextArgs: kb.contextArgs\n });\n }\n ;\n ;\n }\n else {\n if (mb.viewercanlike) {\n var yb = s.getTrackingInfo(((lb.hasviewerliked ? s.types.UNLIKE_LINK : s.types.LIKE_LINK))), zb = ((lb.hasviewerliked ? \"Unlike this comment\" : \"Like this comment\"));\n sb = q.DOM.a({\n className: \"UFILikeLink\",\n href: \"#\",\n role: \"button\",\n onClick: kb.onCommentLikeToggle,\n \"data-ft\": yb,\n title: zb\n }, ((lb.hasviewerliked ? \"Unlike\" : \"Like\")));\n }\n ;\n ;\n if (((((mb.isthreaded && mb.cancomment)) && pb))) {\n vb = aa({\n comment: lb,\n onClick: kb.onCommentReply,\n contextArgs: kb.contextArgs\n });\n }\n ;\n ;\n if (((lb.likecount > 0))) {\n tb = fb({\n comment: lb,\n viewas: this.props.viewas,\n contextArgs: this.props.contextArgs\n });\n }\n ;\n ;\n if (((lb.spamcount && ba.enabled))) {\n ub = ba({\n count: lb.spamcount\n });\n }\n ;\n ;\n }\n ;\n ;\n if (((lb.attachment && lb.canremove))) {\n wb = q.DOM.a({\n onClick: kb.onPreviewRemove,\n href: \"#\",\n role: \"button\"\n }, \"Remove Preview\");\n }\n ;\n ;\n }\n ;\n ;\n var ac = hb({\n comment: lb,\n onRetrySubmit: kb.onRetrySubmit,\n showPermalink: kb.showPermalink\n }), bc;\n if (kb.contextArgs.entstream) {\n bc = [ac,sb,tb,vb,ub,rb,wb,];\n }\n else if (mb.isthreaded) {\n bc = [sb,vb,rb,wb,tb,ub,ac,];\n }\n else bc = [ac,sb,tb,ub,vb,rb,wb,];\n \n ;\n ;\n if (((lb.JSBNG__status === ha.LIVE_DELETED))) {\n var cc = q.DOM.span({\n className: pa\n }, q.DOM.i({\n className: oa,\n \"data-hover\": \"tooltip\",\n \"aria-label\": \"Comment deleted\"\n }));\n bc.push(cc);\n }\n ;\n ;\n var dc = [];\n for (var ec = 0; ((ec < bc.length)); ec++) {\n if (bc[ec]) {\n dc.push(ia);\n dc.push(bc[ec]);\n }\n ;\n ;\n };\n ;\n dc.shift();\n return (q.DOM.div({\n className: na\n }, dc));\n }\n }), hb = q.createClass({\n displayName: \"UFICommentMetadata\",\n render: function() {\n var kb = this.props.comment, lb = this.props.onRetrySubmit, mb, nb;\n if (db(kb)) {\n mb = [q.DOM.span({\n className: ra\n }, q.DOM.i({\n className: qa\n }), \"Unable to post comment.\"),((((kb.allowRetry && lb)) ? [\" \",q.DOM.a({\n onClick: lb,\n href: \"#\",\n role: \"button\"\n }, \"Try Again\"),] : null)),];\n }\n else {\n var ob = ((this.props.showPermalink ? kb.permalink : null)), pb = s.getTrackingInfo(s.types.SOURCE), qb = q.DOM.a({\n className: wa,\n href: ob,\n \"data-ft\": pb\n }, r({\n time: kb.timestamp.time,\n text: kb.timestamp.text,\n verbose: kb.timestamp.verbose\n })), rb;\n switch (kb.source) {\n case x.UFISourceType.MOBILE:\n rb = q.DOM.a({\n className: wa,\n href: new ca(\"/mobile/\").setSubdomain(\"www\").toString()\n }, \"mobile\");\n break;\n case x.UFISourceType.SMS:\n rb = q.DOM.a({\n className: wa,\n href: new ca(\"/mobile/?v=texts\").setSubdomain(\"www\").toString()\n }, \"text message\");\n break;\n case x.UFISourceType.EMAIL:\n rb = m({\n subtle: true,\n label: \"email\",\n inputType: \"submit\",\n JSBNG__name: \"email_explain\",\n value: true,\n className: xa\n });\n break;\n };\n ;\n nb = ((rb ? ga._(\"{time} via {source}\", {\n time: qb,\n source: rb\n }) : qb));\n }\n ;\n ;\n var sb = null;\n if (kb.originalTimestamp) {\n var tb = new ca(\"/ajax/edits/browser/comment\").addQueryData({\n comment_token: kb.id\n }).toString();\n sb = [ia,q.DOM.a({\n ref: \"EditLink\",\n href: \"#\",\n role: \"button\",\n rel: \"dialog\",\n className: \"uiLinkSubtle\",\n ajaxify: tb,\n \"data-hover\": \"tooltip\",\n \"aria-label\": \"Show edit history\",\n title: \"Show edit history\"\n }, \"Edited\"),];\n }\n ;\n ;\n return (q.DOM.span(null, nb, mb, sb));\n },\n componentWillUpdate: function(kb) {\n var lb = this.props.comment, mb = kb.comment;\n if (((!lb.editnux && !!mb.editnux))) {\n g.loadModules([\"LegacyContextualDialog\",], function(nb) {\n var ob = new nb();\n ob.init(mb.editnux).setContext(this.refs.EditLink.getDOMNode()).setWidth(300).setPosition(\"below\").show();\n }.bind(this));\n }\n ;\n ;\n }\n }), ib = q.createClass({\n displayName: \"UFISocialContext\",\n render: function() {\n var kb = this.props.topMutualFriend, lb = this.props.otherMutualCount, mb = this.props.commentAuthor, nb = k.constructEndpoint(kb).toString(), ob = q.DOM.a({\n href: kb.uri,\n \"data-hovercard\": nb\n }, kb.JSBNG__name), pb = ((mb.JSBNG__name.length + kb.JSBNG__name.length)), qb;\n if (((lb === 0))) {\n qb = ga._(\"Friends with {name}\", {\n JSBNG__name: ob\n });\n }\n else if (((pb < ab))) {\n var rb;\n if (((lb == 1))) {\n rb = \"1 other\";\n }\n else rb = ga._(\"{count} others\", {\n count: lb\n });\n ;\n ;\n qb = ga._(\"Friends with {name} and {others}\", {\n JSBNG__name: ob,\n others: this.getOthersLink(rb, mb, kb)\n });\n }\n else {\n var sb = ga._(\"{count} mutual friends\", {\n count: ((lb + 1))\n });\n qb = this.getOthersLink(sb, mb);\n }\n \n ;\n ;\n return (q.DOM.span({\n className: \"UFICommentSocialContext\"\n }, ia, qb));\n },\n getOthersLink: function(kb, lb, mb) {\n var nb = p.MUTUAL_FRIENDS, ob = {\n uid: lb.id\n }, pb = new ca(\"/ajax/mutual_friends/tooltip.php\").setQueryData({\n friend_id: lb.id\n });\n if (mb) {\n pb.addQueryData({\n exclude_id: mb.id\n });\n }\n ;\n ;\n var qb = o.constructDialogURI(nb, ob).toString();\n return (q.DOM.a({\n rel: \"dialog\",\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"data-tooltip-uri\": pb.toString(),\n ajaxify: qb,\n href: o.constructPageURI(nb, ob).toString()\n }, kb));\n }\n }), jb = q.createClass({\n displayName: \"UFIComment\",\n getInitialState: function() {\n return {\n isHighlighting: this.props.comment.highlightcomment,\n wasHighlighted: this.props.comment.highlightcomment,\n markedAsSpamHere: false,\n oneClickRemovedHere: false,\n isInlinePageDeleted: false,\n isInlineBanned: false\n };\n },\n _onHideAsSpam: function(JSBNG__event) {\n this.props.onHideAsSpam(JSBNG__event);\n this.setState({\n markedAsSpamHere: true\n });\n },\n _onMarkAsNotSpam: function(JSBNG__event) {\n this.props.onMarkAsNotSpam(JSBNG__event);\n this.setState({\n markedAsSpamHere: false\n });\n },\n _onDeleteSpam: function(JSBNG__event) {\n this.props.onOneClickRemove(JSBNG__event);\n this.setState({\n isInlinePageDeleted: true\n });\n },\n _onUndoDeleteSpam: function(JSBNG__event) {\n this.props.onUndoOneClickRemove(JSBNG__event);\n this.setState({\n isInlinePageDeleted: false\n });\n },\n _onInlineBan: function(JSBNG__event) {\n this.props.onInlineBan(JSBNG__event);\n this.setState({\n isInlineBanned: true\n });\n },\n _onUndoInlineBan: function(JSBNG__event) {\n this.props.onUndoInlineBan(JSBNG__event);\n this.setState({\n isInlineBanned: false\n });\n },\n _onOneClickRemove: function(JSBNG__event) {\n this.props.onOneClickRemove(JSBNG__event);\n this.setState({\n oneClickRemovedHere: true\n });\n },\n _onUndoOneClickRemove: function(JSBNG__event) {\n this.props.onUndoOneClickRemove(JSBNG__event);\n this.setState({\n oneClickRemovedHere: false\n });\n },\n _onAction: function(JSBNG__event, kb) {\n if (((kb === ja.remove))) {\n this.props.onRemove(JSBNG__event);\n }\n else if (((kb === ja.edit))) {\n this.props.onEdit(JSBNG__event);\n }\n else if (((kb === ja.hide))) {\n this._onHideAsSpam(JSBNG__event);\n }\n \n \n ;\n ;\n },\n _createRemoveReportMenu: function(JSBNG__event) {\n if (this._removeReportMenu) {\n return;\n }\n ;\n ;\n var kb = [{\n label: \"Delete Comment...\",\n value: ja.remove\n },{\n label: \"Hide Comment\",\n value: ja.hide\n },];\n if (JSBNG__event.persist) {\n JSBNG__event.persist();\n }\n else JSBNG__event = JSBNG__event.constructor.persistentCloneOf(JSBNG__event);\n ;\n ;\n g.loadModules([\"LegacyMenuUtils\",], function(lb) {\n this._removeReportMenu = lb.createAndShowPopoverMenu(JSBNG__event.target, kb, this._onAction.bind(this, JSBNG__event));\n }.bind(this));\n },\n _createEditDeleteMenu: function(JSBNG__event) {\n if (JSBNG__event.persist) {\n JSBNG__event.persist();\n }\n else JSBNG__event = JSBNG__event.constructor.persistentCloneOf(JSBNG__event);\n ;\n ;\n if (this._editDeleteMenu) {\n return;\n }\n ;\n ;\n var kb = [{\n label: \"Edit...\",\n value: ja.edit\n },{\n label: \"Delete...\",\n value: ja.remove\n },];\n g.loadModules([\"LegacyMenuUtils\",], function(lb) {\n this._editDeleteMenu = lb.createAndShowPopoverMenu(JSBNG__event.target, kb, this._onAction.bind(this, JSBNG__event));\n }.bind(this));\n },\n _renderCloseButton: function() {\n var kb = this.props.comment, lb = this.props.feedback, mb = null, nb = null, ob = false;\n if (((kb.canremove && !this.props.hideAsSpamForPageAdmin))) {\n if (this.props.viewerIsAuthor) {\n if (kb.canedit) {\n nb = \"Edit or Delete\";\n mb = this._createEditDeleteMenu;\n ob = true;\n }\n else {\n nb = \"Remove\";\n mb = this.props.onRemove;\n }\n ;\n ;\n }\n else if (lb.canremoveall) {\n if (this.props.showRemoveReportMenu) {\n nb = \"Remove or Report\";\n mb = this._createRemoveReportMenu;\n }\n else {\n nb = \"Remove\";\n mb = this._onOneClickRemove;\n }\n ;\n }\n \n ;\n ;\n }\n else if (kb.canreport) {\n nb = \"Hide\";\n mb = this._onHideAsSpam;\n }\n \n ;\n ;\n var pb = (((((\"UFICommentCloseButton\") + ((ob ? ((\" \" + \"UFIEditButton\")) : \"\")))) + ((((mb === null)) ? ((\" \" + \"hdn\")) : \"\"))));\n return (h({\n onClick: mb,\n tooltip: nb,\n className: pb\n }));\n },\n componentDidMount: function(kb) {\n var lb = this.props.comment.ufiinstanceid;\n if (this.state.isHighlighting) {\n g.loadModules([\"UFIScrollHighlight\",], function(nb) {\n nb.actOn.curry(kb).defer();\n });\n this.setState({\n isHighlighting: false\n });\n }\n ;\n ;\n var mb = z.getKeyForInstance(lb, \"autofocus\");\n if (mb) {\n j.setWithoutOutline(this.refs.AuthorName.getDOMNode());\n z.updateState(lb, \"autofocus\", false);\n }\n ;\n ;\n },\n shouldComponentUpdate: function(kb) {\n var lb = this.props;\n return ((((((((((((((((((((((kb.comment !== lb.comment)) || ((kb.showReplyLink !== lb.showReplyLink)))) || ((kb.showReplies !== lb.showReplies)))) || ((kb.isFirst !== lb.isFirst)))) || ((kb.isLast !== lb.isLast)))) || ((kb.isFirstCommentComponent !== lb.isFirstCommentComponent)))) || ((kb.isLastCommentComponent !== lb.isLastCommentComponent)))) || ((kb.isFirstComponent !== lb.isFirstComponent)))) || ((kb.isLastComponent !== lb.isLastComponent)))) || ((kb.isFeaturedComment !== lb.isFeaturedComment)))) || ((kb.hasPartialBorder !== lb.hasPartialBorder))));\n },\n render: function() {\n var kb = this.props.comment, lb = this.props.feedback, mb = ((kb.JSBNG__status === ha.DELETED)), nb = ((kb.JSBNG__status === ha.LIVE_DELETED)), ob = ((kb.JSBNG__status === ha.SPAM_DISPLAY)), pb = ((kb.JSBNG__status === ha.PENDING_UNDO_DELETE)), qb = this.state.markedAsSpamHere, rb = this.state.oneClickRemovedHere, sb = this.state.isInlinePageDeleted, tb = this.props.hideAsSpamForPageAdmin, ub = this.state.isInlineBanned, vb = eb(kb), wb = ((!kb.JSBNG__status && ((kb.isunseen || kb.islocal))));\n if (((!kb.JSBNG__status && lb.lastseentime))) {\n var xb = ((kb.originalTimestamp || kb.timestamp.time));\n wb = ((wb || ((xb > lb.lastseentime))));\n }\n ;\n ;\n var yb = this.props.contextArgs.markedcomments;\n if (((yb && yb[kb.legacyid]))) {\n wb = true;\n }\n ;\n ;\n if (vb) {\n if (bb) {\n var zb, ac = null, bc = null, cc = null;\n if (tb) {\n bc = ((ub ? this._onUndoInlineBan : this._onInlineBan));\n if (sb) {\n ac = this._onUndoDeleteSpam;\n var dc = q.DOM.a({\n href: \"#\",\n onClick: ac\n }, \"Undo\");\n zb = ga._(\"You've deleted this comment so no one can see it. {undo}.\", {\n undo: dc\n });\n }\n else if (qb) {\n zb = \"Now this is only visible to the person who wrote it and their friends.\";\n cc = this._onDeleteSpam;\n ac = this._onMarkAsNotSpam;\n }\n \n ;\n ;\n }\n else if (qb) {\n zb = \"This comment has been hidden.\";\n cc = this._onDeleteSpam;\n ac = this._onMarkAsNotSpam;\n }\n else if (rb) {\n zb = \"This comment has been removed.\";\n ac = this._onUndoOneClickRemove;\n }\n \n \n ;\n ;\n if (zb) {\n return (q.DOM.li({\n className: fa(u.ROW, \"UFIHide\")\n }, bb({\n notice: zb,\n comment: this.props.comment,\n authorProfiles: this.props.authorProfiles,\n onUndo: ac,\n onBanAction: bc,\n onDeleteAction: cc,\n isInlineBanned: ub,\n hideAsSpamForPageAdmin: tb\n })));\n }\n ;\n ;\n }\n else g.loadModules([\"UFICommentRemovalControls.react\",], function(gc) {\n bb = gc;\n JSBNG__setTimeout(function() {\n this.forceUpdate();\n }.bind(this));\n }.bind(this));\n ;\n }\n ;\n ;\n var ec = fa(u.ROW, (((((((((((((((((((((((((\"UFIComment\") + ((db(kb) ? ((\" \" + \"UFICommentFailed\")) : \"\")))) + ((((((((mb || nb)) || ob)) || pb)) ? ((\" \" + \"UFITranslucentComment\")) : \"\")))) + ((this.state.isHighlighting ? ((\" \" + \"highlightComment\")) : \"\")))) + ((((mb && !rb)) ? ((\" \" + \"noDisplay\")) : \"\")))) + ((((this.props.isFirst && !this.props.isReply)) ? ((\" \" + \"UFIFirstComment\")) : \"\")))) + ((((this.props.isLast && !this.props.isReply)) ? ((\" \" + \"UFILastComment\")) : \"\")))) + ((this.props.isFirstCommentComponent ? ((\" \" + \"UFIFirstCommentComponent\")) : \"\")))) + ((this.props.isLastCommentComponent ? ((\" \" + \"UFILastCommentComponent\")) : \"\")))) + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\")))) + ((this.props.isFeatured ? ((\" \" + \"UFIFeaturedComment\")) : \"\")))) + ((((this.props.hasPartialBorder && !this.props.contextArgs.entstream)) ? ((\" \" + \"UFIPartialBorder\")) : \"\"))))), fc = this.renderComment();\n if (wb) {\n if (this.props.contextArgs.snowliftredesign) {\n fc = q.DOM.div({\n className: \"_5cis\"\n }, q.DOM.div({\n className: \"_5cit\"\n }), fc);\n }\n else if (((this.props.contextArgs.entstream && !this.props.isReply))) {\n fc = q.DOM.div({\n className: \"_52mp\"\n }, q.DOM.div({\n className: \"_52mq\"\n }), fc);\n }\n else ec = fa(ec, u.UNSEEN_ITEM);\n \n ;\n }\n ;\n ;\n return (q.DOM.li({\n className: ec,\n \"data-ft\": this.props[\"data-ft\"]\n }, fc));\n },\n renderComment: function() {\n var kb = this.props, lb = kb.comment, mb = kb.feedback, nb = kb.authorProfiles[lb.author], ob = ((lb.JSBNG__status === ha.SPAM_DISPLAY)), pb = ((lb.JSBNG__status === ha.LIVE_DELETED)), qb = !((ob || pb)), rb = ((mb.canremoveall || lb.hiddenbyviewer)), sb = null, tb = null;\n if (((((!kb.isLocallyComposed && !this.state.wasHighlighted)) && !lb.fromfetch))) {\n tb = x.commentTruncationLength;\n sb = x.commentTruncationMaxLines;\n }\n ;\n ;\n var ub = s.getTrackingInfo(s.types.SMALL_ACTOR_PHOTO), vb = s.getTrackingInfo(s.types.USER_NAME), wb = s.getTrackingInfo(s.types.USER_MESSAGE), xb = null, yb = null;\n if (((lb.istranslatable && ((lb.translatedtext === undefined))))) {\n xb = q.DOM.a({\n href: \"#\",\n role: \"button\",\n title: \"Translate this comment\",\n className: ua,\n onClick: kb.onCommentTranslate\n }, \"See Translation\");\n }\n ;\n ;\n if (lb.translatedtext) {\n var zb = new ca(\"http://bing.com/translator\").addQueryData({\n text: lb.body.text\n });\n yb = q.DOM.span({\n className: va\n }, lb.translatedtext, q.DOM.span({\n className: ya\n }, \" (\", q.DOM.a({\n href: zb.toString(),\n className: za\n }, \"Translated by Bing\"), \") \"));\n }\n ;\n ;\n var ac;\n if (((i.rtl && ((lb.body.dir === \"ltr\"))))) {\n ac = \"rtl\";\n }\n else if (((!i.rtl && ((lb.body.dir === \"rtl\"))))) {\n ac = \"ltr\";\n }\n \n ;\n ;\n var bc = k.constructEndpointWithLocation(nb, \"ufi\").toString(), cc = q.DOM.a({\n ref: \"AuthorName\",\n className: la,\n href: nb.uri,\n \"data-hovercard\": bc,\n \"data-ft\": vb,\n dir: ac\n }, nb.JSBNG__name), dc = function(ic, jc) {\n return l(ic, jc, \"_blank\", mb.grouporeventid, \"ufi\");\n }, ec = t({\n className: ka,\n interpolator: dc,\n ranges: lb.body.ranges,\n text: lb.body.text,\n truncationPercent: x.commentTruncationPercent,\n maxLength: tb,\n maxLines: sb,\n renderEmoticons: w.renderEmoticons,\n renderEmoji: w.renderEmoji,\n \"data-ft\": wb,\n dir: lb.body.dir\n }), fc;\n if (lb.socialcontext) {\n var gc = lb.socialcontext, hc = ib({\n topMutualFriend: kb.authorProfiles[gc.topmutualid],\n otherMutualCount: gc.othermutualcount,\n commentAuthor: nb\n });\n fc = [cc,hc,q.DOM.div(null, ec),];\n }\n else fc = [cc,\" \",ec,];\n ;\n ;\n return (y({\n spacing: \"medium\"\n }, q.DOM.a({\n href: nb.uri,\n \"data-hovercard\": bc,\n \"data-ft\": ub\n }, q.DOM.img({\n src: nb.thumbSrc,\n className: u.ACTOR_IMAGE,\n alt: \"\"\n })), q.DOM.div(null, q.DOM.div({\n className: \"UFICommentContent\"\n }, fc, xb, yb, v({\n comment: kb.comment\n })), gb({\n comment: lb,\n feedback: mb,\n onBlingBoxClick: kb.onBlingBoxClick,\n onCommentLikeToggle: kb.onCommentLikeToggle,\n onCommentReply: kb.onCommentReply,\n onPreviewRemove: kb.onPreviewRemove,\n onRetrySubmit: kb.onRetrySubmit,\n onMarkAsNotSpam: this._onMarkAsNotSpam,\n viewerCanMarkNotSpam: rb,\n viewas: kb.contextArgs.viewas,\n showPermalink: kb.showPermalink,\n showReplyLink: kb.showReplyLink,\n showReplies: kb.showReplies,\n contextArgs: kb.contextArgs,\n markedAsSpamHere: this.state.markedAsSpamHere,\n hideAsSpamForPageAdmin: kb.hideAsSpamForPageAdmin\n })), ((qb ? this._renderCloseButton() : null))));\n }\n });\n e.exports = jb;\n});\n__d(\"UFIContainer.react\", [\"React\",\"TrackingNodes\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"TrackingNodes\"), i = b(\"cx\"), j = g.createClass({\n displayName: \"UFIContainer\",\n render: function() {\n var k = null;\n if (this.props.hasNub) {\n k = g.DOM.li({\n className: \"UFIArrow\"\n }, g.DOM.i(null));\n }\n ;\n ;\n var l = ((((((((((((((!this.props.isReplyList ? \"UFIList\" : \"\")) + ((this.props.isReplyList ? ((\" \" + \"UFIReplyList\")) : \"\")))) + ((this.props.isParentLiveDeleted ? ((\" \" + \"UFITranslucentReplyList\")) : \"\")))) + ((this.props.isFirstCommentComponent ? ((\" \" + \"UFIFirstCommentComponent\")) : \"\")))) + ((this.props.isLastCommentComponent ? ((\" \" + \"UFILastCommentComponent\")) : \"\")))) + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))));\n return (g.DOM.ul({\n className: l,\n \"data-ft\": h.getTrackingInfo(h.types.UFI)\n }, k, this.props.children));\n }\n });\n e.exports = j;\n});\n__d(\"GiftOpportunityLogger\", [\"AsyncRequest\",\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"JSBNG__Event\"), i = {\n init: function(k, l, m) {\n var n = false;\n h.listen(k, \"click\", function(o) {\n if (n) {\n return true;\n }\n ;\n ;\n n = true;\n i.send(l, m);\n });\n },\n send: function(k, l) {\n if (j[k.opportunity_id]) {\n return;\n }\n ;\n ;\n j[k.opportunity_id] = true;\n return new g().setURI(\"/ajax/gifts/log/opportunity\").setData({\n data: k,\n entry_point: l\n }).send();\n }\n }, j = {\n };\n e.exports = i;\n});\n__d(\"InlineBlock.react\", [\"ReactProps\",\"React\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n var g = b(\"ReactProps\"), h = b(\"React\"), i = b(\"cx\"), j = b(\"joinClasses\"), k = {\n baseline: null,\n bottom: \"_6d\",\n middle: \"_6b\",\n JSBNG__top: \"_6e\"\n }, l = h.createClass({\n displayName: \"InlineBlock\",\n props: {\n alignv: g.oneOf([\"baseline\",\"bottom\",\"middle\",\"JSBNG__top\",]),\n height: g.number\n },\n getDefaultProps: function() {\n return {\n alignv: \"baseline\"\n };\n },\n render: function() {\n var m = k[this.props.alignv], n = h.DOM.div({\n className: j(\"_6a\", m)\n }, this.props.children);\n if (((this.props.height != null))) {\n var o = h.DOM.div({\n className: j(\"_6a\", m),\n style: {\n height: ((this.props.height + \"px\"))\n }\n });\n n = h.DOM.div({\n className: \"_6a\",\n height: null\n }, o, n);\n }\n ;\n ;\n return this.transferPropsTo(n);\n }\n });\n e.exports = l;\n});\n__d(\"JSBNG__Image.react\", [\"React\",\"invariant\",\"joinClasses\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"invariant\"), i = b(\"joinClasses\"), j = g.createClass({\n displayName: \"ReactImage\",\n props: {\n src: function(k, l, m) {\n var n = k[l];\n h(((((typeof n === \"string\")) || ((((typeof n === \"object\")) && ((((((n.sprited && n.spriteMapCssClass)) && n.spriteCssClass)) || ((!n.sprited && n.uri)))))))));\n }\n },\n render: function() {\n var k, l, m = this.props.src, n = \"img\";\n l = true;\n if (((typeof m === \"string\"))) {\n k = g.DOM.img({\n className: n,\n src: m\n });\n }\n else if (m.sprited) {\n n = i(n, m.spriteMapCssClass, m.spriteCssClass);\n k = g.DOM.i({\n className: n,\n src: null\n });\n l = false;\n }\n else {\n k = g.DOM.img({\n className: n,\n src: m.uri\n });\n if (((((typeof this.props.width === \"undefined\")) && ((typeof this.props.height === \"undefined\"))))) {\n k.props.width = m.width;\n k.props.height = m.height;\n }\n ;\n ;\n }\n \n ;\n ;\n if (this.props.alt) {\n if (l) {\n k.props.alt = this.props.alt;\n }\n else k.props.children = g.DOM.u(null, this.props.alt);\n ;\n }\n ;\n ;\n return this.transferPropsTo(k);\n }\n });\n e.exports = j;\n});\n__d(\"UFIGiftSentence.react\", [\"AsyncRequest\",\"CloseButton.react\",\"GiftOpportunityLogger\",\"ImageBlock.react\",\"InlineBlock.react\",\"LeftRight.react\",\"Link.react\",\"React\",\"JSBNG__Image.react\",\"UFIClassNames\",\"UFIImageBlock.react\",\"URI\",\"DOM\",\"ix\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"CloseButton.react\"), i = b(\"GiftOpportunityLogger\"), j = b(\"ImageBlock.react\"), k = b(\"InlineBlock.react\"), l = b(\"LeftRight.react\"), m = b(\"Link.react\"), n = b(\"React\"), o = b(\"JSBNG__Image.react\"), p = b(\"UFIClassNames\"), q = b(\"UFIImageBlock.react\"), r = b(\"URI\"), s = b(\"DOM\"), t = b(\"ix\"), u = b(\"tx\"), v = n.createClass({\n displayName: \"UFIGiftSentence\",\n _entry_point: \"detected_gift_worthy_story_inline\",\n render: function() {\n var w = this.props.recipient, x = this.props.giftdata, y = ((x ? x.giftproductid : null)), z = this._getURI(y).toString();\n this._log();\n return (n.DOM.li({\n className: p.ROW,\n ref: \"UFIGiftSentence\"\n }, l({\n direction: \"right\"\n }, ((x ? this._renderGiftSuggestion(z, w, x) : this._renderGiftLink(z, w))), h({\n size: \"small\",\n onClick: function() {\n var aa = this.refs.UFIGiftSentence.getDOMNode();\n s.remove(aa);\n this._requestClose();\n }.bind(this)\n }))));\n },\n _renderGiftSuggestion: function(w, x, y) {\n return (q(null, o({\n src: t(\"/images/group_gifts/icons/gift_icon_red-13px.png\"),\n alt: \"invite\"\n }), n.DOM.div(null, n.DOM.span({\n className: \"fwb\"\n }, u._(\"Surprise {name} with a gift\", {\n JSBNG__name: x.firstName\n })), j({\n spacing: \"medium\",\n className: \"mvs\"\n }, m({\n className: \"fwb\",\n rel: \"async-post\",\n ajaxify: w,\n href: {\n url: \"#\"\n }\n }, o({\n className: \"UFIGiftProductImg\",\n src: y.giftproductimgsrc,\n alt: \"product image\"\n })), k({\n alignv: \"middle\",\n height: 79\n }, n.DOM.p({\n className: \"mvs\"\n }, m({\n className: \"fwb\",\n rel: \"async-post\",\n ajaxify: w,\n href: {\n url: \"#\"\n }\n }, y.giftproductname)), n.DOM.p({\n className: \"mvs fcg\"\n }, y.giftproductpricerange), n.DOM.p({\n className: \"mvs\"\n }, m({\n rel: \"async-post\",\n ajaxify: w,\n href: {\n url: \"#\"\n }\n }, \"Give This Gift\"), \" \\u00b7 \", m({\n rel: \"async-post\",\n ajaxify: this._getURI().toString(),\n href: {\n url: \"#\"\n }\n }, \"See All Gifts\")))))));\n },\n _renderGiftLink: function(w, x) {\n return (q(null, m({\n className: \"UFIGiftIcon\",\n tabIndex: \"-1\",\n href: {\n url: \"#\"\n },\n rel: \"async-post\",\n ajaxify: w\n }, o({\n src: t(\"/images/group_gifts/icons/gift_icon_red-13px.png\"),\n alt: \"invite\"\n })), m({\n rel: \"async-post\",\n href: {\n url: \"#\"\n },\n ajaxify: w\n }, u._(\"Surprise {name} with a gift\", {\n JSBNG__name: x.firstName\n }))));\n },\n _log: function() {\n var w = this.props.giftdata, x = {\n opportunity_id: this.props.contextArgs.ftentidentifier,\n sender_id: this.props.sender.id,\n recipient_id: this.props.recipient.id,\n link_description: \"UFIGiftSentence\",\n product_id: ((w ? w.giftproductid : null)),\n custom: {\n gift_occasion: this.props.contextArgs.giftoccasion,\n ftentidentifier: this.props.contextArgs.ftentidentifier\n }\n };\n i.send([x,], this._entry_point);\n },\n _getURI: function(w) {\n return r(\"/ajax/gifts/send\").addQueryData({\n gift_occasion: this.props.contextArgs.giftoccasion,\n recipient_id: this.props.recipient.id,\n entry_point: this._entry_point,\n product_id: w\n });\n },\n _requestClose: function() {\n var w = r(\"/ajax/gifts/moments/close/\");\n new g().setMethod(\"POST\").setReadOnly(false).setURI(w).setData({\n action: \"hide\",\n data: JSON.stringify({\n type: \"detected_moment\",\n friend_id: this.props.recipient.id,\n ftentidentifier: this.props.contextArgs.ftentidentifier\n })\n }).send();\n }\n });\n e.exports = v;\n});\n__d(\"UFILikeSentenceText.react\", [\"HovercardLinkInterpolator\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"TextWithEntities.react\",\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"HovercardLinkInterpolator\"), h = b(\"ProfileBrowserLink\"), i = b(\"ProfileBrowserTypes\"), j = b(\"React\"), k = b(\"TextWithEntities.react\"), l = b(\"URI\");\n function m(p, q, r, s) {\n if (((s.count != null))) {\n var t = i.LIKES, u = {\n id: p.targetfbid\n };\n return (j.DOM.a({\n href: h.constructPageURI(t, u).toString(),\n target: \"_blank\"\n }, r));\n }\n else return g(r, s, \"_blank\", null, \"ufi\")\n ;\n };\n;\n function n(p, q, r, s) {\n if (((s.count != null))) {\n var t = i.LIKES, u = {\n id: p.targetfbid\n }, v = [];\n for (var w = 0; ((w < q.length)); w++) {\n if (!q[w].count) {\n v.push(q[w].entities[0].id);\n }\n ;\n ;\n };\n ;\n var x = new l(\"/ajax/like/tooltip.php\").setQueryData({\n comment_fbid: p.targetfbid,\n comment_from: p.actorforpost,\n seen_user_fbids: ((v.length ? v : true))\n });\n return (j.DOM.a({\n rel: \"dialog\",\n ajaxify: h.constructDialogURI(t, u).toString(),\n href: h.constructPageURI(t, u).toString(),\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"data-tooltip-uri\": x.toString()\n }, r));\n }\n else return g(r, s, null, null, \"ufi\")\n ;\n };\n;\n var o = j.createClass({\n displayName: \"UFILikeSentenceText\",\n render: function() {\n var p = this.props.feedback, q = this.props.likeSentenceData, r;\n if (this.props.contextArgs.embedded) {\n r = m;\n }\n else r = n;\n ;\n ;\n r = r.bind(null, p, q.ranges);\n return (k({\n interpolator: r,\n ranges: q.ranges,\n aggregatedRanges: q.aggregatedranges,\n text: q.text\n }));\n }\n });\n e.exports = o;\n});\n__d(\"UFILikeSentence.react\", [\"Bootloader\",\"LeftRight.react\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"UFILikeSentenceText.react\",\"URI\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"LeftRight.react\"), i = b(\"ProfileBrowserLink\"), j = b(\"ProfileBrowserTypes\"), k = b(\"React\"), l = b(\"UFIClassNames\"), m = b(\"UFIImageBlock.react\"), n = b(\"UFILikeSentenceText.react\"), o = b(\"URI\"), p = b(\"cx\"), q = b(\"joinClasses\"), r = b(\"tx\"), s = k.createClass({\n displayName: \"UFILikeSentence\",\n getInitialState: function() {\n return {\n selectorModule: null,\n bootloadedSelectorModule: false\n };\n },\n componentWillMount: function() {\n this._bootloadSelectorModule(this.props);\n },\n componentWillReceiveProps: function(t) {\n this._bootloadSelectorModule(t);\n },\n _bootloadSelectorModule: function(t) {\n if (((t.showOrderingModeSelector && !this.state.bootloadedSelectorModule))) {\n var u = function(v) {\n this.setState({\n selectorModule: v\n });\n }.bind(this);\n if (t.contextArgs.entstream) {\n g.loadModules([\"UFIEntStreamOrderingModeSelector.react\",], u);\n }\n else g.loadModules([\"UFIOrderingModeSelector.react\",], u);\n ;\n ;\n this.setState({\n bootloadedSelectorModule: true\n });\n }\n ;\n ;\n },\n render: function() {\n var t = this.props.feedback, u = t.likesentences.current, v = this.props.contextArgs.entstream, w = q(l.ROW, ((t.likesentences.isunseen ? l.UNSEEN_ITEM : \"\")), (((((\"UFILikeSentence\") + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))))), x = null, y = null;\n if (u.text) {\n y = k.DOM.div({\n className: \"UFILikeSentenceText\"\n }, n({\n contextArgs: this.props.contextArgs,\n feedback: t,\n likeSentenceData: u\n }));\n }\n ;\n ;\n if (((y && !v))) {\n x = k.DOM.i({\n className: \"UFILikeIcon\"\n });\n if (((t.viewercanlike && !t.hasviewerliked))) {\n x = k.DOM.a({\n className: \"UFILikeThumb\",\n href: \"#\",\n tabIndex: \"-1\",\n title: \"Like this\",\n onClick: this.props.onTargetLikeToggle\n }, x);\n }\n ;\n ;\n }\n ;\n ;\n var z = y, aa = null;\n if (((((t.seencount > 0)) && !v))) {\n var ba = j.GROUP_MESSAGE_VIEWERS, ca = {\n id: t.targetfbid\n }, da = i.constructDialogURI(ba, ca), ea = i.constructPageURI(ba, ca), fa = new o(\"/ajax/ufi/seen_tooltip.php\").setQueryData({\n ft_ent_identifier: t.entidentifier,\n displayed_count: t.seencount\n }), ga;\n if (t.seenbyall) {\n ga = \"Seen by everyone\";\n }\n else ga = ((((t.seencount == 1)) ? \"Seen by 1\" : r._(\"Seen by {count}\", {\n count: t.seencount\n })));\n ;\n ;\n aa = k.DOM.a({\n rel: \"dialog\",\n ajaxify: da.toString(),\n href: ea.toString(),\n tabindex: \"-1\",\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"left\",\n \"data-tooltip-uri\": fa.toString(),\n className: (((\"UFISeenCount\") + ((!!u.text ? ((\" \" + \"UFISeenCountRight\")) : \"\"))))\n }, k.DOM.span({\n className: \"UFISeenCountIcon\"\n }), ga);\n }\n else if (((this.props.showOrderingModeSelector && this.state.selectorModule))) {\n var ha = this.state.selectorModule;\n aa = ha({\n currentOrderingMode: this.props.orderingMode,\n entstream: v,\n orderingmodes: t.orderingmodes,\n onOrderChanged: this.props.onOrderingModeChange\n });\n if (!z) {\n z = k.DOM.div(null);\n }\n ;\n ;\n }\n \n ;\n ;\n var ia = null;\n if (((x && y))) {\n ia = m(null, x, y, aa);\n }\n else if (z) {\n ia = h(null, z, aa);\n }\n else ia = aa;\n \n ;\n ;\n return (k.DOM.li({\n className: w\n }, ia));\n }\n });\n e.exports = s;\n});\n__d(\"UFIPager.react\", [\"LeftRight.react\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n var g = b(\"LeftRight.react\"), h = b(\"React\"), i = b(\"UFIClassNames\"), j = b(\"UFIImageBlock.react\"), k = b(\"cx\"), l = b(\"joinClasses\"), m = h.createClass({\n displayName: \"UFIPager\",\n onPagerClick: function(n) {\n ((((!this.props.isLoading && this.props.onPagerClick)) && this.props.onPagerClick()));\n n.nativeEvent.prevent();\n },\n render: function() {\n var n = this.onPagerClick, o = ((this.props.isLoading ? \"ufiPagerLoading\" : \"\")), p = l(i.ROW, ((this.props.isUnseen ? i.UNSEEN_ITEM : \"\")), (((((((((\"UFIPagerRow\") + ((this.props.isFirstCommentComponent ? ((\" \" + \"UFIFirstCommentComponent\")) : \"\")))) + ((this.props.isLastCommentComponent ? ((\" \" + \"UFILastCommentComponent\")) : \"\")))) + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))))), q = h.DOM.a({\n className: \"UFIPagerLink\",\n onClick: n,\n href: \"#\",\n role: \"button\"\n }, h.DOM.span({\n className: o\n }, this.props.pagerLabel)), r = (((\"fcg\") + ((\" \" + \"UFIPagerCount\")))), s = h.DOM.span({\n className: r\n }, this.props.countSentence), t;\n if (this.props.contextArgs.entstream) {\n t = (g({\n direction: g.DIRECTION.right\n }, q, s));\n }\n else t = (j(null, h.DOM.a({\n className: \"UFIPagerIcon\",\n onClick: n,\n href: \"#\",\n role: \"button\"\n }), q, s));\n ;\n ;\n return (h.DOM.li({\n className: p,\n \"data-ft\": this.props[\"data-ft\"]\n }, t));\n }\n });\n e.exports = m;\n});\n__d(\"UFIReplySocialSentence.react\", [\"LiveTimer\",\"React\",\"Timestamp.react\",\"UFIClassNames\",\"UFIConstants\",\"UFIImageBlock.react\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"LiveTimer\"), h = b(\"React\"), i = b(\"Timestamp.react\"), j = b(\"UFIClassNames\"), k = b(\"UFIConstants\"), l = b(\"UFIImageBlock.react\"), m = b(\"cx\"), n = b(\"joinClasses\"), o = b(\"tx\"), p = \" \\u00b7 \", q = 43200, r = h.createClass({\n displayName: \"UFIReplySocialSentence\",\n render: function() {\n var s = ((this.props.isLoading ? \"UFIReplySocialSentenceLoading\" : \"\")), t = n(j.ROW, (((((\"UFIReplySocialSentenceRow\") + ((this.props.isFirstComponent ? ((\" \" + \"UFIFirstComponent\")) : \"\")))) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\"))))), u, v;\n if (this.props.isExpanded) {\n u = ((((this.props.replies > 1)) ? o._(\"Hide {count} Replies\", {\n count: this.props.replies\n }) : \"Hide 1 Reply\"));\n }\n else {\n u = ((((this.props.replies > 1)) ? o._(\"{count} Replies\", {\n count: this.props.replies\n }) : \"1 Reply\"));\n if (this.props.timestamp) {\n var w = ((((g.getApproximateServerTime() / 1000)) - this.props.timestamp.time));\n if (((((w < q)) || ((this.props.orderingMode == k.UFICommentOrderingMode.RECENT_ACTIVITY))))) {\n v = h.DOM.span({\n className: \"fcg\"\n }, p, i({\n time: this.props.timestamp.time,\n text: this.props.timestamp.text,\n verbose: this.props.timestamp.verbose\n }));\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n var x = Object.keys(this.props.authors), y = ((x.length && !this.props.isExpanded)), z, aa;\n if (y) {\n var ba = this.props.authors[x[0]];\n z = h.DOM.img({\n alt: \"\",\n src: ba.thumbSrc,\n className: j.ACTOR_IMAGE\n });\n aa = [o._(\"{author} replied\", {\n author: ba.JSBNG__name\n }),p,u,];\n }\n else {\n z = h.DOM.i({\n className: ((((!this.props.isExpanded ? \"UFIPagerIcon\" : \"\")) + ((this.props.isExpanded ? ((\" \" + \"UFICollapseIcon\")) : \"\"))))\n });\n aa = u;\n }\n ;\n ;\n return (h.DOM.li({\n className: t,\n \"data-ft\": this.props[\"data-ft\"]\n }, h.DOM.a({\n className: \"UFICommentLink\",\n onClick: this.props.onClick,\n href: \"#\",\n role: \"button\"\n }, l(null, h.DOM.div({\n className: ((y ? \"UFIReplyActorPhotoWrapper\" : \"\"))\n }, z), h.DOM.span({\n className: s\n }, h.DOM.span({\n className: \"UFIReplySocialSentenceLinkText\"\n }, aa), v)))));\n }\n });\n e.exports = r;\n});\n__d(\"UFIShareRow.react\", [\"NumberFormat\",\"React\",\"UFIClassNames\",\"UFIImageBlock.react\",\"URI\",\"cx\",\"joinClasses\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"NumberFormat\"), h = b(\"React\"), i = b(\"UFIClassNames\"), j = b(\"UFIImageBlock.react\"), k = b(\"URI\"), l = b(\"cx\"), m = b(\"joinClasses\"), n = b(\"tx\"), o = h.createClass({\n displayName: \"UFIShareRow\",\n render: function() {\n var p = new k(\"/ajax/shares/view\").setQueryData({\n target_fbid: this.props.targetID\n }), q = new k(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n id: this.props.targetID\n }), r;\n if (((this.props.shareCount > 1))) {\n var s = g.formatIntegerWithDelimiter(this.props.shareCount, ((this.props.contextArgs.numberdelimiter || \",\")));\n r = n._(\"{count} shares\", {\n count: s\n });\n }\n else r = \"1 share\";\n ;\n ;\n var t = m(i.ROW, ((((this.props.isFirstComponent ? \"UFIFirstComponent\" : \"\")) + ((this.props.isLastComponent ? ((\" \" + \"UFILastComponent\")) : \"\")))));\n return (h.DOM.li({\n className: t\n }, j(null, h.DOM.a({\n className: \"UFIShareIcon\",\n rel: \"dialog\",\n ajaxify: p.toString(),\n href: q.toString()\n }), h.DOM.a({\n className: \"UFIShareLink\",\n rel: \"dialog\",\n ajaxify: p.toString(),\n href: q.toString()\n }, r))));\n }\n });\n e.exports = o;\n});\n__d(\"UFISpamPlaceholder.react\", [\"React\",\"UFIClassNames\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"UFIClassNames\"), i = b(\"cx\"), j = b(\"tx\"), k = g.createClass({\n displayName: \"UFISpamPlaceholder\",\n render: function() {\n var l = (((\"UFISpamCommentWrapper\") + ((this.props.isLoading ? ((\" \" + \"UFISpamCommentLoading\")) : \"\"))));\n return (g.DOM.li({\n className: h.ROW\n }, g.DOM.a({\n href: \"#\",\n role: \"button\",\n className: \"UFISpamCommentLink\",\n onClick: this.props.onClick\n }, g.DOM.span({\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"aria-label\": j._(\"{count} hidden\", {\n count: this.props.numHidden\n }),\n className: l\n }, g.DOM.i({\n className: \"placeholderIcon\"\n })))));\n }\n });\n e.exports = k;\n});\n__d(\"UFI.react\", [\"NumberFormat\",\"React\",\"LegacyScrollableArea.react\",\"TrackingNodes\",\"UFIAddCommentController\",\"UFIAddCommentLink.react\",\"UFIComment.react\",\"UFIConstants\",\"UFIContainer.react\",\"UFIGiftSentence.react\",\"UFIInstanceState\",\"UFILikeSentence.react\",\"UFIPager.react\",\"UFIReplySocialSentence.react\",\"UFIShareRow.react\",\"UFISpamPlaceholder.react\",\"copyProperties\",\"isEmpty\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"NumberFormat\"), h = b(\"React\"), i = b(\"LegacyScrollableArea.react\"), j = b(\"TrackingNodes\"), k = b(\"UFIAddCommentController\"), l = b(\"UFIAddCommentLink.react\"), m = b(\"UFIComment.react\"), n = b(\"UFIConstants\"), o = b(\"UFIContainer.react\"), p = b(\"UFIGiftSentence.react\"), q = b(\"UFIInstanceState\"), r = b(\"UFILikeSentence.react\"), s = b(\"UFIPager.react\"), t = b(\"UFIReplySocialSentence.react\"), u = b(\"UFIShareRow.react\"), v = b(\"UFISpamPlaceholder.react\"), w = b(\"copyProperties\"), x = b(\"isEmpty\"), y = b(\"tx\"), z = h.createClass({\n displayName: \"UFI\",\n getInitialState: function() {\n return {\n requestRanges: w({\n }, this.props.availableRanges),\n instanceShowRepliesMap: {\n },\n instanceShowReplySocialSentenceMap: {\n },\n loadingSpamIDs: {\n },\n isActiveLoading: false,\n hasPagedToplevel: false\n };\n },\n componentWillReceiveProps: function(aa) {\n if (this.state.isActiveLoading) {\n var ba = this.props.availableRanges[this.props.id], ca = aa.availableRanges[this.props.id];\n if (((((ba.offset != ca.offset)) || ((ba.length != ca.length))))) {\n var da = ((((ca.offset < ba.offset)) ? 0 : ba.length));\n if (((da < aa.availableComments.length))) {\n var ea = aa.availableComments[da].ufiinstanceid;\n q.updateState(ea, \"autofocus\", true);\n }\n ;\n ;\n }\n ;\n ;\n this.setState({\n isActiveLoading: false\n });\n }\n ;\n ;\n if (((aa.orderingMode != this.props.orderingMode))) {\n this.setState({\n requestRanges: w({\n }, aa.availableRanges)\n });\n }\n ;\n ;\n },\n render: function() {\n var aa = this.props, ba = aa.feedback, ca = aa.contextArgs, da = ((aa.source != n.UFIFeedbackSourceType.ADS)), ea = ((ba.orderingmodes && ((aa.commentCounts[aa.id] >= n.minCommentsForOrderingModeSelector)))), fa = ((((((!x(ba.likesentences.current) || ((((ba.seencount > 0)) && !ca.entstream)))) || ea)) && da)), ga = null;\n if (fa) {\n ga = r({\n contextArgs: ca,\n feedback: ba,\n onTargetLikeToggle: aa.onTargetLikeToggle,\n onOrderingModeChange: aa.onOrderingModeChange,\n orderingMode: aa.orderingMode,\n showOrderingModeSelector: ea\n });\n }\n ;\n ;\n var ha = null;\n if (((aa.feedback.hasviewerliked && this._shouldShowGiftSentence()))) {\n ha = p({\n contextArgs: ca,\n recipient: aa.giftRecipient,\n sender: aa.authorProfiles[ba.actorforpost],\n giftdata: aa.feedback.giftdata\n });\n }\n ;\n ;\n var ia = ((((aa.availableComments && aa.availableComments.length)) && da)), ja = null;\n if (ia) {\n ja = this.renderCommentMap(aa.availableComments, aa.availableRanges[aa.id].offset);\n }\n ;\n ;\n var ka = null, la = ba.cancomment, ma = ((((la && ca.showaddcomment)) && ba.actorforpost));\n if (ma) {\n var na = new k(null, aa.id, null, ca), oa = aa.authorProfiles[ba.actorforpost];\n ka = na.renderAddComment(oa, ba.mentionsdatasource, ba.showsendonentertip, \"toplevelcomposer\", null, ba.allowphotoattachments, ba.subtitle);\n }\n ;\n ;\n var pa = null, qa = ((((ca.showshares && ba.sharecount)) && da));\n if (((qa && !ca.entstream))) {\n pa = u({\n targetID: ba.targetfbid,\n shareCount: ba.sharecount,\n contextArgs: ca\n });\n }\n ;\n ;\n var ra = ((((((fa || qa)) || ia)) || la)), sa = this.renderPagers();\n this.applyToUFIComponents([sa.topPager,], ja, [sa.bottomPager,], {\n isFirstCommentComponent: true\n }, {\n isLastCommentComponent: true\n });\n var ta = ((ba.commentboxhoisted ? ka : null)), ua = ((ba.commentboxhoisted ? null : ka)), va = null;\n if (((((ma && ba.hasaddcommentlink)) && this.state.hasPagedToplevel))) {\n va = l({\n onClick: this.onComment\n });\n }\n ;\n ;\n this.applyToUFIComponents([ga,pa,ta,sa.topPager,], ja, [sa.bottomPager,ua,va,], {\n isFirstComponent: true\n }, {\n isLastComponent: true\n });\n var wa = [sa.topPager,ja,sa.bottomPager,];\n if (((ca.scrollcomments && ca.scrollwidth))) {\n wa = h.DOM.li(null, i({\n width: ca.scrollwidth\n }, h.DOM.ul(null, wa)));\n }\n ;\n ;\n return (o({\n hasNub: ((ca.shownub && ra))\n }, ga, ha, pa, ta, wa, ua, va));\n },\n applyToUFIComponents: function(aa, ba, ca, da, ea) {\n var fa = Object.keys(((ba || {\n }))).map(function(ha) {\n return ba[ha];\n }), ga = [].concat(aa, fa, ca);\n this._applyToFirstComponent(ga, da);\n ga.reverse();\n this._applyToFirstComponent(ga, ea);\n },\n _applyToFirstComponent: function(aa, ba) {\n for (var ca = 0; ((ca < ((aa || [])).length)); ca++) {\n if (aa[ca]) {\n w(aa[ca].props, ba);\n return;\n }\n ;\n ;\n };\n ;\n },\n renderCommentMap: function(aa, ba) {\n var ca = this.props, da = {\n }, ea = aa.length;\n if (!ea) {\n return da;\n }\n ;\n ;\n var fa = aa[0].parentcommentid, ga = [], ha = function() {\n if (((ga.length > 0))) {\n var qa = function(ra, sa) {\n this.state.loadingSpamIDs[ra[0]] = true;\n this.forceUpdate();\n ca.onSpamFetch(ra, sa);\n }.bind(this, ga, fa);\n da[((\"spam\" + ga[0]))] = v({\n onClick: qa,\n numHidden: ga.length,\n isLoading: !!this.state.loadingSpamIDs[ga[0]]\n });\n ga = [];\n }\n ;\n ;\n }.bind(this), ia = ca.instanceid, ja = q.getKeyForInstance(ia, \"editcommentid\"), ka = !!aa[0].parentcommentid, la = false;\n for (var ma = 0; ((ma < ea)); ma++) {\n if (((aa[ma].JSBNG__status == n.UFIStatus.SPAM))) {\n ga.push(aa[ma].id);\n }\n else {\n ha();\n var na = Math.max(((((ca.loggingOffset - ma)) - ba)), 0), oa = aa[ma], pa;\n if (((oa.id == ja))) {\n pa = this.renderEditCommentBox(oa);\n }\n else {\n pa = this.renderComment(oa, na);\n pa.props.isFirst = ((ma === 0));\n pa.props.isLast = ((ma === ((ea - 1))));\n if (!ka) {\n pa.props.showReplyLink = true;\n }\n ;\n ;\n }\n ;\n ;\n da[((\"comment\" + oa.id))] = pa;\n if (((((((((ca.feedback.actorforpost === oa.author)) && !la)) && !ca.feedback.hasviewerliked)) && this._shouldShowGiftSentence()))) {\n da[((\"gift\" + oa.id))] = p({\n contextArgs: ca.contextArgs,\n recipient: ca.giftRecipient,\n sender: ca.authorProfiles[ca.feedback.actorforpost],\n giftdata: ca.feedback.giftdata\n });\n la = true;\n }\n ;\n ;\n if (((oa.JSBNG__status !== n.UFIStatus.DELETED))) {\n da[((\"replies\" + oa.id))] = this.renderReplyContainer(oa);\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n ha();\n return da;\n },\n _shouldShowGiftSentence: function() {\n var aa = this.props;\n return ((aa.contextArgs.giftoccasion && !aa.contextArgs.entstream));\n },\n renderReplyContainer: function(aa) {\n var ba = this.props, ca = {\n };\n for (var da = 0; ((da < ((aa.replyauthors || [])).length)); da++) {\n var ea = ba.authorProfiles[aa.replyauthors[da]];\n if (ea) {\n ca[ea.id] = ea;\n }\n ;\n ;\n };\n ;\n var fa = ((((ba.repliesMap && ba.repliesMap[aa.id])) && this._shouldShowCommentReplies(aa.id))), ga, ha = Math.max(((aa.replycount - aa.spamreplycount)), 0);\n if (((ha && this._shouldShowReplySocialSentence(aa.id)))) {\n var ia = ((this._shouldShowCommentReplies(aa.id) && ((this.isLoadingPrev(aa.id) || this.isLoadingNext(aa.id)))));\n ga = t({\n authors: ca,\n replies: ha,\n timestamp: aa.recentreplytimestamp,\n onClick: this.onToggleReplies.bind(this, aa),\n isLoading: ia,\n isExpanded: fa,\n orderingMode: this.props.orderingMode\n });\n }\n ;\n ;\n var ja, ka, la, ma;\n if (fa) {\n var na = this.renderPagers(aa.id);\n ja = na.topPager;\n la = na.bottomPager;\n ka = this.renderCommentMap(ba.repliesMap[aa.id], ba.availableRanges[aa.id].offset);\n var oa = Object.keys(ka);\n for (var pa = 0; ((pa < oa.length)); pa++) {\n var qa = ka[oa[pa]];\n if (qa) {\n qa.props.hasPartialBorder = ((pa !== 0));\n }\n ;\n ;\n };\n ;\n if (ba.feedback.cancomment) {\n var ra = false, sa = Object.keys(ka);\n for (var da = ((sa.length - 1)); ((da >= 0)); da--) {\n var ta = sa[da];\n if (((ta && ka[ta]))) {\n ra = ka[ta].props.isAuthorReply;\n break;\n }\n ;\n ;\n };\n ;\n ma = this.renderReplyComposer(aa, !ra);\n }\n ;\n ;\n }\n ;\n ;\n var ua;\n if (((((((((ga || ja)) || ka)) || la)) || ma))) {\n this.applyToUFIComponents([ga,ja,], ka, [la,ma,], {\n isFirstComponent: true\n }, {\n isLastComponent: true\n });\n var va = ((aa.JSBNG__status === n.UFIStatus.LIVE_DELETED));\n ua = o({\n isParentLiveDeleted: va,\n isReplyList: true\n }, ga, ja, ka, la, ma);\n }\n ;\n ;\n return ua;\n },\n renderReplyComposer: function(aa, ba) {\n var ca = this.props;\n return (new k(null, ca.id, aa.id, ca.contextArgs)).renderAddComment(ca.authorProfiles[ca.feedback.actorforpost], ca.feedback.mentionsdatasource, false, ((\"replycomposer-\" + aa.id)), ba, ca.feedback.allowphotoattachments);\n },\n renderEditCommentBox: function(aa) {\n var ba = new k(null, this.props.id, null, {\n }), ca = ba.renderEditComment(this.props.authorProfiles[this.props.feedback.actorforpost], aa.id, this.props.feedback.mentionsdatasource, this.props.onEditAttempt.bind(null, aa), this.props.onCancelEdit, this.props.feedback.allowphotoattachments);\n return ca;\n },\n _shouldShowCommentReplies: function(aa) {\n if (((aa in this.state.instanceShowRepliesMap))) {\n return this.state.instanceShowRepliesMap[aa];\n }\n else if (((aa in this.props.showRepliesMap))) {\n return this.props.showRepliesMap[aa];\n }\n \n ;\n ;\n return false;\n },\n _shouldShowReplySocialSentence: function(aa) {\n if (((aa in this.state.instanceShowReplySocialSentenceMap))) {\n return this.state.instanceShowReplySocialSentenceMap[aa];\n }\n else if (((aa in this.props.showReplySocialSentenceMap))) {\n return this.props.showReplySocialSentenceMap[aa];\n }\n \n ;\n ;\n return false;\n },\n renderComment: function(aa, ba) {\n var ca = this.props, da = ca.feedback, ea = ((da.actorforpost === aa.author)), fa = q.getKeyForInstance(this.props.instanceid, \"locallycomposed\"), ga = ((aa.islocal || ((fa && fa[aa.id])))), ha = ((da.showremovemenu || ((da.viewerid === aa.author)))), ia = ((((da.canremoveall && da.isownerpage)) && !ea)), ja = ((ca.source != n.UFIFeedbackSourceType.INTERN)), ka = j.getTrackingInfo(j.types.COMMENT, ba), la = !!aa.parentcommentid, ma = this._shouldShowCommentReplies(aa.id), na = !!aa.isfeatured;\n return (m({\n comment: aa,\n authorProfiles: this.props.authorProfiles,\n viewerIsAuthor: ea,\n feedback: da,\n \"data-ft\": ka,\n contextArgs: this.props.contextArgs,\n hideAsSpamForPageAdmin: ia,\n isLocallyComposed: ga,\n isReply: la,\n isFeatured: na,\n showPermalink: ja,\n showRemoveReportMenu: ha,\n showReplies: ma,\n onCommentLikeToggle: ca.onCommentLikeToggle.bind(null, aa),\n onCommentReply: this.onCommentReply.bind(this, aa),\n onCommentTranslate: ca.onCommentTranslate.bind(null, aa),\n onEdit: ca.onCommentEdit.bind(null, aa),\n onHideAsSpam: ca.onCommentHideAsSpam.bind(null, aa),\n onInlineBan: ca.onCommentInlineBan.bind(null, aa),\n onMarkAsNotSpam: ca.onCommentMarkAsNotSpam.bind(null, aa),\n onOneClickRemove: ca.onCommentOneClickRemove.bind(null, aa),\n onPreviewRemove: ca.onPreviewRemove.bind(null, aa),\n onRemove: ca.onCommentRemove.bind(null, aa),\n onRetrySubmit: ca.onRetrySubmit.bind(null, aa),\n onUndoInlineBan: ca.onCommentUndoInlineBan.bind(null, aa),\n onUndoOneClickRemove: ca.onCommentUndoOneClickRemove.bind(null, aa)\n }));\n },\n _updateRepliesState: function(aa, ba, ca) {\n var da = this.state.instanceShowRepliesMap;\n da[aa] = ba;\n var ea = this.state.instanceShowReplySocialSentenceMap;\n ea[aa] = ca;\n this.setState({\n instanceShowRepliesMap: da,\n instanceShowReplySocialSentenceMap: ea\n });\n },\n onToggleReplies: function(aa) {\n var ba = !this._shouldShowCommentReplies(aa.id), ca = ((this._shouldShowReplySocialSentence(aa.id) && !((ba && ((aa.replycount <= this.props.replySocialSentenceMaxReplies))))));\n this._updateRepliesState(aa.id, ba, ca);\n var da = ((this.state.requestRanges[aa.id].length - this.props.deletedCounts[aa.id]));\n if (((ba && ((da === 0))))) {\n var ea = this.props.commentCounts[aa.id], fa = Math.min(ea, this.props.pageSize);\n this.onPage(aa.id, {\n offset: ((ea - fa)),\n length: fa\n });\n }\n ;\n ;\n },\n onPage: function(aa, ba) {\n var ca = this.state.requestRanges;\n ca[aa] = ba;\n var da = ((this.state.hasPagedToplevel || ((aa === this.props.id))));\n this.setState({\n requestRanges: ca,\n isActiveLoading: true,\n hasPagedToplevel: da\n });\n this.props.onChangeRange(aa, ba);\n },\n isLoadingPrev: function(aa) {\n var ba = this.props;\n aa = ((aa || ba.id));\n if (!this.state.requestRanges[aa]) {\n this.state.requestRanges[aa] = ba.availableRanges[aa];\n }\n ;\n ;\n var ca = this.state.requestRanges[aa].offset, da = ba.availableRanges[aa].offset;\n return ((ca < da));\n },\n isLoadingNext: function(aa) {\n var ba = this.props;\n aa = ((aa || ba.id));\n if (!this.state.requestRanges[aa]) {\n this.state.requestRanges[aa] = ba.availableRanges[aa];\n }\n ;\n ;\n var ca = this.state.requestRanges[aa].offset, da = this.state.requestRanges[aa].length, ea = ba.availableRanges[aa].offset, fa = ba.availableRanges[aa].length;\n return ((((ca + da)) > ((ea + fa))));\n },\n renderPagers: function(aa) {\n var ba = this.props;\n aa = ((aa || ba.id));\n var ca = ba.availableRanges[aa].offset, da = ba.availableRanges[aa].length, ea = ba.deletedCounts[aa], fa = ba.commentCounts[aa], ga = ((fa - ea)), ha = ((da - ea)), ia = ((ba.contextArgs.numberdelimiter || \",\")), ja = ((aa !== ba.id)), ka = {\n topPager: null,\n bottomPager: null\n };\n if (((ba.source == n.UFIFeedbackSourceType.ADS))) {\n return ka;\n }\n ;\n ;\n var la = this.isLoadingPrev(aa), ma = this.isLoadingNext(aa);\n if (((da == fa))) {\n return ka;\n }\n ;\n ;\n var na = ((((ca + da)) == fa));\n if (((((((fa < ba.pageSize)) && na)) || ((ha === 0))))) {\n var oa = Math.min(fa, ba.pageSize), pa = this.onPage.bind(this, aa, {\n offset: ((fa - oa)),\n length: oa\n }), qa, ra;\n if (((ha === 0))) {\n if (((ga == 1))) {\n qa = ((ja ? \"View 1 reply\" : \"View 1 comment\"));\n }\n else {\n ra = g.formatIntegerWithDelimiter(ga, ia);\n qa = ((ja ? y._(\"View all {count} replies\", {\n count: ra\n }) : y._(\"View all {count} comments\", {\n count: ra\n })));\n }\n ;\n ;\n }\n else if (((((ga - ha)) == 1))) {\n qa = ((ja ? \"View 1 more reply\" : \"View 1 more comment\"));\n }\n else {\n ra = g.formatIntegerWithDelimiter(((ga - ha)), ia);\n qa = ((ja ? y._(\"View {count} more replies\", {\n count: ra\n }) : y._(\"View {count} more comments\", {\n count: ra\n })));\n }\n \n ;\n ;\n var sa = j.getTrackingInfo(j.types.VIEW_ALL_COMMENTS), ta = s({\n contextArgs: ba.contextArgs,\n isUnseen: ba.feedback.hasunseencollapsed,\n isLoading: la,\n pagerLabel: qa,\n onPagerClick: pa,\n \"data-ft\": sa\n });\n if (((ba.feedback.isranked && !ja))) {\n ka.bottomPager = ta;\n }\n else ka.topPager = ta;\n ;\n ;\n return ka;\n }\n ;\n ;\n if (((ca > 0))) {\n var ua = Math.max(((ca - ba.pageSize)), 0), oa = ((((ca + da)) - ua)), va = this.onPage.bind(this, aa, {\n offset: ua,\n length: oa\n }), wa = g.formatIntegerWithDelimiter(ha, ia), xa = g.formatIntegerWithDelimiter(ga, ia), ya = y._(\"{countshown} of {totalcount}\", {\n countshown: wa,\n totalcount: xa\n });\n if (((ba.feedback.isranked && !ja))) {\n ka.bottomPager = s({\n contextArgs: ba.contextArgs,\n isLoading: la,\n pagerLabel: \"View more comments\",\n onPagerClick: va,\n countSentence: ya\n });\n }\n else {\n var za = ((ja ? \"View previous replies\" : \"View previous comments\"));\n ka.topPager = s({\n contextArgs: ba.contextArgs,\n isLoading: la,\n pagerLabel: za,\n onPagerClick: va,\n countSentence: ya\n });\n }\n ;\n ;\n }\n ;\n ;\n if (((((ca + da)) < fa))) {\n var ab = Math.min(((da + ba.pageSize)), ((fa - ca))), bb = this.onPage.bind(this, aa, {\n offset: ca,\n length: ab\n });\n if (((ba.feedback.isranked && !ja))) {\n ka.topPager = s({\n contextArgs: ba.contextArgs,\n isLoading: ma,\n pagerLabel: \"View previous comments\",\n onPagerClick: bb\n });\n }\n else {\n var cb = ((ja ? \"View more replies\" : \"View more comments\"));\n ka.bottomPager = s({\n contextArgs: ba.contextArgs,\n isLoading: ma,\n pagerLabel: cb,\n onPagerClick: bb\n });\n }\n ;\n ;\n }\n ;\n ;\n return ka;\n },\n onCommentReply: function(aa) {\n var ba = ((aa.parentcommentid || aa.id));\n if (!this._shouldShowCommentReplies(ba)) {\n this.onToggleReplies(aa);\n }\n ;\n ;\n if (((this.refs && this.refs[((\"replycomposer-\" + ba))]))) {\n this.refs[((\"replycomposer-\" + ba))].JSBNG__focus();\n }\n ;\n ;\n },\n onComment: function() {\n if (((this.refs && this.refs.toplevelcomposer))) {\n this.refs.toplevelcomposer.JSBNG__focus();\n }\n ;\n ;\n }\n });\n e.exports = z;\n});\n__d(\"UFIController\", [\"Arbiter\",\"Bootloader\",\"CSS\",\"DOM\",\"DOMQuery\",\"ImmutableObject\",\"LayerRemoveOnHide\",\"LiveTimer\",\"Parent\",\"React\",\"ReactMount\",\"ShortProfiles\",\"UFI.react\",\"UFIActionLinkController\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIInstanceState\",\"UFIUserActions\",\"URI\",\"copyProperties\",\"isEmpty\",\"tx\",\"UFICommentTemplates\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"ImmutableObject\"), m = b(\"LayerRemoveOnHide\"), n = b(\"LiveTimer\"), o = b(\"Parent\"), p = b(\"React\"), q = b(\"ReactMount\"), r = b(\"ShortProfiles\"), s = b(\"UFI.react\"), t = b(\"UFIActionLinkController\"), u = b(\"UFICentralUpdates\"), v = b(\"UFIComments\"), w = b(\"UFIConstants\"), x = b(\"UFIFeedbackTargets\"), y = b(\"UFIInstanceState\"), z = b(\"UFIUserActions\"), aa = b(\"URI\"), ba = b(\"copyProperties\"), ca = b(\"isEmpty\"), da = b(\"tx\"), ea = b(\"UFICommentTemplates\"), fa = function(ia, ja, ka, la) {\n var ma = ((((ia.offset + ia.length)) === ja));\n return {\n offset: ia.offset,\n length: ((((ma && ga(la))) ? ((ka - ia.offset)) : ia.length))\n };\n }, ga = function(ia) {\n return ((((ia == w.UFIPayloadSourceType.USER_ACTION)) || ((ia == w.UFIPayloadSourceType.LIVE_SEND))));\n };\n function ha(ia, ja, ka) {\n this.root = ia;\n this.id = ja.ftentidentifier;\n this.source = ja.source;\n this._ufiInstanceID = ja.instanceid;\n this._contextArgs = ja;\n this._contextArgs.rootid = this.root.id;\n this._verifiedCommentsExpanded = false;\n var la = ka.feedbacktargets[0];\n this.actionLink = new t(ia, this._contextArgs, la);\n this.orderingMode = la.defaultcommentorderingmode;\n var ma = ka.commentlists.comments[this.id][this.orderingMode];\n this.replyRanges = {\n };\n this.repliesMap = {\n };\n this.showRepliesMap = {\n };\n this.showReplySocialSentenceMap = {\n };\n this.commentcounts = {\n };\n this.commentcounts[this.id] = v.getCommentCount(this.id);\n var na = {\n }, oa = ((la.orderingmodes || [{\n value: this.orderingMode\n },]));\n oa.forEach(function(sa) {\n na[sa.value] = ba({\n }, ma.range);\n });\n this.ranges = na;\n if (ka.commentlists.replies) {\n for (var pa = 0; ((pa < ma.values.length)); pa++) {\n var qa = ma.values[pa], ra = ka.commentlists.replies[qa];\n if (ra) {\n this.commentcounts[qa] = v.getCommentCount(qa);\n this.replyRanges[qa] = ba({\n }, ra.range);\n }\n ;\n ;\n };\n }\n ;\n ;\n this._loggingOffset = null;\n this._ufi = null;\n this.ufiCentralUpdatesSubscriptions = [u.subscribe(\"feedback-updated\", function(sa, ta) {\n var ua = ta.updates, va = ta.payloadSource;\n if (((((va != w.UFIPayloadSourceType.COLLAPSED_UFI)) && ((this.id in ua))))) {\n this.fetchAndUpdate(this.render.bind(this), va);\n }\n ;\n ;\n }.bind(this)),u.subscribe(\"feedback-id-changed\", function(sa, ta) {\n var ua = ta.updates;\n if (((this.id in ua))) {\n this.id = ua[this.id];\n }\n ;\n ;\n }.bind(this)),u.subscribe(\"instance-updated\", function(sa, ta) {\n var ua = ta.updates;\n if (((this._ufiInstanceID in ua))) {\n var va = ua[this._ufiInstanceID];\n if (va.editcommentid) {\n this.render(ta.payloadSource);\n }\n ;\n ;\n }\n ;\n ;\n }.bind(this)),u.subscribe(\"update-comment-lists\", function(sa, ta) {\n if (((ta.commentlists && ta.commentlists.replies))) {\n var ua = ta.commentlists.replies;\n {\n var fin98keys = ((window.top.JSBNG_Replay.forInKeys)((ua))), fin98i = (0);\n var va;\n for (; (fin98i < fin98keys.length); (fin98i++)) {\n ((va) = (fin98keys[fin98i]));\n {\n if (((((((((this.id != va)) && ua[va])) && ((ua[va].ftentidentifier == this.id)))) && !this.replyRanges[va]))) {\n this.replyRanges[va] = ua[va].range;\n }\n ;\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n }.bind(this)),];\n this.clearPageletSubscription = g.subscribe(\"pagelet/destroy\", this.onPageletDestroy.bind(this));\n this.clearPageSubscription = g.subscribe(\"ufi/page_cleared\", this._onDestroy.bind(this));\n u.handleUpdate(w.UFIPayloadSourceType.INITIAL_SERVER, ka);\n if (this._contextArgs.viewas) {\n this.viewasUFICleanSubscription = g.subscribe(\"pre_page_transition\", function(sa, ta) {\n if (((this._contextArgs.viewas !== aa(ta.to).getQueryData(\"viewas\")))) {\n v.resetFeedbackTarget(this.id);\n }\n ;\n ;\n }.bind(this));\n }\n ;\n ;\n h.loadModules([\"ScrollAwareDOM\",], function(sa) {\n q.scrollMonitor = sa.monitor;\n });\n };\n;\n ba(ha.prototype, {\n _getParentForm: function() {\n if (!this._form) {\n this._form = o.byTag(this.root, \"form\");\n }\n ;\n ;\n return this._form;\n },\n _onTargetLikeToggle: function(JSBNG__event) {\n var ia = !this.feedback.hasviewerliked;\n z.changeLike(this.id, ia, {\n source: this.source,\n target: JSBNG__event.target,\n rootid: this._contextArgs.rootid\n });\n JSBNG__event.preventDefault();\n },\n _onCommentLikeToggle: function(ia, JSBNG__event) {\n var ja = !ia.hasviewerliked;\n z.changeCommentLike(ia.id, ja, {\n source: this.source,\n target: JSBNG__event.target\n });\n },\n _onCommentEdit: function(ia) {\n y.updateState(this._ufiInstanceID, \"isediting\", true);\n y.updateState(this._ufiInstanceID, \"editcommentid\", ia.id);\n },\n _onEditAttempt: function(ia, ja, JSBNG__event) {\n if (((!ja.visibleValue && !ja.attachedPhoto))) {\n this._onCommentRemove(ia, JSBNG__event);\n }\n else z.editComment(ia.id, ja.visibleValue, ja.encodedValue, {\n source: this._contextArgs.source,\n target: JSBNG__event.target,\n attachedPhoto: ja.attachedPhoto\n });\n ;\n ;\n y.updateStateField(this._ufiInstanceID, \"locallycomposed\", ia.id, true);\n this._onEditReset();\n },\n _onEditReset: function() {\n y.updateState(this._ufiInstanceID, \"isediting\", false);\n y.updateState(this._ufiInstanceID, \"editcommentid\", null);\n },\n _onCommentRemove: function(ia, JSBNG__event) {\n var ja = ea[\":fb:ufi:hide-dialog-template\"].build();\n j.setContent(ja.getNode(\"body\"), \"Are you sure you want to delete this comment?\");\n j.setContent(ja.getNode(\"title\"), \"Delete Comment\");\n h.loadModules([\"DialogX\",], function(ka) {\n var la = new ka({\n modal: true,\n width: 465,\n addedBehaviors: [m,]\n }, ja.getRoot());\n la.subscribe(\"JSBNG__confirm\", function() {\n z.removeComment(ia.id, {\n source: this.source,\n oneclick: false,\n target: JSBNG__event.target,\n timelinelogdata: this._contextArgs.timelinelogdata\n });\n la.hide();\n }.bind(this));\n la.show();\n }.bind(this));\n },\n _onCommentOneClickRemove: function(ia, JSBNG__event) {\n z.removeComment(ia.id, {\n source: this.source,\n oneclick: true,\n target: JSBNG__event.target,\n timelinelogdata: this._contextArgs.timelinelogdata\n });\n },\n _onCommentUndoOneClickRemove: function(ia, JSBNG__event) {\n var ja = ((((this.feedback.canremoveall && this.feedback.isownerpage)) && ((this.feedback.actorforpost !== this.authorProfiles[ia.author]))));\n z.undoRemoveComment(ia.id, ja, {\n source: this.source,\n target: JSBNG__event.target\n });\n },\n _onCommentHideAsSpam: function(ia, JSBNG__event) {\n z.setHideAsSpam(ia.id, true, {\n source: this.source,\n target: JSBNG__event.target\n });\n },\n _onCommentMarkAsNotSpam: function(ia, JSBNG__event) {\n z.setHideAsSpam(ia.id, false, {\n source: this.source,\n target: JSBNG__event.target\n });\n },\n _onCommentTranslate: function(ia, JSBNG__event) {\n z.translateComment(ia, {\n source: this.source,\n target: JSBNG__event.target\n });\n },\n _onCommentInlineBanChange: function(ia, ja, JSBNG__event) {\n z.banUser(ia, this.feedback.ownerid, ja, {\n source: this.source,\n target: JSBNG__event.target\n });\n },\n _onCommentInlineBan: function(ia, JSBNG__event) {\n this._onCommentInlineBanChange(ia, true, JSBNG__event);\n },\n _onCommentUndoInlineBan: function(ia, JSBNG__event) {\n this._onCommentInlineBanChange(ia, false, JSBNG__event);\n },\n _fetchSpamComments: function(ia, ja) {\n z.fetchSpamComments(this.id, ia, ja, this._contextArgs.viewas);\n },\n _removePreview: function(ia, JSBNG__event) {\n z.removePreview(ia, {\n source: this.source,\n target: JSBNG__event.target\n });\n },\n _retrySubmit: function(ia) {\n h.loadModules([\"UFIRetryActions\",], function(ja) {\n ja.retrySubmit(ia, {\n source: this.source\n });\n }.bind(this));\n },\n _ensureCommentsExpanded: function() {\n if (this._verifiedCommentsExpanded) {\n return;\n }\n ;\n ;\n var ia = o.byTag(this.root, \"form\");\n if (ia) {\n i.removeClass(ia, \"collapsed_comments\");\n this._verifiedCommentsExpanded = true;\n }\n ;\n ;\n },\n render: function(ia) {\n var ja = ((this.comments.length || !ca(this.feedback.likesentences.current)));\n if (((ja && ga(ia)))) {\n this._ensureCommentsExpanded();\n }\n ;\n ;\n if (((this._loggingOffset === null))) {\n this._loggingOffset = ((((this.ranges[this.orderingMode].offset + this.comments.length)) - 1));\n }\n ;\n ;\n var ka = ((this.feedback.replysocialsentencemaxreplies || -1)), la = {\n };\n la[this.id] = v.getDeletedCount(this.id);\n this.comments.forEach(function(oa) {\n la[oa.id] = v.getDeletedCount(oa.id);\n });\n var ma = ba({\n }, this.replyRanges);\n ma[this.id] = this.ranges[this.orderingMode];\n ma = new l(ma);\n var na = s({\n feedback: this.feedback,\n id: this.id,\n onTargetLikeToggle: this._onTargetLikeToggle.bind(this),\n onCommentLikeToggle: this._onCommentLikeToggle.bind(this),\n onCommentRemove: this._onCommentRemove.bind(this),\n onCommentHideAsSpam: this._onCommentHideAsSpam.bind(this),\n onCommentMarkAsNotSpam: this._onCommentMarkAsNotSpam.bind(this),\n onCommentEdit: this._onCommentEdit.bind(this),\n onCommentOneClickRemove: this._onCommentOneClickRemove.bind(this),\n onCommentUndoOneClickRemove: this._onCommentUndoOneClickRemove.bind(this),\n onCommentTranslate: this._onCommentTranslate.bind(this),\n onCommentInlineBan: this._onCommentInlineBan.bind(this),\n onCommentUndoInlineBan: this._onCommentUndoInlineBan.bind(this),\n onEditAttempt: this._onEditAttempt.bind(this),\n onCancelEdit: this._onEditReset.bind(this),\n onChangeRange: this._changeRange.bind(this),\n onSpamFetch: this._fetchSpamComments.bind(this),\n onPreviewRemove: this._removePreview.bind(this),\n onRetrySubmit: this._retrySubmit.bind(this),\n onOrderingModeChange: this._onOrderingModeChange.bind(this),\n contextArgs: this._contextArgs,\n repliesMap: this.repliesMap,\n showRepliesMap: this.showRepliesMap,\n showReplySocialSentenceMap: this.showReplySocialSentenceMap,\n commentCounts: this.commentcounts,\n deletedCounts: la,\n availableComments: this.comments,\n source: this.source,\n availableRanges: ma,\n pageSize: w.defaultPageSize,\n authorProfiles: this.authorProfiles,\n instanceid: this._ufiInstanceID,\n loggingOffset: this._loggingOffset,\n replySocialSentenceMaxReplies: ka,\n giftRecipient: this._giftRecipient,\n orderingMode: this.orderingMode\n });\n this._ufi = p.renderComponent(na, this.root);\n n.updateTimeStamps();\n if (this._getParentForm()) {\n g.inform(\"ufi/changed\", {\n form: this._getParentForm()\n });\n }\n ;\n ;\n if (((((ia != w.UFIPayloadSourceType.INITIAL_SERVER)) && ((ia != w.UFIPayloadSourceType.COLLAPSED_UFI))))) {\n g.inform(\"reflow\");\n }\n ;\n ;\n },\n fetchAndUpdate: function(ia, ja) {\n x.getFeedbackTarget(this.id, function(ka) {\n var la = v.getCommentCount(this.id), ma = fa(this.ranges[this.orderingMode], this.commentcounts[this.id], la, ja);\n v.getCommentsInRange(this.id, ma, this.orderingMode, this._contextArgs.viewas, function(na) {\n var oa = [], pa = {\n }, qa = {\n };\n if (ka.actorforpost) {\n oa.push(ka.actorforpost);\n }\n ;\n ;\n for (var ra = 0; ((ra < na.length)); ra++) {\n if (na[ra].author) {\n oa.push(na[ra].author);\n }\n ;\n ;\n if (na[ra].socialcontext) {\n oa.push(na[ra].socialcontext.topmutualid);\n }\n ;\n ;\n if (((na[ra].replyauthors && na[ra].replyauthors.length))) {\n for (var sa = 0; ((sa < na[ra].replyauthors.length)); sa++) {\n oa.push(na[ra].replyauthors[sa]);\n ;\n };\n }\n ;\n ;\n if (ka.isthreaded) {\n var ta = na[ra].id, ua = v.getCommentCount(ta), va;\n if (this.replyRanges[ta]) {\n va = fa(this.replyRanges[ta], this.commentcounts[ta], ua, ja);\n }\n else va = {\n offset: 0,\n length: Math.min(ua, 2)\n };\n ;\n ;\n pa[ta] = va;\n qa[ta] = ua;\n }\n ;\n ;\n };\n ;\n v.getRepliesInRanges(this.id, pa, function(wa) {\n for (var xa = 0; ((xa < na.length)); xa++) {\n var ya = na[xa].id, za = ((wa[ya] || []));\n for (var ab = 0; ((ab < za.length)); ab++) {\n if (za[ab].author) {\n oa.push(za[ab].author);\n }\n ;\n ;\n if (za[ab].socialcontext) {\n oa.push(za[ab].socialcontext.topmutualid);\n }\n ;\n ;\n };\n ;\n };\n ;\n if (this._contextArgs.giftoccasion) {\n oa.push(ka.actorid);\n }\n ;\n ;\n r.getMulti(oa, function(bb) {\n if (this._contextArgs.giftoccasion) {\n this._giftRecipient = bb[ka.actorid];\n }\n ;\n ;\n this.authorProfiles = bb;\n this.feedback = ka;\n this.commentcounts[this.id] = la;\n this.comments = na;\n this.ranges[this.orderingMode] = ma;\n for (var cb = 0; ((cb < na.length)); cb++) {\n var db = na[cb].id, eb = pa[db];\n this.repliesMap[db] = wa[db];\n this.replyRanges[db] = eb;\n this.commentcounts[db] = qa[db];\n this.showRepliesMap[db] = ((eb && ((eb.length > 0))));\n if (((((this.showReplySocialSentenceMap[db] === undefined)) && ((qa[db] > 0))))) {\n this.showReplySocialSentenceMap[db] = !this.showRepliesMap[db];\n }\n ;\n ;\n };\n ;\n ia(ja);\n if (((ja == w.UFIPayloadSourceType.ENDPOINT_COMMENT_FETCH))) {\n g.inform(\"CommentUFI.Pager\");\n }\n ;\n ;\n }.bind(this));\n }.bind(this));\n }.bind(this));\n }.bind(this));\n },\n _changeRange: function(ia, ja) {\n if (((ia == this.id))) {\n this.ranges[this.orderingMode] = ja;\n }\n else this.replyRanges[ia] = ja;\n ;\n ;\n this.fetchAndUpdate(this.render.bind(this), w.UFIPayloadSourceType.USER_ACTION);\n },\n onPageletDestroy: function(ia, ja) {\n if (k.contains(ja.root, this.root)) {\n this._onDestroy();\n }\n ;\n ;\n },\n _onDestroy: function() {\n p.unmountAndReleaseReactRootNode(this.root);\n this.ufiCentralUpdatesSubscriptions.forEach(u.unsubscribe.bind(u));\n g.unsubscribe(this.clearPageletSubscription);\n g.unsubscribe(this.clearPageSubscription);\n ((this.viewasUFICleanSubscription && g.unsubscribe(this.viewasUFICleanSubscription)));\n },\n _onOrderingModeChange: function(ia) {\n this.orderingMode = ia;\n this.fetchAndUpdate(this.render.bind(this), w.UFIPayloadSourceType.USER_ACTION);\n }\n });\n e.exports = ha;\n});\n__d(\"Ease\", [], function(a, b, c, d, e, f) {\n var g = {\n makePowerOut: function(h) {\n return function(i) {\n var j = ((1 - Math.pow(((1 - i)), h)));\n return ((((((j * 10000)) | 0)) / 10000));\n };\n },\n makePowerIn: function(h) {\n return function(i) {\n var j = Math.pow(i, h);\n return ((((((j * 10000)) | 0)) / 10000));\n };\n },\n makePowerInOut: function(h) {\n return function(i) {\n var j = (((((i *= 2) < 1)) ? ((Math.pow(i, h) * 233395)) : ((1 - ((Math.abs(Math.pow(((2 - i)), h)) * 233426))))));\n return ((((((j * 10000)) | 0)) / 10000));\n };\n },\n sineOut: function(h) {\n return Math.sin(((((h * Math.PI)) * 233504)));\n },\n sineIn: function(h) {\n return ((1 - Math.cos(((((h * Math.PI)) * 233557)))));\n },\n sineInOut: function(h) {\n return ((-233593 * ((Math.cos(((Math.PI * h))) - 1))));\n },\n circOut: function(h) {\n return Math.sqrt(((1 - (((--h) * h)))));\n },\n circIn: function(h) {\n return -((Math.sqrt(((1 - ((h * h))))) - 1));\n },\n circInOut: function(h) {\n return (((((h *= 2) < 1)) ? ((-233763 * ((Math.sqrt(((1 - ((h * h))))) - 1)))) : ((233787 * ((Math.sqrt(((1 - (((h -= 2) * h))))) + 1))))));\n },\n bounceOut: function(h) {\n if (((h < ((1 / 2.75))))) {\n return ((((7.5625 * h)) * h));\n }\n else if (((h < ((2 / 2.75))))) {\n return ((((((7.5625 * (h -= ((1.5 / 2.75))))) * h)) + 233923));\n }\n else if (((h < ((2.5 / 2.75))))) {\n return ((((((7.5625 * (h -= ((2.25 / 2.75))))) * h)) + 233981));\n }\n else return ((((((7.5625 * (h -= ((2.625 / 2.75))))) * h)) + 234027))\n \n \n ;\n },\n bounceIn: function(h) {\n return ((1 - g.bounceOut(((1 - h)))));\n },\n bounceInOut: function(h) {\n return ((((h < 234121)) ? ((g.bounceIn(((h * 2))) * 234141)) : ((((g.bounceOut(((((h * 2)) - 1))) * 234163)) + 234166))));\n },\n _makeBouncy: function(h) {\n h = ((h || 1));\n return function(i) {\n i = ((((((1 - Math.cos(((((i * Math.PI)) * h))))) * ((1 - i)))) + i));\n return ((((i <= 1)) ? i : ((2 - i))));\n };\n },\n makeBounceOut: function(h) {\n return this._makeBouncy(h);\n },\n makeBounceIn: function(h) {\n var i = this._makeBouncy(h);\n return function(j) {\n return ((1 - i(((1 - j)))));\n };\n },\n makeElasticOut: function(h, i) {\n ((((h < 1)) && (h = 1)));\n var j = ((Math.PI * 2));\n return function(k) {\n if (((((k === 0)) || ((k === 1))))) {\n return k;\n }\n ;\n ;\n var l = ((((i / j)) * Math.asin(((1 / h)))));\n return ((((((h * Math.pow(2, ((-10 * k))))) * Math.sin(((((((k - l)) * j)) / i))))) + 1));\n };\n },\n makeElasticIn: function(h, i) {\n ((((h < 1)) && (h = 1)));\n var j = ((Math.PI * 2));\n return function(k) {\n if (((((k === 0)) || ((k === 1))))) {\n return k;\n }\n ;\n ;\n var l = ((((i / j)) * Math.asin(((1 / h)))));\n return -((((h * Math.pow(2, ((10 * (k -= 1)))))) * Math.sin(((((((k - l)) * j)) / i)))));\n };\n },\n makeElasticInOut: function(h, i) {\n ((((h < 1)) && (h = 1)));\n i *= 1.5;\n var j = ((Math.PI * 2));\n return function(k) {\n var l = ((((i / j)) * Math.asin(((1 / h)))));\n return (((((k *= 2) < 1)) ? ((((((-234914 * h)) * Math.pow(2, ((10 * (k -= 1)))))) * Math.sin(((((((k - l)) * j)) / i))))) : ((1 + ((((((234963 * h)) * Math.pow(2, ((-10 * (k -= 1)))))) * Math.sin(((((((k - l)) * j)) / i)))))))));\n };\n },\n makeBackOut: function(h) {\n return function(i) {\n return ((((((--i * i)) * ((((((h + 1)) * i)) + h)))) + 1));\n };\n },\n makeBackIn: function(h) {\n return function(i) {\n return ((((i * i)) * ((((((h + 1)) * i)) - h))));\n };\n },\n makeBackInOut: function(h) {\n h *= 1.525;\n return function(i) {\n return (((((i *= 2) < 1)) ? ((235232 * ((((i * i)) * ((((((h + 1)) * i)) - h)))))) : ((235253 * (((((((i -= 2) * i)) * ((((((h + 1)) * i)) + h)))) + 2))))));\n };\n },\n easeOutExpo: function(h) {\n return ((-Math.pow(2, ((-10 * h))) + 1));\n }\n };\n g.elasticOut = g.makeElasticOut(1, 235372);\n g.elasticIn = g.makeElasticIn(1, 235406);\n g.elasticInOut = g.makeElasticInOut(1, 235446);\n g.backOut = g.makeBackOut(1.7);\n g.backIn = g.makeBackIn(1.7);\n g.backInOut = g.makeBackInOut(1.7);\n e.exports = g;\n});\n__d(\"EntstreamCollapsedUFIActions\", [\"PopupWindow\",\"React\",\"TrackingNodes\",\"URI\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"PopupWindow\"), h = b(\"React\"), i = b(\"TrackingNodes\"), j = b(\"URI\"), k = b(\"cx\"), l = b(\"tx\"), m = h.createClass({\n displayName: \"EntstreamCollapsedUFIActions\",\n getLikeButton: function() {\n return this.refs.likeButton.getDOMNode();\n },\n getLikeIcon: function() {\n return this.refs.likeIcon.getDOMNode();\n },\n render: function() {\n var n;\n if (((this.props.shareHref !== null))) {\n var o = i.getTrackingInfo(i.types.SHARE_LINK), p = j(this.props.shareHref), q = [h.DOM.i({\n className: \"_6k1 _528f\"\n }),\"Share\",];\n if (((p.getPath().indexOf(\"/ajax\") === 0))) {\n n = h.DOM.a({\n ajaxify: this.props.shareHref,\n className: \"_6j_ _5cix\",\n \"data-ft\": o,\n href: \"#\",\n rel: \"dialog\",\n title: \"Share this item\"\n }, q);\n }\n else {\n var r = function() {\n g.open(this.props.shareHref, 480, 600);\n return false;\n }.bind(this);\n n = h.DOM.a({\n className: \"_6j_ _5cix\",\n \"data-ft\": o,\n href: this.props.shareHref,\n onClick: r,\n target: \"_blank\",\n title: \"Share this item\"\n }, q);\n }\n ;\n ;\n }\n ;\n ;\n var s;\n if (this.props.canComment) {\n var t = \"_6k4 _528f\", u = [h.DOM.i({\n className: t\n }),\"JSBNG__Comment\",], v = \"_6k2 _5cix\", w = i.getTrackingInfo(i.types.COMMENT_LINK);\n if (this.props.storyHref) {\n s = h.DOM.a({\n className: v,\n \"data-ft\": w,\n href: this.props.storyHref,\n target: \"_blank\",\n title: \"Write a comment...\"\n }, u);\n }\n else s = h.DOM.a({\n className: v,\n \"data-ft\": w,\n href: \"#\",\n onClick: this.props.onCommentClick,\n title: \"Write a comment...\"\n }, u);\n ;\n ;\n }\n ;\n ;\n var x;\n if (this.props.canLike) {\n var y = ((((((this.props.hasViewerLiked ? \"_6k5\" : \"\")) + ((\" \" + \"_6k6\")))) + ((\" \" + \"_5cix\")))), z = i.getTrackingInfo(((this.props.hasViewerLiked ? i.types.UNLIKE_LINK : i.types.LIKE_LINK))), aa = ((this.props.hasViewerLiked ? \"Unlike this\" : \"Like this\"));\n x = h.DOM.a({\n className: y,\n \"data-ft\": z,\n href: \"#\",\n onClick: this.props.onLike,\n onMouseDown: this.props.onLikeMouseDown,\n ref: \"likeButton\",\n title: aa\n }, h.DOM.i({\n className: \"_6k7 _528f\",\n ref: \"likeIcon\"\n }), \"Like\", h.DOM.div({\n className: \"_55k4\"\n }));\n }\n ;\n ;\n return (h.DOM.div({\n className: \"_5ciy\"\n }, x, s, n));\n }\n });\n e.exports = m;\n});\n__d(\"EntstreamCollapsedUFISentence\", [\"Bootloader\",\"NumberFormat\",\"ProfileBrowserLink\",\"ProfileBrowserTypes\",\"React\",\"URI\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"NumberFormat\"), i = b(\"ProfileBrowserLink\"), j = b(\"ProfileBrowserTypes\"), k = b(\"React\"), l = b(\"URI\"), m = b(\"cx\"), n = b(\"tx\"), o = k.createClass({\n displayName: \"EntstreamCollapsedUFISentence\",\n _showShareDialog: function(JSBNG__event) {\n JSBNG__event = JSBNG__event.nativeEvent;\n if (JSBNG__event.isDefaultRequested()) {\n return;\n }\n ;\n ;\n g.loadModules([\"EntstreamShareOverlay\",], function(p) {\n p.display(this.props.feedback.targetfbid, this._getShareString());\n }.bind(this));\n JSBNG__event.prevent();\n },\n _getShareString: function() {\n var p = this.props.feedback.sharecount, q = ((this.props.numberDelimiter || \",\"));\n if (((p === 1))) {\n return \"1 Share\";\n }\n else if (((p > 1))) {\n var r = h.formatIntegerWithDelimiter(p, q);\n return n._(\"{count} Shares\", {\n count: r\n });\n }\n \n ;\n ;\n },\n render: function() {\n var p = this.props.feedback, q = p.likecount, r = this.props.commentCount, s = p.sharecount, t = p.seencount, u = this.props.hasAttachedUFIExpanded, v = ((this.props.numberDelimiter || \",\"));\n if (u) {\n q = 0;\n r = 0;\n }\n ;\n ;\n if (((((((!q && !r)) && !s)) && !t))) {\n return k.DOM.span(null);\n }\n ;\n ;\n var w;\n if (((q === 1))) {\n w = \"1 Like\";\n }\n else if (((q > 1))) {\n var x = h.formatIntegerWithDelimiter(q, v);\n w = n._(\"{count} Likes\", {\n count: x\n });\n }\n \n ;\n ;\n var y;\n if (((r === 1))) {\n y = \"1 Comment\";\n }\n else if (((r > 1))) {\n var z = h.formatIntegerWithDelimiter(r, v);\n y = n._(\"{count} Comments\", {\n count: z\n });\n }\n \n ;\n ;\n var aa = this._getShareString(), ba, ca, da;\n if (w) {\n ca = new l(\"/ajax/like/tooltip.php\").setQueryData({\n comment_fbid: p.targetfbid,\n comment_from: p.actorforpost,\n seen_user_fbids: true\n });\n var ea = ((((y || aa)) ? \"prm\" : \"\"));\n ba = j.LIKES;\n da = {\n id: p.targetfbid\n };\n var fa = i.constructDialogURI(ba, da).toString();\n if (this.props.storyHref) {\n w = null;\n }\n else w = k.DOM.a({\n ajaxify: fa,\n className: ea,\n href: i.constructPageURI(ba, da).toString(),\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"data-tooltip-uri\": ca.toString(),\n rel: \"dialog\"\n }, w);\n ;\n ;\n }\n ;\n ;\n var ga;\n if (((t > 0))) {\n ba = j.GROUP_MESSAGE_VIEWERS;\n da = {\n id: p.targetfbid\n };\n var ha = i.constructDialogURI(ba, da), ia = i.constructPageURI(ba, da);\n ca = new l(\"/ajax/ufi/seen_tooltip.php\").setQueryData({\n ft_ent_identifier: p.entidentifier,\n displayed_count: t\n });\n var ja = h.formatIntegerWithDelimiter(t, v);\n if (p.seenbyall) {\n ga = \"Seen by everyone\";\n }\n else ga = ((((ja == 1)) ? \"Seen by 1\" : n._(\"Seen by {count}\", {\n count: ja\n })));\n ;\n ;\n ga = k.DOM.a({\n ajaxify: ha.toString(),\n \"data-hover\": \"tooltip\",\n \"data-tooltip-alignh\": \"center\",\n \"data-tooltip-uri\": ca.toString(),\n href: ia.toString(),\n rel: \"dialog\",\n tabindex: \"-1\"\n }, ga);\n }\n ;\n ;\n if (y) {\n var ka = ((aa ? \"prm\" : \"\"));\n if (this.props.storyHref) {\n y = k.DOM.a({\n className: ka,\n href: this.props.storyHref,\n target: \"_blank\"\n }, y);\n }\n else y = k.DOM.a({\n className: ka,\n onClick: this.props.onCommentClick\n }, y);\n ;\n ;\n }\n ;\n ;\n if (aa) {\n var la = new l(\"/shares/view\").setSubdomain(\"www\").setQueryData({\n id: p.targetfbid\n });\n if (this.props.storyHref) {\n aa = k.DOM.a({\n href: la.toString(),\n target: \"_blank\"\n }, aa);\n }\n else aa = k.DOM.a({\n href: la.toString(),\n onClick: this._showShareDialog,\n rel: \"ignore\"\n }, aa);\n ;\n ;\n }\n ;\n ;\n return (k.DOM.span({\n className: \"_5civ\"\n }, w, y, aa, ga));\n }\n });\n e.exports = o;\n});\n__d(\"EntstreamCollapsedUFI\", [\"JSBNG__Event\",\"Animation\",\"BrowserSupport\",\"CSS\",\"DOM\",\"Ease\",\"EntstreamCollapsedUFIActions\",\"EntstreamCollapsedUFISentence\",\"React\",\"TrackingNodes\",\"Vector\",\"cx\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Animation\"), i = b(\"BrowserSupport\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Ease\"), m = b(\"EntstreamCollapsedUFIActions\"), n = b(\"EntstreamCollapsedUFISentence\"), o = b(\"React\"), p = b(\"TrackingNodes\"), q = b(\"Vector\"), r = b(\"cx\"), s = b(\"queryThenMutateDOM\"), t = 16, u = o.createClass({\n displayName: \"EntstreamCollapsedUFI\",\n _animate: function(v, w, x, y) {\n if (!i.hasCSSTransforms()) {\n return;\n }\n ;\n ;\n var z = this.refs.icons.getLikeIcon();\n ((this._animation && this._animation.JSBNG__stop()));\n this._animation = new h(z).from(\"scaleX\", v).from(\"scaleY\", v).to(\"scaleX\", w).to(\"scaleY\", w).duration(x);\n ((y && this._animation.ease(y)));\n this._animation.go();\n },\n bounceLike: function() {\n this._animate(1.35, 1, 750, l.bounceOut);\n },\n shrinkLike: function() {\n this._animate(1, 241196, 150);\n this._mouseUpListener = g.listen(JSBNG__document.body, \"mouseup\", this._onMouseUp);\n },\n _onMouseUp: function(JSBNG__event) {\n this._mouseUpListener.remove();\n if (!k.contains(this.refs.icons.getLikeButton(), JSBNG__event.getTarget())) {\n this._animate(241417, 1, 150);\n }\n ;\n ;\n },\n render: function() {\n var v = this.props.feedback, w = p.getTrackingInfo(p.types.BLINGBOX);\n return (o.DOM.div({\n className: \"clearfix\"\n }, m({\n canLike: v.viewercanlike,\n canComment: v.cancomment,\n hasViewerLiked: v.hasviewerliked,\n onCommentClick: this.props.onCommentClick,\n onLike: this.props.onLike,\n onLikeMouseDown: this.props.onLikeMouseDown,\n ref: \"icons\",\n shareHref: this.props.shareHref,\n storyHref: this.props.storyHref\n }), o.DOM.div({\n className: \"_6j-\",\n \"data-ft\": w,\n ref: \"sentence\"\n }, n({\n commentCount: this.props.commentCount,\n feedback: v,\n hasAttachedUFIExpanded: this.props.hasAttachedUFIExpanded,\n numberDelimiter: this.props.numberDelimiter,\n onCommentClick: this.props.onCommentClick,\n storyHref: this.props.storyHref\n }))));\n },\n componentDidMount: function(v) {\n var w = this.refs.icons.getDOMNode(), x = this.refs.sentence.getDOMNode(), y, z, aa;\n s(function() {\n y = q.getElementDimensions(v).x;\n z = q.getElementDimensions(w).x;\n aa = q.getElementDimensions(x).x;\n }, function() {\n if (((((z + aa)) > ((y + t))))) {\n j.addClass(v, \"_4nej\");\n }\n ;\n ;\n });\n }\n });\n e.exports = u;\n});\n__d(\"EntstreamCollapsedUFIController\", [\"Bootloader\",\"CommentPrelude\",\"CSS\",\"DOM\",\"EntstreamCollapsedUFI\",\"React\",\"ReactMount\",\"UFICentralUpdates\",\"UFIComments\",\"UFIConstants\",\"UFIFeedbackTargets\",\"UFIUserActions\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"CommentPrelude\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"EntstreamCollapsedUFI\"), l = b(\"React\"), m = b(\"ReactMount\"), n = b(\"UFICentralUpdates\"), o = b(\"UFIComments\"), p = b(\"UFIConstants\"), q = b(\"UFIFeedbackTargets\"), r = b(\"UFIUserActions\"), s = b(\"copyProperties\"), t = b(\"cx\"), u = p.UFIPayloadSourceType;\n function v(w, x, y) {\n this._root = w;\n this._id = y.ftentidentifier;\n this._contextArgs = y;\n this._ufiVisible = y.hasattachedufiexpanded;\n n.subscribe(\"feedback-updated\", function(z, aa) {\n if (((((aa.payloadSource != u.INITIAL_SERVER)) && ((this._id in aa.updates))))) {\n this.render();\n }\n ;\n ;\n }.bind(this));\n n.handleUpdate(p.UFIPayloadSourceType.COLLAPSED_UFI, x);\n g.loadModules([\"ScrollAwareDOM\",], function(z) {\n m.scrollMonitor = z.monitor;\n });\n };\n;\n s(v.prototype, {\n _onLike: function(JSBNG__event) {\n q.getFeedbackTarget(this._id, function(w) {\n r.changeLike(this._id, !w.hasviewerliked, {\n source: this._contextArgs.source,\n target: JSBNG__event.target,\n rootid: j.getID(this._root)\n });\n }.bind(this));\n this._ufi.bounceLike();\n JSBNG__event.preventDefault();\n },\n _onLikeMouseDown: function(JSBNG__event) {\n this._ufi.shrinkLike();\n JSBNG__event.preventDefault();\n },\n _onCommentClick: function(JSBNG__event) {\n if (!this._ufiVisible) {\n this._ufiVisible = true;\n i.addClass(this._root, \"_6ka\");\n }\n ;\n ;\n h.click(this._root);\n JSBNG__event.preventDefault();\n },\n render: function() {\n q.getFeedbackTarget(this._id, function(w) {\n var x = k({\n commentCount: o.getCommentCount(this._id),\n feedback: w,\n hasAttachedUFIExpanded: this._contextArgs.hasattachedufiexpanded,\n numberDelimiter: this._contextArgs.numberdelimiter,\n onCommentClick: this._onCommentClick.bind(this),\n onLike: this._onLike.bind(this),\n onLikeMouseDown: this._onLikeMouseDown.bind(this),\n shareHref: this._contextArgs.sharehref,\n storyHref: this._contextArgs.storyhref\n });\n l.renderComponent(x, this._root);\n this._ufi = ((this._ufi || x));\n }.bind(this));\n }\n });\n e.exports = v;\n});\n__d(\"TypeaheadUtil\", [\"repeatString\",], function(a, b, c, d, e, f) {\n var g = b(\"repeatString\"), h = /[ ]+/g, i = /[^ ]+/g, j = /[.,+*?$|#{}()\\^\\-\\[\\]\\\\\\/!@%'\"~=<>_:;\\u30fb\\u3001\\u3002\\u3008-\\u3011\\u3014-\\u301f\\uff1a-\\uff1f\\uff01-\\uff0f\\uff3b-\\uff40\\uff5b-\\uff65\\u2E2E\\u061f\\u066a-\\u066c\\u061b\\u060c\\u060d\\uFD3e\\uFD3F\\u1801\\u0964\\u104a\\u104b\\u2010-\\u2027\\u2030-\\u205e\\u00a1-\\u00b1\\u00b4-\\u00b8\\u00ba\\u00bb\\u00bf]/g, k = {\n }, l = {\n a: \"\\u0430 \\u00e0 \\u00e1 \\u00e2 \\u00e3 \\u00e4 \\u00e5\",\n b: \"\\u0431\",\n c: \"\\u0446 \\u00e7 \\u010d\",\n d: \"\\u0434 \\u00f0 \\u010f \\u0111\",\n e: \"\\u044d \\u0435 \\u00e8 \\u00e9 \\u00ea \\u00eb \\u011b\",\n f: \"\\u0444\",\n g: \"\\u0433 \\u011f\",\n h: \"\\u0445 \\u0127\",\n i: \"\\u0438 \\u00ec \\u00ed \\u00ee \\u00ef \\u0131\",\n j: \"\\u0439\",\n k: \"\\u043a \\u0138\",\n l: \"\\u043b \\u013e \\u013a \\u0140 \\u0142\",\n m: \"\\u043c\",\n n: \"\\u043d \\u00f1 \\u0148 \\u0149 \\u014b\",\n o: \"\\u043e \\u00f8 \\u00f6 \\u00f5 \\u00f4 \\u00f3 \\u00f2\",\n p: \"\\u043f\",\n r: \"\\u0440 \\u0159 \\u0155\",\n s: \"\\u0441 \\u015f \\u0161 \\u017f\",\n t: \"\\u0442 \\u0165 \\u0167 \\u00fe\",\n u: \"\\u0443 \\u044e \\u00fc \\u00fb \\u00fa \\u00f9 \\u016f\",\n v: \"\\u0432\",\n y: \"\\u044b \\u00ff \\u00fd\",\n z: \"\\u0437 \\u017e\",\n ae: \"\\u00e6\",\n oe: \"\\u0153\",\n ts: \"\\u0446\",\n ch: \"\\u0447\",\n ij: \"\\u0133\",\n sh: \"\\u0448\",\n ss: \"\\u00df\",\n ya: \"\\u044f\"\n };\n {\n var fin99keys = ((window.top.JSBNG_Replay.forInKeys)((l))), fin99i = (0);\n var m;\n for (; (fin99i < fin99keys.length); (fin99i++)) {\n ((m) = (fin99keys[fin99i]));\n {\n var n = l[m].split(\" \");\n for (var o = 0; ((o < n.length)); o++) {\n k[n[o]] = m;\n ;\n };\n ;\n };\n };\n };\n;\n var p = {\n };\n function q(w) {\n return ((w ? w.replace(j, \" \") : \"\"));\n };\n;\n function r(w) {\n w = w.toLowerCase();\n var x = \"\", y = \"\";\n for (var z = w.length; z--; ) {\n y = w.charAt(z);\n x = ((((k[y] || y)) + x));\n };\n ;\n return x.replace(h, \" \");\n };\n;\n function s(w) {\n var x = [], y = i.exec(w);\n while (y) {\n y = y[0];\n x.push(y);\n y = i.exec(w);\n };\n ;\n return x;\n };\n;\n function t(w, x) {\n if (!p.hasOwnProperty(w)) {\n var y = r(w), z = q(y);\n p[w] = {\n value: w,\n flatValue: y,\n tokens: s(z),\n isPrefixQuery: ((z && ((z[((z.length - 1))] != \" \"))))\n };\n }\n ;\n ;\n if (((x && ((typeof p[w].sortedTokens == \"undefined\"))))) {\n p[w].sortedTokens = p[w].tokens.slice();\n p[w].sortedTokens.sort(function(aa, ba) {\n return ((ba.length - aa.length));\n });\n }\n ;\n ;\n return p[w];\n };\n;\n function u(w, x, y) {\n var z = t(x, ((w == \"prefix\"))), aa = ((((w == \"prefix\")) ? z.sortedTokens : z.tokens)), ba = t(y).tokens, ca = {\n }, da = ((((z.isPrefixQuery && ((w == \"query\")))) ? ((aa.length - 1)) : null)), ea = function(fa, ga) {\n for (var ha = 0; ((ha < ba.length)); ++ha) {\n var ia = ba[ha];\n if (((!ca[ha] && ((((ia == fa)) || ((((((((w == \"query\")) && ((ga === da)))) || ((w == \"prefix\")))) && ((ia.indexOf(fa) === 0))))))))) {\n return (ca[ha] = true);\n }\n ;\n ;\n };\n ;\n return false;\n };\n return Boolean(((aa.length && aa.every(ea))));\n };\n;\n var v = {\n flatten: r,\n parse: t,\n isExactMatch: u.bind(null, \"exact\"),\n isQueryMatch: u.bind(null, \"query\"),\n isPrefixMatch: u.bind(null, \"prefix\")\n };\n e.exports = v;\n});\n__d(\"KanaUtils\", [], function(a, b, c, d, e, f) {\n var g = 12353, h = 12436, i = 96, j = {\n normalizeHiragana: function(k) {\n if (((k !== null))) {\n var l = [];\n for (var m = 0; ((m < k.length)); m++) {\n var n = k.charCodeAt(m);\n if (((((n < g)) || ((n > h))))) {\n l.push(k.charAt(m));\n }\n else {\n var o = ((n + i));\n l.push(String.fromCharCode(o));\n }\n ;\n ;\n };\n ;\n return l.join(\"\");\n }\n else return null\n ;\n }\n };\n e.exports = j;\n});\n__d(\"DataSource\", [\"ArbiterMixin\",\"AsyncRequest\",\"TypeaheadUtil\",\"copyProperties\",\"createArrayFrom\",\"createObjectFrom\",\"emptyFunction\",\"KanaUtils\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"TypeaheadUtil\"), j = b(\"copyProperties\"), k = b(\"createArrayFrom\"), l = b(\"createObjectFrom\"), m = b(\"emptyFunction\"), n = b(\"KanaUtils\");\n function o(p) {\n this._maxResults = ((p.maxResults || 10));\n this.token = p.token;\n this.queryData = ((p.queryData || {\n }));\n this.queryEndpoint = ((p.queryEndpoint || \"\"));\n this.bootstrapData = ((p.bootstrapData || {\n }));\n this.bootstrapEndpoint = ((p.bootstrapEndpoint || \"\"));\n this._exclusions = ((p.exclusions || []));\n this._indexedFields = ((p.indexedFields || [\"text\",\"tokens\",]));\n this._titleFields = ((p.titleFields || []));\n this._alwaysPrefixMatch = ((p.alwaysPrefixMatch || false));\n this._deduplicationKey = ((p.deduplicationKey || null));\n this._enabledQueryCache = ((p.enabledQueryCache || true));\n this._queryExactMatch = ((p.queryExactMatch || false));\n this._acrossTransitions = ((p.acrossTransitions || false));\n this._kanaNormalization = ((p.kanaNormalization || false));\n this._minQueryLength = ((p.minQueryLength || -1));\n this._minExactMatchLength = 4;\n this._filters = [];\n };\n;\n j(o.prototype, g, {\n events: [\"bootstrap\",\"query\",\"respond\",],\n init: function() {\n this.init = m;\n this._fields = l(this._indexedFields);\n this._activeQueries = 0;\n this.dirty();\n },\n dirty: function() {\n this.value = \"\";\n this._bootstrapped = false;\n this._bootstrapping = false;\n this._data = {\n };\n this.localCache = {\n };\n this.queryCache = {\n };\n this.inform(\"dirty\", {\n });\n return this;\n },\n bootstrap: function() {\n if (this._bootstrapped) {\n return;\n }\n ;\n ;\n this.bootstrapWithoutToken();\n this._bootstrapped = true;\n this._bootstrapping = true;\n this.inform(\"bootstrap\", {\n bootstrapping: true\n });\n },\n bootstrapWithoutToken: function() {\n this.fetch(this.bootstrapEndpoint, this.bootstrapData, {\n bootstrap: true,\n token: this.token\n });\n },\n bootstrapWithToken: function() {\n var p = j({\n }, this.bootstrapData);\n p.token = this.token;\n this.fetch(this.bootstrapEndpoint, p, {\n bootstrap: true,\n replaceCache: true\n });\n },\n query: function(p, q, r, s) {\n this.inform(\"beforeQuery\", {\n value: p,\n local_only: q,\n exclusions: r,\n time_waited: s\n });\n if (!this._enabledQueryCache) {\n this.queryCache = {\n };\n }\n ;\n ;\n var t = this.buildUids(p, [], r), u = this.respond(p, t);\n this.value = p;\n this.inform(\"query\", {\n value: p,\n results: u\n });\n var v = this._normalizeString(p).flatValue;\n if (((((((((((q || !v)) || this._isQueryTooShort(v))) || !this.queryEndpoint)) || this.getQueryCache().hasOwnProperty(v))) || !this.shouldFetchMoreResults(u)))) {\n return false;\n }\n ;\n ;\n this.inform(\"queryEndpoint\", {\n value: p\n });\n this.fetch(this.queryEndpoint, this.getQueryData(p, t), {\n value: p,\n exclusions: r\n });\n return true;\n },\n _isQueryTooShort: function(p) {\n return ((p.length < this._minQueryLength));\n },\n _normalizeString: function(p, q) {\n var r = p;\n if (this._kanaNormalization) {\n r = n.normalizeHiragana(p);\n }\n ;\n ;\n return i.parse(r, q);\n },\n shouldFetchMoreResults: function(p) {\n return ((p.length < this._maxResults));\n },\n getQueryData: function(p, q) {\n var r = j({\n value: p\n }, ((this.queryData || {\n })));\n q = ((q || []));\n if (q.length) {\n r.existing_ids = q.join(\",\");\n }\n ;\n ;\n if (this._bootstrapping) {\n r.bsp = true;\n }\n ;\n ;\n return r;\n },\n setQueryData: function(p, q) {\n if (q) {\n this.queryData = {\n };\n }\n ;\n ;\n j(this.queryData, p);\n return this;\n },\n setBootstrapData: function(p, q) {\n if (q) {\n this.bootstrapData = {\n };\n }\n ;\n ;\n j(this.bootstrapData, p);\n return this;\n },\n getExclusions: function() {\n return k(this._exclusions);\n },\n setExclusions: function(p) {\n this._exclusions = ((p || []));\n },\n addFilter: function(p) {\n var q = this._filters;\n q.push(p);\n return {\n remove: function() {\n q.splice(q.indexOf(p), 1);\n }\n };\n },\n clearFilters: function() {\n this._filters = [];\n },\n respond: function(p, q, r) {\n var s = this.buildData(q);\n this.inform(\"respond\", {\n value: p,\n results: s,\n isAsync: !!r\n });\n return s;\n },\n asyncErrorHandler: m,\n fetch: function(p, q, r) {\n if (!p) {\n return;\n }\n ;\n ;\n var s = new h().setURI(p).setData(q).setMethod(\"GET\").setReadOnly(true).setAllowCrossPageTransition(this._acrossTransitions).setHandler(function(t) {\n this.fetchHandler(t, ((r || {\n })));\n }.bind(this));\n if (((p === this.queryEndpoint))) {\n s.setFinallyHandler(function() {\n this._activeQueries--;\n if (!this._activeQueries) {\n this.inform(\"activity\", {\n activity: false\n });\n }\n ;\n ;\n }.bind(this));\n }\n ;\n ;\n s.setErrorHandler(this.asyncErrorHandler);\n this.inform(\"beforeFetch\", {\n request: s,\n fetch_context: r\n });\n s.send();\n if (((p === this.queryEndpoint))) {\n if (!this._activeQueries) {\n this.inform(\"activity\", {\n activity: true\n });\n }\n ;\n ;\n this._activeQueries++;\n }\n ;\n ;\n },\n fetchHandler: function(p, q) {\n var r = q.value, s = q.exclusions;\n if (((!r && q.replaceCache))) {\n this.localCache = {\n };\n }\n ;\n ;\n this.inform(\"buildQueryCache\", {\n });\n var t = p.getPayload().entries;\n this.addEntries(t, r);\n this.inform(\"fetchComplete\", {\n entries: t,\n response: p,\n value: r,\n fetch_context: q\n });\n var u = ((((!r && this.value)) ? this.value : r));\n this.respond(u, this.buildUids(u, [], s), true);\n if (!r) {\n if (this._bootstrapping) {\n this._bootstrapping = false;\n this.inform(\"bootstrap\", {\n bootstrapping: false\n });\n }\n ;\n ;\n if (((q.token && ((p.getPayload().token !== q.token))))) {\n this.bootstrapWithToken();\n }\n ;\n ;\n }\n ;\n ;\n },\n addEntries: function(p, q) {\n var r = this.processEntries(k(((p || []))), q), s = this.buildUids(q, r);\n if (q) {\n var t = this.getQueryCache();\n t[this._normalizeString(q).flatValue] = s;\n }\n else this.fillCache(s);\n ;\n ;\n },\n processEntries: function(p, q) {\n return p.map(function(r, s) {\n var t = (r.uid = ((r.uid + \"\"))), u = this.getEntry(t);\n if (!u) {\n u = r;\n u.query = q;\n this.setEntry(t, u);\n }\n else j(u, r);\n ;\n ;\n ((((u.index === undefined)) && (u.index = s)));\n return t;\n }, this);\n },\n getAllEntries: function() {\n return ((this._data || {\n }));\n },\n getEntry: function(p) {\n return ((this._data[p] || null));\n },\n setEntry: function(p, q) {\n this._data[p] = q;\n },\n fillCache: function(p) {\n var q = this.localCache;\n p.forEach(function(r) {\n var s = this.getEntry(r);\n if (!s) {\n return;\n }\n ;\n ;\n s.bootstrapped = true;\n var t = this._normalizeString(this.getTextToIndex(s)).tokens;\n for (var u = 0, v = t.length; ((u < v)); ++u) {\n var w = t[u];\n if (!q.hasOwnProperty(w)) {\n q[w] = {\n };\n }\n ;\n ;\n q[w][r] = true;\n };\n ;\n }, this);\n },\n getTextToIndex: function(p) {\n if (((p.textToIndex && !p.needs_update))) {\n return p.textToIndex;\n }\n ;\n ;\n p.needs_update = false;\n p.textToIndex = this.getTextToIndexFromFields(p, this._indexedFields);\n return p.textToIndex;\n },\n getTextToIndexFromFields: function(p, q) {\n var r = [];\n for (var s = 0; ((s < q.length)); ++s) {\n var t = p[q[s]];\n if (t) {\n r.push(((t.join ? t.join(\" \") : t)));\n }\n ;\n ;\n };\n ;\n return r.join(\" \");\n },\n mergeUids: function(p, q, r, s) {\n this.inform(\"mergeUids\", {\n local_uids: p,\n query_uids: q,\n new_uids: r,\n value: s\n });\n var t = function(u, v) {\n var w = this.getEntry(u), x = this.getEntry(v);\n if (((w.extended_match !== x.extended_match))) {\n return ((w.extended_match ? 1 : -1));\n }\n ;\n ;\n if (((w.index !== x.index))) {\n return ((w.index - x.index));\n }\n ;\n ;\n if (((w.text.length !== x.text.length))) {\n return ((w.text.length - x.text.length));\n }\n ;\n ;\n return ((w.uid < x.uid));\n }.bind(this);\n this._checkExtendedMatch(s, p);\n return this.deduplicateByKey(p.sort(t).concat(q, r));\n },\n _checkExtendedMatch: function(p, q) {\n var r = ((this._alwaysPrefixMatch ? i.isPrefixMatch : i.isQueryMatch));\n for (var s = 0; ((s < q.length)); ++s) {\n var t = this.getEntry(q[s]);\n t.extended_match = ((t.tokens ? !r(p, t.text) : false));\n };\n ;\n },\n buildUids: function(p, q, r) {\n if (!q) {\n q = [];\n }\n ;\n ;\n if (!p) {\n return q;\n }\n ;\n ;\n if (!r) {\n r = [];\n }\n ;\n ;\n var s = this.buildCacheResults(p, this.localCache), t = this.buildQueryResults(p), u = this.mergeUids(s, t, q, p), v = l(r.concat(this._exclusions)), w = u.filter(function(x) {\n if (((v.hasOwnProperty(x) || !this.getEntry(x)))) {\n return false;\n }\n ;\n ;\n for (var y = 0; ((y < this._filters.length)); ++y) {\n if (!this._filters[y](this.getEntry(x), p)) {\n return false;\n }\n ;\n ;\n };\n ;\n return (v[x] = true);\n }, this);\n return this.uidsIncludingExact(p, w, v);\n },\n uidsIncludingExact: function(p, q, r) {\n var s = q.length;\n if (((((p.length < this._minExactMatchLength)) || ((s <= this._maxResults))))) {\n return q;\n }\n ;\n ;\n for (var t = 0; ((t < s)); ++t) {\n var u = this.getEntry(q[t]);\n ((u.text_lower || (u.text_lower = u.text.toLowerCase())));\n if (((u.text_lower === this._normalizeString(p).flatValue))) {\n if (((t >= this._maxResults))) {\n var v = q.splice(t, 1);\n q.splice(((this._maxResults - 1)), 0, v);\n }\n ;\n ;\n break;\n }\n ;\n ;\n };\n ;\n return q;\n },\n buildData: function(p) {\n var q = [], r = Math.min(p.length, this._maxResults);\n for (var s = 0; ((s < r)); ++s) {\n q.push(this.getEntry(p[s]));\n ;\n };\n ;\n return q;\n },\n findQueryCache: function(p) {\n var q = 0, r = null, s = this.getQueryCache();\n if (this._queryExactMatch) {\n return ((s[p] || []));\n }\n ;\n ;\n {\n var fin100keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin100i = (0);\n var t;\n for (; (fin100i < fin100keys.length); (fin100i++)) {\n ((t) = (fin100keys[fin100i]));\n {\n if (((((p.indexOf(t) === 0)) && ((t.length > q))))) {\n q = t.length;\n r = t;\n }\n ;\n ;\n };\n };\n };\n ;\n return ((s[r] || []));\n },\n buildQueryResults: function(p) {\n var q = this._normalizeString(p).flatValue, r = this.findQueryCache(q);\n if (this.getQueryCache().hasOwnProperty(q)) {\n return r;\n }\n ;\n ;\n return this.filterQueryResults(p, r);\n },\n filterQueryResults: function(p, q) {\n var r = ((this._alwaysPrefixMatch ? i.isPrefixMatch : i.isQueryMatch));\n return q.filter(function(s) {\n return r(p, this.getTextToIndex(this.getEntry(s)));\n }, this);\n },\n buildCacheResults: function(p, q) {\n var r = this._normalizeString(p, this._alwaysPrefixMatch), s = ((this._alwaysPrefixMatch ? r.sortedTokens : r.tokens)), t = s.length, u = ((r.isPrefixQuery ? ((t - 1)) : null)), v = {\n }, w = {\n }, x = {\n }, y = [], z = false, aa = {\n }, ba = 0;\n for (var ca = 0; ((ca < t)); ++ca) {\n var da = s[ca];\n if (!aa.hasOwnProperty(da)) {\n ba++;\n aa[da] = true;\n }\n else continue;\n ;\n ;\n {\n var fin101keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin101i = (0);\n var ea;\n for (; (fin101i < fin101keys.length); (fin101i++)) {\n ((ea) = (fin101keys[fin101i]));\n {\n if (((((!v.hasOwnProperty(ea) && ((ea === da)))) || ((((this._alwaysPrefixMatch || ((u === ca)))) && ((ea.indexOf(da) === 0))))))) {\n if (((ea === da))) {\n if (w.hasOwnProperty(ea)) {\n z = true;\n }\n ;\n ;\n v[ea] = true;\n }\n else {\n if (((v.hasOwnProperty(ea) || w.hasOwnProperty(ea)))) {\n z = true;\n }\n ;\n ;\n w[ea] = true;\n }\n ;\n ;\n {\n var fin102keys = ((window.top.JSBNG_Replay.forInKeys)((q[ea]))), fin102i = (0);\n var fa;\n for (; (fin102i < fin102keys.length); (fin102i++)) {\n ((fa) = (fin102keys[fin102i]));\n {\n if (((((ca === 0)) || ((x.hasOwnProperty(fa) && ((x[fa] == ((ba - 1))))))))) {\n x[fa] = ba;\n }\n ;\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n };\n ;\n {\n var fin103keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin103i = (0);\n var ga;\n for (; (fin103i < fin103keys.length); (fin103i++)) {\n ((ga) = (fin103keys[fin103i]));\n {\n if (((x[ga] == ba))) {\n y.push(ga);\n }\n ;\n ;\n };\n };\n };\n ;\n if (((z || ((ba < t))))) {\n y = this.filterQueryResults(p, y);\n }\n ;\n ;\n if (((this._titleFields && ((this._titleFields.length > 0))))) {\n y = this.filterNonTitleMatchQueryResults(p, y);\n }\n ;\n ;\n return y;\n },\n filterNonTitleMatchQueryResults: function(p, q) {\n return q.filter(function(r) {\n var s = this._normalizeString(p), t = s.tokens.length;\n if (((t === 0))) {\n return true;\n }\n ;\n ;\n var u = this.getTitleTerms(this.getEntry(r)), v = s.tokens[0];\n return ((((((t === 1)) || this._alwaysPrefixMatch)) ? i.isPrefixMatch(v, u) : i.isQueryMatch(v, u)));\n }, this);\n },\n getTitleTerms: function(p) {\n if (!p.titleToIndex) {\n p.titleToIndex = this.getTextToIndexFromFields(p, this._titleFields);\n }\n ;\n ;\n return p.titleToIndex;\n },\n deduplicateByKey: function(p) {\n if (!this._deduplicationKey) {\n return p;\n }\n ;\n ;\n var q = l(p.map(this._getDeduplicationKey.bind(this)), p);\n return p.filter(function(r) {\n return ((q[this._getDeduplicationKey(r)] == r));\n }.bind(this));\n },\n _getDeduplicationKey: function(p) {\n var q = this.getEntry(p);\n return ((q[this._deduplicationKey] || ((((\"__\" + p)) + \"__\"))));\n },\n getQueryCache: function() {\n return this.queryCache;\n },\n setMaxResults: function(p) {\n this._maxResults = p;\n ((this.value && this.respond(this.value, this.buildUids(this.value))));\n },\n updateToken: function(p) {\n this.token = p;\n this.dirty();\n return this;\n }\n });\n e.exports = o;\n});\n__d(\"BanzaiNectar\", [\"Banzai\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\");\n function h(j) {\n return {\n log: function(k, l, m) {\n var n = {\n e: l,\n a: m\n };\n g.post(((\"nectar:\" + k)), n, j);\n }\n };\n };\n;\n var i = h();\n i.create = h;\n e.exports = i;\n});\n__d(\"DimensionLogging\", [\"BanzaiNectar\",\"DOMDimensions\",], function(a, b, c, d, e, f) {\n var g = b(\"BanzaiNectar\"), h = b(\"DOMDimensions\"), i = h.getViewportDimensions();\n g.log(\"browser_dimension\", \"homeload\", {\n x: i.width,\n y: i.height,\n sw: window.JSBNG__screen.width,\n sh: window.JSBNG__screen.height,\n aw: window.JSBNG__screen.availWidth,\n ah: window.JSBNG__screen.availHeight,\n at: window.JSBNG__screen.availTop,\n al: window.JSBNG__screen.availLeft\n });\n});\n__d(\"MultiBootstrapDataSource\", [\"Class\",\"DataSource\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"DataSource\");\n function i(j) {\n this._bootstrapEndpoints = j.bootstrapEndpoints;\n this.parent.construct(this, j);\n };\n;\n g.extend(i, h);\n i.prototype.bootstrapWithoutToken = function() {\n for (var j = 0; ((j < this._bootstrapEndpoints.length)); j++) {\n this.fetch(this._bootstrapEndpoints[j].endpoint, ((this._bootstrapEndpoints[j].data || {\n })), {\n bootstrap: true\n });\n ;\n };\n ;\n };\n e.exports = i;\n});\n__d(\"XHPTemplate\", [\"DataStore\",\"DOM\",\"HTML\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"DataStore\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"copyProperties\");\n function k(m) {\n this._model = m;\n };\n;\n j(k.prototype, {\n render: function() {\n if (i.isHTML(this._model)) {\n this._model = h.setContent(JSBNG__document.createDocumentFragment(), this._model)[0];\n }\n ;\n ;\n return this._model.cloneNode(true);\n },\n build: function() {\n return new l(this.render());\n }\n });\n j(k, {\n getNode: function(m, n) {\n return k.getNodes(m)[n];\n },\n getNodes: function(m) {\n var n = g.get(m, \"XHPTemplate:nodes\");\n if (!n) {\n n = {\n };\n var o = h.scry(m, \"[data-jsid]\");\n o.push(m);\n var p = o.length;\n while (p--) {\n var q = o[p];\n n[q.getAttribute(\"data-jsid\")] = q;\n q.removeAttribute(\"data-jsid\");\n };\n ;\n g.set(m, \"XHPTemplate:nodes\", n);\n }\n ;\n ;\n return n;\n }\n });\n function l(m) {\n this._root = m;\n this._populateNodes();\n };\n;\n j(l.prototype, {\n _populateNodes: function() {\n this._nodes = {\n };\n this._leaves = {\n };\n var m = this._root.getElementsByTagName(\"*\");\n for (var n = 0, o = m.length; ((n < o)); n++) {\n var p = m[n], q = p.getAttribute(\"data-jsid\");\n if (q) {\n p.removeAttribute(\"data-jsid\");\n this._nodes[q] = p;\n this._leaves[q] = !p.childNodes.length;\n }\n ;\n ;\n };\n ;\n },\n getRoot: function() {\n return this._root;\n },\n getNode: function(m) {\n return this._nodes[m];\n },\n setNodeProperty: function(m, n, o) {\n this.getNode(m)[n] = o;\n return this;\n },\n setNodeContent: function(m, n) {\n if (!this._leaves[m]) {\n throw new Error(((\"Can't setContent on non-leaf node: \" + m)));\n }\n ;\n ;\n h.setContent(this.getNode(m), n);\n return this;\n }\n });\n e.exports = k;\n});");
// 1299
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"var bigPipe = new (require(\"BigPipe\"))({\n lid: 0,\n forceFinish: true\n});");
// 1300
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"se151abf45cd37f530e5c8a27b753d912bd1be56a");
// 1301
geval("var bigPipe = new (require(\"BigPipe\"))({\n lid: 0,\n forceFinish: true\n});");
// 1306
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"bigPipe.onPageletArrive({\n id: \"first_response\",\n phase: 0,\n jsmods: {\n },\n is_last: true,\n css: [\"W3Ky6\",\"0duP3\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",],\n bootloadable: {\n },\n resource_map: {\n },\n js: [\"AyUu6\",\"OJTM4\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"1XxM1\",\"5dFET\",\"hfrQl\",\"C6rJk\",]\n});");
// 1307
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s2cd3254f0c5abebdb9368c757b9aac0b68651aec");
// 1308
geval("bigPipe.onPageletArrive({\n id: \"first_response\",\n phase: 0,\n jsmods: {\n },\n is_last: true,\n css: [\"W3Ky6\",\"0duP3\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",],\n bootloadable: {\n },\n resource_map: {\n },\n js: [\"AyUu6\",\"OJTM4\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"1XxM1\",\"5dFET\",\"hfrQl\",\"C6rJk\",]\n});");
// 1310
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"bigPipe.onPageletArrive({\n content: {\n pagelet_welcome_box: {\n container_id: \"u_0_g\"\n }\n },\n css: [\"0duP3\",\"W3Ky6\",],\n bootloadable: {\n },\n resource_map: {\n },\n id: \"pagelet_welcome_box\",\n phase: 1\n});");
// 1311
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s54eafbda3546281aead0f8229f13dfd09bff1667");
// 1312
geval("bigPipe.onPageletArrive({\n JSBNG__content: {\n pagelet_welcome_box: {\n container_id: \"u_0_g\"\n }\n },\n css: [\"0duP3\",\"W3Ky6\",],\n bootloadable: {\n },\n resource_map: {\n },\n id: \"pagelet_welcome_box\",\n phase: 1\n});");
// 1314
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"bigPipe.onPageletArrive({\n content: {\n pagelet_navigation: {\n container_id: \"u_0_h\"\n }\n },\n css: [\"0duP3\",\"W3Ky6\",],\n bootloadable: {\n ExplicitHover: {\n resources: [\"AyUu6\",\"aOO05\",],\n \"module\": true\n },\n SortableSideNav: {\n resources: [\"AyUu6\",\"AsDOA\",\"6tAwh\",\"C03uu\",],\n \"module\": true\n }\n },\n resource_map: {\n \"6tAwh\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yV/r/OktjXMyrl5l.js\"\n },\n C03uu: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yC/r/3fdQLPa9g1g.js\"\n },\n aOO05: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yW/r/zpbGrZRQcFa.js\"\n },\n \"25/dt\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yA/r/SIc-uOFF4WA.js\"\n }\n },\n js: [\"AsDOA\",\"AyUu6\",\"25/dt\",\"bUzfU\",\"OJTM4\",],\n provides: [\"pagelet_controller::home_side_future_nav\",],\n jscc_map: \"({\\\"j2L3vxmkOLJgIjBIGm0\\\":function(){return new FutureHomeSideNav();}})\",\n onload: [\"JSCC.get(\\\"j2L3vxmkOLJgIjBIGm0\\\").init($(\\\"sideNav\\\"), \\\"nf\\\", false);\",],\n id: \"pagelet_navigation\",\n phase: 1\n});");
// 1315
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s201631d8707391161a96b96e28e62848597fad5b");
// 1316
geval("bigPipe.onPageletArrive({\n JSBNG__content: {\n pagelet_navigation: {\n container_id: \"u_0_h\"\n }\n },\n css: [\"0duP3\",\"W3Ky6\",],\n bootloadable: {\n ExplicitHover: {\n resources: [\"AyUu6\",\"aOO05\",],\n \"module\": true\n },\n SortableSideNav: {\n resources: [\"AyUu6\",\"AsDOA\",\"6tAwh\",\"C03uu\",],\n \"module\": true\n }\n },\n resource_map: {\n \"6tAwh\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yV/r/OktjXMyrl5l.js\"\n },\n C03uu: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yC/r/3fdQLPa9g1g.js\"\n },\n aOO05: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yW/r/zpbGrZRQcFa.js\"\n },\n \"25/dt\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yA/r/SIc-uOFF4WA.js\"\n }\n },\n js: [\"AsDOA\",\"AyUu6\",\"25/dt\",\"bUzfU\",\"OJTM4\",],\n provides: [\"pagelet_controller::home_side_future_nav\",],\n jscc_map: \"({\\\"j2L3vxmkOLJgIjBIGm0\\\":function(){return new FutureHomeSideNav();}})\",\n JSBNG__onload: [\"JSCC.get(\\\"j2L3vxmkOLJgIjBIGm0\\\").init($(\\\"sideNav\\\"), \\\"nf\\\", false);\",],\n id: \"pagelet_navigation\",\n phase: 1\n});");
// 1318
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"bigPipe.onPageletArrive({\n content: {\n pagelet_welcome: {\n container_id: \"u_0_i\"\n }\n },\n jsmods: {\n require: [[\"RequiredFormListener\",],]\n },\n css: [\"MJfap\",\"W3Ky6\",],\n bootloadable: {\n },\n resource_map: {\n fvNhh: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y7/r/sghigcwX_l-.js\"\n },\n MJfap: {\n type: \"css\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yf/r/XZQMfQsFeGz.css\"\n }\n },\n js: [\"AyUu6\",\"fvNhh\",\"AsDOA\",],\n id: \"pagelet_welcome\",\n phase: 1\n});");
// 1319
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s0c3636cdc8c3db982e465ab8779db6628513e061");
// 1320
geval("bigPipe.onPageletArrive({\n JSBNG__content: {\n pagelet_welcome: {\n container_id: \"u_0_i\"\n }\n },\n jsmods: {\n require: [[\"RequiredFormListener\",],]\n },\n css: [\"MJfap\",\"W3Ky6\",],\n bootloadable: {\n },\n resource_map: {\n fvNhh: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y7/r/sghigcwX_l-.js\"\n },\n MJfap: {\n type: \"css\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yf/r/XZQMfQsFeGz.css\"\n }\n },\n js: [\"AyUu6\",\"fvNhh\",\"AsDOA\",],\n id: \"pagelet_welcome\",\n phase: 1\n});");
// 1322
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"bigPipe.onPageletArrive({\n append: \"pagelet_pinned_nav\",\n display_dependency: [\"pagelet_navigation\",],\n is_last: true,\n content: {\n pagelet_pinned_nav_lite: {\n container_id: \"u_0_j\"\n }\n },\n css: [\"W3Ky6\",\"0duP3\",],\n bootloadable: {\n },\n resource_map: {\n },\n id: \"pagelet_pinned_nav_lite\",\n phase: 1,\n tti_phase: 1\n});");
// 1323
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s20152e61529a72f6f352b12a997eadc605fa25b1");
// 1324
geval("bigPipe.onPageletArrive({\n append: \"pagelet_pinned_nav\",\n display_dependency: [\"pagelet_navigation\",],\n is_last: true,\n JSBNG__content: {\n pagelet_pinned_nav_lite: {\n container_id: \"u_0_j\"\n }\n },\n css: [\"W3Ky6\",\"0duP3\",],\n bootloadable: {\n },\n resource_map: {\n },\n id: \"pagelet_pinned_nav_lite\",\n phase: 1,\n tti_phase: 1\n});");
// 1326
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"bigPipe.onPageletArrive({\n content: {\n pagelet_sidebar: {\n container_id: \"u_0_x\"\n }\n },\n jsmods: {\n require: [[\"ChatSidebar\",\"init\",[\"m_0_1d\",\"m_0_1e\",\"m_0_1f\",],[{\n __m: \"m_0_1d\"\n },{\n __m: \"m_0_1e\"\n },{\n __m: \"m_0_1f\"\n },[],],],[\"ChatSidebarLog\",\"start\",[],[],],[\"m_0_1g\",],[\"m_0_1i\",],[\"m_0_1f\",],[\"Typeahead\",\"init\",[\"m_0_1j\",\"m_0_1f\",],[{\n __m: \"m_0_1j\"\n },{\n __m: \"m_0_1f\"\n },[\"chatTypeahead\",\"buildBestAvailableNames\",\"showLoadingIndicator\",],null,],],[\"ClearableTypeahead\",\"resetOnCloseButtonClick\",[\"m_0_1f\",\"m_0_1l\",],[{\n __m: \"m_0_1f\"\n },{\n __m: \"m_0_1l\"\n },],],[\"m_0_1o\",],[\"SelectorDeprecated\",],[\"m_0_1p\",],[\"Layer\",\"init\",[\"m_0_1p\",\"m_0_1q\",],[{\n __m: \"m_0_1p\"\n },{\n __m: \"m_0_1q\"\n },],],[\"m_0_1e\",],[\"PresencePrivacy\",],],\n instances: [[\"m_0_1i\",[\"ScrollableArea\",\"m_0_1h\",],[{\n __m: \"m_0_1h\"\n },{\n persistent: true\n },],1,],[\"m_0_1f\",[\"Typeahead\",\"m_0_1m\",\"ChatTypeaheadView\",\"ChatTypeaheadRenderer\",\"m_0_1j\",\"ChatTypeaheadCore\",\"m_0_1k\",],[{\n __m: \"m_0_1m\"\n },{\n node_id: \"u_0_k\",\n node: null,\n ctor: {\n __m: \"ChatTypeaheadView\"\n },\n options: {\n autoSelect: true,\n renderer: {\n __m: \"ChatTypeaheadRenderer\"\n },\n causalElement: {\n __m: \"m_0_1j\"\n },\n minWidth: 0,\n alignment: \"left\",\n showBadges: 1\n }\n },{\n ctor: {\n __m: \"ChatTypeaheadCore\"\n },\n options: {\n keepFocused: false,\n resetOnSelect: true,\n setValueOnSelect: false\n }\n },{\n __m: \"m_0_1k\"\n },],7,],[\"m_0_1o\",[\"ChatSidebarDropdown\",\"m_0_1n\",],[{\n __m: \"m_0_1n\"\n },null,],1,],[\"m_0_1p\",[\"LegacyContextualDialog\",\"AccessibleLayer\",],[{\n buildWrapper: false,\n causalElement: null,\n addedBehaviors: [{\n __m: \"AccessibleLayer\"\n },]\n },],5,],[\"m_0_1e\",[\"ChatOrderedList\",\"m_0_1r\",\"m_0_1s\",\"m_0_1t\",\"m_0_1p\",],[true,{\n __m: \"m_0_1r\"\n },{\n __m: \"m_0_1s\"\n },{\n __m: \"m_0_1t\"\n },{\n __m: \"m_0_1p\"\n },null,],5,],[\"m_0_1g\",[\"LiveBarDark\",\"m_0_1e\",],[{\n __m: \"m_0_1e\"\n },[],[\"music\",\"canvas\",\"checkin\",\"travelling\",],],1,],[\"m_0_1m\",[\"ChatTypeaheadDataSource\",],[{\n alwaysPrefixMatch: true,\n showOfflineUsers: true\n },],2,],[\"m_0_1s\",[\"XHPTemplate\",\"m_0_1u\",],[{\n __m: \"m_0_1u\"\n },],2,],[\"m_0_1t\",[\"XHPTemplate\",\"m_0_1v\",],[{\n __m: \"m_0_1v\"\n },],2,],[\"m_0_1w\",[\"XHPTemplate\",\"m_0_20\",],[{\n __m: \"m_0_20\"\n },],2,],[\"m_0_1x\",[\"XHPTemplate\",\"m_0_21\",],[{\n __m: \"m_0_21\"\n },],2,],[\"m_0_1y\",[\"XHPTemplate\",\"m_0_23\",],[{\n __m: \"m_0_23\"\n },],2,],[\"m_0_1z\",[\"XHPTemplate\",\"m_0_25\",],[{\n __m: \"m_0_25\"\n },],2,],],\n define: [[\"ChatOptionsInitialData\",[],{\n sound: 1,\n browser_notif: 0,\n sidebar_mode: true\n },13,],[\"ChatSidebarCalloutData\",[],{\n isShown: false\n },14,],[\"ChannelImplementation\",[\"ChannelConnection\",],{\n instance: {\n __m: \"ChannelConnection\"\n }\n },150,],[\"ChannelInitialData\",[],{\n channelConfig: {\n IFRAME_LOAD_TIMEOUT: 30000,\n P_TIMEOUT: 30000,\n STREAMING_TIMEOUT: 70000,\n PROBE_HEARTBEATS_INTERVAL_LOW: 1000,\n PROBE_HEARTBEATS_INTERVAL_HIGH: 3000,\n user_channel: \"p_100006118350059\",\n seq: -1,\n retry_interval: 0,\n max_conn: 6,\n forceIframe: false,\n streamProbe: false,\n tryStreaming: true,\n bustIframe: false,\n webrtcSupport: false\n },\n reason: 6,\n state: \"reconnect!\"\n },143,],[\"MercuryConstants\",[\"MercuryAttachmentType\",\"MercuryPayloadSource\",\"MercuryParticipantTypes\",\"MercuryAttachmentContentType\",\"MercuryThreadlistConstants\",\"MessagingConfig\",\"MercuryTimePassed\",\"MercurySourceType\",\"MessagingEvent\",\"MercuryLogMessageType\",\"MercuryThreadMode\",\"MercuryMessageSourceTags\",\"MercuryActionStatus\",\"MercuryActionTypeConstants\",\"MercuryErrorType\",\"MercuryParticipantsConstants\",\"MessagingTag\",\"MercuryGlobalActionType\",\"MercuryGenericConstants\",\"MercuryAPIArgsSource\",],{\n MercuryAttachmentType: {\n __m: \"MercuryAttachmentType\"\n },\n VideoChatConstants: {\n START_SESSION: 1,\n GET_SKYPE_TOKEN: 2,\n AWAITING_CALL: 3,\n CANCELLED_CALL: 4,\n CONNECTED_CALL: 5,\n HANDLED_CALL: 6,\n GOT_START_SESSION: 7,\n INSTALLING: 8,\n INSTALLED: 9,\n INSTALL_CANCELED: 10,\n ASSOC_CONNECTED_CALL: 118224944915447,\n ASSOC_VIEWED_CALL_PROMO: 250568041676842,\n MAX_VC_PROMO_VIEWS: 2,\n MINIMUM_VC_PROMO_VIEW_INTERVAL: 5184000,\n MINIMUM_VC_LAST_CALLED_INTERVAL: 5184000\n },\n MercuryAttachmentAudioClip: \"fb_voice_message\",\n MercuryAppIDs: {\n DESKTOP_NOTIFIER: 220764691281998,\n DESKTOP_SOCIALFOX: 276729612446445\n },\n MercuryPayloadSource: {\n __m: \"MercuryPayloadSource\"\n },\n AttachmentMaxSize: 26214400,\n MercuryParticipantTypes: {\n __m: \"MercuryParticipantTypes\"\n },\n MercuryTypeaheadConstants: {\n COMPOSER_FRIENDS_MAX: 4,\n COMPOSER_NON_FRIENDS_MAX: 2,\n COMPOSER_SHOW_MORE_LIMIT: 4,\n COMPOSER_THREADS_INITIAL_LIMIT: 2,\n USER_TYPE: \"user\",\n PAGE_TYPE: \"page\",\n THREAD_TYPE: \"thread\",\n HEADER_TYPE: \"header\",\n FRIEND_TYPE: \"friend\",\n NON_FRIEND_TYPE: \"non_friend\",\n VALID_EMAIL: \"^([A-Z0-9._%+-]+@((?!facebook\\\\.com))[A-Z0-9.-]+\\\\.[A-Z]{2,4}|(([A-Z._%+-]+[A-Z0-9._%+-]*)|([A-Z0-9._%+-]+[A-Z._%+-]+[A-Z0-9._%+-]*))@(?:facebook\\\\.com))$\"\n },\n MercuryAttachmentContentType: {\n __m: \"MercuryAttachmentContentType\"\n },\n MercurySendMessageTimeout: 45000,\n ChatNotificationConstants: {\n NORMAL: 0,\n NO_USER_MESSAGE_NOTIFICATION: 1\n },\n MercuryThreadlistConstants: {\n __m: \"MercuryThreadlistConstants\"\n },\n MessagingConfig: {\n __m: \"MessagingConfig\"\n },\n MercuryTimePassed: {\n __m: \"MercuryTimePassed\"\n },\n MercurySourceType: {\n __m: \"MercurySourceType\"\n },\n MessagingEventTypes: {\n __m: \"MessagingEvent\"\n },\n MessagingFilteringType: {\n LEGACY: \"legacy\",\n MODERATE: \"moderate\",\n STRICT: \"strict\"\n },\n MercurySupportedShareType: {\n FB_PHOTO: 2,\n FB_ALBUM: 3,\n FB_VIDEO: 11,\n FB_SONG: 28,\n FB_MUSIC_ALBUM: 30,\n FB_PLAYLIST: 31,\n FB_MUSICIAN: 35,\n FB_RADIO_STATION: 33,\n EXTERNAL: 100,\n FB_TEMPLATE: 300,\n FB_SOCIAL_REPORT_PHOTO: 48,\n FB_COUPON: 32,\n FB_SHARE: 99,\n FB_HC_QUESTION: 55,\n FB_HC_ANSWER: 56\n },\n Sandbox: {\n ORIGIN: \"http://jsbngssl.fbstatic-a.akamaihd.net\",\n PAGE_URL: \"http://jsbngssl.fbstatic-a.akamaihd.net/fbsbx/fbsbx.php?1\"\n },\n MercuryLogMessageType: {\n __m: \"MercuryLogMessageType\"\n },\n MercuryThreadMode: {\n __m: \"MercuryThreadMode\"\n },\n MercuryMessageSourceTags: {\n __m: \"MercuryMessageSourceTags\"\n },\n MercuryActionStatus: {\n __m: \"MercuryActionStatus\"\n },\n MercuryActionType: {\n __m: \"MercuryActionTypeConstants\"\n },\n UIPushPhase: \"V3\",\n MercuryErrorType: {\n __m: \"MercuryErrorType\"\n },\n MercuryParticipantsConstants: {\n __m: \"MercuryParticipantsConstants\"\n },\n MessagingTag: {\n __m: \"MessagingTag\"\n },\n MercuryGlobalActionType: {\n __m: \"MercuryGlobalActionType\"\n },\n MercuryGenericConstants: {\n __m: \"MercuryGenericConstants\"\n },\n MercuryAPIArgsSource: {\n __m: \"MercuryAPIArgsSource\"\n }\n },36,],[\"PresenceInitialData\",[],{\n serverTime: \"1373490144000\",\n cookiePollInterval: 500,\n cookieVersion: 2,\n dictEncode: true\n },57,],[\"InitialChatFriendsList\",[],{\n list: []\n },26,],[\"BlackbirdUpsellConfig\",[],{\n EducationTimeOfflineThresdhold: 5184000,\n UpsellImpressions: 0,\n UpsellGK: false,\n UpsellImpressionLimit: 3,\n TimeOffline: 0,\n UpsellMinFriendCount: 50,\n FriendCount: 0,\n EducationDismissed: 0,\n EducationGK: 1,\n UpsellDismissed: 0,\n EducationImpressionLimit: 2,\n EducationImpressions: 0\n },8,],[\"InitialMultichatList\",[],{\n },132,],[\"BlackbirdUpsellTemplates\",[\"m_0_1w\",\"m_0_1x\",\"m_0_1y\",\"m_0_1z\",],{\n \":fb:chat:blackbird:dialog-frame\": {\n __m: \"m_0_1w\"\n },\n \":fb:chat:blackbird:offline-educate\": {\n __m: \"m_0_1x\"\n },\n \":fb:chat:blackbird:most-friends-educate\": {\n __m: \"m_0_1y\"\n },\n \":fb:chat:blackbird:some-friends-educate\": {\n __m: \"m_0_1z\"\n }\n },10,],[\"ChatConfigInitialData\",[],{\n warning_countdown_threshold_msec: 15000,\n \"24h_times\": false,\n livebar_fetch_defer: 1000,\n \"video.collision_connect\": 1,\n \"ordered_list.top_mobile\": 5,\n mute_warning_time_msec: 25000,\n \"blackbird.min_for_clear_button\": 10,\n chat_multi_typ_send: 1,\n web_messenger_suppress_tab_unread: 1,\n \"ordered_list.top_friends\": 0,\n chat_impression_logging_with_click: true,\n channel_manual_reconnect_defer_msec: 2000,\n \"sidebar.minimum_width\": 1225,\n \"sound.notif_ogg_url\": \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/yT/r/q-Drar4Ade6.ogg\",\n idle_limit: 1800000,\n \"sidebar.min_friends\": 7,\n \"sound.notif_mp3_url\": \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/yb/r/VBbzpp2k5li.mp3\",\n idle_poll_interval: 300000,\n activity_limit: 60000,\n \"sound.ringtone_mp3_url\": \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/yq/r/Mpd0-fRgh5n.mp3\",\n \"roger.seen_delay\": 15000,\n tab_max_load_age: 86400000,\n typing_notifications: true,\n show_sticker_nux: true,\n chat_web_ranking_with_presence: 1,\n chat_ranked_by_coefficient: 1,\n \"video.skype_client_log\": 1,\n \"periodical_impression_logging_config.interval\": 1800000,\n chat_tab_title_link_timeline: 1,\n max_sidebar_multichats: 3,\n tab_auto_close_timeout: 86400000,\n chat_impression_logging_periodical: true,\n divebar_has_new_groups_button: true,\n sound_enabled: true,\n \"sound.ringtone_ogg_url\": \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/y3/r/mbcn6dBHIeX.ogg\",\n sidebar_ticker: 1\n },12,],[\"AvailableListInitialData\",[],{\n chatNotif: 0,\n pollInterval: 100000,\n availableList: {\n },\n lazyPollInterval: 300000,\n favoriteList: [],\n mobileFriends: null,\n lazyThreshold: 300000,\n availableCount: 0,\n lastActiveTimes: null,\n updateTime: 1373490144000\n },166,],],\n elements: [[\"m_0_1d\",\"u_0_l\",2,],[\"m_0_1h\",\"u_0_m\",2,],[\"m_0_1k\",\"u_0_n\",2,],[\"m_0_1l\",\"u_0_o\",2,],[\"m_0_1j\",\"u_0_p\",4,],[\"m_0_1n\",\"u_0_q\",2,],[\"m_0_1r\",\"u_0_s\",2,],[\"m_0_22\",\"u_0_u\",2,\"m_0_21\",],[\"m_0_24\",\"u_0_v\",2,\"m_0_23\",],[\"m_0_26\",\"u_0_w\",2,\"m_0_25\",],],\n markup: [[\"m_0_1q\",{\n __html: \"\\u003Cdiv class=\\\"uiContextualDialogPositioner\\\" id=\\\"u_0_r\\\" data-position=\\\"left\\\"\\u003E\\u003Cdiv class=\\\"uiOverlay uiContextualDialog\\\" data-width=\\\"300\\\" data-destroyonhide=\\\"false\\\" data-fadeonhide=\\\"false\\\"\\u003E\\u003Cdiv class=\\\"uiOverlayContent\\\"\\u003E\\u003Cdiv class=\\\"uiContextualDialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_1u\",{\n __html: \"\\u003Cli class=\\\"_42fz\\\"\\u003E\\u003Ca class=\\\"clearfix _50zw\\\" data-jsid=\\\"anchor\\\" href=\\\"#\\\" role=\\\"\\\" rel=\\\"ignore\\\"\\u003E\\u003Cdiv class=\\\"_54sk _42g2\\\" data-jsid=\\\"favorite_button\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pic_container\\\"\\u003E\\u003Cimg class=\\\"pic img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"profile-photo\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"_54sp _42i1 img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yW/r/F7kk7-cjEKk.png\\\" alt=\\\"\\\" width=\\\"10\\\" height=\\\"8\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"accessible-name\\\" class=\\\"accessible_elem\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"icon_container\\\"\\u003E\\u003Cimg class=\\\"_d3c icon img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"active_time icon\\\"\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"status icon img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv aria-hidden=\\\"true\\\"\\u003E\\u003Cdiv class=\\\"_52zl\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_52zk\\\" data-jsid=\\\"context\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_1v\",{\n __html: \"\\u003Cli\\u003E\\u003Cdiv class=\\\"phs fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"message\\\"\\u003ELoading...\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_20\",{\n __html: \"\\u003Cdiv class=\\\"pam _362\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Ci class=\\\"_8o _8r lfloat img sp_9kaae3 sx_ee64a9\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"clearfix _8u _42ef\\\"\\u003E\\u003Clabel class=\\\"rfloat uiCloseButton uiCloseButtonSmall\\\" for=\\\"u_0_t\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"dialogCloseButton\\\" id=\\\"u_0_t\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"prs\\\" data-jsid=\\\"dialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_21\",{\n __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=offline&amp;promo_source=educate\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_u\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E You can turn on chat for just a few friends. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003Cdiv class=\\\"_361\\\"\\u003E\\u003Ca class=\\\"mvm _363 uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" ajaxify=\\\"/ajax/chat/privacy/settings_dialog.php\\\" rel=\\\"dialog\\\" data-jsid=\\\"chatSettingsButton\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EEdit Chat Settings\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\"\n },3,],[\"m_0_23\",{\n __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=blackbird\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_v\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E While you have chat turned off for some friends, their messages go to your inbox. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003C/form\\u003E\"\n },3,],[\"m_0_25\",{\n __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=blackbird\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_w\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E When chat is off, messages from friends go to your inbox for you to read later. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003C/form\\u003E\"\n },3,],]\n },\n css: [\"W3Ky6\",\"cy4a0\",\"0duP3\",],\n bootloadable: {\n SortableGroup: {\n resources: [\"AyUu6\",\"6tAwh\",\"AsDOA\",],\n \"module\": true\n },\n LitestandSidebarBookmarksDisplay: {\n resources: [\"AyUu6\",\"W3Ky6\",\"b7cJk\",],\n \"module\": true\n },\n LitestandSidebar: {\n resources: [\"AyUu6\",\"fvNhh\",\"u//Ut\",\"AsDOA\",\"W3Ky6\",],\n \"module\": true\n },\n DOMScroll: {\n resources: [\"AyUu6\",\"AsDOA\",],\n \"module\": true\n }\n },\n resource_map: {\n \"H+v1W\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yl/r/OUIW4Mbs_w6.js\"\n },\n b7cJk: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yP/r/lI2QSIxa0G3.js\"\n }\n },\n ixData: {\n \"/images/chat/sidebar/newGroupChatLitestand.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yk/r/3hu9Ow1TVfb.png\",\n width: 28,\n height: 28\n },\n \"/images/litestand/sidebar/blended/new_group_chat.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yg/r/I5ybuQbRjJE.png\",\n width: 32,\n height: 32\n },\n \"/images/chat/status/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_1dc182\"\n },\n \"/images/litestand/bookmarks/sidebar/remove.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_76e896\"\n },\n \"/images/litestand/sidebar/blended/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6ae2b7\"\n },\n \"/images/litestand/sidebar/blended/pushable.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_a69036\"\n },\n \"/images/litestand/bookmarks/sidebar/add.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_f57d5d\"\n },\n \"/images/litestand/sidebar/pushable.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_0b17f3\"\n },\n \"/images/litestand/sidebar/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6b87d3\"\n },\n \"/images/chat/add.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_daa3c5\"\n },\n \"/images/chat/status/mobile.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6633b3\"\n },\n \"/images/chat/sidebar/newGroupChat.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ys/r/S824hxiYJSG.png\",\n width: 28,\n height: 28\n },\n \"/images/chat/delete.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_1bb86f\"\n }\n },\n js: [\"AyUu6\",\"AsDOA\",\"OJTM4\",\"u//Ut\",\"EzMPG\",\"brbS1\",\"H+v1W\",],\n id: \"pagelet_sidebar\",\n phase: 2\n});");
// 1327
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s47467a92b28545709cf1d06718377123def554be");
// 1328
geval("bigPipe.onPageletArrive({\n JSBNG__content: {\n pagelet_sidebar: {\n container_id: \"u_0_x\"\n }\n },\n jsmods: {\n require: [[\"ChatSidebar\",\"init\",[\"m_0_1d\",\"m_0_1e\",\"m_0_1f\",],[{\n __m: \"m_0_1d\"\n },{\n __m: \"m_0_1e\"\n },{\n __m: \"m_0_1f\"\n },[],],],[\"ChatSidebarLog\",\"start\",[],[],],[\"m_0_1g\",],[\"m_0_1i\",],[\"m_0_1f\",],[\"Typeahead\",\"init\",[\"m_0_1j\",\"m_0_1f\",],[{\n __m: \"m_0_1j\"\n },{\n __m: \"m_0_1f\"\n },[\"chatTypeahead\",\"buildBestAvailableNames\",\"showLoadingIndicator\",],null,],],[\"ClearableTypeahead\",\"resetOnCloseButtonClick\",[\"m_0_1f\",\"m_0_1l\",],[{\n __m: \"m_0_1f\"\n },{\n __m: \"m_0_1l\"\n },],],[\"m_0_1o\",],[\"SelectorDeprecated\",],[\"m_0_1p\",],[\"Layer\",\"init\",[\"m_0_1p\",\"m_0_1q\",],[{\n __m: \"m_0_1p\"\n },{\n __m: \"m_0_1q\"\n },],],[\"m_0_1e\",],[\"PresencePrivacy\",],],\n instances: [[\"m_0_1i\",[\"ScrollableArea\",\"m_0_1h\",],[{\n __m: \"m_0_1h\"\n },{\n persistent: true\n },],1,],[\"m_0_1f\",[\"Typeahead\",\"m_0_1m\",\"ChatTypeaheadView\",\"ChatTypeaheadRenderer\",\"m_0_1j\",\"ChatTypeaheadCore\",\"m_0_1k\",],[{\n __m: \"m_0_1m\"\n },{\n node_id: \"u_0_k\",\n node: null,\n ctor: {\n __m: \"ChatTypeaheadView\"\n },\n options: {\n autoSelect: true,\n renderer: {\n __m: \"ChatTypeaheadRenderer\"\n },\n causalElement: {\n __m: \"m_0_1j\"\n },\n minWidth: 0,\n alignment: \"left\",\n showBadges: 1\n }\n },{\n ctor: {\n __m: \"ChatTypeaheadCore\"\n },\n options: {\n keepFocused: false,\n resetOnSelect: true,\n setValueOnSelect: false\n }\n },{\n __m: \"m_0_1k\"\n },],7,],[\"m_0_1o\",[\"ChatSidebarDropdown\",\"m_0_1n\",],[{\n __m: \"m_0_1n\"\n },null,],1,],[\"m_0_1p\",[\"LegacyContextualDialog\",\"AccessibleLayer\",],[{\n buildWrapper: false,\n causalElement: null,\n addedBehaviors: [{\n __m: \"AccessibleLayer\"\n },]\n },],5,],[\"m_0_1e\",[\"ChatOrderedList\",\"m_0_1r\",\"m_0_1s\",\"m_0_1t\",\"m_0_1p\",],[true,{\n __m: \"m_0_1r\"\n },{\n __m: \"m_0_1s\"\n },{\n __m: \"m_0_1t\"\n },{\n __m: \"m_0_1p\"\n },null,],5,],[\"m_0_1g\",[\"LiveBarDark\",\"m_0_1e\",],[{\n __m: \"m_0_1e\"\n },[],[\"music\",\"canvas\",\"checkin\",\"travelling\",],],1,],[\"m_0_1m\",[\"ChatTypeaheadDataSource\",],[{\n alwaysPrefixMatch: true,\n showOfflineUsers: true\n },],2,],[\"m_0_1s\",[\"XHPTemplate\",\"m_0_1u\",],[{\n __m: \"m_0_1u\"\n },],2,],[\"m_0_1t\",[\"XHPTemplate\",\"m_0_1v\",],[{\n __m: \"m_0_1v\"\n },],2,],[\"m_0_1w\",[\"XHPTemplate\",\"m_0_20\",],[{\n __m: \"m_0_20\"\n },],2,],[\"m_0_1x\",[\"XHPTemplate\",\"m_0_21\",],[{\n __m: \"m_0_21\"\n },],2,],[\"m_0_1y\",[\"XHPTemplate\",\"m_0_23\",],[{\n __m: \"m_0_23\"\n },],2,],[\"m_0_1z\",[\"XHPTemplate\",\"m_0_25\",],[{\n __m: \"m_0_25\"\n },],2,],],\n define: [[\"ChatOptionsInitialData\",[],{\n sound: 1,\n browser_notif: 0,\n sidebar_mode: true\n },13,],[\"ChatSidebarCalloutData\",[],{\n isShown: false\n },14,],[\"ChannelImplementation\",[\"ChannelConnection\",],{\n instance: {\n __m: \"ChannelConnection\"\n }\n },150,],[\"ChannelInitialData\",[],{\n channelConfig: {\n IFRAME_LOAD_TIMEOUT: 30000,\n P_TIMEOUT: 30000,\n STREAMING_TIMEOUT: 70000,\n PROBE_HEARTBEATS_INTERVAL_LOW: 1000,\n PROBE_HEARTBEATS_INTERVAL_HIGH: 3000,\n user_channel: \"p_100006118350059\",\n seq: -1,\n retry_interval: 0,\n max_conn: 6,\n forceIframe: false,\n streamProbe: false,\n tryStreaming: true,\n bustIframe: false,\n webrtcSupport: false\n },\n reason: 6,\n state: \"reconnect!\"\n },143,],[\"MercuryConstants\",[\"MercuryAttachmentType\",\"MercuryPayloadSource\",\"MercuryParticipantTypes\",\"MercuryAttachmentContentType\",\"MercuryThreadlistConstants\",\"MessagingConfig\",\"MercuryTimePassed\",\"MercurySourceType\",\"MessagingEvent\",\"MercuryLogMessageType\",\"MercuryThreadMode\",\"MercuryMessageSourceTags\",\"MercuryActionStatus\",\"MercuryActionTypeConstants\",\"MercuryErrorType\",\"MercuryParticipantsConstants\",\"MessagingTag\",\"MercuryGlobalActionType\",\"MercuryGenericConstants\",\"MercuryAPIArgsSource\",],{\n MercuryAttachmentType: {\n __m: \"MercuryAttachmentType\"\n },\n VideoChatConstants: {\n START_SESSION: 1,\n GET_SKYPE_TOKEN: 2,\n AWAITING_CALL: 3,\n CANCELLED_CALL: 4,\n CONNECTED_CALL: 5,\n HANDLED_CALL: 6,\n GOT_START_SESSION: 7,\n INSTALLING: 8,\n INSTALLED: 9,\n INSTALL_CANCELED: 10,\n ASSOC_CONNECTED_CALL: 118224944915447,\n ASSOC_VIEWED_CALL_PROMO: 250568041676842,\n MAX_VC_PROMO_VIEWS: 2,\n MINIMUM_VC_PROMO_VIEW_INTERVAL: 5184000,\n MINIMUM_VC_LAST_CALLED_INTERVAL: 5184000\n },\n MercuryAttachmentAudioClip: \"fb_voice_message\",\n MercuryAppIDs: {\n DESKTOP_NOTIFIER: 220764691281998,\n DESKTOP_SOCIALFOX: 276729612446445\n },\n MercuryPayloadSource: {\n __m: \"MercuryPayloadSource\"\n },\n AttachmentMaxSize: 26214400,\n MercuryParticipantTypes: {\n __m: \"MercuryParticipantTypes\"\n },\n MercuryTypeaheadConstants: {\n COMPOSER_FRIENDS_MAX: 4,\n COMPOSER_NON_FRIENDS_MAX: 2,\n COMPOSER_SHOW_MORE_LIMIT: 4,\n COMPOSER_THREADS_INITIAL_LIMIT: 2,\n USER_TYPE: \"user\",\n PAGE_TYPE: \"page\",\n THREAD_TYPE: \"thread\",\n HEADER_TYPE: \"header\",\n FRIEND_TYPE: \"friend\",\n NON_FRIEND_TYPE: \"non_friend\",\n VALID_EMAIL: \"^([A-Z0-9._%+-]+@((?!facebook\\\\.com))[A-Z0-9.-]+\\\\.[A-Z]{2,4}|(([A-Z._%+-]+[A-Z0-9._%+-]*)|([A-Z0-9._%+-]+[A-Z._%+-]+[A-Z0-9._%+-]*))@(?:facebook\\\\.com))$\"\n },\n MercuryAttachmentContentType: {\n __m: \"MercuryAttachmentContentType\"\n },\n MercurySendMessageTimeout: 45000,\n ChatNotificationConstants: {\n NORMAL: 0,\n NO_USER_MESSAGE_NOTIFICATION: 1\n },\n MercuryThreadlistConstants: {\n __m: \"MercuryThreadlistConstants\"\n },\n MessagingConfig: {\n __m: \"MessagingConfig\"\n },\n MercuryTimePassed: {\n __m: \"MercuryTimePassed\"\n },\n MercurySourceType: {\n __m: \"MercurySourceType\"\n },\n MessagingEventTypes: {\n __m: \"MessagingEvent\"\n },\n MessagingFilteringType: {\n LEGACY: \"legacy\",\n MODERATE: \"moderate\",\n STRICT: \"strict\"\n },\n MercurySupportedShareType: {\n FB_PHOTO: 2,\n FB_ALBUM: 3,\n FB_VIDEO: 11,\n FB_SONG: 28,\n FB_MUSIC_ALBUM: 30,\n FB_PLAYLIST: 31,\n FB_MUSICIAN: 35,\n FB_RADIO_STATION: 33,\n EXTERNAL: 100,\n FB_TEMPLATE: 300,\n FB_SOCIAL_REPORT_PHOTO: 48,\n FB_COUPON: 32,\n FB_SHARE: 99,\n FB_HC_QUESTION: 55,\n FB_HC_ANSWER: 56\n },\n Sandbox: {\n ORIGIN: \"http://jsbngssl.fbstatic-a.akamaihd.net\",\n PAGE_URL: \"http://jsbngssl.fbstatic-a.akamaihd.net/fbsbx/fbsbx.php?1\"\n },\n MercuryLogMessageType: {\n __m: \"MercuryLogMessageType\"\n },\n MercuryThreadMode: {\n __m: \"MercuryThreadMode\"\n },\n MercuryMessageSourceTags: {\n __m: \"MercuryMessageSourceTags\"\n },\n MercuryActionStatus: {\n __m: \"MercuryActionStatus\"\n },\n MercuryActionType: {\n __m: \"MercuryActionTypeConstants\"\n },\n UIPushPhase: \"V3\",\n MercuryErrorType: {\n __m: \"MercuryErrorType\"\n },\n MercuryParticipantsConstants: {\n __m: \"MercuryParticipantsConstants\"\n },\n MessagingTag: {\n __m: \"MessagingTag\"\n },\n MercuryGlobalActionType: {\n __m: \"MercuryGlobalActionType\"\n },\n MercuryGenericConstants: {\n __m: \"MercuryGenericConstants\"\n },\n MercuryAPIArgsSource: {\n __m: \"MercuryAPIArgsSource\"\n }\n },36,],[\"PresenceInitialData\",[],{\n serverTime: \"1373490144000\",\n cookiePollInterval: 500,\n cookieVersion: 2,\n dictEncode: true\n },57,],[\"InitialChatFriendsList\",[],{\n list: []\n },26,],[\"BlackbirdUpsellConfig\",[],{\n EducationTimeOfflineThresdhold: 5184000,\n UpsellImpressions: 0,\n UpsellGK: false,\n UpsellImpressionLimit: 3,\n TimeOffline: 0,\n UpsellMinFriendCount: 50,\n FriendCount: 0,\n EducationDismissed: 0,\n EducationGK: 1,\n UpsellDismissed: 0,\n EducationImpressionLimit: 2,\n EducationImpressions: 0\n },8,],[\"InitialMultichatList\",[],{\n },132,],[\"BlackbirdUpsellTemplates\",[\"m_0_1w\",\"m_0_1x\",\"m_0_1y\",\"m_0_1z\",],{\n \":fb:chat:blackbird:dialog-frame\": {\n __m: \"m_0_1w\"\n },\n \":fb:chat:blackbird:offline-educate\": {\n __m: \"m_0_1x\"\n },\n \":fb:chat:blackbird:most-friends-educate\": {\n __m: \"m_0_1y\"\n },\n \":fb:chat:blackbird:some-friends-educate\": {\n __m: \"m_0_1z\"\n }\n },10,],[\"ChatConfigInitialData\",[],{\n warning_countdown_threshold_msec: 15000,\n \"24h_times\": false,\n livebar_fetch_defer: 1000,\n \"video.collision_connect\": 1,\n \"ordered_list.top_mobile\": 5,\n mute_warning_time_msec: 25000,\n \"blackbird.min_for_clear_button\": 10,\n chat_multi_typ_send: 1,\n web_messenger_suppress_tab_unread: 1,\n \"ordered_list.top_friends\": 0,\n chat_impression_logging_with_click: true,\n channel_manual_reconnect_defer_msec: 2000,\n \"sidebar.minimum_width\": 1225,\n \"sound.notif_ogg_url\": \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/yT/r/q-Drar4Ade6.ogg\",\n idle_limit: 1800000,\n \"sidebar.min_friends\": 7,\n \"sound.notif_mp3_url\": \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/yb/r/VBbzpp2k5li.mp3\",\n idle_poll_interval: 300000,\n activity_limit: 60000,\n \"sound.ringtone_mp3_url\": \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/yq/r/Mpd0-fRgh5n.mp3\",\n \"roger.seen_delay\": 15000,\n tab_max_load_age: 86400000,\n typing_notifications: true,\n show_sticker_nux: true,\n chat_web_ranking_with_presence: 1,\n chat_ranked_by_coefficient: 1,\n \"video.skype_client_log\": 1,\n \"periodical_impression_logging_config.interval\": 1800000,\n chat_tab_title_link_timeline: 1,\n max_sidebar_multichats: 3,\n tab_auto_close_timeout: 86400000,\n chat_impression_logging_periodical: true,\n divebar_has_new_groups_button: true,\n sound_enabled: true,\n \"sound.ringtone_ogg_url\": \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/y3/r/mbcn6dBHIeX.ogg\",\n sidebar_ticker: 1\n },12,],[\"AvailableListInitialData\",[],{\n chatNotif: 0,\n pollInterval: 100000,\n availableList: {\n },\n lazyPollInterval: 300000,\n favoriteList: [],\n mobileFriends: null,\n lazyThreshold: 300000,\n availableCount: 0,\n lastActiveTimes: null,\n updateTime: 1373490144000\n },166,],],\n elements: [[\"m_0_1d\",\"u_0_l\",2,],[\"m_0_1h\",\"u_0_m\",2,],[\"m_0_1k\",\"u_0_n\",2,],[\"m_0_1l\",\"u_0_o\",2,],[\"m_0_1j\",\"u_0_p\",4,],[\"m_0_1n\",\"u_0_q\",2,],[\"m_0_1r\",\"u_0_s\",2,],[\"m_0_22\",\"u_0_u\",2,\"m_0_21\",],[\"m_0_24\",\"u_0_v\",2,\"m_0_23\",],[\"m_0_26\",\"u_0_w\",2,\"m_0_25\",],],\n markup: [[\"m_0_1q\",{\n __html: \"\\u003Cdiv class=\\\"uiContextualDialogPositioner\\\" id=\\\"u_0_r\\\" data-position=\\\"left\\\"\\u003E\\u003Cdiv class=\\\"uiOverlay uiContextualDialog\\\" data-width=\\\"300\\\" data-destroyonhide=\\\"false\\\" data-fadeonhide=\\\"false\\\"\\u003E\\u003Cdiv class=\\\"uiOverlayContent\\\"\\u003E\\u003Cdiv class=\\\"uiContextualDialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_1u\",{\n __html: \"\\u003Cli class=\\\"_42fz\\\"\\u003E\\u003Ca class=\\\"clearfix _50zw\\\" data-jsid=\\\"anchor\\\" href=\\\"#\\\" role=\\\"\\\" rel=\\\"ignore\\\"\\u003E\\u003Cdiv class=\\\"_54sk _42g2\\\" data-jsid=\\\"favorite_button\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pic_container\\\"\\u003E\\u003Cimg class=\\\"pic img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"profile-photo\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"_54sp _42i1 img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yW/r/F7kk7-cjEKk.png\\\" alt=\\\"\\\" width=\\\"10\\\" height=\\\"8\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"accessible-name\\\" class=\\\"accessible_elem\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"icon_container\\\"\\u003E\\u003Cimg class=\\\"_d3c icon img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"active_time icon\\\"\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"status icon img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv aria-hidden=\\\"true\\\"\\u003E\\u003Cdiv class=\\\"_52zl\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_52zk\\\" data-jsid=\\\"context\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_1v\",{\n __html: \"\\u003Cli\\u003E\\u003Cdiv class=\\\"phs fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"message\\\"\\u003ELoading...\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_20\",{\n __html: \"\\u003Cdiv class=\\\"pam _362\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Ci class=\\\"_8o _8r lfloat img sp_9kaae3 sx_ee64a9\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"clearfix _8u _42ef\\\"\\u003E\\u003Clabel class=\\\"rfloat uiCloseButton uiCloseButtonSmall\\\" for=\\\"u_0_t\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"dialogCloseButton\\\" id=\\\"u_0_t\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"prs\\\" data-jsid=\\\"dialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_21\",{\n __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=offline&amp;promo_source=educate\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_u\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E You can turn on chat for just a few friends. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003Cdiv class=\\\"_361\\\"\\u003E\\u003Ca class=\\\"mvm _363 uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" ajaxify=\\\"/ajax/chat/privacy/settings_dialog.php\\\" rel=\\\"dialog\\\" data-jsid=\\\"chatSettingsButton\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EEdit Chat Settings\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\"\n },3,],[\"m_0_23\",{\n __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=blackbird\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_v\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E While you have chat turned off for some friends, their messages go to your inbox. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003C/form\\u003E\"\n },3,],[\"m_0_25\",{\n __html: \"\\u003Cform method=\\\"post\\\" action=\\\"/ajax/chat/blackbird/learn_more.php?source=blackbird\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_w\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cstrong\\u003ETip:\\u003C/strong\\u003E When chat is off, messages from friends go to your inbox for you to read later. \\u003Clabel class=\\\"uiLinkButton\\\"\\u003E\\u003Cinput type=\\\"submit\\\" value=\\\"Learn more\\\" /\\u003E\\u003C/label\\u003E.\\u003C/form\\u003E\"\n },3,],]\n },\n css: [\"W3Ky6\",\"cy4a0\",\"0duP3\",],\n bootloadable: {\n SortableGroup: {\n resources: [\"AyUu6\",\"6tAwh\",\"AsDOA\",],\n \"module\": true\n },\n LitestandSidebarBookmarksDisplay: {\n resources: [\"AyUu6\",\"W3Ky6\",\"b7cJk\",],\n \"module\": true\n },\n LitestandSidebar: {\n resources: [\"AyUu6\",\"fvNhh\",\"u//Ut\",\"AsDOA\",\"W3Ky6\",],\n \"module\": true\n },\n DOMScroll: {\n resources: [\"AyUu6\",\"AsDOA\",],\n \"module\": true\n }\n },\n resource_map: {\n \"H+v1W\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yl/r/OUIW4Mbs_w6.js\"\n },\n b7cJk: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yP/r/lI2QSIxa0G3.js\"\n }\n },\n ixData: {\n \"/images/chat/sidebar/newGroupChatLitestand.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yk/r/3hu9Ow1TVfb.png\",\n width: 28,\n height: 28\n },\n \"/images/litestand/sidebar/blended/new_group_chat.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yg/r/I5ybuQbRjJE.png\",\n width: 32,\n height: 32\n },\n \"/images/chat/status/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_1dc182\"\n },\n \"/images/litestand/bookmarks/sidebar/remove.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_76e896\"\n },\n \"/images/litestand/sidebar/blended/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6ae2b7\"\n },\n \"/images/litestand/sidebar/blended/pushable.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_a69036\"\n },\n \"/images/litestand/bookmarks/sidebar/add.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_f57d5d\"\n },\n \"/images/litestand/sidebar/pushable.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_0b17f3\"\n },\n \"/images/litestand/sidebar/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6b87d3\"\n },\n \"/images/chat/add.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_daa3c5\"\n },\n \"/images/chat/status/mobile.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6633b3\"\n },\n \"/images/chat/sidebar/newGroupChat.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ys/r/S824hxiYJSG.png\",\n width: 28,\n height: 28\n },\n \"/images/chat/delete.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_1bb86f\"\n }\n },\n js: [\"AyUu6\",\"AsDOA\",\"OJTM4\",\"u//Ut\",\"EzMPG\",\"brbS1\",\"H+v1W\",],\n id: \"pagelet_sidebar\",\n phase: 2\n});");
// 1330
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"bigPipe.onPageletArrive({\n content: {\n pagelet_pinned_nav: {\n container_id: \"u_0_y\"\n }\n },\n css: [\"W3Ky6\",\"0duP3\",],\n bootloadable: {\n },\n resource_map: {\n },\n js: [\"AsDOA\",\"AyUu6\",\"25/dt\",\"bUzfU\",\"OJTM4\",],\n requires: [\"pagelet_controller::home_side_future_nav\",],\n onload: [\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"pinnedNav\\\",\\\"editEndpoint\\\":\\\"\\\\/ajax\\\\/bookmark\\\\/edit\\\\/\\\"}, [{\\\"id\\\":\\\"navItem_app_156203961126022\\\",\\\"key\\\":[\\\"app_156203961126022\\\",\\\"welcome\\\"],\\\"path\\\":[\\\"\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":true,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_4748854339\\\",\\\"key\\\":[\\\"app_4748854339\\\",\\\"nf\\\",\\\"lf\\\",\\\"h\\\",\\\"h_chr\\\",\\\"h_nor\\\",\\\"h\\\",\\\"lf\\\",\\\"app_2915120374\\\",\\\"pp\\\",\\\"app_10150110253435258\\\"],\\\"path\\\":[\\\"\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_217974574879787\\\",\\\"key\\\":[\\\"app_217974574879787\\\",\\\"inbox\\\"],\\\"path\\\":[\\\"\\\\/messages\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[{\\\"id\\\":\\\"navItem_other\\\",\\\"key\\\":[\\\"other\\\"],\\\"path\\\":[\\\"\\\\/messages\\\\/other\\\\/\\\"],\\\"type\\\":null,\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]}]},{\\\"id\\\":\\\"navItem_app_2344061033\\\",\\\"key\\\":[\\\"app_2344061033\\\"],\\\"path\\\":[\\\"\\\\/events\\\\/list\\\",\\\"\\\\/events\\\\/\\\",{\\\"regex\\\":\\\"\\\\\\\\\\\\/events\\\\\\\\\\\\/!(friends|create)\\\\\\\\\\\\/\\\"}],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_2305272732\\\",\\\"key\\\":[\\\"app_2305272732\\\"],\\\"path\\\":[\\\"\\\\/javasee.cript\\\\/photos\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_2356318349\\\",\\\"key\\\":[\\\"app_2356318349\\\",\\\"ff\\\"],\\\"path\\\":[\\\"\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]}]);\",],\n id: \"pagelet_pinned_nav\",\n phase: 2\n});");
// 1331
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"sd045c3849f9355f31b0293e50d6587f93aee68a8");
// 1332
geval("bigPipe.onPageletArrive({\n JSBNG__content: {\n pagelet_pinned_nav: {\n container_id: \"u_0_y\"\n }\n },\n css: [\"W3Ky6\",\"0duP3\",],\n bootloadable: {\n },\n resource_map: {\n },\n js: [\"AsDOA\",\"AyUu6\",\"25/dt\",\"bUzfU\",\"OJTM4\",],\n requires: [\"pagelet_controller::home_side_future_nav\",],\n JSBNG__onload: [\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"pinnedNav\\\",\\\"editEndpoint\\\":\\\"\\\\/ajax\\\\/bookmark\\\\/edit\\\\/\\\"}, [{\\\"id\\\":\\\"navItem_app_156203961126022\\\",\\\"key\\\":[\\\"app_156203961126022\\\",\\\"welcome\\\"],\\\"path\\\":[\\\"\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":true,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_4748854339\\\",\\\"key\\\":[\\\"app_4748854339\\\",\\\"nf\\\",\\\"lf\\\",\\\"h\\\",\\\"h_chr\\\",\\\"h_nor\\\",\\\"h\\\",\\\"lf\\\",\\\"app_2915120374\\\",\\\"pp\\\",\\\"app_10150110253435258\\\"],\\\"path\\\":[\\\"\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_217974574879787\\\",\\\"key\\\":[\\\"app_217974574879787\\\",\\\"inbox\\\"],\\\"path\\\":[\\\"\\\\/messages\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[{\\\"id\\\":\\\"navItem_other\\\",\\\"key\\\":[\\\"other\\\"],\\\"path\\\":[\\\"\\\\/messages\\\\/other\\\\/\\\"],\\\"type\\\":null,\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]}]},{\\\"id\\\":\\\"navItem_app_2344061033\\\",\\\"key\\\":[\\\"app_2344061033\\\"],\\\"path\\\":[\\\"\\\\/events\\\\/list\\\",\\\"\\\\/events\\\\/\\\",{\\\"regex\\\":\\\"\\\\\\\\\\\\/events\\\\\\\\\\\\/!(friends|create)\\\\\\\\\\\\/\\\"}],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_2305272732\\\",\\\"key\\\":[\\\"app_2305272732\\\"],\\\"path\\\":[\\\"\\\\/javasee.cript\\\\/photos\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_2356318349\\\",\\\"key\\\":[\\\"app_2356318349\\\",\\\"ff\\\"],\\\"path\\\":[\\\"\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]}]);\",],\n id: \"pagelet_pinned_nav\",\n phase: 2\n});");
// 1334
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"bigPipe.onPageletArrive({\n is_last: true,\n is_second_to_last_phase: true,\n content: {\n pagelet_bookmark_nav: {\n container_id: \"u_0_z\"\n }\n },\n css: [\"W3Ky6\",\"0duP3\",],\n bootloadable: {\n },\n resource_map: {\n },\n js: [\"AsDOA\",\"AyUu6\",\"25/dt\",\"bUzfU\",\"OJTM4\",],\n requires: [\"pagelet_controller::home_side_future_nav\",],\n onload: [\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"appsNav\\\",\\\"editEndpoint\\\":null}, [{\\\"id\\\":\\\"navItem_app_140332009231\\\",\\\"key\\\":[\\\"app_140332009231\\\",\\\"games\\\"],\\\"path\\\":[\\\"\\\\/appcenter\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_261369767293002\\\",\\\"key\\\":[\\\"app_261369767293002\\\",\\\"appsandgames\\\"],\\\"path\\\":[\\\"\\\\/apps\\\\/feed\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_119960514742544\\\",\\\"key\\\":[\\\"app_119960514742544\\\",\\\"music\\\"],\\\"path\\\":[\\\"\\\\/music\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_2347471856\\\",\\\"key\\\":[\\\"app_2347471856\\\",\\\"notes\\\"],\\\"path\\\":[\\\"\\\\/notes\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_2309869772\\\",\\\"key\\\":[\\\"app_2309869772\\\"],\\\"path\\\":[\\\"\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_183217215062060\\\",\\\"key\\\":[\\\"app_183217215062060\\\",\\\"poke\\\"],\\\"path\\\":[\\\"\\\\/pokes\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]}]);\",\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"groupsNav\\\",\\\"editEndpoint\\\":null}, []);\",\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"pagesNav\\\",\\\"editEndpoint\\\":null}, [{\\\"id\\\":\\\"navItem_app_140472815972081\\\",\\\"key\\\":[\\\"app_140472815972081\\\",\\\"pages\\\"],\\\"path\\\":[\\\"\\\\/pages\\\\/feed\\\"],\\\"type\\\":\\\"pages\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_357937250942127\\\",\\\"key\\\":[\\\"app_357937250942127\\\",\\\"addpage\\\"],\\\"path\\\":[\\\"\\\\/addpage\\\"],\\\"type\\\":\\\"pages\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]}]);\",\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"listsNav\\\",\\\"editEndpoint\\\":null}, [{\\\"id\\\":\\\"navItem_fl_1374283956118870\\\",\\\"key\\\":[\\\"fl_1374283956118870\\\"],\\\"path\\\":[\\\"\\\\/lists\\\\/1374283956118870\\\"],\\\"type\\\":\\\"lists\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_fl_1389747037905895\\\",\\\"key\\\":[\\\"fl_1389747037905895\\\"],\\\"path\\\":[\\\"\\\\/lists\\\\/1389747037905895\\\"],\\\"type\\\":\\\"lists\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_fl_1389747041239228\\\",\\\"key\\\":[\\\"fl_1389747041239228\\\"],\\\"path\\\":[\\\"\\\\/lists\\\\/1389747041239228\\\"],\\\"type\\\":\\\"lists\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]}]);\",\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"interestsNav\\\",\\\"editEndpoint\\\":null}, []);\",],\n id: \"pagelet_bookmark_nav\",\n phase: 2\n});");
// 1335
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s0304d00fe4437d067a621543ea4d1d14447910fd");
// 1336
geval("bigPipe.onPageletArrive({\n is_last: true,\n is_second_to_last_phase: true,\n JSBNG__content: {\n pagelet_bookmark_nav: {\n container_id: \"u_0_z\"\n }\n },\n css: [\"W3Ky6\",\"0duP3\",],\n bootloadable: {\n },\n resource_map: {\n },\n js: [\"AsDOA\",\"AyUu6\",\"25/dt\",\"bUzfU\",\"OJTM4\",],\n requires: [\"pagelet_controller::home_side_future_nav\",],\n JSBNG__onload: [\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"appsNav\\\",\\\"editEndpoint\\\":null}, [{\\\"id\\\":\\\"navItem_app_140332009231\\\",\\\"key\\\":[\\\"app_140332009231\\\",\\\"games\\\"],\\\"path\\\":[\\\"\\\\/appcenter\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_261369767293002\\\",\\\"key\\\":[\\\"app_261369767293002\\\",\\\"appsandgames\\\"],\\\"path\\\":[\\\"\\\\/apps\\\\/feed\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_119960514742544\\\",\\\"key\\\":[\\\"app_119960514742544\\\",\\\"music\\\"],\\\"path\\\":[\\\"\\\\/music\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_2347471856\\\",\\\"key\\\":[\\\"app_2347471856\\\",\\\"notes\\\"],\\\"path\\\":[\\\"\\\\/notes\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_2309869772\\\",\\\"key\\\":[\\\"app_2309869772\\\"],\\\"path\\\":[\\\"\\\\/\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_183217215062060\\\",\\\"key\\\":[\\\"app_183217215062060\\\",\\\"poke\\\"],\\\"path\\\":[\\\"\\\\/pokes\\\"],\\\"type\\\":\\\"apps\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]}]);\",\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"groupsNav\\\",\\\"editEndpoint\\\":null}, []);\",\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"pagesNav\\\",\\\"editEndpoint\\\":null}, [{\\\"id\\\":\\\"navItem_app_140472815972081\\\",\\\"key\\\":[\\\"app_140472815972081\\\",\\\"pages\\\"],\\\"path\\\":[\\\"\\\\/pages\\\\/feed\\\"],\\\"type\\\":\\\"pages\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_app_357937250942127\\\",\\\"key\\\":[\\\"app_357937250942127\\\",\\\"addpage\\\"],\\\"path\\\":[\\\"\\\\/addpage\\\"],\\\"type\\\":\\\"pages\\\",\\\"endpoint\\\":null,\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]}]);\",\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"listsNav\\\",\\\"editEndpoint\\\":null}, [{\\\"id\\\":\\\"navItem_fl_1374283956118870\\\",\\\"key\\\":[\\\"fl_1374283956118870\\\"],\\\"path\\\":[\\\"\\\\/lists\\\\/1374283956118870\\\"],\\\"type\\\":\\\"lists\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_fl_1389747037905895\\\",\\\"key\\\":[\\\"fl_1389747037905895\\\"],\\\"path\\\":[\\\"\\\\/lists\\\\/1389747037905895\\\"],\\\"type\\\":\\\"lists\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]},{\\\"id\\\":\\\"navItem_fl_1389747041239228\\\",\\\"key\\\":[\\\"fl_1389747041239228\\\"],\\\"path\\\":[\\\"\\\\/lists\\\\/1389747041239228\\\"],\\\"type\\\":\\\"lists\\\",\\\"endpoint\\\":\\\"\\\\/ajax\\\\/home\\\\/generic.php\\\",\\\"selected\\\":false,\\\"highlighted\\\":false,\\\"children\\\":[]}]);\",\"FutureSideNav.getInstance().initSection({\\\"id\\\":\\\"interestsNav\\\",\\\"editEndpoint\\\":null}, []);\",],\n id: \"pagelet_bookmark_nav\",\n phase: 2\n});");
// 1338
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"bigPipe.onPageletArrive({\n content: {\n pagelet_dock: {\n container_id: \"u_0_1o\"\n }\n },\n jsmods: {\n require: [[\"MusicButtonManager\",\"init\",[],[[\"music.song\",],],],[\"initLiveMessageReceiver\",],[\"Dock\",\"init\",[\"m_0_27\",],[{\n __m: \"m_0_27\"\n },],],[\"React\",\"constructAndRenderComponent\",[\"NotificationBeeper.react\",\"m_0_28\",],[{\n __m: \"NotificationBeeper.react\"\n },{\n unseenVsUnread: false,\n canPause: false,\n shouldLogImpressions: false,\n soundPath: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/yy/r/odIeERVR1c5.mp3\",\n soundEnabled: true,\n tracking: \"{\\\"ref\\\":\\\"beeper\\\",\\\"jewel\\\":\\\"notifications\\\",\\\"type\\\":\\\"click2canvas\\\"}\"\n },{\n __m: \"m_0_28\"\n },],],[\"ChatApp\",\"init\",[\"m_0_29\",\"m_0_2a\",],[{\n __m: \"m_0_29\"\n },{\n __m: \"m_0_2a\"\n },{\n payload_source: \"server_initial_data\"\n },],],[\"ChatOptions\",],[\"ShortProfiles\",\"setMulti\",[],[{\n 100006118350059: {\n id: \"100006118350059\",\n name: \"Javasee Cript\",\n firstName: \"Javasee\",\n vanity: \"javasee.cript\",\n thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/s32x32/275646_100006118350059_324335073_q.jpg\",\n uri: \"http://jsbngssl.www.facebook.com/javasee.cript\",\n gender: 2,\n type: \"user\",\n is_friend: false,\n social_snippets: null,\n showVideoPromo: false,\n searchTokens: [\"Cript\",\"Javasee\",]\n }\n },],],[\"m_0_2c\",],[\"m_0_2e\",],[\"Typeahead\",\"init\",[\"m_0_2f\",\"m_0_2e\",],[{\n __m: \"m_0_2f\"\n },{\n __m: \"m_0_2e\"\n },[\"chatTypeahead\",\"buildBestAvailableNames\",\"showLoadingIndicator\",],null,],],[\"ClearableTypeahead\",\"resetOnCloseButtonClick\",[\"m_0_2e\",\"m_0_2h\",],[{\n __m: \"m_0_2e\"\n },{\n __m: \"m_0_2h\"\n },],],[\"m_0_2k\",],[\"m_0_2l\",],[\"Layer\",\"init\",[\"m_0_2l\",\"m_0_2m\",],[{\n __m: \"m_0_2l\"\n },{\n __m: \"m_0_2m\"\n },],],[\"m_0_2d\",],[\"m_0_4s\",],[\"Typeahead\",\"init\",[\"m_0_4q\",\"m_0_4s\",],[{\n __m: \"m_0_4q\"\n },{\n __m: \"m_0_4s\"\n },[],null,],],],\n instances: [[\"m_0_2c\",[\"BuddyListNub\",\"m_0_2b\",\"m_0_2d\",\"m_0_2e\",],[{\n __m: \"m_0_2b\"\n },{\n __m: \"m_0_2d\"\n },{\n __m: \"m_0_2e\"\n },],1,],[\"m_0_2e\",[\"Typeahead\",\"m_0_2i\",\"ChatTypeaheadView\",\"ChatTypeaheadRenderer\",\"m_0_2f\",\"ChatTypeaheadCore\",\"m_0_2g\",],[{\n __m: \"m_0_2i\"\n },{\n node_id: \"u_0_13\",\n node: null,\n ctor: {\n __m: \"ChatTypeaheadView\"\n },\n options: {\n autoSelect: true,\n renderer: {\n __m: \"ChatTypeaheadRenderer\"\n },\n causalElement: {\n __m: \"m_0_2f\"\n },\n minWidth: 0,\n alignment: \"left\",\n showBadges: 1\n }\n },{\n ctor: {\n __m: \"ChatTypeaheadCore\"\n },\n options: {\n keepFocused: false,\n resetOnSelect: true,\n setValueOnSelect: false\n }\n },{\n __m: \"m_0_2g\"\n },],7,],[\"m_0_2k\",[\"ChatSidebarDropdown\",\"m_0_2j\",],[{\n __m: \"m_0_2j\"\n },null,],1,],[\"m_0_2l\",[\"LegacyContextualDialog\",\"AccessibleLayer\",],[{\n buildWrapper: false,\n causalElement: null,\n addedBehaviors: [{\n __m: \"AccessibleLayer\"\n },]\n },],5,],[\"m_0_2d\",[\"ChatOrderedList\",\"m_0_2n\",\"m_0_2o\",\"m_0_2p\",\"m_0_2l\",],[false,{\n __m: \"m_0_2n\"\n },{\n __m: \"m_0_2o\"\n },{\n __m: \"m_0_2p\"\n },{\n __m: \"m_0_2l\"\n },null,],3,],[\"m_0_2i\",[\"ChatTypeaheadDataSource\",],[{\n alwaysPrefixMatch: true,\n showOfflineUsers: true\n },],2,],[\"m_0_2o\",[\"XHPTemplate\",\"m_0_2q\",],[{\n __m: \"m_0_2q\"\n },],2,],[\"m_0_2p\",[\"XHPTemplate\",\"m_0_2r\",],[{\n __m: \"m_0_2r\"\n },],2,],[\"m_0_2s\",[\"XHPTemplate\",\"m_0_3x\",],[{\n __m: \"m_0_3x\"\n },],2,],[\"m_0_2t\",[\"XHPTemplate\",\"m_0_3y\",],[{\n __m: \"m_0_3y\"\n },],2,],[\"m_0_2u\",[\"XHPTemplate\",\"m_0_3z\",],[{\n __m: \"m_0_3z\"\n },],2,],[\"m_0_2v\",[\"XHPTemplate\",\"m_0_40\",],[{\n __m: \"m_0_40\"\n },],2,],[\"m_0_2w\",[\"XHPTemplate\",\"m_0_41\",],[{\n __m: \"m_0_41\"\n },],2,],[\"m_0_2x\",[\"XHPTemplate\",\"m_0_42\",],[{\n __m: \"m_0_42\"\n },],2,],[\"m_0_2y\",[\"XHPTemplate\",\"m_0_43\",],[{\n __m: \"m_0_43\"\n },],2,],[\"m_0_2z\",[\"XHPTemplate\",\"m_0_44\",],[{\n __m: \"m_0_44\"\n },],2,],[\"m_0_30\",[\"XHPTemplate\",\"m_0_45\",],[{\n __m: \"m_0_45\"\n },],2,],[\"m_0_31\",[\"XHPTemplate\",\"m_0_46\",],[{\n __m: \"m_0_46\"\n },],2,],[\"m_0_32\",[\"XHPTemplate\",\"m_0_47\",],[{\n __m: \"m_0_47\"\n },],2,],[\"m_0_33\",[\"DataSource\",],[{\n maxResults: 5,\n queryData: [],\n bootstrapData: {\n viewer: 100006118350059,\n token: \"1372173655-7\",\n filter: [\"user\",],\n options: [\"friends_only\",]\n },\n bootstrapEndpoint: \"/ajax/typeahead/first_degree.php\"\n },],2,],[\"m_0_34\",[\"XHPTemplate\",\"m_0_48\",],[{\n __m: \"m_0_48\"\n },],2,],[\"m_0_35\",[\"XHPTemplate\",\"m_0_49\",],[{\n __m: \"m_0_49\"\n },],2,],[\"m_0_36\",[\"XHPTemplate\",\"m_0_4a\",],[{\n __m: \"m_0_4a\"\n },],2,],[\"m_0_37\",[\"XHPTemplate\",\"m_0_4b\",],[{\n __m: \"m_0_4b\"\n },],2,],[\"m_0_38\",[\"XHPTemplate\",\"m_0_4c\",],[{\n __m: \"m_0_4c\"\n },],2,],[\"m_0_39\",[\"XHPTemplate\",\"m_0_4d\",],[{\n __m: \"m_0_4d\"\n },],2,],[\"m_0_3a\",[\"XHPTemplate\",\"m_0_4e\",],[{\n __m: \"m_0_4e\"\n },],2,],[\"m_0_3b\",[\"XHPTemplate\",\"m_0_4f\",],[{\n __m: \"m_0_4f\"\n },],2,],[\"m_0_3c\",[\"XHPTemplate\",\"m_0_4g\",],[{\n __m: \"m_0_4g\"\n },],2,],[\"m_0_3d\",[\"XHPTemplate\",\"m_0_4h\",],[{\n __m: \"m_0_4h\"\n },],2,],[\"m_0_3e\",[\"XHPTemplate\",\"m_0_4i\",],[{\n __m: \"m_0_4i\"\n },],2,],[\"m_0_3f\",[\"XHPTemplate\",\"m_0_4j\",],[{\n __m: \"m_0_4j\"\n },],2,],[\"m_0_3g\",[\"XHPTemplate\",\"m_0_4k\",],[{\n __m: \"m_0_4k\"\n },],2,],[\"m_0_3h\",[\"XHPTemplate\",\"m_0_4l\",],[{\n __m: \"m_0_4l\"\n },],2,],[\"m_0_3i\",[\"XHPTemplate\",\"m_0_4m\",],[{\n __m: \"m_0_4m\"\n },],2,],[\"m_0_4s\",[\"Typeahead\",\"m_0_4t\",\"ContextualTypeaheadView\",\"m_0_4q\",\"TypeaheadCore\",\"m_0_4r\",],[{\n __m: \"m_0_4t\"\n },{\n node_id: \"\",\n node: null,\n ctor: {\n __m: \"ContextualTypeaheadView\"\n },\n options: {\n causalElement: {\n __m: \"m_0_4q\"\n },\n minWidth: 0,\n alignment: \"left\",\n showBadges: 1\n }\n },{\n ctor: {\n __m: \"TypeaheadCore\"\n },\n options: []\n },{\n __m: \"m_0_4r\"\n },],3,],[\"m_0_3j\",[\"XHPTemplate\",\"m_0_4p\",],[{\n __m: \"m_0_4p\"\n },],2,],[\"m_0_3k\",[\"XHPTemplate\",\"m_0_4u\",],[{\n __m: \"m_0_4u\"\n },],2,],[\"m_0_3l\",[\"XHPTemplate\",\"m_0_4v\",],[{\n __m: \"m_0_4v\"\n },],2,],[\"m_0_3m\",[\"XHPTemplate\",\"m_0_4w\",],[{\n __m: \"m_0_4w\"\n },],2,],[\"m_0_3n\",[\"XHPTemplate\",\"m_0_4x\",],[{\n __m: \"m_0_4x\"\n },],2,],[\"m_0_3o\",[\"XHPTemplate\",\"m_0_4y\",],[{\n __m: \"m_0_4y\"\n },],2,],[\"m_0_3p\",[\"XHPTemplate\",\"m_0_4z\",],[{\n __m: \"m_0_4z\"\n },],2,],[\"m_0_3q\",[\"XHPTemplate\",\"m_0_50\",],[{\n __m: \"m_0_50\"\n },],2,],[\"m_0_3r\",[\"XHPTemplate\",\"m_0_51\",],[{\n __m: \"m_0_51\"\n },],2,],[\"m_0_3s\",[\"XHPTemplate\",\"m_0_54\",],[{\n __m: \"m_0_54\"\n },],2,],[\"m_0_3t\",[\"XHPTemplate\",\"m_0_55\",],[{\n __m: \"m_0_55\"\n },],2,],[\"m_0_3u\",[\"XHPTemplate\",\"m_0_56\",],[{\n __m: \"m_0_56\"\n },],2,],[\"m_0_3v\",[\"XHPTemplate\",\"m_0_57\",],[{\n __m: \"m_0_57\"\n },],2,],[\"m_0_3w\",[\"XHPTemplate\",\"m_0_58\",],[{\n __m: \"m_0_58\"\n },],2,],[\"m_0_4t\",[\"DataSource\",],[[],],2,],],\n define: [[\"LinkshimHandlerConfig\",[],{\n supports_meta_referrer: false,\n render_verification_rate: 1000\n },27,],[\"MercurySheetTemplates\",[\"m_0_2s\",],{\n \":fb:mercury:tab-sheet:loading\": {\n __m: \"m_0_2s\"\n }\n },40,],[\"MercuryAttachmentTemplates\",[\"m_0_2t\",\"m_0_2u\",\"m_0_2v\",\"m_0_2w\",\"m_0_2x\",\"m_0_2y\",\"m_0_2z\",\"m_0_30\",\"m_0_31\",\"m_0_32\",],{\n \":fb:mercury:attachment:error\": {\n __m: \"m_0_2t\"\n },\n \":fb:mercury:attachment:video-thumb\": {\n __m: \"m_0_2u\"\n },\n \":fb:mercury:attachment:file-name\": {\n __m: \"m_0_2v\"\n },\n \":fb:mercury:attachment:external-link\": {\n __m: \"m_0_2w\"\n },\n \":fb:mercury:attachment:music\": {\n __m: \"m_0_2x\"\n },\n \":fb:mercury:attachment:file-link\": {\n __m: \"m_0_2y\"\n },\n \":fb:mercury:attachment:preview\": {\n __m: \"m_0_2z\"\n },\n \":fb:mercury:attachment:share-link\": {\n __m: \"m_0_30\"\n },\n \":fb:mercury:upload-file-row\": {\n __m: \"m_0_31\"\n },\n \":fb:mercury:attachment:extended-file-link\": {\n __m: \"m_0_32\"\n }\n },34,],[\"MercuryDataSourceWrapper\",[\"m_0_33\",],{\n source: {\n __m: \"m_0_33\"\n }\n },37,],[\"MercuryStickersInitialData\",[],{\n packs: [{\n id: 126361870881943,\n name: \"Meep\",\n icon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yd/r/wn5XeO2Rkqj.png\",\n selectedIcon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yN/r/sZ4spcbuYtY.png\"\n },{\n id: 350357561732812,\n name: \"Pusheen\",\n icon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yy/r/kLIslj7Vlau.png\",\n selectedIcon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yz/r/58FtCc-hDRb.png\"\n },{\n id: \"emoticons\",\n name: \"Emoticons\",\n icon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y_/r/4Dc6kC7GMzT.png\",\n selectedIcon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yV/r/d-mu_AVkpiU.png\"\n },]\n },144,],[\"ChatTabTemplates\",[\"m_0_34\",\"m_0_35\",\"m_0_36\",\"m_0_37\",\"m_0_38\",\"m_0_39\",\"m_0_3a\",\"m_0_3b\",\"m_0_3c\",\"m_0_3d\",\"m_0_3e\",\"m_0_3f\",\"m_0_3g\",\"m_0_3h\",\"m_0_3i\",\"m_0_3j\",\"m_0_3k\",\"m_0_3l\",\"m_0_3m\",\"m_0_3n\",\"m_0_3o\",\"m_0_3p\",\"m_0_3q\",\"m_0_3r\",],{\n \":fb:chat:conversation:message:event\": {\n __m: \"m_0_34\"\n },\n \":fb:chat:conversation:message-group\": {\n __m: \"m_0_35\"\n },\n \":fb:chat:conversation:message:undertext\": {\n __m: \"m_0_36\"\n },\n \":fb:chat:tab:selector:item\": {\n __m: \"m_0_37\"\n },\n \":fb:mercury:chat:message:forward\": {\n __m: \"m_0_38\"\n },\n \":fb:chat:tab:selector\": {\n __m: \"m_0_39\"\n },\n \":fb:mercury:chat:multichat-tooltip-item\": {\n __m: \"m_0_3a\"\n },\n \":fb:chat:conversation:date-break\": {\n __m: \"m_0_3b\"\n },\n \":fb:mercury:call:tour\": {\n __m: \"m_0_3c\"\n },\n \":fb:mercury:chat:tab-sheet:message-icon-sheet\": {\n __m: \"m_0_3d\"\n },\n \":fb:mercury:chat:tab-sheet:clickable-message-icon-sheet\": {\n __m: \"m_0_3e\"\n },\n \":fb:mercury:chat:tab-sheet:user-blocked\": {\n __m: \"m_0_3f\"\n },\n \":fb:chat:conversation:message:subject\": {\n __m: \"m_0_3g\"\n },\n \":fb:mercury:chat:tab-sheet:add-friends-empty-tab\": {\n __m: \"m_0_3h\"\n },\n \":fb:mercury:chat:multichat-tab\": {\n __m: \"m_0_3i\"\n },\n \":fb:mercury:chat:tab-sheet:name-conversation\": {\n __m: \"m_0_3j\"\n },\n \":fb:chat:conversation:message\": {\n __m: \"m_0_3k\"\n },\n \":fb:mercury:call:promo\": {\n __m: \"m_0_3l\"\n },\n \":fb:mercury:chat:tab-sheet:add-friends\": {\n __m: \"m_0_3m\"\n },\n \":fb:chat:conversation:message:status\": {\n __m: \"m_0_3n\"\n },\n \":fb:mercury:chat:tab-sheet:message-mute-sheet\": {\n __m: \"m_0_3o\"\n },\n \":fb:mercury:typing-indicator:typing\": {\n __m: \"m_0_3p\"\n },\n \":fb:mercury:timestamp\": {\n __m: \"m_0_3q\"\n },\n \":fb:mercury:chat:user-tab\": {\n __m: \"m_0_3r\"\n }\n },15,],[\"VideoCallTemplates\",[\"m_0_3s\",],{\n \":fb:videocall:incoming-dialog\": {\n __m: \"m_0_3s\"\n }\n },74,],[\"MercuryTypeaheadTemplates\",[\"m_0_3t\",\"m_0_3u\",\"m_0_3v\",\"m_0_3w\",],{\n \":fb:mercury:tokenizer\": {\n __m: \"m_0_3t\"\n },\n \":fb:mercury:typeahead:header\": {\n __m: \"m_0_3u\"\n },\n \":fb:mercury:typeahead\": {\n __m: \"m_0_3v\"\n },\n \":fb:mercury:typeahead:result\": {\n __m: \"m_0_3w\"\n }\n },43,],],\n elements: [[\"m_0_27\",\"u_0_10\",2,],[\"m_0_29\",\"u_0_11\",2,],[\"m_0_2a\",\"u_0_12\",2,],[\"m_0_2b\",\"fbDockChatBuddylistNub\",2,],[\"m_0_2g\",\"u_0_14\",2,],[\"m_0_2h\",\"u_0_15\",2,],[\"m_0_2f\",\"u_0_16\",4,],[\"m_0_2j\",\"u_0_17\",2,],[\"m_0_2n\",\"u_0_19\",2,],[\"m_0_28\",\"u_0_1a\",2,],[\"m_0_4o\",\"u_0_1f\",2,\"m_0_4m\",],[\"m_0_4n\",\"u_0_1g\",2,\"m_0_4m\",],[\"m_0_4r\",\"u_0_1h\",2,\"m_0_4p\",],[\"m_0_4q\",\"u_0_1i\",4,\"m_0_4p\",],[\"m_0_53\",\"u_0_1m\",2,\"m_0_51\",],[\"m_0_52\",\"u_0_1n\",2,\"m_0_51\",],],\n markup: [[\"m_0_2m\",{\n __html: \"\\u003Cdiv class=\\\"uiContextualDialogPositioner\\\" id=\\\"u_0_18\\\" data-position=\\\"left\\\"\\u003E\\u003Cdiv class=\\\"uiOverlay uiContextualDialog\\\" data-width=\\\"300\\\" data-destroyonhide=\\\"false\\\" data-fadeonhide=\\\"false\\\"\\u003E\\u003Cdiv class=\\\"uiOverlayContent\\\"\\u003E\\u003Cdiv class=\\\"uiContextualDialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_2q\",{\n __html: \"\\u003Cli class=\\\"_42fz\\\"\\u003E\\u003Ca class=\\\"clearfix _50zw\\\" data-jsid=\\\"anchor\\\" href=\\\"#\\\" role=\\\"\\\" rel=\\\"ignore\\\"\\u003E\\u003Cdiv class=\\\"_54sk _42g2\\\" data-jsid=\\\"favorite_button\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pic_container\\\"\\u003E\\u003Cimg class=\\\"pic img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"profile-photo\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"_54sp _42i1 img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yW/r/F7kk7-cjEKk.png\\\" alt=\\\"\\\" width=\\\"10\\\" height=\\\"8\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"accessible-name\\\" class=\\\"accessible_elem\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"icon_container\\\"\\u003E\\u003Cimg class=\\\"_d3c icon img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"active_time icon\\\"\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"status icon img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv aria-hidden=\\\"true\\\"\\u003E\\u003Cdiv class=\\\"_52zl\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_52zk\\\" data-jsid=\\\"context\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_2r\",{\n __html: \"\\u003Cli\\u003E\\u003Cdiv class=\\\"phs fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"message\\\"\\u003ELoading...\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_3x\",{\n __html: \"\\u003Cimg class=\\\"hidden_elem _1sk7 img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"16\\\" /\\u003E\"\n },2,],[\"m_0_3y\",{\n __html: \"\\u003Cdiv class=\\\"mtm pam _4_wc attachment uiBoxGray\\\"\\u003E\\u003Cspan class=\\\"uiIconText MercuryThreadlistIconError\\\" data-jsid=\\\"error\\\"\\u003E\\u003Ci class=\\\"img sp_4p6kmz sx_25310e\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_3z\",{\n __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Ca class=\\\"uiVideoThumb videoPreview\\\" href=\\\"#\\\" data-jsid=\\\"thumb\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" /\\u003E\\u003Ci\\u003E\\u003C/i\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_40\",{\n __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Cspan class=\\\"uiIconText _3tn\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"filename\\\"\\u003E\\u003C/span\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_41\",{\n __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Cdiv class=\\\"clearfix MercuryExternalLink\\\"\\u003E\\u003Cdiv class=\\\"_rpb clearfix stat_elem lfloat\\\" data-jsid=\\\"preview\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"MercuryLinkRight rfloat\\\"\\u003E\\u003Cdiv class=\\\"MercuryLinkTitle\\\"\\u003E\\u003Ca class=\\\"linkTitle\\\" target=\\\"_blank\\\" href=\\\"#\\\" data-jsid=\\\"name\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\" data-jsid=\\\"shortLink\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_42\",{\n __html: \"\\u003Cdiv class=\\\"musicAttachment\\\"\\u003E\\u003Cdiv class=\\\"_59go _59gq\\\" data-jsid=\\\"icon_link\\\"\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"_59gp\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_rpb clearfix stat_elem\\\" data-jsid=\\\"preview\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_43\",{\n __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"_59gp\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_44\",{\n __html: \"\\u003Cdiv class=\\\"_rpb clearfix stat_elem\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_45\",{\n __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Ca data-jsid=\\\"link\\\" target=\\\"_blank\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cspan data-jsid=\\\"name\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_46\",{\n __html: \"\\u003Cdiv class=\\\"_2qh _2qe uploadFileRow\\\"\\u003E\\u003Cimg class=\\\"_2qf img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Clabel class=\\\"_2qg uiCloseButton uiCloseButtonSmall uiCloseButtonSmallDark\\\" for=\\\"u_0_1b\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"closeFileUpload\\\" id=\\\"u_0_1b\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"_4-te\\\"\\u003E\\u003Cspan class=\\\"uiIconText _3tn\\\" data-jsid=\\\"iconText\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_47\",{\n __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Cdiv class=\\\"_59gs\\\"\\u003E\\u003Cdiv data-jsid=\\\"openLinkContainer\\\" class=\\\"_59gr hidden_elem\\\"\\u003E\\u003Ca class=\\\"_59hm\\\" href=\\\"#\\\" data-jsid=\\\"openFile\\\" role=\\\"button\\\"\\u003Eopen\\u003C/a\\u003E \\u00b7 \\u003C/div\\u003E\\u003Ca class=\\\"_59hn\\\" href=\\\"#\\\" data-jsid=\\\"downloadFile\\\" role=\\\"button\\\"\\u003Edownload\\u003C/a\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_59gp\\\" data-jsid=\\\"filename\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_48\",{\n __html: \"\\u003Cdiv class=\\\"mhs mbs pts fbChatConvItem _511o clearfix\\\"\\u003E\\u003Cdiv class=\\\"_1_vw\\\"\\u003E\\u003Cimg class=\\\"_1_vv img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"icon\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_1_vx\\\"\\u003E\\u003Cspan class=\\\"_1_zk fsm fcg\\\" data-jsid=\\\"message\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"mls _1_vz fss fcg\\\" data-jsid=\\\"timestamp\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_1_vy\\\" data-jsid=\\\"attachment\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_49\",{\n __html: \"\\u003Cdiv class=\\\"mhs mbs pts fbChatConvItem _50dw clearfix small\\\"\\u003E\\u003Cdiv class=\\\"_50ke\\\"\\u003E\\u003Cdiv class=\\\"_50x5\\\" data-jsid=\\\"profileName\\\"\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"profileLink\\\" href=\\\"#\\\" data-jsid=\\\"profileLink\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"profilePhoto\\\" src=\\\"/images/spacer.gif\\\" data-jsid=\\\"profilePhoto\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"messages\\\" data-jsid=\\\"messages\\\"\\u003E\\u003Cdiv class=\\\"metaInfoContainer fss fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"reportLinkWithDot\\\" class=\\\"hidden_elem\\\"\\u003E\\u003Ca href=\\\"#\\\" rel=\\\"dialog\\\" data-jsid=\\\"reportLink\\\" role=\\\"button\\\"\\u003E\\u003Cspan class=\\\"fcg\\\"\\u003EReport\\u003C/span\\u003E\\u003C/a\\u003E \\u00b7 \\u003C/span\\u003E\\u003Cspan class=\\\"timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4a\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_542e fwb fcg\\\" data-jsid=\\\"status\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4b\",{\n __html: \"\\u003Cli class=\\\"uiMenuItem _51ju\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Clabel class=\\\"rfloat uiCloseButton uiCloseButtonSmall\\\" for=\\\"u_0_1c\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"closeButton\\\" id=\\\"u_0_1c\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"_51jv\\\"\\u003E\\u003Cspan class=\\\"unreadCount\\\" data-jsid=\\\"unreadCount\\\"\\u003E\\u003C/span\\u003E\\u003Cspan data-jsid=\\\"content\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_4c\",{\n __html: \"\\u003Cdiv\\u003E\\u003Ca class=\\\"uiIconText _52i4\\\" href=\\\"#\\\" style=\\\"padding-left: 12px;\\\" data-jsid=\\\"forwardLink\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_8448dd\\\" style=\\\"top: 3px;\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"forwardText\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4d\",{\n __html: \"\\u003Cdiv class=\\\"uiToggle _50-v fbNub _51jt\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"messagesIcon img sp_9kaae3 sx_ee64a9\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"numTabs\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"_51jw\\\" data-jsid=\\\"numMessages\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout uiToggleFlyout noTitlebar\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu\\\" data-jsid=\\\"menu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Dummy\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"0\\\" href=\\\"#\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E Dummy \\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4e\",{\n __html: \"\\u003Cdiv class=\\\"clearfix mvs\\\"\\u003E\\u003Ci class=\\\"rfloat img sp_9kaae3 sx_1dc182\\\" data-jsid=\\\"icon\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4f\",{\n __html: \"\\u003Cdiv class=\\\"_511m mhs mbs fbChatConvItem\\\"\\u003E\\u003Cdiv class=\\\"_511n fss fwb fcg\\\" data-jsid=\\\"date\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4g\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"clearfix mvm mrm mll videoCallPromo\\\"\\u003E\\u003Ci class=\\\"_8o _8s lfloat img sp_2gr8ms sx_cd450f\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_42ef\\\"\\u003E\\u003Cdiv class=\\\"pls\\\"\\u003E\\u003Cspan class=\\\"calloutTitle fwb\\\"\\u003ETalk face to face\\u003C/span\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\"\\u003EClick \\u003Cspan\\u003E ( \\u003Ci class=\\\"onlineStatusIcon img sp_2gr8ms sx_8e093b\\\"\\u003E\\u003C/i\\u003E )\\u003C/span\\u003E below to start a video call.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter uiContextualDialogFooter uiBoxGray topborder\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"prs uiOverlayFooterMessage\\\"\\u003E\\u003Ca target=\\\"_blank\\\" href=\\\"/help/?page=177940565599960\\\"\\u003ELearn more\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"uiOverlayFooterButtons\\\"\\u003E\\u003Ca class=\\\"uiOverlayButton layerCancel uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" name=\\\"cancel\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EOkay\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4h\",{\n __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"mrs _1skc img sp_9kaae3 sx_ee64a9\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_1skd fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4i\",{\n __html: \"\\u003Ca href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"mrs _1skc img sp_9kaae3 sx_ee64a9\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_1skd fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\"\n },2,],[\"m_0_4j\",{\n __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"_1skc img sp_4p6kmz sx_c2c2e3\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_1skd\\\"\\u003E\\u003Cspan class=\\\"fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv\\u003E\\u003Ca href=\\\"#\\\" data-jsid=\\\"actionLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4k\",{\n __html: \"\\u003Cdiv class=\\\"fbChatMessageSubject fsm fwb\\\" data-jsid=\\\"messageSubject\\\"\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4l\",{\n __html: \"\\u003Cdiv class=\\\"_54_v\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _54_x\\\"\\u003E\\u003Cspan class=\\\"fcg\\\"\\u003ETo:\\u003C/span\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop _54_w\\\"\\u003E\\u003Cdiv data-jsid=\\\"participantsTypeahead\\\"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4m\",{\n __html: \"\\u003Cdiv class=\\\"fbNub _50-v _50mz _50m-\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"dockButton\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbChatTab\\\"\\u003E\\u003Cdiv class=\\\"funhouse rfloat\\\"\\u003E\\u003Cdiv class=\\\"close\\\" title=\\\"Close\\\" data-jsid=\\\"closeButton\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"wrapWrapper\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cdiv class=\\\"name fwb\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_51jx hidden_elem\\\" data-jsid=\\\"numMessages\\\"\\u003E0\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout fbDockChatTabFlyout\\\" data-jsid=\\\"chatWrapper\\\" role=\\\"complementary\\\" aria-labelledby=\\\"u_0_1d\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbNubFlyoutTitlebar titlebar\\\" data-jsid=\\\"nubFlyoutTitlebar\\\"\\u003E\\u003Cdiv class=\\\"mls titlebarButtonWrapper rfloat\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Add more friends to chat\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"addToThread button\\\" href=\\\"#\\\" data-jsid=\\\"addToThreadLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelector inlineBlock _510p\\\" data-jsid=\\\"dropdown\\\"\\u003E\\u003Cdiv class=\\\"uiToggle wrap\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Options\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"button uiSelectorButton\\\" href=\\\"#\\\" role=\\\"button\\\" aria-haspopup=\\\"1\\\" rel=\\\"toggle\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu uiSelectorMenu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"See Full Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"conversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ESee Full Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\"\\u003E\\u003Cform data-jsid=\\\"attachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1f\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"attachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"0\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60 itemLabel\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"fileInput\\\" /\\u003E\\u003Ca class=\\\"_4q61 itemAnchor\\\"\\u003EAdd Files...\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Add Friends to Chat...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"addFriendLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EAdd Friends to Chat...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Edit Conversation Name\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"nameConversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EEdit Conversation Name\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Mute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"muteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EMute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Unmute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unmuteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EUnmute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Leave Conversation...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unsubscribeLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ELeave Conversation...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"close button\\\" href=\\\"#\\\" data-jsid=\\\"titlebarCloseButton\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"titlebarLabel clearfix\\\"\\u003E\\u003Ch4 class=\\\"titlebarTextWrapper\\\"\\u003E\\u003Cimg class=\\\"_51sn img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"presenceIndicator\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Ca class=\\\"titlebarText noLink\\\" href=\\\"#\\\" rel=\\\"none\\\" data-jsid=\\\"titlebarText\\\" aria-level=\\\"3\\\" id=\\\"u_0_1d\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/h4\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutHeader\\\"\\u003E\\u003Cdiv class=\\\"_1sk5\\\"\\u003E\\u003Cdiv class=\\\"_1sk6 hidden_elem\\\" data-jsid=\\\"sheet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\" data-jsid=\\\"chatConv\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Ctable class=\\\"uiGrid conversationContainer\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" role=\\\"log\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vBot\\\"\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation Start\\u003C/div\\u003E\\u003Cimg class=\\\"pvm loading hidden_elem img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingIndicator\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Cdiv class=\\\"conversation\\\" aria-live=\\\"polite\\\" aria-atomic=\\\"false\\\" data-jsid=\\\"conversation\\\" id=\\\"u_0_1e\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation End\\u003C/div\\u003E\\u003Cdiv class=\\\"_51lq\\\" data-jsid=\\\"typingIndicator\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_510g\\\" data-jsid=\\\"lastMessageIndicator\\\"\\u003E\\u003Cdiv class=\\\"_510h\\\"\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_510f\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutFooter\\\"\\u003E\\u003Cdiv class=\\\"_552h\\\" data-jsid=\\\"inputContainer\\\"\\u003E\\u003Ctextarea class=\\\"uiTextareaAutogrow _552m\\\" data-jsid=\\\"input\\\" aria-controls=\\\"u_0_1e\\\" onkeydown=\\\"window.Bootloader &amp;&amp; Bootloader.loadComponents([&quot;control-textarea&quot;], function() &#123; TextAreaControl.getInstance(this) &#125;.bind(this)); \\\"\\u003E\\u003C/textarea\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_552n\\\" data-jsid=\\\"iconsContainer\\\"\\u003E\\u003Cform class=\\\"_552o\\\" data-jsid=\\\"photoAttachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1g\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"photoAttachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"photoFileInput\\\" accept=\\\"image/*\\\" /\\u003E\\u003Ca class=\\\"_4q61 _509v\\\" data-jsid=\\\"photoAttachLink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"_509w\\\"\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003Cdiv class=\\\"uiToggle emoticonsPanel\\\" data-jsid=\\\"emoticons\\\"\\u003E\\u003Ca class=\\\"emoteTogglerImg _5bvk\\\" aria-label=\\\"Choose an emoticon\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"panelFlyout _590j uiToggleFlyout\\\"\\u003E\\u003Cdiv data-jsid=\\\"stickers\\\"\\u003E\\u003Cdiv class=\\\"_5906\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5907\\\"\\u003E\\u003Cdiv class=\\\"_55bq hidden_elem\\\" data-id=\\\"emoticons\\\"\\u003E\\u003Ctable class=\\\"emoticonsTable\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_smile\\\" aria-label=\\\"smile\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_frown\\\" aria-label=\\\"frown\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_tongue\\\" aria-label=\\\"tongue\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grin\\\" aria-label=\\\"grin\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_gasp\\\" aria-label=\\\"gasp\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_wink\\\" aria-label=\\\"wink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_pacman\\\" aria-label=\\\"pacman\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grumpy\\\" aria-label=\\\"grumpy\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_unsure\\\" aria-label=\\\"unsure\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_cry\\\" aria-label=\\\"cry\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_kiki\\\" aria-label=\\\"kiki\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_glasses\\\" aria-label=\\\"glasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_sunglasses\\\" aria-label=\\\"sunglasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_heart\\\" aria-label=\\\"heart\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_devil\\\" aria-label=\\\"devil\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_angel\\\" aria-label=\\\"angel\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_squint\\\" aria-label=\\\"squint\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_confused\\\" aria-label=\\\"confused\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_upset\\\" aria-label=\\\"upset\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_colonthree\\\" aria-label=\\\"colonthree\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_like\\\" aria-label=\\\"like\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"panelFlyoutArrow\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutAttachments\\\"\\u003E\\u003Cdiv class=\\\"chatAttachmentShelf\\\" data-jsid=\\\"attachmentShelf\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },4,],[\"m_0_4p\",{\n __html: \"\\u003Cdiv class=\\\"_56jk\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _56jl\\\"\\u003E\\u003Cdiv class=\\\"uiTypeahead\\\" id=\\\"u_0_1h\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" class=\\\"hiddenInput\\\" /\\u003E\\u003Cdiv class=\\\"innerWrap\\\"\\u003E\\u003Cinput type=\\\"text\\\" class=\\\"inputtext textInput DOMControl_placeholder\\\" data-jsid=\\\"nameInput\\\" placeholder=\\\"Name this group\\\" autocomplete=\\\"off\\\" aria-autocomplete=\\\"list\\\" aria-expanded=\\\"false\\\" aria-owns=\\\"typeahead_list_u_0_1h\\\" role=\\\"combobox\\\" spellcheck=\\\"false\\\" value=\\\"Name this group\\\" aria-label=\\\"Name this group\\\" id=\\\"u_0_1i\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu selected _42g-\\\" data-jsid=\\\"doneButton\\\" type=\\\"submit\\\"\\u003EDone\\u003C/button\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n },4,],[\"m_0_4u\",{\n __html: \"\\u003Cdiv class=\\\"_kso fsm\\\" data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4v\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"clearfix mvm mrm mll videoCallPromo\\\"\\u003E\\u003Ci class=\\\"_8o _8s lfloat img sp_2gr8ms sx_cd450f\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_42ef\\\"\\u003E\\u003Cdiv class=\\\"pls\\\"\\u003E\\u003Cspan class=\\\"calloutTitle fwb\\\"\\u003ETry talking face to face\\u003C/span\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\"\\u003EClick \\u003Cspan\\u003E ( \\u003Ci class=\\\"onlineStatusIcon img sp_2gr8ms sx_8e093b\\\"\\u003E\\u003C/i\\u003E )\\u003C/span\\u003E below to start a video call.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter uiContextualDialogFooter uiBoxGray topborder\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"prs uiOverlayFooterMessage\\\"\\u003E\\u003Ca target=\\\"_blank\\\" href=\\\"/help/?page=177940565599960\\\"\\u003ELearn more\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"uiOverlayFooterButtons\\\"\\u003E\\u003Ca class=\\\"uiOverlayButton layerCancel uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" name=\\\"cancel\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EClose\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4w\",{\n __html: \"\\u003Cdiv class=\\\"_54_-\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _54__\\\"\\u003E\\u003Cdiv data-jsid=\\\"participantsTypeahead\\\"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop\\\"\\u003E\\u003Clabel class=\\\"doneButton uiButton uiButtonConfirm\\\" for=\\\"u_0_1j\\\"\\u003E\\u003Cinput value=\\\"Done\\\" data-jsid=\\\"doneButton\\\" type=\\\"submit\\\" id=\\\"u_0_1j\\\" /\\u003E\\u003C/label\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4x\",{\n __html: \"\\u003Cdiv class=\\\"_542q clearfix\\\"\\u003E\\u003Cdiv data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv data-jsid=\\\"status\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4y\",{\n __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Cspan class=\\\"_1skd _1ske fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003Ca class=\\\"pas\\\" data-jsid=\\\"unmuteButton\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003EUnmute\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4z\",{\n __html: \"\\u003Cdiv class=\\\"_510u\\\"\\u003E\\u003Cdiv class=\\\"_510v\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_50\",{\n __html: \"\\u003Cabbr title=\\\"Wednesday, December 31, 1969 at 7:00pm\\\" data-utime=\\\"0\\\" class=\\\"hidden_elem timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003Eover a year ago\\u003C/abbr\\u003E\"\n },2,],[\"m_0_51\",{\n __html: \"\\u003Cdiv class=\\\"fbNub _50-v _50mz _50m_\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"dockButton\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbChatTab\\\"\\u003E\\u003Cdiv class=\\\"funhouse rfloat\\\"\\u003E\\u003Cdiv class=\\\"close\\\" title=\\\"Close\\\" data-jsid=\\\"closeButton\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"wrapWrapper\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cdiv class=\\\"name fwb\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_51jx hidden_elem\\\" data-jsid=\\\"numMessages\\\"\\u003E0\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout fbDockChatTabFlyout\\\" data-jsid=\\\"chatWrapper\\\" role=\\\"complementary\\\" aria-labelledby=\\\"u_0_1k\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbNubFlyoutTitlebar titlebar\\\" data-jsid=\\\"nubFlyoutTitlebar\\\"\\u003E\\u003Cdiv class=\\\"mls titlebarButtonWrapper rfloat\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Add more friends to chat\\\" class=\\\"addToThread button\\\" href=\\\"#\\\" data-jsid=\\\"addToThreadLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Start a video call\\\" class=\\\"videoicon button\\\" href=\\\"#\\\" data-jsid=\\\"videoCallLink\\\" data-gt=\\\"&#123;&quot;videochat&quot;:&quot;call_clicked_chat_tab&quot;&#125;\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelector inlineBlock _510p\\\" data-jsid=\\\"dropdown\\\"\\u003E\\u003Cdiv class=\\\"uiToggle wrap\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Options\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"button uiSelectorButton\\\" href=\\\"#\\\" role=\\\"button\\\" aria-haspopup=\\\"1\\\" rel=\\\"toggle\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu uiSelectorMenu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" tabindex=\\\"0\\\"\\u003E\\u003Cform data-jsid=\\\"attachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1m\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"attachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"0\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60 itemLabel\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"fileInput\\\" /\\u003E\\u003Ca class=\\\"_4q61 itemAnchor\\\"\\u003EAdd Files...\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Add Friends to Chat...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"addFriendLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EAdd Friends to Chat...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"privacyLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E \\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"See Full Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"conversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ESee Full Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Mute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"muteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EMute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Unmute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unmuteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EUnmute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Clear Window\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"clearWindowLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EClear Window\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Report as Spam or Abuse...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"reportSpamLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EReport as Spam or Abuse...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"close button\\\" href=\\\"#\\\" data-jsid=\\\"titlebarCloseButton\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"titlebarLabel clearfix\\\"\\u003E\\u003Ch4 class=\\\"titlebarTextWrapper\\\"\\u003E\\u003Cimg class=\\\"_51sn img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"presenceIndicator\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Ca class=\\\"titlebarText noLink\\\" href=\\\"#\\\" rel=\\\"none\\\" data-jsid=\\\"titlebarText\\\" aria-level=\\\"3\\\" id=\\\"u_0_1k\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/h4\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutHeader\\\"\\u003E\\u003Cdiv class=\\\"_1sk5\\\"\\u003E\\u003Cdiv class=\\\"_1sk6 hidden_elem\\\" data-jsid=\\\"sheet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\" data-jsid=\\\"chatConv\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Ctable class=\\\"uiGrid conversationContainer\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" role=\\\"log\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vBot\\\"\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation Start\\u003C/div\\u003E\\u003Cimg class=\\\"pvm loading hidden_elem img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingIndicator\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Cdiv class=\\\"conversation\\\" aria-live=\\\"polite\\\" aria-atomic=\\\"false\\\" data-jsid=\\\"conversation\\\" id=\\\"u_0_1l\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation End\\u003C/div\\u003E\\u003Cdiv class=\\\"_51lq\\\" data-jsid=\\\"typingIndicator\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_510g\\\" data-jsid=\\\"lastMessageIndicator\\\"\\u003E\\u003Cdiv class=\\\"_510h\\\"\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_510f\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutFooter\\\"\\u003E\\u003Cdiv class=\\\"_552h\\\" data-jsid=\\\"inputContainer\\\"\\u003E\\u003Ctextarea class=\\\"uiTextareaAutogrow _552m\\\" data-jsid=\\\"input\\\" aria-controls=\\\"u_0_1l\\\" onkeydown=\\\"window.Bootloader &amp;&amp; Bootloader.loadComponents([&quot;control-textarea&quot;], function() &#123; TextAreaControl.getInstance(this) &#125;.bind(this)); \\\"\\u003E\\u003C/textarea\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_552n\\\" data-jsid=\\\"iconsContainer\\\"\\u003E\\u003Cform class=\\\"_552o\\\" data-jsid=\\\"photoAttachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1n\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"photoAttachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"photoFileInput\\\" accept=\\\"image/*\\\" /\\u003E\\u003Ca class=\\\"_4q61 _509v\\\" data-jsid=\\\"photoAttachLink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"_509w\\\"\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003Cdiv class=\\\"uiToggle emoticonsPanel\\\" data-jsid=\\\"emoticons\\\"\\u003E\\u003Ca class=\\\"emoteTogglerImg _5bvk\\\" aria-label=\\\"Choose an emoticon\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"panelFlyout _590j uiToggleFlyout\\\"\\u003E\\u003Cdiv data-jsid=\\\"stickers\\\"\\u003E\\u003Cdiv class=\\\"_5906\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5907\\\"\\u003E\\u003Cdiv class=\\\"_55bq hidden_elem\\\" data-id=\\\"emoticons\\\"\\u003E\\u003Ctable class=\\\"emoticonsTable\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_smile\\\" aria-label=\\\"smile\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_frown\\\" aria-label=\\\"frown\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_tongue\\\" aria-label=\\\"tongue\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grin\\\" aria-label=\\\"grin\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_gasp\\\" aria-label=\\\"gasp\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_wink\\\" aria-label=\\\"wink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_pacman\\\" aria-label=\\\"pacman\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grumpy\\\" aria-label=\\\"grumpy\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_unsure\\\" aria-label=\\\"unsure\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_cry\\\" aria-label=\\\"cry\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_kiki\\\" aria-label=\\\"kiki\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_glasses\\\" aria-label=\\\"glasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_sunglasses\\\" aria-label=\\\"sunglasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_heart\\\" aria-label=\\\"heart\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_devil\\\" aria-label=\\\"devil\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_angel\\\" aria-label=\\\"angel\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_squint\\\" aria-label=\\\"squint\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_confused\\\" aria-label=\\\"confused\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_upset\\\" aria-label=\\\"upset\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_colonthree\\\" aria-label=\\\"colonthree\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_like\\\" aria-label=\\\"like\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"panelFlyoutArrow\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutAttachments\\\"\\u003E\\u003Cdiv class=\\\"chatAttachmentShelf\\\" data-jsid=\\\"attachmentShelf\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },4,],[\"m_0_54\",{\n __html: \"\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cimg class=\\\"mrm _s0 _29h _29i _rw img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" alt=\\\"\\\" data-jsid=\\\"profilePhoto\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_29j _29k\\\"\\u003E\\u003Cdiv class=\\\"mbs fsl fwb fcb\\\" data-jsid=\\\"mainText\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"aux-message fcg\\\" data-jsid=\\\"auxMessage\\\"\\u003EVideo will start as soon as you answer.\\u003C/div\\u003E\\u003Cdiv class=\\\"mts hidden_elem fcg\\\" data-jsid=\\\"slowMessage\\\"\\u003E\\u003Cspan class=\\\"fwb fcb\\\"\\u003EHaving trouble?\\u003C/span\\u003E Your connection may be \\u003Ca href=\\\"/help/214265948627885\\\" target=\\\"_blank\\\"\\u003Etoo slow\\u003C/a\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_55\",{\n __html: \"\\u003Cdiv class=\\\"clearfix uiTokenizer uiInlineTokenizer\\\"\\u003E\\u003Cdiv class=\\\"tokenarea hidden_elem\\\" data-jsid=\\\"tokenarea\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_56\",{\n __html: \"\\u003Cli class=\\\"_2qm\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"lfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan\\u003E\\u003Cimg class=\\\"_356 img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingSpinner\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Ca class=\\\"_357\\\" data-jsid=\\\"link\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_57\",{\n __html: \"\\u003Cdiv class=\\\"uiTypeahead\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" class=\\\"hiddenInput\\\" /\\u003E\\u003Cdiv class=\\\"innerWrap\\\"\\u003E\\u003Cinput type=\\\"text\\\" class=\\\"inputtext textInput\\\" data-jsid=\\\"textfield\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_58\",{\n __html: \"\\u003Cli class=\\\"_2qs\\\"\\u003E\\u003Cdiv class=\\\"clearfix pvs\\\"\\u003E\\u003Cdiv class=\\\"MercuryThreadImage mrm _3ks lfloat\\\" data-jsid=\\\"image\\\"\\u003E\\u003Cimg class=\\\"_s0 _rw img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_2qr\\\"\\u003E\\u003Cspan class=\\\"_2qn\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"_2qq fsm fwn fcg\\\" data-jsid=\\\"snippet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n },2,],]\n },\n css: [\"W3Ky6\",\"0duP3\",\"cy4a0\",],\n bootloadable: {\n \"legacy:control-textarea\": {\n resources: [\"AyUu6\",\"LpC/l\",\"W3Ky6\",\"c1+nc\",]\n },\n VideoCallController: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"4qhP/\",\"OJTM4\",\"u//Ut\",\"brbS1\",\"EzMPG\",\"gMfWI\",\"bUzfU\",\"KPLqg\",],\n \"module\": true\n },\n ErrorDialog: {\n resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",],\n \"module\": true\n },\n FBRTCCallController: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"4qhP/\",\"brbS1\",\"u//Ut\",\"OJTM4\",\"EzMPG\",\"gMfWI\",\"a3inZ\",\"KPLqg\",\"bUzfU\",\"LTaK/\",\"21lHn\",\"+h1d2\",\"9aS3c\",\"MfG6c\",\"LsRx/\",\"3h2ll\",\"Mzbs2\",\"wGXi/\",\"d6Evh\",\"6WF8S\",],\n \"module\": true\n }\n },\n resource_map: {\n \"9aS3c\": {\n type: \"css\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yO/r/OErByX4rRhh.css\"\n },\n Mzbs2: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y7/r/sM5jkmon6X9.js\"\n },\n \"3h2ll\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yz/r/8nGweTPJCKZ.js\"\n },\n \"6WF8S\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ya/r/cHaSy_1vFQu.js\"\n },\n \"4qhP/\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yv/r/tMfRnsOx-tg.js\"\n },\n \"LTaK/\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y_/r/3Z79JZzbt1o.js\"\n },\n KPLqg: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yq/r/UJCnyWz8q3r.css\"\n },\n \"wGXi/\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ym/r/usnMgvD8abB.js\"\n },\n gMfWI: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yY/r/YnJRD6K1VJA.js\"\n },\n \"c1+nc\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y1/r/3A9a-abDc5V.js\"\n },\n \"LsRx/\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yu/r/kS-r05X6OEA.js\"\n },\n a3inZ: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yO/r/9ELMM-KdnsD.js\"\n },\n d6Evh: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y2/r/jalUIRLBuTe.js\"\n },\n MfG6c: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yS/r/eKDf9pXbovQ.js\"\n },\n \"21lHn\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yP/r/QylH5JvJ2tZ.js\"\n }\n },\n ixData: {\n \"/images/messaging/stickers/selector/leftarrow.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yS/r/lM_ryP3lE-X.png\",\n width: 20,\n height: 20\n },\n \"/images/chat/sidebar/newGroupChatLitestand.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yk/r/3hu9Ow1TVfb.png\",\n width: 28,\n height: 28\n },\n \"/images/litestand/sidebar/blended/new_group_chat.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yg/r/I5ybuQbRjJE.png\",\n width: 32,\n height: 32\n },\n \"/images/chat/status/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_1dc182\"\n },\n \"/images/litestand/bookmarks/sidebar/remove.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_76e896\"\n },\n \"/images/litestand/sidebar/blended/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6ae2b7\"\n },\n \"/images/litestand/sidebar/blended/pushable.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_a69036\"\n },\n \"/images/litestand/bookmarks/sidebar/add.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_f57d5d\"\n },\n \"/images/litestand/sidebar/pushable.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_0b17f3\"\n },\n \"/images/litestand/sidebar/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6b87d3\"\n },\n \"/images/messaging/stickers/selector/rightarrow.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yt/r/jopyzHwsKtN.png\",\n width: 20,\n height: 20\n },\n \"/images/chat/add.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_daa3c5\"\n },\n \"/images/chat/status/mobile.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6633b3\"\n },\n \"/images/chat/sidebar/newGroupChat.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ys/r/S824hxiYJSG.png\",\n width: 28,\n height: 28\n },\n \"/images/chat/delete.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_1bb86f\"\n },\n \"/images/messaging/stickers/selector/store.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y9/r/WG0aM70e5Iq.png\",\n width: 20,\n height: 20\n }\n },\n js: [\"AyUu6\",\"OJTM4\",\"AsDOA\",\"63VzN\",\"H+v1W\",\"LpC/l\",\"brbS1\",\"u//Ut\",\"EzMPG\",],\n id: \"pagelet_dock\",\n phase: 3\n});");
// 1339
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"sbef7b505199b5c5088f13e778f4a6e67f70c6c49");
// 1340
geval("bigPipe.onPageletArrive({\n JSBNG__content: {\n pagelet_dock: {\n container_id: \"u_0_1o\"\n }\n },\n jsmods: {\n require: [[\"MusicButtonManager\",\"init\",[],[[\"music.song\",],],],[\"initLiveMessageReceiver\",],[\"Dock\",\"init\",[\"m_0_27\",],[{\n __m: \"m_0_27\"\n },],],[\"React\",\"constructAndRenderComponent\",[\"NotificationBeeper.react\",\"m_0_28\",],[{\n __m: \"NotificationBeeper.react\"\n },{\n unseenVsUnread: false,\n canPause: false,\n shouldLogImpressions: false,\n soundPath: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/yy/r/odIeERVR1c5.mp3\",\n soundEnabled: true,\n tracking: \"{\\\"ref\\\":\\\"beeper\\\",\\\"jewel\\\":\\\"notifications\\\",\\\"type\\\":\\\"click2canvas\\\"}\"\n },{\n __m: \"m_0_28\"\n },],],[\"ChatApp\",\"init\",[\"m_0_29\",\"m_0_2a\",],[{\n __m: \"m_0_29\"\n },{\n __m: \"m_0_2a\"\n },{\n payload_source: \"server_initial_data\"\n },],],[\"ChatOptions\",],[\"ShortProfiles\",\"setMulti\",[],[{\n 100006118350059: {\n id: \"100006118350059\",\n JSBNG__name: \"Javasee Cript\",\n firstName: \"Javasee\",\n vanity: \"javasee.cript\",\n thumbSrc: \"http://jsbngssl.fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/s32x32/275646_100006118350059_324335073_q.jpg\",\n uri: \"http://jsbngssl.www.facebook.com/javasee.cript\",\n gender: 2,\n type: \"user\",\n is_friend: false,\n social_snippets: null,\n showVideoPromo: false,\n searchTokens: [\"Cript\",\"Javasee\",]\n }\n },],],[\"m_0_2c\",],[\"m_0_2e\",],[\"Typeahead\",\"init\",[\"m_0_2f\",\"m_0_2e\",],[{\n __m: \"m_0_2f\"\n },{\n __m: \"m_0_2e\"\n },[\"chatTypeahead\",\"buildBestAvailableNames\",\"showLoadingIndicator\",],null,],],[\"ClearableTypeahead\",\"resetOnCloseButtonClick\",[\"m_0_2e\",\"m_0_2h\",],[{\n __m: \"m_0_2e\"\n },{\n __m: \"m_0_2h\"\n },],],[\"m_0_2k\",],[\"m_0_2l\",],[\"Layer\",\"init\",[\"m_0_2l\",\"m_0_2m\",],[{\n __m: \"m_0_2l\"\n },{\n __m: \"m_0_2m\"\n },],],[\"m_0_2d\",],[\"m_0_4s\",],[\"Typeahead\",\"init\",[\"m_0_4q\",\"m_0_4s\",],[{\n __m: \"m_0_4q\"\n },{\n __m: \"m_0_4s\"\n },[],null,],],],\n instances: [[\"m_0_2c\",[\"BuddyListNub\",\"m_0_2b\",\"m_0_2d\",\"m_0_2e\",],[{\n __m: \"m_0_2b\"\n },{\n __m: \"m_0_2d\"\n },{\n __m: \"m_0_2e\"\n },],1,],[\"m_0_2e\",[\"Typeahead\",\"m_0_2i\",\"ChatTypeaheadView\",\"ChatTypeaheadRenderer\",\"m_0_2f\",\"ChatTypeaheadCore\",\"m_0_2g\",],[{\n __m: \"m_0_2i\"\n },{\n node_id: \"u_0_13\",\n node: null,\n ctor: {\n __m: \"ChatTypeaheadView\"\n },\n options: {\n autoSelect: true,\n renderer: {\n __m: \"ChatTypeaheadRenderer\"\n },\n causalElement: {\n __m: \"m_0_2f\"\n },\n minWidth: 0,\n alignment: \"left\",\n showBadges: 1\n }\n },{\n ctor: {\n __m: \"ChatTypeaheadCore\"\n },\n options: {\n keepFocused: false,\n resetOnSelect: true,\n setValueOnSelect: false\n }\n },{\n __m: \"m_0_2g\"\n },],7,],[\"m_0_2k\",[\"ChatSidebarDropdown\",\"m_0_2j\",],[{\n __m: \"m_0_2j\"\n },null,],1,],[\"m_0_2l\",[\"LegacyContextualDialog\",\"AccessibleLayer\",],[{\n buildWrapper: false,\n causalElement: null,\n addedBehaviors: [{\n __m: \"AccessibleLayer\"\n },]\n },],5,],[\"m_0_2d\",[\"ChatOrderedList\",\"m_0_2n\",\"m_0_2o\",\"m_0_2p\",\"m_0_2l\",],[false,{\n __m: \"m_0_2n\"\n },{\n __m: \"m_0_2o\"\n },{\n __m: \"m_0_2p\"\n },{\n __m: \"m_0_2l\"\n },null,],3,],[\"m_0_2i\",[\"ChatTypeaheadDataSource\",],[{\n alwaysPrefixMatch: true,\n showOfflineUsers: true\n },],2,],[\"m_0_2o\",[\"XHPTemplate\",\"m_0_2q\",],[{\n __m: \"m_0_2q\"\n },],2,],[\"m_0_2p\",[\"XHPTemplate\",\"m_0_2r\",],[{\n __m: \"m_0_2r\"\n },],2,],[\"m_0_2s\",[\"XHPTemplate\",\"m_0_3x\",],[{\n __m: \"m_0_3x\"\n },],2,],[\"m_0_2t\",[\"XHPTemplate\",\"m_0_3y\",],[{\n __m: \"m_0_3y\"\n },],2,],[\"m_0_2u\",[\"XHPTemplate\",\"m_0_3z\",],[{\n __m: \"m_0_3z\"\n },],2,],[\"m_0_2v\",[\"XHPTemplate\",\"m_0_40\",],[{\n __m: \"m_0_40\"\n },],2,],[\"m_0_2w\",[\"XHPTemplate\",\"m_0_41\",],[{\n __m: \"m_0_41\"\n },],2,],[\"m_0_2x\",[\"XHPTemplate\",\"m_0_42\",],[{\n __m: \"m_0_42\"\n },],2,],[\"m_0_2y\",[\"XHPTemplate\",\"m_0_43\",],[{\n __m: \"m_0_43\"\n },],2,],[\"m_0_2z\",[\"XHPTemplate\",\"m_0_44\",],[{\n __m: \"m_0_44\"\n },],2,],[\"m_0_30\",[\"XHPTemplate\",\"m_0_45\",],[{\n __m: \"m_0_45\"\n },],2,],[\"m_0_31\",[\"XHPTemplate\",\"m_0_46\",],[{\n __m: \"m_0_46\"\n },],2,],[\"m_0_32\",[\"XHPTemplate\",\"m_0_47\",],[{\n __m: \"m_0_47\"\n },],2,],[\"m_0_33\",[\"DataSource\",],[{\n maxResults: 5,\n queryData: [],\n bootstrapData: {\n viewer: 100006118350059,\n token: \"1372173655-7\",\n filter: [\"user\",],\n options: [\"friends_only\",]\n },\n bootstrapEndpoint: \"/ajax/typeahead/first_degree.php\"\n },],2,],[\"m_0_34\",[\"XHPTemplate\",\"m_0_48\",],[{\n __m: \"m_0_48\"\n },],2,],[\"m_0_35\",[\"XHPTemplate\",\"m_0_49\",],[{\n __m: \"m_0_49\"\n },],2,],[\"m_0_36\",[\"XHPTemplate\",\"m_0_4a\",],[{\n __m: \"m_0_4a\"\n },],2,],[\"m_0_37\",[\"XHPTemplate\",\"m_0_4b\",],[{\n __m: \"m_0_4b\"\n },],2,],[\"m_0_38\",[\"XHPTemplate\",\"m_0_4c\",],[{\n __m: \"m_0_4c\"\n },],2,],[\"m_0_39\",[\"XHPTemplate\",\"m_0_4d\",],[{\n __m: \"m_0_4d\"\n },],2,],[\"m_0_3a\",[\"XHPTemplate\",\"m_0_4e\",],[{\n __m: \"m_0_4e\"\n },],2,],[\"m_0_3b\",[\"XHPTemplate\",\"m_0_4f\",],[{\n __m: \"m_0_4f\"\n },],2,],[\"m_0_3c\",[\"XHPTemplate\",\"m_0_4g\",],[{\n __m: \"m_0_4g\"\n },],2,],[\"m_0_3d\",[\"XHPTemplate\",\"m_0_4h\",],[{\n __m: \"m_0_4h\"\n },],2,],[\"m_0_3e\",[\"XHPTemplate\",\"m_0_4i\",],[{\n __m: \"m_0_4i\"\n },],2,],[\"m_0_3f\",[\"XHPTemplate\",\"m_0_4j\",],[{\n __m: \"m_0_4j\"\n },],2,],[\"m_0_3g\",[\"XHPTemplate\",\"m_0_4k\",],[{\n __m: \"m_0_4k\"\n },],2,],[\"m_0_3h\",[\"XHPTemplate\",\"m_0_4l\",],[{\n __m: \"m_0_4l\"\n },],2,],[\"m_0_3i\",[\"XHPTemplate\",\"m_0_4m\",],[{\n __m: \"m_0_4m\"\n },],2,],[\"m_0_4s\",[\"Typeahead\",\"m_0_4t\",\"ContextualTypeaheadView\",\"m_0_4q\",\"TypeaheadCore\",\"m_0_4r\",],[{\n __m: \"m_0_4t\"\n },{\n node_id: \"\",\n node: null,\n ctor: {\n __m: \"ContextualTypeaheadView\"\n },\n options: {\n causalElement: {\n __m: \"m_0_4q\"\n },\n minWidth: 0,\n alignment: \"left\",\n showBadges: 1\n }\n },{\n ctor: {\n __m: \"TypeaheadCore\"\n },\n options: []\n },{\n __m: \"m_0_4r\"\n },],3,],[\"m_0_3j\",[\"XHPTemplate\",\"m_0_4p\",],[{\n __m: \"m_0_4p\"\n },],2,],[\"m_0_3k\",[\"XHPTemplate\",\"m_0_4u\",],[{\n __m: \"m_0_4u\"\n },],2,],[\"m_0_3l\",[\"XHPTemplate\",\"m_0_4v\",],[{\n __m: \"m_0_4v\"\n },],2,],[\"m_0_3m\",[\"XHPTemplate\",\"m_0_4w\",],[{\n __m: \"m_0_4w\"\n },],2,],[\"m_0_3n\",[\"XHPTemplate\",\"m_0_4x\",],[{\n __m: \"m_0_4x\"\n },],2,],[\"m_0_3o\",[\"XHPTemplate\",\"m_0_4y\",],[{\n __m: \"m_0_4y\"\n },],2,],[\"m_0_3p\",[\"XHPTemplate\",\"m_0_4z\",],[{\n __m: \"m_0_4z\"\n },],2,],[\"m_0_3q\",[\"XHPTemplate\",\"m_0_50\",],[{\n __m: \"m_0_50\"\n },],2,],[\"m_0_3r\",[\"XHPTemplate\",\"m_0_51\",],[{\n __m: \"m_0_51\"\n },],2,],[\"m_0_3s\",[\"XHPTemplate\",\"m_0_54\",],[{\n __m: \"m_0_54\"\n },],2,],[\"m_0_3t\",[\"XHPTemplate\",\"m_0_55\",],[{\n __m: \"m_0_55\"\n },],2,],[\"m_0_3u\",[\"XHPTemplate\",\"m_0_56\",],[{\n __m: \"m_0_56\"\n },],2,],[\"m_0_3v\",[\"XHPTemplate\",\"m_0_57\",],[{\n __m: \"m_0_57\"\n },],2,],[\"m_0_3w\",[\"XHPTemplate\",\"m_0_58\",],[{\n __m: \"m_0_58\"\n },],2,],[\"m_0_4t\",[\"DataSource\",],[[],],2,],],\n define: [[\"LinkshimHandlerConfig\",[],{\n supports_meta_referrer: false,\n render_verification_rate: 1000\n },27,],[\"MercurySheetTemplates\",[\"m_0_2s\",],{\n \":fb:mercury:tab-sheet:loading\": {\n __m: \"m_0_2s\"\n }\n },40,],[\"MercuryAttachmentTemplates\",[\"m_0_2t\",\"m_0_2u\",\"m_0_2v\",\"m_0_2w\",\"m_0_2x\",\"m_0_2y\",\"m_0_2z\",\"m_0_30\",\"m_0_31\",\"m_0_32\",],{\n \":fb:mercury:attachment:error\": {\n __m: \"m_0_2t\"\n },\n \":fb:mercury:attachment:video-thumb\": {\n __m: \"m_0_2u\"\n },\n \":fb:mercury:attachment:file-name\": {\n __m: \"m_0_2v\"\n },\n \":fb:mercury:attachment:external-link\": {\n __m: \"m_0_2w\"\n },\n \":fb:mercury:attachment:music\": {\n __m: \"m_0_2x\"\n },\n \":fb:mercury:attachment:file-link\": {\n __m: \"m_0_2y\"\n },\n \":fb:mercury:attachment:preview\": {\n __m: \"m_0_2z\"\n },\n \":fb:mercury:attachment:share-link\": {\n __m: \"m_0_30\"\n },\n \":fb:mercury:upload-file-row\": {\n __m: \"m_0_31\"\n },\n \":fb:mercury:attachment:extended-file-link\": {\n __m: \"m_0_32\"\n }\n },34,],[\"MercuryDataSourceWrapper\",[\"m_0_33\",],{\n source: {\n __m: \"m_0_33\"\n }\n },37,],[\"MercuryStickersInitialData\",[],{\n packs: [{\n id: 126361870881943,\n JSBNG__name: \"Meep\",\n icon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yd/r/wn5XeO2Rkqj.png\",\n selectedIcon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yN/r/sZ4spcbuYtY.png\"\n },{\n id: 350357561732812,\n JSBNG__name: \"Pusheen\",\n icon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yy/r/kLIslj7Vlau.png\",\n selectedIcon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yz/r/58FtCc-hDRb.png\"\n },{\n id: \"emoticons\",\n JSBNG__name: \"Emoticons\",\n icon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y_/r/4Dc6kC7GMzT.png\",\n selectedIcon: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yV/r/d-mu_AVkpiU.png\"\n },]\n },144,],[\"ChatTabTemplates\",[\"m_0_34\",\"m_0_35\",\"m_0_36\",\"m_0_37\",\"m_0_38\",\"m_0_39\",\"m_0_3a\",\"m_0_3b\",\"m_0_3c\",\"m_0_3d\",\"m_0_3e\",\"m_0_3f\",\"m_0_3g\",\"m_0_3h\",\"m_0_3i\",\"m_0_3j\",\"m_0_3k\",\"m_0_3l\",\"m_0_3m\",\"m_0_3n\",\"m_0_3o\",\"m_0_3p\",\"m_0_3q\",\"m_0_3r\",],{\n \":fb:chat:conversation:message:event\": {\n __m: \"m_0_34\"\n },\n \":fb:chat:conversation:message-group\": {\n __m: \"m_0_35\"\n },\n \":fb:chat:conversation:message:undertext\": {\n __m: \"m_0_36\"\n },\n \":fb:chat:tab:selector:item\": {\n __m: \"m_0_37\"\n },\n \":fb:mercury:chat:message:forward\": {\n __m: \"m_0_38\"\n },\n \":fb:chat:tab:selector\": {\n __m: \"m_0_39\"\n },\n \":fb:mercury:chat:multichat-tooltip-item\": {\n __m: \"m_0_3a\"\n },\n \":fb:chat:conversation:date-break\": {\n __m: \"m_0_3b\"\n },\n \":fb:mercury:call:tour\": {\n __m: \"m_0_3c\"\n },\n \":fb:mercury:chat:tab-sheet:message-icon-sheet\": {\n __m: \"m_0_3d\"\n },\n \":fb:mercury:chat:tab-sheet:clickable-message-icon-sheet\": {\n __m: \"m_0_3e\"\n },\n \":fb:mercury:chat:tab-sheet:user-blocked\": {\n __m: \"m_0_3f\"\n },\n \":fb:chat:conversation:message:subject\": {\n __m: \"m_0_3g\"\n },\n \":fb:mercury:chat:tab-sheet:add-friends-empty-tab\": {\n __m: \"m_0_3h\"\n },\n \":fb:mercury:chat:multichat-tab\": {\n __m: \"m_0_3i\"\n },\n \":fb:mercury:chat:tab-sheet:name-conversation\": {\n __m: \"m_0_3j\"\n },\n \":fb:chat:conversation:message\": {\n __m: \"m_0_3k\"\n },\n \":fb:mercury:call:promo\": {\n __m: \"m_0_3l\"\n },\n \":fb:mercury:chat:tab-sheet:add-friends\": {\n __m: \"m_0_3m\"\n },\n \":fb:chat:conversation:message:status\": {\n __m: \"m_0_3n\"\n },\n \":fb:mercury:chat:tab-sheet:message-mute-sheet\": {\n __m: \"m_0_3o\"\n },\n \":fb:mercury:typing-indicator:typing\": {\n __m: \"m_0_3p\"\n },\n \":fb:mercury:timestamp\": {\n __m: \"m_0_3q\"\n },\n \":fb:mercury:chat:user-tab\": {\n __m: \"m_0_3r\"\n }\n },15,],[\"VideoCallTemplates\",[\"m_0_3s\",],{\n \":fb:videocall:incoming-dialog\": {\n __m: \"m_0_3s\"\n }\n },74,],[\"MercuryTypeaheadTemplates\",[\"m_0_3t\",\"m_0_3u\",\"m_0_3v\",\"m_0_3w\",],{\n \":fb:mercury:tokenizer\": {\n __m: \"m_0_3t\"\n },\n \":fb:mercury:typeahead:header\": {\n __m: \"m_0_3u\"\n },\n \":fb:mercury:typeahead\": {\n __m: \"m_0_3v\"\n },\n \":fb:mercury:typeahead:result\": {\n __m: \"m_0_3w\"\n }\n },43,],],\n elements: [[\"m_0_27\",\"u_0_10\",2,],[\"m_0_29\",\"u_0_11\",2,],[\"m_0_2a\",\"u_0_12\",2,],[\"m_0_2b\",\"fbDockChatBuddylistNub\",2,],[\"m_0_2g\",\"u_0_14\",2,],[\"m_0_2h\",\"u_0_15\",2,],[\"m_0_2f\",\"u_0_16\",4,],[\"m_0_2j\",\"u_0_17\",2,],[\"m_0_2n\",\"u_0_19\",2,],[\"m_0_28\",\"u_0_1a\",2,],[\"m_0_4o\",\"u_0_1f\",2,\"m_0_4m\",],[\"m_0_4n\",\"u_0_1g\",2,\"m_0_4m\",],[\"m_0_4r\",\"u_0_1h\",2,\"m_0_4p\",],[\"m_0_4q\",\"u_0_1i\",4,\"m_0_4p\",],[\"m_0_53\",\"u_0_1m\",2,\"m_0_51\",],[\"m_0_52\",\"u_0_1n\",2,\"m_0_51\",],],\n markup: [[\"m_0_2m\",{\n __html: \"\\u003Cdiv class=\\\"uiContextualDialogPositioner\\\" id=\\\"u_0_18\\\" data-position=\\\"left\\\"\\u003E\\u003Cdiv class=\\\"uiOverlay uiContextualDialog\\\" data-width=\\\"300\\\" data-destroyonhide=\\\"false\\\" data-fadeonhide=\\\"false\\\"\\u003E\\u003Cdiv class=\\\"uiOverlayContent\\\"\\u003E\\u003Cdiv class=\\\"uiContextualDialogContent\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_2q\",{\n __html: \"\\u003Cli class=\\\"_42fz\\\"\\u003E\\u003Ca class=\\\"clearfix _50zw\\\" data-jsid=\\\"anchor\\\" href=\\\"#\\\" role=\\\"\\\" rel=\\\"ignore\\\"\\u003E\\u003Cdiv class=\\\"_54sk _42g2\\\" data-jsid=\\\"favorite_button\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"pic_container\\\"\\u003E\\u003Cimg class=\\\"pic img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"profile-photo\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"_54sp _42i1 img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yW/r/F7kk7-cjEKk.png\\\" alt=\\\"\\\" width=\\\"10\\\" height=\\\"8\\\" /\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"accessible-name\\\" class=\\\"accessible_elem\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"icon_container\\\"\\u003E\\u003Cimg class=\\\"_d3c icon img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"active_time icon\\\"\\u003E\\u003C/div\\u003E\\u003Cimg class=\\\"status icon img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv aria-hidden=\\\"true\\\"\\u003E\\u003Cdiv class=\\\"_52zl\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_52zk\\\" data-jsid=\\\"context\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_2r\",{\n __html: \"\\u003Cli\\u003E\\u003Cdiv class=\\\"phs fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"message\\\"\\u003ELoading...\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_3x\",{\n __html: \"\\u003Cimg class=\\\"hidden_elem _1sk7 img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yk/r/LOOn0JtHNzb.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"16\\\" /\\u003E\"\n },2,],[\"m_0_3y\",{\n __html: \"\\u003Cdiv class=\\\"mtm pam _4_wc attachment uiBoxGray\\\"\\u003E\\u003Cspan class=\\\"uiIconText MercuryThreadlistIconError\\\" data-jsid=\\\"error\\\"\\u003E\\u003Ci class=\\\"img sp_4p6kmz sx_25310e\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_3z\",{\n __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Ca class=\\\"uiVideoThumb videoPreview\\\" href=\\\"#\\\" data-jsid=\\\"thumb\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" alt=\\\"\\\" /\\u003E\\u003Ci\\u003E\\u003C/i\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_40\",{\n __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Cspan class=\\\"uiIconText _3tn\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"filename\\\"\\u003E\\u003C/span\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_41\",{\n __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Cdiv class=\\\"clearfix MercuryExternalLink\\\"\\u003E\\u003Cdiv class=\\\"_rpb clearfix stat_elem lfloat\\\" data-jsid=\\\"preview\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"MercuryLinkRight rfloat\\\"\\u003E\\u003Cdiv class=\\\"MercuryLinkTitle\\\"\\u003E\\u003Ca class=\\\"linkTitle\\\" target=\\\"_blank\\\" href=\\\"#\\\" data-jsid=\\\"name\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\" data-jsid=\\\"shortLink\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_42\",{\n __html: \"\\u003Cdiv class=\\\"musicAttachment\\\"\\u003E\\u003Cdiv class=\\\"_59go _59gq\\\" data-jsid=\\\"icon_link\\\"\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"_59gp\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_rpb clearfix stat_elem\\\" data-jsid=\\\"preview\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_43\",{\n __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"filename\\\" class=\\\"_59gp\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_44\",{\n __html: \"\\u003Cdiv class=\\\"_rpb clearfix stat_elem\\\"\\u003E\\u003Ca class=\\\"_ksh\\\" data-jsid=\\\"image-link\\\" href=\\\"#\\\" target=\\\"_blank\\\" role=\\\"button\\\"\\u003E\\u003Cimg data-jsid=\\\"preview-image\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_45\",{\n __html: \"\\u003Cdiv class=\\\"_59go\\\"\\u003E\\u003Ca data-jsid=\\\"link\\\" target=\\\"_blank\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cspan data-jsid=\\\"name\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_46\",{\n __html: \"\\u003Cdiv class=\\\"_2qh _2qe uploadFileRow\\\"\\u003E\\u003Cimg class=\\\"_2qf img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Clabel class=\\\"_2qg uiCloseButton uiCloseButtonSmall uiCloseButtonSmallDark\\\" for=\\\"u_0_1b\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"closeFileUpload\\\" id=\\\"u_0_1b\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"_4-te\\\"\\u003E\\u003Cspan class=\\\"uiIconText _3tn\\\" data-jsid=\\\"iconText\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_47\",{\n __html: \"\\u003Cdiv class=\\\"_59go _59gq\\\"\\u003E\\u003Cdiv class=\\\"_59gs\\\"\\u003E\\u003Cdiv data-jsid=\\\"openLinkContainer\\\" class=\\\"_59gr hidden_elem\\\"\\u003E\\u003Ca class=\\\"_59hm\\\" href=\\\"#\\\" data-jsid=\\\"openFile\\\" role=\\\"button\\\"\\u003Eopen\\u003C/a\\u003E \\u00b7 \\u003C/div\\u003E\\u003Ca class=\\\"_59hn\\\" href=\\\"#\\\" data-jsid=\\\"downloadFile\\\" role=\\\"button\\\"\\u003Edownload\\u003C/a\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"uiIconText _3tn\\\" href=\\\"#\\\" data-jsid=\\\"link\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_d68978\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_59gp\\\" data-jsid=\\\"filename\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_48\",{\n __html: \"\\u003Cdiv class=\\\"mhs mbs pts fbChatConvItem _511o clearfix\\\"\\u003E\\u003Cdiv class=\\\"_1_vw\\\"\\u003E\\u003Cimg class=\\\"_1_vv img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"icon\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_1_vx\\\"\\u003E\\u003Cspan class=\\\"_1_zk fsm fcg\\\" data-jsid=\\\"message\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"mls _1_vz fss fcg\\\" data-jsid=\\\"timestamp\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_1_vy\\\" data-jsid=\\\"attachment\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_49\",{\n __html: \"\\u003Cdiv class=\\\"mhs mbs pts fbChatConvItem _50dw clearfix small\\\"\\u003E\\u003Cdiv class=\\\"_50ke\\\"\\u003E\\u003Cdiv class=\\\"_50x5\\\" data-jsid=\\\"profileName\\\"\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"profileLink\\\" href=\\\"#\\\" data-jsid=\\\"profileLink\\\" role=\\\"button\\\"\\u003E\\u003Cimg class=\\\"profilePhoto\\\" src=\\\"/images/spacer.gif\\\" data-jsid=\\\"profilePhoto\\\" /\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"messages\\\" data-jsid=\\\"messages\\\"\\u003E\\u003Cdiv class=\\\"metaInfoContainer fss fcg\\\"\\u003E\\u003Cspan data-jsid=\\\"reportLinkWithDot\\\" class=\\\"hidden_elem\\\"\\u003E\\u003Ca href=\\\"#\\\" rel=\\\"dialog\\\" data-jsid=\\\"reportLink\\\" role=\\\"button\\\"\\u003E\\u003Cspan class=\\\"fcg\\\"\\u003EReport\\u003C/span\\u003E\\u003C/a\\u003E \\u00b7 \\u003C/span\\u003E\\u003Cspan class=\\\"timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4a\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_542e fwb fcg\\\" data-jsid=\\\"status\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4b\",{\n __html: \"\\u003Cli class=\\\"uiMenuItem _51ju\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Clabel class=\\\"rfloat uiCloseButton uiCloseButtonSmall\\\" for=\\\"u_0_1c\\\"\\u003E\\u003Cinput title=\\\"Remove\\\" type=\\\"button\\\" data-jsid=\\\"closeButton\\\" id=\\\"u_0_1c\\\" /\\u003E\\u003C/label\\u003E\\u003Cdiv class=\\\"_51jv\\\"\\u003E\\u003Cspan class=\\\"unreadCount\\\" data-jsid=\\\"unreadCount\\\"\\u003E\\u003C/span\\u003E\\u003Cspan data-jsid=\\\"content\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_4c\",{\n __html: \"\\u003Cdiv\\u003E\\u003Ca class=\\\"uiIconText _52i4\\\" href=\\\"#\\\" style=\\\"padding-left: 12px;\\\" data-jsid=\\\"forwardLink\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"img sp_2gr8ms sx_8448dd\\\" style=\\\"top: 3px;\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"forwardText\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4d\",{\n __html: \"\\u003Cdiv class=\\\"uiToggle _50-v fbNub _51jt\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003Ci class=\\\"messagesIcon img sp_9kaae3 sx_ee64a9\\\"\\u003E\\u003C/i\\u003E\\u003Cspan data-jsid=\\\"numTabs\\\"\\u003E\\u003C/span\\u003E\\u003Cspan class=\\\"_51jw\\\" data-jsid=\\\"numMessages\\\"\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout uiToggleFlyout noTitlebar\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu\\\" data-jsid=\\\"menu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Dummy\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"0\\\" href=\\\"#\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E Dummy \\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4e\",{\n __html: \"\\u003Cdiv class=\\\"clearfix mvs\\\"\\u003E\\u003Ci class=\\\"rfloat img sp_9kaae3 sx_1dc182\\\" data-jsid=\\\"icon\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4f\",{\n __html: \"\\u003Cdiv class=\\\"_511m mhs mbs fbChatConvItem\\\"\\u003E\\u003Cdiv class=\\\"_511n fss fwb fcg\\\" data-jsid=\\\"date\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4g\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"clearfix mvm mrm mll videoCallPromo\\\"\\u003E\\u003Ci class=\\\"_8o _8s lfloat img sp_2gr8ms sx_cd450f\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_42ef\\\"\\u003E\\u003Cdiv class=\\\"pls\\\"\\u003E\\u003Cspan class=\\\"calloutTitle fwb\\\"\\u003ETalk face to face\\u003C/span\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\"\\u003EClick \\u003Cspan\\u003E ( \\u003Ci class=\\\"onlineStatusIcon img sp_2gr8ms sx_8e093b\\\"\\u003E\\u003C/i\\u003E )\\u003C/span\\u003E below to start a video call.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter uiContextualDialogFooter uiBoxGray topborder\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"prs uiOverlayFooterMessage\\\"\\u003E\\u003Ca target=\\\"_blank\\\" href=\\\"/help/?page=177940565599960\\\"\\u003ELearn more\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"uiOverlayFooterButtons\\\"\\u003E\\u003Ca class=\\\"uiOverlayButton layerCancel uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" name=\\\"cancel\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EOkay\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4h\",{\n __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"mrs _1skc img sp_9kaae3 sx_ee64a9\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_1skd fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4i\",{\n __html: \"\\u003Ca href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"mrs _1skc img sp_9kaae3 sx_ee64a9\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cspan class=\\\"_1skd fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\"\n },2,],[\"m_0_4j\",{\n __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Ci class=\\\"_1skc img sp_4p6kmz sx_c2c2e3\\\" data-jsid=\\\"image\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_1skd\\\"\\u003E\\u003Cspan class=\\\"fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv\\u003E\\u003Ca href=\\\"#\\\" data-jsid=\\\"actionLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4k\",{\n __html: \"\\u003Cdiv class=\\\"fbChatMessageSubject fsm fwb\\\" data-jsid=\\\"messageSubject\\\"\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4l\",{\n __html: \"\\u003Cdiv class=\\\"_54_v\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _54_x\\\"\\u003E\\u003Cspan class=\\\"fcg\\\"\\u003ETo:\\u003C/span\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop _54_w\\\"\\u003E\\u003Cdiv data-jsid=\\\"participantsTypeahead\\\"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4m\",{\n __html: \"\\u003Cdiv class=\\\"fbNub _50-v _50mz _50m-\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"dockButton\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbChatTab\\\"\\u003E\\u003Cdiv class=\\\"funhouse rfloat\\\"\\u003E\\u003Cdiv class=\\\"close\\\" title=\\\"Close\\\" data-jsid=\\\"closeButton\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"wrapWrapper\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cdiv class=\\\"name fwb\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_51jx hidden_elem\\\" data-jsid=\\\"numMessages\\\"\\u003E0\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout fbDockChatTabFlyout\\\" data-jsid=\\\"chatWrapper\\\" role=\\\"complementary\\\" aria-labelledby=\\\"u_0_1d\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbNubFlyoutTitlebar titlebar\\\" data-jsid=\\\"nubFlyoutTitlebar\\\"\\u003E\\u003Cdiv class=\\\"mls titlebarButtonWrapper rfloat\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Add more friends to chat\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"addToThread button\\\" href=\\\"#\\\" data-jsid=\\\"addToThreadLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelector inlineBlock _510p\\\" data-jsid=\\\"dropdown\\\"\\u003E\\u003Cdiv class=\\\"uiToggle wrap\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Options\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"button uiSelectorButton\\\" href=\\\"#\\\" role=\\\"button\\\" aria-haspopup=\\\"1\\\" rel=\\\"toggle\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu uiSelectorMenu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"See Full Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"conversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ESee Full Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\"\\u003E\\u003Cform data-jsid=\\\"attachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1f\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"attachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"0\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60 itemLabel\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"fileInput\\\" /\\u003E\\u003Ca class=\\\"_4q61 itemAnchor\\\"\\u003EAdd Files...\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Add Friends to Chat...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"addFriendLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EAdd Friends to Chat...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Edit Conversation Name\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"nameConversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EEdit Conversation Name\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Mute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"muteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EMute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Unmute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unmuteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EUnmute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Leave Conversation...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unsubscribeLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ELeave Conversation...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"close button\\\" href=\\\"#\\\" data-jsid=\\\"titlebarCloseButton\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"titlebarLabel clearfix\\\"\\u003E\\u003Ch4 class=\\\"titlebarTextWrapper\\\"\\u003E\\u003Cimg class=\\\"_51sn img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"presenceIndicator\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Ca class=\\\"titlebarText noLink\\\" href=\\\"#\\\" rel=\\\"none\\\" data-jsid=\\\"titlebarText\\\" aria-level=\\\"3\\\" id=\\\"u_0_1d\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/h4\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutHeader\\\"\\u003E\\u003Cdiv class=\\\"_1sk5\\\"\\u003E\\u003Cdiv class=\\\"_1sk6 hidden_elem\\\" data-jsid=\\\"sheet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\" data-jsid=\\\"chatConv\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Ctable class=\\\"uiGrid conversationContainer\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" role=\\\"log\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vBot\\\"\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation Start\\u003C/div\\u003E\\u003Cimg class=\\\"pvm loading hidden_elem img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingIndicator\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Cdiv class=\\\"conversation\\\" aria-live=\\\"polite\\\" aria-atomic=\\\"false\\\" data-jsid=\\\"conversation\\\" id=\\\"u_0_1e\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation End\\u003C/div\\u003E\\u003Cdiv class=\\\"_51lq\\\" data-jsid=\\\"typingIndicator\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_510g\\\" data-jsid=\\\"lastMessageIndicator\\\"\\u003E\\u003Cdiv class=\\\"_510h\\\"\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_510f\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutFooter\\\"\\u003E\\u003Cdiv class=\\\"_552h\\\" data-jsid=\\\"inputContainer\\\"\\u003E\\u003Ctextarea class=\\\"uiTextareaAutogrow _552m\\\" data-jsid=\\\"input\\\" aria-controls=\\\"u_0_1e\\\" onkeydown=\\\"window.Bootloader &amp;&amp; Bootloader.loadComponents([&quot;control-textarea&quot;], function() &#123; TextAreaControl.getInstance(this) &#125;.bind(this)); \\\"\\u003E\\u003C/textarea\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_552n\\\" data-jsid=\\\"iconsContainer\\\"\\u003E\\u003Cform class=\\\"_552o\\\" data-jsid=\\\"photoAttachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1g\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"photoAttachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"photoFileInput\\\" accept=\\\"image/*\\\" /\\u003E\\u003Ca class=\\\"_4q61 _509v\\\" data-jsid=\\\"photoAttachLink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"_509w\\\"\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003Cdiv class=\\\"uiToggle emoticonsPanel\\\" data-jsid=\\\"emoticons\\\"\\u003E\\u003Ca class=\\\"emoteTogglerImg _5bvk\\\" aria-label=\\\"Choose an emoticon\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"panelFlyout _590j uiToggleFlyout\\\"\\u003E\\u003Cdiv data-jsid=\\\"stickers\\\"\\u003E\\u003Cdiv class=\\\"_5906\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5907\\\"\\u003E\\u003Cdiv class=\\\"_55bq hidden_elem\\\" data-id=\\\"emoticons\\\"\\u003E\\u003Ctable class=\\\"emoticonsTable\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_smile\\\" aria-label=\\\"smile\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_frown\\\" aria-label=\\\"frown\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_tongue\\\" aria-label=\\\"tongue\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grin\\\" aria-label=\\\"grin\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_gasp\\\" aria-label=\\\"gasp\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_wink\\\" aria-label=\\\"wink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_pacman\\\" aria-label=\\\"pacman\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grumpy\\\" aria-label=\\\"grumpy\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_unsure\\\" aria-label=\\\"unsure\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_cry\\\" aria-label=\\\"cry\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_kiki\\\" aria-label=\\\"kiki\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_glasses\\\" aria-label=\\\"glasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_sunglasses\\\" aria-label=\\\"sunglasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_heart\\\" aria-label=\\\"heart\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_devil\\\" aria-label=\\\"devil\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_angel\\\" aria-label=\\\"angel\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_squint\\\" aria-label=\\\"squint\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_confused\\\" aria-label=\\\"confused\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_upset\\\" aria-label=\\\"upset\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_colonthree\\\" aria-label=\\\"colonthree\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_like\\\" aria-label=\\\"like\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"panelFlyoutArrow\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutAttachments\\\"\\u003E\\u003Cdiv class=\\\"chatAttachmentShelf\\\" data-jsid=\\\"attachmentShelf\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },4,],[\"m_0_4p\",{\n __html: \"\\u003Cdiv class=\\\"_56jk\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _56jl\\\"\\u003E\\u003Cdiv class=\\\"uiTypeahead\\\" id=\\\"u_0_1h\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" class=\\\"hiddenInput\\\" /\\u003E\\u003Cdiv class=\\\"innerWrap\\\"\\u003E\\u003Cinput type=\\\"text\\\" class=\\\"inputtext textInput DOMControl_placeholder\\\" data-jsid=\\\"nameInput\\\" placeholder=\\\"Name this group\\\" autocomplete=\\\"off\\\" aria-autocomplete=\\\"list\\\" aria-expanded=\\\"false\\\" aria-owns=\\\"typeahead_list_u_0_1h\\\" role=\\\"combobox\\\" spellcheck=\\\"false\\\" value=\\\"Name this group\\\" aria-label=\\\"Name this group\\\" id=\\\"u_0_1i\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop\\\"\\u003E\\u003Cbutton value=\\\"1\\\" class=\\\"_42ft _42fu selected _42g-\\\" data-jsid=\\\"doneButton\\\" type=\\\"submit\\\"\\u003EDone\\u003C/button\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n },4,],[\"m_0_4u\",{\n __html: \"\\u003Cdiv class=\\\"_kso fsm\\\" data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4v\",{\n __html: \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"clearfix mvm mrm mll videoCallPromo\\\"\\u003E\\u003Ci class=\\\"_8o _8s lfloat img sp_2gr8ms sx_cd450f\\\"\\u003E\\u003C/i\\u003E\\u003Cdiv class=\\\"_42ef\\\"\\u003E\\u003Cdiv class=\\\"pls\\\"\\u003E\\u003Cspan class=\\\"calloutTitle fwb\\\"\\u003ETry talking face to face\\u003C/span\\u003E\\u003Cdiv class=\\\"fsm fwn fcg\\\"\\u003EClick \\u003Cspan\\u003E ( \\u003Ci class=\\\"onlineStatusIcon img sp_2gr8ms sx_8e093b\\\"\\u003E\\u003C/i\\u003E )\\u003C/span\\u003E below to start a video call.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"uiOverlayFooter uiContextualDialogFooter uiBoxGray topborder\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"prs uiOverlayFooterMessage\\\"\\u003E\\u003Ca target=\\\"_blank\\\" href=\\\"/help/?page=177940565599960\\\"\\u003ELearn more\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"uiOverlayFooterButtons\\\"\\u003E\\u003Ca class=\\\"uiOverlayButton layerCancel uiButton uiButtonConfirm\\\" href=\\\"#\\\" role=\\\"button\\\" name=\\\"cancel\\\"\\u003E\\u003Cspan class=\\\"uiButtonText\\\"\\u003EClose\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4w\",{\n __html: \"\\u003Cdiv class=\\\"_54_-\\\"\\u003E\\u003Ctable class=\\\"uiGrid\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vTop _54__\\\"\\u003E\\u003Cdiv data-jsid=\\\"participantsTypeahead\\\"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"vTop\\\"\\u003E\\u003Clabel class=\\\"doneButton uiButton uiButtonConfirm\\\" for=\\\"u_0_1j\\\"\\u003E\\u003Cinput value=\\\"Done\\\" data-jsid=\\\"doneButton\\\" type=\\\"submit\\\" id=\\\"u_0_1j\\\" /\\u003E\\u003C/label\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4x\",{\n __html: \"\\u003Cdiv class=\\\"_542q clearfix\\\"\\u003E\\u003Cdiv data-jsid=\\\"message\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv data-jsid=\\\"status\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4y\",{\n __html: \"\\u003Cdiv class=\\\"pas\\\"\\u003E\\u003Cspan class=\\\"_1skd _1ske fcg\\\" data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003Ca class=\\\"pas\\\" data-jsid=\\\"unmuteButton\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003EUnmute\\u003C/a\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_4z\",{\n __html: \"\\u003Cdiv class=\\\"_510u\\\"\\u003E\\u003Cdiv class=\\\"_510v\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_50\",{\n __html: \"\\u003Cabbr title=\\\"Wednesday, December 31, 1969 at 7:00pm\\\" data-utime=\\\"0\\\" class=\\\"hidden_elem timestamp\\\" data-jsid=\\\"timestamp\\\"\\u003Eover a year ago\\u003C/abbr\\u003E\"\n },2,],[\"m_0_51\",{\n __html: \"\\u003Cdiv class=\\\"fbNub _50-v _50mz _50m_\\\"\\u003E\\u003Ca class=\\\"fbNubButton\\\" tabindex=\\\"0\\\" href=\\\"#\\\" data-jsid=\\\"dockButton\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbChatTab\\\"\\u003E\\u003Cdiv class=\\\"funhouse rfloat\\\"\\u003E\\u003Cdiv class=\\\"close\\\" title=\\\"Close\\\" data-jsid=\\\"closeButton\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"wrapWrapper\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cdiv class=\\\"name fwb\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_51jx hidden_elem\\\" data-jsid=\\\"numMessages\\\"\\u003E0\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"fbNubFlyout fbDockChatTabFlyout\\\" data-jsid=\\\"chatWrapper\\\" role=\\\"complementary\\\" aria-labelledby=\\\"u_0_1k\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutOuter\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutInner\\\"\\u003E\\u003Cdiv class=\\\"clearfix fbNubFlyoutTitlebar titlebar\\\" data-jsid=\\\"nubFlyoutTitlebar\\\"\\u003E\\u003Cdiv class=\\\"mls titlebarButtonWrapper rfloat\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Add more friends to chat\\\" class=\\\"addToThread button\\\" href=\\\"#\\\" data-jsid=\\\"addToThreadLink\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Start a video call\\\" class=\\\"videoicon button\\\" href=\\\"#\\\" data-jsid=\\\"videoCallLink\\\" data-gt=\\\"&#123;&quot;videochat&quot;:&quot;call_clicked_chat_tab&quot;&#125;\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelector inlineBlock _510p\\\" data-jsid=\\\"dropdown\\\"\\u003E\\u003Cdiv class=\\\"uiToggle wrap\\\"\\u003E\\u003Ca data-hover=\\\"tooltip\\\" aria-label=\\\"Options\\\" data-tooltip-alignh=\\\"center\\\" class=\\\"button uiSelectorButton\\\" href=\\\"#\\\" role=\\\"button\\\" aria-haspopup=\\\"1\\\" rel=\\\"toggle\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\\u003Cdiv role=\\\"menu\\\" class=\\\"uiMenu uiSelectorMenu\\\"\\u003E\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\\u003Cli class=\\\"uiMenuItem\\\" tabindex=\\\"0\\\"\\u003E\\u003Cform data-jsid=\\\"attachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1m\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"attachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"0\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60 itemLabel\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"fileInput\\\" /\\u003E\\u003Ca class=\\\"_4q61 itemAnchor\\\"\\u003EAdd Files...\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Add Friends to Chat...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"addFriendLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EAdd Friends to Chat...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"privacyLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003E \\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"See Full Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"conversationLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003ESee Full Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Mute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"muteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EMute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem hidden_elem\\\" data-label=\\\"Unmute Conversation\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"unmuteThreadLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EUnmute Conversation\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Clear Window\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"clearWindowLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EClear Window\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuSeparator\\\"\\u003E\\u003C/li\\u003E\\u003Cli class=\\\"uiMenuItem\\\" data-label=\\\"Report as Spam or Abuse...\\\"\\u003E\\u003Ca class=\\\"itemAnchor\\\" role=\\\"menuitem\\\" tabindex=\\\"-1\\\" href=\\\"#\\\" data-jsid=\\\"reportSpamLink\\\"\\u003E\\u003Cspan class=\\\"itemLabel fsm\\\"\\u003EReport as Spam or Abuse...\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/li\\u003E\\u003C/ul\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Ca class=\\\"close button\\\" href=\\\"#\\\" data-jsid=\\\"titlebarCloseButton\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"titlebarLabel clearfix\\\"\\u003E\\u003Ch4 class=\\\"titlebarTextWrapper\\\"\\u003E\\u003Cimg class=\\\"_51sn img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y4/r/-PAXP-deijE.gif\\\" data-jsid=\\\"presenceIndicator\\\" alt=\\\"\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Ca class=\\\"titlebarText noLink\\\" href=\\\"#\\\" rel=\\\"none\\\" data-jsid=\\\"titlebarText\\\" aria-level=\\\"3\\\" id=\\\"u_0_1k\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/h4\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutHeader\\\"\\u003E\\u003Cdiv class=\\\"_1sk5\\\"\\u003E\\u003Cdiv class=\\\"_1sk6 hidden_elem\\\" data-jsid=\\\"sheet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBody scrollable\\\" data-jsid=\\\"chatConv\\\"\\u003E\\u003Cdiv class=\\\"fbNubFlyoutBodyContent\\\"\\u003E\\u003Ctable class=\\\"uiGrid conversationContainer\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" role=\\\"log\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"vBot\\\"\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation Start\\u003C/div\\u003E\\u003Cimg class=\\\"pvm loading hidden_elem img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingIndicator\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Cdiv class=\\\"conversation\\\" aria-live=\\\"polite\\\" aria-atomic=\\\"false\\\" data-jsid=\\\"conversation\\\" id=\\\"u_0_1l\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"accessible_elem\\\"\\u003EChat Conversation End\\u003C/div\\u003E\\u003Cdiv class=\\\"_51lq\\\" data-jsid=\\\"typingIndicator\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_510g\\\" data-jsid=\\\"lastMessageIndicator\\\"\\u003E\\u003Cdiv class=\\\"_510h\\\"\\u003E\\u003C/div\\u003E\\u003Cspan class=\\\"_510f\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutFooter\\\"\\u003E\\u003Cdiv class=\\\"_552h\\\" data-jsid=\\\"inputContainer\\\"\\u003E\\u003Ctextarea class=\\\"uiTextareaAutogrow _552m\\\" data-jsid=\\\"input\\\" aria-controls=\\\"u_0_1l\\\" onkeydown=\\\"window.Bootloader &amp;&amp; Bootloader.loadComponents([&quot;control-textarea&quot;], function() &#123; TextAreaControl.getInstance(this) &#125;.bind(this)); \\\"\\u003E\\u003C/textarea\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_552n\\\" data-jsid=\\\"iconsContainer\\\"\\u003E\\u003Cform class=\\\"_552o\\\" data-jsid=\\\"photoAttachButtonForm\\\" action=\\\"http://jsbngssl.attachments.facebook.com/ajax/mercury/upload.php\\\" method=\\\"post\\\" onsubmit=\\\"return window.Event &amp;&amp; Event.__inlineSubmit &amp;&amp; Event.__inlineSubmit(this,event)\\\" id=\\\"u_0_1n\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" name=\\\"fb_dtsg\\\" value=\\\"AQCttlPQ\\\" autocomplete=\\\"off\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" data-jsid=\\\"photoAttachID\\\" name=\\\"attach_id\\\" /\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" name=\\\"store_as_message_image\\\" value=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_6a _m _4q60\\\"\\u003E\\u003Cinput type=\\\"file\\\" class=\\\"_n\\\" name=\\\"attachment[]\\\" multiple=\\\"1\\\" data-jsid=\\\"photoFileInput\\\" accept=\\\"image/*\\\" /\\u003E\\u003Ca class=\\\"_4q61 _509v\\\" data-jsid=\\\"photoAttachLink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"_509w\\\"\\u003E\\u003C/div\\u003E\\u003C/a\\u003E\\u003C/div\\u003E\\u003C/form\\u003E\\u003Cdiv class=\\\"uiToggle emoticonsPanel\\\" data-jsid=\\\"emoticons\\\"\\u003E\\u003Ca class=\\\"emoteTogglerImg _5bvk\\\" aria-label=\\\"Choose an emoticon\\\" href=\\\"#\\\" rel=\\\"toggle\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003Cdiv class=\\\"panelFlyout _590j uiToggleFlyout\\\"\\u003E\\u003Cdiv data-jsid=\\\"stickers\\\"\\u003E\\u003Cdiv class=\\\"_5906\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_5907\\\"\\u003E\\u003Cdiv class=\\\"_55bq hidden_elem\\\" data-id=\\\"emoticons\\\"\\u003E\\u003Ctable class=\\\"emoticonsTable\\\"\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_smile\\\" aria-label=\\\"smile\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_frown\\\" aria-label=\\\"frown\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_tongue\\\" aria-label=\\\"tongue\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grin\\\" aria-label=\\\"grin\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_gasp\\\" aria-label=\\\"gasp\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_wink\\\" aria-label=\\\"wink\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_pacman\\\" aria-label=\\\"pacman\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_grumpy\\\" aria-label=\\\"grumpy\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_unsure\\\" aria-label=\\\"unsure\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_cry\\\" aria-label=\\\"cry\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_kiki\\\" aria-label=\\\"kiki\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_glasses\\\" aria-label=\\\"glasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_sunglasses\\\" aria-label=\\\"sunglasses\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_heart\\\" aria-label=\\\"heart\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_devil\\\" aria-label=\\\"devil\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_angel\\\" aria-label=\\\"angel\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_squint\\\" aria-label=\\\"squint\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_confused\\\" aria-label=\\\"confused\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_upset\\\" aria-label=\\\"upset\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_colonthree\\\" aria-label=\\\"colonthree\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"panelCell\\\"\\u003E\\u003Ca class=\\\"emoticon emoticon_like\\\" aria-label=\\\"like\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"panelFlyoutArrow\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"fbNubFlyoutAttachments\\\"\\u003E\\u003Cdiv class=\\\"chatAttachmentShelf\\\" data-jsid=\\\"attachmentShelf\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },4,],[\"m_0_54\",{\n __html: \"\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cimg class=\\\"mrm _s0 _29h _29i _rw img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" alt=\\\"\\\" data-jsid=\\\"profilePhoto\\\" width=\\\"1\\\" height=\\\"1\\\" /\\u003E\\u003Cdiv class=\\\"_29j _29k\\\"\\u003E\\u003Cdiv class=\\\"mbs fsl fwb fcb\\\" data-jsid=\\\"mainText\\\"\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"aux-message fcg\\\" data-jsid=\\\"auxMessage\\\"\\u003EVideo will start as soon as you answer.\\u003C/div\\u003E\\u003Cdiv class=\\\"mts hidden_elem fcg\\\" data-jsid=\\\"slowMessage\\\"\\u003E\\u003Cspan class=\\\"fwb fcb\\\"\\u003EHaving trouble?\\u003C/span\\u003E Your connection may be \\u003Ca href=\\\"/help/214265948627885\\\" target=\\\"_blank\\\"\\u003Etoo slow\\u003C/a\\u003E.\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_55\",{\n __html: \"\\u003Cdiv class=\\\"clearfix uiTokenizer uiInlineTokenizer\\\"\\u003E\\u003Cdiv class=\\\"tokenarea hidden_elem\\\" data-jsid=\\\"tokenarea\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_56\",{\n __html: \"\\u003Cli class=\\\"_2qm\\\"\\u003E\\u003Cdiv class=\\\"clearfix\\\"\\u003E\\u003Cdiv class=\\\"lfloat\\\"\\u003E\\u003Cspan data-jsid=\\\"text\\\"\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"rfloat\\\"\\u003E\\u003Cspan\\u003E\\u003Cimg class=\\\"_356 img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yb/r/GsNJNwuI-UM.gif\\\" alt=\\\"\\\" data-jsid=\\\"loadingSpinner\\\" width=\\\"16\\\" height=\\\"11\\\" /\\u003E\\u003Ca class=\\\"_357\\\" data-jsid=\\\"link\\\" href=\\\"#\\\" role=\\\"button\\\"\\u003E\\u003C/a\\u003E\\u003C/span\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n },2,],[\"m_0_57\",{\n __html: \"\\u003Cdiv class=\\\"uiTypeahead\\\"\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cinput type=\\\"hidden\\\" autocomplete=\\\"off\\\" class=\\\"hiddenInput\\\" /\\u003E\\u003Cdiv class=\\\"innerWrap\\\"\\u003E\\u003Cinput type=\\\"text\\\" class=\\\"inputtext textInput\\\" data-jsid=\\\"textfield\\\" /\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\"\n },2,],[\"m_0_58\",{\n __html: \"\\u003Cli class=\\\"_2qs\\\"\\u003E\\u003Cdiv class=\\\"clearfix pvs\\\"\\u003E\\u003Cdiv class=\\\"MercuryThreadImage mrm _3ks lfloat\\\" data-jsid=\\\"image\\\"\\u003E\\u003Cimg class=\\\"_s0 _rw img\\\" src=\\\"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yw/r/drP8vlvSl_8.gif\\\" /\\u003E\\u003C/div\\u003E\\u003Cdiv class=\\\"_2qr\\\"\\u003E\\u003Cspan class=\\\"_2qn\\\" data-jsid=\\\"name\\\"\\u003E\\u003C/span\\u003E\\u003Cdiv class=\\\"_2qq fsm fwn fcg\\\" data-jsid=\\\"snippet\\\"\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003C/li\\u003E\"\n },2,],]\n },\n css: [\"W3Ky6\",\"0duP3\",\"cy4a0\",],\n bootloadable: {\n \"legacy:control-textarea\": {\n resources: [\"AyUu6\",\"LpC/l\",\"W3Ky6\",\"c1+nc\",]\n },\n VideoCallController: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"4qhP/\",\"OJTM4\",\"u//Ut\",\"brbS1\",\"EzMPG\",\"gMfWI\",\"bUzfU\",\"KPLqg\",],\n \"module\": true\n },\n ErrorDialog: {\n resources: [\"AyUu6\",\"W3Ky6\",\"AsDOA\",\"bUzfU\",],\n \"module\": true\n },\n FBRTCCallController: {\n resources: [\"AyUu6\",\"AsDOA\",\"W3Ky6\",\"4qhP/\",\"brbS1\",\"u//Ut\",\"OJTM4\",\"EzMPG\",\"gMfWI\",\"a3inZ\",\"KPLqg\",\"bUzfU\",\"LTaK/\",\"21lHn\",\"+h1d2\",\"9aS3c\",\"MfG6c\",\"LsRx/\",\"3h2ll\",\"Mzbs2\",\"wGXi/\",\"d6Evh\",\"6WF8S\",],\n \"module\": true\n }\n },\n resource_map: {\n \"9aS3c\": {\n type: \"css\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yO/r/OErByX4rRhh.css\"\n },\n Mzbs2: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y7/r/sM5jkmon6X9.js\"\n },\n \"3h2ll\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yz/r/8nGweTPJCKZ.js\"\n },\n \"6WF8S\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ya/r/cHaSy_1vFQu.js\"\n },\n \"4qhP/\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yv/r/tMfRnsOx-tg.js\"\n },\n \"LTaK/\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y_/r/3Z79JZzbt1o.js\"\n },\n KPLqg: {\n type: \"css\",\n permanent: 1,\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yq/r/UJCnyWz8q3r.css\"\n },\n \"wGXi/\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ym/r/usnMgvD8abB.js\"\n },\n gMfWI: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yY/r/YnJRD6K1VJA.js\"\n },\n \"c1+nc\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y1/r/3A9a-abDc5V.js\"\n },\n \"LsRx/\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yu/r/kS-r05X6OEA.js\"\n },\n a3inZ: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yO/r/9ELMM-KdnsD.js\"\n },\n d6Evh: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y2/r/jalUIRLBuTe.js\"\n },\n MfG6c: {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yS/r/eKDf9pXbovQ.js\"\n },\n \"21lHn\": {\n type: \"js\",\n crossOrigin: 1,\n src: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yP/r/QylH5JvJ2tZ.js\"\n }\n },\n ixData: {\n \"/images/messaging/stickers/selector/leftarrow.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yS/r/lM_ryP3lE-X.png\",\n width: 20,\n height: 20\n },\n \"/images/chat/sidebar/newGroupChatLitestand.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yk/r/3hu9Ow1TVfb.png\",\n width: 28,\n height: 28\n },\n \"/images/litestand/sidebar/blended/new_group_chat.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yg/r/I5ybuQbRjJE.png\",\n width: 32,\n height: 32\n },\n \"/images/chat/status/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_1dc182\"\n },\n \"/images/litestand/bookmarks/sidebar/remove.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_76e896\"\n },\n \"/images/litestand/sidebar/blended/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6ae2b7\"\n },\n \"/images/litestand/sidebar/blended/pushable.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_a69036\"\n },\n \"/images/litestand/bookmarks/sidebar/add.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_f57d5d\"\n },\n \"/images/litestand/sidebar/pushable.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_0b17f3\"\n },\n \"/images/litestand/sidebar/online.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6b87d3\"\n },\n \"/images/messaging/stickers/selector/rightarrow.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/yt/r/jopyzHwsKtN.png\",\n width: 20,\n height: 20\n },\n \"/images/chat/add.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_daa3c5\"\n },\n \"/images/chat/status/mobile.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_6633b3\"\n },\n \"/images/chat/sidebar/newGroupChat.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ys/r/S824hxiYJSG.png\",\n width: 28,\n height: 28\n },\n \"/images/chat/delete.png\": {\n sprited: true,\n spriteMapCssClass: \"sp_9kaae3\",\n spriteCssClass: \"sx_1bb86f\"\n },\n \"/images/messaging/stickers/selector/store.png\": {\n sprited: false,\n uri: \"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/y9/r/WG0aM70e5Iq.png\",\n width: 20,\n height: 20\n }\n },\n js: [\"AyUu6\",\"OJTM4\",\"AsDOA\",\"63VzN\",\"H+v1W\",\"LpC/l\",\"brbS1\",\"u//Ut\",\"EzMPG\",],\n id: \"pagelet_dock\",\n phase: 3\n});");
// 1342
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"bigPipe.onPageletArrive({\n content: {\n fbRequestsList: {\n container_id: \"u_0_1p\"\n }\n },\n css: [\"W3Ky6\",],\n bootloadable: {\n },\n resource_map: {\n },\n id: \"fbRequestsList\",\n phase: 3\n});");
// 1343
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s36ac659c411571829b74b36874dd86d2abc554af");
// 1344
geval("bigPipe.onPageletArrive({\n JSBNG__content: {\n fbRequestsList: {\n container_id: \"u_0_1p\"\n }\n },\n css: [\"W3Ky6\",],\n bootloadable: {\n },\n resource_map: {\n },\n id: \"fbRequestsList\",\n phase: 3\n});");
// 1346
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"bigPipe.onPageletArrive({\n id: \"\",\n phase: 3,\n jsmods: {\n },\n is_last: true,\n css: [\"W3Ky6\",\"0duP3\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",],\n bootloadable: {\n },\n resource_map: {\n },\n js: [\"AyUu6\",\"OJTM4\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"1XxM1\",\"5dFET\",\"hfrQl\",\"C6rJk\",],\n the_end: true\n});");
// 1347
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s0143c850f445614ea7a441221381555af42f3c7e");
// 1348
geval("bigPipe.onPageletArrive({\n id: \"\",\n phase: 3,\n jsmods: {\n },\n is_last: true,\n css: [\"W3Ky6\",\"0duP3\",\"vFtag\",\"ynBUm\",\"xqZGj\",\"yagwf\",],\n bootloadable: {\n },\n resource_map: {\n },\n js: [\"AyUu6\",\"OJTM4\",\"AsDOA\",\"63VzN\",\"4vv8/\",\"u//Ut\",\"1XxM1\",\"5dFET\",\"hfrQl\",\"C6rJk\",],\n the_end: true\n});");
// 1351
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_222[0], o0,o18);
// undefined
o18 = null;
// 1467
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"if (self.CavalryLogger) {\n CavalryLogger.start_js([\"63VzN\",]);\n}\n;\n__d(\"NotificationURI\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n localize: function(i) {\n i = g(i);\n if (!i.isFacebookURI()) {\n return i.toString()\n };\n var j = i.getSubdomain();\n return i.getUnqualifiedURI().getQualifiedURI().setSubdomain(j).toString();\n },\n snowliftable: function(i) {\n if (!i) {\n return false\n };\n i = g(i);\n return (i.isFacebookURI() && i.getQueryData().hasOwnProperty(\"fbid\"));\n },\n isVaultSetURI: function(i) {\n if (!i) {\n return false\n };\n i = g(i);\n return (i.isFacebookURI() && (i.getPath() == \"/ajax/vault/sharer_preview.php\"));\n }\n };\n e.exports = h;\n});\n__d(\"legacy:fbdesktop-detect\", [\"FBDesktopDetect\",], function(a, b, c, d) {\n a.FbDesktopDetect = b(\"FBDesktopDetect\");\n}, 3);\n__d(\"IntlUtils\", [\"AsyncRequest\",\"Cookie\",\"goURI\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"Cookie\"), i = b(\"goURI\"), j = {\n setXmode: function(k) {\n (new g()).setURI(\"/ajax/intl/save_xmode.php\").setData({\n xmode: k\n }).setHandler(function() {\n document.location.reload();\n }).send();\n },\n setAmode: function(k) {\n new g().setURI(\"/ajax/intl/save_xmode.php\").setData({\n amode: k,\n app: false\n }).setHandler(function() {\n document.location.reload();\n }).send();\n },\n setLocale: function(k, l, m, n) {\n if (!m) {\n m = k.options[k.selectedIndex].value;\n };\n j.saveLocale(m, true, null, l, n);\n },\n saveLocale: function(k, l, m, n, o) {\n new g().setURI(\"/ajax/intl/save_locale.php\").setData({\n aloc: k,\n source: n,\n app_only: o\n }).setHandler(function(p) {\n if (l) {\n document.location.reload();\n }\n else i(m);\n ;\n }).send();\n },\n setLocaleCookie: function(k, l) {\n h.set(\"locale\", k, ((7 * 24) * 3600000));\n i(l);\n }\n };\n e.exports = j;\n});\n__d(\"legacy:intl-base\", [\"IntlUtils\",], function(a, b, c, d) {\n var e = b(\"IntlUtils\");\n a.intl_set_xmode = e.setXmode;\n a.intl_set_amode = e.setAmode;\n a.intl_set_locale = e.setLocale;\n a.intl_save_locale = e.saveLocale;\n a.intl_set_cookie_locale = e.setLocaleCookie;\n}, 3);\n__d(\"legacy:onload-action\", [\"OnloadHooks\",], function(a, b, c, d) {\n var e = b(\"OnloadHooks\");\n a._onloadHook = e._onloadHook;\n a._onafterloadHook = e._onafterloadHook;\n a.runHook = e.runHook;\n a.runHooks = e.runHooks;\n a.keep_window_set_as_loaded = e.keepWindowSetAsLoaded;\n}, 3);\n__d(\"LoginFormController\", [\"Event\",\"ge\",\"Button\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"ge\"), i = b(\"Button\");\n f.init = function(j, k) {\n g.listen(j, \"submit\", function() {\n i.setEnabled(k, false);\n i.setEnabled.curry(k, true).defer(15000);\n });\n var l = h(\"lgnjs\");\n if (l) {\n l.value = parseInt((Date.now() / 1000), 10);\n };\n };\n});\n__d(\"ClickRefUtils\", [], function(a, b, c, d, e, f) {\n var g = {\n get_intern_ref: function(h) {\n if (!!h) {\n var i = {\n profile_minifeed: 1,\n gb_content_and_toolbar: 1,\n gb_muffin_area: 1,\n ego: 1,\n bookmarks_menu: 1,\n jewelBoxNotif: 1,\n jewelNotif: 1,\n BeeperBox: 1,\n navSearch: 1\n };\n for (var j = h; (j && (j != document.body)); j = j.parentNode) {\n if ((!j.id || (typeof j.id !== \"string\"))) {\n continue;\n };\n if ((j.id.substr(0, 8) == \"pagelet_\")) {\n return j.id.substr(8)\n };\n if ((j.id.substr(0, 8) == \"box_app_\")) {\n return j.id\n };\n if (i[j.id]) {\n return j.id\n };\n };\n }\n ;\n return \"-\";\n },\n get_href: function(h) {\n var i = (((((h.getAttribute && ((h.getAttribute(\"ajaxify\") || h.getAttribute(\"data-endpoint\")))) || h.action) || h.href) || h.name));\n return ((typeof i === \"string\") ? i : null);\n },\n should_report: function(h, i) {\n if ((i == \"FORCE\")) {\n return true\n };\n if ((i == \"INDIRECT\")) {\n return false\n };\n return (h && ((g.get_href(h) || ((h.getAttribute && h.getAttribute(\"data-ft\"))))));\n }\n };\n e.exports = g;\n});\n__d(\"setUECookie\", [\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\");\n function h(i) {\n if (!g.no_cookies) {\n document.cookie = (((\"act=\" + encodeURIComponent(i)) + \"; path=/; domain=\") + window.location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\"));\n };\n };\n e.exports = h;\n});\n__d(\"ClickRefLogger\", [\"Arbiter\",\"EagleEye\",\"ClickRefUtils\",\"collectDataAttributes\",\"copyProperties\",\"ge\",\"setUECookie\",\"$\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"EagleEye\"), i = b(\"ClickRefUtils\"), j = b(\"collectDataAttributes\"), k = b(\"copyProperties\"), l = b(\"ge\"), m = b(\"setUECookie\"), n = b(\"$\");\n function o(q) {\n if (!l(\"content\")) {\n return [0,0,0,0,]\n };\n var r = n(\"content\"), s = (a.Vector2 ? a.Vector2.getEventPosition(q) : {\n x: 0,\n y: 0\n });\n return [s.x,s.y,r.offsetLeft,r.clientWidth,];\n };\n function p(q, r, event, s) {\n var t = ((!a.ArbiterMonitor) ? \"r\" : \"a\"), u = [0,0,0,0,], v, w, x;\n if (!!event) {\n v = event.type;\n if (((v == \"click\") && l(\"content\"))) {\n u = o(event);\n };\n var y = 0;\n (event.ctrlKey && (y += 1));\n (event.shiftKey && (y += 2));\n (event.altKey && (y += 4));\n (event.metaKey && (y += 8));\n if (y) {\n v += y;\n };\n }\n ;\n if (!!r) {\n w = i.get_href(r);\n };\n var z = [];\n if (a.ArbiterMonitor) {\n x = a.ArbiterMonitor.getInternRef(r);\n z = a.ArbiterMonitor.getActFields();\n }\n ;\n var aa = j((!!event ? ((event.target || event.srcElement)) : r), [\"ft\",\"gt\",]);\n k(aa.ft, (s.ft || {\n }));\n k(aa.gt, (s.gt || {\n }));\n if ((typeof (aa.ft.ei) === \"string\")) {\n delete aa.ft.ei;\n };\n var ba = [q._ue_ts,q._ue_count,(w || \"-\"),q._context,(v || \"-\"),(x || i.get_intern_ref(r)),t,(a.URI ? a.URI.getRequestURI(true, true).getUnqualifiedURI().toString() : ((location.pathname + location.search) + location.hash)),aa,].concat(u).concat(z);\n return ba;\n };\n g.subscribe(\"ClickRefAction/new\", function(q, r) {\n if (i.should_report(r.node, r.mode)) {\n var s = p(r.cfa, r.node, r.event, r.extra_data);\n m(r.cfa.ue);\n h.log(\"act\", s);\n if (window.chromePerfExtension) {\n window.postMessage({\n clickRef: JSON.stringify(s)\n }, window.location.origin);\n };\n }\n ;\n });\n});\n__d(\"QuicklingAugmenter\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = [], i = {\n addHandler: function(j) {\n h.push(j);\n },\n augmentURI: function(j) {\n var k = [], l = g(j);\n h.forEach(function(m) {\n var n = m(l);\n if (!n) {\n return l\n };\n k.push(m);\n l = l.addQueryData(n);\n });\n h = k;\n return l;\n }\n };\n e.exports = i;\n});\n__d(\"Quickling\", [\"AjaxPipeRequest\",\"Arbiter\",\"Class\",\"CSSClassTransition\",\"DocumentTitle\",\"DOM\",\"ErrorUtils\",\"HTML\",\"OnloadHooks\",\"PageTransitions\",\"QuicklingAugmenter\",\"Run\",\"URI\",\"UserAgent\",\"copyProperties\",\"goOrReplace\",\"isEmpty\",\"QuicklingConfig\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxPipeRequest\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSSClassTransition\"), k = b(\"DocumentTitle\"), l = b(\"DOM\"), m = b(\"ErrorUtils\"), n = b(\"HTML\"), o = b(\"OnloadHooks\"), p = b(\"PageTransitions\"), q = b(\"QuicklingAugmenter\"), r = b(\"Run\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"copyProperties\"), v = b(\"goOrReplace\"), w = b(\"isEmpty\"), x = b(\"QuicklingConfig\"), y = x.version, z = x.sessionLength, aa = new RegExp(x.inactivePageRegex), ba = 0, ca, da = \"\", ea = {\n isActive: function() {\n return true;\n },\n isPageActive: function(la) {\n if ((la == \"#\")) {\n return false\n };\n la = new s(la);\n if ((la.getDomain() && (la.getDomain() != s().getDomain()))) {\n return false\n };\n if ((la.getPath() == \"/l.php\")) {\n var ma = la.getQueryData().u;\n if (ma) {\n ma = s(unescape(ma)).getDomain();\n if ((ma && (ma != s().getDomain()))) {\n return false\n };\n }\n ;\n }\n ;\n var na = la.getPath(), oa = la.getQueryData();\n if (!w(oa)) {\n na += (\"?\" + s.implodeQuery(oa));\n };\n return !aa.test(na);\n },\n getLoadCount: function() {\n return ba;\n }\n };\n function fa(la) {\n la = (la || \"Facebook\");\n k.set(la);\n if (t.ie()) {\n da = la;\n if (!ca) {\n ca = window.setInterval(function() {\n var ma = da, na = k.get();\n if ((ma != na)) {\n k.set(ma);\n };\n }, 5000, false);\n };\n }\n ;\n };\n function ga(la) {\n var ma = document.getElementsByTagName(\"link\");\n for (var na = 0; (na < ma.length); ++na) {\n if ((ma[na].rel != \"alternate\")) {\n continue;\n };\n l.remove(ma[na]);\n };\n if (la.length) {\n var oa = l.find(document, \"head\");\n (oa && l.appendContent(oa, n(la[0])));\n }\n ;\n };\n function ha(la) {\n var ma = {\n version: y\n };\n this.parent.construct(this, la, {\n quickling: ma\n });\n };\n i.extend(ha, g);\n u(ha.prototype, {\n _preBootloadFirstResponse: function(la) {\n return true;\n },\n _fireDomContentCallback: function() {\n (this._request.cavalry && this._request.cavalry.setTimeStamp(\"t_domcontent\"));\n p.transitionComplete();\n (this._onPageDisplayed && this._onPageDisplayed(this.pipe));\n this.parent._fireDomContentCallback();\n },\n _fireOnloadCallback: function() {\n if (this._request.cavalry) {\n this._request.cavalry.setTimeStamp(\"t_hooks\");\n this._request.cavalry.setTimeStamp(\"t_layout\");\n this._request.cavalry.setTimeStamp(\"t_onload\");\n }\n ;\n this.parent._fireOnloadCallback();\n },\n isPageActive: function(la) {\n return ea.isPageActive(la);\n },\n _versionCheck: function(la) {\n if ((la.version == y)) {\n return true\n };\n var ma = [\"quickling\",\"ajaxpipe\",\"ajaxpipe_token\",];\n v(window.location, s(la.uri).removeQueryData(ma), true);\n return false;\n },\n _processFirstResponse: function(la) {\n var ma = la.getPayload();\n fa(ma.title);\n ga((ma.syndication || []));\n window.scrollTo(0, 0);\n j.go(document.body, (ma.body_class || \"\"), p.getMostRecentURI(), la.getRequest().getURI());\n h.inform(\"quickling/response\");\n },\n getSanitizedParameters: function() {\n return [\"quickling\",];\n }\n });\n function ia() {\n ba++;\n return (ba >= z);\n };\n function ja(la) {\n g.setCurrentRequest(null);\n if (ia()) {\n return false\n };\n la = q.augmentURI(la);\n if (!ea.isPageActive(la)) {\n return false\n };\n window.ExitTime = Date.now();\n r.__removeHook(\"onafterloadhooks\");\n r.__removeHook(\"onloadhooks\");\n o.runHooks(\"onleavehooks\");\n h.inform(\"onload/exit\", true);\n new ha(la).setCanvasId(\"content\").send();\n return true;\n };\n function ka(la) {\n var ma = window[la];\n function na(oa, pa, qa) {\n if ((typeof oa !== \"function\")) {\n oa = eval.bind(null, oa);\n };\n var ra = ma(m.guard(oa), pa);\n if ((pa > 0)) {\n if ((qa !== false)) {\n r.onLeave(function() {\n clearInterval(ra);\n });\n }\n };\n return ra;\n };\n window[la] = na;\n };\n r.onAfterLoad(function la() {\n ka(\"setInterval\");\n ka(\"setTimeout\");\n p.registerHandler(ja, 1);\n });\n e.exports = a.Quickling = ea;\n});\n__d(\"ScubaSample\", [\"Banzai\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = \"scuba_sample\", h = b(\"Banzai\"), i = b(\"copyProperties\");\n function j(m, n, o) {\n this.fields = {\n };\n this.flush = function() {\n if (!m) {\n return\n };\n var p = {\n };\n i(p, this.fields);\n p._ds = m;\n if (n) {\n p._lid = n;\n };\n p._options = o;\n h.post(g, p);\n this.flush = function() {\n \n };\n this.flushed = true;\n };\n this.lid = n;\n return this;\n };\n function k(m, n, o) {\n if (!this.fields[m]) {\n this.fields[m] = {\n };\n };\n this.fields[m][n] = o;\n return this;\n };\n function l(m) {\n return function(n, o) {\n if (this.flushed) {\n return this\n };\n return k.call(this, m, n, o);\n };\n };\n i(j.prototype, {\n addNormal: l(\"normal\"),\n addInteger: l(\"int\"),\n addDenorm: l(\"denorm\")\n });\n e.exports = j;\n});\n__d(\"ScriptMonitorReporter\", [\"ScriptMonitor\",\"ScubaSample\",\"setTimeoutAcrossTransitions\",\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"ScriptMonitor\"), h = b(\"ScubaSample\"), i = b(\"setTimeoutAcrossTransitions\"), j = b(\"URI\");\n function k(o) {\n var p = [];\n for (var q = 0; (q < o.length); q++) {\n p.push(new RegExp(o[q], \"i\"));;\n };\n return p;\n };\n function l(o, p) {\n for (var q = 0; (q < p.length); q++) {\n if (p[q].src) {\n o.push(p[q].src);\n };\n };\n };\n function m(o, p) {\n for (var q = 0; (q < p.length); q++) {\n if (p[q].test(o)) {\n return true\n };\n };\n return false;\n };\n function n(o, p) {\n var q = g.stop(), r = {\n addGeoFields: 1,\n addBrowserFields: 1,\n addUser: 1\n }, s = {\n };\n l(q, document.getElementsByTagName(\"script\"));\n l(q, document.getElementsByTagName(\"iframe\"));\n for (var t = 0; (t < q.length); t++) {\n var u = q[t].replace(/\\?.*/, \"\"), v;\n if (s[u]) {\n continue;\n };\n s[u] = 1;\n if (!j.isValidURI(u)) {\n v = true;\n }\n else if (m(u, p)) {\n v = false;\n }\n else if (m(new j(u).getDomain(), o)) {\n v = false;\n }\n else v = true;\n \n \n ;\n if (v) {\n new h(\"unknown_scripts\", 0, r).addNormal(\"url\", u).flush();\n };\n };\n };\n e.exports = {\n runScan: function(o, p) {\n i(function() {\n n(k(o), k(p));\n }, 5000);\n }\n };\n});\n__d(\"StringTransformations\", [], function(a, b, c, d, e, f) {\n e.exports = {\n unicodeEscape: function(g) {\n return g.replace(/[^A-Za-z0-9\\-\\.\\:\\_\\$\\/\\+\\=]/g, function(h) {\n var i = h.charCodeAt().toString(16);\n return (\"\\\\u\" + ((\"0000\" + i.toUpperCase())).slice(-4));\n });\n },\n unicodeUnescape: function(g) {\n return g.replace(/(\\\\u[0-9A-Fa-f]{4})/g, function(h) {\n return String.fromCharCode(parseInt(h.slice(2), 16));\n });\n }\n };\n});\n__d(\"TimeSpentLogger\", [\"Arbiter\",\"Banzai\",\"CSS\",\"ClickRefUtils\",\"DOMEventListener\",\"ScriptPath\",\"UserActivity\",\"collectDataAttributes\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"CSS\"), j = b(\"ClickRefUtils\"), k = b(\"DOMEventListener\"), l = b(\"ScriptPath\"), m = b(\"UserActivity\"), n = b(\"collectDataAttributes\"), o = b(\"copyProperties\"), p = [m.getLastInformTime(),0,], q = m.getLastInformTime(), r = {\n tos_seq: 0,\n tos_cumulative: 0,\n transport_cause: null,\n buenopath: null,\n page_token: null,\n elements: 0,\n uact_tos: null,\n client_time: null\n }, s = 100, t = 100, u = (10 * 1000), v = (3 * 1000), w = 1, x = 2, y = 4, z = 8, aa = {\n };\n m.subscribe(function(ia, ja) {\n var ka = (p.length - 1);\n q = ja.last_inform;\n if ((ja.idleness < v)) {\n p[ka] += ja.idleness;\n r.tos_cumulative += ja.idleness;\n }\n else {\n if ((ka > s)) {\n fa(\"array_limit_reached\");\n };\n p.push(ja.idleness, 0);\n }\n ;\n });\n function ba(ia) {\n var ja = 0;\n if (document.getElementById(\"boulder_fixed_header\")) {\n ja = (ja | w);\n };\n if (i.hasClass(document.body, \"timelineLayout\")) {\n ja = (ja | y);\n var ka = document.getElementById(\"pagelet_main_column_personal\");\n if ((ka && (ka.getAttribute(\"data-referrer\") === \"pagelet_main_column_personal_timeline\"))) {\n ja = (ja | x);\n };\n if (i.hasClass(document.body, \"pagesTimelineLayout\")) {\n ja = (ja | z);\n };\n }\n ;\n return ja;\n };\n function ca(ia) {\n var ja = ba(), ka = l.getScriptPath(), la = l.getCategoryToken();\n r.uact_tos = p;\n if (ka) {\n r.buenopath = ka.substring(0, t);\n }\n else r.buenopath = \"\";\n ;\n if (la) {\n r.page_token = la;\n }\n else r.page_token = \"\";\n ;\n r.elements = ja;\n r.transport_cause = ia;\n r.client_time = Date.now();\n };\n function da() {\n r.tos_seq += 1;\n p = [q,0,];\n };\n var ea = {\n store: true,\n delay: 3000,\n retry: true\n };\n function fa(ia) {\n ca(ia);\n if (h.isEnabled(\"time_spent\")) {\n g.inform(\"timespent/tosdataposted\", o({\n }, r));\n h.post(\"time_spent\", o({\n }, r), ea);\n }\n ;\n da();\n };\n function ga() {\n fa(\"heartbeat\");\n };\n function ha() {\n fa(\"before_unload\");\n };\n if ((window.top == window.self)) {\n k.add(window, \"beforeunload\", ha);\n setInterval(function() {\n if ((((Date.now() - m.getLastInformTime()) > ((u - 100))) && (((p.length > 2) || (p[(p.length - 1)] > 0))))) {\n ga();\n };\n }, u);\n }\n;\n g.subscribe(\"UserAction/new\", function(ia, ja) {\n if (j.should_report(ja.node, ja.mode)) {\n var ka = n(ja.node, [\"gt\",]), la = {\n iref: j.get_intern_ref(ja.node),\n gt_ref: ka.ref,\n nav_section: ka.nav_section\n };\n ca(\"useraction\");\n o(la, r);\n ja.ua.add_data(la);\n g.inform(\"timespent/tosdataposted\", o({\n }, r));\n da();\n }\n ;\n });\n e.exports = aa;\n});\n__d(\"UserActionHistory\", [\"Arbiter\",\"ClickRefUtils\",\"ScriptPath\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ClickRefUtils\"), i = b(\"ScriptPath\"), j = b(\"throttle\"), k = {\n click: 1,\n submit: 1\n }, l = false, m = {\n log: [],\n len: 0\n }, n = j.acrossTransitions(function() {\n try {\n l._ua_log = JSON.stringify(m);\n } catch (q) {\n l = false;\n };\n }, 1000);\n function o() {\n try {\n if (a.sessionStorage) {\n l = a.sessionStorage;\n (l._ua_log && (m = JSON.parse(l._ua_log)));\n }\n ;\n } catch (q) {\n l = false;\n };\n m.log[(m.len % 10)] = {\n ts: Date.now(),\n path: \"-\",\n index: m.len,\n type: \"init\",\n iref: \"-\"\n };\n m.len++;\n g.subscribe(\"UserAction/new\", function(r, s) {\n var t = s.ua, u = s.node, event = s.event;\n if ((!event || !((event.type in k)))) {\n return\n };\n var v = {\n path: i.getScriptPath(),\n type: event.type,\n ts: t._ue_ts,\n iref: (h.get_intern_ref(u) || \"-\"),\n index: m.len\n };\n m.log[(m.len++ % 10)] = v;\n (l && n());\n });\n };\n function p() {\n return m.log.sort(function(q, r) {\n return (((r.ts != q.ts)) ? ((r.ts - q.ts)) : ((r.index - q.index)));\n });\n };\n o();\n e.exports = {\n getHistory: p\n };\n});\n__d(\"clip\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n return Math.min(Math.max(h, i), j);\n };\n e.exports = g;\n});\n__d(\"MusicButtonStore\", [], function(a, b, c, d, e, f) {\n var g = {\n }, h = {\n addButton: function(i, j) {\n g[i] = j;\n return j;\n },\n getButton: function(i) {\n return g[i];\n },\n getButtons: function() {\n return g;\n },\n removeButton: function(i) {\n (g[i] && g[i].resetLoadingTimers());\n delete g[i];\n }\n };\n e.exports = h;\n});\n__d(\"MusicConstants\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n DEBUG: false,\n LIVE_LISTEN_MIN_SPOTIFY_VERSION: \"spotify-0.6.6.0.g5a9eaca5\",\n enableDebug: function() {\n this.DEBUG = true;\n },\n sameURLs: function(i, j) {\n var k = /\\/$/;\n if ((i && j)) {\n i = g(i);\n j = g(j);\n return ((i.getDomain() == j.getDomain()) && (i.getPath() == j.getPath()));\n }\n ;\n return false;\n },\n greaterOrEqualToMinimumVersion: function(i, j) {\n var k = /(?:\\d+\\.)+/, l = i.match(k)[0].split(\".\").slice(0, -1), m = j.match(k)[0].split(\".\").slice(0, -1);\n if ((l.length !== m.length)) {\n return false\n };\n for (var n = 0; (n < m.length); n++) {\n if ((+l[n] < +m[n])) {\n return false;\n }\n else if ((+l[n] > +m[n])) {\n return true\n }\n ;\n };\n return true;\n },\n sanitizeForProviders: function(i) {\n var j = {\n };\n for (var k in i) {\n if (this.ALLOWED_EXTERNAL_CONTEXT_PARAMS[k]) {\n j[k] = i[k];\n };\n };\n return j;\n },\n OP: {\n RESUME: \"RESUME\",\n PAUSE: \"PAUSE\",\n PLAY: \"PLAY\",\n VERSION: \"VERSION\"\n },\n STATUS_CHANGE_OP: {\n STATUS: \"STATUS\",\n LOGIN: \"LOGIN\",\n REINFORM: \"REINFORM\"\n },\n STATUS_CHANGE_EVENT: {\n playing: \"PLAY_STATE_CHANGED\",\n track: \"TRACK_CHANGED\"\n },\n DIAGNOSTIC_EVENT: {\n ALL_PAUSED: \"ALL_PAUSED\",\n ALL_OFFLINE: \"ALL_OFFLINE\",\n OFFLINE: \"OFFLINE\",\n ONLINE: \"ONLINE\",\n SEARCHING: \"SEARCHING\",\n HIT: \"HIT\",\n MISS: \"MISS\",\n RESIGN: \"RESIGN\",\n IFRAME_POLLING: \"IFRAME_POLLING\",\n RELAUNCH: \"RELAUNCH\",\n STATE_CHANGE: \"STATE_CHANGE\",\n WRONG_VERSION: \"WRONG_VERSION\",\n SERVICE_ERROR: \"SERVICE_ERROR\",\n INCORRECT_ONLINE_STATE: \"INCORRECT_ONLINE_STATE\",\n LOG_SEND_OP: \"LOG_SEND_OP\",\n REQUEUE_OP: \"REQUEUE_OP\"\n },\n ALLOWED_STATUS_PARAMS: {\n playing: \"playing\",\n track: \"track\",\n context: \"context\",\n client_version: \"client_version\",\n start_time: \"start_time\",\n expires_in: \"expires_in\",\n open_graph_state: \"open_graph_state\"\n },\n ALLOWED_EXTERNAL_CONTEXT_PARAMS: {\n uri: true,\n song: true,\n radio_station: true,\n album: true,\n playlist: true,\n musician: true,\n song_list: true,\n offset: true,\n title: true,\n request_id: true,\n listen_with_friends: true,\n needs_tos: true\n },\n LIVE_LISTEN_OP: {\n NOW_LEADING: \"NOW_LEADING\",\n NOW_LISTENING: \"NOW_LISTENING\",\n END_SESSION: \"END_SESSION\",\n SONG_PLAYING: \"SONG_PLAYING\",\n LISTENER_UPDATE: \"LISTENER_UPDATE\",\n QUEUE_SESSION: \"QUEUE_SESSION\",\n PLAY_ERROR: \"PLAY_ERROR\",\n SESSION_UPDATED: \"SESSION_UPDATED\",\n QUEUING_SESSION: \"QUEUING_SESSION\"\n },\n MUSIC_BUTTON: {\n ACTIVATE: \"ACTIVATE\"\n },\n ERROR: {\n 1: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM\",\n 2: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM_OR_WAIT\",\n 3: \"SERVICE_UNAVAILABLE_BILLING_ISSUE\",\n 4: \"SERVICE_UNAVAILABLE_TECHNICAL_ISSUE\",\n 5: \"AUDIO_AD_PLAYING\",\n 99: \"SERVICE_TEMPORARILY_UNAVAILABLE\",\n 101: \"SONG_UNAVAILABLE_WITHOUT_PURCHASE\",\n 102: \"SONG_UNAVAILABLE_WITHOUT_PREMIUM\",\n 103: \"SONG_UNAVAILABLE_INDEFINITELY\"\n }\n };\n e.exports = (a.MusicConstants || h);\n});\n__d(\"MusicEvents\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\");\n e.exports = a.MusicEvents = new g();\n});\n__d(\"MusicButton\", [\"BanzaiODS\",\"Bootloader\",\"copyProperties\",\"CSS\",\"DOM\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"ScubaSample\",\"Tooltip\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"BanzaiODS\"), h = b(\"Bootloader\"), i = b(\"copyProperties\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"ScubaSample\"), q = b(\"Tooltip\"), r = b(\"cx\"), s = function(t, u, v, w, x, y) {\n this.provider = t;\n this.buttonElem = u;\n this.url = v;\n this.context = (w || {\n });\n this.mediaType = x;\n this.setState(this.STATES.OFFLINE);\n this.tooltip = (y || \"\");\n n.subscribe(m.MUSIC_BUTTON.ACTIVATE, this.processClick.bind(this));\n };\n i(s, {\n tracksetableTypes: []\n });\n i(s.prototype, {\n SHOW_LOADING_TIMEOUT: 500,\n HIDE_LOADING_TIMEOUT: 4000,\n RECENTLY_ONLINE_TIMEOUT: 6000,\n STATES: {\n PLAYING: \"music_playing\",\n PAUSED: \"music_paused\",\n LOADING: \"music_loading\",\n DISABLED: \"music_disabled\",\n OFFLINE: \"music_offline\"\n },\n setState: function(t) {\n if ((t !== this.STATES.LOADING)) {\n this.resetLoadingTimers();\n this.previousState = (this.state || t);\n }\n ;\n if ((t === this.STATES.PLAYING)) {\n q.set(this.buttonElem, this.tooltip);\n }\n else q.set(this.buttonElem, \"\");\n ;\n var u = this.buttonElem.parentNode;\n (this.state && j.removeClass(u, this.state));\n this.state = t;\n j.addClass(u, this.state);\n },\n isTracksetable: function(t) {\n return (s.tracksetableTypes.indexOf(this.mediaType) !== -1);\n },\n handleIncomingEvent: function(t, u) {\n clearTimeout(this._showLoadingTimer);\n if (((u && u.provider) && (u.provider != this.provider))) {\n return\n };\n switch (t) {\n case m.DIAGNOSTIC_EVENT.ONLINE:\n \n case m.STATUS_CHANGE_EVENT.track:\n \n case m.STATUS_CHANGE_EVENT.playing:\n var v = ((u && u.track) && u.track.uri), w = ((u && u.context) && u.context.uri);\n if (((u && u.playing) && ((m.sameURLs(v, this.url) || m.sameURLs(w, this.url))))) {\n this.setState(this.STATES.PLAYING);\n }\n else if (((this.state === this.STATES.LOADING) && (((this.previousState === this.STATES.PAUSED) || (this.previousState === this.STATES.OFFLINE))))) {\n clearTimeout(this._attemptingPlayTimer);\n this._attemptingPlayTimer = this.setState.bind(this, this.STATES.PAUSED).defer(this.RECENTLY_ONLINE_TIMEOUT, false);\n }\n else if (!this._attemptingPlayTimer) {\n this.setState(this.STATES.PAUSED);\n }\n \n ;\n break;\n case m.DIAGNOSTIC_EVENT.OFFLINE:\n this.setState(this.STATES.OFFLINE);\n break;\n case m.DIAGNOSTIC_EVENT.ALL_OFFLINE:\n this.setState(this.STATES.OFFLINE);\n break;\n };\n },\n processClick: function(t, u) {\n if ((u != this.buttonElem)) {\n if ((this.state === this.STATES.LOADING)) {\n (this.previousState && this.setState(this.previousState));\n };\n return;\n }\n ;\n var v = new p(\"music_play_button_click\", null, {\n addBrowserFields: true,\n addGeoFields: true,\n addUser: true\n });\n v.addNormal(\"uses_bridge\", \"1\");\n v.addNormal(\"state\", this.state);\n v.addNormal(\"provider\", this.provider);\n v.addNormal(\"class\", \"MusicButton\");\n v.addDenorm(\"url\", this.url);\n v.flush();\n if ((this.state != this.STATES.PLAYING)) {\n g.bumpEntityKey(\"music_play_button\", \"music_play_button_click\");\n g.bumpEntityKey(\"music_play_button\", (\"music_play_button_click.\" + this.provider));\n var w = o.byClass(this.buttonElem, \"_4--s\");\n if (w) {\n j.addClass(w, \"_4--t\");\n j.removeClass.curry(w, \"_4--t\").defer(3000);\n }\n ;\n }\n ;\n var x = (this.isTracksetable() && o.byClass(this.buttonElem, \"music_trackset_container\")), y = [];\n if (x) {\n var z = x.getAttribute(\"data-trackset-title\"), aa = this.provider, ba = k.scry(x, \".music_button\");\n for (var ca = 0; (ca < ba.length); ca++) {\n var da = l.getButton([ba[ca].id,]);\n if (((da && (da.provider == aa)) && da.isTracksetable())) {\n y.push(da.url);\n };\n };\n }\n ;\n if (!a.Music) {\n this.showLoading(true);\n };\n h.loadModules([\"Music\",], function(ea) {\n var fa = (((x && (y.length > 1))) ? ea.playPauseSongList(this.provider, this.url, y, z, this.context) : ea.playPauseSong(this.provider, this.url, this.context));\n this.showLoading(!fa);\n }.bind(this));\n },\n showLoading: function(t) {\n this.resetLoadingTimers();\n this._hideLoadingTimer = this._timeout.bind(this, t).defer(this.HIDE_LOADING_TIMEOUT, false);\n this._showLoadingTimer = this.setState.bind(this, this.STATES.LOADING).defer(this.SHOW_LOADING_TIMEOUT, false);\n },\n resetLoadingTimers: function() {\n clearTimeout(this._hideLoadingTimer);\n clearTimeout(this._showLoadingTimer);\n clearTimeout(this._attemptingPlayTimer);\n this._attemptingPlayTimer = null;\n },\n destroy: function() {\n this.resetLoadingTimers();\n this.buttonElem = null;\n },\n _timeout: function(t) {\n (a.Music && a.Music.reInform([this.provider,]));\n if ((!t && (this.state === this.STATES.LOADING))) {\n this.setState(this.STATES.PAUSED);\n };\n }\n });\n e.exports = s;\n});\n__d(\"MusicButtonManager\", [\"Event\",\"DOM\",\"KeyedCallbackManager\",\"Layer\",\"MusicButton\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"$\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"DOM\"), i = b(\"KeyedCallbackManager\"), j = b(\"Layer\"), k = b(\"MusicButton\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"ge\"), s = new i(), t = null, u = {\n }, v = 0;\n function w(da) {\n var ea = da.getTarget(), fa = o.byClass(ea, \"music_button\");\n fa = (fa || ((!((da.getModifiers && da.getModifiers().any)) && x(ea))));\n if (!fa) {\n return\n };\n return y(fa, da);\n };\n function x(da) {\n var ea = (o.byClass(da, \"music_button_trigger\") && o.byClass(da, \"music_button_trigger_group\"));\n if (ea) {\n var fa = h.scry(ea, \".music_button\");\n if (fa.length) {\n return fa[0]\n };\n }\n ;\n return null;\n };\n function y(da, event) {\n (event && event.stop());\n n.inform(m.MUSIC_BUTTON.ACTIVATE, da);\n return false;\n };\n function z(da) {\n (a.Music && a.Music.reInform(da));\n };\n function aa(da, ea) {\n var fa = l.getButtons();\n for (var ga in fa) {\n if ((fa[ga].noGC || r(ga))) {\n fa[ga].handleIncomingEvent(da, ea);\n }\n else l.removeButton(ga);\n ;\n };\n };\n var ba = {\n init: function(da) {\n if (t) {\n return\n };\n t = true;\n k.tracksetableTypes = (da || []);\n g.listen(document.body, \"click\", w);\n n.subscribe([m.STATUS_CHANGE_EVENT.playing,m.STATUS_CHANGE_EVENT.track,m.DIAGNOSTIC_EVENT.OFFLINE,m.DIAGNOSTIC_EVENT.ALL_OFFLINE,m.DIAGNOSTIC_EVENT.ONLINE,], aa);\n },\n add: function(da, ea, fa, ga, ha, ia) {\n (t || ba.init());\n var ja = ea.id, ka = l.getButton(ja);\n if (ka) {\n return ka\n };\n ka = l.addButton(ja, new k(da, ea, fa, q({\n button_id: ja\n }, ga), ha, ia));\n var la = o.byClass(ea, \"uiOverlay\");\n if (la) {\n ka.noGC = true;\n var ma = j.subscribe(\"destroy\", function(na, oa) {\n if (h.contains(oa.getRoot(), ea)) {\n l.removeButton(ja);\n j.unsubscribe(ma);\n }\n ;\n });\n }\n ;\n if ((da && !u[da])) {\n u[da] = function() {\n var na = Object.keys(u);\n (na.length && z(na));\n u = {\n };\n }.defer();\n };\n return ka;\n },\n addButton: function(da, ea, fa, ga, ha, ia) {\n if (!r(ea)) {\n return\n };\n var ja = p(ea);\n return ba.add(da, ja, fa, ga, ha, ia);\n },\n asyncAddMusicButton: function(da, ea) {\n da.setAttribute(\"id\", (\"music_button_\" + v++));\n ca(da, ea);\n },\n tryAddButtonInDOM: function(da, ea) {\n var fa = r(da);\n (fa && ca(fa, ea));\n },\n addMusicData: function(da, ea, fa, ga, ha, ia) {\n s.setResource(da, {\n provider: ea,\n uri: fa,\n context: ga,\n media_type: ha,\n tooltip: ia\n });\n }\n };\n function ca(da, ea) {\n var fa = h.find(da, \"a.button_anchor\").getAttribute(\"href\");\n s.executeOrEnqueue(fa, function(ga) {\n return ba.add(ga.provider, da, ga.uri, ga.context, ga.media_type, (ea ? ga.tooltip : \"\"));\n });\n };\n e.exports = (a.MusicButtonManager || ba);\n});\n__d(\"TinyViewport\", [\"Arbiter\",\"CSS\",\"DOM\",\"Event\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Event\"), k = b(\"queryThenMutateDOM\"), l = document.documentElement, m, n, o = k.bind(null, function() {\n n = (n || i.getDocumentScrollElement());\n m = ((l.clientHeight < 400) || (l.clientWidth < n.scrollWidth));\n }, function() {\n h.conditionClass(l, \"tinyViewport\", m);\n h.conditionClass(l, \"canHaveFixedElements\", !m);\n }, \"TinyViewport\");\n o();\n g.subscribe(\"quickling/response\", o);\n j.listen(window, \"resize\", o);\n});\n__d(\"TimeSpentArray\", [\"Banzai\",\"pageID\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\"), h = b(\"pageID\"), i = 2, j = (i * 32), k = 1500, l, m, n, o, p, q, r, s, t;\n function u() {\n if (l) {\n var ca = Date.now();\n if ((ca > p)) {\n r = Math.min(j, Math.ceil((((ca / 1000)) - o)));\n };\n var da = z();\n if (da) {\n l(da);\n };\n }\n ;\n y();\n };\n function v() {\n w();\n m = setTimeout(u, ((n * 1000) + k), false);\n };\n function w() {\n if (m) {\n clearTimeout(m);\n m = null;\n }\n ;\n };\n function x(ca) {\n o = ca;\n p = (o * 1000);\n q = [1,];\n for (var da = 1; (da < i); da++) {\n q.push(0);;\n };\n r = 1;\n s += 1;\n t += 1;\n v();\n };\n function y() {\n w();\n q = null;\n n = j;\n };\n function z() {\n if (!q) {\n return null\n };\n return {\n tos_id: h,\n start_time: o,\n tos_array: q.slice(0),\n tos_len: r,\n tos_seq: t,\n tos_cum: s\n };\n };\n function aa(ca) {\n if (((ca >= p) && (((ca - p)) < 1000))) {\n return\n };\n ba(Math.floor((ca / 1000)));\n };\n function ba(ca) {\n var da = (ca - o);\n if (((da < 0) || (da >= j))) {\n u();\n };\n if (!q) {\n x(ca);\n }\n else {\n q[(da >> 5)] |= ((1 << ((da & 31))));\n r = (da + 1);\n s += 1;\n p = (ca * 1000);\n }\n ;\n };\n e.exports = {\n init: function(ca, da) {\n s = 0;\n t = -1;\n l = ca;\n n = (da || j);\n x(Math.floor((Date.now() / 1000)));\n g.subscribe(g.SHUTDOWN, u);\n },\n update: function(ca) {\n aa(ca);\n },\n get: function() {\n return z();\n },\n ship: function() {\n u();\n },\n reset: function() {\n y();\n }\n };\n});\n__d(\"WebStorageMonster\", [\"Event\",\"AsyncRequest\",\"UserActivity\",\"StringTransformations\",\"arrayContains\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"UserActivity\"), j = b(\"StringTransformations\"), k = b(\"arrayContains\"), l = b(\"setTimeoutAcrossTransitions\"), m = 300000, n = false;\n function o(t) {\n var u = {\n };\n for (var v in t) {\n var w = t.getItem(v), x = j.unicodeEscape(v);\n if ((typeof w === \"string\")) {\n u[x] = w.length;\n };\n };\n return u;\n };\n function p(t) {\n if ((a.localStorage && t.keys)) {\n s._getLocalStorageKeys().forEach(function(u) {\n if (k(t.keys, u)) {\n a.localStorage.removeItem(u);\n };\n });\n };\n };\n function q(t) {\n if (a.localStorage) {\n s._getLocalStorageKeys().forEach(function(u) {\n if (!t.some(function(v) {\n return new RegExp(v).test(u);\n })) {\n a.localStorage.removeItem(u);\n };\n });\n };\n if (a.sessionStorage) {\n a.sessionStorage.clear();\n };\n };\n function r(t) {\n if (i.isActive(m)) {\n l(r.curry(t), m);\n }\n else s.cleanNow(t);\n ;\n };\n var s = {\n registerLogoutForm: function(t, u) {\n g.listen(t, \"submit\", function(v) {\n s.cleanOnLogout(u);\n });\n },\n schedule: function(t) {\n if (n) {\n return\n };\n n = true;\n r(t);\n },\n cleanNow: function(t) {\n var u = Date.now(), v = {\n }, w = false;\n [\"localStorage\",\"sessionStorage\",].forEach(function(y) {\n if (a[y]) {\n v[y] = o(a[y]);\n w = true;\n }\n ;\n });\n var x = Date.now();\n v.logtime = (x - u);\n if (w) {\n new h(\"/ajax/webstorage/process_keys.php\").setData(v).setHandler(function(y) {\n if (!t) {\n var z = y.getPayload();\n if (z.keys) {\n z.keys = z.keys.map(j.unicodeUnescape);\n };\n p(z);\n }\n ;\n }.bind(this)).send();\n };\n },\n cleanOnLogout: function(t) {\n if (t) {\n q(t);\n };\n if (a.sessionStorage) {\n a.sessionStorage.clear();\n };\n },\n _getLocalStorageKeys: Object.keys.curry(a.localStorage)\n };\n e.exports = s;\n});");
// 1510
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"if (self.CavalryLogger) {\n CavalryLogger.start_js([\"63VzN\",]);\n}\n;\n__d(\"NotificationURI\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n localize: function(i) {\n i = g(i);\n if (!i.isFacebookURI()) {\n return i.toString()\n };\n var j = i.getSubdomain();\n return i.getUnqualifiedURI().getQualifiedURI().setSubdomain(j).toString();\n },\n snowliftable: function(i) {\n if (!i) {\n return false\n };\n i = g(i);\n return (i.isFacebookURI() && i.getQueryData().hasOwnProperty(\"fbid\"));\n },\n isVaultSetURI: function(i) {\n if (!i) {\n return false\n };\n i = g(i);\n return (i.isFacebookURI() && (i.getPath() == \"/ajax/vault/sharer_preview.php\"));\n }\n };\n e.exports = h;\n});\n__d(\"legacy:fbdesktop-detect\", [\"FBDesktopDetect\",], function(a, b, c, d) {\n a.FbDesktopDetect = b(\"FBDesktopDetect\");\n}, 3);\n__d(\"IntlUtils\", [\"AsyncRequest\",\"Cookie\",\"goURI\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"Cookie\"), i = b(\"goURI\"), j = {\n setXmode: function(k) {\n (new g()).setURI(\"/ajax/intl/save_xmode.php\").setData({\n xmode: k\n }).setHandler(function() {\n document.location.reload();\n }).send();\n },\n setAmode: function(k) {\n new g().setURI(\"/ajax/intl/save_xmode.php\").setData({\n amode: k,\n app: false\n }).setHandler(function() {\n document.location.reload();\n }).send();\n },\n setLocale: function(k, l, m, n) {\n if (!m) {\n m = k.options[k.selectedIndex].value;\n };\n j.saveLocale(m, true, null, l, n);\n },\n saveLocale: function(k, l, m, n, o) {\n new g().setURI(\"/ajax/intl/save_locale.php\").setData({\n aloc: k,\n source: n,\n app_only: o\n }).setHandler(function(p) {\n if (l) {\n document.location.reload();\n }\n else i(m);\n ;\n }).send();\n },\n setLocaleCookie: function(k, l) {\n h.set(\"locale\", k, ((7 * 24) * 3600000));\n i(l);\n }\n };\n e.exports = j;\n});\n__d(\"legacy:intl-base\", [\"IntlUtils\",], function(a, b, c, d) {\n var e = b(\"IntlUtils\");\n a.intl_set_xmode = e.setXmode;\n a.intl_set_amode = e.setAmode;\n a.intl_set_locale = e.setLocale;\n a.intl_save_locale = e.saveLocale;\n a.intl_set_cookie_locale = e.setLocaleCookie;\n}, 3);\n__d(\"legacy:onload-action\", [\"OnloadHooks\",], function(a, b, c, d) {\n var e = b(\"OnloadHooks\");\n a._onloadHook = e._onloadHook;\n a._onafterloadHook = e._onafterloadHook;\n a.runHook = e.runHook;\n a.runHooks = e.runHooks;\n a.keep_window_set_as_loaded = e.keepWindowSetAsLoaded;\n}, 3);\n__d(\"LoginFormController\", [\"Event\",\"ge\",\"Button\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"ge\"), i = b(\"Button\");\n f.init = function(j, k) {\n g.listen(j, \"submit\", function() {\n i.setEnabled(k, false);\n i.setEnabled.curry(k, true).defer(15000);\n });\n var l = h(\"lgnjs\");\n if (l) {\n l.value = parseInt((Date.now() / 1000), 10);\n };\n };\n});\n__d(\"ClickRefUtils\", [], function(a, b, c, d, e, f) {\n var g = {\n get_intern_ref: function(h) {\n if (!!h) {\n var i = {\n profile_minifeed: 1,\n gb_content_and_toolbar: 1,\n gb_muffin_area: 1,\n ego: 1,\n bookmarks_menu: 1,\n jewelBoxNotif: 1,\n jewelNotif: 1,\n BeeperBox: 1,\n navSearch: 1\n };\n for (var j = h; (j && (j != document.body)); j = j.parentNode) {\n if ((!j.id || (typeof j.id !== \"string\"))) {\n continue;\n };\n if ((j.id.substr(0, 8) == \"pagelet_\")) {\n return j.id.substr(8)\n };\n if ((j.id.substr(0, 8) == \"box_app_\")) {\n return j.id\n };\n if (i[j.id]) {\n return j.id\n };\n };\n }\n ;\n return \"-\";\n },\n get_href: function(h) {\n var i = (((((h.getAttribute && ((h.getAttribute(\"ajaxify\") || h.getAttribute(\"data-endpoint\")))) || h.action) || h.href) || h.name));\n return ((typeof i === \"string\") ? i : null);\n },\n should_report: function(h, i) {\n if ((i == \"FORCE\")) {\n return true\n };\n if ((i == \"INDIRECT\")) {\n return false\n };\n return (h && ((g.get_href(h) || ((h.getAttribute && h.getAttribute(\"data-ft\"))))));\n }\n };\n e.exports = g;\n});\n__d(\"setUECookie\", [\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\");\n function h(i) {\n if (!g.no_cookies) {\n document.cookie = (((\"act=\" + encodeURIComponent(i)) + \"; path=/; domain=\") + window.location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\"));\n };\n };\n e.exports = h;\n});\n__d(\"ClickRefLogger\", [\"Arbiter\",\"EagleEye\",\"ClickRefUtils\",\"collectDataAttributes\",\"copyProperties\",\"ge\",\"setUECookie\",\"$\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"EagleEye\"), i = b(\"ClickRefUtils\"), j = b(\"collectDataAttributes\"), k = b(\"copyProperties\"), l = b(\"ge\"), m = b(\"setUECookie\"), n = b(\"$\");\n function o(q) {\n if (!l(\"content\")) {\n return [0,0,0,0,]\n };\n var r = n(\"content\"), s = (a.Vector2 ? a.Vector2.getEventPosition(q) : {\n x: 0,\n y: 0\n });\n return [s.x,s.y,r.offsetLeft,r.clientWidth,];\n };\n function p(q, r, event, s) {\n var t = ((!a.ArbiterMonitor) ? \"r\" : \"a\"), u = [0,0,0,0,], v, w, x;\n if (!!event) {\n v = event.type;\n if (((v == \"click\") && l(\"content\"))) {\n u = o(event);\n };\n var y = 0;\n (event.ctrlKey && (y += 1));\n (event.shiftKey && (y += 2));\n (event.altKey && (y += 4));\n (event.metaKey && (y += 8));\n if (y) {\n v += y;\n };\n }\n ;\n if (!!r) {\n w = i.get_href(r);\n };\n var z = [];\n if (a.ArbiterMonitor) {\n x = a.ArbiterMonitor.getInternRef(r);\n z = a.ArbiterMonitor.getActFields();\n }\n ;\n var aa = j((!!event ? ((event.target || event.srcElement)) : r), [\"ft\",\"gt\",]);\n k(aa.ft, (s.ft || {\n }));\n k(aa.gt, (s.gt || {\n }));\n if ((typeof (aa.ft.ei) === \"string\")) {\n delete aa.ft.ei;\n };\n var ba = [q._ue_ts,q._ue_count,(w || \"-\"),q._context,(v || \"-\"),(x || i.get_intern_ref(r)),t,(a.URI ? a.URI.getRequestURI(true, true).getUnqualifiedURI().toString() : ((location.pathname + location.search) + location.hash)),aa,].concat(u).concat(z);\n return ba;\n };\n g.subscribe(\"ClickRefAction/new\", function(q, r) {\n if (i.should_report(r.node, r.mode)) {\n var s = p(r.cfa, r.node, r.event, r.extra_data);\n m(r.cfa.ue);\n h.log(\"act\", s);\n if (window.chromePerfExtension) {\n window.postMessage({\n clickRef: JSON.stringify(s)\n }, window.location.origin);\n };\n }\n ;\n });\n});\n__d(\"QuicklingAugmenter\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = [], i = {\n addHandler: function(j) {\n h.push(j);\n },\n augmentURI: function(j) {\n var k = [], l = g(j);\n h.forEach(function(m) {\n var n = m(l);\n if (!n) {\n return l\n };\n k.push(m);\n l = l.addQueryData(n);\n });\n h = k;\n return l;\n }\n };\n e.exports = i;\n});\n__d(\"Quickling\", [\"AjaxPipeRequest\",\"Arbiter\",\"Class\",\"CSSClassTransition\",\"DocumentTitle\",\"DOM\",\"ErrorUtils\",\"HTML\",\"OnloadHooks\",\"PageTransitions\",\"QuicklingAugmenter\",\"Run\",\"URI\",\"UserAgent\",\"copyProperties\",\"goOrReplace\",\"isEmpty\",\"QuicklingConfig\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxPipeRequest\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSSClassTransition\"), k = b(\"DocumentTitle\"), l = b(\"DOM\"), m = b(\"ErrorUtils\"), n = b(\"HTML\"), o = b(\"OnloadHooks\"), p = b(\"PageTransitions\"), q = b(\"QuicklingAugmenter\"), r = b(\"Run\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"copyProperties\"), v = b(\"goOrReplace\"), w = b(\"isEmpty\"), x = b(\"QuicklingConfig\"), y = x.version, z = x.sessionLength, aa = new RegExp(x.inactivePageRegex), ba = 0, ca, da = \"\", ea = {\n isActive: function() {\n return true;\n },\n isPageActive: function(la) {\n if ((la == \"#\")) {\n return false\n };\n la = new s(la);\n if ((la.getDomain() && (la.getDomain() != s().getDomain()))) {\n return false\n };\n if ((la.getPath() == \"/l.php\")) {\n var ma = la.getQueryData().u;\n if (ma) {\n ma = s(unescape(ma)).getDomain();\n if ((ma && (ma != s().getDomain()))) {\n return false\n };\n }\n ;\n }\n ;\n var na = la.getPath(), oa = la.getQueryData();\n if (!w(oa)) {\n na += (\"?\" + s.implodeQuery(oa));\n };\n return !aa.test(na);\n },\n getLoadCount: function() {\n return ba;\n }\n };\n function fa(la) {\n la = (la || \"Facebook\");\n k.set(la);\n if (t.ie()) {\n da = la;\n if (!ca) {\n ca = window.setInterval(function() {\n var ma = da, na = k.get();\n if ((ma != na)) {\n k.set(ma);\n };\n }, 5000, false);\n };\n }\n ;\n };\n function ga(la) {\n var ma = document.getElementsByTagName(\"link\");\n for (var na = 0; (na < ma.length); ++na) {\n if ((ma[na].rel != \"alternate\")) {\n continue;\n };\n l.remove(ma[na]);\n };\n if (la.length) {\n var oa = l.find(document, \"head\");\n (oa && l.appendContent(oa, n(la[0])));\n }\n ;\n };\n function ha(la) {\n var ma = {\n version: y\n };\n this.parent.construct(this, la, {\n quickling: ma\n });\n };\n i.extend(ha, g);\n u(ha.prototype, {\n _preBootloadFirstResponse: function(la) {\n return true;\n },\n _fireDomContentCallback: function() {\n (this._request.cavalry && this._request.cavalry.setTimeStamp(\"t_domcontent\"));\n p.transitionComplete();\n (this._onPageDisplayed && this._onPageDisplayed(this.pipe));\n this.parent._fireDomContentCallback();\n },\n _fireOnloadCallback: function() {\n if (this._request.cavalry) {\n this._request.cavalry.setTimeStamp(\"t_hooks\");\n this._request.cavalry.setTimeStamp(\"t_layout\");\n this._request.cavalry.setTimeStamp(\"t_onload\");\n }\n ;\n this.parent._fireOnloadCallback();\n },\n isPageActive: function(la) {\n return ea.isPageActive(la);\n },\n _versionCheck: function(la) {\n if ((la.version == y)) {\n return true\n };\n var ma = [\"quickling\",\"ajaxpipe\",\"ajaxpipe_token\",];\n v(window.location, s(la.uri).removeQueryData(ma), true);\n return false;\n },\n _processFirstResponse: function(la) {\n var ma = la.getPayload();\n fa(ma.title);\n ga((ma.syndication || []));\n window.scrollTo(0, 0);\n j.go(document.body, (ma.body_class || \"\"), p.getMostRecentURI(), la.getRequest().getURI());\n h.inform(\"quickling/response\");\n },\n getSanitizedParameters: function() {\n return [\"quickling\",];\n }\n });\n function ia() {\n ba++;\n return (ba >= z);\n };\n function ja(la) {\n g.setCurrentRequest(null);\n if (ia()) {\n return false\n };\n la = q.augmentURI(la);\n if (!ea.isPageActive(la)) {\n return false\n };\n window.ExitTime = Date.now();\n r.__removeHook(\"onafterloadhooks\");\n r.__removeHook(\"onloadhooks\");\n o.runHooks(\"onleavehooks\");\n h.inform(\"onload/exit\", true);\n new ha(la).setCanvasId(\"content\").send();\n return true;\n };\n function ka(la) {\n var ma = window[la];\n function na(oa, pa, qa) {\n if ((typeof oa !== \"function\")) {\n oa = eval.bind(null, oa);\n };\n var ra = ma(m.guard(oa), pa);\n if ((pa > 0)) {\n if ((qa !== false)) {\n r.onLeave(function() {\n clearInterval(ra);\n });\n }\n };\n return ra;\n };\n window[la] = na;\n };\n r.onAfterLoad(function la() {\n ka(\"setInterval\");\n ka(\"setTimeout\");\n p.registerHandler(ja, 1);\n });\n e.exports = a.Quickling = ea;\n});\n__d(\"ScubaSample\", [\"Banzai\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = \"scuba_sample\", h = b(\"Banzai\"), i = b(\"copyProperties\");\n function j(m, n, o) {\n this.fields = {\n };\n this.flush = function() {\n if (!m) {\n return\n };\n var p = {\n };\n i(p, this.fields);\n p._ds = m;\n if (n) {\n p._lid = n;\n };\n p._options = o;\n h.post(g, p);\n this.flush = function() {\n \n };\n this.flushed = true;\n };\n this.lid = n;\n return this;\n };\n function k(m, n, o) {\n if (!this.fields[m]) {\n this.fields[m] = {\n };\n };\n this.fields[m][n] = o;\n return this;\n };\n function l(m) {\n return function(n, o) {\n if (this.flushed) {\n return this\n };\n return k.call(this, m, n, o);\n };\n };\n i(j.prototype, {\n addNormal: l(\"normal\"),\n addInteger: l(\"int\"),\n addDenorm: l(\"denorm\")\n });\n e.exports = j;\n});\n__d(\"ScriptMonitorReporter\", [\"ScriptMonitor\",\"ScubaSample\",\"setTimeoutAcrossTransitions\",\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"ScriptMonitor\"), h = b(\"ScubaSample\"), i = b(\"setTimeoutAcrossTransitions\"), j = b(\"URI\");\n function k(o) {\n var p = [];\n for (var q = 0; (q < o.length); q++) {\n p.push(new RegExp(o[q], \"i\"));;\n };\n return p;\n };\n function l(o, p) {\n for (var q = 0; (q < p.length); q++) {\n if (p[q].src) {\n o.push(p[q].src);\n };\n };\n };\n function m(o, p) {\n for (var q = 0; (q < p.length); q++) {\n if (p[q].test(o)) {\n return true\n };\n };\n return false;\n };\n function n(o, p) {\n var q = g.stop(), r = {\n addGeoFields: 1,\n addBrowserFields: 1,\n addUser: 1\n }, s = {\n };\n l(q, document.getElementsByTagName(\"script\"));\n l(q, document.getElementsByTagName(\"iframe\"));\n for (var t = 0; (t < q.length); t++) {\n var u = q[t].replace(/\\?.*/, \"\"), v;\n if (s[u]) {\n continue;\n };\n s[u] = 1;\n if (!j.isValidURI(u)) {\n v = true;\n }\n else if (m(u, p)) {\n v = false;\n }\n else if (m(new j(u).getDomain(), o)) {\n v = false;\n }\n else v = true;\n \n \n ;\n if (v) {\n new h(\"unknown_scripts\", 0, r).addNormal(\"url\", u).flush();\n };\n };\n };\n e.exports = {\n runScan: function(o, p) {\n i(function() {\n n(k(o), k(p));\n }, 5000);\n }\n };\n});\n__d(\"StringTransformations\", [], function(a, b, c, d, e, f) {\n e.exports = {\n unicodeEscape: function(g) {\n return g.replace(/[^A-Za-z0-9\\-\\.\\:\\_\\$\\/\\+\\=]/g, function(h) {\n var i = h.charCodeAt().toString(16);\n return (\"\\\\u\" + ((\"0000\" + i.toUpperCase())).slice(-4));\n });\n },\n unicodeUnescape: function(g) {\n return g.replace(/(\\\\u[0-9A-Fa-f]{4})/g, function(h) {\n return String.fromCharCode(parseInt(h.slice(2), 16));\n });\n }\n };\n});\n__d(\"TimeSpentLogger\", [\"Arbiter\",\"Banzai\",\"CSS\",\"ClickRefUtils\",\"DOMEventListener\",\"ScriptPath\",\"UserActivity\",\"collectDataAttributes\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"CSS\"), j = b(\"ClickRefUtils\"), k = b(\"DOMEventListener\"), l = b(\"ScriptPath\"), m = b(\"UserActivity\"), n = b(\"collectDataAttributes\"), o = b(\"copyProperties\"), p = [m.getLastInformTime(),0,], q = m.getLastInformTime(), r = {\n tos_seq: 0,\n tos_cumulative: 0,\n transport_cause: null,\n buenopath: null,\n page_token: null,\n elements: 0,\n uact_tos: null,\n client_time: null\n }, s = 100, t = 100, u = (10 * 1000), v = (3 * 1000), w = 1, x = 2, y = 4, z = 8, aa = {\n };\n m.subscribe(function(ia, ja) {\n var ka = (p.length - 1);\n q = ja.last_inform;\n if ((ja.idleness < v)) {\n p[ka] += ja.idleness;\n r.tos_cumulative += ja.idleness;\n }\n else {\n if ((ka > s)) {\n fa(\"array_limit_reached\");\n };\n p.push(ja.idleness, 0);\n }\n ;\n });\n function ba(ia) {\n var ja = 0;\n if (document.getElementById(\"boulder_fixed_header\")) {\n ja = (ja | w);\n };\n if (i.hasClass(document.body, \"timelineLayout\")) {\n ja = (ja | y);\n var ka = document.getElementById(\"pagelet_main_column_personal\");\n if ((ka && (ka.getAttribute(\"data-referrer\") === \"pagelet_main_column_personal_timeline\"))) {\n ja = (ja | x);\n };\n if (i.hasClass(document.body, \"pagesTimelineLayout\")) {\n ja = (ja | z);\n };\n }\n ;\n return ja;\n };\n function ca(ia) {\n var ja = ba(), ka = l.getScriptPath(), la = l.getCategoryToken();\n r.uact_tos = p;\n if (ka) {\n r.buenopath = ka.substring(0, t);\n }\n else r.buenopath = \"\";\n ;\n if (la) {\n r.page_token = la;\n }\n else r.page_token = \"\";\n ;\n r.elements = ja;\n r.transport_cause = ia;\n r.client_time = Date.now();\n };\n function da() {\n r.tos_seq += 1;\n p = [q,0,];\n };\n var ea = {\n store: true,\n delay: 3000,\n retry: true\n };\n function fa(ia) {\n ca(ia);\n if (h.isEnabled(\"time_spent\")) {\n g.inform(\"timespent/tosdataposted\", o({\n }, r));\n h.post(\"time_spent\", o({\n }, r), ea);\n }\n ;\n da();\n };\n function ga() {\n fa(\"heartbeat\");\n };\n function ha() {\n fa(\"before_unload\");\n };\n if ((window.top == window.self)) {\n k.add(window, \"beforeunload\", ha);\n setInterval(function() {\n if ((((Date.now() - m.getLastInformTime()) > ((u - 100))) && (((p.length > 2) || (p[(p.length - 1)] > 0))))) {\n ga();\n };\n }, u);\n }\n;\n g.subscribe(\"UserAction/new\", function(ia, ja) {\n if (j.should_report(ja.node, ja.mode)) {\n var ka = n(ja.node, [\"gt\",]), la = {\n iref: j.get_intern_ref(ja.node),\n gt_ref: ka.ref,\n nav_section: ka.nav_section\n };\n ca(\"useraction\");\n o(la, r);\n ja.ua.add_data(la);\n g.inform(\"timespent/tosdataposted\", o({\n }, r));\n da();\n }\n ;\n });\n e.exports = aa;\n});\n__d(\"UserActionHistory\", [\"Arbiter\",\"ClickRefUtils\",\"ScriptPath\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ClickRefUtils\"), i = b(\"ScriptPath\"), j = b(\"throttle\"), k = {\n click: 1,\n submit: 1\n }, l = false, m = {\n log: [],\n len: 0\n }, n = j.acrossTransitions(function() {\n try {\n l._ua_log = JSON.stringify(m);\n } catch (q) {\n l = false;\n };\n }, 1000);\n function o() {\n try {\n if (a.sessionStorage) {\n l = a.sessionStorage;\n (l._ua_log && (m = JSON.parse(l._ua_log)));\n }\n ;\n } catch (q) {\n l = false;\n };\n m.log[(m.len % 10)] = {\n ts: Date.now(),\n path: \"-\",\n index: m.len,\n type: \"init\",\n iref: \"-\"\n };\n m.len++;\n g.subscribe(\"UserAction/new\", function(r, s) {\n var t = s.ua, u = s.node, event = s.event;\n if ((!event || !((event.type in k)))) {\n return\n };\n var v = {\n path: i.getScriptPath(),\n type: event.type,\n ts: t._ue_ts,\n iref: (h.get_intern_ref(u) || \"-\"),\n index: m.len\n };\n m.log[(m.len++ % 10)] = v;\n (l && n());\n });\n };\n function p() {\n return m.log.sort(function(q, r) {\n return (((r.ts != q.ts)) ? ((r.ts - q.ts)) : ((r.index - q.index)));\n });\n };\n o();\n e.exports = {\n getHistory: p\n };\n});\n__d(\"clip\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n return Math.min(Math.max(h, i), j);\n };\n e.exports = g;\n});\n__d(\"MusicButtonStore\", [], function(a, b, c, d, e, f) {\n var g = {\n }, h = {\n addButton: function(i, j) {\n g[i] = j;\n return j;\n },\n getButton: function(i) {\n return g[i];\n },\n getButtons: function() {\n return g;\n },\n removeButton: function(i) {\n (g[i] && g[i].resetLoadingTimers());\n delete g[i];\n }\n };\n e.exports = h;\n});\n__d(\"MusicConstants\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n DEBUG: false,\n LIVE_LISTEN_MIN_SPOTIFY_VERSION: \"spotify-0.6.6.0.g5a9eaca5\",\n enableDebug: function() {\n this.DEBUG = true;\n },\n sameURLs: function(i, j) {\n var k = /\\/$/;\n if ((i && j)) {\n i = g(i);\n j = g(j);\n return ((i.getDomain() == j.getDomain()) && (i.getPath() == j.getPath()));\n }\n ;\n return false;\n },\n greaterOrEqualToMinimumVersion: function(i, j) {\n var k = /(?:\\d+\\.)+/, l = i.match(k)[0].split(\".\").slice(0, -1), m = j.match(k)[0].split(\".\").slice(0, -1);\n if ((l.length !== m.length)) {\n return false\n };\n for (var n = 0; (n < m.length); n++) {\n if ((+l[n] < +m[n])) {\n return false;\n }\n else if ((+l[n] > +m[n])) {\n return true\n }\n ;\n };\n return true;\n },\n sanitizeForProviders: function(i) {\n var j = {\n };\n for (var k in i) {\n if (this.ALLOWED_EXTERNAL_CONTEXT_PARAMS[k]) {\n j[k] = i[k];\n };\n };\n return j;\n },\n OP: {\n RESUME: \"RESUME\",\n PAUSE: \"PAUSE\",\n PLAY: \"PLAY\",\n VERSION: \"VERSION\"\n },\n STATUS_CHANGE_OP: {\n STATUS: \"STATUS\",\n LOGIN: \"LOGIN\",\n REINFORM: \"REINFORM\"\n },\n STATUS_CHANGE_EVENT: {\n playing: \"PLAY_STATE_CHANGED\",\n track: \"TRACK_CHANGED\"\n },\n DIAGNOSTIC_EVENT: {\n ALL_PAUSED: \"ALL_PAUSED\",\n ALL_OFFLINE: \"ALL_OFFLINE\",\n OFFLINE: \"OFFLINE\",\n ONLINE: \"ONLINE\",\n SEARCHING: \"SEARCHING\",\n HIT: \"HIT\",\n MISS: \"MISS\",\n RESIGN: \"RESIGN\",\n IFRAME_POLLING: \"IFRAME_POLLING\",\n RELAUNCH: \"RELAUNCH\",\n STATE_CHANGE: \"STATE_CHANGE\",\n WRONG_VERSION: \"WRONG_VERSION\",\n SERVICE_ERROR: \"SERVICE_ERROR\",\n INCORRECT_ONLINE_STATE: \"INCORRECT_ONLINE_STATE\",\n LOG_SEND_OP: \"LOG_SEND_OP\",\n REQUEUE_OP: \"REQUEUE_OP\"\n },\n ALLOWED_STATUS_PARAMS: {\n playing: \"playing\",\n track: \"track\",\n context: \"context\",\n client_version: \"client_version\",\n start_time: \"start_time\",\n expires_in: \"expires_in\",\n open_graph_state: \"open_graph_state\"\n },\n ALLOWED_EXTERNAL_CONTEXT_PARAMS: {\n uri: true,\n song: true,\n radio_station: true,\n album: true,\n playlist: true,\n musician: true,\n song_list: true,\n offset: true,\n title: true,\n request_id: true,\n listen_with_friends: true,\n needs_tos: true\n },\n LIVE_LISTEN_OP: {\n NOW_LEADING: \"NOW_LEADING\",\n NOW_LISTENING: \"NOW_LISTENING\",\n END_SESSION: \"END_SESSION\",\n SONG_PLAYING: \"SONG_PLAYING\",\n LISTENER_UPDATE: \"LISTENER_UPDATE\",\n QUEUE_SESSION: \"QUEUE_SESSION\",\n PLAY_ERROR: \"PLAY_ERROR\",\n SESSION_UPDATED: \"SESSION_UPDATED\",\n QUEUING_SESSION: \"QUEUING_SESSION\"\n },\n MUSIC_BUTTON: {\n ACTIVATE: \"ACTIVATE\"\n },\n ERROR: {\n 1: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM\",\n 2: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM_OR_WAIT\",\n 3: \"SERVICE_UNAVAILABLE_BILLING_ISSUE\",\n 4: \"SERVICE_UNAVAILABLE_TECHNICAL_ISSUE\",\n 5: \"AUDIO_AD_PLAYING\",\n 99: \"SERVICE_TEMPORARILY_UNAVAILABLE\",\n 101: \"SONG_UNAVAILABLE_WITHOUT_PURCHASE\",\n 102: \"SONG_UNAVAILABLE_WITHOUT_PREMIUM\",\n 103: \"SONG_UNAVAILABLE_INDEFINITELY\"\n }\n };\n e.exports = (a.MusicConstants || h);\n});\n__d(\"MusicEvents\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\");\n e.exports = a.MusicEvents = new g();\n});\n__d(\"MusicButton\", [\"BanzaiODS\",\"Bootloader\",\"copyProperties\",\"CSS\",\"DOM\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"ScubaSample\",\"Tooltip\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"BanzaiODS\"), h = b(\"Bootloader\"), i = b(\"copyProperties\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"ScubaSample\"), q = b(\"Tooltip\"), r = b(\"cx\"), s = function(t, u, v, w, x, y) {\n this.provider = t;\n this.buttonElem = u;\n this.url = v;\n this.context = (w || {\n });\n this.mediaType = x;\n this.setState(this.STATES.OFFLINE);\n this.tooltip = (y || \"\");\n n.subscribe(m.MUSIC_BUTTON.ACTIVATE, this.processClick.bind(this));\n };\n i(s, {\n tracksetableTypes: []\n });\n i(s.prototype, {\n SHOW_LOADING_TIMEOUT: 500,\n HIDE_LOADING_TIMEOUT: 4000,\n RECENTLY_ONLINE_TIMEOUT: 6000,\n STATES: {\n PLAYING: \"music_playing\",\n PAUSED: \"music_paused\",\n LOADING: \"music_loading\",\n DISABLED: \"music_disabled\",\n OFFLINE: \"music_offline\"\n },\n setState: function(t) {\n if ((t !== this.STATES.LOADING)) {\n this.resetLoadingTimers();\n this.previousState = (this.state || t);\n }\n ;\n if ((t === this.STATES.PLAYING)) {\n q.set(this.buttonElem, this.tooltip);\n }\n else q.set(this.buttonElem, \"\");\n ;\n var u = this.buttonElem.parentNode;\n (this.state && j.removeClass(u, this.state));\n this.state = t;\n j.addClass(u, this.state);\n },\n isTracksetable: function(t) {\n return (s.tracksetableTypes.indexOf(this.mediaType) !== -1);\n },\n handleIncomingEvent: function(t, u) {\n clearTimeout(this._showLoadingTimer);\n if (((u && u.provider) && (u.provider != this.provider))) {\n return\n };\n switch (t) {\n case m.DIAGNOSTIC_EVENT.ONLINE:\n \n case m.STATUS_CHANGE_EVENT.track:\n \n case m.STATUS_CHANGE_EVENT.playing:\n var v = ((u && u.track) && u.track.uri), w = ((u && u.context) && u.context.uri);\n if (((u && u.playing) && ((m.sameURLs(v, this.url) || m.sameURLs(w, this.url))))) {\n this.setState(this.STATES.PLAYING);\n }\n else if (((this.state === this.STATES.LOADING) && (((this.previousState === this.STATES.PAUSED) || (this.previousState === this.STATES.OFFLINE))))) {\n clearTimeout(this._attemptingPlayTimer);\n this._attemptingPlayTimer = this.setState.bind(this, this.STATES.PAUSED).defer(this.RECENTLY_ONLINE_TIMEOUT, false);\n }\n else if (!this._attemptingPlayTimer) {\n this.setState(this.STATES.PAUSED);\n }\n \n ;\n break;\n case m.DIAGNOSTIC_EVENT.OFFLINE:\n this.setState(this.STATES.OFFLINE);\n break;\n case m.DIAGNOSTIC_EVENT.ALL_OFFLINE:\n this.setState(this.STATES.OFFLINE);\n break;\n };\n },\n processClick: function(t, u) {\n if ((u != this.buttonElem)) {\n if ((this.state === this.STATES.LOADING)) {\n (this.previousState && this.setState(this.previousState));\n };\n return;\n }\n ;\n var v = new p(\"music_play_button_click\", null, {\n addBrowserFields: true,\n addGeoFields: true,\n addUser: true\n });\n v.addNormal(\"uses_bridge\", \"1\");\n v.addNormal(\"state\", this.state);\n v.addNormal(\"provider\", this.provider);\n v.addNormal(\"class\", \"MusicButton\");\n v.addDenorm(\"url\", this.url);\n v.flush();\n if ((this.state != this.STATES.PLAYING)) {\n g.bumpEntityKey(\"music_play_button\", \"music_play_button_click\");\n g.bumpEntityKey(\"music_play_button\", (\"music_play_button_click.\" + this.provider));\n var w = o.byClass(this.buttonElem, \"_4--s\");\n if (w) {\n j.addClass(w, \"_4--t\");\n j.removeClass.curry(w, \"_4--t\").defer(3000);\n }\n ;\n }\n ;\n var x = (this.isTracksetable() && o.byClass(this.buttonElem, \"music_trackset_container\")), y = [];\n if (x) {\n var z = x.getAttribute(\"data-trackset-title\"), aa = this.provider, ba = k.scry(x, \".music_button\");\n for (var ca = 0; (ca < ba.length); ca++) {\n var da = l.getButton([ba[ca].id,]);\n if (((da && (da.provider == aa)) && da.isTracksetable())) {\n y.push(da.url);\n };\n };\n }\n ;\n if (!a.Music) {\n this.showLoading(true);\n };\n h.loadModules([\"Music\",], function(ea) {\n var fa = (((x && (y.length > 1))) ? ea.playPauseSongList(this.provider, this.url, y, z, this.context) : ea.playPauseSong(this.provider, this.url, this.context));\n this.showLoading(!fa);\n }.bind(this));\n },\n showLoading: function(t) {\n this.resetLoadingTimers();\n this._hideLoadingTimer = this._timeout.bind(this, t).defer(this.HIDE_LOADING_TIMEOUT, false);\n this._showLoadingTimer = this.setState.bind(this, this.STATES.LOADING).defer(this.SHOW_LOADING_TIMEOUT, false);\n },\n resetLoadingTimers: function() {\n clearTimeout(this._hideLoadingTimer);\n clearTimeout(this._showLoadingTimer);\n clearTimeout(this._attemptingPlayTimer);\n this._attemptingPlayTimer = null;\n },\n destroy: function() {\n this.resetLoadingTimers();\n this.buttonElem = null;\n },\n _timeout: function(t) {\n (a.Music && a.Music.reInform([this.provider,]));\n if ((!t && (this.state === this.STATES.LOADING))) {\n this.setState(this.STATES.PAUSED);\n };\n }\n });\n e.exports = s;\n});\n__d(\"MusicButtonManager\", [\"Event\",\"DOM\",\"KeyedCallbackManager\",\"Layer\",\"MusicButton\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"$\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"DOM\"), i = b(\"KeyedCallbackManager\"), j = b(\"Layer\"), k = b(\"MusicButton\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"ge\"), s = new i(), t = null, u = {\n }, v = 0;\n function w(da) {\n var ea = da.getTarget(), fa = o.byClass(ea, \"music_button\");\n fa = (fa || ((!((da.getModifiers && da.getModifiers().any)) && x(ea))));\n if (!fa) {\n return\n };\n return y(fa, da);\n };\n function x(da) {\n var ea = (o.byClass(da, \"music_button_trigger\") && o.byClass(da, \"music_button_trigger_group\"));\n if (ea) {\n var fa = h.scry(ea, \".music_button\");\n if (fa.length) {\n return fa[0]\n };\n }\n ;\n return null;\n };\n function y(da, event) {\n (event && event.stop());\n n.inform(m.MUSIC_BUTTON.ACTIVATE, da);\n return false;\n };\n function z(da) {\n (a.Music && a.Music.reInform(da));\n };\n function aa(da, ea) {\n var fa = l.getButtons();\n for (var ga in fa) {\n if ((fa[ga].noGC || r(ga))) {\n fa[ga].handleIncomingEvent(da, ea);\n }\n else l.removeButton(ga);\n ;\n };\n };\n var ba = {\n init: function(da) {\n if (t) {\n return\n };\n t = true;\n k.tracksetableTypes = (da || []);\n g.listen(document.body, \"click\", w);\n n.subscribe([m.STATUS_CHANGE_EVENT.playing,m.STATUS_CHANGE_EVENT.track,m.DIAGNOSTIC_EVENT.OFFLINE,m.DIAGNOSTIC_EVENT.ALL_OFFLINE,m.DIAGNOSTIC_EVENT.ONLINE,], aa);\n },\n add: function(da, ea, fa, ga, ha, ia) {\n (t || ba.init());\n var ja = ea.id, ka = l.getButton(ja);\n if (ka) {\n return ka\n };\n ka = l.addButton(ja, new k(da, ea, fa, q({\n button_id: ja\n }, ga), ha, ia));\n var la = o.byClass(ea, \"uiOverlay\");\n if (la) {\n ka.noGC = true;\n var ma = j.subscribe(\"destroy\", function(na, oa) {\n if (h.contains(oa.getRoot(), ea)) {\n l.removeButton(ja);\n j.unsubscribe(ma);\n }\n ;\n });\n }\n ;\n if ((da && !u[da])) {\n u[da] = function() {\n var na = Object.keys(u);\n (na.length && z(na));\n u = {\n };\n }.defer();\n };\n return ka;\n },\n addButton: function(da, ea, fa, ga, ha, ia) {\n if (!r(ea)) {\n return\n };\n var ja = p(ea);\n return ba.add(da, ja, fa, ga, ha, ia);\n },\n asyncAddMusicButton: function(da, ea) {\n da.setAttribute(\"id\", (\"music_button_\" + v++));\n ca(da, ea);\n },\n tryAddButtonInDOM: function(da, ea) {\n var fa = r(da);\n (fa && ca(fa, ea));\n },\n addMusicData: function(da, ea, fa, ga, ha, ia) {\n s.setResource(da, {\n provider: ea,\n uri: fa,\n context: ga,\n media_type: ha,\n tooltip: ia\n });\n }\n };\n function ca(da, ea) {\n var fa = h.find(da, \"a.button_anchor\").getAttribute(\"href\");\n s.executeOrEnqueue(fa, function(ga) {\n return ba.add(ga.provider, da, ga.uri, ga.context, ga.media_type, (ea ? ga.tooltip : \"\"));\n });\n };\n e.exports = (a.MusicButtonManager || ba);\n});\n__d(\"TinyViewport\", [\"Arbiter\",\"CSS\",\"DOM\",\"Event\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Event\"), k = b(\"queryThenMutateDOM\"), l = document.documentElement, m, n, o = k.bind(null, function() {\n n = (n || i.getDocumentScrollElement());\n m = ((l.clientHeight < 400) || (l.clientWidth < n.scrollWidth));\n }, function() {\n h.conditionClass(l, \"tinyViewport\", m);\n h.conditionClass(l, \"canHaveFixedElements\", !m);\n }, \"TinyViewport\");\n o();\n g.subscribe(\"quickling/response\", o);\n j.listen(window, \"resize\", o);\n});\n__d(\"TimeSpentArray\", [\"Banzai\",\"pageID\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\"), h = b(\"pageID\"), i = 2, j = (i * 32), k = 1500, l, m, n, o, p, q, r, s, t;\n function u() {\n if (l) {\n var ca = Date.now();\n if ((ca > p)) {\n r = Math.min(j, Math.ceil((((ca / 1000)) - o)));\n };\n var da = z();\n if (da) {\n l(da);\n };\n }\n ;\n y();\n };\n function v() {\n w();\n m = setTimeout(u, ((n * 1000) + k), false);\n };\n function w() {\n if (m) {\n clearTimeout(m);\n m = null;\n }\n ;\n };\n function x(ca) {\n o = ca;\n p = (o * 1000);\n q = [1,];\n for (var da = 1; (da < i); da++) {\n q.push(0);;\n };\n r = 1;\n s += 1;\n t += 1;\n v();\n };\n function y() {\n w();\n q = null;\n n = j;\n };\n function z() {\n if (!q) {\n return null\n };\n return {\n tos_id: h,\n start_time: o,\n tos_array: q.slice(0),\n tos_len: r,\n tos_seq: t,\n tos_cum: s\n };\n };\n function aa(ca) {\n if (((ca >= p) && (((ca - p)) < 1000))) {\n return\n };\n ba(Math.floor((ca / 1000)));\n };\n function ba(ca) {\n var da = (ca - o);\n if (((da < 0) || (da >= j))) {\n u();\n };\n if (!q) {\n x(ca);\n }\n else {\n q[(da >> 5)] |= ((1 << ((da & 31))));\n r = (da + 1);\n s += 1;\n p = (ca * 1000);\n }\n ;\n };\n e.exports = {\n init: function(ca, da) {\n s = 0;\n t = -1;\n l = ca;\n n = (da || j);\n x(Math.floor((Date.now() / 1000)));\n g.subscribe(g.SHUTDOWN, u);\n },\n update: function(ca) {\n aa(ca);\n },\n get: function() {\n return z();\n },\n ship: function() {\n u();\n },\n reset: function() {\n y();\n }\n };\n});\n__d(\"WebStorageMonster\", [\"Event\",\"AsyncRequest\",\"UserActivity\",\"StringTransformations\",\"arrayContains\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"UserActivity\"), j = b(\"StringTransformations\"), k = b(\"arrayContains\"), l = b(\"setTimeoutAcrossTransitions\"), m = 300000, n = false;\n function o(t) {\n var u = {\n };\n for (var v in t) {\n var w = t.getItem(v), x = j.unicodeEscape(v);\n if ((typeof w === \"string\")) {\n u[x] = w.length;\n };\n };\n return u;\n };\n function p(t) {\n if ((a.localStorage && t.keys)) {\n s._getLocalStorageKeys().forEach(function(u) {\n if (k(t.keys, u)) {\n a.localStorage.removeItem(u);\n };\n });\n };\n };\n function q(t) {\n if (a.localStorage) {\n s._getLocalStorageKeys().forEach(function(u) {\n if (!t.some(function(v) {\n return new RegExp(v).test(u);\n })) {\n a.localStorage.removeItem(u);\n };\n });\n };\n if (a.sessionStorage) {\n a.sessionStorage.clear();\n };\n };\n function r(t) {\n if (i.isActive(m)) {\n l(r.curry(t), m);\n }\n else s.cleanNow(t);\n ;\n };\n var s = {\n registerLogoutForm: function(t, u) {\n g.listen(t, \"submit\", function(v) {\n s.cleanOnLogout(u);\n });\n },\n schedule: function(t) {\n if (n) {\n return\n };\n n = true;\n r(t);\n },\n cleanNow: function(t) {\n var u = Date.now(), v = {\n }, w = false;\n [\"localStorage\",\"sessionStorage\",].forEach(function(y) {\n if (a[y]) {\n v[y] = o(a[y]);\n w = true;\n }\n ;\n });\n var x = Date.now();\n v.logtime = (x - u);\n if (w) {\n new h(\"/ajax/webstorage/process_keys.php\").setData(v).setHandler(function(y) {\n if (!t) {\n var z = y.getPayload();\n if (z.keys) {\n z.keys = z.keys.map(j.unicodeUnescape);\n };\n p(z);\n }\n ;\n }.bind(this)).send();\n };\n },\n cleanOnLogout: function(t) {\n if (t) {\n q(t);\n };\n if (a.sessionStorage) {\n a.sessionStorage.clear();\n };\n },\n _getLocalStorageKeys: Object.keys.curry(a.localStorage)\n };\n e.exports = s;\n});");
// 1511
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"AsDOA\",]);\n}\n;\n;\n__d(\"AdblockDetector\", [], function(a, b, c, d, e, f) {\n var g = \"data-adblock-hash\", h = {\n }, i = 0;\n function j(k, l) {\n var m = k.getAttribute(g);\n if (!m) {\n m = ++i;\n k.setAttribute(g, m);\n }\n else if (h[m]) {\n JSBNG__clearTimeout(h[m]);\n h[m] = null;\n }\n \n ;\n ;\n h[m] = JSBNG__setTimeout(function() {\n h[m] = null;\n if (!k.offsetHeight) {\n var n = k, o = JSBNG__document.getElementsByTagName(\"body\")[0];\n while (((n && ((n !== o))))) {\n if (((((((((((n.style.display === \"none\")) || ((n.style.height === \"0px\")))) || ((n.style.height === 0)))) || ((n.style.height === \"0\")))) || ((n.childNodes.length === 0))))) {\n return;\n }\n ;\n ;\n n = n.parentNode;\n };\n ;\n if (((n === o))) {\n ((l && l(k)));\n }\n ;\n ;\n }\n ;\n ;\n }, 3000);\n };\n;\n f.assertUnblocked = j;\n});\n__d(\"EagleEye\", [\"Arbiter\",\"Env\",\"OnloadEvent\",\"isInIframe\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Env\"), i = b(\"OnloadEvent\"), j = b(\"isInIframe\"), k = ((h.eagleEyeConfig || {\n })), l = \"_e_\", m = ((window.JSBNG__name || \"\")).toString();\n if (((((m.length == 7)) && ((m.substr(0, 3) == l))))) {\n m = m.substr(3);\n }\n else {\n m = k.seed;\n if (!j()) {\n window.JSBNG__name = ((l + m));\n }\n ;\n ;\n }\n;\n;\n var n = ((((((window.JSBNG__location.protocol == \"https:\")) && JSBNG__document.cookie.match(/\\bcsm=1/))) ? \"; secure\" : \"\")), o = ((((l + m)) + \"_\")), p = new JSBNG__Date(((JSBNG__Date.now() + 604800000))).toGMTString(), q = window.JSBNG__location.hostname.replace(/^.*(facebook\\..*)$/i, \"$1\"), r = ((((((((\"; expires=\" + p)) + \";path=/; domain=\")) + q)) + n)), s = 0, t, u = ((k.JSBNG__sessionStorage && a.JSBNG__sessionStorage)), v = JSBNG__document.cookie.length, w = false, x = JSBNG__Date.now();\n function y(ca) {\n return ((((((((o + (s++))) + \"=\")) + encodeURIComponent(ca))) + r));\n };\n;\n function z() {\n var ca = [], da = false, ea = 0, fa = 0;\n this.isEmpty = function() {\n return !ca.length;\n };\n this.enqueue = function(ga, ha) {\n if (ha) {\n ca.unshift(ga);\n }\n else ca.push(ga);\n ;\n ;\n };\n this.dequeue = function() {\n ca.shift();\n };\n this.peek = function() {\n return ca[0];\n };\n this.clear = function(ga) {\n v = Math.min(v, JSBNG__document.cookie.length);\n if (((!w && ((((new JSBNG__Date() - x)) > 60000))))) {\n w = true;\n }\n ;\n ;\n var ha = ((!ga && ((JSBNG__document.cookie.search(l) >= 0)))), ia = !!h.cookie_header_limit, ja = ((h.cookie_count_limit || 19)), ka = ((h.cookie_header_limit || 3950)), la = ((ja - 5)), ma = ((ka - 1000));\n while (!this.isEmpty()) {\n var na = y(this.peek());\n if (((ia && ((((na.length > ka)) || ((w && ((((na.length + v)) > ka))))))))) {\n this.dequeue();\n continue;\n }\n ;\n ;\n if (((((ha || ia)) && ((((((JSBNG__document.cookie.length + na.length)) > ka)) || ((JSBNG__document.cookie.split(\";\").length > ja))))))) {\n break;\n }\n ;\n ;\n JSBNG__document.cookie = na;\n ha = true;\n this.dequeue();\n };\n ;\n var oa = JSBNG__Date.now();\n if (((ga || ((((((((!da && ha)) && ((((fa > 0)) && ((((Math.min(((10 * Math.pow(2, ((fa - 1))))), 60000) + ea)) < oa)))))) && g.query(i.ONLOAD))) && ((((!this.isEmpty() || ((JSBNG__document.cookie.length > ma)))) || ((JSBNG__document.cookie.split(\";\").length > la))))))))) {\n var pa = new JSBNG__Image(), qa = this, ra = ((h.tracking_domain || \"\"));\n da = true;\n pa.JSBNG__onload = function ua() {\n da = false;\n fa = 0;\n qa.clear();\n };\n pa.JSBNG__onerror = pa.JSBNG__onabort = function ua() {\n da = false;\n ea = JSBNG__Date.now();\n fa++;\n };\n var sa = ((h.fb_isb ? ((\"&fb_isb=\" + h.fb_isb)) : \"\")), ta = ((\"&__user=\" + h.user));\n pa.src = ((((((((((((((ra + \"/ajax/nectar.php?asyncSignal=\")) + ((Math.floor(((Math.JSBNG__random() * 10000))) + 1)))) + sa)) + ta)) + \"&\")) + ((!ga ? \"\" : \"s=\")))) + oa));\n }\n ;\n ;\n };\n };\n;\n t = new z();\n if (u) {\n var aa = function() {\n var ca = 0, da = ca;\n function ea() {\n var ha = JSBNG__sessionStorage.getItem(\"_e_ids\");\n if (ha) {\n var ia = ((ha + \"\")).split(\";\");\n if (((ia.length == 2))) {\n ca = parseInt(ia[0], 10);\n da = parseInt(ia[1], 10);\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n function fa() {\n var ha = ((((ca + \";\")) + da));\n JSBNG__sessionStorage.setItem(\"_e_ids\", ha);\n };\n ;\n function ga(ha) {\n return ((\"_e_\" + ((((ha !== undefined)) ? ha : ca++))));\n };\n ;\n this.isEmpty = function() {\n return ((da === ca));\n };\n this.enqueue = function(ha, ia) {\n var ja = ((ia ? ga(--da) : ga()));\n JSBNG__sessionStorage.setItem(ja, ha);\n fa();\n };\n this.dequeue = function() {\n this.isEmpty();\n JSBNG__sessionStorage.removeItem(ga(da));\n da++;\n fa();\n };\n this.peek = function() {\n var ha = JSBNG__sessionStorage.getItem(ga(da));\n return ((ha ? ((ha + \"\")) : ha));\n };\n this.clear = t.clear;\n ea();\n };\n t = new aa();\n }\n;\n;\n var ba = {\n log: function(ca, da, ea) {\n if (h.no_cookies) {\n return;\n }\n ;\n ;\n var fa = [m,JSBNG__Date.now(),ca,].concat(da);\n fa.push(fa.length);\n function ga() {\n var ha = JSON.stringify(fa);\n try {\n t.enqueue(ha, !!ea);\n t.clear(!!ea);\n } catch (ia) {\n if (((u && ((ia.code === 1000))))) {\n t = new z();\n u = false;\n ga();\n }\n ;\n ;\n };\n ;\n };\n ;\n ga();\n },\n getSessionID: function() {\n return m;\n }\n };\n e.exports = ba;\n a.EagleEye = ba;\n}, 3);\n__d(\"AdblockDetectorLogging\", [\"AdblockDetector\",\"EagleEye\",], function(a, b, c, d, e, f) {\n var g = b(\"AdblockDetector\"), h = b(\"EagleEye\");\n function i(j) {\n g.assertUnblocked(j, h.log.bind(h, \"ads\", {\n JSBNG__event: \"ads_blocked\"\n }));\n };\n;\n f.assertUnblocked = i;\n});\n__d(\"EgoAdsObjectSet\", [\"copyProperties\",\"csx\",\"DOM\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"csx\"), i = b(\"DOM\");\n function j() {\n this._allEgoUnits = [];\n this._egoUnits = [];\n };\n;\n g(j.prototype, {\n init: function(l) {\n this._allEgoUnits = l;\n this._egoUnits = [];\n this._allEgoUnits.forEach(function(m) {\n var n = k(m);\n if (((!n || !n.holdout))) {\n this._egoUnits.push(m);\n }\n ;\n ;\n }, this);\n },\n getCount: function() {\n return this._egoUnits.length;\n },\n forEach: function(l, m) {\n this._egoUnits.forEach(l, m);\n },\n getUnit: function(l) {\n return this._egoUnits[l];\n },\n getHoldoutAdIDsForSpace: function(l, m) {\n if (((!l || !m))) {\n return [];\n }\n ;\n ;\n var n = [];\n for (var o = 0; ((((l > 0)) && ((o < this._allEgoUnits.length)))); o++) {\n var p = this._allEgoUnits[o], q = m(p), r = k(p);\n if (((((((l >= q)) && r)) && r.holdout))) {\n n.push(r.adid);\n }\n ;\n ;\n l -= q;\n };\n ;\n return n;\n },\n getHoldoutAdIDsForNumAds: function(l) {\n l = Math.min(l, this._allEgoUnits.length);\n var m = [];\n for (var n = 0; ((n < l)); n++) {\n var o = this._allEgoUnits[n], p = k(o);\n if (((p && p.holdout))) {\n m.push(p.adid);\n }\n ;\n ;\n };\n ;\n return m;\n }\n });\n function k(l) {\n var m = i.scry(l, \"div._4u8\")[0], n = ((m && m.getAttribute(\"data-ad\")));\n return ((((n && JSON.parse(n))) || undefined));\n };\n;\n e.exports = j;\n});\n__d(\"EmuController\", [\"AsyncRequest\",\"DataStore\",\"URI\",\"copyProperties\",\"emptyFunction\",\"ge\",\"goURI\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"DataStore\"), i = b(\"URI\"), j = b(\"copyProperties\"), k = b(\"emptyFunction\"), l = b(\"ge\"), m = b(\"goURI\");\n function n(o, p) {\n var q = l(o);\n if (!q) {\n return null;\n }\n ;\n ;\n this.impression = p;\n this.containerId = o;\n h.set(q, \"emuController\", this);\n return this;\n };\n;\n j(n, {\n fromContainer: function(o) {\n var p = l(o);\n if (!p) {\n return null;\n }\n ;\n ;\n return h.get(p, \"emuController\");\n },\n getEventClass: function(o) {\n return ((\"emuEvent\" + String(o).trim()));\n }\n });\n j(n.prototype, {\n EVENT_HANDLER_PATH: \"/ajax/emu/end.php\",\n CLICK: 1,\n FAN: \"fad_fan\",\n JSBNG__event: function(o, p, q, r) {\n var s = {\n eid: this.impression,\n f: 0,\n ui: this.containerId,\n en: o,\n a: 1\n };\n if (p) {\n s.ed = JSON.stringify(p);\n }\n ;\n ;\n if (!r) {\n r = k;\n }\n ;\n ;\n var t = new g().setURI(this.EVENT_HANDLER_PATH).setData(s).setErrorHandler(r);\n if (q) {\n t.setHandler(q);\n }\n ;\n ;\n t.send();\n },\n redirect: function() {\n var o = {\n eid: this.impression,\n f: 0,\n ui: this.containerId,\n en: this.CLICK,\n a: 0,\n sig: ((Math.floor(((Math.JSBNG__random() * 65535))) + 65536))\n }, p = new i(this.EVENT_HANDLER_PATH);\n p.setQueryData(o);\n m(p);\n }\n });\n e.exports = n;\n});\n__d(\"legacy:ad-units-base-js\", [\"EmuController\",], function(a, b, c, d) {\n a.EmuController = b(\"EmuController\");\n}, 3);\n__d(\"ChatConfig\", [\"ChatConfigInitialData\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ChatConfigInitialData\"), h = b(\"copyProperties\"), i = {\n }, j = {\n get: function(k, l) {\n return ((((k in i)) ? i[k] : l));\n },\n set: function(k) {\n if (((arguments.length > 1))) {\n var l = {\n };\n l[k] = arguments[1];\n k = l;\n }\n ;\n ;\n h(i, k);\n },\n getDebugInfo: function() {\n return i;\n }\n };\n j.set(g);\n e.exports = j;\n});\n__d(\"JSBNG__cancelAnimationFrame\", [], function(a, b, c, d, e, f) {\n var g = ((((((((((a.JSBNG__cancelAnimationFrame || a.JSBNG__webkitCancelAnimationFrame)) || a.JSBNG__mozCancelAnimationFrame)) || a.oCancelAnimationFrame)) || a.msCancelAnimationFrame)) || a.JSBNG__clearTimeout));\n e.exports = g;\n});\n__d(\"XUISpinner.react\", [\"BrowserSupport\",\"ReactProps\",\"React\",\"JSBNG__cancelAnimationFrame\",\"cx\",\"joinClasses\",\"JSBNG__requestAnimationFrame\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"BrowserSupport\"), h = b(\"ReactProps\"), i = b(\"React\"), j = b(\"JSBNG__cancelAnimationFrame\"), k = b(\"cx\"), l = b(\"joinClasses\"), m = b(\"JSBNG__requestAnimationFrame\"), n = b(\"tx\"), o = g.hasCSSAnimations(), p = {\n SMALL: 16,\n LARGE: 32\n }, q = {\n SMALL: 2,\n LARGE: 4\n }, r = 5, s = 8, t = ((r * s)), u = 1200, v = ((u / t)), w = i.createClass({\n displayName: \"XUISpinner\",\n props: {\n size: h.oneOf([\"small\",\"large\",]),\n background: h.oneOf([\"light\",\"dark\",])\n },\n getDefaultProps: function() {\n return {\n size: \"small\",\n background: \"light\"\n };\n },\n getInitialState: function() {\n if (!o) {\n return {\n frame: 0,\n timer: JSBNG__Date.now()\n };\n }\n ;\n ;\n },\n componentDidMount: function() {\n if (!o) {\n this._step();\n }\n ;\n ;\n },\n componentWillUnmount: function() {\n ((this._requestID && j(this._requestID)));\n },\n _step: function() {\n this._requestID = m(this._step);\n var x = JSBNG__Date.now();\n if (((((x - v)) > this.state.timer))) {\n this.setState({\n frame: ((((this.state.frame + 1)) % t)),\n timer: x\n });\n }\n ;\n ;\n },\n _renderWithCSSAnimation: function(x) {\n return this.transferPropsTo(i.DOM.span({\n className: x\n }, \"Loading...\"));\n },\n _renderWithJavaScriptAnimation: function(x) {\n var y = Math.floor(((this.state.frame / s))), z = ((this.state.frame % s)), aa = ((((this.props.size == \"small\")) ? p.SMALL : p.LARGE)), ba = ((((this.props.size == \"small\")) ? q.SMALL : q.LARGE)), ca = {\n backgroundPosition: ((((((((((\"-\" + ((((z * aa)) + ba)))) + \"px \")) + \"-\")) + ((((y * aa)) + ba)))) + \"px\"))\n }, da = l((\"_55yr\"), x);\n return this.transferPropsTo(i.DOM.span({\n className: da,\n style: ca\n }, \"Loading...\"));\n },\n render: function() {\n var x = (((((((((\"_55ym\") + ((((this.props.size == \"small\")) ? ((\" \" + \"_55yn\")) : \"\")))) + ((((this.props.size == \"large\")) ? ((\" \" + \"_55yq\")) : \"\")))) + ((((this.props.background == \"light\")) ? ((\" \" + \"_55yo\")) : \"\")))) + ((((this.props.background == \"dark\")) ? ((\" \" + \"_55yp\")) : \"\"))));\n return ((o ? this._renderWithCSSAnimation(x) : this._renderWithJavaScriptAnimation(x)));\n }\n });\n e.exports = w;\n});\n__d(\"ViewportBounds\", [\"Style\",\"Vector\",\"emptyFunction\",\"ge\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n var g = b(\"Style\"), h = b(\"Vector\"), i = b(\"emptyFunction\"), j = b(\"ge\"), k = b(\"removeFromArray\"), l = {\n JSBNG__top: [],\n right: [],\n bottom: [],\n left: []\n };\n function m(q) {\n return function() {\n var r = 0;\n l[q].forEach(function(s) {\n r = Math.max(r, s.getSize());\n });\n return r;\n };\n };\n;\n function n(q) {\n return function(r) {\n return new o(q, r);\n };\n };\n;\n function o(q, r) {\n this.getSide = i.thatReturns(q);\n this.getSize = function() {\n return ((((typeof r === \"function\")) ? r() : r));\n };\n l[q].push(this);\n };\n;\n o.prototype.remove = function() {\n k(l[this.getSide()], this);\n };\n var p = {\n getTop: m(\"JSBNG__top\"),\n getRight: m(\"right\"),\n getBottom: m(\"bottom\"),\n getLeft: m(\"left\"),\n getElementPosition: function(q) {\n var r = h.getElementPosition(q);\n r.y -= p.getTop();\n return r;\n },\n addTop: n(\"JSBNG__top\"),\n addRight: n(\"right\"),\n addBottom: n(\"bottom\"),\n addLeft: n(\"left\")\n };\n p.addTop(function() {\n var q = j(\"blueBar\");\n if (((q && g.isFixed(q)))) {\n return j(\"blueBarHolder\").offsetHeight;\n }\n ;\n ;\n return 0;\n });\n e.exports = p;\n});\n__d(\"isAsyncScrollQuery\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n var g = b(\"UserAgent\"), h = null;\n function i() {\n if (((h === null))) {\n h = ((((((g.osx() >= 10.8)) && ((g.webkit() >= 536.25)))) && !g.chrome()));\n }\n ;\n ;\n return h;\n };\n;\n e.exports = i;\n});\n__d(\"ScrollAwareDOM\", [\"ArbiterMixin\",\"CSS\",\"DOM\",\"DOMDimensions\",\"DOMPosition\",\"DOMQuery\",\"HTML\",\"Vector\",\"ViewportBounds\",\"copyProperties\",\"isAsyncScrollQuery\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"DOMDimensions\"), k = b(\"DOMPosition\"), l = b(\"DOMQuery\"), m = b(\"HTML\"), n = b(\"Vector\"), o = b(\"ViewportBounds\"), p = b(\"copyProperties\"), q = b(\"isAsyncScrollQuery\");\n function r(w, x) {\n return function() {\n v.monitor(arguments[w], x.curry.apply(x, arguments));\n };\n };\n;\n function s(w) {\n if (!((w instanceof Array))) {\n w = [w,];\n }\n ;\n ;\n for (var x = 0; ((x < w.length)); x++) {\n var y = m.replaceJSONWrapper(w[x]);\n if (((y instanceof m))) {\n return y.getRootNode();\n }\n else if (i.isNode(y)) {\n return y;\n }\n \n ;\n ;\n };\n ;\n return null;\n };\n;\n function t(w) {\n return ((k.getElementPosition(w).y > o.getTop()));\n };\n;\n function u(w) {\n var x = ((k.getElementPosition(w).y + j.getElementDimensions(w).height)), y = ((j.getViewportDimensions().height - o.getBottom()));\n return ((x >= y));\n };\n;\n var v = p({\n monitor: function(w, x) {\n if (q()) {\n return x();\n }\n ;\n ;\n var y = s(w);\n if (y) {\n var z = !!y.offsetParent;\n if (((z && ((t(y) || u(y)))))) {\n return x();\n }\n ;\n ;\n var aa = n.getDocumentDimensions(), ba = x();\n if (((z || ((y.offsetParent && !t(y)))))) {\n var ca = n.getDocumentDimensions().sub(aa), da = {\n delta: ca,\n target: y\n };\n if (((v.inform(\"JSBNG__scroll\", da) !== false))) {\n ca.scrollElementBy(l.getDocumentScrollElement());\n }\n ;\n ;\n }\n ;\n ;\n return ba;\n }\n else return x()\n ;\n },\n replace: function(w, x) {\n var y = s(x);\n if (((!y || h.hasClass(y, \"hidden_elem\")))) {\n y = w;\n }\n ;\n ;\n return v.monitor(y, function() {\n i.replace(w, x);\n });\n },\n prependContent: r(1, i.prependContent),\n insertAfter: r(1, i.insertAfter),\n insertBefore: r(1, i.insertBefore),\n setContent: r(0, i.setContent),\n appendContent: r(1, i.appendContent),\n remove: r(0, i.remove),\n empty: r(0, i.empty)\n }, g);\n e.exports = v;\n});\n__d(\"legacy:ScrollAwareDOM\", [\"ScrollAwareDOM\",], function(a, b, c, d) {\n a.ScrollAwareDOM = b(\"ScrollAwareDOM\");\n}, 3);\n__d(\"Base64\", [], function(a, b, c, d, e, f) {\n var g = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n function h(l) {\n l = ((((((l.charCodeAt(0) << 16)) | ((l.charCodeAt(1) << 8)))) | l.charCodeAt(2)));\n return String.fromCharCode(g.charCodeAt(((l >>> 18))), g.charCodeAt(((((l >>> 12)) & 63))), g.charCodeAt(((((l >>> 6)) & 63))), g.charCodeAt(((l & 63))));\n };\n;\n var i = ((((\"\\u003E___?456789:;\\u003C=_______\" + \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\u0008\\u0009\\u000a\\u000b\\u000c\\u000d\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\")) + \"______\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123\"));\n function j(l) {\n l = ((((((((i.charCodeAt(((l.charCodeAt(0) - 43))) << 18)) | ((i.charCodeAt(((l.charCodeAt(1) - 43))) << 12)))) | ((i.charCodeAt(((l.charCodeAt(2) - 43))) << 6)))) | i.charCodeAt(((l.charCodeAt(3) - 43)))));\n return String.fromCharCode(((l >>> 16)), ((((l >>> 8)) & 255)), ((l & 255)));\n };\n;\n var k = {\n encode: function(l) {\n l = unescape(encodeURI(l));\n var m = ((((l.length + 2)) % 3));\n l = ((l + \"\\u0000\\u0000\".slice(m))).replace(/[\\s\\S]{3}/g, h);\n return ((l.slice(0, ((((l.length + m)) - 2))) + \"==\".slice(m)));\n },\n decode: function(l) {\n l = l.replace(/[^A-Za-z0-9+\\/]/g, \"\");\n var m = ((((l.length + 3)) & 3));\n l = ((l + \"AAA\".slice(m))).replace(/..../g, j);\n l = l.slice(0, ((((l.length + m)) - 3)));\n try {\n return decodeURIComponent(escape(l));\n } catch (n) {\n throw new Error(\"Not valid UTF-8\");\n };\n ;\n },\n encodeObject: function(l) {\n return k.encode(JSON.stringify(l));\n },\n decodeObject: function(l) {\n return JSON.parse(k.decode(l));\n },\n encodeNums: function(l) {\n return String.fromCharCode.apply(String, l.map(function(m) {\n return g.charCodeAt(((((((m | -((m > 63)))) & -((m > 0)))) & 63)));\n }));\n }\n };\n e.exports = k;\n});\n__d(\"legacy:base64\", [\"Base64\",], function(a, b, c, d) {\n a.Base64 = b(\"Base64\");\n}, 3);\n__d(\"legacy:css\", [\"CSS\",], function(a, b, c, d) {\n a.CSS = b(\"CSS\");\n}, 3);\n__d(\"legacy:dom\", [\"DOM\",], function(a, b, c, d) {\n a.DOM = b(\"DOM\");\n}, 3);\n__d(\"FBDesktopDetect\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n var g = b(\"UserAgent\"), h = \"facebook.desktopplugin\", i = {\n mimeType: \"application/x-facebook-desktop-1\",\n isPluginInstalled: function() {\n if (g.osx()) {\n return false;\n }\n ;\n ;\n var j = null;\n if (a.ActiveXObject) {\n try {\n j = new a.ActiveXObject(h);\n if (j) {\n return true;\n }\n ;\n ;\n } catch (k) {\n \n };\n ;\n }\n else if (((a.JSBNG__navigator && a.JSBNG__navigator.plugins))) {\n a.JSBNG__navigator.plugins.refresh(false);\n for (var l = 0, m = a.JSBNG__navigator.plugins.length; ((l < m)); l++) {\n j = a.JSBNG__navigator.plugins[l];\n if (((j.length && ((j[0].type === this.mimeType))))) {\n return true;\n }\n ;\n ;\n };\n ;\n }\n \n ;\n ;\n return false;\n }\n };\n e.exports = i;\n});\n__d(\"NavigationMessage\", [], function(a, b, c, d, e, f) {\n var g = {\n NAVIGATION_BEGIN: \"NavigationMessage/navigationBegin\",\n NAVIGATION_SELECT: \"NavigationMessage/navigationSelect\",\n NAVIGATION_FIRST_RESPONSE: \"NavigationMessage/navigationFirstResponse\",\n NAVIGATION_COMPLETED: \"NavigationMessage/navigationCompleted\",\n NAVIGATION_FAILED: \"NavigationMessage/navigationFailed\",\n NAVIGATION_COUNT_UPDATE: \"NavigationMessage/navigationCount\",\n NAVIGATION_FAVORITE_UPDATE: \"NavigationMessage/navigationFavoriteUpdate\",\n NAVIGATION_ITEM_REMOVED: \"NavigationMessage/navigationItemRemoved\",\n NAVIGATION_ITEM_HIDDEN: \"NavigationMessage/navigationItemHidden\",\n INTERNAL_LOADING_BEGIN: \"NavigationMessage/internalLoadingBegin\",\n INTERNAL_LOADING_COMPLETED: \"NavigationMessage/internalLoadingCompleted\"\n };\n e.exports = g;\n});\n__d(\"SimpleDrag\", [\"JSBNG__Event\",\"ArbiterMixin\",\"UserAgent\",\"Vector\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"UserAgent\"), j = b(\"Vector\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\");\n function m(n) {\n this.minDragDistance = 0;\n g.listen(n, \"mousedown\", this._start.bind(this));\n };\n;\n k(m.prototype, h, {\n setMinDragDistance: function(n) {\n this.minDragDistance = n;\n },\n _start: function(JSBNG__event) {\n var n = false, o = true, p = null;\n if (this.inform(\"mousedown\", JSBNG__event)) {\n o = false;\n }\n ;\n ;\n if (this.minDragDistance) {\n p = j.getEventPosition(JSBNG__event);\n }\n else {\n n = true;\n var q = this.inform(\"start\", JSBNG__event);\n if (((q === true))) {\n o = false;\n }\n else if (((q === false))) {\n n = false;\n return;\n }\n \n ;\n ;\n }\n ;\n ;\n var r = ((((i.ie() < 9)) ? JSBNG__document.documentElement : window)), s = g.listen(r, {\n selectstart: ((o ? g.prevent : l)),\n mousemove: function(JSBNG__event) {\n if (!n) {\n var t = j.getEventPosition(JSBNG__event);\n if (((p.distanceTo(t) < this.minDragDistance))) {\n return;\n }\n ;\n ;\n n = true;\n if (((this.inform(\"start\", JSBNG__event) === false))) {\n n = false;\n return;\n }\n ;\n ;\n }\n ;\n ;\n this.inform(\"update\", JSBNG__event);\n }.bind(this),\n mouseup: function(JSBNG__event) {\n {\n var fin104keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin104i = (0);\n var t;\n for (; (fin104i < fin104keys.length); (fin104i++)) {\n ((t) = (fin104keys[fin104i]));\n {\n s[t].remove();\n ;\n };\n };\n };\n ;\n if (n) {\n this.inform(\"end\", JSBNG__event);\n }\n else this.inform(\"click\", JSBNG__event);\n ;\n ;\n }.bind(this)\n });\n ((o && JSBNG__event.prevent()));\n }\n });\n e.exports = m;\n});\n__d(\"legacy:async-signal\", [\"AsyncSignal\",], function(a, b, c, d) {\n a.AsyncSignal = b(\"AsyncSignal\");\n}, 3);\n__d(\"FlipDirectionOnKeypress\", [\"JSBNG__Event\",\"DOM\",\"Input\",\"Style\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"DOM\"), i = b(\"Input\"), j = b(\"Style\");\n function k(JSBNG__event) {\n var l = JSBNG__event.getTarget(), m = ((h.isNodeOfType(l, \"input\") && ((l.type == \"text\")))), n = h.isNodeOfType(l, \"textarea\");\n if (((!((m || n)) || l.getAttribute(\"data-prevent-auto-flip\")))) {\n return;\n }\n ;\n ;\n var o = i.getValue(l), p = ((l.style && l.style.direction));\n if (!p) {\n var q = 0, r = true;\n for (var s = 0; ((s < o.length)); s++) {\n var t = o.charCodeAt(s);\n if (((t >= 48))) {\n if (r) {\n r = false;\n q++;\n }\n ;\n ;\n if (((((t >= 1470)) && ((t <= 1920))))) {\n j.set(l, \"direction\", \"rtl\");\n return;\n }\n ;\n ;\n if (((q == 5))) {\n j.set(l, \"direction\", \"ltr\");\n return;\n }\n ;\n ;\n }\n else r = true;\n ;\n ;\n };\n ;\n }\n else if (((o.length === 0))) {\n j.set(l, \"direction\", \"\");\n }\n \n ;\n ;\n };\n;\n g.listen(JSBNG__document.documentElement, {\n keyup: k,\n input: k\n });\n});\n__d(\"PlaceholderOnsubmitFormListener\", [\"JSBNG__Event\",\"Input\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Input\");\n g.listen(JSBNG__document.documentElement, \"submit\", function(i) {\n var j = i.getTarget().getElementsByTagName(\"*\");\n for (var k = 0; ((k < j.length)); k++) {\n if (((j[k].getAttribute(\"placeholder\") && h.isEmpty(j[k])))) {\n h.setValue(j[k], \"\");\n }\n ;\n ;\n };\n ;\n });\n});\n__d(\"ARIA\", [\"DOM\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"emptyFunction\"), i = b(\"ge\"), j, k, l = function() {\n j = i(\"ariaAssertiveAlert\");\n if (!j) {\n j = g.create(\"div\", {\n id: \"ariaAssertiveAlert\",\n className: \"accessible_elem\",\n \"aria-live\": \"assertive\"\n });\n g.appendContent(JSBNG__document.body, j);\n }\n ;\n ;\n k = i(\"ariaPoliteAlert\");\n if (!k) {\n k = j.cloneNode(false);\n k.setAttribute(\"id\", \"ariaPoliteAlert\");\n k.setAttribute(\"aria-live\", \"polite\");\n g.appendContent(JSBNG__document.body, k);\n }\n ;\n ;\n l = h;\n };\n function m(o, p) {\n l();\n var q = ((p ? j : k));\n g.setContent(q, o);\n };\n;\n var n = {\n owns: function(o, p) {\n o.setAttribute(\"aria-owns\", g.getID(p));\n },\n setPopup: function(o, p) {\n var q = g.getID(p);\n o.setAttribute(\"aria-owns\", q);\n o.setAttribute(\"aria-haspopup\", \"true\");\n if (((o.tabIndex == -1))) {\n o.tabIndex = 0;\n }\n ;\n ;\n },\n announce: function(o) {\n m(o, true);\n },\n notify: function(o) {\n m(o);\n }\n };\n e.exports = n;\n});\n__d(\"ScriptPathState\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h, i, j, k, l = 100, m = {\n setIsUIPageletRequest: function(n) {\n j = n;\n },\n setUserURISampleRate: function(n) {\n k = n;\n },\n reset: function() {\n h = null;\n i = false;\n j = false;\n },\n _shouldUpdateScriptPath: function() {\n return ((i && !j));\n },\n _shouldSendURI: function() {\n return ((Math.JSBNG__random() < k));\n },\n getParams: function() {\n var n = {\n };\n if (m._shouldUpdateScriptPath()) {\n if (((m._shouldSendURI() && ((h !== null))))) {\n n.user_uri = h.substring(0, l);\n }\n ;\n ;\n }\n else n.no_script_path = 1;\n ;\n ;\n return n;\n }\n };\n g.subscribe(\"pre_page_transition\", function(n, o) {\n i = true;\n h = o.to.getUnqualifiedURI().toString();\n });\n e.exports = a.ScriptPathState = m;\n});\n__d(\"goOrReplace\", [\"URI\",\"UserAgent\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = b(\"UserAgent\");\n function i(j, k, l) {\n var m = new g(k), n = a.Quickling;\n if (((((((((((j.pathname == \"/\")) && ((m.getPath() != \"/\")))) && n)) && n.isActive())) && n.isPageActive(m)))) {\n var o = ((j.search ? {\n } : {\n q: \"\"\n }));\n m = new g().setPath(\"/\").setQueryData(o).setFragment(m.getUnqualifiedURI().toString());\n k = m.toString();\n }\n ;\n ;\n if (((l && !((h.ie() < 8))))) {\n j.replace(k);\n }\n else if (((j.href == k))) {\n j.reload();\n }\n else j.href = k;\n \n ;\n ;\n };\n;\n e.exports = i;\n});\n__d(\"AjaxPipeRequest\", [\"Arbiter\",\"AsyncRequest\",\"BigPipe\",\"CSS\",\"DOM\",\"Env\",\"PageletSet\",\"ScriptPathState\",\"URI\",\"copyProperties\",\"goOrReplace\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"BigPipe\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Env\"), m = b(\"PageletSet\"), n = b(\"ScriptPathState\"), o = b(\"URI\"), p = b(\"copyProperties\"), q = b(\"goOrReplace\"), r = b(\"ge\"), s;\n function t(w, x) {\n var y = r(w);\n if (!y) {\n return;\n }\n ;\n ;\n if (!x) {\n y.style.minHeight = \"600px\";\n }\n ;\n ;\n var z = m.getPageletIDs();\n for (var aa = 0; ((aa < z.length)); aa++) {\n var ba = z[aa];\n if (k.contains(y, ba)) {\n m.removePagelet(ba);\n }\n ;\n ;\n };\n ;\n k.empty(y);\n };\n;\n function u(w, x) {\n var y = r(w);\n if (((y && !x))) {\n y.style.minHeight = \"100px\";\n }\n ;\n ;\n };\n;\n function v(w, x) {\n this._uri = w;\n this._query_data = x;\n this._request = new h();\n this._canvas_id = null;\n this._allow_cross_page_transition = true;\n };\n;\n p(v.prototype, {\n setCanvasId: function(w) {\n this._canvas_id = w;\n return this;\n },\n setURI: function(w) {\n this._uri = w;\n return this;\n },\n setData: function(w) {\n this._query_data = w;\n return this;\n },\n getData: function(w) {\n return this._query_data;\n },\n setAllowCrossPageTransition: function(w) {\n this._allow_cross_page_transition = w;\n return this;\n },\n setAppend: function(w) {\n this._append = w;\n return this;\n },\n send: function() {\n var w = {\n ajaxpipe: 1,\n ajaxpipe_token: l.ajaxpipe_token\n };\n p(w, n.getParams());\n n.reset();\n this._request.setOption(\"useIframeTransport\", true).setURI(this._uri).setData(p(w, this._query_data)).setPreBootloadHandler(this._preBootloadHandler.bind(this)).setInitialHandler(this._onInitialResponse.bind(this)).setHandler(this._onResponse.bind(this)).setMethod(\"GET\").setReadOnly(true).setAllowCrossPageTransition(this._allow_cross_page_transition);\n if (this._automatic) {\n this._relevantRequest = s;\n }\n else s = this._request;\n ;\n ;\n this._request.send();\n return this;\n },\n _preBootloadFirstResponse: function(w) {\n return false;\n },\n _fireDomContentCallback: function() {\n this._arbiter.inform(\"ajaxpipe/domcontent_callback\", true, g.BEHAVIOR_STATE);\n },\n _fireOnloadCallback: function() {\n this._arbiter.inform(\"ajaxpipe/onload_callback\", true, g.BEHAVIOR_STATE);\n },\n _isRelevant: function(w) {\n return ((((((this._request == s)) || ((this._automatic && ((this._relevantRequest == s)))))) || this._jsNonBlock));\n },\n _preBootloadHandler: function(w) {\n var x = w.getPayload();\n if (((((!x || x.redirect)) || !this._isRelevant(w)))) {\n return false;\n }\n ;\n ;\n var y = false;\n if (w.is_first) {\n ((((!this._append && !this._displayCallback)) && t(this._canvas_id, this._constHeight)));\n this._arbiter = new g();\n y = this._preBootloadFirstResponse(w);\n this.pipe = new i({\n arbiter: this._arbiter,\n rootNodeID: this._canvas_id,\n lid: this._request.lid,\n isAjax: true,\n domContentCallback: this._fireDomContentCallback.bind(this),\n onloadCallback: this._fireOnloadCallback.bind(this),\n domContentEvt: \"ajaxpipe/domcontent_callback\",\n onloadEvt: \"ajaxpipe/onload_callback\",\n jsNonBlock: this._jsNonBlock,\n automatic: this._automatic,\n displayCallback: this._displayCallback\n });\n }\n ;\n ;\n return y;\n },\n _redirect: function(w) {\n if (w.redirect) {\n if (((w.force || !this.isPageActive(w.redirect)))) {\n var x = [\"ajaxpipe\",\"ajaxpipe_token\",].concat(this.getSanitizedParameters());\n q(window.JSBNG__location, o(w.redirect).removeQueryData(x), true);\n }\n else {\n var y = a.PageTransitions;\n y.go(w.redirect, true);\n }\n ;\n ;\n return true;\n }\n else return false\n ;\n },\n isPageActive: function(w) {\n return true;\n },\n getSanitizedParameters: function() {\n return [];\n },\n _versionCheck: function(w) {\n return true;\n },\n _onInitialResponse: function(w) {\n var x = w.getPayload();\n if (!this._isRelevant(w)) {\n return false;\n }\n ;\n ;\n if (!x) {\n return true;\n }\n ;\n ;\n if (((this._redirect(x) || !this._versionCheck(x)))) {\n return false;\n }\n ;\n ;\n return true;\n },\n _processFirstResponse: function(w) {\n var x = w.getPayload();\n if (((r(this._canvas_id) && ((x.canvas_class != null))))) {\n j.setClass(this._canvas_id, x.canvas_class);\n }\n ;\n ;\n },\n setFirstResponseCallback: function(w) {\n this._firstResponseCallback = w;\n return this;\n },\n setFirstResponseHandler: function(w) {\n this._processFirstResponse = w;\n return this;\n },\n _onResponse: function(w) {\n var x = w.payload;\n if (!this._isRelevant(w)) {\n return h.suppressOnloadToken;\n }\n ;\n ;\n if (w.is_first) {\n this._processFirstResponse(w);\n ((this._firstResponseCallback && this._firstResponseCallback()));\n x.provides = ((x.provides || []));\n x.provides.push(\"uipage_onload\");\n if (this._append) {\n x.append = this._canvas_id;\n }\n ;\n ;\n }\n ;\n ;\n if (x) {\n if (((((((\"JSBNG__content\" in x.JSBNG__content)) && ((this._canvas_id !== null)))) && ((this._canvas_id != \"JSBNG__content\"))))) {\n x.JSBNG__content[this._canvas_id] = x.JSBNG__content.JSBNG__content;\n delete x.JSBNG__content.JSBNG__content;\n }\n ;\n ;\n this.pipe.onPageletArrive(x);\n }\n ;\n ;\n if (w.is_last) {\n u(this._canvas_id, this._constHeight);\n }\n ;\n ;\n return h.suppressOnloadToken;\n },\n setNectarModuleDataSafe: function(w) {\n this._request.setNectarModuleDataSafe(w);\n return this;\n },\n setFinallyHandler: function(w) {\n this._request.setFinallyHandler(w);\n return this;\n },\n setErrorHandler: function(w) {\n this._request.setErrorHandler(w);\n return this;\n },\n abort: function() {\n this._request.abort();\n if (((s == this._request))) {\n s = null;\n }\n ;\n ;\n this._request = null;\n return this;\n },\n setJSNonBlock: function(w) {\n this._jsNonBlock = w;\n return this;\n },\n setAutomatic: function(w) {\n this._automatic = w;\n return this;\n },\n setDisplayCallback: function(w) {\n this._displayCallback = w;\n return this;\n },\n setConstHeight: function(w) {\n this._constHeight = w;\n return this;\n },\n getAsyncRequest: function() {\n return this._request;\n }\n });\n p(v, {\n getCurrentRequest: function() {\n return s;\n },\n setCurrentRequest: function(w) {\n s = w;\n }\n });\n e.exports = v;\n});\n__d(\"AsyncRequestNectarLogging\", [\"AsyncRequest\",\"Nectar\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"Nectar\"), i = b(\"copyProperties\");\n i(g.prototype, {\n setNectarModuleData: function(j) {\n if (((this.method == \"POST\"))) {\n h.addModuleData(this.data, j);\n }\n ;\n ;\n },\n setNectarImpressionId: function() {\n if (((this.method == \"POST\"))) {\n h.addImpressionID(this.data);\n }\n ;\n ;\n }\n });\n});\n__d(\"CSSClassTransition\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = [];\n function i() {\n \n };\n;\n g(i, {\n go: function(j, k, l, m) {\n var n;\n for (var o = 0; ((o < h.length)); o++) {\n if (((h[o](j, k, l, m) === true))) {\n n = true;\n }\n ;\n ;\n };\n ;\n if (!n) {\n j.className = k;\n }\n ;\n ;\n },\n registerHandler: function(j) {\n h.push(j);\n return {\n remove: function() {\n var k = h.indexOf(j);\n if (((k >= 0))) {\n h.splice(k, 1);\n }\n ;\n ;\n }\n };\n }\n });\n e.exports = i;\n});\n__d(\"DOMScroll\", [\"Animation\",\"Arbiter\",\"DOM\",\"DOMQuery\",\"Vector\",\"ViewportBounds\",\"ge\",\"isAsyncScrollQuery\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"DOM\"), j = b(\"DOMQuery\"), k = b(\"Vector\"), l = b(\"ViewportBounds\"), m = b(\"ge\"), n = b(\"isAsyncScrollQuery\"), o = {\n SCROLL: \"dom-scroll\",\n getScrollState: function() {\n var p = k.getViewportDimensions(), q = k.getDocumentDimensions(), r = ((q.x > p.x)), s = ((q.y > p.y));\n r += 0;\n s += 0;\n return new k(r, s);\n },\n _scrollbarSize: null,\n _initScrollbarSize: function() {\n var p = i.create(\"p\");\n p.style.width = \"100%\";\n p.style.height = \"200px\";\n var q = i.create(\"div\");\n q.style.position = \"absolute\";\n q.style.JSBNG__top = \"0px\";\n q.style.left = \"0px\";\n q.style.visibility = \"hidden\";\n q.style.width = \"200px\";\n q.style.height = \"150px\";\n q.style.overflow = \"hidden\";\n q.appendChild(p);\n JSBNG__document.body.appendChild(q);\n var r = p.offsetWidth;\n q.style.overflow = \"JSBNG__scroll\";\n var s = p.offsetWidth;\n if (((r == s))) {\n s = q.clientWidth;\n }\n ;\n ;\n JSBNG__document.body.removeChild(q);\n o._scrollbarSize = ((r - s));\n },\n getScrollbarSize: function() {\n if (((o._scrollbarSize === null))) {\n o._initScrollbarSize();\n }\n ;\n ;\n return o._scrollbarSize;\n },\n JSBNG__scrollTo: function(p, q, r, s, t) {\n if (((((typeof q == \"undefined\")) || ((q === true))))) {\n q = 750;\n }\n ;\n ;\n if (n()) {\n q = false;\n }\n ;\n ;\n if (!((p instanceof k))) {\n var u = k.getScrollPosition().x, v = k.getElementPosition(m(p)).y;\n p = new k(u, v, \"JSBNG__document\");\n if (!s) {\n p.y -= ((l.getTop() / ((r ? 2 : 1))));\n }\n ;\n ;\n }\n ;\n ;\n if (r) {\n p.y -= ((k.getViewportDimensions().y / 2));\n }\n else if (s) {\n p.y -= k.getViewportDimensions().y;\n p.y += s;\n }\n \n ;\n ;\n p = p.convertTo(\"JSBNG__document\");\n if (q) {\n return new g(JSBNG__document.body).to(\"scrollTop\", p.y).to(\"scrollLeft\", p.x).ease(g.ease.end).duration(q).ondone(t).go();\n }\n else if (window.JSBNG__scrollTo) {\n window.JSBNG__scrollTo(p.x, p.y);\n ((t && t()));\n }\n \n ;\n ;\n h.inform(o.SCROLL);\n },\n ensureVisible: function(p, q, r, s, t) {\n if (((r === undefined))) {\n r = 10;\n }\n ;\n ;\n p = m(p);\n if (q) {\n p = j.JSBNG__find(p, q);\n }\n ;\n ;\n var u = k.getScrollPosition().x, v = k.getScrollPosition().y, w = ((v + k.getViewportDimensions().y)), x = k.getElementPosition(p).y, y = ((x + k.getElementDimensions(p).y));\n x -= l.getTop();\n x -= r;\n y += r;\n if (((x < v))) {\n o.JSBNG__scrollTo(new k(u, x, \"JSBNG__document\"), s, false, false, t);\n }\n else if (((y > w))) {\n if (((((x - ((y - w)))) < v))) {\n o.JSBNG__scrollTo(new k(u, x, \"JSBNG__document\"), s, false, false, t);\n }\n else o.JSBNG__scrollTo(new k(u, y, \"JSBNG__document\"), s, false, true, t);\n ;\n }\n \n ;\n ;\n },\n scrollToTop: function(p) {\n var q = k.getScrollPosition();\n o.JSBNG__scrollTo(new k(q.x, 0, \"JSBNG__document\"), ((p !== false)));\n }\n };\n e.exports = o;\n});\n__d(\"Button\", [\"CSS\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Parent\",\"cx\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"JSBNG__Event\"), k = b(\"Parent\"), l = b(\"cx\"), m = b(\"emptyFunction\"), n = \"uiButtonDisabled\", o = \"uiButtonDepressed\", p = \"_42fr\", q = \"_42fs\", r = \"button:blocker\", s = \"href\", t = \"ajaxify\";\n function u(aa, ba) {\n var ca = h.get(aa, r);\n if (ba) {\n if (ca) {\n ca.remove();\n h.remove(aa, r);\n }\n ;\n ;\n }\n else if (!ca) {\n h.set(aa, r, j.listen(aa, \"click\", m.thatReturnsFalse, j.Priority.URGENT));\n }\n \n ;\n ;\n };\n;\n function v(aa) {\n var ba = ((k.byClass(aa, \"uiButton\") || k.byClass(aa, \"_42ft\")));\n if (!ba) {\n throw new Error(\"invalid use case\");\n }\n ;\n ;\n return ba;\n };\n;\n function w(aa) {\n return i.isNodeOfType(aa, \"a\");\n };\n;\n function x(aa) {\n return i.isNodeOfType(aa, \"button\");\n };\n;\n function y(aa) {\n return g.hasClass(aa, \"_42ft\");\n };\n;\n var z = {\n getInputElement: function(aa) {\n aa = v(aa);\n if (w(aa)) {\n throw new Error(\"invalid use case\");\n }\n ;\n ;\n return ((x(aa) ? aa : i.JSBNG__find(aa, \"input\")));\n },\n isEnabled: function(aa) {\n return !((g.hasClass(v(aa), n) || g.hasClass(v(aa), p)));\n },\n setEnabled: function(aa, ba) {\n aa = v(aa);\n var ca = ((y(aa) ? p : n));\n g.conditionClass(aa, ca, !ba);\n if (w(aa)) {\n var da = aa.getAttribute(\"href\"), ea = aa.getAttribute(\"ajaxify\"), fa = h.get(aa, s, \"#\"), ga = h.get(aa, t);\n if (ba) {\n if (!da) {\n aa.setAttribute(\"href\", fa);\n }\n ;\n ;\n if (((!ea && ga))) {\n aa.setAttribute(\"ajaxify\", ga);\n }\n ;\n ;\n aa.removeAttribute(\"tabIndex\");\n }\n else {\n if (((da && ((da !== fa))))) {\n h.set(aa, s, da);\n }\n ;\n ;\n if (((ea && ((ea !== ga))))) {\n h.set(aa, t, ea);\n }\n ;\n ;\n aa.removeAttribute(\"href\");\n aa.removeAttribute(\"ajaxify\");\n aa.setAttribute(\"tabIndex\", \"-1\");\n }\n ;\n ;\n u(aa, ba);\n }\n else {\n var ha = z.getInputElement(aa);\n ha.disabled = !ba;\n u(ha, ba);\n }\n ;\n ;\n },\n setDepressed: function(aa, ba) {\n aa = v(aa);\n var ca = ((y(aa) ? q : o));\n g.conditionClass(aa, ca, ba);\n },\n isDepressed: function(aa) {\n aa = v(aa);\n var ba = ((y(aa) ? q : o));\n return g.hasClass(aa, ba);\n },\n setLabel: function(aa, ba) {\n aa = v(aa);\n if (y(aa)) {\n var ca = [];\n if (ba) {\n ca.push(ba);\n }\n ;\n ;\n var da = i.scry(aa, \".img\")[0];\n if (da) {\n if (((aa.firstChild == da))) {\n ca.unshift(da);\n }\n else ca.push(da);\n ;\n }\n ;\n ;\n i.setContent(aa, ca);\n }\n else if (w(aa)) {\n var ea = i.JSBNG__find(aa, \"span.uiButtonText\");\n i.setContent(ea, ba);\n }\n else z.getInputElement(aa).value = ba;\n \n ;\n ;\n var fa = ((y(aa) ? \"_42fv\" : \"uiButtonNoText\"));\n g.conditionClass(aa, fa, !ba);\n },\n setIcon: function(aa, ba) {\n if (((ba && !i.isNode(ba)))) {\n return;\n }\n ;\n ;\n aa = v(aa);\n var ca = i.scry(aa, \".img\")[0];\n if (!ba) {\n ((ca && i.remove(ca)));\n return;\n }\n ;\n ;\n g.addClass(ba, \"customimg\");\n if (((ca != ba))) {\n if (ca) {\n i.replace(ca, ba);\n }\n else i.prependContent(aa, ba);\n ;\n }\n ;\n ;\n }\n };\n e.exports = z;\n});\n__d(\"Form\", [\"JSBNG__Event\",\"AsyncRequest\",\"AsyncResponse\",\"CSS\",\"DOM\",\"DOMPosition\",\"DOMQuery\",\"DataStore\",\"Env\",\"Input\",\"Parent\",\"URI\",\"createArrayFrom\",\"trackReferrer\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"AsyncResponse\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"DOMPosition\"), m = b(\"DOMQuery\"), n = b(\"DataStore\"), o = b(\"Env\"), p = b(\"Input\"), q = b(\"Parent\"), r = b(\"URI\"), s = b(\"createArrayFrom\"), t = b(\"trackReferrer\"), u = ((\"JSBNG__FileList\" in window)), v = ((\"JSBNG__FormData\" in window));\n function w(y) {\n var z = {\n };\n r.implodeQuery(y).split(\"&\").forEach(function(aa) {\n if (aa) {\n var ba = /^([^=]*)(?:=(.*))?$/.exec(aa), ca = r.decodeComponent(ba[1]), da = ((ba[2] ? r.decodeComponent(ba[2]) : null));\n z[ca] = da;\n }\n ;\n ;\n });\n return z;\n };\n;\n var x = {\n getInputs: function(y) {\n y = ((y || JSBNG__document));\n return [].concat(s(m.scry(y, \"input\")), s(m.scry(y, \"select\")), s(m.scry(y, \"textarea\")), s(m.scry(y, \"button\")));\n },\n getInputsByName: function(y) {\n var z = {\n };\n x.getInputs(y).forEach(function(aa) {\n var ba = z[aa.JSBNG__name];\n z[aa.JSBNG__name] = ((((typeof ba === \"undefined\")) ? aa : [aa,].concat(ba)));\n });\n return z;\n },\n getSelectValue: function(y) {\n return y.options[y.selectedIndex].value;\n },\n setSelectValue: function(y, z) {\n for (var aa = 0; ((aa < y.options.length)); ++aa) {\n if (((y.options[aa].value == z))) {\n y.selectedIndex = aa;\n break;\n }\n ;\n ;\n };\n ;\n },\n getRadioValue: function(y) {\n for (var z = 0; ((z < y.length)); z++) {\n if (y[z].checked) {\n return y[z].value;\n }\n ;\n ;\n };\n ;\n return null;\n },\n getElements: function(y) {\n return s(((((y.tagName == \"FORM\")) ? y.elements : x.getInputs(y))));\n },\n getAttribute: function(y, z) {\n return ((((y.getAttributeNode(z) || {\n })).value || null));\n },\n setDisabled: function(y, z) {\n x.getElements(y).forEach(function(aa) {\n if (((aa.disabled !== undefined))) {\n var ba = n.get(aa, \"origDisabledState\");\n if (z) {\n if (((ba === undefined))) {\n n.set(aa, \"origDisabledState\", aa.disabled);\n }\n ;\n ;\n aa.disabled = z;\n }\n else if (((ba !== true))) {\n aa.disabled = false;\n }\n \n ;\n ;\n }\n ;\n ;\n });\n },\n bootstrap: function(y, z) {\n var aa = ((x.getAttribute(y, \"method\") || \"GET\")).toUpperCase();\n z = ((q.byTag(z, \"button\") || z));\n var ba = ((q.byClass(z, \"stat_elem\") || y));\n if (j.hasClass(ba, \"async_saving\")) {\n return;\n }\n ;\n ;\n if (((z && ((((((z.form !== y)) || ((((z.nodeName != \"INPUT\")) && ((z.nodeName != \"BUTTON\")))))) || ((z.type != \"submit\"))))))) {\n var ca = m.scry(y, \".enter_submit_target\")[0];\n ((ca && (z = ca)));\n }\n ;\n ;\n var da = x.serialize(y, z);\n x.setDisabled(y, true);\n var ea = ((x.getAttribute(y, \"ajaxify\") || x.getAttribute(y, \"action\")));\n t(y, ea);\n var fa = new h(ea);\n fa.setData(da).setNectarModuleDataSafe(y).setReadOnly(((aa == \"GET\"))).setMethod(aa).setRelativeTo(y).setStatusElement(ba).setInitialHandler(x.setDisabled.curry(y, false)).setHandler(function(ga) {\n g.fire(y, \"success\", {\n response: ga\n });\n }).setErrorHandler(function(ga) {\n if (((g.fire(y, \"error\", {\n response: ga\n }) !== false))) {\n i.defaultErrorHandler(ga);\n }\n ;\n ;\n }).setFinallyHandler(x.setDisabled.curry(y, false)).send();\n },\n forEachValue: function(y, z, aa) {\n x.getElements(y).forEach(function(ba) {\n if (((((ba.JSBNG__name && !ba.disabled)) && ((ba.type !== \"submit\"))))) {\n if (((((((((((!ba.type || ((((((ba.type === \"radio\")) || ((ba.type === \"checkbox\")))) && ba.checked)))) || ((ba.type === \"text\")))) || ((ba.type === \"password\")))) || ((ba.type === \"hidden\")))) || ((ba.nodeName === \"TEXTAREA\"))))) {\n aa(ba.type, ba.JSBNG__name, p.getValue(ba));\n }\n else if (((ba.nodeName === \"SELECT\"))) {\n for (var ca = 0, da = ba.options.length; ((ca < da)); ca++) {\n var ea = ba.options[ca];\n if (ea.selected) {\n aa(\"select\", ba.JSBNG__name, ea.value);\n }\n ;\n ;\n };\n ;\n }\n else if (((u && ((ba.type === \"file\"))))) {\n var fa = ba.files;\n for (var ga = 0; ((ga < fa.length)); ga++) {\n aa(\"file\", ba.JSBNG__name, fa.item(ga));\n ;\n };\n ;\n }\n \n \n ;\n }\n ;\n ;\n });\n if (((((((((z && z.JSBNG__name)) && ((z.type === \"submit\")))) && m.contains(y, z))) && m.isNodeOfType(z, [\"input\",\"button\",])))) {\n aa(\"submit\", z.JSBNG__name, z.value);\n }\n ;\n ;\n },\n createFormData: function(y, z) {\n if (!v) {\n return null;\n }\n ;\n ;\n var aa = new JSBNG__FormData();\n if (y) {\n if (m.isNode(y)) {\n x.forEachValue(y, z, function(da, ea, fa) {\n aa.append(ea, fa);\n });\n }\n else {\n var ba = w(y);\n {\n var fin105keys = ((window.top.JSBNG_Replay.forInKeys)((ba))), fin105i = (0);\n var ca;\n for (; (fin105i < fin105keys.length); (fin105i++)) {\n ((ca) = (fin105keys[fin105i]));\n {\n aa.append(ca, ba[ca]);\n ;\n };\n };\n };\n ;\n }\n ;\n }\n ;\n ;\n return aa;\n },\n serialize: function(y, z) {\n var aa = {\n };\n x.forEachValue(y, z, function(ba, ca, da) {\n if (((ba === \"file\"))) {\n return;\n }\n ;\n ;\n x._serializeHelper(aa, ca, da);\n });\n return x._serializeFix(aa);\n },\n _serializeHelper: function(y, z, aa) {\n var ba = Object.prototype.hasOwnProperty, ca = /([^\\]]+)\\[([^\\]]*)\\](.*)/.exec(z);\n if (ca) {\n if (((!y[ca[1]] || !ba.call(y, ca[1])))) {\n var da;\n y[ca[1]] = da = {\n };\n if (((y[ca[1]] !== da))) {\n return;\n }\n ;\n ;\n }\n ;\n ;\n var ea = 0;\n if (((ca[2] === \"\"))) {\n while (((y[ca[1]][ea] !== undefined))) {\n ea++;\n ;\n };\n ;\n }\n else ea = ca[2];\n ;\n ;\n if (((ca[3] === \"\"))) {\n y[ca[1]][ea] = aa;\n }\n else x._serializeHelper(y[ca[1]], ea.concat(ca[3]), aa);\n ;\n ;\n }\n else y[z] = aa;\n ;\n ;\n },\n _serializeFix: function(y) {\n {\n var fin106keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin106i = (0);\n var z;\n for (; (fin106i < fin106keys.length); (fin106i++)) {\n ((z) = (fin106keys[fin106i]));\n {\n if (((y[z] instanceof Object))) {\n y[z] = x._serializeFix(y[z]);\n }\n ;\n ;\n };\n };\n };\n ;\n var aa = Object.keys(y);\n if (((((aa.length === 0)) || aa.some(isNaN)))) {\n return y;\n }\n ;\n ;\n aa.sort(function(da, ea) {\n return ((da - ea));\n });\n var ba = 0, ca = aa.every(function(da) {\n return ((+da === ba++));\n });\n if (ca) {\n return aa.map(function(da) {\n return y[da];\n });\n }\n ;\n ;\n return y;\n },\n post: function(y, z, aa) {\n var ba = JSBNG__document.createElement(\"form\");\n ba.action = y.toString();\n ba.method = \"POST\";\n ba.style.display = \"none\";\n if (aa) {\n ba.target = aa;\n }\n ;\n ;\n z.fb_dtsg = o.fb_dtsg;\n x.createHiddenInputs(z, ba);\n m.getRootElement().appendChild(ba);\n ba.submit();\n return false;\n },\n createHiddenInputs: function(y, z, aa, ba) {\n aa = ((aa || {\n }));\n var ca = w(y);\n {\n var fin107keys = ((window.top.JSBNG_Replay.forInKeys)((ca))), fin107i = (0);\n var da;\n for (; (fin107i < fin107keys.length); (fin107i++)) {\n ((da) = (fin107keys[fin107i]));\n {\n if (((ca[da] === null))) {\n continue;\n }\n ;\n ;\n if (((aa[da] && ba))) {\n aa[da].value = ca[da];\n }\n else {\n var ea = k.create(\"input\", {\n type: \"hidden\",\n JSBNG__name: da,\n value: ca[da]\n });\n aa[da] = ea;\n z.appendChild(ea);\n }\n ;\n ;\n };\n };\n };\n ;\n return aa;\n },\n getFirstElement: function(y, z) {\n z = ((z || [\"input[type=\\\"text\\\"]\",\"textarea\",\"input[type=\\\"password\\\"]\",\"input[type=\\\"button\\\"]\",\"input[type=\\\"submit\\\"]\",]));\n var aa = [];\n for (var ba = 0; ((ba < z.length)); ba++) {\n aa = m.scry(y, z[ba]);\n for (var ca = 0; ((ca < aa.length)); ca++) {\n var da = aa[ca];\n try {\n var fa = l.getElementPosition(da);\n if (((((fa.y > 0)) && ((fa.x > 0))))) {\n return da;\n }\n ;\n ;\n } catch (ea) {\n \n };\n ;\n };\n ;\n };\n ;\n return null;\n },\n focusFirst: function(y) {\n var z = x.getFirstElement(y);\n if (z) {\n z.JSBNG__focus();\n return true;\n }\n ;\n ;\n return false;\n }\n };\n e.exports = x;\n});\n__d(\"Locale\", [\"Style\",], function(a, b, c, d, e, f) {\n var g = b(\"Style\"), h, i = {\n isRTL: function() {\n if (((h === undefined))) {\n h = ((\"rtl\" === g.get(JSBNG__document.body, \"direction\")));\n }\n ;\n ;\n return h;\n }\n };\n e.exports = i;\n});\n__d(\"getOverlayZIndex\", [\"Style\",], function(a, b, c, d, e, f) {\n var g = b(\"Style\");\n function h(i, j) {\n j = ((j || JSBNG__document.body));\n var k = [];\n while (((i && ((i !== j))))) {\n k.push(i);\n i = i.parentNode;\n };\n ;\n if (((i !== j))) {\n return 0;\n }\n ;\n ;\n for (var l = ((k.length - 1)); ((l >= 0)); l--) {\n var m = k[l];\n if (((g.get(m, \"position\") != \"static\"))) {\n var n = parseInt(g.get(m, \"z-index\"), 10);\n if (!isNaN(n)) {\n return n;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n return 0;\n };\n;\n e.exports = h;\n});\n__d(\"Dialog\", [\"Animation\",\"Arbiter\",\"AsyncRequest\",\"Bootloader\",\"Button\",\"ContextualThing\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"Focus\",\"Form\",\"HTML\",\"Keys\",\"Locale\",\"Parent\",\"Run\",\"Style\",\"URI\",\"UserAgent\",\"Vector\",\"bind\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"getObjectValues\",\"getOverlayZIndex\",\"removeFromArray\",\"shield\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Bootloader\"), k = b(\"Button\"), l = b(\"ContextualThing\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"JSBNG__Event\"), p = b(\"Focus\"), q = b(\"Form\"), r = b(\"HTML\"), s = b(\"Keys\"), t = b(\"Locale\"), u = b(\"Parent\"), v = b(\"Run\"), w = b(\"Style\"), x = b(\"URI\"), y = b(\"UserAgent\"), z = b(\"Vector\"), aa = b(\"bind\"), ba = b(\"copyProperties\"), ca = b(\"createArrayFrom\"), da = b(\"emptyFunction\"), ea = b(\"getObjectValues\"), fa = b(\"getOverlayZIndex\"), ga = b(\"removeFromArray\"), ha = b(\"shield\"), ia = b(\"tx\"), ja = function() {\n var la = JSBNG__document.body, ma = JSBNG__document.createElement(\"div\"), na = JSBNG__document.createElement(\"div\");\n la.insertBefore(ma, la.firstChild);\n la.insertBefore(na, la.firstChild);\n ma.style.position = \"fixed\";\n ma.style.JSBNG__top = \"20px\";\n var oa = ((ma.offsetTop !== na.offsetTop));\n la.removeChild(ma);\n la.removeChild(na);\n ja = da.thatReturns(oa);\n return oa;\n };\n function ka(la) {\n this._show_loading = true;\n this._auto_focus = true;\n this._submit_on_enter = false;\n this._fade_enabled = true;\n this._onload_handlers = [];\n this._top = 125;\n this._uniqueID = ((\"dialog_\" + ka._globalCount++));\n this._content = null;\n this._obj = null;\n this._popup = null;\n this._overlay = null;\n this._shim = null;\n this._causal_elem = null;\n this._previous_focus = null;\n this._buttons = [];\n this._buildDialog();\n if (la) {\n this._setFromModel(la);\n }\n ;\n ;\n ka._init();\n };\n;\n ba(ka, {\n OK: {\n JSBNG__name: \"ok\",\n label: \"Okay\"\n },\n CANCEL: {\n JSBNG__name: \"cancel\",\n label: \"Cancel\",\n className: \"inputaux\"\n },\n CLOSE: {\n JSBNG__name: \"close\",\n label: \"Close\"\n },\n NEXT: {\n JSBNG__name: \"next\",\n label: \"Next\"\n },\n SAVE: {\n JSBNG__name: \"save\",\n label: \"Save\"\n },\n SUBMIT: {\n JSBNG__name: \"submit\",\n label: \"Submit\"\n },\n CONFIRM: {\n JSBNG__name: \"JSBNG__confirm\",\n label: \"Confirm\"\n },\n DELETE: {\n JSBNG__name: \"delete\",\n label: \"Delete\"\n },\n _globalCount: 0,\n _bottoms: [0,],\n max_bottom: 0,\n _updateMaxBottom: function() {\n ka.max_bottom = Math.max.apply(Math, ka._bottoms);\n }\n });\n ba(ka, {\n OK_AND_CANCEL: [ka.OK,ka.CANCEL,],\n _STANDARD_BUTTONS: [ka.OK,ka.CANCEL,ka.CLOSE,ka.SAVE,ka.SUBMIT,ka.CONFIRM,ka.DELETE,],\n SIZE: {\n WIDE: 555,\n STANDARD: 445\n },\n _HALO_WIDTH: 10,\n _BORDER_WIDTH: 1,\n _PADDING_WIDTH: 10,\n _PAGE_MARGIN: 40,\n _stack: [],\n _isUsingCSSBorders: function() {\n return ((y.ie() < 7));\n },\n newButton: function(la, ma, na, oa) {\n var pa = {\n JSBNG__name: la,\n label: ma\n };\n if (na) {\n pa.className = na;\n }\n ;\n ;\n if (oa) {\n pa.handler = oa;\n }\n ;\n ;\n return pa;\n },\n getCurrent: function() {\n var la = ka._stack;\n return ((la.length ? la[((la.length - 1))] : null));\n },\n hideCurrent: function() {\n var la = ka.getCurrent();\n ((la && la.hide()));\n },\n bootstrap: function(la, ma, na, oa, pa, qa) {\n ma = ((ma || {\n }));\n ba(ma, new x(la).getQueryData());\n oa = ((oa || ((na ? \"GET\" : \"POST\"))));\n var ra = ((u.byClass(qa, \"stat_elem\") || qa));\n if (((ra && m.hasClass(ra, \"async_saving\")))) {\n return false;\n }\n ;\n ;\n var sa = new i().setReadOnly(!!na).setMethod(oa).setRelativeTo(qa).setStatusElement(ra).setURI(la).setNectarModuleDataSafe(qa).setData(ma), ta = new ka(pa).setCausalElement(qa).setAsync(sa);\n ta.show();\n return false;\n },\n showFromModel: function(la, ma) {\n var na = new ka(la).setCausalElement(ma).show();\n if (la.hiding) {\n na.hide();\n }\n ;\n ;\n },\n _init: function() {\n this._init = da;\n v.onLeave(ha(ka._tearDown, null, false));\n h.subscribe(\"page_transition\", ha(ka._tearDown, null, true));\n o.listen(JSBNG__document.documentElement, \"keydown\", function(JSBNG__event) {\n if (((((o.getKeyCode(JSBNG__event) == s.ESC)) && !JSBNG__event.getModifiers().any))) {\n if (ka._escape()) {\n JSBNG__event.kill();\n }\n ;\n ;\n }\n else if (((((o.getKeyCode(JSBNG__event) == s.RETURN)) && !JSBNG__event.getModifiers().any))) {\n if (ka._enter()) {\n JSBNG__event.kill();\n }\n ;\n }\n \n ;\n ;\n });\n o.listen(window, \"resize\", function(JSBNG__event) {\n var la = ka.getCurrent();\n ((la && la._resetDialogObj()));\n });\n },\n _findButton: function(la, ma) {\n if (la) {\n for (var na = 0; ((na < la.length)); ++na) {\n if (((la[na].JSBNG__name == ma))) {\n return la[na];\n }\n ;\n ;\n };\n }\n ;\n ;\n return null;\n },\n _tearDown: function(la) {\n var ma = ka._stack.slice();\n for (var na = ((ma.length - 1)); ((na >= 0)); na--) {\n if (((((la && !ma[na]._cross_transition)) || ((!la && !ma[na]._cross_quickling))))) {\n ma[na].hide();\n }\n ;\n ;\n };\n ;\n },\n _escape: function() {\n var la = ka.getCurrent();\n if (!la) {\n return false;\n }\n ;\n ;\n var ma = la._semi_modal, na = la._buttons;\n if (((!na.length && !ma))) {\n return false;\n }\n ;\n ;\n if (((ma && !na.length))) {\n la.hide();\n return true;\n }\n ;\n ;\n var oa, pa = ka._findButton(na, \"cancel\");\n if (la._cancelHandler) {\n la.cancel();\n return true;\n }\n else if (pa) {\n oa = pa;\n }\n else if (((na.length == 1))) {\n oa = na[0];\n }\n else return false\n \n \n ;\n la._handleButton(oa);\n return true;\n },\n _enter: function() {\n var la = ka.getCurrent();\n if (((!la || !la._submit_on_enter))) {\n return false;\n }\n ;\n ;\n if (((JSBNG__document.activeElement != la._frame))) {\n return false;\n }\n ;\n ;\n var ma = la._buttons;\n if (!ma) {\n return false;\n }\n ;\n ;\n la._handleButton(ma[0]);\n return true;\n },\n call_or_eval: function(la, ma, na) {\n if (!ma) {\n return undefined;\n }\n ;\n ;\n na = ((na || {\n }));\n if (((typeof ma == \"string\"))) {\n var oa = Object.keys(na).join(\", \");\n ma = (eval)(((((((((\"({f: function(\" + oa)) + \") { \")) + ma)) + \"}})\"))).f;\n }\n ;\n ;\n return ma.apply(la, ea(na));\n }\n });\n ba(ka.prototype, {\n _cross_quickling: false,\n _cross_transition: false,\n _loading: false,\n _showing: false,\n show: function() {\n this._showing = true;\n if (this._async_request) {\n if (this._show_loading) {\n this.showLoading();\n }\n ;\n ;\n }\n else this._update();\n ;\n ;\n return this;\n },\n showLoading: function() {\n this._loading = true;\n m.addClass(this._frame, \"dialog_loading_shown\");\n this._renderDialog();\n return this;\n },\n hide: function() {\n if (((!this._showing && !this._loading))) {\n return this;\n }\n ;\n ;\n this._showing = false;\n if (this._autohide_timeout) {\n JSBNG__clearTimeout(this._autohide_timeout);\n this._autohide_timeout = null;\n }\n ;\n ;\n if (((this._fade_enabled && ((ka._stack.length <= 1))))) {\n this._fadeOut();\n }\n else this._hide();\n ;\n ;\n return this;\n },\n cancel: function() {\n if (((!this._cancelHandler || ((this._cancelHandler() !== false))))) {\n this.hide();\n }\n ;\n ;\n },\n getRoot: function() {\n return this._obj;\n },\n getBody: function() {\n return n.scry(this._obj, \"div.dialog_body\")[0];\n },\n getButtonElement: function(la) {\n if (((typeof la == \"string\"))) {\n la = ka._findButton(this._buttons, la);\n }\n ;\n ;\n if (((!la || !la.JSBNG__name))) {\n return null;\n }\n ;\n ;\n var ma = n.scry(this._popup, \"input\"), na = function(oa) {\n return ((oa.JSBNG__name == la.JSBNG__name));\n };\n return ((ma.filter(na)[0] || null));\n },\n getContentNode: function() {\n return n.JSBNG__find(this._content, \"div.dialog_content\");\n },\n getFormData: function() {\n return q.serialize(this.getContentNode());\n },\n setAllowCrossPageTransition: function(la) {\n this._cross_transition = la;\n return this;\n },\n setAllowCrossQuicklingNavigation: function(la) {\n this._cross_quickling = la;\n return this;\n },\n setShowing: function() {\n this.show();\n return this;\n },\n setHiding: function() {\n this.hide();\n return this;\n },\n setTitle: function(la) {\n var ma = this._nodes.title, na = this._nodes.title_inner, oa = this._nodes.JSBNG__content;\n n.setContent(na, this._format(((la || \"\"))));\n m.conditionShow(ma, !!la);\n m.conditionClass(oa, \"dialog_content_titleless\", !la);\n return this;\n },\n setBody: function(la) {\n n.setContent(this._nodes.body, this._format(la));\n return this;\n },\n setExtraData: function(la) {\n this._extra_data = la;\n return this;\n },\n setReturnData: function(la) {\n this._return_data = la;\n return this;\n },\n setShowLoading: function(la) {\n this._show_loading = la;\n return this;\n },\n setCustomLoading: function(la) {\n var ma = n.create(\"div\", {\n className: \"dialog_loading\"\n }, la);\n n.setContent(this._frame, [this._nodes.title,this._nodes.JSBNG__content,ma,]);\n return this;\n },\n setFullBleed: function(la) {\n this._full_bleed = la;\n this._updateWidth();\n m.conditionClass(this._obj, \"full_bleed\", la);\n return this;\n },\n setCausalElement: function(la) {\n this._causal_elem = la;\n return this;\n },\n setUserData: function(la) {\n this._user_data = la;\n return this;\n },\n getUserData: function() {\n return this._user_data;\n },\n setAutohide: function(la) {\n if (la) {\n if (this._showing) {\n this._autohide_timeout = JSBNG__setTimeout(ha(this.hide, this), la);\n }\n else this._autohide = la;\n ;\n ;\n }\n else {\n this._autohide = null;\n if (this._autohide_timeout) {\n JSBNG__clearTimeout(this._autohide_timeout);\n this._autohide_timeout = null;\n }\n ;\n ;\n }\n ;\n ;\n return this;\n },\n setSummary: function(la) {\n var ma = this._nodes.summary;\n n.setContent(ma, this._format(((la || \"\"))));\n m.conditionShow(ma, !!la);\n return this;\n },\n setButtons: function(la) {\n var ma, na;\n if (!((la instanceof Array))) {\n ma = ca(arguments);\n }\n else ma = la;\n ;\n ;\n for (var oa = 0; ((oa < ma.length)); ++oa) {\n if (((typeof ma[oa] == \"string\"))) {\n na = ka._findButton(ka._STANDARD_BUTTONS, ma[oa]);\n ma[oa] = na;\n }\n ;\n ;\n };\n ;\n this._buttons = ma;\n var pa = [];\n if (((ma && ((ma.length > 0))))) {\n for (var qa = 0; ((qa < ma.length)); qa++) {\n na = ma[qa];\n var ra = n.create(\"input\", {\n type: \"button\",\n JSBNG__name: ((na.JSBNG__name || \"\")),\n value: na.label\n }), sa = n.create(\"label\", {\n className: \"uiButton uiButtonLarge uiButtonConfirm\"\n }, ra);\n if (na.className) {\n na.className.split(/\\s+/).forEach(function(ua) {\n m.addClass(sa, ua);\n });\n if (m.hasClass(sa, \"inputaux\")) {\n m.removeClass(sa, \"inputaux\");\n m.removeClass(sa, \"uiButtonConfirm\");\n }\n ;\n ;\n if (m.hasClass(sa, \"uiButtonSpecial\")) {\n m.removeClass(sa, \"uiButtonConfirm\");\n }\n ;\n ;\n }\n ;\n ;\n if (na.icon) {\n n.prependContent(sa, n.create(\"img\", {\n src: na.icon,\n className: \"img mrs\"\n }));\n }\n ;\n ;\n if (na.disabled) {\n k.setEnabled(sa, false);\n }\n ;\n ;\n o.listen(ra, \"click\", this._handleButton.bind(this, na.JSBNG__name));\n {\n var fin108keys = ((window.top.JSBNG_Replay.forInKeys)((na))), fin108i = (0);\n var ta;\n for (; (fin108i < fin108keys.length); (fin108i++)) {\n ((ta) = (fin108keys[fin108i]));\n {\n if (((((ta.indexOf(\"data-\") === 0)) && ((ta.length > 5))))) {\n ra.setAttribute(ta, na[ta]);\n }\n ;\n ;\n };\n };\n };\n ;\n pa.push(sa);\n };\n }\n ;\n ;\n n.setContent(this._nodes.buttons, pa);\n this._updateButtonVisibility();\n return this;\n },\n setButtonsMessage: function(la) {\n n.setContent(this._nodes.button_message, this._format(((la || \"\"))));\n this._has_button_message = !!la;\n this._updateButtonVisibility();\n return this;\n },\n _updateButtonVisibility: function() {\n var la = ((((this._buttons.length > 0)) || this._has_button_message));\n m.conditionShow(this._nodes.button_wrapper, la);\n m.conditionClass(this._obj, \"omitDialogFooter\", !la);\n },\n setClickButtonOnEnter: function(la, ma) {\n this._clickOnEnterTarget = la;\n if (!this._clickOnEnterListener) {\n this._clickOnEnterListener = o.listen(this._nodes.body, \"keypress\", function(JSBNG__event) {\n var na = JSBNG__event.getTarget();\n if (((na && ((na.id === this._clickOnEnterTarget))))) {\n if (((o.getKeyCode(JSBNG__event) == s.RETURN))) {\n this._handleButton(ma);\n JSBNG__event.kill();\n }\n ;\n }\n ;\n ;\n return true;\n }.bind(this));\n }\n ;\n ;\n return this;\n },\n setStackable: function(la, ma) {\n this._is_stackable = la;\n this._shown_while_stacked = ((la && ma));\n return this;\n },\n setHandler: function(la) {\n this._handler = la;\n return this;\n },\n setCancelHandler: function(la) {\n this._cancelHandler = ka.call_or_eval.bind(null, this, la);\n return this;\n },\n setCloseHandler: function(la) {\n this._close_handler = ka.call_or_eval.bind(null, this, la);\n return this;\n },\n clearHandler: function() {\n return this.setHandler(null);\n },\n setPostURI: function(la, ma) {\n if (((ma === undefined))) {\n ma = true;\n }\n ;\n ;\n if (ma) {\n this.setHandler(this._submitForm.bind(this, \"POST\", la));\n }\n else this.setHandler(function() {\n q.post(la, this.getFormData());\n this.hide();\n }.bind(this));\n ;\n ;\n return this;\n },\n setGetURI: function(la) {\n this.setHandler(this._submitForm.bind(this, \"GET\", la));\n return this;\n },\n setModal: function(la) {\n this._modal = la;\n m.conditionClass(this._obj, \"generic_dialog_modal\", la);\n return this;\n },\n setSemiModal: function(la) {\n if (la) {\n this.setModal(true);\n this._semiModalListener = o.listen(this._obj, \"click\", function(ma) {\n if (!n.contains(this._popup, ma.getTarget())) {\n this.hide();\n }\n ;\n ;\n }.bind(this));\n }\n else ((this._semiModalListener && this._semiModalListener.remove()));\n ;\n ;\n this._semi_modal = la;\n return this;\n },\n setWideDialog: function(la) {\n this._wide_dialog = la;\n this._updateWidth();\n return this;\n },\n setContentWidth: function(la) {\n this._content_width = la;\n this._updateWidth();\n return this;\n },\n setTitleLoading: function(la) {\n if (((la === undefined))) {\n la = true;\n }\n ;\n ;\n var ma = n.JSBNG__find(this._popup, \"h2.dialog_title\");\n if (ma) {\n m.conditionClass(ma, \"loading\", la);\n }\n ;\n ;\n return this;\n },\n setSecure: function(la) {\n m.conditionClass(this._nodes.title, \"secure\", la);\n return this;\n },\n setClassName: function(la) {\n la.split(/\\s+/).forEach(m.addClass.bind(m, this._obj));\n return this;\n },\n setFadeEnabled: function(la) {\n this._fade_enabled = la;\n return this;\n },\n setFooter: function(la) {\n var ma = this._nodes.footer;\n n.setContent(ma, this._format(((la || \"\"))));\n m.conditionShow(ma, !!la);\n return this;\n },\n setAutoFocus: function(la) {\n this._auto_focus = la;\n return this;\n },\n setTop: function(la) {\n this._top = la;\n this._resetDialogObj();\n return this;\n },\n onloadRegister: function(la) {\n ca(la).forEach(function(ma) {\n if (((typeof ma == \"string\"))) {\n ma = new Function(ma);\n }\n ;\n ;\n this._onload_handlers.push(ma.bind(this));\n }.bind(this));\n return this;\n },\n setAsyncURL: function(la) {\n return this.setAsync(new i(la));\n },\n setAsync: function(la) {\n var ma = function(ua) {\n if (((this._async_request != la))) {\n return;\n }\n ;\n ;\n this._async_request = null;\n var va = ua.getPayload(), wa = va;\n if (this._loading) {\n this._showing = true;\n }\n ;\n ;\n if (((typeof wa == \"string\"))) {\n this.setBody(wa);\n }\n else this._setFromModel(wa);\n ;\n ;\n this._update();\n }.bind(this), na = la.getData();\n na.__d = 1;\n la.setData(na);\n var oa = ((la.getHandler() || da));\n la.setHandler(function(ua) {\n oa(ua);\n ma(ua);\n });\n var pa = la, qa = ((pa.getErrorHandler() || da)), ra = ((pa.getTransportErrorHandler() || da)), sa = function() {\n this._async_request = null;\n this._loading = false;\n if (((this._showing && this._shown_while_stacked))) {\n this._update();\n }\n else this._hide(this._is_stackable);\n ;\n ;\n }.bind(this), ta = ((pa.getServerDialogCancelHandler() || sa));\n pa.setAllowCrossPageTransition(this._cross_transition).setErrorHandler(function(ua) {\n sa();\n qa(ua);\n }).setTransportErrorHandler(function(ua) {\n sa();\n ra(ua);\n }).setServerDialogCancelHandler(ta);\n la.send();\n this._async_request = la;\n if (this._showing) {\n this.show();\n }\n ;\n ;\n return this;\n },\n _format: function(la) {\n if (((typeof la == \"string\"))) {\n la = r(la);\n }\n else la = r.replaceJSONWrapper(la);\n ;\n ;\n if (((la instanceof r))) {\n la.setDeferred(true);\n }\n ;\n ;\n return la;\n },\n _update: function() {\n if (!this._showing) {\n return;\n }\n ;\n ;\n if (((((this._autohide && !this._async_request)) && !this._autohide_timeout))) {\n this._autohide_timeout = JSBNG__setTimeout(aa(this, \"hide\"), this._autohide);\n }\n ;\n ;\n m.removeClass(this._frame, \"dialog_loading_shown\");\n this._loading = false;\n this._renderDialog();\n this._runOnloads();\n this._previous_focus = JSBNG__document.activeElement;\n p.set(this._frame);\n },\n _runOnloads: function() {\n for (var la = 0; ((la < this._onload_handlers.length)); ++la) {\n try {\n this._onload_handlers[la]();\n } catch (ma) {\n \n };\n ;\n };\n ;\n this._onload_handlers = [];\n },\n _updateWidth: function() {\n var la = ((2 * ka._BORDER_WIDTH));\n if (ka._isUsingCSSBorders()) {\n la += ((2 * ka._HALO_WIDTH));\n }\n ;\n ;\n if (this._content_width) {\n la += this._content_width;\n if (!this._full_bleed) {\n la += ((2 * ka._PADDING_WIDTH));\n }\n ;\n ;\n }\n else if (this._wide_dialog) {\n la += ka.SIZE.WIDE;\n }\n else la += ka.SIZE.STANDARD;\n \n ;\n ;\n this._popup.style.width = ((la + \"px\"));\n },\n _updateZIndex: function() {\n if (((!this._hasSetZIndex && this._causal_elem))) {\n var la = fa(this._causal_elem), ma = this._causal_elem;\n while (((!la && (ma = l.getContext(ma))))) {\n la = fa(ma);\n ;\n };\n ;\n this._hasSetZIndex = ((la > ((this._modal ? 400 : 200))));\n w.set(this._obj, \"z-index\", ((this._hasSetZIndex ? la : \"\")));\n }\n ;\n ;\n },\n _renderDialog: function() {\n this._updateZIndex();\n this._pushOntoStack();\n this._obj.style.height = ((((this._modal && ((y.ie() < 7)))) ? ((z.getDocumentDimensions().y + \"px\")) : null));\n if (((this._obj && this._obj.style.display))) {\n this._obj.style.visibility = \"hidden\";\n this._obj.style.display = \"\";\n this.resetDialogPosition();\n this._obj.style.visibility = \"\";\n this._obj.dialog = this;\n }\n else this.resetDialogPosition();\n ;\n ;\n JSBNG__clearInterval(this.active_hiding);\n this.active_hiding = JSBNG__setInterval(this._activeResize.bind(this), 500);\n this._submit_on_enter = false;\n if (this._auto_focus) {\n var la = q.getFirstElement(this._content, [\"input[type=\\\"text\\\"]\",\"textarea\",\"input[type=\\\"password\\\"]\",]);\n if (la) {\n q.focusFirst.bind(this, this._content).defer();\n }\n else this._submit_on_enter = true;\n ;\n ;\n }\n ;\n ;\n var ma = ((z.getElementDimensions(this._content).y + z.getElementPosition(this._content).y));\n ka._bottoms.push(ma);\n this._bottom = ma;\n ka._updateMaxBottom();\n return this;\n },\n _buildDialog: function() {\n this._obj = n.create(\"div\", {\n className: \"generic_dialog\",\n id: this._uniqueID\n });\n this._obj.style.display = \"none\";\n n.appendContent(JSBNG__document.body, this._obj);\n if (!this._popup) {\n this._popup = n.create(\"div\", {\n className: \"generic_dialog_popup\"\n });\n }\n ;\n ;\n this._obj.appendChild(this._popup);\n if (((((y.ie() < 7)) && !this._shim))) {\n j.loadModules([\"IframeShim\",], function(xa) {\n this._shim = new xa(this._popup);\n });\n }\n ;\n ;\n m.addClass(this._obj, \"pop_dialog\");\n if (t.isRTL()) {\n m.addClass(this._obj, \"pop_dialog_rtl\");\n }\n ;\n ;\n var la;\n if (ka._isUsingCSSBorders()) {\n la = ((((\"\\u003Cdiv class=\\\"pop_container_advanced\\\"\\u003E\" + \"\\u003Cdiv class=\\\"pop_content\\\" id=\\\"pop_content\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003C/div\\u003E\"));\n }\n else la = ((((((((((((((((\"\\u003Cdiv class=\\\"pop_container\\\"\\u003E\" + \"\\u003Cdiv class=\\\"pop_verticalslab\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_horizontalslab\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_topleft\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_topright\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_bottomright\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_bottomleft\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_content pop_content_old\\\" id=\\\"pop_content\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003C/div\\u003E\"));\n ;\n ;\n n.setContent(this._popup, r(la));\n var ma = n.JSBNG__find(this._popup, \"div.pop_content\");\n ma.setAttribute(\"tabIndex\", \"0\");\n ma.setAttribute(\"role\", \"alertdialog\");\n this._frame = this._content = ma;\n var na = n.create(\"div\", {\n className: \"dialog_loading\"\n }, \"Loading...\"), oa = n.create(\"span\"), pa = n.create(\"h2\", {\n className: \"dialog_title hidden_elem\",\n id: ((\"title_\" + this._uniqueID))\n }, oa), qa = n.create(\"div\", {\n className: \"dialog_summary hidden_elem\"\n }), ra = n.create(\"div\", {\n className: \"dialog_body\"\n }), sa = n.create(\"div\", {\n className: \"rfloat mlm\"\n }), ta = n.create(\"div\", {\n className: \"dialog_buttons_msg\"\n }), ua = n.create(\"div\", {\n className: \"dialog_buttons clearfix hidden_elem\"\n }, [sa,ta,]), va = n.create(\"div\", {\n className: \"dialog_footer hidden_elem\"\n }), wa = n.create(\"div\", {\n className: \"dialog_content\"\n }, [qa,ra,ua,va,]);\n this._nodes = {\n summary: qa,\n body: ra,\n buttons: sa,\n button_message: ta,\n button_wrapper: ua,\n footer: va,\n JSBNG__content: wa,\n title: pa,\n title_inner: oa\n };\n n.setContent(this._frame, [pa,wa,na,]);\n },\n _updateShim: function() {\n return ((this._shim && this._shim.show()));\n },\n _activeResize: function() {\n if (((this.last_offset_height != this._content.offsetHeight))) {\n this.last_offset_height = this._content.offsetHeight;\n this.resetDialogPosition();\n }\n ;\n ;\n },\n resetDialogPosition: function() {\n if (!this._popup) {\n return;\n }\n ;\n ;\n this._resetDialogObj();\n this._updateShim();\n },\n _resetDialogObj: function() {\n var la = ((2 * ka._PAGE_MARGIN)), ma = z.getViewportDimensions(), na = ((ma.x - la)), oa = ((ma.y - la)), pa = ((2 * ka._HALO_WIDTH)), qa = z.getElementDimensions(this._content), ra = ((qa.x + pa)), sa = ((qa.y + pa)), ta = this._top, ua = ((na - ra)), va = ((oa - sa));\n if (((va < 0))) {\n ta = ka._PAGE_MARGIN;\n }\n else if (((ta > va))) {\n ta = ((ka._PAGE_MARGIN + ((Math.max(va, 0) / 2))));\n }\n \n ;\n ;\n var wa = ja();\n if (!wa) {\n ta += z.getScrollPosition().y;\n }\n ;\n ;\n w.set(this._popup, \"marginTop\", ((ta + \"px\")));\n var xa = ((wa && ((((ua < 0)) || ((va < 0))))));\n m.conditionClass(this._obj, \"generic_dialog_fixed_overflow\", xa);\n m.conditionClass(JSBNG__document.documentElement, \"generic_dialog_overflow_mode\", xa);\n },\n _fadeOut: function(la) {\n if (!this._popup) {\n return;\n }\n ;\n ;\n try {\n new g(this._obj).duration(0).checkpoint().to(\"opacity\", 0).hide().duration(250).ondone(this._hide.bind(this, la)).go();\n } catch (ma) {\n this._hide(la);\n };\n ;\n },\n _hide: function(la) {\n if (this._obj) {\n this._obj.style.display = \"none\";\n }\n ;\n ;\n m.removeClass(JSBNG__document.documentElement, \"generic_dialog_overflow_mode\");\n this._updateShim();\n JSBNG__clearInterval(this.active_hiding);\n if (this._bottom) {\n var ma = ka._bottoms;\n ma.splice(ma.indexOf(this._bottom), 1);\n ka._updateMaxBottom();\n }\n ;\n ;\n if (((((this._previous_focus && JSBNG__document.activeElement)) && n.contains(this._obj, JSBNG__document.activeElement)))) {\n p.set(this._previous_focus);\n }\n ;\n ;\n if (la) {\n return;\n }\n ;\n ;\n this.destroy();\n },\n destroy: function() {\n this._popFromStack();\n JSBNG__clearInterval(this.active_hiding);\n if (this._obj) {\n n.remove(this._obj);\n this._obj = null;\n ((this._shim && this._shim.hide()));\n this._shim = null;\n }\n ;\n ;\n ((this._clickOnEnterListener && this._clickOnEnterListener.remove()));\n if (this._close_handler) {\n this._close_handler({\n return_data: this._return_data\n });\n }\n ;\n ;\n },\n _handleButton: function(la) {\n if (((typeof la == \"string\"))) {\n la = ka._findButton(this._buttons, la);\n }\n ;\n ;\n var ma = ka.call_or_eval(la, la.handler);\n if (((ma === false))) {\n return;\n }\n ;\n ;\n if (((la.JSBNG__name == \"cancel\"))) {\n this.cancel();\n }\n else if (((ka.call_or_eval(this, this._handler, {\n button: la\n }) !== false))) {\n this.hide();\n }\n \n ;\n ;\n },\n _submitForm: function(la, ma, na) {\n var oa = this.getFormData();\n if (na) {\n oa[na.JSBNG__name] = na.label;\n }\n ;\n ;\n if (this._extra_data) {\n ba(oa, this._extra_data);\n }\n ;\n ;\n var pa = new i().setURI(ma).setData(oa).setMethod(la).setNectarModuleDataSafe(this._causal_elem).setReadOnly(((la == \"GET\")));\n this.setAsync(pa);\n return false;\n },\n _setFromModel: function(la) {\n var ma = {\n };\n ba(ma, la);\n {\n var fin109keys = ((window.top.JSBNG_Replay.forInKeys)((ma))), fin109i = (0);\n var na;\n for (; (fin109i < fin109keys.length); (fin109i++)) {\n ((na) = (fin109keys[fin109i]));\n {\n if (((na == \"onloadRegister\"))) {\n this.onloadRegister(ma[na]);\n continue;\n }\n ;\n ;\n var oa = this[((((\"set\" + na.substr(0, 1).toUpperCase())) + na.substr(1)))];\n oa.apply(this, ca(ma[na]));\n };\n };\n };\n ;\n },\n _updateBottom: function() {\n var la = ((z.getElementDimensions(this._content).y + z.getElementPosition(this._content).y));\n ka._bottoms[((ka._bottoms.length - 1))] = la;\n ka._updateMaxBottom();\n },\n _pushOntoStack: function() {\n var la = ka._stack;\n if (!la.length) {\n h.inform(\"layer_shown\", {\n type: \"Dialog\"\n });\n }\n ;\n ;\n ga(la, this);\n la.push(this);\n for (var ma = ((la.length - 2)); ((ma >= 0)); ma--) {\n var na = la[ma];\n if (((!na._is_stackable && !na._async_request))) {\n na._hide();\n }\n else if (!na._shown_while_stacked) {\n na._hide(true);\n }\n \n ;\n ;\n };\n ;\n },\n _popFromStack: function() {\n var la = ka._stack, ma = ((la[((la.length - 1))] === this));\n ga(la, this);\n if (la.length) {\n if (ma) {\n la[((la.length - 1))].show();\n }\n ;\n ;\n }\n else h.inform(\"layer_hidden\", {\n type: \"Dialog\"\n });\n ;\n ;\n }\n });\n e.exports = ka;\n a.Dialog = ka;\n});\n__d(\"DialogHideOnSuccess\", [\"copyProperties\",\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"CSS\"), i = b(\"cx\");\n function j(k) {\n this._layer = k;\n };\n;\n g(j.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"success\", this._handle.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _handle: function(k, JSBNG__event) {\n if (h.hasClass(JSBNG__event.getTarget(), \"_s\")) {\n this._layer.hide();\n }\n ;\n ;\n }\n });\n e.exports = j;\n});\n__d(\"DocumentTitle\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = JSBNG__document.title, i = null, j = 1500, k = [], l = 0, m = null, n = false;\n function o() {\n if (((k.length > 0))) {\n if (!n) {\n p(k[l].title);\n l = ((++l % k.length));\n }\n else q();\n ;\n ;\n }\n else {\n JSBNG__clearInterval(m);\n m = null;\n q();\n }\n ;\n ;\n };\n;\n function p(s) {\n JSBNG__document.title = s;\n n = true;\n };\n;\n function q() {\n r.set(((i || h)), true);\n n = false;\n };\n;\n var r = {\n get: function() {\n return h;\n },\n set: function(s, t) {\n JSBNG__document.title = s;\n if (!t) {\n h = s;\n i = null;\n g.inform(\"update_title\", s);\n }\n else i = s;\n ;\n ;\n },\n blink: function(s) {\n var t = {\n title: s\n };\n k.push(t);\n if (((m === null))) {\n m = JSBNG__setInterval(o, j);\n }\n ;\n ;\n return {\n JSBNG__stop: function() {\n var u = k.indexOf(t);\n if (((u >= 0))) {\n k.splice(u, 1);\n if (((l > u))) {\n l--;\n }\n else if (((((l == u)) && ((l == k.length))))) {\n l = 0;\n }\n \n ;\n ;\n }\n ;\n ;\n }\n };\n }\n };\n e.exports = r;\n});\n__d(\"DoublyLinkedListMap\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\");\n function h() {\n this._head = null;\n this._tail = null;\n this._nodes = {\n };\n this._nodeCount = 0;\n };\n;\n g(h.prototype, {\n get: function(i) {\n return ((this._nodes[i] ? this._nodes[i].data : null));\n },\n getIndex: function(i) {\n for (var j = this._head, k = 0; j; j = j.next, k++) {\n if (((j.key === i))) {\n return k;\n }\n ;\n ;\n };\n ;\n return null;\n },\n _insert: function(i, j, k, l) {\n ((((k && !this._nodes[k])) && (k = null)));\n var m = ((((k && this._nodes[k])) || ((l ? this._head : this._tail)))), n = {\n data: j,\n key: i,\n next: null,\n prev: null\n };\n if (m) {\n this.remove(i);\n if (l) {\n n.prev = m.prev;\n ((m.prev && (m.prev.next = n)));\n m.prev = n;\n n.next = m;\n }\n else {\n n.next = m.next;\n ((m.next && (m.next.prev = n)));\n m.next = n;\n n.prev = m;\n }\n ;\n ;\n }\n ;\n ;\n ((((n.prev === null)) && (this._head = n)));\n ((((n.next === null)) && (this._tail = n)));\n this._nodes[i] = n;\n this._nodeCount++;\n return this;\n },\n insertBefore: function(i, j, k) {\n return this._insert(i, j, k, true);\n },\n insertAfter: function(i, j, k) {\n return this._insert(i, j, k, false);\n },\n prepend: function(i, j) {\n return this.insertBefore(i, j, ((this._head && this._head.key)));\n },\n append: function(i, j) {\n return this.insertAfter(i, j, ((this._tail && this._tail.key)));\n },\n remove: function(i) {\n var j = this._nodes[i];\n if (j) {\n var k = j.next, l = j.prev;\n ((k && (k.prev = l)));\n ((l && (l.next = k)));\n ((((this._head === j)) && (this._head = k)));\n ((((this._tail === j)) && (this._tail = l)));\n delete this._nodes[i];\n this._nodeCount--;\n }\n ;\n ;\n return this;\n },\n JSBNG__find: function(i) {\n for (var j = this._head; j; j = j.next) {\n if (i(j.data)) {\n return j.key;\n }\n ;\n ;\n };\n ;\n return null;\n },\n reduce: function(i, j) {\n for (var k = this._head; k; k = k.next) {\n j = i(k.data, j);\n ;\n };\n ;\n return j;\n },\n exists: function(i) {\n return !!this._nodes[i];\n },\n isEmpty: function() {\n return !this._head;\n },\n reset: function() {\n this._head = null;\n this._tail = null;\n this._nodes = {\n };\n this._nodeCount = 0;\n },\n map: function(i) {\n for (var j = this._head; j; j = j.next) {\n i(j.data);\n ;\n };\n ;\n },\n getCount: function() {\n return this._nodeCount;\n },\n getHead: function() {\n return ((this._head && this._head.data));\n },\n getTail: function() {\n return ((this._tail && this._tail.data));\n },\n getNext: function(i) {\n var j = this._nodes[i];\n if (((j && j.next))) {\n return j.next.data;\n }\n ;\n ;\n return null;\n },\n getPrev: function(i) {\n var j = this._nodes[i];\n if (((j && j.prev))) {\n return j.prev.data;\n }\n ;\n ;\n return null;\n }\n });\n e.exports = h;\n});\n__d(\"throttle\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\");\n function h(j, k, l) {\n return i(j, k, l, false, false);\n };\n;\n g(h, {\n acrossTransitions: function(j, k, l) {\n return i(j, k, l, true, false);\n },\n withBlocking: function(j, k, l) {\n return i(j, k, l, false, true);\n }\n });\n function i(j, k, l, m, n) {\n if (((k == null))) {\n k = 100;\n }\n ;\n ;\n var o, p, q;\n function r() {\n p = JSBNG__Date.now();\n if (o) {\n j.apply(l, o);\n o = null;\n q = JSBNG__setTimeout(r, k, !m);\n }\n else q = false;\n ;\n ;\n };\n ;\n return function s() {\n o = arguments;\n if (((!q || ((((JSBNG__Date.now() - p)) > k))))) {\n if (n) {\n r();\n }\n else q = JSBNG__setTimeout(r, 0, !m);\n ;\n }\n ;\n ;\n };\n };\n;\n e.exports = h;\n});\n__d(\"FullScreen\", [\"JSBNG__Event\",\"Arbiter\",\"CSS\",\"UserAgent\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"UserAgent\"), k = b(\"copyProperties\"), l = b(\"throttle\"), m = {\n }, n = k(new h(), {\n listenForEvent: function(p) {\n var q = l(this.onChange, 0, this);\n if (!m[p.id]) {\n m[p.id] = true;\n g.listen(p, {\n webkitfullscreenchange: q,\n mozfullscreenchange: q,\n fullscreenchange: q\n });\n }\n ;\n ;\n },\n enableFullScreen: function(p) {\n this.listenForEvent(p);\n if (p.webkitRequestFullScreen) {\n if (j.chrome()) {\n p.webkitRequestFullScreen(JSBNG__Element.ALLOW_KEYBOARD_INPUT);\n }\n else p.webkitRequestFullScreen();\n ;\n ;\n }\n else if (p.mozRequestFullScreen) {\n p.mozRequestFullScreen();\n }\n else if (p.requestFullScreen) {\n p.requestFullScreen();\n }\n else return false\n \n \n ;\n return true;\n },\n disableFullScreen: function() {\n if (JSBNG__document.webkitCancelFullScreen) {\n JSBNG__document.webkitCancelFullScreen();\n }\n else if (JSBNG__document.mozCancelFullScreen) {\n JSBNG__document.mozCancelFullScreen();\n }\n else if (JSBNG__document.cancelFullScreen) {\n JSBNG__document.cancelFullScreen();\n }\n else if (JSBNG__document.exitFullScreen) {\n JSBNG__document.exitFullScreen();\n }\n else return false\n \n \n \n ;\n return true;\n },\n isFullScreen: function() {\n return ((((JSBNG__document.webkitIsFullScreen || JSBNG__document.JSBNG__fullScreen)) || JSBNG__document.mozFullScreen));\n },\n toggleFullScreen: function(p) {\n if (this.isFullScreen()) {\n this.disableFullScreen();\n return false;\n }\n else return this.enableFullScreen(p)\n ;\n return false;\n },\n onChange: function() {\n var p = this.isFullScreen();\n i.conditionClass(JSBNG__document.body, \"JSBNG__fullScreen\", p);\n this.inform(\"changed\");\n },\n isSupported: function() {\n return ((((((((JSBNG__document.webkitCancelFullScreen && j.chrome())) || JSBNG__document.mozCancelFullScreen)) || JSBNG__document.cancelFullScreen)) || JSBNG__document.exitFullScreen));\n }\n }), o = l(n.onChange, 0, n);\n g.listen(JSBNG__document, {\n webkitfullscreenchange: o,\n mozfullscreenchange: o,\n fullscreenchange: o\n });\n e.exports = n;\n});\n__d(\"HistoryManager\", [\"JSBNG__Event\",\"function-extensions\",\"Cookie\",\"Env\",\"URI\",\"UserAgent\",\"copyProperties\",\"emptyFunction\",\"goOrReplace\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"Cookie\"), i = b(\"Env\"), j = b(\"URI\"), k = b(\"UserAgent\"), l = b(\"copyProperties\"), m = b(\"emptyFunction\"), n = b(\"goOrReplace\"), o = {\n _IFRAME_BASE_URI: \"http://static.ak.facebook.com/common/history_manager.php\",\n JSBNG__history: null,\n current: 0,\n fragment: null,\n _setIframeSrcFragment: function(p) {\n p = p.toString();\n var q = ((o.JSBNG__history.length - 1));\n o.iframe.src = ((((((((o._IFRAME_BASE_URI + \"?|index=\")) + q)) + \"#\")) + encodeURIComponent(p)));\n return o;\n },\n getIframeSrcFragment: function() {\n return decodeURIComponent(j(o.iframe.contentWindow.JSBNG__document.JSBNG__location.href).getFragment());\n },\n nextframe: function(p, q) {\n if (q) {\n o._setIframeSrcFragment(p);\n return;\n }\n ;\n ;\n if (((p !== undefined))) {\n o.iframeQueue.push(p);\n }\n else {\n o.iframeQueue.splice(0, 1);\n o.iframeTimeout = null;\n o.checkURI();\n }\n ;\n ;\n if (((o.iframeQueue.length && !o.iframeTimeout))) {\n var r = o.iframeQueue[0];\n o.iframeTimeout = JSBNG__setTimeout(function() {\n o._setIframeSrcFragment(r);\n }, 100, false);\n }\n ;\n ;\n },\n isInitialized: function() {\n return !!o._initialized;\n },\n init: function() {\n if (((!i.ALLOW_TRANSITION_IN_IFRAME && ((window != window.JSBNG__top))))) {\n return;\n }\n ;\n ;\n if (o._initialized) {\n return o;\n }\n ;\n ;\n var p = j(), q = ((p.getFragment() || \"\"));\n if (((q.charAt(0) === \"!\"))) {\n q = q.substr(1);\n p.setFragment(q);\n }\n ;\n ;\n if (((j.getRequestURI(false).getProtocol().toLowerCase() == \"https\"))) {\n o._IFRAME_BASE_URI = \"https://s-static.ak.facebook.com/common/history_manager.php\";\n }\n ;\n ;\n l(o, {\n _initialized: true,\n fragment: q,\n orig_fragment: q,\n JSBNG__history: [p,],\n callbacks: [],\n lastChanged: JSBNG__Date.now(),\n canonical: j(\"#\"),\n fragmentTimeout: null,\n user: 0,\n iframeTimeout: null,\n iframeQueue: [],\n enabled: true,\n debug: m\n });\n if (((window.JSBNG__history && JSBNG__history.pushState))) {\n this.lastURI = JSBNG__document.JSBNG__URL;\n window.JSBNG__history.replaceState(this.lastURI, null);\n g.listen(window, \"popstate\", function(r) {\n if (((((r && r.state)) && ((o.lastURI != r.state))))) {\n o.lastURI = r.state;\n o.lastChanged = JSBNG__Date.now();\n o.notify(j(r.state).getUnqualifiedURI().toString());\n }\n ;\n ;\n }.bind(o));\n if (((((k.webkit() < 534)) || ((k.chrome() <= 13))))) {\n JSBNG__setInterval(o.checkURI, 42, false);\n o._updateRefererURI(this.lastURI);\n }\n ;\n ;\n return o;\n }\n ;\n ;\n o._updateRefererURI(j.getRequestURI(false));\n if (((((k.webkit() < 500)) || ((k.firefox() < 2))))) {\n o.enabled = false;\n return o;\n }\n ;\n ;\n if (((k.ie() < 8))) {\n o.iframe = JSBNG__document.createElement(\"div\");\n l(o.iframe.style, {\n width: \"0\",\n height: \"0\",\n frameborder: \"0\",\n left: \"0\",\n JSBNG__top: \"0\",\n position: \"absolute\"\n });\n o._setIframeSrcFragment(q);\n JSBNG__document.body.insertBefore(o.iframe, JSBNG__document.body.firstChild);\n }\n else if (((\"JSBNG__onhashchange\" in window))) {\n g.listen(window, \"hashchange\", function() {\n o.checkURI.bind(o).defer();\n });\n }\n else JSBNG__setInterval(o.checkURI, 42, false);\n \n ;\n ;\n return o;\n },\n registerURIHandler: function(p) {\n o.callbacks.push(p);\n return o;\n },\n setCanonicalLocation: function(p) {\n o.canonical = j(p);\n return o;\n },\n notify: function(p) {\n if (((p == o.orig_fragment))) {\n p = o.canonical.getFragment();\n }\n ;\n ;\n for (var q = 0; ((q < o.callbacks.length)); q++) {\n try {\n if (o.callbacks[q](p)) {\n return true;\n }\n ;\n ;\n } catch (r) {\n \n };\n ;\n };\n ;\n return false;\n },\n checkURI: function() {\n if (((((JSBNG__Date.now() - o.lastChanged)) < 400))) {\n return;\n }\n ;\n ;\n if (((window.JSBNG__history && JSBNG__history.pushState))) {\n var p = j(JSBNG__document.JSBNG__URL).removeQueryData(\"ref\").toString(), q = j(o.lastURI).removeQueryData(\"ref\").toString();\n if (((p != q))) {\n o.lastChanged = JSBNG__Date.now();\n o.lastURI = p;\n if (((k.webkit() < 534))) {\n o._updateRefererURI(p);\n }\n ;\n ;\n o.notify(j(p).getUnqualifiedURI().toString());\n }\n ;\n ;\n return;\n }\n ;\n ;\n if (((((k.ie() < 8)) && o.iframeQueue.length))) {\n return;\n }\n ;\n ;\n if (((k.webkit() && ((window.JSBNG__history.length == 200))))) {\n if (!o.warned) {\n o.warned = true;\n }\n ;\n ;\n return;\n }\n ;\n ;\n var r = j().getFragment();\n if (((r.charAt(0) == \"!\"))) {\n r = r.substr(1);\n }\n ;\n ;\n if (((k.ie() < 8))) {\n r = o.getIframeSrcFragment();\n }\n ;\n ;\n r = r.replace(/%23/g, \"#\");\n if (((r != o.fragment.replace(/%23/g, \"#\")))) {\n o.debug([r,\" vs \",o.fragment,\"whl: \",window.JSBNG__history.length,\"QHL: \",o.JSBNG__history.length,].join(\" \"));\n for (var s = ((o.JSBNG__history.length - 1)); ((s >= 0)); --s) {\n if (((o.JSBNG__history[s].getFragment().replace(/%23/g, \"#\") == r))) {\n break;\n }\n ;\n ;\n };\n ;\n ++o.user;\n if (((s >= 0))) {\n o.go(((s - o.current)));\n }\n else o.go(((\"#\" + r)));\n ;\n ;\n --o.user;\n }\n ;\n ;\n },\n _updateRefererURI: function(p) {\n p = p.toString();\n if (((((p.charAt(0) != \"/\")) && ((p.indexOf(\"//\") == -1))))) {\n return;\n }\n ;\n ;\n var q = new j(window.JSBNG__location);\n if (q.isFacebookURI()) {\n var r = ((q.getPath() + window.JSBNG__location.search));\n }\n else var r = \"\"\n ;\n var s = j(p).getQualifiedURI().setFragment(r).toString(), t = 2048;\n if (((s.length > t))) {\n s = ((s.substring(0, t) + \"...\"));\n }\n ;\n ;\n h.set(\"x-referer\", s);\n },\n go: function(p, q, r) {\n if (((window.JSBNG__history && JSBNG__history.pushState))) {\n ((q || ((typeof (p) == \"number\"))));\n var s = j(p).removeQueryData(\"ref\").toString();\n o.lastChanged = JSBNG__Date.now();\n this.lastURI = s;\n if (r) {\n window.JSBNG__history.replaceState(p, null, s);\n }\n else window.JSBNG__history.pushState(p, null, s);\n ;\n ;\n if (((k.webkit() < 534))) {\n o._updateRefererURI(p);\n }\n ;\n ;\n return false;\n }\n ;\n ;\n o.debug(((\"go: \" + p)));\n if (((q === undefined))) {\n q = true;\n }\n ;\n ;\n if (!o.enabled) {\n if (!q) {\n return false;\n }\n ;\n }\n ;\n ;\n if (((typeof (p) == \"number\"))) {\n if (!p) {\n return false;\n }\n ;\n ;\n var t = ((p + o.current)), u = Math.max(0, Math.min(((o.JSBNG__history.length - 1)), t));\n o.current = u;\n t = ((o.JSBNG__history[u].getFragment() || o.orig_fragment));\n t = j(t).removeQueryData(\"ref\").getUnqualifiedURI().toString();\n o.fragment = t;\n o.lastChanged = JSBNG__Date.now();\n if (((k.ie() < 8))) {\n if (o.fragmentTimeout) {\n JSBNG__clearTimeout(o.fragmentTimeout);\n }\n ;\n ;\n o._temporary_fragment = t;\n o.fragmentTimeout = JSBNG__setTimeout(function() {\n window.JSBNG__location.hash = ((\"#!\" + t));\n delete o._temporary_fragment;\n }, 750, false);\n if (!o.user) {\n o.nextframe(t, r);\n }\n ;\n ;\n }\n else if (!o.user) {\n n(window.JSBNG__location, ((((window.JSBNG__location.href.split(\"#\")[0] + \"#!\")) + t)), r);\n }\n \n ;\n ;\n if (q) {\n o.notify(t);\n }\n ;\n ;\n o._updateRefererURI(t);\n return false;\n }\n ;\n ;\n p = j(p);\n if (((p.getDomain() == j().getDomain()))) {\n p = j(((\"#\" + p.getUnqualifiedURI())));\n }\n ;\n ;\n var v = o.JSBNG__history[o.current].getFragment(), w = p.getFragment();\n if (((((w == v)) || ((((v == o.orig_fragment)) && ((w == o.canonical.getFragment()))))))) {\n if (q) {\n o.notify(w);\n }\n ;\n ;\n o._updateRefererURI(w);\n return false;\n }\n ;\n ;\n if (r) {\n o.current--;\n }\n ;\n ;\n var x = ((((o.JSBNG__history.length - o.current)) - 1));\n o.JSBNG__history.splice(((o.current + 1)), x);\n o.JSBNG__history.push(j(p));\n return o.go(1, q, r);\n },\n getCurrentFragment: function() {\n var p = ((((o._temporary_fragment !== undefined)) ? o._temporary_fragment : j.getRequestURI(false).getFragment()));\n return ((((p == o.orig_fragment)) ? o.canonical.getFragment() : p));\n }\n };\n e.exports = o;\n});\n__d(\"InputSelection\", [\"DOM\",\"Focus\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"Focus\"), i = {\n get: function(j) {\n if (!JSBNG__document.selection) {\n return {\n start: j.selectionStart,\n end: j.selectionEnd\n };\n }\n ;\n ;\n var k = JSBNG__document.selection.createRange();\n if (((k.parentElement() !== j))) {\n return {\n start: 0,\n end: 0\n };\n }\n ;\n ;\n var l = j.value.length;\n if (g.isNodeOfType(j, \"input\")) {\n return {\n start: -k.moveStart(\"character\", -l),\n end: -k.moveEnd(\"character\", -l)\n };\n }\n else {\n var m = k.duplicate();\n m.moveToElementText(j);\n m.setEndPoint(\"StartToEnd\", k);\n var n = ((l - m.text.length));\n m.setEndPoint(\"StartToStart\", k);\n return {\n start: ((l - m.text.length)),\n end: n\n };\n }\n ;\n ;\n },\n set: function(j, k, l) {\n if (((typeof l == \"undefined\"))) {\n l = k;\n }\n ;\n ;\n if (JSBNG__document.selection) {\n if (((j.tagName == \"TEXTAREA\"))) {\n var m = ((j.value.slice(0, k).match(/\\r/g) || [])).length, n = ((j.value.slice(k, l).match(/\\r/g) || [])).length;\n k -= m;\n l -= ((m + n));\n }\n ;\n ;\n var o = j.createTextRange();\n o.collapse(true);\n o.moveStart(\"character\", k);\n o.moveEnd(\"character\", ((l - k)));\n o.select();\n }\n else {\n j.selectionStart = k;\n j.selectionEnd = Math.min(l, j.value.length);\n h.set(j);\n }\n ;\n ;\n }\n };\n e.exports = i;\n});\n__d(\"JSONPTransport\", [\"ArbiterMixin\",\"DOM\",\"HTML\",\"URI\",\"asyncCallback\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"URI\"), k = b(\"asyncCallback\"), l = b(\"copyProperties\"), m = {\n }, n = 2, o = \"jsonp\", p = \"div\";\n function q(s) {\n delete m[s];\n };\n;\n function r(s, t) {\n this._type = s;\n this._uri = t;\n m[this.getID()] = this;\n };\n;\n l(r, {\n respond: function(s, t, u) {\n var v = m[s];\n if (v) {\n if (!u) {\n q(s);\n }\n ;\n ;\n if (((v._type == p))) {\n t = JSON.parse(JSON.stringify(t));\n }\n ;\n ;\n k(v.handleResponse.bind(v), \"json\")(t);\n }\n else {\n var w = a.ErrorSignal;\n if (((w && !u))) {\n w.logJSError(\"ajax\", {\n error: \"UnexpectedJsonResponse\",\n extra: {\n id: s,\n uri: ((((t.payload && t.payload.uri)) || \"\"))\n }\n });\n }\n ;\n ;\n }\n ;\n ;\n }\n });\n l(r.prototype, g, {\n getID: function() {\n return ((this._id || (this._id = n++)));\n },\n hasFinished: function() {\n return !((this.getID() in m));\n },\n getRequestURI: function() {\n return j(this._uri).addQueryData({\n __a: 1,\n __adt: this.getID(),\n __req: ((\"jsonp_\" + this.getID()))\n });\n },\n getTransportFrame: function() {\n if (this._iframe) {\n return this._iframe;\n }\n ;\n ;\n var s = ((\"transport_frame_\" + this.getID())), t = i(((((\"\\u003Ciframe class=\\\"hidden_elem\\\" name=\\\"\" + s)) + \"\\\" src=\\\"javascript:void(0)\\\" /\\u003E\")));\n return this._iframe = h.appendContent(JSBNG__document.body, t)[0];\n },\n send: function() {\n if (((this._type === o))) {\n (function() {\n h.appendContent(JSBNG__document.body, h.create(\"script\", {\n src: this.getRequestURI().toString(),\n type: \"text/javascript\"\n }));\n }).bind(this).defer();\n }\n else this.getTransportFrame().src = this.getRequestURI().toString();\n ;\n ;\n },\n handleResponse: function(s) {\n this.inform(\"response\", s);\n if (this.hasFinished()) {\n this._cleanup.bind(this).defer();\n }\n ;\n ;\n },\n abort: function() {\n if (this._aborted) {\n return;\n }\n ;\n ;\n this._aborted = true;\n this._cleanup();\n q(this.getID());\n this.inform(\"abort\");\n },\n _cleanup: function() {\n if (this._iframe) {\n h.remove(this._iframe);\n this._iframe = null;\n }\n ;\n ;\n }\n });\n e.exports = r;\n});\n__d(\"JSXDOM\", [\"DOM\",\"flattenArray\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"flattenArray\"), i = [\"a\",\"br\",\"button\",\"canvas\",\"checkbox\",\"dd\",\"div\",\"dl\",\"dt\",\"em\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"i\",\"div\",\"img\",\"input\",\"label\",\"li\",\"option\",\"p\",\"pre\",\"select\",\"span\",\"strong\",\"table\",\"tbody\",\"thead\",\"td\",\"textarea\",\"th\",\"tr\",\"ul\",\"video\",], j = {\n };\n i.forEach(function(k) {\n var l = function(m, n) {\n if (((arguments.length > 2))) {\n n = Array.prototype.slice.call(arguments, 1);\n }\n ;\n ;\n if (((!n && m))) {\n n = m.children;\n delete m.children;\n }\n ;\n ;\n if (n) {\n n = ((Array.isArray(n) ? h(n) : h([n,])));\n }\n ;\n ;\n return g.create(k, m, n);\n };\n j[k] = l;\n });\n e.exports = j;\n});\n__d(\"LinkController\", [\"JSBNG__Event\",\"DataStore\",\"Parent\",\"trackReferrer\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"DataStore\"), i = b(\"Parent\"), j = b(\"trackReferrer\"), k = \"LinkControllerHandler\", l = [], m = [];\n function n(JSBNG__event) {\n var r = i.byTag(JSBNG__event.getTarget(), \"a\"), s = ((r && r.getAttribute(\"href\", 2)));\n if (((((((!s || r.rel)) || !p(s))) || h.get(r, k)))) {\n return;\n }\n ;\n ;\n var t = g.listen(r, \"click\", function(u) {\n if (((s.charAt(((s.length - 1))) == \"#\"))) {\n u.prevent();\n return;\n }\n ;\n ;\n j(r, s);\n o(r, u);\n });\n h.set(r, k, t);\n };\n;\n function o(r, JSBNG__event) {\n if (((((((r.target || r.rel)) || JSBNG__event.getModifiers().any)) || ((JSBNG__event.which && ((JSBNG__event.which != 1))))))) {\n return;\n }\n ;\n ;\n var s = l.concat(m);\n for (var t = 0, u = s.length; ((t < u)); t++) {\n if (((s[t](r, JSBNG__event) === false))) {\n return JSBNG__event.prevent();\n }\n ;\n ;\n };\n ;\n };\n;\n function p(r) {\n var s = r.match(/^(\\w+):/);\n return ((!s || s[1].match(/^http/i)));\n };\n;\n var q = {\n registerHandler: function(r) {\n l.push(r);\n },\n registerFallbackHandler: function(r) {\n m.push(r);\n }\n };\n g.listen(JSBNG__document.documentElement, \"mousedown\", n);\n g.listen(JSBNG__document.documentElement, \"keydown\", n);\n e.exports = q;\n});\n__d(\"MenuDeprecated\", [\"JSBNG__Event\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"HTML\",\"Keys\",\"Parent\",\"Style\",\"UserAgent\",\"copyProperties\",\"emptyFunction\",\"Run\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"HTML\"), m = b(\"Keys\"), n = b(\"Parent\"), o = b(\"Style\"), p = b(\"UserAgent\"), q = b(\"copyProperties\"), r = b(\"emptyFunction\"), s = \"menu:mouseover\", t = null;\n function u(ea) {\n if (i.hasClass(ea, \"uiMenuContainer\")) {\n return ea;\n }\n ;\n ;\n return n.byClass(ea, \"uiMenu\");\n };\n;\n function v(ea) {\n return n.byClass(ea, \"uiMenuItem\");\n };\n;\n function w(ea) {\n if (JSBNG__document.activeElement) {\n var fa = v(JSBNG__document.activeElement);\n return ea.indexOf(fa);\n }\n ;\n ;\n return -1;\n };\n;\n function x(ea) {\n return k.JSBNG__find(ea, \"a.itemAnchor\");\n };\n;\n function y(ea) {\n return i.hasClass(ea, \"checked\");\n };\n;\n function z(ea) {\n return ((!i.hasClass(ea, \"disabled\") && ((o.get(ea, \"display\") !== \"none\"))));\n };\n;\n function aa(JSBNG__event) {\n var ea = JSBNG__document.activeElement;\n if (((((!ea || !n.byClass(ea, \"uiMenu\"))) || !k.isInputNode(ea)))) {\n var fa = v(JSBNG__event.getTarget());\n ((fa && da.focusItem(fa)));\n }\n ;\n ;\n };\n;\n function ba(ea) {\n ((p.firefox() && x(ea).JSBNG__blur()));\n da.inform(\"select\", {\n menu: u(ea),\n item: ea\n });\n };\n;\n var ca = function() {\n ca = r;\n var ea = {\n };\n ea.click = function(JSBNG__event) {\n var fa = v(JSBNG__event.getTarget());\n if (((fa && z(fa)))) {\n ba(fa);\n var ga = x(fa), ha = ga.href, ia = ga.getAttribute(\"rel\");\n return ((((ia && ((ia !== \"ignore\")))) || ((ha && ((ha.charAt(((ha.length - 1))) !== \"#\"))))));\n }\n ;\n ;\n };\n ea.keydown = function(JSBNG__event) {\n var fa = JSBNG__event.getTarget();\n if (JSBNG__event.getModifiers().any) {\n return;\n }\n ;\n ;\n if (((!t || k.isInputNode(fa)))) {\n return;\n }\n ;\n ;\n var ga = g.getKeyCode(JSBNG__event), ha;\n switch (ga) {\n case m.UP:\n \n case m.DOWN:\n var ia = da.getEnabledItems(t);\n ha = w(ia);\n da.focusItem(ia[((ha + ((((ga === m.UP)) ? -1 : 1))))]);\n return false;\n case m.SPACE:\n var ja = v(fa);\n if (ja) {\n ba(ja);\n JSBNG__event.prevent();\n }\n ;\n ;\n break;\n default:\n var ka = String.fromCharCode(ga).toLowerCase(), la = da.getEnabledItems(t);\n ha = w(la);\n var ma = ha, na = la.length;\n while (((((~ha && (((ma = ((++ma % na))) !== ha)))) || ((!~ha && ((++ma < na))))))) {\n var oa = da.getItemLabel(la[ma]);\n if (((oa && ((oa.charAt(0).toLowerCase() === ka))))) {\n da.focusItem(la[ma]);\n return false;\n }\n ;\n ;\n };\n ;\n };\n ;\n };\n g.listen(JSBNG__document.body, ea);\n }, da = q(new h(), {\n focusItem: function(ea) {\n if (((ea && z(ea)))) {\n this._removeSelected(u(ea));\n i.addClass(ea, \"selected\");\n x(ea).JSBNG__focus();\n }\n ;\n ;\n },\n getEnabledItems: function(ea) {\n return da.getItems(ea).filter(z);\n },\n getCheckedItems: function(ea) {\n return da.getItems(ea).filter(y);\n },\n getItems: function(ea) {\n return k.scry(ea, \"li.uiMenuItem\");\n },\n getItemLabel: function(ea) {\n return ((ea.getAttribute(\"data-label\", 2) || \"\"));\n },\n isItemChecked: function(ea) {\n return i.hasClass(ea, \"checked\");\n },\n autoregister: function(ea, fa, ga) {\n ea.subscribe(\"show\", function() {\n da.register(fa, ga);\n });\n ea.subscribe(\"hide\", function() {\n da.unregister(fa);\n });\n },\n register: function(ea, fa) {\n ea = u(ea);\n ca();\n if (!j.get(ea, s)) {\n j.set(ea, s, g.listen(ea, \"mouseover\", aa));\n }\n ;\n ;\n if (((fa !== false))) {\n t = ea;\n }\n ;\n ;\n },\n setItemEnabled: function(ea, fa) {\n if (((!fa && !k.scry(ea, \"span.disabledAnchor\")[0]))) {\n k.appendContent(ea, k.create(\"span\", {\n className: ((k.JSBNG__find(ea, \"a\").className + \" disabledAnchor\"))\n }, l(x(ea).innerHTML)));\n }\n ;\n ;\n i.conditionClass(ea, \"disabled\", !fa);\n },\n toggleItem: function(ea) {\n var fa = !da.isItemChecked(ea);\n da.setItemChecked(ea, fa);\n },\n setItemChecked: function(ea, fa) {\n i.conditionClass(ea, \"checked\", fa);\n x(ea).setAttribute(\"aria-checked\", fa);\n },\n unregister: function(ea) {\n ea = u(ea);\n var fa = j.remove(ea, s);\n ((fa && fa.remove()));\n t = null;\n this._removeSelected(ea);\n },\n _removeSelected: function(ea) {\n da.getItems(ea).filter(function(fa) {\n return i.hasClass(fa, \"selected\");\n }).forEach(function(fa) {\n i.removeClass(fa, \"selected\");\n });\n }\n });\n e.exports = da;\n});\n__d(\"coalesce\", [], function(a, b, c, d, e, f) {\n function g() {\n for (var h = 0; ((h < arguments.length)); ++h) {\n if (((arguments[h] != null))) {\n return arguments[h];\n }\n ;\n ;\n };\n ;\n return null;\n };\n;\n e.exports = g;\n});\n__d(\"OnVisible\", [\"Arbiter\",\"DOM\",\"JSBNG__Event\",\"Parent\",\"Run\",\"Vector\",\"ViewportBounds\",\"coalesce\",\"copyProperties\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"DOM\"), i = b(\"JSBNG__Event\"), j = b(\"Parent\"), k = b(\"Run\"), l = b(\"Vector\"), m = b(\"ViewportBounds\"), n = b(\"coalesce\"), o = b(\"copyProperties\"), p = b(\"queryThenMutateDOM\"), q = [], r, s = 0, t = [], u, v, w, x, y;\n function z() {\n q.forEach(function(fa) {\n fa.remove();\n });\n if (v) {\n v.remove();\n u.remove();\n r.unsubscribe();\n v = u = r = null;\n }\n ;\n ;\n s = 0;\n q.length = 0;\n };\n;\n function aa() {\n if (!q.length) {\n z();\n return;\n }\n ;\n ;\n t.length = 0;\n w = l.getScrollPosition().y;\n x = l.getViewportDimensions().y;\n y = m.getTop();\n for (var fa = 0; ((fa < q.length)); ++fa) {\n var ga = q[fa];\n if (isNaN(ga.elementHeight)) {\n t.push(fa);\n }\n ;\n ;\n ga.elementHeight = l.getElementDimensions(ga.element).y;\n ga.elementPos = l.getElementPosition(ga.element);\n ga.hidden = j.byClass(ga.element, \"hidden_elem\");\n if (ga.scrollArea) {\n ga.scrollAreaHeight = l.getElementDimensions(ga.scrollArea).y;\n ga.scrollAreaY = l.getElementPosition(ga.scrollArea).y;\n }\n ;\n ;\n };\n ;\n s = fa;\n };\n;\n function ba() {\n for (var fa = ((Math.min(q.length, s) - 1)); ((fa >= 0)); --fa) {\n var ga = q[fa];\n if (((((!ga.elementPos || ga.removed)) || ga.hidden))) {\n q.splice(fa, 1);\n continue;\n }\n ;\n ;\n var ha = ((((w + x)) + ga.buffer)), ia = false;\n if (((ha > ga.elementPos.y))) {\n var ja = ((!ga.strict || ((((((w + y)) - ga.buffer)) < ((ga.elementPos.y + ga.elementHeight))))));\n ia = ja;\n if (((ia && ga.scrollArea))) {\n var ka = ((((ga.scrollAreaY + ga.scrollAreaHeight)) + ga.buffer));\n ia = ((((ga.elementPos.y > ((ga.scrollAreaY - ga.buffer)))) && ((ga.elementPos.y < ka))));\n }\n ;\n ;\n }\n ;\n ;\n if (((ga.inverse ? !ia : ia))) {\n ga.remove();\n ga.handler(((t.indexOf(fa) !== -1)));\n }\n ;\n ;\n };\n ;\n };\n;\n function ca() {\n da();\n if (q.length) {\n return;\n }\n ;\n ;\n v = i.listen(window, \"JSBNG__scroll\", da);\n u = i.listen(window, \"resize\", da);\n r = g.subscribe(\"dom-scroll\", da);\n };\n;\n function da() {\n p(aa, ba, \"OnVisible/positionCheck\");\n };\n;\n function ea(fa, ga, ha, ia, ja, ka) {\n this.element = fa;\n this.handler = ga;\n this.strict = ha;\n this.buffer = n(ia, 300);\n this.inverse = n(ja, false);\n this.scrollArea = ((ka || null));\n if (this.scrollArea) {\n this.scrollAreaListener = i.listen(h.JSBNG__find(ka, \".uiScrollableAreaWrap\"), \"JSBNG__scroll\", this.checkBuffer);\n }\n ;\n ;\n if (((q.length === 0))) {\n k.onLeave(z);\n }\n ;\n ;\n ca();\n q.push(this);\n };\n;\n o(ea, {\n checkBuffer: da\n });\n o(ea.prototype, {\n remove: function() {\n this.removed = true;\n if (this.scrollAreaListener) {\n this.scrollAreaListener.remove();\n }\n ;\n ;\n },\n reset: function() {\n this.elementHeight = null;\n this.removed = false;\n ((((q.indexOf(this) === -1)) && q.push(this)));\n ca();\n },\n setBuffer: function(fa) {\n this.buffer = fa;\n da();\n },\n checkBuffer: function() {\n da();\n }\n });\n e.exports = ea;\n});\n__d(\"OnloadHooks\", [\"Arbiter\",\"ErrorUtils\",\"InitialJSLoader\",\"OnloadEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ErrorUtils\"), i = b(\"InitialJSLoader\"), j = b(\"OnloadEvent\");\n function k() {\n var r = a.CavalryLogger;\n if (((!window.loaded && r))) {\n r.getInstance().setTimeStamp(\"t_prehooks\");\n }\n ;\n ;\n n(\"onloadhooks\");\n if (((!window.loaded && r))) {\n r.getInstance().setTimeStamp(\"t_hooks\");\n }\n ;\n ;\n window.loaded = true;\n g.inform(\"uipage_onload\", true, g.BEHAVIOR_STATE);\n };\n;\n function l() {\n n(\"onafterloadhooks\");\n window.afterloaded = true;\n };\n;\n function m(r, s) {\n return h.applyWithGuard(r, null, null, function(t) {\n t.event_type = s;\n t.category = \"runhook\";\n });\n };\n;\n function n(r) {\n var s = ((((r == \"onbeforeleavehooks\")) || ((r == \"onbeforeunloadhooks\"))));\n do {\n var t = window[r];\n if (!t) {\n break;\n }\n ;\n ;\n if (!s) {\n window[r] = null;\n }\n ;\n ;\n for (var u = 0; ((u < t.length)); u++) {\n var v = m(t[u], r);\n if (((s && v))) {\n return v;\n }\n ;\n ;\n };\n ;\n } while (((!s && window[r])));\n };\n;\n function o() {\n if (!window.loaded) {\n window.loaded = true;\n n(\"onloadhooks\");\n }\n ;\n ;\n if (!window.afterloaded) {\n window.afterloaded = true;\n n(\"onafterloadhooks\");\n }\n ;\n ;\n };\n;\n function p() {\n g.registerCallback(k, [j.ONLOAD_DOMCONTENT_CALLBACK,i.INITIAL_JS_READY,]);\n g.registerCallback(l, [j.ONLOAD_DOMCONTENT_CALLBACK,j.ONLOAD_CALLBACK,i.INITIAL_JS_READY,]);\n g.subscribe(j.ONBEFOREUNLOAD, function(r, s) {\n s.warn = ((n(\"onbeforeleavehooks\") || n(\"onbeforeunloadhooks\")));\n if (!s.warn) {\n window.loaded = false;\n window.afterloaded = false;\n }\n ;\n ;\n }, g.SUBSCRIBE_NEW);\n g.subscribe(j.ONUNLOAD, function(r, s) {\n n(\"onunloadhooks\");\n n(\"onafterunloadhooks\");\n }, g.SUBSCRIBE_NEW);\n };\n;\n var q = {\n _onloadHook: k,\n _onafterloadHook: l,\n runHook: m,\n runHooks: n,\n keepWindowSetAsLoaded: o\n };\n p();\n a.OnloadHooks = e.exports = q;\n});\n__d(\"areEqual\", [], function(a, b, c, d, e, f) {\n var g = function(k, l, m, n) {\n if (((k === l))) {\n return ((((k !== 0)) || ((((1 / k)) == ((1 / l))))));\n }\n ;\n ;\n if (((((k == null)) || ((l == null))))) {\n return false;\n }\n ;\n ;\n if (((((typeof k != \"object\")) || ((typeof l != \"object\"))))) {\n return false;\n }\n ;\n ;\n var o = Object.prototype.toString, p = o.call(k);\n if (((p != o.call(l)))) {\n return false;\n }\n ;\n ;\n switch (p) {\n case \"[object String]\":\n return ((k == String(l)));\n case \"[object Number]\":\n return ((((isNaN(k) || isNaN(l))) ? false : ((k == Number(l)))));\n case \"[object Date]\":\n \n case \"[object Boolean]\":\n return ((+k == +l));\n case \"[object RegExp]\":\n return ((((((((k.source == l.source)) && ((k.global == l.global)))) && ((k.multiline == l.multiline)))) && ((k.ignoreCase == l.ignoreCase))));\n };\n ;\n var q = m.length;\n while (q--) {\n if (((m[q] == k))) {\n return ((n[q] == l));\n }\n ;\n ;\n };\n ;\n m.push(k);\n n.push(l);\n var r = 0;\n if (((p === \"[object Array]\"))) {\n r = k.length;\n if (((r !== l.length))) {\n return false;\n }\n ;\n ;\n while (r--) {\n if (!g(k[r], l[r], m, n)) {\n return false;\n }\n ;\n ;\n };\n ;\n }\n else {\n if (((k.constructor !== l.constructor))) {\n return false;\n }\n ;\n ;\n if (((k.hasOwnProperty(\"valueOf\") && l.hasOwnProperty(\"valueOf\")))) {\n return ((k.valueOf() == l.valueOf()));\n }\n ;\n ;\n var s = Object.keys(k);\n if (((s.length != Object.keys(l).length))) {\n return false;\n }\n ;\n ;\n for (var t = 0; ((t < s.length)); t++) {\n if (!g(k[s[t]], l[s[t]], m, n)) {\n return false;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n m.pop();\n n.pop();\n return true;\n }, h = [], i = [], j = function(k, l) {\n var m = ((h.length ? h.pop() : [])), n = ((i.length ? i.pop() : [])), o = g(k, l, m, n);\n m.length = 0;\n n.length = 0;\n h.push(m);\n i.push(n);\n return o;\n };\n e.exports = j;\n});\n__d(\"computeRelativeURI\", [\"URI\",\"isEmpty\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = b(\"isEmpty\");\n function i(k, l) {\n if (!l) {\n return k;\n }\n ;\n ;\n if (((l.charAt(0) == \"/\"))) {\n return l;\n }\n ;\n ;\n var m = k.split(\"/\").slice(0, -1);\n ((m[0] !== \"\"));\n l.split(\"/\").forEach(function(n) {\n if (!((n == \".\"))) {\n if (((n == \"..\"))) {\n if (((m.length > 1))) {\n m = m.slice(0, -1);\n }\n ;\n ;\n }\n else m.push(n);\n ;\n }\n ;\n ;\n });\n return m.join(\"/\");\n };\n;\n function j(k, l) {\n var m = new g(), n = l;\n k = new g(k);\n l = new g(l);\n if (((l.getDomain() && !l.isFacebookURI()))) {\n return n;\n }\n ;\n ;\n var o = k, p = [\"Protocol\",\"Domain\",\"Port\",\"Path\",\"QueryData\",\"Fragment\",];\n p.forEach(function(q) {\n var r = ((((q == \"Path\")) && ((o === k))));\n if (r) {\n m.setPath(i(k.getPath(), l.getPath()));\n }\n ;\n ;\n if (!h(l[((\"get\" + q))]())) {\n o = l;\n }\n ;\n ;\n if (!r) {\n m[((\"set\" + q))](o[((\"get\" + q))]());\n }\n ;\n ;\n });\n return m;\n };\n;\n e.exports = j;\n});\n__d(\"escapeJSQuotes\", [], function(a, b, c, d, e, f) {\n function g(h) {\n if (((((((typeof h == \"undefined\")) || ((h == null)))) || !h.valueOf()))) {\n return \"\";\n }\n ;\n ;\n return h.toString().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/\"/g, \"\\\\x22\").replace(/'/g, \"\\\\'\").replace(/</g, \"\\\\x3c\").replace(/>/g, \"\\\\x3e\").replace(/&/g, \"\\\\x26\");\n };\n;\n e.exports = g;\n});\n__d(\"PageTransitions\", [\"Arbiter\",\"Dialog\",\"DOMQuery\",\"DOMScroll\",\"Env\",\"JSBNG__Event\",\"Form\",\"HistoryManager\",\"JSLogger\",\"LinkController\",\"OnloadHooks\",\"Parent\",\"URI\",\"UserAgent\",\"Vector\",\"areEqual\",\"clickRefAction\",\"computeRelativeURI\",\"copyProperties\",\"escapeJSQuotes\",\"ge\",\"goOrReplace\",\"htmlize\",\"setTimeoutAcrossTransitions\",\"startsWith\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Dialog\"), i = b(\"DOMQuery\"), j = b(\"DOMScroll\"), k = b(\"Env\"), l = b(\"JSBNG__Event\"), m = b(\"Form\"), n = b(\"HistoryManager\"), o = b(\"JSLogger\"), p = b(\"LinkController\"), q = b(\"OnloadHooks\"), r = b(\"Parent\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"areEqual\"), w = b(\"clickRefAction\"), x = b(\"computeRelativeURI\"), y = b(\"copyProperties\"), z = b(\"escapeJSQuotes\"), aa = b(\"ge\"), ba = b(\"goOrReplace\"), ca = b(\"htmlize\"), da = b(\"setTimeoutAcrossTransitions\"), ea = b(\"startsWith\"), fa = b(\"tx\"), ga = b(\"userAction\"), ha = {\n };\n function ia(ta, ua) {\n ha[ta.getUnqualifiedURI()] = ua;\n };\n;\n function ja(ta) {\n return ha[ta.getUnqualifiedURI()];\n };\n;\n function ka(ta) {\n delete ha[ta.getUnqualifiedURI()];\n };\n;\n var la = null, ma = null;\n function na(ta) {\n ma = ta;\n da(function() {\n ma = null;\n }, 0);\n };\n;\n function oa(JSBNG__event) {\n if (ma) {\n if (!JSBNG__event.isDefaultPrevented()) {\n pa(ma);\n sa.lookBusy(ma);\n ra.go(ma.getAttribute(\"href\"));\n }\n ;\n ;\n JSBNG__event.prevent();\n }\n else {\n la = JSBNG__event.getTarget();\n da(function() {\n la = null;\n }, 0);\n }\n ;\n ;\n };\n;\n function pa(ta) {\n var ua = ta.getAttribute(\"href\"), va = x(ra._most_recent_uri.getQualifiedURI(), ua).toString();\n if (((ua != va))) {\n ta.setAttribute(\"href\", va);\n }\n ;\n ;\n };\n;\n function qa(JSBNG__event) {\n var ta = JSBNG__event.getTarget();\n if (((m.getAttribute(ta, \"rel\") || m.getAttribute(ta, \"target\")))) {\n return;\n }\n ;\n ;\n w(\"form\", ta, JSBNG__event).set_namespace(\"page_transition\");\n var ua = ga(\"page_transitions\", ta, JSBNG__event, {\n mode: \"DEDUP\"\n }).uai_fallback(null, \"form\"), va = a.ArbiterMonitor;\n if (va) {\n va.initUA(ua, [ta,]);\n }\n ;\n ;\n var wa = new s(((m.getAttribute(ta, \"action\") || \"\"))), xa = x(ra._most_recent_uri, wa);\n ta.setAttribute(\"action\", xa.toString());\n if (((((m.getAttribute(ta, \"method\") || \"GET\")).toUpperCase() === \"GET\"))) {\n var ya = m.serialize(ta), za = la;\n if (((((za && ((((i.isNodeOfType(za, \"input\") && ((za.type === \"submit\")))) || (za = r.byTag(za, \"button\")))))) && za.JSBNG__name))) {\n ya[za.JSBNG__name] = za.value;\n }\n ;\n ;\n ra.go(xa.addQueryData(ya));\n JSBNG__event.kill();\n }\n ;\n ;\n };\n;\n var ra = {\n _transition_handlers: [],\n _scroll_locked: false,\n isInitialized: function() {\n return !!ra._initialized;\n },\n _init: function() {\n if (k.DISABLE_PAGE_TRANSITIONS) {\n return;\n }\n ;\n ;\n if (((!k.ALLOW_TRANSITION_IN_IFRAME && ((window != window.JSBNG__top))))) {\n return;\n }\n ;\n ;\n if (ra._initialized) {\n return ra;\n }\n ;\n ;\n ra._initialized = true;\n var ta = s.getRequestURI(false), ua = ta.getUnqualifiedURI(), va = s(ua).setFragment(null), wa = ua.getFragment();\n if (((((wa.charAt(0) === \"!\")) && ((va.toString() === wa.substr(1)))))) {\n ua = va;\n }\n ;\n ;\n y(ra, {\n _current_uri: ua,\n _most_recent_uri: ua,\n _next_uri: ua\n });\n var xa;\n if (ea(ta.getFragment(), \"/\")) {\n xa = ta.getFragment();\n }\n else xa = ua;\n ;\n ;\n n.init().setCanonicalLocation(((\"#\" + xa))).registerURIHandler(ra._historyManagerHandler);\n p.registerFallbackHandler(na);\n l.listen(JSBNG__document, \"click\", oa, l.Priority._BUBBLE);\n l.listen(JSBNG__document, \"submit\", qa, l.Priority._BUBBLE);\n l.listen(window, \"JSBNG__scroll\", function() {\n if (!ra._scroll_locked) {\n ia(ra._current_uri, u.getScrollPosition());\n }\n ;\n ;\n });\n return ra;\n },\n registerHandler: function(ta, ua) {\n ra._init();\n ua = ((ua || 5));\n if (!ra._transition_handlers[ua]) {\n ra._transition_handlers[ua] = [];\n }\n ;\n ;\n ra._transition_handlers[ua].push(ta);\n },\n getCurrentURI: function(ta) {\n if (((!ra._current_uri && !ta))) {\n return new s(ra._most_recent_uri);\n }\n ;\n ;\n return new s(ra._current_uri);\n },\n getMostRecentURI: function() {\n return new s(ra._most_recent_uri);\n },\n getNextURI: function() {\n return new s(ra._next_uri);\n },\n go: function(ta, ua) {\n var va = new s(ta).removeQueryData(\"quickling\").getQualifiedURI();\n o.create(\"pagetransition\").debug(\"go\", {\n uri: va.toString()\n });\n ka(va);\n ((!ua && w(\"uri\", {\n href: va.toString()\n }, null, \"INDIRECT\")));\n sa.lookBusy();\n ra._loadPage(va, function(wa) {\n if (wa) {\n n.go(va.toString(), false, ua);\n }\n else ba(window.JSBNG__location, va, ua);\n ;\n ;\n });\n },\n _historyManagerHandler: function(ta) {\n if (((ta.charAt(0) != \"/\"))) {\n return false;\n }\n ;\n ;\n w(\"h\", {\n href: ta\n });\n ga(\"page_transitions\").uai(null, \"history_manager\");\n ra._loadPage(new s(ta), function(ua) {\n if (!ua) {\n ba(window.JSBNG__location, ta, true);\n }\n ;\n ;\n });\n return true;\n },\n _loadPage: function(ta, ua) {\n if (((s(ta).getFragment() && v(s(ta).setFragment(null).getQualifiedURI(), s(ra._current_uri).setFragment(null).getQualifiedURI())))) {\n if (ra.restoreScrollPosition(ta)) {\n ra._current_uri = ra._most_recent_uri = ta;\n sa.stopLookingBusy();\n return;\n }\n ;\n }\n ;\n ;\n var va;\n if (ra._current_uri) {\n va = ja(ra._current_uri);\n }\n ;\n ;\n ra._current_uri = null;\n ra._next_uri = ta;\n if (va) {\n j.JSBNG__scrollTo(va, false);\n }\n ;\n ;\n var wa = function() {\n ra._scroll_locked = true;\n var ya = ra._handleTransition(ta);\n ((ua && ua(ya)));\n }, xa = q.runHooks(\"onbeforeleavehooks\");\n if (xa) {\n sa.stopLookingBusy();\n ra._warnBeforeLeaving(xa, wa);\n }\n else wa();\n ;\n ;\n },\n _handleTransition: function(ta) {\n window.onbeforeleavehooks = undefined;\n sa.lookBusy();\n if (!ta.isSameOrigin()) {\n return false;\n }\n ;\n ;\n var ua = ((window.AsyncRequest && window.AsyncRequest.getLastID()));\n g.inform(\"pre_page_transition\", {\n from: ra.getMostRecentURI(),\n to: ta\n });\n for (var va = ((ra._transition_handlers.length - 1)); ((va >= 0)); --va) {\n var wa = ra._transition_handlers[va];\n if (!wa) {\n continue;\n }\n ;\n ;\n for (var xa = ((wa.length - 1)); ((xa >= 0)); --xa) {\n if (((wa[xa](ta) === true))) {\n var ya = {\n sender: this,\n uri: ta,\n id: ua\n };\n try {\n g.inform(\"page_transition\", ya);\n } catch (za) {\n \n };\n ;\n return true;\n }\n else wa.splice(xa, 1);\n ;\n ;\n };\n ;\n };\n ;\n return false;\n },\n unifyURI: function() {\n ra._current_uri = ra._most_recent_uri = ra._next_uri;\n },\n transitionComplete: function(ta) {\n ra._executeCompletionCallback();\n sa.stopLookingBusy();\n ra.unifyURI();\n if (!ta) {\n ra.restoreScrollPosition(ra._current_uri);\n }\n ;\n ;\n try {\n if (((JSBNG__document.activeElement && ((JSBNG__document.activeElement.nodeName === \"A\"))))) {\n JSBNG__document.activeElement.JSBNG__blur();\n }\n ;\n ;\n } catch (ua) {\n \n };\n ;\n },\n _executeCompletionCallback: function() {\n if (ra._completionCallback) {\n ra._completionCallback();\n }\n ;\n ;\n ra._completionCallback = null;\n },\n setCompletionCallback: function(ta) {\n ra._completionCallback = ta;\n },\n rewriteCurrentURI: function(ta, ua) {\n ra.registerHandler(function() {\n if (((ta == ra.getMostRecentURI().getUnqualifiedURI().toString()))) {\n ra.transitionComplete();\n return true;\n }\n ;\n ;\n });\n ra.go(ua, true);\n },\n _warnBeforeLeaving: function(ta, ua) {\n new h().setTitle(\"Are you sure you want to leave this page?\").setBody(ca(ta)).setButtons([{\n JSBNG__name: \"leave_page\",\n label: \"Leave this Page\",\n handler: ua\n },{\n JSBNG__name: \"continue_editing\",\n label: \"Stay on this Page\",\n className: \"inputaux\"\n },]).setModal(true).show();\n },\n restoreScrollPosition: function(ta) {\n ra._scroll_locked = false;\n var ua = ja(ta);\n if (ua) {\n j.JSBNG__scrollTo(ua, false);\n return true;\n }\n ;\n ;\n function va(ya) {\n if (!ya) {\n return null;\n }\n ;\n ;\n var za = ((((\"a[name='\" + z(ya))) + \"']\"));\n return ((i.scry(JSBNG__document.body, za)[0] || aa(ya)));\n };\n ;\n var wa = va(s(ta).getFragment());\n if (wa) {\n var xa = u.getElementPosition(wa);\n xa.x = 0;\n j.JSBNG__scrollTo(xa);\n return true;\n }\n ;\n ;\n return false;\n }\n }, sa = ((window._BusyUIManager || {\n _looking_busy: false,\n _original_cursors: [],\n lookBusy: function(ta) {\n if (ta) {\n sa._giveProgressCursor(ta);\n }\n ;\n ;\n if (sa._looking_busy) {\n return;\n }\n ;\n ;\n sa._looking_busy = true;\n sa._giveProgressCursor(JSBNG__document.documentElement);\n },\n stopLookingBusy: function() {\n if (!sa._looking_busy) {\n return;\n }\n ;\n ;\n sa._looking_busy = false;\n while (sa._original_cursors.length) {\n var ta = sa._original_cursors.pop(), ua = ta[0], va = ta[1];\n if (ua.style) {\n ua.style.cursor = ((va || \"\"));\n }\n ;\n ;\n };\n ;\n },\n _giveProgressCursor: function(ta) {\n if (!t.webkit()) {\n sa._original_cursors.push([ta,ta.style.cursor,]);\n ta.style.cursor = \"progress\";\n }\n ;\n ;\n }\n }));\n e.exports = ra;\n a.PageTransitions = ra;\n});\n__d(\"PixelRatio\", [\"Arbiter\",\"Cookie\",\"Run\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Cookie\"), i = b(\"Run\"), j = \"dpr\", k, l;\n function m() {\n return ((window.JSBNG__devicePixelRatio || 1));\n };\n;\n function n() {\n h.set(j, m());\n };\n;\n function o() {\n h.clear(j);\n };\n;\n function p() {\n var r = m();\n if (((r !== k))) {\n n();\n }\n else o();\n ;\n ;\n };\n;\n var q = {\n startDetecting: function(r) {\n k = ((r || 1));\n o();\n if (l) {\n return;\n }\n ;\n ;\n l = [g.subscribe(\"pre_page_transition\", p),];\n i.onBeforeUnload(p);\n }\n };\n e.exports = q;\n});\n__d(\"LayerHideOnTransition\", [\"function-extensions\",\"PageTransitions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"PageTransitions\"), h = b(\"copyProperties\");\n function i(j) {\n this._layer = j;\n };\n;\n h(i.prototype, {\n _enabled: false,\n _subscribed: false,\n enable: function() {\n this._enabled = true;\n if (!this._subscribed) {\n this._subscribe.bind(this).defer();\n this._subscribed = true;\n }\n ;\n ;\n },\n disable: function() {\n this._enabled = false;\n },\n _subscribe: function() {\n g.registerHandler(function() {\n if (this._enabled) {\n this._layer.hide();\n }\n ;\n ;\n this._subscribed = false;\n }.bind(this));\n }\n });\n e.exports = i;\n});\n__d(\"JSBNG__Rect\", [\"Vector\",\"$\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Vector\"), h = b(\"$\"), i = b(\"copyProperties\");\n function j(k, l, m, n, o) {\n if (((arguments.length === 1))) {\n if (((k instanceof j))) {\n return k;\n }\n ;\n ;\n if (((k instanceof g))) {\n return new j(k.y, k.x, k.y, k.x, k.domain);\n }\n ;\n ;\n return j.getElementBounds(h(k));\n }\n ;\n ;\n i(this, {\n t: k,\n r: l,\n b: m,\n l: n,\n domain: ((o || \"pure\"))\n });\n };\n;\n i(j.prototype, {\n w: function() {\n return ((this.r - this.l));\n },\n h: function() {\n return ((this.b - this.t));\n },\n toString: function() {\n return ((((((((((((((((\"((\" + this.l)) + \", \")) + this.t)) + \"), (\")) + this.r)) + \", \")) + this.b)) + \"))\"));\n },\n contains: function(k) {\n k = new j(k).convertTo(this.domain);\n var l = this;\n return ((((((((l.l <= k.l)) && ((l.r >= k.r)))) && ((l.t <= k.t)))) && ((l.b >= k.b))));\n },\n add: function(k, l) {\n if (((arguments.length == 1))) {\n if (((k.domain != \"pure\"))) {\n k = k.convertTo(this.domain);\n }\n ;\n ;\n return this.add(k.x, k.y);\n }\n ;\n ;\n var m = parseFloat(k), n = parseFloat(l);\n return new j(((this.t + n)), ((this.r + m)), ((this.b + n)), ((this.l + m)), this.domain);\n },\n sub: function(k, l) {\n if (((arguments.length == 1))) {\n return this.add(k.mul(-1));\n }\n else return this.add(-k, -l)\n ;\n },\n rotateAroundOrigin: function(k) {\n var l = this.getCenter().rotate(((((k * Math.PI)) / 2))), m, n;\n if (((k % 2))) {\n m = this.h();\n n = this.w();\n }\n else {\n m = this.w();\n n = this.h();\n }\n ;\n ;\n var o = ((l.y - ((n / 2)))), p = ((l.x - ((m / 2)))), q = ((o + n)), r = ((p + m));\n return new j(o, r, q, p);\n },\n boundWithin: function(k) {\n var l = 0, m = 0;\n if (((this.l < k.l))) {\n l = ((k.l - this.l));\n }\n else if (((this.r > k.r))) {\n l = ((k.r - this.r));\n }\n \n ;\n ;\n if (((this.t < k.t))) {\n m = ((k.t - this.t));\n }\n else if (((this.b > k.b))) {\n m = ((k.b - this.b));\n }\n \n ;\n ;\n return this.add(l, m);\n },\n getCenter: function() {\n return new g(((this.l + ((this.w() / 2)))), ((this.t + ((this.h() / 2)))), this.domain);\n },\n getPositionVector: function() {\n return new g(this.l, this.t, this.domain);\n },\n getDimensionVector: function() {\n return new g(this.w(), this.h(), \"pure\");\n },\n convertTo: function(k) {\n if (((this.domain == k))) {\n return this;\n }\n ;\n ;\n if (((k == \"pure\"))) {\n return new j(this.t, this.r, this.b, this.l, \"pure\");\n }\n ;\n ;\n if (((this.domain == \"pure\"))) {\n return new j(0, 0, 0, 0);\n }\n ;\n ;\n var l = new g(this.l, this.t, this.domain).convertTo(k);\n return new j(l.y, ((l.x + this.w())), ((l.y + this.h())), l.x, k);\n }\n });\n i(j, {\n deserialize: function(k) {\n var l = k.split(\":\");\n return new j(parseFloat(l[1]), parseFloat(l[2]), parseFloat(l[3]), parseFloat(l[0]));\n },\n newFromVectors: function(k, l) {\n return new j(k.y, ((k.x + l.x)), ((k.y + l.y)), k.x, k.domain);\n },\n getElementBounds: function(k) {\n return j.newFromVectors(g.getElementPosition(k), g.getElementDimensions(k));\n },\n getViewportBounds: function() {\n return j.newFromVectors(g.getScrollPosition(), g.getViewportDimensions());\n },\n minimumBoundingBox: function(k) {\n var l = new j(Math.min(), Math.max(), Math.max(), Math.min()), m;\n for (var n = 0; ((n < k.length)); n++) {\n m = k[n];\n l.t = Math.min(l.t, m.t);\n l.r = Math.max(l.r, m.r);\n l.b = Math.max(l.b, m.b);\n l.l = Math.min(l.l, m.l);\n };\n ;\n return l;\n }\n });\n e.exports = j;\n});\n__d(\"SVGChecker\", [], function(a, b, c, d, e, f) {\n e.exports = {\n isSVG: function(g) {\n return ((!!g.ownerSVGElement || ((g.tagName.toLowerCase() === \"svg\"))));\n },\n isDisplayed: function(g) {\n try {\n var i = g.getBBox();\n if (((i && ((((i.height === 0)) || ((i.width === 0))))))) {\n return false;\n }\n ;\n ;\n } catch (h) {\n return false;\n };\n ;\n return true;\n }\n };\n});\n__d(\"arrayContains\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n return ((h.indexOf(i) != -1));\n };\n;\n e.exports = g;\n});\n__d(\"ContextualLayer\", [\"JSBNG__Event\",\"Arbiter\",\"ARIA\",\"Class\",\"ContextualThing\",\"CSS\",\"DataStore\",\"DOM\",\"Layer\",\"LayerHideOnTransition\",\"Locale\",\"Parent\",\"JSBNG__Rect\",\"Style\",\"Vector\",\"SVGChecker\",\"arrayContains\",\"copyProperties\",\"emptyFunction\",\"getOverlayZIndex\",\"removeFromArray\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ARIA\"), j = b(\"Class\"), k = b(\"ContextualThing\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"Layer\"), p = b(\"LayerHideOnTransition\"), q = b(\"Locale\"), r = b(\"Parent\"), s = b(\"JSBNG__Rect\"), t = b(\"Style\"), u = b(\"Vector\"), v = b(\"SVGChecker\"), w = b(\"arrayContains\"), x = b(\"copyProperties\"), y = b(\"emptyFunction\"), z = b(\"getOverlayZIndex\"), aa = b(\"removeFromArray\"), ba = b(\"throttle\");\n function ca(ja) {\n return ((((ja.getPosition() === \"left\")) || ((ja.isVertical() && ((ja.getAlignment() === \"right\"))))));\n };\n;\n function da(ja) {\n var ka = ja.parentNode;\n if (ka) {\n var la = t.get(ka, \"position\");\n if (((la === \"static\"))) {\n if (((ka === JSBNG__document.body))) {\n ka = JSBNG__document.documentElement;\n }\n else ka = da(ka);\n ;\n ;\n }\n else return ka\n ;\n }\n else ka = JSBNG__document.documentElement;\n ;\n ;\n return ka;\n };\n;\n function ea(ja, ka) {\n this.parent.construct(this, ja, ka);\n };\n;\n var fa = [];\n h.subscribe(\"reflow\", function() {\n fa.forEach(function(ja) {\n if (((ja.updatePosition() === false))) {\n ja.hide();\n }\n ;\n ;\n });\n });\n j.extend(ea, o);\n x(ea.prototype, {\n _contentWrapper: null,\n _content: null,\n _contextNode: null,\n _contextBounds: null,\n _contextSelector: null,\n _parentLayer: null,\n _parentSubscription: null,\n _orientation: null,\n _orientationClass: null,\n _shouldSetARIAProperties: true,\n _configure: function(ja, ka) {\n this.parent._configure(ja, ka);\n if (ja.context) {\n this.setContext(ja.context);\n }\n else if (ja.contextID) {\n this._setContextID(ja.contextID);\n }\n else if (ja.contextSelector) {\n this._setContextSelector(ja.contextSelector);\n }\n \n \n ;\n ;\n this.setPosition(ja.position);\n this.setAlignment(ja.alignment);\n this.setOffsetX(ja.offsetX);\n this.setOffsetY(ja.offsetY);\n this._content = ka;\n },\n _getDefaultBehaviors: function() {\n return this.parent._getDefaultBehaviors().concat([p,]);\n },\n _buildWrapper: function(ja, ka) {\n this._contentWrapper = n.create(\"div\", {\n className: \"uiContextualLayer\"\n }, ka);\n return n.create(\"div\", {\n className: \"uiContextualLayerPositioner\"\n }, this._contentWrapper);\n },\n getInsertParent: function() {\n var ja = this._insertParent;\n if (!ja) {\n var ka = this.getContext();\n if (ka) {\n ja = r.byClass(ka, \"uiContextualLayerParent\");\n }\n ;\n ;\n }\n ;\n ;\n return ((ja || this.parent.getInsertParent()));\n },\n setContent: function(ja) {\n this._content = ja;\n n.setContent(this._contentWrapper, this._content);\n ((this._shown && this.updatePosition()));\n return this;\n },\n setContext: function(ja) {\n return this.setContextWithBounds(ja, null);\n },\n setContextWithBounds: function(ja, ka) {\n this._contextNode = ja;\n this._contextBounds = ((ka || null));\n this._contextSelector = this._contextScrollParent = null;\n if (this._shown) {\n k.register(this.getRoot(), this._contextNode);\n this.updatePosition();\n }\n ;\n ;\n this._setParentSubscription();\n this.setARIAProperties();\n return this;\n },\n shouldSetARIAProperties: function(ja) {\n this._shouldSetARIAProperties = ja;\n return this;\n },\n setARIAProperties: function() {\n if (this._shouldSetARIAProperties) {\n i.setPopup(this.getCausalElement(), this.getRoot());\n }\n ;\n ;\n return this;\n },\n _setContextID: function(ja) {\n this._contextSelector = ((\"#\" + ja));\n this._contextNode = null;\n },\n _setContextSelector: function(ja) {\n this._contextSelector = ja;\n this._contextNode = null;\n },\n getCausalElement: function() {\n return ((this.parent.getCausalElement() || this.getContext()));\n },\n _setParentSubscription: function() {\n var ja = this.getContext(), ka = null;\n while (((ja !== null))) {\n ka = m.get(ja, \"layer\");\n if (ka) {\n break;\n }\n ;\n ;\n ja = ja.parentNode;\n };\n ;\n if (((ka === this._parentLayer))) {\n return;\n }\n ;\n ;\n if (((this._parentLayer && this._parentSubscription))) {\n this._parentLayer.unsubscribe(this._parentSubscription);\n this._parentSubscription = null;\n }\n ;\n ;\n if (ka) {\n this._parentSubscription = ka.subscribe(\"hide\", this.hide.bind(this));\n }\n ;\n ;\n this._parentLayer = ka;\n },\n setPosition: function(ja) {\n if (this._getOrientation().setDefaultPosition(ja)) {\n ((this._shown && this.updatePosition()));\n }\n ;\n ;\n return this;\n },\n setAlignment: function(ja) {\n if (this._getOrientation().setDefaultAlignment(ja)) {\n ((this._shown && this.updatePosition()));\n }\n ;\n ;\n return this;\n },\n setOffsetX: function(ja) {\n if (this._getOrientation().setDefaultOffsetX(ja)) {\n ((this._shown && this.updatePosition()));\n }\n ;\n ;\n return this;\n },\n setOffsetY: function(ja) {\n if (this._getOrientation().setDefaultOffsetY(ja)) {\n ((this._shown && this.updatePosition()));\n }\n ;\n ;\n return this;\n },\n _getOrientation: function() {\n if (!this._orientation) {\n this._orientation = new ia();\n }\n ;\n ;\n return this._orientation;\n },\n getContentRoot: function() {\n return this._contentWrapper;\n },\n getContent: function() {\n return this._content;\n },\n getContext: function() {\n if (!this._contextNode) {\n this._contextNode = n.JSBNG__find(JSBNG__document, this._contextSelector);\n }\n ;\n ;\n return this._contextNode;\n },\n getContextBounds: function(ja) {\n if (this._contextBounds) {\n return this._contextBounds.convertTo(ja);\n }\n ;\n ;\n var ka = this.getContext();\n return s.newFromVectors(u.getElementPosition(ka, ja), u.getElementDimensions(ka));\n },\n getContextScrollParent: function() {\n if (!this._contextScrollParent) {\n this._contextScrollParent = t.getScrollParent(this.getContext());\n }\n ;\n ;\n return this._contextScrollParent;\n },\n setInsertParent: function(ja) {\n this._insertScrollParent = null;\n return this.parent.setInsertParent(ja);\n },\n getInsertScrollParent: function() {\n if (!this._insertScrollParent) {\n this._insertScrollParent = t.getScrollParent(this.getInsertParent());\n }\n ;\n ;\n return this._insertScrollParent;\n },\n show: function() {\n if (this._shown) {\n return this;\n }\n ;\n ;\n this.parent.show();\n if (this._shown) {\n k.register(this.getRoot(), this.getContext());\n fa.push(this);\n this._resizeListener = ((this._resizeListener || g.listen(window, \"resize\", ba(this.updatePosition.bind(this)))));\n }\n ;\n ;\n return this;\n },\n finishHide: function() {\n aa(fa, this);\n ((this._resizeListener && this._resizeListener.remove()));\n this._resizeListener = null;\n return this.parent.finishHide();\n },\n isFixed: function() {\n return ((t.isFixed(this.getContext()) && !t.isFixed(this.getInsertParent())));\n },\n updatePosition: function() {\n var ja = this.getContext();\n if (!ja) {\n return false;\n }\n ;\n ;\n var ka = this.isFixed();\n if (((!ka && !((ja.offsetParent || ((v.isSVG(ja) && v.isDisplayed(ja)))))))) {\n return false;\n }\n ;\n ;\n var la = this.getRoot();\n t.set(la, \"width\", ((u.getViewportDimensions().x + \"px\")));\n var ma = this._getOrientation();\n this.inform(\"adjust\", ma.reset());\n if (!ma.isValid()) {\n return false;\n }\n ;\n ;\n this._updateWrapperPosition(ma);\n this._updateWrapperClass(ma);\n l.conditionClass(la, \"uiContextualLayerPositionerFixed\", ka);\n var na, oa, pa = ((ka ? \"viewport\" : \"JSBNG__document\")), qa = ((ka ? JSBNG__document.documentElement : da(la)));\n if (((qa === JSBNG__document.documentElement))) {\n na = new u(0, 0);\n oa = JSBNG__document.documentElement.clientWidth;\n }\n else if (!la.offsetParent) {\n return false;\n }\n else {\n na = u.getElementPosition(qa, pa);\n oa = qa.offsetWidth;\n if (((qa !== JSBNG__document.body))) {\n na = na.sub(new u(qa.scrollLeft, qa.scrollTop));\n }\n ;\n ;\n }\n \n ;\n ;\n var ra = this.getContextBounds(pa), sa = ((ra.l - na.x)), ta = ((ra.t - na.y)), ua = ra.h(), va = ra.w(), wa = q.isRTL();\n if (((ma.getPosition() === \"below\"))) {\n ta += ua;\n }\n ;\n ;\n if (((((((ma.getPosition() === \"right\")) || ((ma.isVertical() && ((ma.getAlignment() === \"right\")))))) != wa))) {\n sa += va;\n }\n ;\n ;\n var xa = ma.getOffsetX();\n if (((ma.isVertical() && ((ma.getAlignment() === \"center\"))))) {\n xa += ((((va - this.getContentRoot().offsetWidth)) / 2));\n }\n ;\n ;\n if (wa) {\n xa *= -1;\n }\n ;\n ;\n var ya = \"left\", za = Math.floor(((sa + xa)));\n if (((ca(ma) !== wa))) {\n ya = \"right\";\n za = ((oa - za));\n }\n ;\n ;\n t.set(la, ya, ((za + \"px\")));\n t.set(la, ((((ya === \"left\")) ? \"right\" : \"left\")), \"\");\n var ab = this.getInsertScrollParent(), bb;\n if (((ab !== window))) {\n bb = ab.clientWidth;\n }\n else bb = JSBNG__document.documentElement.clientWidth;\n ;\n ;\n var cb = u.getElementPosition(la).x;\n if (((ya === \"left\"))) {\n if (((((bb - cb)) > 0))) {\n t.set(la, \"width\", ((((bb - cb)) + \"px\")));\n }\n else t.set(la, \"width\", \"\");\n ;\n ;\n }\n else t.set(la, \"width\", ((((cb + la.offsetWidth)) + \"px\")));\n ;\n ;\n t.set(la, \"JSBNG__top\", ((((ta + ma.getOffsetY())) + \"px\")));\n var db = z(ja, this.getInsertParent());\n t.set(la, \"z-index\", ((((db > 200)) ? db : \"\")));\n this.inform(\"reposition\", ma);\n return true;\n },\n _updateWrapperPosition: function(ja) {\n var ka = ((ja.getPosition() === \"above\"));\n t.set(this._contentWrapper, \"bottom\", ((ka ? \"0\" : null)));\n var la = ((q.isRTL() ? \"left\" : \"right\")), ma = ca(ja);\n t.set(this._contentWrapper, la, ((ma ? \"0\" : null)));\n },\n _updateWrapperClass: function(ja) {\n var ka = ja.getClassName();\n if (((ka === this._orientationClass))) {\n return;\n }\n ;\n ;\n if (this._orientationClass) {\n l.removeClass(this._contentWrapper, this._orientationClass);\n }\n ;\n ;\n this._orientationClass = ka;\n l.addClass(this._contentWrapper, ka);\n },\n simulateOrientation: function(ja, ka) {\n var la = ja.getClassName();\n if (((la === this._orientationClass))) {\n return ka();\n }\n else {\n if (this._orientationClass) {\n l.removeClass(this._contentWrapper, this._orientationClass);\n }\n ;\n ;\n l.addClass(this._contentWrapper, la);\n var ma = ka();\n l.removeClass(this._contentWrapper, la);\n if (this._orientationClass) {\n l.addClass(this._contentWrapper, this._orientationClass);\n }\n ;\n ;\n return ma;\n }\n ;\n ;\n },\n destroy: function() {\n this.parent.destroy();\n this._contentWrapper = null;\n this._content = null;\n return this;\n }\n });\n var ga = y.thatReturnsArgument, ha = y.thatReturnsArgument;\n function ia() {\n this._default = {\n _position: \"above\",\n _alignment: \"left\",\n _offsetX: 0,\n _offsetY: 0,\n _valid: true\n };\n this.reset();\n };\n;\n ia.OPPOSITE = {\n above: \"below\",\n below: \"above\",\n left: \"right\",\n right: \"left\"\n };\n x(ia.prototype, {\n setPosition: function(ja) {\n this._position = ga(ja);\n return this;\n },\n setAlignment: function(ja) {\n this._alignment = ha(ja);\n return this;\n },\n getOppositePosition: function() {\n return ia.OPPOSITE[this.getPosition()];\n },\n invalidate: function() {\n this._valid = false;\n return this;\n },\n getPosition: function() {\n return ((this._position || \"above\"));\n },\n getAlignment: function() {\n return ((this._alignment || \"left\"));\n },\n getOffsetX: function() {\n var ja = ((this._offsetX || 0));\n if (!this.isVertical()) {\n if (((this._default._position !== this._position))) {\n ja *= -1;\n }\n ;\n ;\n }\n else if (((this._default._alignment !== this._alignment))) {\n ja *= -1;\n }\n \n ;\n ;\n return ja;\n },\n getOffsetY: function() {\n var ja = ((this._offsetY || 0));\n if (((this.isVertical() && ((this._default._position !== this._position))))) {\n ja *= -1;\n }\n ;\n ;\n return ja;\n },\n getClassName: function() {\n var ja = this.getAlignment(), ka = this.getPosition();\n if (((ka === \"below\"))) {\n if (((ja === \"left\"))) {\n return \"uiContextualLayerBelowLeft\";\n }\n else if (((ja === \"right\"))) {\n return \"uiContextualLayerBelowRight\";\n }\n else return \"uiContextualLayerBelowCenter\"\n \n ;\n }\n else if (((ka === \"above\"))) {\n if (((ja === \"left\"))) {\n return \"uiContextualLayerAboveLeft\";\n }\n else if (((ja === \"right\"))) {\n return \"uiContextualLayerAboveRight\";\n }\n else return \"uiContextualLayerAboveCenter\"\n \n ;\n }\n else if (((ka === \"left\"))) {\n return \"uiContextualLayerLeft\";\n }\n else return \"uiContextualLayerRight\"\n \n \n ;\n },\n isValid: function() {\n return this._valid;\n },\n isVertical: function() {\n return ((((this.getPosition() === \"above\")) || ((this.getPosition() === \"below\"))));\n },\n reset: function(ja, ka) {\n x(this, this._default);\n return this;\n },\n setDefaultPosition: function(ja) {\n var ka = this._default._position;\n this._default._position = ga(ja);\n return ((ka !== ja));\n },\n setDefaultAlignment: function(ja) {\n var ka = this._default._alignment;\n this._default._alignment = ha(ja);\n return ((ka !== ja));\n },\n setDefaultOffsetX: function(ja) {\n var ka = this._default._offsetX;\n this._default._offsetX = ja;\n return ((ka !== ja));\n },\n setDefaultOffsetY: function(ja) {\n var ka = this._default._offsetY;\n this._default._offsetY = ja;\n return ((ka !== ja));\n }\n });\n e.exports = ea;\n});\n__d(\"ContextualLayerHideOnScroll\", [\"JSBNG__Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\");\n function i(j) {\n this._layer = j;\n };\n;\n h(i.prototype, {\n _subscriptions: [],\n enable: function() {\n this._subscriptions = [this._layer.subscribe(\"contextchange\", this._handleContextChange.bind(this)),this._layer.subscribe(\"show\", this.attach.bind(this)),this._layer.subscribe(\"hide\", this.detach.bind(this)),];\n },\n disable: function() {\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this.detach();\n },\n attach: function() {\n if (this._listener) {\n return;\n }\n ;\n ;\n var j = this._layer.getContextScrollParent();\n if (((j === window))) {\n return;\n }\n ;\n ;\n this._listener = g.listen(j, \"JSBNG__scroll\", this._layer.hide.bind(this._layer));\n },\n detach: function() {\n ((this._listener && this._listener.remove()));\n this._listener = null;\n },\n _handleContextChange: function() {\n this.detach();\n if (this._layer.isShown()) {\n this.attach();\n }\n ;\n ;\n }\n });\n e.exports = i;\n});\n__d(\"LayerHideOnEscape\", [\"JSBNG__Event\",\"copyProperties\",\"Keys\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\"), i = b(\"Keys\");\n function j(k) {\n this._layer = k;\n };\n;\n h(j.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"key\", this._handle.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _handle: function(k, JSBNG__event) {\n if (((g.getKeyCode(JSBNG__event) === i.ESC))) {\n this._layer.hide();\n return false;\n }\n ;\n ;\n }\n });\n e.exports = j;\n});\n__d(\"TabbableElements\", [\"Style\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"Style\"), h = b(\"createArrayFrom\");\n function i(l) {\n if (((l.tabIndex >= 0))) {\n return true;\n }\n ;\n ;\n switch (l.tagName) {\n case \"A\":\n return ((l.href && ((l.rel != \"ignore\"))));\n case \"INPUT\":\n return ((((((l.type != \"hidden\")) && ((l.type != \"file\")))) && !l.disabled));\n case \"BUTTON\":\n \n case \"SELECT\":\n \n case \"TEXTAREA\":\n return !l.disabled;\n };\n ;\n return false;\n };\n;\n function j(l) {\n if (((((l.offsetHeight === 0)) && ((l.offsetWidth === 0))))) {\n return false;\n }\n ;\n ;\n while (((((l !== JSBNG__document)) && ((g.get(l, \"visibility\") != \"hidden\"))))) {\n l = l.parentNode;\n ;\n };\n ;\n return ((l === JSBNG__document));\n };\n;\n var k = {\n JSBNG__find: function(l) {\n var m = h(l.getElementsByTagName(\"*\"));\n return m.filter(k.isTabbable);\n },\n isTabbable: function(l) {\n return ((i(l) && j(l)));\n }\n };\n e.exports = k;\n});\n__d(\"Toggler\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"ContextualThing\",\"CSS\",\"DataStore\",\"Dialog\",\"DOM\",\"DOMQuery\",\"Focus\",\"Parent\",\"TabbableElements\",\"arrayContains\",\"cx\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"ge\",\"getContextualParent\",\"getObjectValues\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ContextualThing\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"Dialog\"), n = b(\"DOM\"), o = b(\"DOMQuery\"), p = b(\"Focus\"), q = b(\"Parent\"), r = b(\"TabbableElements\"), s = b(\"arrayContains\"), t = b(\"cx\"), u = b(\"copyProperties\"), v = b(\"createArrayFrom\"), w = b(\"emptyFunction\"), x = b(\"ge\"), y = b(\"getContextualParent\"), z = b(\"getObjectValues\"), aa = [], ba;\n function ca() {\n ca = w;\n g.listen(JSBNG__document.documentElement, \"click\", function(JSBNG__event) {\n var ga = JSBNG__event.getTarget();\n aa.forEach(function(ha) {\n ha.clickedTarget = ga;\n ((((((((((((ha.active && !ha.sticky)) && !j.containsIncludingLayers(ha.getActive(), ga))) && !ha.inTargetFlyout(ga))) && ha.inActiveDialog())) && !ha.isIgnoredByModalLayer(ga))) && ha.hide()));\n });\n }, g.Priority.URGENT);\n };\n;\n var da = function() {\n this.active = null;\n this.togglers = {\n };\n this.setSticky(false);\n aa.push(this);\n this.subscribe([\"show\",\"hide\",], da.inform.bind(da));\n return ca();\n };\n u(da.prototype, i, {\n show: function(ga) {\n var ha = ea(this, ga), ia = ha.active;\n if (((ga !== ia))) {\n ((ia && ha.hide()));\n ha.active = ga;\n k.addClass(ga, \"openToggler\");\n var ja = n.scry(ga, \"a[rel=\\\"toggle\\\"]\");\n if (((((ja.length > 0)) && ja[0].getAttribute(\"data-target\")))) {\n k.removeClass(x(ja[0].getAttribute(\"data-target\")), \"toggleTargetClosed\");\n }\n ;\n ;\n var ka = o.scry(ga, \".uiToggleFlyout\")[0];\n if (ka) {\n var la = ((r.JSBNG__find(ka)[0] || ka));\n if (((la.tabIndex == -1))) {\n la.tabIndex = 0;\n }\n ;\n ;\n p.setWithoutOutline(la);\n }\n ;\n ;\n n.appendContent(ga, ha.getToggler(\"next\"));\n n.prependContent(ga, ha.getToggler(\"prev\"));\n ha.inform(\"show\", ha);\n }\n ;\n ;\n },\n hide: function(ga) {\n var ha = ea(this, ga), ia = ha.active;\n if (((ia && ((!ga || ((ga === ia))))))) {\n k.removeClass(ia, \"openToggler\");\n var ja = n.scry(ia, \"a[rel=\\\"toggle\\\"]\");\n if (((((ja.length > 0)) && ja[0].getAttribute(\"data-target\")))) {\n k.addClass(x(ja[0].getAttribute(\"data-target\")), \"toggleTargetClosed\");\n }\n ;\n ;\n z(ha.togglers).forEach(n.remove);\n ha.inform(\"hide\", ha);\n ha.active = null;\n }\n ;\n ;\n },\n toggle: function(ga) {\n var ha = ea(this, ga);\n if (((ha.active === ga))) {\n ha.hide();\n }\n else ha.show(ga);\n ;\n ;\n },\n getActive: function() {\n return ea(this).active;\n },\n isShown: function() {\n return ((ea(this).active && k.hasClass(ea(this).active, \"openToggler\")));\n },\n inTargetFlyout: function(ga) {\n var ha = fa(this.getActive());\n return ((ha && j.containsIncludingLayers(ha, ga)));\n },\n inActiveDialog: function() {\n var ga = m.getCurrent();\n return ((!ga || n.contains(ga.getRoot(), this.getActive())));\n },\n isIgnoredByModalLayer: function(ga) {\n return ((q.byClass(ga, \"_3qw\") && !q.byClass(this.getActive(), \"_3qw\")));\n },\n getToggler: function(ga) {\n var ha = ea(this);\n if (!ha.togglers[ga]) {\n ha.togglers[ga] = n.create(\"button\", {\n className: \"hideToggler\",\n JSBNG__onfocus: function() {\n var ia = n.scry(ha.active, \"a[rel=\\\"toggle\\\"]\")[0];\n ((ia && ia.JSBNG__focus()));\n ha.hide();\n }\n });\n ha.togglers[ga].setAttribute(\"type\", \"button\");\n }\n ;\n ;\n return this.togglers[ga];\n },\n setSticky: function(ga) {\n var ha = ea(this);\n ga = ((ga !== false));\n if (((ga !== ha.sticky))) {\n ha.sticky = ga;\n if (ga) {\n ((ha._pt && ha._pt.unsubscribe()));\n }\n else ha._pt = h.subscribe(\"pre_page_transition\", ha.hide.bind(ha, null));\n ;\n ;\n }\n ;\n ;\n return ha;\n }\n });\n u(da, da.prototype);\n u(da, {\n bootstrap: function(ga) {\n var ha = ga.parentNode;\n da.getInstance(ha).toggle(ha);\n },\n createInstance: function(ga) {\n var ha = new da().setSticky(true);\n l.set(ga, \"toggler\", ha);\n return ha;\n },\n destroyInstance: function(ga) {\n l.remove(ga, \"toggler\");\n },\n getInstance: function(ga) {\n while (ga) {\n var ha = l.get(ga, \"toggler\");\n if (ha) {\n return ha;\n }\n ;\n ;\n if (k.hasClass(ga, \"uiToggleContext\")) {\n return da.createInstance(ga);\n }\n ;\n ;\n ga = y(ga);\n };\n ;\n return (ba = ((ba || new da())));\n },\n listen: function(ga, ha, ia) {\n return da.subscribe(v(ga), function(ja, ka) {\n if (((ka.getActive() === ha))) {\n return ia(ja, ka);\n }\n ;\n ;\n });\n },\n subscribe: (function(ga) {\n return function(ha, ia) {\n ha = v(ha);\n if (s(ha, \"show\")) {\n aa.forEach(function(ja) {\n if (ja.getActive()) {\n ia.curry(\"show\", ja).defer();\n }\n ;\n ;\n });\n }\n ;\n ;\n return ga(ha, ia);\n };\n })(da.subscribe.bind(da))\n });\n function ea(ga, ha) {\n if (((ga instanceof da))) {\n return ga;\n }\n ;\n ;\n return da.getInstance(ha);\n };\n;\n function fa(ga) {\n var ha = n.scry(ga, \"a[rel=\\\"toggle\\\"]\");\n if (((((ha.length > 0)) && ha[0].getAttribute(\"data-target\")))) {\n return x(ha[0].getAttribute(\"data-target\"));\n }\n ;\n ;\n };\n;\n e.exports = da;\n});\n__d(\"curry\", [\"bind\",], function(a, b, c, d, e, f) {\n var g = b(\"bind\"), h = g(null, g, null);\n e.exports = h;\n});\n__d(\"Popover\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"ContextualLayer\",\"ContextualLayerHideOnScroll\",\"CSS\",\"DataStore\",\"DOM\",\"Focus\",\"Keys\",\"KeyStatus\",\"LayerHideOnEscape\",\"Toggler\",\"copyProperties\",\"curry\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ContextualLayer\"), k = b(\"ContextualLayerHideOnScroll\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"Focus\"), p = b(\"Keys\"), q = b(\"KeyStatus\"), r = b(\"LayerHideOnEscape\"), s = b(\"Toggler\"), t = b(\"copyProperties\"), u = b(\"curry\");\n s.subscribe([\"show\",\"hide\",], function(w, x) {\n var y = m.get(x.getActive(), \"Popover\");\n if (y) {\n if (((w === \"show\"))) {\n y.showLayer();\n }\n else y.hideLayer();\n ;\n }\n ;\n ;\n });\n function v(w, x, y, z) {\n this._root = w;\n this._triggerElem = x;\n this._behaviors = y;\n this._config = ((z || {\n }));\n this._disabled = !!this._config.disabled;\n this._listeners = [];\n if (((!this._disabled && ((((x.nodeName !== \"A\")) || ((x.rel !== \"toggle\"))))))) {\n this._setupClickListener();\n }\n ;\n ;\n this._setupKeyListener();\n x.setAttribute(\"role\", \"button\");\n m.set(w, \"Popover\", this);\n };\n;\n t(v.prototype, i, {\n _layer: null,\n ensureInit: function() {\n if (!this._layer) {\n this._init();\n }\n ;\n ;\n },\n showLayer: function() {\n this.ensureInit();\n this._layer.show();\n s.show(this._root);\n l.addClass(this._root, \"selected\");\n this.inform(\"show\");\n this._triggerElem.setAttribute(\"aria-expanded\", \"true\");\n },\n getLayer: function() {\n return this._layer;\n },\n hideLayer: function() {\n this._layer.hide();\n this._triggerElem.setAttribute(\"aria-expanded\", \"false\");\n },\n isShown: function() {\n return ((this._layer && this._layer.isShown()));\n },\n setLayerContent: function(w) {\n this.ensureInit();\n this._layer.setContent(w);\n },\n _init: function() {\n var w = new j({\n context: this._triggerElem,\n position: \"below\"\n }, n.create(\"div\"));\n w.enableBehaviors([k,r,]);\n s.createInstance(w.getRoot()).setSticky(false);\n w.subscribe(\"hide\", this._onLayerHide.bind(this));\n ((this._behaviors && w.enableBehaviors(this._behaviors)));\n this._layer = w;\n if (this._config.alignh) {\n this._layer.setAlignment(this._config.alignh);\n }\n ;\n ;\n if (this._config.layer_content) {\n this._layer.setContent(this._config.layer_content);\n }\n ;\n ;\n this.inform(\"init\", null, h.BEHAVIOR_PERSISTENT);\n },\n _onLayerHide: function() {\n s.hide(this._root);\n l.removeClass(this._root, \"selected\");\n this.inform(\"hide\");\n if (((q.getKeyDownCode() === p.ESC))) {\n o.set(this._triggerElem);\n }\n ;\n ;\n },\n enable: function() {\n if (!this._disabled) {\n return;\n }\n ;\n ;\n this._setupClickListener();\n this._setupKeyListener();\n this._disabled = false;\n },\n disable: function() {\n if (this._disabled) {\n return;\n }\n ;\n ;\n if (this.isShown()) {\n this.hideLayer();\n }\n ;\n ;\n while (this._listeners.length) {\n this._listeners.pop().remove();\n ;\n };\n ;\n if (((this._triggerElem.getAttribute(\"rel\") === \"toggle\"))) {\n this._triggerElem.removeAttribute(\"rel\");\n }\n ;\n ;\n this._disabled = true;\n },\n _setupClickListener: function() {\n this._listeners.push(g.listen(this._triggerElem, \"click\", u(s.bootstrap, this._triggerElem)));\n },\n _setupKeyListener: function() {\n this._listeners.push(g.listen(this._triggerElem, \"keydown\", this._handleKeyEvent.bind(this)));\n },\n _handleKeyEvent: function(JSBNG__event) {\n if (JSBNG__event.getModifiers().any) {\n return;\n }\n ;\n ;\n switch (g.getKeyCode(JSBNG__event)) {\n case p.DOWN:\n \n case p.UP:\n s.bootstrap(this._triggerElem);\n break;\n default:\n return;\n };\n ;\n JSBNG__event.prevent();\n }\n });\n e.exports = v;\n});\n__d(\"PopoverMenu\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"ARIA\",\"BehaviorsMixin\",\"Focus\",\"Keys\",\"KeyStatus\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ARIA\"), k = b(\"BehaviorsMixin\"), l = b(\"Focus\"), m = b(\"Keys\"), n = b(\"KeyStatus\"), o = b(\"copyProperties\");\n function p(q, r, s, t) {\n this._popover = q;\n this._triggerElem = r;\n this._initialMenu = s;\n q.subscribe(\"init\", this._onLayerInit.bind(this));\n q.subscribe(\"show\", this._onPopoverShow.bind(this));\n q.subscribe(\"hide\", this._onPopoverHide.bind(this));\n g.listen(this._triggerElem, \"keydown\", this._handleKeyEventOnTrigger.bind(this));\n ((t && this.enableBehaviors(t)));\n };\n;\n o(p.prototype, i, k);\n o(p.prototype, {\n _popoverShown: false,\n setMenu: function(q) {\n this._menu = q;\n var r = q.getRoot();\n this._popover.setLayerContent(r);\n q.subscribe(\"done\", this._onMenuDone.bind(this));\n if (this._popoverShown) {\n this._menu.onShow();\n }\n ;\n ;\n j.owns(this._triggerElem, r);\n this.inform(\"setMenu\", null, h.BEHAVIOR_PERSISTENT);\n },\n getPopover: function() {\n return this._popover;\n },\n getTriggerElem: function() {\n return this._triggerElem;\n },\n getMenu: function() {\n return this._menu;\n },\n _onLayerInit: function() {\n this.setMenu(this._initialMenu);\n this._popover.getLayer().subscribe(\"key\", this._handleKeyEvent.bind(this));\n },\n _onPopoverShow: function() {\n if (this._menu) {\n this._menu.onShow();\n }\n ;\n ;\n this._popoverShown = true;\n },\n _onPopoverHide: function() {\n if (this._menu) {\n this._menu.onHide();\n }\n ;\n ;\n this._popoverShown = false;\n },\n _handleKeyEvent: function(q, r) {\n var s = g.getKeyCode(r);\n if (((s === m.TAB))) {\n this._popover.hideLayer();\n l.set(this._triggerElem);\n return;\n }\n ;\n ;\n if (r.getModifiers().any) {\n return;\n }\n ;\n ;\n switch (s) {\n case m.RETURN:\n return;\n case m.UP:\n \n case m.DOWN:\n this._menu.handleKeydown(s, r);\n break;\n default:\n if (((this._menu.handleKeydown(s, r) === false))) {\n this._menu.JSBNG__blur();\n this._menu.handleKeydown(s, r);\n }\n ;\n ;\n break;\n };\n ;\n r.prevent();\n },\n _handleKeyEventOnTrigger: function(q) {\n var r = g.getKeyCode(q);\n switch (r) {\n case m.DOWN:\n \n case m.UP:\n break;\n default:\n var s = String.fromCharCode(r).toLowerCase();\n if (!/^\\s?$/.test(s)) {\n this._popover.showLayer();\n this._menu.JSBNG__blur();\n if (((this._menu.handleKeydown(r, q) === false))) {\n this._popover.hideLayer();\n l.set(this._triggerElem);\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n },\n _onMenuDone: function(q) {\n this._popover.hideLayer.bind(this._popover).defer();\n if (n.isKeyDown()) {\n l.set(this._triggerElem);\n }\n ;\n ;\n },\n enable: function() {\n this._popover.enable();\n },\n disable: function() {\n this._popover.disable();\n }\n });\n e.exports = p;\n});\n__d(\"PopoverAsyncMenu\", [\"JSBNG__Event\",\"AsyncRequest\",\"Class\",\"PopoverMenu\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"Class\"), j = b(\"PopoverMenu\"), k = b(\"copyProperties\"), l = {\n }, m = 0;\n function n(o, p, q, r, s) {\n this._endpoint = r;\n this._loadingMenu = q;\n this._instanceId = m++;\n l[this._instanceId] = this;\n this._mouseoverListener = g.listen(p, \"mouseover\", this._fetchMenu.bind(this));\n this.parent.construct(this, o, p, null, s);\n };\n;\n n.setMenu = function(o, p) {\n l[o].setMenu(p);\n };\n n.getInstance = function(o) {\n return l[o];\n };\n i.extend(n, j);\n k(n.prototype, {\n _fetched: false,\n _mouseoverListener: null,\n _onLayerInit: function() {\n if (!this._menu) {\n this.setMenu(this._loadingMenu);\n }\n ;\n ;\n this._fetchMenu();\n this._popover.getLayer().subscribe(\"key\", this._handleKeyEvent.bind(this));\n },\n _fetchMenu: function() {\n if (this._fetched) {\n return;\n }\n ;\n ;\n new h().setURI(this._endpoint).setData({\n pmid: this._instanceId\n }).send();\n this._fetched = true;\n if (this._mouseoverListener) {\n this._mouseoverListener.remove();\n this._mouseoverListener = null;\n }\n ;\n ;\n }\n });\n e.exports = n;\n});\n__d(\"PopoverMenuInterface\", [\"ArbiterMixin\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n function j() {\n \n };\n;\n h(j.prototype, g, {\n getRoot: i,\n onShow: i,\n onHide: i,\n focusAnItem: i.thatReturnsFalse,\n JSBNG__blur: i,\n handleKeydown: i.thatReturnsFalse,\n done: function() {\n this.inform(\"done\");\n }\n });\n e.exports = j;\n});\n__d(\"PopoverMenuOverlappingBorder\", [\"CSS\",\"DOM\",\"Style\",\"copyProperties\",\"cx\",\"shield\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"Style\"), j = b(\"copyProperties\"), k = b(\"cx\"), l = b(\"shield\");\n function m(n) {\n this._popoverMenu = n;\n this._popover = n.getPopover();\n this._triggerElem = n.getTriggerElem();\n };\n;\n j(m.prototype, {\n _shortBorder: null,\n _setMenuSubscription: null,\n _showSubscription: null,\n _menuSubscription: null,\n enable: function() {\n this._setMenuSubscription = this._popoverMenu.subscribe(\"setMenu\", l(this._onSetMenu, this));\n },\n disable: function() {\n this._popoverMenu.unsubscribe(this._setMenuSubscription);\n this._setMenuSubscription = null;\n this._removeBorderSubscriptions();\n this._removeShortBorder();\n },\n _onSetMenu: function() {\n this._removeBorderSubscriptions();\n this._menu = this._popoverMenu.getMenu();\n this._renderShortBorder(this._menu.getRoot());\n this._showSubscription = this._popover.subscribe(\"show\", l(this._updateBorder, this));\n this._menuSubscription = this._menu.subscribe([\"change\",\"resize\",], l(Function.prototype.defer, l(this._updateBorder, this)));\n this._updateBorder();\n },\n _updateBorder: function() {\n var n = this._menu.getRoot(), o = this._triggerElem.offsetWidth, p = Math.max(((n.offsetWidth - o)), 0);\n i.set(this._shortBorder, \"width\", ((p + \"px\")));\n },\n _renderShortBorder: function(n) {\n this._shortBorder = h.create(\"div\", {\n className: \"_54hx\"\n });\n h.appendContent(n, this._shortBorder);\n g.addClass(n, \"_54hy\");\n },\n _removeShortBorder: function() {\n if (this._shortBorder) {\n h.remove(this._shortBorder);\n this._shortBorder = null;\n g.removeClass(this._popoverMenu.getMenu().getRoot(), \"_54hy\");\n }\n ;\n ;\n },\n _removeBorderSubscriptions: function() {\n if (this._showSubscription) {\n this._popover.unsubscribe(this._showSubscription);\n this._showSubscription = null;\n }\n ;\n ;\n if (this._menuSubscription) {\n this._menu.unsubscribe(this._menuSubscription);\n this._menuSubscription = null;\n }\n ;\n ;\n }\n });\n e.exports = m;\n});\n__d(\"PostLoadJS\", [\"Bootloader\",\"Run\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"Run\"), i = b(\"emptyFunction\");\n function j(l, m) {\n h.onAfterLoad(function() {\n g.loadModules.call(g, [l,], m);\n });\n };\n;\n var k = {\n loadAndRequire: function(l) {\n j(l, i);\n },\n loadAndCall: function(l, m, n) {\n j(l, function(o) {\n o[m].apply(o, n);\n });\n }\n };\n e.exports = k;\n});\n__d(\"ContextualLayerDimensions\", [\"DOM\",\"Locale\",\"JSBNG__Rect\",\"Vector\",\"ViewportBounds\",\"ge\",\"getOverlayZIndex\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"Locale\"), i = b(\"JSBNG__Rect\"), j = b(\"Vector\"), k = b(\"ViewportBounds\"), l = b(\"ge\"), m = b(\"getOverlayZIndex\"), n = {\n getViewportRect: function(o) {\n var p = l(\"globalContainer\"), q = o.getContext(), r = ((((p && g.contains(p, q))) || ((m(q) < 300)))), s = i.getViewportBounds();\n if (r) {\n s.t += k.getTop();\n if (h.isRTL()) {\n s.r -= k.getLeft();\n s.l += k.getRight();\n }\n else {\n s.r -= k.getRight();\n s.l += k.getLeft();\n }\n ;\n ;\n }\n ;\n ;\n return s;\n },\n getLayerRect: function(o, p) {\n var q = o.getContextBounds(\"viewport\"), r = o.simulateOrientation(p, function() {\n return j.getElementDimensions(o.getContent());\n }), s = ((q.t + p.getOffsetY()));\n if (((p.getPosition() === \"above\"))) {\n s -= r.y;\n }\n else if (((p.getPosition() === \"below\"))) {\n s += ((q.b - q.t));\n }\n \n ;\n ;\n var t = ((q.l + p.getOffsetX())), u = ((q.r - q.l));\n if (p.isVertical()) {\n var v = p.getAlignment();\n if (((v === \"center\"))) {\n t += ((((u - r.x)) / 2));\n }\n else if (((((v === \"right\")) !== h.isRTL()))) {\n t += ((u - r.x));\n }\n \n ;\n ;\n }\n else if (((((p.getPosition() === \"right\")) !== h.isRTL()))) {\n t += u;\n }\n else t -= r.x;\n \n ;\n ;\n return new i(s, ((t + r.x)), ((s + r.y)), t, \"viewport\");\n }\n };\n e.exports = n;\n});\n__d(\"ContextualLayerAutoFlip\", [\"ContextualLayerDimensions\",\"DOM\",\"Vector\",\"arrayContains\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ContextualLayerDimensions\"), h = b(\"DOM\"), i = b(\"Vector\"), j = b(\"arrayContains\"), k = b(\"copyProperties\");\n function l(m) {\n this._layer = m;\n };\n;\n k(l.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"adjust\", this._adjustOrientation.bind(this));\n if (this._layer.isShown()) {\n this._layer.updatePosition();\n }\n ;\n ;\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n if (this._layer.isShown()) {\n this._layer.updatePosition();\n }\n ;\n ;\n },\n _adjustOrientation: function(m, n) {\n var o = this._getValidPositions(n);\n if (!o.length) {\n n.invalidate();\n return;\n }\n ;\n ;\n var p = g.getViewportRect(this._layer), q = this._getValidAlignments(n), r, s, t;\n for (r = 0; ((r < q.length)); r++) {\n n.setAlignment(q[r]);\n for (s = 0; ((s < o.length)); s++) {\n n.setPosition(o[s]);\n t = g.getLayerRect(this._layer, n);\n if (p.contains(t)) {\n return;\n }\n ;\n ;\n };\n ;\n };\n ;\n n.setPosition(((j(o, \"below\") ? \"below\" : o[0])));\n for (r = 0; ((r < q.length)); r++) {\n n.setAlignment(q[r]);\n t = g.getLayerRect(this._layer, n);\n if (((((t.l >= p.l)) && ((t.r <= p.r))))) {\n return;\n }\n ;\n ;\n };\n ;\n n.setAlignment(q[0]);\n },\n _getValidPositions: function(m) {\n var n = [m.getPosition(),m.getOppositePosition(),], o = this._layer.getContextScrollParent();\n if (((((o === window)) || ((o === h.getDocumentScrollElement()))))) {\n return n;\n }\n ;\n ;\n var p = this._layer.getContext(), q = i.getElementPosition(o, \"viewport\").y, r = i.getElementPosition(p, \"viewport\").y;\n if (m.isVertical()) {\n return n.filter(function(t) {\n if (((t === \"above\"))) {\n return ((r >= q));\n }\n else {\n var u = ((q + o.offsetHeight)), v = ((r + p.offsetHeight));\n return ((v <= u));\n }\n ;\n ;\n });\n }\n else {\n var s = ((q + o.offsetHeight));\n if (((((r >= q)) && ((((r + p.offsetHeight)) <= s))))) {\n return n;\n }\n else return []\n ;\n }\n ;\n ;\n },\n _getValidAlignments: function(m) {\n var n = [\"left\",\"right\",\"center\",], o = m.getAlignment(), p = n.indexOf(o);\n if (((p > 0))) {\n n.splice(p, 1);\n n.unshift(o);\n }\n ;\n ;\n return n;\n }\n });\n e.exports = l;\n});\n__d(\"Tooltip\", [\"JSBNG__Event\",\"AsyncRequest\",\"ContextualLayer\",\"ContextualLayerAutoFlip\",\"CSS\",\"DataStore\",\"DOM\",\"Style\",\"URI\",\"copyProperties\",\"emptyFunction\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"ContextualLayer\"), j = b(\"ContextualLayerAutoFlip\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"DOM\"), n = b(\"Style\"), o = b(\"URI\"), p = b(\"copyProperties\"), q = b(\"emptyFunction\"), r = b(\"cx\"), s = b(\"tx\"), t = null, u = null, v = null, w = [], x;\n function y() {\n if (!u) {\n v = m.create(\"div\", {\n className: \"tooltipContent\"\n });\n var fa = m.create(\"i\", {\n className: \"arrow\"\n }), ga = m.create(\"div\", {\n className: \"uiTooltipX\"\n }, [v,fa,]);\n u = new i({\n }, ga);\n u.shouldSetARIAProperties(false);\n u.enableBehavior(j);\n }\n ;\n ;\n };\n;\n function z(fa) {\n return p({\n JSBNG__content: fa.getAttribute(\"aria-label\"),\n position: ((fa.getAttribute(\"data-tooltip-position\") || \"above\")),\n alignH: ((fa.getAttribute(\"data-tooltip-alignh\") || \"left\"))\n }, l.get(fa, \"tooltip\"));\n };\n;\n function aa(fa, ga) {\n var ha = z(fa);\n l.set(fa, \"tooltip\", {\n JSBNG__content: ((ga.JSBNG__content || ha.JSBNG__content)),\n position: ((ga.position || ha.position)),\n alignH: ((ga.alignH || ha.alignH)),\n suspend: ((ga.suspend || ha.suspend))\n });\n fa.setAttribute(\"data-hover\", \"tooltip\");\n };\n;\n function ba(fa, ga) {\n ea.set(fa, \"Loading...\");\n new h(ga).setHandler(function(ha) {\n ea.set(fa, ha.getPayload());\n }).setErrorHandler(q).send();\n };\n;\n var ca = /(\\r\\n|[\\r\\n])/;\n function da(fa) {\n return fa.split(ca).map(function(ga) {\n return ((ca.test(ga) ? m.create(\"br\") : ga));\n });\n };\n;\n var ea = {\n process: function(fa, ga) {\n if (!m.contains(fa, ga)) {\n return;\n }\n ;\n ;\n if (((((fa !== t)) && !fa.getAttribute(\"data-tooltip-suspend\")))) {\n var ha = fa.getAttribute(\"data-tooltip-uri\");\n if (ha) {\n fa.removeAttribute(\"data-tooltip-uri\");\n ba(fa, ha);\n }\n ;\n ;\n ea.show(fa);\n }\n ;\n ;\n },\n remove: function(fa) {\n l.remove(fa, \"tooltip\");\n fa.removeAttribute(\"data-hover\");\n fa.removeAttribute(\"data-tooltip-position\");\n fa.removeAttribute(\"data-tooltip-alignh\");\n ((((fa === t)) && ea.hide()));\n },\n suspend: function(fa) {\n fa.setAttribute(\"data-tooltip-suspend\", true);\n ((((fa === t)) && ea.hide()));\n },\n unsuspend: function(fa) {\n fa.removeAttribute(\"data-tooltip-suspend\");\n },\n hide: function() {\n if (t) {\n u.hide();\n t = null;\n while (w.length) {\n w.pop().remove();\n ;\n };\n ;\n }\n ;\n ;\n },\n set: function(fa, ga, ha, ia) {\n if (((ha || ia))) {\n aa(fa, {\n position: ha,\n alignH: ia\n });\n }\n ;\n ;\n if (((ga instanceof o))) {\n if (((fa === t))) {\n ba(fa, ga);\n }\n else fa.setAttribute(\"data-tooltip-uri\", ga);\n ;\n ;\n }\n else {\n if (((typeof ga !== \"string\"))) {\n ga = m.create(\"div\", {\n }, ga);\n fa.setAttribute(\"aria-label\", m.getText(ga));\n }\n else fa.setAttribute(\"aria-label\", ga);\n ;\n ;\n aa(fa, {\n JSBNG__content: ga\n });\n ((((fa === t)) && ea.show(fa)));\n }\n ;\n ;\n },\n show: function(fa) {\n y();\n ea.hide();\n var ga = z(fa);\n if (!ga.JSBNG__content) {\n return;\n }\n ;\n ;\n var ha = 0, ia = 0;\n if (((((ga.position === \"left\")) || ((ga.position === \"right\"))))) {\n x = ((x || k.hasClass(JSBNG__document.body, \"_6nw\")));\n var ja = ((x ? 28 : 20));\n ia = ((((fa.offsetHeight - ja)) / 2));\n }\n else if (((ga.alignH !== \"center\"))) {\n var ka = fa.offsetWidth;\n if (((ka < 18))) {\n ha = ((((((ka - 18)) / 2)) * ((((ga.alignH === \"right\")) ? -1 : 1))));\n }\n ;\n ;\n }\n \n ;\n ;\n u.setContext(fa).setOffsetX(ha).setOffsetY(ia).setPosition(ga.position).setAlignment(ga.alignH);\n if (((typeof ga.JSBNG__content === \"string\"))) {\n k.addClass(u.getRoot(), \"invisible_elem\");\n var la = m.create(\"span\", {\n }, da(ga.JSBNG__content)), ma = m.create(\"div\", {\n className: \"tooltipText\"\n }, la);\n m.setContent(v, ma);\n u.show();\n var na;\n if (ma.getClientRects) {\n var oa = ma.getClientRects()[0];\n if (oa) {\n na = Math.round(((oa.right - oa.left)));\n }\n ;\n ;\n }\n ;\n ;\n if (!na) {\n na = ma.offsetWidth;\n }\n ;\n ;\n if (((na < la.offsetWidth))) {\n k.addClass(ma, \"tooltipWrap\");\n u.updatePosition();\n }\n ;\n ;\n k.removeClass(u.getRoot(), \"invisible_elem\");\n }\n else {\n m.setContent(v, ga.JSBNG__content);\n u.show();\n }\n ;\n ;\n var pa = function(ra) {\n if (!m.contains(t, ra.getTarget())) {\n ea.hide();\n }\n ;\n ;\n };\n w.push(g.listen(JSBNG__document.documentElement, \"mouseover\", pa), g.listen(JSBNG__document.documentElement, \"focusin\", pa));\n var qa = n.getScrollParent(fa);\n if (((qa !== window))) {\n w.push(g.listen(qa, \"JSBNG__scroll\", ea.hide));\n }\n ;\n ;\n w.push(g.listen(fa, \"click\", ea.hide));\n t = fa;\n }\n };\n g.listen(window, \"JSBNG__scroll\", ea.hide);\n e.exports = ea;\n});\n__d(\"SelectorDeprecated\", [\"JSBNG__Event\",\"Arbiter\",\"Button\",\"ContextualLayer\",\"CSS\",\"DataStore\",\"DOM\",\"Focus\",\"HTML\",\"Keys\",\"KeyStatus\",\"MenuDeprecated\",\"Parent\",\"Style\",\"Toggler\",\"Tooltip\",\"Vector\",\"arrayContains\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"Button\"), j = b(\"ContextualLayer\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"DOM\"), n = b(\"Focus\"), o = b(\"HTML\"), p = b(\"Keys\"), q = b(\"KeyStatus\"), r = b(\"MenuDeprecated\"), s = b(\"Parent\"), t = b(\"Style\"), u = b(\"Toggler\"), v = b(\"Tooltip\"), w = b(\"Vector\"), x = b(\"arrayContains\"), y = b(\"copyProperties\"), z = b(\"emptyFunction\"), aa, ba, ca = [], da;\n function ea(pa) {\n return s.byClass(pa, \"uiSelector\");\n };\n;\n function fa(pa) {\n return s.byClass(pa, \"uiSelectorButton\");\n };\n;\n function ga() {\n if (!ba) {\n ba = new j({\n position: \"below\"\n }, m.create(\"div\"));\n k.addClass(ba.getRoot(), \"uiSelectorContextualLayer\");\n }\n ;\n ;\n return ba;\n };\n;\n function ha(pa) {\n return m.scry(pa, \"select\")[0];\n };\n;\n function ia(pa) {\n return m.JSBNG__find(pa, \"div.uiSelectorMenuWrapper\");\n };\n;\n function ja() {\n ja = z;\n r.subscribe(\"select\", function(pa, qa) {\n if (((((!aa || !qa)) || ((qa.menu !== oa.getSelectorMenu(aa)))))) {\n return;\n }\n ;\n ;\n var ra = ka(aa), sa = la(qa.item);\n if (sa) {\n var ta = aa, ua = oa.isOptionSelected(qa.item), va = oa.inform(\"select\", {\n selector: ta,\n option: qa.item,\n clone: da\n });\n if (((va === false))) {\n return;\n }\n ;\n ;\n if (((ra || !ua))) {\n oa.setSelected(ta, oa.getOptionValue(qa.item), !ua);\n oa.inform(\"toggle\", {\n selector: ta,\n option: qa.item\n });\n oa.inform(\"change\", {\n selector: ta\n });\n h.inform(\"Form/change\", {\n node: ta\n });\n if (ma(ta)) {\n l.set(ta, \"dirty\", true);\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n if (((!ra || !sa))) {\n ((aa && oa.toggle(aa)));\n }\n ;\n ;\n });\n };\n;\n function ka(pa) {\n return !!pa.getAttribute(\"data-multiple\");\n };\n;\n function la(pa) {\n return k.hasClass(pa, \"uiSelectorOption\");\n };\n;\n function ma(pa) {\n return !!pa.getAttribute(\"data-autosubmit\");\n };\n;\n var na = function() {\n na = z;\n var pa = {\n keydown: function(JSBNG__event) {\n var qa = JSBNG__event.getTarget();\n if (m.isInputNode(qa)) {\n return;\n }\n ;\n ;\n switch (g.getKeyCode(JSBNG__event)) {\n case p.DOWN:\n \n case p.SPACE:\n \n case p.UP:\n if (fa(qa)) {\n var ra = ea(qa);\n oa.toggle(ra);\n return false;\n }\n ;\n ;\n break;\n case p.ESC:\n if (aa) {\n var sa = oa.getSelectorButton(aa);\n oa.toggle(aa);\n ((sa && n.set(sa)));\n return false;\n }\n ;\n ;\n break;\n };\n ;\n },\n mouseover: function(JSBNG__event) {\n var qa = s.byAttribute(JSBNG__event.getTarget(), \"ajaxify\");\n if (((qa && k.hasClass(qa, \"uiSelectorButton\")))) {\n oa.loadMenu(ea(qa));\n }\n ;\n ;\n }\n };\n g.listen(JSBNG__document.body, pa);\n };\n u.subscribe([\"show\",\"hide\",], function(pa, qa) {\n var ra = ea(qa.getActive());\n if (ra) {\n na();\n ja();\n var sa = oa.getSelectorButton(ra), ta = oa.getSelectorMenu(ra), ua = ((pa === \"show\"));\n sa.setAttribute(\"aria-expanded\", ((ua ? \"true\" : \"false\")));\n if (ua) {\n aa = ra;\n if (k.hasClass(sa, \"uiButtonDisabled\")) {\n oa.setEnabled(ra, false);\n return false;\n }\n ;\n ;\n ta = ((ta || oa.loadMenu(ra)));\n var va = t.getScrollParent(ra), wa = ((((va !== window)) && ((va !== m.getDocumentScrollElement()))));\n if (((wa || k.hasClass(ra, \"uiSelectorUseLayer\")))) {\n if (wa) {\n ca.push(g.listen(va, \"JSBNG__scroll\", function() {\n qa.hide();\n }));\n }\n ;\n ;\n da = m.create(\"div\", {\n className: ra.className\n });\n k.addClass(da, \"invisible_elem\");\n w.getElementDimensions(ra).setElementDimensions(da);\n m.replace(ra, da);\n var xa = k.hasClass(ra, \"uiSelectorRight\"), ya = k.hasClass(ra, \"uiSelectorBottomUp\");\n ga().setContext(da).setContent(ra).setPosition(((ya ? \"above\" : \"below\"))).setAlignment(((xa ? \"right\" : \"left\"))).show();\n }\n ;\n ;\n r.register(ta);\n if (q.isKeyDown()) {\n var za = r.getCheckedItems(ta);\n if (!za.length) {\n za = r.getEnabledItems(ta);\n }\n ;\n ;\n r.focusItem(za[0]);\n }\n ;\n ;\n }\n else {\n aa = null;\n if (da) {\n while (ca.length) {\n ca.pop().remove();\n ;\n };\n ;\n m.replace(da, ra);\n ga().hide();\n da = null;\n }\n ;\n ;\n ((ta && r.unregister(ta)));\n if (((ma(ra) && l.get(ra, \"dirty\")))) {\n var ab = m.scry(ra, \"input.submitButton\")[0];\n ((ab && ab.click()));\n l.remove(ra, \"dirty\");\n }\n ;\n ;\n }\n ;\n ;\n k.conditionClass(oa.getSelectorButton(ra), \"selected\", ua);\n oa.inform(((ua ? \"open\" : \"close\")), {\n selector: ra,\n clone: da\n });\n }\n ;\n ;\n });\n var oa = y(new h(), {\n attachMenu: function(pa, qa, ra) {\n pa = ea(pa);\n if (pa) {\n ((aa && r.unregister(oa.getSelectorMenu(aa))));\n m.setContent(ia(pa), qa);\n ((aa && r.register(oa.getSelectorMenu(pa))));\n ((da && ga().updatePosition()));\n if (ra) {\n var sa = pa.getAttribute(\"data-name\");\n ((sa && ra.setAttribute(\"JSBNG__name\", sa)));\n if (!ka(pa)) {\n ra.setAttribute(\"multiple\", false);\n }\n ;\n ;\n var ta = ha(pa);\n if (ta) {\n m.replace(ta, ra);\n }\n else m.insertAfter(pa.firstChild, ra);\n ;\n ;\n }\n ;\n ;\n return true;\n }\n ;\n ;\n },\n getOption: function(pa, qa) {\n var ra = oa.getOptions(pa), sa = ra.length;\n while (sa--) {\n if (((qa === oa.getOptionValue(ra[sa])))) {\n return ra[sa];\n }\n ;\n ;\n };\n ;\n return null;\n },\n getOptions: function(pa) {\n var qa = r.getItems(oa.getSelectorMenu(pa));\n return qa.filter(la);\n },\n getEnabledOptions: function(pa) {\n var qa = r.getEnabledItems(oa.getSelectorMenu(pa));\n return qa.filter(la);\n },\n getSelectedOptions: function(pa) {\n return r.getCheckedItems(oa.getSelectorMenu(pa));\n },\n getOptionText: function(pa) {\n return r.getItemLabel(pa);\n },\n getOptionValue: function(pa) {\n var qa = ea(pa), ra = ha(qa), sa = oa.getOptions(qa).indexOf(pa);\n return ((((sa >= 0)) ? ra.options[((sa + 1))].value : \"\"));\n },\n getSelectorButton: function(pa) {\n return m.JSBNG__find(pa, \"a.uiSelectorButton\");\n },\n getSelectorMenu: function(pa) {\n return m.scry(pa, \"div.uiSelectorMenu\")[0];\n },\n getValue: function(pa) {\n var qa = ha(pa);\n if (!qa) {\n return null;\n }\n ;\n ;\n if (!ka(pa)) {\n return qa.value;\n }\n ;\n ;\n var ra = [], sa = qa.options;\n for (var ta = 1, ua = sa.length; ((ta < ua)); ta++) {\n if (sa[ta].selected) {\n ra.push(sa[ta].value);\n }\n ;\n ;\n };\n ;\n return ra;\n },\n isOptionSelected: function(pa) {\n return r.isItemChecked(pa);\n },\n listen: function(pa, qa, ra) {\n return this.subscribe(qa, function(sa, ta) {\n if (((ta.selector === pa))) {\n return ra(ta, sa);\n }\n ;\n ;\n });\n },\n loadMenu: function(pa) {\n var qa = oa.getSelectorMenu(pa);\n if (!qa) {\n var ra = oa.getSelectorButton(pa), sa = ra.getAttribute(\"ajaxify\");\n if (sa) {\n d([\"AsyncRequest\",], function(ua) {\n ua.bootstrap(sa, ra);\n });\n var ta = o(((((((((((((\"\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\" + \"\\u003Cdiv class=\\\"uiMenu uiSelectorMenu loading\\\"\\u003E\")) + \"\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\")) + \"\\u003Cli\\u003E\\u003Cspan\\u003E\\u003C/span\\u003E\\u003C/li\\u003E\")) + \"\\u003C/ul\\u003E\")) + \"\\u003C/div\\u003E\")) + \"\\u003C/div\\u003E\")));\n m.appendContent(ra.parentNode, ta);\n qa = oa.getSelectorMenu(pa);\n ra.removeAttribute(\"JSBNG__onmouseover\");\n }\n ;\n ;\n }\n ;\n ;\n return qa;\n },\n setButtonLabel: function(pa, qa) {\n var ra = oa.getSelectorButton(pa), sa = parseInt(ra.getAttribute(\"data-length\"), 10);\n qa = ((((qa || ra.getAttribute(\"data-label\"))) || \"\"));\n i.setLabel(ra, qa);\n if (((typeof qa === \"string\"))) {\n k.conditionClass(ra, \"uiSelectorBigButtonLabel\", ((qa.length > sa)));\n if (((sa && ((qa.length > sa))))) {\n ra.setAttribute(\"title\", qa);\n }\n else ra.removeAttribute(\"title\");\n ;\n ;\n }\n ;\n ;\n },\n setButtonTooltip: function(pa, qa) {\n var ra = oa.getSelectorButton(pa), sa = s.byTag(ra, \"a\");\n ((sa && v.set(sa, ((((qa || ra.getAttribute(\"data-tooltip\"))) || \"\")))));\n },\n updateButtonARIALabel: function(pa, qa) {\n var ra = oa.getSelectorButton(pa), sa = s.byTag(ra, \"a\");\n if (sa) {\n var ta = ra.getAttribute(\"data-ariaprefix\");\n if (ta) {\n ra.setAttribute(\"aria-label\", ((((ta + \": \")) + qa)));\n }\n ;\n ;\n }\n ;\n ;\n },\n setEnabled: function(pa, qa) {\n if (((((!qa && aa)) && ((ea(pa) === aa))))) {\n oa.toggle(pa);\n }\n ;\n ;\n i.setEnabled(oa.getSelectorButton(pa), qa);\n },\n setOptionEnabled: function(pa, qa) {\n r.setItemEnabled(pa, qa);\n },\n setSelected: function(pa, qa, ra) {\n ra = ((ra !== false));\n var sa = oa.getOption(pa, qa);\n if (!sa) {\n return;\n }\n ;\n ;\n var ta = oa.isOptionSelected(sa);\n if (((ra !== ta))) {\n if (((!ka(pa) && !ta))) {\n var ua = oa.getSelectedOptions(pa)[0];\n ((ua && r.toggleItem(ua)));\n }\n ;\n ;\n r.toggleItem(sa);\n }\n ;\n ;\n oa.updateSelector(pa);\n },\n toggle: function(pa) {\n u.toggle(m.scry(ea(pa), \"div.wrap\")[0]);\n },\n updateSelector: function(pa) {\n var qa = oa.getOptions(pa), ra = oa.getSelectedOptions(pa), sa = ha(pa).options, ta = [], ua = [];\n for (var va = 0, wa = qa.length; ((va < wa)); va++) {\n var xa = x(ra, qa[va]);\n sa[((va + 1))].selected = xa;\n if (xa) {\n var ya = oa.getOptionText(qa[va]);\n ta.push(ya);\n ua.push(((qa[va].getAttribute(\"data-tooltip\") || ya)));\n }\n ;\n ;\n };\n ;\n sa[0].selected = !ra.length;\n var za = k.hasClass(pa, \"uiSelectorDynamicLabel\"), ab = k.hasClass(pa, \"uiSelectorDynamicTooltip\");\n if (((za || ab))) {\n var bb = \"\";\n if (ka(pa)) {\n var cb = oa.getSelectorButton(pa);\n bb = ((cb.getAttribute(\"data-delimiter\") || \", \"));\n }\n ;\n ;\n ta = ta.join(bb);\n ua = ua.join(bb);\n if (za) {\n oa.setButtonLabel(pa, ta);\n oa.updateButtonARIALabel(pa, ta);\n }\n ;\n ;\n ((ab && oa.setButtonTooltip(pa, ua)));\n }\n ;\n ;\n }\n });\n e.exports = oa;\n});\n__d(\"SubscriptionsHandler\", [\"JSLogger\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSLogger\"), h = b(\"copyProperties\"), i = g.create(\"subscriptions_handler\");\n function j(k) {\n this._name = ((k || \"unnamed\"));\n this._subscriptions = [];\n };\n;\n h(j.prototype, {\n addSubscriptions: function() {\n if (this._subscriptions) {\n Array.prototype.push.apply(this._subscriptions, arguments);\n }\n else {\n i.warn(((this._name + \".subscribe_while_released\")));\n for (var k = 0, l = arguments.length; ((k < l)); k++) {\n this._unsubscribe(arguments[k]);\n ;\n };\n ;\n }\n ;\n ;\n },\n engage: function() {\n this._subscriptions = ((this._subscriptions || []));\n },\n release: function() {\n if (this._subscriptions) {\n this._subscriptions.forEach(this._unsubscribe.bind(this));\n }\n ;\n ;\n this._subscriptions = null;\n },\n _unsubscribe: function(k) {\n if (k.remove) {\n k.remove();\n }\n else if (k.reset) {\n k.reset();\n }\n else if (k.unsubscribe) {\n k.unsubscribe();\n }\n else i.error(((this._name + \".invalid\")), k);\n \n \n ;\n ;\n }\n });\n e.exports = j;\n});\n__d(\"UserActivity\", [\"Arbiter\",\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"JSBNG__Event\"), i = 5000, j = 500, k = -5, l = JSBNG__Date.now(), m = l, n = {\n subscribeOnce: function(p) {\n var q = n.subscribe(function() {\n n.unsubscribe(q);\n p();\n });\n },\n subscribe: function(p) {\n return g.subscribe(\"useractivity/activity\", p);\n },\n unsubscribe: function(p) {\n p.unsubscribe();\n },\n isActive: function(p) {\n return ((((new JSBNG__Date() - l)) < ((p || i))));\n },\n getLastInformTime: function() {\n return m;\n }\n };\n function o(JSBNG__event) {\n l = JSBNG__Date.now();\n var p = ((l - m));\n if (((p > j))) {\n m = l;\n g.inform(\"useractivity/activity\", {\n JSBNG__event: JSBNG__event,\n idleness: p,\n last_inform: m\n });\n }\n else if (((p < k))) {\n m = l;\n }\n \n ;\n ;\n };\n;\n h.listen(window, \"JSBNG__scroll\", o);\n h.listen(window, \"JSBNG__focus\", o);\n h.listen(JSBNG__document.documentElement, {\n DOMMouseScroll: o,\n mousewheel: o,\n keydown: o,\n mouseover: o,\n mousemove: o,\n click: o\n });\n g.subscribe(\"Event/stop\", function(p, q) {\n o(q.JSBNG__event);\n });\n e.exports = n;\n});\n__d(\"enforceMaxLength\", [\"JSBNG__Event\",\"function-extensions\",\"DOM\",\"Input\",\"InputSelection\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"DOM\"), i = b(\"Input\"), j = b(\"InputSelection\"), k = function(n, o) {\n var p = i.getValue(n), q = p.length, r = ((q - o));\n if (((r > 0))) {\n var s, t;\n try {\n s = j.get(n);\n t = s.end;\n } catch (u) {\n s = null;\n t = 0;\n };\n ;\n if (((t >= r))) {\n q = t;\n }\n ;\n ;\n var v = ((q - r));\n if (((v && ((((p.charCodeAt(((v - 1))) & 64512)) === 55296))))) {\n v--;\n }\n ;\n ;\n t = Math.min(t, v);\n i.setValue(n, ((p.slice(0, v) + p.slice(q))));\n if (s) {\n j.set(n, Math.min(s.start, t), t);\n }\n ;\n ;\n }\n ;\n ;\n }, l = function(JSBNG__event) {\n var n = JSBNG__event.getTarget(), o = ((n.getAttribute && parseInt(n.getAttribute(\"maxlength\"), 10)));\n if (((((o > 0)) && h.isNodeOfType(n, [\"input\",\"textarea\",])))) {\n k.bind(null, n, o).defer();\n }\n ;\n ;\n }, m = ((((\"maxLength\" in h.create(\"input\"))) && ((\"maxLength\" in h.create(\"textarea\")))));\n if (!m) {\n g.listen(JSBNG__document.documentElement, {\n keydown: l,\n paste: l\n });\n }\n;\n;\n e.exports = k;\n});\n__d(\"guid\", [], function(a, b, c, d, e, f) {\n function g() {\n return ((\"f\" + ((Math.JSBNG__random() * ((1 << 30)))).toString(16).replace(\".\", \"\")));\n };\n;\n e.exports = g;\n});\n__d(\"reportData\", [\"EagleEye\",\"userAction\",], function(a, b, c, d, e, f) {\n var g = b(\"EagleEye\"), h = b(\"userAction\");\n function i(j, k) {\n k = ((k || {\n }));\n var l = {\n ft: ((k.ft || {\n })),\n gt: ((k.gt || {\n }))\n }, m = \"-\", n = a.ArbiterMonitor, o = (((!!n) ? n.getActFields() : [])), p = (((!n) ? \"r\" : \"a\")), q = [JSBNG__Date.now(),h.getCurrentUECount(),m,j,m,m,p,((a.URI ? a.URI.getRequestURI(true, true).getUnqualifiedURI().toString() : ((((JSBNG__location.pathname + JSBNG__location.search)) + JSBNG__location.hash)))),l,0,0,0,0,].concat(o);\n g.log(\"act\", q);\n };\n;\n e.exports = i;\n});\n__d(\"NetEgo\", [\"Arbiter\",\"CSS\",\"DOM\",\"URI\",\"ge\",\"Animation\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"URI\"), k = b(\"ge\"), l = b(\"Animation\"), m = {\n setup: function(n) {\n g.subscribe([\"page/liked\",\"FriendRequest/sending\",], function(o, p) {\n if (((((n == p.id)) || ((n == p.uid))))) {\n var q = k(JSBNG__document.body, \".ego_unit_container\");\n if (q) {\n var r = i.scry(q, \".ego_unit\"), s = r.length;\n for (var t = 0; ((t < s)); t++) {\n var u = r[t].getAttribute(\"data-ego-fbid\");\n if (((((u == p.id)) || ((u == p.uid))))) {\n var v = i.JSBNG__find(r[t], \".ego_action a\");\n if (v) {\n v.click();\n }\n ;\n ;\n break;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n }\n ;\n ;\n });\n },\n updateXids: function(n, o) {\n if (((((n.length == 0)) && ((o.length == 0))))) {\n return;\n }\n ;\n ;\n var p = function(z) {\n return function(aa) {\n var ba = aa.getAttribute(z);\n if (!ba) {\n return false;\n }\n ;\n ;\n var ca = new j(ba).getQueryData();\n return !!ca.xids;\n };\n }, q = i.scry(JSBNG__document.body, \".ego_unit a\");\n q = q.filter(p(\"ajaxify\"));\n if (((q.length == 0))) {\n return;\n }\n ;\n ;\n var r = new j(q[0].getAttribute(\"ajaxify\")), s = r.getQueryData();\n if (!s.xids) {\n return;\n }\n ;\n ;\n try {\n var u = JSON.parse(s.xids);\n } catch (t) {\n return;\n };\n ;\n for (var v = 0; ((v < n.length)); ++v) {\n delete u[n[v]];\n ;\n };\n ;\n for (v = 0; ((v < o.length)); ++v) {\n u[o[v]] = 1;\n ;\n };\n ;\n var w = JSON.stringify(u), x = function(z, aa) {\n r = new j(z.getAttribute(aa));\n s = r.getQueryData();\n s.xids = w;\n r.setQueryData(s);\n z.setAttribute(aa, r.toString());\n };\n for (v = 0; ((v < q.length)); ++v) {\n x(q[v], \"ajaxify\");\n ;\n };\n ;\n var y = i.scry(JSBNG__document.body, \".ego_unit form\");\n y = y.filter(p(\"action\"));\n for (v = 0; ((v < y.length)); ++v) {\n x(y[v], \"action\");\n ;\n };\n ;\n },\n replaceUnit: function(n, o, p, q) {\n var r = i.insertAfter(n, o);\n r.forEach(h.hide);\n if (((((q !== undefined)) && ((q !== null))))) {\n (function() {\n m._replaceUnitFadeout(n, r, p);\n }).defer(q);\n }\n else m._replaceUnitFadeout(n, r, p);\n ;\n ;\n },\n _replaceUnitFadeout: function(n, o, p) {\n if (p) {\n new l(n).from(\"opacity\", 1).to(\"opacity\", 0).duration(p).checkpoint(1, function() {\n m._replaceUnitElement(n, o);\n }).go();\n }\n else m._replaceUnitElement(n, o);\n ;\n ;\n },\n _replaceUnitElement: function(n, o) {\n i.remove(n);\n o.forEach(h.show);\n g.inform(\"netego_replacedUnit\");\n m.clearHeader();\n },\n clearHeader: function() {\n var n = i.scry(JSBNG__document.body, \".ego_column\"), o = [];\n for (var p = 0; ((p < n.length)); ++p) {\n o = o.concat(i.scry(n[p], \".uiHeader\"));\n ;\n };\n ;\n for (p = 0; ((p < o.length)); ++p) {\n var q = o[p].nextSibling;\n if (((!q || ((q.childNodes.length === 0))))) {\n i.remove(o[p]);\n }\n else if (((q.childNodes.length === 1))) {\n var r = q.childNodes[0];\n if (((h.hasClass(r, \"ego_appended_units\") && ((r.childNodes.length === 0))))) {\n i.remove(o[p]);\n }\n ;\n ;\n }\n \n ;\n ;\n };\n ;\n }\n };\n e.exports = m;\n});\n__d(\"ControlledReferer\", [\"JSBNG__Event\",\"URI\",\"UserAgent\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"URI\"), i = b(\"UserAgent\"), j = {\n useFacebookReferer: function(k, l, m) {\n var n = false;\n function o() {\n if (n) {\n return;\n }\n ;\n ;\n var q = k.contentWindow.JSBNG__location.pathname;\n if (((((q !== \"/intern/common/referer_frame.php\")) && ((q !== \"/common/referer_frame.php\"))))) {\n return;\n }\n ;\n ;\n n = true;\n k.contentWindow.JSBNG__document.body.style.margin = 0;\n l();\n };\n ;\n var p;\n if (((JSBNG__document.domain !== \"facebook.com\"))) {\n p = \"/intern/common/referer_frame.php\";\n }\n else if (i.JSBNG__opera()) {\n p = \"/common/referer_frame.php\";\n }\n else if (h().isSecure()) {\n p = \"https://s-static.ak.facebook.com/common/referer_frame.php\";\n }\n else p = \"http://static.ak.facebook.com/common/referer_frame.php\";\n \n \n ;\n ;\n if (m) {\n p += ((\"?fb_source=\" + m));\n }\n ;\n ;\n g.listen(k, \"load\", o);\n k.src = p;\n },\n useFacebookRefererHtml: function(k, l, m) {\n j.useFacebookReferer(k, function() {\n k.contentWindow.JSBNG__document.body.innerHTML = l;\n }, m);\n }\n };\n e.exports = j;\n});\n__d(\"UIIntentionalStreamMessage\", [], function(a, b, c, d, e, f) {\n var g = {\n SET_AUTO_INSERT: \"UIIntentionalStream/setAutoInsert\",\n UPDATE_STREAM: \"UIIntentionalStreamRefresh/updateStream\",\n REFRESH_STREAM: \"UIIntentionalStreamRefresh/refreshStream\",\n UPDATE_AUTOREFRESH_CONFIG: \"UIIntentionalStream/updateAutoRefreshConfig\",\n UPDATE_HTML_CONTENT: \"UIIntentionalStream/updateHtmlContent\",\n UPDATE_LAST_REFRESH_TIME: \"UIIntentionalStream/updateLastRefreshTime\",\n INSERT_STORIES: \"UIIntentionalStream/updateLastRefreshTime\",\n UNLOAD: \"UIIntentionalStream/unload\"\n };\n e.exports = g;\n});\n__d(\"UIPagelet\", [\"AjaxPipeRequest\",\"AsyncRequest\",\"DOM\",\"HTML\",\"ScriptPathState\",\"URI\",\"copyProperties\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxPipeRequest\"), h = b(\"AsyncRequest\"), i = b(\"DOM\"), j = b(\"HTML\"), k = b(\"ScriptPathState\"), l = b(\"URI\"), m = b(\"copyProperties\"), n = b(\"emptyFunction\"), o = b(\"ge\");\n function p(q, r, s) {\n var t = ((((q && i.isElementNode(q))) ? q.id : q));\n this._id = ((t || null));\n this._element = o(((q || i.create(\"div\"))));\n this._src = ((r || null));\n this._context_data = ((s || {\n }));\n this._data = {\n };\n this._handler = n;\n this._request = null;\n this._use_ajaxpipe = false;\n this._is_bundle = true;\n this._allow_cross_page_transition = false;\n this._append = false;\n };\n;\n p.loadFromEndpoint = function(q, r, s, t) {\n t = ((t || {\n }));\n var u = ((\"/ajax/pagelet/generic.php/\" + q));\n if (t.intern) {\n u = ((\"/intern\" + u));\n }\n ;\n ;\n var v = new l(u.replace(/\\/+/g, \"/\"));\n if (t.subdomain) {\n v.setSubdomain(t.subdomain);\n }\n ;\n ;\n var w = new p(r, v, s).setUseAjaxPipe(t.usePipe).setBundleOption(((t.bundle !== false))).setAppend(t.append).setJSNonBlock(t.jsNonblock).setAutomatic(t.automatic).setDisplayCallback(t.displayCallback).setConstHeight(t.constHeight).setAllowCrossPageTransition(t.crossPage).setFinallyHandler(((t.finallyHandler || n))).setTransportErrorHandler(t.transportErrorHandler);\n ((t.handler && w.setHandler(t.handler)));\n w.go();\n return w;\n };\n m(p.prototype, {\n getElement: function() {\n return this._element;\n },\n setHandler: function(q) {\n this._handler = q;\n return this;\n },\n go: function(q, r) {\n if (((((arguments.length >= 2)) || ((typeof q == \"string\"))))) {\n this._src = q;\n this._data = ((r || {\n }));\n }\n else if (((arguments.length == 1))) {\n this._data = q;\n }\n \n ;\n ;\n this.refresh();\n return this;\n },\n setAllowCrossPageTransition: function(q) {\n this._allow_cross_page_transition = q;\n return this;\n },\n setBundleOption: function(q) {\n this._is_bundle = q;\n return this;\n },\n setTransportErrorHandler: function(q) {\n this.transportErrorHandler = q;\n return this;\n },\n refresh: function() {\n if (this._use_ajaxpipe) {\n k.setIsUIPageletRequest(true);\n this._request = new g();\n this._request.setCanvasId(this._id).setAppend(this._append).setConstHeight(this._constHeight).setJSNonBlock(this._jsNonblock).setAutomatic(this._automatic).setDisplayCallback(this._displayCallback).setFinallyHandler(this._finallyHandler);\n }\n else {\n var q = function(t) {\n this._request = null;\n var u = j(t.getPayload());\n if (this._append) {\n i.appendContent(this._element, u);\n }\n else i.setContent(this._element, u);\n ;\n ;\n this._handler();\n }.bind(this), r = this._displayCallback;\n this._request = new h().setMethod(\"GET\").setReadOnly(true).setOption(\"bundle\", this._is_bundle).setHandler(function(t) {\n if (r) {\n r(q.curry(t));\n }\n else q(t);\n ;\n ;\n if (this._finallyHandler) {\n this._finallyHandler();\n }\n ;\n ;\n });\n if (this.transportErrorHandler) {\n this._request.setTransportErrorHandler(this.transportErrorHandler);\n }\n ;\n ;\n }\n ;\n ;\n var s = {\n };\n m(s, this._context_data);\n m(s, this._data);\n this._request.setURI(this._src).setAllowCrossPageTransition(this._allow_cross_page_transition).setData({\n data: JSON.stringify(s)\n }).send();\n return this;\n },\n cancel: function() {\n if (this._request) {\n this._request.abort();\n }\n ;\n ;\n },\n setUseAjaxPipe: function(q) {\n this._use_ajaxpipe = !!q;\n return this;\n },\n setAppend: function(q) {\n this._append = !!q;\n return this;\n },\n setJSNonBlock: function(q) {\n this._jsNonblock = !!q;\n return this;\n },\n setAutomatic: function(q) {\n this._automatic = !!q;\n return this;\n },\n setDisplayCallback: function(q) {\n this._displayCallback = q;\n return this;\n },\n setConstHeight: function(q) {\n this._constHeight = !!q;\n return this;\n },\n setFinallyHandler: function(q) {\n this._finallyHandler = q;\n return this;\n }\n });\n e.exports = p;\n});\n__d(\"ScrollableArea\", [\"Animation\",\"ArbiterMixin\",\"BrowserSupport\",\"CSS\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Parent\",\"Run\",\"SimpleDrag\",\"Style\",\"UserAgent\",\"Vector\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"ArbiterMixin\"), i = b(\"BrowserSupport\"), j = b(\"CSS\"), k = b(\"DataStore\"), l = b(\"DOM\"), m = b(\"JSBNG__Event\"), n = b(\"Parent\"), o = b(\"Run\"), p = b(\"SimpleDrag\"), q = b(\"Style\"), r = b(\"UserAgent\"), s = b(\"Vector\"), t = b(\"copyProperties\"), u = b(\"throttle\"), v = 12;\n function w(x, y) {\n if (!x) {\n return;\n }\n ;\n ;\n y = ((y || {\n }));\n this._elem = x;\n this._wrap = l.JSBNG__find(x, \"div.uiScrollableAreaWrap\");\n this._body = l.JSBNG__find(this._wrap, \"div.uiScrollableAreaBody\");\n this._content = l.JSBNG__find(this._body, \"div.uiScrollableAreaContent\");\n this._track = l.JSBNG__find(x, \"div.uiScrollableAreaTrack\");\n this._gripper = l.JSBNG__find(this._track, \"div.uiScrollableAreaGripper\");\n this._options = y;\n this._throttledComputeHeights = u.withBlocking(this._computeHeights, 250, this);\n this.throttledAdjustGripper = u.withBlocking(this.adjustGripper, 250, this);\n this._throttledShowGripperAndShadows = u.withBlocking(this._showGripperAndShadows, 250, this);\n this._throttledRespondMouseMove = u(this._respondMouseMove, 250, this);\n this.adjustGripper.bind(this).defer();\n this._listeners = [m.listen(this._wrap, \"JSBNG__scroll\", this._handleScroll.bind(this)),m.listen(x, \"mousemove\", this._handleMouseMove.bind(this)),m.listen(this._track, \"click\", this._handleClickOnTrack.bind(this)),];\n if (i.hasPointerEvents()) {\n this._listeners.push(m.listen(x, \"click\", this._handleClickOnTrack.bind(this)));\n }\n ;\n ;\n if (((y.fade !== false))) {\n this._listeners.push(m.listen(x, \"mouseenter\", this._handleMouseEnter.bind(this)), m.listen(x, \"mouseleave\", this._handleMouseLeave.bind(this)), m.listen(x, \"focusin\", this.showScrollbar.bind(this, false)), m.listen(x, \"focusout\", this.hideScrollbar.bind(this)));\n }\n else if (i.hasPointerEvents()) {\n this._listeners.push(m.listen(x, \"mouseleave\", j.removeClass.curry(x, \"uiScrollableAreaTrackOver\")));\n }\n \n ;\n ;\n if (((r.webkit() || r.chrome()))) {\n this._listeners.push(m.listen(x, \"mousedown\", function() {\n var z = m.listen(window, \"mouseup\", function() {\n if (x.scrollLeft) {\n x.scrollLeft = 0;\n }\n ;\n ;\n z.remove();\n });\n }));\n }\n else if (r.firefox()) {\n this._wrap.JSBNG__addEventListener(\"DOMMouseScroll\", function(JSBNG__event) {\n ((((JSBNG__event.axis === JSBNG__event.HORIZONTAL_AXIS)) && JSBNG__event.preventDefault()));\n }, false);\n }\n \n ;\n ;\n this.initDrag();\n k.set(this._elem, \"ScrollableArea\", this);\n if (!y.persistent) {\n o.onLeave(this.destroy.bind(this));\n }\n ;\n ;\n if (((y.shadow !== false))) {\n j.addClass(this._elem, \"uiScrollableAreaWithShadow\");\n }\n ;\n ;\n };\n;\n t(w, {\n renderDOM: function() {\n var x = l.create(\"div\", {\n className: \"uiScrollableAreaContent\"\n }), y = l.create(\"div\", {\n className: \"uiScrollableAreaBody\"\n }, x), z = l.create(\"div\", {\n className: \"uiScrollableAreaWrap\"\n }, y), aa = l.create(\"div\", {\n className: \"uiScrollableArea native\"\n }, z);\n return {\n root: aa,\n wrap: z,\n body: y,\n JSBNG__content: x\n };\n },\n fromNative: function(x, y) {\n if (((!j.hasClass(x, \"uiScrollableArea\") || !j.hasClass(x, \"native\")))) {\n return;\n }\n ;\n ;\n y = ((y || {\n }));\n j.removeClass(x, \"native\");\n var z = l.create(\"div\", {\n className: \"uiScrollableAreaTrack\"\n }, l.create(\"div\", {\n className: \"uiScrollableAreaGripper\"\n }));\n if (((y.fade !== false))) {\n j.addClass(x, \"fade\");\n j.addClass(z, \"invisible_elem\");\n }\n else j.addClass(x, \"nofade\");\n ;\n ;\n l.appendContent(x, z);\n var aa = new w(x, y);\n aa.resize();\n return aa;\n },\n getInstance: function(x) {\n var y = n.byClass(x, \"uiScrollableArea\");\n return ((y ? k.get(y, \"ScrollableArea\") : null));\n },\n poke: function(x) {\n var y = w.getInstance(x);\n ((y && y.poke()));\n }\n });\n t(w.prototype, h, {\n initDrag: function() {\n var x = i.hasPointerEvents(), y = new p(((x ? this._elem : this._gripper)));\n y.subscribe(\"start\", function(z, JSBNG__event) {\n if (!((((JSBNG__event.which && ((JSBNG__event.which === 1)))) || ((JSBNG__event.button && ((JSBNG__event.button === 1))))))) {\n return;\n }\n ;\n ;\n var aa = s.getEventPosition(JSBNG__event, \"viewport\");\n if (x) {\n var ba = this._gripper.getBoundingClientRect();\n if (((((((((aa.x < ba.left)) || ((aa.x > ba.right)))) || ((aa.y < ba.JSBNG__top)))) || ((aa.y > ba.bottom))))) {\n return false;\n }\n ;\n ;\n }\n ;\n ;\n this.inform(\"grip_start\");\n var ca = aa.y, da = this._gripper.offsetTop;\n j.addClass(this._elem, \"uiScrollableAreaDragging\");\n var ea = y.subscribe(\"update\", function(ga, JSBNG__event) {\n var ha = ((s.getEventPosition(JSBNG__event, \"viewport\").y - ca));\n this._throttledComputeHeights();\n var ia = ((this._contentHeight - this._containerHeight)), ja = ((da + ha)), ka = ((this._trackHeight - this._gripperHeight));\n ja = Math.max(Math.min(ja, ka), 0);\n var la = ((((ja / ka)) * ia));\n this._wrap.scrollTop = la;\n }.bind(this)), fa = y.subscribe(\"end\", function() {\n y.unsubscribe(ea);\n y.unsubscribe(fa);\n j.removeClass(this._elem, \"uiScrollableAreaDragging\");\n this.inform(\"grip_end\");\n }.bind(this));\n }.bind(this));\n },\n adjustGripper: function() {\n if (this._needsGripper()) {\n q.set(this._gripper, \"height\", ((this._gripperHeight + \"px\")));\n this._slideGripper();\n }\n ;\n ;\n this._throttledShowGripperAndShadows();\n return this;\n },\n _computeHeights: function() {\n this._containerHeight = this._elem.clientHeight;\n this._contentHeight = this._content.offsetHeight;\n this._trackHeight = this._track.offsetHeight;\n this._gripperHeight = Math.max(((((this._containerHeight / this._contentHeight)) * this._trackHeight)), v);\n },\n _needsGripper: function() {\n this._throttledComputeHeights();\n return ((this._gripperHeight < this._trackHeight));\n },\n _slideGripper: function() {\n var x = ((((this._wrap.scrollTop / ((this._contentHeight - this._containerHeight)))) * ((this._trackHeight - this._gripperHeight))));\n q.set(this._gripper, \"JSBNG__top\", ((x + \"px\")));\n },\n _showGripperAndShadows: function() {\n j.conditionShow(this._gripper, this._needsGripper());\n j.conditionClass(this._elem, \"contentBefore\", ((this._wrap.scrollTop > 0)));\n j.conditionClass(this._elem, \"contentAfter\", !this.isScrolledToBottom());\n },\n destroy: function() {\n this._listeners.forEach(function(x) {\n x.remove();\n });\n this._listeners.length = 0;\n },\n _handleClickOnTrack: function(JSBNG__event) {\n var x = s.getEventPosition(JSBNG__event, \"viewport\"), y = this._gripper.getBoundingClientRect();\n if (((((x.x < y.right)) && ((x.x > y.left))))) {\n if (((x.y < y.JSBNG__top))) {\n this.setScrollTop(((this.getScrollTop() - this._elem.clientHeight)));\n }\n else if (((x.y > y.bottom))) {\n this.setScrollTop(((this.getScrollTop() + this._elem.clientHeight)));\n }\n \n ;\n ;\n JSBNG__event.prevent();\n }\n ;\n ;\n },\n _handleMouseMove: function(JSBNG__event) {\n var x = ((this._options.fade !== false));\n if (((i.hasPointerEvents() || x))) {\n this._mousePos = s.getEventPosition(JSBNG__event);\n this._throttledRespondMouseMove();\n }\n ;\n ;\n },\n _respondMouseMove: function() {\n if (!this._mouseOver) {\n return;\n }\n ;\n ;\n var x = ((this._options.fade !== false)), y = this._mousePos, z = s.getElementPosition(this._track).x, aa = s.getElementDimensions(this._track).x, ba = Math.abs(((((z + ((aa / 2)))) - y.x)));\n j.conditionClass(this._elem, \"uiScrollableAreaTrackOver\", ((i.hasPointerEvents() && ((ba <= 10)))));\n if (x) {\n if (((ba < 25))) {\n this.showScrollbar(false);\n }\n else if (!this._options.no_fade_on_hover) {\n this.hideScrollbar();\n }\n \n ;\n }\n ;\n ;\n },\n _handleScroll: function(JSBNG__event) {\n if (this._needsGripper()) {\n this._slideGripper();\n }\n ;\n ;\n this.throttledAdjustGripper();\n if (((this._options.fade !== false))) {\n this.showScrollbar();\n }\n ;\n ;\n this.inform(\"JSBNG__scroll\");\n },\n _handleMouseLeave: function() {\n this._mouseOver = false;\n this.hideScrollbar();\n },\n _handleMouseEnter: function() {\n this._mouseOver = true;\n this.showScrollbar();\n },\n hideScrollbar: function(x) {\n if (!this._scrollbarVisible) {\n return this;\n }\n ;\n ;\n this._scrollbarVisible = false;\n if (this._hideTimeout) {\n JSBNG__clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n ;\n ;\n if (x) {\n q.set(this._track, \"opacity\", 0);\n j.addClass.curry(this._track, \"invisible_elem\");\n }\n else this._hideTimeout = function() {\n if (this._hideAnimation) {\n this._hideAnimation.JSBNG__stop();\n this._hideAnimation = null;\n }\n ;\n ;\n this._hideAnimation = (new g(this._track)).from(\"opacity\", 1).to(\"opacity\", 0).duration(250).ondone(j.addClass.curry(this._track, \"invisible_elem\")).go();\n }.bind(this).defer(750);\n ;\n ;\n return this;\n },\n resize: function() {\n var x = s.getElementDimensions(this._elem).x;\n if (((this._options.fade === false))) {\n x -= 10;\n }\n ;\n ;\n x = Math.max(0, x);\n q.set(this._body, \"width\", ((x + \"px\")));\n return this;\n },\n showScrollbar: function(x) {\n this.throttledAdjustGripper();\n if (this._scrollbarVisible) {\n return this;\n }\n ;\n ;\n this._scrollbarVisible = true;\n if (this._hideTimeout) {\n JSBNG__clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n ;\n ;\n if (this._hideAnimation) {\n this._hideAnimation.JSBNG__stop();\n this._hideAnimation = null;\n }\n ;\n ;\n q.set(this._track, \"opacity\", 1);\n j.removeClass(this._track, \"invisible_elem\");\n if (((((x !== false)) && !this._options.no_fade_on_hover))) {\n this.hideScrollbar();\n }\n ;\n ;\n return this;\n },\n isScrolledToBottom: function() {\n return ((this._wrap.scrollTop >= ((this._contentHeight - this._containerHeight))));\n },\n isScrolledToTop: function() {\n return ((this._wrap.scrollTop === 0));\n },\n scrollToBottom: function(x) {\n this.setScrollTop(this._wrap.scrollHeight, x);\n },\n scrollToTop: function(x) {\n this.setScrollTop(0, x);\n },\n scrollIntoView: function(x, y) {\n var z = this._wrap.clientHeight, aa = x.offsetHeight, ba = this._wrap.scrollTop, ca = ((ba + z)), da = x.offsetTop, ea = ((da + aa));\n if (((((da < ba)) || ((z < aa))))) {\n this.setScrollTop(da, y);\n }\n else if (((ea > ca))) {\n this.setScrollTop(((ba + ((ea - ca)))), y);\n }\n \n ;\n ;\n },\n poke: function() {\n var x = this._wrap.scrollTop;\n this._wrap.scrollTop += 1;\n this._wrap.scrollTop -= 1;\n this._wrap.scrollTop = x;\n return this.showScrollbar(false);\n },\n getScrollTop: function() {\n return this._wrap.scrollTop;\n },\n getScrollHeight: function() {\n return this._wrap.scrollHeight;\n },\n setScrollTop: function(x, y, z) {\n if (((y !== false))) {\n if (this._scrollTopAnimation) {\n this._scrollTopAnimation.JSBNG__stop();\n }\n ;\n ;\n z = ((z || {\n }));\n var aa = ((z.duration || 250)), ba = ((z.ease || g.ease.end));\n this._scrollTopAnimation = (new g(this._wrap)).to(\"scrollTop\", x).ease(ba).duration(aa).go();\n }\n else this._wrap.scrollTop = x;\n ;\n ;\n }\n });\n e.exports = w;\n});\n__d(\"Menu\", [\"CSS\",\"Class\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Keys\",\"Parent\",\"PopoverMenuInterface\",\"ScrollableArea\",\"Style\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"Class\"), i = b(\"DataStore\"), j = b(\"DOM\"), k = b(\"JSBNG__Event\"), l = b(\"Keys\"), m = b(\"Parent\"), n = b(\"PopoverMenuInterface\"), o = b(\"ScrollableArea\"), p = b(\"Style\"), q = b(\"copyProperties\"), r = b(\"cx\");\n function s(t, u) {\n this.parent.construct(this);\n this._items = [];\n for (var v = 0; ((v < t.length)); v++) {\n this._items[v] = new t[v].ctor(t[v]);\n ;\n };\n ;\n this._config = ((u || {\n }));\n this._theme = ((u.theme || {\n }));\n };\n;\n h.extend(s, n);\n q(s.prototype, {\n _focused: null,\n _root: null,\n addItem: function(t) {\n this._addItem(t);\n },\n addItemBefore: function(t, u) {\n this._addItem(t, u, false);\n },\n addItemAfter: function(t, u) {\n this._addItem(t, u, true);\n },\n _addItem: function(t, u, v) {\n var w = this._items.indexOf(t);\n if (((w >= 0))) {\n var x = ((v ? -1 : 1));\n if (((this._items[((w + x))] == u))) {\n return;\n }\n ;\n ;\n this._items.splice(w, 1);\n }\n ;\n ;\n if (u) {\n w = this._items.indexOf(u);\n if (((w < 0))) {\n throw new Error(\"reference item must already be in the menu\");\n }\n ;\n ;\n if (v) {\n w++;\n }\n ;\n ;\n this._items.splice(w, 0, t);\n }\n else this._items.push(t);\n ;\n ;\n if (this._root) {\n this._insertItem(t, u, v);\n }\n ;\n ;\n },\n removeItem: function(t) {\n var u = this._items.indexOf(t);\n if (((u < 0))) {\n return;\n }\n ;\n ;\n this._items.splice(u, 1);\n ((this._root && j.remove(t.getRoot())));\n },\n forEachItem: function(t) {\n this._items.forEach(t);\n },\n getItemAt: function(t) {\n return ((this._items[t] || null));\n },\n getRoot: function() {\n if (!this._root) {\n this._render();\n }\n ;\n ;\n return this._root;\n },\n onShow: function() {\n if (this._config.maxheight) {\n if (!this._scrollableArea) {\n this._scrollableArea = o.fromNative(this._scrollableElems.root, {\n fade: true\n });\n }\n else this._scrollableArea.resize();\n ;\n }\n ;\n ;\n this.focusAnItem();\n },\n onHide: function() {\n this.JSBNG__blur();\n },\n focusAnItem: function() {\n return this._attemptFocus(0, 1);\n },\n JSBNG__blur: function() {\n if (this._focused) {\n this._focused.JSBNG__blur();\n this._focused = null;\n this.inform(\"JSBNG__blur\");\n }\n ;\n ;\n },\n handleKeydown: function(t, u) {\n var v = this._items.indexOf(this._focused);\n switch (t) {\n case l.UP:\n \n case l.DOWN:\n var w = ((((t === l.UP)) ? -1 : 1));\n if (((v !== -1))) {\n return this._attemptFocus(((v + w)), w);\n }\n else if (((t === l.UP))) {\n return this._attemptFocus(((this._items.length - 1)), -1);\n }\n else return this._attemptFocus(0, 1)\n \n ;\n break;\n case l.SPACE:\n if (((this._items.indexOf(this._focused) !== -1))) {\n this._handleItemClick(this._focused, u);\n return true;\n }\n ;\n ;\n return false;\n default:\n var x = String.fromCharCode(t).toLowerCase(), y;\n for (var z = ((v + 1)); ((z < this._items.length)); z++) {\n y = this._items[z].getAccessKey();\n if (((y && ((y.charAt(0).toLowerCase() === x))))) {\n if (this._focusItem(this._items[z])) {\n return true;\n }\n ;\n }\n ;\n ;\n };\n ;\n return false;\n };\n ;\n },\n _render: function() {\n this._ul = j.create(\"ul\", {\n className: \"_54nf\"\n });\n this._ul.setAttribute(\"role\", \"menu\");\n this._items.forEach(function(v) {\n this._insertItem(v, null);\n }.bind(this));\n k.listen(this._ul, \"click\", this._handleClick.bind(this));\n k.listen(this._ul, \"mouseover\", this._handleMouseOver.bind(this));\n k.listen(this._ul, \"mouseout\", this._handleMouseOut.bind(this));\n var t = this._ul;\n if (this._config.maxheight) {\n this._scrollableElems = o.renderDOM();\n j.setContent(this._scrollableElems.JSBNG__content, this._ul);\n t = this._scrollableElems.root;\n p.set(this._scrollableElems.wrap, \"max-height\", ((this._config.maxheight + \"px\")));\n }\n ;\n ;\n var u = ((((\"_54nq\" + ((this._config.className ? ((\" \" + this._config.className)) : \"\")))) + ((this._theme.className ? ((\" \" + this._theme.className)) : \"\"))));\n this._root = j.create(\"div\", {\n className: u\n }, j.create(\"div\", {\n className: \"_54ng\"\n }, t));\n ((this._config.id && this._root.setAttribute(\"id\", this._config.id)));\n this.inform(\"rendered\", this._root);\n },\n _needsDefaultBehavior: function(t) {\n if (((t.isDefaultRequested && t.isDefaultRequested()))) {\n var u = m.byTag(t.getTarget(), \"a\"), v = ((u && u.getAttribute(\"href\")));\n return ((v && ((v[0] !== \"#\"))));\n }\n ;\n ;\n return false;\n },\n _handleClick: function(t) {\n if (!this._needsDefaultBehavior(t)) {\n var u = this._getItemInstance(t.getTarget());\n if (u) {\n return this._handleItemClick(u, t);\n }\n ;\n ;\n }\n ;\n ;\n },\n _handleItemClick: function(t, u) {\n this.inform(\"itemclick\", {\n item: t,\n JSBNG__event: u\n });\n if (t.hasAction()) {\n this.done();\n }\n ;\n ;\n return t.handleClick();\n },\n _handleMouseOver: function(t) {\n var u = this._getItemInstance(t.getTarget());\n ((u && this._focusItem(u, true)));\n },\n _handleMouseOut: function(t) {\n var u = this._getItemInstance(t.getTarget());\n if (((u && ((this._focused === u))))) {\n this.JSBNG__blur();\n }\n ;\n ;\n },\n _insertItem: function(t, u, v) {\n var w = t.getRoot();\n g.addClass(w, \"__MenuItem\");\n i.set(w, \"MenuItem\", t);\n if (u) {\n var x = ((v ? j.insertAfter : j.insertBefore));\n x(u.getRoot(), w);\n }\n else j.appendContent(this._ul, w);\n ;\n ;\n },\n _attemptFocus: function(t, u) {\n var v = this.getItemAt(t);\n if (v) {\n if (this._focusItem(v)) {\n return true;\n }\n else return this._attemptFocus(((t + u)), u)\n ;\n }\n ;\n ;\n return false;\n },\n _focusItem: function(t, u) {\n if (((t.JSBNG__focus(u) !== false))) {\n if (((this._focused !== t))) {\n this.JSBNG__blur();\n this._focused = t;\n this.inform(\"JSBNG__focus\");\n }\n ;\n ;\n return true;\n }\n ;\n ;\n return false;\n },\n _getItemInstance: function(t) {\n var u = m.byClass(t, \"__MenuItem\");\n return ((u ? i.get(u, \"MenuItem\") : null));\n }\n });\n e.exports = s;\n});\n__d(\"MenuItemInterface\", [\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"emptyFunction\");\n function i() {\n \n };\n;\n g(i.prototype, {\n _root: null,\n getRoot: function() {\n if (!this._root) {\n this._root = this.render();\n }\n ;\n ;\n return this._root;\n },\n render: h,\n getAccessKey: h,\n hasAction: h.thatReturnsFalse,\n JSBNG__focus: h.thatReturnsFalse,\n JSBNG__blur: h.thatReturnsFalse,\n handleClick: h.thatReturnsFalse\n });\n e.exports = i;\n});\n__d(\"MenuItemBase\", [\"Class\",\"DOM\",\"HTML\",\"MenuItemInterface\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"MenuItemInterface\"), k = b(\"copyProperties\"), l = b(\"cx\");\n function m(n) {\n this.parent.construct(this);\n this._data = n;\n };\n;\n g.extend(m, j);\n k(m.prototype, {\n render: function() {\n var n = \"_54ni\";\n if (this._data.className) {\n n += ((\" \" + this._data.className));\n }\n ;\n ;\n var o = {\n className: n,\n \"aria-selected\": \"false\"\n };\n {\n var fin110keys = ((window.top.JSBNG_Replay.forInKeys)((this._data))), fin110i = (0);\n var p;\n for (; (fin110i < fin110keys.length); (fin110i++)) {\n ((p) = (fin110keys[fin110i]));\n {\n if (((p.indexOf(\"data-\") === 0))) {\n o[p] = this._data[p];\n }\n ;\n ;\n };\n };\n };\n ;\n return h.create(\"li\", o, this._renderItemContent());\n },\n _renderItemContent: function() {\n return i(this._data.markup).getNodes();\n }\n });\n e.exports = m;\n});\n__d(\"MenuItem\", [\"Class\",\"CSS\",\"DOM\",\"MenuItemBase\",\"React\",\"copyProperties\",\"cx\",\"emptyFunction\",\"startsWith\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"MenuItemBase\"), k = b(\"React\"), l = b(\"copyProperties\"), m = b(\"cx\"), n = b(\"emptyFunction\"), o = b(\"startsWith\");\n function p(q) {\n this.parent.construct(this, q);\n this._disabled = !!this._data.disabled;\n };\n;\n g.extend(p, j);\n l(p.prototype, {\n getValue: function() {\n return this._data.value;\n },\n getAccessKey: function() {\n return ((this._data.label && this._data.label.charAt(0)));\n },\n hasAction: n.thatReturnsTrue,\n JSBNG__focus: function(q) {\n if (((this.isDisabled() || !this._root.offsetParent))) {\n return false;\n }\n ;\n ;\n h.addClass(this._root, \"_54ne\");\n h.addClass(this._root, \"selected\");\n this._root.setAttribute(\"aria-selected\", \"true\");\n ((q || this._anchor.JSBNG__focus()));\n },\n JSBNG__blur: function() {\n h.removeClass(this._root, \"_54ne\");\n h.removeClass(this._root, \"selected\");\n this._root.setAttribute(\"aria-selected\", \"false\");\n },\n handleClick: function() {\n if (this.isDisabled()) {\n return false;\n }\n ;\n ;\n if (((typeof this._onclickHandler === \"function\"))) {\n return this._onclickHandler();\n }\n ;\n ;\n return !!((((this._data.rel && ((this._data.rel !== \"ignore\")))) || this._data.href));\n },\n setOnClickHandler: function(q) {\n this._onclickHandler = q;\n },\n _renderItemContent: function() {\n this._anchor = i.create(\"a\", {\n className: \"_54nc\"\n });\n if (this._data.reactChildren) {\n k.renderComponent(k.DOM.span({\n className: \"_54nh\"\n }, this._data.reactChildren), this._anchor);\n this._data.label = ((this._anchor.innerText || this._anchor.textContent));\n }\n else i.setContent(this._anchor, i.create(\"span\", {\n className: \"_54nh\"\n }, ((this._data.markup || this._data.label))));\n ;\n ;\n if (this._data.icon) {\n i.prependContent(this._anchor, this._data.icon);\n h.addClass(this._anchor, \"_54nu\");\n }\n ;\n ;\n if (!this.isDisabled()) {\n this._anchor.setAttribute(\"href\", ((this._data.href || \"#\")));\n }\n ;\n ;\n if (this._data.rel) {\n this._anchor.setAttribute(\"rel\", this._data.rel);\n }\n else if (!this._data.href) {\n this._anchor.setAttribute(\"rel\", \"ignore\");\n }\n \n ;\n ;\n if (this._data.ajaxify) {\n this._anchor.setAttribute(\"ajaxify\", this._data.ajaxify);\n }\n ;\n ;\n if (this._data.target) {\n this._anchor.setAttribute(\"target\", this._data.target);\n }\n ;\n ;\n {\n var fin111keys = ((window.top.JSBNG_Replay.forInKeys)((this._data))), fin111i = (0);\n var q;\n for (; (fin111i < fin111keys.length); (fin111i++)) {\n ((q) = (fin111keys[fin111i]));\n {\n if (((((typeof q === \"string\")) && o(q, \"data-\")))) {\n this._anchor.setAttribute(q, this._data[q]);\n }\n ;\n ;\n };\n };\n };\n ;\n this._anchor.setAttribute(\"role\", \"menuitem\");\n this._anchor.setAttribute(\"title\", this._data.title);\n return this._anchor;\n },\n isDisabled: function() {\n return this._disabled;\n },\n enable: function() {\n this._anchor.setAttribute(\"href\", ((this._data.href || \"#\")));\n h.removeClass(this._root, \"_5arm\");\n this._disabled = false;\n },\n disable: function() {\n this._anchor.removeAttribute(\"href\");\n h.addClass(this._root, \"_5arm\");\n this._disabled = true;\n },\n render: function() {\n var q = this.parent.render();\n if (this._data.disabled) {\n h.addClass(q, \"_5arm\");\n }\n ;\n ;\n return q;\n }\n });\n e.exports = p;\n});\n__d(\"MenuSelectableItem\", [\"Class\",\"CSS\",\"MenuItem\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"MenuItem\"), j = b(\"copyProperties\"), k = b(\"cx\");\n function l(m) {\n this.parent.construct(this, m);\n this._selected = !!this._data.selected;\n };\n;\n g.extend(l, i);\n j(l.prototype, {\n _selected: false,\n getLabel: function() {\n return this._data.label;\n },\n getIcon: function() {\n return this._data.icon;\n },\n isSelected: function() {\n return this._selected;\n },\n select: function() {\n if (this.isDisabled()) {\n return false;\n }\n ;\n ;\n h.addClass(this._root, \"_54nd\");\n this._selected = true;\n },\n deselect: function() {\n h.removeClass(this._root, \"_54nd\");\n this._selected = false;\n },\n render: function() {\n var m = this.parent.render();\n if (this._data.selected) {\n h.addClass(m, \"_54nd\");\n }\n ;\n ;\n return m;\n }\n });\n e.exports = l;\n});\n__d(\"SelectableMenu\", [\"Class\",\"Menu\",\"arrayContains\",\"copyProperties\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"Menu\"), i = b(\"arrayContains\"), j = b(\"copyProperties\"), k = b(\"createArrayFrom\");\n function l(o, p) {\n this.parent.construct(this, o, p);\n };\n;\n function m(o) {\n return ((((o.select && o.deselect)) && o.isSelected));\n };\n;\n function n(o) {\n return ((m(o) && o.isSelected()));\n };\n;\n g.extend(l, h);\n j(l.prototype, {\n focusAnItem: function() {\n for (var o = 0; ((o < this._items.length)); o++) {\n if (n(this._items[o])) {\n if (((this._focusItem(this._items[o]) !== false))) {\n return true;\n }\n ;\n }\n ;\n ;\n };\n ;\n return this.parent.focusAnItem();\n },\n setValue: function(o) {\n if (!this._root) {\n this._render();\n }\n ;\n ;\n var p = k(o);\n this._items.forEach(function(q) {\n if (m(q)) {\n if (i(p, q.getValue())) {\n q.select();\n }\n else if (n(q)) {\n q.deselect();\n }\n \n ;\n }\n ;\n ;\n });\n this.inform(\"change\", this._getSelection());\n },\n _handleItemClick: function(o, p) {\n if (!m(o)) {\n return this.parent._handleItemClick(o, p);\n }\n ;\n ;\n this.inform(\"itemclick\", {\n item: o,\n JSBNG__event: p\n });\n if (this._config.multiple) {\n var q = ((n(o) ? o.deselect() : o.select()));\n if (((q !== false))) {\n this.inform(\"change\", this._getSelection());\n }\n ;\n ;\n }\n else {\n if (!n(o)) {\n if (((o.select() !== false))) {\n this._items.forEach(function(r) {\n if (((n(r) && ((r !== o))))) {\n r.deselect();\n }\n ;\n ;\n });\n this.inform(\"change\", this._getSelection());\n }\n ;\n }\n ;\n ;\n this.done();\n }\n ;\n ;\n return o.handleClick();\n },\n _getSelection: function() {\n var o = [];\n this._items.forEach(function(p) {\n if (n(p)) {\n o.push({\n label: p.getLabel(),\n value: p.getValue(),\n item: p\n });\n }\n ;\n ;\n });\n if (!this._config.multiple) {\n o = o[0];\n }\n ;\n ;\n return o;\n }\n });\n e.exports = l;\n});\n__d(\"PopoverLoadingMenu\", [\"Class\",\"DOM\",\"PopoverMenuInterface\",\"copyProperties\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"PopoverMenuInterface\"), j = b(\"copyProperties\"), k = b(\"cx\"), l = b(\"joinClasses\");\n function m(n) {\n this.parent.construct(this);\n this._config = ((n || {\n }));\n this._theme = ((n.theme || {\n }));\n };\n;\n g.extend(m, i);\n j(m.prototype, {\n _root: null,\n getRoot: function() {\n if (!this._root) {\n this._root = h.create(\"div\", {\n className: l(\"_54nq\", this._config.className, this._theme.className)\n }, h.create(\"div\", {\n className: \"_54ng\"\n }, h.create(\"div\", {\n className: \"_54nf _54af\"\n }, h.create(\"span\", {\n className: \"_54ag\"\n }))));\n }\n ;\n ;\n return this._root;\n }\n });\n e.exports = m;\n});\n__d(\"TabIsolation\", [\"JSBNG__Event\",\"DOMQuery\",\"Focus\",\"Keys\",\"TabbableElements\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"DOMQuery\"), i = b(\"Focus\"), j = b(\"Keys\"), k = b(\"TabbableElements\"), l = b(\"copyProperties\"), m = [], n = 0;\n function o(p) {\n this._root = p;\n this._eventHandler = null;\n this._identifier = n++;\n };\n;\n l(o.prototype, {\n enable: function() {\n m.unshift(this._identifier);\n this._eventHandler = g.listen(window, \"keydown\", function(p) {\n if (((m[0] === this._identifier))) {\n this._tabHandler(p);\n }\n ;\n ;\n }.bind(this), g.Priority.URGENT);\n },\n disable: function() {\n var p;\n if (this._eventHandler) {\n p = m.indexOf(this._identifier);\n if (((p > -1))) {\n m.splice(p, 1);\n }\n ;\n ;\n this._eventHandler.remove();\n this._eventHandler = null;\n }\n ;\n ;\n },\n _tabHandler: function(p) {\n if (((g.getKeyCode(p) !== j.TAB))) {\n return;\n }\n ;\n ;\n var q = p.getTarget();\n if (!q) {\n return;\n }\n ;\n ;\n var r = k.JSBNG__find(this._root), s = r[0], t = r[((r.length - 1))], u = p.getModifiers().shift;\n if (((u && ((q === s))))) {\n p.preventDefault();\n i.set(t);\n }\n else if (((((!u && ((q === t)))) || !h.contains(this._root, q)))) {\n p.preventDefault();\n i.set(s);\n }\n \n ;\n ;\n }\n });\n e.exports = o;\n});\n__d(\"AccessibleLayer\", [\"JSBNG__Event\",\"DOM\",\"Focus\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"DOM\"), i = b(\"Focus\"), j = b(\"copyProperties\"), k = b(\"tx\");\n function l(m) {\n this._layer = m;\n };\n;\n j(l.prototype, {\n enable: function() {\n this._afterShowSubscription = this._layer.subscribe(\"aftershow\", this._onAfterShow.bind(this));\n },\n disable: function() {\n ((this._listener && this._listener.remove()));\n this._afterShowSubscription.unsubscribe();\n this._listener = this._afterShowSubscription = null;\n },\n _closeListener: function(JSBNG__event) {\n var m = this._layer.getCausalElement();\n if (m) {\n if (((m.tabIndex == -1))) {\n m.tabIndex = 0;\n i.setWithoutOutline(m);\n }\n else i.set(m);\n ;\n }\n ;\n ;\n this._layer.hide();\n },\n _onAfterShow: function() {\n var m = this._layer.getContentRoot();\n if (h.scry(m, \".layer_close_elem\")[0]) {\n return;\n }\n ;\n ;\n var n = h.create(\"a\", {\n className: \"accessible_elem layer_close_elem\",\n href: \"#\"\n }, [\"Close popup and return\",]);\n h.appendContent(m, n);\n this._listener = g.listen(n, \"click\", this._closeListener.bind(this));\n }\n });\n e.exports = l;\n});\n__d(\"ContextualLayerAsyncRelative\", [\"JSBNG__Event\",\"copyProperties\",\"Parent\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\"), i = b(\"Parent\");\n function j(k) {\n this._layer = k;\n };\n;\n h(j.prototype, {\n _layerSubscription: null,\n _listener: null,\n enable: function() {\n this._layerSubscription = this._layer.subscribe(\"show\", this._attachListener.bind(this));\n if (this._layer.isShown()) {\n this._attachListener();\n }\n ;\n ;\n },\n disable: function() {\n this._layerSubscription.unsubscribe();\n this._layerSubscription = null;\n if (this._listener) {\n this._listener.remove();\n this._listener = null;\n }\n ;\n ;\n },\n _attachListener: function() {\n this._listener = g.listen(this._layer.getRoot(), \"click\", this._onclick.bind(this));\n },\n _onclick: function(k) {\n var l = i.byTag(k.getTarget(), \"A\");\n if (!l) {\n return;\n }\n ;\n ;\n var m = l.getAttribute(\"ajaxify\"), n = l.href, o = ((m || n));\n if (((((l.rel === \"async\")) || ((l.rel === \"async-post\"))))) {\n d([\"AsyncRequest\",], function(p) {\n p.bootstrap(o, this._layer.getContext(), ((l.rel === \"async-post\")));\n }.bind(this));\n return false;\n }\n ;\n ;\n }\n });\n e.exports = j;\n});\n__d(\"ContextualLayerUpdateOnScroll\", [\"JSBNG__Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\");\n function i(j) {\n this._layer = j;\n };\n;\n h(i.prototype, {\n _subscriptions: [],\n enable: function() {\n this._subscriptions = [this._layer.subscribe(\"show\", this._attachScrollListener.bind(this)),this._layer.subscribe(\"hide\", this._removeScrollListener.bind(this)),];\n },\n disable: function() {\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this.detach();\n },\n _attachScrollListener: function() {\n if (this._listener) {\n return;\n }\n ;\n ;\n var j = this._layer.getContextScrollParent();\n this._listener = g.listen(j, \"JSBNG__scroll\", this._layer.updatePosition.bind(this._layer));\n },\n _removeScrollListener: function() {\n ((this._listener && this._listener.remove()));\n this._listener = null;\n }\n });\n e.exports = i;\n});\n__d(\"LayerAutoFocus\", [\"function-extensions\",\"DOMQuery\",\"Focus\",\"TabbableElements\",\"copyProperties\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"DOMQuery\"), h = b(\"Focus\"), i = b(\"TabbableElements\"), j = b(\"copyProperties\");\n function k(l) {\n this._layer = l;\n };\n;\n j(k.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"aftershow\", this._focus.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _focus: function() {\n var l = this._layer.getRoot(), m = g.scry(l, \".autofocus\")[0], n = true;\n if (!m) {\n var o = JSBNG__document.activeElement;\n if (g.isNodeOfType(o, [\"input\",\"textarea\",])) {\n return;\n }\n ;\n ;\n var p = i.JSBNG__find(l);\n for (var q = 0; ((q < p.length)); q++) {\n if (((p[q].tagName != \"A\"))) {\n m = p[q];\n n = false;\n break;\n }\n ;\n ;\n };\n ;\n }\n else if (((m.tabIndex !== 0))) {\n n = false;\n }\n \n ;\n ;\n if (m) {\n ((n ? h.set(m) : h.setWithoutOutline(m)));\n }\n else {\n l.tabIndex = 0;\n h.setWithoutOutline(l);\n }\n ;\n ;\n }\n });\n e.exports = k;\n});\n__d(\"LayerButtons\", [\"JSBNG__Event\",\"Parent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Parent\"), i = b(\"copyProperties\");\n function j(k) {\n this._layer = k;\n };\n;\n i(j.prototype, {\n _listener: null,\n enable: function() {\n this._listener = g.listen(this._layer.getRoot(), \"click\", this._handle.bind(this));\n },\n disable: function() {\n this._listener.remove();\n this._listener = null;\n },\n _handle: function(k) {\n var l = k.getTarget(), m = h.byClass(l, \"layerConfirm\");\n if (m) {\n if (((this._layer.inform(\"JSBNG__confirm\", m) === false))) {\n k.prevent();\n }\n ;\n ;\n return;\n }\n ;\n ;\n var n = h.byClass(l, \"layerCancel\");\n if (n) {\n if (((this._layer.inform(\"cancel\", n) !== false))) {\n this._layer.hide();\n }\n ;\n ;\n k.prevent();\n return;\n }\n ;\n ;\n var o = h.byClass(l, \"layerButton\");\n if (o) {\n if (((this._layer.inform(\"button\", o) === false))) {\n k.prevent();\n }\n ;\n }\n ;\n ;\n }\n });\n e.exports = j;\n});\n__d(\"LayerDestroyOnHide\", [\"function-extensions\",\"copyProperties\",\"shield\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"copyProperties\"), h = b(\"shield\");\n function i(j) {\n this._layer = j;\n };\n;\n g(i.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"hide\", h(Function.prototype.defer, this._layer.destroy.bind(this._layer)));\n },\n disable: function() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n ;\n ;\n }\n });\n e.exports = i;\n});\n__d(\"LayerFadeOnHide\", [\"Animation\",\"Layer\",\"Style\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"Layer\"), i = b(\"Style\"), j = b(\"UserAgent\"), k = b(\"copyProperties\");\n function l(m) {\n this._layer = m;\n };\n;\n k(l.prototype, {\n _subscription: null,\n enable: function() {\n if (((j.ie() < 9))) {\n return;\n }\n ;\n ;\n this._subscription = this._layer.subscribe(\"starthide\", this._handleStartHide.bind(this));\n },\n disable: function() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n ;\n ;\n },\n _handleStartHide: function() {\n var m = true, n = h.subscribe(\"show\", function() {\n n.unsubscribe();\n m = false;\n });\n (function() {\n n.unsubscribe();\n n = null;\n if (m) {\n this._animate();\n }\n else this._layer.finishHide();\n ;\n ;\n }).bind(this).defer();\n return false;\n },\n _animate: function() {\n new g(this._layer.getRoot()).from(\"opacity\", 1).to(\"opacity\", 0).duration(150).ondone(this._finish.bind(this)).go();\n },\n _finish: function() {\n i.set(this._layer.getRoot(), \"opacity\", \"\");\n this._layer.finishHide();\n }\n });\n e.exports = l;\n});\n__d(\"LayerFadeOnShow\", [\"Animation\",\"Style\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"Style\"), i = b(\"UserAgent\"), j = b(\"copyProperties\");\n function k(l) {\n this._layer = l;\n };\n;\n j(k.prototype, {\n _subscriptions: null,\n enable: function() {\n if (((i.ie() < 9))) {\n return;\n }\n ;\n ;\n this._subscriptions = [this._layer.subscribe(\"beforeshow\", function() {\n h.set(this._layer.getRoot(), \"opacity\", 0);\n }.bind(this)),this._layer.subscribe(\"show\", this._animate.bind(this)),];\n },\n disable: function() {\n if (this._subscriptions) {\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this._subscriptions = null;\n }\n ;\n ;\n },\n _getDuration: function() {\n return 100;\n },\n _animate: function() {\n var l = this._layer.getRoot();\n new g(l).from(\"opacity\", 0).to(\"opacity\", 1).duration(this._getDuration()).ondone(h.set.curry(l, \"opacity\", \"\")).go();\n }\n });\n e.exports = k;\n});\n__d(\"LayerFormHooks\", [\"JSBNG__Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\");\n function i(j) {\n this._layer = j;\n };\n;\n h(i.prototype, {\n _subscriptions: null,\n enable: function() {\n var j = this._layer.getRoot();\n this._subscriptions = [g.listen(j, \"submit\", this._onSubmit.bind(this)),g.listen(j, \"success\", this._onSuccess.bind(this)),g.listen(j, \"error\", this._onError.bind(this)),];\n },\n disable: function() {\n this._subscriptions.forEach(function(j) {\n j.remove();\n });\n this._subscriptions = null;\n },\n _onSubmit: function(JSBNG__event) {\n if (((this._layer.inform(\"submit\", JSBNG__event) === false))) {\n JSBNG__event.kill();\n }\n ;\n ;\n },\n _onSuccess: function(JSBNG__event) {\n if (((this._layer.inform(\"success\", JSBNG__event) === false))) {\n JSBNG__event.kill();\n }\n ;\n ;\n },\n _onError: function(JSBNG__event) {\n var j = JSBNG__event.getData();\n if (((this._layer.inform(\"error\", {\n response: j.response\n }) === false))) {\n JSBNG__event.kill();\n }\n ;\n ;\n }\n });\n e.exports = i;\n});\n__d(\"LayerHideOnBlur\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\");\n function h(i) {\n this._layer = i;\n };\n;\n g(h.prototype, {\n _subscriptions: null,\n _onBlur: null,\n enable: function() {\n this._subscriptions = [this._layer.subscribe(\"show\", this._attach.bind(this)),this._layer.subscribe(\"hide\", this._detach.bind(this)),];\n if (this._layer.isShown()) {\n this._attach();\n }\n ;\n ;\n },\n disable: function() {\n this._detach();\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this._subscriptions = null;\n },\n _detach: function() {\n ((this._onBlur && this._onBlur.unsubscribe()));\n this._onBlur = null;\n },\n _attach: function() {\n this._onBlur = this._layer.subscribe(\"JSBNG__blur\", function() {\n this._layer.hide();\n return false;\n }.bind(this));\n }\n });\n e.exports = h;\n});\n__d(\"LayerMouseHooks\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"ContextualThing\",\"Layer\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"Arbiter\"), i = b(\"ContextualThing\"), j = b(\"Layer\"), k = b(\"copyProperties\"), l = new h();\n function m(n) {\n this._layer = n;\n this._subscriptions = [];\n this._currentlyActive = false;\n };\n;\n k(m.prototype, {\n enable: function() {\n this._subscriptions = [l.subscribe(\"mouseenter\", this._handleActive.bind(this)),l.subscribe(\"mouseleave\", this._handleInactive.bind(this)),this._layer.subscribe(\"hide\", function() {\n this._currentlyActive = false;\n }.bind(this)),];\n },\n disable: function() {\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this._subscriptions = [];\n this._currentlyActive = false;\n },\n _handleActive: function(n, o) {\n if (((!this._currentlyActive && this._isNodeWithinStack(o)))) {\n this._layer.inform(\"mouseenter\");\n this._currentlyActive = true;\n }\n ;\n ;\n },\n _handleInactive: function(n, o) {\n if (this._currentlyActive) {\n if (((!o || !this._isNodeWithinStack(o)))) {\n this._layer.inform(\"mouseleave\");\n this._currentlyActive = false;\n }\n ;\n }\n ;\n ;\n },\n _isNodeWithinStack: function(n) {\n return i.containsIncludingLayers(this._layer.getContentRoot(), n);\n }\n });\n j.subscribe(\"show\", function(n, o) {\n var p = o.getContentRoot(), q = [g.listen(p, \"mouseenter\", function() {\n l.inform(\"mouseenter\", p);\n }),g.listen(p, \"mouseleave\", function(s) {\n l.inform(\"mouseleave\", s.getRelatedTarget());\n }),], r = o.subscribe(\"hide\", function() {\n while (q.length) {\n q.pop().remove();\n ;\n };\n ;\n r.unsubscribe();\n q = r = null;\n });\n });\n e.exports = m;\n});\n__d(\"LayerRefocusOnHide\", [\"copyProperties\",\"Focus\",\"ContextualThing\",\"DOM\",\"DOMQuery\",\"Parent\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"Focus\"), i = b(\"ContextualThing\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"Parent\");\n function m(n) {\n this._layer = n;\n };\n;\n g(m.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"hide\", this._handle.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _handle: function(n, JSBNG__event) {\n if (((((JSBNG__document.activeElement === JSBNG__document.body)) || k.contains(this._layer.getRoot(), JSBNG__document.activeElement)))) {\n var o = this._layer.getCausalElement();\n while (((o && (!o.offsetWidth)))) {\n var p = l.byClass(o, \"uiToggle\");\n if (((p && p.offsetWidth))) {\n o = j.scry(p, \"[rel=\\\"toggle\\\"]\")[0];\n }\n else {\n var q = i.getContext(o);\n if (q) {\n o = q;\n }\n else o = o.parentNode;\n ;\n ;\n }\n ;\n ;\n };\n ;\n if (((o && ((o.tabIndex != -1))))) {\n h.setWithoutOutline(o);\n }\n ;\n ;\n }\n ;\n ;\n }\n });\n e.exports = m;\n});\n__d(\"LayerTabIsolation\", [\"TabIsolation\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"TabIsolation\"), h = b(\"copyProperties\");\n function i(j) {\n this._layer = j;\n this._tabIsolation = null;\n };\n;\n h(i.prototype, {\n _subscriptions: [],\n enable: function() {\n this._tabIsolation = new g(this._layer.getRoot());\n this._subscriptions = [this._layer.subscribe(\"show\", this._tabIsolation.enable.bind(this._tabIsolation)),this._layer.subscribe(\"hide\", this._tabIsolation.disable.bind(this._tabIsolation)),];\n },\n disable: function() {\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this._tabIsolation.disable();\n this._tabIsolation = null;\n }\n });\n e.exports = i;\n});\n__d(\"ModalLayer\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"DOMDimensions\",\"DOMQuery\",\"ScrollAwareDOM\",\"Style\",\"URI\",\"UserAgent\",\"Vector\",\"copyProperties\",\"csx\",\"cx\",\"debounceAcrossTransitions\",\"isAsyncScrollQuery\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"DOMDimensions\"), m = b(\"DOMQuery\"), n = b(\"ScrollAwareDOM\"), o = b(\"Style\"), p = b(\"URI\"), q = b(\"UserAgent\"), r = b(\"Vector\"), s = b(\"copyProperties\"), t = b(\"csx\"), u = b(\"cx\"), v = b(\"debounceAcrossTransitions\"), w = b(\"isAsyncScrollQuery\"), x = b(\"removeFromArray\"), y = [], z = null, aa = null, ba = null;\n function ca() {\n if (!ba) {\n ba = m.scry(JSBNG__document.body, \"._li\")[0];\n }\n ;\n ;\n return ba;\n };\n;\n function da(la) {\n var ma = {\n position: r.getScrollPosition()\n }, na = ((la.offsetTop - ma.position.y));\n i.addClass(la, \"_31e\");\n o.set(la, \"JSBNG__top\", ((na + \"px\")));\n h.inform(\"reflow\");\n ma.listener = n.subscribe(\"JSBNG__scroll\", function(oa, pa) {\n if (m.contains(la, pa.target)) {\n var qa = ((la.offsetTop - pa.delta.y));\n o.set(la, \"JSBNG__top\", ((qa + \"px\")));\n ma.position = ma.position.add(pa.delta);\n return false;\n }\n ;\n ;\n });\n j.set(la, \"ModalLayerData\", ma);\n if (((q.firefox() < 13))) {\n ea.curry(la).defer();\n }\n ;\n ;\n };\n;\n function ea(la) {\n m.scry(la, \"div.swfObject\").forEach(function(ma) {\n var na = ma.getAttribute(\"data-swfid\");\n if (((na && window[na]))) {\n var oa = window[na];\n oa.addParam(\"autostart\", \"false\");\n oa.addParam(\"autoplay\", \"false\");\n oa.addParam(\"play\", \"false\");\n oa.addVariable(\"video_autoplay\", \"0\");\n oa.addVariable(\"autoplay\", \"0\");\n oa.addVariable(\"play\", \"0\");\n var pa = p(oa.getAttribute(\"swf\"));\n pa.addQueryData({\n autoplay: \"0\"\n });\n pa.setPath(pa.getPath().replace(\"autoplay=1\", \"autoplay=0\"));\n oa.setAttribute(\"swf\", pa.toString());\n oa.write(ma);\n }\n ;\n ;\n });\n };\n;\n function fa(la, ma) {\n var na = j.get(la, \"ModalLayerData\");\n if (na) {\n var oa = function() {\n i.removeClass(la, \"_31e\");\n o.set(la, \"JSBNG__top\", \"\");\n if (ma) {\n var ra = m.getDocumentScrollElement();\n ra.scrollTop = na.position.y;\n }\n ;\n ;\n h.inform(\"reflow\");\n na.listener.unsubscribe();\n na.listener = null;\n j.remove(la, \"ModalLayerData\");\n };\n if (((ma && w()))) {\n var pa = k.create(\"div\", {\n className: \"_42w\"\n });\n o.set(pa, \"height\", ((la.offsetHeight + \"px\")));\n k.appendContent(JSBNG__document.body, pa);\n var qa = m.getDocumentScrollElement();\n qa.scrollTop = na.position.y;\n ma = false;\n !function() {\n oa();\n k.remove(pa);\n }.defer();\n }\n else oa();\n ;\n ;\n }\n ;\n ;\n if (((q.ie() < 7))) {\n o.set(la, \"height\", \"\");\n }\n ;\n ;\n };\n;\n function ga() {\n var la = ca();\n if (!i.hasClass(la, \"_31e\")) {\n da(la);\n }\n ;\n ;\n };\n;\n function ha() {\n if (!y.length) {\n fa(ca(), true);\n }\n ;\n ;\n };\n;\n function ia() {\n var la;\n if (((q.ie() < 7))) {\n var ma = y[((y.length - 1))].getLayerRoot(), na = Math.max(ma.offsetHeight, ma.scrollHeight);\n la = function(ta) {\n o.set(ta, \"height\", ((((-ta.offsetTop + na)) + \"px\")));\n };\n }\n ;\n ;\n var oa = y.length;\n while (oa--) {\n var pa = y[oa], qa = pa.getLayerRoot();\n ja(qa, \"\");\n var ra = pa.getLayerContentRoot(), sa = ((ra.offsetWidth + l.measureElementBox(ra, \"width\", 0, 0, 1)));\n ja(qa, sa);\n if (((la && ((oa < ((y.length - 1))))))) {\n la(qa);\n }\n ;\n ;\n };\n ;\n ((la && la(ca())));\n };\n;\n function ja(la, ma) {\n var na = ((q.ie() < 7));\n if (((((na && ma)) && ((ma <= JSBNG__document.body.clientWidth))))) {\n ma = \"\";\n }\n ;\n ;\n o.set(la, ((na ? \"width\" : \"min-width\")), ((ma + ((ma ? \"px\" : \"\")))));\n };\n;\n function ka(la) {\n this._layer = la;\n };\n;\n s(ka.prototype, {\n _subscription: null,\n enable: function() {\n if (!ca()) {\n return;\n }\n ;\n ;\n this._subscription = this._layer.subscribe([\"show\",\"hide\",], function(la) {\n ((((la == \"show\")) ? this._addModal() : this._removeModal()));\n }.bind(this));\n if (this._layer.isShown()) {\n this._addModal();\n }\n ;\n ;\n },\n disable: function() {\n if (!ca()) {\n return;\n }\n ;\n ;\n this._subscription.unsubscribe();\n this._subscription = null;\n if (this._layer.isShown()) {\n this._removeModal();\n }\n ;\n ;\n },\n _addModal: function() {\n i.addClass(this.getLayerRoot(), \"_3qw\");\n var la = y[((y.length - 1))];\n if (la) {\n da(la.getLayerRoot());\n }\n else ga();\n ;\n ;\n var ma = m.getDocumentScrollElement();\n ma.scrollTop = 0;\n if (!y.length) {\n if (((q.ie() < 7))) {\n i.addClass(JSBNG__document.documentElement, \"_31d\");\n }\n ;\n ;\n var na = v(ia, 100);\n z = g.listen(window, \"resize\", na);\n aa = h.subscribe(\"reflow\", na);\n }\n ;\n ;\n y.push(this);\n ia.defer();\n },\n _removeModal: function() {\n var la = this.getLayerRoot();\n i.removeClass(la, \"_3qw\");\n ja(la, \"\");\n var ma = ((this === y[((y.length - 1))]));\n x(y, this);\n var na = y[((y.length - 1))];\n if (!na) {\n z.remove();\n z = null;\n aa.unsubscribe();\n aa = null;\n }\n ;\n ;\n !function() {\n if (na) {\n fa(na.getLayerRoot(), ma);\n }\n else ha();\n ;\n ;\n if (y.length) {\n ia.defer();\n }\n else if (((q.ie() < 7))) {\n i.removeClass(JSBNG__document.documentElement, \"_31d\");\n }\n \n ;\n ;\n }.defer(400, false);\n },\n getLayerRoot: function() {\n return this._layer.getRoot();\n },\n getLayerContentRoot: function() {\n return this._layer.getContentRoot();\n }\n });\n e.exports = ka;\n});\n__d(\"ContextualDialogArrow\", [\"JSXDOM\",\"CSS\",\"DOM\",\"Locale\",\"Style\",\"Vector\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSXDOM\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Locale\"), k = b(\"Style\"), l = b(\"Vector\"), m = b(\"copyProperties\"), n = b(\"cx\"), o = {\n bottom: \"_53ik\",\n JSBNG__top: \"_53il\",\n right: \"_53im\",\n left: \"_53in\"\n }, p = {\n above: \"bottom\",\n below: \"JSBNG__top\",\n left: \"right\",\n right: \"left\"\n };\n function q(r) {\n this._layer = r;\n };\n;\n m(q.prototype, {\n _subscription: null,\n _arrow: null,\n enable: function() {\n this._subscription = this._layer.subscribe([\"adjust\",\"reposition\",], this._handle.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _handle: function(r, s) {\n if (((r === \"adjust\"))) {\n this._repositionArrow(s);\n }\n else this._repositionRoot(s);\n ;\n ;\n },\n _repositionRoot: function(r) {\n var s = r.getAlignment();\n if (((s == \"center\"))) {\n return;\n }\n ;\n ;\n var t = this._layer.getRoot(), u = this._layer.getContext(), v = r.isVertical(), w = this._layer.getArrowDimensions(), x = w.offset, y = w.length, z = l.getElementDimensions(u), aa = ((v ? z.x : z.y));\n if (((aa >= ((y + ((x * 2))))))) {\n return;\n }\n ;\n ;\n var ba = ((((y / 2)) + x)), ca = ((aa / 2)), da = parseInt(((ba - ca)), 10);\n if (v) {\n if (((s == \"left\"))) {\n var ea = parseInt(k.get(t, \"left\"), 10);\n k.set(t, \"left\", ((((ea - da)) + \"px\")));\n }\n else {\n var fa = parseInt(k.get(t, \"right\"), 10);\n k.set(t, \"right\", ((((fa - da)) + \"px\")));\n }\n ;\n ;\n }\n else {\n var ga = parseInt(k.get(t, \"JSBNG__top\"), 10);\n k.set(t, \"JSBNG__top\", ((((ga - da)) + \"px\")));\n }\n ;\n ;\n },\n _repositionArrow: function(r) {\n var s = this._layer._contentWrapper, t = r.getPosition(), u = p[t];\n {\n var fin112keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin112i = (0);\n var v;\n for (; (fin112i < fin112keys.length); (fin112i++)) {\n ((v) = (fin112keys[fin112i]));\n {\n h.conditionClass(s, o[v], ((u === v)));\n ;\n };\n };\n };\n ;\n if (((t == \"none\"))) {\n return;\n }\n ;\n ;\n if (!this._arrow) {\n this._arrow = g.i({\n className: \"_53io\"\n });\n i.appendContent(s, this._arrow);\n }\n ;\n ;\n h.conditionClass(s, \"_kc\", this._layer.getFooter());\n k.set(this._arrow, \"JSBNG__top\", \"\");\n k.set(this._arrow, \"left\", \"\");\n k.set(this._arrow, \"right\", \"\");\n k.set(this._arrow, \"margin\", \"\");\n var w = q.getOffsetPercent(r), x = q.getOffset(r, w, this._layer), y = q.getOffsetSide(r);\n k.set(this._arrow, y, ((w + \"%\")));\n k.set(this._arrow, ((\"margin-\" + y)), ((x + \"px\")));\n }\n });\n m(q, {\n getOffsetPercent: function(r) {\n var s = r.getAlignment(), t = r.getPosition();\n if (((((t == \"above\")) || ((t == \"below\"))))) {\n if (((s == \"center\"))) {\n return 50;\n }\n else if (((s == \"right\"))) {\n return 100;\n }\n \n ;\n }\n ;\n ;\n return 0;\n },\n getOffsetSide: function(r) {\n var s = r.isVertical();\n return ((s ? ((j.isRTL() ? \"right\" : \"left\")) : \"JSBNG__top\"));\n },\n getOffset: function(r, s, t) {\n var u = t.getArrowDimensions(), v = u.offset, w = u.length, x = r.getAlignment(), y = ((((x == \"center\")) ? 0 : v));\n y += ((((w * s)) / 100));\n if (((x != \"left\"))) {\n y *= -1;\n }\n ;\n ;\n return y;\n }\n });\n e.exports = q;\n});\n__d(\"ContextualDialogFitInViewport\", [\"JSBNG__Event\",\"ContextualLayerDimensions\",\"Style\",\"Vector\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"ContextualLayerDimensions\"), i = b(\"Style\"), j = b(\"Vector\"), k = b(\"copyProperties\"), l = b(\"throttle\");\n function m(n) {\n this._layer = n;\n this._listeners = [];\n };\n;\n k(m.prototype, {\n _subscription: null,\n _minimumTop: null,\n enable: function() {\n var n = this._layer.getArrowDimensions();\n this._arrowOffset = n.offset;\n var o = n.length;\n this._arrowBuffer = ((this._arrowOffset + o));\n this._subscription = this._layer.subscribe([\"show\",\"hide\",\"reposition\",], function(p, q) {\n if (((p == \"reposition\"))) {\n this._calculateMinimumTop(q);\n }\n else if (((p == \"show\"))) {\n this._attachScroll();\n this._adjustForScroll();\n }\n else this._detachScroll();\n \n ;\n ;\n }.bind(this));\n if (this._layer.isShown()) {\n this._attachScroll();\n }\n ;\n ;\n },\n disable: function() {\n if (this._layer.isShown()) {\n this._detachScroll();\n }\n ;\n ;\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _attachScroll: function() {\n var n = l(this._adjustForScroll.bind(this)), o = ((this._layer.getContextScrollParent() || window));\n this._listeners = [g.listen(o, \"JSBNG__scroll\", n),g.listen(window, \"resize\", n),];\n },\n _detachScroll: function() {\n while (this._listeners.length) {\n this._listeners.pop().remove();\n ;\n };\n ;\n this._listeners = [];\n },\n _getContentHeight: function() {\n return j.getElementDimensions(this._layer._contentWrapper).y;\n },\n _getContextY: function() {\n return j.getElementPosition(this._layer.getContext()).y;\n },\n _calculateMinimumTop: function(n) {\n if (n.isVertical()) {\n return;\n }\n ;\n ;\n this._minimumTop = ((((this._getContextY() - ((this._getContentHeight() - this._arrowBuffer)))) + n.getOffsetY()));\n },\n _adjustForScroll: function() {\n if (this._layer.isFixed()) {\n return;\n }\n ;\n ;\n var n = this._layer._getOrientation();\n if (n.isVertical()) {\n return;\n }\n ;\n ;\n var o = h.getViewportRect(this._layer), p = ((o.b - this._minimumTop));\n if (((p < 0))) {\n return;\n }\n ;\n ;\n var q = this._getContentHeight(), r = ((q - ((this._arrowBuffer + this._arrowOffset)))), s = Math.max(0, Math.min(r, ((r - ((p - q))))));\n i.set(this._layer.getContent(), \"JSBNG__top\", ((-s + \"px\")));\n }\n });\n e.exports = m;\n});\n__d(\"ContextualDialogDefaultTheme\", [\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\"), h = {\n wrapperClassName: \"_53ip\",\n arrowDimensions: {\n offset: 15,\n length: 16\n }\n };\n e.exports = h;\n});\n__d(\"ContextualDialog\", [\"AccessibleLayer\",\"Class\",\"ContextualDialogArrow\",\"ContextualDialogFitInViewport\",\"ContextualLayer\",\"ContextualDialogDefaultTheme\",\"CSS\",\"DOM\",\"LayerAutoFocus\",\"LayerButtons\",\"LayerHideOnTransition\",\"LayerFormHooks\",\"LayerMouseHooks\",\"Style\",\"copyProperties\",\"csx\",\"cx\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n var g = b(\"AccessibleLayer\"), h = b(\"Class\"), i = b(\"ContextualDialogArrow\"), j = b(\"ContextualDialogFitInViewport\"), k = b(\"ContextualLayer\"), l = b(\"ContextualDialogDefaultTheme\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"LayerAutoFocus\"), p = b(\"LayerButtons\"), q = b(\"LayerHideOnTransition\"), r = b(\"LayerFormHooks\"), s = b(\"LayerMouseHooks\"), t = b(\"Style\"), u = b(\"copyProperties\"), v = b(\"csx\"), w = b(\"cx\"), x = b(\"removeFromArray\");\n function y(z, aa) {\n this.parent.construct(this, z, aa);\n };\n;\n h.extend(y, k);\n u(y.prototype, {\n _footer: null,\n _configure: function(z, aa) {\n u(z, ((z.theme || l)));\n var ba = ((z.arrowBehavior || i));\n z.addedBehaviors = ((z.addedBehaviors || []));\n z.addedBehaviors.push(ba);\n this._footer = n.scry(aa, \"div._572u\")[0];\n this.parent._configure(z, aa);\n },\n _getDefaultBehaviors: function() {\n var z = this.parent._getDefaultBehaviors();\n x(z, q);\n return z.concat([g,o,j,p,r,s,]);\n },\n _buildWrapper: function(z, aa) {\n m.addClass(aa, \"_53ij\");\n var ba = this.parent._buildWrapper(z, aa);\n m.addClass(ba, z.wrapperClassName);\n if (z.width) {\n this.setWidth(z.width);\n }\n ;\n ;\n return ba;\n },\n setWidth: function(z) {\n this._width = Math.floor(z);\n t.set(this._contentWrapper, \"width\", ((z + \"px\")));\n return this;\n },\n getFooter: function() {\n return this._footer;\n },\n getArrowDimensions: function() {\n return this._config.arrowDimensions;\n }\n });\n u(y, {\n setContext: function(z, aa) {\n z.setContext(aa);\n }\n });\n e.exports = y;\n});\n__d(\"DialogPosition\", [\"Vector\",], function(a, b, c, d, e, f) {\n var g = b(\"Vector\"), h = 40, i, j = {\n calculateTopMargin: function(k, l) {\n if (i) {\n return i;\n }\n ;\n ;\n var m = g.getViewportDimensions(), n = Math.floor(((((((m.x + k)) * ((m.y - l)))) / ((4 * m.x)))));\n return Math.max(n, h);\n },\n setFixedTopMargin: function(k) {\n i = k;\n }\n };\n e.exports = j;\n});\n__d(\"DialogX\", [\"function-extensions\",\"JSXDOM\",\"Arbiter\",\"Class\",\"CSS\",\"DialogPosition\",\"JSBNG__Event\",\"Layer\",\"LayerAutoFocus\",\"LayerButtons\",\"LayerFormHooks\",\"LayerRefocusOnHide\",\"LayerTabIsolation\",\"ModalLayer\",\"Style\",\"Vector\",\"copyProperties\",\"cx\",\"debounce\",\"shield\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"JSXDOM\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSS\"), k = b(\"DialogPosition\"), l = b(\"JSBNG__Event\"), m = b(\"Layer\"), n = b(\"LayerAutoFocus\"), o = b(\"LayerButtons\"), p = b(\"LayerFormHooks\"), q = b(\"LayerRefocusOnHide\"), r = b(\"LayerTabIsolation\"), s = b(\"ModalLayer\"), t = b(\"Style\"), u = b(\"Vector\"), v = b(\"copyProperties\"), w = b(\"cx\"), x = b(\"debounce\"), y = b(\"shield\");\n function z(ba, ca) {\n this.parent.construct(this, ba, ca);\n };\n;\n i.extend(z, m);\n v(z.prototype, {\n _configure: function(ba, ca) {\n this.parent._configure(ba, ca);\n j.addClass(this.getRoot(), \"_4-hy\");\n if (ba.autohide) {\n var da = this.subscribe(\"show\", function() {\n da.unsubscribe();\n y(this.hide, this).defer(ba.autohide);\n }.bind(this));\n }\n ;\n ;\n },\n _getDefaultBehaviors: function() {\n return this.parent._getDefaultBehaviors().concat([aa,s,n,o,p,r,q,]);\n },\n _buildWrapper: function(ba, ca) {\n var da = ((ba.xui ? \"_4-hz\" : \"_t\")), ea = ((ba.xui ? \"_59s7\" : \"_1yv\"));\n this._innerContent = g.div(null, ca);\n this._wrapper = g.div({\n className: ea,\n role: \"dialog\",\n \"aria-labelledby\": ((ba.titleID || null))\n }, g.div({\n className: da\n }, this._innerContent));\n this.setWidth(ba.width);\n return (g.div({\n className: \"_10\",\n role: \"dialog\"\n }, this._wrapper));\n },\n getContentRoot: function() {\n return this._wrapper;\n },\n getInnerContent: function() {\n return this._innerContent;\n },\n updatePosition: function() {\n var ba = u.getElementDimensions(this._wrapper), ca = k.calculateTopMargin(ba.x, ba.y);\n t.set(this._wrapper, \"margin-top\", ((ca + \"px\")));\n this.inform(\"update_position\", {\n type: \"DialogX\",\n JSBNG__top: ca\n });\n },\n setWidth: function(ba) {\n ba = Math.floor(ba);\n if (((ba === this._width))) {\n return;\n }\n ;\n ;\n this._width = ba;\n t.set(this._wrapper, \"width\", ((ba + \"px\")));\n },\n getWidth: function() {\n return this._width;\n }\n });\n function aa(ba) {\n this._layer = ba;\n };\n;\n v(aa.prototype, {\n _subscription: null,\n _resize: null,\n enable: function() {\n this._subscription = this._layer.subscribe([\"show\",\"hide\",], function(ba) {\n if (((ba === \"show\"))) {\n this._attach();\n h.inform(\"layer_shown\", {\n type: \"DialogX\"\n });\n }\n else {\n this._detach();\n h.inform(\"layer_hidden\", {\n type: \"DialogX\"\n });\n }\n ;\n ;\n }.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n ((this._resize && this._detach()));\n },\n _attach: function() {\n this._layer.updatePosition();\n this._resize = l.listen(window, \"resize\", x(this._layer.updatePosition.bind(this._layer)));\n },\n _detach: function() {\n this._resize.remove();\n this._resize = null;\n }\n });\n e.exports = z;\n});\n__d(\"eachKeyVal\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n if (((!h || !i))) {\n return;\n }\n ;\n ;\n var k = Object.keys(h), l;\n for (l = 0; ((l < k.length)); l++) {\n i.call(j, k[l], h[k[l]], h, l);\n ;\n };\n ;\n };\n;\n e.exports = g;\n});\n__d(\"LoadingDialogDimensions\", [], function(a, b, c, d, e, f) {\n var g = {\n HEIGHT: 96,\n WIDTH: 300\n };\n e.exports = g;\n});\n__d(\"AsyncDialog\", [\"AsyncRequest\",\"Bootloader\",\"CSS\",\"DialogX\",\"DOM\",\"Env\",\"Keys\",\"LayerFadeOnShow\",\"Parent\",\"React\",\"URI\",\"XUISpinner.react\",\"copyProperties\",\"cx\",\"eachKeyVal\",\"emptyFunction\",\"LoadingDialogDimensions\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DialogX\"), k = b(\"DOM\"), l = b(\"Env\"), m = b(\"Keys\"), n = b(\"LayerFadeOnShow\"), o = b(\"Parent\"), p = b(\"React\"), q = b(\"URI\"), r = b(\"XUISpinner.react\"), s = b(\"copyProperties\"), t = b(\"cx\"), u = b(\"eachKeyVal\"), v = b(\"emptyFunction\"), w = b(\"LoadingDialogDimensions\").WIDTH, x;\n function y() {\n if (!x) {\n var ga = k.create(\"div\", {\n className: \"_57-x\"\n });\n x = new j({\n width: w,\n addedBehaviors: [n,],\n xui: true\n }, k.create(\"div\", null, ga));\n p.renderComponent(r({\n size: \"large\"\n }), ga);\n x.subscribe([\"key\",\"JSBNG__blur\",], function(ha, ia) {\n if (((((ha == \"JSBNG__blur\")) || ((((ha == \"key\")) && ((ia.keyCode == m.ESC))))))) {\n ca();\n return false;\n }\n ;\n ;\n });\n }\n ;\n ;\n return x;\n };\n;\n var z = {\n }, aa = 1, ba = [];\n function ca() {\n u(z, function(ga, ha) {\n ha.abandon();\n da(ga);\n });\n };\n;\n function da(ga) {\n delete z[ga];\n if (!Object.keys(z).length) {\n y().hide();\n }\n ;\n ;\n };\n;\n function ea(ga, ha) {\n var ia = aa++;\n ba[ia] = ha;\n z[ia] = ga;\n var ja = da.curry(((\"\" + ia)));\n s(ga.getData(), {\n __asyncDialog: ia\n });\n y().setCausalElement(ga.getRelativeTo()).show();\n var ka = ga.finallyHandler;\n ga.setFinallyHandler(function(la) {\n var ma = la.getPayload();\n if (((ma && ma.asyncURL))) {\n fa.send(new g(ma.asyncURL));\n }\n ;\n ;\n ja();\n ((ka && ka(la)));\n });\n ga.setInterceptHandler(ja).setAbortHandler(ja);\n ga.send();\n };\n;\n var fa = {\n send: function(ga, ha) {\n ea(ga, ((ha || v)));\n },\n bootstrap: function(ga, ha, ia) {\n if (!ga) {\n return;\n }\n ;\n ;\n var ja = ((o.byClass(ha, \"stat_elem\") || ha));\n if (((ja && i.hasClass(ja, \"async_saving\")))) {\n return false;\n }\n ;\n ;\n var ka = new q(ga).getQueryData(), la = ((ia === \"dialog\")), ma = new g().setURI(ga).setData(ka).setMethod(((la ? \"GET\" : \"POST\"))).setReadOnly(la).setRelativeTo(ha).setStatusElement(ja).setNectarModuleDataSafe(ha);\n if (l.is_desktop) {\n h.loadModules([\"FbdDialogProvider\",], function(na) {\n na.sendDialog(ma, fa.send);\n });\n return;\n }\n ;\n ;\n fa.send(ma);\n },\n respond: function(ga, ha) {\n var ia = ba[ga];\n if (ia) {\n ia(ha);\n delete ba[ga];\n }\n ;\n ;\n },\n getLoadingDialog: function() {\n return y();\n }\n };\n e.exports = fa;\n});\n__d(\"Hovercard\", [\"JSXDOM\",\"JSBNG__Event\",\"function-extensions\",\"AccessibleLayer\",\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"ContextualDialog\",\"ContextualThing\",\"DOM\",\"LayerAutoFocus\",\"Parent\",\"JSBNG__Rect\",\"Style\",\"UserAgent\",\"Vector\",\"clickRefAction\",\"cx\",\"emptyFunction\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSXDOM\"), h = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var i = b(\"AccessibleLayer\"), j = b(\"Arbiter\"), k = b(\"AsyncRequest\"), l = b(\"AsyncSignal\"), m = b(\"ContextualDialog\"), n = b(\"ContextualThing\"), o = b(\"DOM\"), p = b(\"LayerAutoFocus\"), q = b(\"Parent\"), r = b(\"JSBNG__Rect\"), s = b(\"Style\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"clickRefAction\"), w = b(\"cx\"), x = b(\"emptyFunction\"), y = b(\"tx\"), z = b(\"userAction\"), aa = {\n }, ba = {\n }, ca = null, da = null, ea = null, fa = 150, ga = 700, ha = 1000, ia = 250, ja = null, ka = null, la = null, ma = null;\n function na(JSBNG__event) {\n var cb = q.byTag(JSBNG__event.getTarget(), \"a\");\n ((bb.processNode(cb) && JSBNG__event.JSBNG__stop()));\n };\n;\n function oa(cb) {\n da = cb;\n if (!pa(cb)) {\n var db;\n if (((!cb || !(db = qa(cb))))) {\n ((ba.moveToken && ba.moveToken.remove()));\n ba = {\n };\n return false;\n }\n ;\n ;\n if (((ba.node != cb))) {\n ((ba.moveToken && ba.moveToken.remove()));\n ba = {\n node: cb,\n endpoint: db,\n pos: null\n };\n }\n ;\n ;\n }\n ;\n ;\n return true;\n };\n;\n function pa(cb) {\n return ((((cb && ca)) && ((ba.node == cb))));\n };\n;\n function qa(cb) {\n return cb.getAttribute(\"data-hovercard\");\n };\n;\n function ra(cb) {\n var db = h.listen(cb, \"mouseout\", function() {\n JSBNG__clearTimeout(ja);\n JSBNG__clearTimeout(ka);\n db.remove();\n da = null;\n if (!bb.contains(cb)) {\n bb.hide();\n }\n ;\n ;\n });\n if (!ba.moveToken) {\n ba.moveToken = h.listen(cb, \"mousemove\", function(JSBNG__event) {\n ba.pos = u.getEventPosition(JSBNG__event);\n });\n }\n ;\n ;\n JSBNG__clearTimeout(ja);\n JSBNG__clearTimeout(ka);\n JSBNG__clearTimeout(ma);\n var eb = fa, fb = ((ca ? ia : ga));\n if (cb.getAttribute(\"data-hovercard-instant\")) {\n eb = fb = 50;\n }\n ;\n ;\n ja = JSBNG__setTimeout(wa.curry(cb), eb);\n ka = JSBNG__setTimeout(sa.curry(cb), fb);\n };\n;\n function sa(cb, db) {\n if (((ba.node != cb))) {\n return;\n }\n ;\n ;\n var eb = aa[qa(cb)];\n if (eb) {\n ua(eb);\n }\n else if (db) {\n ua(ya());\n }\n else {\n var fb = ((ca ? ia : ga));\n la = JSBNG__setTimeout(sa.curry(cb, true), ((ha - fb)));\n }\n \n ;\n ;\n };\n;\n function ta() {\n bb.hide(true);\n JSBNG__clearTimeout(ka);\n };\n;\n function ua(cb) {\n var db = ba.node, eb = ca, fb = ((eb != db));\n if (ea) {\n var gb = ea.getContentRoot();\n if (!n.containsIncludingLayers(gb, db)) {\n ea.hide();\n }\n ;\n ;\n }\n ;\n ;\n if (!o.contains(JSBNG__document.body, db)) {\n bb.hide(true);\n return;\n }\n ;\n ;\n ca = db;\n ea = cb;\n cb.setContextWithBounds(db, va(db)).show();\n if (fb) {\n (function() {\n new l(\"/ajax/hovercard/shown.php\").send();\n v(\"himp\", ca, null, \"FORCE\", {\n ft: {\n evt: 39\n }\n });\n z(\"hovercard\", ca).uai(\"show\");\n }).defer();\n }\n ;\n ;\n };\n;\n function va(cb) {\n var db = ba.pos, eb = cb.getClientRects();\n if (((!db || ((eb.length === 0))))) {\n return r.getElementBounds(cb);\n }\n ;\n ;\n var fb, gb = false;\n for (var hb = 0; ((hb < eb.length)); hb++) {\n var ib = new r(Math.round(eb[hb].JSBNG__top), Math.round(eb[hb].right), Math.round(eb[hb].bottom), Math.round(eb[hb].left), \"viewport\").convertTo(\"JSBNG__document\"), jb = ib.getPositionVector(), kb = jb.add(ib.getDimensionVector());\n if (((!fb || ((((jb.x <= fb.l)) && ((jb.y > fb.t))))))) {\n if (gb) {\n break;\n }\n ;\n ;\n fb = new r(jb.y, kb.x, kb.y, jb.x, \"JSBNG__document\");\n }\n else {\n fb.t = Math.min(fb.t, jb.y);\n fb.b = Math.max(fb.b, kb.y);\n fb.r = kb.x;\n }\n ;\n ;\n if (ib.contains(db)) {\n gb = true;\n }\n ;\n ;\n };\n ;\n return fb;\n };\n;\n function wa(cb) {\n if (((cb.id && ((aa[cb.id] != null))))) {\n return;\n }\n ;\n ;\n var db = qa(cb);\n if (((aa[db] != null))) {\n return;\n }\n ;\n ;\n xa(db);\n var eb = function() {\n bb.dirty(db);\n ta();\n };\n new k(db).setData({\n endpoint: db\n }).setMethod(\"GET\").setReadOnly(true).setErrorHandler(eb).setTransportErrorHandler(eb).send();\n };\n;\n function xa(cb) {\n aa[cb] = false;\n };\n;\n var ya = function() {\n var cb = new m({\n width: 275\n }, g.div({\n className: \"_7lk\"\n }, \"Loading...\"));\n cb.disableBehavior(i).disableBehavior(p);\n za(cb);\n ya = x.thatReturns(cb);\n return cb;\n };\n function za(cb) {\n var db = [cb.subscribe(\"mouseenter\", function() {\n JSBNG__clearTimeout(ma);\n da = ba.node;\n }),cb.subscribe(\"mouseleave\", function() {\n cb.hide();\n da = null;\n }),cb.subscribe(\"destroy\", function() {\n while (db.length) {\n db.pop().unsubscribe();\n ;\n };\n ;\n db = null;\n }),];\n };\n;\n var ab = true, bb = {\n hide: function(cb) {\n if (!ca) {\n return;\n }\n ;\n ;\n if (cb) {\n if (ea) {\n ea.hide();\n }\n ;\n ;\n da = null;\n ca = null;\n ea = null;\n }\n else ma = JSBNG__setTimeout(bb.hide.curry(true), ia);\n ;\n ;\n },\n setDialog: function(cb, db) {\n db.disableBehavior(i).disableBehavior(p);\n aa[cb] = db;\n za(db);\n if (((((ba.endpoint == cb)) && ((da == ba.node))))) {\n ya().hide();\n var eb = ba.node.getAttribute(\"data-hovercard-position\");\n ((eb && db.setPosition(eb)));\n var fb = ba.node.getAttribute(\"data-hovercard-offset-x\");\n ((fb && db.setOffsetX(parseInt(fb, 10))));\n var gb = ba.node.getAttribute(\"data-hovercard-offset-y\");\n ((gb && db.setOffsetY(parseInt(gb, 10))));\n ua(db);\n }\n ;\n ;\n },\n getDialog: function(cb) {\n return aa[cb];\n },\n contains: function(cb) {\n if (ea) {\n return n.containsIncludingLayers(ea.getContentRoot(), cb);\n }\n ;\n ;\n return false;\n },\n dirty: function(cb) {\n var db = aa[cb];\n if (db) {\n db.destroy();\n delete aa[cb];\n }\n ;\n ;\n },\n dirtyAll: function() {\n {\n var fin113keys = ((window.top.JSBNG_Replay.forInKeys)((aa))), fin113i = (0);\n var cb;\n for (; (fin113i < fin113keys.length); (fin113i++)) {\n ((cb) = (fin113keys[fin113i]));\n {\n var db = aa[cb];\n ((db && bb.dirty(cb)));\n };\n };\n };\n ;\n j.inform(\"Hovercard/dirty\");\n },\n processNode: function(cb) {\n if (((cb && oa(cb)))) {\n ra(cb);\n return true;\n }\n ;\n ;\n return false;\n },\n setDirtyAllOnPageTransition: function(cb) {\n ab = cb;\n }\n };\n (function() {\n if (((t.ie() < 8))) {\n return;\n }\n ;\n ;\n h.listen(JSBNG__document.documentElement, \"mouseover\", na);\n h.listen(window, \"JSBNG__scroll\", function() {\n if (((ca && s.isFixed(ca)))) {\n bb.hide(true);\n }\n ;\n ;\n });\n j.subscribe(\"page_transition\", function() {\n ta();\n ((ab && bb.dirtyAll()));\n }, j.SUBSCRIBE_NEW);\n })();\n e.exports = bb;\n});\n__d(\"StickyPlaceholderInput\", [\"JSBNG__Event\",\"CSS\",\"DOM\",\"Input\",\"Parent\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Input\"), k = b(\"Parent\"), l = b(\"emptyFunction\");\n function m(q) {\n return k.byClass(q, \"uiStickyPlaceholderInput\");\n };\n;\n function n(q) {\n return i.scry(q, \".placeholder\")[0];\n };\n;\n function o(q) {\n q = ((q || window.JSBNG__event));\n var r = ((q.target || q.srcElement));\n if (i.isNodeOfType(r, [\"input\",\"textarea\",])) {\n var s = m(r);\n if (s) {\n (function() {\n h.conditionClass(s, \"uiStickyPlaceholderEmptyInput\", !r.value.length);\n }).defer();\n }\n ;\n ;\n }\n ;\n ;\n };\n;\n var p = {\n init: function() {\n p.init = l;\n g.listen(JSBNG__document.documentElement, {\n keydown: o,\n paste: o,\n focusout: o\n });\n },\n registerInput: function(q) {\n p.init();\n var r = ((q.getAttribute(\"placeholder\") || \"\"));\n if (r.length) {\n if (((JSBNG__document.activeElement === q))) {\n var s = g.listen(q, \"JSBNG__blur\", function() {\n p.manipulateInput(q, r);\n s.remove();\n });\n }\n else p.manipulateInput(q, r);\n ;\n }\n ;\n ;\n },\n manipulateInput: function(q, r) {\n var s = i.create(\"div\", {\n className: \"placeholder\",\n \"aria-hidden\": \"true\"\n }, r), t = i.create(\"div\", {\n className: \"uiStickyPlaceholderInput\"\n }, s);\n if (i.isNodeOfType(q, \"textarea\")) {\n h.addClass(t, \"uiStickyPlaceholderTextarea\");\n }\n ;\n ;\n g.listen(s, \"click\", function() {\n q.JSBNG__focus();\n });\n if (((q.value === r))) {\n q.value = \"\";\n }\n ;\n ;\n h.removeClass(q, \"DOMControl_placeholder\");\n q.setAttribute(\"placeholder\", \"\");\n i.replace(q, t);\n i.appendContent(t, q);\n h.conditionClass(t, \"uiStickyPlaceholderEmptyInput\", !q.value.length);\n },\n setPlaceholderText: function(q, r) {\n var s = m(q);\n if (!s) {\n j.setPlaceholder(q, r);\n }\n else {\n var t = n(s);\n ((t && i.setContent(t, r)));\n }\n ;\n ;\n },\n getPlaceholderText: function(q) {\n var r = m(q), s = n(r);\n return ((s && i.getText(s)));\n },\n update: function(q) {\n var r = m(q);\n if (r) {\n h.conditionClass(r, \"uiStickyPlaceholderEmptyInput\", !q.value.length);\n }\n ;\n ;\n },\n getVisibleText: function(q) {\n var r = m(q);\n if (h.hasClass(r, \"uiStickyPlaceholderEmptyInput\")) {\n var s = n(r);\n return ((s && i.getText(s)));\n }\n else return q.value\n ;\n }\n };\n e.exports = p;\n});\n__d(\"UIForm\", [\"JSBNG__Event\",\"ArbiterMixin\",\"BehaviorsMixin\",\"DOM\",\"Form\",\"Run\",\"areObjectsEqual\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"BehaviorsMixin\"), j = b(\"DOM\"), k = b(\"Form\"), l = b(\"Run\"), m = b(\"areObjectsEqual\"), n = b(\"copyProperties\");\n function o(p, q, r, s, t) {\n this._root = p;\n this.controller = p;\n this._message = q;\n if (s) {\n this._confirm_dialog = s;\n s.subscribe(\"JSBNG__confirm\", this._handleDialogConfirm.bind(this));\n j.prependContent(this._root, j.create(\"input\", {\n type: \"hidden\",\n JSBNG__name: \"confirmed\",\n value: \"true\"\n }));\n }\n ;\n ;\n l.onAfterLoad(function() {\n this._originalState = k.serialize(this._root);\n }.bind(this));\n this._forceDirty = r;\n this._confirmed = false;\n this._submitted = false;\n g.listen(this._root, \"submit\", this._handleSubmit.bind(this));\n if (((t && t.length))) {\n this.enableBehaviors(t);\n }\n ;\n ;\n var u = true;\n l.onBeforeUnload(this.checkUnsaved.bind(this), u);\n };\n;\n n(o.prototype, h, i, {\n getRoot: function() {\n return this._root;\n },\n _handleSubmit: function() {\n if (((this._confirm_dialog && !this._confirmed))) {\n this._confirm_dialog.show();\n return false;\n }\n ;\n ;\n if (((this.inform(\"submit\") === false))) {\n return false;\n }\n ;\n ;\n this._submitted = true;\n return true;\n },\n _handleDialogConfirm: function() {\n this._confirmed = true;\n this._confirm_dialog.hide();\n if (this._root.getAttribute(\"ajaxify\")) {\n g.fire(this._root, \"submit\");\n }\n else if (this._handleSubmit()) {\n this._root.submit();\n }\n \n ;\n ;\n },\n reset: function() {\n this.inform(\"reset\");\n this._submitted = false;\n this._confirmed = false;\n },\n isDirty: function() {\n if (((this._submitted || !j.contains(JSBNG__document.body, this._root)))) {\n return false;\n }\n ;\n ;\n if (this._forceDirty) {\n return true;\n }\n ;\n ;\n var p = k.serialize(this._root);\n return !m(p, this._originalState);\n },\n checkUnsaved: function() {\n if (this.isDirty()) {\n return this._message;\n }\n ;\n ;\n return null;\n }\n });\n e.exports = ((a.UIForm || o));\n});\n__d(\"MenuTheme\", [\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\");\n e.exports = {\n className: \"_569t\"\n };\n});\n__d(\"legacy:Tooltip\", [\"Tooltip\",], function(a, b, c, d) {\n a.Tooltip = b(\"Tooltip\");\n}, 3);\n__d(\"BanzaiODS\", [\"Banzai\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\"), h = b(\"invariant\");\n function i() {\n var k = {\n };\n function l(m, n, o, p) {\n var q = ((k[m] || (k[m] = {\n }))), r = ((q[n] || (q[n] = [0,])));\n if (((o === undefined))) {\n o = 1;\n }\n ;\n ;\n if (((p === undefined))) {\n p = 1;\n }\n ;\n ;\n o = Number(o);\n p = Number(p);\n if (((!isFinite(o) || !isFinite(p)))) {\n return;\n }\n ;\n ;\n r[0] += o;\n if (((arguments.length >= 4))) {\n if (!r[1]) {\n r[1] = 0;\n }\n ;\n ;\n r[1] += p;\n }\n ;\n ;\n };\n ;\n return {\n bumpEntityKey: function(m, n, o) {\n l(m, n, o);\n },\n bumpFraction: function(m, n, o, p) {\n l(m, n, o, p);\n },\n flush: function(m) {\n {\n var fin114keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin114i = (0);\n var n;\n for (; (fin114i < fin114keys.length); (fin114i++)) {\n ((n) = (fin114keys[fin114i]));\n {\n g.post(((\"ods:\" + n)), k[n], m);\n ;\n };\n };\n };\n ;\n k = {\n };\n }\n };\n };\n;\n var j = i();\n j.create = i;\n g.subscribe(g.SEND, j.flush.bind(j, null));\n e.exports = j;\n});\n__d(\"endsWith\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n return ((h.indexOf(i, ((h.length - i.length))) > -1));\n };\n;\n e.exports = g;\n});\n__d(\"extendArray\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n Array.prototype.push.apply(h, i);\n return h;\n };\n;\n e.exports = g;\n});");
// 1554
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"if (self.CavalryLogger) {\n CavalryLogger.start_js([\"63VzN\",]);\n}\n;\n__d(\"NotificationURI\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n localize: function(i) {\n i = g(i);\n if (!i.isFacebookURI()) {\n return i.toString()\n };\n var j = i.getSubdomain();\n return i.getUnqualifiedURI().getQualifiedURI().setSubdomain(j).toString();\n },\n snowliftable: function(i) {\n if (!i) {\n return false\n };\n i = g(i);\n return (i.isFacebookURI() && i.getQueryData().hasOwnProperty(\"fbid\"));\n },\n isVaultSetURI: function(i) {\n if (!i) {\n return false\n };\n i = g(i);\n return (i.isFacebookURI() && (i.getPath() == \"/ajax/vault/sharer_preview.php\"));\n }\n };\n e.exports = h;\n});\n__d(\"legacy:fbdesktop-detect\", [\"FBDesktopDetect\",], function(a, b, c, d) {\n a.FbDesktopDetect = b(\"FBDesktopDetect\");\n}, 3);\n__d(\"IntlUtils\", [\"AsyncRequest\",\"Cookie\",\"goURI\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"Cookie\"), i = b(\"goURI\"), j = {\n setXmode: function(k) {\n (new g()).setURI(\"/ajax/intl/save_xmode.php\").setData({\n xmode: k\n }).setHandler(function() {\n document.location.reload();\n }).send();\n },\n setAmode: function(k) {\n new g().setURI(\"/ajax/intl/save_xmode.php\").setData({\n amode: k,\n app: false\n }).setHandler(function() {\n document.location.reload();\n }).send();\n },\n setLocale: function(k, l, m, n) {\n if (!m) {\n m = k.options[k.selectedIndex].value;\n };\n j.saveLocale(m, true, null, l, n);\n },\n saveLocale: function(k, l, m, n, o) {\n new g().setURI(\"/ajax/intl/save_locale.php\").setData({\n aloc: k,\n source: n,\n app_only: o\n }).setHandler(function(p) {\n if (l) {\n document.location.reload();\n }\n else i(m);\n ;\n }).send();\n },\n setLocaleCookie: function(k, l) {\n h.set(\"locale\", k, ((7 * 24) * 3600000));\n i(l);\n }\n };\n e.exports = j;\n});\n__d(\"legacy:intl-base\", [\"IntlUtils\",], function(a, b, c, d) {\n var e = b(\"IntlUtils\");\n a.intl_set_xmode = e.setXmode;\n a.intl_set_amode = e.setAmode;\n a.intl_set_locale = e.setLocale;\n a.intl_save_locale = e.saveLocale;\n a.intl_set_cookie_locale = e.setLocaleCookie;\n}, 3);\n__d(\"legacy:onload-action\", [\"OnloadHooks\",], function(a, b, c, d) {\n var e = b(\"OnloadHooks\");\n a._onloadHook = e._onloadHook;\n a._onafterloadHook = e._onafterloadHook;\n a.runHook = e.runHook;\n a.runHooks = e.runHooks;\n a.keep_window_set_as_loaded = e.keepWindowSetAsLoaded;\n}, 3);\n__d(\"LoginFormController\", [\"Event\",\"ge\",\"Button\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"ge\"), i = b(\"Button\");\n f.init = function(j, k) {\n g.listen(j, \"submit\", function() {\n i.setEnabled(k, false);\n i.setEnabled.curry(k, true).defer(15000);\n });\n var l = h(\"lgnjs\");\n if (l) {\n l.value = parseInt((Date.now() / 1000), 10);\n };\n };\n});\n__d(\"ClickRefUtils\", [], function(a, b, c, d, e, f) {\n var g = {\n get_intern_ref: function(h) {\n if (!!h) {\n var i = {\n profile_minifeed: 1,\n gb_content_and_toolbar: 1,\n gb_muffin_area: 1,\n ego: 1,\n bookmarks_menu: 1,\n jewelBoxNotif: 1,\n jewelNotif: 1,\n BeeperBox: 1,\n navSearch: 1\n };\n for (var j = h; (j && (j != document.body)); j = j.parentNode) {\n if ((!j.id || (typeof j.id !== \"string\"))) {\n continue;\n };\n if ((j.id.substr(0, 8) == \"pagelet_\")) {\n return j.id.substr(8)\n };\n if ((j.id.substr(0, 8) == \"box_app_\")) {\n return j.id\n };\n if (i[j.id]) {\n return j.id\n };\n };\n }\n ;\n return \"-\";\n },\n get_href: function(h) {\n var i = (((((h.getAttribute && ((h.getAttribute(\"ajaxify\") || h.getAttribute(\"data-endpoint\")))) || h.action) || h.href) || h.name));\n return ((typeof i === \"string\") ? i : null);\n },\n should_report: function(h, i) {\n if ((i == \"FORCE\")) {\n return true\n };\n if ((i == \"INDIRECT\")) {\n return false\n };\n return (h && ((g.get_href(h) || ((h.getAttribute && h.getAttribute(\"data-ft\"))))));\n }\n };\n e.exports = g;\n});\n__d(\"setUECookie\", [\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\");\n function h(i) {\n if (!g.no_cookies) {\n document.cookie = (((\"act=\" + encodeURIComponent(i)) + \"; path=/; domain=\") + window.location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\"));\n };\n };\n e.exports = h;\n});\n__d(\"ClickRefLogger\", [\"Arbiter\",\"EagleEye\",\"ClickRefUtils\",\"collectDataAttributes\",\"copyProperties\",\"ge\",\"setUECookie\",\"$\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"EagleEye\"), i = b(\"ClickRefUtils\"), j = b(\"collectDataAttributes\"), k = b(\"copyProperties\"), l = b(\"ge\"), m = b(\"setUECookie\"), n = b(\"$\");\n function o(q) {\n if (!l(\"content\")) {\n return [0,0,0,0,]\n };\n var r = n(\"content\"), s = (a.Vector2 ? a.Vector2.getEventPosition(q) : {\n x: 0,\n y: 0\n });\n return [s.x,s.y,r.offsetLeft,r.clientWidth,];\n };\n function p(q, r, event, s) {\n var t = ((!a.ArbiterMonitor) ? \"r\" : \"a\"), u = [0,0,0,0,], v, w, x;\n if (!!event) {\n v = event.type;\n if (((v == \"click\") && l(\"content\"))) {\n u = o(event);\n };\n var y = 0;\n (event.ctrlKey && (y += 1));\n (event.shiftKey && (y += 2));\n (event.altKey && (y += 4));\n (event.metaKey && (y += 8));\n if (y) {\n v += y;\n };\n }\n ;\n if (!!r) {\n w = i.get_href(r);\n };\n var z = [];\n if (a.ArbiterMonitor) {\n x = a.ArbiterMonitor.getInternRef(r);\n z = a.ArbiterMonitor.getActFields();\n }\n ;\n var aa = j((!!event ? ((event.target || event.srcElement)) : r), [\"ft\",\"gt\",]);\n k(aa.ft, (s.ft || {\n }));\n k(aa.gt, (s.gt || {\n }));\n if ((typeof (aa.ft.ei) === \"string\")) {\n delete aa.ft.ei;\n };\n var ba = [q._ue_ts,q._ue_count,(w || \"-\"),q._context,(v || \"-\"),(x || i.get_intern_ref(r)),t,(a.URI ? a.URI.getRequestURI(true, true).getUnqualifiedURI().toString() : ((location.pathname + location.search) + location.hash)),aa,].concat(u).concat(z);\n return ba;\n };\n g.subscribe(\"ClickRefAction/new\", function(q, r) {\n if (i.should_report(r.node, r.mode)) {\n var s = p(r.cfa, r.node, r.event, r.extra_data);\n m(r.cfa.ue);\n h.log(\"act\", s);\n if (window.chromePerfExtension) {\n window.postMessage({\n clickRef: JSON.stringify(s)\n }, window.location.origin);\n };\n }\n ;\n });\n});\n__d(\"QuicklingAugmenter\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = [], i = {\n addHandler: function(j) {\n h.push(j);\n },\n augmentURI: function(j) {\n var k = [], l = g(j);\n h.forEach(function(m) {\n var n = m(l);\n if (!n) {\n return l\n };\n k.push(m);\n l = l.addQueryData(n);\n });\n h = k;\n return l;\n }\n };\n e.exports = i;\n});\n__d(\"Quickling\", [\"AjaxPipeRequest\",\"Arbiter\",\"Class\",\"CSSClassTransition\",\"DocumentTitle\",\"DOM\",\"ErrorUtils\",\"HTML\",\"OnloadHooks\",\"PageTransitions\",\"QuicklingAugmenter\",\"Run\",\"URI\",\"UserAgent\",\"copyProperties\",\"goOrReplace\",\"isEmpty\",\"QuicklingConfig\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxPipeRequest\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSSClassTransition\"), k = b(\"DocumentTitle\"), l = b(\"DOM\"), m = b(\"ErrorUtils\"), n = b(\"HTML\"), o = b(\"OnloadHooks\"), p = b(\"PageTransitions\"), q = b(\"QuicklingAugmenter\"), r = b(\"Run\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"copyProperties\"), v = b(\"goOrReplace\"), w = b(\"isEmpty\"), x = b(\"QuicklingConfig\"), y = x.version, z = x.sessionLength, aa = new RegExp(x.inactivePageRegex), ba = 0, ca, da = \"\", ea = {\n isActive: function() {\n return true;\n },\n isPageActive: function(la) {\n if ((la == \"#\")) {\n return false\n };\n la = new s(la);\n if ((la.getDomain() && (la.getDomain() != s().getDomain()))) {\n return false\n };\n if ((la.getPath() == \"/l.php\")) {\n var ma = la.getQueryData().u;\n if (ma) {\n ma = s(unescape(ma)).getDomain();\n if ((ma && (ma != s().getDomain()))) {\n return false\n };\n }\n ;\n }\n ;\n var na = la.getPath(), oa = la.getQueryData();\n if (!w(oa)) {\n na += (\"?\" + s.implodeQuery(oa));\n };\n return !aa.test(na);\n },\n getLoadCount: function() {\n return ba;\n }\n };\n function fa(la) {\n la = (la || \"Facebook\");\n k.set(la);\n if (t.ie()) {\n da = la;\n if (!ca) {\n ca = window.setInterval(function() {\n var ma = da, na = k.get();\n if ((ma != na)) {\n k.set(ma);\n };\n }, 5000, false);\n };\n }\n ;\n };\n function ga(la) {\n var ma = document.getElementsByTagName(\"link\");\n for (var na = 0; (na < ma.length); ++na) {\n if ((ma[na].rel != \"alternate\")) {\n continue;\n };\n l.remove(ma[na]);\n };\n if (la.length) {\n var oa = l.find(document, \"head\");\n (oa && l.appendContent(oa, n(la[0])));\n }\n ;\n };\n function ha(la) {\n var ma = {\n version: y\n };\n this.parent.construct(this, la, {\n quickling: ma\n });\n };\n i.extend(ha, g);\n u(ha.prototype, {\n _preBootloadFirstResponse: function(la) {\n return true;\n },\n _fireDomContentCallback: function() {\n (this._request.cavalry && this._request.cavalry.setTimeStamp(\"t_domcontent\"));\n p.transitionComplete();\n (this._onPageDisplayed && this._onPageDisplayed(this.pipe));\n this.parent._fireDomContentCallback();\n },\n _fireOnloadCallback: function() {\n if (this._request.cavalry) {\n this._request.cavalry.setTimeStamp(\"t_hooks\");\n this._request.cavalry.setTimeStamp(\"t_layout\");\n this._request.cavalry.setTimeStamp(\"t_onload\");\n }\n ;\n this.parent._fireOnloadCallback();\n },\n isPageActive: function(la) {\n return ea.isPageActive(la);\n },\n _versionCheck: function(la) {\n if ((la.version == y)) {\n return true\n };\n var ma = [\"quickling\",\"ajaxpipe\",\"ajaxpipe_token\",];\n v(window.location, s(la.uri).removeQueryData(ma), true);\n return false;\n },\n _processFirstResponse: function(la) {\n var ma = la.getPayload();\n fa(ma.title);\n ga((ma.syndication || []));\n window.scrollTo(0, 0);\n j.go(document.body, (ma.body_class || \"\"), p.getMostRecentURI(), la.getRequest().getURI());\n h.inform(\"quickling/response\");\n },\n getSanitizedParameters: function() {\n return [\"quickling\",];\n }\n });\n function ia() {\n ba++;\n return (ba >= z);\n };\n function ja(la) {\n g.setCurrentRequest(null);\n if (ia()) {\n return false\n };\n la = q.augmentURI(la);\n if (!ea.isPageActive(la)) {\n return false\n };\n window.ExitTime = Date.now();\n r.__removeHook(\"onafterloadhooks\");\n r.__removeHook(\"onloadhooks\");\n o.runHooks(\"onleavehooks\");\n h.inform(\"onload/exit\", true);\n new ha(la).setCanvasId(\"content\").send();\n return true;\n };\n function ka(la) {\n var ma = window[la];\n function na(oa, pa, qa) {\n if ((typeof oa !== \"function\")) {\n oa = eval.bind(null, oa);\n };\n var ra = ma(m.guard(oa), pa);\n if ((pa > 0)) {\n if ((qa !== false)) {\n r.onLeave(function() {\n clearInterval(ra);\n });\n }\n };\n return ra;\n };\n window[la] = na;\n };\n r.onAfterLoad(function la() {\n ka(\"setInterval\");\n ka(\"setTimeout\");\n p.registerHandler(ja, 1);\n });\n e.exports = a.Quickling = ea;\n});\n__d(\"ScubaSample\", [\"Banzai\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = \"scuba_sample\", h = b(\"Banzai\"), i = b(\"copyProperties\");\n function j(m, n, o) {\n this.fields = {\n };\n this.flush = function() {\n if (!m) {\n return\n };\n var p = {\n };\n i(p, this.fields);\n p._ds = m;\n if (n) {\n p._lid = n;\n };\n p._options = o;\n h.post(g, p);\n this.flush = function() {\n \n };\n this.flushed = true;\n };\n this.lid = n;\n return this;\n };\n function k(m, n, o) {\n if (!this.fields[m]) {\n this.fields[m] = {\n };\n };\n this.fields[m][n] = o;\n return this;\n };\n function l(m) {\n return function(n, o) {\n if (this.flushed) {\n return this\n };\n return k.call(this, m, n, o);\n };\n };\n i(j.prototype, {\n addNormal: l(\"normal\"),\n addInteger: l(\"int\"),\n addDenorm: l(\"denorm\")\n });\n e.exports = j;\n});\n__d(\"ScriptMonitorReporter\", [\"ScriptMonitor\",\"ScubaSample\",\"setTimeoutAcrossTransitions\",\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"ScriptMonitor\"), h = b(\"ScubaSample\"), i = b(\"setTimeoutAcrossTransitions\"), j = b(\"URI\");\n function k(o) {\n var p = [];\n for (var q = 0; (q < o.length); q++) {\n p.push(new RegExp(o[q], \"i\"));;\n };\n return p;\n };\n function l(o, p) {\n for (var q = 0; (q < p.length); q++) {\n if (p[q].src) {\n o.push(p[q].src);\n };\n };\n };\n function m(o, p) {\n for (var q = 0; (q < p.length); q++) {\n if (p[q].test(o)) {\n return true\n };\n };\n return false;\n };\n function n(o, p) {\n var q = g.stop(), r = {\n addGeoFields: 1,\n addBrowserFields: 1,\n addUser: 1\n }, s = {\n };\n l(q, document.getElementsByTagName(\"script\"));\n l(q, document.getElementsByTagName(\"iframe\"));\n for (var t = 0; (t < q.length); t++) {\n var u = q[t].replace(/\\?.*/, \"\"), v;\n if (s[u]) {\n continue;\n };\n s[u] = 1;\n if (!j.isValidURI(u)) {\n v = true;\n }\n else if (m(u, p)) {\n v = false;\n }\n else if (m(new j(u).getDomain(), o)) {\n v = false;\n }\n else v = true;\n \n \n ;\n if (v) {\n new h(\"unknown_scripts\", 0, r).addNormal(\"url\", u).flush();\n };\n };\n };\n e.exports = {\n runScan: function(o, p) {\n i(function() {\n n(k(o), k(p));\n }, 5000);\n }\n };\n});\n__d(\"StringTransformations\", [], function(a, b, c, d, e, f) {\n e.exports = {\n unicodeEscape: function(g) {\n return g.replace(/[^A-Za-z0-9\\-\\.\\:\\_\\$\\/\\+\\=]/g, function(h) {\n var i = h.charCodeAt().toString(16);\n return (\"\\\\u\" + ((\"0000\" + i.toUpperCase())).slice(-4));\n });\n },\n unicodeUnescape: function(g) {\n return g.replace(/(\\\\u[0-9A-Fa-f]{4})/g, function(h) {\n return String.fromCharCode(parseInt(h.slice(2), 16));\n });\n }\n };\n});\n__d(\"TimeSpentLogger\", [\"Arbiter\",\"Banzai\",\"CSS\",\"ClickRefUtils\",\"DOMEventListener\",\"ScriptPath\",\"UserActivity\",\"collectDataAttributes\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"CSS\"), j = b(\"ClickRefUtils\"), k = b(\"DOMEventListener\"), l = b(\"ScriptPath\"), m = b(\"UserActivity\"), n = b(\"collectDataAttributes\"), o = b(\"copyProperties\"), p = [m.getLastInformTime(),0,], q = m.getLastInformTime(), r = {\n tos_seq: 0,\n tos_cumulative: 0,\n transport_cause: null,\n buenopath: null,\n page_token: null,\n elements: 0,\n uact_tos: null,\n client_time: null\n }, s = 100, t = 100, u = (10 * 1000), v = (3 * 1000), w = 1, x = 2, y = 4, z = 8, aa = {\n };\n m.subscribe(function(ia, ja) {\n var ka = (p.length - 1);\n q = ja.last_inform;\n if ((ja.idleness < v)) {\n p[ka] += ja.idleness;\n r.tos_cumulative += ja.idleness;\n }\n else {\n if ((ka > s)) {\n fa(\"array_limit_reached\");\n };\n p.push(ja.idleness, 0);\n }\n ;\n });\n function ba(ia) {\n var ja = 0;\n if (document.getElementById(\"boulder_fixed_header\")) {\n ja = (ja | w);\n };\n if (i.hasClass(document.body, \"timelineLayout\")) {\n ja = (ja | y);\n var ka = document.getElementById(\"pagelet_main_column_personal\");\n if ((ka && (ka.getAttribute(\"data-referrer\") === \"pagelet_main_column_personal_timeline\"))) {\n ja = (ja | x);\n };\n if (i.hasClass(document.body, \"pagesTimelineLayout\")) {\n ja = (ja | z);\n };\n }\n ;\n return ja;\n };\n function ca(ia) {\n var ja = ba(), ka = l.getScriptPath(), la = l.getCategoryToken();\n r.uact_tos = p;\n if (ka) {\n r.buenopath = ka.substring(0, t);\n }\n else r.buenopath = \"\";\n ;\n if (la) {\n r.page_token = la;\n }\n else r.page_token = \"\";\n ;\n r.elements = ja;\n r.transport_cause = ia;\n r.client_time = Date.now();\n };\n function da() {\n r.tos_seq += 1;\n p = [q,0,];\n };\n var ea = {\n store: true,\n delay: 3000,\n retry: true\n };\n function fa(ia) {\n ca(ia);\n if (h.isEnabled(\"time_spent\")) {\n g.inform(\"timespent/tosdataposted\", o({\n }, r));\n h.post(\"time_spent\", o({\n }, r), ea);\n }\n ;\n da();\n };\n function ga() {\n fa(\"heartbeat\");\n };\n function ha() {\n fa(\"before_unload\");\n };\n if ((window.top == window.self)) {\n k.add(window, \"beforeunload\", ha);\n setInterval(function() {\n if ((((Date.now() - m.getLastInformTime()) > ((u - 100))) && (((p.length > 2) || (p[(p.length - 1)] > 0))))) {\n ga();\n };\n }, u);\n }\n;\n g.subscribe(\"UserAction/new\", function(ia, ja) {\n if (j.should_report(ja.node, ja.mode)) {\n var ka = n(ja.node, [\"gt\",]), la = {\n iref: j.get_intern_ref(ja.node),\n gt_ref: ka.ref,\n nav_section: ka.nav_section\n };\n ca(\"useraction\");\n o(la, r);\n ja.ua.add_data(la);\n g.inform(\"timespent/tosdataposted\", o({\n }, r));\n da();\n }\n ;\n });\n e.exports = aa;\n});\n__d(\"UserActionHistory\", [\"Arbiter\",\"ClickRefUtils\",\"ScriptPath\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ClickRefUtils\"), i = b(\"ScriptPath\"), j = b(\"throttle\"), k = {\n click: 1,\n submit: 1\n }, l = false, m = {\n log: [],\n len: 0\n }, n = j.acrossTransitions(function() {\n try {\n l._ua_log = JSON.stringify(m);\n } catch (q) {\n l = false;\n };\n }, 1000);\n function o() {\n try {\n if (a.sessionStorage) {\n l = a.sessionStorage;\n (l._ua_log && (m = JSON.parse(l._ua_log)));\n }\n ;\n } catch (q) {\n l = false;\n };\n m.log[(m.len % 10)] = {\n ts: Date.now(),\n path: \"-\",\n index: m.len,\n type: \"init\",\n iref: \"-\"\n };\n m.len++;\n g.subscribe(\"UserAction/new\", function(r, s) {\n var t = s.ua, u = s.node, event = s.event;\n if ((!event || !((event.type in k)))) {\n return\n };\n var v = {\n path: i.getScriptPath(),\n type: event.type,\n ts: t._ue_ts,\n iref: (h.get_intern_ref(u) || \"-\"),\n index: m.len\n };\n m.log[(m.len++ % 10)] = v;\n (l && n());\n });\n };\n function p() {\n return m.log.sort(function(q, r) {\n return (((r.ts != q.ts)) ? ((r.ts - q.ts)) : ((r.index - q.index)));\n });\n };\n o();\n e.exports = {\n getHistory: p\n };\n});\n__d(\"clip\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n return Math.min(Math.max(h, i), j);\n };\n e.exports = g;\n});\n__d(\"MusicButtonStore\", [], function(a, b, c, d, e, f) {\n var g = {\n }, h = {\n addButton: function(i, j) {\n g[i] = j;\n return j;\n },\n getButton: function(i) {\n return g[i];\n },\n getButtons: function() {\n return g;\n },\n removeButton: function(i) {\n (g[i] && g[i].resetLoadingTimers());\n delete g[i];\n }\n };\n e.exports = h;\n});\n__d(\"MusicConstants\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n DEBUG: false,\n LIVE_LISTEN_MIN_SPOTIFY_VERSION: \"spotify-0.6.6.0.g5a9eaca5\",\n enableDebug: function() {\n this.DEBUG = true;\n },\n sameURLs: function(i, j) {\n var k = /\\/$/;\n if ((i && j)) {\n i = g(i);\n j = g(j);\n return ((i.getDomain() == j.getDomain()) && (i.getPath() == j.getPath()));\n }\n ;\n return false;\n },\n greaterOrEqualToMinimumVersion: function(i, j) {\n var k = /(?:\\d+\\.)+/, l = i.match(k)[0].split(\".\").slice(0, -1), m = j.match(k)[0].split(\".\").slice(0, -1);\n if ((l.length !== m.length)) {\n return false\n };\n for (var n = 0; (n < m.length); n++) {\n if ((+l[n] < +m[n])) {\n return false;\n }\n else if ((+l[n] > +m[n])) {\n return true\n }\n ;\n };\n return true;\n },\n sanitizeForProviders: function(i) {\n var j = {\n };\n for (var k in i) {\n if (this.ALLOWED_EXTERNAL_CONTEXT_PARAMS[k]) {\n j[k] = i[k];\n };\n };\n return j;\n },\n OP: {\n RESUME: \"RESUME\",\n PAUSE: \"PAUSE\",\n PLAY: \"PLAY\",\n VERSION: \"VERSION\"\n },\n STATUS_CHANGE_OP: {\n STATUS: \"STATUS\",\n LOGIN: \"LOGIN\",\n REINFORM: \"REINFORM\"\n },\n STATUS_CHANGE_EVENT: {\n playing: \"PLAY_STATE_CHANGED\",\n track: \"TRACK_CHANGED\"\n },\n DIAGNOSTIC_EVENT: {\n ALL_PAUSED: \"ALL_PAUSED\",\n ALL_OFFLINE: \"ALL_OFFLINE\",\n OFFLINE: \"OFFLINE\",\n ONLINE: \"ONLINE\",\n SEARCHING: \"SEARCHING\",\n HIT: \"HIT\",\n MISS: \"MISS\",\n RESIGN: \"RESIGN\",\n IFRAME_POLLING: \"IFRAME_POLLING\",\n RELAUNCH: \"RELAUNCH\",\n STATE_CHANGE: \"STATE_CHANGE\",\n WRONG_VERSION: \"WRONG_VERSION\",\n SERVICE_ERROR: \"SERVICE_ERROR\",\n INCORRECT_ONLINE_STATE: \"INCORRECT_ONLINE_STATE\",\n LOG_SEND_OP: \"LOG_SEND_OP\",\n REQUEUE_OP: \"REQUEUE_OP\"\n },\n ALLOWED_STATUS_PARAMS: {\n playing: \"playing\",\n track: \"track\",\n context: \"context\",\n client_version: \"client_version\",\n start_time: \"start_time\",\n expires_in: \"expires_in\",\n open_graph_state: \"open_graph_state\"\n },\n ALLOWED_EXTERNAL_CONTEXT_PARAMS: {\n uri: true,\n song: true,\n radio_station: true,\n album: true,\n playlist: true,\n musician: true,\n song_list: true,\n offset: true,\n title: true,\n request_id: true,\n listen_with_friends: true,\n needs_tos: true\n },\n LIVE_LISTEN_OP: {\n NOW_LEADING: \"NOW_LEADING\",\n NOW_LISTENING: \"NOW_LISTENING\",\n END_SESSION: \"END_SESSION\",\n SONG_PLAYING: \"SONG_PLAYING\",\n LISTENER_UPDATE: \"LISTENER_UPDATE\",\n QUEUE_SESSION: \"QUEUE_SESSION\",\n PLAY_ERROR: \"PLAY_ERROR\",\n SESSION_UPDATED: \"SESSION_UPDATED\",\n QUEUING_SESSION: \"QUEUING_SESSION\"\n },\n MUSIC_BUTTON: {\n ACTIVATE: \"ACTIVATE\"\n },\n ERROR: {\n 1: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM\",\n 2: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM_OR_WAIT\",\n 3: \"SERVICE_UNAVAILABLE_BILLING_ISSUE\",\n 4: \"SERVICE_UNAVAILABLE_TECHNICAL_ISSUE\",\n 5: \"AUDIO_AD_PLAYING\",\n 99: \"SERVICE_TEMPORARILY_UNAVAILABLE\",\n 101: \"SONG_UNAVAILABLE_WITHOUT_PURCHASE\",\n 102: \"SONG_UNAVAILABLE_WITHOUT_PREMIUM\",\n 103: \"SONG_UNAVAILABLE_INDEFINITELY\"\n }\n };\n e.exports = (a.MusicConstants || h);\n});\n__d(\"MusicEvents\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\");\n e.exports = a.MusicEvents = new g();\n});\n__d(\"MusicButton\", [\"BanzaiODS\",\"Bootloader\",\"copyProperties\",\"CSS\",\"DOM\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"ScubaSample\",\"Tooltip\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"BanzaiODS\"), h = b(\"Bootloader\"), i = b(\"copyProperties\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"ScubaSample\"), q = b(\"Tooltip\"), r = b(\"cx\"), s = function(t, u, v, w, x, y) {\n this.provider = t;\n this.buttonElem = u;\n this.url = v;\n this.context = (w || {\n });\n this.mediaType = x;\n this.setState(this.STATES.OFFLINE);\n this.tooltip = (y || \"\");\n n.subscribe(m.MUSIC_BUTTON.ACTIVATE, this.processClick.bind(this));\n };\n i(s, {\n tracksetableTypes: []\n });\n i(s.prototype, {\n SHOW_LOADING_TIMEOUT: 500,\n HIDE_LOADING_TIMEOUT: 4000,\n RECENTLY_ONLINE_TIMEOUT: 6000,\n STATES: {\n PLAYING: \"music_playing\",\n PAUSED: \"music_paused\",\n LOADING: \"music_loading\",\n DISABLED: \"music_disabled\",\n OFFLINE: \"music_offline\"\n },\n setState: function(t) {\n if ((t !== this.STATES.LOADING)) {\n this.resetLoadingTimers();\n this.previousState = (this.state || t);\n }\n ;\n if ((t === this.STATES.PLAYING)) {\n q.set(this.buttonElem, this.tooltip);\n }\n else q.set(this.buttonElem, \"\");\n ;\n var u = this.buttonElem.parentNode;\n (this.state && j.removeClass(u, this.state));\n this.state = t;\n j.addClass(u, this.state);\n },\n isTracksetable: function(t) {\n return (s.tracksetableTypes.indexOf(this.mediaType) !== -1);\n },\n handleIncomingEvent: function(t, u) {\n clearTimeout(this._showLoadingTimer);\n if (((u && u.provider) && (u.provider != this.provider))) {\n return\n };\n switch (t) {\n case m.DIAGNOSTIC_EVENT.ONLINE:\n \n case m.STATUS_CHANGE_EVENT.track:\n \n case m.STATUS_CHANGE_EVENT.playing:\n var v = ((u && u.track) && u.track.uri), w = ((u && u.context) && u.context.uri);\n if (((u && u.playing) && ((m.sameURLs(v, this.url) || m.sameURLs(w, this.url))))) {\n this.setState(this.STATES.PLAYING);\n }\n else if (((this.state === this.STATES.LOADING) && (((this.previousState === this.STATES.PAUSED) || (this.previousState === this.STATES.OFFLINE))))) {\n clearTimeout(this._attemptingPlayTimer);\n this._attemptingPlayTimer = this.setState.bind(this, this.STATES.PAUSED).defer(this.RECENTLY_ONLINE_TIMEOUT, false);\n }\n else if (!this._attemptingPlayTimer) {\n this.setState(this.STATES.PAUSED);\n }\n \n ;\n break;\n case m.DIAGNOSTIC_EVENT.OFFLINE:\n this.setState(this.STATES.OFFLINE);\n break;\n case m.DIAGNOSTIC_EVENT.ALL_OFFLINE:\n this.setState(this.STATES.OFFLINE);\n break;\n };\n },\n processClick: function(t, u) {\n if ((u != this.buttonElem)) {\n if ((this.state === this.STATES.LOADING)) {\n (this.previousState && this.setState(this.previousState));\n };\n return;\n }\n ;\n var v = new p(\"music_play_button_click\", null, {\n addBrowserFields: true,\n addGeoFields: true,\n addUser: true\n });\n v.addNormal(\"uses_bridge\", \"1\");\n v.addNormal(\"state\", this.state);\n v.addNormal(\"provider\", this.provider);\n v.addNormal(\"class\", \"MusicButton\");\n v.addDenorm(\"url\", this.url);\n v.flush();\n if ((this.state != this.STATES.PLAYING)) {\n g.bumpEntityKey(\"music_play_button\", \"music_play_button_click\");\n g.bumpEntityKey(\"music_play_button\", (\"music_play_button_click.\" + this.provider));\n var w = o.byClass(this.buttonElem, \"_4--s\");\n if (w) {\n j.addClass(w, \"_4--t\");\n j.removeClass.curry(w, \"_4--t\").defer(3000);\n }\n ;\n }\n ;\n var x = (this.isTracksetable() && o.byClass(this.buttonElem, \"music_trackset_container\")), y = [];\n if (x) {\n var z = x.getAttribute(\"data-trackset-title\"), aa = this.provider, ba = k.scry(x, \".music_button\");\n for (var ca = 0; (ca < ba.length); ca++) {\n var da = l.getButton([ba[ca].id,]);\n if (((da && (da.provider == aa)) && da.isTracksetable())) {\n y.push(da.url);\n };\n };\n }\n ;\n if (!a.Music) {\n this.showLoading(true);\n };\n h.loadModules([\"Music\",], function(ea) {\n var fa = (((x && (y.length > 1))) ? ea.playPauseSongList(this.provider, this.url, y, z, this.context) : ea.playPauseSong(this.provider, this.url, this.context));\n this.showLoading(!fa);\n }.bind(this));\n },\n showLoading: function(t) {\n this.resetLoadingTimers();\n this._hideLoadingTimer = this._timeout.bind(this, t).defer(this.HIDE_LOADING_TIMEOUT, false);\n this._showLoadingTimer = this.setState.bind(this, this.STATES.LOADING).defer(this.SHOW_LOADING_TIMEOUT, false);\n },\n resetLoadingTimers: function() {\n clearTimeout(this._hideLoadingTimer);\n clearTimeout(this._showLoadingTimer);\n clearTimeout(this._attemptingPlayTimer);\n this._attemptingPlayTimer = null;\n },\n destroy: function() {\n this.resetLoadingTimers();\n this.buttonElem = null;\n },\n _timeout: function(t) {\n (a.Music && a.Music.reInform([this.provider,]));\n if ((!t && (this.state === this.STATES.LOADING))) {\n this.setState(this.STATES.PAUSED);\n };\n }\n });\n e.exports = s;\n});\n__d(\"MusicButtonManager\", [\"Event\",\"DOM\",\"KeyedCallbackManager\",\"Layer\",\"MusicButton\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"$\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"DOM\"), i = b(\"KeyedCallbackManager\"), j = b(\"Layer\"), k = b(\"MusicButton\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"ge\"), s = new i(), t = null, u = {\n }, v = 0;\n function w(da) {\n var ea = da.getTarget(), fa = o.byClass(ea, \"music_button\");\n fa = (fa || ((!((da.getModifiers && da.getModifiers().any)) && x(ea))));\n if (!fa) {\n return\n };\n return y(fa, da);\n };\n function x(da) {\n var ea = (o.byClass(da, \"music_button_trigger\") && o.byClass(da, \"music_button_trigger_group\"));\n if (ea) {\n var fa = h.scry(ea, \".music_button\");\n if (fa.length) {\n return fa[0]\n };\n }\n ;\n return null;\n };\n function y(da, event) {\n (event && event.stop());\n n.inform(m.MUSIC_BUTTON.ACTIVATE, da);\n return false;\n };\n function z(da) {\n (a.Music && a.Music.reInform(da));\n };\n function aa(da, ea) {\n var fa = l.getButtons();\n for (var ga in fa) {\n if ((fa[ga].noGC || r(ga))) {\n fa[ga].handleIncomingEvent(da, ea);\n }\n else l.removeButton(ga);\n ;\n };\n };\n var ba = {\n init: function(da) {\n if (t) {\n return\n };\n t = true;\n k.tracksetableTypes = (da || []);\n g.listen(document.body, \"click\", w);\n n.subscribe([m.STATUS_CHANGE_EVENT.playing,m.STATUS_CHANGE_EVENT.track,m.DIAGNOSTIC_EVENT.OFFLINE,m.DIAGNOSTIC_EVENT.ALL_OFFLINE,m.DIAGNOSTIC_EVENT.ONLINE,], aa);\n },\n add: function(da, ea, fa, ga, ha, ia) {\n (t || ba.init());\n var ja = ea.id, ka = l.getButton(ja);\n if (ka) {\n return ka\n };\n ka = l.addButton(ja, new k(da, ea, fa, q({\n button_id: ja\n }, ga), ha, ia));\n var la = o.byClass(ea, \"uiOverlay\");\n if (la) {\n ka.noGC = true;\n var ma = j.subscribe(\"destroy\", function(na, oa) {\n if (h.contains(oa.getRoot(), ea)) {\n l.removeButton(ja);\n j.unsubscribe(ma);\n }\n ;\n });\n }\n ;\n if ((da && !u[da])) {\n u[da] = function() {\n var na = Object.keys(u);\n (na.length && z(na));\n u = {\n };\n }.defer();\n };\n return ka;\n },\n addButton: function(da, ea, fa, ga, ha, ia) {\n if (!r(ea)) {\n return\n };\n var ja = p(ea);\n return ba.add(da, ja, fa, ga, ha, ia);\n },\n asyncAddMusicButton: function(da, ea) {\n da.setAttribute(\"id\", (\"music_button_\" + v++));\n ca(da, ea);\n },\n tryAddButtonInDOM: function(da, ea) {\n var fa = r(da);\n (fa && ca(fa, ea));\n },\n addMusicData: function(da, ea, fa, ga, ha, ia) {\n s.setResource(da, {\n provider: ea,\n uri: fa,\n context: ga,\n media_type: ha,\n tooltip: ia\n });\n }\n };\n function ca(da, ea) {\n var fa = h.find(da, \"a.button_anchor\").getAttribute(\"href\");\n s.executeOrEnqueue(fa, function(ga) {\n return ba.add(ga.provider, da, ga.uri, ga.context, ga.media_type, (ea ? ga.tooltip : \"\"));\n });\n };\n e.exports = (a.MusicButtonManager || ba);\n});\n__d(\"TinyViewport\", [\"Arbiter\",\"CSS\",\"DOM\",\"Event\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Event\"), k = b(\"queryThenMutateDOM\"), l = document.documentElement, m, n, o = k.bind(null, function() {\n n = (n || i.getDocumentScrollElement());\n m = ((l.clientHeight < 400) || (l.clientWidth < n.scrollWidth));\n }, function() {\n h.conditionClass(l, \"tinyViewport\", m);\n h.conditionClass(l, \"canHaveFixedElements\", !m);\n }, \"TinyViewport\");\n o();\n g.subscribe(\"quickling/response\", o);\n j.listen(window, \"resize\", o);\n});\n__d(\"TimeSpentArray\", [\"Banzai\",\"pageID\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\"), h = b(\"pageID\"), i = 2, j = (i * 32), k = 1500, l, m, n, o, p, q, r, s, t;\n function u() {\n if (l) {\n var ca = Date.now();\n if ((ca > p)) {\n r = Math.min(j, Math.ceil((((ca / 1000)) - o)));\n };\n var da = z();\n if (da) {\n l(da);\n };\n }\n ;\n y();\n };\n function v() {\n w();\n m = setTimeout(u, ((n * 1000) + k), false);\n };\n function w() {\n if (m) {\n clearTimeout(m);\n m = null;\n }\n ;\n };\n function x(ca) {\n o = ca;\n p = (o * 1000);\n q = [1,];\n for (var da = 1; (da < i); da++) {\n q.push(0);;\n };\n r = 1;\n s += 1;\n t += 1;\n v();\n };\n function y() {\n w();\n q = null;\n n = j;\n };\n function z() {\n if (!q) {\n return null\n };\n return {\n tos_id: h,\n start_time: o,\n tos_array: q.slice(0),\n tos_len: r,\n tos_seq: t,\n tos_cum: s\n };\n };\n function aa(ca) {\n if (((ca >= p) && (((ca - p)) < 1000))) {\n return\n };\n ba(Math.floor((ca / 1000)));\n };\n function ba(ca) {\n var da = (ca - o);\n if (((da < 0) || (da >= j))) {\n u();\n };\n if (!q) {\n x(ca);\n }\n else {\n q[(da >> 5)] |= ((1 << ((da & 31))));\n r = (da + 1);\n s += 1;\n p = (ca * 1000);\n }\n ;\n };\n e.exports = {\n init: function(ca, da) {\n s = 0;\n t = -1;\n l = ca;\n n = (da || j);\n x(Math.floor((Date.now() / 1000)));\n g.subscribe(g.SHUTDOWN, u);\n },\n update: function(ca) {\n aa(ca);\n },\n get: function() {\n return z();\n },\n ship: function() {\n u();\n },\n reset: function() {\n y();\n }\n };\n});\n__d(\"WebStorageMonster\", [\"Event\",\"AsyncRequest\",\"UserActivity\",\"StringTransformations\",\"arrayContains\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"UserActivity\"), j = b(\"StringTransformations\"), k = b(\"arrayContains\"), l = b(\"setTimeoutAcrossTransitions\"), m = 300000, n = false;\n function o(t) {\n var u = {\n };\n for (var v in t) {\n var w = t.getItem(v), x = j.unicodeEscape(v);\n if ((typeof w === \"string\")) {\n u[x] = w.length;\n };\n };\n return u;\n };\n function p(t) {\n if ((a.localStorage && t.keys)) {\n s._getLocalStorageKeys().forEach(function(u) {\n if (k(t.keys, u)) {\n a.localStorage.removeItem(u);\n };\n });\n };\n };\n function q(t) {\n if (a.localStorage) {\n s._getLocalStorageKeys().forEach(function(u) {\n if (!t.some(function(v) {\n return new RegExp(v).test(u);\n })) {\n a.localStorage.removeItem(u);\n };\n });\n };\n if (a.sessionStorage) {\n a.sessionStorage.clear();\n };\n };\n function r(t) {\n if (i.isActive(m)) {\n l(r.curry(t), m);\n }\n else s.cleanNow(t);\n ;\n };\n var s = {\n registerLogoutForm: function(t, u) {\n g.listen(t, \"submit\", function(v) {\n s.cleanOnLogout(u);\n });\n },\n schedule: function(t) {\n if (n) {\n return\n };\n n = true;\n r(t);\n },\n cleanNow: function(t) {\n var u = Date.now(), v = {\n }, w = false;\n [\"localStorage\",\"sessionStorage\",].forEach(function(y) {\n if (a[y]) {\n v[y] = o(a[y]);\n w = true;\n }\n ;\n });\n var x = Date.now();\n v.logtime = (x - u);\n if (w) {\n new h(\"/ajax/webstorage/process_keys.php\").setData(v).setHandler(function(y) {\n if (!t) {\n var z = y.getPayload();\n if (z.keys) {\n z.keys = z.keys.map(j.unicodeUnescape);\n };\n p(z);\n }\n ;\n }.bind(this)).send();\n };\n },\n cleanOnLogout: function(t) {\n if (t) {\n q(t);\n };\n if (a.sessionStorage) {\n a.sessionStorage.clear();\n };\n },\n _getLocalStorageKeys: Object.keys.curry(a.localStorage)\n };\n e.exports = s;\n});");
// 1555
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"AsDOA\",]);\n}\n;\n;\n__d(\"AdblockDetector\", [], function(a, b, c, d, e, f) {\n var g = \"data-adblock-hash\", h = {\n }, i = 0;\n function j(k, l) {\n var m = k.getAttribute(g);\n if (!m) {\n m = ++i;\n k.setAttribute(g, m);\n }\n else if (h[m]) {\n JSBNG__clearTimeout(h[m]);\n h[m] = null;\n }\n \n ;\n ;\n h[m] = JSBNG__setTimeout(function() {\n h[m] = null;\n if (!k.offsetHeight) {\n var n = k, o = JSBNG__document.getElementsByTagName(\"body\")[0];\n while (((n && ((n !== o))))) {\n if (((((((((((n.style.display === \"none\")) || ((n.style.height === \"0px\")))) || ((n.style.height === 0)))) || ((n.style.height === \"0\")))) || ((n.childNodes.length === 0))))) {\n return;\n }\n ;\n ;\n n = n.parentNode;\n };\n ;\n if (((n === o))) {\n ((l && l(k)));\n }\n ;\n ;\n }\n ;\n ;\n }, 3000);\n };\n;\n f.assertUnblocked = j;\n});\n__d(\"EagleEye\", [\"Arbiter\",\"Env\",\"OnloadEvent\",\"isInIframe\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Env\"), i = b(\"OnloadEvent\"), j = b(\"isInIframe\"), k = ((h.eagleEyeConfig || {\n })), l = \"_e_\", m = ((window.JSBNG__name || \"\")).toString();\n if (((((m.length == 7)) && ((m.substr(0, 3) == l))))) {\n m = m.substr(3);\n }\n else {\n m = k.seed;\n if (!j()) {\n window.JSBNG__name = ((l + m));\n }\n ;\n ;\n }\n;\n;\n var n = ((((((window.JSBNG__location.protocol == \"https:\")) && JSBNG__document.cookie.match(/\\bcsm=1/))) ? \"; secure\" : \"\")), o = ((((l + m)) + \"_\")), p = new JSBNG__Date(((JSBNG__Date.now() + 604800000))).toGMTString(), q = window.JSBNG__location.hostname.replace(/^.*(facebook\\..*)$/i, \"$1\"), r = ((((((((\"; expires=\" + p)) + \";path=/; domain=\")) + q)) + n)), s = 0, t, u = ((k.JSBNG__sessionStorage && a.JSBNG__sessionStorage)), v = JSBNG__document.cookie.length, w = false, x = JSBNG__Date.now();\n function y(ca) {\n return ((((((((o + (s++))) + \"=\")) + encodeURIComponent(ca))) + r));\n };\n;\n function z() {\n var ca = [], da = false, ea = 0, fa = 0;\n this.isEmpty = function() {\n return !ca.length;\n };\n this.enqueue = function(ga, ha) {\n if (ha) {\n ca.unshift(ga);\n }\n else ca.push(ga);\n ;\n ;\n };\n this.dequeue = function() {\n ca.shift();\n };\n this.peek = function() {\n return ca[0];\n };\n this.clear = function(ga) {\n v = Math.min(v, JSBNG__document.cookie.length);\n if (((!w && ((((new JSBNG__Date() - x)) > 60000))))) {\n w = true;\n }\n ;\n ;\n var ha = ((!ga && ((JSBNG__document.cookie.search(l) >= 0)))), ia = !!h.cookie_header_limit, ja = ((h.cookie_count_limit || 19)), ka = ((h.cookie_header_limit || 3950)), la = ((ja - 5)), ma = ((ka - 1000));\n while (!this.isEmpty()) {\n var na = y(this.peek());\n if (((ia && ((((na.length > ka)) || ((w && ((((na.length + v)) > ka))))))))) {\n this.dequeue();\n continue;\n }\n ;\n ;\n if (((((ha || ia)) && ((((((JSBNG__document.cookie.length + na.length)) > ka)) || ((JSBNG__document.cookie.split(\";\").length > ja))))))) {\n break;\n }\n ;\n ;\n JSBNG__document.cookie = na;\n ha = true;\n this.dequeue();\n };\n ;\n var oa = JSBNG__Date.now();\n if (((ga || ((((((((!da && ha)) && ((((fa > 0)) && ((((Math.min(((10 * Math.pow(2, ((fa - 1))))), 60000) + ea)) < oa)))))) && g.query(i.ONLOAD))) && ((((!this.isEmpty() || ((JSBNG__document.cookie.length > ma)))) || ((JSBNG__document.cookie.split(\";\").length > la))))))))) {\n var pa = new JSBNG__Image(), qa = this, ra = ((h.tracking_domain || \"\"));\n da = true;\n pa.JSBNG__onload = function ua() {\n da = false;\n fa = 0;\n qa.clear();\n };\n pa.JSBNG__onerror = pa.JSBNG__onabort = function ua() {\n da = false;\n ea = JSBNG__Date.now();\n fa++;\n };\n var sa = ((h.fb_isb ? ((\"&fb_isb=\" + h.fb_isb)) : \"\")), ta = ((\"&__user=\" + h.user));\n pa.src = ((((((((((((((ra + \"/ajax/nectar.php?asyncSignal=\")) + ((Math.floor(((Math.JSBNG__random() * 10000))) + 1)))) + sa)) + ta)) + \"&\")) + ((!ga ? \"\" : \"s=\")))) + oa));\n }\n ;\n ;\n };\n };\n;\n t = new z();\n if (u) {\n var aa = function() {\n var ca = 0, da = ca;\n function ea() {\n var ha = JSBNG__sessionStorage.getItem(\"_e_ids\");\n if (ha) {\n var ia = ((ha + \"\")).split(\";\");\n if (((ia.length == 2))) {\n ca = parseInt(ia[0], 10);\n da = parseInt(ia[1], 10);\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n function fa() {\n var ha = ((((ca + \";\")) + da));\n JSBNG__sessionStorage.setItem(\"_e_ids\", ha);\n };\n ;\n function ga(ha) {\n return ((\"_e_\" + ((((ha !== undefined)) ? ha : ca++))));\n };\n ;\n this.isEmpty = function() {\n return ((da === ca));\n };\n this.enqueue = function(ha, ia) {\n var ja = ((ia ? ga(--da) : ga()));\n JSBNG__sessionStorage.setItem(ja, ha);\n fa();\n };\n this.dequeue = function() {\n this.isEmpty();\n JSBNG__sessionStorage.removeItem(ga(da));\n da++;\n fa();\n };\n this.peek = function() {\n var ha = JSBNG__sessionStorage.getItem(ga(da));\n return ((ha ? ((ha + \"\")) : ha));\n };\n this.clear = t.clear;\n ea();\n };\n t = new aa();\n }\n;\n;\n var ba = {\n log: function(ca, da, ea) {\n if (h.no_cookies) {\n return;\n }\n ;\n ;\n var fa = [m,JSBNG__Date.now(),ca,].concat(da);\n fa.push(fa.length);\n function ga() {\n var ha = JSON.stringify(fa);\n try {\n t.enqueue(ha, !!ea);\n t.clear(!!ea);\n } catch (ia) {\n if (((u && ((ia.code === 1000))))) {\n t = new z();\n u = false;\n ga();\n }\n ;\n ;\n };\n ;\n };\n ;\n ga();\n },\n getSessionID: function() {\n return m;\n }\n };\n e.exports = ba;\n a.EagleEye = ba;\n}, 3);\n__d(\"AdblockDetectorLogging\", [\"AdblockDetector\",\"EagleEye\",], function(a, b, c, d, e, f) {\n var g = b(\"AdblockDetector\"), h = b(\"EagleEye\");\n function i(j) {\n g.assertUnblocked(j, h.log.bind(h, \"ads\", {\n JSBNG__event: \"ads_blocked\"\n }));\n };\n;\n f.assertUnblocked = i;\n});\n__d(\"EgoAdsObjectSet\", [\"copyProperties\",\"csx\",\"DOM\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"csx\"), i = b(\"DOM\");\n function j() {\n this._allEgoUnits = [];\n this._egoUnits = [];\n };\n;\n g(j.prototype, {\n init: function(l) {\n this._allEgoUnits = l;\n this._egoUnits = [];\n this._allEgoUnits.forEach(function(m) {\n var n = k(m);\n if (((!n || !n.holdout))) {\n this._egoUnits.push(m);\n }\n ;\n ;\n }, this);\n },\n getCount: function() {\n return this._egoUnits.length;\n },\n forEach: function(l, m) {\n this._egoUnits.forEach(l, m);\n },\n getUnit: function(l) {\n return this._egoUnits[l];\n },\n getHoldoutAdIDsForSpace: function(l, m) {\n if (((!l || !m))) {\n return [];\n }\n ;\n ;\n var n = [];\n for (var o = 0; ((((l > 0)) && ((o < this._allEgoUnits.length)))); o++) {\n var p = this._allEgoUnits[o], q = m(p), r = k(p);\n if (((((((l >= q)) && r)) && r.holdout))) {\n n.push(r.adid);\n }\n ;\n ;\n l -= q;\n };\n ;\n return n;\n },\n getHoldoutAdIDsForNumAds: function(l) {\n l = Math.min(l, this._allEgoUnits.length);\n var m = [];\n for (var n = 0; ((n < l)); n++) {\n var o = this._allEgoUnits[n], p = k(o);\n if (((p && p.holdout))) {\n m.push(p.adid);\n }\n ;\n ;\n };\n ;\n return m;\n }\n });\n function k(l) {\n var m = i.scry(l, \"div._4u8\")[0], n = ((m && m.getAttribute(\"data-ad\")));\n return ((((n && JSON.parse(n))) || undefined));\n };\n;\n e.exports = j;\n});\n__d(\"EmuController\", [\"AsyncRequest\",\"DataStore\",\"URI\",\"copyProperties\",\"emptyFunction\",\"ge\",\"goURI\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"DataStore\"), i = b(\"URI\"), j = b(\"copyProperties\"), k = b(\"emptyFunction\"), l = b(\"ge\"), m = b(\"goURI\");\n function n(o, p) {\n var q = l(o);\n if (!q) {\n return null;\n }\n ;\n ;\n this.impression = p;\n this.containerId = o;\n h.set(q, \"emuController\", this);\n return this;\n };\n;\n j(n, {\n fromContainer: function(o) {\n var p = l(o);\n if (!p) {\n return null;\n }\n ;\n ;\n return h.get(p, \"emuController\");\n },\n getEventClass: function(o) {\n return ((\"emuEvent\" + String(o).trim()));\n }\n });\n j(n.prototype, {\n EVENT_HANDLER_PATH: \"/ajax/emu/end.php\",\n CLICK: 1,\n FAN: \"fad_fan\",\n JSBNG__event: function(o, p, q, r) {\n var s = {\n eid: this.impression,\n f: 0,\n ui: this.containerId,\n en: o,\n a: 1\n };\n if (p) {\n s.ed = JSON.stringify(p);\n }\n ;\n ;\n if (!r) {\n r = k;\n }\n ;\n ;\n var t = new g().setURI(this.EVENT_HANDLER_PATH).setData(s).setErrorHandler(r);\n if (q) {\n t.setHandler(q);\n }\n ;\n ;\n t.send();\n },\n redirect: function() {\n var o = {\n eid: this.impression,\n f: 0,\n ui: this.containerId,\n en: this.CLICK,\n a: 0,\n sig: ((Math.floor(((Math.JSBNG__random() * 65535))) + 65536))\n }, p = new i(this.EVENT_HANDLER_PATH);\n p.setQueryData(o);\n m(p);\n }\n });\n e.exports = n;\n});\n__d(\"legacy:ad-units-base-js\", [\"EmuController\",], function(a, b, c, d) {\n a.EmuController = b(\"EmuController\");\n}, 3);\n__d(\"ChatConfig\", [\"ChatConfigInitialData\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ChatConfigInitialData\"), h = b(\"copyProperties\"), i = {\n }, j = {\n get: function(k, l) {\n return ((((k in i)) ? i[k] : l));\n },\n set: function(k) {\n if (((arguments.length > 1))) {\n var l = {\n };\n l[k] = arguments[1];\n k = l;\n }\n ;\n ;\n h(i, k);\n },\n getDebugInfo: function() {\n return i;\n }\n };\n j.set(g);\n e.exports = j;\n});\n__d(\"JSBNG__cancelAnimationFrame\", [], function(a, b, c, d, e, f) {\n var g = ((((((((((a.JSBNG__cancelAnimationFrame || a.JSBNG__webkitCancelAnimationFrame)) || a.JSBNG__mozCancelAnimationFrame)) || a.oCancelAnimationFrame)) || a.msCancelAnimationFrame)) || a.JSBNG__clearTimeout));\n e.exports = g;\n});\n__d(\"XUISpinner.react\", [\"BrowserSupport\",\"ReactProps\",\"React\",\"JSBNG__cancelAnimationFrame\",\"cx\",\"joinClasses\",\"JSBNG__requestAnimationFrame\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"BrowserSupport\"), h = b(\"ReactProps\"), i = b(\"React\"), j = b(\"JSBNG__cancelAnimationFrame\"), k = b(\"cx\"), l = b(\"joinClasses\"), m = b(\"JSBNG__requestAnimationFrame\"), n = b(\"tx\"), o = g.hasCSSAnimations(), p = {\n SMALL: 16,\n LARGE: 32\n }, q = {\n SMALL: 2,\n LARGE: 4\n }, r = 5, s = 8, t = ((r * s)), u = 1200, v = ((u / t)), w = i.createClass({\n displayName: \"XUISpinner\",\n props: {\n size: h.oneOf([\"small\",\"large\",]),\n background: h.oneOf([\"light\",\"dark\",])\n },\n getDefaultProps: function() {\n return {\n size: \"small\",\n background: \"light\"\n };\n },\n getInitialState: function() {\n if (!o) {\n return {\n frame: 0,\n timer: JSBNG__Date.now()\n };\n }\n ;\n ;\n },\n componentDidMount: function() {\n if (!o) {\n this._step();\n }\n ;\n ;\n },\n componentWillUnmount: function() {\n ((this._requestID && j(this._requestID)));\n },\n _step: function() {\n this._requestID = m(this._step);\n var x = JSBNG__Date.now();\n if (((((x - v)) > this.state.timer))) {\n this.setState({\n frame: ((((this.state.frame + 1)) % t)),\n timer: x\n });\n }\n ;\n ;\n },\n _renderWithCSSAnimation: function(x) {\n return this.transferPropsTo(i.DOM.span({\n className: x\n }, \"Loading...\"));\n },\n _renderWithJavaScriptAnimation: function(x) {\n var y = Math.floor(((this.state.frame / s))), z = ((this.state.frame % s)), aa = ((((this.props.size == \"small\")) ? p.SMALL : p.LARGE)), ba = ((((this.props.size == \"small\")) ? q.SMALL : q.LARGE)), ca = {\n backgroundPosition: ((((((((((\"-\" + ((((z * aa)) + ba)))) + \"px \")) + \"-\")) + ((((y * aa)) + ba)))) + \"px\"))\n }, da = l((\"_55yr\"), x);\n return this.transferPropsTo(i.DOM.span({\n className: da,\n style: ca\n }, \"Loading...\"));\n },\n render: function() {\n var x = (((((((((\"_55ym\") + ((((this.props.size == \"small\")) ? ((\" \" + \"_55yn\")) : \"\")))) + ((((this.props.size == \"large\")) ? ((\" \" + \"_55yq\")) : \"\")))) + ((((this.props.background == \"light\")) ? ((\" \" + \"_55yo\")) : \"\")))) + ((((this.props.background == \"dark\")) ? ((\" \" + \"_55yp\")) : \"\"))));\n return ((o ? this._renderWithCSSAnimation(x) : this._renderWithJavaScriptAnimation(x)));\n }\n });\n e.exports = w;\n});\n__d(\"ViewportBounds\", [\"Style\",\"Vector\",\"emptyFunction\",\"ge\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n var g = b(\"Style\"), h = b(\"Vector\"), i = b(\"emptyFunction\"), j = b(\"ge\"), k = b(\"removeFromArray\"), l = {\n JSBNG__top: [],\n right: [],\n bottom: [],\n left: []\n };\n function m(q) {\n return function() {\n var r = 0;\n l[q].forEach(function(s) {\n r = Math.max(r, s.getSize());\n });\n return r;\n };\n };\n;\n function n(q) {\n return function(r) {\n return new o(q, r);\n };\n };\n;\n function o(q, r) {\n this.getSide = i.thatReturns(q);\n this.getSize = function() {\n return ((((typeof r === \"function\")) ? r() : r));\n };\n l[q].push(this);\n };\n;\n o.prototype.remove = function() {\n k(l[this.getSide()], this);\n };\n var p = {\n getTop: m(\"JSBNG__top\"),\n getRight: m(\"right\"),\n getBottom: m(\"bottom\"),\n getLeft: m(\"left\"),\n getElementPosition: function(q) {\n var r = h.getElementPosition(q);\n r.y -= p.getTop();\n return r;\n },\n addTop: n(\"JSBNG__top\"),\n addRight: n(\"right\"),\n addBottom: n(\"bottom\"),\n addLeft: n(\"left\")\n };\n p.addTop(function() {\n var q = j(\"blueBar\");\n if (((q && g.isFixed(q)))) {\n return j(\"blueBarHolder\").offsetHeight;\n }\n ;\n ;\n return 0;\n });\n e.exports = p;\n});\n__d(\"isAsyncScrollQuery\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n var g = b(\"UserAgent\"), h = null;\n function i() {\n if (((h === null))) {\n h = ((((((g.osx() >= 10.8)) && ((g.webkit() >= 536.25)))) && !g.chrome()));\n }\n ;\n ;\n return h;\n };\n;\n e.exports = i;\n});\n__d(\"ScrollAwareDOM\", [\"ArbiterMixin\",\"CSS\",\"DOM\",\"DOMDimensions\",\"DOMPosition\",\"DOMQuery\",\"HTML\",\"Vector\",\"ViewportBounds\",\"copyProperties\",\"isAsyncScrollQuery\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"DOMDimensions\"), k = b(\"DOMPosition\"), l = b(\"DOMQuery\"), m = b(\"HTML\"), n = b(\"Vector\"), o = b(\"ViewportBounds\"), p = b(\"copyProperties\"), q = b(\"isAsyncScrollQuery\");\n function r(w, x) {\n return function() {\n v.monitor(arguments[w], x.curry.apply(x, arguments));\n };\n };\n;\n function s(w) {\n if (!((w instanceof Array))) {\n w = [w,];\n }\n ;\n ;\n for (var x = 0; ((x < w.length)); x++) {\n var y = m.replaceJSONWrapper(w[x]);\n if (((y instanceof m))) {\n return y.getRootNode();\n }\n else if (i.isNode(y)) {\n return y;\n }\n \n ;\n ;\n };\n ;\n return null;\n };\n;\n function t(w) {\n return ((k.getElementPosition(w).y > o.getTop()));\n };\n;\n function u(w) {\n var x = ((k.getElementPosition(w).y + j.getElementDimensions(w).height)), y = ((j.getViewportDimensions().height - o.getBottom()));\n return ((x >= y));\n };\n;\n var v = p({\n monitor: function(w, x) {\n if (q()) {\n return x();\n }\n ;\n ;\n var y = s(w);\n if (y) {\n var z = !!y.offsetParent;\n if (((z && ((t(y) || u(y)))))) {\n return x();\n }\n ;\n ;\n var aa = n.getDocumentDimensions(), ba = x();\n if (((z || ((y.offsetParent && !t(y)))))) {\n var ca = n.getDocumentDimensions().sub(aa), da = {\n delta: ca,\n target: y\n };\n if (((v.inform(\"JSBNG__scroll\", da) !== false))) {\n ca.scrollElementBy(l.getDocumentScrollElement());\n }\n ;\n ;\n }\n ;\n ;\n return ba;\n }\n else return x()\n ;\n },\n replace: function(w, x) {\n var y = s(x);\n if (((!y || h.hasClass(y, \"hidden_elem\")))) {\n y = w;\n }\n ;\n ;\n return v.monitor(y, function() {\n i.replace(w, x);\n });\n },\n prependContent: r(1, i.prependContent),\n insertAfter: r(1, i.insertAfter),\n insertBefore: r(1, i.insertBefore),\n setContent: r(0, i.setContent),\n appendContent: r(1, i.appendContent),\n remove: r(0, i.remove),\n empty: r(0, i.empty)\n }, g);\n e.exports = v;\n});\n__d(\"legacy:ScrollAwareDOM\", [\"ScrollAwareDOM\",], function(a, b, c, d) {\n a.ScrollAwareDOM = b(\"ScrollAwareDOM\");\n}, 3);\n__d(\"Base64\", [], function(a, b, c, d, e, f) {\n var g = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n function h(l) {\n l = ((((((l.charCodeAt(0) << 16)) | ((l.charCodeAt(1) << 8)))) | l.charCodeAt(2)));\n return String.fromCharCode(g.charCodeAt(((l >>> 18))), g.charCodeAt(((((l >>> 12)) & 63))), g.charCodeAt(((((l >>> 6)) & 63))), g.charCodeAt(((l & 63))));\n };\n;\n var i = ((((\"\\u003E___?456789:;\\u003C=_______\" + \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\u0008\\u0009\\u000a\\u000b\\u000c\\u000d\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\")) + \"______\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123\"));\n function j(l) {\n l = ((((((((i.charCodeAt(((l.charCodeAt(0) - 43))) << 18)) | ((i.charCodeAt(((l.charCodeAt(1) - 43))) << 12)))) | ((i.charCodeAt(((l.charCodeAt(2) - 43))) << 6)))) | i.charCodeAt(((l.charCodeAt(3) - 43)))));\n return String.fromCharCode(((l >>> 16)), ((((l >>> 8)) & 255)), ((l & 255)));\n };\n;\n var k = {\n encode: function(l) {\n l = unescape(encodeURI(l));\n var m = ((((l.length + 2)) % 3));\n l = ((l + \"\\u0000\\u0000\".slice(m))).replace(/[\\s\\S]{3}/g, h);\n return ((l.slice(0, ((((l.length + m)) - 2))) + \"==\".slice(m)));\n },\n decode: function(l) {\n l = l.replace(/[^A-Za-z0-9+\\/]/g, \"\");\n var m = ((((l.length + 3)) & 3));\n l = ((l + \"AAA\".slice(m))).replace(/..../g, j);\n l = l.slice(0, ((((l.length + m)) - 3)));\n try {\n return decodeURIComponent(escape(l));\n } catch (n) {\n throw new Error(\"Not valid UTF-8\");\n };\n ;\n },\n encodeObject: function(l) {\n return k.encode(JSON.stringify(l));\n },\n decodeObject: function(l) {\n return JSON.parse(k.decode(l));\n },\n encodeNums: function(l) {\n return String.fromCharCode.apply(String, l.map(function(m) {\n return g.charCodeAt(((((((m | -((m > 63)))) & -((m > 0)))) & 63)));\n }));\n }\n };\n e.exports = k;\n});\n__d(\"legacy:base64\", [\"Base64\",], function(a, b, c, d) {\n a.Base64 = b(\"Base64\");\n}, 3);\n__d(\"legacy:css\", [\"CSS\",], function(a, b, c, d) {\n a.CSS = b(\"CSS\");\n}, 3);\n__d(\"legacy:dom\", [\"DOM\",], function(a, b, c, d) {\n a.DOM = b(\"DOM\");\n}, 3);\n__d(\"FBDesktopDetect\", [\"UserAgent\",], function(a, b, c, d, e, f) {\n var g = b(\"UserAgent\"), h = \"facebook.desktopplugin\", i = {\n mimeType: \"application/x-facebook-desktop-1\",\n isPluginInstalled: function() {\n if (g.osx()) {\n return false;\n }\n ;\n ;\n var j = null;\n if (a.ActiveXObject) {\n try {\n j = new a.ActiveXObject(h);\n if (j) {\n return true;\n }\n ;\n ;\n } catch (k) {\n \n };\n ;\n }\n else if (((a.JSBNG__navigator && a.JSBNG__navigator.plugins))) {\n a.JSBNG__navigator.plugins.refresh(false);\n for (var l = 0, m = a.JSBNG__navigator.plugins.length; ((l < m)); l++) {\n j = a.JSBNG__navigator.plugins[l];\n if (((j.length && ((j[0].type === this.mimeType))))) {\n return true;\n }\n ;\n ;\n };\n ;\n }\n \n ;\n ;\n return false;\n }\n };\n e.exports = i;\n});\n__d(\"NavigationMessage\", [], function(a, b, c, d, e, f) {\n var g = {\n NAVIGATION_BEGIN: \"NavigationMessage/navigationBegin\",\n NAVIGATION_SELECT: \"NavigationMessage/navigationSelect\",\n NAVIGATION_FIRST_RESPONSE: \"NavigationMessage/navigationFirstResponse\",\n NAVIGATION_COMPLETED: \"NavigationMessage/navigationCompleted\",\n NAVIGATION_FAILED: \"NavigationMessage/navigationFailed\",\n NAVIGATION_COUNT_UPDATE: \"NavigationMessage/navigationCount\",\n NAVIGATION_FAVORITE_UPDATE: \"NavigationMessage/navigationFavoriteUpdate\",\n NAVIGATION_ITEM_REMOVED: \"NavigationMessage/navigationItemRemoved\",\n NAVIGATION_ITEM_HIDDEN: \"NavigationMessage/navigationItemHidden\",\n INTERNAL_LOADING_BEGIN: \"NavigationMessage/internalLoadingBegin\",\n INTERNAL_LOADING_COMPLETED: \"NavigationMessage/internalLoadingCompleted\"\n };\n e.exports = g;\n});\n__d(\"SimpleDrag\", [\"JSBNG__Event\",\"ArbiterMixin\",\"UserAgent\",\"Vector\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"UserAgent\"), j = b(\"Vector\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\");\n function m(n) {\n this.minDragDistance = 0;\n g.listen(n, \"mousedown\", this._start.bind(this));\n };\n;\n k(m.prototype, h, {\n setMinDragDistance: function(n) {\n this.minDragDistance = n;\n },\n _start: function(JSBNG__event) {\n var n = false, o = true, p = null;\n if (this.inform(\"mousedown\", JSBNG__event)) {\n o = false;\n }\n ;\n ;\n if (this.minDragDistance) {\n p = j.getEventPosition(JSBNG__event);\n }\n else {\n n = true;\n var q = this.inform(\"start\", JSBNG__event);\n if (((q === true))) {\n o = false;\n }\n else if (((q === false))) {\n n = false;\n return;\n }\n \n ;\n ;\n }\n ;\n ;\n var r = ((((i.ie() < 9)) ? JSBNG__document.documentElement : window)), s = g.listen(r, {\n selectstart: ((o ? g.prevent : l)),\n mousemove: function(JSBNG__event) {\n if (!n) {\n var t = j.getEventPosition(JSBNG__event);\n if (((p.distanceTo(t) < this.minDragDistance))) {\n return;\n }\n ;\n ;\n n = true;\n if (((this.inform(\"start\", JSBNG__event) === false))) {\n n = false;\n return;\n }\n ;\n ;\n }\n ;\n ;\n this.inform(\"update\", JSBNG__event);\n }.bind(this),\n mouseup: function(JSBNG__event) {\n {\n var fin115keys = ((window.top.JSBNG_Replay.forInKeys)((s))), fin115i = (0);\n var t;\n for (; (fin115i < fin115keys.length); (fin115i++)) {\n ((t) = (fin115keys[fin115i]));\n {\n s[t].remove();\n ;\n };\n };\n };\n ;\n if (n) {\n this.inform(\"end\", JSBNG__event);\n }\n else this.inform(\"click\", JSBNG__event);\n ;\n ;\n }.bind(this)\n });\n ((o && JSBNG__event.prevent()));\n }\n });\n e.exports = m;\n});\n__d(\"legacy:async-signal\", [\"AsyncSignal\",], function(a, b, c, d) {\n a.AsyncSignal = b(\"AsyncSignal\");\n}, 3);\n__d(\"FlipDirectionOnKeypress\", [\"JSBNG__Event\",\"DOM\",\"Input\",\"Style\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"DOM\"), i = b(\"Input\"), j = b(\"Style\");\n function k(JSBNG__event) {\n var l = JSBNG__event.getTarget(), m = ((h.isNodeOfType(l, \"input\") && ((l.type == \"text\")))), n = h.isNodeOfType(l, \"textarea\");\n if (((!((m || n)) || l.getAttribute(\"data-prevent-auto-flip\")))) {\n return;\n }\n ;\n ;\n var o = i.getValue(l), p = ((l.style && l.style.direction));\n if (!p) {\n var q = 0, r = true;\n for (var s = 0; ((s < o.length)); s++) {\n var t = o.charCodeAt(s);\n if (((t >= 48))) {\n if (r) {\n r = false;\n q++;\n }\n ;\n ;\n if (((((t >= 1470)) && ((t <= 1920))))) {\n j.set(l, \"direction\", \"rtl\");\n return;\n }\n ;\n ;\n if (((q == 5))) {\n j.set(l, \"direction\", \"ltr\");\n return;\n }\n ;\n ;\n }\n else r = true;\n ;\n ;\n };\n ;\n }\n else if (((o.length === 0))) {\n j.set(l, \"direction\", \"\");\n }\n \n ;\n ;\n };\n;\n g.listen(JSBNG__document.documentElement, {\n keyup: k,\n input: k\n });\n});\n__d(\"PlaceholderOnsubmitFormListener\", [\"JSBNG__Event\",\"Input\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Input\");\n g.listen(JSBNG__document.documentElement, \"submit\", function(i) {\n var j = i.getTarget().getElementsByTagName(\"*\");\n for (var k = 0; ((k < j.length)); k++) {\n if (((j[k].getAttribute(\"placeholder\") && h.isEmpty(j[k])))) {\n h.setValue(j[k], \"\");\n }\n ;\n ;\n };\n ;\n });\n});\n__d(\"ARIA\", [\"DOM\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"emptyFunction\"), i = b(\"ge\"), j, k, l = function() {\n j = i(\"ariaAssertiveAlert\");\n if (!j) {\n j = g.create(\"div\", {\n id: \"ariaAssertiveAlert\",\n className: \"accessible_elem\",\n \"aria-live\": \"assertive\"\n });\n g.appendContent(JSBNG__document.body, j);\n }\n ;\n ;\n k = i(\"ariaPoliteAlert\");\n if (!k) {\n k = j.cloneNode(false);\n k.setAttribute(\"id\", \"ariaPoliteAlert\");\n k.setAttribute(\"aria-live\", \"polite\");\n g.appendContent(JSBNG__document.body, k);\n }\n ;\n ;\n l = h;\n };\n function m(o, p) {\n l();\n var q = ((p ? j : k));\n g.setContent(q, o);\n };\n;\n var n = {\n owns: function(o, p) {\n o.setAttribute(\"aria-owns\", g.getID(p));\n },\n setPopup: function(o, p) {\n var q = g.getID(p);\n o.setAttribute(\"aria-owns\", q);\n o.setAttribute(\"aria-haspopup\", \"true\");\n if (((o.tabIndex == -1))) {\n o.tabIndex = 0;\n }\n ;\n ;\n },\n announce: function(o) {\n m(o, true);\n },\n notify: function(o) {\n m(o);\n }\n };\n e.exports = n;\n});\n__d(\"ScriptPathState\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h, i, j, k, l = 100, m = {\n setIsUIPageletRequest: function(n) {\n j = n;\n },\n setUserURISampleRate: function(n) {\n k = n;\n },\n reset: function() {\n h = null;\n i = false;\n j = false;\n },\n _shouldUpdateScriptPath: function() {\n return ((i && !j));\n },\n _shouldSendURI: function() {\n return ((Math.JSBNG__random() < k));\n },\n getParams: function() {\n var n = {\n };\n if (m._shouldUpdateScriptPath()) {\n if (((m._shouldSendURI() && ((h !== null))))) {\n n.user_uri = h.substring(0, l);\n }\n ;\n ;\n }\n else n.no_script_path = 1;\n ;\n ;\n return n;\n }\n };\n g.subscribe(\"pre_page_transition\", function(n, o) {\n i = true;\n h = o.to.getUnqualifiedURI().toString();\n });\n e.exports = a.ScriptPathState = m;\n});\n__d(\"goOrReplace\", [\"URI\",\"UserAgent\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = b(\"UserAgent\");\n function i(j, k, l) {\n var m = new g(k), n = a.Quickling;\n if (((((((((((j.pathname == \"/\")) && ((m.getPath() != \"/\")))) && n)) && n.isActive())) && n.isPageActive(m)))) {\n var o = ((j.search ? {\n } : {\n q: \"\"\n }));\n m = new g().setPath(\"/\").setQueryData(o).setFragment(m.getUnqualifiedURI().toString());\n k = m.toString();\n }\n ;\n ;\n if (((l && !((h.ie() < 8))))) {\n j.replace(k);\n }\n else if (((j.href == k))) {\n j.reload();\n }\n else j.href = k;\n \n ;\n ;\n };\n;\n e.exports = i;\n});\n__d(\"AjaxPipeRequest\", [\"Arbiter\",\"AsyncRequest\",\"BigPipe\",\"CSS\",\"DOM\",\"Env\",\"PageletSet\",\"ScriptPathState\",\"URI\",\"copyProperties\",\"goOrReplace\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"BigPipe\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Env\"), m = b(\"PageletSet\"), n = b(\"ScriptPathState\"), o = b(\"URI\"), p = b(\"copyProperties\"), q = b(\"goOrReplace\"), r = b(\"ge\"), s;\n function t(w, x) {\n var y = r(w);\n if (!y) {\n return;\n }\n ;\n ;\n if (!x) {\n y.style.minHeight = \"600px\";\n }\n ;\n ;\n var z = m.getPageletIDs();\n for (var aa = 0; ((aa < z.length)); aa++) {\n var ba = z[aa];\n if (k.contains(y, ba)) {\n m.removePagelet(ba);\n }\n ;\n ;\n };\n ;\n k.empty(y);\n };\n;\n function u(w, x) {\n var y = r(w);\n if (((y && !x))) {\n y.style.minHeight = \"100px\";\n }\n ;\n ;\n };\n;\n function v(w, x) {\n this._uri = w;\n this._query_data = x;\n this._request = new h();\n this._canvas_id = null;\n this._allow_cross_page_transition = true;\n };\n;\n p(v.prototype, {\n setCanvasId: function(w) {\n this._canvas_id = w;\n return this;\n },\n setURI: function(w) {\n this._uri = w;\n return this;\n },\n setData: function(w) {\n this._query_data = w;\n return this;\n },\n getData: function(w) {\n return this._query_data;\n },\n setAllowCrossPageTransition: function(w) {\n this._allow_cross_page_transition = w;\n return this;\n },\n setAppend: function(w) {\n this._append = w;\n return this;\n },\n send: function() {\n var w = {\n ajaxpipe: 1,\n ajaxpipe_token: l.ajaxpipe_token\n };\n p(w, n.getParams());\n n.reset();\n this._request.setOption(\"useIframeTransport\", true).setURI(this._uri).setData(p(w, this._query_data)).setPreBootloadHandler(this._preBootloadHandler.bind(this)).setInitialHandler(this._onInitialResponse.bind(this)).setHandler(this._onResponse.bind(this)).setMethod(\"GET\").setReadOnly(true).setAllowCrossPageTransition(this._allow_cross_page_transition);\n if (this._automatic) {\n this._relevantRequest = s;\n }\n else s = this._request;\n ;\n ;\n this._request.send();\n return this;\n },\n _preBootloadFirstResponse: function(w) {\n return false;\n },\n _fireDomContentCallback: function() {\n this._arbiter.inform(\"ajaxpipe/domcontent_callback\", true, g.BEHAVIOR_STATE);\n },\n _fireOnloadCallback: function() {\n this._arbiter.inform(\"ajaxpipe/onload_callback\", true, g.BEHAVIOR_STATE);\n },\n _isRelevant: function(w) {\n return ((((((this._request == s)) || ((this._automatic && ((this._relevantRequest == s)))))) || this._jsNonBlock));\n },\n _preBootloadHandler: function(w) {\n var x = w.getPayload();\n if (((((!x || x.redirect)) || !this._isRelevant(w)))) {\n return false;\n }\n ;\n ;\n var y = false;\n if (w.is_first) {\n ((((!this._append && !this._displayCallback)) && t(this._canvas_id, this._constHeight)));\n this._arbiter = new g();\n y = this._preBootloadFirstResponse(w);\n this.pipe = new i({\n arbiter: this._arbiter,\n rootNodeID: this._canvas_id,\n lid: this._request.lid,\n isAjax: true,\n domContentCallback: this._fireDomContentCallback.bind(this),\n onloadCallback: this._fireOnloadCallback.bind(this),\n domContentEvt: \"ajaxpipe/domcontent_callback\",\n onloadEvt: \"ajaxpipe/onload_callback\",\n jsNonBlock: this._jsNonBlock,\n automatic: this._automatic,\n displayCallback: this._displayCallback\n });\n }\n ;\n ;\n return y;\n },\n _redirect: function(w) {\n if (w.redirect) {\n if (((w.force || !this.isPageActive(w.redirect)))) {\n var x = [\"ajaxpipe\",\"ajaxpipe_token\",].concat(this.getSanitizedParameters());\n q(window.JSBNG__location, o(w.redirect).removeQueryData(x), true);\n }\n else {\n var y = a.PageTransitions;\n y.go(w.redirect, true);\n }\n ;\n ;\n return true;\n }\n else return false\n ;\n },\n isPageActive: function(w) {\n return true;\n },\n getSanitizedParameters: function() {\n return [];\n },\n _versionCheck: function(w) {\n return true;\n },\n _onInitialResponse: function(w) {\n var x = w.getPayload();\n if (!this._isRelevant(w)) {\n return false;\n }\n ;\n ;\n if (!x) {\n return true;\n }\n ;\n ;\n if (((this._redirect(x) || !this._versionCheck(x)))) {\n return false;\n }\n ;\n ;\n return true;\n },\n _processFirstResponse: function(w) {\n var x = w.getPayload();\n if (((r(this._canvas_id) && ((x.canvas_class != null))))) {\n j.setClass(this._canvas_id, x.canvas_class);\n }\n ;\n ;\n },\n setFirstResponseCallback: function(w) {\n this._firstResponseCallback = w;\n return this;\n },\n setFirstResponseHandler: function(w) {\n this._processFirstResponse = w;\n return this;\n },\n _onResponse: function(w) {\n var x = w.payload;\n if (!this._isRelevant(w)) {\n return h.suppressOnloadToken;\n }\n ;\n ;\n if (w.is_first) {\n this._processFirstResponse(w);\n ((this._firstResponseCallback && this._firstResponseCallback()));\n x.provides = ((x.provides || []));\n x.provides.push(\"uipage_onload\");\n if (this._append) {\n x.append = this._canvas_id;\n }\n ;\n ;\n }\n ;\n ;\n if (x) {\n if (((((((\"JSBNG__content\" in x.JSBNG__content)) && ((this._canvas_id !== null)))) && ((this._canvas_id != \"JSBNG__content\"))))) {\n x.JSBNG__content[this._canvas_id] = x.JSBNG__content.JSBNG__content;\n delete x.JSBNG__content.JSBNG__content;\n }\n ;\n ;\n this.pipe.onPageletArrive(x);\n }\n ;\n ;\n if (w.is_last) {\n u(this._canvas_id, this._constHeight);\n }\n ;\n ;\n return h.suppressOnloadToken;\n },\n setNectarModuleDataSafe: function(w) {\n this._request.setNectarModuleDataSafe(w);\n return this;\n },\n setFinallyHandler: function(w) {\n this._request.setFinallyHandler(w);\n return this;\n },\n setErrorHandler: function(w) {\n this._request.setErrorHandler(w);\n return this;\n },\n abort: function() {\n this._request.abort();\n if (((s == this._request))) {\n s = null;\n }\n ;\n ;\n this._request = null;\n return this;\n },\n setJSNonBlock: function(w) {\n this._jsNonBlock = w;\n return this;\n },\n setAutomatic: function(w) {\n this._automatic = w;\n return this;\n },\n setDisplayCallback: function(w) {\n this._displayCallback = w;\n return this;\n },\n setConstHeight: function(w) {\n this._constHeight = w;\n return this;\n },\n getAsyncRequest: function() {\n return this._request;\n }\n });\n p(v, {\n getCurrentRequest: function() {\n return s;\n },\n setCurrentRequest: function(w) {\n s = w;\n }\n });\n e.exports = v;\n});\n__d(\"AsyncRequestNectarLogging\", [\"AsyncRequest\",\"Nectar\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"Nectar\"), i = b(\"copyProperties\");\n i(g.prototype, {\n setNectarModuleData: function(j) {\n if (((this.method == \"POST\"))) {\n h.addModuleData(this.data, j);\n }\n ;\n ;\n },\n setNectarImpressionId: function() {\n if (((this.method == \"POST\"))) {\n h.addImpressionID(this.data);\n }\n ;\n ;\n }\n });\n});\n__d(\"CSSClassTransition\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = [];\n function i() {\n \n };\n;\n g(i, {\n go: function(j, k, l, m) {\n var n;\n for (var o = 0; ((o < h.length)); o++) {\n if (((h[o](j, k, l, m) === true))) {\n n = true;\n }\n ;\n ;\n };\n ;\n if (!n) {\n j.className = k;\n }\n ;\n ;\n },\n registerHandler: function(j) {\n h.push(j);\n return {\n remove: function() {\n var k = h.indexOf(j);\n if (((k >= 0))) {\n h.splice(k, 1);\n }\n ;\n ;\n }\n };\n }\n });\n e.exports = i;\n});\n__d(\"DOMScroll\", [\"Animation\",\"Arbiter\",\"DOM\",\"DOMQuery\",\"Vector\",\"ViewportBounds\",\"ge\",\"isAsyncScrollQuery\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"DOM\"), j = b(\"DOMQuery\"), k = b(\"Vector\"), l = b(\"ViewportBounds\"), m = b(\"ge\"), n = b(\"isAsyncScrollQuery\"), o = {\n SCROLL: \"dom-scroll\",\n getScrollState: function() {\n var p = k.getViewportDimensions(), q = k.getDocumentDimensions(), r = ((q.x > p.x)), s = ((q.y > p.y));\n r += 0;\n s += 0;\n return new k(r, s);\n },\n _scrollbarSize: null,\n _initScrollbarSize: function() {\n var p = i.create(\"p\");\n p.style.width = \"100%\";\n p.style.height = \"200px\";\n var q = i.create(\"div\");\n q.style.position = \"absolute\";\n q.style.JSBNG__top = \"0px\";\n q.style.left = \"0px\";\n q.style.visibility = \"hidden\";\n q.style.width = \"200px\";\n q.style.height = \"150px\";\n q.style.overflow = \"hidden\";\n q.appendChild(p);\n JSBNG__document.body.appendChild(q);\n var r = p.offsetWidth;\n q.style.overflow = \"JSBNG__scroll\";\n var s = p.offsetWidth;\n if (((r == s))) {\n s = q.clientWidth;\n }\n ;\n ;\n JSBNG__document.body.removeChild(q);\n o._scrollbarSize = ((r - s));\n },\n getScrollbarSize: function() {\n if (((o._scrollbarSize === null))) {\n o._initScrollbarSize();\n }\n ;\n ;\n return o._scrollbarSize;\n },\n JSBNG__scrollTo: function(p, q, r, s, t) {\n if (((((typeof q == \"undefined\")) || ((q === true))))) {\n q = 750;\n }\n ;\n ;\n if (n()) {\n q = false;\n }\n ;\n ;\n if (!((p instanceof k))) {\n var u = k.getScrollPosition().x, v = k.getElementPosition(m(p)).y;\n p = new k(u, v, \"JSBNG__document\");\n if (!s) {\n p.y -= ((l.getTop() / ((r ? 2 : 1))));\n }\n ;\n ;\n }\n ;\n ;\n if (r) {\n p.y -= ((k.getViewportDimensions().y / 2));\n }\n else if (s) {\n p.y -= k.getViewportDimensions().y;\n p.y += s;\n }\n \n ;\n ;\n p = p.convertTo(\"JSBNG__document\");\n if (q) {\n return new g(JSBNG__document.body).to(\"scrollTop\", p.y).to(\"scrollLeft\", p.x).ease(g.ease.end).duration(q).ondone(t).go();\n }\n else if (window.JSBNG__scrollTo) {\n window.JSBNG__scrollTo(p.x, p.y);\n ((t && t()));\n }\n \n ;\n ;\n h.inform(o.SCROLL);\n },\n ensureVisible: function(p, q, r, s, t) {\n if (((r === undefined))) {\n r = 10;\n }\n ;\n ;\n p = m(p);\n if (q) {\n p = j.JSBNG__find(p, q);\n }\n ;\n ;\n var u = k.getScrollPosition().x, v = k.getScrollPosition().y, w = ((v + k.getViewportDimensions().y)), x = k.getElementPosition(p).y, y = ((x + k.getElementDimensions(p).y));\n x -= l.getTop();\n x -= r;\n y += r;\n if (((x < v))) {\n o.JSBNG__scrollTo(new k(u, x, \"JSBNG__document\"), s, false, false, t);\n }\n else if (((y > w))) {\n if (((((x - ((y - w)))) < v))) {\n o.JSBNG__scrollTo(new k(u, x, \"JSBNG__document\"), s, false, false, t);\n }\n else o.JSBNG__scrollTo(new k(u, y, \"JSBNG__document\"), s, false, true, t);\n ;\n }\n \n ;\n ;\n },\n scrollToTop: function(p) {\n var q = k.getScrollPosition();\n o.JSBNG__scrollTo(new k(q.x, 0, \"JSBNG__document\"), ((p !== false)));\n }\n };\n e.exports = o;\n});\n__d(\"Button\", [\"CSS\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Parent\",\"cx\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"JSBNG__Event\"), k = b(\"Parent\"), l = b(\"cx\"), m = b(\"emptyFunction\"), n = \"uiButtonDisabled\", o = \"uiButtonDepressed\", p = \"_42fr\", q = \"_42fs\", r = \"button:blocker\", s = \"href\", t = \"ajaxify\";\n function u(aa, ba) {\n var ca = h.get(aa, r);\n if (ba) {\n if (ca) {\n ca.remove();\n h.remove(aa, r);\n }\n ;\n ;\n }\n else if (!ca) {\n h.set(aa, r, j.listen(aa, \"click\", m.thatReturnsFalse, j.Priority.URGENT));\n }\n \n ;\n ;\n };\n;\n function v(aa) {\n var ba = ((k.byClass(aa, \"uiButton\") || k.byClass(aa, \"_42ft\")));\n if (!ba) {\n throw new Error(\"invalid use case\");\n }\n ;\n ;\n return ba;\n };\n;\n function w(aa) {\n return i.isNodeOfType(aa, \"a\");\n };\n;\n function x(aa) {\n return i.isNodeOfType(aa, \"button\");\n };\n;\n function y(aa) {\n return g.hasClass(aa, \"_42ft\");\n };\n;\n var z = {\n getInputElement: function(aa) {\n aa = v(aa);\n if (w(aa)) {\n throw new Error(\"invalid use case\");\n }\n ;\n ;\n return ((x(aa) ? aa : i.JSBNG__find(aa, \"input\")));\n },\n isEnabled: function(aa) {\n return !((g.hasClass(v(aa), n) || g.hasClass(v(aa), p)));\n },\n setEnabled: function(aa, ba) {\n aa = v(aa);\n var ca = ((y(aa) ? p : n));\n g.conditionClass(aa, ca, !ba);\n if (w(aa)) {\n var da = aa.getAttribute(\"href\"), ea = aa.getAttribute(\"ajaxify\"), fa = h.get(aa, s, \"#\"), ga = h.get(aa, t);\n if (ba) {\n if (!da) {\n aa.setAttribute(\"href\", fa);\n }\n ;\n ;\n if (((!ea && ga))) {\n aa.setAttribute(\"ajaxify\", ga);\n }\n ;\n ;\n aa.removeAttribute(\"tabIndex\");\n }\n else {\n if (((da && ((da !== fa))))) {\n h.set(aa, s, da);\n }\n ;\n ;\n if (((ea && ((ea !== ga))))) {\n h.set(aa, t, ea);\n }\n ;\n ;\n aa.removeAttribute(\"href\");\n aa.removeAttribute(\"ajaxify\");\n aa.setAttribute(\"tabIndex\", \"-1\");\n }\n ;\n ;\n u(aa, ba);\n }\n else {\n var ha = z.getInputElement(aa);\n ha.disabled = !ba;\n u(ha, ba);\n }\n ;\n ;\n },\n setDepressed: function(aa, ba) {\n aa = v(aa);\n var ca = ((y(aa) ? q : o));\n g.conditionClass(aa, ca, ba);\n },\n isDepressed: function(aa) {\n aa = v(aa);\n var ba = ((y(aa) ? q : o));\n return g.hasClass(aa, ba);\n },\n setLabel: function(aa, ba) {\n aa = v(aa);\n if (y(aa)) {\n var ca = [];\n if (ba) {\n ca.push(ba);\n }\n ;\n ;\n var da = i.scry(aa, \".img\")[0];\n if (da) {\n if (((aa.firstChild == da))) {\n ca.unshift(da);\n }\n else ca.push(da);\n ;\n }\n ;\n ;\n i.setContent(aa, ca);\n }\n else if (w(aa)) {\n var ea = i.JSBNG__find(aa, \"span.uiButtonText\");\n i.setContent(ea, ba);\n }\n else z.getInputElement(aa).value = ba;\n \n ;\n ;\n var fa = ((y(aa) ? \"_42fv\" : \"uiButtonNoText\"));\n g.conditionClass(aa, fa, !ba);\n },\n setIcon: function(aa, ba) {\n if (((ba && !i.isNode(ba)))) {\n return;\n }\n ;\n ;\n aa = v(aa);\n var ca = i.scry(aa, \".img\")[0];\n if (!ba) {\n ((ca && i.remove(ca)));\n return;\n }\n ;\n ;\n g.addClass(ba, \"customimg\");\n if (((ca != ba))) {\n if (ca) {\n i.replace(ca, ba);\n }\n else i.prependContent(aa, ba);\n ;\n }\n ;\n ;\n }\n };\n e.exports = z;\n});\n__d(\"Form\", [\"JSBNG__Event\",\"AsyncRequest\",\"AsyncResponse\",\"CSS\",\"DOM\",\"DOMPosition\",\"DOMQuery\",\"DataStore\",\"Env\",\"Input\",\"Parent\",\"URI\",\"createArrayFrom\",\"trackReferrer\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"AsyncResponse\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"DOMPosition\"), m = b(\"DOMQuery\"), n = b(\"DataStore\"), o = b(\"Env\"), p = b(\"Input\"), q = b(\"Parent\"), r = b(\"URI\"), s = b(\"createArrayFrom\"), t = b(\"trackReferrer\"), u = ((\"JSBNG__FileList\" in window)), v = ((\"JSBNG__FormData\" in window));\n function w(y) {\n var z = {\n };\n r.implodeQuery(y).split(\"&\").forEach(function(aa) {\n if (aa) {\n var ba = /^([^=]*)(?:=(.*))?$/.exec(aa), ca = r.decodeComponent(ba[1]), da = ((ba[2] ? r.decodeComponent(ba[2]) : null));\n z[ca] = da;\n }\n ;\n ;\n });\n return z;\n };\n;\n var x = {\n getInputs: function(y) {\n y = ((y || JSBNG__document));\n return [].concat(s(m.scry(y, \"input\")), s(m.scry(y, \"select\")), s(m.scry(y, \"textarea\")), s(m.scry(y, \"button\")));\n },\n getInputsByName: function(y) {\n var z = {\n };\n x.getInputs(y).forEach(function(aa) {\n var ba = z[aa.JSBNG__name];\n z[aa.JSBNG__name] = ((((typeof ba === \"undefined\")) ? aa : [aa,].concat(ba)));\n });\n return z;\n },\n getSelectValue: function(y) {\n return y.options[y.selectedIndex].value;\n },\n setSelectValue: function(y, z) {\n for (var aa = 0; ((aa < y.options.length)); ++aa) {\n if (((y.options[aa].value == z))) {\n y.selectedIndex = aa;\n break;\n }\n ;\n ;\n };\n ;\n },\n getRadioValue: function(y) {\n for (var z = 0; ((z < y.length)); z++) {\n if (y[z].checked) {\n return y[z].value;\n }\n ;\n ;\n };\n ;\n return null;\n },\n getElements: function(y) {\n return s(((((y.tagName == \"FORM\")) ? y.elements : x.getInputs(y))));\n },\n getAttribute: function(y, z) {\n return ((((y.getAttributeNode(z) || {\n })).value || null));\n },\n setDisabled: function(y, z) {\n x.getElements(y).forEach(function(aa) {\n if (((aa.disabled !== undefined))) {\n var ba = n.get(aa, \"origDisabledState\");\n if (z) {\n if (((ba === undefined))) {\n n.set(aa, \"origDisabledState\", aa.disabled);\n }\n ;\n ;\n aa.disabled = z;\n }\n else if (((ba !== true))) {\n aa.disabled = false;\n }\n \n ;\n ;\n }\n ;\n ;\n });\n },\n bootstrap: function(y, z) {\n var aa = ((x.getAttribute(y, \"method\") || \"GET\")).toUpperCase();\n z = ((q.byTag(z, \"button\") || z));\n var ba = ((q.byClass(z, \"stat_elem\") || y));\n if (j.hasClass(ba, \"async_saving\")) {\n return;\n }\n ;\n ;\n if (((z && ((((((z.form !== y)) || ((((z.nodeName != \"INPUT\")) && ((z.nodeName != \"BUTTON\")))))) || ((z.type != \"submit\"))))))) {\n var ca = m.scry(y, \".enter_submit_target\")[0];\n ((ca && (z = ca)));\n }\n ;\n ;\n var da = x.serialize(y, z);\n x.setDisabled(y, true);\n var ea = ((x.getAttribute(y, \"ajaxify\") || x.getAttribute(y, \"action\")));\n t(y, ea);\n var fa = new h(ea);\n fa.setData(da).setNectarModuleDataSafe(y).setReadOnly(((aa == \"GET\"))).setMethod(aa).setRelativeTo(y).setStatusElement(ba).setInitialHandler(x.setDisabled.curry(y, false)).setHandler(function(ga) {\n g.fire(y, \"success\", {\n response: ga\n });\n }).setErrorHandler(function(ga) {\n if (((g.fire(y, \"error\", {\n response: ga\n }) !== false))) {\n i.defaultErrorHandler(ga);\n }\n ;\n ;\n }).setFinallyHandler(x.setDisabled.curry(y, false)).send();\n },\n forEachValue: function(y, z, aa) {\n x.getElements(y).forEach(function(ba) {\n if (((((ba.JSBNG__name && !ba.disabled)) && ((ba.type !== \"submit\"))))) {\n if (((((((((((!ba.type || ((((((ba.type === \"radio\")) || ((ba.type === \"checkbox\")))) && ba.checked)))) || ((ba.type === \"text\")))) || ((ba.type === \"password\")))) || ((ba.type === \"hidden\")))) || ((ba.nodeName === \"TEXTAREA\"))))) {\n aa(ba.type, ba.JSBNG__name, p.getValue(ba));\n }\n else if (((ba.nodeName === \"SELECT\"))) {\n for (var ca = 0, da = ba.options.length; ((ca < da)); ca++) {\n var ea = ba.options[ca];\n if (ea.selected) {\n aa(\"select\", ba.JSBNG__name, ea.value);\n }\n ;\n ;\n };\n ;\n }\n else if (((u && ((ba.type === \"file\"))))) {\n var fa = ba.files;\n for (var ga = 0; ((ga < fa.length)); ga++) {\n aa(\"file\", ba.JSBNG__name, fa.item(ga));\n ;\n };\n ;\n }\n \n \n ;\n }\n ;\n ;\n });\n if (((((((((z && z.JSBNG__name)) && ((z.type === \"submit\")))) && m.contains(y, z))) && m.isNodeOfType(z, [\"input\",\"button\",])))) {\n aa(\"submit\", z.JSBNG__name, z.value);\n }\n ;\n ;\n },\n createFormData: function(y, z) {\n if (!v) {\n return null;\n }\n ;\n ;\n var aa = new JSBNG__FormData();\n if (y) {\n if (m.isNode(y)) {\n x.forEachValue(y, z, function(da, ea, fa) {\n aa.append(ea, fa);\n });\n }\n else {\n var ba = w(y);\n {\n var fin116keys = ((window.top.JSBNG_Replay.forInKeys)((ba))), fin116i = (0);\n var ca;\n for (; (fin116i < fin116keys.length); (fin116i++)) {\n ((ca) = (fin116keys[fin116i]));\n {\n aa.append(ca, ba[ca]);\n ;\n };\n };\n };\n ;\n }\n ;\n }\n ;\n ;\n return aa;\n },\n serialize: function(y, z) {\n var aa = {\n };\n x.forEachValue(y, z, function(ba, ca, da) {\n if (((ba === \"file\"))) {\n return;\n }\n ;\n ;\n x._serializeHelper(aa, ca, da);\n });\n return x._serializeFix(aa);\n },\n _serializeHelper: function(y, z, aa) {\n var ba = Object.prototype.hasOwnProperty, ca = /([^\\]]+)\\[([^\\]]*)\\](.*)/.exec(z);\n if (ca) {\n if (((!y[ca[1]] || !ba.call(y, ca[1])))) {\n var da;\n y[ca[1]] = da = {\n };\n if (((y[ca[1]] !== da))) {\n return;\n }\n ;\n ;\n }\n ;\n ;\n var ea = 0;\n if (((ca[2] === \"\"))) {\n while (((y[ca[1]][ea] !== undefined))) {\n ea++;\n ;\n };\n ;\n }\n else ea = ca[2];\n ;\n ;\n if (((ca[3] === \"\"))) {\n y[ca[1]][ea] = aa;\n }\n else x._serializeHelper(y[ca[1]], ea.concat(ca[3]), aa);\n ;\n ;\n }\n else y[z] = aa;\n ;\n ;\n },\n _serializeFix: function(y) {\n {\n var fin117keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin117i = (0);\n var z;\n for (; (fin117i < fin117keys.length); (fin117i++)) {\n ((z) = (fin117keys[fin117i]));\n {\n if (((y[z] instanceof Object))) {\n y[z] = x._serializeFix(y[z]);\n }\n ;\n ;\n };\n };\n };\n ;\n var aa = Object.keys(y);\n if (((((aa.length === 0)) || aa.some(isNaN)))) {\n return y;\n }\n ;\n ;\n aa.sort(function(da, ea) {\n return ((da - ea));\n });\n var ba = 0, ca = aa.every(function(da) {\n return ((+da === ba++));\n });\n if (ca) {\n return aa.map(function(da) {\n return y[da];\n });\n }\n ;\n ;\n return y;\n },\n post: function(y, z, aa) {\n var ba = JSBNG__document.createElement(\"form\");\n ba.action = y.toString();\n ba.method = \"POST\";\n ba.style.display = \"none\";\n if (aa) {\n ba.target = aa;\n }\n ;\n ;\n z.fb_dtsg = o.fb_dtsg;\n x.createHiddenInputs(z, ba);\n m.getRootElement().appendChild(ba);\n ba.submit();\n return false;\n },\n createHiddenInputs: function(y, z, aa, ba) {\n aa = ((aa || {\n }));\n var ca = w(y);\n {\n var fin118keys = ((window.top.JSBNG_Replay.forInKeys)((ca))), fin118i = (0);\n var da;\n for (; (fin118i < fin118keys.length); (fin118i++)) {\n ((da) = (fin118keys[fin118i]));\n {\n if (((ca[da] === null))) {\n continue;\n }\n ;\n ;\n if (((aa[da] && ba))) {\n aa[da].value = ca[da];\n }\n else {\n var ea = k.create(\"input\", {\n type: \"hidden\",\n JSBNG__name: da,\n value: ca[da]\n });\n aa[da] = ea;\n z.appendChild(ea);\n }\n ;\n ;\n };\n };\n };\n ;\n return aa;\n },\n getFirstElement: function(y, z) {\n z = ((z || [\"input[type=\\\"text\\\"]\",\"textarea\",\"input[type=\\\"password\\\"]\",\"input[type=\\\"button\\\"]\",\"input[type=\\\"submit\\\"]\",]));\n var aa = [];\n for (var ba = 0; ((ba < z.length)); ba++) {\n aa = m.scry(y, z[ba]);\n for (var ca = 0; ((ca < aa.length)); ca++) {\n var da = aa[ca];\n try {\n var fa = l.getElementPosition(da);\n if (((((fa.y > 0)) && ((fa.x > 0))))) {\n return da;\n }\n ;\n ;\n } catch (ea) {\n \n };\n ;\n };\n ;\n };\n ;\n return null;\n },\n focusFirst: function(y) {\n var z = x.getFirstElement(y);\n if (z) {\n z.JSBNG__focus();\n return true;\n }\n ;\n ;\n return false;\n }\n };\n e.exports = x;\n});\n__d(\"Locale\", [\"Style\",], function(a, b, c, d, e, f) {\n var g = b(\"Style\"), h, i = {\n isRTL: function() {\n if (((h === undefined))) {\n h = ((\"rtl\" === g.get(JSBNG__document.body, \"direction\")));\n }\n ;\n ;\n return h;\n }\n };\n e.exports = i;\n});\n__d(\"getOverlayZIndex\", [\"Style\",], function(a, b, c, d, e, f) {\n var g = b(\"Style\");\n function h(i, j) {\n j = ((j || JSBNG__document.body));\n var k = [];\n while (((i && ((i !== j))))) {\n k.push(i);\n i = i.parentNode;\n };\n ;\n if (((i !== j))) {\n return 0;\n }\n ;\n ;\n for (var l = ((k.length - 1)); ((l >= 0)); l--) {\n var m = k[l];\n if (((g.get(m, \"position\") != \"static\"))) {\n var n = parseInt(g.get(m, \"z-index\"), 10);\n if (!isNaN(n)) {\n return n;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n return 0;\n };\n;\n e.exports = h;\n});\n__d(\"Dialog\", [\"Animation\",\"Arbiter\",\"AsyncRequest\",\"Bootloader\",\"Button\",\"ContextualThing\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"Focus\",\"Form\",\"HTML\",\"Keys\",\"Locale\",\"Parent\",\"Run\",\"Style\",\"URI\",\"UserAgent\",\"Vector\",\"bind\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"getObjectValues\",\"getOverlayZIndex\",\"removeFromArray\",\"shield\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"Bootloader\"), k = b(\"Button\"), l = b(\"ContextualThing\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"JSBNG__Event\"), p = b(\"Focus\"), q = b(\"Form\"), r = b(\"HTML\"), s = b(\"Keys\"), t = b(\"Locale\"), u = b(\"Parent\"), v = b(\"Run\"), w = b(\"Style\"), x = b(\"URI\"), y = b(\"UserAgent\"), z = b(\"Vector\"), aa = b(\"bind\"), ba = b(\"copyProperties\"), ca = b(\"createArrayFrom\"), da = b(\"emptyFunction\"), ea = b(\"getObjectValues\"), fa = b(\"getOverlayZIndex\"), ga = b(\"removeFromArray\"), ha = b(\"shield\"), ia = b(\"tx\"), ja = function() {\n var la = JSBNG__document.body, ma = JSBNG__document.createElement(\"div\"), na = JSBNG__document.createElement(\"div\");\n la.insertBefore(ma, la.firstChild);\n la.insertBefore(na, la.firstChild);\n ma.style.position = \"fixed\";\n ma.style.JSBNG__top = \"20px\";\n var oa = ((ma.offsetTop !== na.offsetTop));\n la.removeChild(ma);\n la.removeChild(na);\n ja = da.thatReturns(oa);\n return oa;\n };\n function ka(la) {\n this._show_loading = true;\n this._auto_focus = true;\n this._submit_on_enter = false;\n this._fade_enabled = true;\n this._onload_handlers = [];\n this._top = 125;\n this._uniqueID = ((\"dialog_\" + ka._globalCount++));\n this._content = null;\n this._obj = null;\n this._popup = null;\n this._overlay = null;\n this._shim = null;\n this._causal_elem = null;\n this._previous_focus = null;\n this._buttons = [];\n this._buildDialog();\n if (la) {\n this._setFromModel(la);\n }\n ;\n ;\n ka._init();\n };\n;\n ba(ka, {\n OK: {\n JSBNG__name: \"ok\",\n label: \"Okay\"\n },\n CANCEL: {\n JSBNG__name: \"cancel\",\n label: \"Cancel\",\n className: \"inputaux\"\n },\n CLOSE: {\n JSBNG__name: \"close\",\n label: \"Close\"\n },\n NEXT: {\n JSBNG__name: \"next\",\n label: \"Next\"\n },\n SAVE: {\n JSBNG__name: \"save\",\n label: \"Save\"\n },\n SUBMIT: {\n JSBNG__name: \"submit\",\n label: \"Submit\"\n },\n CONFIRM: {\n JSBNG__name: \"JSBNG__confirm\",\n label: \"Confirm\"\n },\n DELETE: {\n JSBNG__name: \"delete\",\n label: \"Delete\"\n },\n _globalCount: 0,\n _bottoms: [0,],\n max_bottom: 0,\n _updateMaxBottom: function() {\n ka.max_bottom = Math.max.apply(Math, ka._bottoms);\n }\n });\n ba(ka, {\n OK_AND_CANCEL: [ka.OK,ka.CANCEL,],\n _STANDARD_BUTTONS: [ka.OK,ka.CANCEL,ka.CLOSE,ka.SAVE,ka.SUBMIT,ka.CONFIRM,ka.DELETE,],\n SIZE: {\n WIDE: 555,\n STANDARD: 445\n },\n _HALO_WIDTH: 10,\n _BORDER_WIDTH: 1,\n _PADDING_WIDTH: 10,\n _PAGE_MARGIN: 40,\n _stack: [],\n _isUsingCSSBorders: function() {\n return ((y.ie() < 7));\n },\n newButton: function(la, ma, na, oa) {\n var pa = {\n JSBNG__name: la,\n label: ma\n };\n if (na) {\n pa.className = na;\n }\n ;\n ;\n if (oa) {\n pa.handler = oa;\n }\n ;\n ;\n return pa;\n },\n getCurrent: function() {\n var la = ka._stack;\n return ((la.length ? la[((la.length - 1))] : null));\n },\n hideCurrent: function() {\n var la = ka.getCurrent();\n ((la && la.hide()));\n },\n bootstrap: function(la, ma, na, oa, pa, qa) {\n ma = ((ma || {\n }));\n ba(ma, new x(la).getQueryData());\n oa = ((oa || ((na ? \"GET\" : \"POST\"))));\n var ra = ((u.byClass(qa, \"stat_elem\") || qa));\n if (((ra && m.hasClass(ra, \"async_saving\")))) {\n return false;\n }\n ;\n ;\n var sa = new i().setReadOnly(!!na).setMethod(oa).setRelativeTo(qa).setStatusElement(ra).setURI(la).setNectarModuleDataSafe(qa).setData(ma), ta = new ka(pa).setCausalElement(qa).setAsync(sa);\n ta.show();\n return false;\n },\n showFromModel: function(la, ma) {\n var na = new ka(la).setCausalElement(ma).show();\n if (la.hiding) {\n na.hide();\n }\n ;\n ;\n },\n _init: function() {\n this._init = da;\n v.onLeave(ha(ka._tearDown, null, false));\n h.subscribe(\"page_transition\", ha(ka._tearDown, null, true));\n o.listen(JSBNG__document.documentElement, \"keydown\", function(JSBNG__event) {\n if (((((o.getKeyCode(JSBNG__event) == s.ESC)) && !JSBNG__event.getModifiers().any))) {\n if (ka._escape()) {\n JSBNG__event.kill();\n }\n ;\n ;\n }\n else if (((((o.getKeyCode(JSBNG__event) == s.RETURN)) && !JSBNG__event.getModifiers().any))) {\n if (ka._enter()) {\n JSBNG__event.kill();\n }\n ;\n }\n \n ;\n ;\n });\n o.listen(window, \"resize\", function(JSBNG__event) {\n var la = ka.getCurrent();\n ((la && la._resetDialogObj()));\n });\n },\n _findButton: function(la, ma) {\n if (la) {\n for (var na = 0; ((na < la.length)); ++na) {\n if (((la[na].JSBNG__name == ma))) {\n return la[na];\n }\n ;\n ;\n };\n }\n ;\n ;\n return null;\n },\n _tearDown: function(la) {\n var ma = ka._stack.slice();\n for (var na = ((ma.length - 1)); ((na >= 0)); na--) {\n if (((((la && !ma[na]._cross_transition)) || ((!la && !ma[na]._cross_quickling))))) {\n ma[na].hide();\n }\n ;\n ;\n };\n ;\n },\n _escape: function() {\n var la = ka.getCurrent();\n if (!la) {\n return false;\n }\n ;\n ;\n var ma = la._semi_modal, na = la._buttons;\n if (((!na.length && !ma))) {\n return false;\n }\n ;\n ;\n if (((ma && !na.length))) {\n la.hide();\n return true;\n }\n ;\n ;\n var oa, pa = ka._findButton(na, \"cancel\");\n if (la._cancelHandler) {\n la.cancel();\n return true;\n }\n else if (pa) {\n oa = pa;\n }\n else if (((na.length == 1))) {\n oa = na[0];\n }\n else return false\n \n \n ;\n la._handleButton(oa);\n return true;\n },\n _enter: function() {\n var la = ka.getCurrent();\n if (((!la || !la._submit_on_enter))) {\n return false;\n }\n ;\n ;\n if (((JSBNG__document.activeElement != la._frame))) {\n return false;\n }\n ;\n ;\n var ma = la._buttons;\n if (!ma) {\n return false;\n }\n ;\n ;\n la._handleButton(ma[0]);\n return true;\n },\n call_or_eval: function(la, ma, na) {\n if (!ma) {\n return undefined;\n }\n ;\n ;\n na = ((na || {\n }));\n if (((typeof ma == \"string\"))) {\n var oa = Object.keys(na).join(\", \");\n ma = (eval)(((((((((\"({f: function(\" + oa)) + \") { \")) + ma)) + \"}})\"))).f;\n }\n ;\n ;\n return ma.apply(la, ea(na));\n }\n });\n ba(ka.prototype, {\n _cross_quickling: false,\n _cross_transition: false,\n _loading: false,\n _showing: false,\n show: function() {\n this._showing = true;\n if (this._async_request) {\n if (this._show_loading) {\n this.showLoading();\n }\n ;\n ;\n }\n else this._update();\n ;\n ;\n return this;\n },\n showLoading: function() {\n this._loading = true;\n m.addClass(this._frame, \"dialog_loading_shown\");\n this._renderDialog();\n return this;\n },\n hide: function() {\n if (((!this._showing && !this._loading))) {\n return this;\n }\n ;\n ;\n this._showing = false;\n if (this._autohide_timeout) {\n JSBNG__clearTimeout(this._autohide_timeout);\n this._autohide_timeout = null;\n }\n ;\n ;\n if (((this._fade_enabled && ((ka._stack.length <= 1))))) {\n this._fadeOut();\n }\n else this._hide();\n ;\n ;\n return this;\n },\n cancel: function() {\n if (((!this._cancelHandler || ((this._cancelHandler() !== false))))) {\n this.hide();\n }\n ;\n ;\n },\n getRoot: function() {\n return this._obj;\n },\n getBody: function() {\n return n.scry(this._obj, \"div.dialog_body\")[0];\n },\n getButtonElement: function(la) {\n if (((typeof la == \"string\"))) {\n la = ka._findButton(this._buttons, la);\n }\n ;\n ;\n if (((!la || !la.JSBNG__name))) {\n return null;\n }\n ;\n ;\n var ma = n.scry(this._popup, \"input\"), na = function(oa) {\n return ((oa.JSBNG__name == la.JSBNG__name));\n };\n return ((ma.filter(na)[0] || null));\n },\n getContentNode: function() {\n return n.JSBNG__find(this._content, \"div.dialog_content\");\n },\n getFormData: function() {\n return q.serialize(this.getContentNode());\n },\n setAllowCrossPageTransition: function(la) {\n this._cross_transition = la;\n return this;\n },\n setAllowCrossQuicklingNavigation: function(la) {\n this._cross_quickling = la;\n return this;\n },\n setShowing: function() {\n this.show();\n return this;\n },\n setHiding: function() {\n this.hide();\n return this;\n },\n setTitle: function(la) {\n var ma = this._nodes.title, na = this._nodes.title_inner, oa = this._nodes.JSBNG__content;\n n.setContent(na, this._format(((la || \"\"))));\n m.conditionShow(ma, !!la);\n m.conditionClass(oa, \"dialog_content_titleless\", !la);\n return this;\n },\n setBody: function(la) {\n n.setContent(this._nodes.body, this._format(la));\n return this;\n },\n setExtraData: function(la) {\n this._extra_data = la;\n return this;\n },\n setReturnData: function(la) {\n this._return_data = la;\n return this;\n },\n setShowLoading: function(la) {\n this._show_loading = la;\n return this;\n },\n setCustomLoading: function(la) {\n var ma = n.create(\"div\", {\n className: \"dialog_loading\"\n }, la);\n n.setContent(this._frame, [this._nodes.title,this._nodes.JSBNG__content,ma,]);\n return this;\n },\n setFullBleed: function(la) {\n this._full_bleed = la;\n this._updateWidth();\n m.conditionClass(this._obj, \"full_bleed\", la);\n return this;\n },\n setCausalElement: function(la) {\n this._causal_elem = la;\n return this;\n },\n setUserData: function(la) {\n this._user_data = la;\n return this;\n },\n getUserData: function() {\n return this._user_data;\n },\n setAutohide: function(la) {\n if (la) {\n if (this._showing) {\n this._autohide_timeout = JSBNG__setTimeout(ha(this.hide, this), la);\n }\n else this._autohide = la;\n ;\n ;\n }\n else {\n this._autohide = null;\n if (this._autohide_timeout) {\n JSBNG__clearTimeout(this._autohide_timeout);\n this._autohide_timeout = null;\n }\n ;\n ;\n }\n ;\n ;\n return this;\n },\n setSummary: function(la) {\n var ma = this._nodes.summary;\n n.setContent(ma, this._format(((la || \"\"))));\n m.conditionShow(ma, !!la);\n return this;\n },\n setButtons: function(la) {\n var ma, na;\n if (!((la instanceof Array))) {\n ma = ca(arguments);\n }\n else ma = la;\n ;\n ;\n for (var oa = 0; ((oa < ma.length)); ++oa) {\n if (((typeof ma[oa] == \"string\"))) {\n na = ka._findButton(ka._STANDARD_BUTTONS, ma[oa]);\n ma[oa] = na;\n }\n ;\n ;\n };\n ;\n this._buttons = ma;\n var pa = [];\n if (((ma && ((ma.length > 0))))) {\n for (var qa = 0; ((qa < ma.length)); qa++) {\n na = ma[qa];\n var ra = n.create(\"input\", {\n type: \"button\",\n JSBNG__name: ((na.JSBNG__name || \"\")),\n value: na.label\n }), sa = n.create(\"label\", {\n className: \"uiButton uiButtonLarge uiButtonConfirm\"\n }, ra);\n if (na.className) {\n na.className.split(/\\s+/).forEach(function(ua) {\n m.addClass(sa, ua);\n });\n if (m.hasClass(sa, \"inputaux\")) {\n m.removeClass(sa, \"inputaux\");\n m.removeClass(sa, \"uiButtonConfirm\");\n }\n ;\n ;\n if (m.hasClass(sa, \"uiButtonSpecial\")) {\n m.removeClass(sa, \"uiButtonConfirm\");\n }\n ;\n ;\n }\n ;\n ;\n if (na.icon) {\n n.prependContent(sa, n.create(\"img\", {\n src: na.icon,\n className: \"img mrs\"\n }));\n }\n ;\n ;\n if (na.disabled) {\n k.setEnabled(sa, false);\n }\n ;\n ;\n o.listen(ra, \"click\", this._handleButton.bind(this, na.JSBNG__name));\n {\n var fin119keys = ((window.top.JSBNG_Replay.forInKeys)((na))), fin119i = (0);\n var ta;\n for (; (fin119i < fin119keys.length); (fin119i++)) {\n ((ta) = (fin119keys[fin119i]));\n {\n if (((((ta.indexOf(\"data-\") === 0)) && ((ta.length > 5))))) {\n ra.setAttribute(ta, na[ta]);\n }\n ;\n ;\n };\n };\n };\n ;\n pa.push(sa);\n };\n }\n ;\n ;\n n.setContent(this._nodes.buttons, pa);\n this._updateButtonVisibility();\n return this;\n },\n setButtonsMessage: function(la) {\n n.setContent(this._nodes.button_message, this._format(((la || \"\"))));\n this._has_button_message = !!la;\n this._updateButtonVisibility();\n return this;\n },\n _updateButtonVisibility: function() {\n var la = ((((this._buttons.length > 0)) || this._has_button_message));\n m.conditionShow(this._nodes.button_wrapper, la);\n m.conditionClass(this._obj, \"omitDialogFooter\", !la);\n },\n setClickButtonOnEnter: function(la, ma) {\n this._clickOnEnterTarget = la;\n if (!this._clickOnEnterListener) {\n this._clickOnEnterListener = o.listen(this._nodes.body, \"keypress\", function(JSBNG__event) {\n var na = JSBNG__event.getTarget();\n if (((na && ((na.id === this._clickOnEnterTarget))))) {\n if (((o.getKeyCode(JSBNG__event) == s.RETURN))) {\n this._handleButton(ma);\n JSBNG__event.kill();\n }\n ;\n }\n ;\n ;\n return true;\n }.bind(this));\n }\n ;\n ;\n return this;\n },\n setStackable: function(la, ma) {\n this._is_stackable = la;\n this._shown_while_stacked = ((la && ma));\n return this;\n },\n setHandler: function(la) {\n this._handler = la;\n return this;\n },\n setCancelHandler: function(la) {\n this._cancelHandler = ka.call_or_eval.bind(null, this, la);\n return this;\n },\n setCloseHandler: function(la) {\n this._close_handler = ka.call_or_eval.bind(null, this, la);\n return this;\n },\n clearHandler: function() {\n return this.setHandler(null);\n },\n setPostURI: function(la, ma) {\n if (((ma === undefined))) {\n ma = true;\n }\n ;\n ;\n if (ma) {\n this.setHandler(this._submitForm.bind(this, \"POST\", la));\n }\n else this.setHandler(function() {\n q.post(la, this.getFormData());\n this.hide();\n }.bind(this));\n ;\n ;\n return this;\n },\n setGetURI: function(la) {\n this.setHandler(this._submitForm.bind(this, \"GET\", la));\n return this;\n },\n setModal: function(la) {\n this._modal = la;\n m.conditionClass(this._obj, \"generic_dialog_modal\", la);\n return this;\n },\n setSemiModal: function(la) {\n if (la) {\n this.setModal(true);\n this._semiModalListener = o.listen(this._obj, \"click\", function(ma) {\n if (!n.contains(this._popup, ma.getTarget())) {\n this.hide();\n }\n ;\n ;\n }.bind(this));\n }\n else ((this._semiModalListener && this._semiModalListener.remove()));\n ;\n ;\n this._semi_modal = la;\n return this;\n },\n setWideDialog: function(la) {\n this._wide_dialog = la;\n this._updateWidth();\n return this;\n },\n setContentWidth: function(la) {\n this._content_width = la;\n this._updateWidth();\n return this;\n },\n setTitleLoading: function(la) {\n if (((la === undefined))) {\n la = true;\n }\n ;\n ;\n var ma = n.JSBNG__find(this._popup, \"h2.dialog_title\");\n if (ma) {\n m.conditionClass(ma, \"loading\", la);\n }\n ;\n ;\n return this;\n },\n setSecure: function(la) {\n m.conditionClass(this._nodes.title, \"secure\", la);\n return this;\n },\n setClassName: function(la) {\n la.split(/\\s+/).forEach(m.addClass.bind(m, this._obj));\n return this;\n },\n setFadeEnabled: function(la) {\n this._fade_enabled = la;\n return this;\n },\n setFooter: function(la) {\n var ma = this._nodes.footer;\n n.setContent(ma, this._format(((la || \"\"))));\n m.conditionShow(ma, !!la);\n return this;\n },\n setAutoFocus: function(la) {\n this._auto_focus = la;\n return this;\n },\n setTop: function(la) {\n this._top = la;\n this._resetDialogObj();\n return this;\n },\n onloadRegister: function(la) {\n ca(la).forEach(function(ma) {\n if (((typeof ma == \"string\"))) {\n ma = new Function(ma);\n }\n ;\n ;\n this._onload_handlers.push(ma.bind(this));\n }.bind(this));\n return this;\n },\n setAsyncURL: function(la) {\n return this.setAsync(new i(la));\n },\n setAsync: function(la) {\n var ma = function(ua) {\n if (((this._async_request != la))) {\n return;\n }\n ;\n ;\n this._async_request = null;\n var va = ua.getPayload(), wa = va;\n if (this._loading) {\n this._showing = true;\n }\n ;\n ;\n if (((typeof wa == \"string\"))) {\n this.setBody(wa);\n }\n else this._setFromModel(wa);\n ;\n ;\n this._update();\n }.bind(this), na = la.getData();\n na.__d = 1;\n la.setData(na);\n var oa = ((la.getHandler() || da));\n la.setHandler(function(ua) {\n oa(ua);\n ma(ua);\n });\n var pa = la, qa = ((pa.getErrorHandler() || da)), ra = ((pa.getTransportErrorHandler() || da)), sa = function() {\n this._async_request = null;\n this._loading = false;\n if (((this._showing && this._shown_while_stacked))) {\n this._update();\n }\n else this._hide(this._is_stackable);\n ;\n ;\n }.bind(this), ta = ((pa.getServerDialogCancelHandler() || sa));\n pa.setAllowCrossPageTransition(this._cross_transition).setErrorHandler(function(ua) {\n sa();\n qa(ua);\n }).setTransportErrorHandler(function(ua) {\n sa();\n ra(ua);\n }).setServerDialogCancelHandler(ta);\n la.send();\n this._async_request = la;\n if (this._showing) {\n this.show();\n }\n ;\n ;\n return this;\n },\n _format: function(la) {\n if (((typeof la == \"string\"))) {\n la = r(la);\n }\n else la = r.replaceJSONWrapper(la);\n ;\n ;\n if (((la instanceof r))) {\n la.setDeferred(true);\n }\n ;\n ;\n return la;\n },\n _update: function() {\n if (!this._showing) {\n return;\n }\n ;\n ;\n if (((((this._autohide && !this._async_request)) && !this._autohide_timeout))) {\n this._autohide_timeout = JSBNG__setTimeout(aa(this, \"hide\"), this._autohide);\n }\n ;\n ;\n m.removeClass(this._frame, \"dialog_loading_shown\");\n this._loading = false;\n this._renderDialog();\n this._runOnloads();\n this._previous_focus = JSBNG__document.activeElement;\n p.set(this._frame);\n },\n _runOnloads: function() {\n for (var la = 0; ((la < this._onload_handlers.length)); ++la) {\n try {\n this._onload_handlers[la]();\n } catch (ma) {\n \n };\n ;\n };\n ;\n this._onload_handlers = [];\n },\n _updateWidth: function() {\n var la = ((2 * ka._BORDER_WIDTH));\n if (ka._isUsingCSSBorders()) {\n la += ((2 * ka._HALO_WIDTH));\n }\n ;\n ;\n if (this._content_width) {\n la += this._content_width;\n if (!this._full_bleed) {\n la += ((2 * ka._PADDING_WIDTH));\n }\n ;\n ;\n }\n else if (this._wide_dialog) {\n la += ka.SIZE.WIDE;\n }\n else la += ka.SIZE.STANDARD;\n \n ;\n ;\n this._popup.style.width = ((la + \"px\"));\n },\n _updateZIndex: function() {\n if (((!this._hasSetZIndex && this._causal_elem))) {\n var la = fa(this._causal_elem), ma = this._causal_elem;\n while (((!la && (ma = l.getContext(ma))))) {\n la = fa(ma);\n ;\n };\n ;\n this._hasSetZIndex = ((la > ((this._modal ? 400 : 200))));\n w.set(this._obj, \"z-index\", ((this._hasSetZIndex ? la : \"\")));\n }\n ;\n ;\n },\n _renderDialog: function() {\n this._updateZIndex();\n this._pushOntoStack();\n this._obj.style.height = ((((this._modal && ((y.ie() < 7)))) ? ((z.getDocumentDimensions().y + \"px\")) : null));\n if (((this._obj && this._obj.style.display))) {\n this._obj.style.visibility = \"hidden\";\n this._obj.style.display = \"\";\n this.resetDialogPosition();\n this._obj.style.visibility = \"\";\n this._obj.dialog = this;\n }\n else this.resetDialogPosition();\n ;\n ;\n JSBNG__clearInterval(this.active_hiding);\n this.active_hiding = JSBNG__setInterval(this._activeResize.bind(this), 500);\n this._submit_on_enter = false;\n if (this._auto_focus) {\n var la = q.getFirstElement(this._content, [\"input[type=\\\"text\\\"]\",\"textarea\",\"input[type=\\\"password\\\"]\",]);\n if (la) {\n q.focusFirst.bind(this, this._content).defer();\n }\n else this._submit_on_enter = true;\n ;\n ;\n }\n ;\n ;\n var ma = ((z.getElementDimensions(this._content).y + z.getElementPosition(this._content).y));\n ka._bottoms.push(ma);\n this._bottom = ma;\n ka._updateMaxBottom();\n return this;\n },\n _buildDialog: function() {\n this._obj = n.create(\"div\", {\n className: \"generic_dialog\",\n id: this._uniqueID\n });\n this._obj.style.display = \"none\";\n n.appendContent(JSBNG__document.body, this._obj);\n if (!this._popup) {\n this._popup = n.create(\"div\", {\n className: \"generic_dialog_popup\"\n });\n }\n ;\n ;\n this._obj.appendChild(this._popup);\n if (((((y.ie() < 7)) && !this._shim))) {\n j.loadModules([\"IframeShim\",], function(xa) {\n this._shim = new xa(this._popup);\n });\n }\n ;\n ;\n m.addClass(this._obj, \"pop_dialog\");\n if (t.isRTL()) {\n m.addClass(this._obj, \"pop_dialog_rtl\");\n }\n ;\n ;\n var la;\n if (ka._isUsingCSSBorders()) {\n la = ((((\"\\u003Cdiv class=\\\"pop_container_advanced\\\"\\u003E\" + \"\\u003Cdiv class=\\\"pop_content\\\" id=\\\"pop_content\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003C/div\\u003E\"));\n }\n else la = ((((((((((((((((\"\\u003Cdiv class=\\\"pop_container\\\"\\u003E\" + \"\\u003Cdiv class=\\\"pop_verticalslab\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_horizontalslab\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_topleft\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_topright\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_bottomright\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_bottomleft\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"pop_content pop_content_old\\\" id=\\\"pop_content\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003C/div\\u003E\"));\n ;\n ;\n n.setContent(this._popup, r(la));\n var ma = n.JSBNG__find(this._popup, \"div.pop_content\");\n ma.setAttribute(\"tabIndex\", \"0\");\n ma.setAttribute(\"role\", \"alertdialog\");\n this._frame = this._content = ma;\n var na = n.create(\"div\", {\n className: \"dialog_loading\"\n }, \"Loading...\"), oa = n.create(\"span\"), pa = n.create(\"h2\", {\n className: \"dialog_title hidden_elem\",\n id: ((\"title_\" + this._uniqueID))\n }, oa), qa = n.create(\"div\", {\n className: \"dialog_summary hidden_elem\"\n }), ra = n.create(\"div\", {\n className: \"dialog_body\"\n }), sa = n.create(\"div\", {\n className: \"rfloat mlm\"\n }), ta = n.create(\"div\", {\n className: \"dialog_buttons_msg\"\n }), ua = n.create(\"div\", {\n className: \"dialog_buttons clearfix hidden_elem\"\n }, [sa,ta,]), va = n.create(\"div\", {\n className: \"dialog_footer hidden_elem\"\n }), wa = n.create(\"div\", {\n className: \"dialog_content\"\n }, [qa,ra,ua,va,]);\n this._nodes = {\n summary: qa,\n body: ra,\n buttons: sa,\n button_message: ta,\n button_wrapper: ua,\n footer: va,\n JSBNG__content: wa,\n title: pa,\n title_inner: oa\n };\n n.setContent(this._frame, [pa,wa,na,]);\n },\n _updateShim: function() {\n return ((this._shim && this._shim.show()));\n },\n _activeResize: function() {\n if (((this.last_offset_height != this._content.offsetHeight))) {\n this.last_offset_height = this._content.offsetHeight;\n this.resetDialogPosition();\n }\n ;\n ;\n },\n resetDialogPosition: function() {\n if (!this._popup) {\n return;\n }\n ;\n ;\n this._resetDialogObj();\n this._updateShim();\n },\n _resetDialogObj: function() {\n var la = ((2 * ka._PAGE_MARGIN)), ma = z.getViewportDimensions(), na = ((ma.x - la)), oa = ((ma.y - la)), pa = ((2 * ka._HALO_WIDTH)), qa = z.getElementDimensions(this._content), ra = ((qa.x + pa)), sa = ((qa.y + pa)), ta = this._top, ua = ((na - ra)), va = ((oa - sa));\n if (((va < 0))) {\n ta = ka._PAGE_MARGIN;\n }\n else if (((ta > va))) {\n ta = ((ka._PAGE_MARGIN + ((Math.max(va, 0) / 2))));\n }\n \n ;\n ;\n var wa = ja();\n if (!wa) {\n ta += z.getScrollPosition().y;\n }\n ;\n ;\n w.set(this._popup, \"marginTop\", ((ta + \"px\")));\n var xa = ((wa && ((((ua < 0)) || ((va < 0))))));\n m.conditionClass(this._obj, \"generic_dialog_fixed_overflow\", xa);\n m.conditionClass(JSBNG__document.documentElement, \"generic_dialog_overflow_mode\", xa);\n },\n _fadeOut: function(la) {\n if (!this._popup) {\n return;\n }\n ;\n ;\n try {\n new g(this._obj).duration(0).checkpoint().to(\"opacity\", 0).hide().duration(250).ondone(this._hide.bind(this, la)).go();\n } catch (ma) {\n this._hide(la);\n };\n ;\n },\n _hide: function(la) {\n if (this._obj) {\n this._obj.style.display = \"none\";\n }\n ;\n ;\n m.removeClass(JSBNG__document.documentElement, \"generic_dialog_overflow_mode\");\n this._updateShim();\n JSBNG__clearInterval(this.active_hiding);\n if (this._bottom) {\n var ma = ka._bottoms;\n ma.splice(ma.indexOf(this._bottom), 1);\n ka._updateMaxBottom();\n }\n ;\n ;\n if (((((this._previous_focus && JSBNG__document.activeElement)) && n.contains(this._obj, JSBNG__document.activeElement)))) {\n p.set(this._previous_focus);\n }\n ;\n ;\n if (la) {\n return;\n }\n ;\n ;\n this.destroy();\n },\n destroy: function() {\n this._popFromStack();\n JSBNG__clearInterval(this.active_hiding);\n if (this._obj) {\n n.remove(this._obj);\n this._obj = null;\n ((this._shim && this._shim.hide()));\n this._shim = null;\n }\n ;\n ;\n ((this._clickOnEnterListener && this._clickOnEnterListener.remove()));\n if (this._close_handler) {\n this._close_handler({\n return_data: this._return_data\n });\n }\n ;\n ;\n },\n _handleButton: function(la) {\n if (((typeof la == \"string\"))) {\n la = ka._findButton(this._buttons, la);\n }\n ;\n ;\n var ma = ka.call_or_eval(la, la.handler);\n if (((ma === false))) {\n return;\n }\n ;\n ;\n if (((la.JSBNG__name == \"cancel\"))) {\n this.cancel();\n }\n else if (((ka.call_or_eval(this, this._handler, {\n button: la\n }) !== false))) {\n this.hide();\n }\n \n ;\n ;\n },\n _submitForm: function(la, ma, na) {\n var oa = this.getFormData();\n if (na) {\n oa[na.JSBNG__name] = na.label;\n }\n ;\n ;\n if (this._extra_data) {\n ba(oa, this._extra_data);\n }\n ;\n ;\n var pa = new i().setURI(ma).setData(oa).setMethod(la).setNectarModuleDataSafe(this._causal_elem).setReadOnly(((la == \"GET\")));\n this.setAsync(pa);\n return false;\n },\n _setFromModel: function(la) {\n var ma = {\n };\n ba(ma, la);\n {\n var fin120keys = ((window.top.JSBNG_Replay.forInKeys)((ma))), fin120i = (0);\n var na;\n for (; (fin120i < fin120keys.length); (fin120i++)) {\n ((na) = (fin120keys[fin120i]));\n {\n if (((na == \"onloadRegister\"))) {\n this.onloadRegister(ma[na]);\n continue;\n }\n ;\n ;\n var oa = this[((((\"set\" + na.substr(0, 1).toUpperCase())) + na.substr(1)))];\n oa.apply(this, ca(ma[na]));\n };\n };\n };\n ;\n },\n _updateBottom: function() {\n var la = ((z.getElementDimensions(this._content).y + z.getElementPosition(this._content).y));\n ka._bottoms[((ka._bottoms.length - 1))] = la;\n ka._updateMaxBottom();\n },\n _pushOntoStack: function() {\n var la = ka._stack;\n if (!la.length) {\n h.inform(\"layer_shown\", {\n type: \"Dialog\"\n });\n }\n ;\n ;\n ga(la, this);\n la.push(this);\n for (var ma = ((la.length - 2)); ((ma >= 0)); ma--) {\n var na = la[ma];\n if (((!na._is_stackable && !na._async_request))) {\n na._hide();\n }\n else if (!na._shown_while_stacked) {\n na._hide(true);\n }\n \n ;\n ;\n };\n ;\n },\n _popFromStack: function() {\n var la = ka._stack, ma = ((la[((la.length - 1))] === this));\n ga(la, this);\n if (la.length) {\n if (ma) {\n la[((la.length - 1))].show();\n }\n ;\n ;\n }\n else h.inform(\"layer_hidden\", {\n type: \"Dialog\"\n });\n ;\n ;\n }\n });\n e.exports = ka;\n a.Dialog = ka;\n});\n__d(\"DialogHideOnSuccess\", [\"copyProperties\",\"CSS\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"CSS\"), i = b(\"cx\");\n function j(k) {\n this._layer = k;\n };\n;\n g(j.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"success\", this._handle.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _handle: function(k, JSBNG__event) {\n if (h.hasClass(JSBNG__event.getTarget(), \"_s\")) {\n this._layer.hide();\n }\n ;\n ;\n }\n });\n e.exports = j;\n});\n__d(\"DocumentTitle\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = JSBNG__document.title, i = null, j = 1500, k = [], l = 0, m = null, n = false;\n function o() {\n if (((k.length > 0))) {\n if (!n) {\n p(k[l].title);\n l = ((++l % k.length));\n }\n else q();\n ;\n ;\n }\n else {\n JSBNG__clearInterval(m);\n m = null;\n q();\n }\n ;\n ;\n };\n;\n function p(s) {\n JSBNG__document.title = s;\n n = true;\n };\n;\n function q() {\n r.set(((i || h)), true);\n n = false;\n };\n;\n var r = {\n get: function() {\n return h;\n },\n set: function(s, t) {\n JSBNG__document.title = s;\n if (!t) {\n h = s;\n i = null;\n g.inform(\"update_title\", s);\n }\n else i = s;\n ;\n ;\n },\n blink: function(s) {\n var t = {\n title: s\n };\n k.push(t);\n if (((m === null))) {\n m = JSBNG__setInterval(o, j);\n }\n ;\n ;\n return {\n JSBNG__stop: function() {\n var u = k.indexOf(t);\n if (((u >= 0))) {\n k.splice(u, 1);\n if (((l > u))) {\n l--;\n }\n else if (((((l == u)) && ((l == k.length))))) {\n l = 0;\n }\n \n ;\n ;\n }\n ;\n ;\n }\n };\n }\n };\n e.exports = r;\n});\n__d(\"DoublyLinkedListMap\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\");\n function h() {\n this._head = null;\n this._tail = null;\n this._nodes = {\n };\n this._nodeCount = 0;\n };\n;\n g(h.prototype, {\n get: function(i) {\n return ((this._nodes[i] ? this._nodes[i].data : null));\n },\n getIndex: function(i) {\n for (var j = this._head, k = 0; j; j = j.next, k++) {\n if (((j.key === i))) {\n return k;\n }\n ;\n ;\n };\n ;\n return null;\n },\n _insert: function(i, j, k, l) {\n ((((k && !this._nodes[k])) && (k = null)));\n var m = ((((k && this._nodes[k])) || ((l ? this._head : this._tail)))), n = {\n data: j,\n key: i,\n next: null,\n prev: null\n };\n if (m) {\n this.remove(i);\n if (l) {\n n.prev = m.prev;\n ((m.prev && (m.prev.next = n)));\n m.prev = n;\n n.next = m;\n }\n else {\n n.next = m.next;\n ((m.next && (m.next.prev = n)));\n m.next = n;\n n.prev = m;\n }\n ;\n ;\n }\n ;\n ;\n ((((n.prev === null)) && (this._head = n)));\n ((((n.next === null)) && (this._tail = n)));\n this._nodes[i] = n;\n this._nodeCount++;\n return this;\n },\n insertBefore: function(i, j, k) {\n return this._insert(i, j, k, true);\n },\n insertAfter: function(i, j, k) {\n return this._insert(i, j, k, false);\n },\n prepend: function(i, j) {\n return this.insertBefore(i, j, ((this._head && this._head.key)));\n },\n append: function(i, j) {\n return this.insertAfter(i, j, ((this._tail && this._tail.key)));\n },\n remove: function(i) {\n var j = this._nodes[i];\n if (j) {\n var k = j.next, l = j.prev;\n ((k && (k.prev = l)));\n ((l && (l.next = k)));\n ((((this._head === j)) && (this._head = k)));\n ((((this._tail === j)) && (this._tail = l)));\n delete this._nodes[i];\n this._nodeCount--;\n }\n ;\n ;\n return this;\n },\n JSBNG__find: function(i) {\n for (var j = this._head; j; j = j.next) {\n if (i(j.data)) {\n return j.key;\n }\n ;\n ;\n };\n ;\n return null;\n },\n reduce: function(i, j) {\n for (var k = this._head; k; k = k.next) {\n j = i(k.data, j);\n ;\n };\n ;\n return j;\n },\n exists: function(i) {\n return !!this._nodes[i];\n },\n isEmpty: function() {\n return !this._head;\n },\n reset: function() {\n this._head = null;\n this._tail = null;\n this._nodes = {\n };\n this._nodeCount = 0;\n },\n map: function(i) {\n for (var j = this._head; j; j = j.next) {\n i(j.data);\n ;\n };\n ;\n },\n getCount: function() {\n return this._nodeCount;\n },\n getHead: function() {\n return ((this._head && this._head.data));\n },\n getTail: function() {\n return ((this._tail && this._tail.data));\n },\n getNext: function(i) {\n var j = this._nodes[i];\n if (((j && j.next))) {\n return j.next.data;\n }\n ;\n ;\n return null;\n },\n getPrev: function(i) {\n var j = this._nodes[i];\n if (((j && j.prev))) {\n return j.prev.data;\n }\n ;\n ;\n return null;\n }\n });\n e.exports = h;\n});\n__d(\"throttle\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\");\n function h(j, k, l) {\n return i(j, k, l, false, false);\n };\n;\n g(h, {\n acrossTransitions: function(j, k, l) {\n return i(j, k, l, true, false);\n },\n withBlocking: function(j, k, l) {\n return i(j, k, l, false, true);\n }\n });\n function i(j, k, l, m, n) {\n if (((k == null))) {\n k = 100;\n }\n ;\n ;\n var o, p, q;\n function r() {\n p = JSBNG__Date.now();\n if (o) {\n j.apply(l, o);\n o = null;\n q = JSBNG__setTimeout(r, k, !m);\n }\n else q = false;\n ;\n ;\n };\n ;\n return function s() {\n o = arguments;\n if (((!q || ((((JSBNG__Date.now() - p)) > k))))) {\n if (n) {\n r();\n }\n else q = JSBNG__setTimeout(r, 0, !m);\n ;\n }\n ;\n ;\n };\n };\n;\n e.exports = h;\n});\n__d(\"FullScreen\", [\"JSBNG__Event\",\"Arbiter\",\"CSS\",\"UserAgent\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"UserAgent\"), k = b(\"copyProperties\"), l = b(\"throttle\"), m = {\n }, n = k(new h(), {\n listenForEvent: function(p) {\n var q = l(this.onChange, 0, this);\n if (!m[p.id]) {\n m[p.id] = true;\n g.listen(p, {\n webkitfullscreenchange: q,\n mozfullscreenchange: q,\n fullscreenchange: q\n });\n }\n ;\n ;\n },\n enableFullScreen: function(p) {\n this.listenForEvent(p);\n if (p.webkitRequestFullScreen) {\n if (j.chrome()) {\n p.webkitRequestFullScreen(JSBNG__Element.ALLOW_KEYBOARD_INPUT);\n }\n else p.webkitRequestFullScreen();\n ;\n ;\n }\n else if (p.mozRequestFullScreen) {\n p.mozRequestFullScreen();\n }\n else if (p.requestFullScreen) {\n p.requestFullScreen();\n }\n else return false\n \n \n ;\n return true;\n },\n disableFullScreen: function() {\n if (JSBNG__document.webkitCancelFullScreen) {\n JSBNG__document.webkitCancelFullScreen();\n }\n else if (JSBNG__document.mozCancelFullScreen) {\n JSBNG__document.mozCancelFullScreen();\n }\n else if (JSBNG__document.cancelFullScreen) {\n JSBNG__document.cancelFullScreen();\n }\n else if (JSBNG__document.exitFullScreen) {\n JSBNG__document.exitFullScreen();\n }\n else return false\n \n \n \n ;\n return true;\n },\n isFullScreen: function() {\n return ((((JSBNG__document.webkitIsFullScreen || JSBNG__document.JSBNG__fullScreen)) || JSBNG__document.mozFullScreen));\n },\n toggleFullScreen: function(p) {\n if (this.isFullScreen()) {\n this.disableFullScreen();\n return false;\n }\n else return this.enableFullScreen(p)\n ;\n return false;\n },\n onChange: function() {\n var p = this.isFullScreen();\n i.conditionClass(JSBNG__document.body, \"JSBNG__fullScreen\", p);\n this.inform(\"changed\");\n },\n isSupported: function() {\n return ((((((((JSBNG__document.webkitCancelFullScreen && j.chrome())) || JSBNG__document.mozCancelFullScreen)) || JSBNG__document.cancelFullScreen)) || JSBNG__document.exitFullScreen));\n }\n }), o = l(n.onChange, 0, n);\n g.listen(JSBNG__document, {\n webkitfullscreenchange: o,\n mozfullscreenchange: o,\n fullscreenchange: o\n });\n e.exports = n;\n});\n__d(\"HistoryManager\", [\"JSBNG__Event\",\"function-extensions\",\"Cookie\",\"Env\",\"URI\",\"UserAgent\",\"copyProperties\",\"emptyFunction\",\"goOrReplace\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"Cookie\"), i = b(\"Env\"), j = b(\"URI\"), k = b(\"UserAgent\"), l = b(\"copyProperties\"), m = b(\"emptyFunction\"), n = b(\"goOrReplace\"), o = {\n _IFRAME_BASE_URI: \"http://static.ak.facebook.com/common/history_manager.php\",\n JSBNG__history: null,\n current: 0,\n fragment: null,\n _setIframeSrcFragment: function(p) {\n p = p.toString();\n var q = ((o.JSBNG__history.length - 1));\n o.iframe.src = ((((((((o._IFRAME_BASE_URI + \"?|index=\")) + q)) + \"#\")) + encodeURIComponent(p)));\n return o;\n },\n getIframeSrcFragment: function() {\n return decodeURIComponent(j(o.iframe.contentWindow.JSBNG__document.JSBNG__location.href).getFragment());\n },\n nextframe: function(p, q) {\n if (q) {\n o._setIframeSrcFragment(p);\n return;\n }\n ;\n ;\n if (((p !== undefined))) {\n o.iframeQueue.push(p);\n }\n else {\n o.iframeQueue.splice(0, 1);\n o.iframeTimeout = null;\n o.checkURI();\n }\n ;\n ;\n if (((o.iframeQueue.length && !o.iframeTimeout))) {\n var r = o.iframeQueue[0];\n o.iframeTimeout = JSBNG__setTimeout(function() {\n o._setIframeSrcFragment(r);\n }, 100, false);\n }\n ;\n ;\n },\n isInitialized: function() {\n return !!o._initialized;\n },\n init: function() {\n if (((!i.ALLOW_TRANSITION_IN_IFRAME && ((window != window.JSBNG__top))))) {\n return;\n }\n ;\n ;\n if (o._initialized) {\n return o;\n }\n ;\n ;\n var p = j(), q = ((p.getFragment() || \"\"));\n if (((q.charAt(0) === \"!\"))) {\n q = q.substr(1);\n p.setFragment(q);\n }\n ;\n ;\n if (((j.getRequestURI(false).getProtocol().toLowerCase() == \"https\"))) {\n o._IFRAME_BASE_URI = \"https://s-static.ak.facebook.com/common/history_manager.php\";\n }\n ;\n ;\n l(o, {\n _initialized: true,\n fragment: q,\n orig_fragment: q,\n JSBNG__history: [p,],\n callbacks: [],\n lastChanged: JSBNG__Date.now(),\n canonical: j(\"#\"),\n fragmentTimeout: null,\n user: 0,\n iframeTimeout: null,\n iframeQueue: [],\n enabled: true,\n debug: m\n });\n if (((window.JSBNG__history && JSBNG__history.pushState))) {\n this.lastURI = JSBNG__document.JSBNG__URL;\n window.JSBNG__history.replaceState(this.lastURI, null);\n g.listen(window, \"popstate\", function(r) {\n if (((((r && r.state)) && ((o.lastURI != r.state))))) {\n o.lastURI = r.state;\n o.lastChanged = JSBNG__Date.now();\n o.notify(j(r.state).getUnqualifiedURI().toString());\n }\n ;\n ;\n }.bind(o));\n if (((((k.webkit() < 534)) || ((k.chrome() <= 13))))) {\n JSBNG__setInterval(o.checkURI, 42, false);\n o._updateRefererURI(this.lastURI);\n }\n ;\n ;\n return o;\n }\n ;\n ;\n o._updateRefererURI(j.getRequestURI(false));\n if (((((k.webkit() < 500)) || ((k.firefox() < 2))))) {\n o.enabled = false;\n return o;\n }\n ;\n ;\n if (((k.ie() < 8))) {\n o.iframe = JSBNG__document.createElement(\"div\");\n l(o.iframe.style, {\n width: \"0\",\n height: \"0\",\n frameborder: \"0\",\n left: \"0\",\n JSBNG__top: \"0\",\n position: \"absolute\"\n });\n o._setIframeSrcFragment(q);\n JSBNG__document.body.insertBefore(o.iframe, JSBNG__document.body.firstChild);\n }\n else if (((\"JSBNG__onhashchange\" in window))) {\n g.listen(window, \"hashchange\", function() {\n o.checkURI.bind(o).defer();\n });\n }\n else JSBNG__setInterval(o.checkURI, 42, false);\n \n ;\n ;\n return o;\n },\n registerURIHandler: function(p) {\n o.callbacks.push(p);\n return o;\n },\n setCanonicalLocation: function(p) {\n o.canonical = j(p);\n return o;\n },\n notify: function(p) {\n if (((p == o.orig_fragment))) {\n p = o.canonical.getFragment();\n }\n ;\n ;\n for (var q = 0; ((q < o.callbacks.length)); q++) {\n try {\n if (o.callbacks[q](p)) {\n return true;\n }\n ;\n ;\n } catch (r) {\n \n };\n ;\n };\n ;\n return false;\n },\n checkURI: function() {\n if (((((JSBNG__Date.now() - o.lastChanged)) < 400))) {\n return;\n }\n ;\n ;\n if (((window.JSBNG__history && JSBNG__history.pushState))) {\n var p = j(JSBNG__document.JSBNG__URL).removeQueryData(\"ref\").toString(), q = j(o.lastURI).removeQueryData(\"ref\").toString();\n if (((p != q))) {\n o.lastChanged = JSBNG__Date.now();\n o.lastURI = p;\n if (((k.webkit() < 534))) {\n o._updateRefererURI(p);\n }\n ;\n ;\n o.notify(j(p).getUnqualifiedURI().toString());\n }\n ;\n ;\n return;\n }\n ;\n ;\n if (((((k.ie() < 8)) && o.iframeQueue.length))) {\n return;\n }\n ;\n ;\n if (((k.webkit() && ((window.JSBNG__history.length == 200))))) {\n if (!o.warned) {\n o.warned = true;\n }\n ;\n ;\n return;\n }\n ;\n ;\n var r = j().getFragment();\n if (((r.charAt(0) == \"!\"))) {\n r = r.substr(1);\n }\n ;\n ;\n if (((k.ie() < 8))) {\n r = o.getIframeSrcFragment();\n }\n ;\n ;\n r = r.replace(/%23/g, \"#\");\n if (((r != o.fragment.replace(/%23/g, \"#\")))) {\n o.debug([r,\" vs \",o.fragment,\"whl: \",window.JSBNG__history.length,\"QHL: \",o.JSBNG__history.length,].join(\" \"));\n for (var s = ((o.JSBNG__history.length - 1)); ((s >= 0)); --s) {\n if (((o.JSBNG__history[s].getFragment().replace(/%23/g, \"#\") == r))) {\n break;\n }\n ;\n ;\n };\n ;\n ++o.user;\n if (((s >= 0))) {\n o.go(((s - o.current)));\n }\n else o.go(((\"#\" + r)));\n ;\n ;\n --o.user;\n }\n ;\n ;\n },\n _updateRefererURI: function(p) {\n p = p.toString();\n if (((((p.charAt(0) != \"/\")) && ((p.indexOf(\"//\") == -1))))) {\n return;\n }\n ;\n ;\n var q = new j(window.JSBNG__location);\n if (q.isFacebookURI()) {\n var r = ((q.getPath() + window.JSBNG__location.search));\n }\n else var r = \"\"\n ;\n var s = j(p).getQualifiedURI().setFragment(r).toString(), t = 2048;\n if (((s.length > t))) {\n s = ((s.substring(0, t) + \"...\"));\n }\n ;\n ;\n h.set(\"x-referer\", s);\n },\n go: function(p, q, r) {\n if (((window.JSBNG__history && JSBNG__history.pushState))) {\n ((q || ((typeof (p) == \"number\"))));\n var s = j(p).removeQueryData(\"ref\").toString();\n o.lastChanged = JSBNG__Date.now();\n this.lastURI = s;\n if (r) {\n window.JSBNG__history.replaceState(p, null, s);\n }\n else window.JSBNG__history.pushState(p, null, s);\n ;\n ;\n if (((k.webkit() < 534))) {\n o._updateRefererURI(p);\n }\n ;\n ;\n return false;\n }\n ;\n ;\n o.debug(((\"go: \" + p)));\n if (((q === undefined))) {\n q = true;\n }\n ;\n ;\n if (!o.enabled) {\n if (!q) {\n return false;\n }\n ;\n }\n ;\n ;\n if (((typeof (p) == \"number\"))) {\n if (!p) {\n return false;\n }\n ;\n ;\n var t = ((p + o.current)), u = Math.max(0, Math.min(((o.JSBNG__history.length - 1)), t));\n o.current = u;\n t = ((o.JSBNG__history[u].getFragment() || o.orig_fragment));\n t = j(t).removeQueryData(\"ref\").getUnqualifiedURI().toString();\n o.fragment = t;\n o.lastChanged = JSBNG__Date.now();\n if (((k.ie() < 8))) {\n if (o.fragmentTimeout) {\n JSBNG__clearTimeout(o.fragmentTimeout);\n }\n ;\n ;\n o._temporary_fragment = t;\n o.fragmentTimeout = JSBNG__setTimeout(function() {\n window.JSBNG__location.hash = ((\"#!\" + t));\n delete o._temporary_fragment;\n }, 750, false);\n if (!o.user) {\n o.nextframe(t, r);\n }\n ;\n ;\n }\n else if (!o.user) {\n n(window.JSBNG__location, ((((window.JSBNG__location.href.split(\"#\")[0] + \"#!\")) + t)), r);\n }\n \n ;\n ;\n if (q) {\n o.notify(t);\n }\n ;\n ;\n o._updateRefererURI(t);\n return false;\n }\n ;\n ;\n p = j(p);\n if (((p.getDomain() == j().getDomain()))) {\n p = j(((\"#\" + p.getUnqualifiedURI())));\n }\n ;\n ;\n var v = o.JSBNG__history[o.current].getFragment(), w = p.getFragment();\n if (((((w == v)) || ((((v == o.orig_fragment)) && ((w == o.canonical.getFragment()))))))) {\n if (q) {\n o.notify(w);\n }\n ;\n ;\n o._updateRefererURI(w);\n return false;\n }\n ;\n ;\n if (r) {\n o.current--;\n }\n ;\n ;\n var x = ((((o.JSBNG__history.length - o.current)) - 1));\n o.JSBNG__history.splice(((o.current + 1)), x);\n o.JSBNG__history.push(j(p));\n return o.go(1, q, r);\n },\n getCurrentFragment: function() {\n var p = ((((o._temporary_fragment !== undefined)) ? o._temporary_fragment : j.getRequestURI(false).getFragment()));\n return ((((p == o.orig_fragment)) ? o.canonical.getFragment() : p));\n }\n };\n e.exports = o;\n});\n__d(\"InputSelection\", [\"DOM\",\"Focus\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"Focus\"), i = {\n get: function(j) {\n if (!JSBNG__document.selection) {\n return {\n start: j.selectionStart,\n end: j.selectionEnd\n };\n }\n ;\n ;\n var k = JSBNG__document.selection.createRange();\n if (((k.parentElement() !== j))) {\n return {\n start: 0,\n end: 0\n };\n }\n ;\n ;\n var l = j.value.length;\n if (g.isNodeOfType(j, \"input\")) {\n return {\n start: -k.moveStart(\"character\", -l),\n end: -k.moveEnd(\"character\", -l)\n };\n }\n else {\n var m = k.duplicate();\n m.moveToElementText(j);\n m.setEndPoint(\"StartToEnd\", k);\n var n = ((l - m.text.length));\n m.setEndPoint(\"StartToStart\", k);\n return {\n start: ((l - m.text.length)),\n end: n\n };\n }\n ;\n ;\n },\n set: function(j, k, l) {\n if (((typeof l == \"undefined\"))) {\n l = k;\n }\n ;\n ;\n if (JSBNG__document.selection) {\n if (((j.tagName == \"TEXTAREA\"))) {\n var m = ((j.value.slice(0, k).match(/\\r/g) || [])).length, n = ((j.value.slice(k, l).match(/\\r/g) || [])).length;\n k -= m;\n l -= ((m + n));\n }\n ;\n ;\n var o = j.createTextRange();\n o.collapse(true);\n o.moveStart(\"character\", k);\n o.moveEnd(\"character\", ((l - k)));\n o.select();\n }\n else {\n j.selectionStart = k;\n j.selectionEnd = Math.min(l, j.value.length);\n h.set(j);\n }\n ;\n ;\n }\n };\n e.exports = i;\n});\n__d(\"JSONPTransport\", [\"ArbiterMixin\",\"DOM\",\"HTML\",\"URI\",\"asyncCallback\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"URI\"), k = b(\"asyncCallback\"), l = b(\"copyProperties\"), m = {\n }, n = 2, o = \"jsonp\", p = \"div\";\n function q(s) {\n delete m[s];\n };\n;\n function r(s, t) {\n this._type = s;\n this._uri = t;\n m[this.getID()] = this;\n };\n;\n l(r, {\n respond: function(s, t, u) {\n var v = m[s];\n if (v) {\n if (!u) {\n q(s);\n }\n ;\n ;\n if (((v._type == p))) {\n t = JSON.parse(JSON.stringify(t));\n }\n ;\n ;\n k(v.handleResponse.bind(v), \"json\")(t);\n }\n else {\n var w = a.ErrorSignal;\n if (((w && !u))) {\n w.logJSError(\"ajax\", {\n error: \"UnexpectedJsonResponse\",\n extra: {\n id: s,\n uri: ((((t.payload && t.payload.uri)) || \"\"))\n }\n });\n }\n ;\n ;\n }\n ;\n ;\n }\n });\n l(r.prototype, g, {\n getID: function() {\n return ((this._id || (this._id = n++)));\n },\n hasFinished: function() {\n return !((this.getID() in m));\n },\n getRequestURI: function() {\n return j(this._uri).addQueryData({\n __a: 1,\n __adt: this.getID(),\n __req: ((\"jsonp_\" + this.getID()))\n });\n },\n getTransportFrame: function() {\n if (this._iframe) {\n return this._iframe;\n }\n ;\n ;\n var s = ((\"transport_frame_\" + this.getID())), t = i(((((\"\\u003Ciframe class=\\\"hidden_elem\\\" name=\\\"\" + s)) + \"\\\" src=\\\"javascript:void(0)\\\" /\\u003E\")));\n return this._iframe = h.appendContent(JSBNG__document.body, t)[0];\n },\n send: function() {\n if (((this._type === o))) {\n (function() {\n h.appendContent(JSBNG__document.body, h.create(\"script\", {\n src: this.getRequestURI().toString(),\n type: \"text/javascript\"\n }));\n }).bind(this).defer();\n }\n else this.getTransportFrame().src = this.getRequestURI().toString();\n ;\n ;\n },\n handleResponse: function(s) {\n this.inform(\"response\", s);\n if (this.hasFinished()) {\n this._cleanup.bind(this).defer();\n }\n ;\n ;\n },\n abort: function() {\n if (this._aborted) {\n return;\n }\n ;\n ;\n this._aborted = true;\n this._cleanup();\n q(this.getID());\n this.inform(\"abort\");\n },\n _cleanup: function() {\n if (this._iframe) {\n h.remove(this._iframe);\n this._iframe = null;\n }\n ;\n ;\n }\n });\n e.exports = r;\n});\n__d(\"JSXDOM\", [\"DOM\",\"flattenArray\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"flattenArray\"), i = [\"a\",\"br\",\"button\",\"canvas\",\"checkbox\",\"dd\",\"div\",\"dl\",\"dt\",\"em\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"i\",\"div\",\"img\",\"input\",\"label\",\"li\",\"option\",\"p\",\"pre\",\"select\",\"span\",\"strong\",\"table\",\"tbody\",\"thead\",\"td\",\"textarea\",\"th\",\"tr\",\"ul\",\"video\",], j = {\n };\n i.forEach(function(k) {\n var l = function(m, n) {\n if (((arguments.length > 2))) {\n n = Array.prototype.slice.call(arguments, 1);\n }\n ;\n ;\n if (((!n && m))) {\n n = m.children;\n delete m.children;\n }\n ;\n ;\n if (n) {\n n = ((Array.isArray(n) ? h(n) : h([n,])));\n }\n ;\n ;\n return g.create(k, m, n);\n };\n j[k] = l;\n });\n e.exports = j;\n});\n__d(\"LinkController\", [\"JSBNG__Event\",\"DataStore\",\"Parent\",\"trackReferrer\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"DataStore\"), i = b(\"Parent\"), j = b(\"trackReferrer\"), k = \"LinkControllerHandler\", l = [], m = [];\n function n(JSBNG__event) {\n var r = i.byTag(JSBNG__event.getTarget(), \"a\"), s = ((r && r.getAttribute(\"href\", 2)));\n if (((((((!s || r.rel)) || !p(s))) || h.get(r, k)))) {\n return;\n }\n ;\n ;\n var t = g.listen(r, \"click\", function(u) {\n if (((s.charAt(((s.length - 1))) == \"#\"))) {\n u.prevent();\n return;\n }\n ;\n ;\n j(r, s);\n o(r, u);\n });\n h.set(r, k, t);\n };\n;\n function o(r, JSBNG__event) {\n if (((((((r.target || r.rel)) || JSBNG__event.getModifiers().any)) || ((JSBNG__event.which && ((JSBNG__event.which != 1))))))) {\n return;\n }\n ;\n ;\n var s = l.concat(m);\n for (var t = 0, u = s.length; ((t < u)); t++) {\n if (((s[t](r, JSBNG__event) === false))) {\n return JSBNG__event.prevent();\n }\n ;\n ;\n };\n ;\n };\n;\n function p(r) {\n var s = r.match(/^(\\w+):/);\n return ((!s || s[1].match(/^http/i)));\n };\n;\n var q = {\n registerHandler: function(r) {\n l.push(r);\n },\n registerFallbackHandler: function(r) {\n m.push(r);\n }\n };\n g.listen(JSBNG__document.documentElement, \"mousedown\", n);\n g.listen(JSBNG__document.documentElement, \"keydown\", n);\n e.exports = q;\n});\n__d(\"MenuDeprecated\", [\"JSBNG__Event\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"HTML\",\"Keys\",\"Parent\",\"Style\",\"UserAgent\",\"copyProperties\",\"emptyFunction\",\"Run\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"HTML\"), m = b(\"Keys\"), n = b(\"Parent\"), o = b(\"Style\"), p = b(\"UserAgent\"), q = b(\"copyProperties\"), r = b(\"emptyFunction\"), s = \"menu:mouseover\", t = null;\n function u(ea) {\n if (i.hasClass(ea, \"uiMenuContainer\")) {\n return ea;\n }\n ;\n ;\n return n.byClass(ea, \"uiMenu\");\n };\n;\n function v(ea) {\n return n.byClass(ea, \"uiMenuItem\");\n };\n;\n function w(ea) {\n if (JSBNG__document.activeElement) {\n var fa = v(JSBNG__document.activeElement);\n return ea.indexOf(fa);\n }\n ;\n ;\n return -1;\n };\n;\n function x(ea) {\n return k.JSBNG__find(ea, \"a.itemAnchor\");\n };\n;\n function y(ea) {\n return i.hasClass(ea, \"checked\");\n };\n;\n function z(ea) {\n return ((!i.hasClass(ea, \"disabled\") && ((o.get(ea, \"display\") !== \"none\"))));\n };\n;\n function aa(JSBNG__event) {\n var ea = JSBNG__document.activeElement;\n if (((((!ea || !n.byClass(ea, \"uiMenu\"))) || !k.isInputNode(ea)))) {\n var fa = v(JSBNG__event.getTarget());\n ((fa && da.focusItem(fa)));\n }\n ;\n ;\n };\n;\n function ba(ea) {\n ((p.firefox() && x(ea).JSBNG__blur()));\n da.inform(\"select\", {\n menu: u(ea),\n item: ea\n });\n };\n;\n var ca = function() {\n ca = r;\n var ea = {\n };\n ea.click = function(JSBNG__event) {\n var fa = v(JSBNG__event.getTarget());\n if (((fa && z(fa)))) {\n ba(fa);\n var ga = x(fa), ha = ga.href, ia = ga.getAttribute(\"rel\");\n return ((((ia && ((ia !== \"ignore\")))) || ((ha && ((ha.charAt(((ha.length - 1))) !== \"#\"))))));\n }\n ;\n ;\n };\n ea.keydown = function(JSBNG__event) {\n var fa = JSBNG__event.getTarget();\n if (JSBNG__event.getModifiers().any) {\n return;\n }\n ;\n ;\n if (((!t || k.isInputNode(fa)))) {\n return;\n }\n ;\n ;\n var ga = g.getKeyCode(JSBNG__event), ha;\n switch (ga) {\n case m.UP:\n \n case m.DOWN:\n var ia = da.getEnabledItems(t);\n ha = w(ia);\n da.focusItem(ia[((ha + ((((ga === m.UP)) ? -1 : 1))))]);\n return false;\n case m.SPACE:\n var ja = v(fa);\n if (ja) {\n ba(ja);\n JSBNG__event.prevent();\n }\n ;\n ;\n break;\n default:\n var ka = String.fromCharCode(ga).toLowerCase(), la = da.getEnabledItems(t);\n ha = w(la);\n var ma = ha, na = la.length;\n while (((((~ha && (((ma = ((++ma % na))) !== ha)))) || ((!~ha && ((++ma < na))))))) {\n var oa = da.getItemLabel(la[ma]);\n if (((oa && ((oa.charAt(0).toLowerCase() === ka))))) {\n da.focusItem(la[ma]);\n return false;\n }\n ;\n ;\n };\n ;\n };\n ;\n };\n g.listen(JSBNG__document.body, ea);\n }, da = q(new h(), {\n focusItem: function(ea) {\n if (((ea && z(ea)))) {\n this._removeSelected(u(ea));\n i.addClass(ea, \"selected\");\n x(ea).JSBNG__focus();\n }\n ;\n ;\n },\n getEnabledItems: function(ea) {\n return da.getItems(ea).filter(z);\n },\n getCheckedItems: function(ea) {\n return da.getItems(ea).filter(y);\n },\n getItems: function(ea) {\n return k.scry(ea, \"li.uiMenuItem\");\n },\n getItemLabel: function(ea) {\n return ((ea.getAttribute(\"data-label\", 2) || \"\"));\n },\n isItemChecked: function(ea) {\n return i.hasClass(ea, \"checked\");\n },\n autoregister: function(ea, fa, ga) {\n ea.subscribe(\"show\", function() {\n da.register(fa, ga);\n });\n ea.subscribe(\"hide\", function() {\n da.unregister(fa);\n });\n },\n register: function(ea, fa) {\n ea = u(ea);\n ca();\n if (!j.get(ea, s)) {\n j.set(ea, s, g.listen(ea, \"mouseover\", aa));\n }\n ;\n ;\n if (((fa !== false))) {\n t = ea;\n }\n ;\n ;\n },\n setItemEnabled: function(ea, fa) {\n if (((!fa && !k.scry(ea, \"span.disabledAnchor\")[0]))) {\n k.appendContent(ea, k.create(\"span\", {\n className: ((k.JSBNG__find(ea, \"a\").className + \" disabledAnchor\"))\n }, l(x(ea).innerHTML)));\n }\n ;\n ;\n i.conditionClass(ea, \"disabled\", !fa);\n },\n toggleItem: function(ea) {\n var fa = !da.isItemChecked(ea);\n da.setItemChecked(ea, fa);\n },\n setItemChecked: function(ea, fa) {\n i.conditionClass(ea, \"checked\", fa);\n x(ea).setAttribute(\"aria-checked\", fa);\n },\n unregister: function(ea) {\n ea = u(ea);\n var fa = j.remove(ea, s);\n ((fa && fa.remove()));\n t = null;\n this._removeSelected(ea);\n },\n _removeSelected: function(ea) {\n da.getItems(ea).filter(function(fa) {\n return i.hasClass(fa, \"selected\");\n }).forEach(function(fa) {\n i.removeClass(fa, \"selected\");\n });\n }\n });\n e.exports = da;\n});\n__d(\"coalesce\", [], function(a, b, c, d, e, f) {\n function g() {\n for (var h = 0; ((h < arguments.length)); ++h) {\n if (((arguments[h] != null))) {\n return arguments[h];\n }\n ;\n ;\n };\n ;\n return null;\n };\n;\n e.exports = g;\n});\n__d(\"OnVisible\", [\"Arbiter\",\"DOM\",\"JSBNG__Event\",\"Parent\",\"Run\",\"Vector\",\"ViewportBounds\",\"coalesce\",\"copyProperties\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"DOM\"), i = b(\"JSBNG__Event\"), j = b(\"Parent\"), k = b(\"Run\"), l = b(\"Vector\"), m = b(\"ViewportBounds\"), n = b(\"coalesce\"), o = b(\"copyProperties\"), p = b(\"queryThenMutateDOM\"), q = [], r, s = 0, t = [], u, v, w, x, y;\n function z() {\n q.forEach(function(fa) {\n fa.remove();\n });\n if (v) {\n v.remove();\n u.remove();\n r.unsubscribe();\n v = u = r = null;\n }\n ;\n ;\n s = 0;\n q.length = 0;\n };\n;\n function aa() {\n if (!q.length) {\n z();\n return;\n }\n ;\n ;\n t.length = 0;\n w = l.getScrollPosition().y;\n x = l.getViewportDimensions().y;\n y = m.getTop();\n for (var fa = 0; ((fa < q.length)); ++fa) {\n var ga = q[fa];\n if (isNaN(ga.elementHeight)) {\n t.push(fa);\n }\n ;\n ;\n ga.elementHeight = l.getElementDimensions(ga.element).y;\n ga.elementPos = l.getElementPosition(ga.element);\n ga.hidden = j.byClass(ga.element, \"hidden_elem\");\n if (ga.scrollArea) {\n ga.scrollAreaHeight = l.getElementDimensions(ga.scrollArea).y;\n ga.scrollAreaY = l.getElementPosition(ga.scrollArea).y;\n }\n ;\n ;\n };\n ;\n s = fa;\n };\n;\n function ba() {\n for (var fa = ((Math.min(q.length, s) - 1)); ((fa >= 0)); --fa) {\n var ga = q[fa];\n if (((((!ga.elementPos || ga.removed)) || ga.hidden))) {\n q.splice(fa, 1);\n continue;\n }\n ;\n ;\n var ha = ((((w + x)) + ga.buffer)), ia = false;\n if (((ha > ga.elementPos.y))) {\n var ja = ((!ga.strict || ((((((w + y)) - ga.buffer)) < ((ga.elementPos.y + ga.elementHeight))))));\n ia = ja;\n if (((ia && ga.scrollArea))) {\n var ka = ((((ga.scrollAreaY + ga.scrollAreaHeight)) + ga.buffer));\n ia = ((((ga.elementPos.y > ((ga.scrollAreaY - ga.buffer)))) && ((ga.elementPos.y < ka))));\n }\n ;\n ;\n }\n ;\n ;\n if (((ga.inverse ? !ia : ia))) {\n ga.remove();\n ga.handler(((t.indexOf(fa) !== -1)));\n }\n ;\n ;\n };\n ;\n };\n;\n function ca() {\n da();\n if (q.length) {\n return;\n }\n ;\n ;\n v = i.listen(window, \"JSBNG__scroll\", da);\n u = i.listen(window, \"resize\", da);\n r = g.subscribe(\"dom-scroll\", da);\n };\n;\n function da() {\n p(aa, ba, \"OnVisible/positionCheck\");\n };\n;\n function ea(fa, ga, ha, ia, ja, ka) {\n this.element = fa;\n this.handler = ga;\n this.strict = ha;\n this.buffer = n(ia, 300);\n this.inverse = n(ja, false);\n this.scrollArea = ((ka || null));\n if (this.scrollArea) {\n this.scrollAreaListener = i.listen(h.JSBNG__find(ka, \".uiScrollableAreaWrap\"), \"JSBNG__scroll\", this.checkBuffer);\n }\n ;\n ;\n if (((q.length === 0))) {\n k.onLeave(z);\n }\n ;\n ;\n ca();\n q.push(this);\n };\n;\n o(ea, {\n checkBuffer: da\n });\n o(ea.prototype, {\n remove: function() {\n this.removed = true;\n if (this.scrollAreaListener) {\n this.scrollAreaListener.remove();\n }\n ;\n ;\n },\n reset: function() {\n this.elementHeight = null;\n this.removed = false;\n ((((q.indexOf(this) === -1)) && q.push(this)));\n ca();\n },\n setBuffer: function(fa) {\n this.buffer = fa;\n da();\n },\n checkBuffer: function() {\n da();\n }\n });\n e.exports = ea;\n});\n__d(\"OnloadHooks\", [\"Arbiter\",\"ErrorUtils\",\"InitialJSLoader\",\"OnloadEvent\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ErrorUtils\"), i = b(\"InitialJSLoader\"), j = b(\"OnloadEvent\");\n function k() {\n var r = a.CavalryLogger;\n if (((!window.loaded && r))) {\n r.getInstance().setTimeStamp(\"t_prehooks\");\n }\n ;\n ;\n n(\"onloadhooks\");\n if (((!window.loaded && r))) {\n r.getInstance().setTimeStamp(\"t_hooks\");\n }\n ;\n ;\n window.loaded = true;\n g.inform(\"uipage_onload\", true, g.BEHAVIOR_STATE);\n };\n;\n function l() {\n n(\"onafterloadhooks\");\n window.afterloaded = true;\n };\n;\n function m(r, s) {\n return h.applyWithGuard(r, null, null, function(t) {\n t.event_type = s;\n t.category = \"runhook\";\n });\n };\n;\n function n(r) {\n var s = ((((r == \"onbeforeleavehooks\")) || ((r == \"onbeforeunloadhooks\"))));\n do {\n var t = window[r];\n if (!t) {\n break;\n }\n ;\n ;\n if (!s) {\n window[r] = null;\n }\n ;\n ;\n for (var u = 0; ((u < t.length)); u++) {\n var v = m(t[u], r);\n if (((s && v))) {\n return v;\n }\n ;\n ;\n };\n ;\n } while (((!s && window[r])));\n };\n;\n function o() {\n if (!window.loaded) {\n window.loaded = true;\n n(\"onloadhooks\");\n }\n ;\n ;\n if (!window.afterloaded) {\n window.afterloaded = true;\n n(\"onafterloadhooks\");\n }\n ;\n ;\n };\n;\n function p() {\n g.registerCallback(k, [j.ONLOAD_DOMCONTENT_CALLBACK,i.INITIAL_JS_READY,]);\n g.registerCallback(l, [j.ONLOAD_DOMCONTENT_CALLBACK,j.ONLOAD_CALLBACK,i.INITIAL_JS_READY,]);\n g.subscribe(j.ONBEFOREUNLOAD, function(r, s) {\n s.warn = ((n(\"onbeforeleavehooks\") || n(\"onbeforeunloadhooks\")));\n if (!s.warn) {\n window.loaded = false;\n window.afterloaded = false;\n }\n ;\n ;\n }, g.SUBSCRIBE_NEW);\n g.subscribe(j.ONUNLOAD, function(r, s) {\n n(\"onunloadhooks\");\n n(\"onafterunloadhooks\");\n }, g.SUBSCRIBE_NEW);\n };\n;\n var q = {\n _onloadHook: k,\n _onafterloadHook: l,\n runHook: m,\n runHooks: n,\n keepWindowSetAsLoaded: o\n };\n p();\n a.OnloadHooks = e.exports = q;\n});\n__d(\"areEqual\", [], function(a, b, c, d, e, f) {\n var g = function(k, l, m, n) {\n if (((k === l))) {\n return ((((k !== 0)) || ((((1 / k)) == ((1 / l))))));\n }\n ;\n ;\n if (((((k == null)) || ((l == null))))) {\n return false;\n }\n ;\n ;\n if (((((typeof k != \"object\")) || ((typeof l != \"object\"))))) {\n return false;\n }\n ;\n ;\n var o = Object.prototype.toString, p = o.call(k);\n if (((p != o.call(l)))) {\n return false;\n }\n ;\n ;\n switch (p) {\n case \"[object String]\":\n return ((k == String(l)));\n case \"[object Number]\":\n return ((((isNaN(k) || isNaN(l))) ? false : ((k == Number(l)))));\n case \"[object Date]\":\n \n case \"[object Boolean]\":\n return ((+k == +l));\n case \"[object RegExp]\":\n return ((((((((k.source == l.source)) && ((k.global == l.global)))) && ((k.multiline == l.multiline)))) && ((k.ignoreCase == l.ignoreCase))));\n };\n ;\n var q = m.length;\n while (q--) {\n if (((m[q] == k))) {\n return ((n[q] == l));\n }\n ;\n ;\n };\n ;\n m.push(k);\n n.push(l);\n var r = 0;\n if (((p === \"[object Array]\"))) {\n r = k.length;\n if (((r !== l.length))) {\n return false;\n }\n ;\n ;\n while (r--) {\n if (!g(k[r], l[r], m, n)) {\n return false;\n }\n ;\n ;\n };\n ;\n }\n else {\n if (((k.constructor !== l.constructor))) {\n return false;\n }\n ;\n ;\n if (((k.hasOwnProperty(\"valueOf\") && l.hasOwnProperty(\"valueOf\")))) {\n return ((k.valueOf() == l.valueOf()));\n }\n ;\n ;\n var s = Object.keys(k);\n if (((s.length != Object.keys(l).length))) {\n return false;\n }\n ;\n ;\n for (var t = 0; ((t < s.length)); t++) {\n if (!g(k[s[t]], l[s[t]], m, n)) {\n return false;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n m.pop();\n n.pop();\n return true;\n }, h = [], i = [], j = function(k, l) {\n var m = ((h.length ? h.pop() : [])), n = ((i.length ? i.pop() : [])), o = g(k, l, m, n);\n m.length = 0;\n n.length = 0;\n h.push(m);\n i.push(n);\n return o;\n };\n e.exports = j;\n});\n__d(\"computeRelativeURI\", [\"URI\",\"isEmpty\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = b(\"isEmpty\");\n function i(k, l) {\n if (!l) {\n return k;\n }\n ;\n ;\n if (((l.charAt(0) == \"/\"))) {\n return l;\n }\n ;\n ;\n var m = k.split(\"/\").slice(0, -1);\n ((m[0] !== \"\"));\n l.split(\"/\").forEach(function(n) {\n if (!((n == \".\"))) {\n if (((n == \"..\"))) {\n if (((m.length > 1))) {\n m = m.slice(0, -1);\n }\n ;\n ;\n }\n else m.push(n);\n ;\n }\n ;\n ;\n });\n return m.join(\"/\");\n };\n;\n function j(k, l) {\n var m = new g(), n = l;\n k = new g(k);\n l = new g(l);\n if (((l.getDomain() && !l.isFacebookURI()))) {\n return n;\n }\n ;\n ;\n var o = k, p = [\"Protocol\",\"Domain\",\"Port\",\"Path\",\"QueryData\",\"Fragment\",];\n p.forEach(function(q) {\n var r = ((((q == \"Path\")) && ((o === k))));\n if (r) {\n m.setPath(i(k.getPath(), l.getPath()));\n }\n ;\n ;\n if (!h(l[((\"get\" + q))]())) {\n o = l;\n }\n ;\n ;\n if (!r) {\n m[((\"set\" + q))](o[((\"get\" + q))]());\n }\n ;\n ;\n });\n return m;\n };\n;\n e.exports = j;\n});\n__d(\"escapeJSQuotes\", [], function(a, b, c, d, e, f) {\n function g(h) {\n if (((((((typeof h == \"undefined\")) || ((h == null)))) || !h.valueOf()))) {\n return \"\";\n }\n ;\n ;\n return h.toString().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/\"/g, \"\\\\x22\").replace(/'/g, \"\\\\'\").replace(/</g, \"\\\\x3c\").replace(/>/g, \"\\\\x3e\").replace(/&/g, \"\\\\x26\");\n };\n;\n e.exports = g;\n});\n__d(\"PageTransitions\", [\"Arbiter\",\"Dialog\",\"DOMQuery\",\"DOMScroll\",\"Env\",\"JSBNG__Event\",\"Form\",\"HistoryManager\",\"JSLogger\",\"LinkController\",\"OnloadHooks\",\"Parent\",\"URI\",\"UserAgent\",\"Vector\",\"areEqual\",\"clickRefAction\",\"computeRelativeURI\",\"copyProperties\",\"escapeJSQuotes\",\"ge\",\"goOrReplace\",\"htmlize\",\"setTimeoutAcrossTransitions\",\"startsWith\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Dialog\"), i = b(\"DOMQuery\"), j = b(\"DOMScroll\"), k = b(\"Env\"), l = b(\"JSBNG__Event\"), m = b(\"Form\"), n = b(\"HistoryManager\"), o = b(\"JSLogger\"), p = b(\"LinkController\"), q = b(\"OnloadHooks\"), r = b(\"Parent\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"areEqual\"), w = b(\"clickRefAction\"), x = b(\"computeRelativeURI\"), y = b(\"copyProperties\"), z = b(\"escapeJSQuotes\"), aa = b(\"ge\"), ba = b(\"goOrReplace\"), ca = b(\"htmlize\"), da = b(\"setTimeoutAcrossTransitions\"), ea = b(\"startsWith\"), fa = b(\"tx\"), ga = b(\"userAction\"), ha = {\n };\n function ia(ta, ua) {\n ha[ta.getUnqualifiedURI()] = ua;\n };\n;\n function ja(ta) {\n return ha[ta.getUnqualifiedURI()];\n };\n;\n function ka(ta) {\n delete ha[ta.getUnqualifiedURI()];\n };\n;\n var la = null, ma = null;\n function na(ta) {\n ma = ta;\n da(function() {\n ma = null;\n }, 0);\n };\n;\n function oa(JSBNG__event) {\n if (ma) {\n if (!JSBNG__event.isDefaultPrevented()) {\n pa(ma);\n sa.lookBusy(ma);\n ra.go(ma.getAttribute(\"href\"));\n }\n ;\n ;\n JSBNG__event.prevent();\n }\n else {\n la = JSBNG__event.getTarget();\n da(function() {\n la = null;\n }, 0);\n }\n ;\n ;\n };\n;\n function pa(ta) {\n var ua = ta.getAttribute(\"href\"), va = x(ra._most_recent_uri.getQualifiedURI(), ua).toString();\n if (((ua != va))) {\n ta.setAttribute(\"href\", va);\n }\n ;\n ;\n };\n;\n function qa(JSBNG__event) {\n var ta = JSBNG__event.getTarget();\n if (((m.getAttribute(ta, \"rel\") || m.getAttribute(ta, \"target\")))) {\n return;\n }\n ;\n ;\n w(\"form\", ta, JSBNG__event).set_namespace(\"page_transition\");\n var ua = ga(\"page_transitions\", ta, JSBNG__event, {\n mode: \"DEDUP\"\n }).uai_fallback(null, \"form\"), va = a.ArbiterMonitor;\n if (va) {\n va.initUA(ua, [ta,]);\n }\n ;\n ;\n var wa = new s(((m.getAttribute(ta, \"action\") || \"\"))), xa = x(ra._most_recent_uri, wa);\n ta.setAttribute(\"action\", xa.toString());\n if (((((m.getAttribute(ta, \"method\") || \"GET\")).toUpperCase() === \"GET\"))) {\n var ya = m.serialize(ta), za = la;\n if (((((za && ((((i.isNodeOfType(za, \"input\") && ((za.type === \"submit\")))) || (za = r.byTag(za, \"button\")))))) && za.JSBNG__name))) {\n ya[za.JSBNG__name] = za.value;\n }\n ;\n ;\n ra.go(xa.addQueryData(ya));\n JSBNG__event.kill();\n }\n ;\n ;\n };\n;\n var ra = {\n _transition_handlers: [],\n _scroll_locked: false,\n isInitialized: function() {\n return !!ra._initialized;\n },\n _init: function() {\n if (k.DISABLE_PAGE_TRANSITIONS) {\n return;\n }\n ;\n ;\n if (((!k.ALLOW_TRANSITION_IN_IFRAME && ((window != window.JSBNG__top))))) {\n return;\n }\n ;\n ;\n if (ra._initialized) {\n return ra;\n }\n ;\n ;\n ra._initialized = true;\n var ta = s.getRequestURI(false), ua = ta.getUnqualifiedURI(), va = s(ua).setFragment(null), wa = ua.getFragment();\n if (((((wa.charAt(0) === \"!\")) && ((va.toString() === wa.substr(1)))))) {\n ua = va;\n }\n ;\n ;\n y(ra, {\n _current_uri: ua,\n _most_recent_uri: ua,\n _next_uri: ua\n });\n var xa;\n if (ea(ta.getFragment(), \"/\")) {\n xa = ta.getFragment();\n }\n else xa = ua;\n ;\n ;\n n.init().setCanonicalLocation(((\"#\" + xa))).registerURIHandler(ra._historyManagerHandler);\n p.registerFallbackHandler(na);\n l.listen(JSBNG__document, \"click\", oa, l.Priority._BUBBLE);\n l.listen(JSBNG__document, \"submit\", qa, l.Priority._BUBBLE);\n l.listen(window, \"JSBNG__scroll\", function() {\n if (!ra._scroll_locked) {\n ia(ra._current_uri, u.getScrollPosition());\n }\n ;\n ;\n });\n return ra;\n },\n registerHandler: function(ta, ua) {\n ra._init();\n ua = ((ua || 5));\n if (!ra._transition_handlers[ua]) {\n ra._transition_handlers[ua] = [];\n }\n ;\n ;\n ra._transition_handlers[ua].push(ta);\n },\n getCurrentURI: function(ta) {\n if (((!ra._current_uri && !ta))) {\n return new s(ra._most_recent_uri);\n }\n ;\n ;\n return new s(ra._current_uri);\n },\n getMostRecentURI: function() {\n return new s(ra._most_recent_uri);\n },\n getNextURI: function() {\n return new s(ra._next_uri);\n },\n go: function(ta, ua) {\n var va = new s(ta).removeQueryData(\"quickling\").getQualifiedURI();\n o.create(\"pagetransition\").debug(\"go\", {\n uri: va.toString()\n });\n ka(va);\n ((!ua && w(\"uri\", {\n href: va.toString()\n }, null, \"INDIRECT\")));\n sa.lookBusy();\n ra._loadPage(va, function(wa) {\n if (wa) {\n n.go(va.toString(), false, ua);\n }\n else ba(window.JSBNG__location, va, ua);\n ;\n ;\n });\n },\n _historyManagerHandler: function(ta) {\n if (((ta.charAt(0) != \"/\"))) {\n return false;\n }\n ;\n ;\n w(\"h\", {\n href: ta\n });\n ga(\"page_transitions\").uai(null, \"history_manager\");\n ra._loadPage(new s(ta), function(ua) {\n if (!ua) {\n ba(window.JSBNG__location, ta, true);\n }\n ;\n ;\n });\n return true;\n },\n _loadPage: function(ta, ua) {\n if (((s(ta).getFragment() && v(s(ta).setFragment(null).getQualifiedURI(), s(ra._current_uri).setFragment(null).getQualifiedURI())))) {\n if (ra.restoreScrollPosition(ta)) {\n ra._current_uri = ra._most_recent_uri = ta;\n sa.stopLookingBusy();\n return;\n }\n ;\n }\n ;\n ;\n var va;\n if (ra._current_uri) {\n va = ja(ra._current_uri);\n }\n ;\n ;\n ra._current_uri = null;\n ra._next_uri = ta;\n if (va) {\n j.JSBNG__scrollTo(va, false);\n }\n ;\n ;\n var wa = function() {\n ra._scroll_locked = true;\n var ya = ra._handleTransition(ta);\n ((ua && ua(ya)));\n }, xa = q.runHooks(\"onbeforeleavehooks\");\n if (xa) {\n sa.stopLookingBusy();\n ra._warnBeforeLeaving(xa, wa);\n }\n else wa();\n ;\n ;\n },\n _handleTransition: function(ta) {\n window.onbeforeleavehooks = undefined;\n sa.lookBusy();\n if (!ta.isSameOrigin()) {\n return false;\n }\n ;\n ;\n var ua = ((window.AsyncRequest && window.AsyncRequest.getLastID()));\n g.inform(\"pre_page_transition\", {\n from: ra.getMostRecentURI(),\n to: ta\n });\n for (var va = ((ra._transition_handlers.length - 1)); ((va >= 0)); --va) {\n var wa = ra._transition_handlers[va];\n if (!wa) {\n continue;\n }\n ;\n ;\n for (var xa = ((wa.length - 1)); ((xa >= 0)); --xa) {\n if (((wa[xa](ta) === true))) {\n var ya = {\n sender: this,\n uri: ta,\n id: ua\n };\n try {\n g.inform(\"page_transition\", ya);\n } catch (za) {\n \n };\n ;\n return true;\n }\n else wa.splice(xa, 1);\n ;\n ;\n };\n ;\n };\n ;\n return false;\n },\n unifyURI: function() {\n ra._current_uri = ra._most_recent_uri = ra._next_uri;\n },\n transitionComplete: function(ta) {\n ra._executeCompletionCallback();\n sa.stopLookingBusy();\n ra.unifyURI();\n if (!ta) {\n ra.restoreScrollPosition(ra._current_uri);\n }\n ;\n ;\n try {\n if (((JSBNG__document.activeElement && ((JSBNG__document.activeElement.nodeName === \"A\"))))) {\n JSBNG__document.activeElement.JSBNG__blur();\n }\n ;\n ;\n } catch (ua) {\n \n };\n ;\n },\n _executeCompletionCallback: function() {\n if (ra._completionCallback) {\n ra._completionCallback();\n }\n ;\n ;\n ra._completionCallback = null;\n },\n setCompletionCallback: function(ta) {\n ra._completionCallback = ta;\n },\n rewriteCurrentURI: function(ta, ua) {\n ra.registerHandler(function() {\n if (((ta == ra.getMostRecentURI().getUnqualifiedURI().toString()))) {\n ra.transitionComplete();\n return true;\n }\n ;\n ;\n });\n ra.go(ua, true);\n },\n _warnBeforeLeaving: function(ta, ua) {\n new h().setTitle(\"Are you sure you want to leave this page?\").setBody(ca(ta)).setButtons([{\n JSBNG__name: \"leave_page\",\n label: \"Leave this Page\",\n handler: ua\n },{\n JSBNG__name: \"continue_editing\",\n label: \"Stay on this Page\",\n className: \"inputaux\"\n },]).setModal(true).show();\n },\n restoreScrollPosition: function(ta) {\n ra._scroll_locked = false;\n var ua = ja(ta);\n if (ua) {\n j.JSBNG__scrollTo(ua, false);\n return true;\n }\n ;\n ;\n function va(ya) {\n if (!ya) {\n return null;\n }\n ;\n ;\n var za = ((((\"a[name='\" + z(ya))) + \"']\"));\n return ((i.scry(JSBNG__document.body, za)[0] || aa(ya)));\n };\n ;\n var wa = va(s(ta).getFragment());\n if (wa) {\n var xa = u.getElementPosition(wa);\n xa.x = 0;\n j.JSBNG__scrollTo(xa);\n return true;\n }\n ;\n ;\n return false;\n }\n }, sa = ((window._BusyUIManager || {\n _looking_busy: false,\n _original_cursors: [],\n lookBusy: function(ta) {\n if (ta) {\n sa._giveProgressCursor(ta);\n }\n ;\n ;\n if (sa._looking_busy) {\n return;\n }\n ;\n ;\n sa._looking_busy = true;\n sa._giveProgressCursor(JSBNG__document.documentElement);\n },\n stopLookingBusy: function() {\n if (!sa._looking_busy) {\n return;\n }\n ;\n ;\n sa._looking_busy = false;\n while (sa._original_cursors.length) {\n var ta = sa._original_cursors.pop(), ua = ta[0], va = ta[1];\n if (ua.style) {\n ua.style.cursor = ((va || \"\"));\n }\n ;\n ;\n };\n ;\n },\n _giveProgressCursor: function(ta) {\n if (!t.webkit()) {\n sa._original_cursors.push([ta,ta.style.cursor,]);\n ta.style.cursor = \"progress\";\n }\n ;\n ;\n }\n }));\n e.exports = ra;\n a.PageTransitions = ra;\n});\n__d(\"PixelRatio\", [\"Arbiter\",\"Cookie\",\"Run\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Cookie\"), i = b(\"Run\"), j = \"dpr\", k, l;\n function m() {\n return ((window.JSBNG__devicePixelRatio || 1));\n };\n;\n function n() {\n h.set(j, m());\n };\n;\n function o() {\n h.clear(j);\n };\n;\n function p() {\n var r = m();\n if (((r !== k))) {\n n();\n }\n else o();\n ;\n ;\n };\n;\n var q = {\n startDetecting: function(r) {\n k = ((r || 1));\n o();\n if (l) {\n return;\n }\n ;\n ;\n l = [g.subscribe(\"pre_page_transition\", p),];\n i.onBeforeUnload(p);\n }\n };\n e.exports = q;\n});\n__d(\"LayerHideOnTransition\", [\"function-extensions\",\"PageTransitions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"PageTransitions\"), h = b(\"copyProperties\");\n function i(j) {\n this._layer = j;\n };\n;\n h(i.prototype, {\n _enabled: false,\n _subscribed: false,\n enable: function() {\n this._enabled = true;\n if (!this._subscribed) {\n this._subscribe.bind(this).defer();\n this._subscribed = true;\n }\n ;\n ;\n },\n disable: function() {\n this._enabled = false;\n },\n _subscribe: function() {\n g.registerHandler(function() {\n if (this._enabled) {\n this._layer.hide();\n }\n ;\n ;\n this._subscribed = false;\n }.bind(this));\n }\n });\n e.exports = i;\n});\n__d(\"JSBNG__Rect\", [\"Vector\",\"$\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Vector\"), h = b(\"$\"), i = b(\"copyProperties\");\n function j(k, l, m, n, o) {\n if (((arguments.length === 1))) {\n if (((k instanceof j))) {\n return k;\n }\n ;\n ;\n if (((k instanceof g))) {\n return new j(k.y, k.x, k.y, k.x, k.domain);\n }\n ;\n ;\n return j.getElementBounds(h(k));\n }\n ;\n ;\n i(this, {\n t: k,\n r: l,\n b: m,\n l: n,\n domain: ((o || \"pure\"))\n });\n };\n;\n i(j.prototype, {\n w: function() {\n return ((this.r - this.l));\n },\n h: function() {\n return ((this.b - this.t));\n },\n toString: function() {\n return ((((((((((((((((\"((\" + this.l)) + \", \")) + this.t)) + \"), (\")) + this.r)) + \", \")) + this.b)) + \"))\"));\n },\n contains: function(k) {\n k = new j(k).convertTo(this.domain);\n var l = this;\n return ((((((((l.l <= k.l)) && ((l.r >= k.r)))) && ((l.t <= k.t)))) && ((l.b >= k.b))));\n },\n add: function(k, l) {\n if (((arguments.length == 1))) {\n if (((k.domain != \"pure\"))) {\n k = k.convertTo(this.domain);\n }\n ;\n ;\n return this.add(k.x, k.y);\n }\n ;\n ;\n var m = parseFloat(k), n = parseFloat(l);\n return new j(((this.t + n)), ((this.r + m)), ((this.b + n)), ((this.l + m)), this.domain);\n },\n sub: function(k, l) {\n if (((arguments.length == 1))) {\n return this.add(k.mul(-1));\n }\n else return this.add(-k, -l)\n ;\n },\n rotateAroundOrigin: function(k) {\n var l = this.getCenter().rotate(((((k * Math.PI)) / 2))), m, n;\n if (((k % 2))) {\n m = this.h();\n n = this.w();\n }\n else {\n m = this.w();\n n = this.h();\n }\n ;\n ;\n var o = ((l.y - ((n / 2)))), p = ((l.x - ((m / 2)))), q = ((o + n)), r = ((p + m));\n return new j(o, r, q, p);\n },\n boundWithin: function(k) {\n var l = 0, m = 0;\n if (((this.l < k.l))) {\n l = ((k.l - this.l));\n }\n else if (((this.r > k.r))) {\n l = ((k.r - this.r));\n }\n \n ;\n ;\n if (((this.t < k.t))) {\n m = ((k.t - this.t));\n }\n else if (((this.b > k.b))) {\n m = ((k.b - this.b));\n }\n \n ;\n ;\n return this.add(l, m);\n },\n getCenter: function() {\n return new g(((this.l + ((this.w() / 2)))), ((this.t + ((this.h() / 2)))), this.domain);\n },\n getPositionVector: function() {\n return new g(this.l, this.t, this.domain);\n },\n getDimensionVector: function() {\n return new g(this.w(), this.h(), \"pure\");\n },\n convertTo: function(k) {\n if (((this.domain == k))) {\n return this;\n }\n ;\n ;\n if (((k == \"pure\"))) {\n return new j(this.t, this.r, this.b, this.l, \"pure\");\n }\n ;\n ;\n if (((this.domain == \"pure\"))) {\n return new j(0, 0, 0, 0);\n }\n ;\n ;\n var l = new g(this.l, this.t, this.domain).convertTo(k);\n return new j(l.y, ((l.x + this.w())), ((l.y + this.h())), l.x, k);\n }\n });\n i(j, {\n deserialize: function(k) {\n var l = k.split(\":\");\n return new j(parseFloat(l[1]), parseFloat(l[2]), parseFloat(l[3]), parseFloat(l[0]));\n },\n newFromVectors: function(k, l) {\n return new j(k.y, ((k.x + l.x)), ((k.y + l.y)), k.x, k.domain);\n },\n getElementBounds: function(k) {\n return j.newFromVectors(g.getElementPosition(k), g.getElementDimensions(k));\n },\n getViewportBounds: function() {\n return j.newFromVectors(g.getScrollPosition(), g.getViewportDimensions());\n },\n minimumBoundingBox: function(k) {\n var l = new j(Math.min(), Math.max(), Math.max(), Math.min()), m;\n for (var n = 0; ((n < k.length)); n++) {\n m = k[n];\n l.t = Math.min(l.t, m.t);\n l.r = Math.max(l.r, m.r);\n l.b = Math.max(l.b, m.b);\n l.l = Math.min(l.l, m.l);\n };\n ;\n return l;\n }\n });\n e.exports = j;\n});\n__d(\"SVGChecker\", [], function(a, b, c, d, e, f) {\n e.exports = {\n isSVG: function(g) {\n return ((!!g.ownerSVGElement || ((g.tagName.toLowerCase() === \"svg\"))));\n },\n isDisplayed: function(g) {\n try {\n var i = g.getBBox();\n if (((i && ((((i.height === 0)) || ((i.width === 0))))))) {\n return false;\n }\n ;\n ;\n } catch (h) {\n return false;\n };\n ;\n return true;\n }\n };\n});\n__d(\"arrayContains\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n return ((h.indexOf(i) != -1));\n };\n;\n e.exports = g;\n});\n__d(\"ContextualLayer\", [\"JSBNG__Event\",\"Arbiter\",\"ARIA\",\"Class\",\"ContextualThing\",\"CSS\",\"DataStore\",\"DOM\",\"Layer\",\"LayerHideOnTransition\",\"Locale\",\"Parent\",\"JSBNG__Rect\",\"Style\",\"Vector\",\"SVGChecker\",\"arrayContains\",\"copyProperties\",\"emptyFunction\",\"getOverlayZIndex\",\"removeFromArray\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ARIA\"), j = b(\"Class\"), k = b(\"ContextualThing\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"Layer\"), p = b(\"LayerHideOnTransition\"), q = b(\"Locale\"), r = b(\"Parent\"), s = b(\"JSBNG__Rect\"), t = b(\"Style\"), u = b(\"Vector\"), v = b(\"SVGChecker\"), w = b(\"arrayContains\"), x = b(\"copyProperties\"), y = b(\"emptyFunction\"), z = b(\"getOverlayZIndex\"), aa = b(\"removeFromArray\"), ba = b(\"throttle\");\n function ca(ja) {\n return ((((ja.getPosition() === \"left\")) || ((ja.isVertical() && ((ja.getAlignment() === \"right\"))))));\n };\n;\n function da(ja) {\n var ka = ja.parentNode;\n if (ka) {\n var la = t.get(ka, \"position\");\n if (((la === \"static\"))) {\n if (((ka === JSBNG__document.body))) {\n ka = JSBNG__document.documentElement;\n }\n else ka = da(ka);\n ;\n ;\n }\n else return ka\n ;\n }\n else ka = JSBNG__document.documentElement;\n ;\n ;\n return ka;\n };\n;\n function ea(ja, ka) {\n this.parent.construct(this, ja, ka);\n };\n;\n var fa = [];\n h.subscribe(\"reflow\", function() {\n fa.forEach(function(ja) {\n if (((ja.updatePosition() === false))) {\n ja.hide();\n }\n ;\n ;\n });\n });\n j.extend(ea, o);\n x(ea.prototype, {\n _contentWrapper: null,\n _content: null,\n _contextNode: null,\n _contextBounds: null,\n _contextSelector: null,\n _parentLayer: null,\n _parentSubscription: null,\n _orientation: null,\n _orientationClass: null,\n _shouldSetARIAProperties: true,\n _configure: function(ja, ka) {\n this.parent._configure(ja, ka);\n if (ja.context) {\n this.setContext(ja.context);\n }\n else if (ja.contextID) {\n this._setContextID(ja.contextID);\n }\n else if (ja.contextSelector) {\n this._setContextSelector(ja.contextSelector);\n }\n \n \n ;\n ;\n this.setPosition(ja.position);\n this.setAlignment(ja.alignment);\n this.setOffsetX(ja.offsetX);\n this.setOffsetY(ja.offsetY);\n this._content = ka;\n },\n _getDefaultBehaviors: function() {\n return this.parent._getDefaultBehaviors().concat([p,]);\n },\n _buildWrapper: function(ja, ka) {\n this._contentWrapper = n.create(\"div\", {\n className: \"uiContextualLayer\"\n }, ka);\n return n.create(\"div\", {\n className: \"uiContextualLayerPositioner\"\n }, this._contentWrapper);\n },\n getInsertParent: function() {\n var ja = this._insertParent;\n if (!ja) {\n var ka = this.getContext();\n if (ka) {\n ja = r.byClass(ka, \"uiContextualLayerParent\");\n }\n ;\n ;\n }\n ;\n ;\n return ((ja || this.parent.getInsertParent()));\n },\n setContent: function(ja) {\n this._content = ja;\n n.setContent(this._contentWrapper, this._content);\n ((this._shown && this.updatePosition()));\n return this;\n },\n setContext: function(ja) {\n return this.setContextWithBounds(ja, null);\n },\n setContextWithBounds: function(ja, ka) {\n this._contextNode = ja;\n this._contextBounds = ((ka || null));\n this._contextSelector = this._contextScrollParent = null;\n if (this._shown) {\n k.register(this.getRoot(), this._contextNode);\n this.updatePosition();\n }\n ;\n ;\n this._setParentSubscription();\n this.setARIAProperties();\n return this;\n },\n shouldSetARIAProperties: function(ja) {\n this._shouldSetARIAProperties = ja;\n return this;\n },\n setARIAProperties: function() {\n if (this._shouldSetARIAProperties) {\n i.setPopup(this.getCausalElement(), this.getRoot());\n }\n ;\n ;\n return this;\n },\n _setContextID: function(ja) {\n this._contextSelector = ((\"#\" + ja));\n this._contextNode = null;\n },\n _setContextSelector: function(ja) {\n this._contextSelector = ja;\n this._contextNode = null;\n },\n getCausalElement: function() {\n return ((this.parent.getCausalElement() || this.getContext()));\n },\n _setParentSubscription: function() {\n var ja = this.getContext(), ka = null;\n while (((ja !== null))) {\n ka = m.get(ja, \"layer\");\n if (ka) {\n break;\n }\n ;\n ;\n ja = ja.parentNode;\n };\n ;\n if (((ka === this._parentLayer))) {\n return;\n }\n ;\n ;\n if (((this._parentLayer && this._parentSubscription))) {\n this._parentLayer.unsubscribe(this._parentSubscription);\n this._parentSubscription = null;\n }\n ;\n ;\n if (ka) {\n this._parentSubscription = ka.subscribe(\"hide\", this.hide.bind(this));\n }\n ;\n ;\n this._parentLayer = ka;\n },\n setPosition: function(ja) {\n if (this._getOrientation().setDefaultPosition(ja)) {\n ((this._shown && this.updatePosition()));\n }\n ;\n ;\n return this;\n },\n setAlignment: function(ja) {\n if (this._getOrientation().setDefaultAlignment(ja)) {\n ((this._shown && this.updatePosition()));\n }\n ;\n ;\n return this;\n },\n setOffsetX: function(ja) {\n if (this._getOrientation().setDefaultOffsetX(ja)) {\n ((this._shown && this.updatePosition()));\n }\n ;\n ;\n return this;\n },\n setOffsetY: function(ja) {\n if (this._getOrientation().setDefaultOffsetY(ja)) {\n ((this._shown && this.updatePosition()));\n }\n ;\n ;\n return this;\n },\n _getOrientation: function() {\n if (!this._orientation) {\n this._orientation = new ia();\n }\n ;\n ;\n return this._orientation;\n },\n getContentRoot: function() {\n return this._contentWrapper;\n },\n getContent: function() {\n return this._content;\n },\n getContext: function() {\n if (!this._contextNode) {\n this._contextNode = n.JSBNG__find(JSBNG__document, this._contextSelector);\n }\n ;\n ;\n return this._contextNode;\n },\n getContextBounds: function(ja) {\n if (this._contextBounds) {\n return this._contextBounds.convertTo(ja);\n }\n ;\n ;\n var ka = this.getContext();\n return s.newFromVectors(u.getElementPosition(ka, ja), u.getElementDimensions(ka));\n },\n getContextScrollParent: function() {\n if (!this._contextScrollParent) {\n this._contextScrollParent = t.getScrollParent(this.getContext());\n }\n ;\n ;\n return this._contextScrollParent;\n },\n setInsertParent: function(ja) {\n this._insertScrollParent = null;\n return this.parent.setInsertParent(ja);\n },\n getInsertScrollParent: function() {\n if (!this._insertScrollParent) {\n this._insertScrollParent = t.getScrollParent(this.getInsertParent());\n }\n ;\n ;\n return this._insertScrollParent;\n },\n show: function() {\n if (this._shown) {\n return this;\n }\n ;\n ;\n this.parent.show();\n if (this._shown) {\n k.register(this.getRoot(), this.getContext());\n fa.push(this);\n this._resizeListener = ((this._resizeListener || g.listen(window, \"resize\", ba(this.updatePosition.bind(this)))));\n }\n ;\n ;\n return this;\n },\n finishHide: function() {\n aa(fa, this);\n ((this._resizeListener && this._resizeListener.remove()));\n this._resizeListener = null;\n return this.parent.finishHide();\n },\n isFixed: function() {\n return ((t.isFixed(this.getContext()) && !t.isFixed(this.getInsertParent())));\n },\n updatePosition: function() {\n var ja = this.getContext();\n if (!ja) {\n return false;\n }\n ;\n ;\n var ka = this.isFixed();\n if (((!ka && !((ja.offsetParent || ((v.isSVG(ja) && v.isDisplayed(ja)))))))) {\n return false;\n }\n ;\n ;\n var la = this.getRoot();\n t.set(la, \"width\", ((u.getViewportDimensions().x + \"px\")));\n var ma = this._getOrientation();\n this.inform(\"adjust\", ma.reset());\n if (!ma.isValid()) {\n return false;\n }\n ;\n ;\n this._updateWrapperPosition(ma);\n this._updateWrapperClass(ma);\n l.conditionClass(la, \"uiContextualLayerPositionerFixed\", ka);\n var na, oa, pa = ((ka ? \"viewport\" : \"JSBNG__document\")), qa = ((ka ? JSBNG__document.documentElement : da(la)));\n if (((qa === JSBNG__document.documentElement))) {\n na = new u(0, 0);\n oa = JSBNG__document.documentElement.clientWidth;\n }\n else if (!la.offsetParent) {\n return false;\n }\n else {\n na = u.getElementPosition(qa, pa);\n oa = qa.offsetWidth;\n if (((qa !== JSBNG__document.body))) {\n na = na.sub(new u(qa.scrollLeft, qa.scrollTop));\n }\n ;\n ;\n }\n \n ;\n ;\n var ra = this.getContextBounds(pa), sa = ((ra.l - na.x)), ta = ((ra.t - na.y)), ua = ra.h(), va = ra.w(), wa = q.isRTL();\n if (((ma.getPosition() === \"below\"))) {\n ta += ua;\n }\n ;\n ;\n if (((((((ma.getPosition() === \"right\")) || ((ma.isVertical() && ((ma.getAlignment() === \"right\")))))) != wa))) {\n sa += va;\n }\n ;\n ;\n var xa = ma.getOffsetX();\n if (((ma.isVertical() && ((ma.getAlignment() === \"center\"))))) {\n xa += ((((va - this.getContentRoot().offsetWidth)) / 2));\n }\n ;\n ;\n if (wa) {\n xa *= -1;\n }\n ;\n ;\n var ya = \"left\", za = Math.floor(((sa + xa)));\n if (((ca(ma) !== wa))) {\n ya = \"right\";\n za = ((oa - za));\n }\n ;\n ;\n t.set(la, ya, ((za + \"px\")));\n t.set(la, ((((ya === \"left\")) ? \"right\" : \"left\")), \"\");\n var ab = this.getInsertScrollParent(), bb;\n if (((ab !== window))) {\n bb = ab.clientWidth;\n }\n else bb = JSBNG__document.documentElement.clientWidth;\n ;\n ;\n var cb = u.getElementPosition(la).x;\n if (((ya === \"left\"))) {\n if (((((bb - cb)) > 0))) {\n t.set(la, \"width\", ((((bb - cb)) + \"px\")));\n }\n else t.set(la, \"width\", \"\");\n ;\n ;\n }\n else t.set(la, \"width\", ((((cb + la.offsetWidth)) + \"px\")));\n ;\n ;\n t.set(la, \"JSBNG__top\", ((((ta + ma.getOffsetY())) + \"px\")));\n var db = z(ja, this.getInsertParent());\n t.set(la, \"z-index\", ((((db > 200)) ? db : \"\")));\n this.inform(\"reposition\", ma);\n return true;\n },\n _updateWrapperPosition: function(ja) {\n var ka = ((ja.getPosition() === \"above\"));\n t.set(this._contentWrapper, \"bottom\", ((ka ? \"0\" : null)));\n var la = ((q.isRTL() ? \"left\" : \"right\")), ma = ca(ja);\n t.set(this._contentWrapper, la, ((ma ? \"0\" : null)));\n },\n _updateWrapperClass: function(ja) {\n var ka = ja.getClassName();\n if (((ka === this._orientationClass))) {\n return;\n }\n ;\n ;\n if (this._orientationClass) {\n l.removeClass(this._contentWrapper, this._orientationClass);\n }\n ;\n ;\n this._orientationClass = ka;\n l.addClass(this._contentWrapper, ka);\n },\n simulateOrientation: function(ja, ka) {\n var la = ja.getClassName();\n if (((la === this._orientationClass))) {\n return ka();\n }\n else {\n if (this._orientationClass) {\n l.removeClass(this._contentWrapper, this._orientationClass);\n }\n ;\n ;\n l.addClass(this._contentWrapper, la);\n var ma = ka();\n l.removeClass(this._contentWrapper, la);\n if (this._orientationClass) {\n l.addClass(this._contentWrapper, this._orientationClass);\n }\n ;\n ;\n return ma;\n }\n ;\n ;\n },\n destroy: function() {\n this.parent.destroy();\n this._contentWrapper = null;\n this._content = null;\n return this;\n }\n });\n var ga = y.thatReturnsArgument, ha = y.thatReturnsArgument;\n function ia() {\n this._default = {\n _position: \"above\",\n _alignment: \"left\",\n _offsetX: 0,\n _offsetY: 0,\n _valid: true\n };\n this.reset();\n };\n;\n ia.OPPOSITE = {\n above: \"below\",\n below: \"above\",\n left: \"right\",\n right: \"left\"\n };\n x(ia.prototype, {\n setPosition: function(ja) {\n this._position = ga(ja);\n return this;\n },\n setAlignment: function(ja) {\n this._alignment = ha(ja);\n return this;\n },\n getOppositePosition: function() {\n return ia.OPPOSITE[this.getPosition()];\n },\n invalidate: function() {\n this._valid = false;\n return this;\n },\n getPosition: function() {\n return ((this._position || \"above\"));\n },\n getAlignment: function() {\n return ((this._alignment || \"left\"));\n },\n getOffsetX: function() {\n var ja = ((this._offsetX || 0));\n if (!this.isVertical()) {\n if (((this._default._position !== this._position))) {\n ja *= -1;\n }\n ;\n ;\n }\n else if (((this._default._alignment !== this._alignment))) {\n ja *= -1;\n }\n \n ;\n ;\n return ja;\n },\n getOffsetY: function() {\n var ja = ((this._offsetY || 0));\n if (((this.isVertical() && ((this._default._position !== this._position))))) {\n ja *= -1;\n }\n ;\n ;\n return ja;\n },\n getClassName: function() {\n var ja = this.getAlignment(), ka = this.getPosition();\n if (((ka === \"below\"))) {\n if (((ja === \"left\"))) {\n return \"uiContextualLayerBelowLeft\";\n }\n else if (((ja === \"right\"))) {\n return \"uiContextualLayerBelowRight\";\n }\n else return \"uiContextualLayerBelowCenter\"\n \n ;\n }\n else if (((ka === \"above\"))) {\n if (((ja === \"left\"))) {\n return \"uiContextualLayerAboveLeft\";\n }\n else if (((ja === \"right\"))) {\n return \"uiContextualLayerAboveRight\";\n }\n else return \"uiContextualLayerAboveCenter\"\n \n ;\n }\n else if (((ka === \"left\"))) {\n return \"uiContextualLayerLeft\";\n }\n else return \"uiContextualLayerRight\"\n \n \n ;\n },\n isValid: function() {\n return this._valid;\n },\n isVertical: function() {\n return ((((this.getPosition() === \"above\")) || ((this.getPosition() === \"below\"))));\n },\n reset: function(ja, ka) {\n x(this, this._default);\n return this;\n },\n setDefaultPosition: function(ja) {\n var ka = this._default._position;\n this._default._position = ga(ja);\n return ((ka !== ja));\n },\n setDefaultAlignment: function(ja) {\n var ka = this._default._alignment;\n this._default._alignment = ha(ja);\n return ((ka !== ja));\n },\n setDefaultOffsetX: function(ja) {\n var ka = this._default._offsetX;\n this._default._offsetX = ja;\n return ((ka !== ja));\n },\n setDefaultOffsetY: function(ja) {\n var ka = this._default._offsetY;\n this._default._offsetY = ja;\n return ((ka !== ja));\n }\n });\n e.exports = ea;\n});\n__d(\"ContextualLayerHideOnScroll\", [\"JSBNG__Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\");\n function i(j) {\n this._layer = j;\n };\n;\n h(i.prototype, {\n _subscriptions: [],\n enable: function() {\n this._subscriptions = [this._layer.subscribe(\"contextchange\", this._handleContextChange.bind(this)),this._layer.subscribe(\"show\", this.attach.bind(this)),this._layer.subscribe(\"hide\", this.detach.bind(this)),];\n },\n disable: function() {\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this.detach();\n },\n attach: function() {\n if (this._listener) {\n return;\n }\n ;\n ;\n var j = this._layer.getContextScrollParent();\n if (((j === window))) {\n return;\n }\n ;\n ;\n this._listener = g.listen(j, \"JSBNG__scroll\", this._layer.hide.bind(this._layer));\n },\n detach: function() {\n ((this._listener && this._listener.remove()));\n this._listener = null;\n },\n _handleContextChange: function() {\n this.detach();\n if (this._layer.isShown()) {\n this.attach();\n }\n ;\n ;\n }\n });\n e.exports = i;\n});\n__d(\"LayerHideOnEscape\", [\"JSBNG__Event\",\"copyProperties\",\"Keys\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\"), i = b(\"Keys\");\n function j(k) {\n this._layer = k;\n };\n;\n h(j.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"key\", this._handle.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _handle: function(k, JSBNG__event) {\n if (((g.getKeyCode(JSBNG__event) === i.ESC))) {\n this._layer.hide();\n return false;\n }\n ;\n ;\n }\n });\n e.exports = j;\n});\n__d(\"TabbableElements\", [\"Style\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"Style\"), h = b(\"createArrayFrom\");\n function i(l) {\n if (((l.tabIndex >= 0))) {\n return true;\n }\n ;\n ;\n switch (l.tagName) {\n case \"A\":\n return ((l.href && ((l.rel != \"ignore\"))));\n case \"INPUT\":\n return ((((((l.type != \"hidden\")) && ((l.type != \"file\")))) && !l.disabled));\n case \"BUTTON\":\n \n case \"SELECT\":\n \n case \"TEXTAREA\":\n return !l.disabled;\n };\n ;\n return false;\n };\n;\n function j(l) {\n if (((((l.offsetHeight === 0)) && ((l.offsetWidth === 0))))) {\n return false;\n }\n ;\n ;\n while (((((l !== JSBNG__document)) && ((g.get(l, \"visibility\") != \"hidden\"))))) {\n l = l.parentNode;\n ;\n };\n ;\n return ((l === JSBNG__document));\n };\n;\n var k = {\n JSBNG__find: function(l) {\n var m = h(l.getElementsByTagName(\"*\"));\n return m.filter(k.isTabbable);\n },\n isTabbable: function(l) {\n return ((i(l) && j(l)));\n }\n };\n e.exports = k;\n});\n__d(\"Toggler\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"ContextualThing\",\"CSS\",\"DataStore\",\"Dialog\",\"DOM\",\"DOMQuery\",\"Focus\",\"Parent\",\"TabbableElements\",\"arrayContains\",\"cx\",\"copyProperties\",\"createArrayFrom\",\"emptyFunction\",\"ge\",\"getContextualParent\",\"getObjectValues\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ContextualThing\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"Dialog\"), n = b(\"DOM\"), o = b(\"DOMQuery\"), p = b(\"Focus\"), q = b(\"Parent\"), r = b(\"TabbableElements\"), s = b(\"arrayContains\"), t = b(\"cx\"), u = b(\"copyProperties\"), v = b(\"createArrayFrom\"), w = b(\"emptyFunction\"), x = b(\"ge\"), y = b(\"getContextualParent\"), z = b(\"getObjectValues\"), aa = [], ba;\n function ca() {\n ca = w;\n g.listen(JSBNG__document.documentElement, \"click\", function(JSBNG__event) {\n var ga = JSBNG__event.getTarget();\n aa.forEach(function(ha) {\n ha.clickedTarget = ga;\n ((((((((((((ha.active && !ha.sticky)) && !j.containsIncludingLayers(ha.getActive(), ga))) && !ha.inTargetFlyout(ga))) && ha.inActiveDialog())) && !ha.isIgnoredByModalLayer(ga))) && ha.hide()));\n });\n }, g.Priority.URGENT);\n };\n;\n var da = function() {\n this.active = null;\n this.togglers = {\n };\n this.setSticky(false);\n aa.push(this);\n this.subscribe([\"show\",\"hide\",], da.inform.bind(da));\n return ca();\n };\n u(da.prototype, i, {\n show: function(ga) {\n var ha = ea(this, ga), ia = ha.active;\n if (((ga !== ia))) {\n ((ia && ha.hide()));\n ha.active = ga;\n k.addClass(ga, \"openToggler\");\n var ja = n.scry(ga, \"a[rel=\\\"toggle\\\"]\");\n if (((((ja.length > 0)) && ja[0].getAttribute(\"data-target\")))) {\n k.removeClass(x(ja[0].getAttribute(\"data-target\")), \"toggleTargetClosed\");\n }\n ;\n ;\n var ka = o.scry(ga, \".uiToggleFlyout\")[0];\n if (ka) {\n var la = ((r.JSBNG__find(ka)[0] || ka));\n if (((la.tabIndex == -1))) {\n la.tabIndex = 0;\n }\n ;\n ;\n p.setWithoutOutline(la);\n }\n ;\n ;\n n.appendContent(ga, ha.getToggler(\"next\"));\n n.prependContent(ga, ha.getToggler(\"prev\"));\n ha.inform(\"show\", ha);\n }\n ;\n ;\n },\n hide: function(ga) {\n var ha = ea(this, ga), ia = ha.active;\n if (((ia && ((!ga || ((ga === ia))))))) {\n k.removeClass(ia, \"openToggler\");\n var ja = n.scry(ia, \"a[rel=\\\"toggle\\\"]\");\n if (((((ja.length > 0)) && ja[0].getAttribute(\"data-target\")))) {\n k.addClass(x(ja[0].getAttribute(\"data-target\")), \"toggleTargetClosed\");\n }\n ;\n ;\n z(ha.togglers).forEach(n.remove);\n ha.inform(\"hide\", ha);\n ha.active = null;\n }\n ;\n ;\n },\n toggle: function(ga) {\n var ha = ea(this, ga);\n if (((ha.active === ga))) {\n ha.hide();\n }\n else ha.show(ga);\n ;\n ;\n },\n getActive: function() {\n return ea(this).active;\n },\n isShown: function() {\n return ((ea(this).active && k.hasClass(ea(this).active, \"openToggler\")));\n },\n inTargetFlyout: function(ga) {\n var ha = fa(this.getActive());\n return ((ha && j.containsIncludingLayers(ha, ga)));\n },\n inActiveDialog: function() {\n var ga = m.getCurrent();\n return ((!ga || n.contains(ga.getRoot(), this.getActive())));\n },\n isIgnoredByModalLayer: function(ga) {\n return ((q.byClass(ga, \"_3qw\") && !q.byClass(this.getActive(), \"_3qw\")));\n },\n getToggler: function(ga) {\n var ha = ea(this);\n if (!ha.togglers[ga]) {\n ha.togglers[ga] = n.create(\"button\", {\n className: \"hideToggler\",\n JSBNG__onfocus: function() {\n var ia = n.scry(ha.active, \"a[rel=\\\"toggle\\\"]\")[0];\n ((ia && ia.JSBNG__focus()));\n ha.hide();\n }\n });\n ha.togglers[ga].setAttribute(\"type\", \"button\");\n }\n ;\n ;\n return this.togglers[ga];\n },\n setSticky: function(ga) {\n var ha = ea(this);\n ga = ((ga !== false));\n if (((ga !== ha.sticky))) {\n ha.sticky = ga;\n if (ga) {\n ((ha._pt && ha._pt.unsubscribe()));\n }\n else ha._pt = h.subscribe(\"pre_page_transition\", ha.hide.bind(ha, null));\n ;\n ;\n }\n ;\n ;\n return ha;\n }\n });\n u(da, da.prototype);\n u(da, {\n bootstrap: function(ga) {\n var ha = ga.parentNode;\n da.getInstance(ha).toggle(ha);\n },\n createInstance: function(ga) {\n var ha = new da().setSticky(true);\n l.set(ga, \"toggler\", ha);\n return ha;\n },\n destroyInstance: function(ga) {\n l.remove(ga, \"toggler\");\n },\n getInstance: function(ga) {\n while (ga) {\n var ha = l.get(ga, \"toggler\");\n if (ha) {\n return ha;\n }\n ;\n ;\n if (k.hasClass(ga, \"uiToggleContext\")) {\n return da.createInstance(ga);\n }\n ;\n ;\n ga = y(ga);\n };\n ;\n return (ba = ((ba || new da())));\n },\n listen: function(ga, ha, ia) {\n return da.subscribe(v(ga), function(ja, ka) {\n if (((ka.getActive() === ha))) {\n return ia(ja, ka);\n }\n ;\n ;\n });\n },\n subscribe: (function(ga) {\n return function(ha, ia) {\n ha = v(ha);\n if (s(ha, \"show\")) {\n aa.forEach(function(ja) {\n if (ja.getActive()) {\n ia.curry(\"show\", ja).defer();\n }\n ;\n ;\n });\n }\n ;\n ;\n return ga(ha, ia);\n };\n })(da.subscribe.bind(da))\n });\n function ea(ga, ha) {\n if (((ga instanceof da))) {\n return ga;\n }\n ;\n ;\n return da.getInstance(ha);\n };\n;\n function fa(ga) {\n var ha = n.scry(ga, \"a[rel=\\\"toggle\\\"]\");\n if (((((ha.length > 0)) && ha[0].getAttribute(\"data-target\")))) {\n return x(ha[0].getAttribute(\"data-target\"));\n }\n ;\n ;\n };\n;\n e.exports = da;\n});\n__d(\"curry\", [\"bind\",], function(a, b, c, d, e, f) {\n var g = b(\"bind\"), h = g(null, g, null);\n e.exports = h;\n});\n__d(\"Popover\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"ContextualLayer\",\"ContextualLayerHideOnScroll\",\"CSS\",\"DataStore\",\"DOM\",\"Focus\",\"Keys\",\"KeyStatus\",\"LayerHideOnEscape\",\"Toggler\",\"copyProperties\",\"curry\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ContextualLayer\"), k = b(\"ContextualLayerHideOnScroll\"), l = b(\"CSS\"), m = b(\"DataStore\"), n = b(\"DOM\"), o = b(\"Focus\"), p = b(\"Keys\"), q = b(\"KeyStatus\"), r = b(\"LayerHideOnEscape\"), s = b(\"Toggler\"), t = b(\"copyProperties\"), u = b(\"curry\");\n s.subscribe([\"show\",\"hide\",], function(w, x) {\n var y = m.get(x.getActive(), \"Popover\");\n if (y) {\n if (((w === \"show\"))) {\n y.showLayer();\n }\n else y.hideLayer();\n ;\n }\n ;\n ;\n });\n function v(w, x, y, z) {\n this._root = w;\n this._triggerElem = x;\n this._behaviors = y;\n this._config = ((z || {\n }));\n this._disabled = !!this._config.disabled;\n this._listeners = [];\n if (((!this._disabled && ((((x.nodeName !== \"A\")) || ((x.rel !== \"toggle\"))))))) {\n this._setupClickListener();\n }\n ;\n ;\n this._setupKeyListener();\n x.setAttribute(\"role\", \"button\");\n m.set(w, \"Popover\", this);\n };\n;\n t(v.prototype, i, {\n _layer: null,\n ensureInit: function() {\n if (!this._layer) {\n this._init();\n }\n ;\n ;\n },\n showLayer: function() {\n this.ensureInit();\n this._layer.show();\n s.show(this._root);\n l.addClass(this._root, \"selected\");\n this.inform(\"show\");\n this._triggerElem.setAttribute(\"aria-expanded\", \"true\");\n },\n getLayer: function() {\n return this._layer;\n },\n hideLayer: function() {\n this._layer.hide();\n this._triggerElem.setAttribute(\"aria-expanded\", \"false\");\n },\n isShown: function() {\n return ((this._layer && this._layer.isShown()));\n },\n setLayerContent: function(w) {\n this.ensureInit();\n this._layer.setContent(w);\n },\n _init: function() {\n var w = new j({\n context: this._triggerElem,\n position: \"below\"\n }, n.create(\"div\"));\n w.enableBehaviors([k,r,]);\n s.createInstance(w.getRoot()).setSticky(false);\n w.subscribe(\"hide\", this._onLayerHide.bind(this));\n ((this._behaviors && w.enableBehaviors(this._behaviors)));\n this._layer = w;\n if (this._config.alignh) {\n this._layer.setAlignment(this._config.alignh);\n }\n ;\n ;\n if (this._config.layer_content) {\n this._layer.setContent(this._config.layer_content);\n }\n ;\n ;\n this.inform(\"init\", null, h.BEHAVIOR_PERSISTENT);\n },\n _onLayerHide: function() {\n s.hide(this._root);\n l.removeClass(this._root, \"selected\");\n this.inform(\"hide\");\n if (((q.getKeyDownCode() === p.ESC))) {\n o.set(this._triggerElem);\n }\n ;\n ;\n },\n enable: function() {\n if (!this._disabled) {\n return;\n }\n ;\n ;\n this._setupClickListener();\n this._setupKeyListener();\n this._disabled = false;\n },\n disable: function() {\n if (this._disabled) {\n return;\n }\n ;\n ;\n if (this.isShown()) {\n this.hideLayer();\n }\n ;\n ;\n while (this._listeners.length) {\n this._listeners.pop().remove();\n ;\n };\n ;\n if (((this._triggerElem.getAttribute(\"rel\") === \"toggle\"))) {\n this._triggerElem.removeAttribute(\"rel\");\n }\n ;\n ;\n this._disabled = true;\n },\n _setupClickListener: function() {\n this._listeners.push(g.listen(this._triggerElem, \"click\", u(s.bootstrap, this._triggerElem)));\n },\n _setupKeyListener: function() {\n this._listeners.push(g.listen(this._triggerElem, \"keydown\", this._handleKeyEvent.bind(this)));\n },\n _handleKeyEvent: function(JSBNG__event) {\n if (JSBNG__event.getModifiers().any) {\n return;\n }\n ;\n ;\n switch (g.getKeyCode(JSBNG__event)) {\n case p.DOWN:\n \n case p.UP:\n s.bootstrap(this._triggerElem);\n break;\n default:\n return;\n };\n ;\n JSBNG__event.prevent();\n }\n });\n e.exports = v;\n});\n__d(\"PopoverMenu\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"ARIA\",\"BehaviorsMixin\",\"Focus\",\"Keys\",\"KeyStatus\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"ARIA\"), k = b(\"BehaviorsMixin\"), l = b(\"Focus\"), m = b(\"Keys\"), n = b(\"KeyStatus\"), o = b(\"copyProperties\");\n function p(q, r, s, t) {\n this._popover = q;\n this._triggerElem = r;\n this._initialMenu = s;\n q.subscribe(\"init\", this._onLayerInit.bind(this));\n q.subscribe(\"show\", this._onPopoverShow.bind(this));\n q.subscribe(\"hide\", this._onPopoverHide.bind(this));\n g.listen(this._triggerElem, \"keydown\", this._handleKeyEventOnTrigger.bind(this));\n ((t && this.enableBehaviors(t)));\n };\n;\n o(p.prototype, i, k);\n o(p.prototype, {\n _popoverShown: false,\n setMenu: function(q) {\n this._menu = q;\n var r = q.getRoot();\n this._popover.setLayerContent(r);\n q.subscribe(\"done\", this._onMenuDone.bind(this));\n if (this._popoverShown) {\n this._menu.onShow();\n }\n ;\n ;\n j.owns(this._triggerElem, r);\n this.inform(\"setMenu\", null, h.BEHAVIOR_PERSISTENT);\n },\n getPopover: function() {\n return this._popover;\n },\n getTriggerElem: function() {\n return this._triggerElem;\n },\n getMenu: function() {\n return this._menu;\n },\n _onLayerInit: function() {\n this.setMenu(this._initialMenu);\n this._popover.getLayer().subscribe(\"key\", this._handleKeyEvent.bind(this));\n },\n _onPopoverShow: function() {\n if (this._menu) {\n this._menu.onShow();\n }\n ;\n ;\n this._popoverShown = true;\n },\n _onPopoverHide: function() {\n if (this._menu) {\n this._menu.onHide();\n }\n ;\n ;\n this._popoverShown = false;\n },\n _handleKeyEvent: function(q, r) {\n var s = g.getKeyCode(r);\n if (((s === m.TAB))) {\n this._popover.hideLayer();\n l.set(this._triggerElem);\n return;\n }\n ;\n ;\n if (r.getModifiers().any) {\n return;\n }\n ;\n ;\n switch (s) {\n case m.RETURN:\n return;\n case m.UP:\n \n case m.DOWN:\n this._menu.handleKeydown(s, r);\n break;\n default:\n if (((this._menu.handleKeydown(s, r) === false))) {\n this._menu.JSBNG__blur();\n this._menu.handleKeydown(s, r);\n }\n ;\n ;\n break;\n };\n ;\n r.prevent();\n },\n _handleKeyEventOnTrigger: function(q) {\n var r = g.getKeyCode(q);\n switch (r) {\n case m.DOWN:\n \n case m.UP:\n break;\n default:\n var s = String.fromCharCode(r).toLowerCase();\n if (!/^\\s?$/.test(s)) {\n this._popover.showLayer();\n this._menu.JSBNG__blur();\n if (((this._menu.handleKeydown(r, q) === false))) {\n this._popover.hideLayer();\n l.set(this._triggerElem);\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n },\n _onMenuDone: function(q) {\n this._popover.hideLayer.bind(this._popover).defer();\n if (n.isKeyDown()) {\n l.set(this._triggerElem);\n }\n ;\n ;\n },\n enable: function() {\n this._popover.enable();\n },\n disable: function() {\n this._popover.disable();\n }\n });\n e.exports = p;\n});\n__d(\"PopoverAsyncMenu\", [\"JSBNG__Event\",\"AsyncRequest\",\"Class\",\"PopoverMenu\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"Class\"), j = b(\"PopoverMenu\"), k = b(\"copyProperties\"), l = {\n }, m = 0;\n function n(o, p, q, r, s) {\n this._endpoint = r;\n this._loadingMenu = q;\n this._instanceId = m++;\n l[this._instanceId] = this;\n this._mouseoverListener = g.listen(p, \"mouseover\", this._fetchMenu.bind(this));\n this.parent.construct(this, o, p, null, s);\n };\n;\n n.setMenu = function(o, p) {\n l[o].setMenu(p);\n };\n n.getInstance = function(o) {\n return l[o];\n };\n i.extend(n, j);\n k(n.prototype, {\n _fetched: false,\n _mouseoverListener: null,\n _onLayerInit: function() {\n if (!this._menu) {\n this.setMenu(this._loadingMenu);\n }\n ;\n ;\n this._fetchMenu();\n this._popover.getLayer().subscribe(\"key\", this._handleKeyEvent.bind(this));\n },\n _fetchMenu: function() {\n if (this._fetched) {\n return;\n }\n ;\n ;\n new h().setURI(this._endpoint).setData({\n pmid: this._instanceId\n }).send();\n this._fetched = true;\n if (this._mouseoverListener) {\n this._mouseoverListener.remove();\n this._mouseoverListener = null;\n }\n ;\n ;\n }\n });\n e.exports = n;\n});\n__d(\"PopoverMenuInterface\", [\"ArbiterMixin\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n function j() {\n \n };\n;\n h(j.prototype, g, {\n getRoot: i,\n onShow: i,\n onHide: i,\n focusAnItem: i.thatReturnsFalse,\n JSBNG__blur: i,\n handleKeydown: i.thatReturnsFalse,\n done: function() {\n this.inform(\"done\");\n }\n });\n e.exports = j;\n});\n__d(\"PopoverMenuOverlappingBorder\", [\"CSS\",\"DOM\",\"Style\",\"copyProperties\",\"cx\",\"shield\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"Style\"), j = b(\"copyProperties\"), k = b(\"cx\"), l = b(\"shield\");\n function m(n) {\n this._popoverMenu = n;\n this._popover = n.getPopover();\n this._triggerElem = n.getTriggerElem();\n };\n;\n j(m.prototype, {\n _shortBorder: null,\n _setMenuSubscription: null,\n _showSubscription: null,\n _menuSubscription: null,\n enable: function() {\n this._setMenuSubscription = this._popoverMenu.subscribe(\"setMenu\", l(this._onSetMenu, this));\n },\n disable: function() {\n this._popoverMenu.unsubscribe(this._setMenuSubscription);\n this._setMenuSubscription = null;\n this._removeBorderSubscriptions();\n this._removeShortBorder();\n },\n _onSetMenu: function() {\n this._removeBorderSubscriptions();\n this._menu = this._popoverMenu.getMenu();\n this._renderShortBorder(this._menu.getRoot());\n this._showSubscription = this._popover.subscribe(\"show\", l(this._updateBorder, this));\n this._menuSubscription = this._menu.subscribe([\"change\",\"resize\",], l(Function.prototype.defer, l(this._updateBorder, this)));\n this._updateBorder();\n },\n _updateBorder: function() {\n var n = this._menu.getRoot(), o = this._triggerElem.offsetWidth, p = Math.max(((n.offsetWidth - o)), 0);\n i.set(this._shortBorder, \"width\", ((p + \"px\")));\n },\n _renderShortBorder: function(n) {\n this._shortBorder = h.create(\"div\", {\n className: \"_54hx\"\n });\n h.appendContent(n, this._shortBorder);\n g.addClass(n, \"_54hy\");\n },\n _removeShortBorder: function() {\n if (this._shortBorder) {\n h.remove(this._shortBorder);\n this._shortBorder = null;\n g.removeClass(this._popoverMenu.getMenu().getRoot(), \"_54hy\");\n }\n ;\n ;\n },\n _removeBorderSubscriptions: function() {\n if (this._showSubscription) {\n this._popover.unsubscribe(this._showSubscription);\n this._showSubscription = null;\n }\n ;\n ;\n if (this._menuSubscription) {\n this._menu.unsubscribe(this._menuSubscription);\n this._menuSubscription = null;\n }\n ;\n ;\n }\n });\n e.exports = m;\n});\n__d(\"PostLoadJS\", [\"Bootloader\",\"Run\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"Bootloader\"), h = b(\"Run\"), i = b(\"emptyFunction\");\n function j(l, m) {\n h.onAfterLoad(function() {\n g.loadModules.call(g, [l,], m);\n });\n };\n;\n var k = {\n loadAndRequire: function(l) {\n j(l, i);\n },\n loadAndCall: function(l, m, n) {\n j(l, function(o) {\n o[m].apply(o, n);\n });\n }\n };\n e.exports = k;\n});\n__d(\"ContextualLayerDimensions\", [\"DOM\",\"Locale\",\"JSBNG__Rect\",\"Vector\",\"ViewportBounds\",\"ge\",\"getOverlayZIndex\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"Locale\"), i = b(\"JSBNG__Rect\"), j = b(\"Vector\"), k = b(\"ViewportBounds\"), l = b(\"ge\"), m = b(\"getOverlayZIndex\"), n = {\n getViewportRect: function(o) {\n var p = l(\"globalContainer\"), q = o.getContext(), r = ((((p && g.contains(p, q))) || ((m(q) < 300)))), s = i.getViewportBounds();\n if (r) {\n s.t += k.getTop();\n if (h.isRTL()) {\n s.r -= k.getLeft();\n s.l += k.getRight();\n }\n else {\n s.r -= k.getRight();\n s.l += k.getLeft();\n }\n ;\n ;\n }\n ;\n ;\n return s;\n },\n getLayerRect: function(o, p) {\n var q = o.getContextBounds(\"viewport\"), r = o.simulateOrientation(p, function() {\n return j.getElementDimensions(o.getContent());\n }), s = ((q.t + p.getOffsetY()));\n if (((p.getPosition() === \"above\"))) {\n s -= r.y;\n }\n else if (((p.getPosition() === \"below\"))) {\n s += ((q.b - q.t));\n }\n \n ;\n ;\n var t = ((q.l + p.getOffsetX())), u = ((q.r - q.l));\n if (p.isVertical()) {\n var v = p.getAlignment();\n if (((v === \"center\"))) {\n t += ((((u - r.x)) / 2));\n }\n else if (((((v === \"right\")) !== h.isRTL()))) {\n t += ((u - r.x));\n }\n \n ;\n ;\n }\n else if (((((p.getPosition() === \"right\")) !== h.isRTL()))) {\n t += u;\n }\n else t -= r.x;\n \n ;\n ;\n return new i(s, ((t + r.x)), ((s + r.y)), t, \"viewport\");\n }\n };\n e.exports = n;\n});\n__d(\"ContextualLayerAutoFlip\", [\"ContextualLayerDimensions\",\"DOM\",\"Vector\",\"arrayContains\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ContextualLayerDimensions\"), h = b(\"DOM\"), i = b(\"Vector\"), j = b(\"arrayContains\"), k = b(\"copyProperties\");\n function l(m) {\n this._layer = m;\n };\n;\n k(l.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"adjust\", this._adjustOrientation.bind(this));\n if (this._layer.isShown()) {\n this._layer.updatePosition();\n }\n ;\n ;\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n if (this._layer.isShown()) {\n this._layer.updatePosition();\n }\n ;\n ;\n },\n _adjustOrientation: function(m, n) {\n var o = this._getValidPositions(n);\n if (!o.length) {\n n.invalidate();\n return;\n }\n ;\n ;\n var p = g.getViewportRect(this._layer), q = this._getValidAlignments(n), r, s, t;\n for (r = 0; ((r < q.length)); r++) {\n n.setAlignment(q[r]);\n for (s = 0; ((s < o.length)); s++) {\n n.setPosition(o[s]);\n t = g.getLayerRect(this._layer, n);\n if (p.contains(t)) {\n return;\n }\n ;\n ;\n };\n ;\n };\n ;\n n.setPosition(((j(o, \"below\") ? \"below\" : o[0])));\n for (r = 0; ((r < q.length)); r++) {\n n.setAlignment(q[r]);\n t = g.getLayerRect(this._layer, n);\n if (((((t.l >= p.l)) && ((t.r <= p.r))))) {\n return;\n }\n ;\n ;\n };\n ;\n n.setAlignment(q[0]);\n },\n _getValidPositions: function(m) {\n var n = [m.getPosition(),m.getOppositePosition(),], o = this._layer.getContextScrollParent();\n if (((((o === window)) || ((o === h.getDocumentScrollElement()))))) {\n return n;\n }\n ;\n ;\n var p = this._layer.getContext(), q = i.getElementPosition(o, \"viewport\").y, r = i.getElementPosition(p, \"viewport\").y;\n if (m.isVertical()) {\n return n.filter(function(t) {\n if (((t === \"above\"))) {\n return ((r >= q));\n }\n else {\n var u = ((q + o.offsetHeight)), v = ((r + p.offsetHeight));\n return ((v <= u));\n }\n ;\n ;\n });\n }\n else {\n var s = ((q + o.offsetHeight));\n if (((((r >= q)) && ((((r + p.offsetHeight)) <= s))))) {\n return n;\n }\n else return []\n ;\n }\n ;\n ;\n },\n _getValidAlignments: function(m) {\n var n = [\"left\",\"right\",\"center\",], o = m.getAlignment(), p = n.indexOf(o);\n if (((p > 0))) {\n n.splice(p, 1);\n n.unshift(o);\n }\n ;\n ;\n return n;\n }\n });\n e.exports = l;\n});\n__d(\"Tooltip\", [\"JSBNG__Event\",\"AsyncRequest\",\"ContextualLayer\",\"ContextualLayerAutoFlip\",\"CSS\",\"DataStore\",\"DOM\",\"Style\",\"URI\",\"copyProperties\",\"emptyFunction\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"ContextualLayer\"), j = b(\"ContextualLayerAutoFlip\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"DOM\"), n = b(\"Style\"), o = b(\"URI\"), p = b(\"copyProperties\"), q = b(\"emptyFunction\"), r = b(\"cx\"), s = b(\"tx\"), t = null, u = null, v = null, w = [], x;\n function y() {\n if (!u) {\n v = m.create(\"div\", {\n className: \"tooltipContent\"\n });\n var fa = m.create(\"i\", {\n className: \"arrow\"\n }), ga = m.create(\"div\", {\n className: \"uiTooltipX\"\n }, [v,fa,]);\n u = new i({\n }, ga);\n u.shouldSetARIAProperties(false);\n u.enableBehavior(j);\n }\n ;\n ;\n };\n;\n function z(fa) {\n return p({\n JSBNG__content: fa.getAttribute(\"aria-label\"),\n position: ((fa.getAttribute(\"data-tooltip-position\") || \"above\")),\n alignH: ((fa.getAttribute(\"data-tooltip-alignh\") || \"left\"))\n }, l.get(fa, \"tooltip\"));\n };\n;\n function aa(fa, ga) {\n var ha = z(fa);\n l.set(fa, \"tooltip\", {\n JSBNG__content: ((ga.JSBNG__content || ha.JSBNG__content)),\n position: ((ga.position || ha.position)),\n alignH: ((ga.alignH || ha.alignH)),\n suspend: ((ga.suspend || ha.suspend))\n });\n fa.setAttribute(\"data-hover\", \"tooltip\");\n };\n;\n function ba(fa, ga) {\n ea.set(fa, \"Loading...\");\n new h(ga).setHandler(function(ha) {\n ea.set(fa, ha.getPayload());\n }).setErrorHandler(q).send();\n };\n;\n var ca = /(\\r\\n|[\\r\\n])/;\n function da(fa) {\n return fa.split(ca).map(function(ga) {\n return ((ca.test(ga) ? m.create(\"br\") : ga));\n });\n };\n;\n var ea = {\n process: function(fa, ga) {\n if (!m.contains(fa, ga)) {\n return;\n }\n ;\n ;\n if (((((fa !== t)) && !fa.getAttribute(\"data-tooltip-suspend\")))) {\n var ha = fa.getAttribute(\"data-tooltip-uri\");\n if (ha) {\n fa.removeAttribute(\"data-tooltip-uri\");\n ba(fa, ha);\n }\n ;\n ;\n ea.show(fa);\n }\n ;\n ;\n },\n remove: function(fa) {\n l.remove(fa, \"tooltip\");\n fa.removeAttribute(\"data-hover\");\n fa.removeAttribute(\"data-tooltip-position\");\n fa.removeAttribute(\"data-tooltip-alignh\");\n ((((fa === t)) && ea.hide()));\n },\n suspend: function(fa) {\n fa.setAttribute(\"data-tooltip-suspend\", true);\n ((((fa === t)) && ea.hide()));\n },\n unsuspend: function(fa) {\n fa.removeAttribute(\"data-tooltip-suspend\");\n },\n hide: function() {\n if (t) {\n u.hide();\n t = null;\n while (w.length) {\n w.pop().remove();\n ;\n };\n ;\n }\n ;\n ;\n },\n set: function(fa, ga, ha, ia) {\n if (((ha || ia))) {\n aa(fa, {\n position: ha,\n alignH: ia\n });\n }\n ;\n ;\n if (((ga instanceof o))) {\n if (((fa === t))) {\n ba(fa, ga);\n }\n else fa.setAttribute(\"data-tooltip-uri\", ga);\n ;\n ;\n }\n else {\n if (((typeof ga !== \"string\"))) {\n ga = m.create(\"div\", {\n }, ga);\n fa.setAttribute(\"aria-label\", m.getText(ga));\n }\n else fa.setAttribute(\"aria-label\", ga);\n ;\n ;\n aa(fa, {\n JSBNG__content: ga\n });\n ((((fa === t)) && ea.show(fa)));\n }\n ;\n ;\n },\n show: function(fa) {\n y();\n ea.hide();\n var ga = z(fa);\n if (!ga.JSBNG__content) {\n return;\n }\n ;\n ;\n var ha = 0, ia = 0;\n if (((((ga.position === \"left\")) || ((ga.position === \"right\"))))) {\n x = ((x || k.hasClass(JSBNG__document.body, \"_6nw\")));\n var ja = ((x ? 28 : 20));\n ia = ((((fa.offsetHeight - ja)) / 2));\n }\n else if (((ga.alignH !== \"center\"))) {\n var ka = fa.offsetWidth;\n if (((ka < 18))) {\n ha = ((((((ka - 18)) / 2)) * ((((ga.alignH === \"right\")) ? -1 : 1))));\n }\n ;\n ;\n }\n \n ;\n ;\n u.setContext(fa).setOffsetX(ha).setOffsetY(ia).setPosition(ga.position).setAlignment(ga.alignH);\n if (((typeof ga.JSBNG__content === \"string\"))) {\n k.addClass(u.getRoot(), \"invisible_elem\");\n var la = m.create(\"span\", {\n }, da(ga.JSBNG__content)), ma = m.create(\"div\", {\n className: \"tooltipText\"\n }, la);\n m.setContent(v, ma);\n u.show();\n var na;\n if (ma.getClientRects) {\n var oa = ma.getClientRects()[0];\n if (oa) {\n na = Math.round(((oa.right - oa.left)));\n }\n ;\n ;\n }\n ;\n ;\n if (!na) {\n na = ma.offsetWidth;\n }\n ;\n ;\n if (((na < la.offsetWidth))) {\n k.addClass(ma, \"tooltipWrap\");\n u.updatePosition();\n }\n ;\n ;\n k.removeClass(u.getRoot(), \"invisible_elem\");\n }\n else {\n m.setContent(v, ga.JSBNG__content);\n u.show();\n }\n ;\n ;\n var pa = function(ra) {\n if (!m.contains(t, ra.getTarget())) {\n ea.hide();\n }\n ;\n ;\n };\n w.push(g.listen(JSBNG__document.documentElement, \"mouseover\", pa), g.listen(JSBNG__document.documentElement, \"focusin\", pa));\n var qa = n.getScrollParent(fa);\n if (((qa !== window))) {\n w.push(g.listen(qa, \"JSBNG__scroll\", ea.hide));\n }\n ;\n ;\n w.push(g.listen(fa, \"click\", ea.hide));\n t = fa;\n }\n };\n g.listen(window, \"JSBNG__scroll\", ea.hide);\n e.exports = ea;\n});\n__d(\"SelectorDeprecated\", [\"JSBNG__Event\",\"Arbiter\",\"Button\",\"ContextualLayer\",\"CSS\",\"DataStore\",\"DOM\",\"Focus\",\"HTML\",\"Keys\",\"KeyStatus\",\"MenuDeprecated\",\"Parent\",\"Style\",\"Toggler\",\"Tooltip\",\"Vector\",\"arrayContains\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"Button\"), j = b(\"ContextualLayer\"), k = b(\"CSS\"), l = b(\"DataStore\"), m = b(\"DOM\"), n = b(\"Focus\"), o = b(\"HTML\"), p = b(\"Keys\"), q = b(\"KeyStatus\"), r = b(\"MenuDeprecated\"), s = b(\"Parent\"), t = b(\"Style\"), u = b(\"Toggler\"), v = b(\"Tooltip\"), w = b(\"Vector\"), x = b(\"arrayContains\"), y = b(\"copyProperties\"), z = b(\"emptyFunction\"), aa, ba, ca = [], da;\n function ea(pa) {\n return s.byClass(pa, \"uiSelector\");\n };\n;\n function fa(pa) {\n return s.byClass(pa, \"uiSelectorButton\");\n };\n;\n function ga() {\n if (!ba) {\n ba = new j({\n position: \"below\"\n }, m.create(\"div\"));\n k.addClass(ba.getRoot(), \"uiSelectorContextualLayer\");\n }\n ;\n ;\n return ba;\n };\n;\n function ha(pa) {\n return m.scry(pa, \"select\")[0];\n };\n;\n function ia(pa) {\n return m.JSBNG__find(pa, \"div.uiSelectorMenuWrapper\");\n };\n;\n function ja() {\n ja = z;\n r.subscribe(\"select\", function(pa, qa) {\n if (((((!aa || !qa)) || ((qa.menu !== oa.getSelectorMenu(aa)))))) {\n return;\n }\n ;\n ;\n var ra = ka(aa), sa = la(qa.item);\n if (sa) {\n var ta = aa, ua = oa.isOptionSelected(qa.item), va = oa.inform(\"select\", {\n selector: ta,\n option: qa.item,\n clone: da\n });\n if (((va === false))) {\n return;\n }\n ;\n ;\n if (((ra || !ua))) {\n oa.setSelected(ta, oa.getOptionValue(qa.item), !ua);\n oa.inform(\"toggle\", {\n selector: ta,\n option: qa.item\n });\n oa.inform(\"change\", {\n selector: ta\n });\n h.inform(\"Form/change\", {\n node: ta\n });\n if (ma(ta)) {\n l.set(ta, \"dirty\", true);\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n if (((!ra || !sa))) {\n ((aa && oa.toggle(aa)));\n }\n ;\n ;\n });\n };\n;\n function ka(pa) {\n return !!pa.getAttribute(\"data-multiple\");\n };\n;\n function la(pa) {\n return k.hasClass(pa, \"uiSelectorOption\");\n };\n;\n function ma(pa) {\n return !!pa.getAttribute(\"data-autosubmit\");\n };\n;\n var na = function() {\n na = z;\n var pa = {\n keydown: function(JSBNG__event) {\n var qa = JSBNG__event.getTarget();\n if (m.isInputNode(qa)) {\n return;\n }\n ;\n ;\n switch (g.getKeyCode(JSBNG__event)) {\n case p.DOWN:\n \n case p.SPACE:\n \n case p.UP:\n if (fa(qa)) {\n var ra = ea(qa);\n oa.toggle(ra);\n return false;\n }\n ;\n ;\n break;\n case p.ESC:\n if (aa) {\n var sa = oa.getSelectorButton(aa);\n oa.toggle(aa);\n ((sa && n.set(sa)));\n return false;\n }\n ;\n ;\n break;\n };\n ;\n },\n mouseover: function(JSBNG__event) {\n var qa = s.byAttribute(JSBNG__event.getTarget(), \"ajaxify\");\n if (((qa && k.hasClass(qa, \"uiSelectorButton\")))) {\n oa.loadMenu(ea(qa));\n }\n ;\n ;\n }\n };\n g.listen(JSBNG__document.body, pa);\n };\n u.subscribe([\"show\",\"hide\",], function(pa, qa) {\n var ra = ea(qa.getActive());\n if (ra) {\n na();\n ja();\n var sa = oa.getSelectorButton(ra), ta = oa.getSelectorMenu(ra), ua = ((pa === \"show\"));\n sa.setAttribute(\"aria-expanded\", ((ua ? \"true\" : \"false\")));\n if (ua) {\n aa = ra;\n if (k.hasClass(sa, \"uiButtonDisabled\")) {\n oa.setEnabled(ra, false);\n return false;\n }\n ;\n ;\n ta = ((ta || oa.loadMenu(ra)));\n var va = t.getScrollParent(ra), wa = ((((va !== window)) && ((va !== m.getDocumentScrollElement()))));\n if (((wa || k.hasClass(ra, \"uiSelectorUseLayer\")))) {\n if (wa) {\n ca.push(g.listen(va, \"JSBNG__scroll\", function() {\n qa.hide();\n }));\n }\n ;\n ;\n da = m.create(\"div\", {\n className: ra.className\n });\n k.addClass(da, \"invisible_elem\");\n w.getElementDimensions(ra).setElementDimensions(da);\n m.replace(ra, da);\n var xa = k.hasClass(ra, \"uiSelectorRight\"), ya = k.hasClass(ra, \"uiSelectorBottomUp\");\n ga().setContext(da).setContent(ra).setPosition(((ya ? \"above\" : \"below\"))).setAlignment(((xa ? \"right\" : \"left\"))).show();\n }\n ;\n ;\n r.register(ta);\n if (q.isKeyDown()) {\n var za = r.getCheckedItems(ta);\n if (!za.length) {\n za = r.getEnabledItems(ta);\n }\n ;\n ;\n r.focusItem(za[0]);\n }\n ;\n ;\n }\n else {\n aa = null;\n if (da) {\n while (ca.length) {\n ca.pop().remove();\n ;\n };\n ;\n m.replace(da, ra);\n ga().hide();\n da = null;\n }\n ;\n ;\n ((ta && r.unregister(ta)));\n if (((ma(ra) && l.get(ra, \"dirty\")))) {\n var ab = m.scry(ra, \"input.submitButton\")[0];\n ((ab && ab.click()));\n l.remove(ra, \"dirty\");\n }\n ;\n ;\n }\n ;\n ;\n k.conditionClass(oa.getSelectorButton(ra), \"selected\", ua);\n oa.inform(((ua ? \"open\" : \"close\")), {\n selector: ra,\n clone: da\n });\n }\n ;\n ;\n });\n var oa = y(new h(), {\n attachMenu: function(pa, qa, ra) {\n pa = ea(pa);\n if (pa) {\n ((aa && r.unregister(oa.getSelectorMenu(aa))));\n m.setContent(ia(pa), qa);\n ((aa && r.register(oa.getSelectorMenu(pa))));\n ((da && ga().updatePosition()));\n if (ra) {\n var sa = pa.getAttribute(\"data-name\");\n ((sa && ra.setAttribute(\"JSBNG__name\", sa)));\n if (!ka(pa)) {\n ra.setAttribute(\"multiple\", false);\n }\n ;\n ;\n var ta = ha(pa);\n if (ta) {\n m.replace(ta, ra);\n }\n else m.insertAfter(pa.firstChild, ra);\n ;\n ;\n }\n ;\n ;\n return true;\n }\n ;\n ;\n },\n getOption: function(pa, qa) {\n var ra = oa.getOptions(pa), sa = ra.length;\n while (sa--) {\n if (((qa === oa.getOptionValue(ra[sa])))) {\n return ra[sa];\n }\n ;\n ;\n };\n ;\n return null;\n },\n getOptions: function(pa) {\n var qa = r.getItems(oa.getSelectorMenu(pa));\n return qa.filter(la);\n },\n getEnabledOptions: function(pa) {\n var qa = r.getEnabledItems(oa.getSelectorMenu(pa));\n return qa.filter(la);\n },\n getSelectedOptions: function(pa) {\n return r.getCheckedItems(oa.getSelectorMenu(pa));\n },\n getOptionText: function(pa) {\n return r.getItemLabel(pa);\n },\n getOptionValue: function(pa) {\n var qa = ea(pa), ra = ha(qa), sa = oa.getOptions(qa).indexOf(pa);\n return ((((sa >= 0)) ? ra.options[((sa + 1))].value : \"\"));\n },\n getSelectorButton: function(pa) {\n return m.JSBNG__find(pa, \"a.uiSelectorButton\");\n },\n getSelectorMenu: function(pa) {\n return m.scry(pa, \"div.uiSelectorMenu\")[0];\n },\n getValue: function(pa) {\n var qa = ha(pa);\n if (!qa) {\n return null;\n }\n ;\n ;\n if (!ka(pa)) {\n return qa.value;\n }\n ;\n ;\n var ra = [], sa = qa.options;\n for (var ta = 1, ua = sa.length; ((ta < ua)); ta++) {\n if (sa[ta].selected) {\n ra.push(sa[ta].value);\n }\n ;\n ;\n };\n ;\n return ra;\n },\n isOptionSelected: function(pa) {\n return r.isItemChecked(pa);\n },\n listen: function(pa, qa, ra) {\n return this.subscribe(qa, function(sa, ta) {\n if (((ta.selector === pa))) {\n return ra(ta, sa);\n }\n ;\n ;\n });\n },\n loadMenu: function(pa) {\n var qa = oa.getSelectorMenu(pa);\n if (!qa) {\n var ra = oa.getSelectorButton(pa), sa = ra.getAttribute(\"ajaxify\");\n if (sa) {\n d([\"AsyncRequest\",], function(ua) {\n ua.bootstrap(sa, ra);\n });\n var ta = o(((((((((((((\"\\u003Cdiv class=\\\"uiSelectorMenuWrapper uiToggleFlyout\\\"\\u003E\" + \"\\u003Cdiv class=\\\"uiMenu uiSelectorMenu loading\\\"\\u003E\")) + \"\\u003Cul class=\\\"uiMenuInner\\\"\\u003E\")) + \"\\u003Cli\\u003E\\u003Cspan\\u003E\\u003C/span\\u003E\\u003C/li\\u003E\")) + \"\\u003C/ul\\u003E\")) + \"\\u003C/div\\u003E\")) + \"\\u003C/div\\u003E\")));\n m.appendContent(ra.parentNode, ta);\n qa = oa.getSelectorMenu(pa);\n ra.removeAttribute(\"JSBNG__onmouseover\");\n }\n ;\n ;\n }\n ;\n ;\n return qa;\n },\n setButtonLabel: function(pa, qa) {\n var ra = oa.getSelectorButton(pa), sa = parseInt(ra.getAttribute(\"data-length\"), 10);\n qa = ((((qa || ra.getAttribute(\"data-label\"))) || \"\"));\n i.setLabel(ra, qa);\n if (((typeof qa === \"string\"))) {\n k.conditionClass(ra, \"uiSelectorBigButtonLabel\", ((qa.length > sa)));\n if (((sa && ((qa.length > sa))))) {\n ra.setAttribute(\"title\", qa);\n }\n else ra.removeAttribute(\"title\");\n ;\n ;\n }\n ;\n ;\n },\n setButtonTooltip: function(pa, qa) {\n var ra = oa.getSelectorButton(pa), sa = s.byTag(ra, \"a\");\n ((sa && v.set(sa, ((((qa || ra.getAttribute(\"data-tooltip\"))) || \"\")))));\n },\n updateButtonARIALabel: function(pa, qa) {\n var ra = oa.getSelectorButton(pa), sa = s.byTag(ra, \"a\");\n if (sa) {\n var ta = ra.getAttribute(\"data-ariaprefix\");\n if (ta) {\n ra.setAttribute(\"aria-label\", ((((ta + \": \")) + qa)));\n }\n ;\n ;\n }\n ;\n ;\n },\n setEnabled: function(pa, qa) {\n if (((((!qa && aa)) && ((ea(pa) === aa))))) {\n oa.toggle(pa);\n }\n ;\n ;\n i.setEnabled(oa.getSelectorButton(pa), qa);\n },\n setOptionEnabled: function(pa, qa) {\n r.setItemEnabled(pa, qa);\n },\n setSelected: function(pa, qa, ra) {\n ra = ((ra !== false));\n var sa = oa.getOption(pa, qa);\n if (!sa) {\n return;\n }\n ;\n ;\n var ta = oa.isOptionSelected(sa);\n if (((ra !== ta))) {\n if (((!ka(pa) && !ta))) {\n var ua = oa.getSelectedOptions(pa)[0];\n ((ua && r.toggleItem(ua)));\n }\n ;\n ;\n r.toggleItem(sa);\n }\n ;\n ;\n oa.updateSelector(pa);\n },\n toggle: function(pa) {\n u.toggle(m.scry(ea(pa), \"div.wrap\")[0]);\n },\n updateSelector: function(pa) {\n var qa = oa.getOptions(pa), ra = oa.getSelectedOptions(pa), sa = ha(pa).options, ta = [], ua = [];\n for (var va = 0, wa = qa.length; ((va < wa)); va++) {\n var xa = x(ra, qa[va]);\n sa[((va + 1))].selected = xa;\n if (xa) {\n var ya = oa.getOptionText(qa[va]);\n ta.push(ya);\n ua.push(((qa[va].getAttribute(\"data-tooltip\") || ya)));\n }\n ;\n ;\n };\n ;\n sa[0].selected = !ra.length;\n var za = k.hasClass(pa, \"uiSelectorDynamicLabel\"), ab = k.hasClass(pa, \"uiSelectorDynamicTooltip\");\n if (((za || ab))) {\n var bb = \"\";\n if (ka(pa)) {\n var cb = oa.getSelectorButton(pa);\n bb = ((cb.getAttribute(\"data-delimiter\") || \", \"));\n }\n ;\n ;\n ta = ta.join(bb);\n ua = ua.join(bb);\n if (za) {\n oa.setButtonLabel(pa, ta);\n oa.updateButtonARIALabel(pa, ta);\n }\n ;\n ;\n ((ab && oa.setButtonTooltip(pa, ua)));\n }\n ;\n ;\n }\n });\n e.exports = oa;\n});\n__d(\"SubscriptionsHandler\", [\"JSLogger\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSLogger\"), h = b(\"copyProperties\"), i = g.create(\"subscriptions_handler\");\n function j(k) {\n this._name = ((k || \"unnamed\"));\n this._subscriptions = [];\n };\n;\n h(j.prototype, {\n addSubscriptions: function() {\n if (this._subscriptions) {\n Array.prototype.push.apply(this._subscriptions, arguments);\n }\n else {\n i.warn(((this._name + \".subscribe_while_released\")));\n for (var k = 0, l = arguments.length; ((k < l)); k++) {\n this._unsubscribe(arguments[k]);\n ;\n };\n ;\n }\n ;\n ;\n },\n engage: function() {\n this._subscriptions = ((this._subscriptions || []));\n },\n release: function() {\n if (this._subscriptions) {\n this._subscriptions.forEach(this._unsubscribe.bind(this));\n }\n ;\n ;\n this._subscriptions = null;\n },\n _unsubscribe: function(k) {\n if (k.remove) {\n k.remove();\n }\n else if (k.reset) {\n k.reset();\n }\n else if (k.unsubscribe) {\n k.unsubscribe();\n }\n else i.error(((this._name + \".invalid\")), k);\n \n \n ;\n ;\n }\n });\n e.exports = j;\n});\n__d(\"UserActivity\", [\"Arbiter\",\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"JSBNG__Event\"), i = 5000, j = 500, k = -5, l = JSBNG__Date.now(), m = l, n = {\n subscribeOnce: function(p) {\n var q = n.subscribe(function() {\n n.unsubscribe(q);\n p();\n });\n },\n subscribe: function(p) {\n return g.subscribe(\"useractivity/activity\", p);\n },\n unsubscribe: function(p) {\n p.unsubscribe();\n },\n isActive: function(p) {\n return ((((new JSBNG__Date() - l)) < ((p || i))));\n },\n getLastInformTime: function() {\n return m;\n }\n };\n function o(JSBNG__event) {\n l = JSBNG__Date.now();\n var p = ((l - m));\n if (((p > j))) {\n m = l;\n g.inform(\"useractivity/activity\", {\n JSBNG__event: JSBNG__event,\n idleness: p,\n last_inform: m\n });\n }\n else if (((p < k))) {\n m = l;\n }\n \n ;\n ;\n };\n;\n h.listen(window, \"JSBNG__scroll\", o);\n h.listen(window, \"JSBNG__focus\", o);\n h.listen(JSBNG__document.documentElement, {\n DOMMouseScroll: o,\n mousewheel: o,\n keydown: o,\n mouseover: o,\n mousemove: o,\n click: o\n });\n g.subscribe(\"Event/stop\", function(p, q) {\n o(q.JSBNG__event);\n });\n e.exports = n;\n});\n__d(\"enforceMaxLength\", [\"JSBNG__Event\",\"function-extensions\",\"DOM\",\"Input\",\"InputSelection\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"DOM\"), i = b(\"Input\"), j = b(\"InputSelection\"), k = function(n, o) {\n var p = i.getValue(n), q = p.length, r = ((q - o));\n if (((r > 0))) {\n var s, t;\n try {\n s = j.get(n);\n t = s.end;\n } catch (u) {\n s = null;\n t = 0;\n };\n ;\n if (((t >= r))) {\n q = t;\n }\n ;\n ;\n var v = ((q - r));\n if (((v && ((((p.charCodeAt(((v - 1))) & 64512)) === 55296))))) {\n v--;\n }\n ;\n ;\n t = Math.min(t, v);\n i.setValue(n, ((p.slice(0, v) + p.slice(q))));\n if (s) {\n j.set(n, Math.min(s.start, t), t);\n }\n ;\n ;\n }\n ;\n ;\n }, l = function(JSBNG__event) {\n var n = JSBNG__event.getTarget(), o = ((n.getAttribute && parseInt(n.getAttribute(\"maxlength\"), 10)));\n if (((((o > 0)) && h.isNodeOfType(n, [\"input\",\"textarea\",])))) {\n k.bind(null, n, o).defer();\n }\n ;\n ;\n }, m = ((((\"maxLength\" in h.create(\"input\"))) && ((\"maxLength\" in h.create(\"textarea\")))));\n if (!m) {\n g.listen(JSBNG__document.documentElement, {\n keydown: l,\n paste: l\n });\n }\n;\n;\n e.exports = k;\n});\n__d(\"guid\", [], function(a, b, c, d, e, f) {\n function g() {\n return ((\"f\" + ((Math.JSBNG__random() * ((1 << 30)))).toString(16).replace(\".\", \"\")));\n };\n;\n e.exports = g;\n});\n__d(\"reportData\", [\"EagleEye\",\"userAction\",], function(a, b, c, d, e, f) {\n var g = b(\"EagleEye\"), h = b(\"userAction\");\n function i(j, k) {\n k = ((k || {\n }));\n var l = {\n ft: ((k.ft || {\n })),\n gt: ((k.gt || {\n }))\n }, m = \"-\", n = a.ArbiterMonitor, o = (((!!n) ? n.getActFields() : [])), p = (((!n) ? \"r\" : \"a\")), q = [JSBNG__Date.now(),h.getCurrentUECount(),m,j,m,m,p,((a.URI ? a.URI.getRequestURI(true, true).getUnqualifiedURI().toString() : ((((JSBNG__location.pathname + JSBNG__location.search)) + JSBNG__location.hash)))),l,0,0,0,0,].concat(o);\n g.log(\"act\", q);\n };\n;\n e.exports = i;\n});\n__d(\"NetEgo\", [\"Arbiter\",\"CSS\",\"DOM\",\"URI\",\"ge\",\"Animation\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"URI\"), k = b(\"ge\"), l = b(\"Animation\"), m = {\n setup: function(n) {\n g.subscribe([\"page/liked\",\"FriendRequest/sending\",], function(o, p) {\n if (((((n == p.id)) || ((n == p.uid))))) {\n var q = k(JSBNG__document.body, \".ego_unit_container\");\n if (q) {\n var r = i.scry(q, \".ego_unit\"), s = r.length;\n for (var t = 0; ((t < s)); t++) {\n var u = r[t].getAttribute(\"data-ego-fbid\");\n if (((((u == p.id)) || ((u == p.uid))))) {\n var v = i.JSBNG__find(r[t], \".ego_action a\");\n if (v) {\n v.click();\n }\n ;\n ;\n break;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n }\n ;\n ;\n });\n },\n updateXids: function(n, o) {\n if (((((n.length == 0)) && ((o.length == 0))))) {\n return;\n }\n ;\n ;\n var p = function(z) {\n return function(aa) {\n var ba = aa.getAttribute(z);\n if (!ba) {\n return false;\n }\n ;\n ;\n var ca = new j(ba).getQueryData();\n return !!ca.xids;\n };\n }, q = i.scry(JSBNG__document.body, \".ego_unit a\");\n q = q.filter(p(\"ajaxify\"));\n if (((q.length == 0))) {\n return;\n }\n ;\n ;\n var r = new j(q[0].getAttribute(\"ajaxify\")), s = r.getQueryData();\n if (!s.xids) {\n return;\n }\n ;\n ;\n try {\n var u = JSON.parse(s.xids);\n } catch (t) {\n return;\n };\n ;\n for (var v = 0; ((v < n.length)); ++v) {\n delete u[n[v]];\n ;\n };\n ;\n for (v = 0; ((v < o.length)); ++v) {\n u[o[v]] = 1;\n ;\n };\n ;\n var w = JSON.stringify(u), x = function(z, aa) {\n r = new j(z.getAttribute(aa));\n s = r.getQueryData();\n s.xids = w;\n r.setQueryData(s);\n z.setAttribute(aa, r.toString());\n };\n for (v = 0; ((v < q.length)); ++v) {\n x(q[v], \"ajaxify\");\n ;\n };\n ;\n var y = i.scry(JSBNG__document.body, \".ego_unit form\");\n y = y.filter(p(\"action\"));\n for (v = 0; ((v < y.length)); ++v) {\n x(y[v], \"action\");\n ;\n };\n ;\n },\n replaceUnit: function(n, o, p, q) {\n var r = i.insertAfter(n, o);\n r.forEach(h.hide);\n if (((((q !== undefined)) && ((q !== null))))) {\n (function() {\n m._replaceUnitFadeout(n, r, p);\n }).defer(q);\n }\n else m._replaceUnitFadeout(n, r, p);\n ;\n ;\n },\n _replaceUnitFadeout: function(n, o, p) {\n if (p) {\n new l(n).from(\"opacity\", 1).to(\"opacity\", 0).duration(p).checkpoint(1, function() {\n m._replaceUnitElement(n, o);\n }).go();\n }\n else m._replaceUnitElement(n, o);\n ;\n ;\n },\n _replaceUnitElement: function(n, o) {\n i.remove(n);\n o.forEach(h.show);\n g.inform(\"netego_replacedUnit\");\n m.clearHeader();\n },\n clearHeader: function() {\n var n = i.scry(JSBNG__document.body, \".ego_column\"), o = [];\n for (var p = 0; ((p < n.length)); ++p) {\n o = o.concat(i.scry(n[p], \".uiHeader\"));\n ;\n };\n ;\n for (p = 0; ((p < o.length)); ++p) {\n var q = o[p].nextSibling;\n if (((!q || ((q.childNodes.length === 0))))) {\n i.remove(o[p]);\n }\n else if (((q.childNodes.length === 1))) {\n var r = q.childNodes[0];\n if (((h.hasClass(r, \"ego_appended_units\") && ((r.childNodes.length === 0))))) {\n i.remove(o[p]);\n }\n ;\n ;\n }\n \n ;\n ;\n };\n ;\n }\n };\n e.exports = m;\n});\n__d(\"ControlledReferer\", [\"JSBNG__Event\",\"URI\",\"UserAgent\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"URI\"), i = b(\"UserAgent\"), j = {\n useFacebookReferer: function(k, l, m) {\n var n = false;\n function o() {\n if (n) {\n return;\n }\n ;\n ;\n var q = k.contentWindow.JSBNG__location.pathname;\n if (((((q !== \"/intern/common/referer_frame.php\")) && ((q !== \"/common/referer_frame.php\"))))) {\n return;\n }\n ;\n ;\n n = true;\n k.contentWindow.JSBNG__document.body.style.margin = 0;\n l();\n };\n ;\n var p;\n if (((JSBNG__document.domain !== \"facebook.com\"))) {\n p = \"/intern/common/referer_frame.php\";\n }\n else if (i.JSBNG__opera()) {\n p = \"/common/referer_frame.php\";\n }\n else if (h().isSecure()) {\n p = \"https://s-static.ak.facebook.com/common/referer_frame.php\";\n }\n else p = \"http://static.ak.facebook.com/common/referer_frame.php\";\n \n \n ;\n ;\n if (m) {\n p += ((\"?fb_source=\" + m));\n }\n ;\n ;\n g.listen(k, \"load\", o);\n k.src = p;\n },\n useFacebookRefererHtml: function(k, l, m) {\n j.useFacebookReferer(k, function() {\n k.contentWindow.JSBNG__document.body.innerHTML = l;\n }, m);\n }\n };\n e.exports = j;\n});\n__d(\"UIIntentionalStreamMessage\", [], function(a, b, c, d, e, f) {\n var g = {\n SET_AUTO_INSERT: \"UIIntentionalStream/setAutoInsert\",\n UPDATE_STREAM: \"UIIntentionalStreamRefresh/updateStream\",\n REFRESH_STREAM: \"UIIntentionalStreamRefresh/refreshStream\",\n UPDATE_AUTOREFRESH_CONFIG: \"UIIntentionalStream/updateAutoRefreshConfig\",\n UPDATE_HTML_CONTENT: \"UIIntentionalStream/updateHtmlContent\",\n UPDATE_LAST_REFRESH_TIME: \"UIIntentionalStream/updateLastRefreshTime\",\n INSERT_STORIES: \"UIIntentionalStream/updateLastRefreshTime\",\n UNLOAD: \"UIIntentionalStream/unload\"\n };\n e.exports = g;\n});\n__d(\"UIPagelet\", [\"AjaxPipeRequest\",\"AsyncRequest\",\"DOM\",\"HTML\",\"ScriptPathState\",\"URI\",\"copyProperties\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxPipeRequest\"), h = b(\"AsyncRequest\"), i = b(\"DOM\"), j = b(\"HTML\"), k = b(\"ScriptPathState\"), l = b(\"URI\"), m = b(\"copyProperties\"), n = b(\"emptyFunction\"), o = b(\"ge\");\n function p(q, r, s) {\n var t = ((((q && i.isElementNode(q))) ? q.id : q));\n this._id = ((t || null));\n this._element = o(((q || i.create(\"div\"))));\n this._src = ((r || null));\n this._context_data = ((s || {\n }));\n this._data = {\n };\n this._handler = n;\n this._request = null;\n this._use_ajaxpipe = false;\n this._is_bundle = true;\n this._allow_cross_page_transition = false;\n this._append = false;\n };\n;\n p.loadFromEndpoint = function(q, r, s, t) {\n t = ((t || {\n }));\n var u = ((\"/ajax/pagelet/generic.php/\" + q));\n if (t.intern) {\n u = ((\"/intern\" + u));\n }\n ;\n ;\n var v = new l(u.replace(/\\/+/g, \"/\"));\n if (t.subdomain) {\n v.setSubdomain(t.subdomain);\n }\n ;\n ;\n var w = new p(r, v, s).setUseAjaxPipe(t.usePipe).setBundleOption(((t.bundle !== false))).setAppend(t.append).setJSNonBlock(t.jsNonblock).setAutomatic(t.automatic).setDisplayCallback(t.displayCallback).setConstHeight(t.constHeight).setAllowCrossPageTransition(t.crossPage).setFinallyHandler(((t.finallyHandler || n))).setTransportErrorHandler(t.transportErrorHandler);\n ((t.handler && w.setHandler(t.handler)));\n w.go();\n return w;\n };\n m(p.prototype, {\n getElement: function() {\n return this._element;\n },\n setHandler: function(q) {\n this._handler = q;\n return this;\n },\n go: function(q, r) {\n if (((((arguments.length >= 2)) || ((typeof q == \"string\"))))) {\n this._src = q;\n this._data = ((r || {\n }));\n }\n else if (((arguments.length == 1))) {\n this._data = q;\n }\n \n ;\n ;\n this.refresh();\n return this;\n },\n setAllowCrossPageTransition: function(q) {\n this._allow_cross_page_transition = q;\n return this;\n },\n setBundleOption: function(q) {\n this._is_bundle = q;\n return this;\n },\n setTransportErrorHandler: function(q) {\n this.transportErrorHandler = q;\n return this;\n },\n refresh: function() {\n if (this._use_ajaxpipe) {\n k.setIsUIPageletRequest(true);\n this._request = new g();\n this._request.setCanvasId(this._id).setAppend(this._append).setConstHeight(this._constHeight).setJSNonBlock(this._jsNonblock).setAutomatic(this._automatic).setDisplayCallback(this._displayCallback).setFinallyHandler(this._finallyHandler);\n }\n else {\n var q = function(t) {\n this._request = null;\n var u = j(t.getPayload());\n if (this._append) {\n i.appendContent(this._element, u);\n }\n else i.setContent(this._element, u);\n ;\n ;\n this._handler();\n }.bind(this), r = this._displayCallback;\n this._request = new h().setMethod(\"GET\").setReadOnly(true).setOption(\"bundle\", this._is_bundle).setHandler(function(t) {\n if (r) {\n r(q.curry(t));\n }\n else q(t);\n ;\n ;\n if (this._finallyHandler) {\n this._finallyHandler();\n }\n ;\n ;\n });\n if (this.transportErrorHandler) {\n this._request.setTransportErrorHandler(this.transportErrorHandler);\n }\n ;\n ;\n }\n ;\n ;\n var s = {\n };\n m(s, this._context_data);\n m(s, this._data);\n this._request.setURI(this._src).setAllowCrossPageTransition(this._allow_cross_page_transition).setData({\n data: JSON.stringify(s)\n }).send();\n return this;\n },\n cancel: function() {\n if (this._request) {\n this._request.abort();\n }\n ;\n ;\n },\n setUseAjaxPipe: function(q) {\n this._use_ajaxpipe = !!q;\n return this;\n },\n setAppend: function(q) {\n this._append = !!q;\n return this;\n },\n setJSNonBlock: function(q) {\n this._jsNonblock = !!q;\n return this;\n },\n setAutomatic: function(q) {\n this._automatic = !!q;\n return this;\n },\n setDisplayCallback: function(q) {\n this._displayCallback = q;\n return this;\n },\n setConstHeight: function(q) {\n this._constHeight = !!q;\n return this;\n },\n setFinallyHandler: function(q) {\n this._finallyHandler = q;\n return this;\n }\n });\n e.exports = p;\n});\n__d(\"ScrollableArea\", [\"Animation\",\"ArbiterMixin\",\"BrowserSupport\",\"CSS\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Parent\",\"Run\",\"SimpleDrag\",\"Style\",\"UserAgent\",\"Vector\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"ArbiterMixin\"), i = b(\"BrowserSupport\"), j = b(\"CSS\"), k = b(\"DataStore\"), l = b(\"DOM\"), m = b(\"JSBNG__Event\"), n = b(\"Parent\"), o = b(\"Run\"), p = b(\"SimpleDrag\"), q = b(\"Style\"), r = b(\"UserAgent\"), s = b(\"Vector\"), t = b(\"copyProperties\"), u = b(\"throttle\"), v = 12;\n function w(x, y) {\n if (!x) {\n return;\n }\n ;\n ;\n y = ((y || {\n }));\n this._elem = x;\n this._wrap = l.JSBNG__find(x, \"div.uiScrollableAreaWrap\");\n this._body = l.JSBNG__find(this._wrap, \"div.uiScrollableAreaBody\");\n this._content = l.JSBNG__find(this._body, \"div.uiScrollableAreaContent\");\n this._track = l.JSBNG__find(x, \"div.uiScrollableAreaTrack\");\n this._gripper = l.JSBNG__find(this._track, \"div.uiScrollableAreaGripper\");\n this._options = y;\n this._throttledComputeHeights = u.withBlocking(this._computeHeights, 250, this);\n this.throttledAdjustGripper = u.withBlocking(this.adjustGripper, 250, this);\n this._throttledShowGripperAndShadows = u.withBlocking(this._showGripperAndShadows, 250, this);\n this._throttledRespondMouseMove = u(this._respondMouseMove, 250, this);\n this.adjustGripper.bind(this).defer();\n this._listeners = [m.listen(this._wrap, \"JSBNG__scroll\", this._handleScroll.bind(this)),m.listen(x, \"mousemove\", this._handleMouseMove.bind(this)),m.listen(this._track, \"click\", this._handleClickOnTrack.bind(this)),];\n if (i.hasPointerEvents()) {\n this._listeners.push(m.listen(x, \"click\", this._handleClickOnTrack.bind(this)));\n }\n ;\n ;\n if (((y.fade !== false))) {\n this._listeners.push(m.listen(x, \"mouseenter\", this._handleMouseEnter.bind(this)), m.listen(x, \"mouseleave\", this._handleMouseLeave.bind(this)), m.listen(x, \"focusin\", this.showScrollbar.bind(this, false)), m.listen(x, \"focusout\", this.hideScrollbar.bind(this)));\n }\n else if (i.hasPointerEvents()) {\n this._listeners.push(m.listen(x, \"mouseleave\", j.removeClass.curry(x, \"uiScrollableAreaTrackOver\")));\n }\n \n ;\n ;\n if (((r.webkit() || r.chrome()))) {\n this._listeners.push(m.listen(x, \"mousedown\", function() {\n var z = m.listen(window, \"mouseup\", function() {\n if (x.scrollLeft) {\n x.scrollLeft = 0;\n }\n ;\n ;\n z.remove();\n });\n }));\n }\n else if (r.firefox()) {\n this._wrap.JSBNG__addEventListener(\"DOMMouseScroll\", function(JSBNG__event) {\n ((((JSBNG__event.axis === JSBNG__event.HORIZONTAL_AXIS)) && JSBNG__event.preventDefault()));\n }, false);\n }\n \n ;\n ;\n this.initDrag();\n k.set(this._elem, \"ScrollableArea\", this);\n if (!y.persistent) {\n o.onLeave(this.destroy.bind(this));\n }\n ;\n ;\n if (((y.shadow !== false))) {\n j.addClass(this._elem, \"uiScrollableAreaWithShadow\");\n }\n ;\n ;\n };\n;\n t(w, {\n renderDOM: function() {\n var x = l.create(\"div\", {\n className: \"uiScrollableAreaContent\"\n }), y = l.create(\"div\", {\n className: \"uiScrollableAreaBody\"\n }, x), z = l.create(\"div\", {\n className: \"uiScrollableAreaWrap\"\n }, y), aa = l.create(\"div\", {\n className: \"uiScrollableArea native\"\n }, z);\n return {\n root: aa,\n wrap: z,\n body: y,\n JSBNG__content: x\n };\n },\n fromNative: function(x, y) {\n if (((!j.hasClass(x, \"uiScrollableArea\") || !j.hasClass(x, \"native\")))) {\n return;\n }\n ;\n ;\n y = ((y || {\n }));\n j.removeClass(x, \"native\");\n var z = l.create(\"div\", {\n className: \"uiScrollableAreaTrack\"\n }, l.create(\"div\", {\n className: \"uiScrollableAreaGripper\"\n }));\n if (((y.fade !== false))) {\n j.addClass(x, \"fade\");\n j.addClass(z, \"invisible_elem\");\n }\n else j.addClass(x, \"nofade\");\n ;\n ;\n l.appendContent(x, z);\n var aa = new w(x, y);\n aa.resize();\n return aa;\n },\n getInstance: function(x) {\n var y = n.byClass(x, \"uiScrollableArea\");\n return ((y ? k.get(y, \"ScrollableArea\") : null));\n },\n poke: function(x) {\n var y = w.getInstance(x);\n ((y && y.poke()));\n }\n });\n t(w.prototype, h, {\n initDrag: function() {\n var x = i.hasPointerEvents(), y = new p(((x ? this._elem : this._gripper)));\n y.subscribe(\"start\", function(z, JSBNG__event) {\n if (!((((JSBNG__event.which && ((JSBNG__event.which === 1)))) || ((JSBNG__event.button && ((JSBNG__event.button === 1))))))) {\n return;\n }\n ;\n ;\n var aa = s.getEventPosition(JSBNG__event, \"viewport\");\n if (x) {\n var ba = this._gripper.getBoundingClientRect();\n if (((((((((aa.x < ba.left)) || ((aa.x > ba.right)))) || ((aa.y < ba.JSBNG__top)))) || ((aa.y > ba.bottom))))) {\n return false;\n }\n ;\n ;\n }\n ;\n ;\n this.inform(\"grip_start\");\n var ca = aa.y, da = this._gripper.offsetTop;\n j.addClass(this._elem, \"uiScrollableAreaDragging\");\n var ea = y.subscribe(\"update\", function(ga, JSBNG__event) {\n var ha = ((s.getEventPosition(JSBNG__event, \"viewport\").y - ca));\n this._throttledComputeHeights();\n var ia = ((this._contentHeight - this._containerHeight)), ja = ((da + ha)), ka = ((this._trackHeight - this._gripperHeight));\n ja = Math.max(Math.min(ja, ka), 0);\n var la = ((((ja / ka)) * ia));\n this._wrap.scrollTop = la;\n }.bind(this)), fa = y.subscribe(\"end\", function() {\n y.unsubscribe(ea);\n y.unsubscribe(fa);\n j.removeClass(this._elem, \"uiScrollableAreaDragging\");\n this.inform(\"grip_end\");\n }.bind(this));\n }.bind(this));\n },\n adjustGripper: function() {\n if (this._needsGripper()) {\n q.set(this._gripper, \"height\", ((this._gripperHeight + \"px\")));\n this._slideGripper();\n }\n ;\n ;\n this._throttledShowGripperAndShadows();\n return this;\n },\n _computeHeights: function() {\n this._containerHeight = this._elem.clientHeight;\n this._contentHeight = this._content.offsetHeight;\n this._trackHeight = this._track.offsetHeight;\n this._gripperHeight = Math.max(((((this._containerHeight / this._contentHeight)) * this._trackHeight)), v);\n },\n _needsGripper: function() {\n this._throttledComputeHeights();\n return ((this._gripperHeight < this._trackHeight));\n },\n _slideGripper: function() {\n var x = ((((this._wrap.scrollTop / ((this._contentHeight - this._containerHeight)))) * ((this._trackHeight - this._gripperHeight))));\n q.set(this._gripper, \"JSBNG__top\", ((x + \"px\")));\n },\n _showGripperAndShadows: function() {\n j.conditionShow(this._gripper, this._needsGripper());\n j.conditionClass(this._elem, \"contentBefore\", ((this._wrap.scrollTop > 0)));\n j.conditionClass(this._elem, \"contentAfter\", !this.isScrolledToBottom());\n },\n destroy: function() {\n this._listeners.forEach(function(x) {\n x.remove();\n });\n this._listeners.length = 0;\n },\n _handleClickOnTrack: function(JSBNG__event) {\n var x = s.getEventPosition(JSBNG__event, \"viewport\"), y = this._gripper.getBoundingClientRect();\n if (((((x.x < y.right)) && ((x.x > y.left))))) {\n if (((x.y < y.JSBNG__top))) {\n this.setScrollTop(((this.getScrollTop() - this._elem.clientHeight)));\n }\n else if (((x.y > y.bottom))) {\n this.setScrollTop(((this.getScrollTop() + this._elem.clientHeight)));\n }\n \n ;\n ;\n JSBNG__event.prevent();\n }\n ;\n ;\n },\n _handleMouseMove: function(JSBNG__event) {\n var x = ((this._options.fade !== false));\n if (((i.hasPointerEvents() || x))) {\n this._mousePos = s.getEventPosition(JSBNG__event);\n this._throttledRespondMouseMove();\n }\n ;\n ;\n },\n _respondMouseMove: function() {\n if (!this._mouseOver) {\n return;\n }\n ;\n ;\n var x = ((this._options.fade !== false)), y = this._mousePos, z = s.getElementPosition(this._track).x, aa = s.getElementDimensions(this._track).x, ba = Math.abs(((((z + ((aa / 2)))) - y.x)));\n j.conditionClass(this._elem, \"uiScrollableAreaTrackOver\", ((i.hasPointerEvents() && ((ba <= 10)))));\n if (x) {\n if (((ba < 25))) {\n this.showScrollbar(false);\n }\n else if (!this._options.no_fade_on_hover) {\n this.hideScrollbar();\n }\n \n ;\n }\n ;\n ;\n },\n _handleScroll: function(JSBNG__event) {\n if (this._needsGripper()) {\n this._slideGripper();\n }\n ;\n ;\n this.throttledAdjustGripper();\n if (((this._options.fade !== false))) {\n this.showScrollbar();\n }\n ;\n ;\n this.inform(\"JSBNG__scroll\");\n },\n _handleMouseLeave: function() {\n this._mouseOver = false;\n this.hideScrollbar();\n },\n _handleMouseEnter: function() {\n this._mouseOver = true;\n this.showScrollbar();\n },\n hideScrollbar: function(x) {\n if (!this._scrollbarVisible) {\n return this;\n }\n ;\n ;\n this._scrollbarVisible = false;\n if (this._hideTimeout) {\n JSBNG__clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n ;\n ;\n if (x) {\n q.set(this._track, \"opacity\", 0);\n j.addClass.curry(this._track, \"invisible_elem\");\n }\n else this._hideTimeout = function() {\n if (this._hideAnimation) {\n this._hideAnimation.JSBNG__stop();\n this._hideAnimation = null;\n }\n ;\n ;\n this._hideAnimation = (new g(this._track)).from(\"opacity\", 1).to(\"opacity\", 0).duration(250).ondone(j.addClass.curry(this._track, \"invisible_elem\")).go();\n }.bind(this).defer(750);\n ;\n ;\n return this;\n },\n resize: function() {\n var x = s.getElementDimensions(this._elem).x;\n if (((this._options.fade === false))) {\n x -= 10;\n }\n ;\n ;\n x = Math.max(0, x);\n q.set(this._body, \"width\", ((x + \"px\")));\n return this;\n },\n showScrollbar: function(x) {\n this.throttledAdjustGripper();\n if (this._scrollbarVisible) {\n return this;\n }\n ;\n ;\n this._scrollbarVisible = true;\n if (this._hideTimeout) {\n JSBNG__clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n }\n ;\n ;\n if (this._hideAnimation) {\n this._hideAnimation.JSBNG__stop();\n this._hideAnimation = null;\n }\n ;\n ;\n q.set(this._track, \"opacity\", 1);\n j.removeClass(this._track, \"invisible_elem\");\n if (((((x !== false)) && !this._options.no_fade_on_hover))) {\n this.hideScrollbar();\n }\n ;\n ;\n return this;\n },\n isScrolledToBottom: function() {\n return ((this._wrap.scrollTop >= ((this._contentHeight - this._containerHeight))));\n },\n isScrolledToTop: function() {\n return ((this._wrap.scrollTop === 0));\n },\n scrollToBottom: function(x) {\n this.setScrollTop(this._wrap.scrollHeight, x);\n },\n scrollToTop: function(x) {\n this.setScrollTop(0, x);\n },\n scrollIntoView: function(x, y) {\n var z = this._wrap.clientHeight, aa = x.offsetHeight, ba = this._wrap.scrollTop, ca = ((ba + z)), da = x.offsetTop, ea = ((da + aa));\n if (((((da < ba)) || ((z < aa))))) {\n this.setScrollTop(da, y);\n }\n else if (((ea > ca))) {\n this.setScrollTop(((ba + ((ea - ca)))), y);\n }\n \n ;\n ;\n },\n poke: function() {\n var x = this._wrap.scrollTop;\n this._wrap.scrollTop += 1;\n this._wrap.scrollTop -= 1;\n this._wrap.scrollTop = x;\n return this.showScrollbar(false);\n },\n getScrollTop: function() {\n return this._wrap.scrollTop;\n },\n getScrollHeight: function() {\n return this._wrap.scrollHeight;\n },\n setScrollTop: function(x, y, z) {\n if (((y !== false))) {\n if (this._scrollTopAnimation) {\n this._scrollTopAnimation.JSBNG__stop();\n }\n ;\n ;\n z = ((z || {\n }));\n var aa = ((z.duration || 250)), ba = ((z.ease || g.ease.end));\n this._scrollTopAnimation = (new g(this._wrap)).to(\"scrollTop\", x).ease(ba).duration(aa).go();\n }\n else this._wrap.scrollTop = x;\n ;\n ;\n }\n });\n e.exports = w;\n});\n__d(\"Menu\", [\"CSS\",\"Class\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Keys\",\"Parent\",\"PopoverMenuInterface\",\"ScrollableArea\",\"Style\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"Class\"), i = b(\"DataStore\"), j = b(\"DOM\"), k = b(\"JSBNG__Event\"), l = b(\"Keys\"), m = b(\"Parent\"), n = b(\"PopoverMenuInterface\"), o = b(\"ScrollableArea\"), p = b(\"Style\"), q = b(\"copyProperties\"), r = b(\"cx\");\n function s(t, u) {\n this.parent.construct(this);\n this._items = [];\n for (var v = 0; ((v < t.length)); v++) {\n this._items[v] = new t[v].ctor(t[v]);\n ;\n };\n ;\n this._config = ((u || {\n }));\n this._theme = ((u.theme || {\n }));\n };\n;\n h.extend(s, n);\n q(s.prototype, {\n _focused: null,\n _root: null,\n addItem: function(t) {\n this._addItem(t);\n },\n addItemBefore: function(t, u) {\n this._addItem(t, u, false);\n },\n addItemAfter: function(t, u) {\n this._addItem(t, u, true);\n },\n _addItem: function(t, u, v) {\n var w = this._items.indexOf(t);\n if (((w >= 0))) {\n var x = ((v ? -1 : 1));\n if (((this._items[((w + x))] == u))) {\n return;\n }\n ;\n ;\n this._items.splice(w, 1);\n }\n ;\n ;\n if (u) {\n w = this._items.indexOf(u);\n if (((w < 0))) {\n throw new Error(\"reference item must already be in the menu\");\n }\n ;\n ;\n if (v) {\n w++;\n }\n ;\n ;\n this._items.splice(w, 0, t);\n }\n else this._items.push(t);\n ;\n ;\n if (this._root) {\n this._insertItem(t, u, v);\n }\n ;\n ;\n },\n removeItem: function(t) {\n var u = this._items.indexOf(t);\n if (((u < 0))) {\n return;\n }\n ;\n ;\n this._items.splice(u, 1);\n ((this._root && j.remove(t.getRoot())));\n },\n forEachItem: function(t) {\n this._items.forEach(t);\n },\n getItemAt: function(t) {\n return ((this._items[t] || null));\n },\n getRoot: function() {\n if (!this._root) {\n this._render();\n }\n ;\n ;\n return this._root;\n },\n onShow: function() {\n if (this._config.maxheight) {\n if (!this._scrollableArea) {\n this._scrollableArea = o.fromNative(this._scrollableElems.root, {\n fade: true\n });\n }\n else this._scrollableArea.resize();\n ;\n }\n ;\n ;\n this.focusAnItem();\n },\n onHide: function() {\n this.JSBNG__blur();\n },\n focusAnItem: function() {\n return this._attemptFocus(0, 1);\n },\n JSBNG__blur: function() {\n if (this._focused) {\n this._focused.JSBNG__blur();\n this._focused = null;\n this.inform(\"JSBNG__blur\");\n }\n ;\n ;\n },\n handleKeydown: function(t, u) {\n var v = this._items.indexOf(this._focused);\n switch (t) {\n case l.UP:\n \n case l.DOWN:\n var w = ((((t === l.UP)) ? -1 : 1));\n if (((v !== -1))) {\n return this._attemptFocus(((v + w)), w);\n }\n else if (((t === l.UP))) {\n return this._attemptFocus(((this._items.length - 1)), -1);\n }\n else return this._attemptFocus(0, 1)\n \n ;\n break;\n case l.SPACE:\n if (((this._items.indexOf(this._focused) !== -1))) {\n this._handleItemClick(this._focused, u);\n return true;\n }\n ;\n ;\n return false;\n default:\n var x = String.fromCharCode(t).toLowerCase(), y;\n for (var z = ((v + 1)); ((z < this._items.length)); z++) {\n y = this._items[z].getAccessKey();\n if (((y && ((y.charAt(0).toLowerCase() === x))))) {\n if (this._focusItem(this._items[z])) {\n return true;\n }\n ;\n }\n ;\n ;\n };\n ;\n return false;\n };\n ;\n },\n _render: function() {\n this._ul = j.create(\"ul\", {\n className: \"_54nf\"\n });\n this._ul.setAttribute(\"role\", \"menu\");\n this._items.forEach(function(v) {\n this._insertItem(v, null);\n }.bind(this));\n k.listen(this._ul, \"click\", this._handleClick.bind(this));\n k.listen(this._ul, \"mouseover\", this._handleMouseOver.bind(this));\n k.listen(this._ul, \"mouseout\", this._handleMouseOut.bind(this));\n var t = this._ul;\n if (this._config.maxheight) {\n this._scrollableElems = o.renderDOM();\n j.setContent(this._scrollableElems.JSBNG__content, this._ul);\n t = this._scrollableElems.root;\n p.set(this._scrollableElems.wrap, \"max-height\", ((this._config.maxheight + \"px\")));\n }\n ;\n ;\n var u = ((((\"_54nq\" + ((this._config.className ? ((\" \" + this._config.className)) : \"\")))) + ((this._theme.className ? ((\" \" + this._theme.className)) : \"\"))));\n this._root = j.create(\"div\", {\n className: u\n }, j.create(\"div\", {\n className: \"_54ng\"\n }, t));\n ((this._config.id && this._root.setAttribute(\"id\", this._config.id)));\n this.inform(\"rendered\", this._root);\n },\n _needsDefaultBehavior: function(t) {\n if (((t.isDefaultRequested && t.isDefaultRequested()))) {\n var u = m.byTag(t.getTarget(), \"a\"), v = ((u && u.getAttribute(\"href\")));\n return ((v && ((v[0] !== \"#\"))));\n }\n ;\n ;\n return false;\n },\n _handleClick: function(t) {\n if (!this._needsDefaultBehavior(t)) {\n var u = this._getItemInstance(t.getTarget());\n if (u) {\n return this._handleItemClick(u, t);\n }\n ;\n ;\n }\n ;\n ;\n },\n _handleItemClick: function(t, u) {\n this.inform(\"itemclick\", {\n item: t,\n JSBNG__event: u\n });\n if (t.hasAction()) {\n this.done();\n }\n ;\n ;\n return t.handleClick();\n },\n _handleMouseOver: function(t) {\n var u = this._getItemInstance(t.getTarget());\n ((u && this._focusItem(u, true)));\n },\n _handleMouseOut: function(t) {\n var u = this._getItemInstance(t.getTarget());\n if (((u && ((this._focused === u))))) {\n this.JSBNG__blur();\n }\n ;\n ;\n },\n _insertItem: function(t, u, v) {\n var w = t.getRoot();\n g.addClass(w, \"__MenuItem\");\n i.set(w, \"MenuItem\", t);\n if (u) {\n var x = ((v ? j.insertAfter : j.insertBefore));\n x(u.getRoot(), w);\n }\n else j.appendContent(this._ul, w);\n ;\n ;\n },\n _attemptFocus: function(t, u) {\n var v = this.getItemAt(t);\n if (v) {\n if (this._focusItem(v)) {\n return true;\n }\n else return this._attemptFocus(((t + u)), u)\n ;\n }\n ;\n ;\n return false;\n },\n _focusItem: function(t, u) {\n if (((t.JSBNG__focus(u) !== false))) {\n if (((this._focused !== t))) {\n this.JSBNG__blur();\n this._focused = t;\n this.inform(\"JSBNG__focus\");\n }\n ;\n ;\n return true;\n }\n ;\n ;\n return false;\n },\n _getItemInstance: function(t) {\n var u = m.byClass(t, \"__MenuItem\");\n return ((u ? i.get(u, \"MenuItem\") : null));\n }\n });\n e.exports = s;\n});\n__d(\"MenuItemInterface\", [\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"emptyFunction\");\n function i() {\n \n };\n;\n g(i.prototype, {\n _root: null,\n getRoot: function() {\n if (!this._root) {\n this._root = this.render();\n }\n ;\n ;\n return this._root;\n },\n render: h,\n getAccessKey: h,\n hasAction: h.thatReturnsFalse,\n JSBNG__focus: h.thatReturnsFalse,\n JSBNG__blur: h.thatReturnsFalse,\n handleClick: h.thatReturnsFalse\n });\n e.exports = i;\n});\n__d(\"MenuItemBase\", [\"Class\",\"DOM\",\"HTML\",\"MenuItemInterface\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"HTML\"), j = b(\"MenuItemInterface\"), k = b(\"copyProperties\"), l = b(\"cx\");\n function m(n) {\n this.parent.construct(this);\n this._data = n;\n };\n;\n g.extend(m, j);\n k(m.prototype, {\n render: function() {\n var n = \"_54ni\";\n if (this._data.className) {\n n += ((\" \" + this._data.className));\n }\n ;\n ;\n var o = {\n className: n,\n \"aria-selected\": \"false\"\n };\n {\n var fin121keys = ((window.top.JSBNG_Replay.forInKeys)((this._data))), fin121i = (0);\n var p;\n for (; (fin121i < fin121keys.length); (fin121i++)) {\n ((p) = (fin121keys[fin121i]));\n {\n if (((p.indexOf(\"data-\") === 0))) {\n o[p] = this._data[p];\n }\n ;\n ;\n };\n };\n };\n ;\n return h.create(\"li\", o, this._renderItemContent());\n },\n _renderItemContent: function() {\n return i(this._data.markup).getNodes();\n }\n });\n e.exports = m;\n});\n__d(\"MenuItem\", [\"Class\",\"CSS\",\"DOM\",\"MenuItemBase\",\"React\",\"copyProperties\",\"cx\",\"emptyFunction\",\"startsWith\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"MenuItemBase\"), k = b(\"React\"), l = b(\"copyProperties\"), m = b(\"cx\"), n = b(\"emptyFunction\"), o = b(\"startsWith\");\n function p(q) {\n this.parent.construct(this, q);\n this._disabled = !!this._data.disabled;\n };\n;\n g.extend(p, j);\n l(p.prototype, {\n getValue: function() {\n return this._data.value;\n },\n getAccessKey: function() {\n return ((this._data.label && this._data.label.charAt(0)));\n },\n hasAction: n.thatReturnsTrue,\n JSBNG__focus: function(q) {\n if (((this.isDisabled() || !this._root.offsetParent))) {\n return false;\n }\n ;\n ;\n h.addClass(this._root, \"_54ne\");\n h.addClass(this._root, \"selected\");\n this._root.setAttribute(\"aria-selected\", \"true\");\n ((q || this._anchor.JSBNG__focus()));\n },\n JSBNG__blur: function() {\n h.removeClass(this._root, \"_54ne\");\n h.removeClass(this._root, \"selected\");\n this._root.setAttribute(\"aria-selected\", \"false\");\n },\n handleClick: function() {\n if (this.isDisabled()) {\n return false;\n }\n ;\n ;\n if (((typeof this._onclickHandler === \"function\"))) {\n return this._onclickHandler();\n }\n ;\n ;\n return !!((((this._data.rel && ((this._data.rel !== \"ignore\")))) || this._data.href));\n },\n setOnClickHandler: function(q) {\n this._onclickHandler = q;\n },\n _renderItemContent: function() {\n this._anchor = i.create(\"a\", {\n className: \"_54nc\"\n });\n if (this._data.reactChildren) {\n k.renderComponent(k.DOM.span({\n className: \"_54nh\"\n }, this._data.reactChildren), this._anchor);\n this._data.label = ((this._anchor.innerText || this._anchor.textContent));\n }\n else i.setContent(this._anchor, i.create(\"span\", {\n className: \"_54nh\"\n }, ((this._data.markup || this._data.label))));\n ;\n ;\n if (this._data.icon) {\n i.prependContent(this._anchor, this._data.icon);\n h.addClass(this._anchor, \"_54nu\");\n }\n ;\n ;\n if (!this.isDisabled()) {\n this._anchor.setAttribute(\"href\", ((this._data.href || \"#\")));\n }\n ;\n ;\n if (this._data.rel) {\n this._anchor.setAttribute(\"rel\", this._data.rel);\n }\n else if (!this._data.href) {\n this._anchor.setAttribute(\"rel\", \"ignore\");\n }\n \n ;\n ;\n if (this._data.ajaxify) {\n this._anchor.setAttribute(\"ajaxify\", this._data.ajaxify);\n }\n ;\n ;\n if (this._data.target) {\n this._anchor.setAttribute(\"target\", this._data.target);\n }\n ;\n ;\n {\n var fin122keys = ((window.top.JSBNG_Replay.forInKeys)((this._data))), fin122i = (0);\n var q;\n for (; (fin122i < fin122keys.length); (fin122i++)) {\n ((q) = (fin122keys[fin122i]));\n {\n if (((((typeof q === \"string\")) && o(q, \"data-\")))) {\n this._anchor.setAttribute(q, this._data[q]);\n }\n ;\n ;\n };\n };\n };\n ;\n this._anchor.setAttribute(\"role\", \"menuitem\");\n this._anchor.setAttribute(\"title\", this._data.title);\n return this._anchor;\n },\n isDisabled: function() {\n return this._disabled;\n },\n enable: function() {\n this._anchor.setAttribute(\"href\", ((this._data.href || \"#\")));\n h.removeClass(this._root, \"_5arm\");\n this._disabled = false;\n },\n disable: function() {\n this._anchor.removeAttribute(\"href\");\n h.addClass(this._root, \"_5arm\");\n this._disabled = true;\n },\n render: function() {\n var q = this.parent.render();\n if (this._data.disabled) {\n h.addClass(q, \"_5arm\");\n }\n ;\n ;\n return q;\n }\n });\n e.exports = p;\n});\n__d(\"MenuSelectableItem\", [\"Class\",\"CSS\",\"MenuItem\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"CSS\"), i = b(\"MenuItem\"), j = b(\"copyProperties\"), k = b(\"cx\");\n function l(m) {\n this.parent.construct(this, m);\n this._selected = !!this._data.selected;\n };\n;\n g.extend(l, i);\n j(l.prototype, {\n _selected: false,\n getLabel: function() {\n return this._data.label;\n },\n getIcon: function() {\n return this._data.icon;\n },\n isSelected: function() {\n return this._selected;\n },\n select: function() {\n if (this.isDisabled()) {\n return false;\n }\n ;\n ;\n h.addClass(this._root, \"_54nd\");\n this._selected = true;\n },\n deselect: function() {\n h.removeClass(this._root, \"_54nd\");\n this._selected = false;\n },\n render: function() {\n var m = this.parent.render();\n if (this._data.selected) {\n h.addClass(m, \"_54nd\");\n }\n ;\n ;\n return m;\n }\n });\n e.exports = l;\n});\n__d(\"SelectableMenu\", [\"Class\",\"Menu\",\"arrayContains\",\"copyProperties\",\"createArrayFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"Menu\"), i = b(\"arrayContains\"), j = b(\"copyProperties\"), k = b(\"createArrayFrom\");\n function l(o, p) {\n this.parent.construct(this, o, p);\n };\n;\n function m(o) {\n return ((((o.select && o.deselect)) && o.isSelected));\n };\n;\n function n(o) {\n return ((m(o) && o.isSelected()));\n };\n;\n g.extend(l, h);\n j(l.prototype, {\n focusAnItem: function() {\n for (var o = 0; ((o < this._items.length)); o++) {\n if (n(this._items[o])) {\n if (((this._focusItem(this._items[o]) !== false))) {\n return true;\n }\n ;\n }\n ;\n ;\n };\n ;\n return this.parent.focusAnItem();\n },\n setValue: function(o) {\n if (!this._root) {\n this._render();\n }\n ;\n ;\n var p = k(o);\n this._items.forEach(function(q) {\n if (m(q)) {\n if (i(p, q.getValue())) {\n q.select();\n }\n else if (n(q)) {\n q.deselect();\n }\n \n ;\n }\n ;\n ;\n });\n this.inform(\"change\", this._getSelection());\n },\n _handleItemClick: function(o, p) {\n if (!m(o)) {\n return this.parent._handleItemClick(o, p);\n }\n ;\n ;\n this.inform(\"itemclick\", {\n item: o,\n JSBNG__event: p\n });\n if (this._config.multiple) {\n var q = ((n(o) ? o.deselect() : o.select()));\n if (((q !== false))) {\n this.inform(\"change\", this._getSelection());\n }\n ;\n ;\n }\n else {\n if (!n(o)) {\n if (((o.select() !== false))) {\n this._items.forEach(function(r) {\n if (((n(r) && ((r !== o))))) {\n r.deselect();\n }\n ;\n ;\n });\n this.inform(\"change\", this._getSelection());\n }\n ;\n }\n ;\n ;\n this.done();\n }\n ;\n ;\n return o.handleClick();\n },\n _getSelection: function() {\n var o = [];\n this._items.forEach(function(p) {\n if (n(p)) {\n o.push({\n label: p.getLabel(),\n value: p.getValue(),\n item: p\n });\n }\n ;\n ;\n });\n if (!this._config.multiple) {\n o = o[0];\n }\n ;\n ;\n return o;\n }\n });\n e.exports = l;\n});\n__d(\"PopoverLoadingMenu\", [\"Class\",\"DOM\",\"PopoverMenuInterface\",\"copyProperties\",\"cx\",\"joinClasses\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"PopoverMenuInterface\"), j = b(\"copyProperties\"), k = b(\"cx\"), l = b(\"joinClasses\");\n function m(n) {\n this.parent.construct(this);\n this._config = ((n || {\n }));\n this._theme = ((n.theme || {\n }));\n };\n;\n g.extend(m, i);\n j(m.prototype, {\n _root: null,\n getRoot: function() {\n if (!this._root) {\n this._root = h.create(\"div\", {\n className: l(\"_54nq\", this._config.className, this._theme.className)\n }, h.create(\"div\", {\n className: \"_54ng\"\n }, h.create(\"div\", {\n className: \"_54nf _54af\"\n }, h.create(\"span\", {\n className: \"_54ag\"\n }))));\n }\n ;\n ;\n return this._root;\n }\n });\n e.exports = m;\n});\n__d(\"TabIsolation\", [\"JSBNG__Event\",\"DOMQuery\",\"Focus\",\"Keys\",\"TabbableElements\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"DOMQuery\"), i = b(\"Focus\"), j = b(\"Keys\"), k = b(\"TabbableElements\"), l = b(\"copyProperties\"), m = [], n = 0;\n function o(p) {\n this._root = p;\n this._eventHandler = null;\n this._identifier = n++;\n };\n;\n l(o.prototype, {\n enable: function() {\n m.unshift(this._identifier);\n this._eventHandler = g.listen(window, \"keydown\", function(p) {\n if (((m[0] === this._identifier))) {\n this._tabHandler(p);\n }\n ;\n ;\n }.bind(this), g.Priority.URGENT);\n },\n disable: function() {\n var p;\n if (this._eventHandler) {\n p = m.indexOf(this._identifier);\n if (((p > -1))) {\n m.splice(p, 1);\n }\n ;\n ;\n this._eventHandler.remove();\n this._eventHandler = null;\n }\n ;\n ;\n },\n _tabHandler: function(p) {\n if (((g.getKeyCode(p) !== j.TAB))) {\n return;\n }\n ;\n ;\n var q = p.getTarget();\n if (!q) {\n return;\n }\n ;\n ;\n var r = k.JSBNG__find(this._root), s = r[0], t = r[((r.length - 1))], u = p.getModifiers().shift;\n if (((u && ((q === s))))) {\n p.preventDefault();\n i.set(t);\n }\n else if (((((!u && ((q === t)))) || !h.contains(this._root, q)))) {\n p.preventDefault();\n i.set(s);\n }\n \n ;\n ;\n }\n });\n e.exports = o;\n});\n__d(\"AccessibleLayer\", [\"JSBNG__Event\",\"DOM\",\"Focus\",\"copyProperties\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"DOM\"), i = b(\"Focus\"), j = b(\"copyProperties\"), k = b(\"tx\");\n function l(m) {\n this._layer = m;\n };\n;\n j(l.prototype, {\n enable: function() {\n this._afterShowSubscription = this._layer.subscribe(\"aftershow\", this._onAfterShow.bind(this));\n },\n disable: function() {\n ((this._listener && this._listener.remove()));\n this._afterShowSubscription.unsubscribe();\n this._listener = this._afterShowSubscription = null;\n },\n _closeListener: function(JSBNG__event) {\n var m = this._layer.getCausalElement();\n if (m) {\n if (((m.tabIndex == -1))) {\n m.tabIndex = 0;\n i.setWithoutOutline(m);\n }\n else i.set(m);\n ;\n }\n ;\n ;\n this._layer.hide();\n },\n _onAfterShow: function() {\n var m = this._layer.getContentRoot();\n if (h.scry(m, \".layer_close_elem\")[0]) {\n return;\n }\n ;\n ;\n var n = h.create(\"a\", {\n className: \"accessible_elem layer_close_elem\",\n href: \"#\"\n }, [\"Close popup and return\",]);\n h.appendContent(m, n);\n this._listener = g.listen(n, \"click\", this._closeListener.bind(this));\n }\n });\n e.exports = l;\n});\n__d(\"ContextualLayerAsyncRelative\", [\"JSBNG__Event\",\"copyProperties\",\"Parent\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\"), i = b(\"Parent\");\n function j(k) {\n this._layer = k;\n };\n;\n h(j.prototype, {\n _layerSubscription: null,\n _listener: null,\n enable: function() {\n this._layerSubscription = this._layer.subscribe(\"show\", this._attachListener.bind(this));\n if (this._layer.isShown()) {\n this._attachListener();\n }\n ;\n ;\n },\n disable: function() {\n this._layerSubscription.unsubscribe();\n this._layerSubscription = null;\n if (this._listener) {\n this._listener.remove();\n this._listener = null;\n }\n ;\n ;\n },\n _attachListener: function() {\n this._listener = g.listen(this._layer.getRoot(), \"click\", this._onclick.bind(this));\n },\n _onclick: function(k) {\n var l = i.byTag(k.getTarget(), \"A\");\n if (!l) {\n return;\n }\n ;\n ;\n var m = l.getAttribute(\"ajaxify\"), n = l.href, o = ((m || n));\n if (((((l.rel === \"async\")) || ((l.rel === \"async-post\"))))) {\n d([\"AsyncRequest\",], function(p) {\n p.bootstrap(o, this._layer.getContext(), ((l.rel === \"async-post\")));\n }.bind(this));\n return false;\n }\n ;\n ;\n }\n });\n e.exports = j;\n});\n__d(\"ContextualLayerUpdateOnScroll\", [\"JSBNG__Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\");\n function i(j) {\n this._layer = j;\n };\n;\n h(i.prototype, {\n _subscriptions: [],\n enable: function() {\n this._subscriptions = [this._layer.subscribe(\"show\", this._attachScrollListener.bind(this)),this._layer.subscribe(\"hide\", this._removeScrollListener.bind(this)),];\n },\n disable: function() {\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this.detach();\n },\n _attachScrollListener: function() {\n if (this._listener) {\n return;\n }\n ;\n ;\n var j = this._layer.getContextScrollParent();\n this._listener = g.listen(j, \"JSBNG__scroll\", this._layer.updatePosition.bind(this._layer));\n },\n _removeScrollListener: function() {\n ((this._listener && this._listener.remove()));\n this._listener = null;\n }\n });\n e.exports = i;\n});\n__d(\"LayerAutoFocus\", [\"function-extensions\",\"DOMQuery\",\"Focus\",\"TabbableElements\",\"copyProperties\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"DOMQuery\"), h = b(\"Focus\"), i = b(\"TabbableElements\"), j = b(\"copyProperties\");\n function k(l) {\n this._layer = l;\n };\n;\n j(k.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"aftershow\", this._focus.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _focus: function() {\n var l = this._layer.getRoot(), m = g.scry(l, \".autofocus\")[0], n = true;\n if (!m) {\n var o = JSBNG__document.activeElement;\n if (g.isNodeOfType(o, [\"input\",\"textarea\",])) {\n return;\n }\n ;\n ;\n var p = i.JSBNG__find(l);\n for (var q = 0; ((q < p.length)); q++) {\n if (((p[q].tagName != \"A\"))) {\n m = p[q];\n n = false;\n break;\n }\n ;\n ;\n };\n ;\n }\n else if (((m.tabIndex !== 0))) {\n n = false;\n }\n \n ;\n ;\n if (m) {\n ((n ? h.set(m) : h.setWithoutOutline(m)));\n }\n else {\n l.tabIndex = 0;\n h.setWithoutOutline(l);\n }\n ;\n ;\n }\n });\n e.exports = k;\n});\n__d(\"LayerButtons\", [\"JSBNG__Event\",\"Parent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Parent\"), i = b(\"copyProperties\");\n function j(k) {\n this._layer = k;\n };\n;\n i(j.prototype, {\n _listener: null,\n enable: function() {\n this._listener = g.listen(this._layer.getRoot(), \"click\", this._handle.bind(this));\n },\n disable: function() {\n this._listener.remove();\n this._listener = null;\n },\n _handle: function(k) {\n var l = k.getTarget(), m = h.byClass(l, \"layerConfirm\");\n if (m) {\n if (((this._layer.inform(\"JSBNG__confirm\", m) === false))) {\n k.prevent();\n }\n ;\n ;\n return;\n }\n ;\n ;\n var n = h.byClass(l, \"layerCancel\");\n if (n) {\n if (((this._layer.inform(\"cancel\", n) !== false))) {\n this._layer.hide();\n }\n ;\n ;\n k.prevent();\n return;\n }\n ;\n ;\n var o = h.byClass(l, \"layerButton\");\n if (o) {\n if (((this._layer.inform(\"button\", o) === false))) {\n k.prevent();\n }\n ;\n }\n ;\n ;\n }\n });\n e.exports = j;\n});\n__d(\"LayerDestroyOnHide\", [\"function-extensions\",\"copyProperties\",\"shield\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"copyProperties\"), h = b(\"shield\");\n function i(j) {\n this._layer = j;\n };\n;\n g(i.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"hide\", h(Function.prototype.defer, this._layer.destroy.bind(this._layer)));\n },\n disable: function() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n ;\n ;\n }\n });\n e.exports = i;\n});\n__d(\"LayerFadeOnHide\", [\"Animation\",\"Layer\",\"Style\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"Layer\"), i = b(\"Style\"), j = b(\"UserAgent\"), k = b(\"copyProperties\");\n function l(m) {\n this._layer = m;\n };\n;\n k(l.prototype, {\n _subscription: null,\n enable: function() {\n if (((j.ie() < 9))) {\n return;\n }\n ;\n ;\n this._subscription = this._layer.subscribe(\"starthide\", this._handleStartHide.bind(this));\n },\n disable: function() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n ;\n ;\n },\n _handleStartHide: function() {\n var m = true, n = h.subscribe(\"show\", function() {\n n.unsubscribe();\n m = false;\n });\n (function() {\n n.unsubscribe();\n n = null;\n if (m) {\n this._animate();\n }\n else this._layer.finishHide();\n ;\n ;\n }).bind(this).defer();\n return false;\n },\n _animate: function() {\n new g(this._layer.getRoot()).from(\"opacity\", 1).to(\"opacity\", 0).duration(150).ondone(this._finish.bind(this)).go();\n },\n _finish: function() {\n i.set(this._layer.getRoot(), \"opacity\", \"\");\n this._layer.finishHide();\n }\n });\n e.exports = l;\n});\n__d(\"LayerFadeOnShow\", [\"Animation\",\"Style\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"Style\"), i = b(\"UserAgent\"), j = b(\"copyProperties\");\n function k(l) {\n this._layer = l;\n };\n;\n j(k.prototype, {\n _subscriptions: null,\n enable: function() {\n if (((i.ie() < 9))) {\n return;\n }\n ;\n ;\n this._subscriptions = [this._layer.subscribe(\"beforeshow\", function() {\n h.set(this._layer.getRoot(), \"opacity\", 0);\n }.bind(this)),this._layer.subscribe(\"show\", this._animate.bind(this)),];\n },\n disable: function() {\n if (this._subscriptions) {\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this._subscriptions = null;\n }\n ;\n ;\n },\n _getDuration: function() {\n return 100;\n },\n _animate: function() {\n var l = this._layer.getRoot();\n new g(l).from(\"opacity\", 0).to(\"opacity\", 1).duration(this._getDuration()).ondone(h.set.curry(l, \"opacity\", \"\")).go();\n }\n });\n e.exports = k;\n});\n__d(\"LayerFormHooks\", [\"JSBNG__Event\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"copyProperties\");\n function i(j) {\n this._layer = j;\n };\n;\n h(i.prototype, {\n _subscriptions: null,\n enable: function() {\n var j = this._layer.getRoot();\n this._subscriptions = [g.listen(j, \"submit\", this._onSubmit.bind(this)),g.listen(j, \"success\", this._onSuccess.bind(this)),g.listen(j, \"error\", this._onError.bind(this)),];\n },\n disable: function() {\n this._subscriptions.forEach(function(j) {\n j.remove();\n });\n this._subscriptions = null;\n },\n _onSubmit: function(JSBNG__event) {\n if (((this._layer.inform(\"submit\", JSBNG__event) === false))) {\n JSBNG__event.kill();\n }\n ;\n ;\n },\n _onSuccess: function(JSBNG__event) {\n if (((this._layer.inform(\"success\", JSBNG__event) === false))) {\n JSBNG__event.kill();\n }\n ;\n ;\n },\n _onError: function(JSBNG__event) {\n var j = JSBNG__event.getData();\n if (((this._layer.inform(\"error\", {\n response: j.response\n }) === false))) {\n JSBNG__event.kill();\n }\n ;\n ;\n }\n });\n e.exports = i;\n});\n__d(\"LayerHideOnBlur\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\");\n function h(i) {\n this._layer = i;\n };\n;\n g(h.prototype, {\n _subscriptions: null,\n _onBlur: null,\n enable: function() {\n this._subscriptions = [this._layer.subscribe(\"show\", this._attach.bind(this)),this._layer.subscribe(\"hide\", this._detach.bind(this)),];\n if (this._layer.isShown()) {\n this._attach();\n }\n ;\n ;\n },\n disable: function() {\n this._detach();\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this._subscriptions = null;\n },\n _detach: function() {\n ((this._onBlur && this._onBlur.unsubscribe()));\n this._onBlur = null;\n },\n _attach: function() {\n this._onBlur = this._layer.subscribe(\"JSBNG__blur\", function() {\n this._layer.hide();\n return false;\n }.bind(this));\n }\n });\n e.exports = h;\n});\n__d(\"LayerMouseHooks\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"ContextualThing\",\"Layer\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"Arbiter\"), i = b(\"ContextualThing\"), j = b(\"Layer\"), k = b(\"copyProperties\"), l = new h();\n function m(n) {\n this._layer = n;\n this._subscriptions = [];\n this._currentlyActive = false;\n };\n;\n k(m.prototype, {\n enable: function() {\n this._subscriptions = [l.subscribe(\"mouseenter\", this._handleActive.bind(this)),l.subscribe(\"mouseleave\", this._handleInactive.bind(this)),this._layer.subscribe(\"hide\", function() {\n this._currentlyActive = false;\n }.bind(this)),];\n },\n disable: function() {\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this._subscriptions = [];\n this._currentlyActive = false;\n },\n _handleActive: function(n, o) {\n if (((!this._currentlyActive && this._isNodeWithinStack(o)))) {\n this._layer.inform(\"mouseenter\");\n this._currentlyActive = true;\n }\n ;\n ;\n },\n _handleInactive: function(n, o) {\n if (this._currentlyActive) {\n if (((!o || !this._isNodeWithinStack(o)))) {\n this._layer.inform(\"mouseleave\");\n this._currentlyActive = false;\n }\n ;\n }\n ;\n ;\n },\n _isNodeWithinStack: function(n) {\n return i.containsIncludingLayers(this._layer.getContentRoot(), n);\n }\n });\n j.subscribe(\"show\", function(n, o) {\n var p = o.getContentRoot(), q = [g.listen(p, \"mouseenter\", function() {\n l.inform(\"mouseenter\", p);\n }),g.listen(p, \"mouseleave\", function(s) {\n l.inform(\"mouseleave\", s.getRelatedTarget());\n }),], r = o.subscribe(\"hide\", function() {\n while (q.length) {\n q.pop().remove();\n ;\n };\n ;\n r.unsubscribe();\n q = r = null;\n });\n });\n e.exports = m;\n});\n__d(\"LayerRefocusOnHide\", [\"copyProperties\",\"Focus\",\"ContextualThing\",\"DOM\",\"DOMQuery\",\"Parent\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"Focus\"), i = b(\"ContextualThing\"), j = b(\"DOM\"), k = b(\"DOMQuery\"), l = b(\"Parent\");\n function m(n) {\n this._layer = n;\n };\n;\n g(m.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._layer.subscribe(\"hide\", this._handle.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _handle: function(n, JSBNG__event) {\n if (((((JSBNG__document.activeElement === JSBNG__document.body)) || k.contains(this._layer.getRoot(), JSBNG__document.activeElement)))) {\n var o = this._layer.getCausalElement();\n while (((o && (!o.offsetWidth)))) {\n var p = l.byClass(o, \"uiToggle\");\n if (((p && p.offsetWidth))) {\n o = j.scry(p, \"[rel=\\\"toggle\\\"]\")[0];\n }\n else {\n var q = i.getContext(o);\n if (q) {\n o = q;\n }\n else o = o.parentNode;\n ;\n ;\n }\n ;\n ;\n };\n ;\n if (((o && ((o.tabIndex != -1))))) {\n h.setWithoutOutline(o);\n }\n ;\n ;\n }\n ;\n ;\n }\n });\n e.exports = m;\n});\n__d(\"LayerTabIsolation\", [\"TabIsolation\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"TabIsolation\"), h = b(\"copyProperties\");\n function i(j) {\n this._layer = j;\n this._tabIsolation = null;\n };\n;\n h(i.prototype, {\n _subscriptions: [],\n enable: function() {\n this._tabIsolation = new g(this._layer.getRoot());\n this._subscriptions = [this._layer.subscribe(\"show\", this._tabIsolation.enable.bind(this._tabIsolation)),this._layer.subscribe(\"hide\", this._tabIsolation.disable.bind(this._tabIsolation)),];\n },\n disable: function() {\n while (this._subscriptions.length) {\n this._subscriptions.pop().unsubscribe();\n ;\n };\n ;\n this._tabIsolation.disable();\n this._tabIsolation = null;\n }\n });\n e.exports = i;\n});\n__d(\"ModalLayer\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"CSS\",\"DataStore\",\"DOM\",\"DOMDimensions\",\"DOMQuery\",\"ScrollAwareDOM\",\"Style\",\"URI\",\"UserAgent\",\"Vector\",\"copyProperties\",\"csx\",\"cx\",\"debounceAcrossTransitions\",\"isAsyncScrollQuery\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"DOMDimensions\"), m = b(\"DOMQuery\"), n = b(\"ScrollAwareDOM\"), o = b(\"Style\"), p = b(\"URI\"), q = b(\"UserAgent\"), r = b(\"Vector\"), s = b(\"copyProperties\"), t = b(\"csx\"), u = b(\"cx\"), v = b(\"debounceAcrossTransitions\"), w = b(\"isAsyncScrollQuery\"), x = b(\"removeFromArray\"), y = [], z = null, aa = null, ba = null;\n function ca() {\n if (!ba) {\n ba = m.scry(JSBNG__document.body, \"._li\")[0];\n }\n ;\n ;\n return ba;\n };\n;\n function da(la) {\n var ma = {\n position: r.getScrollPosition()\n }, na = ((la.offsetTop - ma.position.y));\n i.addClass(la, \"_31e\");\n o.set(la, \"JSBNG__top\", ((na + \"px\")));\n h.inform(\"reflow\");\n ma.listener = n.subscribe(\"JSBNG__scroll\", function(oa, pa) {\n if (m.contains(la, pa.target)) {\n var qa = ((la.offsetTop - pa.delta.y));\n o.set(la, \"JSBNG__top\", ((qa + \"px\")));\n ma.position = ma.position.add(pa.delta);\n return false;\n }\n ;\n ;\n });\n j.set(la, \"ModalLayerData\", ma);\n if (((q.firefox() < 13))) {\n ea.curry(la).defer();\n }\n ;\n ;\n };\n;\n function ea(la) {\n m.scry(la, \"div.swfObject\").forEach(function(ma) {\n var na = ma.getAttribute(\"data-swfid\");\n if (((na && window[na]))) {\n var oa = window[na];\n oa.addParam(\"autostart\", \"false\");\n oa.addParam(\"autoplay\", \"false\");\n oa.addParam(\"play\", \"false\");\n oa.addVariable(\"video_autoplay\", \"0\");\n oa.addVariable(\"autoplay\", \"0\");\n oa.addVariable(\"play\", \"0\");\n var pa = p(oa.getAttribute(\"swf\"));\n pa.addQueryData({\n autoplay: \"0\"\n });\n pa.setPath(pa.getPath().replace(\"autoplay=1\", \"autoplay=0\"));\n oa.setAttribute(\"swf\", pa.toString());\n oa.write(ma);\n }\n ;\n ;\n });\n };\n;\n function fa(la, ma) {\n var na = j.get(la, \"ModalLayerData\");\n if (na) {\n var oa = function() {\n i.removeClass(la, \"_31e\");\n o.set(la, \"JSBNG__top\", \"\");\n if (ma) {\n var ra = m.getDocumentScrollElement();\n ra.scrollTop = na.position.y;\n }\n ;\n ;\n h.inform(\"reflow\");\n na.listener.unsubscribe();\n na.listener = null;\n j.remove(la, \"ModalLayerData\");\n };\n if (((ma && w()))) {\n var pa = k.create(\"div\", {\n className: \"_42w\"\n });\n o.set(pa, \"height\", ((la.offsetHeight + \"px\")));\n k.appendContent(JSBNG__document.body, pa);\n var qa = m.getDocumentScrollElement();\n qa.scrollTop = na.position.y;\n ma = false;\n !function() {\n oa();\n k.remove(pa);\n }.defer();\n }\n else oa();\n ;\n ;\n }\n ;\n ;\n if (((q.ie() < 7))) {\n o.set(la, \"height\", \"\");\n }\n ;\n ;\n };\n;\n function ga() {\n var la = ca();\n if (!i.hasClass(la, \"_31e\")) {\n da(la);\n }\n ;\n ;\n };\n;\n function ha() {\n if (!y.length) {\n fa(ca(), true);\n }\n ;\n ;\n };\n;\n function ia() {\n var la;\n if (((q.ie() < 7))) {\n var ma = y[((y.length - 1))].getLayerRoot(), na = Math.max(ma.offsetHeight, ma.scrollHeight);\n la = function(ta) {\n o.set(ta, \"height\", ((((-ta.offsetTop + na)) + \"px\")));\n };\n }\n ;\n ;\n var oa = y.length;\n while (oa--) {\n var pa = y[oa], qa = pa.getLayerRoot();\n ja(qa, \"\");\n var ra = pa.getLayerContentRoot(), sa = ((ra.offsetWidth + l.measureElementBox(ra, \"width\", 0, 0, 1)));\n ja(qa, sa);\n if (((la && ((oa < ((y.length - 1))))))) {\n la(qa);\n }\n ;\n ;\n };\n ;\n ((la && la(ca())));\n };\n;\n function ja(la, ma) {\n var na = ((q.ie() < 7));\n if (((((na && ma)) && ((ma <= JSBNG__document.body.clientWidth))))) {\n ma = \"\";\n }\n ;\n ;\n o.set(la, ((na ? \"width\" : \"min-width\")), ((ma + ((ma ? \"px\" : \"\")))));\n };\n;\n function ka(la) {\n this._layer = la;\n };\n;\n s(ka.prototype, {\n _subscription: null,\n enable: function() {\n if (!ca()) {\n return;\n }\n ;\n ;\n this._subscription = this._layer.subscribe([\"show\",\"hide\",], function(la) {\n ((((la == \"show\")) ? this._addModal() : this._removeModal()));\n }.bind(this));\n if (this._layer.isShown()) {\n this._addModal();\n }\n ;\n ;\n },\n disable: function() {\n if (!ca()) {\n return;\n }\n ;\n ;\n this._subscription.unsubscribe();\n this._subscription = null;\n if (this._layer.isShown()) {\n this._removeModal();\n }\n ;\n ;\n },\n _addModal: function() {\n i.addClass(this.getLayerRoot(), \"_3qw\");\n var la = y[((y.length - 1))];\n if (la) {\n da(la.getLayerRoot());\n }\n else ga();\n ;\n ;\n var ma = m.getDocumentScrollElement();\n ma.scrollTop = 0;\n if (!y.length) {\n if (((q.ie() < 7))) {\n i.addClass(JSBNG__document.documentElement, \"_31d\");\n }\n ;\n ;\n var na = v(ia, 100);\n z = g.listen(window, \"resize\", na);\n aa = h.subscribe(\"reflow\", na);\n }\n ;\n ;\n y.push(this);\n ia.defer();\n },\n _removeModal: function() {\n var la = this.getLayerRoot();\n i.removeClass(la, \"_3qw\");\n ja(la, \"\");\n var ma = ((this === y[((y.length - 1))]));\n x(y, this);\n var na = y[((y.length - 1))];\n if (!na) {\n z.remove();\n z = null;\n aa.unsubscribe();\n aa = null;\n }\n ;\n ;\n !function() {\n if (na) {\n fa(na.getLayerRoot(), ma);\n }\n else ha();\n ;\n ;\n if (y.length) {\n ia.defer();\n }\n else if (((q.ie() < 7))) {\n i.removeClass(JSBNG__document.documentElement, \"_31d\");\n }\n \n ;\n ;\n }.defer(400, false);\n },\n getLayerRoot: function() {\n return this._layer.getRoot();\n },\n getLayerContentRoot: function() {\n return this._layer.getContentRoot();\n }\n });\n e.exports = ka;\n});\n__d(\"ContextualDialogArrow\", [\"JSXDOM\",\"CSS\",\"DOM\",\"Locale\",\"Style\",\"Vector\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSXDOM\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Locale\"), k = b(\"Style\"), l = b(\"Vector\"), m = b(\"copyProperties\"), n = b(\"cx\"), o = {\n bottom: \"_53ik\",\n JSBNG__top: \"_53il\",\n right: \"_53im\",\n left: \"_53in\"\n }, p = {\n above: \"bottom\",\n below: \"JSBNG__top\",\n left: \"right\",\n right: \"left\"\n };\n function q(r) {\n this._layer = r;\n };\n;\n m(q.prototype, {\n _subscription: null,\n _arrow: null,\n enable: function() {\n this._subscription = this._layer.subscribe([\"adjust\",\"reposition\",], this._handle.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _handle: function(r, s) {\n if (((r === \"adjust\"))) {\n this._repositionArrow(s);\n }\n else this._repositionRoot(s);\n ;\n ;\n },\n _repositionRoot: function(r) {\n var s = r.getAlignment();\n if (((s == \"center\"))) {\n return;\n }\n ;\n ;\n var t = this._layer.getRoot(), u = this._layer.getContext(), v = r.isVertical(), w = this._layer.getArrowDimensions(), x = w.offset, y = w.length, z = l.getElementDimensions(u), aa = ((v ? z.x : z.y));\n if (((aa >= ((y + ((x * 2))))))) {\n return;\n }\n ;\n ;\n var ba = ((((y / 2)) + x)), ca = ((aa / 2)), da = parseInt(((ba - ca)), 10);\n if (v) {\n if (((s == \"left\"))) {\n var ea = parseInt(k.get(t, \"left\"), 10);\n k.set(t, \"left\", ((((ea - da)) + \"px\")));\n }\n else {\n var fa = parseInt(k.get(t, \"right\"), 10);\n k.set(t, \"right\", ((((fa - da)) + \"px\")));\n }\n ;\n ;\n }\n else {\n var ga = parseInt(k.get(t, \"JSBNG__top\"), 10);\n k.set(t, \"JSBNG__top\", ((((ga - da)) + \"px\")));\n }\n ;\n ;\n },\n _repositionArrow: function(r) {\n var s = this._layer._contentWrapper, t = r.getPosition(), u = p[t];\n {\n var fin123keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin123i = (0);\n var v;\n for (; (fin123i < fin123keys.length); (fin123i++)) {\n ((v) = (fin123keys[fin123i]));\n {\n h.conditionClass(s, o[v], ((u === v)));\n ;\n };\n };\n };\n ;\n if (((t == \"none\"))) {\n return;\n }\n ;\n ;\n if (!this._arrow) {\n this._arrow = g.i({\n className: \"_53io\"\n });\n i.appendContent(s, this._arrow);\n }\n ;\n ;\n h.conditionClass(s, \"_kc\", this._layer.getFooter());\n k.set(this._arrow, \"JSBNG__top\", \"\");\n k.set(this._arrow, \"left\", \"\");\n k.set(this._arrow, \"right\", \"\");\n k.set(this._arrow, \"margin\", \"\");\n var w = q.getOffsetPercent(r), x = q.getOffset(r, w, this._layer), y = q.getOffsetSide(r);\n k.set(this._arrow, y, ((w + \"%\")));\n k.set(this._arrow, ((\"margin-\" + y)), ((x + \"px\")));\n }\n });\n m(q, {\n getOffsetPercent: function(r) {\n var s = r.getAlignment(), t = r.getPosition();\n if (((((t == \"above\")) || ((t == \"below\"))))) {\n if (((s == \"center\"))) {\n return 50;\n }\n else if (((s == \"right\"))) {\n return 100;\n }\n \n ;\n }\n ;\n ;\n return 0;\n },\n getOffsetSide: function(r) {\n var s = r.isVertical();\n return ((s ? ((j.isRTL() ? \"right\" : \"left\")) : \"JSBNG__top\"));\n },\n getOffset: function(r, s, t) {\n var u = t.getArrowDimensions(), v = u.offset, w = u.length, x = r.getAlignment(), y = ((((x == \"center\")) ? 0 : v));\n y += ((((w * s)) / 100));\n if (((x != \"left\"))) {\n y *= -1;\n }\n ;\n ;\n return y;\n }\n });\n e.exports = q;\n});\n__d(\"ContextualDialogFitInViewport\", [\"JSBNG__Event\",\"ContextualLayerDimensions\",\"Style\",\"Vector\",\"copyProperties\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"ContextualLayerDimensions\"), i = b(\"Style\"), j = b(\"Vector\"), k = b(\"copyProperties\"), l = b(\"throttle\");\n function m(n) {\n this._layer = n;\n this._listeners = [];\n };\n;\n k(m.prototype, {\n _subscription: null,\n _minimumTop: null,\n enable: function() {\n var n = this._layer.getArrowDimensions();\n this._arrowOffset = n.offset;\n var o = n.length;\n this._arrowBuffer = ((this._arrowOffset + o));\n this._subscription = this._layer.subscribe([\"show\",\"hide\",\"reposition\",], function(p, q) {\n if (((p == \"reposition\"))) {\n this._calculateMinimumTop(q);\n }\n else if (((p == \"show\"))) {\n this._attachScroll();\n this._adjustForScroll();\n }\n else this._detachScroll();\n \n ;\n ;\n }.bind(this));\n if (this._layer.isShown()) {\n this._attachScroll();\n }\n ;\n ;\n },\n disable: function() {\n if (this._layer.isShown()) {\n this._detachScroll();\n }\n ;\n ;\n this._subscription.unsubscribe();\n this._subscription = null;\n },\n _attachScroll: function() {\n var n = l(this._adjustForScroll.bind(this)), o = ((this._layer.getContextScrollParent() || window));\n this._listeners = [g.listen(o, \"JSBNG__scroll\", n),g.listen(window, \"resize\", n),];\n },\n _detachScroll: function() {\n while (this._listeners.length) {\n this._listeners.pop().remove();\n ;\n };\n ;\n this._listeners = [];\n },\n _getContentHeight: function() {\n return j.getElementDimensions(this._layer._contentWrapper).y;\n },\n _getContextY: function() {\n return j.getElementPosition(this._layer.getContext()).y;\n },\n _calculateMinimumTop: function(n) {\n if (n.isVertical()) {\n return;\n }\n ;\n ;\n this._minimumTop = ((((this._getContextY() - ((this._getContentHeight() - this._arrowBuffer)))) + n.getOffsetY()));\n },\n _adjustForScroll: function() {\n if (this._layer.isFixed()) {\n return;\n }\n ;\n ;\n var n = this._layer._getOrientation();\n if (n.isVertical()) {\n return;\n }\n ;\n ;\n var o = h.getViewportRect(this._layer), p = ((o.b - this._minimumTop));\n if (((p < 0))) {\n return;\n }\n ;\n ;\n var q = this._getContentHeight(), r = ((q - ((this._arrowBuffer + this._arrowOffset)))), s = Math.max(0, Math.min(r, ((r - ((p - q))))));\n i.set(this._layer.getContent(), \"JSBNG__top\", ((-s + \"px\")));\n }\n });\n e.exports = m;\n});\n__d(\"ContextualDialogDefaultTheme\", [\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\"), h = {\n wrapperClassName: \"_53ip\",\n arrowDimensions: {\n offset: 15,\n length: 16\n }\n };\n e.exports = h;\n});\n__d(\"ContextualDialog\", [\"AccessibleLayer\",\"Class\",\"ContextualDialogArrow\",\"ContextualDialogFitInViewport\",\"ContextualLayer\",\"ContextualDialogDefaultTheme\",\"CSS\",\"DOM\",\"LayerAutoFocus\",\"LayerButtons\",\"LayerHideOnTransition\",\"LayerFormHooks\",\"LayerMouseHooks\",\"Style\",\"copyProperties\",\"csx\",\"cx\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n var g = b(\"AccessibleLayer\"), h = b(\"Class\"), i = b(\"ContextualDialogArrow\"), j = b(\"ContextualDialogFitInViewport\"), k = b(\"ContextualLayer\"), l = b(\"ContextualDialogDefaultTheme\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"LayerAutoFocus\"), p = b(\"LayerButtons\"), q = b(\"LayerHideOnTransition\"), r = b(\"LayerFormHooks\"), s = b(\"LayerMouseHooks\"), t = b(\"Style\"), u = b(\"copyProperties\"), v = b(\"csx\"), w = b(\"cx\"), x = b(\"removeFromArray\");\n function y(z, aa) {\n this.parent.construct(this, z, aa);\n };\n;\n h.extend(y, k);\n u(y.prototype, {\n _footer: null,\n _configure: function(z, aa) {\n u(z, ((z.theme || l)));\n var ba = ((z.arrowBehavior || i));\n z.addedBehaviors = ((z.addedBehaviors || []));\n z.addedBehaviors.push(ba);\n this._footer = n.scry(aa, \"div._572u\")[0];\n this.parent._configure(z, aa);\n },\n _getDefaultBehaviors: function() {\n var z = this.parent._getDefaultBehaviors();\n x(z, q);\n return z.concat([g,o,j,p,r,s,]);\n },\n _buildWrapper: function(z, aa) {\n m.addClass(aa, \"_53ij\");\n var ba = this.parent._buildWrapper(z, aa);\n m.addClass(ba, z.wrapperClassName);\n if (z.width) {\n this.setWidth(z.width);\n }\n ;\n ;\n return ba;\n },\n setWidth: function(z) {\n this._width = Math.floor(z);\n t.set(this._contentWrapper, \"width\", ((z + \"px\")));\n return this;\n },\n getFooter: function() {\n return this._footer;\n },\n getArrowDimensions: function() {\n return this._config.arrowDimensions;\n }\n });\n u(y, {\n setContext: function(z, aa) {\n z.setContext(aa);\n }\n });\n e.exports = y;\n});\n__d(\"DialogPosition\", [\"Vector\",], function(a, b, c, d, e, f) {\n var g = b(\"Vector\"), h = 40, i, j = {\n calculateTopMargin: function(k, l) {\n if (i) {\n return i;\n }\n ;\n ;\n var m = g.getViewportDimensions(), n = Math.floor(((((((m.x + k)) * ((m.y - l)))) / ((4 * m.x)))));\n return Math.max(n, h);\n },\n setFixedTopMargin: function(k) {\n i = k;\n }\n };\n e.exports = j;\n});\n__d(\"DialogX\", [\"function-extensions\",\"JSXDOM\",\"Arbiter\",\"Class\",\"CSS\",\"DialogPosition\",\"JSBNG__Event\",\"Layer\",\"LayerAutoFocus\",\"LayerButtons\",\"LayerFormHooks\",\"LayerRefocusOnHide\",\"LayerTabIsolation\",\"ModalLayer\",\"Style\",\"Vector\",\"copyProperties\",\"cx\",\"debounce\",\"shield\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"JSXDOM\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSS\"), k = b(\"DialogPosition\"), l = b(\"JSBNG__Event\"), m = b(\"Layer\"), n = b(\"LayerAutoFocus\"), o = b(\"LayerButtons\"), p = b(\"LayerFormHooks\"), q = b(\"LayerRefocusOnHide\"), r = b(\"LayerTabIsolation\"), s = b(\"ModalLayer\"), t = b(\"Style\"), u = b(\"Vector\"), v = b(\"copyProperties\"), w = b(\"cx\"), x = b(\"debounce\"), y = b(\"shield\");\n function z(ba, ca) {\n this.parent.construct(this, ba, ca);\n };\n;\n i.extend(z, m);\n v(z.prototype, {\n _configure: function(ba, ca) {\n this.parent._configure(ba, ca);\n j.addClass(this.getRoot(), \"_4-hy\");\n if (ba.autohide) {\n var da = this.subscribe(\"show\", function() {\n da.unsubscribe();\n y(this.hide, this).defer(ba.autohide);\n }.bind(this));\n }\n ;\n ;\n },\n _getDefaultBehaviors: function() {\n return this.parent._getDefaultBehaviors().concat([aa,s,n,o,p,r,q,]);\n },\n _buildWrapper: function(ba, ca) {\n var da = ((ba.xui ? \"_4-hz\" : \"_t\")), ea = ((ba.xui ? \"_59s7\" : \"_1yv\"));\n this._innerContent = g.div(null, ca);\n this._wrapper = g.div({\n className: ea,\n role: \"dialog\",\n \"aria-labelledby\": ((ba.titleID || null))\n }, g.div({\n className: da\n }, this._innerContent));\n this.setWidth(ba.width);\n return (g.div({\n className: \"_10\",\n role: \"dialog\"\n }, this._wrapper));\n },\n getContentRoot: function() {\n return this._wrapper;\n },\n getInnerContent: function() {\n return this._innerContent;\n },\n updatePosition: function() {\n var ba = u.getElementDimensions(this._wrapper), ca = k.calculateTopMargin(ba.x, ba.y);\n t.set(this._wrapper, \"margin-top\", ((ca + \"px\")));\n this.inform(\"update_position\", {\n type: \"DialogX\",\n JSBNG__top: ca\n });\n },\n setWidth: function(ba) {\n ba = Math.floor(ba);\n if (((ba === this._width))) {\n return;\n }\n ;\n ;\n this._width = ba;\n t.set(this._wrapper, \"width\", ((ba + \"px\")));\n },\n getWidth: function() {\n return this._width;\n }\n });\n function aa(ba) {\n this._layer = ba;\n };\n;\n v(aa.prototype, {\n _subscription: null,\n _resize: null,\n enable: function() {\n this._subscription = this._layer.subscribe([\"show\",\"hide\",], function(ba) {\n if (((ba === \"show\"))) {\n this._attach();\n h.inform(\"layer_shown\", {\n type: \"DialogX\"\n });\n }\n else {\n this._detach();\n h.inform(\"layer_hidden\", {\n type: \"DialogX\"\n });\n }\n ;\n ;\n }.bind(this));\n },\n disable: function() {\n this._subscription.unsubscribe();\n this._subscription = null;\n ((this._resize && this._detach()));\n },\n _attach: function() {\n this._layer.updatePosition();\n this._resize = l.listen(window, \"resize\", x(this._layer.updatePosition.bind(this._layer)));\n },\n _detach: function() {\n this._resize.remove();\n this._resize = null;\n }\n });\n e.exports = z;\n});\n__d(\"eachKeyVal\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n if (((!h || !i))) {\n return;\n }\n ;\n ;\n var k = Object.keys(h), l;\n for (l = 0; ((l < k.length)); l++) {\n i.call(j, k[l], h[k[l]], h, l);\n ;\n };\n ;\n };\n;\n e.exports = g;\n});\n__d(\"LoadingDialogDimensions\", [], function(a, b, c, d, e, f) {\n var g = {\n HEIGHT: 96,\n WIDTH: 300\n };\n e.exports = g;\n});\n__d(\"AsyncDialog\", [\"AsyncRequest\",\"Bootloader\",\"CSS\",\"DialogX\",\"DOM\",\"Env\",\"Keys\",\"LayerFadeOnShow\",\"Parent\",\"React\",\"URI\",\"XUISpinner.react\",\"copyProperties\",\"cx\",\"eachKeyVal\",\"emptyFunction\",\"LoadingDialogDimensions\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"Bootloader\"), i = b(\"CSS\"), j = b(\"DialogX\"), k = b(\"DOM\"), l = b(\"Env\"), m = b(\"Keys\"), n = b(\"LayerFadeOnShow\"), o = b(\"Parent\"), p = b(\"React\"), q = b(\"URI\"), r = b(\"XUISpinner.react\"), s = b(\"copyProperties\"), t = b(\"cx\"), u = b(\"eachKeyVal\"), v = b(\"emptyFunction\"), w = b(\"LoadingDialogDimensions\").WIDTH, x;\n function y() {\n if (!x) {\n var ga = k.create(\"div\", {\n className: \"_57-x\"\n });\n x = new j({\n width: w,\n addedBehaviors: [n,],\n xui: true\n }, k.create(\"div\", null, ga));\n p.renderComponent(r({\n size: \"large\"\n }), ga);\n x.subscribe([\"key\",\"JSBNG__blur\",], function(ha, ia) {\n if (((((ha == \"JSBNG__blur\")) || ((((ha == \"key\")) && ((ia.keyCode == m.ESC))))))) {\n ca();\n return false;\n }\n ;\n ;\n });\n }\n ;\n ;\n return x;\n };\n;\n var z = {\n }, aa = 1, ba = [];\n function ca() {\n u(z, function(ga, ha) {\n ha.abandon();\n da(ga);\n });\n };\n;\n function da(ga) {\n delete z[ga];\n if (!Object.keys(z).length) {\n y().hide();\n }\n ;\n ;\n };\n;\n function ea(ga, ha) {\n var ia = aa++;\n ba[ia] = ha;\n z[ia] = ga;\n var ja = da.curry(((\"\" + ia)));\n s(ga.getData(), {\n __asyncDialog: ia\n });\n y().setCausalElement(ga.getRelativeTo()).show();\n var ka = ga.finallyHandler;\n ga.setFinallyHandler(function(la) {\n var ma = la.getPayload();\n if (((ma && ma.asyncURL))) {\n fa.send(new g(ma.asyncURL));\n }\n ;\n ;\n ja();\n ((ka && ka(la)));\n });\n ga.setInterceptHandler(ja).setAbortHandler(ja);\n ga.send();\n };\n;\n var fa = {\n send: function(ga, ha) {\n ea(ga, ((ha || v)));\n },\n bootstrap: function(ga, ha, ia) {\n if (!ga) {\n return;\n }\n ;\n ;\n var ja = ((o.byClass(ha, \"stat_elem\") || ha));\n if (((ja && i.hasClass(ja, \"async_saving\")))) {\n return false;\n }\n ;\n ;\n var ka = new q(ga).getQueryData(), la = ((ia === \"dialog\")), ma = new g().setURI(ga).setData(ka).setMethod(((la ? \"GET\" : \"POST\"))).setReadOnly(la).setRelativeTo(ha).setStatusElement(ja).setNectarModuleDataSafe(ha);\n if (l.is_desktop) {\n h.loadModules([\"FbdDialogProvider\",], function(na) {\n na.sendDialog(ma, fa.send);\n });\n return;\n }\n ;\n ;\n fa.send(ma);\n },\n respond: function(ga, ha) {\n var ia = ba[ga];\n if (ia) {\n ia(ha);\n delete ba[ga];\n }\n ;\n ;\n },\n getLoadingDialog: function() {\n return y();\n }\n };\n e.exports = fa;\n});\n__d(\"Hovercard\", [\"JSXDOM\",\"JSBNG__Event\",\"function-extensions\",\"AccessibleLayer\",\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"ContextualDialog\",\"ContextualThing\",\"DOM\",\"LayerAutoFocus\",\"Parent\",\"JSBNG__Rect\",\"Style\",\"UserAgent\",\"Vector\",\"clickRefAction\",\"cx\",\"emptyFunction\",\"tx\",\"userAction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSXDOM\"), h = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var i = b(\"AccessibleLayer\"), j = b(\"Arbiter\"), k = b(\"AsyncRequest\"), l = b(\"AsyncSignal\"), m = b(\"ContextualDialog\"), n = b(\"ContextualThing\"), o = b(\"DOM\"), p = b(\"LayerAutoFocus\"), q = b(\"Parent\"), r = b(\"JSBNG__Rect\"), s = b(\"Style\"), t = b(\"UserAgent\"), u = b(\"Vector\"), v = b(\"clickRefAction\"), w = b(\"cx\"), x = b(\"emptyFunction\"), y = b(\"tx\"), z = b(\"userAction\"), aa = {\n }, ba = {\n }, ca = null, da = null, ea = null, fa = 150, ga = 700, ha = 1000, ia = 250, ja = null, ka = null, la = null, ma = null;\n function na(JSBNG__event) {\n var cb = q.byTag(JSBNG__event.getTarget(), \"a\");\n ((bb.processNode(cb) && JSBNG__event.JSBNG__stop()));\n };\n;\n function oa(cb) {\n da = cb;\n if (!pa(cb)) {\n var db;\n if (((!cb || !(db = qa(cb))))) {\n ((ba.moveToken && ba.moveToken.remove()));\n ba = {\n };\n return false;\n }\n ;\n ;\n if (((ba.node != cb))) {\n ((ba.moveToken && ba.moveToken.remove()));\n ba = {\n node: cb,\n endpoint: db,\n pos: null\n };\n }\n ;\n ;\n }\n ;\n ;\n return true;\n };\n;\n function pa(cb) {\n return ((((cb && ca)) && ((ba.node == cb))));\n };\n;\n function qa(cb) {\n return cb.getAttribute(\"data-hovercard\");\n };\n;\n function ra(cb) {\n var db = h.listen(cb, \"mouseout\", function() {\n JSBNG__clearTimeout(ja);\n JSBNG__clearTimeout(ka);\n db.remove();\n da = null;\n if (!bb.contains(cb)) {\n bb.hide();\n }\n ;\n ;\n });\n if (!ba.moveToken) {\n ba.moveToken = h.listen(cb, \"mousemove\", function(JSBNG__event) {\n ba.pos = u.getEventPosition(JSBNG__event);\n });\n }\n ;\n ;\n JSBNG__clearTimeout(ja);\n JSBNG__clearTimeout(ka);\n JSBNG__clearTimeout(ma);\n var eb = fa, fb = ((ca ? ia : ga));\n if (cb.getAttribute(\"data-hovercard-instant\")) {\n eb = fb = 50;\n }\n ;\n ;\n ja = JSBNG__setTimeout(wa.curry(cb), eb);\n ka = JSBNG__setTimeout(sa.curry(cb), fb);\n };\n;\n function sa(cb, db) {\n if (((ba.node != cb))) {\n return;\n }\n ;\n ;\n var eb = aa[qa(cb)];\n if (eb) {\n ua(eb);\n }\n else if (db) {\n ua(ya());\n }\n else {\n var fb = ((ca ? ia : ga));\n la = JSBNG__setTimeout(sa.curry(cb, true), ((ha - fb)));\n }\n \n ;\n ;\n };\n;\n function ta() {\n bb.hide(true);\n JSBNG__clearTimeout(ka);\n };\n;\n function ua(cb) {\n var db = ba.node, eb = ca, fb = ((eb != db));\n if (ea) {\n var gb = ea.getContentRoot();\n if (!n.containsIncludingLayers(gb, db)) {\n ea.hide();\n }\n ;\n ;\n }\n ;\n ;\n if (!o.contains(JSBNG__document.body, db)) {\n bb.hide(true);\n return;\n }\n ;\n ;\n ca = db;\n ea = cb;\n cb.setContextWithBounds(db, va(db)).show();\n if (fb) {\n (function() {\n new l(\"/ajax/hovercard/shown.php\").send();\n v(\"himp\", ca, null, \"FORCE\", {\n ft: {\n evt: 39\n }\n });\n z(\"hovercard\", ca).uai(\"show\");\n }).defer();\n }\n ;\n ;\n };\n;\n function va(cb) {\n var db = ba.pos, eb = cb.getClientRects();\n if (((!db || ((eb.length === 0))))) {\n return r.getElementBounds(cb);\n }\n ;\n ;\n var fb, gb = false;\n for (var hb = 0; ((hb < eb.length)); hb++) {\n var ib = new r(Math.round(eb[hb].JSBNG__top), Math.round(eb[hb].right), Math.round(eb[hb].bottom), Math.round(eb[hb].left), \"viewport\").convertTo(\"JSBNG__document\"), jb = ib.getPositionVector(), kb = jb.add(ib.getDimensionVector());\n if (((!fb || ((((jb.x <= fb.l)) && ((jb.y > fb.t))))))) {\n if (gb) {\n break;\n }\n ;\n ;\n fb = new r(jb.y, kb.x, kb.y, jb.x, \"JSBNG__document\");\n }\n else {\n fb.t = Math.min(fb.t, jb.y);\n fb.b = Math.max(fb.b, kb.y);\n fb.r = kb.x;\n }\n ;\n ;\n if (ib.contains(db)) {\n gb = true;\n }\n ;\n ;\n };\n ;\n return fb;\n };\n;\n function wa(cb) {\n if (((cb.id && ((aa[cb.id] != null))))) {\n return;\n }\n ;\n ;\n var db = qa(cb);\n if (((aa[db] != null))) {\n return;\n }\n ;\n ;\n xa(db);\n var eb = function() {\n bb.dirty(db);\n ta();\n };\n new k(db).setData({\n endpoint: db\n }).setMethod(\"GET\").setReadOnly(true).setErrorHandler(eb).setTransportErrorHandler(eb).send();\n };\n;\n function xa(cb) {\n aa[cb] = false;\n };\n;\n var ya = function() {\n var cb = new m({\n width: 275\n }, g.div({\n className: \"_7lk\"\n }, \"Loading...\"));\n cb.disableBehavior(i).disableBehavior(p);\n za(cb);\n ya = x.thatReturns(cb);\n return cb;\n };\n function za(cb) {\n var db = [cb.subscribe(\"mouseenter\", function() {\n JSBNG__clearTimeout(ma);\n da = ba.node;\n }),cb.subscribe(\"mouseleave\", function() {\n cb.hide();\n da = null;\n }),cb.subscribe(\"destroy\", function() {\n while (db.length) {\n db.pop().unsubscribe();\n ;\n };\n ;\n db = null;\n }),];\n };\n;\n var ab = true, bb = {\n hide: function(cb) {\n if (!ca) {\n return;\n }\n ;\n ;\n if (cb) {\n if (ea) {\n ea.hide();\n }\n ;\n ;\n da = null;\n ca = null;\n ea = null;\n }\n else ma = JSBNG__setTimeout(bb.hide.curry(true), ia);\n ;\n ;\n },\n setDialog: function(cb, db) {\n db.disableBehavior(i).disableBehavior(p);\n aa[cb] = db;\n za(db);\n if (((((ba.endpoint == cb)) && ((da == ba.node))))) {\n ya().hide();\n var eb = ba.node.getAttribute(\"data-hovercard-position\");\n ((eb && db.setPosition(eb)));\n var fb = ba.node.getAttribute(\"data-hovercard-offset-x\");\n ((fb && db.setOffsetX(parseInt(fb, 10))));\n var gb = ba.node.getAttribute(\"data-hovercard-offset-y\");\n ((gb && db.setOffsetY(parseInt(gb, 10))));\n ua(db);\n }\n ;\n ;\n },\n getDialog: function(cb) {\n return aa[cb];\n },\n contains: function(cb) {\n if (ea) {\n return n.containsIncludingLayers(ea.getContentRoot(), cb);\n }\n ;\n ;\n return false;\n },\n dirty: function(cb) {\n var db = aa[cb];\n if (db) {\n db.destroy();\n delete aa[cb];\n }\n ;\n ;\n },\n dirtyAll: function() {\n {\n var fin124keys = ((window.top.JSBNG_Replay.forInKeys)((aa))), fin124i = (0);\n var cb;\n for (; (fin124i < fin124keys.length); (fin124i++)) {\n ((cb) = (fin124keys[fin124i]));\n {\n var db = aa[cb];\n ((db && bb.dirty(cb)));\n };\n };\n };\n ;\n j.inform(\"Hovercard/dirty\");\n },\n processNode: function(cb) {\n if (((cb && oa(cb)))) {\n ra(cb);\n return true;\n }\n ;\n ;\n return false;\n },\n setDirtyAllOnPageTransition: function(cb) {\n ab = cb;\n }\n };\n (function() {\n if (((t.ie() < 8))) {\n return;\n }\n ;\n ;\n h.listen(JSBNG__document.documentElement, \"mouseover\", na);\n h.listen(window, \"JSBNG__scroll\", function() {\n if (((ca && s.isFixed(ca)))) {\n bb.hide(true);\n }\n ;\n ;\n });\n j.subscribe(\"page_transition\", function() {\n ta();\n ((ab && bb.dirtyAll()));\n }, j.SUBSCRIBE_NEW);\n })();\n e.exports = bb;\n});\n__d(\"StickyPlaceholderInput\", [\"JSBNG__Event\",\"CSS\",\"DOM\",\"Input\",\"Parent\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Input\"), k = b(\"Parent\"), l = b(\"emptyFunction\");\n function m(q) {\n return k.byClass(q, \"uiStickyPlaceholderInput\");\n };\n;\n function n(q) {\n return i.scry(q, \".placeholder\")[0];\n };\n;\n function o(q) {\n q = ((q || window.JSBNG__event));\n var r = ((q.target || q.srcElement));\n if (i.isNodeOfType(r, [\"input\",\"textarea\",])) {\n var s = m(r);\n if (s) {\n (function() {\n h.conditionClass(s, \"uiStickyPlaceholderEmptyInput\", !r.value.length);\n }).defer();\n }\n ;\n ;\n }\n ;\n ;\n };\n;\n var p = {\n init: function() {\n p.init = l;\n g.listen(JSBNG__document.documentElement, {\n keydown: o,\n paste: o,\n focusout: o\n });\n },\n registerInput: function(q) {\n p.init();\n var r = ((q.getAttribute(\"placeholder\") || \"\"));\n if (r.length) {\n if (((JSBNG__document.activeElement === q))) {\n var s = g.listen(q, \"JSBNG__blur\", function() {\n p.manipulateInput(q, r);\n s.remove();\n });\n }\n else p.manipulateInput(q, r);\n ;\n }\n ;\n ;\n },\n manipulateInput: function(q, r) {\n var s = i.create(\"div\", {\n className: \"placeholder\",\n \"aria-hidden\": \"true\"\n }, r), t = i.create(\"div\", {\n className: \"uiStickyPlaceholderInput\"\n }, s);\n if (i.isNodeOfType(q, \"textarea\")) {\n h.addClass(t, \"uiStickyPlaceholderTextarea\");\n }\n ;\n ;\n g.listen(s, \"click\", function() {\n q.JSBNG__focus();\n });\n if (((q.value === r))) {\n q.value = \"\";\n }\n ;\n ;\n h.removeClass(q, \"DOMControl_placeholder\");\n q.setAttribute(\"placeholder\", \"\");\n i.replace(q, t);\n i.appendContent(t, q);\n h.conditionClass(t, \"uiStickyPlaceholderEmptyInput\", !q.value.length);\n },\n setPlaceholderText: function(q, r) {\n var s = m(q);\n if (!s) {\n j.setPlaceholder(q, r);\n }\n else {\n var t = n(s);\n ((t && i.setContent(t, r)));\n }\n ;\n ;\n },\n getPlaceholderText: function(q) {\n var r = m(q), s = n(r);\n return ((s && i.getText(s)));\n },\n update: function(q) {\n var r = m(q);\n if (r) {\n h.conditionClass(r, \"uiStickyPlaceholderEmptyInput\", !q.value.length);\n }\n ;\n ;\n },\n getVisibleText: function(q) {\n var r = m(q);\n if (h.hasClass(r, \"uiStickyPlaceholderEmptyInput\")) {\n var s = n(r);\n return ((s && i.getText(s)));\n }\n else return q.value\n ;\n }\n };\n e.exports = p;\n});\n__d(\"UIForm\", [\"JSBNG__Event\",\"ArbiterMixin\",\"BehaviorsMixin\",\"DOM\",\"Form\",\"Run\",\"areObjectsEqual\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"BehaviorsMixin\"), j = b(\"DOM\"), k = b(\"Form\"), l = b(\"Run\"), m = b(\"areObjectsEqual\"), n = b(\"copyProperties\");\n function o(p, q, r, s, t) {\n this._root = p;\n this.controller = p;\n this._message = q;\n if (s) {\n this._confirm_dialog = s;\n s.subscribe(\"JSBNG__confirm\", this._handleDialogConfirm.bind(this));\n j.prependContent(this._root, j.create(\"input\", {\n type: \"hidden\",\n JSBNG__name: \"confirmed\",\n value: \"true\"\n }));\n }\n ;\n ;\n l.onAfterLoad(function() {\n this._originalState = k.serialize(this._root);\n }.bind(this));\n this._forceDirty = r;\n this._confirmed = false;\n this._submitted = false;\n g.listen(this._root, \"submit\", this._handleSubmit.bind(this));\n if (((t && t.length))) {\n this.enableBehaviors(t);\n }\n ;\n ;\n var u = true;\n l.onBeforeUnload(this.checkUnsaved.bind(this), u);\n };\n;\n n(o.prototype, h, i, {\n getRoot: function() {\n return this._root;\n },\n _handleSubmit: function() {\n if (((this._confirm_dialog && !this._confirmed))) {\n this._confirm_dialog.show();\n return false;\n }\n ;\n ;\n if (((this.inform(\"submit\") === false))) {\n return false;\n }\n ;\n ;\n this._submitted = true;\n return true;\n },\n _handleDialogConfirm: function() {\n this._confirmed = true;\n this._confirm_dialog.hide();\n if (this._root.getAttribute(\"ajaxify\")) {\n g.fire(this._root, \"submit\");\n }\n else if (this._handleSubmit()) {\n this._root.submit();\n }\n \n ;\n ;\n },\n reset: function() {\n this.inform(\"reset\");\n this._submitted = false;\n this._confirmed = false;\n },\n isDirty: function() {\n if (((this._submitted || !j.contains(JSBNG__document.body, this._root)))) {\n return false;\n }\n ;\n ;\n if (this._forceDirty) {\n return true;\n }\n ;\n ;\n var p = k.serialize(this._root);\n return !m(p, this._originalState);\n },\n checkUnsaved: function() {\n if (this.isDirty()) {\n return this._message;\n }\n ;\n ;\n return null;\n }\n });\n e.exports = ((a.UIForm || o));\n});\n__d(\"MenuTheme\", [\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"cx\");\n e.exports = {\n className: \"_569t\"\n };\n});\n__d(\"legacy:Tooltip\", [\"Tooltip\",], function(a, b, c, d) {\n a.Tooltip = b(\"Tooltip\");\n}, 3);\n__d(\"BanzaiODS\", [\"Banzai\",\"invariant\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\"), h = b(\"invariant\");\n function i() {\n var k = {\n };\n function l(m, n, o, p) {\n var q = ((k[m] || (k[m] = {\n }))), r = ((q[n] || (q[n] = [0,])));\n if (((o === undefined))) {\n o = 1;\n }\n ;\n ;\n if (((p === undefined))) {\n p = 1;\n }\n ;\n ;\n o = Number(o);\n p = Number(p);\n if (((!isFinite(o) || !isFinite(p)))) {\n return;\n }\n ;\n ;\n r[0] += o;\n if (((arguments.length >= 4))) {\n if (!r[1]) {\n r[1] = 0;\n }\n ;\n ;\n r[1] += p;\n }\n ;\n ;\n };\n ;\n return {\n bumpEntityKey: function(m, n, o) {\n l(m, n, o);\n },\n bumpFraction: function(m, n, o, p) {\n l(m, n, o, p);\n },\n flush: function(m) {\n {\n var fin125keys = ((window.top.JSBNG_Replay.forInKeys)((k))), fin125i = (0);\n var n;\n for (; (fin125i < fin125keys.length); (fin125i++)) {\n ((n) = (fin125keys[fin125i]));\n {\n g.post(((\"ods:\" + n)), k[n], m);\n ;\n };\n };\n };\n ;\n k = {\n };\n }\n };\n };\n;\n var j = i();\n j.create = i;\n g.subscribe(g.SEND, j.flush.bind(j, null));\n e.exports = j;\n});\n__d(\"endsWith\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n return ((h.indexOf(i, ((h.length - i.length))) > -1));\n };\n;\n e.exports = g;\n});\n__d(\"extendArray\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n Array.prototype.push.apply(h, i);\n return h;\n };\n;\n e.exports = g;\n});");
// 1556
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"4vv8/\",]);\n}\n;\n;\n__d(\"TimeSpentBitArrayLogger\", [\"UserActivity\",\"copyProperties\",\"Banzai\",\"BanzaiODS\",\"TimeSpentArray\",\"Arbiter\",\"TimeSpentConfig\",], function(a, b, c, d, e, f) {\n var g = b(\"UserActivity\"), h = b(\"copyProperties\"), i = b(\"Banzai\"), j = b(\"BanzaiODS\"), k = b(\"TimeSpentArray\"), l = b(\"Arbiter\"), m = b(\"TimeSpentConfig\"), n = {\n store: true,\n delay: m.initial_delay,\n retry: true\n };\n function o(p) {\n if (i.isEnabled(\"time_spent_bit_array\")) {\n l.inform(\"timespent/tosbitdataposted\", h({\n }, p));\n i.post(\"time_spent_bit_array\", h({\n }, p), n);\n n.delay = m.delay;\n }\n ;\n ;\n };\n;\n e.exports = {\n init: function(p) {\n if (((window.JSBNG__top == window.JSBNG__self))) {\n g.subscribe(function(q, r) {\n k.update(r.last_inform);\n });\n k.init(o, m.initial_timeout);\n j.bumpEntityKey(\"ms.time_spent.qa.www\", \"time_spent.bits.js_initialized\");\n }\n ;\n ;\n }\n };\n});");
// 2056
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"if (self.CavalryLogger) {\n CavalryLogger.start_js([\"63VzN\",]);\n}\n;\n__d(\"NotificationURI\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n localize: function(i) {\n i = g(i);\n if (!i.isFacebookURI()) {\n return i.toString()\n };\n var j = i.getSubdomain();\n return i.getUnqualifiedURI().getQualifiedURI().setSubdomain(j).toString();\n },\n snowliftable: function(i) {\n if (!i) {\n return false\n };\n i = g(i);\n return (i.isFacebookURI() && i.getQueryData().hasOwnProperty(\"fbid\"));\n },\n isVaultSetURI: function(i) {\n if (!i) {\n return false\n };\n i = g(i);\n return (i.isFacebookURI() && (i.getPath() == \"/ajax/vault/sharer_preview.php\"));\n }\n };\n e.exports = h;\n});\n__d(\"legacy:fbdesktop-detect\", [\"FBDesktopDetect\",], function(a, b, c, d) {\n a.FbDesktopDetect = b(\"FBDesktopDetect\");\n}, 3);\n__d(\"IntlUtils\", [\"AsyncRequest\",\"Cookie\",\"goURI\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"Cookie\"), i = b(\"goURI\"), j = {\n setXmode: function(k) {\n (new g()).setURI(\"/ajax/intl/save_xmode.php\").setData({\n xmode: k\n }).setHandler(function() {\n document.location.reload();\n }).send();\n },\n setAmode: function(k) {\n new g().setURI(\"/ajax/intl/save_xmode.php\").setData({\n amode: k,\n app: false\n }).setHandler(function() {\n document.location.reload();\n }).send();\n },\n setLocale: function(k, l, m, n) {\n if (!m) {\n m = k.options[k.selectedIndex].value;\n };\n j.saveLocale(m, true, null, l, n);\n },\n saveLocale: function(k, l, m, n, o) {\n new g().setURI(\"/ajax/intl/save_locale.php\").setData({\n aloc: k,\n source: n,\n app_only: o\n }).setHandler(function(p) {\n if (l) {\n document.location.reload();\n }\n else i(m);\n ;\n }).send();\n },\n setLocaleCookie: function(k, l) {\n h.set(\"locale\", k, ((7 * 24) * 3600000));\n i(l);\n }\n };\n e.exports = j;\n});\n__d(\"legacy:intl-base\", [\"IntlUtils\",], function(a, b, c, d) {\n var e = b(\"IntlUtils\");\n a.intl_set_xmode = e.setXmode;\n a.intl_set_amode = e.setAmode;\n a.intl_set_locale = e.setLocale;\n a.intl_save_locale = e.saveLocale;\n a.intl_set_cookie_locale = e.setLocaleCookie;\n}, 3);\n__d(\"legacy:onload-action\", [\"OnloadHooks\",], function(a, b, c, d) {\n var e = b(\"OnloadHooks\");\n a._onloadHook = e._onloadHook;\n a._onafterloadHook = e._onafterloadHook;\n a.runHook = e.runHook;\n a.runHooks = e.runHooks;\n a.keep_window_set_as_loaded = e.keepWindowSetAsLoaded;\n}, 3);\n__d(\"LoginFormController\", [\"Event\",\"ge\",\"Button\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"ge\"), i = b(\"Button\");\n f.init = function(j, k) {\n g.listen(j, \"submit\", function() {\n i.setEnabled(k, false);\n i.setEnabled.curry(k, true).defer(15000);\n });\n var l = h(\"lgnjs\");\n if (l) {\n l.value = parseInt((Date.now() / 1000), 10);\n };\n };\n});\n__d(\"ClickRefUtils\", [], function(a, b, c, d, e, f) {\n var g = {\n get_intern_ref: function(h) {\n if (!!h) {\n var i = {\n profile_minifeed: 1,\n gb_content_and_toolbar: 1,\n gb_muffin_area: 1,\n ego: 1,\n bookmarks_menu: 1,\n jewelBoxNotif: 1,\n jewelNotif: 1,\n BeeperBox: 1,\n navSearch: 1\n };\n for (var j = h; (j && (j != document.body)); j = j.parentNode) {\n if ((!j.id || (typeof j.id !== \"string\"))) {\n continue;\n };\n if ((j.id.substr(0, 8) == \"pagelet_\")) {\n return j.id.substr(8)\n };\n if ((j.id.substr(0, 8) == \"box_app_\")) {\n return j.id\n };\n if (i[j.id]) {\n return j.id\n };\n };\n }\n ;\n return \"-\";\n },\n get_href: function(h) {\n var i = (((((h.getAttribute && ((h.getAttribute(\"ajaxify\") || h.getAttribute(\"data-endpoint\")))) || h.action) || h.href) || h.name));\n return ((typeof i === \"string\") ? i : null);\n },\n should_report: function(h, i) {\n if ((i == \"FORCE\")) {\n return true\n };\n if ((i == \"INDIRECT\")) {\n return false\n };\n return (h && ((g.get_href(h) || ((h.getAttribute && h.getAttribute(\"data-ft\"))))));\n }\n };\n e.exports = g;\n});\n__d(\"setUECookie\", [\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\");\n function h(i) {\n if (!g.no_cookies) {\n document.cookie = (((\"act=\" + encodeURIComponent(i)) + \"; path=/; domain=\") + window.location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\"));\n };\n };\n e.exports = h;\n});\n__d(\"ClickRefLogger\", [\"Arbiter\",\"EagleEye\",\"ClickRefUtils\",\"collectDataAttributes\",\"copyProperties\",\"ge\",\"setUECookie\",\"$\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"EagleEye\"), i = b(\"ClickRefUtils\"), j = b(\"collectDataAttributes\"), k = b(\"copyProperties\"), l = b(\"ge\"), m = b(\"setUECookie\"), n = b(\"$\");\n function o(q) {\n if (!l(\"content\")) {\n return [0,0,0,0,]\n };\n var r = n(\"content\"), s = (a.Vector2 ? a.Vector2.getEventPosition(q) : {\n x: 0,\n y: 0\n });\n return [s.x,s.y,r.offsetLeft,r.clientWidth,];\n };\n function p(q, r, event, s) {\n var t = ((!a.ArbiterMonitor) ? \"r\" : \"a\"), u = [0,0,0,0,], v, w, x;\n if (!!event) {\n v = event.type;\n if (((v == \"click\") && l(\"content\"))) {\n u = o(event);\n };\n var y = 0;\n (event.ctrlKey && (y += 1));\n (event.shiftKey && (y += 2));\n (event.altKey && (y += 4));\n (event.metaKey && (y += 8));\n if (y) {\n v += y;\n };\n }\n ;\n if (!!r) {\n w = i.get_href(r);\n };\n var z = [];\n if (a.ArbiterMonitor) {\n x = a.ArbiterMonitor.getInternRef(r);\n z = a.ArbiterMonitor.getActFields();\n }\n ;\n var aa = j((!!event ? ((event.target || event.srcElement)) : r), [\"ft\",\"gt\",]);\n k(aa.ft, (s.ft || {\n }));\n k(aa.gt, (s.gt || {\n }));\n if ((typeof (aa.ft.ei) === \"string\")) {\n delete aa.ft.ei;\n };\n var ba = [q._ue_ts,q._ue_count,(w || \"-\"),q._context,(v || \"-\"),(x || i.get_intern_ref(r)),t,(a.URI ? a.URI.getRequestURI(true, true).getUnqualifiedURI().toString() : ((location.pathname + location.search) + location.hash)),aa,].concat(u).concat(z);\n return ba;\n };\n g.subscribe(\"ClickRefAction/new\", function(q, r) {\n if (i.should_report(r.node, r.mode)) {\n var s = p(r.cfa, r.node, r.event, r.extra_data);\n m(r.cfa.ue);\n h.log(\"act\", s);\n if (window.chromePerfExtension) {\n window.postMessage({\n clickRef: JSON.stringify(s)\n }, window.location.origin);\n };\n }\n ;\n });\n});\n__d(\"QuicklingAugmenter\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = [], i = {\n addHandler: function(j) {\n h.push(j);\n },\n augmentURI: function(j) {\n var k = [], l = g(j);\n h.forEach(function(m) {\n var n = m(l);\n if (!n) {\n return l\n };\n k.push(m);\n l = l.addQueryData(n);\n });\n h = k;\n return l;\n }\n };\n e.exports = i;\n});\n__d(\"Quickling\", [\"AjaxPipeRequest\",\"Arbiter\",\"Class\",\"CSSClassTransition\",\"DocumentTitle\",\"DOM\",\"ErrorUtils\",\"HTML\",\"OnloadHooks\",\"PageTransitions\",\"QuicklingAugmenter\",\"Run\",\"URI\",\"UserAgent\",\"copyProperties\",\"goOrReplace\",\"isEmpty\",\"QuicklingConfig\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxPipeRequest\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSSClassTransition\"), k = b(\"DocumentTitle\"), l = b(\"DOM\"), m = b(\"ErrorUtils\"), n = b(\"HTML\"), o = b(\"OnloadHooks\"), p = b(\"PageTransitions\"), q = b(\"QuicklingAugmenter\"), r = b(\"Run\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"copyProperties\"), v = b(\"goOrReplace\"), w = b(\"isEmpty\"), x = b(\"QuicklingConfig\"), y = x.version, z = x.sessionLength, aa = new RegExp(x.inactivePageRegex), ba = 0, ca, da = \"\", ea = {\n isActive: function() {\n return true;\n },\n isPageActive: function(la) {\n if ((la == \"#\")) {\n return false\n };\n la = new s(la);\n if ((la.getDomain() && (la.getDomain() != s().getDomain()))) {\n return false\n };\n if ((la.getPath() == \"/l.php\")) {\n var ma = la.getQueryData().u;\n if (ma) {\n ma = s(unescape(ma)).getDomain();\n if ((ma && (ma != s().getDomain()))) {\n return false\n };\n }\n ;\n }\n ;\n var na = la.getPath(), oa = la.getQueryData();\n if (!w(oa)) {\n na += (\"?\" + s.implodeQuery(oa));\n };\n return !aa.test(na);\n },\n getLoadCount: function() {\n return ba;\n }\n };\n function fa(la) {\n la = (la || \"Facebook\");\n k.set(la);\n if (t.ie()) {\n da = la;\n if (!ca) {\n ca = window.setInterval(function() {\n var ma = da, na = k.get();\n if ((ma != na)) {\n k.set(ma);\n };\n }, 5000, false);\n };\n }\n ;\n };\n function ga(la) {\n var ma = document.getElementsByTagName(\"link\");\n for (var na = 0; (na < ma.length); ++na) {\n if ((ma[na].rel != \"alternate\")) {\n continue;\n };\n l.remove(ma[na]);\n };\n if (la.length) {\n var oa = l.find(document, \"head\");\n (oa && l.appendContent(oa, n(la[0])));\n }\n ;\n };\n function ha(la) {\n var ma = {\n version: y\n };\n this.parent.construct(this, la, {\n quickling: ma\n });\n };\n i.extend(ha, g);\n u(ha.prototype, {\n _preBootloadFirstResponse: function(la) {\n return true;\n },\n _fireDomContentCallback: function() {\n (this._request.cavalry && this._request.cavalry.setTimeStamp(\"t_domcontent\"));\n p.transitionComplete();\n (this._onPageDisplayed && this._onPageDisplayed(this.pipe));\n this.parent._fireDomContentCallback();\n },\n _fireOnloadCallback: function() {\n if (this._request.cavalry) {\n this._request.cavalry.setTimeStamp(\"t_hooks\");\n this._request.cavalry.setTimeStamp(\"t_layout\");\n this._request.cavalry.setTimeStamp(\"t_onload\");\n }\n ;\n this.parent._fireOnloadCallback();\n },\n isPageActive: function(la) {\n return ea.isPageActive(la);\n },\n _versionCheck: function(la) {\n if ((la.version == y)) {\n return true\n };\n var ma = [\"quickling\",\"ajaxpipe\",\"ajaxpipe_token\",];\n v(window.location, s(la.uri).removeQueryData(ma), true);\n return false;\n },\n _processFirstResponse: function(la) {\n var ma = la.getPayload();\n fa(ma.title);\n ga((ma.syndication || []));\n window.scrollTo(0, 0);\n j.go(document.body, (ma.body_class || \"\"), p.getMostRecentURI(), la.getRequest().getURI());\n h.inform(\"quickling/response\");\n },\n getSanitizedParameters: function() {\n return [\"quickling\",];\n }\n });\n function ia() {\n ba++;\n return (ba >= z);\n };\n function ja(la) {\n g.setCurrentRequest(null);\n if (ia()) {\n return false\n };\n la = q.augmentURI(la);\n if (!ea.isPageActive(la)) {\n return false\n };\n window.ExitTime = Date.now();\n r.__removeHook(\"onafterloadhooks\");\n r.__removeHook(\"onloadhooks\");\n o.runHooks(\"onleavehooks\");\n h.inform(\"onload/exit\", true);\n new ha(la).setCanvasId(\"content\").send();\n return true;\n };\n function ka(la) {\n var ma = window[la];\n function na(oa, pa, qa) {\n if ((typeof oa !== \"function\")) {\n oa = eval.bind(null, oa);\n };\n var ra = ma(m.guard(oa), pa);\n if ((pa > 0)) {\n if ((qa !== false)) {\n r.onLeave(function() {\n clearInterval(ra);\n });\n }\n };\n return ra;\n };\n window[la] = na;\n };\n r.onAfterLoad(function la() {\n ka(\"setInterval\");\n ka(\"setTimeout\");\n p.registerHandler(ja, 1);\n });\n e.exports = a.Quickling = ea;\n});\n__d(\"ScubaSample\", [\"Banzai\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = \"scuba_sample\", h = b(\"Banzai\"), i = b(\"copyProperties\");\n function j(m, n, o) {\n this.fields = {\n };\n this.flush = function() {\n if (!m) {\n return\n };\n var p = {\n };\n i(p, this.fields);\n p._ds = m;\n if (n) {\n p._lid = n;\n };\n p._options = o;\n h.post(g, p);\n this.flush = function() {\n \n };\n this.flushed = true;\n };\n this.lid = n;\n return this;\n };\n function k(m, n, o) {\n if (!this.fields[m]) {\n this.fields[m] = {\n };\n };\n this.fields[m][n] = o;\n return this;\n };\n function l(m) {\n return function(n, o) {\n if (this.flushed) {\n return this\n };\n return k.call(this, m, n, o);\n };\n };\n i(j.prototype, {\n addNormal: l(\"normal\"),\n addInteger: l(\"int\"),\n addDenorm: l(\"denorm\")\n });\n e.exports = j;\n});\n__d(\"ScriptMonitorReporter\", [\"ScriptMonitor\",\"ScubaSample\",\"setTimeoutAcrossTransitions\",\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"ScriptMonitor\"), h = b(\"ScubaSample\"), i = b(\"setTimeoutAcrossTransitions\"), j = b(\"URI\");\n function k(o) {\n var p = [];\n for (var q = 0; (q < o.length); q++) {\n p.push(new RegExp(o[q], \"i\"));;\n };\n return p;\n };\n function l(o, p) {\n for (var q = 0; (q < p.length); q++) {\n if (p[q].src) {\n o.push(p[q].src);\n };\n };\n };\n function m(o, p) {\n for (var q = 0; (q < p.length); q++) {\n if (p[q].test(o)) {\n return true\n };\n };\n return false;\n };\n function n(o, p) {\n var q = g.stop(), r = {\n addGeoFields: 1,\n addBrowserFields: 1,\n addUser: 1\n }, s = {\n };\n l(q, document.getElementsByTagName(\"script\"));\n l(q, document.getElementsByTagName(\"iframe\"));\n for (var t = 0; (t < q.length); t++) {\n var u = q[t].replace(/\\?.*/, \"\"), v;\n if (s[u]) {\n continue;\n };\n s[u] = 1;\n if (!j.isValidURI(u)) {\n v = true;\n }\n else if (m(u, p)) {\n v = false;\n }\n else if (m(new j(u).getDomain(), o)) {\n v = false;\n }\n else v = true;\n \n \n ;\n if (v) {\n new h(\"unknown_scripts\", 0, r).addNormal(\"url\", u).flush();\n };\n };\n };\n e.exports = {\n runScan: function(o, p) {\n i(function() {\n n(k(o), k(p));\n }, 5000);\n }\n };\n});\n__d(\"StringTransformations\", [], function(a, b, c, d, e, f) {\n e.exports = {\n unicodeEscape: function(g) {\n return g.replace(/[^A-Za-z0-9\\-\\.\\:\\_\\$\\/\\+\\=]/g, function(h) {\n var i = h.charCodeAt().toString(16);\n return (\"\\\\u\" + ((\"0000\" + i.toUpperCase())).slice(-4));\n });\n },\n unicodeUnescape: function(g) {\n return g.replace(/(\\\\u[0-9A-Fa-f]{4})/g, function(h) {\n return String.fromCharCode(parseInt(h.slice(2), 16));\n });\n }\n };\n});\n__d(\"TimeSpentLogger\", [\"Arbiter\",\"Banzai\",\"CSS\",\"ClickRefUtils\",\"DOMEventListener\",\"ScriptPath\",\"UserActivity\",\"collectDataAttributes\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"CSS\"), j = b(\"ClickRefUtils\"), k = b(\"DOMEventListener\"), l = b(\"ScriptPath\"), m = b(\"UserActivity\"), n = b(\"collectDataAttributes\"), o = b(\"copyProperties\"), p = [m.getLastInformTime(),0,], q = m.getLastInformTime(), r = {\n tos_seq: 0,\n tos_cumulative: 0,\n transport_cause: null,\n buenopath: null,\n page_token: null,\n elements: 0,\n uact_tos: null,\n client_time: null\n }, s = 100, t = 100, u = (10 * 1000), v = (3 * 1000), w = 1, x = 2, y = 4, z = 8, aa = {\n };\n m.subscribe(function(ia, ja) {\n var ka = (p.length - 1);\n q = ja.last_inform;\n if ((ja.idleness < v)) {\n p[ka] += ja.idleness;\n r.tos_cumulative += ja.idleness;\n }\n else {\n if ((ka > s)) {\n fa(\"array_limit_reached\");\n };\n p.push(ja.idleness, 0);\n }\n ;\n });\n function ba(ia) {\n var ja = 0;\n if (document.getElementById(\"boulder_fixed_header\")) {\n ja = (ja | w);\n };\n if (i.hasClass(document.body, \"timelineLayout\")) {\n ja = (ja | y);\n var ka = document.getElementById(\"pagelet_main_column_personal\");\n if ((ka && (ka.getAttribute(\"data-referrer\") === \"pagelet_main_column_personal_timeline\"))) {\n ja = (ja | x);\n };\n if (i.hasClass(document.body, \"pagesTimelineLayout\")) {\n ja = (ja | z);\n };\n }\n ;\n return ja;\n };\n function ca(ia) {\n var ja = ba(), ka = l.getScriptPath(), la = l.getCategoryToken();\n r.uact_tos = p;\n if (ka) {\n r.buenopath = ka.substring(0, t);\n }\n else r.buenopath = \"\";\n ;\n if (la) {\n r.page_token = la;\n }\n else r.page_token = \"\";\n ;\n r.elements = ja;\n r.transport_cause = ia;\n r.client_time = Date.now();\n };\n function da() {\n r.tos_seq += 1;\n p = [q,0,];\n };\n var ea = {\n store: true,\n delay: 3000,\n retry: true\n };\n function fa(ia) {\n ca(ia);\n if (h.isEnabled(\"time_spent\")) {\n g.inform(\"timespent/tosdataposted\", o({\n }, r));\n h.post(\"time_spent\", o({\n }, r), ea);\n }\n ;\n da();\n };\n function ga() {\n fa(\"heartbeat\");\n };\n function ha() {\n fa(\"before_unload\");\n };\n if ((window.top == window.self)) {\n k.add(window, \"beforeunload\", ha);\n setInterval(function() {\n if ((((Date.now() - m.getLastInformTime()) > ((u - 100))) && (((p.length > 2) || (p[(p.length - 1)] > 0))))) {\n ga();\n };\n }, u);\n }\n;\n g.subscribe(\"UserAction/new\", function(ia, ja) {\n if (j.should_report(ja.node, ja.mode)) {\n var ka = n(ja.node, [\"gt\",]), la = {\n iref: j.get_intern_ref(ja.node),\n gt_ref: ka.ref,\n nav_section: ka.nav_section\n };\n ca(\"useraction\");\n o(la, r);\n ja.ua.add_data(la);\n g.inform(\"timespent/tosdataposted\", o({\n }, r));\n da();\n }\n ;\n });\n e.exports = aa;\n});\n__d(\"UserActionHistory\", [\"Arbiter\",\"ClickRefUtils\",\"ScriptPath\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ClickRefUtils\"), i = b(\"ScriptPath\"), j = b(\"throttle\"), k = {\n click: 1,\n submit: 1\n }, l = false, m = {\n log: [],\n len: 0\n }, n = j.acrossTransitions(function() {\n try {\n l._ua_log = JSON.stringify(m);\n } catch (q) {\n l = false;\n };\n }, 1000);\n function o() {\n try {\n if (a.sessionStorage) {\n l = a.sessionStorage;\n (l._ua_log && (m = JSON.parse(l._ua_log)));\n }\n ;\n } catch (q) {\n l = false;\n };\n m.log[(m.len % 10)] = {\n ts: Date.now(),\n path: \"-\",\n index: m.len,\n type: \"init\",\n iref: \"-\"\n };\n m.len++;\n g.subscribe(\"UserAction/new\", function(r, s) {\n var t = s.ua, u = s.node, event = s.event;\n if ((!event || !((event.type in k)))) {\n return\n };\n var v = {\n path: i.getScriptPath(),\n type: event.type,\n ts: t._ue_ts,\n iref: (h.get_intern_ref(u) || \"-\"),\n index: m.len\n };\n m.log[(m.len++ % 10)] = v;\n (l && n());\n });\n };\n function p() {\n return m.log.sort(function(q, r) {\n return (((r.ts != q.ts)) ? ((r.ts - q.ts)) : ((r.index - q.index)));\n });\n };\n o();\n e.exports = {\n getHistory: p\n };\n});\n__d(\"clip\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n return Math.min(Math.max(h, i), j);\n };\n e.exports = g;\n});\n__d(\"MusicButtonStore\", [], function(a, b, c, d, e, f) {\n var g = {\n }, h = {\n addButton: function(i, j) {\n g[i] = j;\n return j;\n },\n getButton: function(i) {\n return g[i];\n },\n getButtons: function() {\n return g;\n },\n removeButton: function(i) {\n (g[i] && g[i].resetLoadingTimers());\n delete g[i];\n }\n };\n e.exports = h;\n});\n__d(\"MusicConstants\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n DEBUG: false,\n LIVE_LISTEN_MIN_SPOTIFY_VERSION: \"spotify-0.6.6.0.g5a9eaca5\",\n enableDebug: function() {\n this.DEBUG = true;\n },\n sameURLs: function(i, j) {\n var k = /\\/$/;\n if ((i && j)) {\n i = g(i);\n j = g(j);\n return ((i.getDomain() == j.getDomain()) && (i.getPath() == j.getPath()));\n }\n ;\n return false;\n },\n greaterOrEqualToMinimumVersion: function(i, j) {\n var k = /(?:\\d+\\.)+/, l = i.match(k)[0].split(\".\").slice(0, -1), m = j.match(k)[0].split(\".\").slice(0, -1);\n if ((l.length !== m.length)) {\n return false\n };\n for (var n = 0; (n < m.length); n++) {\n if ((+l[n] < +m[n])) {\n return false;\n }\n else if ((+l[n] > +m[n])) {\n return true\n }\n ;\n };\n return true;\n },\n sanitizeForProviders: function(i) {\n var j = {\n };\n for (var k in i) {\n if (this.ALLOWED_EXTERNAL_CONTEXT_PARAMS[k]) {\n j[k] = i[k];\n };\n };\n return j;\n },\n OP: {\n RESUME: \"RESUME\",\n PAUSE: \"PAUSE\",\n PLAY: \"PLAY\",\n VERSION: \"VERSION\"\n },\n STATUS_CHANGE_OP: {\n STATUS: \"STATUS\",\n LOGIN: \"LOGIN\",\n REINFORM: \"REINFORM\"\n },\n STATUS_CHANGE_EVENT: {\n playing: \"PLAY_STATE_CHANGED\",\n track: \"TRACK_CHANGED\"\n },\n DIAGNOSTIC_EVENT: {\n ALL_PAUSED: \"ALL_PAUSED\",\n ALL_OFFLINE: \"ALL_OFFLINE\",\n OFFLINE: \"OFFLINE\",\n ONLINE: \"ONLINE\",\n SEARCHING: \"SEARCHING\",\n HIT: \"HIT\",\n MISS: \"MISS\",\n RESIGN: \"RESIGN\",\n IFRAME_POLLING: \"IFRAME_POLLING\",\n RELAUNCH: \"RELAUNCH\",\n STATE_CHANGE: \"STATE_CHANGE\",\n WRONG_VERSION: \"WRONG_VERSION\",\n SERVICE_ERROR: \"SERVICE_ERROR\",\n INCORRECT_ONLINE_STATE: \"INCORRECT_ONLINE_STATE\",\n LOG_SEND_OP: \"LOG_SEND_OP\",\n REQUEUE_OP: \"REQUEUE_OP\"\n },\n ALLOWED_STATUS_PARAMS: {\n playing: \"playing\",\n track: \"track\",\n context: \"context\",\n client_version: \"client_version\",\n start_time: \"start_time\",\n expires_in: \"expires_in\",\n open_graph_state: \"open_graph_state\"\n },\n ALLOWED_EXTERNAL_CONTEXT_PARAMS: {\n uri: true,\n song: true,\n radio_station: true,\n album: true,\n playlist: true,\n musician: true,\n song_list: true,\n offset: true,\n title: true,\n request_id: true,\n listen_with_friends: true,\n needs_tos: true\n },\n LIVE_LISTEN_OP: {\n NOW_LEADING: \"NOW_LEADING\",\n NOW_LISTENING: \"NOW_LISTENING\",\n END_SESSION: \"END_SESSION\",\n SONG_PLAYING: \"SONG_PLAYING\",\n LISTENER_UPDATE: \"LISTENER_UPDATE\",\n QUEUE_SESSION: \"QUEUE_SESSION\",\n PLAY_ERROR: \"PLAY_ERROR\",\n SESSION_UPDATED: \"SESSION_UPDATED\",\n QUEUING_SESSION: \"QUEUING_SESSION\"\n },\n MUSIC_BUTTON: {\n ACTIVATE: \"ACTIVATE\"\n },\n ERROR: {\n 1: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM\",\n 2: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM_OR_WAIT\",\n 3: \"SERVICE_UNAVAILABLE_BILLING_ISSUE\",\n 4: \"SERVICE_UNAVAILABLE_TECHNICAL_ISSUE\",\n 5: \"AUDIO_AD_PLAYING\",\n 99: \"SERVICE_TEMPORARILY_UNAVAILABLE\",\n 101: \"SONG_UNAVAILABLE_WITHOUT_PURCHASE\",\n 102: \"SONG_UNAVAILABLE_WITHOUT_PREMIUM\",\n 103: \"SONG_UNAVAILABLE_INDEFINITELY\"\n }\n };\n e.exports = (a.MusicConstants || h);\n});\n__d(\"MusicEvents\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\");\n e.exports = a.MusicEvents = new g();\n});\n__d(\"MusicButton\", [\"BanzaiODS\",\"Bootloader\",\"copyProperties\",\"CSS\",\"DOM\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"ScubaSample\",\"Tooltip\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"BanzaiODS\"), h = b(\"Bootloader\"), i = b(\"copyProperties\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"ScubaSample\"), q = b(\"Tooltip\"), r = b(\"cx\"), s = function(t, u, v, w, x, y) {\n this.provider = t;\n this.buttonElem = u;\n this.url = v;\n this.context = (w || {\n });\n this.mediaType = x;\n this.setState(this.STATES.OFFLINE);\n this.tooltip = (y || \"\");\n n.subscribe(m.MUSIC_BUTTON.ACTIVATE, this.processClick.bind(this));\n };\n i(s, {\n tracksetableTypes: []\n });\n i(s.prototype, {\n SHOW_LOADING_TIMEOUT: 500,\n HIDE_LOADING_TIMEOUT: 4000,\n RECENTLY_ONLINE_TIMEOUT: 6000,\n STATES: {\n PLAYING: \"music_playing\",\n PAUSED: \"music_paused\",\n LOADING: \"music_loading\",\n DISABLED: \"music_disabled\",\n OFFLINE: \"music_offline\"\n },\n setState: function(t) {\n if ((t !== this.STATES.LOADING)) {\n this.resetLoadingTimers();\n this.previousState = (this.state || t);\n }\n ;\n if ((t === this.STATES.PLAYING)) {\n q.set(this.buttonElem, this.tooltip);\n }\n else q.set(this.buttonElem, \"\");\n ;\n var u = this.buttonElem.parentNode;\n (this.state && j.removeClass(u, this.state));\n this.state = t;\n j.addClass(u, this.state);\n },\n isTracksetable: function(t) {\n return (s.tracksetableTypes.indexOf(this.mediaType) !== -1);\n },\n handleIncomingEvent: function(t, u) {\n clearTimeout(this._showLoadingTimer);\n if (((u && u.provider) && (u.provider != this.provider))) {\n return\n };\n switch (t) {\n case m.DIAGNOSTIC_EVENT.ONLINE:\n \n case m.STATUS_CHANGE_EVENT.track:\n \n case m.STATUS_CHANGE_EVENT.playing:\n var v = ((u && u.track) && u.track.uri), w = ((u && u.context) && u.context.uri);\n if (((u && u.playing) && ((m.sameURLs(v, this.url) || m.sameURLs(w, this.url))))) {\n this.setState(this.STATES.PLAYING);\n }\n else if (((this.state === this.STATES.LOADING) && (((this.previousState === this.STATES.PAUSED) || (this.previousState === this.STATES.OFFLINE))))) {\n clearTimeout(this._attemptingPlayTimer);\n this._attemptingPlayTimer = this.setState.bind(this, this.STATES.PAUSED).defer(this.RECENTLY_ONLINE_TIMEOUT, false);\n }\n else if (!this._attemptingPlayTimer) {\n this.setState(this.STATES.PAUSED);\n }\n \n ;\n break;\n case m.DIAGNOSTIC_EVENT.OFFLINE:\n this.setState(this.STATES.OFFLINE);\n break;\n case m.DIAGNOSTIC_EVENT.ALL_OFFLINE:\n this.setState(this.STATES.OFFLINE);\n break;\n };\n },\n processClick: function(t, u) {\n if ((u != this.buttonElem)) {\n if ((this.state === this.STATES.LOADING)) {\n (this.previousState && this.setState(this.previousState));\n };\n return;\n }\n ;\n var v = new p(\"music_play_button_click\", null, {\n addBrowserFields: true,\n addGeoFields: true,\n addUser: true\n });\n v.addNormal(\"uses_bridge\", \"1\");\n v.addNormal(\"state\", this.state);\n v.addNormal(\"provider\", this.provider);\n v.addNormal(\"class\", \"MusicButton\");\n v.addDenorm(\"url\", this.url);\n v.flush();\n if ((this.state != this.STATES.PLAYING)) {\n g.bumpEntityKey(\"music_play_button\", \"music_play_button_click\");\n g.bumpEntityKey(\"music_play_button\", (\"music_play_button_click.\" + this.provider));\n var w = o.byClass(this.buttonElem, \"_4--s\");\n if (w) {\n j.addClass(w, \"_4--t\");\n j.removeClass.curry(w, \"_4--t\").defer(3000);\n }\n ;\n }\n ;\n var x = (this.isTracksetable() && o.byClass(this.buttonElem, \"music_trackset_container\")), y = [];\n if (x) {\n var z = x.getAttribute(\"data-trackset-title\"), aa = this.provider, ba = k.scry(x, \".music_button\");\n for (var ca = 0; (ca < ba.length); ca++) {\n var da = l.getButton([ba[ca].id,]);\n if (((da && (da.provider == aa)) && da.isTracksetable())) {\n y.push(da.url);\n };\n };\n }\n ;\n if (!a.Music) {\n this.showLoading(true);\n };\n h.loadModules([\"Music\",], function(ea) {\n var fa = (((x && (y.length > 1))) ? ea.playPauseSongList(this.provider, this.url, y, z, this.context) : ea.playPauseSong(this.provider, this.url, this.context));\n this.showLoading(!fa);\n }.bind(this));\n },\n showLoading: function(t) {\n this.resetLoadingTimers();\n this._hideLoadingTimer = this._timeout.bind(this, t).defer(this.HIDE_LOADING_TIMEOUT, false);\n this._showLoadingTimer = this.setState.bind(this, this.STATES.LOADING).defer(this.SHOW_LOADING_TIMEOUT, false);\n },\n resetLoadingTimers: function() {\n clearTimeout(this._hideLoadingTimer);\n clearTimeout(this._showLoadingTimer);\n clearTimeout(this._attemptingPlayTimer);\n this._attemptingPlayTimer = null;\n },\n destroy: function() {\n this.resetLoadingTimers();\n this.buttonElem = null;\n },\n _timeout: function(t) {\n (a.Music && a.Music.reInform([this.provider,]));\n if ((!t && (this.state === this.STATES.LOADING))) {\n this.setState(this.STATES.PAUSED);\n };\n }\n });\n e.exports = s;\n});\n__d(\"MusicButtonManager\", [\"Event\",\"DOM\",\"KeyedCallbackManager\",\"Layer\",\"MusicButton\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"$\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"DOM\"), i = b(\"KeyedCallbackManager\"), j = b(\"Layer\"), k = b(\"MusicButton\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"ge\"), s = new i(), t = null, u = {\n }, v = 0;\n function w(da) {\n var ea = da.getTarget(), fa = o.byClass(ea, \"music_button\");\n fa = (fa || ((!((da.getModifiers && da.getModifiers().any)) && x(ea))));\n if (!fa) {\n return\n };\n return y(fa, da);\n };\n function x(da) {\n var ea = (o.byClass(da, \"music_button_trigger\") && o.byClass(da, \"music_button_trigger_group\"));\n if (ea) {\n var fa = h.scry(ea, \".music_button\");\n if (fa.length) {\n return fa[0]\n };\n }\n ;\n return null;\n };\n function y(da, event) {\n (event && event.stop());\n n.inform(m.MUSIC_BUTTON.ACTIVATE, da);\n return false;\n };\n function z(da) {\n (a.Music && a.Music.reInform(da));\n };\n function aa(da, ea) {\n var fa = l.getButtons();\n for (var ga in fa) {\n if ((fa[ga].noGC || r(ga))) {\n fa[ga].handleIncomingEvent(da, ea);\n }\n else l.removeButton(ga);\n ;\n };\n };\n var ba = {\n init: function(da) {\n if (t) {\n return\n };\n t = true;\n k.tracksetableTypes = (da || []);\n g.listen(document.body, \"click\", w);\n n.subscribe([m.STATUS_CHANGE_EVENT.playing,m.STATUS_CHANGE_EVENT.track,m.DIAGNOSTIC_EVENT.OFFLINE,m.DIAGNOSTIC_EVENT.ALL_OFFLINE,m.DIAGNOSTIC_EVENT.ONLINE,], aa);\n },\n add: function(da, ea, fa, ga, ha, ia) {\n (t || ba.init());\n var ja = ea.id, ka = l.getButton(ja);\n if (ka) {\n return ka\n };\n ka = l.addButton(ja, new k(da, ea, fa, q({\n button_id: ja\n }, ga), ha, ia));\n var la = o.byClass(ea, \"uiOverlay\");\n if (la) {\n ka.noGC = true;\n var ma = j.subscribe(\"destroy\", function(na, oa) {\n if (h.contains(oa.getRoot(), ea)) {\n l.removeButton(ja);\n j.unsubscribe(ma);\n }\n ;\n });\n }\n ;\n if ((da && !u[da])) {\n u[da] = function() {\n var na = Object.keys(u);\n (na.length && z(na));\n u = {\n };\n }.defer();\n };\n return ka;\n },\n addButton: function(da, ea, fa, ga, ha, ia) {\n if (!r(ea)) {\n return\n };\n var ja = p(ea);\n return ba.add(da, ja, fa, ga, ha, ia);\n },\n asyncAddMusicButton: function(da, ea) {\n da.setAttribute(\"id\", (\"music_button_\" + v++));\n ca(da, ea);\n },\n tryAddButtonInDOM: function(da, ea) {\n var fa = r(da);\n (fa && ca(fa, ea));\n },\n addMusicData: function(da, ea, fa, ga, ha, ia) {\n s.setResource(da, {\n provider: ea,\n uri: fa,\n context: ga,\n media_type: ha,\n tooltip: ia\n });\n }\n };\n function ca(da, ea) {\n var fa = h.find(da, \"a.button_anchor\").getAttribute(\"href\");\n s.executeOrEnqueue(fa, function(ga) {\n return ba.add(ga.provider, da, ga.uri, ga.context, ga.media_type, (ea ? ga.tooltip : \"\"));\n });\n };\n e.exports = (a.MusicButtonManager || ba);\n});\n__d(\"TinyViewport\", [\"Arbiter\",\"CSS\",\"DOM\",\"Event\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Event\"), k = b(\"queryThenMutateDOM\"), l = document.documentElement, m, n, o = k.bind(null, function() {\n n = (n || i.getDocumentScrollElement());\n m = ((l.clientHeight < 400) || (l.clientWidth < n.scrollWidth));\n }, function() {\n h.conditionClass(l, \"tinyViewport\", m);\n h.conditionClass(l, \"canHaveFixedElements\", !m);\n }, \"TinyViewport\");\n o();\n g.subscribe(\"quickling/response\", o);\n j.listen(window, \"resize\", o);\n});\n__d(\"TimeSpentArray\", [\"Banzai\",\"pageID\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\"), h = b(\"pageID\"), i = 2, j = (i * 32), k = 1500, l, m, n, o, p, q, r, s, t;\n function u() {\n if (l) {\n var ca = Date.now();\n if ((ca > p)) {\n r = Math.min(j, Math.ceil((((ca / 1000)) - o)));\n };\n var da = z();\n if (da) {\n l(da);\n };\n }\n ;\n y();\n };\n function v() {\n w();\n m = setTimeout(u, ((n * 1000) + k), false);\n };\n function w() {\n if (m) {\n clearTimeout(m);\n m = null;\n }\n ;\n };\n function x(ca) {\n o = ca;\n p = (o * 1000);\n q = [1,];\n for (var da = 1; (da < i); da++) {\n q.push(0);;\n };\n r = 1;\n s += 1;\n t += 1;\n v();\n };\n function y() {\n w();\n q = null;\n n = j;\n };\n function z() {\n if (!q) {\n return null\n };\n return {\n tos_id: h,\n start_time: o,\n tos_array: q.slice(0),\n tos_len: r,\n tos_seq: t,\n tos_cum: s\n };\n };\n function aa(ca) {\n if (((ca >= p) && (((ca - p)) < 1000))) {\n return\n };\n ba(Math.floor((ca / 1000)));\n };\n function ba(ca) {\n var da = (ca - o);\n if (((da < 0) || (da >= j))) {\n u();\n };\n if (!q) {\n x(ca);\n }\n else {\n q[(da >> 5)] |= ((1 << ((da & 31))));\n r = (da + 1);\n s += 1;\n p = (ca * 1000);\n }\n ;\n };\n e.exports = {\n init: function(ca, da) {\n s = 0;\n t = -1;\n l = ca;\n n = (da || j);\n x(Math.floor((Date.now() / 1000)));\n g.subscribe(g.SHUTDOWN, u);\n },\n update: function(ca) {\n aa(ca);\n },\n get: function() {\n return z();\n },\n ship: function() {\n u();\n },\n reset: function() {\n y();\n }\n };\n});\n__d(\"WebStorageMonster\", [\"Event\",\"AsyncRequest\",\"UserActivity\",\"StringTransformations\",\"arrayContains\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n var g = b(\"Event\"), h = b(\"AsyncRequest\"), i = b(\"UserActivity\"), j = b(\"StringTransformations\"), k = b(\"arrayContains\"), l = b(\"setTimeoutAcrossTransitions\"), m = 300000, n = false;\n function o(t) {\n var u = {\n };\n for (var v in t) {\n var w = t.getItem(v), x = j.unicodeEscape(v);\n if ((typeof w === \"string\")) {\n u[x] = w.length;\n };\n };\n return u;\n };\n function p(t) {\n if ((a.localStorage && t.keys)) {\n s._getLocalStorageKeys().forEach(function(u) {\n if (k(t.keys, u)) {\n a.localStorage.removeItem(u);\n };\n });\n };\n };\n function q(t) {\n if (a.localStorage) {\n s._getLocalStorageKeys().forEach(function(u) {\n if (!t.some(function(v) {\n return new RegExp(v).test(u);\n })) {\n a.localStorage.removeItem(u);\n };\n });\n };\n if (a.sessionStorage) {\n a.sessionStorage.clear();\n };\n };\n function r(t) {\n if (i.isActive(m)) {\n l(r.curry(t), m);\n }\n else s.cleanNow(t);\n ;\n };\n var s = {\n registerLogoutForm: function(t, u) {\n g.listen(t, \"submit\", function(v) {\n s.cleanOnLogout(u);\n });\n },\n schedule: function(t) {\n if (n) {\n return\n };\n n = true;\n r(t);\n },\n cleanNow: function(t) {\n var u = Date.now(), v = {\n }, w = false;\n [\"localStorage\",\"sessionStorage\",].forEach(function(y) {\n if (a[y]) {\n v[y] = o(a[y]);\n w = true;\n }\n ;\n });\n var x = Date.now();\n v.logtime = (x - u);\n if (w) {\n new h(\"/ajax/webstorage/process_keys.php\").setData(v).setHandler(function(y) {\n if (!t) {\n var z = y.getPayload();\n if (z.keys) {\n z.keys = z.keys.map(j.unicodeUnescape);\n };\n p(z);\n }\n ;\n }.bind(this)).send();\n };\n },\n cleanOnLogout: function(t) {\n if (t) {\n q(t);\n };\n if (a.sessionStorage) {\n a.sessionStorage.clear();\n };\n },\n _getLocalStorageKeys: Object.keys.curry(a.localStorage)\n };\n e.exports = s;\n});");
// 2057
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"s6de57b149b09c494ec606f82771caf93a5a215db");
// 2058
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"63VzN\",]);\n}\n;\n;\n__d(\"NotificationURI\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n localize: function(i) {\n i = g(i);\n if (!i.isFacebookURI()) {\n return i.toString();\n }\n ;\n ;\n var j = i.getSubdomain();\n return i.getUnqualifiedURI().getQualifiedURI().setSubdomain(j).toString();\n },\n snowliftable: function(i) {\n if (!i) {\n return false;\n }\n ;\n ;\n i = g(i);\n return ((i.isFacebookURI() && i.getQueryData().hasOwnProperty(\"fbid\")));\n },\n isVaultSetURI: function(i) {\n if (!i) {\n return false;\n }\n ;\n ;\n i = g(i);\n return ((i.isFacebookURI() && ((i.getPath() == \"/ajax/vault/sharer_preview.php\"))));\n }\n };\n e.exports = h;\n});\n__d(\"legacy:fbdesktop-detect\", [\"FBDesktopDetect\",], function(a, b, c, d) {\n a.FbDesktopDetect = b(\"FBDesktopDetect\");\n}, 3);\n__d(\"IntlUtils\", [\"AsyncRequest\",\"Cookie\",\"goURI\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"Cookie\"), i = b(\"goURI\"), j = {\n setXmode: function(k) {\n (new g()).setURI(\"/ajax/intl/save_xmode.php\").setData({\n xmode: k\n }).setHandler(function() {\n JSBNG__document.JSBNG__location.reload();\n }).send();\n },\n setAmode: function(k) {\n new g().setURI(\"/ajax/intl/save_xmode.php\").setData({\n amode: k,\n app: false\n }).setHandler(function() {\n JSBNG__document.JSBNG__location.reload();\n }).send();\n },\n setLocale: function(k, l, m, n) {\n if (!m) {\n m = k.options[k.selectedIndex].value;\n }\n ;\n ;\n j.saveLocale(m, true, null, l, n);\n },\n saveLocale: function(k, l, m, n, o) {\n new g().setURI(\"/ajax/intl/save_locale.php\").setData({\n aloc: k,\n source: n,\n app_only: o\n }).setHandler(function(p) {\n if (l) {\n JSBNG__document.JSBNG__location.reload();\n }\n else i(m);\n ;\n ;\n }).send();\n },\n setLocaleCookie: function(k, l) {\n h.set(\"locale\", k, ((((7 * 24)) * 3600000)));\n i(l);\n }\n };\n e.exports = j;\n});\n__d(\"legacy:intl-base\", [\"IntlUtils\",], function(a, b, c, d) {\n var e = b(\"IntlUtils\");\n a.intl_set_xmode = e.setXmode;\n a.intl_set_amode = e.setAmode;\n a.intl_set_locale = e.setLocale;\n a.intl_save_locale = e.saveLocale;\n a.intl_set_cookie_locale = e.setLocaleCookie;\n}, 3);\n__d(\"legacy:onload-action\", [\"OnloadHooks\",], function(a, b, c, d) {\n var e = b(\"OnloadHooks\");\n a._onloadHook = e._onloadHook;\n a._onafterloadHook = e._onafterloadHook;\n a.runHook = e.runHook;\n a.runHooks = e.runHooks;\n a.keep_window_set_as_loaded = e.keepWindowSetAsLoaded;\n}, 3);\n__d(\"LoginFormController\", [\"JSBNG__Event\",\"ge\",\"Button\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"ge\"), i = b(\"Button\");\n f.init = function(j, k) {\n g.listen(j, \"submit\", function() {\n i.setEnabled(k, false);\n i.setEnabled.curry(k, true).defer(15000);\n });\n var l = h(\"lgnjs\");\n if (l) {\n l.value = parseInt(((JSBNG__Date.now() / 1000)), 10);\n }\n ;\n ;\n };\n});\n__d(\"ClickRefUtils\", [], function(a, b, c, d, e, f) {\n var g = {\n get_intern_ref: function(h) {\n if (!!h) {\n var i = {\n profile_minifeed: 1,\n gb_content_and_toolbar: 1,\n gb_muffin_area: 1,\n ego: 1,\n bookmarks_menu: 1,\n jewelBoxNotif: 1,\n jewelNotif: 1,\n BeeperBox: 1,\n navSearch: 1\n };\n for (var j = h; ((j && ((j != JSBNG__document.body)))); j = j.parentNode) {\n if (((!j.id || ((typeof j.id !== \"string\"))))) {\n continue;\n }\n ;\n ;\n if (((j.id.substr(0, 8) == \"pagelet_\"))) {\n return j.id.substr(8);\n }\n ;\n ;\n if (((j.id.substr(0, 8) == \"box_app_\"))) {\n return j.id;\n }\n ;\n ;\n if (i[j.id]) {\n return j.id;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n return \"-\";\n },\n get_href: function(h) {\n var i = ((((((((h.getAttribute && ((h.getAttribute(\"ajaxify\") || h.getAttribute(\"data-endpoint\"))))) || h.action)) || h.href)) || h.JSBNG__name));\n return ((((typeof i === \"string\")) ? i : null));\n },\n should_report: function(h, i) {\n if (((i == \"FORCE\"))) {\n return true;\n }\n ;\n ;\n if (((i == \"INDIRECT\"))) {\n return false;\n }\n ;\n ;\n return ((h && ((g.get_href(h) || ((h.getAttribute && h.getAttribute(\"data-ft\")))))));\n }\n };\n e.exports = g;\n});\n__d(\"setUECookie\", [\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\");\n function h(i) {\n if (!g.no_cookies) {\n JSBNG__document.cookie = ((((((\"act=\" + encodeURIComponent(i))) + \"; path=/; domain=\")) + window.JSBNG__location.hostname.replace(/^.*(\\.facebook\\..*)$/i, \"$1\")));\n }\n ;\n ;\n };\n;\n e.exports = h;\n});\n__d(\"ClickRefLogger\", [\"Arbiter\",\"EagleEye\",\"ClickRefUtils\",\"collectDataAttributes\",\"copyProperties\",\"ge\",\"setUECookie\",\"$\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"EagleEye\"), i = b(\"ClickRefUtils\"), j = b(\"collectDataAttributes\"), k = b(\"copyProperties\"), l = b(\"ge\"), m = b(\"setUECookie\"), n = b(\"$\");\n function o(q) {\n if (!l(\"JSBNG__content\")) {\n return [0,0,0,0,];\n }\n ;\n ;\n var r = n(\"JSBNG__content\"), s = ((a.Vector2 ? a.Vector2.getEventPosition(q) : {\n x: 0,\n y: 0\n }));\n return [s.x,s.y,r.offsetLeft,r.clientWidth,];\n };\n;\n function p(q, r, JSBNG__event, s) {\n var t = (((!a.ArbiterMonitor) ? \"r\" : \"a\")), u = [0,0,0,0,], v, w, x;\n if (!!JSBNG__event) {\n v = JSBNG__event.type;\n if (((((v == \"click\")) && l(\"JSBNG__content\")))) {\n u = o(JSBNG__event);\n }\n ;\n ;\n var y = 0;\n ((JSBNG__event.ctrlKey && (y += 1)));\n ((JSBNG__event.shiftKey && (y += 2)));\n ((JSBNG__event.altKey && (y += 4)));\n ((JSBNG__event.metaKey && (y += 8)));\n if (y) {\n v += y;\n }\n ;\n ;\n }\n ;\n ;\n if (!!r) {\n w = i.get_href(r);\n }\n ;\n ;\n var z = [];\n if (a.ArbiterMonitor) {\n x = a.ArbiterMonitor.getInternRef(r);\n z = a.ArbiterMonitor.getActFields();\n }\n ;\n ;\n var aa = j(((!!JSBNG__event ? ((JSBNG__event.target || JSBNG__event.srcElement)) : r)), [\"ft\",\"gt\",]);\n k(aa.ft, ((s.ft || {\n })));\n k(aa.gt, ((s.gt || {\n })));\n if (((typeof (aa.ft.ei) === \"string\"))) {\n delete aa.ft.ei;\n }\n ;\n ;\n var ba = [q._ue_ts,q._ue_count,((w || \"-\")),q._context,((v || \"-\")),((x || i.get_intern_ref(r))),t,((a.URI ? a.URI.getRequestURI(true, true).getUnqualifiedURI().toString() : ((((JSBNG__location.pathname + JSBNG__location.search)) + JSBNG__location.hash)))),aa,].concat(u).concat(z);\n return ba;\n };\n;\n g.subscribe(\"ClickRefAction/new\", function(q, r) {\n if (i.should_report(r.node, r.mode)) {\n var s = p(r.cfa, r.node, r.JSBNG__event, r.extra_data);\n m(r.cfa.ue);\n h.log(\"act\", s);\n if (window.chromePerfExtension) {\n window.JSBNG__postMessage({\n clickRef: JSON.stringify(s)\n }, window.JSBNG__location.origin);\n }\n ;\n ;\n }\n ;\n ;\n });\n});\n__d(\"QuicklingAugmenter\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = [], i = {\n addHandler: function(j) {\n h.push(j);\n },\n augmentURI: function(j) {\n var k = [], l = g(j);\n h.forEach(function(m) {\n var n = m(l);\n if (!n) {\n return l;\n }\n ;\n ;\n k.push(m);\n l = l.addQueryData(n);\n });\n h = k;\n return l;\n }\n };\n e.exports = i;\n});\n__d(\"Quickling\", [\"AjaxPipeRequest\",\"Arbiter\",\"Class\",\"CSSClassTransition\",\"DocumentTitle\",\"DOM\",\"ErrorUtils\",\"HTML\",\"OnloadHooks\",\"PageTransitions\",\"QuicklingAugmenter\",\"Run\",\"URI\",\"UserAgent\",\"copyProperties\",\"goOrReplace\",\"isEmpty\",\"QuicklingConfig\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxPipeRequest\"), h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"CSSClassTransition\"), k = b(\"DocumentTitle\"), l = b(\"DOM\"), m = b(\"ErrorUtils\"), n = b(\"HTML\"), o = b(\"OnloadHooks\"), p = b(\"PageTransitions\"), q = b(\"QuicklingAugmenter\"), r = b(\"Run\"), s = b(\"URI\"), t = b(\"UserAgent\"), u = b(\"copyProperties\"), v = b(\"goOrReplace\"), w = b(\"isEmpty\"), x = b(\"QuicklingConfig\"), y = x.version, z = x.sessionLength, aa = new RegExp(x.inactivePageRegex), ba = 0, ca, da = \"\", ea = {\n isActive: function() {\n return true;\n },\n isPageActive: function(la) {\n if (((la == \"#\"))) {\n return false;\n }\n ;\n ;\n la = new s(la);\n if (((la.getDomain() && ((la.getDomain() != s().getDomain()))))) {\n return false;\n }\n ;\n ;\n if (((la.getPath() == \"/l.php\"))) {\n var ma = la.getQueryData().u;\n if (ma) {\n ma = s(unescape(ma)).getDomain();\n if (((ma && ((ma != s().getDomain()))))) {\n return false;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n var na = la.getPath(), oa = la.getQueryData();\n if (!w(oa)) {\n na += ((\"?\" + s.implodeQuery(oa)));\n }\n ;\n ;\n return !aa.test(na);\n },\n getLoadCount: function() {\n return ba;\n }\n };\n function fa(la) {\n la = ((la || \"Facebook\"));\n k.set(la);\n if (t.ie()) {\n da = la;\n if (!ca) {\n ca = window.JSBNG__setInterval(function() {\n var ma = da, na = k.get();\n if (((ma != na))) {\n k.set(ma);\n }\n ;\n ;\n }, 5000, false);\n }\n ;\n ;\n }\n ;\n ;\n };\n;\n function ga(la) {\n var ma = JSBNG__document.getElementsByTagName(\"link\");\n for (var na = 0; ((na < ma.length)); ++na) {\n if (((ma[na].rel != \"alternate\"))) {\n continue;\n }\n ;\n ;\n l.remove(ma[na]);\n };\n ;\n if (la.length) {\n var oa = l.JSBNG__find(JSBNG__document, \"head\");\n ((oa && l.appendContent(oa, n(la[0]))));\n }\n ;\n ;\n };\n;\n function ha(la) {\n var ma = {\n version: y\n };\n this.parent.construct(this, la, {\n quickling: ma\n });\n };\n;\n i.extend(ha, g);\n u(ha.prototype, {\n _preBootloadFirstResponse: function(la) {\n return true;\n },\n _fireDomContentCallback: function() {\n ((this._request.cavalry && this._request.cavalry.setTimeStamp(\"t_domcontent\")));\n p.transitionComplete();\n ((this._onPageDisplayed && this._onPageDisplayed(this.pipe)));\n this.parent._fireDomContentCallback();\n },\n _fireOnloadCallback: function() {\n if (this._request.cavalry) {\n this._request.cavalry.setTimeStamp(\"t_hooks\");\n this._request.cavalry.setTimeStamp(\"t_layout\");\n this._request.cavalry.setTimeStamp(\"t_onload\");\n }\n ;\n ;\n this.parent._fireOnloadCallback();\n },\n isPageActive: function(la) {\n return ea.isPageActive(la);\n },\n _versionCheck: function(la) {\n if (((la.version == y))) {\n return true;\n }\n ;\n ;\n var ma = [\"quickling\",\"ajaxpipe\",\"ajaxpipe_token\",];\n v(window.JSBNG__location, s(la.uri).removeQueryData(ma), true);\n return false;\n },\n _processFirstResponse: function(la) {\n var ma = la.getPayload();\n fa(ma.title);\n ga(((ma.syndication || [])));\n window.JSBNG__scrollTo(0, 0);\n j.go(JSBNG__document.body, ((ma.body_class || \"\")), p.getMostRecentURI(), la.getRequest().getURI());\n h.inform(\"quickling/response\");\n },\n getSanitizedParameters: function() {\n return [\"quickling\",];\n }\n });\n function ia() {\n ba++;\n return ((ba >= z));\n };\n;\n function ja(la) {\n g.setCurrentRequest(null);\n if (ia()) {\n return false;\n }\n ;\n ;\n la = q.augmentURI(la);\n if (!ea.isPageActive(la)) {\n return false;\n }\n ;\n ;\n window.ExitTime = JSBNG__Date.now();\n r.__removeHook(\"onafterloadhooks\");\n r.__removeHook(\"onloadhooks\");\n o.runHooks(\"onleavehooks\");\n h.inform(\"onload/exit\", true);\n new ha(la).setCanvasId(\"JSBNG__content\").send();\n return true;\n };\n;\n function ka(la) {\n var ma = window[la];\n function na(oa, pa, qa) {\n if (((typeof oa !== \"function\"))) {\n oa = eval.bind(null, oa);\n }\n ;\n ;\n var ra = ma(m.guard(oa), pa);\n if (((pa > 0))) {\n if (((qa !== false))) {\n r.onLeave(function() {\n JSBNG__clearInterval(ra);\n });\n }\n ;\n }\n ;\n ;\n return ra;\n };\n ;\n window[la] = na;\n };\n;\n r.onAfterLoad(function la() {\n ka(\"JSBNG__setInterval\");\n ka(\"JSBNG__setTimeout\");\n p.registerHandler(ja, 1);\n });\n e.exports = a.Quickling = ea;\n});\n__d(\"ScubaSample\", [\"Banzai\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = \"scuba_sample\", h = b(\"Banzai\"), i = b(\"copyProperties\");\n function j(m, n, o) {\n this.fields = {\n };\n this.flush = function() {\n if (!m) {\n return;\n }\n ;\n ;\n var p = {\n };\n i(p, this.fields);\n p._ds = m;\n if (n) {\n p._lid = n;\n }\n ;\n ;\n p._options = o;\n h.post(g, p);\n this.flush = function() {\n \n };\n this.flushed = true;\n };\n this.lid = n;\n return this;\n };\n;\n function k(m, n, o) {\n if (!this.fields[m]) {\n this.fields[m] = {\n };\n }\n ;\n ;\n this.fields[m][n] = o;\n return this;\n };\n;\n function l(m) {\n return function(n, o) {\n if (this.flushed) {\n return this;\n }\n ;\n ;\n return k.call(this, m, n, o);\n };\n };\n;\n i(j.prototype, {\n addNormal: l(\"normal\"),\n addInteger: l(\"int\"),\n addDenorm: l(\"denorm\")\n });\n e.exports = j;\n});\n__d(\"ScriptMonitorReporter\", [\"ScriptMonitor\",\"ScubaSample\",\"setTimeoutAcrossTransitions\",\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"ScriptMonitor\"), h = b(\"ScubaSample\"), i = b(\"setTimeoutAcrossTransitions\"), j = b(\"URI\");\n function k(o) {\n var p = [];\n for (var q = 0; ((q < o.length)); q++) {\n p.push(new RegExp(o[q], \"i\"));\n ;\n };\n ;\n return p;\n };\n;\n function l(o, p) {\n for (var q = 0; ((q < p.length)); q++) {\n if (p[q].src) {\n o.push(p[q].src);\n }\n ;\n ;\n };\n ;\n };\n;\n function m(o, p) {\n for (var q = 0; ((q < p.length)); q++) {\n if (p[q].test(o)) {\n return true;\n }\n ;\n ;\n };\n ;\n return false;\n };\n;\n function n(o, p) {\n var q = g.JSBNG__stop(), r = {\n addGeoFields: 1,\n addBrowserFields: 1,\n addUser: 1\n }, s = {\n };\n l(q, JSBNG__document.getElementsByTagName(\"script\"));\n l(q, JSBNG__document.getElementsByTagName(\"div\"));\n for (var t = 0; ((t < q.length)); t++) {\n var u = q[t].replace(/\\?.*/, \"\"), v;\n if (s[u]) {\n continue;\n }\n ;\n ;\n s[u] = 1;\n if (!j.isValidURI(u)) {\n v = true;\n }\n else if (m(u, p)) {\n v = false;\n }\n else if (m(new j(u).getDomain(), o)) {\n v = false;\n }\n else v = true;\n \n \n ;\n ;\n if (v) {\n new h(\"unknown_scripts\", 0, r).addNormal(\"url\", u).flush();\n }\n ;\n ;\n };\n ;\n };\n;\n e.exports = {\n runScan: function(o, p) {\n i(function() {\n n(k(o), k(p));\n }, 5000);\n }\n };\n});\n__d(\"StringTransformations\", [], function(a, b, c, d, e, f) {\n e.exports = {\n unicodeEscape: function(g) {\n return g.replace(/[^A-Za-z0-9\\-\\.\\:\\_\\$\\/\\+\\=]/g, function(h) {\n var i = h.charCodeAt().toString(16);\n return ((\"\\\\u\" + ((\"0000\" + i.toUpperCase())).slice(-4)));\n });\n },\n unicodeUnescape: function(g) {\n return g.replace(/(\\\\u[0-9A-Fa-f]{4})/g, function(h) {\n return String.fromCharCode(parseInt(h.slice(2), 16));\n });\n }\n };\n});\n__d(\"TimeSpentLogger\", [\"Arbiter\",\"Banzai\",\"CSS\",\"ClickRefUtils\",\"DOMEventListener\",\"ScriptPath\",\"UserActivity\",\"collectDataAttributes\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"CSS\"), j = b(\"ClickRefUtils\"), k = b(\"DOMEventListener\"), l = b(\"ScriptPath\"), m = b(\"UserActivity\"), n = b(\"collectDataAttributes\"), o = b(\"copyProperties\"), p = [m.getLastInformTime(),0,], q = m.getLastInformTime(), r = {\n tos_seq: 0,\n tos_cumulative: 0,\n transport_cause: null,\n buenopath: null,\n page_token: null,\n elements: 0,\n uact_tos: null,\n client_time: null\n }, s = 100, t = 100, u = ((10 * 1000)), v = ((3 * 1000)), w = 1, x = 2, y = 4, z = 8, aa = {\n };\n m.subscribe(function(ia, ja) {\n var ka = ((p.length - 1));\n q = ja.last_inform;\n if (((ja.idleness < v))) {\n p[ka] += ja.idleness;\n r.tos_cumulative += ja.idleness;\n }\n else {\n if (((ka > s))) {\n fa(\"array_limit_reached\");\n }\n ;\n ;\n p.push(ja.idleness, 0);\n }\n ;\n ;\n });\n function ba(ia) {\n var ja = 0;\n if (JSBNG__document.getElementById(\"boulder_fixed_header\")) {\n ja = ((ja | w));\n }\n ;\n ;\n if (i.hasClass(JSBNG__document.body, \"timelineLayout\")) {\n ja = ((ja | y));\n var ka = JSBNG__document.getElementById(\"pagelet_main_column_personal\");\n if (((ka && ((ka.getAttribute(\"data-referrer\") === \"pagelet_main_column_personal_timeline\"))))) {\n ja = ((ja | x));\n }\n ;\n ;\n if (i.hasClass(JSBNG__document.body, \"pagesTimelineLayout\")) {\n ja = ((ja | z));\n }\n ;\n ;\n }\n ;\n ;\n return ja;\n };\n;\n function ca(ia) {\n var ja = ba(), ka = l.getScriptPath(), la = l.getCategoryToken();\n r.uact_tos = p;\n if (ka) {\n r.buenopath = ka.substring(0, t);\n }\n else r.buenopath = \"\";\n ;\n ;\n if (la) {\n r.page_token = la;\n }\n else r.page_token = \"\";\n ;\n ;\n r.elements = ja;\n r.transport_cause = ia;\n r.client_time = JSBNG__Date.now();\n };\n;\n function da() {\n r.tos_seq += 1;\n p = [q,0,];\n };\n;\n var ea = {\n store: true,\n delay: 3000,\n retry: true\n };\n function fa(ia) {\n ca(ia);\n if (h.isEnabled(\"time_spent\")) {\n g.inform(\"timespent/tosdataposted\", o({\n }, r));\n h.post(\"time_spent\", o({\n }, r), ea);\n }\n ;\n ;\n da();\n };\n;\n function ga() {\n fa(\"heartbeat\");\n };\n;\n function ha() {\n fa(\"before_unload\");\n };\n;\n if (((window.JSBNG__top == window.JSBNG__self))) {\n k.add(window, \"beforeunload\", ha);\n JSBNG__setInterval(function() {\n if (((((((JSBNG__Date.now() - m.getLastInformTime())) > ((u - 100)))) && ((((p.length > 2)) || ((p[((p.length - 1))] > 0))))))) {\n ga();\n }\n ;\n ;\n }, u);\n }\n;\n;\n g.subscribe(\"UserAction/new\", function(ia, ja) {\n if (j.should_report(ja.node, ja.mode)) {\n var ka = n(ja.node, [\"gt\",]), la = {\n iref: j.get_intern_ref(ja.node),\n gt_ref: ka.ref,\n nav_section: ka.nav_section\n };\n ca(\"useraction\");\n o(la, r);\n ja.ua.add_data(la);\n g.inform(\"timespent/tosdataposted\", o({\n }, r));\n da();\n }\n ;\n ;\n });\n e.exports = aa;\n});\n__d(\"UserActionHistory\", [\"Arbiter\",\"ClickRefUtils\",\"ScriptPath\",\"throttle\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ClickRefUtils\"), i = b(\"ScriptPath\"), j = b(\"throttle\"), k = {\n click: 1,\n submit: 1\n }, l = false, m = {\n log: [],\n len: 0\n }, n = j.acrossTransitions(function() {\n try {\n l._ua_log = JSON.stringify(m);\n } catch (q) {\n l = false;\n };\n ;\n }, 1000);\n function o() {\n try {\n if (a.JSBNG__sessionStorage) {\n l = a.JSBNG__sessionStorage;\n ((l._ua_log && (m = JSON.parse(l._ua_log))));\n }\n ;\n ;\n } catch (q) {\n l = false;\n };\n ;\n m.log[((m.len % 10))] = {\n ts: JSBNG__Date.now(),\n path: \"-\",\n index: m.len,\n type: \"init\",\n iref: \"-\"\n };\n m.len++;\n g.subscribe(\"UserAction/new\", function(r, s) {\n var t = s.ua, u = s.node, JSBNG__event = s.JSBNG__event;\n if (((!JSBNG__event || !((JSBNG__event.type in k))))) {\n return;\n }\n ;\n ;\n var v = {\n path: i.getScriptPath(),\n type: JSBNG__event.type,\n ts: t._ue_ts,\n iref: ((h.get_intern_ref(u) || \"-\")),\n index: m.len\n };\n m.log[((m.len++ % 10))] = v;\n ((l && n()));\n });\n };\n;\n function p() {\n return m.log.sort(function(q, r) {\n return ((((r.ts != q.ts)) ? ((r.ts - q.ts)) : ((r.index - q.index))));\n });\n };\n;\n o();\n e.exports = {\n getHistory: p\n };\n});\n__d(\"clip\", [], function(a, b, c, d, e, f) {\n function g(h, i, j) {\n return Math.min(Math.max(h, i), j);\n };\n;\n e.exports = g;\n});\n__d(\"MusicButtonStore\", [], function(a, b, c, d, e, f) {\n var g = {\n }, h = {\n addButton: function(i, j) {\n g[i] = j;\n return j;\n },\n getButton: function(i) {\n return g[i];\n },\n getButtons: function() {\n return g;\n },\n removeButton: function(i) {\n ((g[i] && g[i].resetLoadingTimers()));\n delete g[i];\n }\n };\n e.exports = h;\n});\n__d(\"MusicConstants\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n DEBUG: false,\n LIVE_LISTEN_MIN_SPOTIFY_VERSION: \"spotify-0.6.6.0.g5a9eaca5\",\n enableDebug: function() {\n this.DEBUG = true;\n },\n sameURLs: function(i, j) {\n var k = /\\/$/;\n if (((i && j))) {\n i = g(i);\n j = g(j);\n return ((((i.getDomain() == j.getDomain())) && ((i.getPath() == j.getPath()))));\n }\n ;\n ;\n return false;\n },\n greaterOrEqualToMinimumVersion: function(i, j) {\n var k = /(?:\\d+\\.)+/, l = i.match(k)[0].split(\".\").slice(0, -1), m = j.match(k)[0].split(\".\").slice(0, -1);\n if (((l.length !== m.length))) {\n return false;\n }\n ;\n ;\n for (var n = 0; ((n < m.length)); n++) {\n if (((+l[n] < +m[n]))) {\n return false;\n }\n else if (((+l[n] > +m[n]))) {\n return true;\n }\n \n ;\n ;\n };\n ;\n return true;\n },\n sanitizeForProviders: function(i) {\n var j = {\n };\n {\n var fin126keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin126i = (0);\n var k;\n for (; (fin126i < fin126keys.length); (fin126i++)) {\n ((k) = (fin126keys[fin126i]));\n {\n if (this.ALLOWED_EXTERNAL_CONTEXT_PARAMS[k]) {\n j[k] = i[k];\n }\n ;\n ;\n };\n };\n };\n ;\n return j;\n },\n OP: {\n RESUME: \"RESUME\",\n PAUSE: \"PAUSE\",\n PLAY: \"PLAY\",\n VERSION: \"VERSION\"\n },\n STATUS_CHANGE_OP: {\n STATUS: \"STATUS\",\n LOGIN: \"LOGIN\",\n REINFORM: \"REINFORM\"\n },\n STATUS_CHANGE_EVENT: {\n playing: \"PLAY_STATE_CHANGED\",\n track: \"TRACK_CHANGED\"\n },\n DIAGNOSTIC_EVENT: {\n ALL_PAUSED: \"ALL_PAUSED\",\n ALL_OFFLINE: \"ALL_OFFLINE\",\n OFFLINE: \"OFFLINE\",\n ONLINE: \"ONLINE\",\n SEARCHING: \"SEARCHING\",\n HIT: \"HIT\",\n MISS: \"MISS\",\n RESIGN: \"RESIGN\",\n IFRAME_POLLING: \"IFRAME_POLLING\",\n RELAUNCH: \"RELAUNCH\",\n STATE_CHANGE: \"STATE_CHANGE\",\n WRONG_VERSION: \"WRONG_VERSION\",\n SERVICE_ERROR: \"SERVICE_ERROR\",\n INCORRECT_ONLINE_STATE: \"INCORRECT_ONLINE_STATE\",\n LOG_SEND_OP: \"LOG_SEND_OP\",\n REQUEUE_OP: \"REQUEUE_OP\"\n },\n ALLOWED_STATUS_PARAMS: {\n playing: \"playing\",\n track: \"track\",\n context: \"context\",\n client_version: \"client_version\",\n start_time: \"start_time\",\n expires_in: \"expires_in\",\n open_graph_state: \"open_graph_state\"\n },\n ALLOWED_EXTERNAL_CONTEXT_PARAMS: {\n uri: true,\n song: true,\n radio_station: true,\n album: true,\n playlist: true,\n musician: true,\n song_list: true,\n offset: true,\n title: true,\n request_id: true,\n listen_with_friends: true,\n needs_tos: true\n },\n LIVE_LISTEN_OP: {\n NOW_LEADING: \"NOW_LEADING\",\n NOW_LISTENING: \"NOW_LISTENING\",\n END_SESSION: \"END_SESSION\",\n SONG_PLAYING: \"SONG_PLAYING\",\n LISTENER_UPDATE: \"LISTENER_UPDATE\",\n QUEUE_SESSION: \"QUEUE_SESSION\",\n PLAY_ERROR: \"PLAY_ERROR\",\n SESSION_UPDATED: \"SESSION_UPDATED\",\n QUEUING_SESSION: \"QUEUING_SESSION\"\n },\n MUSIC_BUTTON: {\n ACTIVATE: \"ACTIVATE\"\n },\n ERROR: {\n 1: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM\",\n 2: \"SERVICE_UNAVAILABLE_WITHOUT_PREMIUM_OR_WAIT\",\n 3: \"SERVICE_UNAVAILABLE_BILLING_ISSUE\",\n 4: \"SERVICE_UNAVAILABLE_TECHNICAL_ISSUE\",\n 5: \"AUDIO_AD_PLAYING\",\n 99: \"SERVICE_TEMPORARILY_UNAVAILABLE\",\n 101: \"SONG_UNAVAILABLE_WITHOUT_PURCHASE\",\n 102: \"SONG_UNAVAILABLE_WITHOUT_PREMIUM\",\n 103: \"SONG_UNAVAILABLE_INDEFINITELY\"\n }\n };\n e.exports = ((a.MusicConstants || h));\n});\n__d(\"MusicEvents\", [\"Arbiter\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\");\n e.exports = a.MusicEvents = new g();\n});\n__d(\"MusicButton\", [\"BanzaiODS\",\"Bootloader\",\"copyProperties\",\"CSS\",\"DOM\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"ScubaSample\",\"Tooltip\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"BanzaiODS\"), h = b(\"Bootloader\"), i = b(\"copyProperties\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"ScubaSample\"), q = b(\"Tooltip\"), r = b(\"cx\"), s = function(t, u, v, w, x, y) {\n this.provider = t;\n this.buttonElem = u;\n this.url = v;\n this.context = ((w || {\n }));\n this.mediaType = x;\n this.setState(this.STATES.OFFLINE);\n this.tooltip = ((y || \"\"));\n n.subscribe(m.MUSIC_BUTTON.ACTIVATE, this.processClick.bind(this));\n };\n i(s, {\n tracksetableTypes: []\n });\n i(s.prototype, {\n SHOW_LOADING_TIMEOUT: 500,\n HIDE_LOADING_TIMEOUT: 4000,\n RECENTLY_ONLINE_TIMEOUT: 6000,\n STATES: {\n PLAYING: \"music_playing\",\n PAUSED: \"music_paused\",\n LOADING: \"music_loading\",\n DISABLED: \"music_disabled\",\n OFFLINE: \"music_offline\"\n },\n setState: function(t) {\n if (((t !== this.STATES.LOADING))) {\n this.resetLoadingTimers();\n this.previousState = ((this.state || t));\n }\n ;\n ;\n if (((t === this.STATES.PLAYING))) {\n q.set(this.buttonElem, this.tooltip);\n }\n else q.set(this.buttonElem, \"\");\n ;\n ;\n var u = this.buttonElem.parentNode;\n ((this.state && j.removeClass(u, this.state)));\n this.state = t;\n j.addClass(u, this.state);\n },\n isTracksetable: function(t) {\n return ((s.tracksetableTypes.indexOf(this.mediaType) !== -1));\n },\n handleIncomingEvent: function(t, u) {\n JSBNG__clearTimeout(this._showLoadingTimer);\n if (((((u && u.provider)) && ((u.provider != this.provider))))) {\n return;\n }\n ;\n ;\n switch (t) {\n case m.DIAGNOSTIC_EVENT.ONLINE:\n \n case m.STATUS_CHANGE_EVENT.track:\n \n case m.STATUS_CHANGE_EVENT.playing:\n var v = ((((u && u.track)) && u.track.uri)), w = ((((u && u.context)) && u.context.uri));\n if (((((u && u.playing)) && ((m.sameURLs(v, this.url) || m.sameURLs(w, this.url)))))) {\n this.setState(this.STATES.PLAYING);\n }\n else if (((((this.state === this.STATES.LOADING)) && ((((this.previousState === this.STATES.PAUSED)) || ((this.previousState === this.STATES.OFFLINE))))))) {\n JSBNG__clearTimeout(this._attemptingPlayTimer);\n this._attemptingPlayTimer = this.setState.bind(this, this.STATES.PAUSED).defer(this.RECENTLY_ONLINE_TIMEOUT, false);\n }\n else if (!this._attemptingPlayTimer) {\n this.setState(this.STATES.PAUSED);\n }\n \n \n ;\n ;\n break;\n case m.DIAGNOSTIC_EVENT.OFFLINE:\n this.setState(this.STATES.OFFLINE);\n break;\n case m.DIAGNOSTIC_EVENT.ALL_OFFLINE:\n this.setState(this.STATES.OFFLINE);\n break;\n };\n ;\n },\n processClick: function(t, u) {\n if (((u != this.buttonElem))) {\n if (((this.state === this.STATES.LOADING))) {\n ((this.previousState && this.setState(this.previousState)));\n }\n ;\n ;\n return;\n }\n ;\n ;\n var v = new p(\"music_play_button_click\", null, {\n addBrowserFields: true,\n addGeoFields: true,\n addUser: true\n });\n v.addNormal(\"uses_bridge\", \"1\");\n v.addNormal(\"state\", this.state);\n v.addNormal(\"provider\", this.provider);\n v.addNormal(\"class\", \"MusicButton\");\n v.addDenorm(\"url\", this.url);\n v.flush();\n if (((this.state != this.STATES.PLAYING))) {\n g.bumpEntityKey(\"music_play_button\", \"music_play_button_click\");\n g.bumpEntityKey(\"music_play_button\", ((\"music_play_button_click.\" + this.provider)));\n var w = o.byClass(this.buttonElem, \"_4--s\");\n if (w) {\n j.addClass(w, \"_4--t\");\n j.removeClass.curry(w, \"_4--t\").defer(3000);\n }\n ;\n ;\n }\n ;\n ;\n var x = ((this.isTracksetable() && o.byClass(this.buttonElem, \"music_trackset_container\"))), y = [];\n if (x) {\n var z = x.getAttribute(\"data-trackset-title\"), aa = this.provider, ba = k.scry(x, \".music_button\");\n for (var ca = 0; ((ca < ba.length)); ca++) {\n var da = l.getButton([ba[ca].id,]);\n if (((((da && ((da.provider == aa)))) && da.isTracksetable()))) {\n y.push(da.url);\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n if (!a.Music) {\n this.showLoading(true);\n }\n ;\n ;\n h.loadModules([\"Music\",], function(ea) {\n var fa = ((((x && ((y.length > 1)))) ? ea.playPauseSongList(this.provider, this.url, y, z, this.context) : ea.playPauseSong(this.provider, this.url, this.context)));\n this.showLoading(!fa);\n }.bind(this));\n },\n showLoading: function(t) {\n this.resetLoadingTimers();\n this._hideLoadingTimer = this._timeout.bind(this, t).defer(this.HIDE_LOADING_TIMEOUT, false);\n this._showLoadingTimer = this.setState.bind(this, this.STATES.LOADING).defer(this.SHOW_LOADING_TIMEOUT, false);\n },\n resetLoadingTimers: function() {\n JSBNG__clearTimeout(this._hideLoadingTimer);\n JSBNG__clearTimeout(this._showLoadingTimer);\n JSBNG__clearTimeout(this._attemptingPlayTimer);\n this._attemptingPlayTimer = null;\n },\n destroy: function() {\n this.resetLoadingTimers();\n this.buttonElem = null;\n },\n _timeout: function(t) {\n ((a.Music && a.Music.reInform([this.provider,])));\n if (((!t && ((this.state === this.STATES.LOADING))))) {\n this.setState(this.STATES.PAUSED);\n }\n ;\n ;\n }\n });\n e.exports = s;\n});\n__d(\"MusicButtonManager\", [\"JSBNG__Event\",\"DOM\",\"KeyedCallbackManager\",\"Layer\",\"MusicButton\",\"MusicButtonStore\",\"MusicConstants\",\"MusicEvents\",\"Parent\",\"$\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"DOM\"), i = b(\"KeyedCallbackManager\"), j = b(\"Layer\"), k = b(\"MusicButton\"), l = b(\"MusicButtonStore\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"Parent\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"ge\"), s = new i(), t = null, u = {\n }, v = 0;\n function w(da) {\n var ea = da.getTarget(), fa = o.byClass(ea, \"music_button\");\n fa = ((fa || ((!((da.getModifiers && da.getModifiers().any)) && x(ea)))));\n if (!fa) {\n return;\n }\n ;\n ;\n return y(fa, da);\n };\n;\n function x(da) {\n var ea = ((o.byClass(da, \"music_button_trigger\") && o.byClass(da, \"music_button_trigger_group\")));\n if (ea) {\n var fa = h.scry(ea, \".music_button\");\n if (fa.length) {\n return fa[0];\n }\n ;\n ;\n }\n ;\n ;\n return null;\n };\n;\n function y(da, JSBNG__event) {\n ((JSBNG__event && JSBNG__event.JSBNG__stop()));\n n.inform(m.MUSIC_BUTTON.ACTIVATE, da);\n return false;\n };\n;\n function z(da) {\n ((a.Music && a.Music.reInform(da)));\n };\n;\n function aa(da, ea) {\n var fa = l.getButtons();\n {\n var fin127keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin127i = (0);\n var ga;\n for (; (fin127i < fin127keys.length); (fin127i++)) {\n ((ga) = (fin127keys[fin127i]));\n {\n if (((fa[ga].noGC || r(ga)))) {\n fa[ga].handleIncomingEvent(da, ea);\n }\n else l.removeButton(ga);\n ;\n ;\n };\n };\n };\n ;\n };\n;\n var ba = {\n init: function(da) {\n if (t) {\n return;\n }\n ;\n ;\n t = true;\n k.tracksetableTypes = ((da || []));\n g.listen(JSBNG__document.body, \"click\", w);\n n.subscribe([m.STATUS_CHANGE_EVENT.playing,m.STATUS_CHANGE_EVENT.track,m.DIAGNOSTIC_EVENT.OFFLINE,m.DIAGNOSTIC_EVENT.ALL_OFFLINE,m.DIAGNOSTIC_EVENT.ONLINE,], aa);\n },\n add: function(da, ea, fa, ga, ha, ia) {\n ((t || ba.init()));\n var ja = ea.id, ka = l.getButton(ja);\n if (ka) {\n return ka;\n }\n ;\n ;\n ka = l.addButton(ja, new k(da, ea, fa, q({\n button_id: ja\n }, ga), ha, ia));\n var la = o.byClass(ea, \"uiOverlay\");\n if (la) {\n ka.noGC = true;\n var ma = j.subscribe(\"destroy\", function(na, oa) {\n if (h.contains(oa.getRoot(), ea)) {\n l.removeButton(ja);\n j.unsubscribe(ma);\n }\n ;\n ;\n });\n }\n ;\n ;\n if (((da && !u[da]))) {\n u[da] = function() {\n var na = Object.keys(u);\n ((na.length && z(na)));\n u = {\n };\n }.defer();\n }\n ;\n ;\n return ka;\n },\n addButton: function(da, ea, fa, ga, ha, ia) {\n if (!r(ea)) {\n return;\n }\n ;\n ;\n var ja = p(ea);\n return ba.add(da, ja, fa, ga, ha, ia);\n },\n asyncAddMusicButton: function(da, ea) {\n da.setAttribute(\"id\", ((\"music_button_\" + v++)));\n ca(da, ea);\n },\n tryAddButtonInDOM: function(da, ea) {\n var fa = r(da);\n ((fa && ca(fa, ea)));\n },\n addMusicData: function(da, ea, fa, ga, ha, ia) {\n s.setResource(da, {\n provider: ea,\n uri: fa,\n context: ga,\n media_type: ha,\n tooltip: ia\n });\n }\n };\n function ca(da, ea) {\n var fa = h.JSBNG__find(da, \"a.button_anchor\").getAttribute(\"href\");\n s.executeOrEnqueue(fa, function(ga) {\n return ba.add(ga.provider, da, ga.uri, ga.context, ga.media_type, ((ea ? ga.tooltip : \"\")));\n });\n };\n;\n e.exports = ((a.MusicButtonManager || ba));\n});\n__d(\"TinyViewport\", [\"Arbiter\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"queryThenMutateDOM\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"JSBNG__Event\"), k = b(\"queryThenMutateDOM\"), l = JSBNG__document.documentElement, m, n, o = k.bind(null, function() {\n n = ((n || i.getDocumentScrollElement()));\n m = ((((l.clientHeight < 400)) || ((l.clientWidth < n.scrollWidth))));\n }, function() {\n h.conditionClass(l, \"tinyViewport\", m);\n h.conditionClass(l, \"canHaveFixedElements\", !m);\n }, \"TinyViewport\");\n o();\n g.subscribe(\"quickling/response\", o);\n j.listen(window, \"resize\", o);\n});\n__d(\"TimeSpentArray\", [\"Banzai\",\"pageID\",], function(a, b, c, d, e, f) {\n var g = b(\"Banzai\"), h = b(\"pageID\"), i = 2, j = ((i * 32)), k = 1500, l, m, n, o, p, q, r, s, t;\n function u() {\n if (l) {\n var ca = JSBNG__Date.now();\n if (((ca > p))) {\n r = Math.min(j, Math.ceil(((((ca / 1000)) - o))));\n }\n ;\n ;\n var da = z();\n if (da) {\n l(da);\n }\n ;\n ;\n }\n ;\n ;\n y();\n };\n;\n function v() {\n w();\n m = JSBNG__setTimeout(u, ((((n * 1000)) + k)), false);\n };\n;\n function w() {\n if (m) {\n JSBNG__clearTimeout(m);\n m = null;\n }\n ;\n ;\n };\n;\n function x(ca) {\n o = ca;\n p = ((o * 1000));\n q = [1,];\n for (var da = 1; ((da < i)); da++) {\n q.push(0);\n ;\n };\n ;\n r = 1;\n s += 1;\n t += 1;\n v();\n };\n;\n function y() {\n w();\n q = null;\n n = j;\n };\n;\n function z() {\n if (!q) {\n return null;\n }\n ;\n ;\n return {\n tos_id: h,\n start_time: o,\n tos_array: q.slice(0),\n tos_len: r,\n tos_seq: t,\n tos_cum: s\n };\n };\n;\n function aa(ca) {\n if (((((ca >= p)) && ((((ca - p)) < 1000))))) {\n return;\n }\n ;\n ;\n ba(Math.floor(((ca / 1000))));\n };\n;\n function ba(ca) {\n var da = ((ca - o));\n if (((((da < 0)) || ((da >= j))))) {\n u();\n }\n ;\n ;\n if (!q) {\n x(ca);\n }\n else {\n q[((da >> 5))] |= ((1 << ((da & 31))));\n r = ((da + 1));\n s += 1;\n p = ((ca * 1000));\n }\n ;\n ;\n };\n;\n e.exports = {\n init: function(ca, da) {\n s = 0;\n t = -1;\n l = ca;\n n = ((da || j));\n x(Math.floor(((JSBNG__Date.now() / 1000))));\n g.subscribe(g.SHUTDOWN, u);\n },\n update: function(ca) {\n aa(ca);\n },\n get: function() {\n return z();\n },\n ship: function() {\n u();\n },\n reset: function() {\n y();\n }\n };\n});\n__d(\"WebStorageMonster\", [\"JSBNG__Event\",\"AsyncRequest\",\"UserActivity\",\"StringTransformations\",\"arrayContains\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"UserActivity\"), j = b(\"StringTransformations\"), k = b(\"arrayContains\"), l = b(\"setTimeoutAcrossTransitions\"), m = 300000, n = false;\n function o(t) {\n var u = {\n };\n {\n var fin128keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin128i = (0);\n var v;\n for (; (fin128i < fin128keys.length); (fin128i++)) {\n ((v) = (fin128keys[fin128i]));\n {\n var w = t.getItem(v), x = j.unicodeEscape(v);\n if (((typeof w === \"string\"))) {\n u[x] = w.length;\n }\n ;\n ;\n };\n };\n };\n ;\n return u;\n };\n;\n function p(t) {\n if (((a.JSBNG__localStorage && t.keys))) {\n s._getLocalStorageKeys().forEach(function(u) {\n if (k(t.keys, u)) {\n a.JSBNG__localStorage.removeItem(u);\n }\n ;\n ;\n });\n }\n ;\n ;\n };\n;\n function q(t) {\n if (a.JSBNG__localStorage) {\n s._getLocalStorageKeys().forEach(function(u) {\n if (!t.some(function(v) {\n return new RegExp(v).test(u);\n })) {\n a.JSBNG__localStorage.removeItem(u);\n }\n ;\n ;\n });\n }\n ;\n ;\n if (a.JSBNG__sessionStorage) {\n a.JSBNG__sessionStorage.clear();\n }\n ;\n ;\n };\n;\n function r(t) {\n if (i.isActive(m)) {\n l(r.curry(t), m);\n }\n else s.cleanNow(t);\n ;\n ;\n };\n;\n var s = {\n registerLogoutForm: function(t, u) {\n g.listen(t, \"submit\", function(v) {\n s.cleanOnLogout(u);\n });\n },\n schedule: function(t) {\n if (n) {\n return;\n }\n ;\n ;\n n = true;\n r(t);\n },\n cleanNow: function(t) {\n var u = JSBNG__Date.now(), v = {\n }, w = false;\n [\"JSBNG__localStorage\",\"JSBNG__sessionStorage\",].forEach(function(y) {\n if (a[y]) {\n v[y] = o(a[y]);\n w = true;\n }\n ;\n ;\n });\n var x = JSBNG__Date.now();\n v.logtime = ((x - u));\n if (w) {\n new h(\"/ajax/webstorage/process_keys.php\").setData(v).setHandler(function(y) {\n if (!t) {\n var z = y.getPayload();\n if (z.keys) {\n z.keys = z.keys.map(j.unicodeUnescape);\n }\n ;\n ;\n p(z);\n }\n ;\n ;\n }.bind(this)).send();\n }\n ;\n ;\n },\n cleanOnLogout: function(t) {\n if (t) {\n q(t);\n }\n ;\n ;\n if (a.JSBNG__sessionStorage) {\n a.JSBNG__sessionStorage.clear();\n }\n ;\n ;\n },\n _getLocalStorageKeys: Object.keys.curry(a.JSBNG__localStorage)\n };\n e.exports = s;\n});");
// 2067
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o41,false,"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ye/r/v9y92rsUvEH.js",o42);
// 2169
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o41,false,"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ye/r/v9y92rsUvEH.js",o42);
// 2263
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"1XxM1\",]);\n}\n;\n;\n__d(\"UnityObject\", [], function(a, b, c, d, e, f) {\n var g = function() {\n var h = \"Unity Player\", i = \"application/vnd.unity\", j = window, k = JSBNG__document, l = JSBNG__navigator, m = \"https://ssl-webplayer.unity3d.com/download_webplayer-3.x/\", n = \"_unity_triedjava\", o = \"undefined\", p = \"installed\", q = \"missing\", r = \"broken\", s = \"unsupported\", t = \"standard\", u = \"java\", v = \"clickonce\", w = function() {\n var fa = l.userAgent, ga = l.platform, ha = {\n w3: ((((((typeof k.getElementById != o)) && ((typeof k.getElementsByTagName != o)))) && ((typeof k.createElement != o)))),\n win: ((ga ? /win/i.test(ga) : /win/i.test(fa))),\n mac: ((ga ? /mac/i.test(ga) : /mac/i.test(fa))),\n ie: ((/msie/i.test(fa) ? parseFloat(fa.replace(/^.*msie ([0-9]+(\\.[0-9]+)?).*$/i, \"$1\")) : false)),\n ff: /firefox/i.test(fa),\n ch: /chrome/i.test(fa),\n sf: /safari/i.test(fa),\n wk: ((/webkit/i.test(fa) ? parseFloat(fa.replace(/^.*webkit\\/(\\d+(\\.\\d+)?).*$/i, \"$1\")) : false)),\n x64: ((/win64/i.test(fa) && /x64/i.test(fa))),\n moz: ((/mozilla/i.test(fa) ? parseFloat(fa.replace(/^.*mozilla\\/([0-9]+(\\.[0-9]+)?).*$/i, \"$1\")) : 0))\n }, ia = k.getElementsByTagName(\"script\");\n for (var ja = 0; ((ja < ia.length)); ++ja) {\n var ka = ia[ja].src.match(/^(.*)3\\.0\\/uo\\/UnityObject\\.js$/i);\n if (ka) {\n m = ka[1];\n break;\n }\n ;\n ;\n };\n ;\n function la(oa, pa) {\n for (var qa = 0; ((qa < Math.max(oa.length, pa.length))); ++qa) {\n var ra = ((((((qa < oa.length)) && oa[qa])) ? Number(oa[qa]) : 0)), sa = ((((((qa < pa.length)) && pa[qa])) ? Number(pa[qa]) : 0));\n if (((ra < sa))) {\n return -1;\n }\n ;\n ;\n if (((ra > sa))) {\n return 1;\n }\n ;\n ;\n };\n ;\n return 0;\n };\n ;\n function ma(oa) {\n try {\n return ((new ActiveXObject(((((\"JavaWebStart.isInstalled.\" + oa)) + \".0\"))) != null));\n } catch (pa) {\n return false;\n };\n ;\n };\n ;\n function na(oa) {\n try {\n return ((new ActiveXObject(((\"JavaPlugin.160_\" + oa))) != null));\n } catch (pa) {\n return false;\n };\n ;\n };\n ;\n ha.java = function() {\n if (l.javaEnabled()) {\n var oa = ((ha.win && ha.ff)), pa = false;\n if (((oa || pa))) {\n if (((typeof l.mimeTypes != o))) {\n var qa = ((oa ? [1,6,0,12,] : [1,4,2,0,]));\n for (var ra = 0; ((ra < l.mimeTypes.length)); ++ra) {\n if (l.mimeTypes[ra].enabledPlugin) {\n var sa = l.mimeTypes[ra].type.match(/^application\\/x-java-applet;(?:jpi-)?version=(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$/);\n if (((sa != null))) {\n if (((la(qa, sa.slice(1)) <= 0))) {\n return true;\n }\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n }\n else if (((ha.win && ha.ie))) {\n if (((typeof ActiveXObject != o))) {\n if (ma(\"1.7.0\")) {\n return true;\n }\n ;\n ;\n if (((ha.ie >= 8))) {\n if (ma(\"1.6.0\")) {\n for (ra = 12; ((ra <= 50)); ++ra) {\n if (na(ra)) {\n if (((((((ha.ie == 9)) && ((ha.moz == 5)))) && ((ra < 24))))) {\n continue;\n }\n else return true\n ;\n }\n ;\n ;\n };\n ;\n return false;\n }\n ;\n ;\n }\n else return ((((ma(\"1.6.0\") || ma(\"1.5.0\"))) || ma(\"1.4.2\")))\n ;\n }\n ;\n }\n \n ;\n ;\n }\n ;\n ;\n return false;\n }();\n ha.co = function() {\n if (((ha.win && ha.ie))) {\n var oa = fa.match(/(\\.NET CLR [0-9.]+)|(\\.NET[0-9.]+)/g);\n if (((oa != null))) {\n var pa = [3,5,0,];\n for (var qa = 0; ((qa < oa.length)); ++qa) {\n var ra = oa[qa].match(/[0-9.]{2,}/g)[0].split(\".\");\n if (((la(pa, ra) <= 0))) {\n return true;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n }\n ;\n ;\n return false;\n }();\n return ha;\n }();\n function x(fa) {\n var ga = new RegExp(((escape(fa) + \"=([^;]+)\")));\n if (ga.test(((k.cookie + \";\")))) {\n ga.exec(((k.cookie + \";\")));\n return RegExp.$1;\n }\n ;\n ;\n return false;\n };\n ;\n function y(fa, ga) {\n JSBNG__document.cookie = ((((((escape(fa) + \"=\")) + escape(ga))) + \"; path=/\"));\n };\n ;\n function z(fa) {\n var ga = 0;\n if (fa) {\n var ha = fa.toLowerCase().match(/^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)([dabfr])?(\\d+)?)?)?$/);\n if (((ha && ha[1]))) {\n var ia = ha[1], ja = ((ha[2] ? ha[2] : 0)), ka = ((ha[3] ? ha[3] : 0)), la = ((ha[4] ? ha[4] : \"r\")), ma = ((ha[5] ? ha[5] : 0));\n ga |= ((((((ia / 10)) % 10)) << 28));\n ga |= ((((ia % 10)) << 24));\n ga |= ((((ja % 10)) << 20));\n ga |= ((((ka % 10)) << 16));\n ga |= {\n d: ((2 << 12)),\n a: ((4 << 12)),\n b: ((6 << 12)),\n f: ((8 << 12)),\n r: ((8 << 12))\n }[la];\n ga |= ((((((ma / 100)) % 10)) << 8));\n ga |= ((((((ma / 10)) % 10)) << 4));\n ga |= ((ma % 10));\n }\n ;\n ;\n }\n ;\n ;\n return ga;\n };\n ;\n function aa(fa) {\n var ga = null, ha = k.getElementsByTagName(\"body\")[0], ia = k.createElement(\"object\");\n if (((ha && ia))) {\n ia.setAttribute(\"type\", i);\n ia.style.visibility = \"hidden\";\n ha.appendChild(ia);\n var ja = 0;\n (function() {\n if (((typeof ia.GetPluginVersion == o))) {\n if (((ja++ < 10))) {\n JSBNG__setTimeout(arguments.callee, 10);\n }\n ;\n ;\n }\n else {\n ga = {\n };\n ga.plugin = ia.GetPluginVersion();\n ga.unity = ia.GetUnityVersion(\"\");\n }\n ;\n ;\n })();\n ha.removeChild(ia);\n }\n ;\n ;\n fa(ga);\n };\n ;\n function ba(fa) {\n var ga = q, ha = null;\n l.plugins.refresh();\n if (((((((((((typeof l.plugins != o)) && l.plugins[h])) && ((typeof l.mimeTypes != o)))) && l.mimeTypes[i])) && l.mimeTypes[i].enabledPlugin))) {\n ga = p;\n aa(function(ma) {\n if (((!ma || !ma.plugin))) {\n ga = r;\n }\n else if (((((w.mac && w.ch)) && ((z(ma.plugin) <= z(\"2.6.1f3\")))))) {\n ga = r;\n }\n else ha = ma.plugin;\n \n ;\n ;\n fa(ga, ha);\n });\n return;\n }\n else if (((typeof j.ActiveXObject != o))) {\n try {\n var ja = new ActiveXObject(\"UnityWebPlayer.UnityWebPlayer.1\");\n ha = ja.GetPluginVersion();\n ga = p;\n if (((ha == \"2.5.0f5\"))) {\n var ka = /Windows NT \\d+\\.\\d+/.exec(l.userAgent);\n if (((ka && ((ka.length > 0))))) {\n var la = parseFloat(ka[0].split(\" \")[2]);\n if (((la >= 6))) {\n ga = r;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n } catch (ia) {\n if (((((w.win && w.ie)) && w.x64))) {\n ga = s;\n }\n ;\n ;\n };\n }\n \n ;\n ;\n fa(ga, ha);\n };\n ;\n function ca(fa) {\n var ga = t, ha = \"\";\n if (((w.java && !x(n)))) {\n ha = \"\";\n ga = u;\n }\n else if (w.co) {\n ha = ((((m + \"3.0/co/UnityWebPlayer.application?installer=\")) + encodeURIComponent(((m + \"UnityWebPlayer.exe\")))));\n ga = v;\n }\n else if (w.win) {\n ha = ((m + \"UnityWebPlayer.exe\"));\n }\n else if (((l.platform == \"MacIntel\"))) {\n ha = ((m + \"webplayer-mini.dmg\"));\n }\n else if (((l.platform == \"MacPPC\"))) {\n ha = ((m + \"webplayer-mini.dmg\"));\n }\n else {\n ha = \"javascript:window.open(\\\"http://unity3d.com/webplayer/\\\");\";\n ga = s;\n }\n \n \n \n \n ;\n ;\n fa(ha, ga);\n };\n ;\n function da() {\n y(n, true);\n var fa = {\n type: \"application/x-java-applet\",\n archive: ((m + \"3.0/jws/UnityWebPlayer.jar\")),\n code: \"UnityWebPlayer\",\n JSBNG__name: \"Unity Web Player\",\n width: 1,\n height: 1\n }, ga = k.createElement(\"div\"), ha = k.body.lastChild;\n k.body.insertBefore(ga, ha.nextSibling);\n var ia = {\n jnlp_href: ((m + \"3.0/jws/UnityWebPlayer.jnlp\")),\n classloader_cache: false,\n installer: ea(),\n image: \"http://webplayer.unity3d.com/installation/unitylogo.png\",\n centerimage: true,\n boxborder: false,\n scriptable: true,\n mayscript: true\n };\n if (((w.win && w.ie))) {\n var ja = \"\";\n {\n var fin129keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin129i = (0);\n var ka;\n for (; (fin129i < fin129keys.length); (fin129i++)) {\n ((ka) = (fin129keys[fin129i]));\n {\n ja += ((((((((\" \" + ka)) + \"=\\\"\")) + fa[ka])) + \"\\\"\"));\n ;\n };\n };\n };\n ;\n var la = \"\";\n {\n var fin130keys = ((window.top.JSBNG_Replay.forInKeys)((ia))), fin130i = (0);\n var ma;\n for (; (fin130i < fin130keys.length); (fin130i++)) {\n ((ma) = (fin130keys[fin130i]));\n {\n la += ((((((((\"\\u003Cparam name=\\\"\" + ma)) + \"\\\" value=\\\"\")) + ia[ma])) + \"\\\" /\\u003E\"));\n ;\n };\n };\n };\n ;\n ga.outerHTML = ((((((((\"\\u003Cobject\" + ja)) + \"\\u003E\")) + la)) + \"\\u003C/object\\u003E\"));\n }\n else {\n var na = k.createElement(\"object\");\n {\n var fin131keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin131i = (0);\n (0);\n for (; (fin131i < fin131keys.length); (fin131i++)) {\n ((ka) = (fin131keys[fin131i]));\n {\n na.setAttribute(ka, fa[ka]);\n ;\n };\n };\n };\n ;\n {\n var fin132keys = ((window.top.JSBNG_Replay.forInKeys)((ia))), fin132i = (0);\n (0);\n for (; (fin132i < fin132keys.length); (fin132i++)) {\n ((ma) = (fin132keys[fin132i]));\n {\n var oa = k.createElement(\"param\");\n oa.JSBNG__name = ma;\n oa.value = ia[ma];\n na.appendChild(oa);\n };\n };\n };\n ;\n ga.parentNode.replaceChild(na, ga);\n }\n ;\n ;\n };\n ;\n function ea() {\n return ((m + ((w.win ? \"UnityWebPlayer.exe\" : \"UnityPlayer.plugin.zip\"))));\n };\n ;\n return {\n kInstalled: p,\n kMissing: q,\n triedJavaCookie: n,\n detectUnity: function(fa) {\n if (((((w.w3 && !((w.wk && ((w.wk < 312)))))) && fa))) {\n ba(fa);\n }\n else if (fa) {\n fa(q);\n }\n \n ;\n ;\n },\n genInstallUnity: function(fa) {\n ca(fa);\n },\n doJavaInstall: function() {\n da();\n }\n };\n }();\n e.exports.kInstalled = g.kInstalled;\n e.exports.kMissing = g.kMissing;\n e.exports.triedJavaCookie = g.triedJavaCookie;\n e.exports.detectUnity = function(h) {\n g.detectUnity(function(i, j) {\n h(i, j);\n });\n };\n e.exports.genInstallUnity = function(h) {\n g.genInstallUnity(function(i, j) {\n h(i, j);\n });\n };\n e.exports.doJavaInstall = function() {\n g.doJavaInstall();\n };\n e.exports.callbackWhenUnityDetected = function(h) {\n var i = function() {\n g.detectUnity(function(j, k) {\n if (((j == g.kInstalled))) {\n h(j, k);\n }\n else JSBNG__setTimeout(i, 3000);\n ;\n ;\n });\n };\n i();\n };\n});\n__d(\"UnityLogging\", [\"AsyncRequest\",\"UnityObject\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"UnityObject\"), i = function(j, k) {\n var l = {\n JSBNG__status: j,\n version: k\n };\n new g().setURI(\"/ajax/platform/unity/logging\").setData(l).send();\n };\n e.exports.logUnityVersion = function() {\n h.detectUnity(i);\n };\n e.exports.logUntilInstalled = function() {\n h.detectUnity(function(j, k) {\n i(j, k);\n if (((j != h.kInstalled))) {\n h.callbackWhenUnityDetected(i);\n }\n ;\n ;\n });\n };\n});");
// 2272
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_190[0](o41,false,"http://jsbngssl.static.xx.fbcdn.net/rsrc.php/v2/ye/r/v9y92rsUvEH.js",o42);
// undefined
o41 = null;
// undefined
o42 = null;
// 2366
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"1XxM1\",]);\n}\n;\n;\n__d(\"UnityObject\", [], function(a, b, c, d, e, f) {\n var g = function() {\n var h = \"Unity Player\", i = \"application/vnd.unity\", j = window, k = JSBNG__document, l = JSBNG__navigator, m = \"https://ssl-webplayer.unity3d.com/download_webplayer-3.x/\", n = \"_unity_triedjava\", o = \"undefined\", p = \"installed\", q = \"missing\", r = \"broken\", s = \"unsupported\", t = \"standard\", u = \"java\", v = \"clickonce\", w = function() {\n var fa = l.userAgent, ga = l.platform, ha = {\n w3: ((((((typeof k.getElementById != o)) && ((typeof k.getElementsByTagName != o)))) && ((typeof k.createElement != o)))),\n win: ((ga ? /win/i.test(ga) : /win/i.test(fa))),\n mac: ((ga ? /mac/i.test(ga) : /mac/i.test(fa))),\n ie: ((/msie/i.test(fa) ? parseFloat(fa.replace(/^.*msie ([0-9]+(\\.[0-9]+)?).*$/i, \"$1\")) : false)),\n ff: /firefox/i.test(fa),\n ch: /chrome/i.test(fa),\n sf: /safari/i.test(fa),\n wk: ((/webkit/i.test(fa) ? parseFloat(fa.replace(/^.*webkit\\/(\\d+(\\.\\d+)?).*$/i, \"$1\")) : false)),\n x64: ((/win64/i.test(fa) && /x64/i.test(fa))),\n moz: ((/mozilla/i.test(fa) ? parseFloat(fa.replace(/^.*mozilla\\/([0-9]+(\\.[0-9]+)?).*$/i, \"$1\")) : 0))\n }, ia = k.getElementsByTagName(\"script\");\n for (var ja = 0; ((ja < ia.length)); ++ja) {\n var ka = ia[ja].src.match(/^(.*)3\\.0\\/uo\\/UnityObject\\.js$/i);\n if (ka) {\n m = ka[1];\n break;\n }\n ;\n ;\n };\n ;\n function la(oa, pa) {\n for (var qa = 0; ((qa < Math.max(oa.length, pa.length))); ++qa) {\n var ra = ((((((qa < oa.length)) && oa[qa])) ? Number(oa[qa]) : 0)), sa = ((((((qa < pa.length)) && pa[qa])) ? Number(pa[qa]) : 0));\n if (((ra < sa))) {\n return -1;\n }\n ;\n ;\n if (((ra > sa))) {\n return 1;\n }\n ;\n ;\n };\n ;\n return 0;\n };\n ;\n function ma(oa) {\n try {\n return ((new ActiveXObject(((((\"JavaWebStart.isInstalled.\" + oa)) + \".0\"))) != null));\n } catch (pa) {\n return false;\n };\n ;\n };\n ;\n function na(oa) {\n try {\n return ((new ActiveXObject(((\"JavaPlugin.160_\" + oa))) != null));\n } catch (pa) {\n return false;\n };\n ;\n };\n ;\n ha.java = function() {\n if (l.javaEnabled()) {\n var oa = ((ha.win && ha.ff)), pa = false;\n if (((oa || pa))) {\n if (((typeof l.mimeTypes != o))) {\n var qa = ((oa ? [1,6,0,12,] : [1,4,2,0,]));\n for (var ra = 0; ((ra < l.mimeTypes.length)); ++ra) {\n if (l.mimeTypes[ra].enabledPlugin) {\n var sa = l.mimeTypes[ra].type.match(/^application\\/x-java-applet;(?:jpi-)?version=(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$/);\n if (((sa != null))) {\n if (((la(qa, sa.slice(1)) <= 0))) {\n return true;\n }\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n }\n else if (((ha.win && ha.ie))) {\n if (((typeof ActiveXObject != o))) {\n if (ma(\"1.7.0\")) {\n return true;\n }\n ;\n ;\n if (((ha.ie >= 8))) {\n if (ma(\"1.6.0\")) {\n for (ra = 12; ((ra <= 50)); ++ra) {\n if (na(ra)) {\n if (((((((ha.ie == 9)) && ((ha.moz == 5)))) && ((ra < 24))))) {\n continue;\n }\n else return true\n ;\n }\n ;\n ;\n };\n ;\n return false;\n }\n ;\n ;\n }\n else return ((((ma(\"1.6.0\") || ma(\"1.5.0\"))) || ma(\"1.4.2\")))\n ;\n }\n ;\n }\n \n ;\n ;\n }\n ;\n ;\n return false;\n }();\n ha.co = function() {\n if (((ha.win && ha.ie))) {\n var oa = fa.match(/(\\.NET CLR [0-9.]+)|(\\.NET[0-9.]+)/g);\n if (((oa != null))) {\n var pa = [3,5,0,];\n for (var qa = 0; ((qa < oa.length)); ++qa) {\n var ra = oa[qa].match(/[0-9.]{2,}/g)[0].split(\".\");\n if (((la(pa, ra) <= 0))) {\n return true;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n }\n ;\n ;\n return false;\n }();\n return ha;\n }();\n function x(fa) {\n var ga = new RegExp(((escape(fa) + \"=([^;]+)\")));\n if (ga.test(((k.cookie + \";\")))) {\n ga.exec(((k.cookie + \";\")));\n return RegExp.$1;\n }\n ;\n ;\n return false;\n };\n ;\n function y(fa, ga) {\n JSBNG__document.cookie = ((((((escape(fa) + \"=\")) + escape(ga))) + \"; path=/\"));\n };\n ;\n function z(fa) {\n var ga = 0;\n if (fa) {\n var ha = fa.toLowerCase().match(/^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)([dabfr])?(\\d+)?)?)?$/);\n if (((ha && ha[1]))) {\n var ia = ha[1], ja = ((ha[2] ? ha[2] : 0)), ka = ((ha[3] ? ha[3] : 0)), la = ((ha[4] ? ha[4] : \"r\")), ma = ((ha[5] ? ha[5] : 0));\n ga |= ((((((ia / 10)) % 10)) << 28));\n ga |= ((((ia % 10)) << 24));\n ga |= ((((ja % 10)) << 20));\n ga |= ((((ka % 10)) << 16));\n ga |= {\n d: ((2 << 12)),\n a: ((4 << 12)),\n b: ((6 << 12)),\n f: ((8 << 12)),\n r: ((8 << 12))\n }[la];\n ga |= ((((((ma / 100)) % 10)) << 8));\n ga |= ((((((ma / 10)) % 10)) << 4));\n ga |= ((ma % 10));\n }\n ;\n ;\n }\n ;\n ;\n return ga;\n };\n ;\n function aa(fa) {\n var ga = null, ha = k.getElementsByTagName(\"body\")[0], ia = k.createElement(\"object\");\n if (((ha && ia))) {\n ia.setAttribute(\"type\", i);\n ia.style.visibility = \"hidden\";\n ha.appendChild(ia);\n var ja = 0;\n (function() {\n if (((typeof ia.GetPluginVersion == o))) {\n if (((ja++ < 10))) {\n JSBNG__setTimeout(arguments.callee, 10);\n }\n ;\n ;\n }\n else {\n ga = {\n };\n ga.plugin = ia.GetPluginVersion();\n ga.unity = ia.GetUnityVersion(\"\");\n }\n ;\n ;\n })();\n ha.removeChild(ia);\n }\n ;\n ;\n fa(ga);\n };\n ;\n function ba(fa) {\n var ga = q, ha = null;\n l.plugins.refresh();\n if (((((((((((typeof l.plugins != o)) && l.plugins[h])) && ((typeof l.mimeTypes != o)))) && l.mimeTypes[i])) && l.mimeTypes[i].enabledPlugin))) {\n ga = p;\n aa(function(ma) {\n if (((!ma || !ma.plugin))) {\n ga = r;\n }\n else if (((((w.mac && w.ch)) && ((z(ma.plugin) <= z(\"2.6.1f3\")))))) {\n ga = r;\n }\n else ha = ma.plugin;\n \n ;\n ;\n fa(ga, ha);\n });\n return;\n }\n else if (((typeof j.ActiveXObject != o))) {\n try {\n var ja = new ActiveXObject(\"UnityWebPlayer.UnityWebPlayer.1\");\n ha = ja.GetPluginVersion();\n ga = p;\n if (((ha == \"2.5.0f5\"))) {\n var ka = /Windows NT \\d+\\.\\d+/.exec(l.userAgent);\n if (((ka && ((ka.length > 0))))) {\n var la = parseFloat(ka[0].split(\" \")[2]);\n if (((la >= 6))) {\n ga = r;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n } catch (ia) {\n if (((((w.win && w.ie)) && w.x64))) {\n ga = s;\n }\n ;\n ;\n };\n }\n \n ;\n ;\n fa(ga, ha);\n };\n ;\n function ca(fa) {\n var ga = t, ha = \"\";\n if (((w.java && !x(n)))) {\n ha = \"\";\n ga = u;\n }\n else if (w.co) {\n ha = ((((m + \"3.0/co/UnityWebPlayer.application?installer=\")) + encodeURIComponent(((m + \"UnityWebPlayer.exe\")))));\n ga = v;\n }\n else if (w.win) {\n ha = ((m + \"UnityWebPlayer.exe\"));\n }\n else if (((l.platform == \"MacIntel\"))) {\n ha = ((m + \"webplayer-mini.dmg\"));\n }\n else if (((l.platform == \"MacPPC\"))) {\n ha = ((m + \"webplayer-mini.dmg\"));\n }\n else {\n ha = \"javascript:window.open(\\\"http://unity3d.com/webplayer/\\\");\";\n ga = s;\n }\n \n \n \n \n ;\n ;\n fa(ha, ga);\n };\n ;\n function da() {\n y(n, true);\n var fa = {\n type: \"application/x-java-applet\",\n archive: ((m + \"3.0/jws/UnityWebPlayer.jar\")),\n code: \"UnityWebPlayer\",\n JSBNG__name: \"Unity Web Player\",\n width: 1,\n height: 1\n }, ga = k.createElement(\"div\"), ha = k.body.lastChild;\n k.body.insertBefore(ga, ha.nextSibling);\n var ia = {\n jnlp_href: ((m + \"3.0/jws/UnityWebPlayer.jnlp\")),\n classloader_cache: false,\n installer: ea(),\n image: \"http://webplayer.unity3d.com/installation/unitylogo.png\",\n centerimage: true,\n boxborder: false,\n scriptable: true,\n mayscript: true\n };\n if (((w.win && w.ie))) {\n var ja = \"\";\n {\n var fin133keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin133i = (0);\n var ka;\n for (; (fin133i < fin133keys.length); (fin133i++)) {\n ((ka) = (fin133keys[fin133i]));\n {\n ja += ((((((((\" \" + ka)) + \"=\\\"\")) + fa[ka])) + \"\\\"\"));\n ;\n };\n };\n };\n ;\n var la = \"\";\n {\n var fin134keys = ((window.top.JSBNG_Replay.forInKeys)((ia))), fin134i = (0);\n var ma;\n for (; (fin134i < fin134keys.length); (fin134i++)) {\n ((ma) = (fin134keys[fin134i]));\n {\n la += ((((((((\"\\u003Cparam name=\\\"\" + ma)) + \"\\\" value=\\\"\")) + ia[ma])) + \"\\\" /\\u003E\"));\n ;\n };\n };\n };\n ;\n ga.outerHTML = ((((((((\"\\u003Cobject\" + ja)) + \"\\u003E\")) + la)) + \"\\u003C/object\\u003E\"));\n }\n else {\n var na = k.createElement(\"object\");\n {\n var fin135keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin135i = (0);\n (0);\n for (; (fin135i < fin135keys.length); (fin135i++)) {\n ((ka) = (fin135keys[fin135i]));\n {\n na.setAttribute(ka, fa[ka]);\n ;\n };\n };\n };\n ;\n {\n var fin136keys = ((window.top.JSBNG_Replay.forInKeys)((ia))), fin136i = (0);\n (0);\n for (; (fin136i < fin136keys.length); (fin136i++)) {\n ((ma) = (fin136keys[fin136i]));\n {\n var oa = k.createElement(\"param\");\n oa.JSBNG__name = ma;\n oa.value = ia[ma];\n na.appendChild(oa);\n };\n };\n };\n ;\n ga.parentNode.replaceChild(na, ga);\n }\n ;\n ;\n };\n ;\n function ea() {\n return ((m + ((w.win ? \"UnityWebPlayer.exe\" : \"UnityPlayer.plugin.zip\"))));\n };\n ;\n return {\n kInstalled: p,\n kMissing: q,\n triedJavaCookie: n,\n detectUnity: function(fa) {\n if (((((w.w3 && !((w.wk && ((w.wk < 312)))))) && fa))) {\n ba(fa);\n }\n else if (fa) {\n fa(q);\n }\n \n ;\n ;\n },\n genInstallUnity: function(fa) {\n ca(fa);\n },\n doJavaInstall: function() {\n da();\n }\n };\n }();\n e.exports.kInstalled = g.kInstalled;\n e.exports.kMissing = g.kMissing;\n e.exports.triedJavaCookie = g.triedJavaCookie;\n e.exports.detectUnity = function(h) {\n g.detectUnity(function(i, j) {\n h(i, j);\n });\n };\n e.exports.genInstallUnity = function(h) {\n g.genInstallUnity(function(i, j) {\n h(i, j);\n });\n };\n e.exports.doJavaInstall = function() {\n g.doJavaInstall();\n };\n e.exports.callbackWhenUnityDetected = function(h) {\n var i = function() {\n g.detectUnity(function(j, k) {\n if (((j == g.kInstalled))) {\n h(j, k);\n }\n else JSBNG__setTimeout(i, 3000);\n ;\n ;\n });\n };\n i();\n };\n});\n__d(\"UnityLogging\", [\"AsyncRequest\",\"UnityObject\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"UnityObject\"), i = function(j, k) {\n var l = {\n JSBNG__status: j,\n version: k\n };\n new g().setURI(\"/ajax/platform/unity/logging\").setData(l).send();\n };\n e.exports.logUnityVersion = function() {\n h.detectUnity(i);\n };\n e.exports.logUntilInstalled = function() {\n h.detectUnity(function(j, k) {\n i(j, k);\n if (((j != h.kInstalled))) {\n h.callbackWhenUnityDetected(i);\n }\n ;\n ;\n });\n };\n});");
// 2367
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"C6rJk\",]);\n}\n;\n;\n__d(\"NotifXList\", [], function(a, b, c, d, e, f) {\n var g = {\n }, h = null;\n function i(p) {\n if (!p) {\n throw new Error(\"You have to init NotifXList with a non-null owner\");\n }\n ;\n ;\n h = p;\n };\n;\n function j(p) {\n g[p] = null;\n };\n;\n function k(p, q) {\n if (!q) {\n throw new Error(\"You have to add a non-null data to xList\");\n }\n ;\n ;\n g[p] = q;\n };\n;\n function l(p) {\n var q = ((undefined !== g[p.notif_id])), r = ((p.notif_alt_id && ((undefined !== g[p.notif_alt_id]))));\n if (((q || r))) {\n k(((q ? p.notif_id : p.notif_alt_id)), p);\n return true;\n }\n ;\n ;\n return false;\n };\n;\n function m(p) {\n return ((null != g[p]));\n };\n;\n function n(p) {\n if (m(p)) {\n var q = g[p];\n o(p);\n h.alertList.insert(q.notif_id, q.notif_time, q.notif_markup, q.replace, q.ignoreUnread, q.notif_alt_id);\n }\n ;\n ;\n };\n;\n function o(p) {\n delete g[p];\n };\n;\n e.exports = {\n init: i,\n userXClick: j,\n filterStoreClicked: l,\n newNotifExist: m,\n resumeInsert: n,\n removeNotif: o\n };\n});");
// 2491
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"5dFET\",]);\n}\n;\n;\n__d(\"TickerReadStateTracking\", [\"Style\",\"clickRefAction\",], function(a, b, c, d, e, f) {\n var g = b(\"Style\"), h = b(\"clickRefAction\"), i = 73, j = \"ticker_hover\", k = [];\n function l(n) {\n var o = JSON.parse(n.getAttribute(\"data-ft\"));\n if (!o) {\n return null;\n }\n ;\n ;\n if (o.mf_story_key) {\n return o.mf_story_key;\n }\n ;\n ;\n if (o.fbid) {\n return o.fbid;\n }\n ;\n ;\n return null;\n };\n;\n function m(n) {\n var o = l(n);\n if (((!o || ((o in k))))) {\n return;\n }\n ;\n ;\n k[o] = true;\n var p = {\n evt: i\n };\n h(j, n, null, \"FORCE\", {\n ft: p\n });\n };\n;\n e.exports.log = m;\n});\n__d(\"TickerRightHideController\", [\"CSS\",\"DOM\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"ge\");\n function j() {\n \n };\n;\n j._markAsClosedHelper = function(k) {\n var l = i(\"pagelet_reminders\");\n if (l) {\n var m = h.scry(l, \"div.tickerToggleWrapper\")[0];\n if (m) {\n g.conditionClass(m, \"displayedTickerToggleWrapper\", k);\n }\n ;\n ;\n }\n ;\n ;\n var n = i(\"pagelet_moments\");\n if (n) {\n var o = h.scry(n, \"div.tickerToggleWrapper\")[0];\n if (o) {\n g.conditionClass(o, \"displayedTickerToggleWrapper\", k);\n }\n ;\n ;\n }\n ;\n ;\n var p = i(\"pagelet_rhc_ticker\");\n if (p) {\n var q = h.scry(p, \"div.tickerToggleWrapper\")[0];\n if (q) {\n g.conditionClass(q, \"displayedTickerToggleWrapper\", !k);\n }\n ;\n ;\n g.conditionClass(p, \"hidden_rhc_ticker\", k);\n }\n ;\n ;\n };\n j.markAsClosed = function() {\n j._markAsClosedHelper(true);\n };\n j.markAsUnclosed = function() {\n j._markAsClosedHelper(false);\n };\n e.exports = j;\n});\n__d(\"legacy:TickerRightHideController\", [\"TickerRightHideController\",], function(a, b, c, d) {\n a.TickerRightHideController = b(\"TickerRightHideController\");\n}, 3);\n__d(\"TickerController\", [\"JSBNG__Event\",\"Animation\",\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"Bootloader\",\"ChannelConstants\",\"LegacyContextualDialog\",\"CSS\",\"DOM\",\"HTML\",\"JSLogger\",\"Keys\",\"LayerFadeOnHide\",\"LiveTimer\",\"NavigationMessage\",\"Parent\",\"Run\",\"ScrollableArea\",\"SelectorDeprecated\",\"Style\",\"TickerReadStateTracking\",\"Toggler\",\"UIPagelet\",\"URI\",\"UserActivity\",\"UserAgent\",\"Vector\",\"$\",\"clickRefAction\",\"collectDataAttributes\",\"copyProperties\",\"cx\",\"emptyFunction\",\"ge\",\"goURI\",\"throttle\",\"userAction\",\"TickerRHCPageletByGK\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Animation\"), i = b(\"Arbiter\"), j = b(\"AsyncRequest\"), k = b(\"AsyncSignal\"), l = b(\"Bootloader\"), m = b(\"ChannelConstants\"), n = b(\"LegacyContextualDialog\"), o = b(\"CSS\"), p = b(\"DOM\"), q = b(\"HTML\"), r = b(\"JSLogger\"), s = b(\"Keys\"), t = b(\"LayerFadeOnHide\"), u = b(\"LiveTimer\"), v = b(\"NavigationMessage\"), w = b(\"Parent\"), x = b(\"Run\"), y = b(\"ScrollableArea\"), z = b(\"SelectorDeprecated\"), aa = b(\"Style\"), ba = b(\"TickerReadStateTracking\"), ca = b(\"Toggler\"), da = b(\"UIPagelet\"), ea = b(\"URI\"), fa = b(\"UserActivity\"), ga = b(\"UserAgent\"), ha = b(\"Vector\"), ia = b(\"$\"), ja = b(\"clickRefAction\"), ka = b(\"collectDataAttributes\"), la = b(\"copyProperties\"), ma = b(\"cx\"), na = b(\"emptyFunction\"), oa = b(\"ge\"), pa = b(\"goURI\"), qa = b(\"throttle\"), ra = b(\"userAction\"), sa = 1, ta = 2, ua = 3, va = 4, wa = r.create(\"ticker_controller\");\n function xa() {\n \n };\n;\n la(xa, {\n _instances: {\n },\n _activeInstance: null,\n _placeholders: {\n },\n _logPositionChange: false,\n getInstance: function(ya) {\n var za = w.byClass(ia(ya), \"fbFeedTicker\");\n return ((za ? xa._instances[za.id] : null));\n },\n isLoaded: function(ya) {\n var za = xa._placeholders[ya.id];\n return ((!za || ((za.JSBNG__status == ua))));\n },\n show: function(ya, za) {\n za = ((za || na));\n {\n var fin137keys = ((window.top.JSBNG_Replay.forInKeys)((xa._instances))), fin137i = (0);\n var ab;\n for (; (fin137i < fin137keys.length); (fin137i++)) {\n ((ab) = (fin137keys[fin137i]));\n {\n var bb = oa(ab);\n if (((!bb || ((bb.parentNode.id == ya.id))))) {\n continue;\n }\n ;\n ;\n xa.hide(bb.parentNode);\n };\n };\n };\n ;\n xa._doPositionChange(ya);\n o.show(ya);\n var cb = xa._placeholders[ya.id];\n if (((cb && ((cb.JSBNG__status == sa))))) {\n xa._fetchTickerForPlaceholder(ya, za);\n }\n else {\n var db = p.scry(ya, \".fbFeedTicker\")[0], eb = ((db && xa.getInstance(db)));\n xa._activeInstance = eb;\n ((eb && eb._poll()));\n xa._placeholders[ya.id] = {\n JSBNG__status: va,\n callback: za\n };\n za();\n }\n ;\n ;\n },\n _doPositionChange: function(ya) {\n if (((!xa._logPositionChange || o.shown(ya)))) {\n return;\n }\n ;\n ;\n new k(\"/common/ods_endpoint.php\", {\n k: ((\"ticker.render.switch.\" + ya.id))\n }).send();\n },\n hide: function(ya) {\n var za = p.scry(ya, \".fbFeedTicker\")[0], ab = ((za && xa.getInstance(za)));\n ((ab && ab.hideActiveStory()));\n o.hide(ya);\n },\n hideStoriesByClass: function(ya) {\n {\n var fin138keys = ((window.top.JSBNG_Replay.forInKeys)((xa._instances))), fin138i = (0);\n var za;\n for (; (fin138i < fin138keys.length); (fin138i++)) {\n ((za) = (fin138keys[fin138i]));\n {\n p.scry(ia(za), ya).forEach(o.hide);\n ;\n };\n };\n };\n ;\n },\n hideStory: function(ya) {\n var za = ((ya && xa.getInstance(ya)));\n ((za && za.hideStory(ya)));\n },\n undoHideStory: function(ya) {\n var za = ((ya && xa.getInstance(ya)));\n ((za && za.undoHideStory(ya)));\n },\n insertStoriesAtBottom: function(ya) {\n xa._activeInstance.insertStoriesAtBottom(ya);\n },\n _fetchTickerForPlaceholder: function(ya, za) {\n var ab = {\n handler: function() {\n xa._placeholders[ya.id].JSBNG__status = ua;\n za();\n }\n }, bb = b(\"TickerRHCPageletByGK\"), cb = bb.pagelet_name;\n da.loadFromEndpoint(cb, ya.id, xa._placeholders[ya.id].pageletData, ab);\n xa._placeholders[ya.id].JSBNG__status = ta;\n },\n registerStoryDialog: function(ya, za) {\n i.subscribe(\"ticker/init\", function() {\n var ab = oa(ya), bb = ((ab && xa.getInstance(ab)));\n ((bb && bb.registerStoryDialog(ab, za)));\n }, i.SUBSCRIBE_ALL);\n },\n registerPlaceholder: function(ya, za) {\n var ab = xa._placeholders[ya];\n xa._placeholders[ya] = {\n JSBNG__status: sa,\n pageletData: za\n };\n if (((ab && ((ab.JSBNG__status == va))))) {\n xa.show(ia(ya));\n ab.callback();\n }\n ;\n ;\n }\n });\n la(xa.prototype, {\n ADS_IDLE_MS: 300000,\n FLYOUT_MAX_HEIGHT: 450,\n FLYOUT_OFFSET_THRESHOLD: 20,\n FLYOUT_COMMENT_OFFSET: 15,\n FLYOUT_VIEWPORT_PADDING: 75,\n FLYOUT_TARGET_HEIGHT_OFFSET: 25,\n init: function(ya, za, ab) {\n xa._instances[ya.id] = this;\n xa._activeInstance = this;\n this._root = ya;\n this._content = p.JSBNG__find(ya, \".ticker_stream\");\n this._stories = p.JSBNG__find(this._root, \".tickerActivityStories\");\n this._scrollableArea = za;\n this._container = p.JSBNG__find(ya, \"div.uiScrollableAreaWrap\");\n this._newestStory = {\n };\n this._storyIDs = [];\n this._objectIDs = [];\n this._fetchedStories = {\n };\n this._removedStoryIDs = [];\n this._storiesToRemove = [];\n var bb = JSBNG__Date.now();\n this._initTime = bb;\n this._lastUpdate = bb;\n this._lastPull = bb;\n this._lastInsert = bb;\n this._lastCustomStory = 0;\n this._pollOnly = false;\n this._needNonCustomStoryNum = 0;\n this._doCustomUpdate = true;\n this._autoloadStoryIndex = 1;\n this._scrollTopThreshold = 100;\n this._scrollTopPrompt = p.JSBNG__find(this._root, \".scrollTopPrompt\");\n this._scrollTopPromptVisible = false;\n this._maxStoriesToKeep = 50;\n this._minStoriesToKeep = 25;\n this._tickerInSidebarMode = !!w.byClass(this._root, \"fbChatSidebar\");\n this._loadStoriesWithActions();\n ja(\"ticker_flyout\");\n ja(\"ticker_flyout_prefetch\");\n ja(\"ticker_flyout_loadtime\");\n ja(\"ticker_stream\");\n this._ua = {\n flyout: ra(\"ticker\").uai(\"flyout\", \"flyout\", false),\n flyout_prefetch: ra(\"ticker\").uai(\"flyout_prefetch\", \"flyout_prefetch\", false),\n flyout_loadtime: ra(\"ticker\").uai(\"ticker_flyout_loadtime\", \"flyout_loadtime\", false),\n stream: ra(\"ticker\").uai(\"ticker_stream\", \"stream\", false)\n };\n this._uaCurStoryIDFetch = null;\n this._uaCurStoryIDPrefetch = null;\n var cb = p.create(\"div\", {\n className: \"storyQueue hidden_elem\"\n });\n this._storyQueue = cb;\n p.appendContent(this._root, cb);\n this._initObjectIDs();\n this._initConfig(ab);\n this._resetMorePager();\n this._initListeners();\n this._initSubscriptions(ab);\n i.inform(\"ticker/init\", this, i.BEHAVIOR_PERSISTENT);\n this._poll();\n if (this._prefetchAfterLoad) {\n this._logUserEvent(\"stream\", \"prefetch\");\n this._fetchStories(this._getInsertedStories().slice(0, 5));\n }\n ;\n ;\n },\n _loadStoriesWithActions: function() {\n var ya = oa(\"rightCol\");\n if (!ya) {\n return;\n }\n ;\n ;\n this._toggleWrapper = p.scry(ya, \".tickerToggleWrapper\")[0];\n if (this._toggleWrapper) {\n var za = p.scry(this._stories, \".tickerStoryWithButton\");\n this._storiesWithActions = {\n };\n for (var ab = 0; ((ab < za.length)); ab++) {\n var bb = za[ab];\n this._storiesWithActions[bb.getAttribute(\"data-story-key\")] = bb;\n };\n ;\n }\n ;\n ;\n },\n _initConfig: function(ya) {\n la(this, {\n _newest: ya.newest,\n _page_newest: ya.newest,\n _timeout: ya.timeout,\n _heartbeatTimeout: Math.min(5000, ya.heartbeatTimeout),\n _maxHeartbeatTimeout: Math.max(30000, ya.maxHeartbeatTimeout),\n _pullTimeout: Math.max(30000, ya.pullTimeout),\n _insertTimeout: ya.insertTimeout,\n _friendCount: ya.friendCount,\n _maxQueueLength: ya.maxQueueLength,\n _heartbeatEndpoint: ya.heartbeatEndpoint,\n _noPoll: ya.nopoll,\n _maxCustomQueueLength: ya.maxCustomQueueLength,\n _customStoryInsertTimeout: Math.max(5000, ya.customStoryInsertTimeout),\n _nonCustomToCustomStoryRatio: ya.nonCustomToCustomStoryRatio,\n _minForceUpdateInterval: Math.max(ya.insertTimeout, ya.minForceUpdateInterval),\n _popupOnHover: ya.popupOnHover,\n _priorityAppId: ya.priorityAppId,\n _prefetchOnHover: ya.prefetchStoriesOnHover,\n _userIdleTimeout: ya.userIdleTimeout,\n _firstCustomStoryDelay: ya.firstCustomStoryDelay,\n _pollOnly: ya.pollOnly,\n _tickerSource: ya.tickerSource,\n _prefetchAfterLoad: ya.prefetchAfterLoad,\n _logFlyouts: ya.logFlyouts,\n _userScrollGaurdDelay: ya.userScrollGaurdDelay,\n _rescheduleScrollToTopDelay: ya.rescheduleScrollToTopDelay,\n _aggressiveRegulator: ya.aggressiveRegulator\n });\n this._queueCustomStories(ya.customStories);\n },\n _initListeners: function() {\n this._listeners = g.listen(this._root, {\n click: this._handleClick.bind(this),\n keydown: this._handleKeydown.bind(this),\n mouseout: this._handleMouseout.bind(this),\n mouseover: this._handleMouseover.bind(this),\n mousedown: this._tickerDeClicker.bind(this),\n mouseup: this._handleMouseup.bind(this)\n });\n this._listeners.JSBNG__scroll = g.listen(this._container, \"JSBNG__scroll\", this._handleScroll.bind(this));\n this._initInfiniteScrollListener.bind(this).defer();\n },\n _initSubscriptions: function(ya) {\n x.onLeave(this._cleanup.bind(this));\n this._subscriptions = [i.subscribe(v.NAVIGATION_BEGIN, this._onNavHandler.bind(this)),i.subscribe(\"composer/publish\", this._handleComposerPublish.bind(this)),i.subscribe(\"Ticker/storiesInserted\", this._handleStoriesInserted.bind(this)),i.subscribe(\"Ticker/fixed\", this._setFixed.bind(this, true)),i.subscribe(\"Ticker/unfixed\", this._setFixed.bind(this, false)),i.subscribe(\"Ticker/resized\", this._checkInfiniteScroll.bind(this)),i.subscribe(\"ufi/comment\", this._scrollDialogToBottom.bind(this)),i.subscribe(\"Ticker/chatOpened\", this._handleChatOpened.bind(this)),];\n if (!ya.pollOnly) {\n this._subscriptions.push(i.subscribe(m.getArbiterType(\"ticker_update\"), this._handleTickerPush.bind(this)));\n }\n ;\n ;\n if (((ya.pushChannel && !ya.pollOnly))) {\n this.setPushChannel(ya.pushChannel);\n }\n ;\n ;\n },\n _handleClick: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget();\n if (this._getButtonFromNode(ya)) {\n this._logUserAction(ya, \"click\", JSBNG__event);\n this._handleActionButton(JSBNG__event);\n return;\n }\n ;\n ;\n var za = this._getStoryFromNode(ya), ab = w.byClass(ya, \"tickerStoryAllowClick\");\n if (((((!za || ((za == this._selectedStory)))) || ab))) {\n return;\n }\n ;\n ;\n if (this._storyIsHidden(za)) {\n return;\n }\n ;\n ;\n if (((((za == this._activeStory)) && !this._selectedStory))) {\n this._selecting = true;\n }\n ;\n ;\n this._clearNux();\n this._logUserEvent(\"flyout\", \"click\");\n this._logUserEvent(\"flyout_loadtime\", \"open\");\n if (this._storyCanOpenExternally(za)) {\n var bb = za.getAttribute(\"data-href\");\n if (((bb && !ya.getAttribute(\"href\")))) {\n var cb = {\n href: bb\n }, db = ka(ya, [\"ft\",\"gt\",]);\n ja(\"click\", cb, JSBNG__event, \"FORCE\", db);\n ra(\"ticker\", cb, JSBNG__event).uai(\"click\");\n }\n else this._logUserAction(ya, \"click\", JSBNG__event);\n ;\n ;\n this._openStoryExternally(za, JSBNG__event);\n return;\n }\n ;\n ;\n this._logUserAction(ya, \"flyout\", JSBNG__event);\n this._activateStory(za, \"click\");\n this._selectStory(za);\n },\n _handleMouseover: function(JSBNG__event) {\n this._setLocked(true);\n var ya = JSBNG__event.getTarget(), za = this._getOpenableStory(ya);\n if (!za) {\n return;\n }\n ;\n ;\n JSBNG__event.kill();\n if (((this._prefetchOnHover || this._popupOnHover))) {\n if (!((za.id in this._fetchedStories))) {\n this._logUserEvent(\"flyout_prefetch\", \"prefetch_on_hover\");\n this._uaCurStoryIDPrefetch = za.id;\n }\n ;\n ;\n this._fetchStory(za);\n }\n ;\n ;\n if (this._selectedStory) {\n return;\n }\n ;\n ;\n if (this._popupOnHover) {\n this._clearHoverTimeouts();\n var ab = ((this._storyCanOpenExternally(za) ? 500 : 1000)), bb = ((this._activeStory ? 75 : ab));\n this._hoverShowTimeout = this._setTimeout(function() {\n this._logUserEvent(\"flyout\", \"hover\", bb);\n this._logUserEvent(\"flyout_loadtime\", \"open\");\n this._activateStory(za, \"hover\");\n this._logUserAction(ya, \"flyout\", JSBNG__event);\n }.bind(this), bb);\n }\n ;\n ;\n },\n _handleMouseout: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget();\n this._setLocked(false);\n if (((ya == this._getStoryFromNode(ya)))) {\n var za = p.scry(ya.parentNode, \".openToggler\");\n for (var ab = 0; ((ab < za.length)); ab++) {\n z.toggle(za[ab]);\n ;\n };\n ;\n }\n ;\n ;\n this._clearClickedStory();\n this._scheduleHide();\n },\n _handleKeydown: function(JSBNG__event) {\n this._tickerDeClicker(JSBNG__event);\n var ya = this._activeStory;\n if (!ya) {\n return;\n }\n ;\n ;\n var za = g.getKeyCode(JSBNG__event);\n switch (za) {\n case s.UP:\n \n case s.DOWN:\n var ab = this._getInsertedStories(), bb;\n if (JSBNG__event.getModifiers().any) {\n bb = ((((za === s.UP)) ? 0 : ((ab.length - 1))));\n }\n else bb = ((ab.indexOf(ya) + ((((za === s.UP)) ? -1 : 1))));\n ;\n ;\n ya = ab[bb];\n break;\n case s.ESC:\n this._deactivateStory(true);\n return;\n default:\n return;\n };\n ;\n JSBNG__event.kill();\n if (!ya) {\n return;\n }\n ;\n ;\n this._activateStory(ya, \"keypress\");\n this._selectStory(ya);\n },\n _fadeTopmostStoryButton: function() {\n var ya = 0, za = 15;\n if (this._storiesWithActions) {\n {\n var fin139keys = ((window.top.JSBNG_Replay.forInKeys)((this._storiesWithActions))), fin139i = (0);\n var ab;\n for (; (fin139i < fin139keys.length); (fin139i++)) {\n ((ab) = (fin139keys[fin139i]));\n {\n var bb = this._storiesWithActions[ab], cb = p.scry(bb, \".tickerInlineActionButton\")[0], db = p.scry(cb, \".tickerActionIcon\")[0], eb = ((ha.getElementPosition(cb).y - ha.getElementPosition(this._toggleWrapper).y));\n if (((eb < ya))) {\n aa.set(cb, \"opacity\", 0);\n aa.set(db, \"opacity\", 0);\n }\n else if (((((eb >= ya)) && ((eb < za))))) {\n var fb = ((((eb - ya)) / ((za - ya))));\n aa.set(cb, \"opacity\", fb);\n aa.set(db, \"opacity\", fb);\n break;\n }\n else {\n aa.set(cb, \"opacity\", 1);\n aa.set(db, \"opacity\", 1);\n }\n \n ;\n ;\n };\n };\n };\n }\n ;\n ;\n },\n _handleScroll: function() {\n if (!this._preventScrollDismiss) {\n this._deactivateStory(true);\n }\n else this._preventScrollDismiss = false;\n ;\n ;\n if (!this._handleScrollThrottled) {\n this._handleScrollThrottled = qa(this._handleScrollInner.bind(this));\n }\n ;\n ;\n this._handleScrollThrottled();\n },\n _handleScrollInner: function() {\n this._fadeTopmostStoryButton();\n this._checkInfiniteScroll();\n this._setIsUserScrolling();\n if (!this._scrollLogged) {\n this._scrollLogged = true;\n var ya = this._stories.childNodes.length, za = this._stories.getAttribute(\"data-gt\"), ab = {\n ticker_scroll: 1,\n number_stories: ya,\n source: za\n };\n ja(\"JSBNG__scroll\", null, null, \"FORCE\", {\n gt: ab\n });\n ra(\"ticker\").uai(\"JSBNG__scroll\");\n }\n ;\n ;\n },\n _setIsUserScrolling: function() {\n JSBNG__clearTimeout(this._userScrollingToken);\n if (this._isScrolledToTop()) {\n this._userScrolling = false;\n return;\n }\n ;\n ;\n this._userScrolling = true;\n this._userScrollingToken = JSBNG__setTimeout(function() {\n this._userScrolling = false;\n this._userScrollingToken = null;\n }.bind(this), this._userScrollGaurdDelay);\n },\n _isUserScrolling: function() {\n return this._userScrolling;\n },\n _handleStoriesInserted: function() {\n this._initInfiniteScrollListener();\n if (((this._scrollableArea instanceof y))) {\n this._scrollableArea.adjustGripper();\n }\n else wa.error(\"wrong_scrollable_area\", {\n JSBNG__dump: this\n });\n ;\n ;\n this._logUserEvent(\"stream\", \"insert\");\n },\n _handleActionButton: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget(), za = this._getOpenableStory(ya), ab = this._getStoryDialog(za);\n if (ab) {\n var bb = ab.subscribe(\"beforehide\", function() {\n ab.unsubscribe(bb);\n return false;\n });\n }\n ;\n ;\n },\n _handleScrollToTopClick: function() {\n this._scrollToTop(this._poll.bind(this));\n },\n _scheduleScrollToTop: function() {\n ((this._scrollToTopToken && JSBNG__clearTimeout(this._scrollToTopToken)));\n this._scrollToTopToken = JSBNG__setTimeout(function() {\n if (((this._isLocked() || this._isUserScrolling()))) {\n this._scheduleScrollToTop();\n }\n else {\n this._scrollToTopToken = null;\n this._scrollToTop();\n }\n ;\n ;\n }.bind(this), this._rescheduleScrollToTopDelay);\n },\n _scrollToTop: function(ya) {\n new h(this._container).to(\"scrollTop\", 0).ease(h.ease.end).ondone(ya).go();\n },\n _clearHoverTimeouts: function() {\n JSBNG__clearTimeout(this._hoverShowTimeout);\n JSBNG__clearTimeout(this._hoverHideTimeout);\n },\n _getAllStories: function() {\n return p.scry(this._root, \"div.fbFeedTickerStory\");\n },\n _getInsertedStories: function() {\n return this._getAllStories().filter(function(ya) {\n return ((!o.hasClass(ya, \"queuedStory\") && !o.hasClass(ya, \"customStory\")));\n });\n },\n _getQueuedStories: function() {\n return p.scry(this._storyQueue, \".fbFeedTickerStory.queuedStory\");\n },\n _getQueuedCustomStories: function() {\n return p.scry(this._storyQueue, \".fbFeedTickerStory.customStory\");\n },\n _getButtonFromNode: function(ya) {\n return w.byClass(ya, \"tickerInlineOverlay\");\n },\n _getStoryFromNode: function(ya) {\n return w.byClass(ya, \"fbFeedTickerStory\");\n },\n _getActionButtonFromStory: function(ya) {\n return p.scry(ya, \".tickerInlineActionButton\")[0];\n },\n _getOpenableStory: function(ya) {\n var za = this._getStoryFromNode(ya);\n return ((this._storyCanOpenDialog(za) ? za : null));\n },\n _getStoryDialog: function(ya) {\n return n.getInstance(ya);\n },\n _getStoryDialogEndpoint: function(ya) {\n return ((((((ya && ((ya.getAttribute(\"data-rel\") == \"async\")))) && ya.getAttribute(\"data-ajaxify\"))) || null));\n },\n _storyCanOpenDialog: function(ya) {\n return ((!!this._getStoryDialogEndpoint(ya) && !this._storyIsHidden(ya)));\n },\n _storyCanOpenExternally: function(ya) {\n return ((!!ya.getAttribute(\"data-href\") || !this._storyCanOpenDialog(ya)));\n },\n _storyIsHidden: function(ya) {\n return o.hasClass(ya, \"tickerStoryHidden\");\n },\n hideActiveStory: function() {\n ((this._activeStory && this.hideStory(this._activeStory)));\n },\n hideStory: function(ya) {\n this._deactivateStory();\n if (((p.getText(ya) === \"\"))) {\n p.remove(ya);\n }\n ;\n ;\n o.addClass(ya, \"tickerStoryHidden\");\n o.removeClass(ya, \"tickerStoryClickable\");\n },\n undoHideStory: function(ya) {\n o.addClass(ya, \"tickerStoryClickable\");\n o.removeClass(ya, \"tickerStoryHidden\");\n },\n insertStoriesAtBottom: function(ya) {\n if (!ya) {\n return;\n }\n ;\n ;\n var za = p.create(\"div\");\n za.appendChild(ya);\n var ab = p.scry(za, \".fbFeedTickerStory\"), bb = p.JSBNG__find(za, \".tickerMorePager\"), cb = [];\n for (var db = 0; ((db < ab.length)); db++) {\n if (!this.dedupeStory(ab[db])) {\n cb.push(ab[db]);\n }\n ;\n ;\n };\n ;\n if (cb.length) {\n cb.push(bb);\n p.replace(p.JSBNG__find(this._root, \".tickerMorePager\"), cb);\n }\n ;\n ;\n i.inform(\"Ticker/storiesInserted\");\n },\n _scheduleHide: function() {\n if (((this._popupOnHover && !this._selectedStory))) {\n this._clearHoverTimeouts();\n this._hoverHideTimeout = this._setTimeout(this._deactivateStory.bind(this), 100);\n }\n ;\n ;\n },\n _setScrollTopPromptVisible: function(ya) {\n this._scrollTopPromptVisible = ya;\n o.conditionShow(this._scrollTopPrompt, ya);\n if (((ya && !this._listeners.scrollTop))) {\n this._listeners.scrollTop = g.listen(this._scrollTopPrompt, {\n click: this._handleScrollToTopClick.bind(this)\n });\n }\n else if (((!ya && this._listeners.scrollTop))) {\n this._listeners.scrollTop.click.remove();\n this._listeners.scrollTop = null;\n }\n \n ;\n ;\n },\n _isUserIdle: function() {\n return !fa.isActive(this._userIdleTimeout);\n },\n _schedulePoll: function() {\n JSBNG__clearTimeout(this._pollToken);\n this._pollToken = this._setTimeout(this._poll.bind(this), this._timeout);\n },\n _poll: function() {\n if (!this._isTickerVisible()) {\n return;\n }\n ;\n ;\n if (((this._storiesToRemove.length > 0))) {\n if (this._isInsertingStory) {\n return this._schedulePoll();\n }\n ;\n ;\n var ya = this._storiesToRemove.pop();\n this.removeStory(ya);\n }\n ;\n ;\n var za = ((!this._isScrolledToTop() && this._getQueuedStories().length));\n this._setScrollTopPromptVisible(za);\n var ab = JSBNG__Date.now(), bb = ((ab - this._lastInsert));\n if (((((bb < this._insertTimeout)) || this._isLocked()))) {\n return this._schedulePoll();\n }\n ;\n ;\n var cb = this._getQueuedStories(), db = this._getQueuedCustomStories(), eb = this._isUserIdle(), fb = ((cb.length > 0)), gb = ((((((((db.length > 0)) && !eb)) && ((((ab - this._initTime)) > this._firstCustomStoryDelay)))) && ((((this._needNonCustomStoryNum === 0)) || ((!fb && ((((ab - this._lastCustomStory)) > this._customStoryInsertTimeout))))))));\n if (gb) {\n this.insertStory(db.shift());\n this._lastCustomStory = ab;\n this._needNonCustomStoryNum = this._nonCustomToCustomStoryRatio;\n return this._schedulePoll();\n }\n ;\n ;\n if (fb) {\n this.insertStory(cb.shift());\n this._needNonCustomStoryNum--;\n if (((this._needNonCustomStoryNum < 0))) {\n this._needNonCustomStoryNum = 0;\n }\n ;\n ;\n return this._schedulePoll();\n }\n ;\n ;\n if (eb) {\n return fa.subscribeOnce(this._poll.bind(this));\n }\n ;\n ;\n var hb = ((((((((((db.length === 0)) && ((this._needNonCustomStoryNum === 0)))) && ((this._nonCustomToCustomStoryRatio > 0)))) && fa.isActive(this.ADS_IDLE_MS))) && ((((ab - this._lastUpdate)) > this._minForceUpdateInterval)))), ib = false, jb = false;\n if (this._pollOnly) {\n jb = ((((ab - this._lastUpdate)) > this._heartbeatTimeout));\n }\n else ib = ((((ab - this._lastPull)) > this._pullTimeout));\n ;\n ;\n var kb = ((((((hb && this._doCustomUpdate)) || ib)) || jb));\n if (!kb) {\n return this._schedulePoll();\n }\n ;\n ;\n if (hb) {\n this._doCustomUpdate = false;\n }\n ;\n ;\n this.update({\n pull: ib,\n fullpoll: jb,\n needcustomstory: hb\n });\n },\n _updatePollOnlyHeartbeatTimeout: function() {\n if (((this._pollOnly && ((this._heartbeatTimeout < this._maxHeartbeatTimeout))))) {\n this._heartbeatTimeout = Math.min(((this._heartbeatTimeout + 5000)), this._maxHeartbeatTimeout);\n }\n ;\n ;\n },\n update: function(ya) {\n this._updatePollOnlyHeartbeatTimeout();\n if (((this._noPoll && !this._pollOnly))) {\n return this._schedulePoll();\n }\n ;\n ;\n var za = {\n newest: ((((ya.fullpoll || ya.cache_update)) ? this._newest : this._page_newest)),\n storyids: this._storyIDs,\n friendcount: this._friendCount,\n priorityappid: this._priorityAppId,\n source: this._tickerSource,\n needcustomstory: ((this._nonCustomToCustomStoryRatio > 0))\n };\n la(za, ya);\n new j().setURI(this._heartbeatEndpoint).setReadOnly(true).setOption(\"retries\", 0).setData(za).setHandler(this._handleResponse.bind(this)).setFinallyHandler(this._poll.bind(this)).setAllowCrossPageTransition(true).send();\n this._lastUpdate = JSBNG__Date.now();\n if (za.pull) {\n this._lastPull = this._lastUpdate;\n }\n ;\n ;\n this._storyIDs = [];\n },\n insertStory: function(ya, za, ab) {\n this._lastInsert = JSBNG__Date.now();\n ((window.LiveTimer && u.addTimeStamps(ya)));\n o.removeClass(ya, \"queuedStory\");\n o.removeClass(ya, \"customStory\");\n if (((za !== false))) {\n var bb = ((ab ? this._fadeStoryIn : this._flyStoryIn));\n if (this._isUserScrolling()) {\n var cb = function() {\n this._container.scrollTop = ((this._container.scrollTop + this._stories.firstChild.offsetHeight));\n this._scheduleScrollToTop();\n }.bind(this);\n this._fadeStoryIn(ya, cb);\n }\n else this._scrollToTop(bb.bind(this, ya));\n ;\n ;\n }\n else p.prependContent(this._stories, ya);\n ;\n ;\n if (((this._storiesWithActions && o.hasClass(ya, \"tickerStoryWithButton\")))) {\n this._storiesWithActions[ya.getAttribute(\"data-story-key\")] = ya;\n }\n ;\n ;\n this._removeOldStories();\n },\n _removeOldStories: function() {\n var ya = this._getInsertedStories();\n if (((ya.length <= this._maxStoriesToKeep))) {\n return;\n }\n ;\n ;\n var za = this._minStoriesToKeep, ab = ya.slice(za);\n ab.forEach(p.remove);\n if (this._storiesWithActions) {\n for (var bb = 0; ((bb < ab.length)); bb++) {\n delete this._storiesWithActions[ab[bb].getAttribute(\"data-story-key\")];\n ;\n };\n }\n ;\n ;\n this._resetMorePager();\n },\n _resetMorePager: function() {\n var ya = this._getInsertedStories();\n if (((!ya || !ya.length))) {\n return;\n }\n ;\n ;\n var za = ya[((ya.length - 1))].getAttribute(\"data-ticker-timestamp\"), ab = p.scry(this._root, \".tickerMorePager a\")[0];\n if (((!ab || !za))) {\n return;\n }\n ;\n ;\n var bb = new ea(ab.getAttribute(\"ajaxify\"));\n bb.addQueryData({\n oldest: za\n });\n ab.setAttribute(\"ajaxify\", bb);\n },\n _setLocked: function(ya) {\n this._locked = ya;\n },\n _isLocked: function() {\n return !!((this._locked || this._activeStory));\n },\n informAndRemoveStory: function(ya, za, ab) {\n var bb = this._getStoryFromNode(ya), cb = bb.getAttribute(\"data-story-key\");\n p.setContent(bb, za);\n o.addClass(bb, \"highlightedStory\");\n this._setTimeout(this.removeStory.bind(this, cb), ((ab || 6000)));\n },\n _getStoryByStoryKey: function(ya) {\n var za = this._getAllStories();\n for (var ab = 0; ((ab < za.length)); ab++) {\n var bb = za[ab];\n if (((bb.getAttribute(\"data-story-key\") == ya))) {\n return bb;\n }\n ;\n ;\n };\n ;\n return null;\n },\n removeStory: function(ya) {\n this._removedStoryIDs[ya] = true;\n var za = this._getStoryByStoryKey(ya);\n if (!za) {\n return;\n }\n ;\n ;\n if (this._storiesWithActions) {\n delete this._storiesWithActions[ya];\n }\n ;\n ;\n if (((za == this._activeStory))) {\n this._deactivateStory();\n }\n ;\n ;\n var ab = this._getStoryDialog(za);\n ((ab && ab.destroy()));\n if (o.hasClass(za, \"queuedStory\")) {\n p.remove(za);\n return;\n }\n ;\n ;\n this._animateStoryOut(za);\n },\n _isScrolledToTop: function() {\n return ((this._container.scrollTop <= this._scrollTopThreshold));\n },\n _flyStoryIn: function(ya) {\n var za = p.create(\"div\", {\n style: {\n marginTop: \"-1000px\"\n }\n }, ya);\n aa.set(za, \"opacity\", 0);\n p.prependContent(this._stories, za);\n var ab = ha.getElementDimensions(za).y;\n aa.set(za, \"marginTop\", ((((\"-\" + ab)) + \"px\")));\n this._isInsertingStory = true;\n new h(za).to(\"marginTop\", 0).ease(h.ease.end).checkpoint(21801).to(\"opacity\", 1).ondone(function() {\n p.replace(za, ya);\n this._afterInsert(ya);\n this._isInsertingStory = false;\n }.bind(this)).go();\n },\n _fadeStoryIn: function(ya, za) {\n new h(this._stories).to(\"opacity\", 21991).ondone(function() {\n p.prependContent(this._stories, ya);\n if (za) {\n za();\n }\n ;\n ;\n new h(this._stories).to(\"opacity\", 1).ondone(function() {\n this._afterInsert(ya);\n }.bind(this)).go();\n }.bind(this)).go();\n },\n _animateStoryOut: function(ya) {\n var za = p.create(\"div\", {\n style: {\n overflow: \"hidden\",\n position: \"relative\"\n }\n });\n p.insertBefore(ya, za);\n p.appendContent(za, ya);\n new h(za).to(\"JSBNG__top\", 20).to(\"height\", 0).to(\"opacity\", 0).ease(h.ease.end).ondone(function() {\n p.remove(za);\n i.inform(\"Ticker/animateOut\");\n }.bind(this)).go();\n },\n _afterInsert: function(ya) {\n i.inform(\"Ticker/afterInsert\");\n },\n setPushChannel: function(ya) {\n ((this._pushSubscription && this._pushSubscription.unsubscribe()));\n this._pushSubscription = i.subscribe(m.getArbiterType(ya), this._handleTickerPush.bind(this));\n d([\"ChatConfig\",\"ChannelConnection\",], function(za, ab) {\n this._channelConnection = ab;\n this._checkChannelConnection();\n this._channelConnectionSubscription = this._channelConnection.subscribe([this._channelConnection.CONNECTED,this._channelConnection.RECONNECTING,this._channelConnection.SHUTDOWN,this._channelConnection.MUTE_WARNING,this._channelConnection.UNMUTE_WARNING,], this._handleChannelConnection.bind(this));\n }.bind(this));\n },\n _checkChannelConnection: function() {\n o.conditionClass(this._root, \"disconnected\", this._channelConnection.disconnected());\n },\n setCurrentAppId: function(ya) {\n this._priorityAppId = ya;\n },\n _handleTickerPush: function(ya, za) {\n var ab = za.obj;\n if (ab.delete_id) {\n this._storiesToRemove.push(ab.delete_id);\n return;\n }\n ;\n ;\n if (ab.fromups) {\n if (ab.do_logging) {\n this._logDarkLaunch(ab);\n }\n ;\n }\n ;\n ;\n var bb = ab.story_xhp;\n if (!bb) {\n return;\n }\n ;\n ;\n this._newest = ab.story_time;\n var cb = q(bb).getRootNode();\n this.queueStory(cb, ab.flyout_js_cmds);\n if (((this._aggressiveRegulator && ((ab.actor == this._newestStory.actorID))))) {\n this.removeStory(this._newestStory.storyKey);\n new k(\"/common/ods_endpoint.php\", {\n k: \"ticker.aggr.remove\"\n }).send();\n }\n ;\n ;\n this._newestStory = {\n actorID: ab.actor,\n storyKey: cb.getAttribute(\"data-story-key\")\n };\n },\n _handleComposerPublish: function(ya, za) {\n ((za.tickerMarkup && this.insertStory(za.tickerMarkup)));\n },\n _clearNux: function() {\n var ya = p.scry(JSBNG__document.body, \"div.tickerNUXContainer\");\n if (ya.length) {\n ya.forEach(function(za) {\n var ab = n.getInstance(za);\n ((ab && ab.hide()));\n });\n new j().setURI(\"/ajax/feed/ticker/nux.php\").send();\n }\n ;\n ;\n this._clearNux = na;\n },\n _logDarkLaunch: function(ya) {\n var za = {\n actor: ya.actor,\n story_time: ya.story_time,\n key: ya.story_obj_id,\n dark: 1\n };\n new j().setURI(\"/alite/push/log.php\").setData({\n msg: JSON.stringify(za)\n }).send();\n },\n _logRender: function() {\n if (this._loggedRender) {\n return;\n }\n ;\n ;\n var ya = this._tickerInSidebarMode;\n if (((ya || w.byClass(this._content, \"home_right_column\")))) {\n new k(\"/ajax/log_ticker_render.php\", {\n sidebar_mode: ya\n }).send();\n this._loggedRender = true;\n }\n ;\n ;\n },\n _isTickerVisible: function() {\n var ya = ((xa._activeInstance == this));\n ((ya && this._logRender()));\n return ya;\n },\n _handleResponse: function(ya) {\n var za = ya.getPayload();\n if (za.newest) {\n this._newest = this._page_newest = za.newest;\n }\n ;\n ;\n if (za.JSBNG__content) {\n if (((za.JSBNG__content instanceof Array))) {\n for (var ab = 0; ((ab < za.JSBNG__content.length)); ab++) {\n this.queueStoryMarkup(za.JSBNG__content[ab]);\n ;\n };\n ;\n }\n else this.queueStoryMarkup(za.JSBNG__content);\n ;\n }\n ;\n ;\n if (((za.custom_stories && za.custom_stories.length))) {\n this._queueCustomStories(za.custom_stories);\n this._doCustomUpdate = true;\n }\n ;\n ;\n },\n queueStoryMarkup: function(ya) {\n var za = q(ya).getRootNode();\n this.queueStory(za);\n },\n dedupeStory: function(ya) {\n var za = ya.getAttribute(\"data-story-key\"), ab = ((za && ((!!this._objectIDs[za] || !!this._removedStoryIDs[za]))));\n ((za && (this._objectIDs[za] = true)));\n return ab;\n },\n queueStory: function(ya, za) {\n if (this.dedupeStory(ya)) {\n return;\n }\n ;\n ;\n o.addClass(ya, \"queuedStory\");\n p.appendContent(this._storyQueue, ya);\n var ab = ((za && za.length));\n if (ab) {\n za.forEach(function(cb) {\n new Function(cb).apply();\n });\n }\n ;\n ;\n ya.setAttribute(\"id\", ((((ya.id + \"_\")) + this._root.id)));\n var bb = this._getQueuedStories();\n bb.slice(0, -this._maxQueueLength).forEach(p.remove);\n if (ab) {\n this._fetchedStories[ya.id] = true;\n }\n ;\n ;\n },\n _queueCustomStories: function(ya) {\n while (ya.length) {\n var za = ya.shift();\n za = q(za).getRootNode();\n if (this.dedupeStory(za)) {\n continue;\n }\n ;\n ;\n o.addClass(za, \"customStory\");\n p.appendContent(this._storyQueue, za);\n };\n ;\n var ab = this._getQueuedCustomStories();\n ab.slice(0, -this._maxQueueLength).forEach(p.remove);\n },\n _cleanup: function() {\n xa._placeholders.pagelet_rhc_ticker = null;\n if (!w.byClass(this._content, \"hasRightCol\")) {\n return;\n }\n ;\n ;\n this._objectIDs = [];\n this._subscriptions.forEach(i.unsubscribe);\n ((this._channelConnectionSubscription && this._channelConnection.unsubscribe(this._channelConnectionSubscription)));\n ((this._pushSubscription && this._pushSubscription.unsubscribe()));\n {\n var fin140keys = ((window.top.JSBNG_Replay.forInKeys)((this._listeners))), fin140i = (0);\n var ya;\n for (; (fin140i < fin140keys.length); (fin140i++)) {\n ((ya) = (fin140keys[fin140i]));\n {\n ((this._listeners[ya] && this._listeners[ya].remove()));\n ;\n };\n };\n };\n ;\n JSBNG__clearTimeout(this._pollToken);\n this._pollToken = null;\n this._cleanupInputFocusListener();\n this._cleanupContentResizeListener();\n i.inform(\"Ticker/cleanup\");\n },\n _onNavHandler: function(ya, za) {\n var ab = za.params.key;\n if (((((ab != \"lf\")) && ((ab != \"h\"))))) {\n this._cleanup();\n }\n ;\n ;\n },\n _getPositionForDialog: function() {\n if (((this._tickerInSidebarMode && o.hasClass(JSBNG__document.body, \"_58v4\")))) {\n return \"right\";\n }\n ;\n ;\n return \"left\";\n },\n registerStoryDialog: function(ya, za) {\n if (((this._uaCurStoryIDFetch == ya.id))) {\n this._uaCurStoryIDFetch = null;\n this._logUserEvent(\"flyout\", \"fetch_success\");\n }\n ;\n ;\n if (((this._uaCurStoryIDPrefetch == ya.id))) {\n this._uaCurStoryIDPrefetch = null;\n this._logUserEvent(\"flyout_prefetch\", \"prefetch_success\");\n }\n ;\n ;\n this._fetchedStories[ya.id] = true;\n za.setContext(ya);\n za.setPosition(this._getPositionForDialog());\n za.subscribe(\"hide\", this._deactivateStory.bind(this, true));\n za.subscribe(\"success\", this._focusStory.bind(this, ya));\n za.subscribe(\"beforehide\", function() {\n if (this._selecting) {\n this._selecting = false;\n return false;\n }\n ;\n ;\n }.bind(this));\n if (this._popupOnHover) {\n za.subscribe(\"mouseenter\", this._clearHoverTimeouts.bind(this));\n za.subscribe(\"mouseleave\", this._scheduleHide.bind(this));\n za.subscribe(\"show\", function() {\n this._highlightDialogScrollbar.bind(this, za).defer();\n var ab = g.listen(za.getContent(), \"mousedown\", function() {\n this._selectStory(ya);\n ab.remove();\n }.bind(this));\n }.bind(this));\n }\n ;\n ;\n if (((ya == this._activeStory))) {\n this._logUserEvent(\"flyout_loadtime\", \"show_fetched\");\n this._logUserEvent(\"flyout\", \"show\");\n this._openDialog(za);\n }\n ;\n ;\n },\n _highlightDialogScrollbar: function(ya) {\n var za = p.scry(ya.getContent(), \".uiScrollableArea\")[0];\n ((za && y.poke(za)));\n },\n _openStoryExternally: function(ya, JSBNG__event) {\n var za = ya.getAttribute(\"data-href\");\n if (((!za || ((za == \"#\"))))) {\n return;\n }\n ;\n ;\n var ab = ya.getAttribute(\"data-story-rel\");\n switch (ab) {\n case \"theater\":\n this._deactivateAndClearStory();\n l.loadModules([\"PhotoViewer\",], function(db) {\n db.bootstrap(za, ya);\n });\n return;\n case \"async\":\n this._deactivateAndClearStory();\n j.bootstrap(za, ya);\n return;\n };\n ;\n var bb = ya.getAttribute(\"data-target\"), cb = ((((((JSBNG__event.which != 1)) || JSBNG__event.getModifiers().any)) || ((bb == \"_blank\"))));\n ((cb ? window.open(za, \"_blank\") : pa(za)));\n },\n _deactivateAndClearStory: function() {\n this._clearHoverTimeouts();\n this._deactivateStory();\n },\n _focusStoryWillTriggerScroll: function(ya) {\n var za = this._container, ab = za.clientHeight, bb = ya.offsetHeight, cb = za.scrollTop, db = ((cb + ab)), eb = ya.offsetTop, fb = ((eb + bb));\n return ((((eb < cb)) || ((fb > db))));\n },\n _focusStory: function(ya) {\n if (this._focusStoryWillTriggerScroll(ya)) {\n this._preventScrollDismiss = true;\n }\n ;\n ;\n ya.JSBNG__focus();\n },\n _selectStory: function(ya) {\n this._selectedStory = ya;\n o.addClass(ya, \"tickerStorySelected\");\n o.addClass(this._root, \"tickerChildSelected\");\n },\n _activateStory: function(ya, za) {\n this._clearHoverTimeouts();\n if (((((ya == this._activeStory)) || !this._storyCanOpenDialog(ya)))) {\n return;\n }\n ;\n ;\n this._deactivateStory();\n this._focusStory(ya);\n this._activeStory = ya;\n o.addClass(ya, \"tickerStoryActive\");\n ((window.Toggler && ca.hide()));\n if (this._logFlyouts) {\n za = ((za || \"unknown\"));\n new k(\"/ajax/feed/ticker/flyout.php\", {\n src: za\n }).send();\n }\n ;\n ;\n ba.log(ya);\n var ab = this._getStoryDialog(ya);\n if (ab) {\n this._logUserEvent(\"flyout_loadtime\", \"show_prefetched\");\n this._logUserEvent(\"flyout\", \"show\");\n this._openDialog(ab);\n return;\n }\n ;\n ;\n if (!((ya.id in this._fetchedStories))) {\n this._uaCurStoryIDFetch = ya.id;\n this._logUserEvent(\"flyout\", \"fetch\");\n }\n ;\n ;\n this._fetchStory(ya);\n },\n _deactivateStory: function(ya) {\n if (((this._activeStory === this._deactivatingStory))) {\n return;\n }\n ;\n ;\n this._deactivatingStory = this._activeStory;\n if (this._dialog) {\n if (((ya === true))) {\n this._dialog.enableBehavior(t);\n }\n else this._dialog.disableBehavior(t);\n ;\n ;\n this._dialog.hide();\n this._logUserEvent(\"flyout\", \"close\");\n }\n ;\n ;\n if (this._activeStory) {\n o.removeClass(this._activeStory, \"tickerStoryActive\");\n o.removeClass(this._activeStory, \"tickerStorySelected\");\n o.removeClass(this._root, \"tickerChildSelected\");\n }\n ;\n ;\n this._dialog = this._selectedStory = this._activeStory = null;\n this._cleanupInputFocusListener();\n this._cleanupContentResizeListener();\n this._deactivatingStory = null;\n },\n _logUserAction: function(ya, za, JSBNG__event) {\n ja(za, ya, JSBNG__event, \"FORCE\");\n ra(\"ticker\", ya, JSBNG__event).uai(za);\n },\n _logUserEvent: function(ya, JSBNG__event) {\n if (this._ua[ya]) {\n this._ua[ya].add_event(JSBNG__event);\n }\n ;\n ;\n },\n _fetchStory: function(ya) {\n JSBNG__clearTimeout(this._fetchToken);\n var za = [], ab = this._getInsertedStories(), bb = ab.indexOf(ya);\n [-1,0,1,].forEach(function(cb) {\n var db = ab[((bb + cb))];\n ((db && za.push(db)));\n }, this);\n this._fetchToken = JSBNG__setTimeout(this._fetchStories.bind(this, za), 100);\n },\n _fetchStories: function(ya) {\n var za = [], ab, bb = function(cb) {\n JSBNG__clearTimeout(ab);\n ya.forEach(function(db) {\n o.conditionClass(db, \"tickerStoryFetching\", cb);\n });\n };\n ya = ya.filter(function(cb) {\n if (((cb.id in this._fetchedStories))) {\n return false;\n }\n ;\n ;\n this._fetchedStories[cb.id] = true;\n var db = this._getStoryDialogEndpoint(cb), eb = ea(db).getQueryData();\n if (((!db || !eb))) {\n return false;\n }\n ;\n ;\n eb.uniq_id = cb.getAttribute(\"id\");\n eb.referrer = this._tickerSource;\n za.push(eb);\n return true;\n }, this);\n if (!za.length) {\n return;\n }\n ;\n ;\n ab = this._setTimeout(bb.curry(true), 500);\n new j(\"/ajax/feed/ticker/multi_story\").setFinallyHandler(bb.curry(false)).setErrorHandler(na).setData({\n stories: za\n }).setAllowCrossPageTransition(this._tickerInSidebarMode).send();\n },\n _tickerDeClicker: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget(), za = w.byTag(ya, \"a\"), ab = this._getStoryFromNode(ya), bb = this._getButtonFromNode(ya);\n if (((((((((((ab && za)) && !bb)) && o.hasClass(ab, \"tickerStoryClickable\"))) && !o.hasClass(za, \"tickerStoryAllowClick\"))) && !this._storyIsHidden(ab)))) {\n za.setAttribute(\"rel\", \"ignore\");\n za.removeAttribute(\"JSBNG__onclick\");\n za.removeAttribute(\"ajaxify\");\n za.removeAttribute(\"href\");\n }\n ;\n ;\n var cb = ((JSBNG__event.button == 2)), db = ((JSBNG__event.type === \"keydown\")), eb = ((ab && this._getActionButtonFromStory(ab)));\n if (((((!cb && eb)) && !db))) {\n this._setClickedStory(ab);\n }\n ;\n ;\n },\n _handleMouseup: function(JSBNG__event) {\n this._clearClickedStory();\n },\n _setClickedStory: function(ya) {\n this._clearClickedStory();\n o.addClass(ya, \"tickerStoryClicked\");\n this._clickedStory = ya;\n },\n _clearClickedStory: function() {\n if (this._clickedStory) {\n o.removeClass(this._clickedStory, \"tickerStoryClicked\");\n this._clickedStory = null;\n }\n ;\n ;\n },\n _initInfiniteScrollListener: function() {\n var ya = this._getInsertedStories();\n if (this._storiesWithActions) {\n for (var za = 0; ((za < ya.length)); za++) {\n var ab = ya[za];\n if (o.hasClass(ab, \"tickerStoryWithButton\")) {\n this._storiesWithActions[ab.getAttribute(\"data-story-key\")] = ab;\n }\n ;\n ;\n };\n }\n ;\n ;\n var bb = Math.max(0, ((ya.length - this._autoloadStoryIndex)));\n this._infiniteScrollStory = ya[bb];\n this._checkInfiniteScroll();\n },\n _checkInfiniteScroll: function() {\n if (this._infiniteScrollStory) {\n var ya = ha.getElementPosition(this._infiniteScrollStory).y, za = ((ha.getElementPosition(this._container).y + ha.getElementDimensions(this._container).y));\n if (((ya < za))) {\n var ab = p.scry(this._root, \".tickerMorePager a\")[0];\n if (ab) {\n var bb = ((w.byClass(ab, \"stat_elem\") || ab));\n new j(ab.getAttribute(\"ajaxify\")).setReadOnly(true).setRelativeTo(ab).setStatusElement(bb).setAllowCrossPageTransition(true).send();\n this._logUserEvent(\"stream\", \"JSBNG__scroll\");\n }\n ;\n ;\n this._infiniteScrollStory = null;\n this._autoloadStoryIndex = 5;\n }\n ;\n ;\n }\n ;\n ;\n },\n _setFixed: function(ya) {\n if (!this._selectedStory) {\n return;\n }\n ;\n ;\n var za = this._getStoryDialog(this._selectedStory);\n if (za) {\n za.setPosition(this._getPositionForDialog());\n za.setFixed(ya);\n za.updatePosition();\n }\n ;\n ;\n },\n _setTimeout: function(ya, za) {\n return JSBNG__setTimeout(ya, za, !this._tickerInSidebarMode);\n },\n _scrollDialogToBottom: function() {\n var ya = ((this._dialog && this._dialog.getContent())), za = ((ya && p.scry(ya, \".uiScrollableAreaWrap\")[0])), ab = ((za && y.getInstance(za)));\n ((ab && ab.scrollToBottom()));\n },\n _openDialog: function(ya) {\n if (!this._tickerInSidebarMode) {\n o.addClass(ya.getRoot(), \"tickerStoryOverlayOnTop\");\n }\n ;\n ;\n this._dialog = ya.show();\n this._updateDialogPosition();\n this._writeSwfFrame(ya);\n this._initCommentFocusListener.bind(this).defer();\n this._initContentResizeListener.bind(this).defer();\n this._stupidIE7VideoResizeHack(ya);\n },\n _stupidIE7VideoResizeHack: function(ya) {\n if (((ga.ie() === 7))) {\n var za = p.scry(ya.getContent(), \".uiVideoThumb .img\");\n za.forEach(function(ab) {\n aa.set(ab, \"width\", \"\");\n });\n }\n ;\n ;\n },\n _updateDialogPosition: function() {\n var ya = ((this._tickerInSidebarMode || !!w.byClass(this._root, \"fixed_elem\")));\n this._dialog.setPosition(this._getPositionForDialog());\n this._dialog.setFixed(ya);\n this._adjustFlyoutContentHeight();\n this._dialog.updatePosition();\n },\n _writeSwfFrame: function(ya) {\n var za = ((this._dialog && this._dialog.getContent())), ab = p.scry(za, \".swfObject\")[0];\n if (!ab) {\n return;\n }\n ;\n ;\n var bb = ab.getAttribute(\"data-swfid\");\n if (((bb && window[bb]))) {\n var cb = window[bb];\n cb.write(ab);\n }\n ;\n ;\n },\n _initCommentFocusListener: function() {\n var ya = ((this._dialog && this._dialog.getContent())), za = ((ya && p.scry(ya, \".tickerDialogFooter textarea\")[0]));\n if (!za) {\n return;\n }\n ;\n ;\n this._listeners.inputFocus = g.listen(za, \"JSBNG__focus\", this._scrollDialogToBottom.bind(this));\n },\n _cleanupInputFocusListener: function() {\n if (this._listeners.inputFocus) {\n this._listeners.inputFocus.remove();\n this._listeners.inputFocus = null;\n }\n ;\n ;\n },\n _initContentResizeListener: function() {\n var ya = ((this._dialog && this._dialog.getContent()));\n if (!ya) {\n return;\n }\n ;\n ;\n this._listeners.contentResize = g.listen(ya, \"click\", function() {\n this._dialog.updatePosition.bind(this._dialog).defer();\n }.bind(this));\n },\n _cleanupContentResizeListener: function() {\n if (this._listeners.contentResize) {\n this._listeners.contentResize.remove();\n this._listeners.contentResize = null;\n }\n ;\n ;\n },\n _adjustFlyoutContentHeight: function() {\n var ya = ((this._dialog && this._dialog.getContent())), za = ((ya && p.scry(ya, \".uiScrollableAreaWrap\")[0]));\n if (!za) {\n return;\n }\n ;\n ;\n var ab = ha.getElementDimensions(za), bb = ha.getElementPosition(za), cb = p.scry(za, \".uiUfi .uiUfiComment\"), db = ((ha.getViewportDimensions().y - this.FLYOUT_VIEWPORT_PADDING)), eb = Math.min(this.FLYOUT_MAX_HEIGHT, db), fb = ((eb - this.FLYOUT_TARGET_HEIGHT_OFFSET));\n for (var gb = 0; ((gb < cb.length)); gb++) {\n var hb = cb[gb], ib = ha.getElementPosition(hb), jb = ((ib.y - bb.y));\n if (((Math.abs(((jb - fb))) <= this.FLYOUT_OFFSET_THRESHOLD))) {\n fb = ((jb + this.FLYOUT_COMMENT_OFFSET));\n break;\n }\n ;\n ;\n };\n ;\n if (((ab.y > fb))) {\n aa.set(za, \"height\", ((fb + \"px\")));\n aa.set(za, \"max-height\", null);\n }\n else {\n aa.set(za, \"max-height\", ((eb + \"px\")));\n aa.set(za, \"height\", null);\n }\n ;\n ;\n },\n _initObjectIDs: function() {\n var ya = this._getAllStories();\n for (var za = 0; ((za < ya.length)); ++za) {\n var ab = ya[za].getAttribute(\"data-story-key\");\n ((ab && (this._objectIDs[ab] = true)));\n };\n ;\n },\n _handleChatOpened: function() {\n this._deactivateStory(true);\n },\n _handleChannelConnection: function() {\n this._checkChannelConnection();\n },\n getNewest: function() {\n return this._newest;\n }\n });\n e.exports = xa;\n});\n__d(\"legacy:TickerController\", [\"TickerController\",], function(a, b, c, d) {\n a.TickerController = b(\"TickerController\");\n}, 3);\n__d(\"HomeTickerFirstRightColumnController\", [\"$\",\"ge\",\"debounceAcrossTransitions\",\"throttle\",\"UIPagelet\",\"Arbiter\",\"Style\",\"csx\",\"CSS\",\"DOM\",\"Vector\",\"Run\",\"LegacyContextualDialog\",\"TickerController\",\"UIIntentionalStreamMessage\",\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n var g = b(\"$\"), h = b(\"ge\"), i = b(\"debounceAcrossTransitions\"), j = b(\"throttle\"), k = b(\"UIPagelet\"), l = b(\"Arbiter\"), m = b(\"Style\"), n = b(\"csx\"), o = b(\"CSS\"), p = b(\"DOM\"), q = b(\"Vector\"), r = b(\"Run\"), s = b(\"LegacyContextualDialog\"), t = b(\"TickerController\"), u = b(\"UIIntentionalStreamMessage\"), v = b(\"JSBNG__Event\"), w = null, x = 75, y = 50, z = 15, aa = false, ba = false, ca, da, ea, fa, ga, ha, ia, ja, ka, la = y, ma = [], na = [], oa, pa, qa, ra, sa, ta, ua, va, wa, xa, ya, za, ab;\n function bb() {\n var sb = ob;\n function tb() {\n sb.defer();\n };\n ;\n var ub = p.scry(ra, \"img.img\");\n ub.forEach(function(vb) {\n if (!vb.complete) {\n v.listen(vb, {\n load: tb,\n error: tb,\n abort: tb\n });\n }\n ;\n ;\n });\n tb();\n };\n;\n function cb() {\n na = [l.subscribe(\"page_transition\", fb),l.subscribe(\"netego_loaded\", ob),l.subscribe(\"Ticker/storiesInserted\", ob),l.subscribe(u.INSERT_STORIES, ob),];\n if (w.enableSidebar) {\n na.push(l.subscribe(\"sidebar/hide\", pb));\n na.push(l.subscribe(\"sidebar/show\", qb));\n }\n ;\n ;\n };\n;\n function db() {\n if (ra) {\n var sb = p.scry(ra, \"div._4u8\");\n for (var tb = 0; ((tb < sb.length)); tb++) {\n var ub = JSON.parse(sb[tb].getAttribute(\"data-ad\")).segment;\n if (((ub === \"premium\"))) {\n return true;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n return false;\n };\n;\n function eb() {\n ab = p.scry(JSBNG__document, \"div.fbRemindersContent\");\n va = p.scry(h(\"rightCol\"), \"div.home_right_column\")[0];\n wa = p.JSBNG__find(va, \"div.rightColumnWrapper\");\n ra = ((h(\"pagelet_ego_pane_w\") || h(\"pagelet_ego_pane_m\")));\n fa = !db();\n v.listen(ra, \"mouseenter\", function() {\n aa = true;\n });\n v.listen(ra, \"mouseleave\", function() {\n aa = false;\n });\n sa = h(\"pagelet_rhc_ticker\");\n if (!sa) {\n return false;\n }\n ;\n ;\n ta = p.scry(sa, \".ticker_container\")[0];\n ua = p.scry(sa, \".ticker_stream\")[0];\n return ((ta && ua));\n };\n;\n function fb(sb, tb) {\n if (((((((sb === \"page_transition\")) && tb)) && tb.uri))) {\n var ub = tb.uri;\n if (((ub.path === \"/photo.php\"))) {\n ba = true;\n return;\n }\n ;\n ;\n if (((ba && ((ub.path === \"/\"))))) {\n ba = false;\n return;\n }\n ;\n ;\n }\n ;\n ;\n na.forEach(l.unsubscribe);\n na = [];\n ma.forEach(function(vb) {\n vb.remove();\n });\n ma = [];\n oa.reset();\n };\n;\n function gb() {\n if (((ja || !ca))) {\n ka = ((q.getElementPosition(ra, \"viewport\").y - q.getElementPosition(wa, \"viewport\").y));\n }\n ;\n ;\n };\n;\n function hb() {\n gb();\n var sb = la;\n lb();\n if (((sb != la))) {\n ja = true;\n mb();\n }\n ;\n ;\n za = ((xa + q.getElementPosition(qa, \"viewport\").y));\n var tb = za, ub = q.getElementPosition(va, \"viewport\").y;\n for (var vb = 0; ((vb < ab.length)); vb++) {\n var wb = s.getInstance(ab[vb]);\n wb.hide();\n };\n ;\n if (((da || !ua))) {\n if (((ia !== null))) {\n var xb = ((ub + ka)), yb = ((xb <= ((tb - ia))));\n if (((ja || ((yb !== ca))))) {\n ja = false;\n var zb = ((((tb - ia)) - ka));\n nb(yb, zb);\n }\n ;\n ;\n }\n ;\n ;\n return;\n }\n ;\n ;\n var ac = ((ub <= ((tb + z))));\n if (((ac !== ca))) {\n nb(ac);\n }\n ;\n ;\n };\n;\n function ib() {\n var sb = JSBNG__Date.now();\n if (((((((fa && !aa)) && w.adsRefreshInterval)) && ((((sb - ga)) >= w.adsRefreshInterval))))) {\n jb();\n }\n ;\n ;\n };\n;\n function jb() {\n ga = JSBNG__Date.now();\n k.loadFromEndpoint(\"WebEgoPane\", ra, {\n pid: 27,\n data: {\n organic_only: false,\n ads_only: false,\n refresh_num: ++ha\n }\n }, {\n bundle: false,\n crossPage: false,\n handler: bb\n });\n };\n;\n function kb() {\n ja = true;\n gb();\n lb();\n mb();\n hb();\n };\n;\n function lb() {\n var sb = ((q.getDocumentDimensions().y - ((q.getScrollPosition(\"JSBNG__document\").y + q.getViewportDimensions().y))));\n la = ((((sb > ya)) ? y : x));\n };\n;\n function mb() {\n var sb = ((((q.getViewportDimensions().y - xa)) - la)), tb = q.getElementDimensions(wa).y;\n if (((tb <= sb))) {\n ia = ((((0 - ka)) - z));\n return;\n }\n ;\n ;\n var ub = ((tb - ka)), vb = p.scry(ra, \"div.egoOrganicColumn\")[0];\n if (((((ub <= sb)) && vb))) {\n ia = 0;\n }\n else {\n var wb = p.scry(ra, \"div.ego_unit\").reverse(), xb = p.scry(ra, \"div._4u8\").length, yb = w.maxFixedAds;\n if (((xb <= w.maxFixedAds))) {\n yb = wb.length;\n }\n ;\n ;\n var zb = null;\n for (var ac = 0; ((ac < yb)); ac++) {\n var bc = wb[ac], cc = ((q.getElementPosition(bc, \"viewport\").y - q.getElementPosition(wa, \"viewport\").y)), dc = ((q.getElementDimensions(wa).y - cc));\n if (((dc > sb))) {\n if (((ac > 0))) {\n zb = wb[((ac - 1))];\n }\n ;\n ;\n break;\n }\n ;\n ;\n if (((ac == ((yb - 1))))) {\n zb = bc;\n }\n ;\n ;\n };\n ;\n if (((zb == null))) {\n ia = null;\n }\n else ia = ((q.getElementPosition(zb, \"viewport\").y - q.getElementPosition(ra, \"viewport\").y));\n ;\n ;\n }\n ;\n ;\n };\n;\n function nb(sb, tb) {\n ca = sb;\n tb = ((tb || za));\n var ub = ((sb ? ((tb + \"px\")) : \"\"));\n m.set(wa, \"JSBNG__top\", ub);\n o.conditionClass(wa, \"fixed_elem\", sb);\n var vb = p.scry(wa, \"div.displayedTickerToggleWrapper\")[0];\n ((vb && o.conditionClass(vb, \"toggleWrapperWithoutMargin\", ((sb && !ua)))));\n if (ea) {\n var wb = ((sb ? \"Ticker/fixed\" : \"Ticker/unfixed\"));\n l.inform(wb);\n }\n ;\n ;\n };\n;\n function ob() {\n if (((((!ea || !ua)) || o.hasClass(JSBNG__document.documentElement, \"tinyViewport\")))) {\n kb();\n return;\n }\n ;\n ;\n hb();\n var sb = q.getViewportDimensions().y, tb = 61, ub = ((q.getElementDimensions(wa).y - q.getElementDimensions(ta).y)), vb = q.getElementDimensions(ua).y, wb = ((((((((sb - ub)) - x)) - za)) - tb)), xb = ((w.tickerAbsMinHeight || 120)), yb = ((w.tickerMinHeight || 225));\n da = false;\n if (((wb < xb))) {\n da = true;\n nb(false);\n wb = xb;\n }\n else if (((wb < yb))) {\n if (((wb > ((yb - tb))))) {\n wb = yb;\n }\n else wb += tb;\n ;\n }\n \n ;\n ;\n var zb = Math.min(wb, vb, ((w.tickerMaxHeight || 425)));\n m.set(ta, \"height\", ((zb + \"px\")));\n };\n;\n function pb() {\n ea = true;\n eb();\n var sb = function() {\n if (eb()) {\n da = false;\n hb();\n ob();\n }\n ;\n ;\n };\n ((sa && t.show(sa, sb)));\n };\n;\n function qb() {\n ea = false;\n eb();\n kb();\n ((sa && t.hide(sa)));\n };\n;\n var rb = {\n init: function(sb) {\n w = sb;\n pa = g(\"contentCol\");\n qa = g(\"blueBar\");\n ha = 0;\n ga = Infinity;\n ga = JSBNG__Date.now();\n oa = i(ib, w.adsRefreshDelay);\n if (w.adsRefreshOnmove) {\n ma.push(v.listen(window, \"mousemove\", oa));\n }\n ;\n ;\n ma.push(v.listen(window, \"JSBNG__scroll\", oa));\n ma.push(v.listen(window, \"resize\", oa));\n ma.push(v.listen(window, \"resize\", j(ob)));\n xa = q.getElementDimensions(qa).y;\n ya = q.getElementDimensions(g(\"pageFooter\")).y;\n eb();\n cb();\n r.onLeave(fb);\n ma.push(v.listen(window, \"JSBNG__scroll\", j(hb)));\n if (!o.hasClass(JSBNG__document.documentElement, \"sidebarMode\")) {\n pb();\n }\n else if (w.enableSidebar) {\n qb();\n }\n \n ;\n ;\n bb();\n }\n };\n e.exports = rb;\n});\n__d(\"AsyncLayout\", [\"AjaxPipeRequest\",\"Arbiter\",\"AsyncRequest\",\"AsyncResponse\",\"CSS\",\"DOM\",\"HTML\",\"NavigationMessage\",\"PageTransitions\",\"URI\",\"$\",\"copyProperties\",\"emptyFunction\",\"ge\",\"goURI\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxPipeRequest\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"AsyncResponse\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"HTML\"), n = b(\"NavigationMessage\"), o = b(\"PageTransitions\"), p = b(\"URI\"), q = b(\"$\"), r = b(\"copyProperties\"), s = b(\"emptyFunction\"), t = b(\"ge\"), u = b(\"goURI\");\n function v(w) {\n this.canvasID = w;\n if (t(\"rightCol\")) {\n this.auxiliaryID = \"rightCol\";\n }\n ;\n ;\n if (t(\"headerArea\")) {\n this.headerID = \"headerArea\";\n }\n ;\n ;\n if (t(\"toolbarContainer\")) {\n this.toolbarID = \"toolbarContainer\";\n }\n ;\n ;\n this.waitingForAux = false;\n o.registerHandler(this.catchPageTransition.bind(this));\n this.subscription = h.subscribe(n.NAVIGATION_BEGIN, this.onNavigate.bind(this));\n };\n;\n r(v.prototype, {\n catchPageTransition: function(w) {\n this.subscription.unsubscribe();\n return false;\n },\n getCanvasID: function(w) {\n return ((w.sidecol ? \"contentCol\" : \"contentArea\"));\n },\n onNavigate: function(w, x) {\n var y = x.useAjaxPipe;\n x = x.params;\n if (x.endpoint) {\n if (this.request) {\n this.request.setFinallyHandler(s);\n this.request.abort();\n }\n ;\n ;\n if (this.sideRequest) {\n this.sideRequest.abort();\n }\n ;\n ;\n if (y) {\n this.request = new g().setURI(x.endpoint).setData(x).setCanvasId(this.getCanvasID(x)).setFinallyHandler(this.finallyHandler.bind(this)).setErrorHandler(this.errorHandler.bind(this)).setFirstResponseCallback(this.firstResponseCallback.bind(this)).send();\n }\n else {\n x.handled = true;\n this.waitingForAux = x.sidecol;\n var z = !!x.iframe, aa = new i().setOption(\"useIframeTransport\", z).setURI(new p(x.endpoint)).setReadOnly(true).setMethod(\"GET\").setData(x).setHandler(this.onResponse.bind(this)).setErrorHandler(this.errorHandler.bind(this)).setFinallyHandler(this.finallyHandler.bind(this));\n this.request = aa;\n aa.send();\n }\n ;\n ;\n }\n ;\n ;\n },\n onSideResponse: function(w) {\n var x = w.getPayload();\n if (((x && this.auxiliaryID))) {\n this.receivedAux(x);\n }\n ;\n ;\n },\n receivedAux: function(w) {\n !this.waitingForAux;\n this.waitingForAux = false;\n l.setContent(q(this.auxiliaryID), m(w));\n },\n onResponse: function(w) {\n var x = w.getPayload();\n if (x.redirect) {\n u(x.redirect);\n }\n else {\n var y = ((x.html || x));\n l.setContent(q(this.canvasID), m(y));\n if (((x.side_html && this.auxiliaryID))) {\n this.receivedAux(x.side_html);\n }\n ;\n ;\n if (((this.headerID && !x.keep_header))) {\n var z = q(this.headerID);\n l.setContent(z, m(((x.header_html || \"\"))));\n k.conditionShow(z, x.header_html);\n }\n ;\n ;\n if (((x.toolbar_html && this.toolbarID))) {\n l.setContent(q(this.toolbarID), m(x.toolbar_html));\n }\n ;\n ;\n if (x.js) {\n (new Function(x.js))();\n }\n ;\n ;\n k.conditionClass(\"contentCol\", \"hasRightCol\", ((this.auxiliaryID && !x.noRightSide)));\n var aa = t(\"rightCol\");\n if (((aa && x.noRightSide))) {\n l.empty(aa);\n }\n ;\n ;\n }\n ;\n ;\n var ba = w.getRequest().getData();\n h.inform(n.NAVIGATION_COMPLETED, ba.key);\n },\n errorHandler: function(w) {\n j.verboseErrorHandler(w);\n h.inform(n.NAVIGATION_FAILED);\n this.request = null;\n },\n firstResponseCallback: function(w) {\n window.JSBNG__scrollTo(0, 0);\n h.inform(n.NAVIGATION_FIRST_RESPONSE);\n },\n finallyHandler: function(w) {\n this.request = null;\n o.transitionComplete(true);\n h.inform(n.NAVIGATION_COMPLETED);\n }\n });\n e.exports = v;\n});\n__d(\"legacy:adware-scanner\", [\"AdwareScaner\",], function(a, b, c, d) {\n a.AdwareScaner = b(\"AdwareScaner\");\n}, 3);");
// 2738
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"5dFET\",]);\n}\n;\n;\n__d(\"TickerReadStateTracking\", [\"Style\",\"clickRefAction\",], function(a, b, c, d, e, f) {\n var g = b(\"Style\"), h = b(\"clickRefAction\"), i = 73, j = \"ticker_hover\", k = [];\n function l(n) {\n var o = JSON.parse(n.getAttribute(\"data-ft\"));\n if (!o) {\n return null;\n }\n ;\n ;\n if (o.mf_story_key) {\n return o.mf_story_key;\n }\n ;\n ;\n if (o.fbid) {\n return o.fbid;\n }\n ;\n ;\n return null;\n };\n;\n function m(n) {\n var o = l(n);\n if (((!o || ((o in k))))) {\n return;\n }\n ;\n ;\n k[o] = true;\n var p = {\n evt: i\n };\n h(j, n, null, \"FORCE\", {\n ft: p\n });\n };\n;\n e.exports.log = m;\n});\n__d(\"TickerRightHideController\", [\"CSS\",\"DOM\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"ge\");\n function j() {\n \n };\n;\n j._markAsClosedHelper = function(k) {\n var l = i(\"pagelet_reminders\");\n if (l) {\n var m = h.scry(l, \"div.tickerToggleWrapper\")[0];\n if (m) {\n g.conditionClass(m, \"displayedTickerToggleWrapper\", k);\n }\n ;\n ;\n }\n ;\n ;\n var n = i(\"pagelet_moments\");\n if (n) {\n var o = h.scry(n, \"div.tickerToggleWrapper\")[0];\n if (o) {\n g.conditionClass(o, \"displayedTickerToggleWrapper\", k);\n }\n ;\n ;\n }\n ;\n ;\n var p = i(\"pagelet_rhc_ticker\");\n if (p) {\n var q = h.scry(p, \"div.tickerToggleWrapper\")[0];\n if (q) {\n g.conditionClass(q, \"displayedTickerToggleWrapper\", !k);\n }\n ;\n ;\n g.conditionClass(p, \"hidden_rhc_ticker\", k);\n }\n ;\n ;\n };\n j.markAsClosed = function() {\n j._markAsClosedHelper(true);\n };\n j.markAsUnclosed = function() {\n j._markAsClosedHelper(false);\n };\n e.exports = j;\n});\n__d(\"legacy:TickerRightHideController\", [\"TickerRightHideController\",], function(a, b, c, d) {\n a.TickerRightHideController = b(\"TickerRightHideController\");\n}, 3);\n__d(\"TickerController\", [\"JSBNG__Event\",\"Animation\",\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"Bootloader\",\"ChannelConstants\",\"LegacyContextualDialog\",\"CSS\",\"DOM\",\"HTML\",\"JSLogger\",\"Keys\",\"LayerFadeOnHide\",\"LiveTimer\",\"NavigationMessage\",\"Parent\",\"Run\",\"ScrollableArea\",\"SelectorDeprecated\",\"Style\",\"TickerReadStateTracking\",\"Toggler\",\"UIPagelet\",\"URI\",\"UserActivity\",\"UserAgent\",\"Vector\",\"$\",\"clickRefAction\",\"collectDataAttributes\",\"copyProperties\",\"cx\",\"emptyFunction\",\"ge\",\"goURI\",\"throttle\",\"userAction\",\"TickerRHCPageletByGK\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Animation\"), i = b(\"Arbiter\"), j = b(\"AsyncRequest\"), k = b(\"AsyncSignal\"), l = b(\"Bootloader\"), m = b(\"ChannelConstants\"), n = b(\"LegacyContextualDialog\"), o = b(\"CSS\"), p = b(\"DOM\"), q = b(\"HTML\"), r = b(\"JSLogger\"), s = b(\"Keys\"), t = b(\"LayerFadeOnHide\"), u = b(\"LiveTimer\"), v = b(\"NavigationMessage\"), w = b(\"Parent\"), x = b(\"Run\"), y = b(\"ScrollableArea\"), z = b(\"SelectorDeprecated\"), aa = b(\"Style\"), ba = b(\"TickerReadStateTracking\"), ca = b(\"Toggler\"), da = b(\"UIPagelet\"), ea = b(\"URI\"), fa = b(\"UserActivity\"), ga = b(\"UserAgent\"), ha = b(\"Vector\"), ia = b(\"$\"), ja = b(\"clickRefAction\"), ka = b(\"collectDataAttributes\"), la = b(\"copyProperties\"), ma = b(\"cx\"), na = b(\"emptyFunction\"), oa = b(\"ge\"), pa = b(\"goURI\"), qa = b(\"throttle\"), ra = b(\"userAction\"), sa = 1, ta = 2, ua = 3, va = 4, wa = r.create(\"ticker_controller\");\n function xa() {\n \n };\n;\n la(xa, {\n _instances: {\n },\n _activeInstance: null,\n _placeholders: {\n },\n _logPositionChange: false,\n getInstance: function(ya) {\n var za = w.byClass(ia(ya), \"fbFeedTicker\");\n return ((za ? xa._instances[za.id] : null));\n },\n isLoaded: function(ya) {\n var za = xa._placeholders[ya.id];\n return ((!za || ((za.JSBNG__status == ua))));\n },\n show: function(ya, za) {\n za = ((za || na));\n {\n var fin141keys = ((window.top.JSBNG_Replay.forInKeys)((xa._instances))), fin141i = (0);\n var ab;\n for (; (fin141i < fin141keys.length); (fin141i++)) {\n ((ab) = (fin141keys[fin141i]));\n {\n var bb = oa(ab);\n if (((!bb || ((bb.parentNode.id == ya.id))))) {\n continue;\n }\n ;\n ;\n xa.hide(bb.parentNode);\n };\n };\n };\n ;\n xa._doPositionChange(ya);\n o.show(ya);\n var cb = xa._placeholders[ya.id];\n if (((cb && ((cb.JSBNG__status == sa))))) {\n xa._fetchTickerForPlaceholder(ya, za);\n }\n else {\n var db = p.scry(ya, \".fbFeedTicker\")[0], eb = ((db && xa.getInstance(db)));\n xa._activeInstance = eb;\n ((eb && eb._poll()));\n xa._placeholders[ya.id] = {\n JSBNG__status: va,\n callback: za\n };\n za();\n }\n ;\n ;\n },\n _doPositionChange: function(ya) {\n if (((!xa._logPositionChange || o.shown(ya)))) {\n return;\n }\n ;\n ;\n new k(\"/common/ods_endpoint.php\", {\n k: ((\"ticker.render.switch.\" + ya.id))\n }).send();\n },\n hide: function(ya) {\n var za = p.scry(ya, \".fbFeedTicker\")[0], ab = ((za && xa.getInstance(za)));\n ((ab && ab.hideActiveStory()));\n o.hide(ya);\n },\n hideStoriesByClass: function(ya) {\n {\n var fin142keys = ((window.top.JSBNG_Replay.forInKeys)((xa._instances))), fin142i = (0);\n var za;\n for (; (fin142i < fin142keys.length); (fin142i++)) {\n ((za) = (fin142keys[fin142i]));\n {\n p.scry(ia(za), ya).forEach(o.hide);\n ;\n };\n };\n };\n ;\n },\n hideStory: function(ya) {\n var za = ((ya && xa.getInstance(ya)));\n ((za && za.hideStory(ya)));\n },\n undoHideStory: function(ya) {\n var za = ((ya && xa.getInstance(ya)));\n ((za && za.undoHideStory(ya)));\n },\n insertStoriesAtBottom: function(ya) {\n xa._activeInstance.insertStoriesAtBottom(ya);\n },\n _fetchTickerForPlaceholder: function(ya, za) {\n var ab = {\n handler: function() {\n xa._placeholders[ya.id].JSBNG__status = ua;\n za();\n }\n }, bb = b(\"TickerRHCPageletByGK\"), cb = bb.pagelet_name;\n da.loadFromEndpoint(cb, ya.id, xa._placeholders[ya.id].pageletData, ab);\n xa._placeholders[ya.id].JSBNG__status = ta;\n },\n registerStoryDialog: function(ya, za) {\n i.subscribe(\"ticker/init\", function() {\n var ab = oa(ya), bb = ((ab && xa.getInstance(ab)));\n ((bb && bb.registerStoryDialog(ab, za)));\n }, i.SUBSCRIBE_ALL);\n },\n registerPlaceholder: function(ya, za) {\n var ab = xa._placeholders[ya];\n xa._placeholders[ya] = {\n JSBNG__status: sa,\n pageletData: za\n };\n if (((ab && ((ab.JSBNG__status == va))))) {\n xa.show(ia(ya));\n ab.callback();\n }\n ;\n ;\n }\n });\n la(xa.prototype, {\n ADS_IDLE_MS: 300000,\n FLYOUT_MAX_HEIGHT: 450,\n FLYOUT_OFFSET_THRESHOLD: 20,\n FLYOUT_COMMENT_OFFSET: 15,\n FLYOUT_VIEWPORT_PADDING: 75,\n FLYOUT_TARGET_HEIGHT_OFFSET: 25,\n init: function(ya, za, ab) {\n xa._instances[ya.id] = this;\n xa._activeInstance = this;\n this._root = ya;\n this._content = p.JSBNG__find(ya, \".ticker_stream\");\n this._stories = p.JSBNG__find(this._root, \".tickerActivityStories\");\n this._scrollableArea = za;\n this._container = p.JSBNG__find(ya, \"div.uiScrollableAreaWrap\");\n this._newestStory = {\n };\n this._storyIDs = [];\n this._objectIDs = [];\n this._fetchedStories = {\n };\n this._removedStoryIDs = [];\n this._storiesToRemove = [];\n var bb = JSBNG__Date.now();\n this._initTime = bb;\n this._lastUpdate = bb;\n this._lastPull = bb;\n this._lastInsert = bb;\n this._lastCustomStory = 0;\n this._pollOnly = false;\n this._needNonCustomStoryNum = 0;\n this._doCustomUpdate = true;\n this._autoloadStoryIndex = 1;\n this._scrollTopThreshold = 100;\n this._scrollTopPrompt = p.JSBNG__find(this._root, \".scrollTopPrompt\");\n this._scrollTopPromptVisible = false;\n this._maxStoriesToKeep = 50;\n this._minStoriesToKeep = 25;\n this._tickerInSidebarMode = !!w.byClass(this._root, \"fbChatSidebar\");\n this._loadStoriesWithActions();\n ja(\"ticker_flyout\");\n ja(\"ticker_flyout_prefetch\");\n ja(\"ticker_flyout_loadtime\");\n ja(\"ticker_stream\");\n this._ua = {\n flyout: ra(\"ticker\").uai(\"flyout\", \"flyout\", false),\n flyout_prefetch: ra(\"ticker\").uai(\"flyout_prefetch\", \"flyout_prefetch\", false),\n flyout_loadtime: ra(\"ticker\").uai(\"ticker_flyout_loadtime\", \"flyout_loadtime\", false),\n stream: ra(\"ticker\").uai(\"ticker_stream\", \"stream\", false)\n };\n this._uaCurStoryIDFetch = null;\n this._uaCurStoryIDPrefetch = null;\n var cb = p.create(\"div\", {\n className: \"storyQueue hidden_elem\"\n });\n this._storyQueue = cb;\n p.appendContent(this._root, cb);\n this._initObjectIDs();\n this._initConfig(ab);\n this._resetMorePager();\n this._initListeners();\n this._initSubscriptions(ab);\n i.inform(\"ticker/init\", this, i.BEHAVIOR_PERSISTENT);\n this._poll();\n if (this._prefetchAfterLoad) {\n this._logUserEvent(\"stream\", \"prefetch\");\n this._fetchStories(this._getInsertedStories().slice(0, 5));\n }\n ;\n ;\n },\n _loadStoriesWithActions: function() {\n var ya = oa(\"rightCol\");\n if (!ya) {\n return;\n }\n ;\n ;\n this._toggleWrapper = p.scry(ya, \".tickerToggleWrapper\")[0];\n if (this._toggleWrapper) {\n var za = p.scry(this._stories, \".tickerStoryWithButton\");\n this._storiesWithActions = {\n };\n for (var ab = 0; ((ab < za.length)); ab++) {\n var bb = za[ab];\n this._storiesWithActions[bb.getAttribute(\"data-story-key\")] = bb;\n };\n ;\n }\n ;\n ;\n },\n _initConfig: function(ya) {\n la(this, {\n _newest: ya.newest,\n _page_newest: ya.newest,\n _timeout: ya.timeout,\n _heartbeatTimeout: Math.min(5000, ya.heartbeatTimeout),\n _maxHeartbeatTimeout: Math.max(30000, ya.maxHeartbeatTimeout),\n _pullTimeout: Math.max(30000, ya.pullTimeout),\n _insertTimeout: ya.insertTimeout,\n _friendCount: ya.friendCount,\n _maxQueueLength: ya.maxQueueLength,\n _heartbeatEndpoint: ya.heartbeatEndpoint,\n _noPoll: ya.nopoll,\n _maxCustomQueueLength: ya.maxCustomQueueLength,\n _customStoryInsertTimeout: Math.max(5000, ya.customStoryInsertTimeout),\n _nonCustomToCustomStoryRatio: ya.nonCustomToCustomStoryRatio,\n _minForceUpdateInterval: Math.max(ya.insertTimeout, ya.minForceUpdateInterval),\n _popupOnHover: ya.popupOnHover,\n _priorityAppId: ya.priorityAppId,\n _prefetchOnHover: ya.prefetchStoriesOnHover,\n _userIdleTimeout: ya.userIdleTimeout,\n _firstCustomStoryDelay: ya.firstCustomStoryDelay,\n _pollOnly: ya.pollOnly,\n _tickerSource: ya.tickerSource,\n _prefetchAfterLoad: ya.prefetchAfterLoad,\n _logFlyouts: ya.logFlyouts,\n _userScrollGaurdDelay: ya.userScrollGaurdDelay,\n _rescheduleScrollToTopDelay: ya.rescheduleScrollToTopDelay,\n _aggressiveRegulator: ya.aggressiveRegulator\n });\n this._queueCustomStories(ya.customStories);\n },\n _initListeners: function() {\n this._listeners = g.listen(this._root, {\n click: this._handleClick.bind(this),\n keydown: this._handleKeydown.bind(this),\n mouseout: this._handleMouseout.bind(this),\n mouseover: this._handleMouseover.bind(this),\n mousedown: this._tickerDeClicker.bind(this),\n mouseup: this._handleMouseup.bind(this)\n });\n this._listeners.JSBNG__scroll = g.listen(this._container, \"JSBNG__scroll\", this._handleScroll.bind(this));\n this._initInfiniteScrollListener.bind(this).defer();\n },\n _initSubscriptions: function(ya) {\n x.onLeave(this._cleanup.bind(this));\n this._subscriptions = [i.subscribe(v.NAVIGATION_BEGIN, this._onNavHandler.bind(this)),i.subscribe(\"composer/publish\", this._handleComposerPublish.bind(this)),i.subscribe(\"Ticker/storiesInserted\", this._handleStoriesInserted.bind(this)),i.subscribe(\"Ticker/fixed\", this._setFixed.bind(this, true)),i.subscribe(\"Ticker/unfixed\", this._setFixed.bind(this, false)),i.subscribe(\"Ticker/resized\", this._checkInfiniteScroll.bind(this)),i.subscribe(\"ufi/comment\", this._scrollDialogToBottom.bind(this)),i.subscribe(\"Ticker/chatOpened\", this._handleChatOpened.bind(this)),];\n if (!ya.pollOnly) {\n this._subscriptions.push(i.subscribe(m.getArbiterType(\"ticker_update\"), this._handleTickerPush.bind(this)));\n }\n ;\n ;\n if (((ya.pushChannel && !ya.pollOnly))) {\n this.setPushChannel(ya.pushChannel);\n }\n ;\n ;\n },\n _handleClick: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget();\n if (this._getButtonFromNode(ya)) {\n this._logUserAction(ya, \"click\", JSBNG__event);\n this._handleActionButton(JSBNG__event);\n return;\n }\n ;\n ;\n var za = this._getStoryFromNode(ya), ab = w.byClass(ya, \"tickerStoryAllowClick\");\n if (((((!za || ((za == this._selectedStory)))) || ab))) {\n return;\n }\n ;\n ;\n if (this._storyIsHidden(za)) {\n return;\n }\n ;\n ;\n if (((((za == this._activeStory)) && !this._selectedStory))) {\n this._selecting = true;\n }\n ;\n ;\n this._clearNux();\n this._logUserEvent(\"flyout\", \"click\");\n this._logUserEvent(\"flyout_loadtime\", \"open\");\n if (this._storyCanOpenExternally(za)) {\n var bb = za.getAttribute(\"data-href\");\n if (((bb && !ya.getAttribute(\"href\")))) {\n var cb = {\n href: bb\n }, db = ka(ya, [\"ft\",\"gt\",]);\n ja(\"click\", cb, JSBNG__event, \"FORCE\", db);\n ra(\"ticker\", cb, JSBNG__event).uai(\"click\");\n }\n else this._logUserAction(ya, \"click\", JSBNG__event);\n ;\n ;\n this._openStoryExternally(za, JSBNG__event);\n return;\n }\n ;\n ;\n this._logUserAction(ya, \"flyout\", JSBNG__event);\n this._activateStory(za, \"click\");\n this._selectStory(za);\n },\n _handleMouseover: function(JSBNG__event) {\n this._setLocked(true);\n var ya = JSBNG__event.getTarget(), za = this._getOpenableStory(ya);\n if (!za) {\n return;\n }\n ;\n ;\n JSBNG__event.kill();\n if (((this._prefetchOnHover || this._popupOnHover))) {\n if (!((za.id in this._fetchedStories))) {\n this._logUserEvent(\"flyout_prefetch\", \"prefetch_on_hover\");\n this._uaCurStoryIDPrefetch = za.id;\n }\n ;\n ;\n this._fetchStory(za);\n }\n ;\n ;\n if (this._selectedStory) {\n return;\n }\n ;\n ;\n if (this._popupOnHover) {\n this._clearHoverTimeouts();\n var ab = ((this._storyCanOpenExternally(za) ? 500 : 1000)), bb = ((this._activeStory ? 75 : ab));\n this._hoverShowTimeout = this._setTimeout(function() {\n this._logUserEvent(\"flyout\", \"hover\", bb);\n this._logUserEvent(\"flyout_loadtime\", \"open\");\n this._activateStory(za, \"hover\");\n this._logUserAction(ya, \"flyout\", JSBNG__event);\n }.bind(this), bb);\n }\n ;\n ;\n },\n _handleMouseout: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget();\n this._setLocked(false);\n if (((ya == this._getStoryFromNode(ya)))) {\n var za = p.scry(ya.parentNode, \".openToggler\");\n for (var ab = 0; ((ab < za.length)); ab++) {\n z.toggle(za[ab]);\n ;\n };\n ;\n }\n ;\n ;\n this._clearClickedStory();\n this._scheduleHide();\n },\n _handleKeydown: function(JSBNG__event) {\n this._tickerDeClicker(JSBNG__event);\n var ya = this._activeStory;\n if (!ya) {\n return;\n }\n ;\n ;\n var za = g.getKeyCode(JSBNG__event);\n switch (za) {\n case s.UP:\n \n case s.DOWN:\n var ab = this._getInsertedStories(), bb;\n if (JSBNG__event.getModifiers().any) {\n bb = ((((za === s.UP)) ? 0 : ((ab.length - 1))));\n }\n else bb = ((ab.indexOf(ya) + ((((za === s.UP)) ? -1 : 1))));\n ;\n ;\n ya = ab[bb];\n break;\n case s.ESC:\n this._deactivateStory(true);\n return;\n default:\n return;\n };\n ;\n JSBNG__event.kill();\n if (!ya) {\n return;\n }\n ;\n ;\n this._activateStory(ya, \"keypress\");\n this._selectStory(ya);\n },\n _fadeTopmostStoryButton: function() {\n var ya = 0, za = 15;\n if (this._storiesWithActions) {\n {\n var fin143keys = ((window.top.JSBNG_Replay.forInKeys)((this._storiesWithActions))), fin143i = (0);\n var ab;\n for (; (fin143i < fin143keys.length); (fin143i++)) {\n ((ab) = (fin143keys[fin143i]));\n {\n var bb = this._storiesWithActions[ab], cb = p.scry(bb, \".tickerInlineActionButton\")[0], db = p.scry(cb, \".tickerActionIcon\")[0], eb = ((ha.getElementPosition(cb).y - ha.getElementPosition(this._toggleWrapper).y));\n if (((eb < ya))) {\n aa.set(cb, \"opacity\", 0);\n aa.set(db, \"opacity\", 0);\n }\n else if (((((eb >= ya)) && ((eb < za))))) {\n var fb = ((((eb - ya)) / ((za - ya))));\n aa.set(cb, \"opacity\", fb);\n aa.set(db, \"opacity\", fb);\n break;\n }\n else {\n aa.set(cb, \"opacity\", 1);\n aa.set(db, \"opacity\", 1);\n }\n \n ;\n ;\n };\n };\n };\n }\n ;\n ;\n },\n _handleScroll: function() {\n if (!this._preventScrollDismiss) {\n this._deactivateStory(true);\n }\n else this._preventScrollDismiss = false;\n ;\n ;\n if (!this._handleScrollThrottled) {\n this._handleScrollThrottled = qa(this._handleScrollInner.bind(this));\n }\n ;\n ;\n this._handleScrollThrottled();\n },\n _handleScrollInner: function() {\n this._fadeTopmostStoryButton();\n this._checkInfiniteScroll();\n this._setIsUserScrolling();\n if (!this._scrollLogged) {\n this._scrollLogged = true;\n var ya = this._stories.childNodes.length, za = this._stories.getAttribute(\"data-gt\"), ab = {\n ticker_scroll: 1,\n number_stories: ya,\n source: za\n };\n ja(\"JSBNG__scroll\", null, null, \"FORCE\", {\n gt: ab\n });\n ra(\"ticker\").uai(\"JSBNG__scroll\");\n }\n ;\n ;\n },\n _setIsUserScrolling: function() {\n JSBNG__clearTimeout(this._userScrollingToken);\n if (this._isScrolledToTop()) {\n this._userScrolling = false;\n return;\n }\n ;\n ;\n this._userScrolling = true;\n this._userScrollingToken = JSBNG__setTimeout(function() {\n this._userScrolling = false;\n this._userScrollingToken = null;\n }.bind(this), this._userScrollGaurdDelay);\n },\n _isUserScrolling: function() {\n return this._userScrolling;\n },\n _handleStoriesInserted: function() {\n this._initInfiniteScrollListener();\n if (((this._scrollableArea instanceof y))) {\n this._scrollableArea.adjustGripper();\n }\n else wa.error(\"wrong_scrollable_area\", {\n JSBNG__dump: this\n });\n ;\n ;\n this._logUserEvent(\"stream\", \"insert\");\n },\n _handleActionButton: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget(), za = this._getOpenableStory(ya), ab = this._getStoryDialog(za);\n if (ab) {\n var bb = ab.subscribe(\"beforehide\", function() {\n ab.unsubscribe(bb);\n return false;\n });\n }\n ;\n ;\n },\n _handleScrollToTopClick: function() {\n this._scrollToTop(this._poll.bind(this));\n },\n _scheduleScrollToTop: function() {\n ((this._scrollToTopToken && JSBNG__clearTimeout(this._scrollToTopToken)));\n this._scrollToTopToken = JSBNG__setTimeout(function() {\n if (((this._isLocked() || this._isUserScrolling()))) {\n this._scheduleScrollToTop();\n }\n else {\n this._scrollToTopToken = null;\n this._scrollToTop();\n }\n ;\n ;\n }.bind(this), this._rescheduleScrollToTopDelay);\n },\n _scrollToTop: function(ya) {\n new h(this._container).to(\"scrollTop\", 0).ease(h.ease.end).ondone(ya).go();\n },\n _clearHoverTimeouts: function() {\n JSBNG__clearTimeout(this._hoverShowTimeout);\n JSBNG__clearTimeout(this._hoverHideTimeout);\n },\n _getAllStories: function() {\n return p.scry(this._root, \"div.fbFeedTickerStory\");\n },\n _getInsertedStories: function() {\n return this._getAllStories().filter(function(ya) {\n return ((!o.hasClass(ya, \"queuedStory\") && !o.hasClass(ya, \"customStory\")));\n });\n },\n _getQueuedStories: function() {\n return p.scry(this._storyQueue, \".fbFeedTickerStory.queuedStory\");\n },\n _getQueuedCustomStories: function() {\n return p.scry(this._storyQueue, \".fbFeedTickerStory.customStory\");\n },\n _getButtonFromNode: function(ya) {\n return w.byClass(ya, \"tickerInlineOverlay\");\n },\n _getStoryFromNode: function(ya) {\n return w.byClass(ya, \"fbFeedTickerStory\");\n },\n _getActionButtonFromStory: function(ya) {\n return p.scry(ya, \".tickerInlineActionButton\")[0];\n },\n _getOpenableStory: function(ya) {\n var za = this._getStoryFromNode(ya);\n return ((this._storyCanOpenDialog(za) ? za : null));\n },\n _getStoryDialog: function(ya) {\n return n.getInstance(ya);\n },\n _getStoryDialogEndpoint: function(ya) {\n return ((((((ya && ((ya.getAttribute(\"data-rel\") == \"async\")))) && ya.getAttribute(\"data-ajaxify\"))) || null));\n },\n _storyCanOpenDialog: function(ya) {\n return ((!!this._getStoryDialogEndpoint(ya) && !this._storyIsHidden(ya)));\n },\n _storyCanOpenExternally: function(ya) {\n return ((!!ya.getAttribute(\"data-href\") || !this._storyCanOpenDialog(ya)));\n },\n _storyIsHidden: function(ya) {\n return o.hasClass(ya, \"tickerStoryHidden\");\n },\n hideActiveStory: function() {\n ((this._activeStory && this.hideStory(this._activeStory)));\n },\n hideStory: function(ya) {\n this._deactivateStory();\n if (((p.getText(ya) === \"\"))) {\n p.remove(ya);\n }\n ;\n ;\n o.addClass(ya, \"tickerStoryHidden\");\n o.removeClass(ya, \"tickerStoryClickable\");\n },\n undoHideStory: function(ya) {\n o.addClass(ya, \"tickerStoryClickable\");\n o.removeClass(ya, \"tickerStoryHidden\");\n },\n insertStoriesAtBottom: function(ya) {\n if (!ya) {\n return;\n }\n ;\n ;\n var za = p.create(\"div\");\n za.appendChild(ya);\n var ab = p.scry(za, \".fbFeedTickerStory\"), bb = p.JSBNG__find(za, \".tickerMorePager\"), cb = [];\n for (var db = 0; ((db < ab.length)); db++) {\n if (!this.dedupeStory(ab[db])) {\n cb.push(ab[db]);\n }\n ;\n ;\n };\n ;\n if (cb.length) {\n cb.push(bb);\n p.replace(p.JSBNG__find(this._root, \".tickerMorePager\"), cb);\n }\n ;\n ;\n i.inform(\"Ticker/storiesInserted\");\n },\n _scheduleHide: function() {\n if (((this._popupOnHover && !this._selectedStory))) {\n this._clearHoverTimeouts();\n this._hoverHideTimeout = this._setTimeout(this._deactivateStory.bind(this), 100);\n }\n ;\n ;\n },\n _setScrollTopPromptVisible: function(ya) {\n this._scrollTopPromptVisible = ya;\n o.conditionShow(this._scrollTopPrompt, ya);\n if (((ya && !this._listeners.scrollTop))) {\n this._listeners.scrollTop = g.listen(this._scrollTopPrompt, {\n click: this._handleScrollToTopClick.bind(this)\n });\n }\n else if (((!ya && this._listeners.scrollTop))) {\n this._listeners.scrollTop.click.remove();\n this._listeners.scrollTop = null;\n }\n \n ;\n ;\n },\n _isUserIdle: function() {\n return !fa.isActive(this._userIdleTimeout);\n },\n _schedulePoll: function() {\n JSBNG__clearTimeout(this._pollToken);\n this._pollToken = this._setTimeout(this._poll.bind(this), this._timeout);\n },\n _poll: function() {\n if (!this._isTickerVisible()) {\n return;\n }\n ;\n ;\n if (((this._storiesToRemove.length > 0))) {\n if (this._isInsertingStory) {\n return this._schedulePoll();\n }\n ;\n ;\n var ya = this._storiesToRemove.pop();\n this.removeStory(ya);\n }\n ;\n ;\n var za = ((!this._isScrolledToTop() && this._getQueuedStories().length));\n this._setScrollTopPromptVisible(za);\n var ab = JSBNG__Date.now(), bb = ((ab - this._lastInsert));\n if (((((bb < this._insertTimeout)) || this._isLocked()))) {\n return this._schedulePoll();\n }\n ;\n ;\n var cb = this._getQueuedStories(), db = this._getQueuedCustomStories(), eb = this._isUserIdle(), fb = ((cb.length > 0)), gb = ((((((((db.length > 0)) && !eb)) && ((((ab - this._initTime)) > this._firstCustomStoryDelay)))) && ((((this._needNonCustomStoryNum === 0)) || ((!fb && ((((ab - this._lastCustomStory)) > this._customStoryInsertTimeout))))))));\n if (gb) {\n this.insertStory(db.shift());\n this._lastCustomStory = ab;\n this._needNonCustomStoryNum = this._nonCustomToCustomStoryRatio;\n return this._schedulePoll();\n }\n ;\n ;\n if (fb) {\n this.insertStory(cb.shift());\n this._needNonCustomStoryNum--;\n if (((this._needNonCustomStoryNum < 0))) {\n this._needNonCustomStoryNum = 0;\n }\n ;\n ;\n return this._schedulePoll();\n }\n ;\n ;\n if (eb) {\n return fa.subscribeOnce(this._poll.bind(this));\n }\n ;\n ;\n var hb = ((((((((((db.length === 0)) && ((this._needNonCustomStoryNum === 0)))) && ((this._nonCustomToCustomStoryRatio > 0)))) && fa.isActive(this.ADS_IDLE_MS))) && ((((ab - this._lastUpdate)) > this._minForceUpdateInterval)))), ib = false, jb = false;\n if (this._pollOnly) {\n jb = ((((ab - this._lastUpdate)) > this._heartbeatTimeout));\n }\n else ib = ((((ab - this._lastPull)) > this._pullTimeout));\n ;\n ;\n var kb = ((((((hb && this._doCustomUpdate)) || ib)) || jb));\n if (!kb) {\n return this._schedulePoll();\n }\n ;\n ;\n if (hb) {\n this._doCustomUpdate = false;\n }\n ;\n ;\n this.update({\n pull: ib,\n fullpoll: jb,\n needcustomstory: hb\n });\n },\n _updatePollOnlyHeartbeatTimeout: function() {\n if (((this._pollOnly && ((this._heartbeatTimeout < this._maxHeartbeatTimeout))))) {\n this._heartbeatTimeout = Math.min(((this._heartbeatTimeout + 5000)), this._maxHeartbeatTimeout);\n }\n ;\n ;\n },\n update: function(ya) {\n this._updatePollOnlyHeartbeatTimeout();\n if (((this._noPoll && !this._pollOnly))) {\n return this._schedulePoll();\n }\n ;\n ;\n var za = {\n newest: ((((ya.fullpoll || ya.cache_update)) ? this._newest : this._page_newest)),\n storyids: this._storyIDs,\n friendcount: this._friendCount,\n priorityappid: this._priorityAppId,\n source: this._tickerSource,\n needcustomstory: ((this._nonCustomToCustomStoryRatio > 0))\n };\n la(za, ya);\n new j().setURI(this._heartbeatEndpoint).setReadOnly(true).setOption(\"retries\", 0).setData(za).setHandler(this._handleResponse.bind(this)).setFinallyHandler(this._poll.bind(this)).setAllowCrossPageTransition(true).send();\n this._lastUpdate = JSBNG__Date.now();\n if (za.pull) {\n this._lastPull = this._lastUpdate;\n }\n ;\n ;\n this._storyIDs = [];\n },\n insertStory: function(ya, za, ab) {\n this._lastInsert = JSBNG__Date.now();\n ((window.LiveTimer && u.addTimeStamps(ya)));\n o.removeClass(ya, \"queuedStory\");\n o.removeClass(ya, \"customStory\");\n if (((za !== false))) {\n var bb = ((ab ? this._fadeStoryIn : this._flyStoryIn));\n if (this._isUserScrolling()) {\n var cb = function() {\n this._container.scrollTop = ((this._container.scrollTop + this._stories.firstChild.offsetHeight));\n this._scheduleScrollToTop();\n }.bind(this);\n this._fadeStoryIn(ya, cb);\n }\n else this._scrollToTop(bb.bind(this, ya));\n ;\n ;\n }\n else p.prependContent(this._stories, ya);\n ;\n ;\n if (((this._storiesWithActions && o.hasClass(ya, \"tickerStoryWithButton\")))) {\n this._storiesWithActions[ya.getAttribute(\"data-story-key\")] = ya;\n }\n ;\n ;\n this._removeOldStories();\n },\n _removeOldStories: function() {\n var ya = this._getInsertedStories();\n if (((ya.length <= this._maxStoriesToKeep))) {\n return;\n }\n ;\n ;\n var za = this._minStoriesToKeep, ab = ya.slice(za);\n ab.forEach(p.remove);\n if (this._storiesWithActions) {\n for (var bb = 0; ((bb < ab.length)); bb++) {\n delete this._storiesWithActions[ab[bb].getAttribute(\"data-story-key\")];\n ;\n };\n }\n ;\n ;\n this._resetMorePager();\n },\n _resetMorePager: function() {\n var ya = this._getInsertedStories();\n if (((!ya || !ya.length))) {\n return;\n }\n ;\n ;\n var za = ya[((ya.length - 1))].getAttribute(\"data-ticker-timestamp\"), ab = p.scry(this._root, \".tickerMorePager a\")[0];\n if (((!ab || !za))) {\n return;\n }\n ;\n ;\n var bb = new ea(ab.getAttribute(\"ajaxify\"));\n bb.addQueryData({\n oldest: za\n });\n ab.setAttribute(\"ajaxify\", bb);\n },\n _setLocked: function(ya) {\n this._locked = ya;\n },\n _isLocked: function() {\n return !!((this._locked || this._activeStory));\n },\n informAndRemoveStory: function(ya, za, ab) {\n var bb = this._getStoryFromNode(ya), cb = bb.getAttribute(\"data-story-key\");\n p.setContent(bb, za);\n o.addClass(bb, \"highlightedStory\");\n this._setTimeout(this.removeStory.bind(this, cb), ((ab || 6000)));\n },\n _getStoryByStoryKey: function(ya) {\n var za = this._getAllStories();\n for (var ab = 0; ((ab < za.length)); ab++) {\n var bb = za[ab];\n if (((bb.getAttribute(\"data-story-key\") == ya))) {\n return bb;\n }\n ;\n ;\n };\n ;\n return null;\n },\n removeStory: function(ya) {\n this._removedStoryIDs[ya] = true;\n var za = this._getStoryByStoryKey(ya);\n if (!za) {\n return;\n }\n ;\n ;\n if (this._storiesWithActions) {\n delete this._storiesWithActions[ya];\n }\n ;\n ;\n if (((za == this._activeStory))) {\n this._deactivateStory();\n }\n ;\n ;\n var ab = this._getStoryDialog(za);\n ((ab && ab.destroy()));\n if (o.hasClass(za, \"queuedStory\")) {\n p.remove(za);\n return;\n }\n ;\n ;\n this._animateStoryOut(za);\n },\n _isScrolledToTop: function() {\n return ((this._container.scrollTop <= this._scrollTopThreshold));\n },\n _flyStoryIn: function(ya) {\n var za = p.create(\"div\", {\n style: {\n marginTop: \"-1000px\"\n }\n }, ya);\n aa.set(za, \"opacity\", 0);\n p.prependContent(this._stories, za);\n var ab = ha.getElementDimensions(za).y;\n aa.set(za, \"marginTop\", ((((\"-\" + ab)) + \"px\")));\n this._isInsertingStory = true;\n new h(za).to(\"marginTop\", 0).ease(h.ease.end).checkpoint(21801).to(\"opacity\", 1).ondone(function() {\n p.replace(za, ya);\n this._afterInsert(ya);\n this._isInsertingStory = false;\n }.bind(this)).go();\n },\n _fadeStoryIn: function(ya, za) {\n new h(this._stories).to(\"opacity\", 21991).ondone(function() {\n p.prependContent(this._stories, ya);\n if (za) {\n za();\n }\n ;\n ;\n new h(this._stories).to(\"opacity\", 1).ondone(function() {\n this._afterInsert(ya);\n }.bind(this)).go();\n }.bind(this)).go();\n },\n _animateStoryOut: function(ya) {\n var za = p.create(\"div\", {\n style: {\n overflow: \"hidden\",\n position: \"relative\"\n }\n });\n p.insertBefore(ya, za);\n p.appendContent(za, ya);\n new h(za).to(\"JSBNG__top\", 20).to(\"height\", 0).to(\"opacity\", 0).ease(h.ease.end).ondone(function() {\n p.remove(za);\n i.inform(\"Ticker/animateOut\");\n }.bind(this)).go();\n },\n _afterInsert: function(ya) {\n i.inform(\"Ticker/afterInsert\");\n },\n setPushChannel: function(ya) {\n ((this._pushSubscription && this._pushSubscription.unsubscribe()));\n this._pushSubscription = i.subscribe(m.getArbiterType(ya), this._handleTickerPush.bind(this));\n d([\"ChatConfig\",\"ChannelConnection\",], function(za, ab) {\n this._channelConnection = ab;\n this._checkChannelConnection();\n this._channelConnectionSubscription = this._channelConnection.subscribe([this._channelConnection.CONNECTED,this._channelConnection.RECONNECTING,this._channelConnection.SHUTDOWN,this._channelConnection.MUTE_WARNING,this._channelConnection.UNMUTE_WARNING,], this._handleChannelConnection.bind(this));\n }.bind(this));\n },\n _checkChannelConnection: function() {\n o.conditionClass(this._root, \"disconnected\", this._channelConnection.disconnected());\n },\n setCurrentAppId: function(ya) {\n this._priorityAppId = ya;\n },\n _handleTickerPush: function(ya, za) {\n var ab = za.obj;\n if (ab.delete_id) {\n this._storiesToRemove.push(ab.delete_id);\n return;\n }\n ;\n ;\n if (ab.fromups) {\n if (ab.do_logging) {\n this._logDarkLaunch(ab);\n }\n ;\n }\n ;\n ;\n var bb = ab.story_xhp;\n if (!bb) {\n return;\n }\n ;\n ;\n this._newest = ab.story_time;\n var cb = q(bb).getRootNode();\n this.queueStory(cb, ab.flyout_js_cmds);\n if (((this._aggressiveRegulator && ((ab.actor == this._newestStory.actorID))))) {\n this.removeStory(this._newestStory.storyKey);\n new k(\"/common/ods_endpoint.php\", {\n k: \"ticker.aggr.remove\"\n }).send();\n }\n ;\n ;\n this._newestStory = {\n actorID: ab.actor,\n storyKey: cb.getAttribute(\"data-story-key\")\n };\n },\n _handleComposerPublish: function(ya, za) {\n ((za.tickerMarkup && this.insertStory(za.tickerMarkup)));\n },\n _clearNux: function() {\n var ya = p.scry(JSBNG__document.body, \"div.tickerNUXContainer\");\n if (ya.length) {\n ya.forEach(function(za) {\n var ab = n.getInstance(za);\n ((ab && ab.hide()));\n });\n new j().setURI(\"/ajax/feed/ticker/nux.php\").send();\n }\n ;\n ;\n this._clearNux = na;\n },\n _logDarkLaunch: function(ya) {\n var za = {\n actor: ya.actor,\n story_time: ya.story_time,\n key: ya.story_obj_id,\n dark: 1\n };\n new j().setURI(\"/alite/push/log.php\").setData({\n msg: JSON.stringify(za)\n }).send();\n },\n _logRender: function() {\n if (this._loggedRender) {\n return;\n }\n ;\n ;\n var ya = this._tickerInSidebarMode;\n if (((ya || w.byClass(this._content, \"home_right_column\")))) {\n new k(\"/ajax/log_ticker_render.php\", {\n sidebar_mode: ya\n }).send();\n this._loggedRender = true;\n }\n ;\n ;\n },\n _isTickerVisible: function() {\n var ya = ((xa._activeInstance == this));\n ((ya && this._logRender()));\n return ya;\n },\n _handleResponse: function(ya) {\n var za = ya.getPayload();\n if (za.newest) {\n this._newest = this._page_newest = za.newest;\n }\n ;\n ;\n if (za.JSBNG__content) {\n if (((za.JSBNG__content instanceof Array))) {\n for (var ab = 0; ((ab < za.JSBNG__content.length)); ab++) {\n this.queueStoryMarkup(za.JSBNG__content[ab]);\n ;\n };\n ;\n }\n else this.queueStoryMarkup(za.JSBNG__content);\n ;\n }\n ;\n ;\n if (((za.custom_stories && za.custom_stories.length))) {\n this._queueCustomStories(za.custom_stories);\n this._doCustomUpdate = true;\n }\n ;\n ;\n },\n queueStoryMarkup: function(ya) {\n var za = q(ya).getRootNode();\n this.queueStory(za);\n },\n dedupeStory: function(ya) {\n var za = ya.getAttribute(\"data-story-key\"), ab = ((za && ((!!this._objectIDs[za] || !!this._removedStoryIDs[za]))));\n ((za && (this._objectIDs[za] = true)));\n return ab;\n },\n queueStory: function(ya, za) {\n if (this.dedupeStory(ya)) {\n return;\n }\n ;\n ;\n o.addClass(ya, \"queuedStory\");\n p.appendContent(this._storyQueue, ya);\n var ab = ((za && za.length));\n if (ab) {\n za.forEach(function(cb) {\n new Function(cb).apply();\n });\n }\n ;\n ;\n ya.setAttribute(\"id\", ((((ya.id + \"_\")) + this._root.id)));\n var bb = this._getQueuedStories();\n bb.slice(0, -this._maxQueueLength).forEach(p.remove);\n if (ab) {\n this._fetchedStories[ya.id] = true;\n }\n ;\n ;\n },\n _queueCustomStories: function(ya) {\n while (ya.length) {\n var za = ya.shift();\n za = q(za).getRootNode();\n if (this.dedupeStory(za)) {\n continue;\n }\n ;\n ;\n o.addClass(za, \"customStory\");\n p.appendContent(this._storyQueue, za);\n };\n ;\n var ab = this._getQueuedCustomStories();\n ab.slice(0, -this._maxQueueLength).forEach(p.remove);\n },\n _cleanup: function() {\n xa._placeholders.pagelet_rhc_ticker = null;\n if (!w.byClass(this._content, \"hasRightCol\")) {\n return;\n }\n ;\n ;\n this._objectIDs = [];\n this._subscriptions.forEach(i.unsubscribe);\n ((this._channelConnectionSubscription && this._channelConnection.unsubscribe(this._channelConnectionSubscription)));\n ((this._pushSubscription && this._pushSubscription.unsubscribe()));\n {\n var fin144keys = ((window.top.JSBNG_Replay.forInKeys)((this._listeners))), fin144i = (0);\n var ya;\n for (; (fin144i < fin144keys.length); (fin144i++)) {\n ((ya) = (fin144keys[fin144i]));\n {\n ((this._listeners[ya] && this._listeners[ya].remove()));\n ;\n };\n };\n };\n ;\n JSBNG__clearTimeout(this._pollToken);\n this._pollToken = null;\n this._cleanupInputFocusListener();\n this._cleanupContentResizeListener();\n i.inform(\"Ticker/cleanup\");\n },\n _onNavHandler: function(ya, za) {\n var ab = za.params.key;\n if (((((ab != \"lf\")) && ((ab != \"h\"))))) {\n this._cleanup();\n }\n ;\n ;\n },\n _getPositionForDialog: function() {\n if (((this._tickerInSidebarMode && o.hasClass(JSBNG__document.body, \"_58v4\")))) {\n return \"right\";\n }\n ;\n ;\n return \"left\";\n },\n registerStoryDialog: function(ya, za) {\n if (((this._uaCurStoryIDFetch == ya.id))) {\n this._uaCurStoryIDFetch = null;\n this._logUserEvent(\"flyout\", \"fetch_success\");\n }\n ;\n ;\n if (((this._uaCurStoryIDPrefetch == ya.id))) {\n this._uaCurStoryIDPrefetch = null;\n this._logUserEvent(\"flyout_prefetch\", \"prefetch_success\");\n }\n ;\n ;\n this._fetchedStories[ya.id] = true;\n za.setContext(ya);\n za.setPosition(this._getPositionForDialog());\n za.subscribe(\"hide\", this._deactivateStory.bind(this, true));\n za.subscribe(\"success\", this._focusStory.bind(this, ya));\n za.subscribe(\"beforehide\", function() {\n if (this._selecting) {\n this._selecting = false;\n return false;\n }\n ;\n ;\n }.bind(this));\n if (this._popupOnHover) {\n za.subscribe(\"mouseenter\", this._clearHoverTimeouts.bind(this));\n za.subscribe(\"mouseleave\", this._scheduleHide.bind(this));\n za.subscribe(\"show\", function() {\n this._highlightDialogScrollbar.bind(this, za).defer();\n var ab = g.listen(za.getContent(), \"mousedown\", function() {\n this._selectStory(ya);\n ab.remove();\n }.bind(this));\n }.bind(this));\n }\n ;\n ;\n if (((ya == this._activeStory))) {\n this._logUserEvent(\"flyout_loadtime\", \"show_fetched\");\n this._logUserEvent(\"flyout\", \"show\");\n this._openDialog(za);\n }\n ;\n ;\n },\n _highlightDialogScrollbar: function(ya) {\n var za = p.scry(ya.getContent(), \".uiScrollableArea\")[0];\n ((za && y.poke(za)));\n },\n _openStoryExternally: function(ya, JSBNG__event) {\n var za = ya.getAttribute(\"data-href\");\n if (((!za || ((za == \"#\"))))) {\n return;\n }\n ;\n ;\n var ab = ya.getAttribute(\"data-story-rel\");\n switch (ab) {\n case \"theater\":\n this._deactivateAndClearStory();\n l.loadModules([\"PhotoViewer\",], function(db) {\n db.bootstrap(za, ya);\n });\n return;\n case \"async\":\n this._deactivateAndClearStory();\n j.bootstrap(za, ya);\n return;\n };\n ;\n var bb = ya.getAttribute(\"data-target\"), cb = ((((((JSBNG__event.which != 1)) || JSBNG__event.getModifiers().any)) || ((bb == \"_blank\"))));\n ((cb ? window.open(za, \"_blank\") : pa(za)));\n },\n _deactivateAndClearStory: function() {\n this._clearHoverTimeouts();\n this._deactivateStory();\n },\n _focusStoryWillTriggerScroll: function(ya) {\n var za = this._container, ab = za.clientHeight, bb = ya.offsetHeight, cb = za.scrollTop, db = ((cb + ab)), eb = ya.offsetTop, fb = ((eb + bb));\n return ((((eb < cb)) || ((fb > db))));\n },\n _focusStory: function(ya) {\n if (this._focusStoryWillTriggerScroll(ya)) {\n this._preventScrollDismiss = true;\n }\n ;\n ;\n ya.JSBNG__focus();\n },\n _selectStory: function(ya) {\n this._selectedStory = ya;\n o.addClass(ya, \"tickerStorySelected\");\n o.addClass(this._root, \"tickerChildSelected\");\n },\n _activateStory: function(ya, za) {\n this._clearHoverTimeouts();\n if (((((ya == this._activeStory)) || !this._storyCanOpenDialog(ya)))) {\n return;\n }\n ;\n ;\n this._deactivateStory();\n this._focusStory(ya);\n this._activeStory = ya;\n o.addClass(ya, \"tickerStoryActive\");\n ((window.Toggler && ca.hide()));\n if (this._logFlyouts) {\n za = ((za || \"unknown\"));\n new k(\"/ajax/feed/ticker/flyout.php\", {\n src: za\n }).send();\n }\n ;\n ;\n ba.log(ya);\n var ab = this._getStoryDialog(ya);\n if (ab) {\n this._logUserEvent(\"flyout_loadtime\", \"show_prefetched\");\n this._logUserEvent(\"flyout\", \"show\");\n this._openDialog(ab);\n return;\n }\n ;\n ;\n if (!((ya.id in this._fetchedStories))) {\n this._uaCurStoryIDFetch = ya.id;\n this._logUserEvent(\"flyout\", \"fetch\");\n }\n ;\n ;\n this._fetchStory(ya);\n },\n _deactivateStory: function(ya) {\n if (((this._activeStory === this._deactivatingStory))) {\n return;\n }\n ;\n ;\n this._deactivatingStory = this._activeStory;\n if (this._dialog) {\n if (((ya === true))) {\n this._dialog.enableBehavior(t);\n }\n else this._dialog.disableBehavior(t);\n ;\n ;\n this._dialog.hide();\n this._logUserEvent(\"flyout\", \"close\");\n }\n ;\n ;\n if (this._activeStory) {\n o.removeClass(this._activeStory, \"tickerStoryActive\");\n o.removeClass(this._activeStory, \"tickerStorySelected\");\n o.removeClass(this._root, \"tickerChildSelected\");\n }\n ;\n ;\n this._dialog = this._selectedStory = this._activeStory = null;\n this._cleanupInputFocusListener();\n this._cleanupContentResizeListener();\n this._deactivatingStory = null;\n },\n _logUserAction: function(ya, za, JSBNG__event) {\n ja(za, ya, JSBNG__event, \"FORCE\");\n ra(\"ticker\", ya, JSBNG__event).uai(za);\n },\n _logUserEvent: function(ya, JSBNG__event) {\n if (this._ua[ya]) {\n this._ua[ya].add_event(JSBNG__event);\n }\n ;\n ;\n },\n _fetchStory: function(ya) {\n JSBNG__clearTimeout(this._fetchToken);\n var za = [], ab = this._getInsertedStories(), bb = ab.indexOf(ya);\n [-1,0,1,].forEach(function(cb) {\n var db = ab[((bb + cb))];\n ((db && za.push(db)));\n }, this);\n this._fetchToken = JSBNG__setTimeout(this._fetchStories.bind(this, za), 100);\n },\n _fetchStories: function(ya) {\n var za = [], ab, bb = function(cb) {\n JSBNG__clearTimeout(ab);\n ya.forEach(function(db) {\n o.conditionClass(db, \"tickerStoryFetching\", cb);\n });\n };\n ya = ya.filter(function(cb) {\n if (((cb.id in this._fetchedStories))) {\n return false;\n }\n ;\n ;\n this._fetchedStories[cb.id] = true;\n var db = this._getStoryDialogEndpoint(cb), eb = ea(db).getQueryData();\n if (((!db || !eb))) {\n return false;\n }\n ;\n ;\n eb.uniq_id = cb.getAttribute(\"id\");\n eb.referrer = this._tickerSource;\n za.push(eb);\n return true;\n }, this);\n if (!za.length) {\n return;\n }\n ;\n ;\n ab = this._setTimeout(bb.curry(true), 500);\n new j(\"/ajax/feed/ticker/multi_story\").setFinallyHandler(bb.curry(false)).setErrorHandler(na).setData({\n stories: za\n }).setAllowCrossPageTransition(this._tickerInSidebarMode).send();\n },\n _tickerDeClicker: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget(), za = w.byTag(ya, \"a\"), ab = this._getStoryFromNode(ya), bb = this._getButtonFromNode(ya);\n if (((((((((((ab && za)) && !bb)) && o.hasClass(ab, \"tickerStoryClickable\"))) && !o.hasClass(za, \"tickerStoryAllowClick\"))) && !this._storyIsHidden(ab)))) {\n za.setAttribute(\"rel\", \"ignore\");\n za.removeAttribute(\"JSBNG__onclick\");\n za.removeAttribute(\"ajaxify\");\n za.removeAttribute(\"href\");\n }\n ;\n ;\n var cb = ((JSBNG__event.button == 2)), db = ((JSBNG__event.type === \"keydown\")), eb = ((ab && this._getActionButtonFromStory(ab)));\n if (((((!cb && eb)) && !db))) {\n this._setClickedStory(ab);\n }\n ;\n ;\n },\n _handleMouseup: function(JSBNG__event) {\n this._clearClickedStory();\n },\n _setClickedStory: function(ya) {\n this._clearClickedStory();\n o.addClass(ya, \"tickerStoryClicked\");\n this._clickedStory = ya;\n },\n _clearClickedStory: function() {\n if (this._clickedStory) {\n o.removeClass(this._clickedStory, \"tickerStoryClicked\");\n this._clickedStory = null;\n }\n ;\n ;\n },\n _initInfiniteScrollListener: function() {\n var ya = this._getInsertedStories();\n if (this._storiesWithActions) {\n for (var za = 0; ((za < ya.length)); za++) {\n var ab = ya[za];\n if (o.hasClass(ab, \"tickerStoryWithButton\")) {\n this._storiesWithActions[ab.getAttribute(\"data-story-key\")] = ab;\n }\n ;\n ;\n };\n }\n ;\n ;\n var bb = Math.max(0, ((ya.length - this._autoloadStoryIndex)));\n this._infiniteScrollStory = ya[bb];\n this._checkInfiniteScroll();\n },\n _checkInfiniteScroll: function() {\n if (this._infiniteScrollStory) {\n var ya = ha.getElementPosition(this._infiniteScrollStory).y, za = ((ha.getElementPosition(this._container).y + ha.getElementDimensions(this._container).y));\n if (((ya < za))) {\n var ab = p.scry(this._root, \".tickerMorePager a\")[0];\n if (ab) {\n var bb = ((w.byClass(ab, \"stat_elem\") || ab));\n new j(ab.getAttribute(\"ajaxify\")).setReadOnly(true).setRelativeTo(ab).setStatusElement(bb).setAllowCrossPageTransition(true).send();\n this._logUserEvent(\"stream\", \"JSBNG__scroll\");\n }\n ;\n ;\n this._infiniteScrollStory = null;\n this._autoloadStoryIndex = 5;\n }\n ;\n ;\n }\n ;\n ;\n },\n _setFixed: function(ya) {\n if (!this._selectedStory) {\n return;\n }\n ;\n ;\n var za = this._getStoryDialog(this._selectedStory);\n if (za) {\n za.setPosition(this._getPositionForDialog());\n za.setFixed(ya);\n za.updatePosition();\n }\n ;\n ;\n },\n _setTimeout: function(ya, za) {\n return JSBNG__setTimeout(ya, za, !this._tickerInSidebarMode);\n },\n _scrollDialogToBottom: function() {\n var ya = ((this._dialog && this._dialog.getContent())), za = ((ya && p.scry(ya, \".uiScrollableAreaWrap\")[0])), ab = ((za && y.getInstance(za)));\n ((ab && ab.scrollToBottom()));\n },\n _openDialog: function(ya) {\n if (!this._tickerInSidebarMode) {\n o.addClass(ya.getRoot(), \"tickerStoryOverlayOnTop\");\n }\n ;\n ;\n this._dialog = ya.show();\n this._updateDialogPosition();\n this._writeSwfFrame(ya);\n this._initCommentFocusListener.bind(this).defer();\n this._initContentResizeListener.bind(this).defer();\n this._stupidIE7VideoResizeHack(ya);\n },\n _stupidIE7VideoResizeHack: function(ya) {\n if (((ga.ie() === 7))) {\n var za = p.scry(ya.getContent(), \".uiVideoThumb .img\");\n za.forEach(function(ab) {\n aa.set(ab, \"width\", \"\");\n });\n }\n ;\n ;\n },\n _updateDialogPosition: function() {\n var ya = ((this._tickerInSidebarMode || !!w.byClass(this._root, \"fixed_elem\")));\n this._dialog.setPosition(this._getPositionForDialog());\n this._dialog.setFixed(ya);\n this._adjustFlyoutContentHeight();\n this._dialog.updatePosition();\n },\n _writeSwfFrame: function(ya) {\n var za = ((this._dialog && this._dialog.getContent())), ab = p.scry(za, \".swfObject\")[0];\n if (!ab) {\n return;\n }\n ;\n ;\n var bb = ab.getAttribute(\"data-swfid\");\n if (((bb && window[bb]))) {\n var cb = window[bb];\n cb.write(ab);\n }\n ;\n ;\n },\n _initCommentFocusListener: function() {\n var ya = ((this._dialog && this._dialog.getContent())), za = ((ya && p.scry(ya, \".tickerDialogFooter textarea\")[0]));\n if (!za) {\n return;\n }\n ;\n ;\n this._listeners.inputFocus = g.listen(za, \"JSBNG__focus\", this._scrollDialogToBottom.bind(this));\n },\n _cleanupInputFocusListener: function() {\n if (this._listeners.inputFocus) {\n this._listeners.inputFocus.remove();\n this._listeners.inputFocus = null;\n }\n ;\n ;\n },\n _initContentResizeListener: function() {\n var ya = ((this._dialog && this._dialog.getContent()));\n if (!ya) {\n return;\n }\n ;\n ;\n this._listeners.contentResize = g.listen(ya, \"click\", function() {\n this._dialog.updatePosition.bind(this._dialog).defer();\n }.bind(this));\n },\n _cleanupContentResizeListener: function() {\n if (this._listeners.contentResize) {\n this._listeners.contentResize.remove();\n this._listeners.contentResize = null;\n }\n ;\n ;\n },\n _adjustFlyoutContentHeight: function() {\n var ya = ((this._dialog && this._dialog.getContent())), za = ((ya && p.scry(ya, \".uiScrollableAreaWrap\")[0]));\n if (!za) {\n return;\n }\n ;\n ;\n var ab = ha.getElementDimensions(za), bb = ha.getElementPosition(za), cb = p.scry(za, \".uiUfi .uiUfiComment\"), db = ((ha.getViewportDimensions().y - this.FLYOUT_VIEWPORT_PADDING)), eb = Math.min(this.FLYOUT_MAX_HEIGHT, db), fb = ((eb - this.FLYOUT_TARGET_HEIGHT_OFFSET));\n for (var gb = 0; ((gb < cb.length)); gb++) {\n var hb = cb[gb], ib = ha.getElementPosition(hb), jb = ((ib.y - bb.y));\n if (((Math.abs(((jb - fb))) <= this.FLYOUT_OFFSET_THRESHOLD))) {\n fb = ((jb + this.FLYOUT_COMMENT_OFFSET));\n break;\n }\n ;\n ;\n };\n ;\n if (((ab.y > fb))) {\n aa.set(za, \"height\", ((fb + \"px\")));\n aa.set(za, \"max-height\", null);\n }\n else {\n aa.set(za, \"max-height\", ((eb + \"px\")));\n aa.set(za, \"height\", null);\n }\n ;\n ;\n },\n _initObjectIDs: function() {\n var ya = this._getAllStories();\n for (var za = 0; ((za < ya.length)); ++za) {\n var ab = ya[za].getAttribute(\"data-story-key\");\n ((ab && (this._objectIDs[ab] = true)));\n };\n ;\n },\n _handleChatOpened: function() {\n this._deactivateStory(true);\n },\n _handleChannelConnection: function() {\n this._checkChannelConnection();\n },\n getNewest: function() {\n return this._newest;\n }\n });\n e.exports = xa;\n});\n__d(\"legacy:TickerController\", [\"TickerController\",], function(a, b, c, d) {\n a.TickerController = b(\"TickerController\");\n}, 3);\n__d(\"HomeTickerFirstRightColumnController\", [\"$\",\"ge\",\"debounceAcrossTransitions\",\"throttle\",\"UIPagelet\",\"Arbiter\",\"Style\",\"csx\",\"CSS\",\"DOM\",\"Vector\",\"Run\",\"LegacyContextualDialog\",\"TickerController\",\"UIIntentionalStreamMessage\",\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n var g = b(\"$\"), h = b(\"ge\"), i = b(\"debounceAcrossTransitions\"), j = b(\"throttle\"), k = b(\"UIPagelet\"), l = b(\"Arbiter\"), m = b(\"Style\"), n = b(\"csx\"), o = b(\"CSS\"), p = b(\"DOM\"), q = b(\"Vector\"), r = b(\"Run\"), s = b(\"LegacyContextualDialog\"), t = b(\"TickerController\"), u = b(\"UIIntentionalStreamMessage\"), v = b(\"JSBNG__Event\"), w = null, x = 75, y = 50, z = 15, aa = false, ba = false, ca, da, ea, fa, ga, ha, ia, ja, ka, la = y, ma = [], na = [], oa, pa, qa, ra, sa, ta, ua, va, wa, xa, ya, za, ab;\n function bb() {\n var sb = ob;\n function tb() {\n sb.defer();\n };\n ;\n var ub = p.scry(ra, \"img.img\");\n ub.forEach(function(vb) {\n if (!vb.complete) {\n v.listen(vb, {\n load: tb,\n error: tb,\n abort: tb\n });\n }\n ;\n ;\n });\n tb();\n };\n;\n function cb() {\n na = [l.subscribe(\"page_transition\", fb),l.subscribe(\"netego_loaded\", ob),l.subscribe(\"Ticker/storiesInserted\", ob),l.subscribe(u.INSERT_STORIES, ob),];\n if (w.enableSidebar) {\n na.push(l.subscribe(\"sidebar/hide\", pb));\n na.push(l.subscribe(\"sidebar/show\", qb));\n }\n ;\n ;\n };\n;\n function db() {\n if (ra) {\n var sb = p.scry(ra, \"div._4u8\");\n for (var tb = 0; ((tb < sb.length)); tb++) {\n var ub = JSON.parse(sb[tb].getAttribute(\"data-ad\")).segment;\n if (((ub === \"premium\"))) {\n return true;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n return false;\n };\n;\n function eb() {\n ab = p.scry(JSBNG__document, \"div.fbRemindersContent\");\n va = p.scry(h(\"rightCol\"), \"div.home_right_column\")[0];\n wa = p.JSBNG__find(va, \"div.rightColumnWrapper\");\n ra = ((h(\"pagelet_ego_pane_w\") || h(\"pagelet_ego_pane_m\")));\n fa = !db();\n v.listen(ra, \"mouseenter\", function() {\n aa = true;\n });\n v.listen(ra, \"mouseleave\", function() {\n aa = false;\n });\n sa = h(\"pagelet_rhc_ticker\");\n if (!sa) {\n return false;\n }\n ;\n ;\n ta = p.scry(sa, \".ticker_container\")[0];\n ua = p.scry(sa, \".ticker_stream\")[0];\n return ((ta && ua));\n };\n;\n function fb(sb, tb) {\n if (((((((sb === \"page_transition\")) && tb)) && tb.uri))) {\n var ub = tb.uri;\n if (((ub.path === \"/photo.php\"))) {\n ba = true;\n return;\n }\n ;\n ;\n if (((ba && ((ub.path === \"/\"))))) {\n ba = false;\n return;\n }\n ;\n ;\n }\n ;\n ;\n na.forEach(l.unsubscribe);\n na = [];\n ma.forEach(function(vb) {\n vb.remove();\n });\n ma = [];\n oa.reset();\n };\n;\n function gb() {\n if (((ja || !ca))) {\n ka = ((q.getElementPosition(ra, \"viewport\").y - q.getElementPosition(wa, \"viewport\").y));\n }\n ;\n ;\n };\n;\n function hb() {\n gb();\n var sb = la;\n lb();\n if (((sb != la))) {\n ja = true;\n mb();\n }\n ;\n ;\n za = ((xa + q.getElementPosition(qa, \"viewport\").y));\n var tb = za, ub = q.getElementPosition(va, \"viewport\").y;\n for (var vb = 0; ((vb < ab.length)); vb++) {\n var wb = s.getInstance(ab[vb]);\n wb.hide();\n };\n ;\n if (((da || !ua))) {\n if (((ia !== null))) {\n var xb = ((ub + ka)), yb = ((xb <= ((tb - ia))));\n if (((ja || ((yb !== ca))))) {\n ja = false;\n var zb = ((((tb - ia)) - ka));\n nb(yb, zb);\n }\n ;\n ;\n }\n ;\n ;\n return;\n }\n ;\n ;\n var ac = ((ub <= ((tb + z))));\n if (((ac !== ca))) {\n nb(ac);\n }\n ;\n ;\n };\n;\n function ib() {\n var sb = JSBNG__Date.now();\n if (((((((fa && !aa)) && w.adsRefreshInterval)) && ((((sb - ga)) >= w.adsRefreshInterval))))) {\n jb();\n }\n ;\n ;\n };\n;\n function jb() {\n ga = JSBNG__Date.now();\n k.loadFromEndpoint(\"WebEgoPane\", ra, {\n pid: 27,\n data: {\n organic_only: false,\n ads_only: false,\n refresh_num: ++ha\n }\n }, {\n bundle: false,\n crossPage: false,\n handler: bb\n });\n };\n;\n function kb() {\n ja = true;\n gb();\n lb();\n mb();\n hb();\n };\n;\n function lb() {\n var sb = ((q.getDocumentDimensions().y - ((q.getScrollPosition(\"JSBNG__document\").y + q.getViewportDimensions().y))));\n la = ((((sb > ya)) ? y : x));\n };\n;\n function mb() {\n var sb = ((((q.getViewportDimensions().y - xa)) - la)), tb = q.getElementDimensions(wa).y;\n if (((tb <= sb))) {\n ia = ((((0 - ka)) - z));\n return;\n }\n ;\n ;\n var ub = ((tb - ka)), vb = p.scry(ra, \"div.egoOrganicColumn\")[0];\n if (((((ub <= sb)) && vb))) {\n ia = 0;\n }\n else {\n var wb = p.scry(ra, \"div.ego_unit\").reverse(), xb = p.scry(ra, \"div._4u8\").length, yb = w.maxFixedAds;\n if (((xb <= w.maxFixedAds))) {\n yb = wb.length;\n }\n ;\n ;\n var zb = null;\n for (var ac = 0; ((ac < yb)); ac++) {\n var bc = wb[ac], cc = ((q.getElementPosition(bc, \"viewport\").y - q.getElementPosition(wa, \"viewport\").y)), dc = ((q.getElementDimensions(wa).y - cc));\n if (((dc > sb))) {\n if (((ac > 0))) {\n zb = wb[((ac - 1))];\n }\n ;\n ;\n break;\n }\n ;\n ;\n if (((ac == ((yb - 1))))) {\n zb = bc;\n }\n ;\n ;\n };\n ;\n if (((zb == null))) {\n ia = null;\n }\n else ia = ((q.getElementPosition(zb, \"viewport\").y - q.getElementPosition(ra, \"viewport\").y));\n ;\n ;\n }\n ;\n ;\n };\n;\n function nb(sb, tb) {\n ca = sb;\n tb = ((tb || za));\n var ub = ((sb ? ((tb + \"px\")) : \"\"));\n m.set(wa, \"JSBNG__top\", ub);\n o.conditionClass(wa, \"fixed_elem\", sb);\n var vb = p.scry(wa, \"div.displayedTickerToggleWrapper\")[0];\n ((vb && o.conditionClass(vb, \"toggleWrapperWithoutMargin\", ((sb && !ua)))));\n if (ea) {\n var wb = ((sb ? \"Ticker/fixed\" : \"Ticker/unfixed\"));\n l.inform(wb);\n }\n ;\n ;\n };\n;\n function ob() {\n if (((((!ea || !ua)) || o.hasClass(JSBNG__document.documentElement, \"tinyViewport\")))) {\n kb();\n return;\n }\n ;\n ;\n hb();\n var sb = q.getViewportDimensions().y, tb = 61, ub = ((q.getElementDimensions(wa).y - q.getElementDimensions(ta).y)), vb = q.getElementDimensions(ua).y, wb = ((((((((sb - ub)) - x)) - za)) - tb)), xb = ((w.tickerAbsMinHeight || 120)), yb = ((w.tickerMinHeight || 225));\n da = false;\n if (((wb < xb))) {\n da = true;\n nb(false);\n wb = xb;\n }\n else if (((wb < yb))) {\n if (((wb > ((yb - tb))))) {\n wb = yb;\n }\n else wb += tb;\n ;\n }\n \n ;\n ;\n var zb = Math.min(wb, vb, ((w.tickerMaxHeight || 425)));\n m.set(ta, \"height\", ((zb + \"px\")));\n };\n;\n function pb() {\n ea = true;\n eb();\n var sb = function() {\n if (eb()) {\n da = false;\n hb();\n ob();\n }\n ;\n ;\n };\n ((sa && t.show(sa, sb)));\n };\n;\n function qb() {\n ea = false;\n eb();\n kb();\n ((sa && t.hide(sa)));\n };\n;\n var rb = {\n init: function(sb) {\n w = sb;\n pa = g(\"contentCol\");\n qa = g(\"blueBar\");\n ha = 0;\n ga = Infinity;\n ga = JSBNG__Date.now();\n oa = i(ib, w.adsRefreshDelay);\n if (w.adsRefreshOnmove) {\n ma.push(v.listen(window, \"mousemove\", oa));\n }\n ;\n ;\n ma.push(v.listen(window, \"JSBNG__scroll\", oa));\n ma.push(v.listen(window, \"resize\", oa));\n ma.push(v.listen(window, \"resize\", j(ob)));\n xa = q.getElementDimensions(qa).y;\n ya = q.getElementDimensions(g(\"pageFooter\")).y;\n eb();\n cb();\n r.onLeave(fb);\n ma.push(v.listen(window, \"JSBNG__scroll\", j(hb)));\n if (!o.hasClass(JSBNG__document.documentElement, \"sidebarMode\")) {\n pb();\n }\n else if (w.enableSidebar) {\n qb();\n }\n \n ;\n ;\n bb();\n }\n };\n e.exports = rb;\n});\n__d(\"AsyncLayout\", [\"AjaxPipeRequest\",\"Arbiter\",\"AsyncRequest\",\"AsyncResponse\",\"CSS\",\"DOM\",\"HTML\",\"NavigationMessage\",\"PageTransitions\",\"URI\",\"$\",\"copyProperties\",\"emptyFunction\",\"ge\",\"goURI\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxPipeRequest\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"AsyncResponse\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"HTML\"), n = b(\"NavigationMessage\"), o = b(\"PageTransitions\"), p = b(\"URI\"), q = b(\"$\"), r = b(\"copyProperties\"), s = b(\"emptyFunction\"), t = b(\"ge\"), u = b(\"goURI\");\n function v(w) {\n this.canvasID = w;\n if (t(\"rightCol\")) {\n this.auxiliaryID = \"rightCol\";\n }\n ;\n ;\n if (t(\"headerArea\")) {\n this.headerID = \"headerArea\";\n }\n ;\n ;\n if (t(\"toolbarContainer\")) {\n this.toolbarID = \"toolbarContainer\";\n }\n ;\n ;\n this.waitingForAux = false;\n o.registerHandler(this.catchPageTransition.bind(this));\n this.subscription = h.subscribe(n.NAVIGATION_BEGIN, this.onNavigate.bind(this));\n };\n;\n r(v.prototype, {\n catchPageTransition: function(w) {\n this.subscription.unsubscribe();\n return false;\n },\n getCanvasID: function(w) {\n return ((w.sidecol ? \"contentCol\" : \"contentArea\"));\n },\n onNavigate: function(w, x) {\n var y = x.useAjaxPipe;\n x = x.params;\n if (x.endpoint) {\n if (this.request) {\n this.request.setFinallyHandler(s);\n this.request.abort();\n }\n ;\n ;\n if (this.sideRequest) {\n this.sideRequest.abort();\n }\n ;\n ;\n if (y) {\n this.request = new g().setURI(x.endpoint).setData(x).setCanvasId(this.getCanvasID(x)).setFinallyHandler(this.finallyHandler.bind(this)).setErrorHandler(this.errorHandler.bind(this)).setFirstResponseCallback(this.firstResponseCallback.bind(this)).send();\n }\n else {\n x.handled = true;\n this.waitingForAux = x.sidecol;\n var z = !!x.iframe, aa = new i().setOption(\"useIframeTransport\", z).setURI(new p(x.endpoint)).setReadOnly(true).setMethod(\"GET\").setData(x).setHandler(this.onResponse.bind(this)).setErrorHandler(this.errorHandler.bind(this)).setFinallyHandler(this.finallyHandler.bind(this));\n this.request = aa;\n aa.send();\n }\n ;\n ;\n }\n ;\n ;\n },\n onSideResponse: function(w) {\n var x = w.getPayload();\n if (((x && this.auxiliaryID))) {\n this.receivedAux(x);\n }\n ;\n ;\n },\n receivedAux: function(w) {\n !this.waitingForAux;\n this.waitingForAux = false;\n l.setContent(q(this.auxiliaryID), m(w));\n },\n onResponse: function(w) {\n var x = w.getPayload();\n if (x.redirect) {\n u(x.redirect);\n }\n else {\n var y = ((x.html || x));\n l.setContent(q(this.canvasID), m(y));\n if (((x.side_html && this.auxiliaryID))) {\n this.receivedAux(x.side_html);\n }\n ;\n ;\n if (((this.headerID && !x.keep_header))) {\n var z = q(this.headerID);\n l.setContent(z, m(((x.header_html || \"\"))));\n k.conditionShow(z, x.header_html);\n }\n ;\n ;\n if (((x.toolbar_html && this.toolbarID))) {\n l.setContent(q(this.toolbarID), m(x.toolbar_html));\n }\n ;\n ;\n if (x.js) {\n (new Function(x.js))();\n }\n ;\n ;\n k.conditionClass(\"contentCol\", \"hasRightCol\", ((this.auxiliaryID && !x.noRightSide)));\n var aa = t(\"rightCol\");\n if (((aa && x.noRightSide))) {\n l.empty(aa);\n }\n ;\n ;\n }\n ;\n ;\n var ba = w.getRequest().getData();\n h.inform(n.NAVIGATION_COMPLETED, ba.key);\n },\n errorHandler: function(w) {\n j.verboseErrorHandler(w);\n h.inform(n.NAVIGATION_FAILED);\n this.request = null;\n },\n firstResponseCallback: function(w) {\n window.JSBNG__scrollTo(0, 0);\n h.inform(n.NAVIGATION_FIRST_RESPONSE);\n },\n finallyHandler: function(w) {\n this.request = null;\n o.transitionComplete(true);\n h.inform(n.NAVIGATION_COMPLETED);\n }\n });\n e.exports = v;\n});\n__d(\"legacy:adware-scanner\", [\"AdwareScaner\",], function(a, b, c, d) {\n a.AdwareScaner = b(\"AdwareScaner\");\n}, 3);");
// 2739
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"u//Ut\",]);\n}\n;\n;\n__d(\"MercuryAPIArgsSource\", [], function(a, b, c, d, e, f) {\n e.exports = {\n JEWEL: \"jewel\",\n CHAT: \"chat\",\n MERCURY: \"mercury\",\n WEBMESSENGER: \"web_messenger\"\n };\n});\n__d(\"MercuryActionStatus\", [], function(a, b, c, d, e, f) {\n e.exports = {\n UNCONFIRMED: 3,\n UNSENT: 0,\n RESENDING: 7,\n RESENT: 6,\n UNABLE_TO_CONFIRM: 5,\n FAILED_UNKNOWN_REASON: 4,\n SUCCESS: 1,\n ERROR: 10\n };\n});\n__d(\"MercuryActionTypeConstants\", [], function(a, b, c, d, e, f) {\n e.exports = {\n LOG_MESSAGE: \"ma-type:log-message\",\n CLEAR_CHAT: \"ma-type:clear_chat\",\n UPDATE_ACTION_ID: \"ma-type:update-action-id\",\n DELETE_MESSAGES: \"ma-type:delete-messages\",\n CHANGE_FOLDER: \"ma-type:change-folder\",\n SEND_MESSAGE: \"ma-type:send-message\",\n CHANGE_ARCHIVED_STATUS: \"ma-type:change-archived-status\",\n DELETE_THREAD: \"ma-type:delete-thread\",\n USER_GENERATED_MESSAGE: \"ma-type:user-generated-message\",\n CHANGE_READ_STATUS: \"ma-type:change_read_status\",\n CHANGE_MUTE_SETTINGS: \"ma-type:change-mute-settings\"\n };\n});\n__d(\"MercuryAttachmentContentType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n UNKNOWN: \"attach:unknown\",\n PHOTO: \"attach:image\",\n VIDEO: \"attach:video\",\n MSWORD: \"attach:ms:word\",\n VOICE: \"attach:voice\",\n MSPPT: \"attach:ms:ppt\",\n TEXT: \"attach:text\",\n MUSIC: \"attach:music\",\n MSXLS: \"attach:ms:xls\"\n };\n});\n__d(\"MercuryAttachmentType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n STICKER: \"sticker\",\n PHOTO: \"photo\",\n FILE: \"file\",\n SHARE: \"share\",\n ERROR: \"error\"\n };\n});\n__d(\"MercuryErrorType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n SERVER: 1,\n TRANSPORT: 2,\n TIMEOUT: 3\n };\n});\n__d(\"MercuryGenericConstants\", [], function(a, b, c, d, e, f) {\n e.exports = {\n PENDING_THREAD_ID: \"pending:pending\"\n };\n});\n__d(\"MercuryGlobalActionType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n MARK_ALL_READ: \"mga-type:mark-all-read\"\n };\n});\n__d(\"MercuryLogMessageType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n SERVER_ERROR: \"log:error-msg\",\n UNSUBSCRIBE: \"log:unsubscribe\",\n JOINABLE_JOINED: \"log:joinable-joined\",\n JOINABLE_CREATED: \"log:joinable-created\",\n LIVE_LISTEN: \"log:live-listen\",\n PHONE_CALL: \"log:phone-call\",\n THREAD_IMAGE: \"log:thread-image\",\n THREAD_NAME: \"log:thread-name\",\n VIDEO_CALL: \"log:video-call\",\n SUBSCRIBE: \"log:subscribe\"\n };\n});\n__d(\"MercuryMessageSourceTags\", [], function(a, b, c, d, e, f) {\n e.exports = {\n CHAT: \"source:chat\",\n MOBILE: \"source:mobile\",\n MESSENGER: \"source:messenger\",\n EMAIL: \"source:email\"\n };\n});\n__d(\"MercuryParticipantTypes\", [], function(a, b, c, d, e, f) {\n e.exports = {\n FRIEND: \"friend\",\n USER: \"user\",\n THREAD: \"thread\",\n EVENT: \"JSBNG__event\",\n PAGE: \"page\"\n };\n});\n__d(\"MercuryPayloadSource\", [], function(a, b, c, d, e, f) {\n e.exports = {\n SERVER_INITIAL_DATA: \"server_initial_data\",\n CLIENT_DELETE_THREAD: \"client_delete_thread\",\n SERVER_ZAP: \"server_zap\",\n SERVER_SAVE_DRAFT: \"server_save_draft\",\n SERVER_CHANGE_ARCHIVED_STATUS: \"server_change_archived_status\",\n SERVER_SEARCH: \"server_search\",\n CLIENT_CHANGE_MUTE_SETTINGS: \"client_change_mute_settings\",\n SERVER_UNREAD_THREADS: \"server_unread_threads\",\n SERVER_MARK_SEEN: \"server_mark_seen\",\n SERVER_THREAD_SYNC: \"server_thread_sync\",\n CLIENT_DELETE_MESSAGES: \"client_delete_messages\",\n SERVER_FETCH_THREADLIST_INFO: \"server_fetch_threadlist_info\",\n CLIENT_CHANNEL_MESSAGE: \"client_channel_message\",\n CLIENT_CHANGE_FOLDER: \"client_change_folder\",\n CLIENT_CHANGE_READ_STATUS: \"client_change_read_status\",\n CLIENT_CLEAR_CHAT: \"client_clear_chat\",\n SERVER_FETCH_THREAD_INFO: \"server_fetch_thread_info\",\n SERVER_CHANGE_READ_STATUS: \"server_change_read_status\",\n SERVER_SEND_MESSAGE: \"server_send_message\",\n CLIENT_SAVE_DRAFT: \"client_save_draft\",\n UNKNOWN: \"unknown\",\n SERVER_MARK_FOLDER_READ: \"server_mark_folder_read\",\n SERVER_CONFIRM_MESSAGES: \"server_confirm_messages\",\n SERVER_TAB_PRESENCE: \"server_tab_presence\",\n CLIENT_CHANGE_ARCHIVED_STATUS: \"client_change-archived_status\",\n CLIENT_SEND_MESSAGE: \"client_send_message\",\n CLIENT_HANDLE_ERROR: \"client_handle_error\"\n };\n});\n__d(\"MercurySourceType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n GIGABOXX_BLAST: \"source:gigaboxx:blast\",\n TITAN_FACEWEB_BUFFY: \"source:titan:faceweb_buffy\",\n TITAN_FACEWEB_UNKNOWN: \"source:titan:faceweb_unknown\",\n CHAT_WEB: \"source:chat:web\",\n WEBRTC_MOBILE: \"source:webrtc:mobile\",\n GIGABOXX_API: \"source:gigaboxx:api\",\n TITAN_M_JAPAN: \"source:titan:m_japan\",\n BUFFY_SMS: \"source:buffy:sms\",\n SEND_PLUGIN: \"source:sendplugin\",\n CHAT_MEEBO: \"source:chat:meebo\",\n TITAN_FACEWEB_IPAD: \"source:titan:faceweb_ipad\",\n TITAN_FACEWEB_IPHONE: \"source:titan:faceweb_iphone\",\n TEST: \"source:test\",\n WEB: \"source:web\",\n SOCIALFOX: \"source:socialfox\",\n EMAIL: \"source:email\",\n TITAN_API: \"source:titan:api\",\n GIGABOXX_WEB: \"source:gigaboxx:web\",\n DESKTOP: \"source:desktop\",\n TITAN_FACEWEB_ANDROID: \"source:titan:faceweb_android\",\n LEIA: \"source:leia\",\n CHAT_JABBER: \"source:chat:jabber\",\n CHAT_TEST: \"source:chat:test\",\n SHARE_DIALOG: \"source:share:dialog\",\n GIGABOXX_WAP: \"source:gigaboxx:wap\",\n CHAT: \"source:chat\",\n TITAN_M_APP: \"source:titan:m_app\",\n TITAN_M_TOUCH: \"source:titan:m_touch\",\n TITAN_ORCA: \"source:titan:orca\",\n TITAN_WAP: \"source:titan:wap\",\n TITAN_EMAIL_REPLY: \"source:titan:emailreply\",\n CHAT_IPHONE: \"source:chat:iphone\",\n SMS: \"source:sms\",\n TITAN_M_BASIC: \"source:titan:m_basic\",\n TITAN_M_MINI: \"source:titan:m_mini\",\n GIGABOXX_MOBILE: \"source:gigaboxx:mobile\",\n UNKNOWN: \"source:unknown\",\n TITAN_WEB: \"source:titan:web\",\n TITAN_M_ZERO: \"source:titan:m_zero\",\n MOBILE: \"source:mobile\",\n PAID_PROMOTION: \"source:paid_promotion\",\n TITAN_API_MOBILE: \"source:titan:api_mobile\",\n HELPCENTER: \"source:helpcenter\",\n GIGABOXX_EMAIL_REPLY: \"source:gigaboxx:emailreply\",\n CHAT_ORCA: \"source:chat:orca\",\n TITAN_M_TALK: \"source:titan:m_talk\",\n NEW_SHARE_DIALOG: \"source:share:dialog:new\"\n };\n});\n__d(\"MercuryThreadMode\", [], function(a, b, c, d, e, f) {\n e.exports = {\n EMAIL_ORIGINATED: 1,\n OBJECT_ORIGINATED: 3,\n TITAN_ORIGINATED: 2\n };\n});\n__d(\"MercuryTimePassed\", [], function(a, b, c, d, e, f) {\n e.exports = {\n TODAY: 0,\n WEEK_AGO: 1,\n CURRENT_YEAR: 3,\n OTHER_YEAR: 4,\n MONTH_AGO: 2\n };\n});\n__d(\"MessagingEvent\", [], function(a, b, c, d, e, f) {\n e.exports = {\n UNSUBSCRIBE: \"unsubscribe\",\n DELIVERY_RECEIPT: \"delivery_receipt\",\n REPORT_SPAM_MESSAGES: \"report_spam_messages\",\n DELIVER_FAST_PAST: \"deliver_fast_path\",\n DELETE_MESSAGES: \"delete_messages\",\n READ_RECEIPT: \"read_receipt\",\n SENT_PUSH: \"sent_push\",\n READ: \"read\",\n CHANGE_MUTE_SETTINGS: \"change_mute_settings\",\n ERROR: \"error\",\n UNMARK_SPAM: \"unmark_spam\",\n UNREAD: \"unread\",\n DELIVER_LOG: \"deliver_log\",\n DELIVER: \"deliver\",\n READ_ALL: \"read_all\",\n TAG: \"tag\",\n MORE_THREADS: \"more_threads\",\n DELETE: \"delete\",\n REPORT_SPAM: \"report_spam\",\n SUBSCRIBE: \"subscribe\"\n };\n});\n__d(\"MessagingTag\", [], function(a, b, c, d, e, f) {\n e.exports = {\n MTA_SYSTEM_MESSAGE: \"MTA:system_message\",\n SENT: \"sent\",\n INBOX: \"inbox\",\n SMS_TAG_ROOT: \"SMSShortcode:\",\n UPDATES: \"broadcasts_inbox\",\n OTHER: \"other\",\n GROUPS: \"groups\",\n FILTERED_CONTENT: \"filtered_content\",\n ACTION_ARCHIVED: \"action:archived\",\n UNREAD: \"unread\",\n BCC: \"header:bcc\",\n SMS_MUTE: \"sms_mute\",\n ARCHIVED: \"archived\",\n DOMAIN_AUTH_PASS: \"MTA:dmarc:pass\",\n EVENT: \"JSBNG__event\",\n VOICEMAIL: \"voicemail\",\n DOMAIN_AUTH_FAIL: \"MTA:dmarc:fail\",\n SPAM_SPOOFING: \"spam:spoofing\",\n SPOOF_WARNING: \"MTA:spoof_warning\",\n SPAM: \"spam\",\n EMAIL_MESSAGE: \"source:email\",\n EMAIL: \"email\",\n APP_ID_ROOT: \"app_id:\"\n };\n});\n__d(\"AvailableListConstants\", [], function(a, b, c, d, e, f) {\n var g = {\n ON_AVAILABILITY_CHANGED: \"buddylist/availability-changed\",\n ON_UPDATE_ERROR: \"buddylist/update-error\",\n ON_UPDATED: \"buddylist/updated\",\n ON_CHAT_NOTIFICATION_CHANGED: \"chat-notification-changed\",\n OFFLINE: 0,\n IDLE: 1,\n ACTIVE: 2,\n MOBILE: 3,\n LEGACY_OVERLAY_OFFLINE: -1,\n LEGACY_OVERLAY_ONLINE: 0,\n LEGACY_OVERLAY_IDLE: 1,\n legacyStatusMap: {\n 0: 2,\n 1: 1,\n \"-1\": 0,\n 2: 3\n },\n reverseLegacyStatusMap: {\n 0: -1,\n 1: 1,\n 2: 0,\n 3: 2\n }\n };\n a.AvailableListConstants = e.exports = g;\n});\n__d(\"PresenceUtil\", [\"Cookie\",\"Env\",\"randomInt\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Cookie\"), h = b(\"Env\"), i = b(\"randomInt\"), j = b(\"tx\"), k = ((i(0, 4294967295) + 1)), l = {\n checkMaintenanceError: function(m) {\n if (((m.getError() == 1356007))) {\n return true;\n }\n ;\n ;\n return false;\n },\n getErrorDescription: function(m) {\n var n = m.getError(), o = m.getErrorDescription();\n if (!o) {\n o = \"An error occurred.\";\n }\n ;\n ;\n if (((n == 1357001))) {\n o = \"Your session has timed out. Please log in.\";\n }\n ;\n ;\n return o;\n },\n getSessionID: function() {\n return k;\n },\n hasUserCookie: function() {\n return ((h.user === g.get(\"c_user\")));\n }\n };\n e.exports = l;\n});\n__d(\"PresencePrivacy\", [\"hasArrayNature\",\"Arbiter\",\"AsyncRequest\",\"ChannelConstants\",\"copyProperties\",\"Env\",\"JSLogger\",\"PresenceUtil\",\"PresencePrivacyInitialData\",], function(a, b, c, d, e, f) {\n var g = b(\"hasArrayNature\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"ChannelConstants\"), k = b(\"copyProperties\"), l = b(\"Env\"), m = b(\"JSLogger\"), n = b(\"PresenceUtil\"), o = b(\"PresencePrivacyInitialData\"), p = \"/ajax/chat/privacy/settings.php\", q = \"/ajax/chat/privacy/online_policy.php\", r = \"/ajax/chat/privacy/visibility.php\", s = \"friend_visibility\", t = \"visibility\", u = \"online_policy\", v = k({\n }, o.privacyData), w = o.visibility, x = k({\n }, o.privacyData), y = w, z = o.onlinePolicy, aa = z, ba = [], ca = false;\n function da() {\n return m.create(\"blackbird\");\n };\n;\n var ea = k(new h(), {\n WHITELISTED: 1,\n BLACKLISTED: -1,\n UNLISTED: 0,\n ONLINE: 1,\n OFFLINE: 0,\n ONLINE_TO_WHITELIST: 0,\n ONLINE_TO_BLACKLIST: 1\n });\n function fa(ra) {\n var sa;\n {\n var fin145keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin145i = (0);\n (0);\n for (; (fin145i < fin145keys.length); (fin145i++)) {\n ((sa) = (fin145keys[fin145i]));\n {\n var ta = ra[sa];\n if (((sa == l.user))) {\n da().error(\"set_viewer_visibility\");\n throw new Error(\"Invalid to set current user's visibility\");\n }\n ;\n ;\n switch (ta) {\n case ea.WHITELISTED:\n \n case ea.BLACKLISTED:\n \n case ea.UNLISTED:\n break;\n default:\n da().error(\"set_invalid_friend_visibility\", {\n id: sa,\n value: ta\n });\n throw new Error(((\"Invalid state: \" + ta)));\n };\n ;\n };\n };\n };\n ;\n {\n var fin146keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin146i = (0);\n (0);\n for (; (fin146i < fin146keys.length); (fin146i++)) {\n ((sa) = (fin146keys[fin146i]));\n {\n v[sa] = ra[sa];\n ;\n };\n };\n };\n ;\n ea.inform(\"privacy-changed\");\n };\n;\n function ga(ra, sa) {\n var ta = {\n };\n ta[ra] = sa;\n fa(ta);\n };\n;\n function ha(ra) {\n switch (ra) {\n case ea.ONLINE:\n \n case ea.OFFLINE:\n break;\n default:\n da().error(\"set_invalid_visibility\", {\n value: ra\n });\n throw new Error(((\"Invalid visibility: \" + ra)));\n };\n ;\n w = ra;\n ea.inform(\"privacy-changed\");\n ea.inform(\"privacy-user-presence-changed\");\n h.inform(\"chat/visibility-changed\", {\n sender: this\n });\n };\n;\n function ia(ra) {\n switch (ra) {\n case ea.ONLINE_TO_WHITELIST:\n \n case ea.ONLINE_TO_BLACKLIST:\n break;\n default:\n throw new Error(((\"Invalid default online policy: \" + ra)));\n };\n ;\n z = ra;\n ea.inform(\"privacy-user-presence-changed\");\n ea.inform(\"privacy-changed\");\n };\n;\n function ja(ra, sa) {\n ca = true;\n ra.send();\n };\n;\n function ka(ra, sa) {\n ba.push({\n request: ra,\n data: sa\n });\n if (!ca) {\n var ta = ba.shift();\n ja(ta.request, ta.data);\n }\n ;\n ;\n };\n;\n function la(ra, sa) {\n var ta = ra.type;\n if (((ta === s))) {\n var ua = sa.payload.user_availabilities;\n if (!g(ua)) {\n ea.inform(\"privacy-availability-changed\", {\n user_availabilities: ua\n });\n {\n var fin147keys = ((window.top.JSBNG_Replay.forInKeys)((ra.settings))), fin147i = (0);\n var va;\n for (; (fin147i < fin147keys.length); (fin147i++)) {\n ((va) = (fin147keys[fin147i]));\n {\n x[va] = ra.settings[va];\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n }\n else {\n if (((ta === t))) {\n y = ra.visibility;\n }\n else if (((ta === u))) {\n aa = ra.online_policy;\n }\n \n ;\n ;\n ea.inform(\"privacy-user-presence-response\");\n }\n ;\n ;\n da().log(\"set_update_response\", {\n data: ra,\n response: sa\n });\n };\n;\n function ma(ra, sa) {\n if (((w !== y))) {\n ha(y);\n }\n ;\n ;\n if (((z !== aa))) {\n ia(aa);\n }\n ;\n ;\n k(v, x);\n ea.inform(\"privacy-changed\");\n ba = [];\n da().log(\"set_error_response\", {\n data: ra,\n response: sa\n });\n };\n;\n function na(ra) {\n ca = false;\n if (((ba.length > 0))) {\n var sa = ba.shift();\n ja(sa.request, sa.data);\n }\n ;\n ;\n };\n;\n function oa(ra, sa) {\n if (((n != null))) {\n var ta = ra.getData();\n ta.window_id = n.getSessionID();\n ra.setData(ta);\n }\n ;\n ;\n ra.setHandler(la.bind(this, sa)).setErrorHandler(ma.bind(this, sa)).setTransportErrorHandler(ma.bind(this, sa)).setFinallyHandler(na.bind(this)).setAllowCrossPageTransition(true);\n return ra;\n };\n;\n function pa(ra, sa, ta) {\n return oa(new i(ra).setData(sa), ta);\n };\n;\n function qa(ra, sa) {\n var ta = sa.obj;\n if (((ta.viewer_id != l.user))) {\n da().error(\"invalid_viewer_for_channel_message\", {\n type: ra,\n data: sa\n });\n throw new Error(\"Viewer got from the channel is not the real viewer\");\n }\n ;\n ;\n if (((ta.window_id === n.getSessionID()))) {\n return;\n }\n ;\n ;\n var ua = ta.data;\n if (((ta.JSBNG__event == \"access_control_entry\"))) {\n ua.target_ids.forEach(function(wa) {\n ga(wa, ua.setting);\n x[wa] = ua.setting;\n });\n }\n else {\n if (((ta.JSBNG__event == \"visibility_update\"))) {\n var va = ((!!ua.visibility ? ea.ONLINE : ea.OFFLINE));\n ha(va);\n y = va;\n }\n else if (((ta.JSBNG__event == \"online_policy_update\"))) {\n ia(ua.online_policy);\n aa = ua.online_policy;\n }\n \n ;\n ;\n ea.inform(\"privacy-user-presence-response\");\n }\n ;\n ;\n da().log(\"channel_message_received\", {\n data: sa.obj\n });\n };\n;\n k(ea, {\n WHITELISTED: 1,\n BLACKLISTED: -1,\n UNLISTED: 0,\n ONLINE: 1,\n OFFLINE: 0,\n ONLINE_TO_WHITELIST: 0,\n ONLINE_TO_BLACKLIST: 1,\n init: function(ra, sa, ta) {\n \n },\n setVisibility: function(ra) {\n y = w;\n ha(ra);\n var sa = {\n visibility: ra\n }, ta = {\n type: t,\n visibility: ra\n }, ua = pa(r, sa, ta);\n ka(ua, ta);\n da().log(\"set_visibility\", {\n data: sa\n });\n return ra;\n },\n getVisibility: function() {\n return w;\n },\n setOnlinePolicy: function(ra) {\n aa = z;\n ia(ra);\n var sa = {\n online_policy: ra\n }, ta = {\n type: u,\n online_policy: ra\n }, ua = pa(q, sa, ta);\n ka(ua, ta);\n da().log(\"set_online_policy\", {\n data: sa\n });\n return ra;\n },\n getOnlinePolicy: function() {\n return z;\n },\n getFriendVisibility: function(ra) {\n return ((v[ra] || ea.UNLISTED));\n },\n allows: function(ra) {\n if (((this.getVisibility() === ea.OFFLINE))) {\n return false;\n }\n ;\n ;\n var sa = this.getOnlinePolicy();\n return ((((sa === ea.ONLINE_TO_WHITELIST)) ? ((v[ra] == ea.WHITELISTED)) : ((v[ra] != ea.BLACKLISTED))));\n },\n setFriendsVisibility: function(ra, sa) {\n if (((ra.length > 0))) {\n var ta = {\n };\n for (var ua = 0; ((ua < ra.length)); ua++) {\n var va = ra[ua];\n x[va] = v[va];\n ta[va] = sa;\n };\n ;\n fa(ta);\n var wa = sa;\n if (((wa == ea.UNLISTED))) {\n wa = x[ra[0]];\n }\n ;\n ;\n var xa = {\n users: ra,\n setting: sa,\n setting_type: wa\n }, ya = {\n type: s,\n settings: ta\n }, za = pa(p, xa, ya);\n ka(za, ya);\n da().log(\"set_friend_visibility\", {\n data: xa\n });\n }\n ;\n ;\n return sa;\n },\n setFriendVisibilityMap: function(ra, sa) {\n {\n var fin148keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin148i = (0);\n var ta;\n for (; (fin148i < fin148keys.length); (fin148i++)) {\n ((ta) = (fin148keys[fin148i]));\n {\n x[ta] = v[ta];\n ;\n };\n };\n };\n ;\n fa(ra);\n var ua = {\n type: s,\n settings: ra\n };\n ka(oa(sa, ua), ua);\n da().log(\"set_friend_visibility_from_map\", {\n data: ra\n });\n },\n allow: function(ra) {\n if (this.allows(ra)) {\n da().error(\"allow_already_allowed\");\n throw new Error(((\"allow() should only be called for users that \" + \"are not already allowed\")));\n }\n ;\n ;\n if (((this.getVisibility() === ea.OFFLINE))) {\n da().error(\"allow_called_while_offline\");\n throw new Error(\"allow() should only be called when the user is already online\");\n }\n ;\n ;\n var sa = ((((this.getOnlinePolicy() === ea.ONLINE_TO_WHITELIST)) ? ea.WHITELISTED : ea.UNLISTED));\n return this.setFriendsVisibility([ra,], sa);\n },\n disallow: function(ra) {\n if (!this.allows(ra)) {\n da().error(\"disallow_already_disallowed\");\n throw new Error(((\"disallow() should only be called for users that \" + \"are not already disallowed\")));\n }\n ;\n ;\n if (((this.getVisibility() === ea.OFFLINE))) {\n da().error(\"disallow_called_while_offline\");\n throw new Error(\"disallow() should only be called when the user is already online\");\n }\n ;\n ;\n var sa = ((((this.getOnlinePolicy() === ea.ONLINE_TO_BLACKLIST)) ? ea.BLACKLISTED : ea.UNLISTED));\n return this.setFriendsVisibility([ra,], sa);\n },\n getBlacklist: function() {\n var ra = [];\n {\n var fin149keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin149i = (0);\n var sa;\n for (; (fin149i < fin149keys.length); (fin149i++)) {\n ((sa) = (fin149keys[fin149i]));\n {\n if (((v[sa] === ea.BLACKLISTED))) {\n ra.push(sa);\n }\n ;\n ;\n };\n };\n };\n ;\n return ra;\n },\n getWhitelist: function() {\n var ra = [];\n {\n var fin150keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin150i = (0);\n var sa;\n for (; (fin150i < fin150keys.length); (fin150i++)) {\n ((sa) = (fin150keys[fin150i]));\n {\n if (((v[sa] === ea.WHITELISTED))) {\n ra.push(sa);\n }\n ;\n ;\n };\n };\n };\n ;\n return ra;\n },\n getMapForTest: function() {\n return v;\n },\n setMapForTest: function(ra) {\n v = ra;\n }\n });\n ea.inform(\"privacy-changed\");\n ea.inform(\"privacy-user-presence-changed\");\n da().log(\"initialized\", {\n visibility: w,\n policy: z\n });\n h.subscribe(j.getArbiterType(\"privacy_changed\"), qa.bind(this));\n h.subscribe(j.ON_CONFIG, function(ra, sa) {\n var ta = sa.getConfig(\"visibility\", null);\n if (((((ta !== null)) && ((typeof (ta) !== \"undefined\"))))) {\n var ua = ((ta ? ea.ONLINE : ea.OFFLINE));\n ha(ua);\n da().log(\"config_visibility\", {\n vis: ua\n });\n }\n ;\n ;\n }.bind(this));\n a.PresencePrivacy = e.exports = ea;\n}, 3);\n__d(\"ChatVisibility\", [\"Arbiter\",\"JSLogger\",\"PresencePrivacy\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"JSLogger\"), i = b(\"PresencePrivacy\"), j = {\n isOnline: function() {\n return ((i.getVisibility() === i.ONLINE));\n },\n hasBlackbirdEnabled: function() {\n return ((this.isVisibleToMostFriends() || this.isVisibleToSomeFriends()));\n },\n isVisibleToMostFriends: function() {\n return ((((i.getOnlinePolicy() === i.ONLINE_TO_BLACKLIST)) && ((i.getBlacklist().length > 0))));\n },\n isVisibleToSomeFriends: function() {\n return ((((i.getOnlinePolicy() === i.ONLINE_TO_WHITELIST)) && ((i.getWhitelist().length > 0))));\n },\n goOnline: function(k) {\n if (((i.getVisibility() === i.OFFLINE))) {\n h.create(\"blackbird\").log(\"chat_go_online\");\n i.setVisibility(i.ONLINE);\n g.inform(\"chat-visibility/go-online\");\n }\n ;\n ;\n ((k && k()));\n },\n goOffline: function(k) {\n if (((i.getVisibility() === i.ONLINE))) {\n h.create(\"blackbird\").log(\"chat_go_offline\");\n i.setVisibility(i.OFFLINE);\n g.inform(\"chat-visibility/go-offline\");\n }\n ;\n ;\n ((k && k()));\n },\n toggleVisibility: function() {\n if (j.isOnline()) {\n j.goOffline();\n }\n else j.goOnline();\n ;\n ;\n }\n };\n a.ChatVisibility = e.exports = j;\n}, 3);\n__d(\"MercuryIDs\", [], function(a, b, c, d, e, f) {\n function g(i) {\n return ((((typeof i === \"string\")) && ((i.indexOf(\":\") !== -1))));\n };\n;\n var h = {\n isValid: function(i) {\n if (!i) {\n return false;\n }\n ;\n ;\n return g(i);\n },\n isValidThreadID: function(i) {\n if (!h.isValid(i)) {\n return false;\n }\n ;\n ;\n var j = h.tokenize(i);\n switch (j.type) {\n case \"user\":\n \n case \"group\":\n \n case \"thread\":\n \n case \"root\":\n \n case \"pending\":\n return true;\n default:\n return false;\n };\n ;\n },\n tokenize: function(i) {\n if (!this.isValid(i)) {\n throw \"bad_id_format\";\n }\n ;\n ;\n var j = i.indexOf(\":\");\n return {\n type: i.substr(0, j),\n value: i.substr(((j + 1)))\n };\n },\n getUserIDFromParticipantID: function(i) {\n if (!h.isValid(i)) {\n return null;\n }\n ;\n ;\n var j = h.tokenize(i);\n if (((j.type != \"fbid\"))) {\n return null;\n }\n ;\n ;\n return j.value;\n }\n };\n e.exports = h;\n});\n__d(\"MercuryAssert\", [\"MercuryIDs\",], function(a, b, c, d, e, f) {\n var g = b(\"MercuryIDs\");\n e.exports = {\n isParticipantID: function(h) {\n if (!g.isValid(h)) {\n throw \"bad_participant_id\";\n }\n ;\n ;\n },\n allParticipantIDs: function(h) {\n h.forEach(this.isParticipantID);\n },\n isUserParticipantID: function(h) {\n var i = g.tokenize(h);\n if (((i.type != \"fbid\"))) {\n throw \"bad_user_id\";\n }\n ;\n ;\n },\n isEmailParticipantID: function(h) {\n var i = g.tokenize(h);\n if (((i.type != \"email\"))) {\n throw \"bad_email_id\";\n }\n ;\n ;\n },\n allThreadID: function(h) {\n h.forEach(this.isThreadID);\n },\n isThreadID: function(h) {\n if (!g.isValid(h)) {\n throw \"bad_thread_id\";\n }\n ;\n ;\n }\n };\n});\n__d(\"MercurySingletonMixin\", [\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\"), h = {\n _getInstances: function() {\n if (!this._instances) {\n this._instances = {\n };\n }\n ;\n ;\n return this._instances;\n },\n get: function() {\n return this.getForFBID(g.user);\n },\n getForFBID: function(i) {\n var j = this._getInstances();\n if (!j[i]) {\n j[i] = new this(i);\n }\n ;\n ;\n return j[i];\n }\n };\n e.exports = h;\n});\n__d(\"MercuryMessageIDs\", [\"KeyedCallbackManager\",], function(a, b, c, d, e, f) {\n var g = b(\"KeyedCallbackManager\"), h = new g(), i = {\n getServerIDs: function(j, k) {\n var l = j.filter(function(n) {\n return ((n.indexOf(\"mail.projektitan.com\") !== -1));\n }), m = function(n) {\n var o = j.map(function(p) {\n return ((n[p] ? n[p] : p));\n });\n k(o);\n };\n return h.executeOrEnqueue(l, m);\n },\n addServerID: function(j, k) {\n h.setResource(j, k);\n }\n };\n e.exports = i;\n});\n__d(\"ImageSourceType\", [], function(a, b, c, d, e, f) {\n var g = {\n PROFILE_PICTURE: \"profile_picture\",\n IMAGE: \"image\"\n };\n e.exports = g;\n});\n__d(\"PhotoResizeModeConst\", [], function(a, b, c, d, e, f) {\n var g = {\n COVER: \"s\",\n CONTAIN: \"p\"\n };\n e.exports = g;\n});\n__d(\"ImageSourceRequest\", [\"arrayContains\",\"extendArray\",\"copyProperties\",\"Env\",\"KeyedCallbackManager\",\"ImageSourceType\",\"PhotoResizeModeConst\",\"MercuryServerDispatcher\",], function(a, b, c, d, e, f) {\n var g = b(\"arrayContains\"), h = b(\"extendArray\"), i = b(\"copyProperties\"), j = b(\"Env\"), k = b(\"KeyedCallbackManager\"), l = b(\"ImageSourceType\"), m = b(\"PhotoResizeModeConst\"), n = b(\"MercuryServerDispatcher\");\n function o() {\n this._request = {\n fbid: null,\n type: null,\n width: null,\n height: null,\n resize_mode: null\n };\n this._callback = null;\n };\n;\n i(o.prototype, {\n setFBID: function(s) {\n this._request.fbid = s;\n return this;\n },\n setType: function(s) {\n if (!g([l.PROFILE_PICTURE,l.IMAGE,], s)) {\n throw new TypeError(((\"ImageSourceRequest.setType: invalid type \" + s)));\n }\n ;\n ;\n this._request.type = s;\n return this;\n },\n setDimensions: function(s, t) {\n this._request.width = s;\n this._request.height = t;\n return this;\n },\n setResizeMode: function(s) {\n if (!g([m.COVER,m.CONTAIN,], s)) {\n throw new TypeError(((\"ImageSourceRequest.setResizeMode: invalid resize mode \" + s)));\n }\n ;\n ;\n this._request.resize_mode = s;\n return this;\n },\n setCallback: function(s) {\n this._callback = s;\n return this;\n },\n send: function() {\n if (((((((((((!this._request.fbid || !this._request.width)) || !this._request.height)) || !this._request.type)) || !this._request.resize_mode)) || !this._callback))) {\n throw new Error(\"ImageSourceRequest: You must set all the fields\");\n }\n ;\n ;\n var s = q(), t = r(this._request);\n s.executeOrEnqueue(t, this._callback);\n if (((s.getUnavailableResourcesFromRequest(t).length === 1))) {\n n.trySend(\"/ajax/image_source.php\", {\n requests: [this._request,]\n });\n return true;\n }\n ;\n ;\n return false;\n }\n });\n var p = null;\n function q() {\n if (p) {\n return p;\n }\n ;\n ;\n var s = new k();\n p = s;\n n.registerEndpoints({\n \"/ajax/image_source.php\": {\n request_user_id: j.user,\n mode: n.BATCH_DEFERRED_MULTI,\n batch_function: function(t, u) {\n h(t.requests, u.requests);\n return t;\n },\n handler: function(t, u) {\n var v = u.getData().requests;\n for (var w = 0; ((w < v.length)); ++w) {\n s.setResource(r(v[w]), t[w]);\n ;\n };\n ;\n }\n }\n });\n return s;\n };\n;\n function r(s) {\n return [s.fbid,s.type,s.width,s.height,s.resize_mode,].join(\"|\");\n };\n;\n e.exports = o;\n});\n__d(\"TimestampConverter\", [\"JSLogger\",], function(a, b, c, d, e, f) {\n var g = b(\"JSLogger\"), h = g.create(\"timestamp_converter\");\n function i(k) {\n return ((((typeof (k) == \"string\")) && ((k.length > 6))));\n };\n;\n var j = {\n convertActionIDToTimestamp: function(k) {\n if (i(k)) {\n var l = k.slice(0, -6);\n return parseInt(l, 10);\n }\n ;\n ;\n },\n maxValidActionID: function(k, l) {\n if (!i(k)) {\n return l;\n }\n ;\n ;\n if (!i(l)) {\n return k;\n }\n ;\n ;\n return ((this.isGreaterThan(k, l) ? k : l));\n },\n isGreaterThan: function(k, l) {\n if (((!i(k) || !i(l)))) {\n return false;\n }\n ;\n ;\n return ((this.convertActionIDToTimestamp(k) > this.convertActionIDToTimestamp(l)));\n }\n };\n e.exports = j;\n});\n__d(\"MessagingReliabilityLogger\", [\"function-extensions\",\"PresenceUtil\",\"MercuryServerDispatcher\",\"MessagingReliabilityLoggerInitialData\",\"isEmpty\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"PresenceUtil\"), h = b(\"MercuryServerDispatcher\"), i = b(\"MessagingReliabilityLoggerInitialData\"), j = b(\"isEmpty\"), k = b(\"setTimeoutAcrossTransitions\"), l = \"/ajax/mercury/client_reliability.php\", m = 60000;\n function n(t, u) {\n var v = {\n app: i.app,\n categories: JSON.stringify(t)\n };\n if (!j(u)) {\n v.extra = JSON.stringify(u);\n }\n ;\n ;\n return v;\n };\n;\n function o(t, u, v, w) {\n if (((t[u] === undefined))) {\n t[u] = {\n };\n }\n ;\n ;\n if (((t[u][v] === undefined))) {\n t[u][v] = 0;\n }\n ;\n ;\n t[u][v] += w;\n };\n;\n function p(t, u, v, w) {\n if (((t[u] === undefined))) {\n t[u] = {\n };\n }\n ;\n ;\n if (((t[u][v] === undefined))) {\n t[u][v] = [];\n }\n ;\n ;\n for (var x = 0; ((x < w.length)); ++x) {\n t[u][v].push(w[x]);\n ;\n };\n ;\n };\n;\n function q(t, u) {\n if (((((t && !t.categories)) || ((u && !u.categories))))) {\n return;\n }\n ;\n ;\n var v = ((t ? JSON.parse(t.categories) : {\n })), w = ((((t && t.extra)) ? JSON.parse(t.extra) : {\n })), x = JSON.parse(u.categories), y = ((u.extra ? JSON.parse(u.extra) : {\n }));\n {\n var fin151keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin151i = (0);\n var z;\n for (; (fin151i < fin151keys.length); (fin151i++)) {\n ((z) = (fin151keys[fin151i]));\n {\n var aa = x[z], ba = y[z];\n {\n var fin152keys = ((window.top.JSBNG_Replay.forInKeys)((aa))), fin152i = (0);\n var ca;\n for (; (fin152i < fin152keys.length); (fin152i++)) {\n ((ca) = (fin152keys[fin152i]));\n {\n o(v, z, ca, aa[ca]);\n if (((ba !== undefined))) {\n var da = ba[ca];\n if (((da !== undefined))) {\n p(w, z, ca, da);\n }\n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n };\n };\n };\n ;\n return n(v, w);\n };\n;\n var r = {\n };\n r[l] = {\n mode: h.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR,\n batch_function: q\n };\n h.registerEndpoints(r);\n var s = {\n addEntry: function(t, u, v) {\n if (!i.enabled) {\n return;\n }\n ;\n ;\n var w = {\n };\n o(w, t, u, 1);\n var x = {\n };\n if (((v !== undefined))) {\n p(x, t, u, [v,]);\n }\n ;\n ;\n h.trySend(l, n(w, x));\n }\n };\n (function t() {\n s.addEntry(\"page_event\", \"active\", g.getSessionID());\n k(t, m);\n })();\n e.exports = s;\n});\n__d(\"MercuryThreadInformer\", [\"ArbiterMixin\",\"copyProperties\",\"MercuryAssert\",\"MercurySingletonMixin\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"copyProperties\"), i = b(\"MercuryAssert\"), j = b(\"MercurySingletonMixin\");\n function k(m) {\n if (!m._locked) {\n var n = m._threadDeletions, o = m._threadChanges, p = m._threadReadChanges, q = m._threadlistChanged, r = m._unseenStateChanged, s = m._unreadStateChanged, t = m._receivedMessages, u = m._reorderedMessages, v = m._updatedMessages;\n m._threadDeletions = {\n };\n m._threadChanges = {\n };\n m._threadReadChanges = {\n };\n m._threadlistChanged = false;\n m._unseenStateChanged = false;\n m._unreadStateChanged = false;\n m._receivedMessages = {\n };\n m._reorderedMessages = {\n };\n m._updatedMessages = {\n };\n var w = Object.keys(o);\n if (((w.length || q))) {\n m.inform(\"threadlist-updated\", w);\n }\n ;\n ;\n if (w.length) {\n m.inform(\"threads-updated\", o);\n }\n ;\n ;\n {\n var fin153keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin153i = (0);\n var x;\n for (; (fin153i < fin153keys.length); (fin153i++)) {\n ((x) = (fin153keys[fin153i]));\n {\n m.inform(\"thread-read-changed\", p);\n break;\n };\n };\n };\n ;\n {\n var fin154keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin154i = (0);\n var x;\n for (; (fin154i < fin154keys.length); (fin154i++)) {\n ((x) = (fin154keys[fin154i]));\n {\n m.inform(\"threads-deleted\", n);\n break;\n };\n };\n };\n ;\n if (r) {\n m.inform(\"unseen-updated\", null);\n }\n ;\n ;\n if (s) {\n m.inform(\"unread-updated\", null);\n }\n ;\n ;\n {\n var fin155keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin155i = (0);\n (0);\n for (; (fin155i < fin155keys.length); (fin155i++)) {\n ((x) = (fin155keys[fin155i]));\n {\n m.inform(\"messages-received\", t);\n break;\n };\n };\n };\n ;\n {\n var fin156keys = ((window.top.JSBNG_Replay.forInKeys)((u))), fin156i = (0);\n (0);\n for (; (fin156i < fin156keys.length); (fin156i++)) {\n ((x) = (fin156keys[fin156i]));\n {\n m.inform(\"messages-reordered\", u);\n break;\n };\n };\n };\n ;\n {\n var fin157keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin157i = (0);\n (0);\n for (; (fin157i < fin157keys.length); (fin157i++)) {\n ((x) = (fin157keys[fin157i]));\n {\n m.inform(\"messages-updated\", v);\n break;\n };\n };\n };\n ;\n }\n ;\n ;\n };\n;\n function l(m) {\n this._fbid = m;\n this._threadDeletions = {\n };\n this._threadChanges = {\n };\n this._threadReadChanges = {\n };\n this._threadlistChanged = false;\n this._unseenStateChanged = false;\n this._unreadStateChanged = false;\n this._receivedMessages = {\n };\n this._reorderedMessages = {\n };\n this._updatedMessages = {\n };\n this._locked = 0;\n };\n;\n h(l.prototype, g, {\n updatedThread: function(m) {\n this._threadChanges[m] = true;\n k(this);\n },\n deletedThread: function(m) {\n this._threadDeletions[m] = true;\n k(this);\n },\n updatedThreadlist: function() {\n this._threadlistChanged = true;\n k(this);\n },\n updatedUnseenState: function() {\n this._unseenStateChanged = true;\n k(this);\n },\n updatedUnreadState: function() {\n this._unreadStateChanged = true;\n k(this);\n },\n changedThreadReadState: function(m, n, o) {\n if (((!this._threadReadChanges[m] || ((this._threadReadChanges[m].timestamp < o))))) {\n this._threadReadChanges[m] = {\n mark_as_read: n,\n timestamp: o\n };\n }\n ;\n ;\n k(this);\n },\n receivedMessage: function(m) {\n i.isThreadID(m.thread_id);\n var n = m.thread_id;\n if (!this._receivedMessages[n]) {\n this._receivedMessages[n] = [];\n }\n ;\n ;\n this._receivedMessages[n].push(m);\n this.updatedThread(n);\n },\n reorderedMessages: function(m, n) {\n this._reorderedMessages[m] = {\n source: n\n };\n k(this);\n },\n updatedMessage: function(m, n, o) {\n if (!this._updatedMessages[m]) {\n this._updatedMessages[m] = {\n };\n }\n ;\n ;\n this._updatedMessages[m][n] = {\n source: o\n };\n this.updatedThread(m);\n },\n synchronizeInforms: function(m) {\n this._locked++;\n try {\n m();\n } catch (n) {\n throw n;\n } finally {\n this._locked--;\n k(this);\n };\n ;\n },\n listen: function(m, n) {\n return this.subscribe(\"threads-updated\", function(o, p) {\n if (p[m]) {\n n(m);\n }\n ;\n ;\n });\n }\n });\n h(l, j);\n e.exports = l;\n});\n__d(\"MercuryServerRequests\", [\"ArbiterMixin\",\"AsyncResponse\",\"TimestampConverter\",\"Env\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryActionStatus\",\"MercuryAPIArgsSource\",\"MercuryAssert\",\"MercuryErrorType\",\"MercuryGenericConstants\",\"MercuryGlobalActionType\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercuryPayloadSource\",\"MercuryServerRequestsConfig\",\"MercurySourceType\",\"MercuryThreadlistConstants\",\"MercuryMessageIDs\",\"MessagingConfig\",\"MessagingReliabilityLogger\",\"MessagingTag\",\"MercurySingletonMixin\",\"MercuryServerDispatcher\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"AsyncResponse\"), i = b(\"TimestampConverter\"), j = b(\"Env\"), k = b(\"JSLogger\"), l = b(\"KeyedCallbackManager\"), m = b(\"MercuryActionTypeConstants\"), n = b(\"MercuryActionStatus\"), o = b(\"MercuryAPIArgsSource\"), p = b(\"MercuryAssert\"), q = b(\"MercuryErrorType\"), r = b(\"MercuryGenericConstants\"), s = b(\"MercuryGlobalActionType\"), t = b(\"MercuryIDs\"), u = b(\"MercuryLogMessageType\"), v = b(\"MercuryPayloadSource\"), w = b(\"MercuryServerRequestsConfig\"), x = b(\"MercurySourceType\"), y = b(\"MercuryThreadlistConstants\"), z = b(\"MercuryMessageIDs\"), aa = b(\"MessagingConfig\"), ba = b(\"MessagingReliabilityLogger\"), ca = b(\"MessagingTag\"), da = b(\"MercurySingletonMixin\"), ea = b(\"MercuryServerDispatcher\"), fa = b(\"MercuryThreadInformer\"), ga = b(\"copyProperties\"), ha = b(\"createObjectFrom\"), ia = k.create(\"mercury_server\"), ja = o.MERCURY;\n function ka(sb, tb) {\n if (tb) {\n sb._lastActionId = i.maxValidActionID(sb._lastActionId, tb);\n }\n ;\n ;\n };\n;\n function la(sb, tb) {\n var ub = tb.thread_id, vb = sb._serverToClientIDs.getResource(ub);\n if (!vb) {\n if (tb.canonical_fbid) {\n vb = ((\"user:\" + tb.canonical_fbid));\n }\n else if (tb.root_message_threading_id) {\n vb = ((\"root:\" + tb.root_message_threading_id));\n }\n \n ;\n ;\n vb = ((vb || ((\"thread:\" + ub))));\n ma(sb, ub, vb);\n }\n ;\n ;\n tb.thread_id = vb;\n };\n;\n function ma(sb, tb, ub) {\n sb._serverToClientIDs.setResource(tb, ub);\n sb._clientToServerIDs.setResource(ub, tb);\n sb._newlyAddedClientIDs[tb] = ub;\n };\n;\n function na(sb, tb, ub) {\n var vb = sb._clientToServerIDs.executeOrEnqueue(tb, ub), wb = sb._clientToServerIDs.getUnavailableResources(vb), xb = sb.tokenizeThreadID(tb);\n if (((wb.length && ((xb.type != \"root\"))))) {\n sb.fetchThreadData(wb);\n }\n ;\n ;\n };\n;\n function oa(sb, tb) {\n return sb._clientToServerIDs.getResource(tb);\n };\n;\n function pa(sb, tb) {\n return !!sb._serverToClientIDs.getResource(tb);\n };\n;\n function qa(sb, tb) {\n var ub = sb._serverToClientIDs.getResource(tb);\n if (((typeof ub == \"undefined\"))) {\n ia.warn(\"no_client_thread_id\", {\n server_id: tb\n });\n }\n ;\n ;\n return ub;\n };\n;\n function ra(sb, tb, ub) {\n sb._serverToClientIDs.executeOrEnqueue(tb, ub);\n sb.ensureThreadIsFetched(tb);\n };\n;\n function sa(sb, tb, ub) {\n if (((tb.action_type != m.SEND_MESSAGE))) {\n return;\n }\n ;\n ;\n var vb = tb.client_thread_id;\n if (!vb) {\n vb = qa(sb, tb.thread_id);\n }\n ;\n ;\n var wb = null;\n if (vb) {\n wb = t.tokenize(vb).type;\n }\n ;\n ;\n ba.addEntry(((\"send_\" + wb)), ub, ((((tb.thread_id + \",\")) + tb.message_id)));\n };\n;\n function ta(sb) {\n return ((sb.getError() ? ((\"_\" + sb.getError())) : \"\"));\n };\n;\n function ua(sb, tb) {\n var ub = null;\n switch (tb.JSBNG__status) {\n case n.SUCCESS:\n ub = \"success\";\n break;\n case n.FAILED_UNKNOWN_REASON:\n ub = \"confirmed_error\";\n break;\n case n.UNABLE_TO_CONFIRM:\n ub = \"confirm_error\";\n break;\n default:\n return;\n };\n ;\n sa(sb, tb, ub);\n };\n;\n function va(sb, tb) {\n ((tb.message_counts || [])).forEach(function(cc) {\n ka(sb, cc.last_action_id);\n });\n ((tb.threads || [])).forEach(function(cc) {\n la(sb, cc);\n delete sb._fetchingThreads[cc.thread_id];\n var dc = oa(sb, cc.thread_id);\n delete sb._fetchingThreads[dc];\n ka(sb, cc.last_action_id);\n });\n ((tb.ordered_threadlists || [])).forEach(function(cc) {\n cc.thread_ids = cc.thread_ids.map(qa.curry(sb));\n });\n tb.actions = ((tb.actions || []));\n tb.actions.forEach(function(cc) {\n ua(sb, cc);\n if (((((cc.JSBNG__status && ((cc.JSBNG__status != n.SUCCESS)))) && !cc.thread_id))) {\n cc.thread_id = cc.client_thread_id;\n return;\n }\n ;\n ;\n if (((((((cc.action_type == m.SEND_MESSAGE)) && cc.client_thread_id)) && ((cc.client_thread_id != r.PENDING_THREAD_ID))))) {\n ma(sb, cc.thread_id, cc.client_thread_id);\n }\n ;\n ;\n cc.server_thread_id = cc.thread_id;\n cc.thread_id = ((pa(sb, cc.thread_id) ? qa(sb, cc.thread_id) : null));\n ka(sb, cc.action_id);\n });\n if (tb.end_of_history) {\n var ub = [];\n for (var vb = 0; ((vb < tb.end_of_history.length)); vb++) {\n var wb = tb.end_of_history[vb];\n if (((wb.type == \"user\"))) {\n ub.push(((\"user:\" + wb.id)));\n }\n else if (((((wb.type == \"thread\")) && pa(sb, wb.id)))) {\n ub.push(qa(sb, wb.id));\n }\n \n ;\n ;\n };\n ;\n tb.end_of_history = ub;\n }\n ;\n ;\n if (tb.roger) {\n var xb = {\n };\n {\n var fin158keys = ((window.top.JSBNG_Replay.forInKeys)((tb.roger))), fin158i = (0);\n var yb;\n for (; (fin158i < fin158keys.length); (fin158i++)) {\n ((yb) = (fin158keys[fin158i]));\n {\n var zb = sb._serverToClientIDs.getResource(yb);\n if (zb) {\n var ac = tb.roger[yb];\n xb[zb] = {\n };\n {\n var fin159keys = ((window.top.JSBNG_Replay.forInKeys)((ac))), fin159i = (0);\n var bc;\n for (; (fin159i < fin159keys.length); (fin159i++)) {\n ((bc) = (fin159keys[fin159i]));\n {\n xb[zb][((\"fbid:\" + bc))] = ac[bc];\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n tb.roger = xb;\n }\n ;\n ;\n };\n;\n function wa(sb) {\n if (((sb._pendingUpdates && sb._pendingUpdates.length))) {\n var tb = sb._pendingUpdates[0];\n sb._pendingUpdates = sb._pendingUpdates.slice(1);\n sb.handleUpdate(tb);\n }\n ;\n ;\n };\n;\n function xa(sb, tb) {\n var ub = ga({\n }, sb), vb;\n if (tb.threads) {\n if (!ub.threads) {\n ub.threads = {\n };\n }\n ;\n ;\n {\n var fin160keys = ((window.top.JSBNG_Replay.forInKeys)((tb.threads))), fin160i = (0);\n (0);\n for (; (fin160i < fin160keys.length); (fin160i++)) {\n ((vb) = (fin160keys[fin160i]));\n {\n ub.threads[vb] = Object.keys(ha(((ub.threads[vb] || [])).concat(tb.threads[vb])));\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n if (tb.messages) {\n if (!ub.messages) {\n ub.messages = {\n };\n }\n ;\n ;\n {\n var fin161keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages))), fin161i = (0);\n (0);\n for (; (fin161i < fin161keys.length); (fin161i++)) {\n ((vb) = (fin161keys[fin161i]));\n {\n if (!ub.messages[vb]) {\n ub.messages[vb] = {\n };\n }\n ;\n ;\n {\n var fin162keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages[vb]))), fin162i = (0);\n var wb;\n for (; (fin162i < fin162keys.length); (fin162i++)) {\n ((wb) = (fin162keys[fin162i]));\n {\n if (ub.messages[vb][wb]) {\n ub.messages[vb][wb] = ab(ub.messages[vb][wb], tb.messages[vb][wb]);\n }\n else ub.messages[vb][wb] = tb.messages[vb][wb];\n ;\n ;\n };\n };\n };\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n ub.client = ((sb.client || tb.client));\n return ub;\n };\n;\n function ya(sb, tb) {\n var ub = ga(ha(sb.folders, true), ha(tb.folders, true)), vb = ((sb.client || tb.client));\n return {\n folders: Object.keys(ub),\n client: vb\n };\n };\n;\n function za(sb, tb) {\n {\n var fin163keys = ((window.top.JSBNG_Replay.forInKeys)((tb))), fin163i = (0);\n var ub;\n for (; (fin163i < fin163keys.length); (fin163i++)) {\n ((ub) = (fin163keys[fin163i]));\n {\n if (((sb[ub] && ((typeof sb[ub] === \"object\"))))) {\n sb[ub] = ab(sb[ub], tb[ub]);\n }\n else if (((tb[ub] && ((typeof tb[ub] === \"object\"))))) {\n var vb = {\n };\n ga(vb, tb[ub]);\n sb[ub] = vb;\n }\n \n ;\n ;\n };\n };\n };\n ;\n return sb;\n };\n;\n function ab(sb, tb) {\n var ub = ((((sb.offset < tb.offset)) ? sb.offset : tb.offset)), vb = ((sb.offset + sb.limit)), wb = ((tb.offset + tb.limit)), xb = ((((vb > wb)) ? vb : wb)), yb = ((xb - ub));\n return {\n offset: ub,\n limit: yb\n };\n };\n;\n function bb(sb, tb) {\n var ub = ((sb.client || tb.client)), vb = {\n ids: {\n },\n client: ub\n };\n ga(vb.ids, sb.ids);\n ga(vb.ids, tb.ids);\n return vb;\n };\n;\n function cb(sb, tb) {\n var ub = {\n }, vb, wb = ((sb.client || tb.client));\n delete sb.client;\n delete tb.client;\n {\n var fin164keys = ((window.top.JSBNG_Replay.forInKeys)((sb))), fin164i = (0);\n (0);\n for (; (fin164i < fin164keys.length); (fin164i++)) {\n ((vb) = (fin164keys[fin164i]));\n {\n ga(ub, ha(sb[vb], vb));\n ;\n };\n };\n };\n ;\n {\n var fin165keys = ((window.top.JSBNG_Replay.forInKeys)((tb))), fin165i = (0);\n (0);\n for (; (fin165i < fin165keys.length); (fin165i++)) {\n ((vb) = (fin165keys[fin165i]));\n {\n ga(ub, ha(tb[vb], vb));\n ;\n };\n };\n };\n ;\n var xb = {\n client: wb\n };\n {\n var fin166keys = ((window.top.JSBNG_Replay.forInKeys)((ub))), fin166i = (0);\n var yb;\n for (; (fin166i < fin166keys.length); (fin166i++)) {\n ((yb) = (fin166keys[fin166i]));\n {\n vb = ub[yb];\n if (!xb[vb]) {\n xb[vb] = [];\n }\n ;\n ;\n xb[vb].push(yb);\n };\n };\n };\n ;\n return xb;\n };\n;\n function db(sb, tb) {\n var ub = ((sb.client || tb.client)), vb = ha(sb.ids, true), wb = ha(tb.ids, true), xb = ga(vb, wb);\n return {\n ids: Object.keys(xb),\n client: ub\n };\n };\n;\n function eb(sb) {\n this._fbid = sb;\n this._lastActionId = 0;\n this._serverToClientIDs = new l();\n this._clientToServerIDs = new l();\n this._pendingUpdates = [];\n this._fetchingThreads = {\n };\n this._newlyAddedClientIDs = {\n };\n qb(this);\n };\n;\n ga(eb.prototype, g, {\n tokenizeThreadID: function(sb) {\n p.isThreadID(sb);\n return t.tokenize(sb);\n },\n getServerThreadID: function(sb, tb) {\n p.isThreadID(sb);\n na(this, sb, tb);\n },\n getClientThreadID: function(sb, tb) {\n ra(this, sb, tb);\n },\n getClientThreadIDNow: function(sb) {\n return qa(this, sb);\n },\n getServerThreadIDNow: function(sb) {\n return oa(this, sb);\n },\n convertThreadIDIfAvailable: function(sb) {\n var tb = this._serverToClientIDs.getResource(sb);\n if (((tb === undefined))) {\n return sb;\n }\n else return tb\n ;\n },\n canLinkExternally: function(sb) {\n p.isThreadID(sb);\n var tb = this.tokenizeThreadID(sb);\n return ((((tb.type == \"user\")) || !!oa(this, sb)));\n },\n fetchThreadlistInfo: function(sb, tb, ub, vb, wb) {\n ub = ((ub || ca.INBOX));\n wb = ((wb || ja));\n var xb = ((vb ? ea.IMMEDIATE : null)), yb = {\n client: wb\n };\n yb[ub] = {\n offset: sb,\n limit: tb,\n filter: vb\n };\n rb(this, \"/ajax/mercury/threadlist_info.php\", yb, xb);\n },\n fetchUnseenThreadIDs: function(sb, tb) {\n tb = ((tb || ja));\n this.fetchThreadlistInfo(y.RECENT_THREAD_OFFSET, y.JEWEL_THREAD_COUNT, sb, null, tb);\n },\n fetchUnreadThreadIDs: function(sb, tb) {\n tb = ((tb || ja));\n rb(this, \"/ajax/mercury/unread_threads.php\", {\n folders: [sb,],\n client: tb\n });\n },\n fetchMissedMessages: function(sb, tb) {\n tb = ((tb || ja));\n rb(this, \"/ajax/mercury/thread_sync.php\", {\n last_action_id: this._lastActionId,\n folders: sb,\n client: tb\n });\n },\n fetchThreadData: function(sb, tb) {\n tb = ((tb || ja));\n p.allThreadID(sb);\n var ub = {\n threads: {\n },\n client: tb\n }, vb = [], wb = [];\n sb.forEach(function(yb) {\n if (this._fetchingThreads[yb]) {\n return;\n }\n ;\n ;\n this._fetchingThreads[yb] = true;\n var zb = oa(this, yb);\n if (zb) {\n wb.push(zb);\n ub.threads.thread_ids = wb;\n }\n else {\n var ac = this.tokenizeThreadID(yb);\n if (((ac.type == \"user\"))) {\n vb.push(ac.value);\n ub.threads.user_ids = vb;\n }\n else if (((ac.type == \"thread\"))) {\n wb.push(ac.value);\n ub.threads.thread_ids = wb;\n }\n else if (((((ac.type != \"root\")) && ((ac.type != \"pending\"))))) {\n throw new Error(\"Unknown thread type\", ac);\n }\n \n \n ;\n ;\n }\n ;\n ;\n }.bind(this));\n this.inform(\"fetch-thread-data\", ub);\n {\n var fin167keys = ((window.top.JSBNG_Replay.forInKeys)((ub.threads))), fin167i = (0);\n var xb;\n for (; (fin167i < fin167keys.length); (fin167i++)) {\n ((xb) = (fin167keys[fin167i]));\n {\n rb(this, \"/ajax/mercury/thread_info.php\", ub);\n break;\n };\n };\n };\n ;\n },\n ensureThreadIsFetched: function(sb, tb) {\n tb = ((tb || ja));\n if (((!this._serverToClientIDs.getResource(sb) && !this._fetchingThreads[sb]))) {\n this._fetchingThreads[sb] = true;\n rb(this, \"/ajax/mercury/thread_info.php\", {\n threads: {\n thread_ids: [sb,]\n },\n client: tb\n });\n }\n ;\n ;\n },\n fetchThreadMessages: function(sb, tb, ub, vb, wb) {\n p.isThreadID(sb);\n wb = ((wb || ja));\n var xb, yb, zb = this.tokenizeThreadID(sb), ac = oa(this, sb), bc = false;\n if (((ac && ((zb.type != \"group\"))))) {\n yb = \"thread_ids\";\n xb = ac;\n }\n else {\n xb = zb.value;\n switch (zb.type) {\n case \"user\":\n yb = \"user_ids\";\n bc = true;\n break;\n case \"group\":\n yb = \"group_ids\";\n break;\n case \"thread\":\n yb = \"thread_ids\";\n break;\n };\n ;\n }\n ;\n ;\n var cc = {\n messages: {\n },\n threads: {\n },\n client: wb\n };\n if (yb) {\n cc.messages[yb] = {\n };\n cc.messages[yb][xb] = {\n offset: tb,\n limit: ub\n };\n if (bc) {\n cc.threads[yb] = [xb,];\n }\n ;\n ;\n rb(this, \"/ajax/mercury/thread_info.php\", cc, vb);\n }\n else na(this, sb, function(dc) {\n cc.messages.thread_ids = {\n };\n cc.messages.thread_ids[dc] = {\n offset: tb,\n limit: ub\n };\n rb(this, \"/ajax/mercury/thread_info.php\", cc, vb);\n }.bind(this));\n ;\n ;\n },\n handleThreadInfoError: function(sb) {\n var tb = sb.getRequest().getData(), ub = [];\n if (tb.messages) {\n {\n var fin168keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages.thread_ids))), fin168i = (0);\n var vb;\n for (; (fin168i < fin168keys.length); (fin168i++)) {\n ((vb) = (fin168keys[fin168i]));\n {\n ub.push(fb(qa(this, vb)));\n ;\n };\n };\n };\n ;\n {\n var fin169keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages.user_ids))), fin169i = (0);\n var wb;\n for (; (fin169i < fin169keys.length); (fin169i++)) {\n ((wb) = (fin169keys[fin169i]));\n {\n ub.push(fb(((\"user:\" + wb))));\n ;\n };\n };\n };\n ;\n {\n var fin170keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages.group_ids))), fin170i = (0);\n var xb;\n for (; (fin170i < fin170keys.length); (fin170i++)) {\n ((xb) = (fin170keys[fin170i]));\n {\n ub.push(fb(((\"group:\" + xb))));\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n if (ub.length) {\n this.handleUpdate({\n actions: ub,\n from_client: true,\n payload_source: v.CLIENT_CHANNEL_MESSAGE\n });\n }\n ;\n ;\n if (((tb.threads && ((((tb.threads.user_ids || tb.threads.group_ids)) || tb.threads.thread_ids))))) {\n var yb = 5, zb = true;\n if (!tb.retry_count) {\n tb.retry_count = 0;\n if (tb.messages) {\n delete tb.messages;\n }\n ;\n ;\n }\n else if (((tb.retry_count >= yb))) {\n zb = false;\n ((tb.threads.thread_ids || [])).forEach(function(bc) {\n if (((bc in this._fetchingThreads))) {\n delete this._fetchingThreads[bc];\n }\n ;\n ;\n }.bind(this));\n }\n \n ;\n ;\n if (zb) {\n var ac = ((tb.retry_count * 1000));\n (function() {\n ia.log(\"retry_thread\", tb);\n rb(this, \"/ajax/mercury/thread_info.php\", tb);\n }.bind(this)).defer(ac, false);\n tb.retry_count++;\n }\n ;\n ;\n }\n ;\n ;\n },\n markFolderAsRead: function(sb) {\n rb(this, \"/ajax/mercury/mark_folder_as_read.php\", {\n folder: sb\n });\n var tb = [{\n action_type: s.MARK_ALL_READ,\n action_id: null,\n folder: sb\n },];\n this.handleUpdate({\n global_actions: tb,\n from_client: true,\n payload_source: v.CLIENT_CHANGE_READ_STATUS\n });\n },\n changeThreadReadStatus: function(sb, tb, ub) {\n p.isThreadID(sb);\n na(this, sb, function(wb) {\n var xb = {\n ids: {\n }\n };\n xb.ids[wb] = tb;\n rb(this, \"/ajax/mercury/change_read_status.php\", xb);\n }.bind(this));\n var vb = [{\n action_type: m.CHANGE_READ_STATUS,\n action_id: null,\n thread_id: sb,\n mark_as_read: tb,\n folder: ub\n },];\n this.handleUpdate({\n actions: vb,\n from_client: true,\n payload_source: v.CLIENT_CHANGE_READ_STATUS\n });\n },\n changeThreadArchivedStatus: function(sb, tb) {\n p.isThreadID(sb);\n na(this, sb, function(wb) {\n var xb = {\n ids: {\n }\n };\n xb.ids[wb] = tb;\n rb(this, \"/ajax/mercury/change_archived_status.php\", xb);\n }.bind(this));\n var ub = {\n action_type: m.CHANGE_ARCHIVED_STATUS,\n action_id: null,\n thread_id: sb,\n archived: tb\n }, vb = {\n actions: [ub,],\n from_client: true,\n payload_source: v.CLIENT_CHANGE_ARCHIVED_STATUS\n };\n this.handleUpdate(vb);\n },\n changeThreadFolder: function(sb, tb) {\n p.isThreadID(sb);\n na(this, sb, function(wb) {\n var xb = {\n };\n xb[tb] = [wb,];\n rb(this, \"/ajax/mercury/move_thread.php\", xb);\n }.bind(this));\n var ub = {\n action_type: m.CHANGE_FOLDER,\n action_id: null,\n thread_id: sb,\n new_folder: tb\n }, vb = {\n actions: [ub,],\n from_client: true,\n payload_source: v.CLIENT_CHANGE_FOLDER\n };\n this.handleUpdate(vb);\n },\n changeMutingOnThread: function(sb, tb) {\n p.isThreadID(sb);\n na(this, sb, function(wb) {\n rb(this, \"/ajax/mercury/change_mute_thread.php\", {\n thread_id: wb,\n mute_settings: tb,\n payload_source: ja\n });\n }.bind(this));\n var ub = {\n action_type: m.CHANGE_MUTE_SETTINGS,\n action_id: null,\n thread_id: sb,\n mute_settings: tb\n }, vb = {\n actions: [ub,],\n from_client: true,\n payload_source: v.CLIENT_CHANGE_MUTE_SETTINGS\n };\n this.handleUpdate(vb);\n },\n markThreadSpam: function(sb) {\n p.isThreadID(sb);\n na(this, sb, function(vb) {\n rb(this, \"/ajax/mercury/mark_spam.php\", {\n id: vb\n });\n }.bind(this));\n var tb = {\n action_type: m.CHANGE_FOLDER,\n action_id: null,\n thread_id: sb,\n new_folder: ca.SPAM\n }, ub = {\n actions: [tb,],\n from_client: true,\n payload_source: v.CLIENT_CHANGE_FOLDER\n };\n this.handleUpdate(ub);\n },\n markMessagesSpam: function(sb, tb) {\n z.getServerIDs(((tb || [])), function(vb) {\n rb(this, \"/ajax/mercury/mark_spam_messages.php\", {\n message_ids: vb\n });\n }.bind(this));\n var ub = {\n action_type: m.DELETE_MESSAGES,\n action_id: null,\n thread_id: sb,\n message_ids: tb\n };\n this.handleUpdate({\n actions: [ub,],\n from_client: true,\n payload_source: v.CLIENT_DELETE_MESSAGES\n });\n },\n unmarkThreadSpam: function(sb) {\n p.isThreadID(sb);\n na(this, sb, function(vb) {\n rb(this, \"/ajax/mercury/unmark_spam.php\", {\n id: vb\n });\n }.bind(this));\n var tb = {\n action_type: m.CHANGE_FOLDER,\n action_id: null,\n thread_id: sb,\n new_folder: ca.INBOX\n }, ub = {\n actions: [tb,],\n from_client: true,\n payload_source: v.CLIENT_CHANGE_FOLDER\n };\n this.handleUpdate(ub);\n },\n deleteThread: function(sb) {\n p.isThreadID(sb);\n na(this, sb, function(vb) {\n var wb = {\n ids: [vb,]\n };\n rb(this, \"/ajax/mercury/delete_thread.php\", wb);\n }.bind(this));\n var tb = {\n action_type: m.DELETE_THREAD,\n action_id: null,\n thread_id: sb\n }, ub = {\n actions: [tb,],\n from_client: true,\n payload_source: v.CLIENT_DELETE_THREAD\n };\n this.handleUpdate(ub);\n },\n deleteMessages: function(sb, tb, ub) {\n z.getServerIDs(((tb || [])), function(wb) {\n rb(this, \"/ajax/mercury/delete_messages.php\", {\n message_ids: wb\n });\n }.bind(this));\n var vb;\n if (ub) {\n vb = {\n action_type: m.DELETE_THREAD,\n action_id: null,\n thread_id: sb\n };\n }\n else vb = {\n action_type: m.DELETE_MESSAGES,\n action_id: null,\n thread_id: sb,\n message_ids: tb\n };\n ;\n ;\n this.handleUpdate({\n actions: [vb,],\n from_client: true,\n payload_source: v.CLIENT_DELETE_MESSAGES\n });\n },\n clearChat: function(sb, tb, ub) {\n p.isThreadID(sb);\n rb(this, \"/ajax/chat/settings.php\", {\n clear_history_id: tb\n });\n var vb = [{\n action_type: m.CLEAR_CHAT,\n action_id: null,\n thread_id: sb,\n clear_time: ub\n },];\n this.handleUpdate({\n actions: vb,\n from_client: true,\n payload_source: v.CLIENT_CLEAR_CHAT\n });\n },\n sendNewMessage: function(sb, tb) {\n tb = ((tb || ja));\n if (!sb.do_not_send_to_server) {\n z.getServerIDs(((sb.forward_message_ids || [])), function(vb) {\n var wb = sb.thread_id, xb = this.tokenizeThreadID(sb.thread_id), yb = xb.type, zb = ga({\n }, sb);\n zb.forward_message_ids = vb;\n if (((((((((yb == \"root\")) && ((xb.value == zb.message_id)))) || ((((yb == \"user\")) && !oa(this, wb))))) || ((sb.thread_id == r.PENDING_THREAD_ID))))) {\n zb.client_thread_id = zb.thread_id;\n zb.thread_id = null;\n this._sendNewMessageToServer(zb, tb);\n }\n else na(this, zb.thread_id, function(ac) {\n zb.thread_id = ac;\n this._sendNewMessageToServer(zb);\n }.bind(this));\n ;\n ;\n }.bind(this));\n }\n ;\n ;\n if (((sb.thread_id != r.PENDING_THREAD_ID))) {\n var ub = {\n actions: [ga({\n }, sb),],\n from_client: true,\n payload_source: v.CLIENT_SEND_MESSAGE\n };\n this.handleUpdate(ub);\n }\n ;\n ;\n },\n _sendNewMessageToServer: function(sb, tb) {\n tb = ((tb || ja));\n rb(this, \"/ajax/mercury/send_messages.php\", {\n message_batch: [sb,],\n client: tb\n });\n },\n requestMessageConfirmation: function(sb, tb) {\n tb = ((tb || ja));\n var ub = {\n }, vb = {\n };\n {\n var fin171keys = ((window.top.JSBNG_Replay.forInKeys)((sb))), fin171i = (0);\n var wb;\n for (; (fin171i < fin171keys.length); (fin171i++)) {\n ((wb) = (fin171keys[fin171i]));\n {\n var xb = oa(this, wb);\n if (xb) {\n ub[xb] = sb[wb];\n }\n else {\n var yb = sb[wb];\n for (var zb = 0; ((zb < yb.length)); zb++) {\n vb[yb[zb]] = wb;\n ;\n };\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n var ac = Object.keys(ub), bc = Object.keys(vb);\n if (((ac.length || bc.length))) {\n rb(this, \"/ajax/mercury/confirm_messages.php\", {\n thread_message_map: ub,\n local_messages: vb,\n client: tb\n });\n }\n ;\n ;\n },\n handleMessageConfirmError: function(sb) {\n var tb = sb.getRequest().getData().thread_message_map, ub = sb.getRequest().getData().local_messages;\n if (((!tb && !ub))) {\n return;\n }\n ;\n ;\n var vb = [];\n {\n var fin172keys = ((window.top.JSBNG_Replay.forInKeys)((tb))), fin172i = (0);\n var wb;\n for (; (fin172i < fin172keys.length); (fin172i++)) {\n ((wb) = (fin172keys[fin172i]));\n {\n var xb = tb[wb];\n xb.forEach(function(ac) {\n vb.push({\n action_type: m.SEND_MESSAGE,\n client_message_id: ac,\n message_id: ac,\n client_thread_id: null,\n thread_id: wb,\n JSBNG__status: n.UNABLE_TO_CONFIRM\n });\n });\n };\n };\n };\n ;\n {\n var fin173keys = ((window.top.JSBNG_Replay.forInKeys)((ub))), fin173i = (0);\n var yb;\n for (; (fin173i < fin173keys.length); (fin173i++)) {\n ((yb) = (fin173keys[fin173i]));\n {\n var zb = ub[yb];\n vb.push({\n action_type: m.SEND_MESSAGE,\n client_message_id: yb,\n message_id: yb,\n client_thread_id: zb,\n thread_id: null,\n JSBNG__status: n.UNABLE_TO_CONFIRM\n });\n };\n };\n };\n ;\n if (vb.length) {\n this.handleUpdate({\n actions: vb,\n payload_source: v.CLIENT_HANDLE_ERROR\n });\n }\n ;\n ;\n },\n markSeen: function() {\n var sb = i.convertActionIDToTimestamp(this._lastActionId);\n rb(this, \"/ajax/mercury/mark_seen.php\", {\n seen_timestamp: sb\n });\n },\n handleRoger: function(sb) {\n var tb = ((sb.tid ? this._serverToClientIDs.getResource(sb.tid) : ((\"user:\" + sb.reader))));\n if (tb) {\n var ub = {\n };\n ub[tb] = {\n };\n ub[tb][((\"fbid:\" + sb.reader))] = sb.time;\n this.inform(\"update-roger\", ub);\n }\n ;\n ;\n },\n handleUpdateWaitForThread: function(sb, tb, ub) {\n ub = ((ub || ja));\n var vb = this._serverToClientIDs.getResource(tb);\n if (vb) {\n this.handleUpdate(sb);\n return;\n }\n ;\n ;\n this._serverToClientIDs.executeOrEnqueue(tb, function() {\n this._pendingUpdates.push(sb);\n }.bind(this));\n if (!this._fetchingThreads[tb]) {\n this._fetchingThreads[tb] = true;\n rb(this, \"/ajax/mercury/thread_info.php\", {\n threads: {\n thread_ids: [tb,]\n },\n client: ub\n });\n }\n ;\n ;\n },\n handleUpdate: function(sb) {\n var tb = [];\n if (((sb && sb.threads))) {\n for (var ub = 0; ((ub < sb.threads.length)); ub++) {\n if (!sb.threads[ub].snippet_attachments) {\n continue;\n }\n ;\n ;\n for (var vb = 0; ((vb < sb.threads[ub].snippet_attachments.length)); vb++) {\n if (sb.threads[ub].snippet_attachments[vb].share_xhp) {\n tb.push({\n i: ub,\n j: vb,\n xhp: sb.threads[ub].snippet_attachments[vb].share_xhp\n });\n sb.threads[ub].snippet_attachments[vb].share_xhp = ((((\"HTMLDivElement not shown: object contains circular \" + \"reference, which was breaking JSON.stringify. \")) + \"Look at MercuryServerRequests.handleUpdate\"));\n }\n ;\n ;\n };\n ;\n };\n }\n ;\n ;\n ia.debug(\"handle_update\", {\n payload: sb,\n from_client: sb.from_client\n });\n for (var wb = 0; ((wb < tb.length)); wb++) {\n sb.threads[tb[wb].i].snippet_attachments[tb[wb].j].share_xhp = tb[wb].xhp;\n ;\n };\n ;\n {\n var fin174keys = ((window.top.JSBNG_Replay.forInKeys)((sb))), fin174i = (0);\n (0);\n for (; (fin174i < fin174keys.length); (fin174i++)) {\n ((wb) = (fin174keys[fin174i]));\n {\n fa.getForFBID(this._fbid).synchronizeInforms(function() {\n if (!sb.from_client) {\n va(this, sb);\n this.inform(\"payload-preprocessed\", sb);\n }\n ;\n ;\n this.inform(\"update-thread-ids\", this._newlyAddedClientIDs);\n this._newlyAddedClientIDs = {\n };\n this.inform(\"update-participants\", sb);\n this.inform(\"update-threads\", sb);\n this.inform(\"update-unread\", sb);\n this.inform(\"update-threadlist\", sb);\n this.inform(\"update-messages\", sb);\n this.inform(\"update-unseen\", sb);\n this.inform(\"update-typing-state\", sb);\n this.inform(\"update-roger\", sb.roger);\n this.inform(\"model-update-completed\", null);\n wa(this);\n }.bind(this));\n break;\n };\n };\n };\n ;\n },\n _handleSendMessageErrorCommon: function(sb, tb, ub, vb) {\n ia.debug(\"handle_send_message_error_common\", {\n reliability_error_status: ub,\n request_error_status: tb\n });\n var wb = sb.getData(), xb = wb.message_batch, yb = xb.map(function(ac) {\n return {\n action_type: m.SEND_MESSAGE,\n client_message_id: ac.message_id,\n message_id: ac.message_id,\n client_thread_id: ac.client_thread_id,\n thread_id: ac.thread_id,\n JSBNG__status: tb,\n error_data: vb\n };\n });\n yb.forEach(function(ac) {\n sa(this, ac, ub);\n }.bind(this));\n var zb = {\n actions: yb,\n payload_source: v.CLIENT_HANDLE_ERROR\n };\n this.handleUpdate(zb);\n },\n handleSendMessageError: function(sb) {\n var tb = sb.getPayload(), ub = null, vb = null;\n if (((tb && tb.error_payload))) {\n ub = n.UNCONFIRMED;\n vb = \"send_error\";\n }\n else {\n ub = n.ERROR;\n vb = ((\"request_error\" + ta(sb)));\n }\n ;\n ;\n var wb = sb.error;\n if (((wb === 1404102))) {\n h.verboseErrorHandler(sb);\n }\n ;\n ;\n var xb = ((/<.*>/.test(sb.getErrorDescription()) ? sb.getErrorSummary() : sb.getErrorDescription()));\n this._handleSendMessageErrorCommon(sb.getRequest(), ub, vb, {\n type: q.SERVER,\n code: sb.getError(),\n description: xb,\n is_transient: sb.isTransient()\n });\n },\n handleSendMessageTransportError: function(sb) {\n this._handleSendMessageErrorCommon(sb.getRequest(), n.ERROR, ((\"transport_error\" + ta(sb))), {\n type: q.TRANSPORT,\n code: sb.getError(),\n is_transient: true\n });\n },\n handleSendMessageTimeout: function(sb) {\n this._handleSendMessageErrorCommon(sb, n.ERROR, \"transport_timeout\", {\n type: q.TIMEOUT,\n is_transient: true\n });\n },\n getLastActionID: function() {\n return this._lastActionId;\n }\n });\n ga(eb, da);\n function fb(sb) {\n return {\n action_type: m.LOG_MESSAGE,\n thread_id: sb,\n message_id: sb,\n timestamp: JSBNG__Date.now(),\n timestamp_absolute: \"\",\n timestamp_relative: \"\",\n is_unread: false,\n source: x.UNKNOWN,\n log_message_type: u.SERVER_ERROR,\n log_message_data: {\n }\n };\n };\n;\n function gb(sb) {\n var tb = sb.getData(), ub = ((tb.request_user_id ? tb.request_user_id : j.user));\n return eb.getForFBID(ub);\n };\n;\n function hb(sb, tb) {\n gb(tb).handleUpdate(sb);\n };\n;\n function ib(sb, tb) {\n var ub = ((sb.client || tb.client));\n return {\n client: ub,\n message_batch: sb.message_batch.concat(tb.message_batch)\n };\n };\n;\n function jb(sb, tb) {\n var ub = {\n };\n ga(ub, sb.ids);\n ga(ub, tb.ids);\n var vb = ((sb.client || tb.client));\n return {\n ids: ub,\n client: vb\n };\n };\n;\n function kb(sb, tb) {\n return tb;\n };\n;\n function lb(sb) {\n var tb = gb(sb.getRequest());\n tb.handleThreadInfoError(sb);\n };\n;\n function mb(sb) {\n var tb = gb(sb.getRequest());\n tb.handleSendMessageError(sb);\n };\n;\n function nb(sb) {\n var tb = gb(sb.getRequest());\n tb.handleSendMessageTransportError(sb);\n };\n;\n function ob(sb) {\n var tb = gb(sb);\n tb.handleSendMessageTimeout(sb);\n };\n;\n function pb(sb) {\n var tb = gb(sb.getRequest());\n tb.handleMessageConfirmError(sb);\n };\n;\n function qb(sb) {\n ea.registerEndpoints({\n \"/ajax/mercury/thread_sync.php\": {\n request_user_id: sb._fbid,\n mode: ea.IDEMPOTENT,\n handler: hb\n },\n \"/ajax/mercury/thread_info.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_DEFERRED_MULTI,\n batch_function: xa,\n handler: hb,\n error_handler: lb\n },\n \"/ajax/mercury/mark_folder_as_read.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n },\n \"/ajax/mercury/change_read_status.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: jb,\n handler: hb\n },\n \"/ajax/mercury/send_messages.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: ib,\n batch_size_limit: aa.SEND_BATCH_LIMIT,\n handler: hb,\n error_handler: mb,\n transport_error_handler: nb,\n timeout: w.sendMessageTimeout,\n timeout_handler: ob,\n connection_retries: aa.SEND_CONNECTION_RETRIES\n },\n \"/ajax/mercury/mark_seen.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: kb,\n handler: hb\n },\n \"/ajax/mercury/confirm_messages.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb,\n error_handler: pb\n },\n \"/ajax/mercury/threadlist_info.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE_UNIQUE,\n batch_function: za,\n handler: hb\n },\n \"/ajax/mercury/mark_spam.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n },\n \"/ajax/mercury/mark_spam_messages.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n },\n \"/ajax/mercury/unmark_spam.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n },\n \"/ajax/mercury/unread_threads.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE_UNIQUE,\n batch_function: ya,\n handler: hb\n },\n \"/ajax/chat/settings.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE\n },\n \"/ajax/mercury/change_archived_status.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: bb,\n handler: hb\n },\n \"/ajax/mercury/delete_thread.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: db,\n handler: hb\n },\n \"/ajax/mercury/delete_messages.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n },\n \"/ajax/mercury/move_thread.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: cb,\n handler: hb\n },\n \"/ajax/mercury/change_mute_thread.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n }\n });\n };\n;\n function rb(sb, tb, ub, vb) {\n ea.trySend(tb, ub, vb, sb._fbid);\n };\n;\n e.exports = eb;\n});\n__d(\"MercuryParticipants\", [\"Env\",\"ImageSourceRequest\",\"ImageSourceType\",\"MercuryAssert\",\"MercuryIDs\",\"MercuryParticipantTypes\",\"MercuryParticipantsConstants\",\"PhotoResizeModeConst\",\"MercuryServerRequests\",\"ShortProfiles\",\"copyProperties\",\"getObjectValues\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\"), h = b(\"ImageSourceRequest\"), i = b(\"ImageSourceType\"), j = b(\"MercuryAssert\"), k = b(\"MercuryIDs\"), l = b(\"MercuryParticipantTypes\"), m = b(\"MercuryParticipantsConstants\"), n = b(\"PhotoResizeModeConst\"), o = b(\"MercuryServerRequests\").get(), p = b(\"ShortProfiles\"), q = b(\"copyProperties\"), r = b(\"getObjectValues\"), s = b(\"tx\"), t = ((\"fbid:\" + g.user)), u = {\n }, v = {\n }, w = function(ba) {\n ba = z(ba);\n if (u[ba.id]) {\n q(u[ba.id], ba);\n }\n else u[ba.id] = q({\n }, ba);\n ;\n ;\n if (ba.vanity) {\n v[ba.vanity] = ba.id;\n }\n ;\n ;\n };\n function x(ba) {\n j.isEmailParticipantID(ba);\n var ca = k.tokenize(ba), da = ca.value;\n return {\n gender: m.UNKNOWN_GENDER,\n href: null,\n id: ba,\n image_src: m.EMAIL_IMAGE,\n big_image_src: m.EMAIL_IMAGE,\n JSBNG__name: da,\n short_name: da,\n employee: false,\n call_promo: false\n };\n };\n;\n function y(ba, ca, da) {\n j.allParticipantIDs(ba);\n var ea = {\n }, fa = {\n };\n ba.forEach(function(ha) {\n if (((u[ha] && !da))) {\n ea[ha] = q({\n }, u[ha]);\n }\n else {\n var ia = k.tokenize(ha);\n if (((ia.type == \"fbid\"))) {\n var ja = ia.value;\n fa[ha] = ja;\n }\n else if (((ia.type == \"email\"))) {\n ea[ha] = x(ha);\n }\n \n ;\n ;\n }\n ;\n ;\n });\n var ga = r(fa);\n if (ga.length) {\n p.getMulti(ga, function(ha) {\n {\n var fin175keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin175i = (0);\n var ia;\n for (; (fin175i < fin175keys.length); (fin175i++)) {\n ((ia) = (fin175keys[fin175i]));\n {\n var ja = fa[ia], ka = ha[ja];\n ea[ia] = {\n gender: ka.gender,\n href: ka.uri,\n id: ia,\n image_src: ka.thumbSrc,\n JSBNG__name: ka.JSBNG__name,\n short_name: ka.firstName,\n employee: ka.employee,\n call_promo: ka.showVideoPromo,\n type: ka.type,\n vanity: ka.vanity,\n is_friend: ka.is_friend,\n social_snippets: ka.social_snippets\n };\n w(ea[ia]);\n };\n };\n };\n ;\n ca(ea);\n });\n }\n else ca(ea);\n ;\n ;\n };\n;\n function z(ba) {\n var ca = ((((ba.type === l.USER)) || ((ba.type === l.FRIEND))));\n if (!ca) {\n return ba;\n }\n ;\n ;\n if (((((!ba.JSBNG__name && !ba.href)) && !ba.vanity))) {\n var da = \"Facebook User\";\n ba.JSBNG__name = da;\n ba.short_name = da;\n }\n ;\n ;\n return ba;\n };\n;\n var aa = {\n user: t,\n isAuthor: function(ba) {\n return ((ba === t));\n },\n getIDFromVanityOrFBID: function(ba) {\n if (!ba) {\n return;\n }\n ;\n ;\n if (v[ba]) {\n return v[ba];\n }\n ;\n ;\n if (ba.match(\"^\\\\d+$\")) {\n return aa.getIDForUser(ba);\n }\n ;\n ;\n },\n getNow: function(ba) {\n return u[ba];\n },\n get: function(ba, ca) {\n j.isParticipantID(ba);\n aa.getMulti([ba,], function(da) {\n ca(da[ba]);\n });\n },\n getMulti: function(ba, ca, da) {\n return y(ba, ca, false);\n },\n getBigImageMulti: function(ba, ca) {\n j.allParticipantIDs(ba);\n var da = m.BIG_IMAGE_SIZE;\n aa.getMulti(ba, function(ea) {\n var fa = {\n }, ga = 0, ha = function(la, ma) {\n ga++;\n fa[la] = ma;\n if (((ga === ba.length))) {\n ca(fa);\n }\n ;\n ;\n }, ia = function(la, ma) {\n u[la].big_image_src = ma.uri;\n ha(la, ma.uri);\n };\n {\n var fin176keys = ((window.top.JSBNG_Replay.forInKeys)((ea))), fin176i = (0);\n var ja;\n for (; (fin176i < fin176keys.length); (fin176i++)) {\n ((ja) = (fin176keys[fin176i]));\n {\n var ka = ea[ja];\n if (!ka.big_image_src) {\n new h().setFBID(aa.getUserID(ja)).setType(i.PROFILE_PICTURE).setDimensions(da, da).setResizeMode(n.COVER).setCallback(ia.curry(ja)).send();\n }\n else ha(ka.id, ka.big_image_src);\n ;\n ;\n };\n };\n };\n ;\n });\n },\n getOrderedBigImageMulti: function(ba, ca) {\n aa.getBigImageMulti(ba, function(da) {\n var ea = ba.map(function(fa) {\n return da[fa];\n });\n ca(ea);\n });\n },\n getMultiForceDownload: function(ba, ca) {\n return y(ba, ca, true);\n },\n getUserID: function(ba) {\n return k.getUserIDFromParticipantID(ba);\n },\n getIDForUser: function(ba) {\n return ((\"fbid:\" + ba));\n },\n addParticipants: function(ba) {\n ba.forEach(w);\n }\n };\n o.subscribe(\"update-participants\", function(ba, ca) {\n aa.addParticipants(((ca.participants || [])));\n });\n e.exports = aa;\n});\n__d(\"RangedCallbackManager\", [\"CallbackManagerController\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"CallbackManagerController\"), h = b(\"copyProperties\"), i = b(\"createObjectFrom\"), j = function(k, l, m) {\n this._resources = [];\n this._reachedEndOfArray = false;\n this._error = false;\n this._existingIDs = {\n };\n this._controller = new g(this._constructCallbackArg.bind(this));\n this._getValueHandler = k;\n this._compareValuesHandler = l;\n this._skipOnStrictHandler = m;\n };\n h(j.prototype, {\n executeOrEnqueue: function(k, l, m, n) {\n return this._controller.executeOrEnqueue({\n start: k,\n limit: l\n }, m, {\n strict: !!n\n });\n },\n unsubscribe: function(k) {\n this._controller.unsubscribe(k);\n },\n getUnavailableResources: function(k) {\n var l = this._controller.getRequest(k), m = [];\n if (((l && !this._reachedEndOfArray))) {\n var n = l.request, o = this._filterForStrictResults(l.options), p = ((n.start + n.limit));\n for (var q = o.length; ((q < p)); q++) {\n m.push(q);\n ;\n };\n ;\n }\n ;\n ;\n return m;\n },\n addResources: function(k) {\n k.forEach(function(l) {\n if (!this._existingIDs[l]) {\n this._existingIDs[l] = true;\n this._resources.push(l);\n this._error = null;\n }\n ;\n ;\n }.bind(this));\n this.resortResources();\n this._controller.runPossibleCallbacks();\n },\n addResourcesWithoutSorting: function(k, l) {\n var m = this._resources.slice(0, l);\n m = m.concat(k);\n m = m.concat(this._resources.slice(l));\n this._resources = m;\n h(this._existingIDs, i(k, true));\n this._error = null;\n this._controller.runPossibleCallbacks();\n },\n removeResources: function(k) {\n k.forEach(function(l) {\n if (this._existingIDs[l]) {\n this._existingIDs[l] = false;\n var m = this._resources.indexOf(l);\n if (((m != -1))) {\n this._resources.splice(m, 1);\n }\n ;\n ;\n }\n ;\n ;\n }.bind(this));\n },\n removeAllResources: function() {\n this._resources = [];\n this._existingIDs = {\n };\n },\n resortResources: function() {\n this._resources = this._resources.sort(function(k, l) {\n return this._compareValuesHandler(this._getValueHandler(k), this._getValueHandler(l));\n }.bind(this));\n },\n setReachedEndOfArray: function() {\n if (!this._reachedEndOfArray) {\n this._reachedEndOfArray = true;\n this._error = null;\n this._controller.runPossibleCallbacks();\n }\n ;\n ;\n },\n hasReachedEndOfArray: function() {\n return this._reachedEndOfArray;\n },\n setError: function(k) {\n if (((this._error !== k))) {\n this._error = k;\n this._controller.runPossibleCallbacks();\n }\n ;\n ;\n },\n getError: function(k, l, m) {\n var n = this._filterForStrictResults({\n strict: m\n });\n return ((((((k + l)) > n.length)) ? this._error : null));\n },\n hasResource: function(k) {\n return this._existingIDs[k];\n },\n getResourceAtIndex: function(k) {\n return this._resources[k];\n },\n getAllResources: function() {\n return this._resources.concat();\n },\n getCurrentArraySize: function() {\n return this._resources.length;\n },\n _filterForStrictResults: function(k) {\n var l = this._resources;\n if (((((k && k.strict)) && this._skipOnStrictHandler))) {\n l = l.filter(this._skipOnStrictHandler);\n }\n ;\n ;\n return l;\n },\n _constructCallbackArg: function(k, l) {\n var m = this._filterForStrictResults(l);\n if (((((!this._reachedEndOfArray && !this._error)) && ((((k.start + k.limit)) > m.length))))) {\n return false;\n }\n else {\n var n = m.slice(k.start, ((k.start + k.limit))), o = ((((((k.start + k.limit)) > m.length)) ? this._error : null));\n return [n,o,];\n }\n ;\n ;\n },\n getElementsUntil: function(k) {\n var l = [];\n for (var m = 0; ((m < this._resources.length)); m++) {\n var n = this._getValueHandler(this._resources[m]);\n if (((this._compareValuesHandler(n, k) > 0))) {\n break;\n }\n ;\n ;\n l.push(this._resources[m]);\n };\n ;\n return l;\n }\n });\n e.exports = j;\n});\n__d(\"MercuryFolders\", [\"MessagingTag\",\"arrayContains\",], function(a, b, c, d, e, f) {\n var g = b(\"MessagingTag\"), h = b(\"arrayContains\"), i = [g.INBOX,g.OTHER,g.ACTION_ARCHIVED,g.SPAM,], j = {\n getSupportedFolders: function() {\n return i.concat();\n },\n isSupportedFolder: function(k) {\n return h(i, k);\n },\n getFromMeta: function(k) {\n var l = k.folder;\n if (k.is_archived) {\n l = g.ACTION_ARCHIVED;\n }\n ;\n ;\n return l;\n }\n };\n e.exports = j;\n});\n__d(\"MercuryAttachment\", [\"MercuryAttachmentContentType\",\"MercuryAttachmentType\",\"startsWith\",], function(a, b, c, d, e, f) {\n var g = b(\"MercuryAttachmentContentType\"), h = b(\"MercuryAttachmentType\"), i = b(\"startsWith\"), j = {\n getAttachIconClass: function(k) {\n switch (k) {\n case g.PHOTO:\n return \"MercuryPhotoIcon\";\n case g.VIDEO:\n return \"MercuryVideoIcon\";\n case g.MUSIC:\n return \"MercuryMusicIcon\";\n case g.VOICE:\n return \"MercuryVoiceIcon\";\n case g.TEXT:\n return \"MercuryTextIcon\";\n case g.MSWORD:\n return \"MercuryMSWordIcon\";\n case g.MSXLS:\n return \"MercuryMSXLSIcon\";\n case g.MSPPT:\n return \"MercuryMSPPTIcon\";\n };\n ;\n return \"MercuryDefaultIcon\";\n },\n getAttachIconClassByMime: function(k) {\n if (i(k, \"image\")) {\n return \"MercuryPhotoIcon\";\n }\n else if (i(k, \"video\")) {\n return \"MercuryVideoIcon\";\n }\n else if (i(k, \"audio\")) {\n return \"MercuryMusicIcon\";\n }\n else if (i(k, \"text/plain\")) {\n return \"MercuryTextIcon\";\n }\n else return \"MercuryDefaultIcon\"\n \n \n \n ;\n },\n getAttachTypeByMime: function(k) {\n if (i(k, \"image\")) {\n return g.PHOTO;\n }\n else if (i(k, \"video\")) {\n return g.VIDEO;\n }\n else if (i(k, \"audio\")) {\n return g.MUSIC;\n }\n else if (i(k, \"text/plain\")) {\n return g.TEXT;\n }\n else return g.UNKNOWN\n \n \n \n ;\n },\n convertRaw: function(k) {\n var l = [];\n for (var m = 0; ((m < k.length)); m++) {\n var n = k[m];\n if (((n.attach_type === h.PHOTO))) {\n l.push(n);\n }\n else if (n.filename) {\n var o = j.getAttachTypeByMime(n.filetype), p = {\n };\n p.attach_type = h.FILE;\n p.JSBNG__name = n.filename;\n p.icon_type = o;\n p.url = \"\";\n if (((o == g.PHOTO))) {\n p.preview_loading = true;\n }\n ;\n ;\n l.push(p);\n }\n \n ;\n ;\n };\n ;\n return l;\n }\n };\n e.exports = j;\n});\n__d(\"MercuryThreads\", [\"Arbiter\",\"TimestampConverter\",\"MercuryFolders\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryAssert\",\"MercuryAttachment\",\"MercuryGlobalActionType\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercurySingletonMixin\",\"MercuryThreadMode\",\"MessagingTag\",\"MercuryParticipants\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"TimestampConverter\"), i = b(\"MercuryFolders\"), j = b(\"JSLogger\"), k = b(\"KeyedCallbackManager\"), l = b(\"MercuryActionTypeConstants\"), m = b(\"MercuryAssert\"), n = b(\"MercuryAttachment\"), o = b(\"MercuryGlobalActionType\"), p = b(\"MercuryIDs\"), q = b(\"MercuryLogMessageType\"), r = b(\"MercurySingletonMixin\"), s = b(\"MercuryThreadMode\"), t = b(\"MessagingTag\"), u = b(\"MercuryParticipants\"), v = b(\"MercuryServerRequests\"), w = b(\"MercuryThreadInformer\"), x = b(\"copyProperties\"), y = b(\"createObjectFrom\"), z = b(\"removeFromArray\"), aa = j.create(\"mercury_threads\");\n function ba(na, oa, pa) {\n var qa = y(oa.participants, true), ra = u.getIDForUser(na._fbid);\n pa.forEach(function(sa) {\n if (((qa[sa] !== true))) {\n oa.participants.push(sa);\n if (((sa === ra))) {\n oa.is_subscribed = true;\n }\n ;\n ;\n }\n ;\n ;\n });\n };\n;\n function ca(na, oa, pa) {\n z(oa.participants, pa);\n if (((pa === u.getIDForUser(na._fbid)))) {\n oa.is_subscribed = false;\n }\n ;\n ;\n };\n;\n function da(na, oa) {\n if (((na.participants[0] != oa))) {\n z(na.participants, oa);\n na.participants.unshift(oa);\n }\n ;\n ;\n };\n;\n function ea(na, oa) {\n var pa = oa.body, qa = oa.subject, ra = \"\";\n if (qa) {\n qa = qa.toLowerCase();\n if (((pa.slice(0, qa.length).toLowerCase() == qa))) {\n ra = pa;\n }\n else if (pa) {\n ra = ((((qa + \" \\u00b7 \")) + pa));\n }\n else ra = qa;\n \n ;\n ;\n }\n else ra = pa;\n ;\n ;\n na.snippet = ra;\n na.snippet_has_attachment = oa.has_attachment;\n if (((oa.raw_attachments && ((oa.raw_attachments.length > 0))))) {\n var sa = n.convertRaw(oa.raw_attachments);\n na.snippet_attachments = sa;\n }\n else na.snippet_attachments = oa.attachments;\n ;\n ;\n na.is_forwarded_snippet = !!oa.forward_count;\n na.snippet_sender = oa.author;\n };\n;\n function fa(na, oa, pa) {\n if (!oa) {\n return false;\n }\n ;\n ;\n if (!oa.timestamp) {\n return true;\n }\n ;\n ;\n var qa = !oa.unread_count;\n if (((pa == qa))) {\n return false;\n }\n ;\n ;\n oa.unread_count = ((pa ? 0 : 1));\n na._threadInformer.updatedThread(oa.thread_id);\n return true;\n };\n;\n function ga(na, oa) {\n var pa = na._threads.getAllResources();\n {\n var fin177keys = ((window.top.JSBNG_Replay.forInKeys)((pa))), fin177i = (0);\n var qa;\n for (; (fin177i < fin177keys.length); (fin177i++)) {\n ((qa) = (fin177keys[fin177i]));\n {\n var ra = pa[qa];\n if (((ra.folder == oa))) {\n ra.unread_count = 0;\n na._threads.setResource(qa, ra);\n na._threadInformer.updatedThread(qa);\n }\n ;\n ;\n };\n };\n };\n ;\n };\n;\n function ha(na, oa, pa) {\n if (((!oa || ((oa.chat_clear_time === pa))))) {\n return false;\n }\n ;\n ;\n oa.chat_clear_time = pa;\n na._threadInformer.reorderedMessages(oa.thread_id);\n return true;\n };\n;\n function ia(na, oa, pa, qa) {\n var ra = pa.action_type;\n if (((((ra == l.USER_GENERATED_MESSAGE)) || ((ra == l.LOG_MESSAGE))))) {\n ((pa.is_unread && oa.unread_count++));\n oa.message_count++;\n oa.is_archived = false;\n }\n ;\n ;\n switch (ra) {\n case l.USER_GENERATED_MESSAGE:\n da(oa, pa.author);\n break;\n case l.SEND_MESSAGE:\n var sa = pa.log_message_type;\n if (((sa == q.THREAD_IMAGE))) {\n oa.image_src = ((pa.log_message_data.image ? pa.log_message_data.image.preview_url : null));\n }\n ;\n ;\n oa.snippet_attachments = pa.attachments;\n break;\n case l.LOG_MESSAGE:\n var sa = pa.log_message_type;\n if (((sa == q.SUBSCRIBE))) {\n ba(na, oa, pa.log_message_data.added_participants);\n }\n else if (((sa == q.JOINABLE_JOINED))) {\n ba(na, oa, [pa.log_message_data.joined_participant,]);\n }\n else if (((sa == q.UNSUBSCRIBE))) {\n ca(na, oa, pa.author);\n }\n else if (((sa == q.THREAD_IMAGE))) {\n if (!qa) {\n oa.image_src = ((pa.log_message_data.image ? pa.log_message_data.image.preview_url : null));\n }\n ;\n ;\n }\n else if (((sa == q.THREAD_NAME))) {\n oa.JSBNG__name = pa.log_message_data.JSBNG__name;\n }\n \n \n \n \n ;\n ;\n break;\n case l.CHANGE_READ_STATUS:\n if (pa.timestamp) {\n na._threadInformer.changedThreadReadState(oa.thread_id, pa.mark_as_read, pa.timestamp);\n }\n ;\n ;\n fa(na, oa, pa.mark_as_read);\n break;\n case l.CLEAR_CHAT:\n ha(na, oa, pa.clear_time);\n break;\n case l.CHANGE_ARCHIVED_STATUS:\n oa.is_archived = pa.archived;\n break;\n case l.CHANGE_FOLDER:\n oa.folder = pa.new_folder;\n break;\n case l.DELETE_MESSAGES:\n if (qa) {\n oa.snippet = \"...\";\n oa.snippet_has_attachment = false;\n oa.snippet_attachments = null;\n oa.snippet_sender = null;\n oa.is_forwarded_snippet = false;\n na._threadInformer.updatedThread(pa.thread_id);\n }\n else if (pa.message_ids) {\n oa.message_count = ((oa.message_count - pa.message_ids.length));\n }\n \n ;\n ;\n break;\n case l.CHANGE_MUTE_SETTINGS:\n if (((pa.mute_settings !== undefined))) {\n var ta = ((na._fbid + \"@facebook.com\"));\n if (oa.mute_settings) {\n if (pa.mute_settings) {\n oa.mute_settings[ta] = pa.mute_settings;\n }\n else delete oa.mute_settings[ta];\n ;\n ;\n na._threadInformer.updatedThread(oa.thread_id);\n }\n ;\n ;\n }\n ;\n ;\n break;\n };\n ;\n if (pa.action_id) {\n oa.last_action_id = h.maxValidActionID(pa.action_id, oa.last_action_id);\n }\n ;\n ;\n };\n;\n function ja(na, oa) {\n var pa = na._serverRequests.tokenizeThreadID(oa.thread_id);\n if (((pa.type == \"group\"))) {\n aa.error(\"invalid_new_thread_message\", oa);\n return undefined;\n }\n ;\n ;\n var qa = la(na, oa.specific_to_list), ra = {\n thread_id: oa.thread_id,\n last_action_id: oa.action_id,\n participants: oa.specific_to_list,\n JSBNG__name: null,\n snippet: oa.body,\n snippet_has_attachment: false,\n snippet_attachments: [],\n snippet_sender: oa.author,\n unread_count: 0,\n message_count: 0,\n image_src: null,\n timestamp_absolute: oa.timestamp_absolute,\n timestamp_relative: oa.timestamp_relative,\n timestamp: oa.timestamp,\n canonical_fbid: ((((pa.type === \"user\")) ? pa.value : null)),\n is_canonical_user: ((pa.type === \"user\")),\n is_canonical: qa,\n is_subscribed: true,\n root_message_threading_id: oa.message_id,\n folder: t.INBOX,\n is_archived: false,\n mode: s.TITAN_ORIGINATED\n };\n return ra;\n };\n;\n function ka(na) {\n this._fbid = na;\n this._serverRequests = v.getForFBID(this._fbid);\n this._threadInformer = w.getForFBID(this._fbid);\n this._threads = new k();\n ma(this);\n };\n;\n x(ka.prototype, {\n getThreadMetaNow: function(na) {\n m.isThreadID(na);\n return this._threads.getResource(na);\n },\n getThreadMeta: function(na, oa, pa) {\n m.isThreadID(na);\n var qa = this._threads.executeOrEnqueue(na, oa), ra = this._threads.getUnavailableResources(qa);\n if (ra.length) {\n var sa = this._serverRequests.tokenizeThreadID(na);\n if (((sa.type == \"user\"))) {\n this.getCanonicalThreadToUser(sa.value);\n }\n else this._serverRequests.fetchThreadData(ra, pa);\n ;\n ;\n }\n ;\n ;\n return qa;\n },\n unsubscribe: function(na) {\n this._threads.unsubscribe(na);\n },\n changeThreadReadStatus: function(na, oa) {\n m.isThreadID(na);\n var pa = this._threads.getResource(na);\n if (fa(this, pa, oa)) {\n this._serverRequests.changeThreadReadStatus(na, oa, i.getFromMeta(pa));\n }\n ;\n ;\n },\n changeThreadArchivedStatus: function(na, oa) {\n m.isThreadID(na);\n var pa = this._threads.getResource(na);\n if (((pa.is_archived != oa))) {\n pa.is_archived = oa;\n this._threadInformer.updatedThread(pa.thread_id);\n this._serverRequests.changeThreadArchivedStatus(na, oa);\n }\n ;\n ;\n },\n markThreadSpam: function(na) {\n this._serverRequests.markThreadSpam(na);\n },\n unmarkThreadSpam: function(na) {\n this._serverRequests.unmarkThreadSpam(na);\n },\n updateThreadMuteSetting: function(na, oa) {\n this._serverRequests.changeMutingOnThread(na, oa);\n },\n changeFolder: function(na, oa) {\n m.isThreadID(na);\n var pa = this._threads.getResource(na);\n if (((pa && ((pa.folder != oa))))) {\n pa.folder = oa;\n this._threadInformer.updatedThread(pa.thread_id);\n this._serverRequests.changeThreadFolder(na, oa);\n }\n ;\n ;\n },\n deleteThread: function(na) {\n m.isThreadID(na);\n this._serverRequests.deleteThread(na);\n },\n updateThreads: function(na) {\n if (((!na || !na.length))) {\n return;\n }\n ;\n ;\n var oa = {\n };\n na.forEach(function(pa) {\n oa[pa.thread_id] = pa;\n });\n this._threads.addResourcesAndExecute(oa);\n },\n updateMetadataByActions: function(na, oa) {\n if (((!na || !na.length))) {\n return;\n }\n ;\n ;\n var pa = {\n }, qa = {\n }, ra = {\n };\n for (var sa = 0; ((sa < na.length)); sa++) {\n var ta = na[sa];\n if (ta.is_forward) {\n continue;\n }\n ;\n ;\n var ua = ta.action_type, va = ta.thread_id;\n m.isThreadID(va);\n var wa = this.getThreadMetaNow(va);\n if (((((ua == l.LOG_MESSAGE)) && ((ta.log_message_type == q.SERVER_ERROR))))) {\n continue;\n }\n ;\n ;\n if (((((!wa && !ta.action_id)) && ((ua == l.USER_GENERATED_MESSAGE))))) {\n wa = ja(this, ta);\n this._threads.setResource(va, wa);\n }\n ;\n ;\n if (wa) {\n if (((ua == l.DELETE_THREAD))) {\n wa.message_count = 0;\n this._threadInformer.deletedThread(va);\n continue;\n }\n ;\n ;\n var xa = !!ta.action_id;\n if (((((ua == l.LOG_MESSAGE)) || ((ua == l.USER_GENERATED_MESSAGE))))) {\n xa = !oa;\n }\n ;\n ;\n if (((((wa.server_timestamp && ((ta.timestamp <= wa.server_timestamp)))) && xa))) {\n continue;\n }\n ;\n ;\n if (!ra[va]) {\n ra[va] = x({\n }, wa);\n }\n ;\n ;\n ia(this, ra[va], ta, oa);\n if (((ua == l.USER_GENERATED_MESSAGE))) {\n pa[va] = ta;\n }\n ;\n ;\n if (((((((ua == l.USER_GENERATED_MESSAGE)) || ((ua == l.LOG_MESSAGE)))) || ((ua == l.SEND_MESSAGE))))) {\n if (((((ta && ta.timestamp)) && ((!qa[va] || ((ta.timestamp > qa[va].timestamp))))))) {\n qa[va] = ta;\n }\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n {\n var fin178keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin178i = (0);\n var ya;\n for (; (fin178i < fin178keys.length); (fin178i++)) {\n ((ya) = (fin178keys[fin178i]));\n {\n var za = ra[ya], ab = pa[ya];\n if (ab) {\n ea(za, ab);\n }\n ;\n ;\n var bb = qa[ya], cb = za.timestamp;\n if (bb) {\n if (((bb.timestamp > cb))) {\n za = x(za, {\n timestamp_absolute: bb.timestamp_absolute,\n timestamp_relative: bb.timestamp_relative,\n timestamp: bb.timestamp\n });\n }\n ;\n ;\n var db = za.server_timestamp;\n if (((!oa && ((bb.timestamp > db))))) {\n za.server_timestamp = bb.timestamp;\n }\n ;\n ;\n }\n ;\n ;\n this._threads.setResource(ya, za);\n };\n };\n };\n ;\n },\n getCanonicalThreadToUser: function(na, oa, pa) {\n return this.getCanonicalThreadToParticipant(((\"fbid:\" + na)), oa, pa);\n },\n getCanonicalThreadToParticipant: function(na, oa, pa) {\n var qa = this.getThreadIDForParticipant(na), ra = this._threads.getResource(qa);\n if (((typeof ra == \"undefined\"))) {\n ra = this.createNewLocalThread(qa, [u.getIDForUser(this._fbid),na,], oa);\n this._serverRequests.fetchThreadData([qa,], pa);\n }\n ;\n ;\n return ra;\n },\n getThreadIdForUser: function(na) {\n return ((\"user:\" + na));\n },\n getThreadIDForParticipant: function(na) {\n var oa = p.tokenize(na);\n return this.getThreadIdForUser(oa.value);\n },\n createNewLocalThread: function(na, oa, pa) {\n var qa = this._threads.getResource(na);\n if (!qa) {\n var ra = this._serverRequests.tokenizeThreadID(na);\n qa = {\n thread_id: na,\n last_action_id: null,\n participants: oa,\n JSBNG__name: null,\n snippet: \"\",\n snippet_has_attachment: false,\n snippet_sender: null,\n unread_count: ((pa ? pa : 0)),\n message_count: 0,\n image_src: null,\n timestamp_absolute: null,\n timestamp_relative: null,\n timestamp: null,\n canonical_fbid: ((((ra.type === \"user\")) ? ra.value : null)),\n is_canonical_user: ((ra.type == \"user\")),\n is_canonical: la(this, oa),\n is_subscribed: true,\n root_message_threading_id: null,\n folder: t.INBOX,\n is_archived: false,\n mode: s.TITAN_ORIGINATED\n };\n this._threads.setResource(na, qa);\n }\n ;\n ;\n return qa;\n },\n addParticipantsToThreadLocally: function(na, oa) {\n var pa = this._threads.getResource(na);\n if (pa) {\n ba(this, pa, oa);\n this._threadInformer.updatedThread(pa.thread_id);\n }\n ;\n ;\n },\n getCanonicalUserInThread: function(na) {\n var oa = this._serverRequests.tokenizeThreadID(na);\n return ((((oa.type == \"user\")) ? oa.value : null));\n },\n getCanonicalGroupInThread: function(na) {\n var oa = this._serverRequests.tokenizeThreadID(na);\n return ((((oa.type == \"group\")) ? oa.value : null));\n },\n isEmptyLocalThread: function(na) {\n var oa = this._threads.getResource(na);\n if (!oa) {\n return false;\n }\n ;\n ;\n var pa = this._serverRequests.tokenizeThreadID(na);\n return ((((pa.type == \"root\")) && !oa.timestamp));\n },\n isNewEmptyLocalThread: function(na) {\n if (!this.isEmptyLocalThread(na)) {\n return false;\n }\n ;\n ;\n var oa = this._threads.getResource(na);\n return ((oa.participants && ((oa.participants.length === 0))));\n },\n canReply: function(na) {\n var oa = this._threads.getResource(na);\n return ((((((oa && oa.is_subscribed)) && ((oa.mode != s.OBJECT_ORIGINATED)))) && ((oa.recipients_loadable || ((oa.recipients_loadable === undefined))))));\n }\n });\n x(ka, r);\n function la(na, oa) {\n var pa = oa.filter(function(qa) {\n return ((qa != u.getIDForUser(na._fbid)));\n });\n return ((pa.length <= 1));\n };\n;\n function ma(na) {\n na._serverRequests.subscribe(\"update-threads\", function(oa, pa) {\n var qa = ((pa.actions || [])).filter(function(ua) {\n return ua.thread_id;\n });\n na.updateThreads(pa.threads);\n na.updateMetadataByActions(qa, pa.from_client);\n ((pa.threads || [])).forEach(function(ua) {\n na._threadInformer.updatedThread(ua.thread_id);\n });\n var ra = ((pa.global_actions || []));\n for (var sa = 0; ((sa < ra.length)); sa++) {\n var ta = ra[sa];\n if (((ta.action_type == o.MARK_ALL_READ))) {\n ga(na, ta.folder);\n }\n ;\n ;\n };\n ;\n });\n };\n;\n g.subscribe(j.DUMP_EVENT, function(na, oa) {\n oa.messaging = ((oa.messaging || {\n }));\n oa.messaging.threads = {\n };\n var pa = ka._getInstances();\n {\n var fin179keys = ((window.top.JSBNG_Replay.forInKeys)((pa))), fin179i = (0);\n var qa;\n for (; (fin179i < fin179keys.length); (fin179i++)) {\n ((qa) = (fin179keys[fin179i]));\n {\n oa.messaging.threads[qa] = pa[qa]._threads.dumpResources();\n ;\n };\n };\n };\n ;\n });\n e.exports = ka;\n});\n__d(\"formatDate\", [\"DateFormatConfig\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"DateFormatConfig\"), h = b(\"tx\"), i = [\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",], j = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",], k = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",], l = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",];\n function m(o, p) {\n p = ((p || 2));\n o = ((\"\" + o));\n while (((o.length < p))) {\n o = ((\"0\" + o));\n ;\n };\n ;\n return o;\n };\n;\n function n(o, p, q, r) {\n if (!p) {\n return \"\";\n }\n ;\n ;\n var s = [], t = null, u = null, v = ((q ? \"getUTC\" : \"get\")), w = o[((v + \"JSBNG__Date\"))](), x = o[((v + \"Day\"))](), y = o[((v + \"Month\"))](), z = o[((v + \"FullYear\"))](), aa = o[((v + \"Hours\"))](), ba = o[((v + \"Minutes\"))](), ca = o[((v + \"Seconds\"))](), da = o[((v + \"Milliseconds\"))]();\n for (var ea = 0; ((ea < p.length)); ea++) {\n u = p.charAt(ea);\n if (((u == \"\\\\\"))) {\n ea++;\n s.push(p.charAt(ea));\n continue;\n }\n ;\n ;\n switch (u) {\n case \"d\":\n t = m(w);\n break;\n case \"D\":\n t = i[x];\n break;\n case \"j\":\n t = w;\n break;\n case \"l\":\n t = j[x];\n break;\n case \"F\":\n \n case \"f\":\n t = l[y];\n break;\n case \"m\":\n t = m(((y + 1)));\n break;\n case \"M\":\n t = k[y];\n break;\n case \"n\":\n t = ((y + 1));\n break;\n case \"Y\":\n t = z;\n break;\n case \"y\":\n t = ((\"\" + z)).slice(2);\n break;\n case \"a\":\n t = ((((aa < 12)) ? \"am\" : \"pm\"));\n break;\n case \"A\":\n t = ((((aa < 12)) ? \"AM\" : \"PM\"));\n break;\n case \"g\":\n t = ((((((aa == 0)) || ((aa == 12)))) ? 12 : ((aa % 12))));\n break;\n case \"G\":\n t = aa;\n break;\n case \"h\":\n t = ((((((aa == 0)) || ((aa == 12)))) ? 12 : m(((aa % 12)))));\n break;\n case \"H\":\n t = m(aa);\n break;\n case \"i\":\n t = m(ba);\n break;\n case \"s\":\n t = m(ca);\n break;\n case \"S\":\n if (r) {\n t = g.ordinalSuffixes[w];\n }\n else t = m(da, 3);\n ;\n ;\n break;\n default:\n t = u;\n };\n ;\n s.push(t);\n };\n ;\n return s.join(\"\");\n };\n;\n e.exports = n;\n});\n__d(\"MercuryMessages\", [\"Arbiter\",\"AsyncRequest\",\"Env\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryActionStatus\",\"MercuryAssert\",\"MercuryAttachmentType\",\"MercuryConfig\",\"MercuryGenericConstants\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercuryMessageSourceTags\",\"MercuryPayloadSource\",\"MercurySingletonMixin\",\"MercurySourceType\",\"MercuryTimePassed\",\"MercuryMessageIDs\",\"MercuryParticipants\",\"PresenceUtil\",\"RangedCallbackManager\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"copyProperties\",\"debounce\",\"formatDate\",\"randomInt\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"Env\"), j = b(\"JSLogger\"), k = b(\"KeyedCallbackManager\"), l = b(\"MercuryActionTypeConstants\"), m = b(\"MercuryActionStatus\"), n = b(\"MercuryAssert\"), o = b(\"MercuryAttachmentType\"), p = b(\"MercuryConfig\"), q = b(\"MercuryGenericConstants\"), r = b(\"MercuryIDs\"), s = b(\"MercuryLogMessageType\"), t = b(\"MercuryMessageSourceTags\"), u = b(\"MercuryPayloadSource\"), v = b(\"MercurySingletonMixin\"), w = b(\"MercurySourceType\"), x = b(\"MercuryTimePassed\"), y = b(\"MercuryMessageIDs\"), z = b(\"MercuryParticipants\"), aa = b(\"PresenceUtil\"), ba = b(\"RangedCallbackManager\"), ca = b(\"MercuryServerRequests\"), da = b(\"MercuryThreadInformer\"), ea = b(\"MercuryThreads\"), fa = b(\"copyProperties\"), ga = b(\"debounce\"), ha = b(\"formatDate\"), ia = b(\"randomInt\"), ja = b(\"tx\");\n function ka(bb, cb) {\n var db = cb;\n if (bb._localIdsMap[cb]) {\n db = bb._localIdsMap[cb];\n }\n ;\n ;\n return bb._messages[db];\n };\n;\n var la = new k();\n function ma(bb, cb) {\n if (((cb.JSBNG__status === undefined))) {\n cb.JSBNG__status = m.UNSENT;\n }\n ;\n ;\n cb.timestamp_absolute = \"Today\";\n cb.message_id = ((cb.message_id || bb.generateNewClientMessageID(cb.timestamp)));\n var db = z.getIDForUser(bb._fbid);\n cb.specific_to_list = ((cb.specific_to_list || []));\n if (((cb.specific_to_list.length && ((cb.specific_to_list.indexOf(db) === -1))))) {\n cb.specific_to_list.push(db);\n }\n ;\n ;\n if (!cb.thread_id) {\n if (((cb.specific_to_list.length == 1))) {\n cb.thread_id = ((\"user:\" + bb._fbid));\n }\n else if (((cb.specific_to_list.length == 2))) {\n var eb = ((((cb.specific_to_list[0] == db)) ? cb.specific_to_list[1] : cb.specific_to_list[0]));\n if (((r.tokenize(eb).type == \"email\"))) {\n cb.thread_id = q.PENDING_THREAD_ID;\n }\n else cb.thread_id = bb._threads.getThreadIDForParticipant(eb);\n ;\n ;\n }\n \n ;\n ;\n cb.thread_id = ((cb.thread_id || ((\"root:\" + cb.message_id))));\n }\n ;\n ;\n if (!cb.specific_to_list.length) {\n var fb = bb._serverRequests.tokenizeThreadID(cb.thread_id);\n if (((fb.type == \"user\"))) {\n cb.specific_to_list = [((\"fbid:\" + fb.value)),db,];\n }\n ;\n ;\n }\n ;\n ;\n };\n;\n function na(bb, cb, db, eb) {\n var fb = ((xa(db) ? [t.CHAT,] : [])), gb = JSBNG__Date.now(), hb = ha(new JSBNG__Date(gb), ((p[\"24h_times\"] ? \"H:i\" : \"g:ia\"))), ib = {\n action_type: cb,\n thread_id: eb,\n author: z.getIDForUser(bb._fbid),\n author_email: null,\n coordinates: null,\n timestamp: gb,\n timestamp_absolute: (new JSBNG__Date(gb)).toLocaleDateString(),\n timestamp_relative: hb,\n timestamp_time_passed: x.TODAY,\n is_unread: false,\n is_cleared: false,\n is_forward: false,\n is_filtered_content: false,\n spoof_warning: false,\n source: db,\n source_tags: fb\n };\n return ib;\n };\n;\n function oa(bb) {\n switch (bb) {\n case u.UNKNOWN:\n \n case u.SERVER_INITIAL_DATA:\n \n case u.SERVER_FETCH_THREAD_INFO:\n \n case u.SERVER_THREAD_SYNC:\n return true;\n };\n ;\n return false;\n };\n;\n function pa(bb) {\n return ((bb && ((bb.substr(0, 6) === \"server\"))));\n };\n;\n function qa(bb, cb) {\n if (!bb._threadsToMessages[cb]) {\n bb._threadsToMessages[cb] = new ba(function(db) {\n return ka(bb, db).timestamp;\n }, function(db, eb) {\n return ((eb - db));\n });\n }\n ;\n ;\n return bb._threadsToMessages[cb];\n };\n;\n g.subscribe(j.DUMP_EVENT, function(bb, cb) {\n var db = {\n }, eb = {\n }, fb = sa._getInstances();\n {\n var fin180keys = ((window.top.JSBNG_Replay.forInKeys)((fb))), fin180i = (0);\n var gb;\n for (; (fin180i < fin180keys.length); (fin180i++)) {\n ((gb) = (fin180keys[fin180i]));\n {\n db[gb] = {\n };\n {\n var fin181keys = ((window.top.JSBNG_Replay.forInKeys)((fb[gb]._messages))), fin181i = (0);\n var hb;\n for (; (fin181i < fin181keys.length); (fin181i++)) {\n ((hb) = (fin181keys[fin181i]));\n {\n var ib = fb[gb]._messages[hb];\n if (((Object.keys(ib).length === 0))) {\n continue;\n }\n ;\n ;\n var jb = ib.thread_id;\n db[gb][jb] = ((db[gb][jb] || {\n }));\n db[gb][jb][ib.message_id] = {\n action_type: ib.action_type,\n author: ib.author,\n is_unread: ib.is_unread,\n timestamp: ib.timestamp\n };\n };\n };\n };\n ;\n eb[gb] = fa({\n }, fb[gb]._localIdsMap);\n };\n };\n };\n ;\n cb.messaging = ((cb.messaging || {\n }));\n cb.messaging.local_message_ids = eb;\n cb.messaging.messages = db;\n });\n function ra(bb, cb, db) {\n cb.forEach(function(eb) {\n var fb = qa(bb, eb);\n fb.setReachedEndOfArray();\n bb._threadInformer.reorderedMessages(eb, db);\n });\n };\n;\n function sa(bb) {\n this._fbid = bb;\n this._serverRequests = ca.getForFBID(this._fbid);\n this._threadInformer = da.getForFBID(this._fbid);\n this._threads = ea.getForFBID(this._fbid);\n this._failedHistoryFetchThreads = {\n };\n this._threadsToMessages = {\n };\n this._titanMessagesCount = {\n };\n this._localTitanMessagesCount = {\n };\n this._messages = {\n };\n this._attachmentData = {\n };\n this._messagesNeedingAttachmentData = {\n };\n this._localIdsMap = {\n };\n this._serverRequests.subscribe(\"update-messages\", function(cb, db) {\n var eb = ((db.actions || [])).filter(function(gb) {\n var hb = gb.action_type;\n return ((((gb.is_forward || gb.thread_id)) && ((((((((((((hb == l.LOG_MESSAGE)) || ((hb == l.USER_GENERATED_MESSAGE)))) || ((hb == l.SEND_MESSAGE)))) || ((hb == l.CLEAR_CHAT)))) || ((hb == l.DELETE_THREAD)))) || ((hb == l.DELETE_MESSAGES))))));\n }), fb = oa(db.payload_source);\n if (pa(db.payload_source)) {\n eb.forEach(function(gb) {\n if (!gb.is_forward) {\n var hb = this._threads.getThreadMetaNow(gb.thread_id);\n if (hb) {\n gb.is_cleared = ((gb.timestamp < hb.chat_clear_time));\n }\n ;\n ;\n }\n ;\n ;\n }.bind(this));\n }\n ;\n ;\n this.handleUpdates(eb, fb, db.payload_source, db.from_client);\n if (db.end_of_history) {\n ra(this, db.end_of_history, db.payload_source);\n }\n ;\n ;\n }.bind(this));\n };\n;\n fa(sa.prototype, {\n getMessagesFromIDs: function(bb) {\n return ((bb || [])).map(ka.curry(this)).filter(function(cb) {\n return cb;\n });\n },\n hasLoadedNMessages: function(bb, cb) {\n var db = qa(this, bb);\n return ((db.hasReachedEndOfArray() || ((db.getCurrentArraySize() >= cb))));\n },\n hasLoadedExactlyNMessages: function(bb, cb) {\n var db = qa(this, bb);\n return ((db.getCurrentArraySize() == cb));\n },\n getThreadMessagesRange: function(bb, cb, db, eb, fb, gb) {\n var hb = qa(this, bb), ib = function(ob) {\n eb(ta(this, ob));\n }.bind(this), jb = hb.executeOrEnqueue(cb, db, ib), kb = hb.getUnavailableResources(jb), lb = this._failedHistoryFetchThreads[bb];\n if (((kb.length && !lb))) {\n var mb = ((((this._titanMessagesCount[bb] || 0)) - ((this._localTitanMessagesCount[bb] || 0)))), nb = ((kb.length + ((this._localTitanMessagesCount[bb] || 0))));\n this._serverRequests.fetchThreadMessages(bb, mb, nb, fb, gb);\n }\n else this._failedHistoryFetchThreads[bb] = false;\n ;\n ;\n return jb;\n },\n getThreadMessagesSinceTimestamp: function(bb, cb) {\n var db = qa(this, bb), eb = db.getElementsUntil(cb);\n return ta(this, eb);\n },\n hasLoadedAllMessages: function(bb) {\n return qa(this, bb).hasReachedEndOfArray();\n },\n getCurrentlyLoadedMessages: function(bb) {\n var cb = qa(this, bb).getAllResources();\n return ta(this, cb);\n },\n unsubscribe: function(bb, cb) {\n n.isThreadID(cb);\n var db = qa(this, cb);\n db.unsubscribe(bb);\n },\n addAttachmentData: function(bb, cb, db) {\n var eb = ka(this, bb);\n if (eb) {\n var fb = eb.attachments.indexOf(cb);\n if (((fb != -1))) {\n eb.attachments[fb] = db;\n this._threadInformer.updatedMessage(eb.thread_id, eb.message_id, \"attach\");\n }\n ;\n ;\n }\n else {\n if (!this._attachmentData[bb]) {\n this._attachmentData[bb] = [];\n }\n ;\n ;\n this._attachmentData[bb].push({\n attach_key: cb,\n data: db\n });\n }\n ;\n ;\n },\n handleUpdates: function(bb, cb, db, eb) {\n var fb, gb = {\n }, hb = {\n };\n for (var ib = 0; ((ib < bb.length)); ib++) {\n var jb = bb[ib];\n if (((jb.is_forward || ((db == u.SERVER_SEARCH))))) {\n if (!this._messages[jb.message_id]) {\n this._messages[jb.message_id] = jb;\n ya(this, jb);\n }\n ;\n ;\n continue;\n }\n ;\n ;\n var kb = jb.action_type;\n if (((kb == l.SEND_MESSAGE))) {\n var lb = jb.client_message_id;\n if (((((lb && this._localIdsMap[lb])) && jb.JSBNG__status))) {\n if (((jb.JSBNG__status == m.UNCONFIRMED))) {\n if (!hb[jb.thread_id]) {\n hb[jb.thread_id] = [];\n }\n ;\n ;\n hb[jb.thread_id].push(jb.client_message_id);\n }\n else if (!gb[jb.thread_id]) {\n gb[jb.thread_id] = [];\n }\n \n ;\n ;\n var mb = ka(this, jb.client_message_id), nb = mb.JSBNG__status;\n mb.JSBNG__status = jb.JSBNG__status;\n if (((((jb.JSBNG__status === m.SUCCESS)) || jb.error_data))) {\n mb.error_data = jb.error_data;\n }\n ;\n ;\n if (((jb.JSBNG__status == m.SUCCESS))) {\n this.updateLocalMessage(jb, db);\n if (((jb.client_thread_id == q.PENDING_THREAD_ID))) {\n mb.thread_id = jb.thread_id;\n gb[jb.thread_id].push(mb.message_id);\n la.setResource(mb.message_id, mb.thread_id);\n }\n ;\n ;\n }\n ;\n ;\n if (((((((((((typeof nb != \"undefined\")) || ((jb.JSBNG__status == m.FAILED_UNKNOWN_REASON)))) || ((jb.JSBNG__status == m.UNABLE_TO_CONFIRM)))) || ((jb.JSBNG__status == m.SUCCESS)))) || ((jb.JSBNG__status == m.ERROR))))) {\n this._threadInformer.updatedMessage(jb.thread_id, ka(this, jb.client_message_id).message_id, db);\n }\n ;\n ;\n }\n ;\n ;\n continue;\n }\n else if (((kb == l.DELETE_THREAD))) {\n qa(this, jb.thread_id).removeAllResources();\n continue;\n }\n else if (((kb == l.DELETE_MESSAGES))) {\n var ob = jb.message_ids.map(function(wb) {\n return ka(this, wb).message_id;\n }.bind(this));\n fb = qa(this, jb.thread_id);\n fb.removeResources(ob);\n this._threadInformer.reorderedMessages(jb.thread_id, db);\n continue;\n }\n else if (((kb == l.LOG_MESSAGE))) {\n if (((jb.log_message_type == s.SERVER_ERROR))) {\n this._failedHistoryFetchThreads[jb.thread_id] = true;\n }\n ;\n ;\n }\n else if (((kb == l.CLEAR_CHAT))) {\n var pb = qa(this, jb.thread_id).getAllResources();\n pb.map(ka.curry(this)).forEach(function(wb) {\n wb.is_cleared = true;\n });\n continue;\n }\n \n \n \n \n ;\n ;\n if (((jb.threading_id && this._localIdsMap[jb.threading_id]))) {\n var qb = ka(this, jb.threading_id);\n if (((qb && qb.is_zap))) {\n fb = qa(this, jb.thread_id);\n fb.removeResources([qb.message_id,]);\n this._localIdsMap[jb.threading_id] = null;\n this._threadInformer.reorderedMessages(jb.thread_id, db);\n }\n ;\n ;\n }\n ;\n ;\n var rb = ka(this, jb.message_id);\n if (((((jb.threading_id && this._localIdsMap[jb.threading_id])) || ((rb && !rb.is_forward))))) {\n continue;\n }\n ;\n ;\n if (!gb[jb.thread_id]) {\n gb[jb.thread_id] = [];\n }\n ;\n ;\n gb[jb.thread_id].push(jb.message_id);\n this._messages[jb.message_id] = jb;\n ya(this, jb);\n if (((jb.threading_id && ((jb.threading_id != jb.message_id))))) {\n y.addServerID(jb.threading_id, jb.message_id);\n }\n ;\n ;\n if (!cb) {\n this._threadInformer.receivedMessage(jb);\n }\n ;\n ;\n };\n ;\n {\n var fin182keys = ((window.top.JSBNG_Replay.forInKeys)((gb))), fin182i = (0);\n var sb;\n for (; (fin182i < fin182keys.length); (fin182i++)) {\n ((sb) = (fin182keys[fin182i]));\n {\n fb = qa(this, sb);\n var tb = fb.getAllResources(), ub = tb.filter(function(wb) {\n var xb = this._messages[wb];\n return ((((xb.action_type == l.LOG_MESSAGE)) && ((xb.log_message_type == s.SERVER_ERROR))));\n }.bind(this));\n fb.removeResources(ub);\n ua(this, sb, gb[sb]);\n if (eb) {\n va(this, sb, gb[sb]);\n }\n ;\n ;\n if (cb) {\n fb.addResources(gb[sb]);\n this._threadInformer.reorderedMessages(sb, db);\n }\n else fb.addResourcesWithoutSorting(gb[sb].reverse(), 0);\n ;\n ;\n this._threadInformer.updatedThread(sb);\n };\n };\n };\n ;\n var vb = Object.keys(hb);\n if (vb.length) {\n this._serverRequests.requestMessageConfirmation(hb);\n }\n ;\n ;\n },\n sendMessage: function(bb, cb, db) {\n cb = ((cb || Function.prototype));\n ma(this, bb);\n this._localIdsMap[bb.message_id] = bb.message_id;\n if (((bb.thread_id == ((\"root:\" + bb.message_id))))) {\n qa(this, bb.thread_id).setReachedEndOfArray();\n }\n ;\n ;\n this._serverRequests.sendNewMessage(bb, db);\n if (((bb.thread_id == q.PENDING_THREAD_ID))) {\n this._messages[bb.message_id] = bb;\n return la.executeOrEnqueue(bb.message_id, cb);\n }\n else cb(bb.thread_id);\n ;\n ;\n },\n zapMessage: function(bb, cb, db) {\n if (((bb.thread_id == q.PENDING_THREAD_ID))) {\n return;\n }\n ;\n ;\n this._localIdsMap[bb.message_id] = bb.message_id;\n this._serverRequests.handleUpdate({\n actions: [fa({\n }, bb),],\n from_client: true,\n payload_source: u.SERVER_ZAP\n });\n },\n isFirstMessage: function(bb) {\n var cb = qa(this, bb.thread_id);\n if (((cb.getCurrentArraySize() === 0))) {\n return false;\n }\n ;\n ;\n var db = cb.getResourceAtIndex(((cb.getCurrentArraySize() - 1))), eb = ka(this, db).message_id, fb = ka(this, bb.message_id).message_id;\n return ((cb.hasReachedEndOfArray() && ((eb == fb))));\n },\n unsubscribeSend: function(bb) {\n la.unsubscribe(bb);\n },\n resendMessage: function(bb, cb) {\n var db = fa({\n }, bb);\n db.JSBNG__status = m.RESENDING;\n db.timestamp = JSBNG__Date.now();\n db.message_id = bb.message_id;\n this._messages[bb.message_id] = db;\n var eb = qa(this, bb.thread_id);\n eb.resortResources([bb.message_id,]);\n this.sendMessage(db, null, cb);\n this._threadInformer.reorderedMessages(bb.thread_id, u.CLIENT_SEND_MESSAGE);\n },\n deleteMessages: function(bb, cb) {\n if (cb.length) {\n var db = qa(this, bb), eb = ((((db.getCurrentArraySize() == cb.length)) && db.hasReachedEndOfArray()));\n this._serverRequests.deleteMessages(bb, cb, eb);\n }\n ;\n ;\n },\n markMessagesSpam: function(bb, cb) {\n if (cb.length) {\n var db = qa(this, bb), eb = ((((db.getCurrentArraySize() == cb.length)) && db.hasReachedEndOfArray()));\n if (eb) {\n this._serverRequests.markThreadSpam(bb);\n }\n else this._serverRequests.markMessagesSpam(bb, cb);\n ;\n ;\n }\n ;\n ;\n },\n updateLocalMessage: function(bb, cb) {\n var db = bb.message_id, eb = bb.client_message_id;\n this._localIdsMap[eb] = db;\n this._messages[db] = this._messages[eb];\n y.addServerID(eb, db);\n this._messages[eb] = {\n };\n var fb = ka(this, eb);\n if (bb.timestamp) {\n fb.timestamp = bb.timestamp;\n }\n ;\n ;\n if (((bb.attachments && bb.attachments.length))) {\n fb.raw_attachments = null;\n fb.attachments = bb.attachments;\n ya(this, fb, db);\n }\n ;\n ;\n if (bb.log_message_data) {\n fb.log_message_data = bb.log_message_data;\n }\n ;\n ;\n if (wa(fb)) {\n this._localTitanMessagesCount[fb.thread_id]--;\n }\n ;\n ;\n },\n constructUserGeneratedMessageObject: function(bb, cb, db, eb) {\n var fb = na(this, l.USER_GENERATED_MESSAGE, cb, db);\n fb.body = bb;\n fb.has_attachment = false;\n fb.html_body = false;\n fb.attachments = [];\n fb.specific_to_list = ((eb || []));\n return fb;\n },\n constructLogMessageObject: function(bb, cb, db, eb) {\n var fb = na(this, l.LOG_MESSAGE, bb, cb);\n fb.log_message_type = db;\n fb.log_message_data = eb;\n return fb;\n },\n generateNewClientMessageID: function(bb) {\n var cb = ((((((((bb + \":\")) + ((ia(0, 4294967295) + 1)))) + \"-\")) + aa.getSessionID()));\n return ((((\"\\u003C\" + cb)) + \"@mail.projektitan.com\\u003E\"));\n },\n getNumberLocalMessages: function(bb) {\n return ((this._localTitanMessagesCount[bb] || 0));\n }\n });\n fa(sa, v, {\n addAttachmentData: function(bb, cb, db, eb) {\n eb = ((eb || i.user));\n sa.getForFBID(eb).addAttachmentData(bb, cb, db);\n }\n });\n function ta(bb, cb) {\n var db = cb.map(ka.curry(bb));\n return db.reverse();\n };\n;\n function ua(bb, cb, db) {\n var eb = db.filter(function(fb) {\n return wa(ka(bb, fb));\n });\n if (!bb._titanMessagesCount[cb]) {\n bb._titanMessagesCount[cb] = 0;\n }\n ;\n ;\n bb._titanMessagesCount[cb] += eb.length;\n };\n;\n function va(bb, cb, db) {\n var eb = db.filter(function(fb) {\n return wa(ka(bb, fb));\n });\n if (!bb._localTitanMessagesCount[cb]) {\n bb._localTitanMessagesCount[cb] = 0;\n }\n ;\n ;\n bb._localTitanMessagesCount[cb] += eb.length;\n };\n;\n function wa(bb) {\n var cb = bb.action_type;\n if (((cb == l.USER_GENERATED_MESSAGE))) {\n return !bb.is_zap;\n }\n ;\n ;\n switch (bb.log_message_type) {\n case s.SUBSCRIBE:\n \n case s.UNSUBSCRIBE:\n \n case s.SERVER_ERROR:\n \n case s.LIVE_LISTEN:\n return false;\n default:\n return true;\n };\n ;\n };\n;\n function xa(bb) {\n switch (bb) {\n case w.CHAT_WEB:\n \n case w.CHAT_JABBER:\n \n case w.CHAT_IPHONE:\n \n case w.CHAT_MEEBO:\n \n case w.CHAT_ORCA:\n \n case w.CHAT_TEST:\n \n case w.CHAT:\n \n case w.DESKTOP:\n return true;\n default:\n return false;\n };\n ;\n };\n;\n function ya(bb, cb, db) {\n db = ((db || cb.message_id));\n var eb = bb._attachmentData[db];\n if (eb) {\n eb.forEach(function(fb) {\n var gb = cb.attachments.indexOf(fb.attach_key);\n if (((gb !== -1))) {\n cb.attachments[gb] = fb.data;\n }\n ;\n ;\n });\n delete bb._attachmentData[db];\n }\n else if (((!cb.is_forward && za(bb, cb)))) {\n bb._messagesNeedingAttachmentData[db] = true;\n ab(bb);\n }\n \n ;\n ;\n };\n;\n function za(bb, cb) {\n if (((!cb || !cb.attachments))) {\n return false;\n }\n ;\n ;\n for (var db = 0; ((db < cb.attachments.length)); db++) {\n var eb = cb.attachments[db];\n if (((((typeof eb === \"string\")) && ((eb.indexOf(o.SHARE) === 0))))) {\n return true;\n }\n ;\n ;\n };\n ;\n var fb = ((cb.forward_message_ids || []));\n for (db = 0; ((db < fb.length)); db++) {\n var gb = ka(bb, fb[db]);\n if (za(bb, gb)) {\n return true;\n }\n ;\n ;\n };\n ;\n return false;\n };\n;\n var ab = ga(function(bb) {\n var cb = {\n };\n {\n var fin183keys = ((window.top.JSBNG_Replay.forInKeys)((bb._messagesNeedingAttachmentData))), fin183i = (0);\n var db;\n for (; (fin183i < fin183keys.length); (fin183i++)) {\n ((db) = (fin183keys[fin183i]));\n {\n var eb = ka(bb, db);\n if (za(bb, eb)) {\n cb[db] = true;\n }\n ;\n ;\n };\n };\n };\n ;\n var fb = Object.keys(cb);\n if (fb.length) {\n new h(\"/ajax/mercury/attachments/fetch_shares.php\").setData({\n message_ids: fb\n }).setAllowCrossPageTransition(true).send();\n }\n ;\n ;\n bb._messagesNeedingAttachmentData = {\n };\n }, 0, this, true);\n e.exports = sa;\n});\n__d(\"ChatOpenTab\", [\"Arbiter\",\"Banzai\",\"Bootloader\",\"ChatVisibility\",\"JSBNG__Event\",\"MercuryIDs\",\"MercuryMessages\",\"MercuryServerRequests\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"Bootloader\"), j = b(\"ChatVisibility\"), k = b(\"JSBNG__Event\"), l = b(\"MercuryIDs\"), m = b(\"MercuryMessages\").get(), n = b(\"MercuryServerRequests\").get(), o = b(\"MercuryThreads\").get(), p = \"messaging_tracking\";\n function q(u) {\n o.getThreadMeta(u, function() {\n g.inform(\"chat/open-tab\", {\n thread_id: u\n });\n });\n };\n;\n function r(u, v, w, x) {\n k.listen(u, \"click\", function(y) {\n if (x(v, w)) {\n return;\n }\n ;\n ;\n return y.kill();\n });\n };\n;\n function s(u, v, w) {\n var x = {\n referrer: ((u || \"\")),\n message_thread_id: v,\n message_view: \"chat\",\n timestamp_send: JSBNG__Date.now()\n };\n if (((w !== undefined))) {\n x.message_target_ids = [w,];\n }\n ;\n ;\n h.post(p, x, {\n delay: 0,\n retry: true\n });\n };\n;\n var t = {\n openEmptyTab: function(u, v) {\n if (((!window.Chat || !j.isOnline()))) {\n return true;\n }\n ;\n ;\n i.loadModules([\"ChatTabModel\",], function(w) {\n var x = w.getEmptyTab();\n if (!x) {\n x = ((\"root:\" + m.generateNewClientMessageID(JSBNG__Date.now())));\n o.createNewLocalThread(x, []);\n }\n ;\n ;\n q(x);\n s(v, x);\n });\n },\n listenOpenEmptyTab: function(u, v) {\n r(u, null, v, t.openEmptyTab);\n },\n openThread: function(u, v) {\n if (l.isValid(u)) {\n q(u);\n }\n else n.getClientThreadID(u, q);\n ;\n ;\n s(v, u);\n },\n listenOpenThread: function(u, v, w) {\n r(u, v, w, t.openThread);\n },\n openUserTab: function(u, v) {\n var w = o.getCanonicalThreadToUser(u);\n q(w.thread_id);\n s(v, w.thread_id, u);\n },\n listenOpenUserTab: function(u, v, w) {\n r(u, v, w, t.openUserTab);\n }\n };\n e.exports = t;\n});\n__d(\"SplitImage.react\", [\"React\",\"JSBNG__Image.react\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"JSBNG__Image.react\"), i = b(\"cx\"), j = g.createClass({\n displayName: \"SplitImage\",\n render: function() {\n var k = this.props.size;\n return this.transferPropsTo(g.DOM.div({\n className: \"_55lt\",\n style: {\n width: k,\n height: k\n }\n }, this.renderImages()));\n },\n renderImages: function() {\n if (!this.props.srcs) {\n return null;\n }\n ;\n ;\n if (!((this.props.srcs instanceof Array))) {\n return (h({\n src: this.props.srcs,\n height: this.props.size,\n width: this.props.size\n }));\n }\n ;\n ;\n switch (this.props.srcs.length) {\n case 1:\n return (h({\n src: this.props.srcs[0],\n height: this.props.size,\n width: this.props.size\n }));\n case 2:\n return this.renderTwo();\n default:\n return this.renderThree();\n };\n ;\n },\n renderTwo: function() {\n var k = Math.floor(((this.props.size / 2))), l = -Math.floor(((k / 2))), m = (((\"_55lu\") + ((this.props.border ? ((\" \" + \"_57xo\")) : \"\"))));\n return (g.DOM.div(null, g.DOM.div({\n className: \"_55lu\",\n style: {\n width: k\n }\n }, h({\n src: this.props.srcs[0],\n width: this.props.size,\n height: this.props.size,\n style: {\n marginLeft: l\n }\n })), g.DOM.div({\n className: m,\n style: {\n width: k\n }\n }, h({\n src: this.props.srcs[1],\n width: this.props.size,\n height: this.props.size,\n style: {\n marginLeft: l\n }\n }))));\n },\n renderThree: function() {\n var k = Math.floor(((((this.props.size / 3)) * 2))), l = -Math.floor(((((this.props.size - k)) / 2))), m = Math.floor(((this.props.size / 2))), n = ((this.props.size - k)), o = -Math.floor(((((m - n)) / 2))), p = (((\"_55lu\") + ((this.props.border ? ((\" \" + \"_57pl\")) : \"\")))), q = (((\"_55lu\") + ((this.props.border ? ((\" \" + \"_57pm\")) : \"\"))));\n return (g.DOM.div(null, g.DOM.div({\n className: p,\n style: {\n width: k\n }\n }, h({\n src: this.props.srcs[0],\n width: this.props.size,\n height: this.props.size,\n style: {\n marginLeft: l\n }\n })), g.DOM.div({\n className: q,\n style: {\n width: n,\n height: m\n }\n }, h({\n src: this.props.srcs[1],\n width: m,\n height: m,\n style: {\n marginLeft: o\n }\n })), g.DOM.div({\n className: \"_55lu\",\n style: {\n width: n,\n height: m\n }\n }, h({\n src: this.props.srcs[2],\n width: m,\n height: m,\n style: {\n marginLeft: o\n }\n }))));\n }\n });\n e.exports = j;\n});\n__d(\"TypeaheadFacepile\", [\"DOM\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\");\n function h() {\n \n };\n;\n h.render = function(i) {\n var j = [g.create(\"span\", {\n className: \"splitpic leftpic\"\n }, [g.create(\"img\", {\n alt: \"\",\n src: i[0]\n }),]),g.create(\"span\", {\n className: ((\"splitpic\" + ((i[2] ? \" toppic\" : \"\"))))\n }, [g.create(\"img\", {\n alt: \"\",\n src: i[1]\n }),]),];\n if (i[2]) {\n j.push(g.create(\"span\", {\n className: \"splitpic bottompic\"\n }, [g.create(\"img\", {\n alt: \"\",\n src: i[2]\n }),]));\n }\n ;\n ;\n return g.create(\"span\", {\n className: \"splitpics clearfix\"\n }, j);\n };\n e.exports = h;\n});\n__d(\"ModalMask\", [\"DOM\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = null, i = 0, j = {\n show: function() {\n i++;\n if (!h) {\n h = g.create(\"div\", {\n id: \"modalMaskOverlay\"\n });\n g.appendContent(JSBNG__document.body, h);\n }\n ;\n ;\n },\n hide: function() {\n if (i) {\n i--;\n if (((!i && h))) {\n g.remove(h);\n h = null;\n }\n ;\n ;\n }\n ;\n ;\n }\n };\n e.exports = j;\n});\n__d(\"LitestandMessages\", [], function(a, b, c, d, e, f) {\n var g = {\n FILTER_SWITCH_BEGIN: \"LitestandMessages/FilterSwitchBegin\",\n NEWSFEED_LOAD: \"LitestandMessages/NewsFeedLoad\",\n LEAVE_HOME: \"LitestandMessages/LeaveHome\",\n UPDATE_HOME_COUNT: \"LitestandMessages/UpdateHomeCount\",\n STORIES_INSERTED: \"LitestandMessages/StoriesInserted\",\n STORIES_REMOVED: \"LitestandMessages/StoriesRemoved\",\n NEWER_STORIES_INSERTED: \"LitestandMessages/NewerStoriesInserted\",\n EXPAND_FILTER_SWITCHER: \"LitestandMessages/ExpandFilterSwitcher\",\n RESTORE_FILTER_SWITCHER: \"LitestandMessages/RestoreFilterSwitcher\",\n NEW_STORY_BAR_CLICK: \"LitestandMessages/NewStoryBarClick\",\n COLLAPSE_FILTER_SWITCHER: \"LitestandMessages/CollapseFilterSwitcher\",\n TOUR_BEGIN: \"LitestandMessages/TourBegin\",\n TOUR_END: \"LitestandMessages/TourEnd\",\n TOUR_SIDEBAR_HIGHLIGHT: \"LitestandMessages/TourSidebarHighlight\",\n TOUR_SIDEBAR_UNHIGHLIGHT: \"LitestandMessages/TourSidebarUnhighlight\",\n RHC_RELOADED: \"LitestandMessages/RHCReloaded\",\n UNLOCK_FILTER_SWITCHER: \"LitestandMessage/UnlockFilterSwitcher\"\n };\n e.exports = g;\n});\n__d(\"WebMessengerPermalinkConstants\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n ARCHIVED_PATH: \"/messages/archived\",\n BASE_PATH: \"/messages\",\n OTHER_PATH: \"/messages/other\",\n SPAM_PATH: \"/messages/spam\",\n COMPOSE_POSTFIX_PATH: \"/new\",\n SEARCH_POSTFIX_PATH: \"/search\",\n TID_POSTFIX_PARTIAL_PATH: \"/conversation-\",\n overriddenVanities: \"(archived|other|spam|new|search|conversation-.*)\",\n getURIPathForThreadID: function(i, j) {\n return ((((((j || h.BASE_PATH)) + h.TID_POSTFIX_PARTIAL_PATH)) + g.encodeComponent(g.encodeComponent(i))));\n },\n getThreadIDFromURI: function(i) {\n var j = i.getPath().match(((((((h.BASE_PATH + \"(/[^/]*)*\")) + h.TID_POSTFIX_PARTIAL_PATH)) + \"([^/]+)\")));\n if (j) {\n var k = g.decodeComponent(g.decodeComponent(j[2]));\n return k;\n }\n ;\n ;\n },\n getURIPathForIDOrVanity: function(i, j) {\n if (i.match(((((\"^\" + h.overriddenVanities)) + \"$\")))) {\n i = ((\".\" + i));\n }\n ;\n ;\n return ((((((j || h.BASE_PATH)) + \"/\")) + i));\n },\n getUserIDOrVanity: function(i) {\n var j = i.match(((h.BASE_PATH + \".*/([^/]+)/?$\"))), k = ((j && j[1])), l = h.overriddenVanities;\n if (((!k || k.match(((((\"^\" + l)) + \"$\")))))) {\n return false;\n }\n else if (k.match(((((\"^\\\\.\" + l)) + \"$\")))) {\n return k.substr(1);\n }\n else return k\n \n ;\n }\n };\n e.exports = h;\n});\n__d(\"MercuryEmoji\", [\"MercuryConfig\",\"Emoji\",\"Emote\",], function(a, b, c, d, e, f) {\n var g = b(\"MercuryConfig\"), h = b(\"Emoji\"), i = b(\"Emote\"), j = {\n htmlEmojiAndEmote: function(k, l) {\n if (g.MessagingDisplayEmojiGK) {\n return h.htmlEmojiAndEmote(k, l);\n }\n else return i.htmlEmote(k, l)\n ;\n }\n };\n e.exports = j;\n});\n__d(\"MercuryErrorInfo\", [\"MercuryErrorType\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"MercuryErrorType\"), h = b(\"tx\"), i = {\n getMessage: function(j) {\n var k = \"This message failed to send.\";\n if (i.isConnectionError(j)) {\n k = \"Unable to connect to Facebook. This message failed to send. \";\n }\n else if (j.description) {\n k = j.description;\n }\n \n ;\n ;\n return k;\n },\n isConnectionError: function(j) {\n if (((j && ((j.type == g.TRANSPORT))))) {\n return ((((((j.code === 1001)) || ((j.code === 1004)))) || ((j.code === 1006))));\n }\n ;\n ;\n return false;\n }\n };\n e.exports = i;\n});\n__d(\"MercuryChannelHandler\", [\"Arbiter\",\"ChannelConstants\",\"Env\",\"MercuryActionTypeConstants\",\"MercuryGlobalActionType\",\"MercuryMessages\",\"MercuryPayloadSource\",\"MessagingReliabilityLogger\",\"MessagingEvent\",\"MessagingTag\",\"MercuryParticipants\",\"PresenceUtil\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"Env\"), j = b(\"MercuryActionTypeConstants\"), k = b(\"MercuryGlobalActionType\"), l = b(\"MercuryMessages\").get(), m = b(\"MercuryPayloadSource\"), n = b(\"MessagingReliabilityLogger\"), o = b(\"MessagingEvent\"), p = b(\"MessagingTag\"), q = b(\"MercuryParticipants\"), r = b(\"PresenceUtil\"), s = b(\"MercuryServerRequests\").get(), t = b(\"MercuryThreadInformer\").get(), u = b(\"copyProperties\");\n function v(la, ma) {\n if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.message))) {\n n.addEntry(\"channel_receive\", \"invalid_data\");\n return;\n }\n ;\n ;\n var na = ma.obj.message, oa = {\n author: na.mercury_author_id,\n author_email: na.mercury_author_email,\n body: na.body,\n subject: na.subject,\n has_attachment: na.has_attachment,\n attachments: na.attachments,\n html_body: na.html_body,\n thread_id: na.tid,\n message_id: na.mid,\n coordinates: na.mercury_coordinates,\n spoof_warning: na.mercury_spoof_warning,\n source: na.mercury_source,\n source_tags: na.mercury_source_tags,\n threading_id: na.threading_id,\n timestamp: na.timestamp,\n timestamp_absolute: na.timestamp_absolute,\n timestamp_relative: na.timestamp_relative,\n timestamp_time_passed: na.timestamp_time_passed,\n action_type: j.USER_GENERATED_MESSAGE,\n is_unread: na.is_unread,\n action_id: na.action_id,\n is_forward: false,\n forward_count: ((na.forward_count || na.JSBNG__forward)),\n forward_message_ids: na.forward_msg_ids,\n location_text: na.location_text,\n folder: ma.obj.folder\n }, pa = [u({\n }, oa),];\n pa = pa.concat(((na.forward_actions || [])));\n var qa = m.CLIENT_CHANNEL_MESSAGE;\n s.handleUpdateWaitForThread({\n actions: pa,\n payload_source: qa\n }, na.tid);\n if (((!na.is_unread && ((na.mercury_author_id === q.user))))) {\n var ra = {\n };\n ra[na.tid] = ma.obj.folder;\n w(h.getArbiterType(\"messaging\"), {\n obj: {\n JSBNG__event: o.READ,\n tids: [na.tid,],\n folder_info: ra,\n timestamp: na.timestamp\n }\n });\n }\n ;\n ;\n n.addEntry(\"channel_receive\", \"success\", [oa.thread_id,oa.message_id,r.getSessionID(),]);\n };\n;\n function w(la, ma) {\n if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.tids))) {\n return;\n }\n ;\n ;\n var na = [], oa = ((ma.obj.JSBNG__event == o.READ));\n ma.obj.tids.forEach(function(pa) {\n na.push({\n action_type: j.CHANGE_READ_STATUS,\n action_id: null,\n thread_id: pa,\n mark_as_read: oa,\n timestamp: ((ma.obj.timestamp || 0)),\n folder: ma.obj.folder_info[pa]\n });\n });\n s.handleUpdate({\n actions: na,\n payload_source: m.CLIENT_CHANNEL_MESSAGE\n });\n };\n;\n function x(la, ma) {\n if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.tids))) {\n return;\n }\n ;\n ;\n var na = [];\n ma.obj.tids.forEach(function(oa) {\n na.push({\n action_type: j.DELETE_THREAD,\n action_id: null,\n thread_id: oa\n });\n });\n s.handleUpdate({\n actions: na,\n payload_source: m.CLIENT_CHANNEL_MESSAGE\n });\n };\n;\n function y(la, ma) {\n if (((((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.tids)) || !ma.obj.mids))) {\n return;\n }\n ;\n ;\n var na = ma.obj.tids[0], oa = {\n action_type: j.DELETE_MESSAGES,\n action_id: null,\n thread_id: na,\n message_ids: ma.obj.mids\n };\n s.handleUpdate({\n actions: [oa,],\n threads: [ma.obj.updated_thread,],\n payload_source: m.CLIENT_CHANNEL_MESSAGE\n });\n };\n;\n function z(la, ma) {\n if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.folder))) {\n return;\n }\n ;\n ;\n var na = {\n action_type: k.MARK_ALL_READ,\n action_id: ma.obj.action_id,\n folder: ma.obj.folder\n };\n s.handleUpdate({\n global_actions: [na,]\n });\n };\n;\n function aa(la, ma) {\n if (((((la != h.getArbiterType(\"messaging\"))) || !ma.obj.tids))) {\n return;\n }\n ;\n ;\n var na = m.CLIENT_CHANNEL_MESSAGE;\n ma.obj.tids.forEach(function(oa) {\n var pa = {\n action_type: j.CHANGE_ARCHIVED_STATUS,\n action_id: null,\n thread_id: oa,\n archived: ma.obj.state\n };\n s.handleUpdateWaitForThread({\n actions: [u({\n }, pa),],\n payload_source: na\n }, oa);\n });\n };\n;\n function ba(la, ma) {\n if (((((la != h.getArbiterType(\"messaging\"))) || !ma.obj.tids))) {\n return;\n }\n ;\n ;\n var na = m.CLIENT_CHANNEL_MESSAGE, oa;\n ma.obj.tids.forEach(function(pa) {\n if (((ma.obj.JSBNG__event == o.TAG))) {\n oa = ma.obj.tag;\n }\n else oa = ((ma.obj.marked_as_spam ? p.SPAM : p.INBOX));\n ;\n ;\n var qa = {\n action_type: j.CHANGE_FOLDER,\n action_id: null,\n thread_id: pa,\n new_folder: oa\n };\n s.handleUpdateWaitForThread({\n actions: [u({\n }, qa),],\n payload_source: na\n }, pa);\n });\n };\n;\n function ca(la, ma) {\n if (((((la != h.getArbiterType(\"messaging\"))) || !ma.obj.tag))) {\n return;\n }\n ;\n ;\n switch (ma.obj.tag) {\n case p.ACTION_ARCHIVED:\n aa(la, ma);\n break;\n case p.INBOX:\n \n case p.OTHER:\n ba(la, ma);\n break;\n };\n ;\n };\n;\n function da(la, ma) {\n if (((((((la != h.getArbiterType(\"inbox\"))) || !ma.obj)) || !ma.obj.seen_timestamp))) {\n return;\n }\n ;\n ;\n s.handleUpdate({\n message_counts: [{\n seen_timestamp: ma.obj.seen_timestamp,\n folder: p.INBOX\n },],\n unseen_thread_ids: [{\n thread_ids: [],\n folder: p.INBOX\n },],\n payload_source: m.CLIENT_CHANNEL_MESSAGE\n });\n };\n;\n function ea(la, ma) {\n if (((((la != h.getArbiterType(\"mercury\"))) || !ma.obj))) {\n return;\n }\n ;\n ;\n t.synchronizeInforms(function() {\n var na = ma.obj, oa = [];\n ((na.actions || [])).forEach(function(pa) {\n var qa = j.USER_GENERATED_MESSAGE;\n if (((pa.action_type == j.LOG_MESSAGE))) {\n var ra = m.CLIENT_CHANNEL_MESSAGE;\n s.handleUpdateWaitForThread({\n actions: [u({\n }, pa),],\n payload_source: ra\n }, pa.thread_id);\n }\n else if (((pa.action_type != qa))) {\n oa.push(pa);\n }\n \n ;\n ;\n });\n na.actions = oa;\n na.payload_source = m.CLIENT_CHANNEL_MESSAGE;\n s.handleUpdate(na);\n });\n };\n;\n function fa(la, ma) {\n s.handleRoger(ma.obj);\n };\n;\n function ga(la, ma) {\n if (((((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || ((ma.obj.mute_settings === undefined)))) || !ma.obj.thread_id))) {\n return;\n }\n ;\n ;\n var na = j.CHANGE_MUTE_SETTINGS, oa = [{\n action_type: na,\n action_id: null,\n thread_id: ma.obj.thread_id,\n mute_settings: ma.obj.mute_settings\n },];\n s.handleUpdate({\n actions: oa,\n payload_source: m.CLIENT_CHANNEL_MESSAGE\n });\n };\n;\n function ha(la, ma) {\n switch (ma.obj.JSBNG__event) {\n case o.DELIVER:\n v(la, ma);\n break;\n case o.READ:\n \n case o.UNREAD:\n w(la, ma);\n break;\n case o.READ_ALL:\n z(la, ma);\n break;\n case o.DELETE:\n x(la, ma);\n break;\n case o.DELETE_MESSAGES:\n y(la, ma);\n break;\n case o.TAG:\n ca(la, ma);\n break;\n case o.REPORT_SPAM:\n ba(la, ma);\n break;\n case o.READ_RECEIPT:\n fa(la, ma);\n break;\n case o.CHANGE_MUTE_SETTINGS:\n ga(la, ma);\n break;\n };\n ;\n };\n;\n function ia(la, ma) {\n if (((((la != h.getArbiterType(\"messaging_zap\"))) || !ma.obj))) {\n n.addEntry(\"channel_receive_zap\", \"invalid_data\");\n return;\n }\n ;\n ;\n if (!ma.obj.is_canonical) {\n return;\n }\n ;\n ;\n var na = ma.obj.sender_id;\n if (((na == i.user))) {\n na = ma.obj.recipient_id;\n }\n ;\n ;\n na = ((\"user:\" + na));\n var oa = {\n action_type: j.USER_GENERATED_MESSAGE,\n author: ((\"fbid:\" + ma.obj.sender_id)),\n body: ma.obj.body,\n source: ma.obj.source,\n timestamp: ma.obj.timestamp,\n message_id: ma.obj.message_id,\n thread_id: na,\n specific_to_list: [((\"fbid:\" + ma.obj.sender_id)),((\"fbid:\" + ma.obj.recipient_id)),],\n spoof_warning: false,\n is_unread: true,\n is_zap: true\n };\n l.zapMessage(oa);\n };\n;\n var ja = [], ka = {\n turnOn: function() {\n if (!ja.length) {\n var la = {\n mercury: ea,\n messaging: ha,\n messaging_zap: ia,\n inbox: da\n };\n {\n var fin184keys = ((window.top.JSBNG_Replay.forInKeys)((la))), fin184i = (0);\n var ma;\n for (; (fin184i < fin184keys.length); (fin184i++)) {\n ((ma) = (fin184keys[fin184i]));\n {\n ja.push(g.subscribe(h.getArbiterType(ma), la[ma]));\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n },\n turnOff: function() {\n if (ja.length) {\n ja.forEach(g.unsubscribe);\n ja = [];\n }\n ;\n ;\n }\n };\n ka.turnOn();\n e.exports = ka;\n});\n__d(\"MercuryRoger\", [\"ArbiterMixin\",\"MercuryActionStatus\",\"MercuryServerRequests\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"MercuryActionStatus\"), i = b(\"MercuryServerRequests\").get(), j = b(\"copyProperties\"), k = {\n }, l = {\n getSeenBy: function(m, n) {\n if (!m) {\n return [];\n }\n ;\n ;\n var o = [], p = k[m.thread_id], q = h.SUCCESS;\n {\n var fin185keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin185i = (0);\n var r;\n for (; (fin185i < fin185keys.length); (fin185i++)) {\n ((r) = (fin185keys[fin185i]));\n {\n if (((((((p[r] > m.timestamp)) && ((((m.JSBNG__status === undefined)) || ((m.JSBNG__status === q)))))) && ((!n || ((r != m.author))))))) {\n o.push(r);\n }\n ;\n ;\n };\n };\n };\n ;\n return o;\n },\n getSeenTimestamp: function(m, n) {\n var o = k[m];\n return ((o ? o[n] : null));\n }\n };\n j(l, g);\n i.subscribe(\"update-roger\", function(m, n) {\n {\n var fin186keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin186i = (0);\n var o;\n for (; (fin186i < fin186keys.length); (fin186i++)) {\n ((o) = (fin186keys[fin186i]));\n {\n if (!k[o]) {\n k[o] = {\n };\n }\n ;\n ;\n {\n var fin187keys = ((window.top.JSBNG_Replay.forInKeys)((n[o]))), fin187i = (0);\n var p;\n for (; (fin187i < fin187keys.length); (fin187i++)) {\n ((p) = (fin187keys[fin187i]));\n {\n var q = k[o][p], r = n[o][p];\n if (((!q || ((r > q))))) {\n k[o][p] = r;\n }\n ;\n ;\n };\n };\n };\n ;\n };\n };\n };\n ;\n if (n) {\n l.inform(\"state-changed\", n);\n }\n ;\n ;\n });\n e.exports = l;\n});\n__d(\"MercuryDelayedRoger\", [\"ArbiterMixin\",\"LiveTimer\",\"MercuryActionStatus\",\"MercuryConfig\",\"MercuryMessages\",\"MercuryRoger\",\"MercuryThreadInformer\",\"MercuryThreads\",\"copyProperties\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"LiveTimer\"), i = b(\"MercuryActionStatus\"), j = b(\"MercuryConfig\"), k = b(\"MercuryMessages\").get(), l = b(\"MercuryRoger\"), m = b(\"MercuryThreadInformer\").get(), n = b(\"MercuryThreads\").get(), o = b(\"copyProperties\"), p = b(\"setTimeoutAcrossTransitions\"), q = {\n }, r = {\n }, s = j[\"roger.seen_delay\"], t = o({\n getSeenBy: function(x, y) {\n if (r[x]) {\n return [];\n }\n ;\n ;\n if (!q[x]) {\n var z = n.getThreadMetaNow(x);\n if (z) {\n q[x] = {\n thread_id: x,\n author: z.participants[0],\n timestamp: z.timestamp\n };\n }\n ;\n ;\n }\n ;\n ;\n return l.getSeenBy(q[x], y);\n }\n }, g);\n function u(x) {\n var y = false;\n k.getThreadMessagesRange(x, 0, 1, function(z) {\n var aa = z[0];\n if (!aa) {\n return;\n }\n ;\n ;\n var ba = aa.timestamp;\n if (((aa.action_id || ((aa.JSBNG__status == i.SUCCESS))))) {\n ba -= h.getServerTimeOffset();\n }\n ;\n ;\n var ca = t.getSeenBy(x);\n if (r[x]) {\n JSBNG__clearTimeout(r[x]);\n delete r[x];\n }\n ;\n ;\n var da = ((ba + s)), ea = ((da - JSBNG__Date.now()));\n if (((ea > 0))) {\n r[x] = p(function() {\n delete r[x];\n v(x);\n }, ea);\n }\n ;\n ;\n q[x] = aa;\n var fa = t.getSeenBy(x);\n if (((ca.length || fa.length))) {\n y = true;\n }\n ;\n ;\n });\n return y;\n };\n;\n function v(x) {\n var y = {\n };\n y[x] = true;\n t.inform(\"state-changed\", y);\n };\n;\n function w(JSBNG__event, x) {\n var y = {\n };\n {\n var fin188keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin188i = (0);\n var z;\n for (; (fin188i < fin188keys.length); (fin188i++)) {\n ((z) = (fin188keys[fin188i]));\n {\n if (u(z)) {\n y[z] = true;\n }\n ;\n ;\n };\n };\n };\n ;\n {\n var fin189keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin189i = (0);\n var aa;\n for (; (fin189i < fin189keys.length); (fin189i++)) {\n ((aa) = (fin189keys[fin189i]));\n {\n t.inform(\"state-changed\", y);\n break;\n };\n };\n };\n ;\n };\n;\n l.subscribe(\"state-changed\", function(x, y) {\n {\n var fin190keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin190i = (0);\n var z;\n for (; (fin190i < fin190keys.length); (fin190i++)) {\n ((z) = (fin190keys[fin190i]));\n {\n ((!r[z] && v(z)));\n ;\n };\n };\n };\n ;\n });\n m.subscribe(\"messages-received\", w);\n m.subscribe(\"messages-reordered\", w);\n m.subscribe(\"messages-updated\", w);\n e.exports = t;\n});\n__d(\"MercuryFilters\", [\"MessagingTag\",\"arrayContains\",], function(a, b, c, d, e, f) {\n var g = b(\"MessagingTag\"), h = b(\"arrayContains\"), i = [g.UNREAD,], j = {\n ALL: \"all\",\n getSupportedFilters: function() {\n return i.concat();\n },\n isSupportedFilter: function(k) {\n return h(i, k);\n }\n };\n e.exports = j;\n});\n__d(\"MercuryOrderedThreadlist\", [\"JSLogger\",\"MercuryActionTypeConstants\",\"MercuryFilters\",\"MercuryFolders\",\"MercuryPayloadSource\",\"MercurySingletonMixin\",\"MessagingTag\",\"RangedCallbackManager\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"arrayContains\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSLogger\"), h = b(\"MercuryActionTypeConstants\"), i = b(\"MercuryFilters\"), j = b(\"MercuryFolders\"), k = b(\"MercuryPayloadSource\"), l = b(\"MercurySingletonMixin\"), m = b(\"MessagingTag\"), n = b(\"RangedCallbackManager\"), o = b(\"MercuryServerRequests\"), p = b(\"MercuryThreadInformer\"), q = b(\"MercuryThreads\"), r = b(\"arrayContains\"), s = b(\"copyProperties\"), t = g.create(\"ordered_threadlist_model\"), u = i.getSupportedFilters().concat([i.ALL,m.GROUPS,]), v = j.getSupportedFolders();\n function w(ga, ha, ia, ja) {\n var ka = [], la = false, ma = false, na = ((ha || [])).filter(function(ua) {\n var va = ((ua.filter || i.ALL));\n return ((((((ua.folder == ia)) || ((!ua.folder && ((ia == m.INBOX)))))) && ((va == ja))));\n }), oa = ga._threadlistOrderMap[ia][ja].getAllResources(), pa;\n na.forEach(function(ua) {\n ka = ka.concat(ua.thread_ids);\n if (ua.error) {\n if (((ua.end > oa.length))) {\n ma = ua.error;\n }\n ;\n ;\n }\n else {\n var va = ((ua.end - ua.start));\n if (((ua.thread_ids.length < va))) {\n la = true;\n }\n ;\n ;\n }\n ;\n ;\n if (((!pa || ((ua.end > pa))))) {\n pa = ua.end;\n }\n ;\n ;\n });\n aa(ga, ka, ia, ja);\n if (la) {\n ga._threadlistOrderMap[ia][ja].setReachedEndOfArray();\n }\n else if (ma) {\n ga._threadlistOrderMap[ia][ja].setError(ma);\n }\n else {\n var qa = ga._threadlistOrderMap[ia][ja].getCurrentArraySize();\n if (((pa && ((qa < pa))))) {\n var ra = {\n }, sa = oa.concat(ka), ta = sa.filter(function(ua) {\n var va = ra[ua];\n ra[ua] = true;\n return va;\n });\n if (ta.length) {\n t.warn(\"duplicate_threads\", {\n folder: ia,\n expected_final_size: pa,\n actual_final_size: qa,\n duplicate_thread_ids: ta\n });\n ga._serverRequests.fetchThreadlistInfo(pa, ta.length, ia, ((((ja == i.ALL)) ? null : ja)));\n }\n ;\n ;\n }\n ;\n ;\n }\n \n ;\n ;\n };\n;\n function x(ga, ha) {\n v.forEach(function(ia) {\n u.forEach(function(ja) {\n w(ga, ha, ia, ja);\n });\n });\n };\n;\n function y(ga, ha) {\n var ia = {\n };\n v.forEach(function(ja) {\n ia[ja] = {\n };\n u.forEach(function(ka) {\n ia[ja][ka] = {\n to_add: [],\n to_remove: [],\n to_remove_if_last_after_add: {\n }\n };\n });\n });\n ha.forEach(function(ja) {\n if (ja.is_forward) {\n return;\n }\n ;\n ;\n var ka = ja.thread_id, la = ba(ga, ka), ma = ca(ga, ka);\n function na() {\n ma.forEach(function(pa) {\n ia[la][pa].to_add.push(ka);\n if (((!ga._threadlistOrderMap[la][pa].hasReachedEndOfArray() && !ga._threadlistOrderMap[la][pa].hasResource(ka)))) {\n ia[la][pa].to_remove_if_last_after_add[ka] = true;\n }\n ;\n ;\n });\n };\n ;\n function oa(pa) {\n if (r(u, pa)) {\n if (r(ma, pa)) {\n ia[la][pa].to_add.push(ka);\n }\n else ia[la][pa].to_remove.push(ka);\n ;\n }\n ;\n ;\n };\n ;\n if (!la) {\n if (((((ja.action_type === h.CHANGE_FOLDER)) || ((ja.action_type === h.CHANGE_ARCHIVED_STATUS))))) {\n v.forEach(function(pa) {\n if (((pa !== la))) {\n u.forEach(function(qa) {\n ga._threadlistOrderMap[pa][qa].removeResources([ka,]);\n });\n }\n ;\n ;\n });\n }\n ;\n ;\n return;\n }\n ;\n ;\n switch (ja.action_type) {\n case h.DELETE_THREAD:\n ma.forEach(function(pa) {\n ia[la][pa].to_remove.push(ka);\n });\n break;\n case h.CHANGE_ARCHIVED_STATUS:\n \n case h.CHANGE_FOLDER:\n na();\n break;\n case h.CHANGE_READ_STATUS:\n oa(m.UNREAD);\n break;\n case h.USER_GENERATED_MESSAGE:\n \n case h.LOG_MESSAGE:\n ma.forEach(function(pa) {\n if (da(ga, ka, la, pa)) {\n ia[la][pa].to_add.push(ka);\n }\n ;\n ;\n });\n break;\n };\n ;\n });\n v.forEach(function(ja) {\n u.forEach(function(ka) {\n var la = ga._threadlistOrderMap[ja][ka];\n aa(ga, ia[ja][ka].to_add, ja, ka);\n for (var ma = ((la.getCurrentArraySize() - 1)); ((ma >= 0)); ma--) {\n var na = la.getResourceAtIndex(ma);\n if (!ia[ja][ka].to_remove_if_last_after_add[na]) {\n break;\n }\n ;\n ;\n ia[ja][ka].to_remove.push(na);\n };\n ;\n la.removeResources(ia[ja][ka].to_remove);\n });\n });\n };\n;\n function z(ga, ha) {\n var ia = {\n };\n v.forEach(function(ja) {\n ia[ja] = {\n };\n u.forEach(function(ka) {\n ia[ja][ka] = [];\n });\n });\n ha.forEach(function(ja) {\n var ka = ba(ga, ja.thread_id), la = ca(ga, ja.thread_id);\n if (ka) {\n la.forEach(function(ma) {\n if (da(ga, ja.thread_id, ka, ma)) {\n ia[ka][ma].push(ja.thread_id);\n }\n ;\n ;\n });\n }\n ;\n ;\n });\n v.forEach(function(ja) {\n u.forEach(function(ka) {\n if (((ia[ja][ka].length > 0))) {\n aa(ga, ia[ja][ka], ja, ka);\n }\n ;\n ;\n });\n });\n };\n;\n function aa(ga, ha, ia, ja) {\n ja = ((ja || i.ALL));\n ga._threadlistOrderMap[ia][ja].addResources(ha);\n v.forEach(function(ka) {\n if (((ka != ia))) {\n ga._threadlistOrderMap[ka][ja].removeResources(ha);\n }\n ;\n ;\n });\n };\n;\n function ba(ga, ha) {\n var ia = ga._threads.getThreadMetaNow(ha), ja = null;\n if (!ia) {\n ja = \"No thread metadata\";\n }\n else if (!ia.folder) {\n ja = \"No thread folder\";\n }\n \n ;\n ;\n if (ja) {\n var ka = {\n error: ja,\n tid: ha\n };\n t.warn(\"no_thread_folder\", ka);\n return null;\n }\n ;\n ;\n var la = ia.folder;\n if (ia.is_archived) {\n la = m.ACTION_ARCHIVED;\n }\n ;\n ;\n if (ga._threadlistOrderMap[la]) {\n return la;\n }\n else return null\n ;\n };\n;\n function ca(ga, ha) {\n var ia = ga._threads.getThreadMetaNow(ha), ja = [i.ALL,];\n if (!ia) {\n var ka = {\n error: \"no_thread_metadata\",\n tid: ha\n };\n t.warn(\"no_thread_metadata\", ka);\n return [];\n }\n ;\n ;\n if (ia.unread_count) {\n ja.push(m.UNREAD);\n }\n ;\n ;\n if (!ia.is_canonical) {\n ja.push(m.GROUPS);\n }\n ;\n ;\n return ja;\n };\n;\n function da(ga, ha, ia, ja) {\n var ka = ga._threads.getThreadMetaNow(ha);\n return ((((((ka && ka.timestamp)) && ((ba(ga, ha) == ia)))) && r(ca(ga, ha), ja)));\n };\n;\n function ea(ga) {\n this._fbid = ga;\n this._serverRequests = o.getForFBID(this._fbid);\n this._threadInformer = p.getForFBID(this._fbid);\n this._threads = q.getForFBID(this._fbid);\n this._threadlistOrderMap = {\n };\n v.forEach(function(ha) {\n this._threadlistOrderMap[ha] = {\n };\n u.forEach(function(ia) {\n this._threadlistOrderMap[ha][ia] = new n(function(ja) {\n return this._threads.getThreadMetaNow(ja).timestamp;\n }.bind(this), function(ja, ka) {\n return ((ka - ja));\n }, this._serverRequests.canLinkExternally.bind(this._serverRequests));\n }.bind(this));\n }.bind(this));\n this._serverRequests.subscribe(\"update-threadlist\", function(ha, ia) {\n if (!fa(ia)) {\n return;\n }\n ;\n ;\n var ja = ia.ordered_threadlists;\n if (((ja && ja.length))) {\n x(this, ja);\n }\n else {\n var ka = ((ia.actions || [])).filter(function(la) {\n return la.thread_id;\n });\n z(this, ((ia.threads || [])));\n y(this, ka);\n }\n ;\n ;\n this._threadInformer.updatedThreadlist();\n }.bind(this));\n };\n;\n s(ea.prototype, {\n getThreadlist: function(ga, ha, ia, ja, ka, la) {\n return this.getFilteredThreadlist(ga, ha, ia, i.ALL, ja, ka, la);\n },\n getFilteredThreadlist: function(ga, ha, ia, ja, ka, la, ma) {\n var na = this._threadlistOrderMap[ia][ja], oa = na.executeOrEnqueue(ga, ha, ka, la), pa = na.getUnavailableResources(oa), qa = na.getError(ga, ha, la);\n if (((pa.length || qa))) {\n if (((na.getCurrentArraySize() < ga))) {\n var ra = {\n start: ga,\n limit: ha,\n filter: ja,\n resources_size: na.getCurrentArraySize()\n };\n t.warn(\"range_with_gap\", ra);\n }\n ;\n ;\n na.setError(false);\n this._serverRequests.fetchThreadlistInfo(na.getCurrentArraySize(), pa.length, ia, ((((ja == i.ALL)) ? null : ja)), ma);\n }\n ;\n ;\n return oa;\n },\n getThreadlistUntilTimestamp: function(ga, ha, ia) {\n ia = ((ia || i.ALL));\n return this._threadlistOrderMap[ha][ia].getElementsUntil(ga);\n },\n unsubscribe: function(ga, ha, ia) {\n ia = ((ia || i.ALL));\n this._threadlistOrderMap[ha][ia].unsubscribe(ga);\n }\n });\n s(ea, l);\n function fa(ga) {\n switch (ga.payload_source) {\n case k.CLIENT_CHANGE_ARCHIVED_STATUS:\n \n case k.CLIENT_CHANGE_READ_STATUS:\n \n case k.CLIENT_CHANGE_FOLDER:\n \n case k.CLIENT_CHANNEL_MESSAGE:\n \n case k.CLIENT_DELETE_MESSAGES:\n \n case k.CLIENT_DELETE_THREAD:\n \n case k.CLIENT_SEND_MESSAGE:\n \n case k.SERVER_SEND_MESSAGE:\n \n case k.SERVER_CONFIRM_MESSAGES:\n \n case k.SERVER_FETCH_THREADLIST_INFO:\n \n case k.SERVER_THREAD_SYNC:\n \n case k.SERVER_ZAP:\n return true;\n case k.SERVER_INITIAL_DATA:\n return ga.ordered_threadlists;\n default:\n return false;\n };\n ;\n };\n;\n e.exports = ea;\n});\n__d(\"MercuryUnreadState\", [\"Arbiter\",\"MercuryFolders\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryGlobalActionType\",\"MercurySingletonMixin\",\"MercuryThreadlistConstants\",\"MessagingTag\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"arrayContains\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"MercuryFolders\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryActionTypeConstants\"), l = b(\"MercuryGlobalActionType\"), m = b(\"MercurySingletonMixin\"), n = b(\"MercuryThreadlistConstants\"), o = b(\"MessagingTag\"), p = b(\"MercuryServerRequests\"), q = b(\"MercuryThreadInformer\"), r = b(\"MercuryThreads\"), s = b(\"arrayContains\"), t = b(\"copyProperties\"), u = b(\"createObjectFrom\"), v = ((h.getSupportedFolders() || [])).filter(function(ma) {\n return ((ma != o.ACTION_ARCHIVED));\n }), w = \"unread_thread_hash\", x = \"unseen_thread_list\", y = n.MAX_UNREAD_COUNT, z = i.create(\"mercury_unread_state\");\n function aa(ma) {\n this._fbid = ma;\n this._serverRequests = p.getForFBID(this._fbid);\n this._threadInformer = q.getForFBID(this._fbid);\n this._threads = r.getForFBID(this._fbid);\n this._allReadTimestamp = {\n };\n this._threadReadTimestamp = {\n };\n this._initialUnreadCount = {\n };\n this._maxCount = {\n };\n this._unreadResources = {\n };\n v.forEach(function(na) {\n this._initialUnreadCount[na] = 0;\n this._maxCount[na] = false;\n this._unreadResources[na] = new j();\n }.bind(this));\n this._serverRequests.subscribe(\"update-unread\", function(na, oa) {\n fa(this, oa);\n var pa = ((oa.global_actions || []));\n for (var qa = 0; ((qa < pa.length)); qa++) {\n var ra = pa[qa];\n if (((ra.action_type == l.MARK_ALL_READ))) {\n ia(this, ra.folder, ra.timestamp);\n }\n ;\n ;\n };\n ;\n }.bind(this));\n this._serverRequests.subscribe(\"update-thread-ids\", function(na, oa) {\n ka(this, oa);\n }.bind(this));\n };\n;\n t(aa.prototype, {\n getUnreadCount: function(ma) {\n if (this.exceedsMaxCount(ma)) {\n z.error(\"unguarded_unread_count_fetch\", {\n });\n return 0;\n }\n ;\n ;\n return ea(this, ma);\n },\n exceedsMaxCount: function(ma) {\n return ((this._maxCount[ma] || ((ea(this, ma) > y))));\n },\n markFolderAsRead: function(ma) {\n if (((this._maxCount[ma] || ((ea(this, ma) > 0))))) {\n this._serverRequests.markFolderAsRead(ma);\n }\n ;\n ;\n }\n });\n t(aa, m);\n function ba(ma, na, oa) {\n ma._unreadResources[na].setResource(w, oa);\n ma._unreadResources[na].setResource(x, Object.keys(oa));\n };\n;\n function ca(ma, na, oa) {\n var pa = ma._unreadResources[na].executeOrEnqueue(w, oa), qa = ma._unreadResources[na].getUnavailableResources(pa);\n if (qa.length) {\n ma._serverRequests.fetchUnreadThreadIDs(na);\n }\n ;\n ;\n };\n;\n function da(ma, na) {\n return ma._unreadResources[na].getResource(w);\n };\n;\n function ea(ma, na) {\n var oa = ma._unreadResources[na].getResource(x);\n if (oa) {\n return oa.length;\n }\n else return ma._initialUnreadCount[na]\n ;\n };\n;\n function fa(ma, na) {\n var oa;\n ((na.unread_thread_ids || [])).forEach(function(pa) {\n oa = pa.folder;\n if (!la(oa)) {\n return;\n }\n ;\n ;\n var qa = ja(ma, pa.thread_ids);\n ba(ma, oa, u(qa, true));\n if (((qa.length > y))) {\n ma._maxCount[oa] = true;\n }\n ;\n ;\n ma._threadInformer.updatedUnreadState();\n });\n ((na.message_counts || [])).forEach(function(pa) {\n if (((pa.unread_count === undefined))) {\n return;\n }\n ;\n ;\n oa = pa.folder;\n if (((pa.unread_count > y))) {\n ma._maxCount[oa] = true;\n ba(ma, oa, {\n });\n ma._threadInformer.updatedUnreadState();\n }\n else {\n ma._initialUnreadCount[oa] = pa.unread_count;\n if (((ma._initialUnreadCount[oa] === 0))) {\n ba(ma, oa, {\n });\n }\n ;\n ;\n ma._threadInformer.updatedUnreadState();\n }\n ;\n ;\n });\n ((na.actions || [])).forEach(function(pa) {\n if (pa.is_forward) {\n return;\n }\n ;\n ;\n var qa = k, ra = ((pa.thread_id ? pa.thread_id : pa.server_thread_id));\n if (((pa.action_type == qa.DELETE_THREAD))) {\n v.forEach(function(ta) {\n ha(ma, ta, ra);\n });\n }\n else if (((((pa.action_type == qa.CHANGE_ARCHIVED_STATUS)) || ((pa.action_type == qa.CHANGE_FOLDER))))) {\n var sa = ma._threads.getThreadMetaNow(pa.thread_id);\n oa = h.getFromMeta(sa);\n if (((la(oa) && ((sa.unread_count > 0))))) {\n ga(ma, oa, ra);\n }\n ;\n ;\n v.forEach(function(ta) {\n if (((ta != oa))) {\n ha(ma, ta, ra);\n }\n ;\n ;\n });\n }\n else {\n oa = pa.folder;\n if (!la(oa)) {\n return;\n }\n ;\n ;\n if (((pa.action_type == qa.CHANGE_READ_STATUS))) {\n if (pa.mark_as_read) {\n ha(ma, oa, ra, pa.timestamp);\n }\n else ga(ma, oa, ra, pa.timestamp);\n ;\n ;\n }\n else if (((((pa.action_type == qa.USER_GENERATED_MESSAGE)) || ((pa.action_type == qa.LOG_MESSAGE))))) {\n if (pa.is_unread) {\n ga(ma, oa, ra, pa.timestamp);\n }\n ;\n }\n \n ;\n ;\n }\n \n ;\n ;\n });\n };\n;\n function ga(ma, na, oa, pa) {\n if (ma._maxCount[na]) {\n return;\n }\n ;\n ;\n ca(ma, na, function(qa) {\n var ra = ((ma._allReadTimestamp[na] || 0)), sa = ((ma._threadReadTimestamp[oa] || 0)), ta = ((pa || Number.POSITIVE_INFINITY));\n if (((((((ta >= ra)) && ((ta >= sa)))) && !qa[oa]))) {\n qa[oa] = ((pa || 0));\n ba(ma, na, qa);\n ma._threadInformer.updatedUnreadState();\n }\n ;\n ;\n });\n };\n;\n function ha(ma, na, oa, pa) {\n if (ma._maxCount[na]) {\n return;\n }\n ;\n ;\n ca(ma, na, function(qa) {\n if (pa) {\n var ra = ma._threadReadTimestamp[oa];\n if (((!ra || ((ra < pa))))) {\n ma._threadReadTimestamp[oa] = pa;\n }\n ;\n ;\n }\n ;\n ;\n var sa = qa[oa];\n if (((((pa && ((typeof sa == \"number\")))) && ((pa < sa))))) {\n return;\n }\n ;\n ;\n if (((oa in qa))) {\n delete qa[oa];\n ba(ma, na, qa);\n ma._threadInformer.updatedUnreadState();\n }\n ;\n ;\n });\n };\n;\n function ia(ma, na, oa) {\n ma._maxCount[na] = false;\n ba(ma, na, {\n });\n ma._allReadTimestamp[na] = Math.max(((ma._allReadTimestamp[na] || 0)), ((oa || 0)));\n ma._threadInformer.updatedUnreadState();\n };\n;\n function ja(ma, na) {\n return na.map(ma._serverRequests.convertThreadIDIfAvailable.bind(ma._serverRequests));\n };\n;\n function ka(ma, na) {\n v.forEach(function(oa) {\n var pa = da(ma, oa);\n if (!pa) {\n return;\n }\n ;\n ;\n {\n var fin191keys = ((window.top.JSBNG_Replay.forInKeys)((na))), fin191i = (0);\n var qa;\n for (; (fin191i < fin191keys.length); (fin191i++)) {\n ((qa) = (fin191keys[fin191i]));\n {\n var ra = na[qa];\n if (pa[qa]) {\n pa[ra] = pa[qa];\n delete pa[qa];\n }\n ;\n ;\n };\n };\n };\n ;\n ba(ma, oa, pa);\n });\n };\n;\n function la(ma) {\n return s(v, ma);\n };\n;\n g.subscribe(i.DUMP_EVENT, function(ma, na) {\n na.messaging = ((na.messaging || {\n }));\n na.messaging.unread = {\n };\n na.messaging.unread_max_count = {\n };\n var oa = aa._getInstances();\n {\n var fin192keys = ((window.top.JSBNG_Replay.forInKeys)((oa))), fin192i = (0);\n var pa;\n for (; (fin192i < fin192keys.length); (fin192i++)) {\n ((pa) = (fin192keys[fin192i]));\n {\n na.messaging.unread[pa] = {\n };\n na.messaging.unread_max_count[pa] = {\n };\n v.forEach(function(qa) {\n na.messaging.unread[pa][qa] = t({\n }, da(oa[pa], qa));\n na.messaging.unread_max_count[pa][qa] = oa[pa]._maxCount[qa];\n });\n };\n };\n };\n ;\n });\n e.exports = aa;\n});\n__d(\"MercuryUnseenState\", [\"Arbiter\",\"TimestampConverter\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercurySingletonMixin\",\"MercuryThreadlistConstants\",\"MessagingTag\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"TimestampConverter\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryActionTypeConstants\"), l = b(\"MercurySingletonMixin\"), m = b(\"MercuryThreadlistConstants\"), n = b(\"MessagingTag\"), o = b(\"MercuryServerRequests\"), p = b(\"MercuryThreadInformer\"), q = b(\"copyProperties\"), r = b(\"createObjectFrom\"), s = m.MAX_UNSEEN_COUNT, t = \"unseen_thread_hash\", u = \"unseen_thread_list\", v = i.create(\"mercury_unseen_state\");\n function w(ja) {\n this._fbid = ja;\n this._serverRequests = o.getForFBID(this._fbid);\n this._threadInformer = p.getForFBID(this._fbid);\n this._initialUnseenCount = 0;\n this._lastSeenTimestamp = 0;\n this._maxCount = false;\n this._unseenResources = new j();\n this._serverRequests.subscribe(\"update-unseen\", function(ka, la) {\n ba(this, la);\n }.bind(this));\n this._serverRequests.subscribe(\"update-thread-ids\", function(ka, la) {\n ha(this, la);\n }.bind(this));\n };\n;\n q(w.prototype, {\n getUnseenCount: function() {\n if (this.exceedsMaxCount()) {\n v.error(\"unguarded_unseen_count_fetch\", {\n });\n return 0;\n }\n ;\n ;\n return aa(this);\n },\n exceedsMaxCount: function() {\n return ((this._maxCount || ((aa(this) > s))));\n },\n markAsSeen: function() {\n if (((((aa(this) > 0)) || this._maxCount))) {\n this._serverRequests.markSeen();\n ca(this, h.convertActionIDToTimestamp(this._serverRequests.getLastActionID()), []);\n }\n ;\n ;\n },\n markThreadSeen: function(ja, ka) {\n var la = {\n };\n la[ja] = null;\n ea(this, la, ka);\n }\n });\n q(w, l);\n function x(ja, ka) {\n ja._unseenResources.setResource(t, ka);\n ja._unseenResources.setResource(u, Object.keys(ka));\n };\n;\n function y(ja, ka) {\n var la = ja._unseenResources.executeOrEnqueue(t, ka), ma = ja._unseenResources.getUnavailableResources(la);\n if (ma.length) {\n ja._serverRequests.fetchUnseenThreadIDs();\n }\n ;\n ;\n };\n;\n function z(ja) {\n return ja._unseenResources.getResource(t);\n };\n;\n function aa(ja) {\n var ka = ja._unseenResources.getResource(u);\n if (ka) {\n return ka.length;\n }\n else return ja._initialUnseenCount\n ;\n };\n;\n function ba(ja, ka) {\n var la = ia(ka);\n if (ka.unseen_thread_ids) {\n ka.unseen_thread_ids.forEach(function(wa) {\n if (((wa.folder != n.INBOX))) {\n return;\n }\n ;\n ;\n var xa = ga(ja, wa.thread_ids), ya = ja._lastSeenTimestamp;\n if (((la && la.seen_timestamp))) {\n ya = la.seen_timestamp;\n }\n ;\n ;\n ca(ja, ya, xa);\n if (((la && ((la.unseen_count > s))))) {\n ja._maxCount = true;\n }\n ;\n ;\n });\n }\n else if (((la && la.seen_timestamp))) {\n ja._lastSeenTimestamp = la.seen_timestamp;\n if (((la.unseen_count > s))) {\n ja._maxCount = true;\n x(ja, {\n });\n }\n else {\n ja._initialUnseenCount = la.unseen_count;\n if (((ja._initialUnseenCount === 0))) {\n x(ja, {\n });\n }\n ;\n ;\n }\n ;\n ;\n }\n else {\n if (ja._maxCount) {\n return;\n }\n ;\n ;\n var ma = ka.actions;\n if (((!ma || !(ma.length)))) {\n return;\n }\n ;\n ;\n var na = {\n }, oa = {\n };\n for (var pa = 0; ((pa < ma.length)); pa++) {\n var qa = ma[pa];\n if (qa.is_forward) {\n continue;\n }\n ;\n ;\n var ra = qa.action_type, sa = qa.action_id, ta = ((qa.thread_id ? qa.thread_id : qa.server_thread_id)), ua = ((((qa.folder === undefined)) || ((qa.folder == n.INBOX))));\n if (!ua) {\n continue;\n }\n ;\n ;\n if (((((ra == k.USER_GENERATED_MESSAGE)) || ((ra == k.LOG_MESSAGE))))) {\n var va = h.isGreaterThan(sa, na[ta]);\n if (((qa.is_unread && ((!na[ta] || va))))) {\n na[ta] = sa;\n }\n ;\n ;\n }\n else if (((((ra == k.CHANGE_READ_STATUS)) && qa.mark_as_read))) {\n oa[ta] = sa;\n }\n \n ;\n ;\n };\n ;\n da(ja, na);\n ea(ja, oa);\n }\n \n ;\n ;\n };\n;\n function ca(ja, ka, la) {\n var ma = z(ja);\n if (((((((ma === undefined)) || ((ka > ja._lastSeenTimestamp)))) || ja._maxCount))) {\n ja._lastSeenTimestamp = ka;\n la = ((la || []));\n if (((la.length <= s))) {\n ja._maxCount = false;\n }\n ;\n ;\n var na = {\n }, oa = ((z(ja) || {\n }));\n {\n var fin193keys = ((window.top.JSBNG_Replay.forInKeys)((oa))), fin193i = (0);\n var pa;\n for (; (fin193i < fin193keys.length); (fin193i++)) {\n ((pa) = (fin193keys[fin193i]));\n {\n if (((oa[pa] !== true))) {\n var qa = oa[pa];\n if (fa(ja, qa)) {\n na[pa] = qa;\n }\n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n var ra = q(r(la, true), na);\n x(ja, ra);\n ja._threadInformer.updatedUnseenState();\n }\n ;\n ;\n };\n;\n function da(ja, ka) {\n if (ja._maxCount) {\n return;\n }\n ;\n ;\n var la = {\n }, ma = false;\n {\n var fin194keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin194i = (0);\n var na;\n for (; (fin194i < fin194keys.length); (fin194i++)) {\n ((na) = (fin194keys[fin194i]));\n {\n var oa = ka[na];\n if (fa(ja, oa)) {\n la[na] = oa;\n ma = true;\n }\n ;\n ;\n };\n };\n };\n ;\n if (!ma) {\n return;\n }\n ;\n ;\n y(ja, function(pa) {\n {\n var fin195keys = ((window.top.JSBNG_Replay.forInKeys)((la))), fin195i = (0);\n var qa;\n for (; (fin195i < fin195keys.length); (fin195i++)) {\n ((qa) = (fin195keys[fin195i]));\n {\n var ra = la[qa];\n if (((!pa[qa] && fa(ja, ra)))) {\n pa[qa] = la[qa];\n }\n ;\n ;\n };\n };\n };\n ;\n x(ja, pa);\n ja._threadInformer.updatedUnseenState();\n });\n };\n;\n function ea(ja, ka, la) {\n var ma = false;\n {\n var fin196keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin196i = (0);\n var na;\n for (; (fin196i < fin196keys.length); (fin196i++)) {\n ((na) = (fin196keys[fin196i]));\n {\n ma = true;\n break;\n };\n };\n };\n ;\n if (ma) {\n y(ja, function(oa) {\n var pa = false;\n {\n var fin197keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin197i = (0);\n var qa;\n for (; (fin197i < fin197keys.length); (fin197i++)) {\n ((qa) = (fin197keys[fin197i]));\n {\n var ra = ka[qa], sa = h.isGreaterThan(ra, oa[qa]);\n if (((oa[qa] && ((!ra || sa))))) {\n delete oa[qa];\n pa = true;\n }\n ;\n ;\n };\n };\n };\n ;\n if (pa) {\n x(ja, oa);\n ja._threadInformer.updatedUnseenState();\n if (((la && ((aa(ja) === 0))))) {\n ja._serverRequests.markSeen();\n }\n ;\n ;\n }\n ;\n ;\n });\n }\n ;\n ;\n };\n;\n function fa(ja, ka) {\n var la = h.convertActionIDToTimestamp(ka);\n return ((la > ja._lastSeenTimestamp));\n };\n;\n function ga(ja, ka) {\n return ka.map(ja._serverRequests.convertThreadIDIfAvailable.bind(ja._serverRequests));\n };\n;\n function ha(ja, ka) {\n var la = z(ja);\n if (!la) {\n return;\n }\n ;\n ;\n {\n var fin198keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin198i = (0);\n var ma;\n for (; (fin198i < fin198keys.length); (fin198i++)) {\n ((ma) = (fin198keys[fin198i]));\n {\n var na = ka[ma];\n if (la[ma]) {\n la[na] = la[ma];\n delete la[ma];\n }\n ;\n ;\n };\n };\n };\n ;\n x(ja, la);\n };\n;\n function ia(ja) {\n var ka = ((ja.message_counts || []));\n for (var la = 0; ((la < ka.length)); la++) {\n if (((ka[la].folder == n.INBOX))) {\n return ka[la];\n }\n ;\n ;\n };\n ;\n return null;\n };\n;\n g.subscribe(i.DUMP_EVENT, function(ja, ka) {\n ka.messaging = ((ka.messaging || {\n }));\n ka.messaging.unseen = {\n };\n ka.messaging.unseen_max_count = {\n };\n ka.messaging.unseen_time = {\n };\n var la = w._getInstances();\n {\n var fin199keys = ((window.top.JSBNG_Replay.forInKeys)((la))), fin199i = (0);\n var ma;\n for (; (fin199i < fin199keys.length); (fin199i++)) {\n ((ma) = (fin199keys[fin199i]));\n {\n ka.messaging.unseen[ma] = q({\n }, z(la[ma]));\n ka.messaging.unseen_max_count[ma] = la[ma]._maxCount;\n ka.messaging.unseen_time[ma] = la[ma]._lastSeenTimestamp;\n };\n };\n };\n ;\n });\n e.exports = w;\n});\n__d(\"MercuryThreadMetadataRawRenderer\", [\"JSBNG__Event\",\"CSS\",\"DOM\",\"MercuryActionStatus\",\"MercuryErrorInfo\",\"MessagingTag\",\"MercuryStatusTemplates\",\"Tooltip\",\"URI\",\"WebMessengerPermalinkConstants\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"MercuryActionStatus\"), k = b(\"MercuryErrorInfo\"), l = b(\"MessagingTag\"), m = b(\"MercuryStatusTemplates\"), n = b(\"Tooltip\"), o = b(\"URI\"), p = b(\"WebMessengerPermalinkConstants\"), q = b(\"cx\"), r = b(\"tx\"), s = {\n renderParticipantListWithNoThreadName: function(u, v, w, x, y, z) {\n var aa = {\n callback: true,\n check_length: true,\n show_unread_count: true\n };\n z = ((z || {\n }));\n var ba = {\n };\n {\n var fin200keys = ((window.top.JSBNG_Replay.forInKeys)((z))), fin200i = (0);\n var ca;\n for (; (fin200i < fin200keys.length); (fin200i++)) {\n ((ca) = (fin200keys[fin200i]));\n {\n if (aa[ca]) {\n ba[ca] = z[ca];\n delete z[ca];\n }\n ;\n ;\n };\n };\n };\n ;\n var da = w.map(function(ia) {\n return x[ia];\n }), ea = this.renderRawParticipantList(u, da, w.length, z);\n ea = this.renderRawTitleWithUnreadCount(ea, ((ba.show_unread_count ? v.unread_count : 0)));\n var fa = z.abbr_mode, ga = {\n };\n {\n var fin201keys = ((window.top.JSBNG_Replay.forInKeys)((z))), fin201i = (0);\n var ha;\n for (; (fin201i < fin201keys.length); (fin201i++)) {\n ((ha) = (fin201keys[fin201i]));\n {\n ga[ha] = z[ha];\n ;\n };\n };\n };\n ;\n ga.abbr_mode = true;\n y.forEach(function(ia) {\n var ja = ((((y.length > 1)) ? this._cloneIfDOMElement(ea) : ea));\n i.setContent(ia, ja);\n if (((((ba.check_length && !fa)) && ((ia.scrollWidth > ia.clientWidth))))) {\n var ka = this.renderRawParticipantList(u, da, w.length, ga), la = this.renderRawTitleWithUnreadCount(ka, ((ba.show_unread_count ? v.unread_count : 0)));\n i.setContent(ia, la);\n }\n ;\n ;\n }.bind(this));\n ((ba.callback && ba.callback(ea)));\n },\n renderRawParticipantList: function(u, v, w, x) {\n var y = {\n abbr_mode: true,\n last_separator_uses_and: true,\n names_renderer: true\n };\n x = ((x || {\n }));\n var z = null;\n if (x.names_renderer) {\n z = x.names_renderer(v);\n }\n else z = v.map(function(ca) {\n return ca.JSBNG__name;\n });\n ;\n ;\n var aa = null;\n if (((z.length === 0))) {\n if (!u) {\n aa = \"New Message\";\n }\n else aa = \"No Participants\";\n ;\n ;\n }\n else if (((z.length == 1))) {\n aa = z[0];\n }\n else if (((z.length == 2))) {\n var ba = {\n participant1: z[0],\n participant2: z[1]\n };\n if (x.last_separator_uses_and) {\n aa = r._(\"{participant1} and {participant2}\", ba);\n }\n else aa = r._(\"{participant1}, {participant2}\", ba);\n ;\n ;\n }\n else if (x.last_separator_uses_and) {\n if (x.abbr_mode) {\n aa = r._(\"{participant1} and {others_link}\", {\n participant1: z[0],\n others_link: this.renderRawParticipantCount(u, {\n render_subset: true,\n count: ((w - 1))\n })\n });\n }\n else if (((z.length == 3))) {\n aa = r._(\"{participant1}, {participant2} and {participant3}\", {\n participant1: z[0],\n participant2: z[1],\n participant3: z[2]\n });\n }\n else aa = r._(\"{participant1}, {participant2} and {others_link}\", {\n participant1: z[0],\n participant2: z[1],\n others_link: this.renderRawParticipantCount(u, {\n render_subset: true,\n count: ((w - 2))\n })\n });\n \n ;\n ;\n }\n else if (((z.length == 3))) {\n aa = r._(\"{participant1}, {participant2}, {participant3}\", {\n participant1: z[0],\n participant2: z[1],\n participant3: z[2]\n });\n }\n else aa = r._(\"{participant1}, {participant2}, {participant3}, {others_link}\", {\n participant1: z[0],\n participant2: z[1],\n participant3: z[2],\n others_link: this.renderRawParticipantCount(u, {\n render_subset: true,\n count: ((w - 3))\n })\n });\n \n \n \n \n ;\n ;\n if (Array.isArray(aa)) {\n aa = i.create(\"span\", {\n }, aa);\n }\n ;\n ;\n return aa;\n },\n renderRawTitleWithUnreadCount: function(u, v) {\n var w = u;\n if (((v && ((v > 1))))) {\n w = i.create(\"span\", {\n }, r._(\"{conversation_title} ({unread_count})\", {\n conversation_title: u,\n unread_count: v\n }));\n }\n ;\n ;\n return w;\n },\n renderRawParticipantCount: function(u, v) {\n var w = v.render_subset, x;\n if (!w) {\n x = ((((v.count > 1)) ? r._(\"{num} people\", {\n num: v.count\n }) : \"1 person\"));\n }\n else x = ((((v.count > 1)) ? r._(\"{others_count} others\", {\n others_count: v.count\n }) : \"1 other\"));\n ;\n ;\n return x;\n },\n renderShortNames: function(u) {\n if (((u.length == 1))) {\n return [u[0].JSBNG__name,];\n }\n ;\n ;\n return u.map(function(v) {\n return v.short_name;\n });\n },\n getUserCanonicalTitanURL: function(u, v, w) {\n var x = new o().setSubdomain(\"www\"), y = u.substr(((u.indexOf(\":\") + 1)));\n x.setPath(((((t(w) + \"/\")) + y)));\n ((v && v(x.toString())));\n return x.toString();\n },\n getTitanURLWithServerID: function(u, v, w) {\n var x = new o().setSubdomain(\"www\");\n x.setPath(p.getURIPathForThreadID(u, t(w)));\n ((v && v(x.toString())));\n return x.toString();\n },\n renderUserCanonicalTitanLink: function(u, v, w, x) {\n var y = this.getUserCanonicalTitanURL(u, null, x);\n v.setAttribute(\"href\", y);\n ((w && w()));\n },\n renderTitanLinkWithServerID: function(u, v, w, x) {\n var y = this.getTitanURLWithServerID(u, null, x);\n v.setAttribute(\"href\", y);\n ((w && w()));\n },\n renderStatusIndicator: function(u, v, w) {\n var x;\n if (((u == j.RESENDING))) {\n x = this.renderResendIndicator();\n }\n else if (((((((((u !== undefined)) && ((u != j.UNSENT)))) && ((u != j.UNCONFIRMED)))) && ((u != j.SUCCESS))))) {\n x = this.renderErrorIndicator(v, w);\n }\n \n ;\n ;\n return x;\n },\n renderResendIndicator: function() {\n return m[\":fb:mercury:resend-indicator\"].render();\n },\n renderErrorIndicator: function(u, v) {\n if (!u) {\n return null;\n }\n ;\n ;\n var w = m[\":fb:mercury:error-indicator\"].render(), x = u.is_transient, y = k.getMessage(u);\n if (x) {\n if (k.isConnectionError(u)) {\n y = r._(\"{message} Check your network connection or click to try again.\", {\n message: y\n });\n }\n else y = r._(\"{message} Click to send again.\", {\n message: y\n });\n ;\n }\n ;\n ;\n n.set(w, y, \"above\", \"center\");\n if (((v && x))) {\n g.listen(w, \"click\", v);\n w.setAttribute(\"tabindex\", \"0\");\n h.addClass(w, \"_55q-\");\n }\n ;\n ;\n return w;\n },\n _cloneIfDOMElement: function(u) {\n if (u.cloneNode) {\n return u.cloneNode();\n }\n else return u\n ;\n }\n };\n function t(u) {\n var v = p.BASE_PATH;\n if (((u && ((u != l.INBOX))))) {\n v += ((\"/\" + u));\n }\n ;\n ;\n return v;\n };\n;\n e.exports = s;\n});\n__d(\"MercurySeenByAll\", [\"CSS\",\"DataStore\",\"DOM\",\"MercuryParticipants\",\"MercuryDelayedRoger\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"MercuryParticipants\"), k = b(\"MercuryDelayedRoger\"), l = b(\"MercuryThreads\").get(), m = {\n }, n = {\n updateOnSeenChange: function(p, q) {\n m[p.tagName] = true;\n h.set(p, \"thread-id\", q.thread_id);\n g.addClass(p, \"seenByListener\");\n o(p, q);\n }\n };\n function o(p, q) {\n var r = q.participants.filter(function(t) {\n return ((t !== j.user));\n }), s = ((((q.participants.length > 0)) && ((q.participants[0] === j.user))));\n g.conditionClass(p, \"repliedLast\", s);\n g.conditionClass(p, \"seenByAll\", ((s && ((k.getSeenBy(q.thread_id).length === r.length)))));\n };\n;\n k.subscribe(\"state-changed\", function(p, q) {\n {\n var fin202keys = ((window.top.JSBNG_Replay.forInKeys)((m))), fin202i = (0);\n var r;\n for (; (fin202i < fin202keys.length); (fin202i++)) {\n ((r) = (fin202keys[fin202i]));\n {\n var s = i.scry(JSBNG__document.body, ((r + \".seenByListener\")));\n for (var t = 0; ((t < s.length)); t++) {\n var u = s[t], v = h.get(u, \"thread-id\");\n if (q[v]) {\n l.getThreadMeta(v, function(w) {\n o(u, w);\n });\n }\n ;\n ;\n };\n ;\n };\n };\n };\n ;\n });\n e.exports = n;\n});\n__d(\"MercuryThreadMetadataRenderer\", [\"MercuryConfig\",\"CSS\",\"DOM\",\"HTML\",\"JSLogger\",\"MercuryAttachment\",\"MercuryAttachmentType\",\"MercuryEmoji\",\"MercuryMessageSourceTags\",\"MercurySingletonMixin\",\"MercuryThreadMetadataRawRenderer\",\"MercuryParticipants\",\"MercuryParticipantsConstants\",\"React\",\"MercurySeenByAll\",\"MercuryServerRequests\",\"SplitImage.react\",\"Style\",\"MercuryThreadlistIconTemplates\",\"MercuryThreads\",\"Tooltip\",\"URI\",\"arrayContains\",\"createArrayFrom\",\"copyProperties\",\"cx\",\"formatDate\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"MercuryConfig\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"HTML\"), k = b(\"JSLogger\"), l = b(\"MercuryAttachment\"), m = b(\"MercuryAttachmentType\"), n = b(\"MercuryEmoji\"), o = b(\"MercuryMessageSourceTags\"), p = b(\"MercurySingletonMixin\"), q = b(\"MercuryThreadMetadataRawRenderer\"), r = b(\"MercuryParticipants\"), s = b(\"MercuryParticipantsConstants\"), t = b(\"React\"), u = b(\"MercurySeenByAll\"), v = b(\"MercuryServerRequests\"), w = b(\"SplitImage.react\"), x = b(\"Style\"), y = b(\"MercuryThreadlistIconTemplates\"), z = b(\"MercuryThreads\"), aa = b(\"Tooltip\"), ba = b(\"URI\"), ca = b(\"arrayContains\"), da = b(\"createArrayFrom\"), ea = b(\"copyProperties\"), fa = b(\"cx\"), ga = b(\"formatDate\"), ha = b(\"tx\"), ia = k.create(\"wm_timestamp\");\n function ja(pa) {\n this._fbid = pa;\n this._serverRequests = v.getForFBID(pa);\n this._threads = z.getForFBID(pa);\n };\n;\n ea(ja, p);\n ea(ja.prototype, {\n renderTimestamp: function(pa, qa, ra, sa) {\n if (sa) {\n if (!qa) {\n ia.warn(\"no_title\");\n qa = (new JSBNG__Date(sa)).toLocaleDateString();\n }\n ;\n ;\n pa.setAttribute(\"title\", qa);\n pa.setAttribute(\"data-utime\", ((sa / 1000)));\n if (!ra) {\n ia.warn(\"no_display\");\n ra = ga(new JSBNG__Date(sa), ((g[\"24h_times\"] ? \"H:i\" : \"g:ia\")));\n }\n ;\n ;\n i.setContent(pa, ra);\n h.show(pa);\n }\n ;\n ;\n },\n renderMessageSourceTags: function(pa, qa, ra, sa) {\n var ta = \"\", ua = \"\", va = \"\";\n if (ca(ra, o.MESSENGER)) {\n ta = \"Sent from Messenger\";\n ua = new ba(\"/mobile/messenger\");\n va = \"_9g\";\n }\n else if (ca(ra, o.MOBILE)) {\n ta = \"Sent from Mobile\";\n ua = new ba(\"/mobile/\");\n va = \"_9j\";\n }\n else if (ca(ra, o.CHAT)) {\n ta = \"Sent from chat\";\n va = \"_9h\";\n }\n else if (ca(ra, o.EMAIL)) {\n if (sa) {\n ta = ha._(\"Sent from {email}\", {\n email: sa\n });\n }\n else ta = \"Sent from email\";\n ;\n ;\n va = \"_9i\";\n }\n \n \n \n ;\n ;\n if (va) {\n aa.set(pa, ta);\n h.addClass(qa, va);\n if (ua) {\n pa.setAttribute(\"href\", ua);\n }\n else pa.removeAttribute(\"href\");\n ;\n ;\n }\n else h.hide(pa);\n ;\n ;\n },\n renderMessageLocation: function(pa, qa, ra) {\n var sa = ba(\"/ajax/messaging/hovercard/map.php\").setQueryData(ra);\n pa.setAttribute(\"data-hovercard\", sa);\n h.removeClass(pa, \"_b9\");\n h.show(qa);\n },\n renderSpoofWarning: function(pa, qa, ra) {\n if (qa) {\n h.addClass(pa, \"_sa\");\n aa.set(pa, ha._(\"Unable to confirm {name_or_email} as the sender.\", {\n name_or_email: ra.JSBNG__name\n }));\n }\n ;\n ;\n },\n renderChatSpoofWarning: function(pa, qa, ra) {\n if (qa) {\n i.appendContent(pa, ha._(\"Unable to confirm {name_or_email} as the sender.\", {\n name_or_email: ra.JSBNG__name\n }));\n }\n ;\n ;\n },\n renderCoreThreadlist: function(pa, qa, ra, sa, ta) {\n sa = ((sa || {\n }));\n this.renderThreadImage(pa, qa.getNode(\"image\"));\n var ua = qa.getNode(\"accessibleName\"), va = [qa.getNode(\"JSBNG__name\"),];\n if (ua) {\n va.push(ua);\n }\n ;\n ;\n oa(this, pa, va, sa);\n if (((pa.folder && ta))) {\n na(qa.getNode(\"folderBadge\"), pa.folder);\n }\n ;\n ;\n var wa = qa.getNode(\"timestamp\");\n this.renderTimestamp(wa, pa.timestamp_absolute, pa.timestamp_relative, pa.timestamp);\n this.renderSnippet(pa, qa.getNode(\"snippet\"));\n la(qa, pa);\n ra(qa, pa);\n },\n renderAndSeparatedParticipantList: function(pa, qa, ra) {\n ra = ((ra || {\n }));\n ra.last_separator_uses_and = true;\n this._threads.getThreadMeta(pa, function(sa) {\n oa(this, sa, qa, ra);\n }.bind(this));\n },\n renderSnippet: function(pa, qa) {\n var ra = false, sa = i.create(\"span\");\n h.addClass(sa, \"MercuryRepliedIndicator\");\n i.appendContent(qa, sa);\n u.updateOnSeenChange(sa, pa);\n var ta = pa.snippet;\n if (ta) {\n if (pa.snippet_has_attachment) {\n i.appendContent(qa, i.create(\"span\", {\n className: \"MercuryAttachmentIndicator\"\n }));\n }\n ;\n ;\n if (pa.is_forwarded_snippet) {\n i.appendContent(qa, i.create(\"strong\", {\n className: \"_55q_\"\n }, \"Forwarded Message:\"));\n }\n ;\n ;\n if (((ta.substr(0, 4) == \"?OTR\"))) {\n ta = \"[encrypted message]\";\n }\n else ta = ta.replace(/\\r\\n|[\\r\\n]/g, \" \");\n ;\n ;\n ta = j(n.htmlEmojiAndEmote(ta));\n }\n else {\n if (pa.is_forwarded_snippet) {\n i.appendContent(qa, i.create(\"strong\", {\n className: \"_55q_\"\n }, \"Forwarded Message\"));\n }\n ;\n ;\n if (((((pa.snippet_has_attachment && pa.snippet_attachments)) && pa.snippet_attachments.length))) {\n ra = true;\n ta = i.create(\"span\");\n ma(this, pa, ta);\n }\n ;\n ;\n }\n ;\n ;\n var ua = pa.participants.length;\n if (pa.is_subscribed) {\n ua--;\n }\n ;\n ;\n if (((((((!ra && pa.snippet_sender)) && ((r.getIDForUser(this._fbid) != pa.snippet_sender)))) && ((ua > 1))))) {\n r.get(pa.snippet_sender, function(va) {\n if (va.short_name) {\n i.appendContent(qa, ha._(\"{name}: {conversation_snippet}\", {\n JSBNG__name: va.short_name,\n conversation_snippet: ta\n }));\n }\n else i.appendContent(qa, ta);\n ;\n ;\n });\n }\n else i.appendContent(qa, ta);\n ;\n ;\n },\n getTitanURL: function(pa, qa, ra) {\n if (((pa.substr(0, pa.indexOf(\":\")) == \"user\"))) {\n q.getUserCanonicalTitanURL(pa, qa, ra);\n }\n else this._serverRequests.getServerThreadID(pa, function(sa) {\n q.getTitanURLWithServerID(sa, qa, ra);\n });\n ;\n ;\n },\n renderTitanLink: function(pa, qa, ra, sa) {\n if (((pa.substr(0, pa.indexOf(\":\")) == \"user\"))) {\n q.renderUserCanonicalTitanLink(pa, qa, ra, sa);\n }\n else this._serverRequests.getServerThreadID(pa, function(ta) {\n q.renderTitanLinkWithServerID(ta, qa, ra, sa);\n });\n ;\n ;\n },\n renderThreadImage: function(pa, qa) {\n if (pa.image_src) {\n var ra = w({\n srcs: pa.image_src,\n size: s.BIG_IMAGE_SIZE\n });\n t.renderComponent(ra, qa);\n return;\n }\n ;\n ;\n var sa = r.getIDForUser(this._fbid), ta = [], ua = pa.participants.filter(function(va) {\n return ((va != sa));\n });\n if (!ua.length) {\n ta = [sa,];\n }\n else if (((ua.length == 1))) {\n ta = [ua[0],];\n }\n else ta = ua.slice(0, 3);\n \n ;\n ;\n this.renderParticipantImages(ta, qa);\n },\n renderParticipantImages: function(pa, qa) {\n r.getOrderedBigImageMulti(pa, function(ra) {\n var sa = w({\n srcs: ra,\n border: true,\n size: s.BIG_IMAGE_SIZE\n });\n t.renderComponent(sa, qa);\n });\n },\n renderParticipantList: function(pa, qa, ra, sa) {\n return q.renderRawParticipantList(this._serverRequests.getServerThreadIDNow(pa), qa, ra, sa);\n },\n renderThreadNameAndParticipantList: function(pa, qa, ra, sa) {\n var ta = q.renderRawParticipantList(this._serverRequests.getServerThreadIDNow(pa), qa, ra, sa), ua = this._threads.getThreadMetaNow(pa);\n if (!ua.JSBNG__name) {\n return ta;\n }\n ;\n ;\n return ha._(\"{conversation_name} [with {participant_list}]\", {\n conversation_name: ua.JSBNG__name,\n participant_list: ta\n });\n },\n renderParticipantCount: function(pa, qa) {\n return q.renderRawParticipantCount(this._serverRequests.getServerThreadIDNow(pa), qa);\n }\n });\n function ka(pa) {\n if (!pa.snippet_attachments) {\n return [];\n }\n ;\n ;\n return pa.snippet_attachments.filter(function(qa) {\n return ((qa.attach_type === m.PHOTO));\n });\n };\n;\n function la(pa, qa) {\n var ra = ka(qa);\n if (((ra.length === 0))) {\n return;\n }\n ;\n ;\n var sa = ra[0].thumbnail_url;\n if (!sa) {\n return;\n }\n ;\n ;\n var ta = ((((ra.length == 1)) ? \"snippet-thumbnail-single\" : \"snippet-thumbnail-multiple\")), ua = pa.getNode(ta);\n if (!ua) {\n return;\n }\n ;\n ;\n var va = i.JSBNG__find(ua, \"i\");\n x.set(va, \"background-image\", ((((\"url(\" + sa)) + \")\")));\n h.show(ua);\n };\n;\n function ma(pa, qa, ra) {\n var sa = ((qa.snippet_sender && ((r.getIDForUser(pa._fbid) == qa.snippet_sender)))), ta = function(ya) {\n if (((!qa.snippet_sender || sa))) {\n ya(null);\n return;\n }\n ;\n ;\n r.get(qa.snippet_sender, function(za) {\n ya(za.short_name);\n });\n }, ua = ka(qa), va = ((ua.length == qa.snippet_attachments.length)), wa = ((((((qa.snippet_attachments.length === 1)) && qa.snippet_attachments[0].metadata)) && ((qa.snippet_attachments[0].metadata.type == \"fb_voice_message\")))), xa = ((((qa.snippet_attachments.length === 1)) && ((qa.snippet_attachments[0].attach_type === m.STICKER))));\n ta(function(ya) {\n var za = null;\n if (va) {\n var ab = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n if (((ua.length === 1))) {\n za = ((sa ? \"You sent a photo.\" : ha._(\"{name} sent a photo.\", {\n JSBNG__name: ya\n })));\n }\n else za = ((sa ? ha._(\"You sent {num_photos} photos.\", {\n num_photos: ua.length\n }) : ha._(\"{name} sent {num_photos} photos.\", {\n JSBNG__name: ya,\n num_photos: ua.length\n })));\n ;\n ;\n h.addClass(ab, l.getAttachIconClass(ua[0].icon_type));\n i.appendContent(ab, za);\n i.appendContent(ra, ab);\n }\n else if (wa) {\n var bb = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n za = ((sa ? \"You sent a voice message.\" : ha._(\"{name} sent a voice message.\", {\n JSBNG__name: ya\n })));\n h.addClass(bb, l.getAttachIconClass(qa.snippet_attachments[0].icon_type));\n i.appendContent(bb, za);\n i.appendContent(ra, bb);\n }\n else if (xa) {\n za = ((sa ? \"You sent a sticker.\" : ha._(\"{name} sent a sticker.\", {\n JSBNG__name: ya\n })));\n i.appendContent(ra, za);\n }\n else qa.snippet_attachments.filter(function(cb) {\n return ((((cb.attach_type == m.FILE)) || ((cb.attach_type == m.PHOTO))));\n }).forEach(function(cb) {\n var db = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n i.appendContent(db, cb.JSBNG__name);\n h.addClass(db, l.getAttachIconClass(cb.icon_type));\n i.appendContent(ra, db);\n });\n \n \n ;\n ;\n });\n };\n;\n function na(pa, qa) {\n da(pa).forEach(function(ra) {\n i.setContent(ra, qa);\n });\n };\n;\n function oa(pa, qa, ra, sa) {\n ra = da(ra);\n if (qa.JSBNG__name) {\n var ta = q.renderRawTitleWithUnreadCount(qa.JSBNG__name, ((sa.show_unread_count ? qa.unread_count : 0)));\n ra.forEach(function(va) {\n i.setContent(va, ta);\n });\n ((sa.callback && sa.callback(ta)));\n return;\n }\n ;\n ;\n var ua = qa.participants;\n if (((qa.participants.length > 1))) {\n ua = qa.participants.filter(function(va) {\n return ((va != r.getIDForUser(pa._fbid)));\n });\n }\n ;\n ;\n r.getMulti(ua, function(va) {\n q.renderParticipantListWithNoThreadName(pa._serverRequests.getServerThreadIDNow(qa.thread_id), qa, ua, va, ra, sa);\n });\n };\n;\n e.exports = ja;\n});\n__d(\"MercuryChatUtils\", [\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\"), h = {\n canOpenChatTab: function(i) {\n var j = ((i.is_canonical && !i.is_canonical_user));\n return ((((i.is_subscribed && !j)) && ((i.canonical_fbid != g.user))));\n }\n };\n e.exports = h;\n});\n__d(\"RenderManager\", [\"function-extensions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"copyProperties\");\n function h(i) {\n this._isDirty = false;\n this._obj = i;\n };\n;\n g(h.prototype, {\n dirty: function() {\n if (!this._isDirty) {\n this._isDirty = true;\n this._doPaint.bind(this).defer();\n }\n ;\n ;\n },\n _doPaint: function() {\n this._isDirty = false;\n this._obj.paint();\n }\n });\n e.exports = h;\n});\n__d(\"CounterDisplay\", [\"Arbiter\",\"CSS\",\"DOM\",\"RenderManager\",\"Run\",\"$\",\"copyProperties\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"RenderManager\"), k = b(\"Run\"), l = b(\"$\"), m = b(\"copyProperties\"), n = b(\"removeFromArray\");\n function o(p, q, r, s, t, u) {\n m(this, {\n _name: p,\n _valueNode: l(q),\n _wrapperNode: ((l(r) || null)),\n _statusClass: t,\n _rm: new j(this),\n _arbiterSubscription: null,\n _count: 0\n });\n var v = this._valueNode.firstChild;\n if (v) {\n var w = parseInt(v.nodeValue, 10);\n if (!isNaN(w)) {\n this._count = w;\n }\n ;\n ;\n }\n ;\n ;\n this._statusNode = ((s ? l(s) : null));\n this._subscribeAll();\n o.instances.push(this);\n if (!u) {\n k.onLeave(this._destroy.bind(this), true);\n }\n ;\n ;\n };\n;\n m(o, {\n EVENT_TYPE_ADJUST: \"CounterDisplay/adjust\",\n EVENT_TYPE_UPDATE: \"CounterDisplay/update\",\n instances: [],\n adjustCount: function(p, q) {\n g.inform(((((o.EVENT_TYPE_ADJUST + \"/\")) + p)), q);\n },\n setCount: function(p, q) {\n g.inform(((((o.EVENT_TYPE_UPDATE + \"/\")) + p)), q);\n }\n });\n m(o.prototype, {\n _destroy: function() {\n delete this._valueNode;\n delete this._wrapperNode;\n if (this._arbiterSubscription) {\n this._arbiterSubscription.unsubscribe();\n delete this._arbiterSubscription;\n }\n ;\n ;\n n(o.instances, this);\n },\n adjustCount: function(p) {\n this._count = Math.max(0, ((this._count + p)));\n this._rm.dirty();\n return this;\n },\n setCount: function(p) {\n this._count = Math.max(0, p);\n this._rm.dirty();\n return this;\n },\n paint: function() {\n i.setContent(this._valueNode, this._count);\n this._toggleNodes();\n },\n _toggleNodes: function() {\n if (this._wrapperNode) {\n h.conditionClass(this._wrapperNode, \"hidden_elem\", ((this._count <= 0)));\n }\n ;\n ;\n if (((this._statusClass && this._statusNode))) {\n h.conditionClass(this._statusNode, this._statusClass, ((this._count > 0)));\n }\n ;\n ;\n },\n _subscribeAll: function() {\n var p = [((((o.EVENT_TYPE_ADJUST + \"/\")) + this._name)),((((o.EVENT_TYPE_UPDATE + \"/\")) + this._name)),];\n this._arbiterSubscription = g.subscribe(p, this._onInform.bind(this), g.SUBSCRIBE_NEW);\n },\n _onInform: function(p, q) {\n q = parseInt(q);\n if (isNaN(q)) {\n return;\n }\n ;\n ;\n if (((p.indexOf(o.EVENT_TYPE_ADJUST) != -1))) {\n this.adjustCount(q);\n }\n else if (((p.indexOf(o.EVENT_TYPE_UPDATE) != -1))) {\n this.setCount(q);\n }\n else return\n \n ;\n return;\n }\n });\n e.exports = o;\n});\n__d(\"CacheStorage\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = {\n memory: k,\n localstorage: i,\n sessionstorage: j\n };\n function i() {\n this._store = a.JSBNG__localStorage;\n };\n;\n i.available = function() {\n try {\n return !!a.JSBNG__localStorage;\n } catch (m) {\n return false;\n };\n ;\n };\n g(i.prototype, {\n keys: function() {\n var m = [];\n for (var n = 0; ((n < this._store.length)); n++) {\n m.push(this._store.key(n));\n ;\n };\n ;\n return m;\n },\n get: function(m) {\n return this._store.getItem(m);\n },\n set: function(m, n) {\n this._store.setItem(m, n);\n },\n remove: function(m) {\n this._store.removeItem(m);\n },\n clear: function() {\n this._store.clear();\n }\n });\n function j() {\n this._store = a.JSBNG__sessionStorage;\n };\n;\n j.available = function() {\n try {\n return !!a.JSBNG__sessionStorage;\n } catch (m) {\n return false;\n };\n ;\n };\n g(j.prototype, {\n keys: function() {\n var m = [];\n for (var n = 0; ((n < this._store.length)); n++) {\n m.push(this._store.key(n));\n ;\n };\n ;\n return m;\n },\n get: function(m) {\n return this._store.getItem(m);\n },\n set: function(m, n) {\n this._store.setItem(m, n);\n },\n remove: function(m) {\n this._store.removeItem(m);\n },\n clear: function() {\n this._store.clear();\n }\n });\n function k() {\n this._store = {\n };\n };\n;\n k.available = function() {\n return true;\n };\n g(k.prototype, {\n keys: function() {\n return Object.keys(this._store);\n },\n get: function(m) {\n if (((this._store[m] === undefined))) {\n return null;\n }\n ;\n ;\n return this._store[m];\n },\n set: function(m, n) {\n this._store[m] = n;\n },\n remove: function(m) {\n if (((m in this._store))) {\n delete this._store[m];\n }\n ;\n ;\n },\n clear: function() {\n this._store = {\n };\n }\n });\n function l(m, n) {\n this._key_prefix = ((n || \"_cs_\"));\n this._magic_prefix = \"_@_\";\n if (((((m == \"AUTO\")) || !m))) {\n {\n var fin203keys = ((window.top.JSBNG_Replay.forInKeys)((h))), fin203i = (0);\n var o;\n for (; (fin203i < fin203keys.length); (fin203i++)) {\n ((o) = (fin203keys[fin203i]));\n {\n var p = h[o];\n if (p.available()) {\n m = o;\n break;\n }\n ;\n ;\n };\n };\n };\n }\n ;\n ;\n if (m) {\n if (((typeof m == \"string\"))) {\n if (((!h[m] || !h[m].available()))) {\n this._backend = new k();\n }\n else this._backend = new h[m]();\n ;\n ;\n }\n else if (((!m.available || !m.available()))) {\n this._backend = new k();\n }\n else this._backend = m;\n \n ;\n }\n ;\n ;\n };\n;\n g(l, {\n getAllStorageTypes: function() {\n return Object.keys(h);\n }\n });\n g(l.prototype, {\n keys: function() {\n var m = [];\n try {\n if (this._backend) {\n var o = this._backend.keys();\n for (var p = 0; ((p < o.length)); p++) {\n if (((o[p].substr(0, this._key_prefix.length) == this._key_prefix))) {\n m.push(o[p].substr(this._key_prefix.length));\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n } catch (n) {\n \n };\n ;\n return m;\n },\n set: function(m, n) {\n if (this._backend) {\n if (((typeof n == \"string\"))) {\n n = ((this._magic_prefix + n));\n }\n else n = JSON.stringify(n);\n ;\n ;\n try {\n this._backend.set(((this._key_prefix + m)), n);\n } catch (o) {\n \n };\n ;\n }\n ;\n ;\n },\n get: function(m, n) {\n var o;\n if (this._backend) {\n try {\n o = this._backend.get(((this._key_prefix + m)));\n } catch (p) {\n o = null;\n };\n ;\n if (((o !== null))) {\n if (((o.substr(0, this._magic_prefix.length) == this._magic_prefix))) {\n o = o.substr(this._magic_prefix.length);\n }\n else try {\n o = JSON.parse(o);\n } catch (q) {\n o = undefined;\n }\n ;\n ;\n }\n else o = undefined;\n ;\n ;\n }\n ;\n ;\n if (((((o === undefined)) && ((n !== undefined))))) {\n o = n;\n if (this._backend) {\n var r;\n if (((typeof o == \"string\"))) {\n r = ((this._magic_prefix + o));\n }\n else r = JSON.stringify(o);\n ;\n ;\n try {\n this._backend.set(((this._key_prefix + m)), r);\n } catch (p) {\n \n };\n ;\n }\n ;\n ;\n }\n ;\n ;\n return o;\n },\n remove: function(m) {\n if (this._backend) {\n try {\n this._backend.remove(((this._key_prefix + m)));\n } catch (n) {\n \n };\n }\n ;\n ;\n }\n });\n e.exports = l;\n});\n__d(\"Badge\", [\"DOM\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"cx\"), i = function(j) {\n var k;\n switch (j) {\n case \"xsmall\":\n k = \"_56_g _58to\";\n break;\n case \"small\":\n k = \"_56_g _56_h\";\n break;\n case \"medium\":\n k = \"_56_g _56_j\";\n break;\n case \"large\":\n k = \"_56_g _56_k\";\n break;\n case \"xlarge\":\n k = \"_56_g _57s-\";\n break;\n };\n ;\n if (k) {\n return g.create(\"span\", {\n className: k\n });\n }\n ;\n ;\n return null;\n };\n e.exports = i;\n});\n__d(\"BasicTypeaheadRenderer\", [\"Badge\",\"DOM\",], function(a, b, c, d, e, f) {\n var g = b(\"Badge\"), h = b(\"DOM\");\n function i(j, k) {\n var l = [];\n if (j.icon) {\n l.push(h.create(\"img\", {\n alt: \"\",\n src: j.icon\n }));\n }\n ;\n ;\n if (j.text) {\n var m = [j.text,];\n if (j.verified) {\n m.push(g(\"xsmall\"));\n }\n ;\n ;\n l.push(h.create(\"span\", {\n className: \"text\"\n }, m));\n }\n ;\n ;\n if (j.subtext) {\n l.push(h.create(\"span\", {\n className: \"subtext\"\n }, [j.subtext,]));\n }\n ;\n ;\n var n = h.create(\"li\", {\n className: ((j.type || \"\"))\n }, l);\n if (j.text) {\n n.setAttribute(\"aria-label\", j.text);\n }\n ;\n ;\n return n;\n };\n;\n i.className = \"basic\";\n e.exports = i;\n});\n__d(\"TypeaheadView\", [\"JSBNG__Event\",\"ArbiterMixin\",\"BasicTypeaheadRenderer\",\"CSS\",\"DOM\",\"Parent\",\"$\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"BasicTypeaheadRenderer\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Parent\"), m = b(\"$\"), n = b(\"copyProperties\"), o = b(\"emptyFunction\");\n function p(q, r) {\n this.element = this.JSBNG__content = m(q);\n this.showBadges = r.showBadges;\n n(this, r);\n };\n;\n n(p.prototype, h, {\n events: [\"highlight\",\"render\",\"reset\",\"select\",\"beforeRender\",\"next\",\"prev\",],\n renderer: i,\n autoSelect: false,\n ignoreMouseover: false,\n init: function() {\n this.init = o;\n this.initializeEvents();\n this.reset();\n },\n initializeEvents: function() {\n g.listen(this.element, {\n mouseup: this.mouseup.bind(this),\n mouseover: this.mouseover.bind(this)\n });\n },\n setTypeahead: function(q) {\n this.typeahead = q;\n },\n setAccessibilityControlElement: function(q) {\n this.accessibilityElement = q;\n },\n getElement: function() {\n return this.element;\n },\n mouseup: function(JSBNG__event) {\n if (((JSBNG__event.button != 2))) {\n this.select(true);\n JSBNG__event.kill();\n }\n ;\n ;\n },\n mouseover: function(JSBNG__event) {\n if (this.ignoreMouseover) {\n this.ignoreMouseover = false;\n return;\n }\n ;\n ;\n if (this.visible) {\n this.highlight(this.getIndex(JSBNG__event));\n }\n ;\n ;\n },\n reset: function(q) {\n if (!q) {\n this.disableAutoSelect = false;\n }\n ;\n ;\n this.justRendered = false;\n this.justShown = false;\n this.index = -1;\n this.items = [];\n this.results = [];\n this.value = \"\";\n this.JSBNG__content.innerHTML = \"\";\n this.inform(\"reset\");\n return this;\n },\n getIndex: function(JSBNG__event) {\n return this.items.indexOf(l.byTag(JSBNG__event.getTarget(), \"li\"));\n },\n JSBNG__getSelection: function() {\n var q = ((this.results[this.index] || null));\n return ((this.visible ? q : null));\n },\n isEmpty: function() {\n return !this.results.length;\n },\n isVisible: function() {\n return this.visible;\n },\n show: function() {\n j.show(this.element);\n if (((this.results && this.results.length))) {\n if (((((this.autoSelect && this.accessibilityElement)) && this.selected))) {\n this.accessibilityElement.setAttribute(\"aria-activedescendant\", k.getID(this.selected));\n }\n ;\n }\n ;\n ;\n ((this.accessibilityElement && this.accessibilityElement.setAttribute(\"aria-expanded\", \"true\")));\n this.visible = true;\n return this;\n },\n hide: function() {\n j.hide(this.element);\n if (this.accessibilityElement) {\n this.accessibilityElement.setAttribute(\"aria-expanded\", \"false\");\n this.accessibilityElement.removeAttribute(\"aria-activedescendant\");\n }\n ;\n ;\n this.visible = false;\n return this;\n },\n render: function(q, r, s) {\n this.value = q;\n if (!r.length) {\n ((this.accessibilityElement && this.accessibilityElement.removeAttribute(\"aria-activedescendant\")));\n this.reset(true);\n return;\n }\n ;\n ;\n this.justRendered = true;\n if (!this.results.length) {\n this.justShown = true;\n }\n ;\n ;\n var t = {\n results: r,\n value: q\n };\n this.inform(\"beforeRender\", t);\n r = t.results;\n var u = this.getDefaultIndex(r);\n if (((((this.index > 0)) && ((this.index !== this.getDefaultIndex(this.results)))))) {\n var v = this.results[this.index];\n for (var w = 0, x = r.length; ((w < x)); ++w) {\n if (((v.uid == r[w].uid))) {\n u = w;\n break;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n this.results = r;\n k.setContent(this.JSBNG__content, this.buildResults(r));\n this.items = this.getItems();\n this.highlight(u, false);\n this.inform(\"render\", r);\n },\n getItems: function() {\n return k.scry(this.JSBNG__content, \"li\");\n },\n buildResults: function(q) {\n var r, s = null;\n if (((typeof this.renderer == \"function\"))) {\n r = this.renderer;\n s = ((this.renderer.className || \"\"));\n }\n else {\n r = a.TypeaheadRenderers[this.renderer];\n s = this.renderer;\n }\n ;\n ;\n r = r.bind(this);\n var t = this.showBadges, u = q.map(function(w, x) {\n if (!t) {\n w.verified = null;\n }\n ;\n ;\n var y = ((w.node || r(w, x)));\n y.setAttribute(\"role\", \"option\");\n return y;\n }), v = k.create(\"ul\", {\n className: s,\n id: ((\"typeahead_list_\" + ((this.typeahead ? k.getID(this.typeahead) : k.getID(this.element)))))\n }, u);\n v.setAttribute(\"role\", \"listbox\");\n return v;\n },\n getDefaultIndex: function(q) {\n var r = ((this.autoSelect && !this.disableAutoSelect));\n return ((((((this.index < 0)) && !r)) ? -1 : 0));\n },\n next: function() {\n this.highlight(((this.index + 1)));\n this.inform(\"next\", this.selected);\n },\n prev: function() {\n this.highlight(((this.index - 1)));\n this.inform(\"prev\", this.selected);\n },\n getItemText: function(q) {\n var r = \"\";\n if (q) {\n r = q.getAttribute(\"aria-label\");\n if (!r) {\n r = k.getText(q);\n q.setAttribute(\"aria-label\", r);\n }\n ;\n ;\n }\n ;\n ;\n return r;\n },\n setIsViewingSelectedItems: function(q) {\n this.viewingSelected = q;\n return this;\n },\n getIsViewingSelectedItems: function() {\n return this.viewingSelected;\n },\n highlight: function(q, r) {\n var s = true;\n if (this.selected) {\n j.removeClass(this.selected, \"selected\");\n this.selected.setAttribute(\"aria-selected\", \"false\");\n }\n ;\n ;\n if (((q > ((this.items.length - 1))))) {\n q = -1;\n }\n else if (((q < -1))) {\n q = ((this.items.length - 1));\n }\n \n ;\n ;\n if (((((q >= 0)) && ((q < this.items.length))))) {\n if (((this.selected && ((this.getItemText(this.items[q]) === this.getItemText(this.selected)))))) {\n s = false;\n }\n ;\n ;\n this.selected = this.items[q];\n j.addClass(this.selected, \"selected\");\n this.selected.setAttribute(\"aria-selected\", \"true\");\n if (this.accessibilityElement) {\n (function() {\n this.accessibilityElement.setAttribute(\"aria-activedescendant\", k.getID(this.selected));\n }).bind(this).defer();\n }\n ;\n ;\n }\n else ((this.accessibilityElement && this.accessibilityElement.removeAttribute(\"aria-activedescendant\")));\n ;\n ;\n this.index = q;\n this.disableAutoSelect = ((q == -1));\n var t = ((q !== -1)), u = this.getItemText(this.selected);\n if (((((((((q !== -1)) && this.isVisible())) && u)) && this.autoSelect))) {\n if (this.justShown) {\n this.justRendered = false;\n this.justShown = false;\n t = false;\n }\n else if (((s && this.justRendered))) {\n this.justRendered = false;\n t = false;\n }\n \n ;\n }\n ;\n ;\n if (((r !== false))) {\n this.inform(\"highlight\", {\n index: q,\n selected: this.results[q],\n element: this.selected\n });\n }\n ;\n ;\n },\n select: function(q) {\n var r = this.index, s = this.results[r], t = this.element.getAttribute(\"id\");\n if (s) {\n this.inform(\"select\", {\n index: r,\n clicked: !!q,\n selected: s,\n id: t,\n query: this.value\n });\n this.inform(\"afterSelect\");\n }\n ;\n ;\n }\n });\n e.exports = p;\n});\n__d(\"BucketedTypeaheadView\", [\"Class\",\"DOM\",\"tx\",\"TypeaheadView\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"tx\"), j = b(\"TypeaheadView\"), k = b(\"copyProperties\");\n function l(m, n) {\n this.parent.construct(this, m, n);\n };\n;\n g.extend(l, j);\n k(l.prototype, {\n render: function(m, n, o) {\n n = this.buildBuckets(m, n);\n return this.parent.render(m, n, o);\n },\n highlight: function(m, n) {\n if (((((m == -1)) && ((this.index !== 0))))) {\n m = this.index;\n }\n ;\n ;\n while (((((((m >= 0)) && ((m < this.items.length)))) && !this.isHighlightable(this.results[m])))) {\n m = ((m + 1));\n ;\n };\n ;\n this.parent.highlight(m, n);\n },\n buildBuckets: function(m, n) {\n if (((((!this.typeObjects || !n)) || !n.length))) {\n return n;\n }\n ;\n ;\n var o = [], p = {\n };\n for (var q = 0; ((q < n.length)); ++q) {\n var r = n[q], s = ((r.render_type || r.type));\n if (!p.hasOwnProperty(s)) {\n p[s] = o.length;\n o.push([this.buildBucketHeader(s),]);\n }\n ;\n ;\n r.classNames = s;\n r.groupIndex = p[s];\n r.indexInGroup = ((o[r.groupIndex].length - 1));\n o[r.groupIndex].push(r);\n };\n ;\n {\n var fin204keys = ((window.top.JSBNG_Replay.forInKeys)((this.typeObjects))), fin204i = (0);\n (0);\n for (; (fin204i < fin204keys.length); (fin204i++)) {\n ((s) = (fin204keys[fin204i]));\n {\n if (((!p.hasOwnProperty(s) && this.typeObjects[s].show_always))) {\n p[s] = o.length;\n o.push([this.buildBucketHeader(s),]);\n r = this.buildNoResultsEntry();\n r.classNames = r.type;\n r.groupIndex = p[s];\n r.indexInGroup = ((o[r.groupIndex].length - 1));\n o[r.groupIndex].push(r);\n }\n ;\n ;\n };\n };\n };\n ;\n var t = [];\n if (this.typeObjectsOrder) {\n for (var u = 0; ((u < this.typeObjectsOrder.length)); ++u) {\n var v = this.typeObjectsOrder[u];\n if (p.hasOwnProperty(v)) {\n t = t.concat(o[p[v]]);\n }\n ;\n ;\n };\n ;\n }\n else for (var w = 0; ((w < o.length)); ++w) {\n t = t.concat(o[w]);\n ;\n }\n ;\n ;\n return t;\n },\n buildNoResultsEntry: function() {\n return {\n uid: \"disabled_result\",\n type: \"disabled_result\",\n text: \"No Results\"\n };\n },\n buildBucketHeader: function(m) {\n var n = this.typeObjects[m];\n if (((n === undefined))) {\n throw new Error(((((m + \" is undefined in \")) + JSON.stringify(this.typeObjects))));\n }\n ;\n ;\n if (n.markup) {\n n.text = n.markup;\n delete n.markup;\n }\n ;\n ;\n return this.typeObjects[m];\n },\n buildResults: function(m) {\n var n = this.parent.buildResults(m);\n if (this.typeObjects) {\n return h.create(\"div\", {\n className: \"bucketed\"\n }, [n,]);\n }\n else return n\n ;\n },\n isHighlightable: function(m) {\n return ((((m.type != \"header\")) && ((m.type != \"disabled_result\"))));\n },\n select: function(m) {\n var n = this.results[this.index];\n if (((n && this.isHighlightable(n)))) {\n this.parent.select(m);\n }\n ;\n ;\n },\n normalizeIndex: function(m) {\n var n = this.results.length;\n if (((n === 0))) {\n return -1;\n }\n else if (((m < -1))) {\n return ((((((m % n)) + n)) + 1));\n }\n else if (((m >= n))) {\n return ((((m % n)) - 1));\n }\n else return m\n \n \n ;\n },\n getDefaultIndex: function(m) {\n var n = ((this.autoSelect && !this.disableAutoSelect));\n if (((((this.index < 0)) && !n))) {\n return -1;\n }\n ;\n ;\n if (((m.length === 0))) {\n return -1;\n }\n ;\n ;\n var o = 0;\n while (((!this.isHighlightable(m) && ((o < m.length))))) {\n o++;\n ;\n };\n ;\n return o;\n },\n prev: function() {\n var m = this.results[this.normalizeIndex(((this.index - 1)))];\n while (((m && !this.isHighlightable(m)))) {\n this.index = this.normalizeIndex(((this.index - 1)));\n m = this.results[this.normalizeIndex(((this.index - 1)))];\n };\n ;\n return this.parent.prev();\n },\n next: function() {\n var m = this.results[this.normalizeIndex(((this.index + 1)))];\n while (((m && !this.isHighlightable(m)))) {\n this.index = this.normalizeIndex(((this.index + 1)));\n m = this.results[this.normalizeIndex(((this.index + 1)))];\n };\n ;\n return this.parent.next();\n }\n });\n e.exports = l;\n});\n__d(\"ContextualTypeaheadView\", [\"BucketedTypeaheadView\",\"CSS\",\"Class\",\"ContextualLayer\",\"ContextualLayerAutoFlip\",\"ContextualLayerHideOnScroll\",\"DOM\",\"DOMDimensions\",\"Style\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"BucketedTypeaheadView\"), h = b(\"CSS\"), i = b(\"Class\"), j = b(\"ContextualLayer\"), k = b(\"ContextualLayerAutoFlip\"), l = b(\"ContextualLayerHideOnScroll\"), m = b(\"DOM\"), n = b(\"DOMDimensions\"), o = b(\"Style\"), p = b(\"copyProperties\");\n function q(r, s) {\n this.parent.construct(this, r, s);\n };\n;\n i.extend(q, g);\n p(q.prototype, {\n init: function() {\n this.initializeLayer();\n this.parent.init();\n },\n initializeLayer: function() {\n this.context = this.getContext();\n this.wrapper = m.create(\"div\");\n m.appendContent(this.wrapper, this.element);\n h.addClass(this.element, \"uiContextualTypeaheadView\");\n this.layer = new j({\n context: this.context,\n position: \"below\",\n alignment: this.alignment,\n causalElement: this.causalElement,\n permanent: true\n }, this.wrapper);\n this.layer.enableBehavior(l);\n if (((o.isFixed(this.context) || this.autoflip))) {\n this.layer.enableBehavior(k);\n }\n ;\n ;\n this.subscribe(\"render\", this.renderLayer.bind(this));\n },\n show: function() {\n if (this.minWidth) {\n o.set(this.wrapper, \"min-width\", ((this.minWidth + \"px\")));\n }\n else if (this.width) {\n o.set(this.wrapper, \"width\", ((this.width + \"px\")));\n }\n else o.set(this.wrapper, \"width\", ((n.getElementDimensions(this.context).width + \"px\")));\n \n ;\n ;\n var r = this.parent.show();\n this.layer.show();\n return r;\n },\n hide: function() {\n this.layer.hide();\n return this.parent.hide();\n },\n renderLayer: function() {\n if (!this.isVisible()) {\n return;\n }\n ;\n ;\n if (this.layer.isShown()) {\n this.layer.updatePosition();\n }\n else this.layer.show();\n ;\n ;\n },\n clearText: function() {\n this.layer.getCausalElement().value = \"\";\n },\n getContext: function() {\n return this.element.parentNode;\n }\n });\n e.exports = q;\n});\n__d(\"DOMClone\", [], function(a, b, c, d, e, f) {\n var g = {\n shallowClone: function(i) {\n return h(i, false);\n },\n deepClone: function(i) {\n return h(i, true);\n }\n };\n function h(i, j) {\n var k = i.cloneNode(j);\n if (((typeof k.__FB_TOKEN !== \"undefined\"))) {\n delete k.__FB_TOKEN;\n }\n ;\n ;\n return k;\n };\n;\n e.exports = g;\n});\n__d(\"Dcode\", [], function(a, b, c, d, e, f) {\n var g, h = {\n }, i = {\n _: \"%\",\n A: \"%2\",\n B: \"000\",\n C: \"%7d\",\n D: \"%7b%22\",\n E: \"%2c%22\",\n F: \"%22%3a\",\n G: \"%2c%22ut%22%3a1\",\n H: \"%2c%22bls%22%3a\",\n I: \"%2c%22n%22%3a%22%\",\n J: \"%22%3a%7b%22i%22%3a0%7d\",\n K: \"%2c%22pt%22%3a0%2c%22vis%22%3a\",\n L: \"%2c%22ch%22%3a%7b%22h%22%3a%22\",\n M: \"%7b%22v%22%3a2%2c%22time%22%3a1\",\n N: \".channel%22%2c%22sub%22%3a%5b\",\n O: \"%2c%22sb%22%3a1%2c%22t%22%3a%5b\",\n P: \"%2c%22ud%22%3a100%2c%22lc%22%3a0\",\n Q: \"%5d%2c%22f%22%3anull%2c%22uct%22%3a\",\n R: \".channel%22%2c%22sub%22%3a%5b1%5d\",\n S: \"%22%2c%22m%22%3a0%7d%2c%7b%22i%22%3a\",\n T: \"%2c%22blc%22%3a1%2c%22snd%22%3a1%2c%22ct%22%3a\",\n U: \"%2c%22blc%22%3a0%2c%22snd%22%3a1%2c%22ct%22%3a\",\n V: \"%2c%22blc%22%3a0%2c%22snd%22%3a0%2c%22ct%22%3a\",\n W: \"%2c%22s%22%3a0%2c%22blo%22%3a0%7d%2c%22bl%22%3a%7b%22ac%22%3a\",\n X: \"%2c%22ri%22%3a0%7d%2c%22state%22%3a%7b%22p%22%3a0%2c%22ut%22%3a1\",\n Y: \"%2c%22pt%22%3a0%2c%22vis%22%3a1%2c%22bls%22%3a0%2c%22blc%22%3a0%2c%22snd%22%3a1%2c%22ct%22%3a\",\n Z: \"%2c%22sb%22%3a1%2c%22t%22%3a%5b%5d%2c%22f%22%3anull%2c%22uct%22%3a0%2c%22s%22%3a0%2c%22blo%22%3a0%7d%2c%22bl%22%3a%7b%22ac%22%3a\"\n };\n (function() {\n var k = [];\n {\n var fin205keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin205i = (0);\n var l;\n for (; (fin205i < fin205keys.length); (fin205i++)) {\n ((l) = (fin205keys[fin205i]));\n {\n h[i[l]] = l;\n k.push(i[l]);\n };\n };\n };\n ;\n k.reverse();\n g = new RegExp(k.join(\"|\"), \"g\");\n })();\n var j = {\n encode: function(k) {\n return encodeURIComponent(k).replace(/([_A-Z])|%../g, function(l, m) {\n return ((m ? ((\"%\" + m.charCodeAt(0).toString(16))) : l));\n }).toLowerCase().replace(g, function(l) {\n return h[l];\n });\n },\n decode: function(k) {\n return decodeURIComponent(k.replace(/[_A-Z]/g, function(l) {\n return i[l];\n }));\n }\n };\n e.exports = j;\n});\n__d(\"FileInput\", [\"JSBNG__Event\",\"ArbiterMixin\",\"DOM\",\"DOMClone\",\"Focus\",\"UserAgent\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"DOM\"), j = b(\"DOMClone\"), k = b(\"Focus\"), l = b(\"UserAgent\"), m = b(\"copyProperties\"), n = b(\"cx\"), o = l.ie();\n function p(q, r, s) {\n this.container = q;\n this.control = r;\n this.input = s;\n var t = i.scry(this.container, \"a\")[0];\n ((t && t.removeAttribute(\"href\")));\n var u = i.create(\"div\", {\n className: \"_3jk\"\n }, this.input);\n i.appendContent(this.control, u);\n this._initListeners();\n };\n;\n m(p.prototype, h, {\n getValue: function() {\n return this.input.value;\n },\n getInput: function() {\n return this.input;\n },\n clear: function() {\n if (o) {\n var q = j.deepClone(this.input);\n i.replace(this.input, q);\n this.input = q;\n while (this._listeners.length) {\n this._listeners.pop().remove();\n ;\n };\n ;\n this._initListeners();\n }\n else {\n this.input.value = \"\";\n this.input.files = null;\n }\n ;\n ;\n },\n _initListeners: function() {\n k.relocate(this.input, this.control);\n this._listeners = [g.listen(this.input, \"change\", this._handleChange.bind(this)),];\n },\n _handleChange: function(JSBNG__event) {\n this.inform(\"change\", JSBNG__event);\n var q = this.input.form;\n if (((q && ((o < 9))))) {\n g.fire(q, \"change\", JSBNG__event);\n }\n ;\n ;\n }\n });\n e.exports = p;\n});\n__d(\"Poller\", [\"ArbiterMixin\",\"AsyncRequest\",\"Cookie\",\"Env\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"Cookie\"), j = b(\"Env\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\");\n function m(p) {\n this._config = k({\n clearOnQuicklingEvents: true,\n setupRequest: l,\n interval: null,\n maxRequests: Infinity,\n dontStart: false\n }, p);\n if (!this._config.dontStart) {\n this.start();\n }\n ;\n ;\n };\n;\n m.MIN_INTERVAL = 2000;\n k(m.prototype, g, {\n start: function() {\n if (this._polling) {\n return this;\n }\n ;\n ;\n this._requests = 0;\n this.request();\n return this;\n },\n JSBNG__stop: function() {\n this._cancelRequest();\n return this;\n },\n mute: function() {\n this._muted = true;\n return this;\n },\n resume: function() {\n if (this._muted) {\n this._muted = false;\n if (((!this._handle && this._polling))) {\n return this.request();\n }\n ;\n ;\n }\n ;\n ;\n return this;\n },\n skip: function() {\n this._skip = true;\n return this;\n },\n reset: function() {\n return this.JSBNG__stop().start();\n },\n request: function() {\n this._cancelRequest();\n this._polling = true;\n if (!o()) {\n return this._done();\n }\n ;\n ;\n if (this._muted) {\n return this;\n }\n ;\n ;\n if (((++this._requests > this._config.maxRequests))) {\n return this._done();\n }\n ;\n ;\n var p = new h(), q = false;\n p.setInitialHandler(function() {\n return !q;\n });\n this._cancelRequest = function() {\n q = true;\n this._cleanup();\n }.bind(this);\n p.setFinallyHandler(n.bind(this));\n p.setInitialHandler = l;\n p.setFinallyHandler = l;\n this._config.setupRequest(p, this);\n if (this._skip) {\n this._skip = false;\n n.bind(this).defer();\n }\n else p.send();\n ;\n ;\n return this;\n },\n isPolling: function() {\n return this._polling;\n },\n isMuted: function() {\n return this._muted;\n },\n JSBNG__setInterval: function(p) {\n if (p) {\n this._config.interval = p;\n this.start();\n }\n ;\n ;\n },\n getInterval: function() {\n return this._config.interval;\n },\n _cleanup: function() {\n if (this._handle) {\n JSBNG__clearTimeout(this._handle);\n }\n ;\n ;\n this._handle = null;\n this._cancelRequest = l;\n this._polling = false;\n },\n _done: function() {\n this._cleanup();\n this.inform(\"done\", {\n sender: this\n });\n return this;\n },\n _config: null,\n _requests: 0,\n _muted: false,\n _polling: false,\n _skip: false,\n _cancelRequest: l\n });\n function n() {\n if (!this._polling) {\n return;\n }\n ;\n ;\n if (((this._requests < this._config.maxRequests))) {\n var p = this._config.interval;\n p = ((((typeof p === \"function\")) ? p(this._requests) : p));\n this._handle = this.request.bind(this).defer(((((p > m.MIN_INTERVAL)) ? p : m.MIN_INTERVAL)), this._config.clearOnQuicklingEvents);\n }\n else this._done();\n ;\n ;\n };\n;\n function o() {\n return ((j.user == i.get(\"c_user\")));\n };\n;\n e.exports = m;\n});\n__d(\"SystemEvents\", [\"Arbiter\",\"Env\",\"ErrorUtils\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Env\"), i = b(\"ErrorUtils\"), j = b(\"UserAgent\"), k = b(\"copyProperties\"), l = new g(), m = [], n = 1000;\n JSBNG__setInterval(function() {\n for (var w = 0; ((w < m.length)); w++) {\n m[w]();\n ;\n };\n ;\n }, n, false);\n function o() {\n return ((((/c_user=(\\d+)/.test(JSBNG__document.cookie) && RegExp.$1)) || 0));\n };\n;\n var p = h.user, q = JSBNG__navigator.onLine;\n function r() {\n if (!q) {\n q = true;\n l.inform(l.ONLINE, q);\n }\n ;\n ;\n };\n;\n function s() {\n if (q) {\n q = false;\n l.inform(l.ONLINE, q);\n }\n ;\n ;\n };\n;\n if (j.ie()) {\n if (((j.ie() >= 8))) {\n window.JSBNG__attachEvent(\"JSBNG__onload\", function() {\n JSBNG__document.body.JSBNG__ononline = r;\n JSBNG__document.body.JSBNG__onoffline = s;\n });\n }\n else m.push(function() {\n ((JSBNG__navigator.onLine ? r : s))();\n });\n ;\n ;\n }\n else if (window.JSBNG__addEventListener) {\n if (!j.chrome()) {\n window.JSBNG__addEventListener(\"online\", r, false);\n window.JSBNG__addEventListener(\"offline\", s, false);\n }\n ;\n }\n \n;\n;\n var t = p;\n m.push(function() {\n var w = o();\n if (((t != w))) {\n l.inform(l.USER, w);\n t = w;\n }\n ;\n ;\n });\n var u = JSBNG__Date.now();\n function v() {\n var w = JSBNG__Date.now(), x = ((w - u)), y = ((((x < 0)) || ((x > 10000))));\n u = w;\n if (y) {\n l.inform(l.TIME_TRAVEL, x);\n }\n ;\n ;\n return y;\n };\n;\n m.push(v);\n m.push(function() {\n if (((window.JSBNG__onerror != i.JSBNG__onerror))) {\n window.JSBNG__onerror = i.JSBNG__onerror;\n }\n ;\n ;\n });\n k(l, {\n USER: \"SystemEvents/USER\",\n ONLINE: \"SystemEvents/ONLINE\",\n TIME_TRAVEL: \"SystemEvents/TIME_TRAVEL\",\n isPageOwner: function(w) {\n return ((((w || o())) == p));\n },\n isOnline: function() {\n return ((j.chrome() || q));\n },\n checkTimeTravel: v\n });\n e.exports = l;\n});\n__d(\"Typeahead\", [\"ArbiterMixin\",\"BehaviorsMixin\",\"DOM\",\"DataStore\",\"JSBNG__Event\",\"Parent\",\"Run\",\"copyProperties\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"BehaviorsMixin\"), i = b(\"DOM\"), j = b(\"DataStore\"), k = b(\"JSBNG__Event\"), l = b(\"Parent\"), m = b(\"Run\"), n = b(\"copyProperties\"), o = b(\"emptyFunction\"), p = b(\"ge\");\n function q(r, s, t, u) {\n this.args = {\n data: r,\n view: s,\n core: t\n };\n j.set(u, \"Typeahead\", this);\n this.element = u;\n };\n;\n q.getInstance = function(r) {\n var s = l.byClass(r, \"uiTypeahead\");\n return ((s ? j.get(s, \"Typeahead\") : null));\n };\n n(q.prototype, g, h, {\n init: function(r) {\n this.init = o;\n this.getCore();\n this.getView().setAccessibilityControlElement(this.getCore().getElement());\n this.proxyEvents();\n this.initBehaviors(((r || [])));\n this.inform(\"init\", this);\n this.data.bootstrap();\n this.core.JSBNG__focus();\n },\n getData: function() {\n if (!this.data) {\n var r = this.args.data;\n this.data = r;\n this.data.init();\n }\n ;\n ;\n return this.data;\n },\n getView: function() {\n if (!this.view) {\n var r = this.args.view, s = ((r.node || p(r.node_id)));\n if (!s) {\n s = i.create(\"div\", {\n className: \"uiTypeaheadView\"\n });\n i.appendContent(this.element, s);\n }\n ;\n ;\n if (((typeof r.ctor === \"string\"))) {\n this.view = new window[r.ctor](s, ((r.options || {\n })));\n }\n else this.view = new r.ctor(s, ((r.options || {\n })));\n ;\n ;\n this.view.init();\n this.view.setTypeahead(this.element);\n }\n ;\n ;\n return this.view;\n },\n getCore: function() {\n if (!this.core) {\n var r = this.args.core;\n if (((typeof r.ctor === \"string\"))) {\n this.core = new window[r.ctor](((r.options || {\n })));\n }\n else this.core = new r.ctor(((r.options || {\n })));\n ;\n ;\n this.core.init(this.getData(), this.getView(), this.getElement());\n }\n ;\n ;\n return this.core;\n },\n getElement: function() {\n return this.element;\n },\n swapData: function(r) {\n var s = this.core;\n this.data = this.args.data = r;\n r.init();\n if (s) {\n s.data = r;\n s.initData();\n s.reset();\n }\n ;\n ;\n r.bootstrap();\n return r;\n },\n proxyEvents: function() {\n [this.data,this.view,this.core,].forEach(function(r) {\n r.subscribe(r.events, this.inform.bind(this));\n }, this);\n },\n initBehaviors: function(r) {\n r.forEach(function(s) {\n if (((typeof s === \"string\"))) {\n if (((a.TypeaheadBehaviors && a.TypeaheadBehaviors[s]))) {\n a.TypeaheadBehaviors[s](this);\n }\n else m.onLoad(function() {\n if (a.TypeaheadBehaviors) {\n ((a.TypeaheadBehaviors[s] || o))(this);\n }\n ;\n ;\n }.bind(this));\n ;\n ;\n }\n else this.enableBehavior(s);\n ;\n ;\n }, this);\n }\n });\n q.initNow = function(r, s, t) {\n if (t) {\n t.init(r);\n }\n ;\n ;\n r.init(s);\n };\n q.init = function(r, s, t, u) {\n if (!i.isNodeOfType(r, [\"input\",\"textarea\",])) {\n r = ((i.scry(r, \"input\")[0] || i.scry(r, \"textarea\")[0]));\n }\n ;\n ;\n var v = false;\n try {\n v = ((JSBNG__document.activeElement === r));\n } catch (w) {\n \n };\n ;\n if (v) {\n q.initNow(s, t, u);\n }\n else var x = k.listen(r, \"JSBNG__focus\", function() {\n q.initNow(s, t, u);\n x.remove();\n })\n ;\n };\n e.exports = q;\n});\n__d(\"TypeaheadCore\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"Focus\",\"Input\",\"InputSelection\",\"Keys\",\"StickyPlaceholderInput\",\"UserAgent\",\"bind\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Focus\"), m = b(\"Input\"), n = b(\"InputSelection\"), o = b(\"Keys\"), p = b(\"StickyPlaceholderInput\"), q = b(\"UserAgent\"), r = b(\"bind\"), s = b(\"copyProperties\"), t = b(\"emptyFunction\");\n function u(v) {\n s(this, v);\n };\n;\n s(u.prototype, i, {\n events: [\"JSBNG__blur\",\"JSBNG__focus\",\"click\",\"unselect\",\"loading\",],\n keepFocused: true,\n resetOnSelect: false,\n resetOnKeyup: true,\n setValueOnSelect: false,\n queryTimeout: 250,\n preventFocusChangeOnTab: false,\n init: function(v, w, x) {\n this.init = t;\n this.data = v;\n this.view = w;\n this.root = x;\n this.initInput();\n this.inputWrap = k.JSBNG__find(x, \"div.wrap\");\n this.hiddenInput = k.JSBNG__find(x, \"input.hiddenInput\");\n this.value = \"\";\n this.nextQuery = null;\n this.selectedText = null;\n if (((this.setValueOnSelect && j.hasClass(this.inputWrap, \"selected\")))) {\n this.selectedText = this.getValue();\n }\n ;\n ;\n this.initView();\n this.initData();\n this.initEvents();\n this.initToggle();\n this._exclusions = [];\n },\n initInput: function() {\n this.element = k.JSBNG__find(this.root, \".textInput\");\n var v = k.scry(this.element, \"input\")[0];\n if (v) {\n this.element = v;\n }\n ;\n ;\n },\n initView: function() {\n this.view.subscribe(\"highlight\", l.set.curry(this.element));\n this.view.subscribe(\"select\", function(v, w) {\n this.select(w.selected);\n }.bind(this));\n this.view.subscribe(\"afterSelect\", function() {\n this.afterSelect();\n }.bind(this));\n },\n initData: function() {\n this.data.subscribe(\"respond\", function(v, w) {\n if (((w.forceDisplay || ((((w.value == this.getValue())) && !this.element.disabled))))) {\n this.view.render(w.value, w.results, w.isAsync);\n }\n ;\n ;\n }.bind(this));\n this.data.subscribe(\"activity\", function(v, w) {\n this.fetching = w.activity;\n if (!this.fetching) {\n ((this.nextQuery && this.performQuery()));\n }\n ;\n ;\n if (((this.loading != this.fetching))) {\n this.loading = this.fetching;\n this.inform(\"loading\", {\n loading: this.loading\n });\n }\n ;\n ;\n }.bind(this));\n },\n initEvents: function() {\n g.listen(this.view.getElement(), {\n mouseup: this.viewMouseup.bind(this),\n mousedown: this.viewMousedown.bind(this)\n });\n var v = {\n JSBNG__blur: r(this, \"JSBNG__blur\"),\n JSBNG__focus: r(this, \"JSBNG__focus\"),\n click: r(this, \"click\"),\n keyup: r(this, \"keyup\"),\n keydown: r(this, \"keydown\")\n };\n if (q.firefox()) {\n v.text = v.keyup;\n }\n ;\n ;\n if (((q.firefox() < 4))) {\n v.keypress = v.keydown;\n delete v.keydown;\n }\n ;\n ;\n g.listen(this.element, v);\n g.listen(this.element, \"keypress\", r(this, \"keypress\"));\n },\n initToggle: function() {\n this.subscribe(\"JSBNG__blur\", this.view.hide.bind(this.view));\n this.subscribe(\"JSBNG__focus\", this.view.show.bind(this.view));\n },\n viewMousedown: function() {\n this.selecting = true;\n },\n viewMouseup: function() {\n this.selecting = false;\n },\n JSBNG__blur: function() {\n if (this.selecting) {\n this.selecting = false;\n return;\n }\n ;\n ;\n this.inform(\"JSBNG__blur\");\n },\n click: function() {\n var v = n.get(this.element);\n if (((v.start == v.end))) {\n this.element.select();\n }\n ;\n ;\n this.inform(\"click\");\n },\n JSBNG__focus: function() {\n this.checkValue();\n this.inform(\"JSBNG__focus\");\n },\n keyup: function() {\n if (((this.resetOnKeyup && !this.getValue()))) {\n this.view.reset();\n }\n ;\n ;\n this.checkValue();\n },\n keydown: function(JSBNG__event) {\n if (((!this.view.isVisible() || this.view.isEmpty()))) {\n this.checkValue.bind(this).defer();\n return;\n }\n ;\n ;\n switch (g.getKeyCode(JSBNG__event)) {\n case o.TAB:\n this.handleTab(JSBNG__event);\n return;\n case o.UP:\n this.view.prev();\n break;\n case o.DOWN:\n this.view.next();\n break;\n case o.ESC:\n this.view.reset();\n break;\n default:\n this.checkValue.bind(this).defer();\n return;\n };\n ;\n JSBNG__event.kill();\n },\n keypress: function(JSBNG__event) {\n if (((this.view.JSBNG__getSelection() && ((g.getKeyCode(JSBNG__event) == o.RETURN))))) {\n this.view.select();\n JSBNG__event.kill();\n }\n ;\n ;\n },\n handleTab: function(JSBNG__event) {\n if (this.preventFocusChangeOnTab) {\n if (this.view.JSBNG__getSelection()) {\n JSBNG__event.kill();\n }\n else JSBNG__event.prevent();\n ;\n }\n ;\n ;\n this.view.select();\n },\n select: function(v) {\n if (((v && this.setValueOnSelect))) {\n this.setValue(v.text);\n this.setHiddenValue(v.uid);\n this.selectedText = v.text;\n j.addClass(this.inputWrap, \"selected\");\n }\n ;\n ;\n },\n afterSelect: function() {\n ((this.keepFocused ? l.set(this.element) : this.element.JSBNG__blur()));\n ((this.resetOnSelect ? this.reset() : this.view.reset()));\n },\n unselect: function() {\n if (this.setValueOnSelect) {\n this.selectedText = null;\n j.removeClass(this.inputWrap, \"selected\");\n }\n ;\n ;\n this.setHiddenValue();\n this.inform(\"unselect\", this);\n },\n setEnabled: function(v) {\n var w = ((v === false));\n this.element.disabled = w;\n j.conditionClass(this.root, \"uiTypeaheadDisabled\", w);\n },\n reset: function() {\n this.unselect();\n this.setValue();\n ((!this.keepFocused && m.reset(this.element)));\n this.view.reset();\n this.inform(\"reset\");\n },\n getElement: function() {\n return this.element;\n },\n setExclusions: function(v) {\n this._exclusions = v;\n },\n getExclusions: function() {\n return this._exclusions;\n },\n setValue: function(v) {\n this.value = this.nextQuery = ((v || \"\"));\n m.setValue(this.element, this.value);\n p.update(this.element);\n },\n setHiddenValue: function(v) {\n this.hiddenInput.value = ((((v || ((v === 0)))) ? v : \"\"));\n h.inform(\"Form/change\", {\n node: this.hiddenInput\n });\n },\n getValue: function() {\n return m.getValue(this.element);\n },\n getHiddenValue: function() {\n return ((this.hiddenInput.value || \"\"));\n },\n checkValue: function() {\n var v = this.getValue();\n if (((v == this.value))) {\n return;\n }\n ;\n ;\n if (((this.selectedText && ((this.selectedText != v))))) {\n this.unselect();\n }\n ;\n ;\n var w = JSBNG__Date.now(), x = ((w - this.time));\n this.time = w;\n this.value = this.nextQuery = v;\n this.performQuery(x);\n },\n performQuery: function(v) {\n if (this.selectedText) {\n return;\n }\n ;\n ;\n v = ((v || 0));\n if (((this.fetching && ((v < this.queryTimeout))))) {\n this.data.query(this.nextQuery, true, this._exclusions, v);\n }\n else {\n this.data.query(this.nextQuery, false, this._exclusions, v);\n this.nextQuery = null;\n }\n ;\n ;\n }\n });\n e.exports = u;\n});\n__d(\"setIntervalAcrossTransitions\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n return JSBNG__setInterval(h, i, false);\n };\n;\n e.exports = g;\n});\n__d(\"PresenceCookieManager\", [\"Cookie\",\"Dcode\",\"ErrorUtils\",\"Env\",\"JSLogger\",\"PresenceUtil\",\"URI\",\"PresenceInitialData\",], function(a, b, c, d, e, f) {\n var g = b(\"Cookie\"), h = b(\"Dcode\"), i = b(\"ErrorUtils\"), j = b(\"Env\"), k = b(\"JSLogger\"), l = b(\"PresenceUtil\"), m = b(\"URI\"), n = b(\"PresenceInitialData\"), o = n.cookieVersion, p = n.dictEncode, q = \"presence\", r = {\n }, s = null, t = null, u = k.create(\"presence_cookie\");\n function v() {\n try {\n var z = g.get(q);\n if (((s !== z))) {\n s = z;\n t = null;\n if (((z && ((z.charAt(0) == \"E\"))))) {\n z = h.decode(z.substring(1));\n }\n ;\n ;\n if (z) {\n t = JSON.parse(z);\n }\n ;\n ;\n }\n ;\n ;\n if (((t && ((!t.user || ((t.user === j.user))))))) {\n return t;\n }\n ;\n ;\n } catch (y) {\n u.warn(\"getcookie_error\");\n };\n ;\n return null;\n };\n;\n function w() {\n return parseInt(((JSBNG__Date.now() / 1000)), 10);\n };\n;\n var x = {\n register: function(y, z) {\n r[y] = z;\n },\n store: function() {\n var y = v();\n if (((((y && y.v)) && ((o < y.v))))) {\n return;\n }\n ;\n ;\n var z = {\n v: o,\n time: w(),\n user: j.user\n };\n {\n var fin206keys = ((window.top.JSBNG_Replay.forInKeys)((r))), fin206i = (0);\n var aa;\n for (; (fin206i < fin206keys.length); (fin206i++)) {\n ((aa) = (fin206keys[fin206i]));\n {\n z[aa] = i.applyWithGuard(r[aa], r, [((y && y[aa])),], function(ea) {\n ea.presence_subcookie = aa;\n });\n ;\n };\n };\n };\n ;\n var ba = JSON.stringify(z);\n if (p) {\n ba = ((\"E\" + h.encode(ba)));\n }\n ;\n ;\n if (l.hasUserCookie()) {\n var ca = ba.length;\n if (((ca > 1024))) {\n u.warn(\"big_cookie\", ca);\n }\n ;\n ;\n var da = ((m.getRequestURI(false).isSecure() && !!g.get(\"csm\")));\n g.set(q, ba, null, null, da);\n }\n ;\n ;\n },\n clear: function() {\n g.clear(q);\n },\n getSubCookie: function(y) {\n var z = v();\n if (!z) {\n return null;\n }\n ;\n ;\n return z[y];\n }\n };\n e.exports = x;\n});\n__d(\"PresenceState\", [\"Arbiter\",\"ErrorUtils\",\"JSLogger\",\"PresenceCookieManager\",\"copyProperties\",\"debounceAcrossTransitions\",\"setIntervalAcrossTransitions\",\"PresenceInitialData\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ErrorUtils\"), i = b(\"JSLogger\"), j = b(\"PresenceCookieManager\"), k = b(\"copyProperties\"), l = b(\"debounceAcrossTransitions\"), m = b(\"setIntervalAcrossTransitions\"), n = b(\"PresenceInitialData\"), o = ((n.cookiePollInterval || 2000)), p = [], q = [], r = null, s = null, t = 0, u = null, v = 0, w = [\"sb2\",\"t2\",\"lm2\",\"uct2\",\"tr\",\"tw\",\"at\",\"wml\",], x = i.create(\"presence_state\");\n function y() {\n return j.getSubCookie(\"state\");\n };\n;\n function z() {\n t = JSBNG__Date.now();\n j.store();\n da(s);\n };\n;\n var aa = l(z, 0);\n function ba(ia) {\n if (((((((((typeof ia == \"undefined\")) || isNaN(ia))) || ((ia == Number.POSITIVE_INFINITY)))) || ((ia == Number.NEGATIVE_INFINITY))))) {\n ia = 0;\n }\n ;\n ;\n return ia;\n };\n;\n function ca(ia) {\n var ja = {\n };\n if (ia) {\n w.forEach(function(ma) {\n ja[ma] = ia[ma];\n });\n if (((t < ia.ut))) {\n x.error(\"new_cookie\", {\n cookie_time: ia.ut,\n local_time: t\n });\n }\n ;\n ;\n }\n ;\n ;\n ja.ut = t;\n for (var ka = 0, la = p.length; ((ka < la)); ka++) {\n h.applyWithGuard(p[ka], null, [ja,]);\n ;\n };\n ;\n s = ja;\n return s;\n };\n;\n function da(ia) {\n v++;\n t = ba(ia.ut);\n if (!r) {\n r = m(ga, o);\n }\n ;\n ;\n s = ia;\n if (((u === null))) {\n u = ia;\n }\n ;\n ;\n for (var ja = 0, ka = q.length; ((ja < ka)); ja++) {\n h.applyWithGuard(q[ja], null, [ia,]);\n ;\n };\n ;\n v--;\n };\n;\n function ea(ia) {\n if (((ia && ia.ut))) {\n if (((t < ia.ut))) {\n return true;\n }\n else if (((ia.ut < t))) {\n x.error(\"old_cookie\", {\n cookie_time: ia.ut,\n local_time: t\n });\n }\n \n ;\n }\n ;\n ;\n return false;\n };\n;\n function fa() {\n var ia = y();\n if (ea(ia)) {\n s = ia;\n }\n ;\n ;\n return s;\n };\n;\n function ga() {\n var ia = y();\n if (ea(ia)) {\n da(ia);\n }\n ;\n ;\n };\n;\n j.register(\"state\", ca);\n g.subscribe(i.DUMP_EVENT, function(ia, ja) {\n ja.presence_state = {\n initial: k({\n }, u),\n state: k({\n }, s),\n update_time: t,\n sync_paused: v,\n poll_time: o\n };\n });\n (function() {\n var ia = fa();\n if (ia) {\n da(ia);\n }\n else {\n x.debug(\"no_cookie_initial\");\n da(ca());\n return;\n }\n ;\n ;\n })();\n var ha = {\n doSync: function(ia) {\n if (v) {\n return;\n }\n ;\n ;\n if (ia) {\n z();\n }\n else aa();\n ;\n ;\n },\n registerStateStorer: function(ia) {\n p.push(ia);\n },\n registerStateLoader: function(ia) {\n q.push(ia);\n },\n get: function() {\n return fa();\n },\n getInitial: function() {\n return u;\n },\n verifyNumber: ba\n };\n e.exports = ha;\n});\n__d(\"TypeaheadBestName\", [\"TypeaheadUtil\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"TypeaheadUtil\"), h = b(\"copyProperties\");\n function i(j) {\n this._typeahead = j;\n };\n;\n i.prototype.enable = function() {\n var j = this._typeahead.getView();\n this._subscription = j.subscribe(\"beforeRender\", function(k, l) {\n var m = l.value;\n for (var n = 0; ((n < l.results.length)); ++n) {\n var o = l.results[n];\n if (((o.alternate_names == null))) {\n continue;\n }\n ;\n ;\n if (g.isQueryMatch(m, o.default_name)) {\n o.text = o.default_name;\n return;\n }\n ;\n ;\n for (var p = 0; ((p < o.alternate_names.length)); p++) {\n if (g.isQueryMatch(m, o.alternate_names[p])) {\n o.text = o.alternate_names[p];\n return;\n }\n ;\n ;\n };\n ;\n o.text = o.default_name;\n };\n ;\n });\n };\n i.prototype.disable = function() {\n this._typeahead.getView().unsubscribe(this._subscription);\n this._subscription = null;\n };\n h(i.prototype, {\n _subscription: null\n });\n e.exports = i;\n});\n__d(\"legacy:BestNameTypeaheadBehavior\", [\"TypeaheadBestName\",], function(a, b, c, d) {\n var e = b(\"TypeaheadBestName\");\n if (!a.TypeaheadBehaviors) {\n a.TypeaheadBehaviors = {\n };\n }\n;\n;\n a.TypeaheadBehaviors.buildBestAvailableNames = function(f) {\n f.enableBehavior(e);\n };\n}, 3);\n__d(\"TypingDetector\", [\"JSBNG__Event\",\"function-extensions\",\"ArbiterMixin\",\"Input\",\"Run\",\"copyProperties\",\"createObjectFrom\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"ArbiterMixin\"), i = b(\"Input\"), j = b(\"Run\"), k = b(\"copyProperties\"), l = b(\"createObjectFrom\"), m = b(\"emptyFunction\");\n function n(o) {\n this._input = o;\n this._ignoreKeys = {\n };\n };\n;\n n.INACTIVE = 0;\n n.TYPING = 1;\n n.QUITTING = 2;\n k(n.prototype, h, {\n _timeout: 7000,\n _currentState: n.INACTIVE,\n init: function() {\n this.init = m;\n this.reset();\n g.listen(this._input, \"keyup\", this._update.bind(this));\n j.onUnload(this._onunload.bind(this));\n },\n reset: function() {\n JSBNG__clearTimeout(this._checkTimer);\n this._checkTimer = null;\n this._lastKeystrokeAt = null;\n this._currentState = n.INACTIVE;\n },\n setIgnoreKeys: function(o) {\n this._ignoreKeys = l(o);\n },\n _onunload: function() {\n if (((this._currentState == n.TYPING))) {\n this._transition(n.QUITTING);\n }\n ;\n ;\n },\n _update: function(JSBNG__event) {\n var o = g.getKeyCode(JSBNG__event), p = this._currentState;\n if (!this._ignoreKeys[o]) {\n if (((i.getValue(this._input).trim().length === 0))) {\n if (((p == n.TYPING))) {\n this._transition(n.INACTIVE);\n }\n ;\n ;\n }\n else if (((p == n.TYPING))) {\n this._recordKeystroke();\n }\n else if (((p == n.INACTIVE))) {\n this._transition(n.TYPING);\n this._recordKeystroke();\n }\n \n \n ;\n }\n ;\n ;\n },\n _transition: function(o) {\n this.reset();\n this._currentState = o;\n this.inform(\"change\", o);\n },\n _recordKeystroke: function() {\n this._lastKeystrokeTime = JSBNG__Date.now();\n if (!this._checkTimer) {\n this._checkTimer = this._checkTyping.bind(this).defer(this._timeout);\n }\n ;\n ;\n },\n _checkTyping: function() {\n var o = ((this._lastKeystrokeTime + this._timeout)), p = JSBNG__Date.now();\n if (((p > o))) {\n this._transition(n.INACTIVE);\n }\n else {\n JSBNG__clearTimeout(this._checkTimer);\n this._checkTimer = this._checkTyping.bind(this).defer(((((o - p)) + 10)));\n }\n ;\n ;\n }\n });\n e.exports = n;\n});\n__d(\"ClearableTypeahead\", [\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = {\n resetOnCloseButtonClick: function(i, j) {\n g.listen(j, \"click\", function() {\n var k = i.getCore();\n k.getElement().JSBNG__focus();\n k.reset();\n });\n }\n };\n e.exports = h;\n});\n__d(\"TypeaheadShowLoadingIndicator\", [\"CSS\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"copyProperties\");\n function i(j) {\n this._typeahead = j;\n };\n;\n h(i.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._typeahead.subscribe(\"loading\", function(j, k) {\n g.conditionClass(this._typeahead.getElement(), \"typeaheadLoading\", k.loading);\n g.conditionClass(this._typeahead.getView().getElement(), \"typeaheadViewLoading\", k.loading);\n }.bind(this));\n },\n disable: function() {\n this._typeahead.unsubscribe(this._subscription);\n this._subscription = null;\n }\n });\n e.exports = i;\n});\n__d(\"legacy:ShowLoadingIndicatorTypeaheadBehavior\", [\"TypeaheadShowLoadingIndicator\",], function(a, b, c, d) {\n var e = b(\"TypeaheadShowLoadingIndicator\");\n if (!a.TypeaheadBehaviors) {\n a.TypeaheadBehaviors = {\n };\n }\n;\n;\n a.TypeaheadBehaviors.showLoadingIndicator = function(f) {\n f.enableBehavior(e);\n };\n}, 3);\n__d(\"CompactTypeaheadRenderer\", [\"Badge\",\"DOM\",\"TypeaheadFacepile\",], function(a, b, c, d, e, f) {\n var g = b(\"Badge\"), h = b(\"DOM\"), i = b(\"TypeaheadFacepile\");\n function j(k, l) {\n var m = [];\n if (k.xhp) {\n return h.create(\"li\", {\n className: \"raw\"\n }, k.xhp);\n }\n ;\n ;\n var n = ((k.photos || k.photo));\n if (n) {\n if (((n instanceof Array))) {\n n = i.render(n);\n }\n else n = h.create(\"img\", {\n alt: \"\",\n src: n\n });\n ;\n ;\n m.push(n);\n }\n ;\n ;\n if (k.text) {\n var o = [k.text,];\n if (k.verified) {\n o.push(g(\"xsmall\"));\n }\n ;\n ;\n m.push(h.create(\"span\", {\n className: \"text\"\n }, o));\n }\n ;\n ;\n var p = k.subtext, q = k.category;\n if (((p || q))) {\n var r = [];\n ((p && r.push(p)));\n ((((p && q)) && r.push(\" \\u00b7 \")));\n ((q && r.push(q)));\n m.push(h.create(\"span\", {\n className: \"subtext\"\n }, r));\n }\n ;\n ;\n var s = h.create(\"li\", {\n className: ((k.type || \"\"))\n }, m);\n if (k.text) {\n s.setAttribute(\"aria-label\", k.text);\n }\n ;\n ;\n return s;\n };\n;\n j.className = \"compact\";\n e.exports = j;\n});\n__d(\"URLMatcher\", [], function(a, b, c, d, e, f) {\n var g = \"!\\\"#%&'()*,-./:;\\u003C\\u003E?@[\\\\]^_`{|}\", h = \"\\u2000-\\u206f\\u00ab\\u00bb\\uff08\\uff09\", i = \"(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\", j = \"(?:(?:ht|f)tps?)://\", k = ((((((((\"(?:(?:\" + i)) + \"[.]){3}\")) + i)) + \")\")), l = \"\\\\[(?:(?:[A-Za-z0-9]{1,4}::?){1,7}[A-Za-z0-9]{1,4})\\\\]\", m = \"(?:\\\\b)www\\\\d{0,3}[.]\", n = ((((((\"[^\\\\s\" + g)) + h)) + \"]\")), o = ((((((((((((\"(?:(?:(?:[.:\\\\-_%@]|\" + n)) + \")*\")) + n)) + \")|\")) + l)) + \")\")), p = \"(?:[.][a-z]{2,4})\", q = \"(?::\\\\d+){0,1}\", r = \"(?=[/?#])\", s = ((((((((((((((((((((((((((((((((((((((((((((((((((((\"(?:\" + \"(?:\")) + j)) + o)) + q)) + \")|\")) + \"(?:\")) + k)) + q)) + \")|\")) + \"(?:\")) + l)) + q)) + \")|\")) + \"(?:\")) + m)) + o)) + p)) + q)) + \")|\")) + \"(?:\")) + o)) + p)) + q)) + r)) + \")\")) + \")\")), t = \"[/#?]\", u = \"\\\\([^\\\\s()\\u003C\\u003E]+\\\\)\", v = \"[^\\\\s()\\u003C\\u003E?#]+\", w = new RegExp(s, \"im\"), x = ((((((((((((((((((((((\"(?:\" + \"(?:\")) + t)) + \")\")) + \"(?:\")) + \"(?:\")) + u)) + \"|\")) + v)) + \")*\")) + \")*\")) + \")*\")), y = new RegExp(((((((((((((((\"(\" + \"(?:\")) + s)) + \")\")) + \"(?:\")) + x)) + \")\")) + \")\")), \"im\"), z = new RegExp(((((((((((((((((((((((((\"(\" + \"(?:\")) + j)) + o)) + q)) + \")|\")) + \"(?:\")) + m)) + o)) + p)) + q)) + \")\")) + \")\"))), aa = /[\\s'\";]/, ba = new RegExp(t, \"im\"), ca = new RegExp(\"[\\\\s!\\\"#%&'()*,-./:;\\u003C\\u003E?@[\\\\]^_`{|}\\u00ab\\u00bb\\u2000-\\u206f\\uff08\\uff09]\", \"im\"), da = new RegExp(\"[\\\\s()\\u003C\\u003E?#]\", \"im\"), ea = new RegExp(\"\\\\s()\\u003C\\u003E\"), fa = function(ma) {\n if (((ma && ((ma.indexOf(\"@\") != -1))))) {\n return (((z.exec(ma)) ? ma : null));\n }\n else return ma\n ;\n }, ga = function(ma) {\n return ha(ma, y);\n }, ha = function(ma, na) {\n var oa = ((((na.exec(ma) || []))[1] || null));\n return fa(oa);\n }, ia = function(ma) {\n return w.exec(ma);\n }, ja = function(ma) {\n return !aa.test(ma.charAt(((ma.length - 1))));\n }, ka = function(ma) {\n var na = w.exec(ma);\n if (!na) {\n return null;\n }\n ;\n ;\n var oa = ma.substr(((na.index + na[0].length)));\n if (((((oa.length === 0)) || !(ba.test(oa[0]))))) {\n return fa(na[0]);\n }\n ;\n ;\n var pa = 0, qa = 0, ra = 1, sa = 0, ta = qa;\n for (var ua = 1; ((ua < oa.length)); ua++) {\n var va = oa[ua];\n if (((ta === qa))) {\n if (((va === \"(\"))) {\n sa = ((sa + 1));\n ta = ra;\n }\n else if (((ba.test(va) || !(ca.test(va))))) {\n pa = ua;\n }\n else if (da.test(va)) {\n break;\n }\n \n \n ;\n ;\n }\n else if (((va === \"(\"))) {\n sa = ((sa + 1));\n }\n else if (((va === \")\"))) {\n sa = ((sa - 1));\n if (((sa === 0))) {\n ta = qa;\n pa = ua;\n }\n ;\n ;\n }\n else if (ea.test(va)) {\n break;\n }\n \n \n \n ;\n ;\n };\n ;\n return fa(((na[0] + oa.substring(0, ((pa + 1))))));\n }, la = {\n };\n la.permissiveMatch = ga;\n la.matchToPattern = ha;\n la.matchHost = ia;\n la.trigger = ja;\n la.match = ka;\n e.exports = la;\n});");
// 2863
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"5dFET\",]);\n}\n;\n;\n__d(\"TickerReadStateTracking\", [\"Style\",\"clickRefAction\",], function(a, b, c, d, e, f) {\n var g = b(\"Style\"), h = b(\"clickRefAction\"), i = 73, j = \"ticker_hover\", k = [];\n function l(n) {\n var o = JSON.parse(n.getAttribute(\"data-ft\"));\n if (!o) {\n return null;\n }\n ;\n ;\n if (o.mf_story_key) {\n return o.mf_story_key;\n }\n ;\n ;\n if (o.fbid) {\n return o.fbid;\n }\n ;\n ;\n return null;\n };\n;\n function m(n) {\n var o = l(n);\n if (((!o || ((o in k))))) {\n return;\n }\n ;\n ;\n k[o] = true;\n var p = {\n evt: i\n };\n h(j, n, null, \"FORCE\", {\n ft: p\n });\n };\n;\n e.exports.log = m;\n});\n__d(\"TickerRightHideController\", [\"CSS\",\"DOM\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DOM\"), i = b(\"ge\");\n function j() {\n \n };\n;\n j._markAsClosedHelper = function(k) {\n var l = i(\"pagelet_reminders\");\n if (l) {\n var m = h.scry(l, \"div.tickerToggleWrapper\")[0];\n if (m) {\n g.conditionClass(m, \"displayedTickerToggleWrapper\", k);\n }\n ;\n ;\n }\n ;\n ;\n var n = i(\"pagelet_moments\");\n if (n) {\n var o = h.scry(n, \"div.tickerToggleWrapper\")[0];\n if (o) {\n g.conditionClass(o, \"displayedTickerToggleWrapper\", k);\n }\n ;\n ;\n }\n ;\n ;\n var p = i(\"pagelet_rhc_ticker\");\n if (p) {\n var q = h.scry(p, \"div.tickerToggleWrapper\")[0];\n if (q) {\n g.conditionClass(q, \"displayedTickerToggleWrapper\", !k);\n }\n ;\n ;\n g.conditionClass(p, \"hidden_rhc_ticker\", k);\n }\n ;\n ;\n };\n j.markAsClosed = function() {\n j._markAsClosedHelper(true);\n };\n j.markAsUnclosed = function() {\n j._markAsClosedHelper(false);\n };\n e.exports = j;\n});\n__d(\"legacy:TickerRightHideController\", [\"TickerRightHideController\",], function(a, b, c, d) {\n a.TickerRightHideController = b(\"TickerRightHideController\");\n}, 3);\n__d(\"TickerController\", [\"JSBNG__Event\",\"Animation\",\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"Bootloader\",\"ChannelConstants\",\"LegacyContextualDialog\",\"CSS\",\"DOM\",\"HTML\",\"JSLogger\",\"Keys\",\"LayerFadeOnHide\",\"LiveTimer\",\"NavigationMessage\",\"Parent\",\"Run\",\"ScrollableArea\",\"SelectorDeprecated\",\"Style\",\"TickerReadStateTracking\",\"Toggler\",\"UIPagelet\",\"URI\",\"UserActivity\",\"UserAgent\",\"Vector\",\"$\",\"clickRefAction\",\"collectDataAttributes\",\"copyProperties\",\"cx\",\"emptyFunction\",\"ge\",\"goURI\",\"throttle\",\"userAction\",\"TickerRHCPageletByGK\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Animation\"), i = b(\"Arbiter\"), j = b(\"AsyncRequest\"), k = b(\"AsyncSignal\"), l = b(\"Bootloader\"), m = b(\"ChannelConstants\"), n = b(\"LegacyContextualDialog\"), o = b(\"CSS\"), p = b(\"DOM\"), q = b(\"HTML\"), r = b(\"JSLogger\"), s = b(\"Keys\"), t = b(\"LayerFadeOnHide\"), u = b(\"LiveTimer\"), v = b(\"NavigationMessage\"), w = b(\"Parent\"), x = b(\"Run\"), y = b(\"ScrollableArea\"), z = b(\"SelectorDeprecated\"), aa = b(\"Style\"), ba = b(\"TickerReadStateTracking\"), ca = b(\"Toggler\"), da = b(\"UIPagelet\"), ea = b(\"URI\"), fa = b(\"UserActivity\"), ga = b(\"UserAgent\"), ha = b(\"Vector\"), ia = b(\"$\"), ja = b(\"clickRefAction\"), ka = b(\"collectDataAttributes\"), la = b(\"copyProperties\"), ma = b(\"cx\"), na = b(\"emptyFunction\"), oa = b(\"ge\"), pa = b(\"goURI\"), qa = b(\"throttle\"), ra = b(\"userAction\"), sa = 1, ta = 2, ua = 3, va = 4, wa = r.create(\"ticker_controller\");\n function xa() {\n \n };\n;\n la(xa, {\n _instances: {\n },\n _activeInstance: null,\n _placeholders: {\n },\n _logPositionChange: false,\n getInstance: function(ya) {\n var za = w.byClass(ia(ya), \"fbFeedTicker\");\n return ((za ? xa._instances[za.id] : null));\n },\n isLoaded: function(ya) {\n var za = xa._placeholders[ya.id];\n return ((!za || ((za.JSBNG__status == ua))));\n },\n show: function(ya, za) {\n za = ((za || na));\n {\n var fin207keys = ((window.top.JSBNG_Replay.forInKeys)((xa._instances))), fin207i = (0);\n var ab;\n for (; (fin207i < fin207keys.length); (fin207i++)) {\n ((ab) = (fin207keys[fin207i]));\n {\n var bb = oa(ab);\n if (((!bb || ((bb.parentNode.id == ya.id))))) {\n continue;\n }\n ;\n ;\n xa.hide(bb.parentNode);\n };\n };\n };\n ;\n xa._doPositionChange(ya);\n o.show(ya);\n var cb = xa._placeholders[ya.id];\n if (((cb && ((cb.JSBNG__status == sa))))) {\n xa._fetchTickerForPlaceholder(ya, za);\n }\n else {\n var db = p.scry(ya, \".fbFeedTicker\")[0], eb = ((db && xa.getInstance(db)));\n xa._activeInstance = eb;\n ((eb && eb._poll()));\n xa._placeholders[ya.id] = {\n JSBNG__status: va,\n callback: za\n };\n za();\n }\n ;\n ;\n },\n _doPositionChange: function(ya) {\n if (((!xa._logPositionChange || o.shown(ya)))) {\n return;\n }\n ;\n ;\n new k(\"/common/ods_endpoint.php\", {\n k: ((\"ticker.render.switch.\" + ya.id))\n }).send();\n },\n hide: function(ya) {\n var za = p.scry(ya, \".fbFeedTicker\")[0], ab = ((za && xa.getInstance(za)));\n ((ab && ab.hideActiveStory()));\n o.hide(ya);\n },\n hideStoriesByClass: function(ya) {\n {\n var fin208keys = ((window.top.JSBNG_Replay.forInKeys)((xa._instances))), fin208i = (0);\n var za;\n for (; (fin208i < fin208keys.length); (fin208i++)) {\n ((za) = (fin208keys[fin208i]));\n {\n p.scry(ia(za), ya).forEach(o.hide);\n ;\n };\n };\n };\n ;\n },\n hideStory: function(ya) {\n var za = ((ya && xa.getInstance(ya)));\n ((za && za.hideStory(ya)));\n },\n undoHideStory: function(ya) {\n var za = ((ya && xa.getInstance(ya)));\n ((za && za.undoHideStory(ya)));\n },\n insertStoriesAtBottom: function(ya) {\n xa._activeInstance.insertStoriesAtBottom(ya);\n },\n _fetchTickerForPlaceholder: function(ya, za) {\n var ab = {\n handler: function() {\n xa._placeholders[ya.id].JSBNG__status = ua;\n za();\n }\n }, bb = b(\"TickerRHCPageletByGK\"), cb = bb.pagelet_name;\n da.loadFromEndpoint(cb, ya.id, xa._placeholders[ya.id].pageletData, ab);\n xa._placeholders[ya.id].JSBNG__status = ta;\n },\n registerStoryDialog: function(ya, za) {\n i.subscribe(\"ticker/init\", function() {\n var ab = oa(ya), bb = ((ab && xa.getInstance(ab)));\n ((bb && bb.registerStoryDialog(ab, za)));\n }, i.SUBSCRIBE_ALL);\n },\n registerPlaceholder: function(ya, za) {\n var ab = xa._placeholders[ya];\n xa._placeholders[ya] = {\n JSBNG__status: sa,\n pageletData: za\n };\n if (((ab && ((ab.JSBNG__status == va))))) {\n xa.show(ia(ya));\n ab.callback();\n }\n ;\n ;\n }\n });\n la(xa.prototype, {\n ADS_IDLE_MS: 300000,\n FLYOUT_MAX_HEIGHT: 450,\n FLYOUT_OFFSET_THRESHOLD: 20,\n FLYOUT_COMMENT_OFFSET: 15,\n FLYOUT_VIEWPORT_PADDING: 75,\n FLYOUT_TARGET_HEIGHT_OFFSET: 25,\n init: function(ya, za, ab) {\n xa._instances[ya.id] = this;\n xa._activeInstance = this;\n this._root = ya;\n this._content = p.JSBNG__find(ya, \".ticker_stream\");\n this._stories = p.JSBNG__find(this._root, \".tickerActivityStories\");\n this._scrollableArea = za;\n this._container = p.JSBNG__find(ya, \"div.uiScrollableAreaWrap\");\n this._newestStory = {\n };\n this._storyIDs = [];\n this._objectIDs = [];\n this._fetchedStories = {\n };\n this._removedStoryIDs = [];\n this._storiesToRemove = [];\n var bb = JSBNG__Date.now();\n this._initTime = bb;\n this._lastUpdate = bb;\n this._lastPull = bb;\n this._lastInsert = bb;\n this._lastCustomStory = 0;\n this._pollOnly = false;\n this._needNonCustomStoryNum = 0;\n this._doCustomUpdate = true;\n this._autoloadStoryIndex = 1;\n this._scrollTopThreshold = 100;\n this._scrollTopPrompt = p.JSBNG__find(this._root, \".scrollTopPrompt\");\n this._scrollTopPromptVisible = false;\n this._maxStoriesToKeep = 50;\n this._minStoriesToKeep = 25;\n this._tickerInSidebarMode = !!w.byClass(this._root, \"fbChatSidebar\");\n this._loadStoriesWithActions();\n ja(\"ticker_flyout\");\n ja(\"ticker_flyout_prefetch\");\n ja(\"ticker_flyout_loadtime\");\n ja(\"ticker_stream\");\n this._ua = {\n flyout: ra(\"ticker\").uai(\"flyout\", \"flyout\", false),\n flyout_prefetch: ra(\"ticker\").uai(\"flyout_prefetch\", \"flyout_prefetch\", false),\n flyout_loadtime: ra(\"ticker\").uai(\"ticker_flyout_loadtime\", \"flyout_loadtime\", false),\n stream: ra(\"ticker\").uai(\"ticker_stream\", \"stream\", false)\n };\n this._uaCurStoryIDFetch = null;\n this._uaCurStoryIDPrefetch = null;\n var cb = p.create(\"div\", {\n className: \"storyQueue hidden_elem\"\n });\n this._storyQueue = cb;\n p.appendContent(this._root, cb);\n this._initObjectIDs();\n this._initConfig(ab);\n this._resetMorePager();\n this._initListeners();\n this._initSubscriptions(ab);\n i.inform(\"ticker/init\", this, i.BEHAVIOR_PERSISTENT);\n this._poll();\n if (this._prefetchAfterLoad) {\n this._logUserEvent(\"stream\", \"prefetch\");\n this._fetchStories(this._getInsertedStories().slice(0, 5));\n }\n ;\n ;\n },\n _loadStoriesWithActions: function() {\n var ya = oa(\"rightCol\");\n if (!ya) {\n return;\n }\n ;\n ;\n this._toggleWrapper = p.scry(ya, \".tickerToggleWrapper\")[0];\n if (this._toggleWrapper) {\n var za = p.scry(this._stories, \".tickerStoryWithButton\");\n this._storiesWithActions = {\n };\n for (var ab = 0; ((ab < za.length)); ab++) {\n var bb = za[ab];\n this._storiesWithActions[bb.getAttribute(\"data-story-key\")] = bb;\n };\n ;\n }\n ;\n ;\n },\n _initConfig: function(ya) {\n la(this, {\n _newest: ya.newest,\n _page_newest: ya.newest,\n _timeout: ya.timeout,\n _heartbeatTimeout: Math.min(5000, ya.heartbeatTimeout),\n _maxHeartbeatTimeout: Math.max(30000, ya.maxHeartbeatTimeout),\n _pullTimeout: Math.max(30000, ya.pullTimeout),\n _insertTimeout: ya.insertTimeout,\n _friendCount: ya.friendCount,\n _maxQueueLength: ya.maxQueueLength,\n _heartbeatEndpoint: ya.heartbeatEndpoint,\n _noPoll: ya.nopoll,\n _maxCustomQueueLength: ya.maxCustomQueueLength,\n _customStoryInsertTimeout: Math.max(5000, ya.customStoryInsertTimeout),\n _nonCustomToCustomStoryRatio: ya.nonCustomToCustomStoryRatio,\n _minForceUpdateInterval: Math.max(ya.insertTimeout, ya.minForceUpdateInterval),\n _popupOnHover: ya.popupOnHover,\n _priorityAppId: ya.priorityAppId,\n _prefetchOnHover: ya.prefetchStoriesOnHover,\n _userIdleTimeout: ya.userIdleTimeout,\n _firstCustomStoryDelay: ya.firstCustomStoryDelay,\n _pollOnly: ya.pollOnly,\n _tickerSource: ya.tickerSource,\n _prefetchAfterLoad: ya.prefetchAfterLoad,\n _logFlyouts: ya.logFlyouts,\n _userScrollGaurdDelay: ya.userScrollGaurdDelay,\n _rescheduleScrollToTopDelay: ya.rescheduleScrollToTopDelay,\n _aggressiveRegulator: ya.aggressiveRegulator\n });\n this._queueCustomStories(ya.customStories);\n },\n _initListeners: function() {\n this._listeners = g.listen(this._root, {\n click: this._handleClick.bind(this),\n keydown: this._handleKeydown.bind(this),\n mouseout: this._handleMouseout.bind(this),\n mouseover: this._handleMouseover.bind(this),\n mousedown: this._tickerDeClicker.bind(this),\n mouseup: this._handleMouseup.bind(this)\n });\n this._listeners.JSBNG__scroll = g.listen(this._container, \"JSBNG__scroll\", this._handleScroll.bind(this));\n this._initInfiniteScrollListener.bind(this).defer();\n },\n _initSubscriptions: function(ya) {\n x.onLeave(this._cleanup.bind(this));\n this._subscriptions = [i.subscribe(v.NAVIGATION_BEGIN, this._onNavHandler.bind(this)),i.subscribe(\"composer/publish\", this._handleComposerPublish.bind(this)),i.subscribe(\"Ticker/storiesInserted\", this._handleStoriesInserted.bind(this)),i.subscribe(\"Ticker/fixed\", this._setFixed.bind(this, true)),i.subscribe(\"Ticker/unfixed\", this._setFixed.bind(this, false)),i.subscribe(\"Ticker/resized\", this._checkInfiniteScroll.bind(this)),i.subscribe(\"ufi/comment\", this._scrollDialogToBottom.bind(this)),i.subscribe(\"Ticker/chatOpened\", this._handleChatOpened.bind(this)),];\n if (!ya.pollOnly) {\n this._subscriptions.push(i.subscribe(m.getArbiterType(\"ticker_update\"), this._handleTickerPush.bind(this)));\n }\n ;\n ;\n if (((ya.pushChannel && !ya.pollOnly))) {\n this.setPushChannel(ya.pushChannel);\n }\n ;\n ;\n },\n _handleClick: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget();\n if (this._getButtonFromNode(ya)) {\n this._logUserAction(ya, \"click\", JSBNG__event);\n this._handleActionButton(JSBNG__event);\n return;\n }\n ;\n ;\n var za = this._getStoryFromNode(ya), ab = w.byClass(ya, \"tickerStoryAllowClick\");\n if (((((!za || ((za == this._selectedStory)))) || ab))) {\n return;\n }\n ;\n ;\n if (this._storyIsHidden(za)) {\n return;\n }\n ;\n ;\n if (((((za == this._activeStory)) && !this._selectedStory))) {\n this._selecting = true;\n }\n ;\n ;\n this._clearNux();\n this._logUserEvent(\"flyout\", \"click\");\n this._logUserEvent(\"flyout_loadtime\", \"open\");\n if (this._storyCanOpenExternally(za)) {\n var bb = za.getAttribute(\"data-href\");\n if (((bb && !ya.getAttribute(\"href\")))) {\n var cb = {\n href: bb\n }, db = ka(ya, [\"ft\",\"gt\",]);\n ja(\"click\", cb, JSBNG__event, \"FORCE\", db);\n ra(\"ticker\", cb, JSBNG__event).uai(\"click\");\n }\n else this._logUserAction(ya, \"click\", JSBNG__event);\n ;\n ;\n this._openStoryExternally(za, JSBNG__event);\n return;\n }\n ;\n ;\n this._logUserAction(ya, \"flyout\", JSBNG__event);\n this._activateStory(za, \"click\");\n this._selectStory(za);\n },\n _handleMouseover: function(JSBNG__event) {\n this._setLocked(true);\n var ya = JSBNG__event.getTarget(), za = this._getOpenableStory(ya);\n if (!za) {\n return;\n }\n ;\n ;\n JSBNG__event.kill();\n if (((this._prefetchOnHover || this._popupOnHover))) {\n if (!((za.id in this._fetchedStories))) {\n this._logUserEvent(\"flyout_prefetch\", \"prefetch_on_hover\");\n this._uaCurStoryIDPrefetch = za.id;\n }\n ;\n ;\n this._fetchStory(za);\n }\n ;\n ;\n if (this._selectedStory) {\n return;\n }\n ;\n ;\n if (this._popupOnHover) {\n this._clearHoverTimeouts();\n var ab = ((this._storyCanOpenExternally(za) ? 500 : 1000)), bb = ((this._activeStory ? 75 : ab));\n this._hoverShowTimeout = this._setTimeout(function() {\n this._logUserEvent(\"flyout\", \"hover\", bb);\n this._logUserEvent(\"flyout_loadtime\", \"open\");\n this._activateStory(za, \"hover\");\n this._logUserAction(ya, \"flyout\", JSBNG__event);\n }.bind(this), bb);\n }\n ;\n ;\n },\n _handleMouseout: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget();\n this._setLocked(false);\n if (((ya == this._getStoryFromNode(ya)))) {\n var za = p.scry(ya.parentNode, \".openToggler\");\n for (var ab = 0; ((ab < za.length)); ab++) {\n z.toggle(za[ab]);\n ;\n };\n ;\n }\n ;\n ;\n this._clearClickedStory();\n this._scheduleHide();\n },\n _handleKeydown: function(JSBNG__event) {\n this._tickerDeClicker(JSBNG__event);\n var ya = this._activeStory;\n if (!ya) {\n return;\n }\n ;\n ;\n var za = g.getKeyCode(JSBNG__event);\n switch (za) {\n case s.UP:\n \n case s.DOWN:\n var ab = this._getInsertedStories(), bb;\n if (JSBNG__event.getModifiers().any) {\n bb = ((((za === s.UP)) ? 0 : ((ab.length - 1))));\n }\n else bb = ((ab.indexOf(ya) + ((((za === s.UP)) ? -1 : 1))));\n ;\n ;\n ya = ab[bb];\n break;\n case s.ESC:\n this._deactivateStory(true);\n return;\n default:\n return;\n };\n ;\n JSBNG__event.kill();\n if (!ya) {\n return;\n }\n ;\n ;\n this._activateStory(ya, \"keypress\");\n this._selectStory(ya);\n },\n _fadeTopmostStoryButton: function() {\n var ya = 0, za = 15;\n if (this._storiesWithActions) {\n {\n var fin209keys = ((window.top.JSBNG_Replay.forInKeys)((this._storiesWithActions))), fin209i = (0);\n var ab;\n for (; (fin209i < fin209keys.length); (fin209i++)) {\n ((ab) = (fin209keys[fin209i]));\n {\n var bb = this._storiesWithActions[ab], cb = p.scry(bb, \".tickerInlineActionButton\")[0], db = p.scry(cb, \".tickerActionIcon\")[0], eb = ((ha.getElementPosition(cb).y - ha.getElementPosition(this._toggleWrapper).y));\n if (((eb < ya))) {\n aa.set(cb, \"opacity\", 0);\n aa.set(db, \"opacity\", 0);\n }\n else if (((((eb >= ya)) && ((eb < za))))) {\n var fb = ((((eb - ya)) / ((za - ya))));\n aa.set(cb, \"opacity\", fb);\n aa.set(db, \"opacity\", fb);\n break;\n }\n else {\n aa.set(cb, \"opacity\", 1);\n aa.set(db, \"opacity\", 1);\n }\n \n ;\n ;\n };\n };\n };\n }\n ;\n ;\n },\n _handleScroll: function() {\n if (!this._preventScrollDismiss) {\n this._deactivateStory(true);\n }\n else this._preventScrollDismiss = false;\n ;\n ;\n if (!this._handleScrollThrottled) {\n this._handleScrollThrottled = qa(this._handleScrollInner.bind(this));\n }\n ;\n ;\n this._handleScrollThrottled();\n },\n _handleScrollInner: function() {\n this._fadeTopmostStoryButton();\n this._checkInfiniteScroll();\n this._setIsUserScrolling();\n if (!this._scrollLogged) {\n this._scrollLogged = true;\n var ya = this._stories.childNodes.length, za = this._stories.getAttribute(\"data-gt\"), ab = {\n ticker_scroll: 1,\n number_stories: ya,\n source: za\n };\n ja(\"JSBNG__scroll\", null, null, \"FORCE\", {\n gt: ab\n });\n ra(\"ticker\").uai(\"JSBNG__scroll\");\n }\n ;\n ;\n },\n _setIsUserScrolling: function() {\n JSBNG__clearTimeout(this._userScrollingToken);\n if (this._isScrolledToTop()) {\n this._userScrolling = false;\n return;\n }\n ;\n ;\n this._userScrolling = true;\n this._userScrollingToken = JSBNG__setTimeout(function() {\n this._userScrolling = false;\n this._userScrollingToken = null;\n }.bind(this), this._userScrollGaurdDelay);\n },\n _isUserScrolling: function() {\n return this._userScrolling;\n },\n _handleStoriesInserted: function() {\n this._initInfiniteScrollListener();\n if (((this._scrollableArea instanceof y))) {\n this._scrollableArea.adjustGripper();\n }\n else wa.error(\"wrong_scrollable_area\", {\n JSBNG__dump: this\n });\n ;\n ;\n this._logUserEvent(\"stream\", \"insert\");\n },\n _handleActionButton: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget(), za = this._getOpenableStory(ya), ab = this._getStoryDialog(za);\n if (ab) {\n var bb = ab.subscribe(\"beforehide\", function() {\n ab.unsubscribe(bb);\n return false;\n });\n }\n ;\n ;\n },\n _handleScrollToTopClick: function() {\n this._scrollToTop(this._poll.bind(this));\n },\n _scheduleScrollToTop: function() {\n ((this._scrollToTopToken && JSBNG__clearTimeout(this._scrollToTopToken)));\n this._scrollToTopToken = JSBNG__setTimeout(function() {\n if (((this._isLocked() || this._isUserScrolling()))) {\n this._scheduleScrollToTop();\n }\n else {\n this._scrollToTopToken = null;\n this._scrollToTop();\n }\n ;\n ;\n }.bind(this), this._rescheduleScrollToTopDelay);\n },\n _scrollToTop: function(ya) {\n new h(this._container).to(\"scrollTop\", 0).ease(h.ease.end).ondone(ya).go();\n },\n _clearHoverTimeouts: function() {\n JSBNG__clearTimeout(this._hoverShowTimeout);\n JSBNG__clearTimeout(this._hoverHideTimeout);\n },\n _getAllStories: function() {\n return p.scry(this._root, \"div.fbFeedTickerStory\");\n },\n _getInsertedStories: function() {\n return this._getAllStories().filter(function(ya) {\n return ((!o.hasClass(ya, \"queuedStory\") && !o.hasClass(ya, \"customStory\")));\n });\n },\n _getQueuedStories: function() {\n return p.scry(this._storyQueue, \".fbFeedTickerStory.queuedStory\");\n },\n _getQueuedCustomStories: function() {\n return p.scry(this._storyQueue, \".fbFeedTickerStory.customStory\");\n },\n _getButtonFromNode: function(ya) {\n return w.byClass(ya, \"tickerInlineOverlay\");\n },\n _getStoryFromNode: function(ya) {\n return w.byClass(ya, \"fbFeedTickerStory\");\n },\n _getActionButtonFromStory: function(ya) {\n return p.scry(ya, \".tickerInlineActionButton\")[0];\n },\n _getOpenableStory: function(ya) {\n var za = this._getStoryFromNode(ya);\n return ((this._storyCanOpenDialog(za) ? za : null));\n },\n _getStoryDialog: function(ya) {\n return n.getInstance(ya);\n },\n _getStoryDialogEndpoint: function(ya) {\n return ((((((ya && ((ya.getAttribute(\"data-rel\") == \"async\")))) && ya.getAttribute(\"data-ajaxify\"))) || null));\n },\n _storyCanOpenDialog: function(ya) {\n return ((!!this._getStoryDialogEndpoint(ya) && !this._storyIsHidden(ya)));\n },\n _storyCanOpenExternally: function(ya) {\n return ((!!ya.getAttribute(\"data-href\") || !this._storyCanOpenDialog(ya)));\n },\n _storyIsHidden: function(ya) {\n return o.hasClass(ya, \"tickerStoryHidden\");\n },\n hideActiveStory: function() {\n ((this._activeStory && this.hideStory(this._activeStory)));\n },\n hideStory: function(ya) {\n this._deactivateStory();\n if (((p.getText(ya) === \"\"))) {\n p.remove(ya);\n }\n ;\n ;\n o.addClass(ya, \"tickerStoryHidden\");\n o.removeClass(ya, \"tickerStoryClickable\");\n },\n undoHideStory: function(ya) {\n o.addClass(ya, \"tickerStoryClickable\");\n o.removeClass(ya, \"tickerStoryHidden\");\n },\n insertStoriesAtBottom: function(ya) {\n if (!ya) {\n return;\n }\n ;\n ;\n var za = p.create(\"div\");\n za.appendChild(ya);\n var ab = p.scry(za, \".fbFeedTickerStory\"), bb = p.JSBNG__find(za, \".tickerMorePager\"), cb = [];\n for (var db = 0; ((db < ab.length)); db++) {\n if (!this.dedupeStory(ab[db])) {\n cb.push(ab[db]);\n }\n ;\n ;\n };\n ;\n if (cb.length) {\n cb.push(bb);\n p.replace(p.JSBNG__find(this._root, \".tickerMorePager\"), cb);\n }\n ;\n ;\n i.inform(\"Ticker/storiesInserted\");\n },\n _scheduleHide: function() {\n if (((this._popupOnHover && !this._selectedStory))) {\n this._clearHoverTimeouts();\n this._hoverHideTimeout = this._setTimeout(this._deactivateStory.bind(this), 100);\n }\n ;\n ;\n },\n _setScrollTopPromptVisible: function(ya) {\n this._scrollTopPromptVisible = ya;\n o.conditionShow(this._scrollTopPrompt, ya);\n if (((ya && !this._listeners.scrollTop))) {\n this._listeners.scrollTop = g.listen(this._scrollTopPrompt, {\n click: this._handleScrollToTopClick.bind(this)\n });\n }\n else if (((!ya && this._listeners.scrollTop))) {\n this._listeners.scrollTop.click.remove();\n this._listeners.scrollTop = null;\n }\n \n ;\n ;\n },\n _isUserIdle: function() {\n return !fa.isActive(this._userIdleTimeout);\n },\n _schedulePoll: function() {\n JSBNG__clearTimeout(this._pollToken);\n this._pollToken = this._setTimeout(this._poll.bind(this), this._timeout);\n },\n _poll: function() {\n if (!this._isTickerVisible()) {\n return;\n }\n ;\n ;\n if (((this._storiesToRemove.length > 0))) {\n if (this._isInsertingStory) {\n return this._schedulePoll();\n }\n ;\n ;\n var ya = this._storiesToRemove.pop();\n this.removeStory(ya);\n }\n ;\n ;\n var za = ((!this._isScrolledToTop() && this._getQueuedStories().length));\n this._setScrollTopPromptVisible(za);\n var ab = JSBNG__Date.now(), bb = ((ab - this._lastInsert));\n if (((((bb < this._insertTimeout)) || this._isLocked()))) {\n return this._schedulePoll();\n }\n ;\n ;\n var cb = this._getQueuedStories(), db = this._getQueuedCustomStories(), eb = this._isUserIdle(), fb = ((cb.length > 0)), gb = ((((((((db.length > 0)) && !eb)) && ((((ab - this._initTime)) > this._firstCustomStoryDelay)))) && ((((this._needNonCustomStoryNum === 0)) || ((!fb && ((((ab - this._lastCustomStory)) > this._customStoryInsertTimeout))))))));\n if (gb) {\n this.insertStory(db.shift());\n this._lastCustomStory = ab;\n this._needNonCustomStoryNum = this._nonCustomToCustomStoryRatio;\n return this._schedulePoll();\n }\n ;\n ;\n if (fb) {\n this.insertStory(cb.shift());\n this._needNonCustomStoryNum--;\n if (((this._needNonCustomStoryNum < 0))) {\n this._needNonCustomStoryNum = 0;\n }\n ;\n ;\n return this._schedulePoll();\n }\n ;\n ;\n if (eb) {\n return fa.subscribeOnce(this._poll.bind(this));\n }\n ;\n ;\n var hb = ((((((((((db.length === 0)) && ((this._needNonCustomStoryNum === 0)))) && ((this._nonCustomToCustomStoryRatio > 0)))) && fa.isActive(this.ADS_IDLE_MS))) && ((((ab - this._lastUpdate)) > this._minForceUpdateInterval)))), ib = false, jb = false;\n if (this._pollOnly) {\n jb = ((((ab - this._lastUpdate)) > this._heartbeatTimeout));\n }\n else ib = ((((ab - this._lastPull)) > this._pullTimeout));\n ;\n ;\n var kb = ((((((hb && this._doCustomUpdate)) || ib)) || jb));\n if (!kb) {\n return this._schedulePoll();\n }\n ;\n ;\n if (hb) {\n this._doCustomUpdate = false;\n }\n ;\n ;\n this.update({\n pull: ib,\n fullpoll: jb,\n needcustomstory: hb\n });\n },\n _updatePollOnlyHeartbeatTimeout: function() {\n if (((this._pollOnly && ((this._heartbeatTimeout < this._maxHeartbeatTimeout))))) {\n this._heartbeatTimeout = Math.min(((this._heartbeatTimeout + 5000)), this._maxHeartbeatTimeout);\n }\n ;\n ;\n },\n update: function(ya) {\n this._updatePollOnlyHeartbeatTimeout();\n if (((this._noPoll && !this._pollOnly))) {\n return this._schedulePoll();\n }\n ;\n ;\n var za = {\n newest: ((((ya.fullpoll || ya.cache_update)) ? this._newest : this._page_newest)),\n storyids: this._storyIDs,\n friendcount: this._friendCount,\n priorityappid: this._priorityAppId,\n source: this._tickerSource,\n needcustomstory: ((this._nonCustomToCustomStoryRatio > 0))\n };\n la(za, ya);\n new j().setURI(this._heartbeatEndpoint).setReadOnly(true).setOption(\"retries\", 0).setData(za).setHandler(this._handleResponse.bind(this)).setFinallyHandler(this._poll.bind(this)).setAllowCrossPageTransition(true).send();\n this._lastUpdate = JSBNG__Date.now();\n if (za.pull) {\n this._lastPull = this._lastUpdate;\n }\n ;\n ;\n this._storyIDs = [];\n },\n insertStory: function(ya, za, ab) {\n this._lastInsert = JSBNG__Date.now();\n ((window.LiveTimer && u.addTimeStamps(ya)));\n o.removeClass(ya, \"queuedStory\");\n o.removeClass(ya, \"customStory\");\n if (((za !== false))) {\n var bb = ((ab ? this._fadeStoryIn : this._flyStoryIn));\n if (this._isUserScrolling()) {\n var cb = function() {\n this._container.scrollTop = ((this._container.scrollTop + this._stories.firstChild.offsetHeight));\n this._scheduleScrollToTop();\n }.bind(this);\n this._fadeStoryIn(ya, cb);\n }\n else this._scrollToTop(bb.bind(this, ya));\n ;\n ;\n }\n else p.prependContent(this._stories, ya);\n ;\n ;\n if (((this._storiesWithActions && o.hasClass(ya, \"tickerStoryWithButton\")))) {\n this._storiesWithActions[ya.getAttribute(\"data-story-key\")] = ya;\n }\n ;\n ;\n this._removeOldStories();\n },\n _removeOldStories: function() {\n var ya = this._getInsertedStories();\n if (((ya.length <= this._maxStoriesToKeep))) {\n return;\n }\n ;\n ;\n var za = this._minStoriesToKeep, ab = ya.slice(za);\n ab.forEach(p.remove);\n if (this._storiesWithActions) {\n for (var bb = 0; ((bb < ab.length)); bb++) {\n delete this._storiesWithActions[ab[bb].getAttribute(\"data-story-key\")];\n ;\n };\n }\n ;\n ;\n this._resetMorePager();\n },\n _resetMorePager: function() {\n var ya = this._getInsertedStories();\n if (((!ya || !ya.length))) {\n return;\n }\n ;\n ;\n var za = ya[((ya.length - 1))].getAttribute(\"data-ticker-timestamp\"), ab = p.scry(this._root, \".tickerMorePager a\")[0];\n if (((!ab || !za))) {\n return;\n }\n ;\n ;\n var bb = new ea(ab.getAttribute(\"ajaxify\"));\n bb.addQueryData({\n oldest: za\n });\n ab.setAttribute(\"ajaxify\", bb);\n },\n _setLocked: function(ya) {\n this._locked = ya;\n },\n _isLocked: function() {\n return !!((this._locked || this._activeStory));\n },\n informAndRemoveStory: function(ya, za, ab) {\n var bb = this._getStoryFromNode(ya), cb = bb.getAttribute(\"data-story-key\");\n p.setContent(bb, za);\n o.addClass(bb, \"highlightedStory\");\n this._setTimeout(this.removeStory.bind(this, cb), ((ab || 6000)));\n },\n _getStoryByStoryKey: function(ya) {\n var za = this._getAllStories();\n for (var ab = 0; ((ab < za.length)); ab++) {\n var bb = za[ab];\n if (((bb.getAttribute(\"data-story-key\") == ya))) {\n return bb;\n }\n ;\n ;\n };\n ;\n return null;\n },\n removeStory: function(ya) {\n this._removedStoryIDs[ya] = true;\n var za = this._getStoryByStoryKey(ya);\n if (!za) {\n return;\n }\n ;\n ;\n if (this._storiesWithActions) {\n delete this._storiesWithActions[ya];\n }\n ;\n ;\n if (((za == this._activeStory))) {\n this._deactivateStory();\n }\n ;\n ;\n var ab = this._getStoryDialog(za);\n ((ab && ab.destroy()));\n if (o.hasClass(za, \"queuedStory\")) {\n p.remove(za);\n return;\n }\n ;\n ;\n this._animateStoryOut(za);\n },\n _isScrolledToTop: function() {\n return ((this._container.scrollTop <= this._scrollTopThreshold));\n },\n _flyStoryIn: function(ya) {\n var za = p.create(\"div\", {\n style: {\n marginTop: \"-1000px\"\n }\n }, ya);\n aa.set(za, \"opacity\", 0);\n p.prependContent(this._stories, za);\n var ab = ha.getElementDimensions(za).y;\n aa.set(za, \"marginTop\", ((((\"-\" + ab)) + \"px\")));\n this._isInsertingStory = true;\n new h(za).to(\"marginTop\", 0).ease(h.ease.end).checkpoint(21801).to(\"opacity\", 1).ondone(function() {\n p.replace(za, ya);\n this._afterInsert(ya);\n this._isInsertingStory = false;\n }.bind(this)).go();\n },\n _fadeStoryIn: function(ya, za) {\n new h(this._stories).to(\"opacity\", 21991).ondone(function() {\n p.prependContent(this._stories, ya);\n if (za) {\n za();\n }\n ;\n ;\n new h(this._stories).to(\"opacity\", 1).ondone(function() {\n this._afterInsert(ya);\n }.bind(this)).go();\n }.bind(this)).go();\n },\n _animateStoryOut: function(ya) {\n var za = p.create(\"div\", {\n style: {\n overflow: \"hidden\",\n position: \"relative\"\n }\n });\n p.insertBefore(ya, za);\n p.appendContent(za, ya);\n new h(za).to(\"JSBNG__top\", 20).to(\"height\", 0).to(\"opacity\", 0).ease(h.ease.end).ondone(function() {\n p.remove(za);\n i.inform(\"Ticker/animateOut\");\n }.bind(this)).go();\n },\n _afterInsert: function(ya) {\n i.inform(\"Ticker/afterInsert\");\n },\n setPushChannel: function(ya) {\n ((this._pushSubscription && this._pushSubscription.unsubscribe()));\n this._pushSubscription = i.subscribe(m.getArbiterType(ya), this._handleTickerPush.bind(this));\n d([\"ChatConfig\",\"ChannelConnection\",], function(za, ab) {\n this._channelConnection = ab;\n this._checkChannelConnection();\n this._channelConnectionSubscription = this._channelConnection.subscribe([this._channelConnection.CONNECTED,this._channelConnection.RECONNECTING,this._channelConnection.SHUTDOWN,this._channelConnection.MUTE_WARNING,this._channelConnection.UNMUTE_WARNING,], this._handleChannelConnection.bind(this));\n }.bind(this));\n },\n _checkChannelConnection: function() {\n o.conditionClass(this._root, \"disconnected\", this._channelConnection.disconnected());\n },\n setCurrentAppId: function(ya) {\n this._priorityAppId = ya;\n },\n _handleTickerPush: function(ya, za) {\n var ab = za.obj;\n if (ab.delete_id) {\n this._storiesToRemove.push(ab.delete_id);\n return;\n }\n ;\n ;\n if (ab.fromups) {\n if (ab.do_logging) {\n this._logDarkLaunch(ab);\n }\n ;\n }\n ;\n ;\n var bb = ab.story_xhp;\n if (!bb) {\n return;\n }\n ;\n ;\n this._newest = ab.story_time;\n var cb = q(bb).getRootNode();\n this.queueStory(cb, ab.flyout_js_cmds);\n if (((this._aggressiveRegulator && ((ab.actor == this._newestStory.actorID))))) {\n this.removeStory(this._newestStory.storyKey);\n new k(\"/common/ods_endpoint.php\", {\n k: \"ticker.aggr.remove\"\n }).send();\n }\n ;\n ;\n this._newestStory = {\n actorID: ab.actor,\n storyKey: cb.getAttribute(\"data-story-key\")\n };\n },\n _handleComposerPublish: function(ya, za) {\n ((za.tickerMarkup && this.insertStory(za.tickerMarkup)));\n },\n _clearNux: function() {\n var ya = p.scry(JSBNG__document.body, \"div.tickerNUXContainer\");\n if (ya.length) {\n ya.forEach(function(za) {\n var ab = n.getInstance(za);\n ((ab && ab.hide()));\n });\n new j().setURI(\"/ajax/feed/ticker/nux.php\").send();\n }\n ;\n ;\n this._clearNux = na;\n },\n _logDarkLaunch: function(ya) {\n var za = {\n actor: ya.actor,\n story_time: ya.story_time,\n key: ya.story_obj_id,\n dark: 1\n };\n new j().setURI(\"/alite/push/log.php\").setData({\n msg: JSON.stringify(za)\n }).send();\n },\n _logRender: function() {\n if (this._loggedRender) {\n return;\n }\n ;\n ;\n var ya = this._tickerInSidebarMode;\n if (((ya || w.byClass(this._content, \"home_right_column\")))) {\n new k(\"/ajax/log_ticker_render.php\", {\n sidebar_mode: ya\n }).send();\n this._loggedRender = true;\n }\n ;\n ;\n },\n _isTickerVisible: function() {\n var ya = ((xa._activeInstance == this));\n ((ya && this._logRender()));\n return ya;\n },\n _handleResponse: function(ya) {\n var za = ya.getPayload();\n if (za.newest) {\n this._newest = this._page_newest = za.newest;\n }\n ;\n ;\n if (za.JSBNG__content) {\n if (((za.JSBNG__content instanceof Array))) {\n for (var ab = 0; ((ab < za.JSBNG__content.length)); ab++) {\n this.queueStoryMarkup(za.JSBNG__content[ab]);\n ;\n };\n ;\n }\n else this.queueStoryMarkup(za.JSBNG__content);\n ;\n }\n ;\n ;\n if (((za.custom_stories && za.custom_stories.length))) {\n this._queueCustomStories(za.custom_stories);\n this._doCustomUpdate = true;\n }\n ;\n ;\n },\n queueStoryMarkup: function(ya) {\n var za = q(ya).getRootNode();\n this.queueStory(za);\n },\n dedupeStory: function(ya) {\n var za = ya.getAttribute(\"data-story-key\"), ab = ((za && ((!!this._objectIDs[za] || !!this._removedStoryIDs[za]))));\n ((za && (this._objectIDs[za] = true)));\n return ab;\n },\n queueStory: function(ya, za) {\n if (this.dedupeStory(ya)) {\n return;\n }\n ;\n ;\n o.addClass(ya, \"queuedStory\");\n p.appendContent(this._storyQueue, ya);\n var ab = ((za && za.length));\n if (ab) {\n za.forEach(function(cb) {\n new Function(cb).apply();\n });\n }\n ;\n ;\n ya.setAttribute(\"id\", ((((ya.id + \"_\")) + this._root.id)));\n var bb = this._getQueuedStories();\n bb.slice(0, -this._maxQueueLength).forEach(p.remove);\n if (ab) {\n this._fetchedStories[ya.id] = true;\n }\n ;\n ;\n },\n _queueCustomStories: function(ya) {\n while (ya.length) {\n var za = ya.shift();\n za = q(za).getRootNode();\n if (this.dedupeStory(za)) {\n continue;\n }\n ;\n ;\n o.addClass(za, \"customStory\");\n p.appendContent(this._storyQueue, za);\n };\n ;\n var ab = this._getQueuedCustomStories();\n ab.slice(0, -this._maxQueueLength).forEach(p.remove);\n },\n _cleanup: function() {\n xa._placeholders.pagelet_rhc_ticker = null;\n if (!w.byClass(this._content, \"hasRightCol\")) {\n return;\n }\n ;\n ;\n this._objectIDs = [];\n this._subscriptions.forEach(i.unsubscribe);\n ((this._channelConnectionSubscription && this._channelConnection.unsubscribe(this._channelConnectionSubscription)));\n ((this._pushSubscription && this._pushSubscription.unsubscribe()));\n {\n var fin210keys = ((window.top.JSBNG_Replay.forInKeys)((this._listeners))), fin210i = (0);\n var ya;\n for (; (fin210i < fin210keys.length); (fin210i++)) {\n ((ya) = (fin210keys[fin210i]));\n {\n ((this._listeners[ya] && this._listeners[ya].remove()));\n ;\n };\n };\n };\n ;\n JSBNG__clearTimeout(this._pollToken);\n this._pollToken = null;\n this._cleanupInputFocusListener();\n this._cleanupContentResizeListener();\n i.inform(\"Ticker/cleanup\");\n },\n _onNavHandler: function(ya, za) {\n var ab = za.params.key;\n if (((((ab != \"lf\")) && ((ab != \"h\"))))) {\n this._cleanup();\n }\n ;\n ;\n },\n _getPositionForDialog: function() {\n if (((this._tickerInSidebarMode && o.hasClass(JSBNG__document.body, \"_58v4\")))) {\n return \"right\";\n }\n ;\n ;\n return \"left\";\n },\n registerStoryDialog: function(ya, za) {\n if (((this._uaCurStoryIDFetch == ya.id))) {\n this._uaCurStoryIDFetch = null;\n this._logUserEvent(\"flyout\", \"fetch_success\");\n }\n ;\n ;\n if (((this._uaCurStoryIDPrefetch == ya.id))) {\n this._uaCurStoryIDPrefetch = null;\n this._logUserEvent(\"flyout_prefetch\", \"prefetch_success\");\n }\n ;\n ;\n this._fetchedStories[ya.id] = true;\n za.setContext(ya);\n za.setPosition(this._getPositionForDialog());\n za.subscribe(\"hide\", this._deactivateStory.bind(this, true));\n za.subscribe(\"success\", this._focusStory.bind(this, ya));\n za.subscribe(\"beforehide\", function() {\n if (this._selecting) {\n this._selecting = false;\n return false;\n }\n ;\n ;\n }.bind(this));\n if (this._popupOnHover) {\n za.subscribe(\"mouseenter\", this._clearHoverTimeouts.bind(this));\n za.subscribe(\"mouseleave\", this._scheduleHide.bind(this));\n za.subscribe(\"show\", function() {\n this._highlightDialogScrollbar.bind(this, za).defer();\n var ab = g.listen(za.getContent(), \"mousedown\", function() {\n this._selectStory(ya);\n ab.remove();\n }.bind(this));\n }.bind(this));\n }\n ;\n ;\n if (((ya == this._activeStory))) {\n this._logUserEvent(\"flyout_loadtime\", \"show_fetched\");\n this._logUserEvent(\"flyout\", \"show\");\n this._openDialog(za);\n }\n ;\n ;\n },\n _highlightDialogScrollbar: function(ya) {\n var za = p.scry(ya.getContent(), \".uiScrollableArea\")[0];\n ((za && y.poke(za)));\n },\n _openStoryExternally: function(ya, JSBNG__event) {\n var za = ya.getAttribute(\"data-href\");\n if (((!za || ((za == \"#\"))))) {\n return;\n }\n ;\n ;\n var ab = ya.getAttribute(\"data-story-rel\");\n switch (ab) {\n case \"theater\":\n this._deactivateAndClearStory();\n l.loadModules([\"PhotoViewer\",], function(db) {\n db.bootstrap(za, ya);\n });\n return;\n case \"async\":\n this._deactivateAndClearStory();\n j.bootstrap(za, ya);\n return;\n };\n ;\n var bb = ya.getAttribute(\"data-target\"), cb = ((((((JSBNG__event.which != 1)) || JSBNG__event.getModifiers().any)) || ((bb == \"_blank\"))));\n ((cb ? window.open(za, \"_blank\") : pa(za)));\n },\n _deactivateAndClearStory: function() {\n this._clearHoverTimeouts();\n this._deactivateStory();\n },\n _focusStoryWillTriggerScroll: function(ya) {\n var za = this._container, ab = za.clientHeight, bb = ya.offsetHeight, cb = za.scrollTop, db = ((cb + ab)), eb = ya.offsetTop, fb = ((eb + bb));\n return ((((eb < cb)) || ((fb > db))));\n },\n _focusStory: function(ya) {\n if (this._focusStoryWillTriggerScroll(ya)) {\n this._preventScrollDismiss = true;\n }\n ;\n ;\n ya.JSBNG__focus();\n },\n _selectStory: function(ya) {\n this._selectedStory = ya;\n o.addClass(ya, \"tickerStorySelected\");\n o.addClass(this._root, \"tickerChildSelected\");\n },\n _activateStory: function(ya, za) {\n this._clearHoverTimeouts();\n if (((((ya == this._activeStory)) || !this._storyCanOpenDialog(ya)))) {\n return;\n }\n ;\n ;\n this._deactivateStory();\n this._focusStory(ya);\n this._activeStory = ya;\n o.addClass(ya, \"tickerStoryActive\");\n ((window.Toggler && ca.hide()));\n if (this._logFlyouts) {\n za = ((za || \"unknown\"));\n new k(\"/ajax/feed/ticker/flyout.php\", {\n src: za\n }).send();\n }\n ;\n ;\n ba.log(ya);\n var ab = this._getStoryDialog(ya);\n if (ab) {\n this._logUserEvent(\"flyout_loadtime\", \"show_prefetched\");\n this._logUserEvent(\"flyout\", \"show\");\n this._openDialog(ab);\n return;\n }\n ;\n ;\n if (!((ya.id in this._fetchedStories))) {\n this._uaCurStoryIDFetch = ya.id;\n this._logUserEvent(\"flyout\", \"fetch\");\n }\n ;\n ;\n this._fetchStory(ya);\n },\n _deactivateStory: function(ya) {\n if (((this._activeStory === this._deactivatingStory))) {\n return;\n }\n ;\n ;\n this._deactivatingStory = this._activeStory;\n if (this._dialog) {\n if (((ya === true))) {\n this._dialog.enableBehavior(t);\n }\n else this._dialog.disableBehavior(t);\n ;\n ;\n this._dialog.hide();\n this._logUserEvent(\"flyout\", \"close\");\n }\n ;\n ;\n if (this._activeStory) {\n o.removeClass(this._activeStory, \"tickerStoryActive\");\n o.removeClass(this._activeStory, \"tickerStorySelected\");\n o.removeClass(this._root, \"tickerChildSelected\");\n }\n ;\n ;\n this._dialog = this._selectedStory = this._activeStory = null;\n this._cleanupInputFocusListener();\n this._cleanupContentResizeListener();\n this._deactivatingStory = null;\n },\n _logUserAction: function(ya, za, JSBNG__event) {\n ja(za, ya, JSBNG__event, \"FORCE\");\n ra(\"ticker\", ya, JSBNG__event).uai(za);\n },\n _logUserEvent: function(ya, JSBNG__event) {\n if (this._ua[ya]) {\n this._ua[ya].add_event(JSBNG__event);\n }\n ;\n ;\n },\n _fetchStory: function(ya) {\n JSBNG__clearTimeout(this._fetchToken);\n var za = [], ab = this._getInsertedStories(), bb = ab.indexOf(ya);\n [-1,0,1,].forEach(function(cb) {\n var db = ab[((bb + cb))];\n ((db && za.push(db)));\n }, this);\n this._fetchToken = JSBNG__setTimeout(this._fetchStories.bind(this, za), 100);\n },\n _fetchStories: function(ya) {\n var za = [], ab, bb = function(cb) {\n JSBNG__clearTimeout(ab);\n ya.forEach(function(db) {\n o.conditionClass(db, \"tickerStoryFetching\", cb);\n });\n };\n ya = ya.filter(function(cb) {\n if (((cb.id in this._fetchedStories))) {\n return false;\n }\n ;\n ;\n this._fetchedStories[cb.id] = true;\n var db = this._getStoryDialogEndpoint(cb), eb = ea(db).getQueryData();\n if (((!db || !eb))) {\n return false;\n }\n ;\n ;\n eb.uniq_id = cb.getAttribute(\"id\");\n eb.referrer = this._tickerSource;\n za.push(eb);\n return true;\n }, this);\n if (!za.length) {\n return;\n }\n ;\n ;\n ab = this._setTimeout(bb.curry(true), 500);\n new j(\"/ajax/feed/ticker/multi_story\").setFinallyHandler(bb.curry(false)).setErrorHandler(na).setData({\n stories: za\n }).setAllowCrossPageTransition(this._tickerInSidebarMode).send();\n },\n _tickerDeClicker: function(JSBNG__event) {\n var ya = JSBNG__event.getTarget(), za = w.byTag(ya, \"a\"), ab = this._getStoryFromNode(ya), bb = this._getButtonFromNode(ya);\n if (((((((((((ab && za)) && !bb)) && o.hasClass(ab, \"tickerStoryClickable\"))) && !o.hasClass(za, \"tickerStoryAllowClick\"))) && !this._storyIsHidden(ab)))) {\n za.setAttribute(\"rel\", \"ignore\");\n za.removeAttribute(\"JSBNG__onclick\");\n za.removeAttribute(\"ajaxify\");\n za.removeAttribute(\"href\");\n }\n ;\n ;\n var cb = ((JSBNG__event.button == 2)), db = ((JSBNG__event.type === \"keydown\")), eb = ((ab && this._getActionButtonFromStory(ab)));\n if (((((!cb && eb)) && !db))) {\n this._setClickedStory(ab);\n }\n ;\n ;\n },\n _handleMouseup: function(JSBNG__event) {\n this._clearClickedStory();\n },\n _setClickedStory: function(ya) {\n this._clearClickedStory();\n o.addClass(ya, \"tickerStoryClicked\");\n this._clickedStory = ya;\n },\n _clearClickedStory: function() {\n if (this._clickedStory) {\n o.removeClass(this._clickedStory, \"tickerStoryClicked\");\n this._clickedStory = null;\n }\n ;\n ;\n },\n _initInfiniteScrollListener: function() {\n var ya = this._getInsertedStories();\n if (this._storiesWithActions) {\n for (var za = 0; ((za < ya.length)); za++) {\n var ab = ya[za];\n if (o.hasClass(ab, \"tickerStoryWithButton\")) {\n this._storiesWithActions[ab.getAttribute(\"data-story-key\")] = ab;\n }\n ;\n ;\n };\n }\n ;\n ;\n var bb = Math.max(0, ((ya.length - this._autoloadStoryIndex)));\n this._infiniteScrollStory = ya[bb];\n this._checkInfiniteScroll();\n },\n _checkInfiniteScroll: function() {\n if (this._infiniteScrollStory) {\n var ya = ha.getElementPosition(this._infiniteScrollStory).y, za = ((ha.getElementPosition(this._container).y + ha.getElementDimensions(this._container).y));\n if (((ya < za))) {\n var ab = p.scry(this._root, \".tickerMorePager a\")[0];\n if (ab) {\n var bb = ((w.byClass(ab, \"stat_elem\") || ab));\n new j(ab.getAttribute(\"ajaxify\")).setReadOnly(true).setRelativeTo(ab).setStatusElement(bb).setAllowCrossPageTransition(true).send();\n this._logUserEvent(\"stream\", \"JSBNG__scroll\");\n }\n ;\n ;\n this._infiniteScrollStory = null;\n this._autoloadStoryIndex = 5;\n }\n ;\n ;\n }\n ;\n ;\n },\n _setFixed: function(ya) {\n if (!this._selectedStory) {\n return;\n }\n ;\n ;\n var za = this._getStoryDialog(this._selectedStory);\n if (za) {\n za.setPosition(this._getPositionForDialog());\n za.setFixed(ya);\n za.updatePosition();\n }\n ;\n ;\n },\n _setTimeout: function(ya, za) {\n return JSBNG__setTimeout(ya, za, !this._tickerInSidebarMode);\n },\n _scrollDialogToBottom: function() {\n var ya = ((this._dialog && this._dialog.getContent())), za = ((ya && p.scry(ya, \".uiScrollableAreaWrap\")[0])), ab = ((za && y.getInstance(za)));\n ((ab && ab.scrollToBottom()));\n },\n _openDialog: function(ya) {\n if (!this._tickerInSidebarMode) {\n o.addClass(ya.getRoot(), \"tickerStoryOverlayOnTop\");\n }\n ;\n ;\n this._dialog = ya.show();\n this._updateDialogPosition();\n this._writeSwfFrame(ya);\n this._initCommentFocusListener.bind(this).defer();\n this._initContentResizeListener.bind(this).defer();\n this._stupidIE7VideoResizeHack(ya);\n },\n _stupidIE7VideoResizeHack: function(ya) {\n if (((ga.ie() === 7))) {\n var za = p.scry(ya.getContent(), \".uiVideoThumb .img\");\n za.forEach(function(ab) {\n aa.set(ab, \"width\", \"\");\n });\n }\n ;\n ;\n },\n _updateDialogPosition: function() {\n var ya = ((this._tickerInSidebarMode || !!w.byClass(this._root, \"fixed_elem\")));\n this._dialog.setPosition(this._getPositionForDialog());\n this._dialog.setFixed(ya);\n this._adjustFlyoutContentHeight();\n this._dialog.updatePosition();\n },\n _writeSwfFrame: function(ya) {\n var za = ((this._dialog && this._dialog.getContent())), ab = p.scry(za, \".swfObject\")[0];\n if (!ab) {\n return;\n }\n ;\n ;\n var bb = ab.getAttribute(\"data-swfid\");\n if (((bb && window[bb]))) {\n var cb = window[bb];\n cb.write(ab);\n }\n ;\n ;\n },\n _initCommentFocusListener: function() {\n var ya = ((this._dialog && this._dialog.getContent())), za = ((ya && p.scry(ya, \".tickerDialogFooter textarea\")[0]));\n if (!za) {\n return;\n }\n ;\n ;\n this._listeners.inputFocus = g.listen(za, \"JSBNG__focus\", this._scrollDialogToBottom.bind(this));\n },\n _cleanupInputFocusListener: function() {\n if (this._listeners.inputFocus) {\n this._listeners.inputFocus.remove();\n this._listeners.inputFocus = null;\n }\n ;\n ;\n },\n _initContentResizeListener: function() {\n var ya = ((this._dialog && this._dialog.getContent()));\n if (!ya) {\n return;\n }\n ;\n ;\n this._listeners.contentResize = g.listen(ya, \"click\", function() {\n this._dialog.updatePosition.bind(this._dialog).defer();\n }.bind(this));\n },\n _cleanupContentResizeListener: function() {\n if (this._listeners.contentResize) {\n this._listeners.contentResize.remove();\n this._listeners.contentResize = null;\n }\n ;\n ;\n },\n _adjustFlyoutContentHeight: function() {\n var ya = ((this._dialog && this._dialog.getContent())), za = ((ya && p.scry(ya, \".uiScrollableAreaWrap\")[0]));\n if (!za) {\n return;\n }\n ;\n ;\n var ab = ha.getElementDimensions(za), bb = ha.getElementPosition(za), cb = p.scry(za, \".uiUfi .uiUfiComment\"), db = ((ha.getViewportDimensions().y - this.FLYOUT_VIEWPORT_PADDING)), eb = Math.min(this.FLYOUT_MAX_HEIGHT, db), fb = ((eb - this.FLYOUT_TARGET_HEIGHT_OFFSET));\n for (var gb = 0; ((gb < cb.length)); gb++) {\n var hb = cb[gb], ib = ha.getElementPosition(hb), jb = ((ib.y - bb.y));\n if (((Math.abs(((jb - fb))) <= this.FLYOUT_OFFSET_THRESHOLD))) {\n fb = ((jb + this.FLYOUT_COMMENT_OFFSET));\n break;\n }\n ;\n ;\n };\n ;\n if (((ab.y > fb))) {\n aa.set(za, \"height\", ((fb + \"px\")));\n aa.set(za, \"max-height\", null);\n }\n else {\n aa.set(za, \"max-height\", ((eb + \"px\")));\n aa.set(za, \"height\", null);\n }\n ;\n ;\n },\n _initObjectIDs: function() {\n var ya = this._getAllStories();\n for (var za = 0; ((za < ya.length)); ++za) {\n var ab = ya[za].getAttribute(\"data-story-key\");\n ((ab && (this._objectIDs[ab] = true)));\n };\n ;\n },\n _handleChatOpened: function() {\n this._deactivateStory(true);\n },\n _handleChannelConnection: function() {\n this._checkChannelConnection();\n },\n getNewest: function() {\n return this._newest;\n }\n });\n e.exports = xa;\n});\n__d(\"legacy:TickerController\", [\"TickerController\",], function(a, b, c, d) {\n a.TickerController = b(\"TickerController\");\n}, 3);\n__d(\"HomeTickerFirstRightColumnController\", [\"$\",\"ge\",\"debounceAcrossTransitions\",\"throttle\",\"UIPagelet\",\"Arbiter\",\"Style\",\"csx\",\"CSS\",\"DOM\",\"Vector\",\"Run\",\"LegacyContextualDialog\",\"TickerController\",\"UIIntentionalStreamMessage\",\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n var g = b(\"$\"), h = b(\"ge\"), i = b(\"debounceAcrossTransitions\"), j = b(\"throttle\"), k = b(\"UIPagelet\"), l = b(\"Arbiter\"), m = b(\"Style\"), n = b(\"csx\"), o = b(\"CSS\"), p = b(\"DOM\"), q = b(\"Vector\"), r = b(\"Run\"), s = b(\"LegacyContextualDialog\"), t = b(\"TickerController\"), u = b(\"UIIntentionalStreamMessage\"), v = b(\"JSBNG__Event\"), w = null, x = 75, y = 50, z = 15, aa = false, ba = false, ca, da, ea, fa, ga, ha, ia, ja, ka, la = y, ma = [], na = [], oa, pa, qa, ra, sa, ta, ua, va, wa, xa, ya, za, ab;\n function bb() {\n var sb = ob;\n function tb() {\n sb.defer();\n };\n ;\n var ub = p.scry(ra, \"img.img\");\n ub.forEach(function(vb) {\n if (!vb.complete) {\n v.listen(vb, {\n load: tb,\n error: tb,\n abort: tb\n });\n }\n ;\n ;\n });\n tb();\n };\n;\n function cb() {\n na = [l.subscribe(\"page_transition\", fb),l.subscribe(\"netego_loaded\", ob),l.subscribe(\"Ticker/storiesInserted\", ob),l.subscribe(u.INSERT_STORIES, ob),];\n if (w.enableSidebar) {\n na.push(l.subscribe(\"sidebar/hide\", pb));\n na.push(l.subscribe(\"sidebar/show\", qb));\n }\n ;\n ;\n };\n;\n function db() {\n if (ra) {\n var sb = p.scry(ra, \"div._4u8\");\n for (var tb = 0; ((tb < sb.length)); tb++) {\n var ub = JSON.parse(sb[tb].getAttribute(\"data-ad\")).segment;\n if (((ub === \"premium\"))) {\n return true;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n return false;\n };\n;\n function eb() {\n ab = p.scry(JSBNG__document, \"div.fbRemindersContent\");\n va = p.scry(h(\"rightCol\"), \"div.home_right_column\")[0];\n wa = p.JSBNG__find(va, \"div.rightColumnWrapper\");\n ra = ((h(\"pagelet_ego_pane_w\") || h(\"pagelet_ego_pane_m\")));\n fa = !db();\n v.listen(ra, \"mouseenter\", function() {\n aa = true;\n });\n v.listen(ra, \"mouseleave\", function() {\n aa = false;\n });\n sa = h(\"pagelet_rhc_ticker\");\n if (!sa) {\n return false;\n }\n ;\n ;\n ta = p.scry(sa, \".ticker_container\")[0];\n ua = p.scry(sa, \".ticker_stream\")[0];\n return ((ta && ua));\n };\n;\n function fb(sb, tb) {\n if (((((((sb === \"page_transition\")) && tb)) && tb.uri))) {\n var ub = tb.uri;\n if (((ub.path === \"/photo.php\"))) {\n ba = true;\n return;\n }\n ;\n ;\n if (((ba && ((ub.path === \"/\"))))) {\n ba = false;\n return;\n }\n ;\n ;\n }\n ;\n ;\n na.forEach(l.unsubscribe);\n na = [];\n ma.forEach(function(vb) {\n vb.remove();\n });\n ma = [];\n oa.reset();\n };\n;\n function gb() {\n if (((ja || !ca))) {\n ka = ((q.getElementPosition(ra, \"viewport\").y - q.getElementPosition(wa, \"viewport\").y));\n }\n ;\n ;\n };\n;\n function hb() {\n gb();\n var sb = la;\n lb();\n if (((sb != la))) {\n ja = true;\n mb();\n }\n ;\n ;\n za = ((xa + q.getElementPosition(qa, \"viewport\").y));\n var tb = za, ub = q.getElementPosition(va, \"viewport\").y;\n for (var vb = 0; ((vb < ab.length)); vb++) {\n var wb = s.getInstance(ab[vb]);\n wb.hide();\n };\n ;\n if (((da || !ua))) {\n if (((ia !== null))) {\n var xb = ((ub + ka)), yb = ((xb <= ((tb - ia))));\n if (((ja || ((yb !== ca))))) {\n ja = false;\n var zb = ((((tb - ia)) - ka));\n nb(yb, zb);\n }\n ;\n ;\n }\n ;\n ;\n return;\n }\n ;\n ;\n var ac = ((ub <= ((tb + z))));\n if (((ac !== ca))) {\n nb(ac);\n }\n ;\n ;\n };\n;\n function ib() {\n var sb = JSBNG__Date.now();\n if (((((((fa && !aa)) && w.adsRefreshInterval)) && ((((sb - ga)) >= w.adsRefreshInterval))))) {\n jb();\n }\n ;\n ;\n };\n;\n function jb() {\n ga = JSBNG__Date.now();\n k.loadFromEndpoint(\"WebEgoPane\", ra, {\n pid: 27,\n data: {\n organic_only: false,\n ads_only: false,\n refresh_num: ++ha\n }\n }, {\n bundle: false,\n crossPage: false,\n handler: bb\n });\n };\n;\n function kb() {\n ja = true;\n gb();\n lb();\n mb();\n hb();\n };\n;\n function lb() {\n var sb = ((q.getDocumentDimensions().y - ((q.getScrollPosition(\"JSBNG__document\").y + q.getViewportDimensions().y))));\n la = ((((sb > ya)) ? y : x));\n };\n;\n function mb() {\n var sb = ((((q.getViewportDimensions().y - xa)) - la)), tb = q.getElementDimensions(wa).y;\n if (((tb <= sb))) {\n ia = ((((0 - ka)) - z));\n return;\n }\n ;\n ;\n var ub = ((tb - ka)), vb = p.scry(ra, \"div.egoOrganicColumn\")[0];\n if (((((ub <= sb)) && vb))) {\n ia = 0;\n }\n else {\n var wb = p.scry(ra, \"div.ego_unit\").reverse(), xb = p.scry(ra, \"div._4u8\").length, yb = w.maxFixedAds;\n if (((xb <= w.maxFixedAds))) {\n yb = wb.length;\n }\n ;\n ;\n var zb = null;\n for (var ac = 0; ((ac < yb)); ac++) {\n var bc = wb[ac], cc = ((q.getElementPosition(bc, \"viewport\").y - q.getElementPosition(wa, \"viewport\").y)), dc = ((q.getElementDimensions(wa).y - cc));\n if (((dc > sb))) {\n if (((ac > 0))) {\n zb = wb[((ac - 1))];\n }\n ;\n ;\n break;\n }\n ;\n ;\n if (((ac == ((yb - 1))))) {\n zb = bc;\n }\n ;\n ;\n };\n ;\n if (((zb == null))) {\n ia = null;\n }\n else ia = ((q.getElementPosition(zb, \"viewport\").y - q.getElementPosition(ra, \"viewport\").y));\n ;\n ;\n }\n ;\n ;\n };\n;\n function nb(sb, tb) {\n ca = sb;\n tb = ((tb || za));\n var ub = ((sb ? ((tb + \"px\")) : \"\"));\n m.set(wa, \"JSBNG__top\", ub);\n o.conditionClass(wa, \"fixed_elem\", sb);\n var vb = p.scry(wa, \"div.displayedTickerToggleWrapper\")[0];\n ((vb && o.conditionClass(vb, \"toggleWrapperWithoutMargin\", ((sb && !ua)))));\n if (ea) {\n var wb = ((sb ? \"Ticker/fixed\" : \"Ticker/unfixed\"));\n l.inform(wb);\n }\n ;\n ;\n };\n;\n function ob() {\n if (((((!ea || !ua)) || o.hasClass(JSBNG__document.documentElement, \"tinyViewport\")))) {\n kb();\n return;\n }\n ;\n ;\n hb();\n var sb = q.getViewportDimensions().y, tb = 61, ub = ((q.getElementDimensions(wa).y - q.getElementDimensions(ta).y)), vb = q.getElementDimensions(ua).y, wb = ((((((((sb - ub)) - x)) - za)) - tb)), xb = ((w.tickerAbsMinHeight || 120)), yb = ((w.tickerMinHeight || 225));\n da = false;\n if (((wb < xb))) {\n da = true;\n nb(false);\n wb = xb;\n }\n else if (((wb < yb))) {\n if (((wb > ((yb - tb))))) {\n wb = yb;\n }\n else wb += tb;\n ;\n }\n \n ;\n ;\n var zb = Math.min(wb, vb, ((w.tickerMaxHeight || 425)));\n m.set(ta, \"height\", ((zb + \"px\")));\n };\n;\n function pb() {\n ea = true;\n eb();\n var sb = function() {\n if (eb()) {\n da = false;\n hb();\n ob();\n }\n ;\n ;\n };\n ((sa && t.show(sa, sb)));\n };\n;\n function qb() {\n ea = false;\n eb();\n kb();\n ((sa && t.hide(sa)));\n };\n;\n var rb = {\n init: function(sb) {\n w = sb;\n pa = g(\"contentCol\");\n qa = g(\"blueBar\");\n ha = 0;\n ga = Infinity;\n ga = JSBNG__Date.now();\n oa = i(ib, w.adsRefreshDelay);\n if (w.adsRefreshOnmove) {\n ma.push(v.listen(window, \"mousemove\", oa));\n }\n ;\n ;\n ma.push(v.listen(window, \"JSBNG__scroll\", oa));\n ma.push(v.listen(window, \"resize\", oa));\n ma.push(v.listen(window, \"resize\", j(ob)));\n xa = q.getElementDimensions(qa).y;\n ya = q.getElementDimensions(g(\"pageFooter\")).y;\n eb();\n cb();\n r.onLeave(fb);\n ma.push(v.listen(window, \"JSBNG__scroll\", j(hb)));\n if (!o.hasClass(JSBNG__document.documentElement, \"sidebarMode\")) {\n pb();\n }\n else if (w.enableSidebar) {\n qb();\n }\n \n ;\n ;\n bb();\n }\n };\n e.exports = rb;\n});\n__d(\"AsyncLayout\", [\"AjaxPipeRequest\",\"Arbiter\",\"AsyncRequest\",\"AsyncResponse\",\"CSS\",\"DOM\",\"HTML\",\"NavigationMessage\",\"PageTransitions\",\"URI\",\"$\",\"copyProperties\",\"emptyFunction\",\"ge\",\"goURI\",], function(a, b, c, d, e, f) {\n var g = b(\"AjaxPipeRequest\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"AsyncResponse\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"HTML\"), n = b(\"NavigationMessage\"), o = b(\"PageTransitions\"), p = b(\"URI\"), q = b(\"$\"), r = b(\"copyProperties\"), s = b(\"emptyFunction\"), t = b(\"ge\"), u = b(\"goURI\");\n function v(w) {\n this.canvasID = w;\n if (t(\"rightCol\")) {\n this.auxiliaryID = \"rightCol\";\n }\n ;\n ;\n if (t(\"headerArea\")) {\n this.headerID = \"headerArea\";\n }\n ;\n ;\n if (t(\"toolbarContainer\")) {\n this.toolbarID = \"toolbarContainer\";\n }\n ;\n ;\n this.waitingForAux = false;\n o.registerHandler(this.catchPageTransition.bind(this));\n this.subscription = h.subscribe(n.NAVIGATION_BEGIN, this.onNavigate.bind(this));\n };\n;\n r(v.prototype, {\n catchPageTransition: function(w) {\n this.subscription.unsubscribe();\n return false;\n },\n getCanvasID: function(w) {\n return ((w.sidecol ? \"contentCol\" : \"contentArea\"));\n },\n onNavigate: function(w, x) {\n var y = x.useAjaxPipe;\n x = x.params;\n if (x.endpoint) {\n if (this.request) {\n this.request.setFinallyHandler(s);\n this.request.abort();\n }\n ;\n ;\n if (this.sideRequest) {\n this.sideRequest.abort();\n }\n ;\n ;\n if (y) {\n this.request = new g().setURI(x.endpoint).setData(x).setCanvasId(this.getCanvasID(x)).setFinallyHandler(this.finallyHandler.bind(this)).setErrorHandler(this.errorHandler.bind(this)).setFirstResponseCallback(this.firstResponseCallback.bind(this)).send();\n }\n else {\n x.handled = true;\n this.waitingForAux = x.sidecol;\n var z = !!x.iframe, aa = new i().setOption(\"useIframeTransport\", z).setURI(new p(x.endpoint)).setReadOnly(true).setMethod(\"GET\").setData(x).setHandler(this.onResponse.bind(this)).setErrorHandler(this.errorHandler.bind(this)).setFinallyHandler(this.finallyHandler.bind(this));\n this.request = aa;\n aa.send();\n }\n ;\n ;\n }\n ;\n ;\n },\n onSideResponse: function(w) {\n var x = w.getPayload();\n if (((x && this.auxiliaryID))) {\n this.receivedAux(x);\n }\n ;\n ;\n },\n receivedAux: function(w) {\n !this.waitingForAux;\n this.waitingForAux = false;\n l.setContent(q(this.auxiliaryID), m(w));\n },\n onResponse: function(w) {\n var x = w.getPayload();\n if (x.redirect) {\n u(x.redirect);\n }\n else {\n var y = ((x.html || x));\n l.setContent(q(this.canvasID), m(y));\n if (((x.side_html && this.auxiliaryID))) {\n this.receivedAux(x.side_html);\n }\n ;\n ;\n if (((this.headerID && !x.keep_header))) {\n var z = q(this.headerID);\n l.setContent(z, m(((x.header_html || \"\"))));\n k.conditionShow(z, x.header_html);\n }\n ;\n ;\n if (((x.toolbar_html && this.toolbarID))) {\n l.setContent(q(this.toolbarID), m(x.toolbar_html));\n }\n ;\n ;\n if (x.js) {\n (new Function(x.js))();\n }\n ;\n ;\n k.conditionClass(\"contentCol\", \"hasRightCol\", ((this.auxiliaryID && !x.noRightSide)));\n var aa = t(\"rightCol\");\n if (((aa && x.noRightSide))) {\n l.empty(aa);\n }\n ;\n ;\n }\n ;\n ;\n var ba = w.getRequest().getData();\n h.inform(n.NAVIGATION_COMPLETED, ba.key);\n },\n errorHandler: function(w) {\n j.verboseErrorHandler(w);\n h.inform(n.NAVIGATION_FAILED);\n this.request = null;\n },\n firstResponseCallback: function(w) {\n window.JSBNG__scrollTo(0, 0);\n h.inform(n.NAVIGATION_FIRST_RESPONSE);\n },\n finallyHandler: function(w) {\n this.request = null;\n o.transitionComplete(true);\n h.inform(n.NAVIGATION_COMPLETED);\n }\n });\n e.exports = v;\n});\n__d(\"legacy:adware-scanner\", [\"AdwareScaner\",], function(a, b, c, d) {\n a.AdwareScaner = b(\"AdwareScaner\");\n}, 3);");
// 2864
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"u//Ut\",]);\n}\n;\n;\n__d(\"MercuryAPIArgsSource\", [], function(a, b, c, d, e, f) {\n e.exports = {\n JEWEL: \"jewel\",\n CHAT: \"chat\",\n MERCURY: \"mercury\",\n WEBMESSENGER: \"web_messenger\"\n };\n});\n__d(\"MercuryActionStatus\", [], function(a, b, c, d, e, f) {\n e.exports = {\n UNCONFIRMED: 3,\n UNSENT: 0,\n RESENDING: 7,\n RESENT: 6,\n UNABLE_TO_CONFIRM: 5,\n FAILED_UNKNOWN_REASON: 4,\n SUCCESS: 1,\n ERROR: 10\n };\n});\n__d(\"MercuryActionTypeConstants\", [], function(a, b, c, d, e, f) {\n e.exports = {\n LOG_MESSAGE: \"ma-type:log-message\",\n CLEAR_CHAT: \"ma-type:clear_chat\",\n UPDATE_ACTION_ID: \"ma-type:update-action-id\",\n DELETE_MESSAGES: \"ma-type:delete-messages\",\n CHANGE_FOLDER: \"ma-type:change-folder\",\n SEND_MESSAGE: \"ma-type:send-message\",\n CHANGE_ARCHIVED_STATUS: \"ma-type:change-archived-status\",\n DELETE_THREAD: \"ma-type:delete-thread\",\n USER_GENERATED_MESSAGE: \"ma-type:user-generated-message\",\n CHANGE_READ_STATUS: \"ma-type:change_read_status\",\n CHANGE_MUTE_SETTINGS: \"ma-type:change-mute-settings\"\n };\n});\n__d(\"MercuryAttachmentContentType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n UNKNOWN: \"attach:unknown\",\n PHOTO: \"attach:image\",\n VIDEO: \"attach:video\",\n MSWORD: \"attach:ms:word\",\n VOICE: \"attach:voice\",\n MSPPT: \"attach:ms:ppt\",\n TEXT: \"attach:text\",\n MUSIC: \"attach:music\",\n MSXLS: \"attach:ms:xls\"\n };\n});\n__d(\"MercuryAttachmentType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n STICKER: \"sticker\",\n PHOTO: \"photo\",\n FILE: \"file\",\n SHARE: \"share\",\n ERROR: \"error\"\n };\n});\n__d(\"MercuryErrorType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n SERVER: 1,\n TRANSPORT: 2,\n TIMEOUT: 3\n };\n});\n__d(\"MercuryGenericConstants\", [], function(a, b, c, d, e, f) {\n e.exports = {\n PENDING_THREAD_ID: \"pending:pending\"\n };\n});\n__d(\"MercuryGlobalActionType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n MARK_ALL_READ: \"mga-type:mark-all-read\"\n };\n});\n__d(\"MercuryLogMessageType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n SERVER_ERROR: \"log:error-msg\",\n UNSUBSCRIBE: \"log:unsubscribe\",\n JOINABLE_JOINED: \"log:joinable-joined\",\n JOINABLE_CREATED: \"log:joinable-created\",\n LIVE_LISTEN: \"log:live-listen\",\n PHONE_CALL: \"log:phone-call\",\n THREAD_IMAGE: \"log:thread-image\",\n THREAD_NAME: \"log:thread-name\",\n VIDEO_CALL: \"log:video-call\",\n SUBSCRIBE: \"log:subscribe\"\n };\n});\n__d(\"MercuryMessageSourceTags\", [], function(a, b, c, d, e, f) {\n e.exports = {\n CHAT: \"source:chat\",\n MOBILE: \"source:mobile\",\n MESSENGER: \"source:messenger\",\n EMAIL: \"source:email\"\n };\n});\n__d(\"MercuryParticipantTypes\", [], function(a, b, c, d, e, f) {\n e.exports = {\n FRIEND: \"friend\",\n USER: \"user\",\n THREAD: \"thread\",\n EVENT: \"JSBNG__event\",\n PAGE: \"page\"\n };\n});\n__d(\"MercuryPayloadSource\", [], function(a, b, c, d, e, f) {\n e.exports = {\n SERVER_INITIAL_DATA: \"server_initial_data\",\n CLIENT_DELETE_THREAD: \"client_delete_thread\",\n SERVER_ZAP: \"server_zap\",\n SERVER_SAVE_DRAFT: \"server_save_draft\",\n SERVER_CHANGE_ARCHIVED_STATUS: \"server_change_archived_status\",\n SERVER_SEARCH: \"server_search\",\n CLIENT_CHANGE_MUTE_SETTINGS: \"client_change_mute_settings\",\n SERVER_UNREAD_THREADS: \"server_unread_threads\",\n SERVER_MARK_SEEN: \"server_mark_seen\",\n SERVER_THREAD_SYNC: \"server_thread_sync\",\n CLIENT_DELETE_MESSAGES: \"client_delete_messages\",\n SERVER_FETCH_THREADLIST_INFO: \"server_fetch_threadlist_info\",\n CLIENT_CHANNEL_MESSAGE: \"client_channel_message\",\n CLIENT_CHANGE_FOLDER: \"client_change_folder\",\n CLIENT_CHANGE_READ_STATUS: \"client_change_read_status\",\n CLIENT_CLEAR_CHAT: \"client_clear_chat\",\n SERVER_FETCH_THREAD_INFO: \"server_fetch_thread_info\",\n SERVER_CHANGE_READ_STATUS: \"server_change_read_status\",\n SERVER_SEND_MESSAGE: \"server_send_message\",\n CLIENT_SAVE_DRAFT: \"client_save_draft\",\n UNKNOWN: \"unknown\",\n SERVER_MARK_FOLDER_READ: \"server_mark_folder_read\",\n SERVER_CONFIRM_MESSAGES: \"server_confirm_messages\",\n SERVER_TAB_PRESENCE: \"server_tab_presence\",\n CLIENT_CHANGE_ARCHIVED_STATUS: \"client_change-archived_status\",\n CLIENT_SEND_MESSAGE: \"client_send_message\",\n CLIENT_HANDLE_ERROR: \"client_handle_error\"\n };\n});\n__d(\"MercurySourceType\", [], function(a, b, c, d, e, f) {\n e.exports = {\n GIGABOXX_BLAST: \"source:gigaboxx:blast\",\n TITAN_FACEWEB_BUFFY: \"source:titan:faceweb_buffy\",\n TITAN_FACEWEB_UNKNOWN: \"source:titan:faceweb_unknown\",\n CHAT_WEB: \"source:chat:web\",\n WEBRTC_MOBILE: \"source:webrtc:mobile\",\n GIGABOXX_API: \"source:gigaboxx:api\",\n TITAN_M_JAPAN: \"source:titan:m_japan\",\n BUFFY_SMS: \"source:buffy:sms\",\n SEND_PLUGIN: \"source:sendplugin\",\n CHAT_MEEBO: \"source:chat:meebo\",\n TITAN_FACEWEB_IPAD: \"source:titan:faceweb_ipad\",\n TITAN_FACEWEB_IPHONE: \"source:titan:faceweb_iphone\",\n TEST: \"source:test\",\n WEB: \"source:web\",\n SOCIALFOX: \"source:socialfox\",\n EMAIL: \"source:email\",\n TITAN_API: \"source:titan:api\",\n GIGABOXX_WEB: \"source:gigaboxx:web\",\n DESKTOP: \"source:desktop\",\n TITAN_FACEWEB_ANDROID: \"source:titan:faceweb_android\",\n LEIA: \"source:leia\",\n CHAT_JABBER: \"source:chat:jabber\",\n CHAT_TEST: \"source:chat:test\",\n SHARE_DIALOG: \"source:share:dialog\",\n GIGABOXX_WAP: \"source:gigaboxx:wap\",\n CHAT: \"source:chat\",\n TITAN_M_APP: \"source:titan:m_app\",\n TITAN_M_TOUCH: \"source:titan:m_touch\",\n TITAN_ORCA: \"source:titan:orca\",\n TITAN_WAP: \"source:titan:wap\",\n TITAN_EMAIL_REPLY: \"source:titan:emailreply\",\n CHAT_IPHONE: \"source:chat:iphone\",\n SMS: \"source:sms\",\n TITAN_M_BASIC: \"source:titan:m_basic\",\n TITAN_M_MINI: \"source:titan:m_mini\",\n GIGABOXX_MOBILE: \"source:gigaboxx:mobile\",\n UNKNOWN: \"source:unknown\",\n TITAN_WEB: \"source:titan:web\",\n TITAN_M_ZERO: \"source:titan:m_zero\",\n MOBILE: \"source:mobile\",\n PAID_PROMOTION: \"source:paid_promotion\",\n TITAN_API_MOBILE: \"source:titan:api_mobile\",\n HELPCENTER: \"source:helpcenter\",\n GIGABOXX_EMAIL_REPLY: \"source:gigaboxx:emailreply\",\n CHAT_ORCA: \"source:chat:orca\",\n TITAN_M_TALK: \"source:titan:m_talk\",\n NEW_SHARE_DIALOG: \"source:share:dialog:new\"\n };\n});\n__d(\"MercuryThreadMode\", [], function(a, b, c, d, e, f) {\n e.exports = {\n EMAIL_ORIGINATED: 1,\n OBJECT_ORIGINATED: 3,\n TITAN_ORIGINATED: 2\n };\n});\n__d(\"MercuryTimePassed\", [], function(a, b, c, d, e, f) {\n e.exports = {\n TODAY: 0,\n WEEK_AGO: 1,\n CURRENT_YEAR: 3,\n OTHER_YEAR: 4,\n MONTH_AGO: 2\n };\n});\n__d(\"MessagingEvent\", [], function(a, b, c, d, e, f) {\n e.exports = {\n UNSUBSCRIBE: \"unsubscribe\",\n DELIVERY_RECEIPT: \"delivery_receipt\",\n REPORT_SPAM_MESSAGES: \"report_spam_messages\",\n DELIVER_FAST_PAST: \"deliver_fast_path\",\n DELETE_MESSAGES: \"delete_messages\",\n READ_RECEIPT: \"read_receipt\",\n SENT_PUSH: \"sent_push\",\n READ: \"read\",\n CHANGE_MUTE_SETTINGS: \"change_mute_settings\",\n ERROR: \"error\",\n UNMARK_SPAM: \"unmark_spam\",\n UNREAD: \"unread\",\n DELIVER_LOG: \"deliver_log\",\n DELIVER: \"deliver\",\n READ_ALL: \"read_all\",\n TAG: \"tag\",\n MORE_THREADS: \"more_threads\",\n DELETE: \"delete\",\n REPORT_SPAM: \"report_spam\",\n SUBSCRIBE: \"subscribe\"\n };\n});\n__d(\"MessagingTag\", [], function(a, b, c, d, e, f) {\n e.exports = {\n MTA_SYSTEM_MESSAGE: \"MTA:system_message\",\n SENT: \"sent\",\n INBOX: \"inbox\",\n SMS_TAG_ROOT: \"SMSShortcode:\",\n UPDATES: \"broadcasts_inbox\",\n OTHER: \"other\",\n GROUPS: \"groups\",\n FILTERED_CONTENT: \"filtered_content\",\n ACTION_ARCHIVED: \"action:archived\",\n UNREAD: \"unread\",\n BCC: \"header:bcc\",\n SMS_MUTE: \"sms_mute\",\n ARCHIVED: \"archived\",\n DOMAIN_AUTH_PASS: \"MTA:dmarc:pass\",\n EVENT: \"JSBNG__event\",\n VOICEMAIL: \"voicemail\",\n DOMAIN_AUTH_FAIL: \"MTA:dmarc:fail\",\n SPAM_SPOOFING: \"spam:spoofing\",\n SPOOF_WARNING: \"MTA:spoof_warning\",\n SPAM: \"spam\",\n EMAIL_MESSAGE: \"source:email\",\n EMAIL: \"email\",\n APP_ID_ROOT: \"app_id:\"\n };\n});\n__d(\"AvailableListConstants\", [], function(a, b, c, d, e, f) {\n var g = {\n ON_AVAILABILITY_CHANGED: \"buddylist/availability-changed\",\n ON_UPDATE_ERROR: \"buddylist/update-error\",\n ON_UPDATED: \"buddylist/updated\",\n ON_CHAT_NOTIFICATION_CHANGED: \"chat-notification-changed\",\n OFFLINE: 0,\n IDLE: 1,\n ACTIVE: 2,\n MOBILE: 3,\n LEGACY_OVERLAY_OFFLINE: -1,\n LEGACY_OVERLAY_ONLINE: 0,\n LEGACY_OVERLAY_IDLE: 1,\n legacyStatusMap: {\n 0: 2,\n 1: 1,\n \"-1\": 0,\n 2: 3\n },\n reverseLegacyStatusMap: {\n 0: -1,\n 1: 1,\n 2: 0,\n 3: 2\n }\n };\n a.AvailableListConstants = e.exports = g;\n});\n__d(\"PresenceUtil\", [\"Cookie\",\"Env\",\"randomInt\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Cookie\"), h = b(\"Env\"), i = b(\"randomInt\"), j = b(\"tx\"), k = ((i(0, 4294967295) + 1)), l = {\n checkMaintenanceError: function(m) {\n if (((m.getError() == 1356007))) {\n return true;\n }\n ;\n ;\n return false;\n },\n getErrorDescription: function(m) {\n var n = m.getError(), o = m.getErrorDescription();\n if (!o) {\n o = \"An error occurred.\";\n }\n ;\n ;\n if (((n == 1357001))) {\n o = \"Your session has timed out. Please log in.\";\n }\n ;\n ;\n return o;\n },\n getSessionID: function() {\n return k;\n },\n hasUserCookie: function() {\n return ((h.user === g.get(\"c_user\")));\n }\n };\n e.exports = l;\n});\n__d(\"PresencePrivacy\", [\"hasArrayNature\",\"Arbiter\",\"AsyncRequest\",\"ChannelConstants\",\"copyProperties\",\"Env\",\"JSLogger\",\"PresenceUtil\",\"PresencePrivacyInitialData\",], function(a, b, c, d, e, f) {\n var g = b(\"hasArrayNature\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"ChannelConstants\"), k = b(\"copyProperties\"), l = b(\"Env\"), m = b(\"JSLogger\"), n = b(\"PresenceUtil\"), o = b(\"PresencePrivacyInitialData\"), p = \"/ajax/chat/privacy/settings.php\", q = \"/ajax/chat/privacy/online_policy.php\", r = \"/ajax/chat/privacy/visibility.php\", s = \"friend_visibility\", t = \"visibility\", u = \"online_policy\", v = k({\n }, o.privacyData), w = o.visibility, x = k({\n }, o.privacyData), y = w, z = o.onlinePolicy, aa = z, ba = [], ca = false;\n function da() {\n return m.create(\"blackbird\");\n };\n;\n var ea = k(new h(), {\n WHITELISTED: 1,\n BLACKLISTED: -1,\n UNLISTED: 0,\n ONLINE: 1,\n OFFLINE: 0,\n ONLINE_TO_WHITELIST: 0,\n ONLINE_TO_BLACKLIST: 1\n });\n function fa(ra) {\n var sa;\n {\n var fin211keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin211i = (0);\n (0);\n for (; (fin211i < fin211keys.length); (fin211i++)) {\n ((sa) = (fin211keys[fin211i]));\n {\n var ta = ra[sa];\n if (((sa == l.user))) {\n da().error(\"set_viewer_visibility\");\n throw new Error(\"Invalid to set current user's visibility\");\n }\n ;\n ;\n switch (ta) {\n case ea.WHITELISTED:\n \n case ea.BLACKLISTED:\n \n case ea.UNLISTED:\n break;\n default:\n da().error(\"set_invalid_friend_visibility\", {\n id: sa,\n value: ta\n });\n throw new Error(((\"Invalid state: \" + ta)));\n };\n ;\n };\n };\n };\n ;\n {\n var fin212keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin212i = (0);\n (0);\n for (; (fin212i < fin212keys.length); (fin212i++)) {\n ((sa) = (fin212keys[fin212i]));\n {\n v[sa] = ra[sa];\n ;\n };\n };\n };\n ;\n ea.inform(\"privacy-changed\");\n };\n;\n function ga(ra, sa) {\n var ta = {\n };\n ta[ra] = sa;\n fa(ta);\n };\n;\n function ha(ra) {\n switch (ra) {\n case ea.ONLINE:\n \n case ea.OFFLINE:\n break;\n default:\n da().error(\"set_invalid_visibility\", {\n value: ra\n });\n throw new Error(((\"Invalid visibility: \" + ra)));\n };\n ;\n w = ra;\n ea.inform(\"privacy-changed\");\n ea.inform(\"privacy-user-presence-changed\");\n h.inform(\"chat/visibility-changed\", {\n sender: this\n });\n };\n;\n function ia(ra) {\n switch (ra) {\n case ea.ONLINE_TO_WHITELIST:\n \n case ea.ONLINE_TO_BLACKLIST:\n break;\n default:\n throw new Error(((\"Invalid default online policy: \" + ra)));\n };\n ;\n z = ra;\n ea.inform(\"privacy-user-presence-changed\");\n ea.inform(\"privacy-changed\");\n };\n;\n function ja(ra, sa) {\n ca = true;\n ra.send();\n };\n;\n function ka(ra, sa) {\n ba.push({\n request: ra,\n data: sa\n });\n if (!ca) {\n var ta = ba.shift();\n ja(ta.request, ta.data);\n }\n ;\n ;\n };\n;\n function la(ra, sa) {\n var ta = ra.type;\n if (((ta === s))) {\n var ua = sa.payload.user_availabilities;\n if (!g(ua)) {\n ea.inform(\"privacy-availability-changed\", {\n user_availabilities: ua\n });\n {\n var fin213keys = ((window.top.JSBNG_Replay.forInKeys)((ra.settings))), fin213i = (0);\n var va;\n for (; (fin213i < fin213keys.length); (fin213i++)) {\n ((va) = (fin213keys[fin213i]));\n {\n x[va] = ra.settings[va];\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n }\n else {\n if (((ta === t))) {\n y = ra.visibility;\n }\n else if (((ta === u))) {\n aa = ra.online_policy;\n }\n \n ;\n ;\n ea.inform(\"privacy-user-presence-response\");\n }\n ;\n ;\n da().log(\"set_update_response\", {\n data: ra,\n response: sa\n });\n };\n;\n function ma(ra, sa) {\n if (((w !== y))) {\n ha(y);\n }\n ;\n ;\n if (((z !== aa))) {\n ia(aa);\n }\n ;\n ;\n k(v, x);\n ea.inform(\"privacy-changed\");\n ba = [];\n da().log(\"set_error_response\", {\n data: ra,\n response: sa\n });\n };\n;\n function na(ra) {\n ca = false;\n if (((ba.length > 0))) {\n var sa = ba.shift();\n ja(sa.request, sa.data);\n }\n ;\n ;\n };\n;\n function oa(ra, sa) {\n if (((n != null))) {\n var ta = ra.getData();\n ta.window_id = n.getSessionID();\n ra.setData(ta);\n }\n ;\n ;\n ra.setHandler(la.bind(this, sa)).setErrorHandler(ma.bind(this, sa)).setTransportErrorHandler(ma.bind(this, sa)).setFinallyHandler(na.bind(this)).setAllowCrossPageTransition(true);\n return ra;\n };\n;\n function pa(ra, sa, ta) {\n return oa(new i(ra).setData(sa), ta);\n };\n;\n function qa(ra, sa) {\n var ta = sa.obj;\n if (((ta.viewer_id != l.user))) {\n da().error(\"invalid_viewer_for_channel_message\", {\n type: ra,\n data: sa\n });\n throw new Error(\"Viewer got from the channel is not the real viewer\");\n }\n ;\n ;\n if (((ta.window_id === n.getSessionID()))) {\n return;\n }\n ;\n ;\n var ua = ta.data;\n if (((ta.JSBNG__event == \"access_control_entry\"))) {\n ua.target_ids.forEach(function(wa) {\n ga(wa, ua.setting);\n x[wa] = ua.setting;\n });\n }\n else {\n if (((ta.JSBNG__event == \"visibility_update\"))) {\n var va = ((!!ua.visibility ? ea.ONLINE : ea.OFFLINE));\n ha(va);\n y = va;\n }\n else if (((ta.JSBNG__event == \"online_policy_update\"))) {\n ia(ua.online_policy);\n aa = ua.online_policy;\n }\n \n ;\n ;\n ea.inform(\"privacy-user-presence-response\");\n }\n ;\n ;\n da().log(\"channel_message_received\", {\n data: sa.obj\n });\n };\n;\n k(ea, {\n WHITELISTED: 1,\n BLACKLISTED: -1,\n UNLISTED: 0,\n ONLINE: 1,\n OFFLINE: 0,\n ONLINE_TO_WHITELIST: 0,\n ONLINE_TO_BLACKLIST: 1,\n init: function(ra, sa, ta) {\n \n },\n setVisibility: function(ra) {\n y = w;\n ha(ra);\n var sa = {\n visibility: ra\n }, ta = {\n type: t,\n visibility: ra\n }, ua = pa(r, sa, ta);\n ka(ua, ta);\n da().log(\"set_visibility\", {\n data: sa\n });\n return ra;\n },\n getVisibility: function() {\n return w;\n },\n setOnlinePolicy: function(ra) {\n aa = z;\n ia(ra);\n var sa = {\n online_policy: ra\n }, ta = {\n type: u,\n online_policy: ra\n }, ua = pa(q, sa, ta);\n ka(ua, ta);\n da().log(\"set_online_policy\", {\n data: sa\n });\n return ra;\n },\n getOnlinePolicy: function() {\n return z;\n },\n getFriendVisibility: function(ra) {\n return ((v[ra] || ea.UNLISTED));\n },\n allows: function(ra) {\n if (((this.getVisibility() === ea.OFFLINE))) {\n return false;\n }\n ;\n ;\n var sa = this.getOnlinePolicy();\n return ((((sa === ea.ONLINE_TO_WHITELIST)) ? ((v[ra] == ea.WHITELISTED)) : ((v[ra] != ea.BLACKLISTED))));\n },\n setFriendsVisibility: function(ra, sa) {\n if (((ra.length > 0))) {\n var ta = {\n };\n for (var ua = 0; ((ua < ra.length)); ua++) {\n var va = ra[ua];\n x[va] = v[va];\n ta[va] = sa;\n };\n ;\n fa(ta);\n var wa = sa;\n if (((wa == ea.UNLISTED))) {\n wa = x[ra[0]];\n }\n ;\n ;\n var xa = {\n users: ra,\n setting: sa,\n setting_type: wa\n }, ya = {\n type: s,\n settings: ta\n }, za = pa(p, xa, ya);\n ka(za, ya);\n da().log(\"set_friend_visibility\", {\n data: xa\n });\n }\n ;\n ;\n return sa;\n },\n setFriendVisibilityMap: function(ra, sa) {\n {\n var fin214keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin214i = (0);\n var ta;\n for (; (fin214i < fin214keys.length); (fin214i++)) {\n ((ta) = (fin214keys[fin214i]));\n {\n x[ta] = v[ta];\n ;\n };\n };\n };\n ;\n fa(ra);\n var ua = {\n type: s,\n settings: ra\n };\n ka(oa(sa, ua), ua);\n da().log(\"set_friend_visibility_from_map\", {\n data: ra\n });\n },\n allow: function(ra) {\n if (this.allows(ra)) {\n da().error(\"allow_already_allowed\");\n throw new Error(((\"allow() should only be called for users that \" + \"are not already allowed\")));\n }\n ;\n ;\n if (((this.getVisibility() === ea.OFFLINE))) {\n da().error(\"allow_called_while_offline\");\n throw new Error(\"allow() should only be called when the user is already online\");\n }\n ;\n ;\n var sa = ((((this.getOnlinePolicy() === ea.ONLINE_TO_WHITELIST)) ? ea.WHITELISTED : ea.UNLISTED));\n return this.setFriendsVisibility([ra,], sa);\n },\n disallow: function(ra) {\n if (!this.allows(ra)) {\n da().error(\"disallow_already_disallowed\");\n throw new Error(((\"disallow() should only be called for users that \" + \"are not already disallowed\")));\n }\n ;\n ;\n if (((this.getVisibility() === ea.OFFLINE))) {\n da().error(\"disallow_called_while_offline\");\n throw new Error(\"disallow() should only be called when the user is already online\");\n }\n ;\n ;\n var sa = ((((this.getOnlinePolicy() === ea.ONLINE_TO_BLACKLIST)) ? ea.BLACKLISTED : ea.UNLISTED));\n return this.setFriendsVisibility([ra,], sa);\n },\n getBlacklist: function() {\n var ra = [];\n {\n var fin215keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin215i = (0);\n var sa;\n for (; (fin215i < fin215keys.length); (fin215i++)) {\n ((sa) = (fin215keys[fin215i]));\n {\n if (((v[sa] === ea.BLACKLISTED))) {\n ra.push(sa);\n }\n ;\n ;\n };\n };\n };\n ;\n return ra;\n },\n getWhitelist: function() {\n var ra = [];\n {\n var fin216keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin216i = (0);\n var sa;\n for (; (fin216i < fin216keys.length); (fin216i++)) {\n ((sa) = (fin216keys[fin216i]));\n {\n if (((v[sa] === ea.WHITELISTED))) {\n ra.push(sa);\n }\n ;\n ;\n };\n };\n };\n ;\n return ra;\n },\n getMapForTest: function() {\n return v;\n },\n setMapForTest: function(ra) {\n v = ra;\n }\n });\n ea.inform(\"privacy-changed\");\n ea.inform(\"privacy-user-presence-changed\");\n da().log(\"initialized\", {\n visibility: w,\n policy: z\n });\n h.subscribe(j.getArbiterType(\"privacy_changed\"), qa.bind(this));\n h.subscribe(j.ON_CONFIG, function(ra, sa) {\n var ta = sa.getConfig(\"visibility\", null);\n if (((((ta !== null)) && ((typeof (ta) !== \"undefined\"))))) {\n var ua = ((ta ? ea.ONLINE : ea.OFFLINE));\n ha(ua);\n da().log(\"config_visibility\", {\n vis: ua\n });\n }\n ;\n ;\n }.bind(this));\n a.PresencePrivacy = e.exports = ea;\n}, 3);\n__d(\"ChatVisibility\", [\"Arbiter\",\"JSLogger\",\"PresencePrivacy\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"JSLogger\"), i = b(\"PresencePrivacy\"), j = {\n isOnline: function() {\n return ((i.getVisibility() === i.ONLINE));\n },\n hasBlackbirdEnabled: function() {\n return ((this.isVisibleToMostFriends() || this.isVisibleToSomeFriends()));\n },\n isVisibleToMostFriends: function() {\n return ((((i.getOnlinePolicy() === i.ONLINE_TO_BLACKLIST)) && ((i.getBlacklist().length > 0))));\n },\n isVisibleToSomeFriends: function() {\n return ((((i.getOnlinePolicy() === i.ONLINE_TO_WHITELIST)) && ((i.getWhitelist().length > 0))));\n },\n goOnline: function(k) {\n if (((i.getVisibility() === i.OFFLINE))) {\n h.create(\"blackbird\").log(\"chat_go_online\");\n i.setVisibility(i.ONLINE);\n g.inform(\"chat-visibility/go-online\");\n }\n ;\n ;\n ((k && k()));\n },\n goOffline: function(k) {\n if (((i.getVisibility() === i.ONLINE))) {\n h.create(\"blackbird\").log(\"chat_go_offline\");\n i.setVisibility(i.OFFLINE);\n g.inform(\"chat-visibility/go-offline\");\n }\n ;\n ;\n ((k && k()));\n },\n toggleVisibility: function() {\n if (j.isOnline()) {\n j.goOffline();\n }\n else j.goOnline();\n ;\n ;\n }\n };\n a.ChatVisibility = e.exports = j;\n}, 3);\n__d(\"MercuryIDs\", [], function(a, b, c, d, e, f) {\n function g(i) {\n return ((((typeof i === \"string\")) && ((i.indexOf(\":\") !== -1))));\n };\n;\n var h = {\n isValid: function(i) {\n if (!i) {\n return false;\n }\n ;\n ;\n return g(i);\n },\n isValidThreadID: function(i) {\n if (!h.isValid(i)) {\n return false;\n }\n ;\n ;\n var j = h.tokenize(i);\n switch (j.type) {\n case \"user\":\n \n case \"group\":\n \n case \"thread\":\n \n case \"root\":\n \n case \"pending\":\n return true;\n default:\n return false;\n };\n ;\n },\n tokenize: function(i) {\n if (!this.isValid(i)) {\n throw \"bad_id_format\";\n }\n ;\n ;\n var j = i.indexOf(\":\");\n return {\n type: i.substr(0, j),\n value: i.substr(((j + 1)))\n };\n },\n getUserIDFromParticipantID: function(i) {\n if (!h.isValid(i)) {\n return null;\n }\n ;\n ;\n var j = h.tokenize(i);\n if (((j.type != \"fbid\"))) {\n return null;\n }\n ;\n ;\n return j.value;\n }\n };\n e.exports = h;\n});\n__d(\"MercuryAssert\", [\"MercuryIDs\",], function(a, b, c, d, e, f) {\n var g = b(\"MercuryIDs\");\n e.exports = {\n isParticipantID: function(h) {\n if (!g.isValid(h)) {\n throw \"bad_participant_id\";\n }\n ;\n ;\n },\n allParticipantIDs: function(h) {\n h.forEach(this.isParticipantID);\n },\n isUserParticipantID: function(h) {\n var i = g.tokenize(h);\n if (((i.type != \"fbid\"))) {\n throw \"bad_user_id\";\n }\n ;\n ;\n },\n isEmailParticipantID: function(h) {\n var i = g.tokenize(h);\n if (((i.type != \"email\"))) {\n throw \"bad_email_id\";\n }\n ;\n ;\n },\n allThreadID: function(h) {\n h.forEach(this.isThreadID);\n },\n isThreadID: function(h) {\n if (!g.isValid(h)) {\n throw \"bad_thread_id\";\n }\n ;\n ;\n }\n };\n});\n__d(\"MercurySingletonMixin\", [\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\"), h = {\n _getInstances: function() {\n if (!this._instances) {\n this._instances = {\n };\n }\n ;\n ;\n return this._instances;\n },\n get: function() {\n return this.getForFBID(g.user);\n },\n getForFBID: function(i) {\n var j = this._getInstances();\n if (!j[i]) {\n j[i] = new this(i);\n }\n ;\n ;\n return j[i];\n }\n };\n e.exports = h;\n});\n__d(\"MercuryMessageIDs\", [\"KeyedCallbackManager\",], function(a, b, c, d, e, f) {\n var g = b(\"KeyedCallbackManager\"), h = new g(), i = {\n getServerIDs: function(j, k) {\n var l = j.filter(function(n) {\n return ((n.indexOf(\"mail.projektitan.com\") !== -1));\n }), m = function(n) {\n var o = j.map(function(p) {\n return ((n[p] ? n[p] : p));\n });\n k(o);\n };\n return h.executeOrEnqueue(l, m);\n },\n addServerID: function(j, k) {\n h.setResource(j, k);\n }\n };\n e.exports = i;\n});\n__d(\"ImageSourceType\", [], function(a, b, c, d, e, f) {\n var g = {\n PROFILE_PICTURE: \"profile_picture\",\n IMAGE: \"image\"\n };\n e.exports = g;\n});\n__d(\"PhotoResizeModeConst\", [], function(a, b, c, d, e, f) {\n var g = {\n COVER: \"s\",\n CONTAIN: \"p\"\n };\n e.exports = g;\n});\n__d(\"ImageSourceRequest\", [\"arrayContains\",\"extendArray\",\"copyProperties\",\"Env\",\"KeyedCallbackManager\",\"ImageSourceType\",\"PhotoResizeModeConst\",\"MercuryServerDispatcher\",], function(a, b, c, d, e, f) {\n var g = b(\"arrayContains\"), h = b(\"extendArray\"), i = b(\"copyProperties\"), j = b(\"Env\"), k = b(\"KeyedCallbackManager\"), l = b(\"ImageSourceType\"), m = b(\"PhotoResizeModeConst\"), n = b(\"MercuryServerDispatcher\");\n function o() {\n this._request = {\n fbid: null,\n type: null,\n width: null,\n height: null,\n resize_mode: null\n };\n this._callback = null;\n };\n;\n i(o.prototype, {\n setFBID: function(s) {\n this._request.fbid = s;\n return this;\n },\n setType: function(s) {\n if (!g([l.PROFILE_PICTURE,l.IMAGE,], s)) {\n throw new TypeError(((\"ImageSourceRequest.setType: invalid type \" + s)));\n }\n ;\n ;\n this._request.type = s;\n return this;\n },\n setDimensions: function(s, t) {\n this._request.width = s;\n this._request.height = t;\n return this;\n },\n setResizeMode: function(s) {\n if (!g([m.COVER,m.CONTAIN,], s)) {\n throw new TypeError(((\"ImageSourceRequest.setResizeMode: invalid resize mode \" + s)));\n }\n ;\n ;\n this._request.resize_mode = s;\n return this;\n },\n setCallback: function(s) {\n this._callback = s;\n return this;\n },\n send: function() {\n if (((((((((((!this._request.fbid || !this._request.width)) || !this._request.height)) || !this._request.type)) || !this._request.resize_mode)) || !this._callback))) {\n throw new Error(\"ImageSourceRequest: You must set all the fields\");\n }\n ;\n ;\n var s = q(), t = r(this._request);\n s.executeOrEnqueue(t, this._callback);\n if (((s.getUnavailableResourcesFromRequest(t).length === 1))) {\n n.trySend(\"/ajax/image_source.php\", {\n requests: [this._request,]\n });\n return true;\n }\n ;\n ;\n return false;\n }\n });\n var p = null;\n function q() {\n if (p) {\n return p;\n }\n ;\n ;\n var s = new k();\n p = s;\n n.registerEndpoints({\n \"/ajax/image_source.php\": {\n request_user_id: j.user,\n mode: n.BATCH_DEFERRED_MULTI,\n batch_function: function(t, u) {\n h(t.requests, u.requests);\n return t;\n },\n handler: function(t, u) {\n var v = u.getData().requests;\n for (var w = 0; ((w < v.length)); ++w) {\n s.setResource(r(v[w]), t[w]);\n ;\n };\n ;\n }\n }\n });\n return s;\n };\n;\n function r(s) {\n return [s.fbid,s.type,s.width,s.height,s.resize_mode,].join(\"|\");\n };\n;\n e.exports = o;\n});\n__d(\"TimestampConverter\", [\"JSLogger\",], function(a, b, c, d, e, f) {\n var g = b(\"JSLogger\"), h = g.create(\"timestamp_converter\");\n function i(k) {\n return ((((typeof (k) == \"string\")) && ((k.length > 6))));\n };\n;\n var j = {\n convertActionIDToTimestamp: function(k) {\n if (i(k)) {\n var l = k.slice(0, -6);\n return parseInt(l, 10);\n }\n ;\n ;\n },\n maxValidActionID: function(k, l) {\n if (!i(k)) {\n return l;\n }\n ;\n ;\n if (!i(l)) {\n return k;\n }\n ;\n ;\n return ((this.isGreaterThan(k, l) ? k : l));\n },\n isGreaterThan: function(k, l) {\n if (((!i(k) || !i(l)))) {\n return false;\n }\n ;\n ;\n return ((this.convertActionIDToTimestamp(k) > this.convertActionIDToTimestamp(l)));\n }\n };\n e.exports = j;\n});\n__d(\"MessagingReliabilityLogger\", [\"function-extensions\",\"PresenceUtil\",\"MercuryServerDispatcher\",\"MessagingReliabilityLoggerInitialData\",\"isEmpty\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"PresenceUtil\"), h = b(\"MercuryServerDispatcher\"), i = b(\"MessagingReliabilityLoggerInitialData\"), j = b(\"isEmpty\"), k = b(\"setTimeoutAcrossTransitions\"), l = \"/ajax/mercury/client_reliability.php\", m = 60000;\n function n(t, u) {\n var v = {\n app: i.app,\n categories: JSON.stringify(t)\n };\n if (!j(u)) {\n v.extra = JSON.stringify(u);\n }\n ;\n ;\n return v;\n };\n;\n function o(t, u, v, w) {\n if (((t[u] === undefined))) {\n t[u] = {\n };\n }\n ;\n ;\n if (((t[u][v] === undefined))) {\n t[u][v] = 0;\n }\n ;\n ;\n t[u][v] += w;\n };\n;\n function p(t, u, v, w) {\n if (((t[u] === undefined))) {\n t[u] = {\n };\n }\n ;\n ;\n if (((t[u][v] === undefined))) {\n t[u][v] = [];\n }\n ;\n ;\n for (var x = 0; ((x < w.length)); ++x) {\n t[u][v].push(w[x]);\n ;\n };\n ;\n };\n;\n function q(t, u) {\n if (((((t && !t.categories)) || ((u && !u.categories))))) {\n return;\n }\n ;\n ;\n var v = ((t ? JSON.parse(t.categories) : {\n })), w = ((((t && t.extra)) ? JSON.parse(t.extra) : {\n })), x = JSON.parse(u.categories), y = ((u.extra ? JSON.parse(u.extra) : {\n }));\n {\n var fin217keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin217i = (0);\n var z;\n for (; (fin217i < fin217keys.length); (fin217i++)) {\n ((z) = (fin217keys[fin217i]));\n {\n var aa = x[z], ba = y[z];\n {\n var fin218keys = ((window.top.JSBNG_Replay.forInKeys)((aa))), fin218i = (0);\n var ca;\n for (; (fin218i < fin218keys.length); (fin218i++)) {\n ((ca) = (fin218keys[fin218i]));\n {\n o(v, z, ca, aa[ca]);\n if (((ba !== undefined))) {\n var da = ba[ca];\n if (((da !== undefined))) {\n p(w, z, ca, da);\n }\n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n };\n };\n };\n ;\n return n(v, w);\n };\n;\n var r = {\n };\n r[l] = {\n mode: h.BATCH_SUCCESSIVE_PIGGYBACK_ON_ERROR,\n batch_function: q\n };\n h.registerEndpoints(r);\n var s = {\n addEntry: function(t, u, v) {\n if (!i.enabled) {\n return;\n }\n ;\n ;\n var w = {\n };\n o(w, t, u, 1);\n var x = {\n };\n if (((v !== undefined))) {\n p(x, t, u, [v,]);\n }\n ;\n ;\n h.trySend(l, n(w, x));\n }\n };\n (function t() {\n s.addEntry(\"page_event\", \"active\", g.getSessionID());\n k(t, m);\n })();\n e.exports = s;\n});\n__d(\"MercuryThreadInformer\", [\"ArbiterMixin\",\"copyProperties\",\"MercuryAssert\",\"MercurySingletonMixin\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"copyProperties\"), i = b(\"MercuryAssert\"), j = b(\"MercurySingletonMixin\");\n function k(m) {\n if (!m._locked) {\n var n = m._threadDeletions, o = m._threadChanges, p = m._threadReadChanges, q = m._threadlistChanged, r = m._unseenStateChanged, s = m._unreadStateChanged, t = m._receivedMessages, u = m._reorderedMessages, v = m._updatedMessages;\n m._threadDeletions = {\n };\n m._threadChanges = {\n };\n m._threadReadChanges = {\n };\n m._threadlistChanged = false;\n m._unseenStateChanged = false;\n m._unreadStateChanged = false;\n m._receivedMessages = {\n };\n m._reorderedMessages = {\n };\n m._updatedMessages = {\n };\n var w = Object.keys(o);\n if (((w.length || q))) {\n m.inform(\"threadlist-updated\", w);\n }\n ;\n ;\n if (w.length) {\n m.inform(\"threads-updated\", o);\n }\n ;\n ;\n {\n var fin219keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin219i = (0);\n var x;\n for (; (fin219i < fin219keys.length); (fin219i++)) {\n ((x) = (fin219keys[fin219i]));\n {\n m.inform(\"thread-read-changed\", p);\n break;\n };\n };\n };\n ;\n {\n var fin220keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin220i = (0);\n var x;\n for (; (fin220i < fin220keys.length); (fin220i++)) {\n ((x) = (fin220keys[fin220i]));\n {\n m.inform(\"threads-deleted\", n);\n break;\n };\n };\n };\n ;\n if (r) {\n m.inform(\"unseen-updated\", null);\n }\n ;\n ;\n if (s) {\n m.inform(\"unread-updated\", null);\n }\n ;\n ;\n {\n var fin221keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin221i = (0);\n (0);\n for (; (fin221i < fin221keys.length); (fin221i++)) {\n ((x) = (fin221keys[fin221i]));\n {\n m.inform(\"messages-received\", t);\n break;\n };\n };\n };\n ;\n {\n var fin222keys = ((window.top.JSBNG_Replay.forInKeys)((u))), fin222i = (0);\n (0);\n for (; (fin222i < fin222keys.length); (fin222i++)) {\n ((x) = (fin222keys[fin222i]));\n {\n m.inform(\"messages-reordered\", u);\n break;\n };\n };\n };\n ;\n {\n var fin223keys = ((window.top.JSBNG_Replay.forInKeys)((v))), fin223i = (0);\n (0);\n for (; (fin223i < fin223keys.length); (fin223i++)) {\n ((x) = (fin223keys[fin223i]));\n {\n m.inform(\"messages-updated\", v);\n break;\n };\n };\n };\n ;\n }\n ;\n ;\n };\n;\n function l(m) {\n this._fbid = m;\n this._threadDeletions = {\n };\n this._threadChanges = {\n };\n this._threadReadChanges = {\n };\n this._threadlistChanged = false;\n this._unseenStateChanged = false;\n this._unreadStateChanged = false;\n this._receivedMessages = {\n };\n this._reorderedMessages = {\n };\n this._updatedMessages = {\n };\n this._locked = 0;\n };\n;\n h(l.prototype, g, {\n updatedThread: function(m) {\n this._threadChanges[m] = true;\n k(this);\n },\n deletedThread: function(m) {\n this._threadDeletions[m] = true;\n k(this);\n },\n updatedThreadlist: function() {\n this._threadlistChanged = true;\n k(this);\n },\n updatedUnseenState: function() {\n this._unseenStateChanged = true;\n k(this);\n },\n updatedUnreadState: function() {\n this._unreadStateChanged = true;\n k(this);\n },\n changedThreadReadState: function(m, n, o) {\n if (((!this._threadReadChanges[m] || ((this._threadReadChanges[m].timestamp < o))))) {\n this._threadReadChanges[m] = {\n mark_as_read: n,\n timestamp: o\n };\n }\n ;\n ;\n k(this);\n },\n receivedMessage: function(m) {\n i.isThreadID(m.thread_id);\n var n = m.thread_id;\n if (!this._receivedMessages[n]) {\n this._receivedMessages[n] = [];\n }\n ;\n ;\n this._receivedMessages[n].push(m);\n this.updatedThread(n);\n },\n reorderedMessages: function(m, n) {\n this._reorderedMessages[m] = {\n source: n\n };\n k(this);\n },\n updatedMessage: function(m, n, o) {\n if (!this._updatedMessages[m]) {\n this._updatedMessages[m] = {\n };\n }\n ;\n ;\n this._updatedMessages[m][n] = {\n source: o\n };\n this.updatedThread(m);\n },\n synchronizeInforms: function(m) {\n this._locked++;\n try {\n m();\n } catch (n) {\n throw n;\n } finally {\n this._locked--;\n k(this);\n };\n ;\n },\n listen: function(m, n) {\n return this.subscribe(\"threads-updated\", function(o, p) {\n if (p[m]) {\n n(m);\n }\n ;\n ;\n });\n }\n });\n h(l, j);\n e.exports = l;\n});\n__d(\"MercuryServerRequests\", [\"ArbiterMixin\",\"AsyncResponse\",\"TimestampConverter\",\"Env\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryActionStatus\",\"MercuryAPIArgsSource\",\"MercuryAssert\",\"MercuryErrorType\",\"MercuryGenericConstants\",\"MercuryGlobalActionType\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercuryPayloadSource\",\"MercuryServerRequestsConfig\",\"MercurySourceType\",\"MercuryThreadlistConstants\",\"MercuryMessageIDs\",\"MessagingConfig\",\"MessagingReliabilityLogger\",\"MessagingTag\",\"MercurySingletonMixin\",\"MercuryServerDispatcher\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"AsyncResponse\"), i = b(\"TimestampConverter\"), j = b(\"Env\"), k = b(\"JSLogger\"), l = b(\"KeyedCallbackManager\"), m = b(\"MercuryActionTypeConstants\"), n = b(\"MercuryActionStatus\"), o = b(\"MercuryAPIArgsSource\"), p = b(\"MercuryAssert\"), q = b(\"MercuryErrorType\"), r = b(\"MercuryGenericConstants\"), s = b(\"MercuryGlobalActionType\"), t = b(\"MercuryIDs\"), u = b(\"MercuryLogMessageType\"), v = b(\"MercuryPayloadSource\"), w = b(\"MercuryServerRequestsConfig\"), x = b(\"MercurySourceType\"), y = b(\"MercuryThreadlistConstants\"), z = b(\"MercuryMessageIDs\"), aa = b(\"MessagingConfig\"), ba = b(\"MessagingReliabilityLogger\"), ca = b(\"MessagingTag\"), da = b(\"MercurySingletonMixin\"), ea = b(\"MercuryServerDispatcher\"), fa = b(\"MercuryThreadInformer\"), ga = b(\"copyProperties\"), ha = b(\"createObjectFrom\"), ia = k.create(\"mercury_server\"), ja = o.MERCURY;\n function ka(sb, tb) {\n if (tb) {\n sb._lastActionId = i.maxValidActionID(sb._lastActionId, tb);\n }\n ;\n ;\n };\n;\n function la(sb, tb) {\n var ub = tb.thread_id, vb = sb._serverToClientIDs.getResource(ub);\n if (!vb) {\n if (tb.canonical_fbid) {\n vb = ((\"user:\" + tb.canonical_fbid));\n }\n else if (tb.root_message_threading_id) {\n vb = ((\"root:\" + tb.root_message_threading_id));\n }\n \n ;\n ;\n vb = ((vb || ((\"thread:\" + ub))));\n ma(sb, ub, vb);\n }\n ;\n ;\n tb.thread_id = vb;\n };\n;\n function ma(sb, tb, ub) {\n sb._serverToClientIDs.setResource(tb, ub);\n sb._clientToServerIDs.setResource(ub, tb);\n sb._newlyAddedClientIDs[tb] = ub;\n };\n;\n function na(sb, tb, ub) {\n var vb = sb._clientToServerIDs.executeOrEnqueue(tb, ub), wb = sb._clientToServerIDs.getUnavailableResources(vb), xb = sb.tokenizeThreadID(tb);\n if (((wb.length && ((xb.type != \"root\"))))) {\n sb.fetchThreadData(wb);\n }\n ;\n ;\n };\n;\n function oa(sb, tb) {\n return sb._clientToServerIDs.getResource(tb);\n };\n;\n function pa(sb, tb) {\n return !!sb._serverToClientIDs.getResource(tb);\n };\n;\n function qa(sb, tb) {\n var ub = sb._serverToClientIDs.getResource(tb);\n if (((typeof ub == \"undefined\"))) {\n ia.warn(\"no_client_thread_id\", {\n server_id: tb\n });\n }\n ;\n ;\n return ub;\n };\n;\n function ra(sb, tb, ub) {\n sb._serverToClientIDs.executeOrEnqueue(tb, ub);\n sb.ensureThreadIsFetched(tb);\n };\n;\n function sa(sb, tb, ub) {\n if (((tb.action_type != m.SEND_MESSAGE))) {\n return;\n }\n ;\n ;\n var vb = tb.client_thread_id;\n if (!vb) {\n vb = qa(sb, tb.thread_id);\n }\n ;\n ;\n var wb = null;\n if (vb) {\n wb = t.tokenize(vb).type;\n }\n ;\n ;\n ba.addEntry(((\"send_\" + wb)), ub, ((((tb.thread_id + \",\")) + tb.message_id)));\n };\n;\n function ta(sb) {\n return ((sb.getError() ? ((\"_\" + sb.getError())) : \"\"));\n };\n;\n function ua(sb, tb) {\n var ub = null;\n switch (tb.JSBNG__status) {\n case n.SUCCESS:\n ub = \"success\";\n break;\n case n.FAILED_UNKNOWN_REASON:\n ub = \"confirmed_error\";\n break;\n case n.UNABLE_TO_CONFIRM:\n ub = \"confirm_error\";\n break;\n default:\n return;\n };\n ;\n sa(sb, tb, ub);\n };\n;\n function va(sb, tb) {\n ((tb.message_counts || [])).forEach(function(cc) {\n ka(sb, cc.last_action_id);\n });\n ((tb.threads || [])).forEach(function(cc) {\n la(sb, cc);\n delete sb._fetchingThreads[cc.thread_id];\n var dc = oa(sb, cc.thread_id);\n delete sb._fetchingThreads[dc];\n ka(sb, cc.last_action_id);\n });\n ((tb.ordered_threadlists || [])).forEach(function(cc) {\n cc.thread_ids = cc.thread_ids.map(qa.curry(sb));\n });\n tb.actions = ((tb.actions || []));\n tb.actions.forEach(function(cc) {\n ua(sb, cc);\n if (((((cc.JSBNG__status && ((cc.JSBNG__status != n.SUCCESS)))) && !cc.thread_id))) {\n cc.thread_id = cc.client_thread_id;\n return;\n }\n ;\n ;\n if (((((((cc.action_type == m.SEND_MESSAGE)) && cc.client_thread_id)) && ((cc.client_thread_id != r.PENDING_THREAD_ID))))) {\n ma(sb, cc.thread_id, cc.client_thread_id);\n }\n ;\n ;\n cc.server_thread_id = cc.thread_id;\n cc.thread_id = ((pa(sb, cc.thread_id) ? qa(sb, cc.thread_id) : null));\n ka(sb, cc.action_id);\n });\n if (tb.end_of_history) {\n var ub = [];\n for (var vb = 0; ((vb < tb.end_of_history.length)); vb++) {\n var wb = tb.end_of_history[vb];\n if (((wb.type == \"user\"))) {\n ub.push(((\"user:\" + wb.id)));\n }\n else if (((((wb.type == \"thread\")) && pa(sb, wb.id)))) {\n ub.push(qa(sb, wb.id));\n }\n \n ;\n ;\n };\n ;\n tb.end_of_history = ub;\n }\n ;\n ;\n if (tb.roger) {\n var xb = {\n };\n {\n var fin224keys = ((window.top.JSBNG_Replay.forInKeys)((tb.roger))), fin224i = (0);\n var yb;\n for (; (fin224i < fin224keys.length); (fin224i++)) {\n ((yb) = (fin224keys[fin224i]));\n {\n var zb = sb._serverToClientIDs.getResource(yb);\n if (zb) {\n var ac = tb.roger[yb];\n xb[zb] = {\n };\n {\n var fin225keys = ((window.top.JSBNG_Replay.forInKeys)((ac))), fin225i = (0);\n var bc;\n for (; (fin225i < fin225keys.length); (fin225i++)) {\n ((bc) = (fin225keys[fin225i]));\n {\n xb[zb][((\"fbid:\" + bc))] = ac[bc];\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n tb.roger = xb;\n }\n ;\n ;\n };\n;\n function wa(sb) {\n if (((sb._pendingUpdates && sb._pendingUpdates.length))) {\n var tb = sb._pendingUpdates[0];\n sb._pendingUpdates = sb._pendingUpdates.slice(1);\n sb.handleUpdate(tb);\n }\n ;\n ;\n };\n;\n function xa(sb, tb) {\n var ub = ga({\n }, sb), vb;\n if (tb.threads) {\n if (!ub.threads) {\n ub.threads = {\n };\n }\n ;\n ;\n {\n var fin226keys = ((window.top.JSBNG_Replay.forInKeys)((tb.threads))), fin226i = (0);\n (0);\n for (; (fin226i < fin226keys.length); (fin226i++)) {\n ((vb) = (fin226keys[fin226i]));\n {\n ub.threads[vb] = Object.keys(ha(((ub.threads[vb] || [])).concat(tb.threads[vb])));\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n if (tb.messages) {\n if (!ub.messages) {\n ub.messages = {\n };\n }\n ;\n ;\n {\n var fin227keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages))), fin227i = (0);\n (0);\n for (; (fin227i < fin227keys.length); (fin227i++)) {\n ((vb) = (fin227keys[fin227i]));\n {\n if (!ub.messages[vb]) {\n ub.messages[vb] = {\n };\n }\n ;\n ;\n {\n var fin228keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages[vb]))), fin228i = (0);\n var wb;\n for (; (fin228i < fin228keys.length); (fin228i++)) {\n ((wb) = (fin228keys[fin228i]));\n {\n if (ub.messages[vb][wb]) {\n ub.messages[vb][wb] = ab(ub.messages[vb][wb], tb.messages[vb][wb]);\n }\n else ub.messages[vb][wb] = tb.messages[vb][wb];\n ;\n ;\n };\n };\n };\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n ub.client = ((sb.client || tb.client));\n return ub;\n };\n;\n function ya(sb, tb) {\n var ub = ga(ha(sb.folders, true), ha(tb.folders, true)), vb = ((sb.client || tb.client));\n return {\n folders: Object.keys(ub),\n client: vb\n };\n };\n;\n function za(sb, tb) {\n {\n var fin229keys = ((window.top.JSBNG_Replay.forInKeys)((tb))), fin229i = (0);\n var ub;\n for (; (fin229i < fin229keys.length); (fin229i++)) {\n ((ub) = (fin229keys[fin229i]));\n {\n if (((sb[ub] && ((typeof sb[ub] === \"object\"))))) {\n sb[ub] = ab(sb[ub], tb[ub]);\n }\n else if (((tb[ub] && ((typeof tb[ub] === \"object\"))))) {\n var vb = {\n };\n ga(vb, tb[ub]);\n sb[ub] = vb;\n }\n \n ;\n ;\n };\n };\n };\n ;\n return sb;\n };\n;\n function ab(sb, tb) {\n var ub = ((((sb.offset < tb.offset)) ? sb.offset : tb.offset)), vb = ((sb.offset + sb.limit)), wb = ((tb.offset + tb.limit)), xb = ((((vb > wb)) ? vb : wb)), yb = ((xb - ub));\n return {\n offset: ub,\n limit: yb\n };\n };\n;\n function bb(sb, tb) {\n var ub = ((sb.client || tb.client)), vb = {\n ids: {\n },\n client: ub\n };\n ga(vb.ids, sb.ids);\n ga(vb.ids, tb.ids);\n return vb;\n };\n;\n function cb(sb, tb) {\n var ub = {\n }, vb, wb = ((sb.client || tb.client));\n delete sb.client;\n delete tb.client;\n {\n var fin230keys = ((window.top.JSBNG_Replay.forInKeys)((sb))), fin230i = (0);\n (0);\n for (; (fin230i < fin230keys.length); (fin230i++)) {\n ((vb) = (fin230keys[fin230i]));\n {\n ga(ub, ha(sb[vb], vb));\n ;\n };\n };\n };\n ;\n {\n var fin231keys = ((window.top.JSBNG_Replay.forInKeys)((tb))), fin231i = (0);\n (0);\n for (; (fin231i < fin231keys.length); (fin231i++)) {\n ((vb) = (fin231keys[fin231i]));\n {\n ga(ub, ha(tb[vb], vb));\n ;\n };\n };\n };\n ;\n var xb = {\n client: wb\n };\n {\n var fin232keys = ((window.top.JSBNG_Replay.forInKeys)((ub))), fin232i = (0);\n var yb;\n for (; (fin232i < fin232keys.length); (fin232i++)) {\n ((yb) = (fin232keys[fin232i]));\n {\n vb = ub[yb];\n if (!xb[vb]) {\n xb[vb] = [];\n }\n ;\n ;\n xb[vb].push(yb);\n };\n };\n };\n ;\n return xb;\n };\n;\n function db(sb, tb) {\n var ub = ((sb.client || tb.client)), vb = ha(sb.ids, true), wb = ha(tb.ids, true), xb = ga(vb, wb);\n return {\n ids: Object.keys(xb),\n client: ub\n };\n };\n;\n function eb(sb) {\n this._fbid = sb;\n this._lastActionId = 0;\n this._serverToClientIDs = new l();\n this._clientToServerIDs = new l();\n this._pendingUpdates = [];\n this._fetchingThreads = {\n };\n this._newlyAddedClientIDs = {\n };\n qb(this);\n };\n;\n ga(eb.prototype, g, {\n tokenizeThreadID: function(sb) {\n p.isThreadID(sb);\n return t.tokenize(sb);\n },\n getServerThreadID: function(sb, tb) {\n p.isThreadID(sb);\n na(this, sb, tb);\n },\n getClientThreadID: function(sb, tb) {\n ra(this, sb, tb);\n },\n getClientThreadIDNow: function(sb) {\n return qa(this, sb);\n },\n getServerThreadIDNow: function(sb) {\n return oa(this, sb);\n },\n convertThreadIDIfAvailable: function(sb) {\n var tb = this._serverToClientIDs.getResource(sb);\n if (((tb === undefined))) {\n return sb;\n }\n else return tb\n ;\n },\n canLinkExternally: function(sb) {\n p.isThreadID(sb);\n var tb = this.tokenizeThreadID(sb);\n return ((((tb.type == \"user\")) || !!oa(this, sb)));\n },\n fetchThreadlistInfo: function(sb, tb, ub, vb, wb) {\n ub = ((ub || ca.INBOX));\n wb = ((wb || ja));\n var xb = ((vb ? ea.IMMEDIATE : null)), yb = {\n client: wb\n };\n yb[ub] = {\n offset: sb,\n limit: tb,\n filter: vb\n };\n rb(this, \"/ajax/mercury/threadlist_info.php\", yb, xb);\n },\n fetchUnseenThreadIDs: function(sb, tb) {\n tb = ((tb || ja));\n this.fetchThreadlistInfo(y.RECENT_THREAD_OFFSET, y.JEWEL_THREAD_COUNT, sb, null, tb);\n },\n fetchUnreadThreadIDs: function(sb, tb) {\n tb = ((tb || ja));\n rb(this, \"/ajax/mercury/unread_threads.php\", {\n folders: [sb,],\n client: tb\n });\n },\n fetchMissedMessages: function(sb, tb) {\n tb = ((tb || ja));\n rb(this, \"/ajax/mercury/thread_sync.php\", {\n last_action_id: this._lastActionId,\n folders: sb,\n client: tb\n });\n },\n fetchThreadData: function(sb, tb) {\n tb = ((tb || ja));\n p.allThreadID(sb);\n var ub = {\n threads: {\n },\n client: tb\n }, vb = [], wb = [];\n sb.forEach(function(yb) {\n if (this._fetchingThreads[yb]) {\n return;\n }\n ;\n ;\n this._fetchingThreads[yb] = true;\n var zb = oa(this, yb);\n if (zb) {\n wb.push(zb);\n ub.threads.thread_ids = wb;\n }\n else {\n var ac = this.tokenizeThreadID(yb);\n if (((ac.type == \"user\"))) {\n vb.push(ac.value);\n ub.threads.user_ids = vb;\n }\n else if (((ac.type == \"thread\"))) {\n wb.push(ac.value);\n ub.threads.thread_ids = wb;\n }\n else if (((((ac.type != \"root\")) && ((ac.type != \"pending\"))))) {\n throw new Error(\"Unknown thread type\", ac);\n }\n \n \n ;\n ;\n }\n ;\n ;\n }.bind(this));\n this.inform(\"fetch-thread-data\", ub);\n {\n var fin233keys = ((window.top.JSBNG_Replay.forInKeys)((ub.threads))), fin233i = (0);\n var xb;\n for (; (fin233i < fin233keys.length); (fin233i++)) {\n ((xb) = (fin233keys[fin233i]));\n {\n rb(this, \"/ajax/mercury/thread_info.php\", ub);\n break;\n };\n };\n };\n ;\n },\n ensureThreadIsFetched: function(sb, tb) {\n tb = ((tb || ja));\n if (((!this._serverToClientIDs.getResource(sb) && !this._fetchingThreads[sb]))) {\n this._fetchingThreads[sb] = true;\n rb(this, \"/ajax/mercury/thread_info.php\", {\n threads: {\n thread_ids: [sb,]\n },\n client: tb\n });\n }\n ;\n ;\n },\n fetchThreadMessages: function(sb, tb, ub, vb, wb) {\n p.isThreadID(sb);\n wb = ((wb || ja));\n var xb, yb, zb = this.tokenizeThreadID(sb), ac = oa(this, sb), bc = false;\n if (((ac && ((zb.type != \"group\"))))) {\n yb = \"thread_ids\";\n xb = ac;\n }\n else {\n xb = zb.value;\n switch (zb.type) {\n case \"user\":\n yb = \"user_ids\";\n bc = true;\n break;\n case \"group\":\n yb = \"group_ids\";\n break;\n case \"thread\":\n yb = \"thread_ids\";\n break;\n };\n ;\n }\n ;\n ;\n var cc = {\n messages: {\n },\n threads: {\n },\n client: wb\n };\n if (yb) {\n cc.messages[yb] = {\n };\n cc.messages[yb][xb] = {\n offset: tb,\n limit: ub\n };\n if (bc) {\n cc.threads[yb] = [xb,];\n }\n ;\n ;\n rb(this, \"/ajax/mercury/thread_info.php\", cc, vb);\n }\n else na(this, sb, function(dc) {\n cc.messages.thread_ids = {\n };\n cc.messages.thread_ids[dc] = {\n offset: tb,\n limit: ub\n };\n rb(this, \"/ajax/mercury/thread_info.php\", cc, vb);\n }.bind(this));\n ;\n ;\n },\n handleThreadInfoError: function(sb) {\n var tb = sb.getRequest().getData(), ub = [];\n if (tb.messages) {\n {\n var fin234keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages.thread_ids))), fin234i = (0);\n var vb;\n for (; (fin234i < fin234keys.length); (fin234i++)) {\n ((vb) = (fin234keys[fin234i]));\n {\n ub.push(fb(qa(this, vb)));\n ;\n };\n };\n };\n ;\n {\n var fin235keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages.user_ids))), fin235i = (0);\n var wb;\n for (; (fin235i < fin235keys.length); (fin235i++)) {\n ((wb) = (fin235keys[fin235i]));\n {\n ub.push(fb(((\"user:\" + wb))));\n ;\n };\n };\n };\n ;\n {\n var fin236keys = ((window.top.JSBNG_Replay.forInKeys)((tb.messages.group_ids))), fin236i = (0);\n var xb;\n for (; (fin236i < fin236keys.length); (fin236i++)) {\n ((xb) = (fin236keys[fin236i]));\n {\n ub.push(fb(((\"group:\" + xb))));\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n if (ub.length) {\n this.handleUpdate({\n actions: ub,\n from_client: true,\n payload_source: v.CLIENT_CHANNEL_MESSAGE\n });\n }\n ;\n ;\n if (((tb.threads && ((((tb.threads.user_ids || tb.threads.group_ids)) || tb.threads.thread_ids))))) {\n var yb = 5, zb = true;\n if (!tb.retry_count) {\n tb.retry_count = 0;\n if (tb.messages) {\n delete tb.messages;\n }\n ;\n ;\n }\n else if (((tb.retry_count >= yb))) {\n zb = false;\n ((tb.threads.thread_ids || [])).forEach(function(bc) {\n if (((bc in this._fetchingThreads))) {\n delete this._fetchingThreads[bc];\n }\n ;\n ;\n }.bind(this));\n }\n \n ;\n ;\n if (zb) {\n var ac = ((tb.retry_count * 1000));\n (function() {\n ia.log(\"retry_thread\", tb);\n rb(this, \"/ajax/mercury/thread_info.php\", tb);\n }.bind(this)).defer(ac, false);\n tb.retry_count++;\n }\n ;\n ;\n }\n ;\n ;\n },\n markFolderAsRead: function(sb) {\n rb(this, \"/ajax/mercury/mark_folder_as_read.php\", {\n folder: sb\n });\n var tb = [{\n action_type: s.MARK_ALL_READ,\n action_id: null,\n folder: sb\n },];\n this.handleUpdate({\n global_actions: tb,\n from_client: true,\n payload_source: v.CLIENT_CHANGE_READ_STATUS\n });\n },\n changeThreadReadStatus: function(sb, tb, ub) {\n p.isThreadID(sb);\n na(this, sb, function(wb) {\n var xb = {\n ids: {\n }\n };\n xb.ids[wb] = tb;\n rb(this, \"/ajax/mercury/change_read_status.php\", xb);\n }.bind(this));\n var vb = [{\n action_type: m.CHANGE_READ_STATUS,\n action_id: null,\n thread_id: sb,\n mark_as_read: tb,\n folder: ub\n },];\n this.handleUpdate({\n actions: vb,\n from_client: true,\n payload_source: v.CLIENT_CHANGE_READ_STATUS\n });\n },\n changeThreadArchivedStatus: function(sb, tb) {\n p.isThreadID(sb);\n na(this, sb, function(wb) {\n var xb = {\n ids: {\n }\n };\n xb.ids[wb] = tb;\n rb(this, \"/ajax/mercury/change_archived_status.php\", xb);\n }.bind(this));\n var ub = {\n action_type: m.CHANGE_ARCHIVED_STATUS,\n action_id: null,\n thread_id: sb,\n archived: tb\n }, vb = {\n actions: [ub,],\n from_client: true,\n payload_source: v.CLIENT_CHANGE_ARCHIVED_STATUS\n };\n this.handleUpdate(vb);\n },\n changeThreadFolder: function(sb, tb) {\n p.isThreadID(sb);\n na(this, sb, function(wb) {\n var xb = {\n };\n xb[tb] = [wb,];\n rb(this, \"/ajax/mercury/move_thread.php\", xb);\n }.bind(this));\n var ub = {\n action_type: m.CHANGE_FOLDER,\n action_id: null,\n thread_id: sb,\n new_folder: tb\n }, vb = {\n actions: [ub,],\n from_client: true,\n payload_source: v.CLIENT_CHANGE_FOLDER\n };\n this.handleUpdate(vb);\n },\n changeMutingOnThread: function(sb, tb) {\n p.isThreadID(sb);\n na(this, sb, function(wb) {\n rb(this, \"/ajax/mercury/change_mute_thread.php\", {\n thread_id: wb,\n mute_settings: tb,\n payload_source: ja\n });\n }.bind(this));\n var ub = {\n action_type: m.CHANGE_MUTE_SETTINGS,\n action_id: null,\n thread_id: sb,\n mute_settings: tb\n }, vb = {\n actions: [ub,],\n from_client: true,\n payload_source: v.CLIENT_CHANGE_MUTE_SETTINGS\n };\n this.handleUpdate(vb);\n },\n markThreadSpam: function(sb) {\n p.isThreadID(sb);\n na(this, sb, function(vb) {\n rb(this, \"/ajax/mercury/mark_spam.php\", {\n id: vb\n });\n }.bind(this));\n var tb = {\n action_type: m.CHANGE_FOLDER,\n action_id: null,\n thread_id: sb,\n new_folder: ca.SPAM\n }, ub = {\n actions: [tb,],\n from_client: true,\n payload_source: v.CLIENT_CHANGE_FOLDER\n };\n this.handleUpdate(ub);\n },\n markMessagesSpam: function(sb, tb) {\n z.getServerIDs(((tb || [])), function(vb) {\n rb(this, \"/ajax/mercury/mark_spam_messages.php\", {\n message_ids: vb\n });\n }.bind(this));\n var ub = {\n action_type: m.DELETE_MESSAGES,\n action_id: null,\n thread_id: sb,\n message_ids: tb\n };\n this.handleUpdate({\n actions: [ub,],\n from_client: true,\n payload_source: v.CLIENT_DELETE_MESSAGES\n });\n },\n unmarkThreadSpam: function(sb) {\n p.isThreadID(sb);\n na(this, sb, function(vb) {\n rb(this, \"/ajax/mercury/unmark_spam.php\", {\n id: vb\n });\n }.bind(this));\n var tb = {\n action_type: m.CHANGE_FOLDER,\n action_id: null,\n thread_id: sb,\n new_folder: ca.INBOX\n }, ub = {\n actions: [tb,],\n from_client: true,\n payload_source: v.CLIENT_CHANGE_FOLDER\n };\n this.handleUpdate(ub);\n },\n deleteThread: function(sb) {\n p.isThreadID(sb);\n na(this, sb, function(vb) {\n var wb = {\n ids: [vb,]\n };\n rb(this, \"/ajax/mercury/delete_thread.php\", wb);\n }.bind(this));\n var tb = {\n action_type: m.DELETE_THREAD,\n action_id: null,\n thread_id: sb\n }, ub = {\n actions: [tb,],\n from_client: true,\n payload_source: v.CLIENT_DELETE_THREAD\n };\n this.handleUpdate(ub);\n },\n deleteMessages: function(sb, tb, ub) {\n z.getServerIDs(((tb || [])), function(wb) {\n rb(this, \"/ajax/mercury/delete_messages.php\", {\n message_ids: wb\n });\n }.bind(this));\n var vb;\n if (ub) {\n vb = {\n action_type: m.DELETE_THREAD,\n action_id: null,\n thread_id: sb\n };\n }\n else vb = {\n action_type: m.DELETE_MESSAGES,\n action_id: null,\n thread_id: sb,\n message_ids: tb\n };\n ;\n ;\n this.handleUpdate({\n actions: [vb,],\n from_client: true,\n payload_source: v.CLIENT_DELETE_MESSAGES\n });\n },\n clearChat: function(sb, tb, ub) {\n p.isThreadID(sb);\n rb(this, \"/ajax/chat/settings.php\", {\n clear_history_id: tb\n });\n var vb = [{\n action_type: m.CLEAR_CHAT,\n action_id: null,\n thread_id: sb,\n clear_time: ub\n },];\n this.handleUpdate({\n actions: vb,\n from_client: true,\n payload_source: v.CLIENT_CLEAR_CHAT\n });\n },\n sendNewMessage: function(sb, tb) {\n tb = ((tb || ja));\n if (!sb.do_not_send_to_server) {\n z.getServerIDs(((sb.forward_message_ids || [])), function(vb) {\n var wb = sb.thread_id, xb = this.tokenizeThreadID(sb.thread_id), yb = xb.type, zb = ga({\n }, sb);\n zb.forward_message_ids = vb;\n if (((((((((yb == \"root\")) && ((xb.value == zb.message_id)))) || ((((yb == \"user\")) && !oa(this, wb))))) || ((sb.thread_id == r.PENDING_THREAD_ID))))) {\n zb.client_thread_id = zb.thread_id;\n zb.thread_id = null;\n this._sendNewMessageToServer(zb, tb);\n }\n else na(this, zb.thread_id, function(ac) {\n zb.thread_id = ac;\n this._sendNewMessageToServer(zb);\n }.bind(this));\n ;\n ;\n }.bind(this));\n }\n ;\n ;\n if (((sb.thread_id != r.PENDING_THREAD_ID))) {\n var ub = {\n actions: [ga({\n }, sb),],\n from_client: true,\n payload_source: v.CLIENT_SEND_MESSAGE\n };\n this.handleUpdate(ub);\n }\n ;\n ;\n },\n _sendNewMessageToServer: function(sb, tb) {\n tb = ((tb || ja));\n rb(this, \"/ajax/mercury/send_messages.php\", {\n message_batch: [sb,],\n client: tb\n });\n },\n requestMessageConfirmation: function(sb, tb) {\n tb = ((tb || ja));\n var ub = {\n }, vb = {\n };\n {\n var fin237keys = ((window.top.JSBNG_Replay.forInKeys)((sb))), fin237i = (0);\n var wb;\n for (; (fin237i < fin237keys.length); (fin237i++)) {\n ((wb) = (fin237keys[fin237i]));\n {\n var xb = oa(this, wb);\n if (xb) {\n ub[xb] = sb[wb];\n }\n else {\n var yb = sb[wb];\n for (var zb = 0; ((zb < yb.length)); zb++) {\n vb[yb[zb]] = wb;\n ;\n };\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n var ac = Object.keys(ub), bc = Object.keys(vb);\n if (((ac.length || bc.length))) {\n rb(this, \"/ajax/mercury/confirm_messages.php\", {\n thread_message_map: ub,\n local_messages: vb,\n client: tb\n });\n }\n ;\n ;\n },\n handleMessageConfirmError: function(sb) {\n var tb = sb.getRequest().getData().thread_message_map, ub = sb.getRequest().getData().local_messages;\n if (((!tb && !ub))) {\n return;\n }\n ;\n ;\n var vb = [];\n {\n var fin238keys = ((window.top.JSBNG_Replay.forInKeys)((tb))), fin238i = (0);\n var wb;\n for (; (fin238i < fin238keys.length); (fin238i++)) {\n ((wb) = (fin238keys[fin238i]));\n {\n var xb = tb[wb];\n xb.forEach(function(ac) {\n vb.push({\n action_type: m.SEND_MESSAGE,\n client_message_id: ac,\n message_id: ac,\n client_thread_id: null,\n thread_id: wb,\n JSBNG__status: n.UNABLE_TO_CONFIRM\n });\n });\n };\n };\n };\n ;\n {\n var fin239keys = ((window.top.JSBNG_Replay.forInKeys)((ub))), fin239i = (0);\n var yb;\n for (; (fin239i < fin239keys.length); (fin239i++)) {\n ((yb) = (fin239keys[fin239i]));\n {\n var zb = ub[yb];\n vb.push({\n action_type: m.SEND_MESSAGE,\n client_message_id: yb,\n message_id: yb,\n client_thread_id: zb,\n thread_id: null,\n JSBNG__status: n.UNABLE_TO_CONFIRM\n });\n };\n };\n };\n ;\n if (vb.length) {\n this.handleUpdate({\n actions: vb,\n payload_source: v.CLIENT_HANDLE_ERROR\n });\n }\n ;\n ;\n },\n markSeen: function() {\n var sb = i.convertActionIDToTimestamp(this._lastActionId);\n rb(this, \"/ajax/mercury/mark_seen.php\", {\n seen_timestamp: sb\n });\n },\n handleRoger: function(sb) {\n var tb = ((sb.tid ? this._serverToClientIDs.getResource(sb.tid) : ((\"user:\" + sb.reader))));\n if (tb) {\n var ub = {\n };\n ub[tb] = {\n };\n ub[tb][((\"fbid:\" + sb.reader))] = sb.time;\n this.inform(\"update-roger\", ub);\n }\n ;\n ;\n },\n handleUpdateWaitForThread: function(sb, tb, ub) {\n ub = ((ub || ja));\n var vb = this._serverToClientIDs.getResource(tb);\n if (vb) {\n this.handleUpdate(sb);\n return;\n }\n ;\n ;\n this._serverToClientIDs.executeOrEnqueue(tb, function() {\n this._pendingUpdates.push(sb);\n }.bind(this));\n if (!this._fetchingThreads[tb]) {\n this._fetchingThreads[tb] = true;\n rb(this, \"/ajax/mercury/thread_info.php\", {\n threads: {\n thread_ids: [tb,]\n },\n client: ub\n });\n }\n ;\n ;\n },\n handleUpdate: function(sb) {\n var tb = [];\n if (((sb && sb.threads))) {\n for (var ub = 0; ((ub < sb.threads.length)); ub++) {\n if (!sb.threads[ub].snippet_attachments) {\n continue;\n }\n ;\n ;\n for (var vb = 0; ((vb < sb.threads[ub].snippet_attachments.length)); vb++) {\n if (sb.threads[ub].snippet_attachments[vb].share_xhp) {\n tb.push({\n i: ub,\n j: vb,\n xhp: sb.threads[ub].snippet_attachments[vb].share_xhp\n });\n sb.threads[ub].snippet_attachments[vb].share_xhp = ((((\"HTMLDivElement not shown: object contains circular \" + \"reference, which was breaking JSON.stringify. \")) + \"Look at MercuryServerRequests.handleUpdate\"));\n }\n ;\n ;\n };\n ;\n };\n }\n ;\n ;\n ia.debug(\"handle_update\", {\n payload: sb,\n from_client: sb.from_client\n });\n for (var wb = 0; ((wb < tb.length)); wb++) {\n sb.threads[tb[wb].i].snippet_attachments[tb[wb].j].share_xhp = tb[wb].xhp;\n ;\n };\n ;\n {\n var fin240keys = ((window.top.JSBNG_Replay.forInKeys)((sb))), fin240i = (0);\n (0);\n for (; (fin240i < fin240keys.length); (fin240i++)) {\n ((wb) = (fin240keys[fin240i]));\n {\n fa.getForFBID(this._fbid).synchronizeInforms(function() {\n if (!sb.from_client) {\n va(this, sb);\n this.inform(\"payload-preprocessed\", sb);\n }\n ;\n ;\n this.inform(\"update-thread-ids\", this._newlyAddedClientIDs);\n this._newlyAddedClientIDs = {\n };\n this.inform(\"update-participants\", sb);\n this.inform(\"update-threads\", sb);\n this.inform(\"update-unread\", sb);\n this.inform(\"update-threadlist\", sb);\n this.inform(\"update-messages\", sb);\n this.inform(\"update-unseen\", sb);\n this.inform(\"update-typing-state\", sb);\n this.inform(\"update-roger\", sb.roger);\n this.inform(\"model-update-completed\", null);\n wa(this);\n }.bind(this));\n break;\n };\n };\n };\n ;\n },\n _handleSendMessageErrorCommon: function(sb, tb, ub, vb) {\n ia.debug(\"handle_send_message_error_common\", {\n reliability_error_status: ub,\n request_error_status: tb\n });\n var wb = sb.getData(), xb = wb.message_batch, yb = xb.map(function(ac) {\n return {\n action_type: m.SEND_MESSAGE,\n client_message_id: ac.message_id,\n message_id: ac.message_id,\n client_thread_id: ac.client_thread_id,\n thread_id: ac.thread_id,\n JSBNG__status: tb,\n error_data: vb\n };\n });\n yb.forEach(function(ac) {\n sa(this, ac, ub);\n }.bind(this));\n var zb = {\n actions: yb,\n payload_source: v.CLIENT_HANDLE_ERROR\n };\n this.handleUpdate(zb);\n },\n handleSendMessageError: function(sb) {\n var tb = sb.getPayload(), ub = null, vb = null;\n if (((tb && tb.error_payload))) {\n ub = n.UNCONFIRMED;\n vb = \"send_error\";\n }\n else {\n ub = n.ERROR;\n vb = ((\"request_error\" + ta(sb)));\n }\n ;\n ;\n var wb = sb.error;\n if (((wb === 1404102))) {\n h.verboseErrorHandler(sb);\n }\n ;\n ;\n var xb = ((/<.*>/.test(sb.getErrorDescription()) ? sb.getErrorSummary() : sb.getErrorDescription()));\n this._handleSendMessageErrorCommon(sb.getRequest(), ub, vb, {\n type: q.SERVER,\n code: sb.getError(),\n description: xb,\n is_transient: sb.isTransient()\n });\n },\n handleSendMessageTransportError: function(sb) {\n this._handleSendMessageErrorCommon(sb.getRequest(), n.ERROR, ((\"transport_error\" + ta(sb))), {\n type: q.TRANSPORT,\n code: sb.getError(),\n is_transient: true\n });\n },\n handleSendMessageTimeout: function(sb) {\n this._handleSendMessageErrorCommon(sb, n.ERROR, \"transport_timeout\", {\n type: q.TIMEOUT,\n is_transient: true\n });\n },\n getLastActionID: function() {\n return this._lastActionId;\n }\n });\n ga(eb, da);\n function fb(sb) {\n return {\n action_type: m.LOG_MESSAGE,\n thread_id: sb,\n message_id: sb,\n timestamp: JSBNG__Date.now(),\n timestamp_absolute: \"\",\n timestamp_relative: \"\",\n is_unread: false,\n source: x.UNKNOWN,\n log_message_type: u.SERVER_ERROR,\n log_message_data: {\n }\n };\n };\n;\n function gb(sb) {\n var tb = sb.getData(), ub = ((tb.request_user_id ? tb.request_user_id : j.user));\n return eb.getForFBID(ub);\n };\n;\n function hb(sb, tb) {\n gb(tb).handleUpdate(sb);\n };\n;\n function ib(sb, tb) {\n var ub = ((sb.client || tb.client));\n return {\n client: ub,\n message_batch: sb.message_batch.concat(tb.message_batch)\n };\n };\n;\n function jb(sb, tb) {\n var ub = {\n };\n ga(ub, sb.ids);\n ga(ub, tb.ids);\n var vb = ((sb.client || tb.client));\n return {\n ids: ub,\n client: vb\n };\n };\n;\n function kb(sb, tb) {\n return tb;\n };\n;\n function lb(sb) {\n var tb = gb(sb.getRequest());\n tb.handleThreadInfoError(sb);\n };\n;\n function mb(sb) {\n var tb = gb(sb.getRequest());\n tb.handleSendMessageError(sb);\n };\n;\n function nb(sb) {\n var tb = gb(sb.getRequest());\n tb.handleSendMessageTransportError(sb);\n };\n;\n function ob(sb) {\n var tb = gb(sb);\n tb.handleSendMessageTimeout(sb);\n };\n;\n function pb(sb) {\n var tb = gb(sb.getRequest());\n tb.handleMessageConfirmError(sb);\n };\n;\n function qb(sb) {\n ea.registerEndpoints({\n \"/ajax/mercury/thread_sync.php\": {\n request_user_id: sb._fbid,\n mode: ea.IDEMPOTENT,\n handler: hb\n },\n \"/ajax/mercury/thread_info.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_DEFERRED_MULTI,\n batch_function: xa,\n handler: hb,\n error_handler: lb\n },\n \"/ajax/mercury/mark_folder_as_read.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n },\n \"/ajax/mercury/change_read_status.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: jb,\n handler: hb\n },\n \"/ajax/mercury/send_messages.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: ib,\n batch_size_limit: aa.SEND_BATCH_LIMIT,\n handler: hb,\n error_handler: mb,\n transport_error_handler: nb,\n timeout: w.sendMessageTimeout,\n timeout_handler: ob,\n connection_retries: aa.SEND_CONNECTION_RETRIES\n },\n \"/ajax/mercury/mark_seen.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: kb,\n handler: hb\n },\n \"/ajax/mercury/confirm_messages.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb,\n error_handler: pb\n },\n \"/ajax/mercury/threadlist_info.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE_UNIQUE,\n batch_function: za,\n handler: hb\n },\n \"/ajax/mercury/mark_spam.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n },\n \"/ajax/mercury/mark_spam_messages.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n },\n \"/ajax/mercury/unmark_spam.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n },\n \"/ajax/mercury/unread_threads.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE_UNIQUE,\n batch_function: ya,\n handler: hb\n },\n \"/ajax/chat/settings.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE\n },\n \"/ajax/mercury/change_archived_status.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: bb,\n handler: hb\n },\n \"/ajax/mercury/delete_thread.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: db,\n handler: hb\n },\n \"/ajax/mercury/delete_messages.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n },\n \"/ajax/mercury/move_thread.php\": {\n request_user_id: sb._fbid,\n mode: ea.BATCH_SUCCESSIVE,\n batch_function: cb,\n handler: hb\n },\n \"/ajax/mercury/change_mute_thread.php\": {\n request_user_id: sb._fbid,\n mode: ea.IMMEDIATE,\n handler: hb\n }\n });\n };\n;\n function rb(sb, tb, ub, vb) {\n ea.trySend(tb, ub, vb, sb._fbid);\n };\n;\n e.exports = eb;\n});\n__d(\"MercuryParticipants\", [\"Env\",\"ImageSourceRequest\",\"ImageSourceType\",\"MercuryAssert\",\"MercuryIDs\",\"MercuryParticipantTypes\",\"MercuryParticipantsConstants\",\"PhotoResizeModeConst\",\"MercuryServerRequests\",\"ShortProfiles\",\"copyProperties\",\"getObjectValues\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\"), h = b(\"ImageSourceRequest\"), i = b(\"ImageSourceType\"), j = b(\"MercuryAssert\"), k = b(\"MercuryIDs\"), l = b(\"MercuryParticipantTypes\"), m = b(\"MercuryParticipantsConstants\"), n = b(\"PhotoResizeModeConst\"), o = b(\"MercuryServerRequests\").get(), p = b(\"ShortProfiles\"), q = b(\"copyProperties\"), r = b(\"getObjectValues\"), s = b(\"tx\"), t = ((\"fbid:\" + g.user)), u = {\n }, v = {\n }, w = function(ba) {\n ba = z(ba);\n if (u[ba.id]) {\n q(u[ba.id], ba);\n }\n else u[ba.id] = q({\n }, ba);\n ;\n ;\n if (ba.vanity) {\n v[ba.vanity] = ba.id;\n }\n ;\n ;\n };\n function x(ba) {\n j.isEmailParticipantID(ba);\n var ca = k.tokenize(ba), da = ca.value;\n return {\n gender: m.UNKNOWN_GENDER,\n href: null,\n id: ba,\n image_src: m.EMAIL_IMAGE,\n big_image_src: m.EMAIL_IMAGE,\n JSBNG__name: da,\n short_name: da,\n employee: false,\n call_promo: false\n };\n };\n;\n function y(ba, ca, da) {\n j.allParticipantIDs(ba);\n var ea = {\n }, fa = {\n };\n ba.forEach(function(ha) {\n if (((u[ha] && !da))) {\n ea[ha] = q({\n }, u[ha]);\n }\n else {\n var ia = k.tokenize(ha);\n if (((ia.type == \"fbid\"))) {\n var ja = ia.value;\n fa[ha] = ja;\n }\n else if (((ia.type == \"email\"))) {\n ea[ha] = x(ha);\n }\n \n ;\n ;\n }\n ;\n ;\n });\n var ga = r(fa);\n if (ga.length) {\n p.getMulti(ga, function(ha) {\n {\n var fin241keys = ((window.top.JSBNG_Replay.forInKeys)((fa))), fin241i = (0);\n var ia;\n for (; (fin241i < fin241keys.length); (fin241i++)) {\n ((ia) = (fin241keys[fin241i]));\n {\n var ja = fa[ia], ka = ha[ja];\n ea[ia] = {\n gender: ka.gender,\n href: ka.uri,\n id: ia,\n image_src: ka.thumbSrc,\n JSBNG__name: ka.JSBNG__name,\n short_name: ka.firstName,\n employee: ka.employee,\n call_promo: ka.showVideoPromo,\n type: ka.type,\n vanity: ka.vanity,\n is_friend: ka.is_friend,\n social_snippets: ka.social_snippets\n };\n w(ea[ia]);\n };\n };\n };\n ;\n ca(ea);\n });\n }\n else ca(ea);\n ;\n ;\n };\n;\n function z(ba) {\n var ca = ((((ba.type === l.USER)) || ((ba.type === l.FRIEND))));\n if (!ca) {\n return ba;\n }\n ;\n ;\n if (((((!ba.JSBNG__name && !ba.href)) && !ba.vanity))) {\n var da = \"Facebook User\";\n ba.JSBNG__name = da;\n ba.short_name = da;\n }\n ;\n ;\n return ba;\n };\n;\n var aa = {\n user: t,\n isAuthor: function(ba) {\n return ((ba === t));\n },\n getIDFromVanityOrFBID: function(ba) {\n if (!ba) {\n return;\n }\n ;\n ;\n if (v[ba]) {\n return v[ba];\n }\n ;\n ;\n if (ba.match(\"^\\\\d+$\")) {\n return aa.getIDForUser(ba);\n }\n ;\n ;\n },\n getNow: function(ba) {\n return u[ba];\n },\n get: function(ba, ca) {\n j.isParticipantID(ba);\n aa.getMulti([ba,], function(da) {\n ca(da[ba]);\n });\n },\n getMulti: function(ba, ca, da) {\n return y(ba, ca, false);\n },\n getBigImageMulti: function(ba, ca) {\n j.allParticipantIDs(ba);\n var da = m.BIG_IMAGE_SIZE;\n aa.getMulti(ba, function(ea) {\n var fa = {\n }, ga = 0, ha = function(la, ma) {\n ga++;\n fa[la] = ma;\n if (((ga === ba.length))) {\n ca(fa);\n }\n ;\n ;\n }, ia = function(la, ma) {\n u[la].big_image_src = ma.uri;\n ha(la, ma.uri);\n };\n {\n var fin242keys = ((window.top.JSBNG_Replay.forInKeys)((ea))), fin242i = (0);\n var ja;\n for (; (fin242i < fin242keys.length); (fin242i++)) {\n ((ja) = (fin242keys[fin242i]));\n {\n var ka = ea[ja];\n if (!ka.big_image_src) {\n new h().setFBID(aa.getUserID(ja)).setType(i.PROFILE_PICTURE).setDimensions(da, da).setResizeMode(n.COVER).setCallback(ia.curry(ja)).send();\n }\n else ha(ka.id, ka.big_image_src);\n ;\n ;\n };\n };\n };\n ;\n });\n },\n getOrderedBigImageMulti: function(ba, ca) {\n aa.getBigImageMulti(ba, function(da) {\n var ea = ba.map(function(fa) {\n return da[fa];\n });\n ca(ea);\n });\n },\n getMultiForceDownload: function(ba, ca) {\n return y(ba, ca, true);\n },\n getUserID: function(ba) {\n return k.getUserIDFromParticipantID(ba);\n },\n getIDForUser: function(ba) {\n return ((\"fbid:\" + ba));\n },\n addParticipants: function(ba) {\n ba.forEach(w);\n }\n };\n o.subscribe(\"update-participants\", function(ba, ca) {\n aa.addParticipants(((ca.participants || [])));\n });\n e.exports = aa;\n});\n__d(\"RangedCallbackManager\", [\"CallbackManagerController\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"CallbackManagerController\"), h = b(\"copyProperties\"), i = b(\"createObjectFrom\"), j = function(k, l, m) {\n this._resources = [];\n this._reachedEndOfArray = false;\n this._error = false;\n this._existingIDs = {\n };\n this._controller = new g(this._constructCallbackArg.bind(this));\n this._getValueHandler = k;\n this._compareValuesHandler = l;\n this._skipOnStrictHandler = m;\n };\n h(j.prototype, {\n executeOrEnqueue: function(k, l, m, n) {\n return this._controller.executeOrEnqueue({\n start: k,\n limit: l\n }, m, {\n strict: !!n\n });\n },\n unsubscribe: function(k) {\n this._controller.unsubscribe(k);\n },\n getUnavailableResources: function(k) {\n var l = this._controller.getRequest(k), m = [];\n if (((l && !this._reachedEndOfArray))) {\n var n = l.request, o = this._filterForStrictResults(l.options), p = ((n.start + n.limit));\n for (var q = o.length; ((q < p)); q++) {\n m.push(q);\n ;\n };\n ;\n }\n ;\n ;\n return m;\n },\n addResources: function(k) {\n k.forEach(function(l) {\n if (!this._existingIDs[l]) {\n this._existingIDs[l] = true;\n this._resources.push(l);\n this._error = null;\n }\n ;\n ;\n }.bind(this));\n this.resortResources();\n this._controller.runPossibleCallbacks();\n },\n addResourcesWithoutSorting: function(k, l) {\n var m = this._resources.slice(0, l);\n m = m.concat(k);\n m = m.concat(this._resources.slice(l));\n this._resources = m;\n h(this._existingIDs, i(k, true));\n this._error = null;\n this._controller.runPossibleCallbacks();\n },\n removeResources: function(k) {\n k.forEach(function(l) {\n if (this._existingIDs[l]) {\n this._existingIDs[l] = false;\n var m = this._resources.indexOf(l);\n if (((m != -1))) {\n this._resources.splice(m, 1);\n }\n ;\n ;\n }\n ;\n ;\n }.bind(this));\n },\n removeAllResources: function() {\n this._resources = [];\n this._existingIDs = {\n };\n },\n resortResources: function() {\n this._resources = this._resources.sort(function(k, l) {\n return this._compareValuesHandler(this._getValueHandler(k), this._getValueHandler(l));\n }.bind(this));\n },\n setReachedEndOfArray: function() {\n if (!this._reachedEndOfArray) {\n this._reachedEndOfArray = true;\n this._error = null;\n this._controller.runPossibleCallbacks();\n }\n ;\n ;\n },\n hasReachedEndOfArray: function() {\n return this._reachedEndOfArray;\n },\n setError: function(k) {\n if (((this._error !== k))) {\n this._error = k;\n this._controller.runPossibleCallbacks();\n }\n ;\n ;\n },\n getError: function(k, l, m) {\n var n = this._filterForStrictResults({\n strict: m\n });\n return ((((((k + l)) > n.length)) ? this._error : null));\n },\n hasResource: function(k) {\n return this._existingIDs[k];\n },\n getResourceAtIndex: function(k) {\n return this._resources[k];\n },\n getAllResources: function() {\n return this._resources.concat();\n },\n getCurrentArraySize: function() {\n return this._resources.length;\n },\n _filterForStrictResults: function(k) {\n var l = this._resources;\n if (((((k && k.strict)) && this._skipOnStrictHandler))) {\n l = l.filter(this._skipOnStrictHandler);\n }\n ;\n ;\n return l;\n },\n _constructCallbackArg: function(k, l) {\n var m = this._filterForStrictResults(l);\n if (((((!this._reachedEndOfArray && !this._error)) && ((((k.start + k.limit)) > m.length))))) {\n return false;\n }\n else {\n var n = m.slice(k.start, ((k.start + k.limit))), o = ((((((k.start + k.limit)) > m.length)) ? this._error : null));\n return [n,o,];\n }\n ;\n ;\n },\n getElementsUntil: function(k) {\n var l = [];\n for (var m = 0; ((m < this._resources.length)); m++) {\n var n = this._getValueHandler(this._resources[m]);\n if (((this._compareValuesHandler(n, k) > 0))) {\n break;\n }\n ;\n ;\n l.push(this._resources[m]);\n };\n ;\n return l;\n }\n });\n e.exports = j;\n});\n__d(\"MercuryFolders\", [\"MessagingTag\",\"arrayContains\",], function(a, b, c, d, e, f) {\n var g = b(\"MessagingTag\"), h = b(\"arrayContains\"), i = [g.INBOX,g.OTHER,g.ACTION_ARCHIVED,g.SPAM,], j = {\n getSupportedFolders: function() {\n return i.concat();\n },\n isSupportedFolder: function(k) {\n return h(i, k);\n },\n getFromMeta: function(k) {\n var l = k.folder;\n if (k.is_archived) {\n l = g.ACTION_ARCHIVED;\n }\n ;\n ;\n return l;\n }\n };\n e.exports = j;\n});\n__d(\"MercuryAttachment\", [\"MercuryAttachmentContentType\",\"MercuryAttachmentType\",\"startsWith\",], function(a, b, c, d, e, f) {\n var g = b(\"MercuryAttachmentContentType\"), h = b(\"MercuryAttachmentType\"), i = b(\"startsWith\"), j = {\n getAttachIconClass: function(k) {\n switch (k) {\n case g.PHOTO:\n return \"MercuryPhotoIcon\";\n case g.VIDEO:\n return \"MercuryVideoIcon\";\n case g.MUSIC:\n return \"MercuryMusicIcon\";\n case g.VOICE:\n return \"MercuryVoiceIcon\";\n case g.TEXT:\n return \"MercuryTextIcon\";\n case g.MSWORD:\n return \"MercuryMSWordIcon\";\n case g.MSXLS:\n return \"MercuryMSXLSIcon\";\n case g.MSPPT:\n return \"MercuryMSPPTIcon\";\n };\n ;\n return \"MercuryDefaultIcon\";\n },\n getAttachIconClassByMime: function(k) {\n if (i(k, \"image\")) {\n return \"MercuryPhotoIcon\";\n }\n else if (i(k, \"video\")) {\n return \"MercuryVideoIcon\";\n }\n else if (i(k, \"audio\")) {\n return \"MercuryMusicIcon\";\n }\n else if (i(k, \"text/plain\")) {\n return \"MercuryTextIcon\";\n }\n else return \"MercuryDefaultIcon\"\n \n \n \n ;\n },\n getAttachTypeByMime: function(k) {\n if (i(k, \"image\")) {\n return g.PHOTO;\n }\n else if (i(k, \"video\")) {\n return g.VIDEO;\n }\n else if (i(k, \"audio\")) {\n return g.MUSIC;\n }\n else if (i(k, \"text/plain\")) {\n return g.TEXT;\n }\n else return g.UNKNOWN\n \n \n \n ;\n },\n convertRaw: function(k) {\n var l = [];\n for (var m = 0; ((m < k.length)); m++) {\n var n = k[m];\n if (((n.attach_type === h.PHOTO))) {\n l.push(n);\n }\n else if (n.filename) {\n var o = j.getAttachTypeByMime(n.filetype), p = {\n };\n p.attach_type = h.FILE;\n p.JSBNG__name = n.filename;\n p.icon_type = o;\n p.url = \"\";\n if (((o == g.PHOTO))) {\n p.preview_loading = true;\n }\n ;\n ;\n l.push(p);\n }\n \n ;\n ;\n };\n ;\n return l;\n }\n };\n e.exports = j;\n});\n__d(\"MercuryThreads\", [\"Arbiter\",\"TimestampConverter\",\"MercuryFolders\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryAssert\",\"MercuryAttachment\",\"MercuryGlobalActionType\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercurySingletonMixin\",\"MercuryThreadMode\",\"MessagingTag\",\"MercuryParticipants\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"TimestampConverter\"), i = b(\"MercuryFolders\"), j = b(\"JSLogger\"), k = b(\"KeyedCallbackManager\"), l = b(\"MercuryActionTypeConstants\"), m = b(\"MercuryAssert\"), n = b(\"MercuryAttachment\"), o = b(\"MercuryGlobalActionType\"), p = b(\"MercuryIDs\"), q = b(\"MercuryLogMessageType\"), r = b(\"MercurySingletonMixin\"), s = b(\"MercuryThreadMode\"), t = b(\"MessagingTag\"), u = b(\"MercuryParticipants\"), v = b(\"MercuryServerRequests\"), w = b(\"MercuryThreadInformer\"), x = b(\"copyProperties\"), y = b(\"createObjectFrom\"), z = b(\"removeFromArray\"), aa = j.create(\"mercury_threads\");\n function ba(na, oa, pa) {\n var qa = y(oa.participants, true), ra = u.getIDForUser(na._fbid);\n pa.forEach(function(sa) {\n if (((qa[sa] !== true))) {\n oa.participants.push(sa);\n if (((sa === ra))) {\n oa.is_subscribed = true;\n }\n ;\n ;\n }\n ;\n ;\n });\n };\n;\n function ca(na, oa, pa) {\n z(oa.participants, pa);\n if (((pa === u.getIDForUser(na._fbid)))) {\n oa.is_subscribed = false;\n }\n ;\n ;\n };\n;\n function da(na, oa) {\n if (((na.participants[0] != oa))) {\n z(na.participants, oa);\n na.participants.unshift(oa);\n }\n ;\n ;\n };\n;\n function ea(na, oa) {\n var pa = oa.body, qa = oa.subject, ra = \"\";\n if (qa) {\n qa = qa.toLowerCase();\n if (((pa.slice(0, qa.length).toLowerCase() == qa))) {\n ra = pa;\n }\n else if (pa) {\n ra = ((((qa + \" \\u00b7 \")) + pa));\n }\n else ra = qa;\n \n ;\n ;\n }\n else ra = pa;\n ;\n ;\n na.snippet = ra;\n na.snippet_has_attachment = oa.has_attachment;\n if (((oa.raw_attachments && ((oa.raw_attachments.length > 0))))) {\n var sa = n.convertRaw(oa.raw_attachments);\n na.snippet_attachments = sa;\n }\n else na.snippet_attachments = oa.attachments;\n ;\n ;\n na.is_forwarded_snippet = !!oa.forward_count;\n na.snippet_sender = oa.author;\n };\n;\n function fa(na, oa, pa) {\n if (!oa) {\n return false;\n }\n ;\n ;\n if (!oa.timestamp) {\n return true;\n }\n ;\n ;\n var qa = !oa.unread_count;\n if (((pa == qa))) {\n return false;\n }\n ;\n ;\n oa.unread_count = ((pa ? 0 : 1));\n na._threadInformer.updatedThread(oa.thread_id);\n return true;\n };\n;\n function ga(na, oa) {\n var pa = na._threads.getAllResources();\n {\n var fin243keys = ((window.top.JSBNG_Replay.forInKeys)((pa))), fin243i = (0);\n var qa;\n for (; (fin243i < fin243keys.length); (fin243i++)) {\n ((qa) = (fin243keys[fin243i]));\n {\n var ra = pa[qa];\n if (((ra.folder == oa))) {\n ra.unread_count = 0;\n na._threads.setResource(qa, ra);\n na._threadInformer.updatedThread(qa);\n }\n ;\n ;\n };\n };\n };\n ;\n };\n;\n function ha(na, oa, pa) {\n if (((!oa || ((oa.chat_clear_time === pa))))) {\n return false;\n }\n ;\n ;\n oa.chat_clear_time = pa;\n na._threadInformer.reorderedMessages(oa.thread_id);\n return true;\n };\n;\n function ia(na, oa, pa, qa) {\n var ra = pa.action_type;\n if (((((ra == l.USER_GENERATED_MESSAGE)) || ((ra == l.LOG_MESSAGE))))) {\n ((pa.is_unread && oa.unread_count++));\n oa.message_count++;\n oa.is_archived = false;\n }\n ;\n ;\n switch (ra) {\n case l.USER_GENERATED_MESSAGE:\n da(oa, pa.author);\n break;\n case l.SEND_MESSAGE:\n var sa = pa.log_message_type;\n if (((sa == q.THREAD_IMAGE))) {\n oa.image_src = ((pa.log_message_data.image ? pa.log_message_data.image.preview_url : null));\n }\n ;\n ;\n oa.snippet_attachments = pa.attachments;\n break;\n case l.LOG_MESSAGE:\n var sa = pa.log_message_type;\n if (((sa == q.SUBSCRIBE))) {\n ba(na, oa, pa.log_message_data.added_participants);\n }\n else if (((sa == q.JOINABLE_JOINED))) {\n ba(na, oa, [pa.log_message_data.joined_participant,]);\n }\n else if (((sa == q.UNSUBSCRIBE))) {\n ca(na, oa, pa.author);\n }\n else if (((sa == q.THREAD_IMAGE))) {\n if (!qa) {\n oa.image_src = ((pa.log_message_data.image ? pa.log_message_data.image.preview_url : null));\n }\n ;\n ;\n }\n else if (((sa == q.THREAD_NAME))) {\n oa.JSBNG__name = pa.log_message_data.JSBNG__name;\n }\n \n \n \n \n ;\n ;\n break;\n case l.CHANGE_READ_STATUS:\n if (pa.timestamp) {\n na._threadInformer.changedThreadReadState(oa.thread_id, pa.mark_as_read, pa.timestamp);\n }\n ;\n ;\n fa(na, oa, pa.mark_as_read);\n break;\n case l.CLEAR_CHAT:\n ha(na, oa, pa.clear_time);\n break;\n case l.CHANGE_ARCHIVED_STATUS:\n oa.is_archived = pa.archived;\n break;\n case l.CHANGE_FOLDER:\n oa.folder = pa.new_folder;\n break;\n case l.DELETE_MESSAGES:\n if (qa) {\n oa.snippet = \"...\";\n oa.snippet_has_attachment = false;\n oa.snippet_attachments = null;\n oa.snippet_sender = null;\n oa.is_forwarded_snippet = false;\n na._threadInformer.updatedThread(pa.thread_id);\n }\n else if (pa.message_ids) {\n oa.message_count = ((oa.message_count - pa.message_ids.length));\n }\n \n ;\n ;\n break;\n case l.CHANGE_MUTE_SETTINGS:\n if (((pa.mute_settings !== undefined))) {\n var ta = ((na._fbid + \"@facebook.com\"));\n if (oa.mute_settings) {\n if (pa.mute_settings) {\n oa.mute_settings[ta] = pa.mute_settings;\n }\n else delete oa.mute_settings[ta];\n ;\n ;\n na._threadInformer.updatedThread(oa.thread_id);\n }\n ;\n ;\n }\n ;\n ;\n break;\n };\n ;\n if (pa.action_id) {\n oa.last_action_id = h.maxValidActionID(pa.action_id, oa.last_action_id);\n }\n ;\n ;\n };\n;\n function ja(na, oa) {\n var pa = na._serverRequests.tokenizeThreadID(oa.thread_id);\n if (((pa.type == \"group\"))) {\n aa.error(\"invalid_new_thread_message\", oa);\n return undefined;\n }\n ;\n ;\n var qa = la(na, oa.specific_to_list), ra = {\n thread_id: oa.thread_id,\n last_action_id: oa.action_id,\n participants: oa.specific_to_list,\n JSBNG__name: null,\n snippet: oa.body,\n snippet_has_attachment: false,\n snippet_attachments: [],\n snippet_sender: oa.author,\n unread_count: 0,\n message_count: 0,\n image_src: null,\n timestamp_absolute: oa.timestamp_absolute,\n timestamp_relative: oa.timestamp_relative,\n timestamp: oa.timestamp,\n canonical_fbid: ((((pa.type === \"user\")) ? pa.value : null)),\n is_canonical_user: ((pa.type === \"user\")),\n is_canonical: qa,\n is_subscribed: true,\n root_message_threading_id: oa.message_id,\n folder: t.INBOX,\n is_archived: false,\n mode: s.TITAN_ORIGINATED\n };\n return ra;\n };\n;\n function ka(na) {\n this._fbid = na;\n this._serverRequests = v.getForFBID(this._fbid);\n this._threadInformer = w.getForFBID(this._fbid);\n this._threads = new k();\n ma(this);\n };\n;\n x(ka.prototype, {\n getThreadMetaNow: function(na) {\n m.isThreadID(na);\n return this._threads.getResource(na);\n },\n getThreadMeta: function(na, oa, pa) {\n m.isThreadID(na);\n var qa = this._threads.executeOrEnqueue(na, oa), ra = this._threads.getUnavailableResources(qa);\n if (ra.length) {\n var sa = this._serverRequests.tokenizeThreadID(na);\n if (((sa.type == \"user\"))) {\n this.getCanonicalThreadToUser(sa.value);\n }\n else this._serverRequests.fetchThreadData(ra, pa);\n ;\n ;\n }\n ;\n ;\n return qa;\n },\n unsubscribe: function(na) {\n this._threads.unsubscribe(na);\n },\n changeThreadReadStatus: function(na, oa) {\n m.isThreadID(na);\n var pa = this._threads.getResource(na);\n if (fa(this, pa, oa)) {\n this._serverRequests.changeThreadReadStatus(na, oa, i.getFromMeta(pa));\n }\n ;\n ;\n },\n changeThreadArchivedStatus: function(na, oa) {\n m.isThreadID(na);\n var pa = this._threads.getResource(na);\n if (((pa.is_archived != oa))) {\n pa.is_archived = oa;\n this._threadInformer.updatedThread(pa.thread_id);\n this._serverRequests.changeThreadArchivedStatus(na, oa);\n }\n ;\n ;\n },\n markThreadSpam: function(na) {\n this._serverRequests.markThreadSpam(na);\n },\n unmarkThreadSpam: function(na) {\n this._serverRequests.unmarkThreadSpam(na);\n },\n updateThreadMuteSetting: function(na, oa) {\n this._serverRequests.changeMutingOnThread(na, oa);\n },\n changeFolder: function(na, oa) {\n m.isThreadID(na);\n var pa = this._threads.getResource(na);\n if (((pa && ((pa.folder != oa))))) {\n pa.folder = oa;\n this._threadInformer.updatedThread(pa.thread_id);\n this._serverRequests.changeThreadFolder(na, oa);\n }\n ;\n ;\n },\n deleteThread: function(na) {\n m.isThreadID(na);\n this._serverRequests.deleteThread(na);\n },\n updateThreads: function(na) {\n if (((!na || !na.length))) {\n return;\n }\n ;\n ;\n var oa = {\n };\n na.forEach(function(pa) {\n oa[pa.thread_id] = pa;\n });\n this._threads.addResourcesAndExecute(oa);\n },\n updateMetadataByActions: function(na, oa) {\n if (((!na || !na.length))) {\n return;\n }\n ;\n ;\n var pa = {\n }, qa = {\n }, ra = {\n };\n for (var sa = 0; ((sa < na.length)); sa++) {\n var ta = na[sa];\n if (ta.is_forward) {\n continue;\n }\n ;\n ;\n var ua = ta.action_type, va = ta.thread_id;\n m.isThreadID(va);\n var wa = this.getThreadMetaNow(va);\n if (((((ua == l.LOG_MESSAGE)) && ((ta.log_message_type == q.SERVER_ERROR))))) {\n continue;\n }\n ;\n ;\n if (((((!wa && !ta.action_id)) && ((ua == l.USER_GENERATED_MESSAGE))))) {\n wa = ja(this, ta);\n this._threads.setResource(va, wa);\n }\n ;\n ;\n if (wa) {\n if (((ua == l.DELETE_THREAD))) {\n wa.message_count = 0;\n this._threadInformer.deletedThread(va);\n continue;\n }\n ;\n ;\n var xa = !!ta.action_id;\n if (((((ua == l.LOG_MESSAGE)) || ((ua == l.USER_GENERATED_MESSAGE))))) {\n xa = !oa;\n }\n ;\n ;\n if (((((wa.server_timestamp && ((ta.timestamp <= wa.server_timestamp)))) && xa))) {\n continue;\n }\n ;\n ;\n if (!ra[va]) {\n ra[va] = x({\n }, wa);\n }\n ;\n ;\n ia(this, ra[va], ta, oa);\n if (((ua == l.USER_GENERATED_MESSAGE))) {\n pa[va] = ta;\n }\n ;\n ;\n if (((((((ua == l.USER_GENERATED_MESSAGE)) || ((ua == l.LOG_MESSAGE)))) || ((ua == l.SEND_MESSAGE))))) {\n if (((((ta && ta.timestamp)) && ((!qa[va] || ((ta.timestamp > qa[va].timestamp))))))) {\n qa[va] = ta;\n }\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n {\n var fin244keys = ((window.top.JSBNG_Replay.forInKeys)((ra))), fin244i = (0);\n var ya;\n for (; (fin244i < fin244keys.length); (fin244i++)) {\n ((ya) = (fin244keys[fin244i]));\n {\n var za = ra[ya], ab = pa[ya];\n if (ab) {\n ea(za, ab);\n }\n ;\n ;\n var bb = qa[ya], cb = za.timestamp;\n if (bb) {\n if (((bb.timestamp > cb))) {\n za = x(za, {\n timestamp_absolute: bb.timestamp_absolute,\n timestamp_relative: bb.timestamp_relative,\n timestamp: bb.timestamp\n });\n }\n ;\n ;\n var db = za.server_timestamp;\n if (((!oa && ((bb.timestamp > db))))) {\n za.server_timestamp = bb.timestamp;\n }\n ;\n ;\n }\n ;\n ;\n this._threads.setResource(ya, za);\n };\n };\n };\n ;\n },\n getCanonicalThreadToUser: function(na, oa, pa) {\n return this.getCanonicalThreadToParticipant(((\"fbid:\" + na)), oa, pa);\n },\n getCanonicalThreadToParticipant: function(na, oa, pa) {\n var qa = this.getThreadIDForParticipant(na), ra = this._threads.getResource(qa);\n if (((typeof ra == \"undefined\"))) {\n ra = this.createNewLocalThread(qa, [u.getIDForUser(this._fbid),na,], oa);\n this._serverRequests.fetchThreadData([qa,], pa);\n }\n ;\n ;\n return ra;\n },\n getThreadIdForUser: function(na) {\n return ((\"user:\" + na));\n },\n getThreadIDForParticipant: function(na) {\n var oa = p.tokenize(na);\n return this.getThreadIdForUser(oa.value);\n },\n createNewLocalThread: function(na, oa, pa) {\n var qa = this._threads.getResource(na);\n if (!qa) {\n var ra = this._serverRequests.tokenizeThreadID(na);\n qa = {\n thread_id: na,\n last_action_id: null,\n participants: oa,\n JSBNG__name: null,\n snippet: \"\",\n snippet_has_attachment: false,\n snippet_sender: null,\n unread_count: ((pa ? pa : 0)),\n message_count: 0,\n image_src: null,\n timestamp_absolute: null,\n timestamp_relative: null,\n timestamp: null,\n canonical_fbid: ((((ra.type === \"user\")) ? ra.value : null)),\n is_canonical_user: ((ra.type == \"user\")),\n is_canonical: la(this, oa),\n is_subscribed: true,\n root_message_threading_id: null,\n folder: t.INBOX,\n is_archived: false,\n mode: s.TITAN_ORIGINATED\n };\n this._threads.setResource(na, qa);\n }\n ;\n ;\n return qa;\n },\n addParticipantsToThreadLocally: function(na, oa) {\n var pa = this._threads.getResource(na);\n if (pa) {\n ba(this, pa, oa);\n this._threadInformer.updatedThread(pa.thread_id);\n }\n ;\n ;\n },\n getCanonicalUserInThread: function(na) {\n var oa = this._serverRequests.tokenizeThreadID(na);\n return ((((oa.type == \"user\")) ? oa.value : null));\n },\n getCanonicalGroupInThread: function(na) {\n var oa = this._serverRequests.tokenizeThreadID(na);\n return ((((oa.type == \"group\")) ? oa.value : null));\n },\n isEmptyLocalThread: function(na) {\n var oa = this._threads.getResource(na);\n if (!oa) {\n return false;\n }\n ;\n ;\n var pa = this._serverRequests.tokenizeThreadID(na);\n return ((((pa.type == \"root\")) && !oa.timestamp));\n },\n isNewEmptyLocalThread: function(na) {\n if (!this.isEmptyLocalThread(na)) {\n return false;\n }\n ;\n ;\n var oa = this._threads.getResource(na);\n return ((oa.participants && ((oa.participants.length === 0))));\n },\n canReply: function(na) {\n var oa = this._threads.getResource(na);\n return ((((((oa && oa.is_subscribed)) && ((oa.mode != s.OBJECT_ORIGINATED)))) && ((oa.recipients_loadable || ((oa.recipients_loadable === undefined))))));\n }\n });\n x(ka, r);\n function la(na, oa) {\n var pa = oa.filter(function(qa) {\n return ((qa != u.getIDForUser(na._fbid)));\n });\n return ((pa.length <= 1));\n };\n;\n function ma(na) {\n na._serverRequests.subscribe(\"update-threads\", function(oa, pa) {\n var qa = ((pa.actions || [])).filter(function(ua) {\n return ua.thread_id;\n });\n na.updateThreads(pa.threads);\n na.updateMetadataByActions(qa, pa.from_client);\n ((pa.threads || [])).forEach(function(ua) {\n na._threadInformer.updatedThread(ua.thread_id);\n });\n var ra = ((pa.global_actions || []));\n for (var sa = 0; ((sa < ra.length)); sa++) {\n var ta = ra[sa];\n if (((ta.action_type == o.MARK_ALL_READ))) {\n ga(na, ta.folder);\n }\n ;\n ;\n };\n ;\n });\n };\n;\n g.subscribe(j.DUMP_EVENT, function(na, oa) {\n oa.messaging = ((oa.messaging || {\n }));\n oa.messaging.threads = {\n };\n var pa = ka._getInstances();\n {\n var fin245keys = ((window.top.JSBNG_Replay.forInKeys)((pa))), fin245i = (0);\n var qa;\n for (; (fin245i < fin245keys.length); (fin245i++)) {\n ((qa) = (fin245keys[fin245i]));\n {\n oa.messaging.threads[qa] = pa[qa]._threads.dumpResources();\n ;\n };\n };\n };\n ;\n });\n e.exports = ka;\n});\n__d(\"formatDate\", [\"DateFormatConfig\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"DateFormatConfig\"), h = b(\"tx\"), i = [\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",], j = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",], k = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",], l = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",];\n function m(o, p) {\n p = ((p || 2));\n o = ((\"\" + o));\n while (((o.length < p))) {\n o = ((\"0\" + o));\n ;\n };\n ;\n return o;\n };\n;\n function n(o, p, q, r) {\n if (!p) {\n return \"\";\n }\n ;\n ;\n var s = [], t = null, u = null, v = ((q ? \"getUTC\" : \"get\")), w = o[((v + \"JSBNG__Date\"))](), x = o[((v + \"Day\"))](), y = o[((v + \"Month\"))](), z = o[((v + \"FullYear\"))](), aa = o[((v + \"Hours\"))](), ba = o[((v + \"Minutes\"))](), ca = o[((v + \"Seconds\"))](), da = o[((v + \"Milliseconds\"))]();\n for (var ea = 0; ((ea < p.length)); ea++) {\n u = p.charAt(ea);\n if (((u == \"\\\\\"))) {\n ea++;\n s.push(p.charAt(ea));\n continue;\n }\n ;\n ;\n switch (u) {\n case \"d\":\n t = m(w);\n break;\n case \"D\":\n t = i[x];\n break;\n case \"j\":\n t = w;\n break;\n case \"l\":\n t = j[x];\n break;\n case \"F\":\n \n case \"f\":\n t = l[y];\n break;\n case \"m\":\n t = m(((y + 1)));\n break;\n case \"M\":\n t = k[y];\n break;\n case \"n\":\n t = ((y + 1));\n break;\n case \"Y\":\n t = z;\n break;\n case \"y\":\n t = ((\"\" + z)).slice(2);\n break;\n case \"a\":\n t = ((((aa < 12)) ? \"am\" : \"pm\"));\n break;\n case \"A\":\n t = ((((aa < 12)) ? \"AM\" : \"PM\"));\n break;\n case \"g\":\n t = ((((((aa == 0)) || ((aa == 12)))) ? 12 : ((aa % 12))));\n break;\n case \"G\":\n t = aa;\n break;\n case \"h\":\n t = ((((((aa == 0)) || ((aa == 12)))) ? 12 : m(((aa % 12)))));\n break;\n case \"H\":\n t = m(aa);\n break;\n case \"i\":\n t = m(ba);\n break;\n case \"s\":\n t = m(ca);\n break;\n case \"S\":\n if (r) {\n t = g.ordinalSuffixes[w];\n }\n else t = m(da, 3);\n ;\n ;\n break;\n default:\n t = u;\n };\n ;\n s.push(t);\n };\n ;\n return s.join(\"\");\n };\n;\n e.exports = n;\n});\n__d(\"MercuryMessages\", [\"Arbiter\",\"AsyncRequest\",\"Env\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryActionStatus\",\"MercuryAssert\",\"MercuryAttachmentType\",\"MercuryConfig\",\"MercuryGenericConstants\",\"MercuryIDs\",\"MercuryLogMessageType\",\"MercuryMessageSourceTags\",\"MercuryPayloadSource\",\"MercurySingletonMixin\",\"MercurySourceType\",\"MercuryTimePassed\",\"MercuryMessageIDs\",\"MercuryParticipants\",\"PresenceUtil\",\"RangedCallbackManager\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"copyProperties\",\"debounce\",\"formatDate\",\"randomInt\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"Env\"), j = b(\"JSLogger\"), k = b(\"KeyedCallbackManager\"), l = b(\"MercuryActionTypeConstants\"), m = b(\"MercuryActionStatus\"), n = b(\"MercuryAssert\"), o = b(\"MercuryAttachmentType\"), p = b(\"MercuryConfig\"), q = b(\"MercuryGenericConstants\"), r = b(\"MercuryIDs\"), s = b(\"MercuryLogMessageType\"), t = b(\"MercuryMessageSourceTags\"), u = b(\"MercuryPayloadSource\"), v = b(\"MercurySingletonMixin\"), w = b(\"MercurySourceType\"), x = b(\"MercuryTimePassed\"), y = b(\"MercuryMessageIDs\"), z = b(\"MercuryParticipants\"), aa = b(\"PresenceUtil\"), ba = b(\"RangedCallbackManager\"), ca = b(\"MercuryServerRequests\"), da = b(\"MercuryThreadInformer\"), ea = b(\"MercuryThreads\"), fa = b(\"copyProperties\"), ga = b(\"debounce\"), ha = b(\"formatDate\"), ia = b(\"randomInt\"), ja = b(\"tx\");\n function ka(bb, cb) {\n var db = cb;\n if (bb._localIdsMap[cb]) {\n db = bb._localIdsMap[cb];\n }\n ;\n ;\n return bb._messages[db];\n };\n;\n var la = new k();\n function ma(bb, cb) {\n if (((cb.JSBNG__status === undefined))) {\n cb.JSBNG__status = m.UNSENT;\n }\n ;\n ;\n cb.timestamp_absolute = \"Today\";\n cb.message_id = ((cb.message_id || bb.generateNewClientMessageID(cb.timestamp)));\n var db = z.getIDForUser(bb._fbid);\n cb.specific_to_list = ((cb.specific_to_list || []));\n if (((cb.specific_to_list.length && ((cb.specific_to_list.indexOf(db) === -1))))) {\n cb.specific_to_list.push(db);\n }\n ;\n ;\n if (!cb.thread_id) {\n if (((cb.specific_to_list.length == 1))) {\n cb.thread_id = ((\"user:\" + bb._fbid));\n }\n else if (((cb.specific_to_list.length == 2))) {\n var eb = ((((cb.specific_to_list[0] == db)) ? cb.specific_to_list[1] : cb.specific_to_list[0]));\n if (((r.tokenize(eb).type == \"email\"))) {\n cb.thread_id = q.PENDING_THREAD_ID;\n }\n else cb.thread_id = bb._threads.getThreadIDForParticipant(eb);\n ;\n ;\n }\n \n ;\n ;\n cb.thread_id = ((cb.thread_id || ((\"root:\" + cb.message_id))));\n }\n ;\n ;\n if (!cb.specific_to_list.length) {\n var fb = bb._serverRequests.tokenizeThreadID(cb.thread_id);\n if (((fb.type == \"user\"))) {\n cb.specific_to_list = [((\"fbid:\" + fb.value)),db,];\n }\n ;\n ;\n }\n ;\n ;\n };\n;\n function na(bb, cb, db, eb) {\n var fb = ((xa(db) ? [t.CHAT,] : [])), gb = JSBNG__Date.now(), hb = ha(new JSBNG__Date(gb), ((p[\"24h_times\"] ? \"H:i\" : \"g:ia\"))), ib = {\n action_type: cb,\n thread_id: eb,\n author: z.getIDForUser(bb._fbid),\n author_email: null,\n coordinates: null,\n timestamp: gb,\n timestamp_absolute: (new JSBNG__Date(gb)).toLocaleDateString(),\n timestamp_relative: hb,\n timestamp_time_passed: x.TODAY,\n is_unread: false,\n is_cleared: false,\n is_forward: false,\n is_filtered_content: false,\n spoof_warning: false,\n source: db,\n source_tags: fb\n };\n return ib;\n };\n;\n function oa(bb) {\n switch (bb) {\n case u.UNKNOWN:\n \n case u.SERVER_INITIAL_DATA:\n \n case u.SERVER_FETCH_THREAD_INFO:\n \n case u.SERVER_THREAD_SYNC:\n return true;\n };\n ;\n return false;\n };\n;\n function pa(bb) {\n return ((bb && ((bb.substr(0, 6) === \"server\"))));\n };\n;\n function qa(bb, cb) {\n if (!bb._threadsToMessages[cb]) {\n bb._threadsToMessages[cb] = new ba(function(db) {\n return ka(bb, db).timestamp;\n }, function(db, eb) {\n return ((eb - db));\n });\n }\n ;\n ;\n return bb._threadsToMessages[cb];\n };\n;\n g.subscribe(j.DUMP_EVENT, function(bb, cb) {\n var db = {\n }, eb = {\n }, fb = sa._getInstances();\n {\n var fin246keys = ((window.top.JSBNG_Replay.forInKeys)((fb))), fin246i = (0);\n var gb;\n for (; (fin246i < fin246keys.length); (fin246i++)) {\n ((gb) = (fin246keys[fin246i]));\n {\n db[gb] = {\n };\n {\n var fin247keys = ((window.top.JSBNG_Replay.forInKeys)((fb[gb]._messages))), fin247i = (0);\n var hb;\n for (; (fin247i < fin247keys.length); (fin247i++)) {\n ((hb) = (fin247keys[fin247i]));\n {\n var ib = fb[gb]._messages[hb];\n if (((Object.keys(ib).length === 0))) {\n continue;\n }\n ;\n ;\n var jb = ib.thread_id;\n db[gb][jb] = ((db[gb][jb] || {\n }));\n db[gb][jb][ib.message_id] = {\n action_type: ib.action_type,\n author: ib.author,\n is_unread: ib.is_unread,\n timestamp: ib.timestamp\n };\n };\n };\n };\n ;\n eb[gb] = fa({\n }, fb[gb]._localIdsMap);\n };\n };\n };\n ;\n cb.messaging = ((cb.messaging || {\n }));\n cb.messaging.local_message_ids = eb;\n cb.messaging.messages = db;\n });\n function ra(bb, cb, db) {\n cb.forEach(function(eb) {\n var fb = qa(bb, eb);\n fb.setReachedEndOfArray();\n bb._threadInformer.reorderedMessages(eb, db);\n });\n };\n;\n function sa(bb) {\n this._fbid = bb;\n this._serverRequests = ca.getForFBID(this._fbid);\n this._threadInformer = da.getForFBID(this._fbid);\n this._threads = ea.getForFBID(this._fbid);\n this._failedHistoryFetchThreads = {\n };\n this._threadsToMessages = {\n };\n this._titanMessagesCount = {\n };\n this._localTitanMessagesCount = {\n };\n this._messages = {\n };\n this._attachmentData = {\n };\n this._messagesNeedingAttachmentData = {\n };\n this._localIdsMap = {\n };\n this._serverRequests.subscribe(\"update-messages\", function(cb, db) {\n var eb = ((db.actions || [])).filter(function(gb) {\n var hb = gb.action_type;\n return ((((gb.is_forward || gb.thread_id)) && ((((((((((((hb == l.LOG_MESSAGE)) || ((hb == l.USER_GENERATED_MESSAGE)))) || ((hb == l.SEND_MESSAGE)))) || ((hb == l.CLEAR_CHAT)))) || ((hb == l.DELETE_THREAD)))) || ((hb == l.DELETE_MESSAGES))))));\n }), fb = oa(db.payload_source);\n if (pa(db.payload_source)) {\n eb.forEach(function(gb) {\n if (!gb.is_forward) {\n var hb = this._threads.getThreadMetaNow(gb.thread_id);\n if (hb) {\n gb.is_cleared = ((gb.timestamp < hb.chat_clear_time));\n }\n ;\n ;\n }\n ;\n ;\n }.bind(this));\n }\n ;\n ;\n this.handleUpdates(eb, fb, db.payload_source, db.from_client);\n if (db.end_of_history) {\n ra(this, db.end_of_history, db.payload_source);\n }\n ;\n ;\n }.bind(this));\n };\n;\n fa(sa.prototype, {\n getMessagesFromIDs: function(bb) {\n return ((bb || [])).map(ka.curry(this)).filter(function(cb) {\n return cb;\n });\n },\n hasLoadedNMessages: function(bb, cb) {\n var db = qa(this, bb);\n return ((db.hasReachedEndOfArray() || ((db.getCurrentArraySize() >= cb))));\n },\n hasLoadedExactlyNMessages: function(bb, cb) {\n var db = qa(this, bb);\n return ((db.getCurrentArraySize() == cb));\n },\n getThreadMessagesRange: function(bb, cb, db, eb, fb, gb) {\n var hb = qa(this, bb), ib = function(ob) {\n eb(ta(this, ob));\n }.bind(this), jb = hb.executeOrEnqueue(cb, db, ib), kb = hb.getUnavailableResources(jb), lb = this._failedHistoryFetchThreads[bb];\n if (((kb.length && !lb))) {\n var mb = ((((this._titanMessagesCount[bb] || 0)) - ((this._localTitanMessagesCount[bb] || 0)))), nb = ((kb.length + ((this._localTitanMessagesCount[bb] || 0))));\n this._serverRequests.fetchThreadMessages(bb, mb, nb, fb, gb);\n }\n else this._failedHistoryFetchThreads[bb] = false;\n ;\n ;\n return jb;\n },\n getThreadMessagesSinceTimestamp: function(bb, cb) {\n var db = qa(this, bb), eb = db.getElementsUntil(cb);\n return ta(this, eb);\n },\n hasLoadedAllMessages: function(bb) {\n return qa(this, bb).hasReachedEndOfArray();\n },\n getCurrentlyLoadedMessages: function(bb) {\n var cb = qa(this, bb).getAllResources();\n return ta(this, cb);\n },\n unsubscribe: function(bb, cb) {\n n.isThreadID(cb);\n var db = qa(this, cb);\n db.unsubscribe(bb);\n },\n addAttachmentData: function(bb, cb, db) {\n var eb = ka(this, bb);\n if (eb) {\n var fb = eb.attachments.indexOf(cb);\n if (((fb != -1))) {\n eb.attachments[fb] = db;\n this._threadInformer.updatedMessage(eb.thread_id, eb.message_id, \"attach\");\n }\n ;\n ;\n }\n else {\n if (!this._attachmentData[bb]) {\n this._attachmentData[bb] = [];\n }\n ;\n ;\n this._attachmentData[bb].push({\n attach_key: cb,\n data: db\n });\n }\n ;\n ;\n },\n handleUpdates: function(bb, cb, db, eb) {\n var fb, gb = {\n }, hb = {\n };\n for (var ib = 0; ((ib < bb.length)); ib++) {\n var jb = bb[ib];\n if (((jb.is_forward || ((db == u.SERVER_SEARCH))))) {\n if (!this._messages[jb.message_id]) {\n this._messages[jb.message_id] = jb;\n ya(this, jb);\n }\n ;\n ;\n continue;\n }\n ;\n ;\n var kb = jb.action_type;\n if (((kb == l.SEND_MESSAGE))) {\n var lb = jb.client_message_id;\n if (((((lb && this._localIdsMap[lb])) && jb.JSBNG__status))) {\n if (((jb.JSBNG__status == m.UNCONFIRMED))) {\n if (!hb[jb.thread_id]) {\n hb[jb.thread_id] = [];\n }\n ;\n ;\n hb[jb.thread_id].push(jb.client_message_id);\n }\n else if (!gb[jb.thread_id]) {\n gb[jb.thread_id] = [];\n }\n \n ;\n ;\n var mb = ka(this, jb.client_message_id), nb = mb.JSBNG__status;\n mb.JSBNG__status = jb.JSBNG__status;\n if (((((jb.JSBNG__status === m.SUCCESS)) || jb.error_data))) {\n mb.error_data = jb.error_data;\n }\n ;\n ;\n if (((jb.JSBNG__status == m.SUCCESS))) {\n this.updateLocalMessage(jb, db);\n if (((jb.client_thread_id == q.PENDING_THREAD_ID))) {\n mb.thread_id = jb.thread_id;\n gb[jb.thread_id].push(mb.message_id);\n la.setResource(mb.message_id, mb.thread_id);\n }\n ;\n ;\n }\n ;\n ;\n if (((((((((((typeof nb != \"undefined\")) || ((jb.JSBNG__status == m.FAILED_UNKNOWN_REASON)))) || ((jb.JSBNG__status == m.UNABLE_TO_CONFIRM)))) || ((jb.JSBNG__status == m.SUCCESS)))) || ((jb.JSBNG__status == m.ERROR))))) {\n this._threadInformer.updatedMessage(jb.thread_id, ka(this, jb.client_message_id).message_id, db);\n }\n ;\n ;\n }\n ;\n ;\n continue;\n }\n else if (((kb == l.DELETE_THREAD))) {\n qa(this, jb.thread_id).removeAllResources();\n continue;\n }\n else if (((kb == l.DELETE_MESSAGES))) {\n var ob = jb.message_ids.map(function(wb) {\n return ka(this, wb).message_id;\n }.bind(this));\n fb = qa(this, jb.thread_id);\n fb.removeResources(ob);\n this._threadInformer.reorderedMessages(jb.thread_id, db);\n continue;\n }\n else if (((kb == l.LOG_MESSAGE))) {\n if (((jb.log_message_type == s.SERVER_ERROR))) {\n this._failedHistoryFetchThreads[jb.thread_id] = true;\n }\n ;\n ;\n }\n else if (((kb == l.CLEAR_CHAT))) {\n var pb = qa(this, jb.thread_id).getAllResources();\n pb.map(ka.curry(this)).forEach(function(wb) {\n wb.is_cleared = true;\n });\n continue;\n }\n \n \n \n \n ;\n ;\n if (((jb.threading_id && this._localIdsMap[jb.threading_id]))) {\n var qb = ka(this, jb.threading_id);\n if (((qb && qb.is_zap))) {\n fb = qa(this, jb.thread_id);\n fb.removeResources([qb.message_id,]);\n this._localIdsMap[jb.threading_id] = null;\n this._threadInformer.reorderedMessages(jb.thread_id, db);\n }\n ;\n ;\n }\n ;\n ;\n var rb = ka(this, jb.message_id);\n if (((((jb.threading_id && this._localIdsMap[jb.threading_id])) || ((rb && !rb.is_forward))))) {\n continue;\n }\n ;\n ;\n if (!gb[jb.thread_id]) {\n gb[jb.thread_id] = [];\n }\n ;\n ;\n gb[jb.thread_id].push(jb.message_id);\n this._messages[jb.message_id] = jb;\n ya(this, jb);\n if (((jb.threading_id && ((jb.threading_id != jb.message_id))))) {\n y.addServerID(jb.threading_id, jb.message_id);\n }\n ;\n ;\n if (!cb) {\n this._threadInformer.receivedMessage(jb);\n }\n ;\n ;\n };\n ;\n {\n var fin248keys = ((window.top.JSBNG_Replay.forInKeys)((gb))), fin248i = (0);\n var sb;\n for (; (fin248i < fin248keys.length); (fin248i++)) {\n ((sb) = (fin248keys[fin248i]));\n {\n fb = qa(this, sb);\n var tb = fb.getAllResources(), ub = tb.filter(function(wb) {\n var xb = this._messages[wb];\n return ((((xb.action_type == l.LOG_MESSAGE)) && ((xb.log_message_type == s.SERVER_ERROR))));\n }.bind(this));\n fb.removeResources(ub);\n ua(this, sb, gb[sb]);\n if (eb) {\n va(this, sb, gb[sb]);\n }\n ;\n ;\n if (cb) {\n fb.addResources(gb[sb]);\n this._threadInformer.reorderedMessages(sb, db);\n }\n else fb.addResourcesWithoutSorting(gb[sb].reverse(), 0);\n ;\n ;\n this._threadInformer.updatedThread(sb);\n };\n };\n };\n ;\n var vb = Object.keys(hb);\n if (vb.length) {\n this._serverRequests.requestMessageConfirmation(hb);\n }\n ;\n ;\n },\n sendMessage: function(bb, cb, db) {\n cb = ((cb || Function.prototype));\n ma(this, bb);\n this._localIdsMap[bb.message_id] = bb.message_id;\n if (((bb.thread_id == ((\"root:\" + bb.message_id))))) {\n qa(this, bb.thread_id).setReachedEndOfArray();\n }\n ;\n ;\n this._serverRequests.sendNewMessage(bb, db);\n if (((bb.thread_id == q.PENDING_THREAD_ID))) {\n this._messages[bb.message_id] = bb;\n return la.executeOrEnqueue(bb.message_id, cb);\n }\n else cb(bb.thread_id);\n ;\n ;\n },\n zapMessage: function(bb, cb, db) {\n if (((bb.thread_id == q.PENDING_THREAD_ID))) {\n return;\n }\n ;\n ;\n this._localIdsMap[bb.message_id] = bb.message_id;\n this._serverRequests.handleUpdate({\n actions: [fa({\n }, bb),],\n from_client: true,\n payload_source: u.SERVER_ZAP\n });\n },\n isFirstMessage: function(bb) {\n var cb = qa(this, bb.thread_id);\n if (((cb.getCurrentArraySize() === 0))) {\n return false;\n }\n ;\n ;\n var db = cb.getResourceAtIndex(((cb.getCurrentArraySize() - 1))), eb = ka(this, db).message_id, fb = ka(this, bb.message_id).message_id;\n return ((cb.hasReachedEndOfArray() && ((eb == fb))));\n },\n unsubscribeSend: function(bb) {\n la.unsubscribe(bb);\n },\n resendMessage: function(bb, cb) {\n var db = fa({\n }, bb);\n db.JSBNG__status = m.RESENDING;\n db.timestamp = JSBNG__Date.now();\n db.message_id = bb.message_id;\n this._messages[bb.message_id] = db;\n var eb = qa(this, bb.thread_id);\n eb.resortResources([bb.message_id,]);\n this.sendMessage(db, null, cb);\n this._threadInformer.reorderedMessages(bb.thread_id, u.CLIENT_SEND_MESSAGE);\n },\n deleteMessages: function(bb, cb) {\n if (cb.length) {\n var db = qa(this, bb), eb = ((((db.getCurrentArraySize() == cb.length)) && db.hasReachedEndOfArray()));\n this._serverRequests.deleteMessages(bb, cb, eb);\n }\n ;\n ;\n },\n markMessagesSpam: function(bb, cb) {\n if (cb.length) {\n var db = qa(this, bb), eb = ((((db.getCurrentArraySize() == cb.length)) && db.hasReachedEndOfArray()));\n if (eb) {\n this._serverRequests.markThreadSpam(bb);\n }\n else this._serverRequests.markMessagesSpam(bb, cb);\n ;\n ;\n }\n ;\n ;\n },\n updateLocalMessage: function(bb, cb) {\n var db = bb.message_id, eb = bb.client_message_id;\n this._localIdsMap[eb] = db;\n this._messages[db] = this._messages[eb];\n y.addServerID(eb, db);\n this._messages[eb] = {\n };\n var fb = ka(this, eb);\n if (bb.timestamp) {\n fb.timestamp = bb.timestamp;\n }\n ;\n ;\n if (((bb.attachments && bb.attachments.length))) {\n fb.raw_attachments = null;\n fb.attachments = bb.attachments;\n ya(this, fb, db);\n }\n ;\n ;\n if (bb.log_message_data) {\n fb.log_message_data = bb.log_message_data;\n }\n ;\n ;\n if (wa(fb)) {\n this._localTitanMessagesCount[fb.thread_id]--;\n }\n ;\n ;\n },\n constructUserGeneratedMessageObject: function(bb, cb, db, eb) {\n var fb = na(this, l.USER_GENERATED_MESSAGE, cb, db);\n fb.body = bb;\n fb.has_attachment = false;\n fb.html_body = false;\n fb.attachments = [];\n fb.specific_to_list = ((eb || []));\n return fb;\n },\n constructLogMessageObject: function(bb, cb, db, eb) {\n var fb = na(this, l.LOG_MESSAGE, bb, cb);\n fb.log_message_type = db;\n fb.log_message_data = eb;\n return fb;\n },\n generateNewClientMessageID: function(bb) {\n var cb = ((((((((bb + \":\")) + ((ia(0, 4294967295) + 1)))) + \"-\")) + aa.getSessionID()));\n return ((((\"\\u003C\" + cb)) + \"@mail.projektitan.com\\u003E\"));\n },\n getNumberLocalMessages: function(bb) {\n return ((this._localTitanMessagesCount[bb] || 0));\n }\n });\n fa(sa, v, {\n addAttachmentData: function(bb, cb, db, eb) {\n eb = ((eb || i.user));\n sa.getForFBID(eb).addAttachmentData(bb, cb, db);\n }\n });\n function ta(bb, cb) {\n var db = cb.map(ka.curry(bb));\n return db.reverse();\n };\n;\n function ua(bb, cb, db) {\n var eb = db.filter(function(fb) {\n return wa(ka(bb, fb));\n });\n if (!bb._titanMessagesCount[cb]) {\n bb._titanMessagesCount[cb] = 0;\n }\n ;\n ;\n bb._titanMessagesCount[cb] += eb.length;\n };\n;\n function va(bb, cb, db) {\n var eb = db.filter(function(fb) {\n return wa(ka(bb, fb));\n });\n if (!bb._localTitanMessagesCount[cb]) {\n bb._localTitanMessagesCount[cb] = 0;\n }\n ;\n ;\n bb._localTitanMessagesCount[cb] += eb.length;\n };\n;\n function wa(bb) {\n var cb = bb.action_type;\n if (((cb == l.USER_GENERATED_MESSAGE))) {\n return !bb.is_zap;\n }\n ;\n ;\n switch (bb.log_message_type) {\n case s.SUBSCRIBE:\n \n case s.UNSUBSCRIBE:\n \n case s.SERVER_ERROR:\n \n case s.LIVE_LISTEN:\n return false;\n default:\n return true;\n };\n ;\n };\n;\n function xa(bb) {\n switch (bb) {\n case w.CHAT_WEB:\n \n case w.CHAT_JABBER:\n \n case w.CHAT_IPHONE:\n \n case w.CHAT_MEEBO:\n \n case w.CHAT_ORCA:\n \n case w.CHAT_TEST:\n \n case w.CHAT:\n \n case w.DESKTOP:\n return true;\n default:\n return false;\n };\n ;\n };\n;\n function ya(bb, cb, db) {\n db = ((db || cb.message_id));\n var eb = bb._attachmentData[db];\n if (eb) {\n eb.forEach(function(fb) {\n var gb = cb.attachments.indexOf(fb.attach_key);\n if (((gb !== -1))) {\n cb.attachments[gb] = fb.data;\n }\n ;\n ;\n });\n delete bb._attachmentData[db];\n }\n else if (((!cb.is_forward && za(bb, cb)))) {\n bb._messagesNeedingAttachmentData[db] = true;\n ab(bb);\n }\n \n ;\n ;\n };\n;\n function za(bb, cb) {\n if (((!cb || !cb.attachments))) {\n return false;\n }\n ;\n ;\n for (var db = 0; ((db < cb.attachments.length)); db++) {\n var eb = cb.attachments[db];\n if (((((typeof eb === \"string\")) && ((eb.indexOf(o.SHARE) === 0))))) {\n return true;\n }\n ;\n ;\n };\n ;\n var fb = ((cb.forward_message_ids || []));\n for (db = 0; ((db < fb.length)); db++) {\n var gb = ka(bb, fb[db]);\n if (za(bb, gb)) {\n return true;\n }\n ;\n ;\n };\n ;\n return false;\n };\n;\n var ab = ga(function(bb) {\n var cb = {\n };\n {\n var fin249keys = ((window.top.JSBNG_Replay.forInKeys)((bb._messagesNeedingAttachmentData))), fin249i = (0);\n var db;\n for (; (fin249i < fin249keys.length); (fin249i++)) {\n ((db) = (fin249keys[fin249i]));\n {\n var eb = ka(bb, db);\n if (za(bb, eb)) {\n cb[db] = true;\n }\n ;\n ;\n };\n };\n };\n ;\n var fb = Object.keys(cb);\n if (fb.length) {\n new h(\"/ajax/mercury/attachments/fetch_shares.php\").setData({\n message_ids: fb\n }).setAllowCrossPageTransition(true).send();\n }\n ;\n ;\n bb._messagesNeedingAttachmentData = {\n };\n }, 0, this, true);\n e.exports = sa;\n});\n__d(\"ChatOpenTab\", [\"Arbiter\",\"Banzai\",\"Bootloader\",\"ChatVisibility\",\"JSBNG__Event\",\"MercuryIDs\",\"MercuryMessages\",\"MercuryServerRequests\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Banzai\"), i = b(\"Bootloader\"), j = b(\"ChatVisibility\"), k = b(\"JSBNG__Event\"), l = b(\"MercuryIDs\"), m = b(\"MercuryMessages\").get(), n = b(\"MercuryServerRequests\").get(), o = b(\"MercuryThreads\").get(), p = \"messaging_tracking\";\n function q(u) {\n o.getThreadMeta(u, function() {\n g.inform(\"chat/open-tab\", {\n thread_id: u\n });\n });\n };\n;\n function r(u, v, w, x) {\n k.listen(u, \"click\", function(y) {\n if (x(v, w)) {\n return;\n }\n ;\n ;\n return y.kill();\n });\n };\n;\n function s(u, v, w) {\n var x = {\n referrer: ((u || \"\")),\n message_thread_id: v,\n message_view: \"chat\",\n timestamp_send: JSBNG__Date.now()\n };\n if (((w !== undefined))) {\n x.message_target_ids = [w,];\n }\n ;\n ;\n h.post(p, x, {\n delay: 0,\n retry: true\n });\n };\n;\n var t = {\n openEmptyTab: function(u, v) {\n if (((!window.Chat || !j.isOnline()))) {\n return true;\n }\n ;\n ;\n i.loadModules([\"ChatTabModel\",], function(w) {\n var x = w.getEmptyTab();\n if (!x) {\n x = ((\"root:\" + m.generateNewClientMessageID(JSBNG__Date.now())));\n o.createNewLocalThread(x, []);\n }\n ;\n ;\n q(x);\n s(v, x);\n });\n },\n listenOpenEmptyTab: function(u, v) {\n r(u, null, v, t.openEmptyTab);\n },\n openThread: function(u, v) {\n if (l.isValid(u)) {\n q(u);\n }\n else n.getClientThreadID(u, q);\n ;\n ;\n s(v, u);\n },\n listenOpenThread: function(u, v, w) {\n r(u, v, w, t.openThread);\n },\n openUserTab: function(u, v) {\n var w = o.getCanonicalThreadToUser(u);\n q(w.thread_id);\n s(v, w.thread_id, u);\n },\n listenOpenUserTab: function(u, v, w) {\n r(u, v, w, t.openUserTab);\n }\n };\n e.exports = t;\n});\n__d(\"SplitImage.react\", [\"React\",\"JSBNG__Image.react\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"React\"), h = b(\"JSBNG__Image.react\"), i = b(\"cx\"), j = g.createClass({\n displayName: \"SplitImage\",\n render: function() {\n var k = this.props.size;\n return this.transferPropsTo(g.DOM.div({\n className: \"_55lt\",\n style: {\n width: k,\n height: k\n }\n }, this.renderImages()));\n },\n renderImages: function() {\n if (!this.props.srcs) {\n return null;\n }\n ;\n ;\n if (!((this.props.srcs instanceof Array))) {\n return (h({\n src: this.props.srcs,\n height: this.props.size,\n width: this.props.size\n }));\n }\n ;\n ;\n switch (this.props.srcs.length) {\n case 1:\n return (h({\n src: this.props.srcs[0],\n height: this.props.size,\n width: this.props.size\n }));\n case 2:\n return this.renderTwo();\n default:\n return this.renderThree();\n };\n ;\n },\n renderTwo: function() {\n var k = Math.floor(((this.props.size / 2))), l = -Math.floor(((k / 2))), m = (((\"_55lu\") + ((this.props.border ? ((\" \" + \"_57xo\")) : \"\"))));\n return (g.DOM.div(null, g.DOM.div({\n className: \"_55lu\",\n style: {\n width: k\n }\n }, h({\n src: this.props.srcs[0],\n width: this.props.size,\n height: this.props.size,\n style: {\n marginLeft: l\n }\n })), g.DOM.div({\n className: m,\n style: {\n width: k\n }\n }, h({\n src: this.props.srcs[1],\n width: this.props.size,\n height: this.props.size,\n style: {\n marginLeft: l\n }\n }))));\n },\n renderThree: function() {\n var k = Math.floor(((((this.props.size / 3)) * 2))), l = -Math.floor(((((this.props.size - k)) / 2))), m = Math.floor(((this.props.size / 2))), n = ((this.props.size - k)), o = -Math.floor(((((m - n)) / 2))), p = (((\"_55lu\") + ((this.props.border ? ((\" \" + \"_57pl\")) : \"\")))), q = (((\"_55lu\") + ((this.props.border ? ((\" \" + \"_57pm\")) : \"\"))));\n return (g.DOM.div(null, g.DOM.div({\n className: p,\n style: {\n width: k\n }\n }, h({\n src: this.props.srcs[0],\n width: this.props.size,\n height: this.props.size,\n style: {\n marginLeft: l\n }\n })), g.DOM.div({\n className: q,\n style: {\n width: n,\n height: m\n }\n }, h({\n src: this.props.srcs[1],\n width: m,\n height: m,\n style: {\n marginLeft: o\n }\n })), g.DOM.div({\n className: \"_55lu\",\n style: {\n width: n,\n height: m\n }\n }, h({\n src: this.props.srcs[2],\n width: m,\n height: m,\n style: {\n marginLeft: o\n }\n }))));\n }\n });\n e.exports = j;\n});\n__d(\"TypeaheadFacepile\", [\"DOM\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\");\n function h() {\n \n };\n;\n h.render = function(i) {\n var j = [g.create(\"span\", {\n className: \"splitpic leftpic\"\n }, [g.create(\"img\", {\n alt: \"\",\n src: i[0]\n }),]),g.create(\"span\", {\n className: ((\"splitpic\" + ((i[2] ? \" toppic\" : \"\"))))\n }, [g.create(\"img\", {\n alt: \"\",\n src: i[1]\n }),]),];\n if (i[2]) {\n j.push(g.create(\"span\", {\n className: \"splitpic bottompic\"\n }, [g.create(\"img\", {\n alt: \"\",\n src: i[2]\n }),]));\n }\n ;\n ;\n return g.create(\"span\", {\n className: \"splitpics clearfix\"\n }, j);\n };\n e.exports = h;\n});\n__d(\"ModalMask\", [\"DOM\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = null, i = 0, j = {\n show: function() {\n i++;\n if (!h) {\n h = g.create(\"div\", {\n id: \"modalMaskOverlay\"\n });\n g.appendContent(JSBNG__document.body, h);\n }\n ;\n ;\n },\n hide: function() {\n if (i) {\n i--;\n if (((!i && h))) {\n g.remove(h);\n h = null;\n }\n ;\n ;\n }\n ;\n ;\n }\n };\n e.exports = j;\n});\n__d(\"LitestandMessages\", [], function(a, b, c, d, e, f) {\n var g = {\n FILTER_SWITCH_BEGIN: \"LitestandMessages/FilterSwitchBegin\",\n NEWSFEED_LOAD: \"LitestandMessages/NewsFeedLoad\",\n LEAVE_HOME: \"LitestandMessages/LeaveHome\",\n UPDATE_HOME_COUNT: \"LitestandMessages/UpdateHomeCount\",\n STORIES_INSERTED: \"LitestandMessages/StoriesInserted\",\n STORIES_REMOVED: \"LitestandMessages/StoriesRemoved\",\n NEWER_STORIES_INSERTED: \"LitestandMessages/NewerStoriesInserted\",\n EXPAND_FILTER_SWITCHER: \"LitestandMessages/ExpandFilterSwitcher\",\n RESTORE_FILTER_SWITCHER: \"LitestandMessages/RestoreFilterSwitcher\",\n NEW_STORY_BAR_CLICK: \"LitestandMessages/NewStoryBarClick\",\n COLLAPSE_FILTER_SWITCHER: \"LitestandMessages/CollapseFilterSwitcher\",\n TOUR_BEGIN: \"LitestandMessages/TourBegin\",\n TOUR_END: \"LitestandMessages/TourEnd\",\n TOUR_SIDEBAR_HIGHLIGHT: \"LitestandMessages/TourSidebarHighlight\",\n TOUR_SIDEBAR_UNHIGHLIGHT: \"LitestandMessages/TourSidebarUnhighlight\",\n RHC_RELOADED: \"LitestandMessages/RHCReloaded\",\n UNLOCK_FILTER_SWITCHER: \"LitestandMessage/UnlockFilterSwitcher\"\n };\n e.exports = g;\n});\n__d(\"WebMessengerPermalinkConstants\", [\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"URI\"), h = {\n ARCHIVED_PATH: \"/messages/archived\",\n BASE_PATH: \"/messages\",\n OTHER_PATH: \"/messages/other\",\n SPAM_PATH: \"/messages/spam\",\n COMPOSE_POSTFIX_PATH: \"/new\",\n SEARCH_POSTFIX_PATH: \"/search\",\n TID_POSTFIX_PARTIAL_PATH: \"/conversation-\",\n overriddenVanities: \"(archived|other|spam|new|search|conversation-.*)\",\n getURIPathForThreadID: function(i, j) {\n return ((((((j || h.BASE_PATH)) + h.TID_POSTFIX_PARTIAL_PATH)) + g.encodeComponent(g.encodeComponent(i))));\n },\n getThreadIDFromURI: function(i) {\n var j = i.getPath().match(((((((h.BASE_PATH + \"(/[^/]*)*\")) + h.TID_POSTFIX_PARTIAL_PATH)) + \"([^/]+)\")));\n if (j) {\n var k = g.decodeComponent(g.decodeComponent(j[2]));\n return k;\n }\n ;\n ;\n },\n getURIPathForIDOrVanity: function(i, j) {\n if (i.match(((((\"^\" + h.overriddenVanities)) + \"$\")))) {\n i = ((\".\" + i));\n }\n ;\n ;\n return ((((((j || h.BASE_PATH)) + \"/\")) + i));\n },\n getUserIDOrVanity: function(i) {\n var j = i.match(((h.BASE_PATH + \".*/([^/]+)/?$\"))), k = ((j && j[1])), l = h.overriddenVanities;\n if (((!k || k.match(((((\"^\" + l)) + \"$\")))))) {\n return false;\n }\n else if (k.match(((((\"^\\\\.\" + l)) + \"$\")))) {\n return k.substr(1);\n }\n else return k\n \n ;\n }\n };\n e.exports = h;\n});\n__d(\"MercuryEmoji\", [\"MercuryConfig\",\"Emoji\",\"Emote\",], function(a, b, c, d, e, f) {\n var g = b(\"MercuryConfig\"), h = b(\"Emoji\"), i = b(\"Emote\"), j = {\n htmlEmojiAndEmote: function(k, l) {\n if (g.MessagingDisplayEmojiGK) {\n return h.htmlEmojiAndEmote(k, l);\n }\n else return i.htmlEmote(k, l)\n ;\n }\n };\n e.exports = j;\n});\n__d(\"MercuryErrorInfo\", [\"MercuryErrorType\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"MercuryErrorType\"), h = b(\"tx\"), i = {\n getMessage: function(j) {\n var k = \"This message failed to send.\";\n if (i.isConnectionError(j)) {\n k = \"Unable to connect to Facebook. This message failed to send. \";\n }\n else if (j.description) {\n k = j.description;\n }\n \n ;\n ;\n return k;\n },\n isConnectionError: function(j) {\n if (((j && ((j.type == g.TRANSPORT))))) {\n return ((((((j.code === 1001)) || ((j.code === 1004)))) || ((j.code === 1006))));\n }\n ;\n ;\n return false;\n }\n };\n e.exports = i;\n});\n__d(\"MercuryChannelHandler\", [\"Arbiter\",\"ChannelConstants\",\"Env\",\"MercuryActionTypeConstants\",\"MercuryGlobalActionType\",\"MercuryMessages\",\"MercuryPayloadSource\",\"MessagingReliabilityLogger\",\"MessagingEvent\",\"MessagingTag\",\"MercuryParticipants\",\"PresenceUtil\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"Env\"), j = b(\"MercuryActionTypeConstants\"), k = b(\"MercuryGlobalActionType\"), l = b(\"MercuryMessages\").get(), m = b(\"MercuryPayloadSource\"), n = b(\"MessagingReliabilityLogger\"), o = b(\"MessagingEvent\"), p = b(\"MessagingTag\"), q = b(\"MercuryParticipants\"), r = b(\"PresenceUtil\"), s = b(\"MercuryServerRequests\").get(), t = b(\"MercuryThreadInformer\").get(), u = b(\"copyProperties\");\n function v(la, ma) {\n if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.message))) {\n n.addEntry(\"channel_receive\", \"invalid_data\");\n return;\n }\n ;\n ;\n var na = ma.obj.message, oa = {\n author: na.mercury_author_id,\n author_email: na.mercury_author_email,\n body: na.body,\n subject: na.subject,\n has_attachment: na.has_attachment,\n attachments: na.attachments,\n html_body: na.html_body,\n thread_id: na.tid,\n message_id: na.mid,\n coordinates: na.mercury_coordinates,\n spoof_warning: na.mercury_spoof_warning,\n source: na.mercury_source,\n source_tags: na.mercury_source_tags,\n threading_id: na.threading_id,\n timestamp: na.timestamp,\n timestamp_absolute: na.timestamp_absolute,\n timestamp_relative: na.timestamp_relative,\n timestamp_time_passed: na.timestamp_time_passed,\n action_type: j.USER_GENERATED_MESSAGE,\n is_unread: na.is_unread,\n action_id: na.action_id,\n is_forward: false,\n forward_count: ((na.forward_count || na.JSBNG__forward)),\n forward_message_ids: na.forward_msg_ids,\n location_text: na.location_text,\n folder: ma.obj.folder\n }, pa = [u({\n }, oa),];\n pa = pa.concat(((na.forward_actions || [])));\n var qa = m.CLIENT_CHANNEL_MESSAGE;\n s.handleUpdateWaitForThread({\n actions: pa,\n payload_source: qa\n }, na.tid);\n if (((!na.is_unread && ((na.mercury_author_id === q.user))))) {\n var ra = {\n };\n ra[na.tid] = ma.obj.folder;\n w(h.getArbiterType(\"messaging\"), {\n obj: {\n JSBNG__event: o.READ,\n tids: [na.tid,],\n folder_info: ra,\n timestamp: na.timestamp\n }\n });\n }\n ;\n ;\n n.addEntry(\"channel_receive\", \"success\", [oa.thread_id,oa.message_id,r.getSessionID(),]);\n };\n;\n function w(la, ma) {\n if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.tids))) {\n return;\n }\n ;\n ;\n var na = [], oa = ((ma.obj.JSBNG__event == o.READ));\n ma.obj.tids.forEach(function(pa) {\n na.push({\n action_type: j.CHANGE_READ_STATUS,\n action_id: null,\n thread_id: pa,\n mark_as_read: oa,\n timestamp: ((ma.obj.timestamp || 0)),\n folder: ma.obj.folder_info[pa]\n });\n });\n s.handleUpdate({\n actions: na,\n payload_source: m.CLIENT_CHANNEL_MESSAGE\n });\n };\n;\n function x(la, ma) {\n if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.tids))) {\n return;\n }\n ;\n ;\n var na = [];\n ma.obj.tids.forEach(function(oa) {\n na.push({\n action_type: j.DELETE_THREAD,\n action_id: null,\n thread_id: oa\n });\n });\n s.handleUpdate({\n actions: na,\n payload_source: m.CLIENT_CHANNEL_MESSAGE\n });\n };\n;\n function y(la, ma) {\n if (((((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.tids)) || !ma.obj.mids))) {\n return;\n }\n ;\n ;\n var na = ma.obj.tids[0], oa = {\n action_type: j.DELETE_MESSAGES,\n action_id: null,\n thread_id: na,\n message_ids: ma.obj.mids\n };\n s.handleUpdate({\n actions: [oa,],\n threads: [ma.obj.updated_thread,],\n payload_source: m.CLIENT_CHANNEL_MESSAGE\n });\n };\n;\n function z(la, ma) {\n if (((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || !ma.obj.folder))) {\n return;\n }\n ;\n ;\n var na = {\n action_type: k.MARK_ALL_READ,\n action_id: ma.obj.action_id,\n folder: ma.obj.folder\n };\n s.handleUpdate({\n global_actions: [na,]\n });\n };\n;\n function aa(la, ma) {\n if (((((la != h.getArbiterType(\"messaging\"))) || !ma.obj.tids))) {\n return;\n }\n ;\n ;\n var na = m.CLIENT_CHANNEL_MESSAGE;\n ma.obj.tids.forEach(function(oa) {\n var pa = {\n action_type: j.CHANGE_ARCHIVED_STATUS,\n action_id: null,\n thread_id: oa,\n archived: ma.obj.state\n };\n s.handleUpdateWaitForThread({\n actions: [u({\n }, pa),],\n payload_source: na\n }, oa);\n });\n };\n;\n function ba(la, ma) {\n if (((((la != h.getArbiterType(\"messaging\"))) || !ma.obj.tids))) {\n return;\n }\n ;\n ;\n var na = m.CLIENT_CHANNEL_MESSAGE, oa;\n ma.obj.tids.forEach(function(pa) {\n if (((ma.obj.JSBNG__event == o.TAG))) {\n oa = ma.obj.tag;\n }\n else oa = ((ma.obj.marked_as_spam ? p.SPAM : p.INBOX));\n ;\n ;\n var qa = {\n action_type: j.CHANGE_FOLDER,\n action_id: null,\n thread_id: pa,\n new_folder: oa\n };\n s.handleUpdateWaitForThread({\n actions: [u({\n }, qa),],\n payload_source: na\n }, pa);\n });\n };\n;\n function ca(la, ma) {\n if (((((la != h.getArbiterType(\"messaging\"))) || !ma.obj.tag))) {\n return;\n }\n ;\n ;\n switch (ma.obj.tag) {\n case p.ACTION_ARCHIVED:\n aa(la, ma);\n break;\n case p.INBOX:\n \n case p.OTHER:\n ba(la, ma);\n break;\n };\n ;\n };\n;\n function da(la, ma) {\n if (((((((la != h.getArbiterType(\"inbox\"))) || !ma.obj)) || !ma.obj.seen_timestamp))) {\n return;\n }\n ;\n ;\n s.handleUpdate({\n message_counts: [{\n seen_timestamp: ma.obj.seen_timestamp,\n folder: p.INBOX\n },],\n unseen_thread_ids: [{\n thread_ids: [],\n folder: p.INBOX\n },],\n payload_source: m.CLIENT_CHANNEL_MESSAGE\n });\n };\n;\n function ea(la, ma) {\n if (((((la != h.getArbiterType(\"mercury\"))) || !ma.obj))) {\n return;\n }\n ;\n ;\n t.synchronizeInforms(function() {\n var na = ma.obj, oa = [];\n ((na.actions || [])).forEach(function(pa) {\n var qa = j.USER_GENERATED_MESSAGE;\n if (((pa.action_type == j.LOG_MESSAGE))) {\n var ra = m.CLIENT_CHANNEL_MESSAGE;\n s.handleUpdateWaitForThread({\n actions: [u({\n }, pa),],\n payload_source: ra\n }, pa.thread_id);\n }\n else if (((pa.action_type != qa))) {\n oa.push(pa);\n }\n \n ;\n ;\n });\n na.actions = oa;\n na.payload_source = m.CLIENT_CHANNEL_MESSAGE;\n s.handleUpdate(na);\n });\n };\n;\n function fa(la, ma) {\n s.handleRoger(ma.obj);\n };\n;\n function ga(la, ma) {\n if (((((((((la != h.getArbiterType(\"messaging\"))) || !ma.obj)) || ((ma.obj.mute_settings === undefined)))) || !ma.obj.thread_id))) {\n return;\n }\n ;\n ;\n var na = j.CHANGE_MUTE_SETTINGS, oa = [{\n action_type: na,\n action_id: null,\n thread_id: ma.obj.thread_id,\n mute_settings: ma.obj.mute_settings\n },];\n s.handleUpdate({\n actions: oa,\n payload_source: m.CLIENT_CHANNEL_MESSAGE\n });\n };\n;\n function ha(la, ma) {\n switch (ma.obj.JSBNG__event) {\n case o.DELIVER:\n v(la, ma);\n break;\n case o.READ:\n \n case o.UNREAD:\n w(la, ma);\n break;\n case o.READ_ALL:\n z(la, ma);\n break;\n case o.DELETE:\n x(la, ma);\n break;\n case o.DELETE_MESSAGES:\n y(la, ma);\n break;\n case o.TAG:\n ca(la, ma);\n break;\n case o.REPORT_SPAM:\n ba(la, ma);\n break;\n case o.READ_RECEIPT:\n fa(la, ma);\n break;\n case o.CHANGE_MUTE_SETTINGS:\n ga(la, ma);\n break;\n };\n ;\n };\n;\n function ia(la, ma) {\n if (((((la != h.getArbiterType(\"messaging_zap\"))) || !ma.obj))) {\n n.addEntry(\"channel_receive_zap\", \"invalid_data\");\n return;\n }\n ;\n ;\n if (!ma.obj.is_canonical) {\n return;\n }\n ;\n ;\n var na = ma.obj.sender_id;\n if (((na == i.user))) {\n na = ma.obj.recipient_id;\n }\n ;\n ;\n na = ((\"user:\" + na));\n var oa = {\n action_type: j.USER_GENERATED_MESSAGE,\n author: ((\"fbid:\" + ma.obj.sender_id)),\n body: ma.obj.body,\n source: ma.obj.source,\n timestamp: ma.obj.timestamp,\n message_id: ma.obj.message_id,\n thread_id: na,\n specific_to_list: [((\"fbid:\" + ma.obj.sender_id)),((\"fbid:\" + ma.obj.recipient_id)),],\n spoof_warning: false,\n is_unread: true,\n is_zap: true\n };\n l.zapMessage(oa);\n };\n;\n var ja = [], ka = {\n turnOn: function() {\n if (!ja.length) {\n var la = {\n mercury: ea,\n messaging: ha,\n messaging_zap: ia,\n inbox: da\n };\n {\n var fin250keys = ((window.top.JSBNG_Replay.forInKeys)((la))), fin250i = (0);\n var ma;\n for (; (fin250i < fin250keys.length); (fin250i++)) {\n ((ma) = (fin250keys[fin250i]));\n {\n ja.push(g.subscribe(h.getArbiterType(ma), la[ma]));\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n },\n turnOff: function() {\n if (ja.length) {\n ja.forEach(g.unsubscribe);\n ja = [];\n }\n ;\n ;\n }\n };\n ka.turnOn();\n e.exports = ka;\n});\n__d(\"MercuryRoger\", [\"ArbiterMixin\",\"MercuryActionStatus\",\"MercuryServerRequests\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"MercuryActionStatus\"), i = b(\"MercuryServerRequests\").get(), j = b(\"copyProperties\"), k = {\n }, l = {\n getSeenBy: function(m, n) {\n if (!m) {\n return [];\n }\n ;\n ;\n var o = [], p = k[m.thread_id], q = h.SUCCESS;\n {\n var fin251keys = ((window.top.JSBNG_Replay.forInKeys)((p))), fin251i = (0);\n var r;\n for (; (fin251i < fin251keys.length); (fin251i++)) {\n ((r) = (fin251keys[fin251i]));\n {\n if (((((((p[r] > m.timestamp)) && ((((m.JSBNG__status === undefined)) || ((m.JSBNG__status === q)))))) && ((!n || ((r != m.author))))))) {\n o.push(r);\n }\n ;\n ;\n };\n };\n };\n ;\n return o;\n },\n getSeenTimestamp: function(m, n) {\n var o = k[m];\n return ((o ? o[n] : null));\n }\n };\n j(l, g);\n i.subscribe(\"update-roger\", function(m, n) {\n {\n var fin252keys = ((window.top.JSBNG_Replay.forInKeys)((n))), fin252i = (0);\n var o;\n for (; (fin252i < fin252keys.length); (fin252i++)) {\n ((o) = (fin252keys[fin252i]));\n {\n if (!k[o]) {\n k[o] = {\n };\n }\n ;\n ;\n {\n var fin253keys = ((window.top.JSBNG_Replay.forInKeys)((n[o]))), fin253i = (0);\n var p;\n for (; (fin253i < fin253keys.length); (fin253i++)) {\n ((p) = (fin253keys[fin253i]));\n {\n var q = k[o][p], r = n[o][p];\n if (((!q || ((r > q))))) {\n k[o][p] = r;\n }\n ;\n ;\n };\n };\n };\n ;\n };\n };\n };\n ;\n if (n) {\n l.inform(\"state-changed\", n);\n }\n ;\n ;\n });\n e.exports = l;\n});\n__d(\"MercuryDelayedRoger\", [\"ArbiterMixin\",\"LiveTimer\",\"MercuryActionStatus\",\"MercuryConfig\",\"MercuryMessages\",\"MercuryRoger\",\"MercuryThreadInformer\",\"MercuryThreads\",\"copyProperties\",\"setTimeoutAcrossTransitions\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"LiveTimer\"), i = b(\"MercuryActionStatus\"), j = b(\"MercuryConfig\"), k = b(\"MercuryMessages\").get(), l = b(\"MercuryRoger\"), m = b(\"MercuryThreadInformer\").get(), n = b(\"MercuryThreads\").get(), o = b(\"copyProperties\"), p = b(\"setTimeoutAcrossTransitions\"), q = {\n }, r = {\n }, s = j[\"roger.seen_delay\"], t = o({\n getSeenBy: function(x, y) {\n if (r[x]) {\n return [];\n }\n ;\n ;\n if (!q[x]) {\n var z = n.getThreadMetaNow(x);\n if (z) {\n q[x] = {\n thread_id: x,\n author: z.participants[0],\n timestamp: z.timestamp\n };\n }\n ;\n ;\n }\n ;\n ;\n return l.getSeenBy(q[x], y);\n }\n }, g);\n function u(x) {\n var y = false;\n k.getThreadMessagesRange(x, 0, 1, function(z) {\n var aa = z[0];\n if (!aa) {\n return;\n }\n ;\n ;\n var ba = aa.timestamp;\n if (((aa.action_id || ((aa.JSBNG__status == i.SUCCESS))))) {\n ba -= h.getServerTimeOffset();\n }\n ;\n ;\n var ca = t.getSeenBy(x);\n if (r[x]) {\n JSBNG__clearTimeout(r[x]);\n delete r[x];\n }\n ;\n ;\n var da = ((ba + s)), ea = ((da - JSBNG__Date.now()));\n if (((ea > 0))) {\n r[x] = p(function() {\n delete r[x];\n v(x);\n }, ea);\n }\n ;\n ;\n q[x] = aa;\n var fa = t.getSeenBy(x);\n if (((ca.length || fa.length))) {\n y = true;\n }\n ;\n ;\n });\n return y;\n };\n;\n function v(x) {\n var y = {\n };\n y[x] = true;\n t.inform(\"state-changed\", y);\n };\n;\n function w(JSBNG__event, x) {\n var y = {\n };\n {\n var fin254keys = ((window.top.JSBNG_Replay.forInKeys)((x))), fin254i = (0);\n var z;\n for (; (fin254i < fin254keys.length); (fin254i++)) {\n ((z) = (fin254keys[fin254i]));\n {\n if (u(z)) {\n y[z] = true;\n }\n ;\n ;\n };\n };\n };\n ;\n {\n var fin255keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin255i = (0);\n var aa;\n for (; (fin255i < fin255keys.length); (fin255i++)) {\n ((aa) = (fin255keys[fin255i]));\n {\n t.inform(\"state-changed\", y);\n break;\n };\n };\n };\n ;\n };\n;\n l.subscribe(\"state-changed\", function(x, y) {\n {\n var fin256keys = ((window.top.JSBNG_Replay.forInKeys)((y))), fin256i = (0);\n var z;\n for (; (fin256i < fin256keys.length); (fin256i++)) {\n ((z) = (fin256keys[fin256i]));\n {\n ((!r[z] && v(z)));\n ;\n };\n };\n };\n ;\n });\n m.subscribe(\"messages-received\", w);\n m.subscribe(\"messages-reordered\", w);\n m.subscribe(\"messages-updated\", w);\n e.exports = t;\n});\n__d(\"MercuryFilters\", [\"MessagingTag\",\"arrayContains\",], function(a, b, c, d, e, f) {\n var g = b(\"MessagingTag\"), h = b(\"arrayContains\"), i = [g.UNREAD,], j = {\n ALL: \"all\",\n getSupportedFilters: function() {\n return i.concat();\n },\n isSupportedFilter: function(k) {\n return h(i, k);\n }\n };\n e.exports = j;\n});\n__d(\"MercuryOrderedThreadlist\", [\"JSLogger\",\"MercuryActionTypeConstants\",\"MercuryFilters\",\"MercuryFolders\",\"MercuryPayloadSource\",\"MercurySingletonMixin\",\"MessagingTag\",\"RangedCallbackManager\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"arrayContains\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSLogger\"), h = b(\"MercuryActionTypeConstants\"), i = b(\"MercuryFilters\"), j = b(\"MercuryFolders\"), k = b(\"MercuryPayloadSource\"), l = b(\"MercurySingletonMixin\"), m = b(\"MessagingTag\"), n = b(\"RangedCallbackManager\"), o = b(\"MercuryServerRequests\"), p = b(\"MercuryThreadInformer\"), q = b(\"MercuryThreads\"), r = b(\"arrayContains\"), s = b(\"copyProperties\"), t = g.create(\"ordered_threadlist_model\"), u = i.getSupportedFilters().concat([i.ALL,m.GROUPS,]), v = j.getSupportedFolders();\n function w(ga, ha, ia, ja) {\n var ka = [], la = false, ma = false, na = ((ha || [])).filter(function(ua) {\n var va = ((ua.filter || i.ALL));\n return ((((((ua.folder == ia)) || ((!ua.folder && ((ia == m.INBOX)))))) && ((va == ja))));\n }), oa = ga._threadlistOrderMap[ia][ja].getAllResources(), pa;\n na.forEach(function(ua) {\n ka = ka.concat(ua.thread_ids);\n if (ua.error) {\n if (((ua.end > oa.length))) {\n ma = ua.error;\n }\n ;\n ;\n }\n else {\n var va = ((ua.end - ua.start));\n if (((ua.thread_ids.length < va))) {\n la = true;\n }\n ;\n ;\n }\n ;\n ;\n if (((!pa || ((ua.end > pa))))) {\n pa = ua.end;\n }\n ;\n ;\n });\n aa(ga, ka, ia, ja);\n if (la) {\n ga._threadlistOrderMap[ia][ja].setReachedEndOfArray();\n }\n else if (ma) {\n ga._threadlistOrderMap[ia][ja].setError(ma);\n }\n else {\n var qa = ga._threadlistOrderMap[ia][ja].getCurrentArraySize();\n if (((pa && ((qa < pa))))) {\n var ra = {\n }, sa = oa.concat(ka), ta = sa.filter(function(ua) {\n var va = ra[ua];\n ra[ua] = true;\n return va;\n });\n if (ta.length) {\n t.warn(\"duplicate_threads\", {\n folder: ia,\n expected_final_size: pa,\n actual_final_size: qa,\n duplicate_thread_ids: ta\n });\n ga._serverRequests.fetchThreadlistInfo(pa, ta.length, ia, ((((ja == i.ALL)) ? null : ja)));\n }\n ;\n ;\n }\n ;\n ;\n }\n \n ;\n ;\n };\n;\n function x(ga, ha) {\n v.forEach(function(ia) {\n u.forEach(function(ja) {\n w(ga, ha, ia, ja);\n });\n });\n };\n;\n function y(ga, ha) {\n var ia = {\n };\n v.forEach(function(ja) {\n ia[ja] = {\n };\n u.forEach(function(ka) {\n ia[ja][ka] = {\n to_add: [],\n to_remove: [],\n to_remove_if_last_after_add: {\n }\n };\n });\n });\n ha.forEach(function(ja) {\n if (ja.is_forward) {\n return;\n }\n ;\n ;\n var ka = ja.thread_id, la = ba(ga, ka), ma = ca(ga, ka);\n function na() {\n ma.forEach(function(pa) {\n ia[la][pa].to_add.push(ka);\n if (((!ga._threadlistOrderMap[la][pa].hasReachedEndOfArray() && !ga._threadlistOrderMap[la][pa].hasResource(ka)))) {\n ia[la][pa].to_remove_if_last_after_add[ka] = true;\n }\n ;\n ;\n });\n };\n ;\n function oa(pa) {\n if (r(u, pa)) {\n if (r(ma, pa)) {\n ia[la][pa].to_add.push(ka);\n }\n else ia[la][pa].to_remove.push(ka);\n ;\n }\n ;\n ;\n };\n ;\n if (!la) {\n if (((((ja.action_type === h.CHANGE_FOLDER)) || ((ja.action_type === h.CHANGE_ARCHIVED_STATUS))))) {\n v.forEach(function(pa) {\n if (((pa !== la))) {\n u.forEach(function(qa) {\n ga._threadlistOrderMap[pa][qa].removeResources([ka,]);\n });\n }\n ;\n ;\n });\n }\n ;\n ;\n return;\n }\n ;\n ;\n switch (ja.action_type) {\n case h.DELETE_THREAD:\n ma.forEach(function(pa) {\n ia[la][pa].to_remove.push(ka);\n });\n break;\n case h.CHANGE_ARCHIVED_STATUS:\n \n case h.CHANGE_FOLDER:\n na();\n break;\n case h.CHANGE_READ_STATUS:\n oa(m.UNREAD);\n break;\n case h.USER_GENERATED_MESSAGE:\n \n case h.LOG_MESSAGE:\n ma.forEach(function(pa) {\n if (da(ga, ka, la, pa)) {\n ia[la][pa].to_add.push(ka);\n }\n ;\n ;\n });\n break;\n };\n ;\n });\n v.forEach(function(ja) {\n u.forEach(function(ka) {\n var la = ga._threadlistOrderMap[ja][ka];\n aa(ga, ia[ja][ka].to_add, ja, ka);\n for (var ma = ((la.getCurrentArraySize() - 1)); ((ma >= 0)); ma--) {\n var na = la.getResourceAtIndex(ma);\n if (!ia[ja][ka].to_remove_if_last_after_add[na]) {\n break;\n }\n ;\n ;\n ia[ja][ka].to_remove.push(na);\n };\n ;\n la.removeResources(ia[ja][ka].to_remove);\n });\n });\n };\n;\n function z(ga, ha) {\n var ia = {\n };\n v.forEach(function(ja) {\n ia[ja] = {\n };\n u.forEach(function(ka) {\n ia[ja][ka] = [];\n });\n });\n ha.forEach(function(ja) {\n var ka = ba(ga, ja.thread_id), la = ca(ga, ja.thread_id);\n if (ka) {\n la.forEach(function(ma) {\n if (da(ga, ja.thread_id, ka, ma)) {\n ia[ka][ma].push(ja.thread_id);\n }\n ;\n ;\n });\n }\n ;\n ;\n });\n v.forEach(function(ja) {\n u.forEach(function(ka) {\n if (((ia[ja][ka].length > 0))) {\n aa(ga, ia[ja][ka], ja, ka);\n }\n ;\n ;\n });\n });\n };\n;\n function aa(ga, ha, ia, ja) {\n ja = ((ja || i.ALL));\n ga._threadlistOrderMap[ia][ja].addResources(ha);\n v.forEach(function(ka) {\n if (((ka != ia))) {\n ga._threadlistOrderMap[ka][ja].removeResources(ha);\n }\n ;\n ;\n });\n };\n;\n function ba(ga, ha) {\n var ia = ga._threads.getThreadMetaNow(ha), ja = null;\n if (!ia) {\n ja = \"No thread metadata\";\n }\n else if (!ia.folder) {\n ja = \"No thread folder\";\n }\n \n ;\n ;\n if (ja) {\n var ka = {\n error: ja,\n tid: ha\n };\n t.warn(\"no_thread_folder\", ka);\n return null;\n }\n ;\n ;\n var la = ia.folder;\n if (ia.is_archived) {\n la = m.ACTION_ARCHIVED;\n }\n ;\n ;\n if (ga._threadlistOrderMap[la]) {\n return la;\n }\n else return null\n ;\n };\n;\n function ca(ga, ha) {\n var ia = ga._threads.getThreadMetaNow(ha), ja = [i.ALL,];\n if (!ia) {\n var ka = {\n error: \"no_thread_metadata\",\n tid: ha\n };\n t.warn(\"no_thread_metadata\", ka);\n return [];\n }\n ;\n ;\n if (ia.unread_count) {\n ja.push(m.UNREAD);\n }\n ;\n ;\n if (!ia.is_canonical) {\n ja.push(m.GROUPS);\n }\n ;\n ;\n return ja;\n };\n;\n function da(ga, ha, ia, ja) {\n var ka = ga._threads.getThreadMetaNow(ha);\n return ((((((ka && ka.timestamp)) && ((ba(ga, ha) == ia)))) && r(ca(ga, ha), ja)));\n };\n;\n function ea(ga) {\n this._fbid = ga;\n this._serverRequests = o.getForFBID(this._fbid);\n this._threadInformer = p.getForFBID(this._fbid);\n this._threads = q.getForFBID(this._fbid);\n this._threadlistOrderMap = {\n };\n v.forEach(function(ha) {\n this._threadlistOrderMap[ha] = {\n };\n u.forEach(function(ia) {\n this._threadlistOrderMap[ha][ia] = new n(function(ja) {\n return this._threads.getThreadMetaNow(ja).timestamp;\n }.bind(this), function(ja, ka) {\n return ((ka - ja));\n }, this._serverRequests.canLinkExternally.bind(this._serverRequests));\n }.bind(this));\n }.bind(this));\n this._serverRequests.subscribe(\"update-threadlist\", function(ha, ia) {\n if (!fa(ia)) {\n return;\n }\n ;\n ;\n var ja = ia.ordered_threadlists;\n if (((ja && ja.length))) {\n x(this, ja);\n }\n else {\n var ka = ((ia.actions || [])).filter(function(la) {\n return la.thread_id;\n });\n z(this, ((ia.threads || [])));\n y(this, ka);\n }\n ;\n ;\n this._threadInformer.updatedThreadlist();\n }.bind(this));\n };\n;\n s(ea.prototype, {\n getThreadlist: function(ga, ha, ia, ja, ka, la) {\n return this.getFilteredThreadlist(ga, ha, ia, i.ALL, ja, ka, la);\n },\n getFilteredThreadlist: function(ga, ha, ia, ja, ka, la, ma) {\n var na = this._threadlistOrderMap[ia][ja], oa = na.executeOrEnqueue(ga, ha, ka, la), pa = na.getUnavailableResources(oa), qa = na.getError(ga, ha, la);\n if (((pa.length || qa))) {\n if (((na.getCurrentArraySize() < ga))) {\n var ra = {\n start: ga,\n limit: ha,\n filter: ja,\n resources_size: na.getCurrentArraySize()\n };\n t.warn(\"range_with_gap\", ra);\n }\n ;\n ;\n na.setError(false);\n this._serverRequests.fetchThreadlistInfo(na.getCurrentArraySize(), pa.length, ia, ((((ja == i.ALL)) ? null : ja)), ma);\n }\n ;\n ;\n return oa;\n },\n getThreadlistUntilTimestamp: function(ga, ha, ia) {\n ia = ((ia || i.ALL));\n return this._threadlistOrderMap[ha][ia].getElementsUntil(ga);\n },\n unsubscribe: function(ga, ha, ia) {\n ia = ((ia || i.ALL));\n this._threadlistOrderMap[ha][ia].unsubscribe(ga);\n }\n });\n s(ea, l);\n function fa(ga) {\n switch (ga.payload_source) {\n case k.CLIENT_CHANGE_ARCHIVED_STATUS:\n \n case k.CLIENT_CHANGE_READ_STATUS:\n \n case k.CLIENT_CHANGE_FOLDER:\n \n case k.CLIENT_CHANNEL_MESSAGE:\n \n case k.CLIENT_DELETE_MESSAGES:\n \n case k.CLIENT_DELETE_THREAD:\n \n case k.CLIENT_SEND_MESSAGE:\n \n case k.SERVER_SEND_MESSAGE:\n \n case k.SERVER_CONFIRM_MESSAGES:\n \n case k.SERVER_FETCH_THREADLIST_INFO:\n \n case k.SERVER_THREAD_SYNC:\n \n case k.SERVER_ZAP:\n return true;\n case k.SERVER_INITIAL_DATA:\n return ga.ordered_threadlists;\n default:\n return false;\n };\n ;\n };\n;\n e.exports = ea;\n});\n__d(\"MercuryUnreadState\", [\"Arbiter\",\"MercuryFolders\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercuryGlobalActionType\",\"MercurySingletonMixin\",\"MercuryThreadlistConstants\",\"MessagingTag\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryThreads\",\"arrayContains\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"MercuryFolders\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryActionTypeConstants\"), l = b(\"MercuryGlobalActionType\"), m = b(\"MercurySingletonMixin\"), n = b(\"MercuryThreadlistConstants\"), o = b(\"MessagingTag\"), p = b(\"MercuryServerRequests\"), q = b(\"MercuryThreadInformer\"), r = b(\"MercuryThreads\"), s = b(\"arrayContains\"), t = b(\"copyProperties\"), u = b(\"createObjectFrom\"), v = ((h.getSupportedFolders() || [])).filter(function(ma) {\n return ((ma != o.ACTION_ARCHIVED));\n }), w = \"unread_thread_hash\", x = \"unseen_thread_list\", y = n.MAX_UNREAD_COUNT, z = i.create(\"mercury_unread_state\");\n function aa(ma) {\n this._fbid = ma;\n this._serverRequests = p.getForFBID(this._fbid);\n this._threadInformer = q.getForFBID(this._fbid);\n this._threads = r.getForFBID(this._fbid);\n this._allReadTimestamp = {\n };\n this._threadReadTimestamp = {\n };\n this._initialUnreadCount = {\n };\n this._maxCount = {\n };\n this._unreadResources = {\n };\n v.forEach(function(na) {\n this._initialUnreadCount[na] = 0;\n this._maxCount[na] = false;\n this._unreadResources[na] = new j();\n }.bind(this));\n this._serverRequests.subscribe(\"update-unread\", function(na, oa) {\n fa(this, oa);\n var pa = ((oa.global_actions || []));\n for (var qa = 0; ((qa < pa.length)); qa++) {\n var ra = pa[qa];\n if (((ra.action_type == l.MARK_ALL_READ))) {\n ia(this, ra.folder, ra.timestamp);\n }\n ;\n ;\n };\n ;\n }.bind(this));\n this._serverRequests.subscribe(\"update-thread-ids\", function(na, oa) {\n ka(this, oa);\n }.bind(this));\n };\n;\n t(aa.prototype, {\n getUnreadCount: function(ma) {\n if (this.exceedsMaxCount(ma)) {\n z.error(\"unguarded_unread_count_fetch\", {\n });\n return 0;\n }\n ;\n ;\n return ea(this, ma);\n },\n exceedsMaxCount: function(ma) {\n return ((this._maxCount[ma] || ((ea(this, ma) > y))));\n },\n markFolderAsRead: function(ma) {\n if (((this._maxCount[ma] || ((ea(this, ma) > 0))))) {\n this._serverRequests.markFolderAsRead(ma);\n }\n ;\n ;\n }\n });\n t(aa, m);\n function ba(ma, na, oa) {\n ma._unreadResources[na].setResource(w, oa);\n ma._unreadResources[na].setResource(x, Object.keys(oa));\n };\n;\n function ca(ma, na, oa) {\n var pa = ma._unreadResources[na].executeOrEnqueue(w, oa), qa = ma._unreadResources[na].getUnavailableResources(pa);\n if (qa.length) {\n ma._serverRequests.fetchUnreadThreadIDs(na);\n }\n ;\n ;\n };\n;\n function da(ma, na) {\n return ma._unreadResources[na].getResource(w);\n };\n;\n function ea(ma, na) {\n var oa = ma._unreadResources[na].getResource(x);\n if (oa) {\n return oa.length;\n }\n else return ma._initialUnreadCount[na]\n ;\n };\n;\n function fa(ma, na) {\n var oa;\n ((na.unread_thread_ids || [])).forEach(function(pa) {\n oa = pa.folder;\n if (!la(oa)) {\n return;\n }\n ;\n ;\n var qa = ja(ma, pa.thread_ids);\n ba(ma, oa, u(qa, true));\n if (((qa.length > y))) {\n ma._maxCount[oa] = true;\n }\n ;\n ;\n ma._threadInformer.updatedUnreadState();\n });\n ((na.message_counts || [])).forEach(function(pa) {\n if (((pa.unread_count === undefined))) {\n return;\n }\n ;\n ;\n oa = pa.folder;\n if (((pa.unread_count > y))) {\n ma._maxCount[oa] = true;\n ba(ma, oa, {\n });\n ma._threadInformer.updatedUnreadState();\n }\n else {\n ma._initialUnreadCount[oa] = pa.unread_count;\n if (((ma._initialUnreadCount[oa] === 0))) {\n ba(ma, oa, {\n });\n }\n ;\n ;\n ma._threadInformer.updatedUnreadState();\n }\n ;\n ;\n });\n ((na.actions || [])).forEach(function(pa) {\n if (pa.is_forward) {\n return;\n }\n ;\n ;\n var qa = k, ra = ((pa.thread_id ? pa.thread_id : pa.server_thread_id));\n if (((pa.action_type == qa.DELETE_THREAD))) {\n v.forEach(function(ta) {\n ha(ma, ta, ra);\n });\n }\n else if (((((pa.action_type == qa.CHANGE_ARCHIVED_STATUS)) || ((pa.action_type == qa.CHANGE_FOLDER))))) {\n var sa = ma._threads.getThreadMetaNow(pa.thread_id);\n oa = h.getFromMeta(sa);\n if (((la(oa) && ((sa.unread_count > 0))))) {\n ga(ma, oa, ra);\n }\n ;\n ;\n v.forEach(function(ta) {\n if (((ta != oa))) {\n ha(ma, ta, ra);\n }\n ;\n ;\n });\n }\n else {\n oa = pa.folder;\n if (!la(oa)) {\n return;\n }\n ;\n ;\n if (((pa.action_type == qa.CHANGE_READ_STATUS))) {\n if (pa.mark_as_read) {\n ha(ma, oa, ra, pa.timestamp);\n }\n else ga(ma, oa, ra, pa.timestamp);\n ;\n ;\n }\n else if (((((pa.action_type == qa.USER_GENERATED_MESSAGE)) || ((pa.action_type == qa.LOG_MESSAGE))))) {\n if (pa.is_unread) {\n ga(ma, oa, ra, pa.timestamp);\n }\n ;\n }\n \n ;\n ;\n }\n \n ;\n ;\n });\n };\n;\n function ga(ma, na, oa, pa) {\n if (ma._maxCount[na]) {\n return;\n }\n ;\n ;\n ca(ma, na, function(qa) {\n var ra = ((ma._allReadTimestamp[na] || 0)), sa = ((ma._threadReadTimestamp[oa] || 0)), ta = ((pa || Number.POSITIVE_INFINITY));\n if (((((((ta >= ra)) && ((ta >= sa)))) && !qa[oa]))) {\n qa[oa] = ((pa || 0));\n ba(ma, na, qa);\n ma._threadInformer.updatedUnreadState();\n }\n ;\n ;\n });\n };\n;\n function ha(ma, na, oa, pa) {\n if (ma._maxCount[na]) {\n return;\n }\n ;\n ;\n ca(ma, na, function(qa) {\n if (pa) {\n var ra = ma._threadReadTimestamp[oa];\n if (((!ra || ((ra < pa))))) {\n ma._threadReadTimestamp[oa] = pa;\n }\n ;\n ;\n }\n ;\n ;\n var sa = qa[oa];\n if (((((pa && ((typeof sa == \"number\")))) && ((pa < sa))))) {\n return;\n }\n ;\n ;\n if (((oa in qa))) {\n delete qa[oa];\n ba(ma, na, qa);\n ma._threadInformer.updatedUnreadState();\n }\n ;\n ;\n });\n };\n;\n function ia(ma, na, oa) {\n ma._maxCount[na] = false;\n ba(ma, na, {\n });\n ma._allReadTimestamp[na] = Math.max(((ma._allReadTimestamp[na] || 0)), ((oa || 0)));\n ma._threadInformer.updatedUnreadState();\n };\n;\n function ja(ma, na) {\n return na.map(ma._serverRequests.convertThreadIDIfAvailable.bind(ma._serverRequests));\n };\n;\n function ka(ma, na) {\n v.forEach(function(oa) {\n var pa = da(ma, oa);\n if (!pa) {\n return;\n }\n ;\n ;\n {\n var fin257keys = ((window.top.JSBNG_Replay.forInKeys)((na))), fin257i = (0);\n var qa;\n for (; (fin257i < fin257keys.length); (fin257i++)) {\n ((qa) = (fin257keys[fin257i]));\n {\n var ra = na[qa];\n if (pa[qa]) {\n pa[ra] = pa[qa];\n delete pa[qa];\n }\n ;\n ;\n };\n };\n };\n ;\n ba(ma, oa, pa);\n });\n };\n;\n function la(ma) {\n return s(v, ma);\n };\n;\n g.subscribe(i.DUMP_EVENT, function(ma, na) {\n na.messaging = ((na.messaging || {\n }));\n na.messaging.unread = {\n };\n na.messaging.unread_max_count = {\n };\n var oa = aa._getInstances();\n {\n var fin258keys = ((window.top.JSBNG_Replay.forInKeys)((oa))), fin258i = (0);\n var pa;\n for (; (fin258i < fin258keys.length); (fin258i++)) {\n ((pa) = (fin258keys[fin258i]));\n {\n na.messaging.unread[pa] = {\n };\n na.messaging.unread_max_count[pa] = {\n };\n v.forEach(function(qa) {\n na.messaging.unread[pa][qa] = t({\n }, da(oa[pa], qa));\n na.messaging.unread_max_count[pa][qa] = oa[pa]._maxCount[qa];\n });\n };\n };\n };\n ;\n });\n e.exports = aa;\n});\n__d(\"MercuryUnseenState\", [\"Arbiter\",\"TimestampConverter\",\"JSLogger\",\"KeyedCallbackManager\",\"MercuryActionTypeConstants\",\"MercurySingletonMixin\",\"MercuryThreadlistConstants\",\"MessagingTag\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"copyProperties\",\"createObjectFrom\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"TimestampConverter\"), i = b(\"JSLogger\"), j = b(\"KeyedCallbackManager\"), k = b(\"MercuryActionTypeConstants\"), l = b(\"MercurySingletonMixin\"), m = b(\"MercuryThreadlistConstants\"), n = b(\"MessagingTag\"), o = b(\"MercuryServerRequests\"), p = b(\"MercuryThreadInformer\"), q = b(\"copyProperties\"), r = b(\"createObjectFrom\"), s = m.MAX_UNSEEN_COUNT, t = \"unseen_thread_hash\", u = \"unseen_thread_list\", v = i.create(\"mercury_unseen_state\");\n function w(ja) {\n this._fbid = ja;\n this._serverRequests = o.getForFBID(this._fbid);\n this._threadInformer = p.getForFBID(this._fbid);\n this._initialUnseenCount = 0;\n this._lastSeenTimestamp = 0;\n this._maxCount = false;\n this._unseenResources = new j();\n this._serverRequests.subscribe(\"update-unseen\", function(ka, la) {\n ba(this, la);\n }.bind(this));\n this._serverRequests.subscribe(\"update-thread-ids\", function(ka, la) {\n ha(this, la);\n }.bind(this));\n };\n;\n q(w.prototype, {\n getUnseenCount: function() {\n if (this.exceedsMaxCount()) {\n v.error(\"unguarded_unseen_count_fetch\", {\n });\n return 0;\n }\n ;\n ;\n return aa(this);\n },\n exceedsMaxCount: function() {\n return ((this._maxCount || ((aa(this) > s))));\n },\n markAsSeen: function() {\n if (((((aa(this) > 0)) || this._maxCount))) {\n this._serverRequests.markSeen();\n ca(this, h.convertActionIDToTimestamp(this._serverRequests.getLastActionID()), []);\n }\n ;\n ;\n },\n markThreadSeen: function(ja, ka) {\n var la = {\n };\n la[ja] = null;\n ea(this, la, ka);\n }\n });\n q(w, l);\n function x(ja, ka) {\n ja._unseenResources.setResource(t, ka);\n ja._unseenResources.setResource(u, Object.keys(ka));\n };\n;\n function y(ja, ka) {\n var la = ja._unseenResources.executeOrEnqueue(t, ka), ma = ja._unseenResources.getUnavailableResources(la);\n if (ma.length) {\n ja._serverRequests.fetchUnseenThreadIDs();\n }\n ;\n ;\n };\n;\n function z(ja) {\n return ja._unseenResources.getResource(t);\n };\n;\n function aa(ja) {\n var ka = ja._unseenResources.getResource(u);\n if (ka) {\n return ka.length;\n }\n else return ja._initialUnseenCount\n ;\n };\n;\n function ba(ja, ka) {\n var la = ia(ka);\n if (ka.unseen_thread_ids) {\n ka.unseen_thread_ids.forEach(function(wa) {\n if (((wa.folder != n.INBOX))) {\n return;\n }\n ;\n ;\n var xa = ga(ja, wa.thread_ids), ya = ja._lastSeenTimestamp;\n if (((la && la.seen_timestamp))) {\n ya = la.seen_timestamp;\n }\n ;\n ;\n ca(ja, ya, xa);\n if (((la && ((la.unseen_count > s))))) {\n ja._maxCount = true;\n }\n ;\n ;\n });\n }\n else if (((la && la.seen_timestamp))) {\n ja._lastSeenTimestamp = la.seen_timestamp;\n if (((la.unseen_count > s))) {\n ja._maxCount = true;\n x(ja, {\n });\n }\n else {\n ja._initialUnseenCount = la.unseen_count;\n if (((ja._initialUnseenCount === 0))) {\n x(ja, {\n });\n }\n ;\n ;\n }\n ;\n ;\n }\n else {\n if (ja._maxCount) {\n return;\n }\n ;\n ;\n var ma = ka.actions;\n if (((!ma || !(ma.length)))) {\n return;\n }\n ;\n ;\n var na = {\n }, oa = {\n };\n for (var pa = 0; ((pa < ma.length)); pa++) {\n var qa = ma[pa];\n if (qa.is_forward) {\n continue;\n }\n ;\n ;\n var ra = qa.action_type, sa = qa.action_id, ta = ((qa.thread_id ? qa.thread_id : qa.server_thread_id)), ua = ((((qa.folder === undefined)) || ((qa.folder == n.INBOX))));\n if (!ua) {\n continue;\n }\n ;\n ;\n if (((((ra == k.USER_GENERATED_MESSAGE)) || ((ra == k.LOG_MESSAGE))))) {\n var va = h.isGreaterThan(sa, na[ta]);\n if (((qa.is_unread && ((!na[ta] || va))))) {\n na[ta] = sa;\n }\n ;\n ;\n }\n else if (((((ra == k.CHANGE_READ_STATUS)) && qa.mark_as_read))) {\n oa[ta] = sa;\n }\n \n ;\n ;\n };\n ;\n da(ja, na);\n ea(ja, oa);\n }\n \n ;\n ;\n };\n;\n function ca(ja, ka, la) {\n var ma = z(ja);\n if (((((((ma === undefined)) || ((ka > ja._lastSeenTimestamp)))) || ja._maxCount))) {\n ja._lastSeenTimestamp = ka;\n la = ((la || []));\n if (((la.length <= s))) {\n ja._maxCount = false;\n }\n ;\n ;\n var na = {\n }, oa = ((z(ja) || {\n }));\n {\n var fin259keys = ((window.top.JSBNG_Replay.forInKeys)((oa))), fin259i = (0);\n var pa;\n for (; (fin259i < fin259keys.length); (fin259i++)) {\n ((pa) = (fin259keys[fin259i]));\n {\n if (((oa[pa] !== true))) {\n var qa = oa[pa];\n if (fa(ja, qa)) {\n na[pa] = qa;\n }\n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n var ra = q(r(la, true), na);\n x(ja, ra);\n ja._threadInformer.updatedUnseenState();\n }\n ;\n ;\n };\n;\n function da(ja, ka) {\n if (ja._maxCount) {\n return;\n }\n ;\n ;\n var la = {\n }, ma = false;\n {\n var fin260keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin260i = (0);\n var na;\n for (; (fin260i < fin260keys.length); (fin260i++)) {\n ((na) = (fin260keys[fin260i]));\n {\n var oa = ka[na];\n if (fa(ja, oa)) {\n la[na] = oa;\n ma = true;\n }\n ;\n ;\n };\n };\n };\n ;\n if (!ma) {\n return;\n }\n ;\n ;\n y(ja, function(pa) {\n {\n var fin261keys = ((window.top.JSBNG_Replay.forInKeys)((la))), fin261i = (0);\n var qa;\n for (; (fin261i < fin261keys.length); (fin261i++)) {\n ((qa) = (fin261keys[fin261i]));\n {\n var ra = la[qa];\n if (((!pa[qa] && fa(ja, ra)))) {\n pa[qa] = la[qa];\n }\n ;\n ;\n };\n };\n };\n ;\n x(ja, pa);\n ja._threadInformer.updatedUnseenState();\n });\n };\n;\n function ea(ja, ka, la) {\n var ma = false;\n {\n var fin262keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin262i = (0);\n var na;\n for (; (fin262i < fin262keys.length); (fin262i++)) {\n ((na) = (fin262keys[fin262i]));\n {\n ma = true;\n break;\n };\n };\n };\n ;\n if (ma) {\n y(ja, function(oa) {\n var pa = false;\n {\n var fin263keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin263i = (0);\n var qa;\n for (; (fin263i < fin263keys.length); (fin263i++)) {\n ((qa) = (fin263keys[fin263i]));\n {\n var ra = ka[qa], sa = h.isGreaterThan(ra, oa[qa]);\n if (((oa[qa] && ((!ra || sa))))) {\n delete oa[qa];\n pa = true;\n }\n ;\n ;\n };\n };\n };\n ;\n if (pa) {\n x(ja, oa);\n ja._threadInformer.updatedUnseenState();\n if (((la && ((aa(ja) === 0))))) {\n ja._serverRequests.markSeen();\n }\n ;\n ;\n }\n ;\n ;\n });\n }\n ;\n ;\n };\n;\n function fa(ja, ka) {\n var la = h.convertActionIDToTimestamp(ka);\n return ((la > ja._lastSeenTimestamp));\n };\n;\n function ga(ja, ka) {\n return ka.map(ja._serverRequests.convertThreadIDIfAvailable.bind(ja._serverRequests));\n };\n;\n function ha(ja, ka) {\n var la = z(ja);\n if (!la) {\n return;\n }\n ;\n ;\n {\n var fin264keys = ((window.top.JSBNG_Replay.forInKeys)((ka))), fin264i = (0);\n var ma;\n for (; (fin264i < fin264keys.length); (fin264i++)) {\n ((ma) = (fin264keys[fin264i]));\n {\n var na = ka[ma];\n if (la[ma]) {\n la[na] = la[ma];\n delete la[ma];\n }\n ;\n ;\n };\n };\n };\n ;\n x(ja, la);\n };\n;\n function ia(ja) {\n var ka = ((ja.message_counts || []));\n for (var la = 0; ((la < ka.length)); la++) {\n if (((ka[la].folder == n.INBOX))) {\n return ka[la];\n }\n ;\n ;\n };\n ;\n return null;\n };\n;\n g.subscribe(i.DUMP_EVENT, function(ja, ka) {\n ka.messaging = ((ka.messaging || {\n }));\n ka.messaging.unseen = {\n };\n ka.messaging.unseen_max_count = {\n };\n ka.messaging.unseen_time = {\n };\n var la = w._getInstances();\n {\n var fin265keys = ((window.top.JSBNG_Replay.forInKeys)((la))), fin265i = (0);\n var ma;\n for (; (fin265i < fin265keys.length); (fin265i++)) {\n ((ma) = (fin265keys[fin265i]));\n {\n ka.messaging.unseen[ma] = q({\n }, z(la[ma]));\n ka.messaging.unseen_max_count[ma] = la[ma]._maxCount;\n ka.messaging.unseen_time[ma] = la[ma]._lastSeenTimestamp;\n };\n };\n };\n ;\n });\n e.exports = w;\n});\n__d(\"MercuryThreadMetadataRawRenderer\", [\"JSBNG__Event\",\"CSS\",\"DOM\",\"MercuryActionStatus\",\"MercuryErrorInfo\",\"MessagingTag\",\"MercuryStatusTemplates\",\"Tooltip\",\"URI\",\"WebMessengerPermalinkConstants\",\"cx\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"MercuryActionStatus\"), k = b(\"MercuryErrorInfo\"), l = b(\"MessagingTag\"), m = b(\"MercuryStatusTemplates\"), n = b(\"Tooltip\"), o = b(\"URI\"), p = b(\"WebMessengerPermalinkConstants\"), q = b(\"cx\"), r = b(\"tx\"), s = {\n renderParticipantListWithNoThreadName: function(u, v, w, x, y, z) {\n var aa = {\n callback: true,\n check_length: true,\n show_unread_count: true\n };\n z = ((z || {\n }));\n var ba = {\n };\n {\n var fin266keys = ((window.top.JSBNG_Replay.forInKeys)((z))), fin266i = (0);\n var ca;\n for (; (fin266i < fin266keys.length); (fin266i++)) {\n ((ca) = (fin266keys[fin266i]));\n {\n if (aa[ca]) {\n ba[ca] = z[ca];\n delete z[ca];\n }\n ;\n ;\n };\n };\n };\n ;\n var da = w.map(function(ia) {\n return x[ia];\n }), ea = this.renderRawParticipantList(u, da, w.length, z);\n ea = this.renderRawTitleWithUnreadCount(ea, ((ba.show_unread_count ? v.unread_count : 0)));\n var fa = z.abbr_mode, ga = {\n };\n {\n var fin267keys = ((window.top.JSBNG_Replay.forInKeys)((z))), fin267i = (0);\n var ha;\n for (; (fin267i < fin267keys.length); (fin267i++)) {\n ((ha) = (fin267keys[fin267i]));\n {\n ga[ha] = z[ha];\n ;\n };\n };\n };\n ;\n ga.abbr_mode = true;\n y.forEach(function(ia) {\n var ja = ((((y.length > 1)) ? this._cloneIfDOMElement(ea) : ea));\n i.setContent(ia, ja);\n if (((((ba.check_length && !fa)) && ((ia.scrollWidth > ia.clientWidth))))) {\n var ka = this.renderRawParticipantList(u, da, w.length, ga), la = this.renderRawTitleWithUnreadCount(ka, ((ba.show_unread_count ? v.unread_count : 0)));\n i.setContent(ia, la);\n }\n ;\n ;\n }.bind(this));\n ((ba.callback && ba.callback(ea)));\n },\n renderRawParticipantList: function(u, v, w, x) {\n var y = {\n abbr_mode: true,\n last_separator_uses_and: true,\n names_renderer: true\n };\n x = ((x || {\n }));\n var z = null;\n if (x.names_renderer) {\n z = x.names_renderer(v);\n }\n else z = v.map(function(ca) {\n return ca.JSBNG__name;\n });\n ;\n ;\n var aa = null;\n if (((z.length === 0))) {\n if (!u) {\n aa = \"New Message\";\n }\n else aa = \"No Participants\";\n ;\n ;\n }\n else if (((z.length == 1))) {\n aa = z[0];\n }\n else if (((z.length == 2))) {\n var ba = {\n participant1: z[0],\n participant2: z[1]\n };\n if (x.last_separator_uses_and) {\n aa = r._(\"{participant1} and {participant2}\", ba);\n }\n else aa = r._(\"{participant1}, {participant2}\", ba);\n ;\n ;\n }\n else if (x.last_separator_uses_and) {\n if (x.abbr_mode) {\n aa = r._(\"{participant1} and {others_link}\", {\n participant1: z[0],\n others_link: this.renderRawParticipantCount(u, {\n render_subset: true,\n count: ((w - 1))\n })\n });\n }\n else if (((z.length == 3))) {\n aa = r._(\"{participant1}, {participant2} and {participant3}\", {\n participant1: z[0],\n participant2: z[1],\n participant3: z[2]\n });\n }\n else aa = r._(\"{participant1}, {participant2} and {others_link}\", {\n participant1: z[0],\n participant2: z[1],\n others_link: this.renderRawParticipantCount(u, {\n render_subset: true,\n count: ((w - 2))\n })\n });\n \n ;\n ;\n }\n else if (((z.length == 3))) {\n aa = r._(\"{participant1}, {participant2}, {participant3}\", {\n participant1: z[0],\n participant2: z[1],\n participant3: z[2]\n });\n }\n else aa = r._(\"{participant1}, {participant2}, {participant3}, {others_link}\", {\n participant1: z[0],\n participant2: z[1],\n participant3: z[2],\n others_link: this.renderRawParticipantCount(u, {\n render_subset: true,\n count: ((w - 3))\n })\n });\n \n \n \n \n ;\n ;\n if (Array.isArray(aa)) {\n aa = i.create(\"span\", {\n }, aa);\n }\n ;\n ;\n return aa;\n },\n renderRawTitleWithUnreadCount: function(u, v) {\n var w = u;\n if (((v && ((v > 1))))) {\n w = i.create(\"span\", {\n }, r._(\"{conversation_title} ({unread_count})\", {\n conversation_title: u,\n unread_count: v\n }));\n }\n ;\n ;\n return w;\n },\n renderRawParticipantCount: function(u, v) {\n var w = v.render_subset, x;\n if (!w) {\n x = ((((v.count > 1)) ? r._(\"{num} people\", {\n num: v.count\n }) : \"1 person\"));\n }\n else x = ((((v.count > 1)) ? r._(\"{others_count} others\", {\n others_count: v.count\n }) : \"1 other\"));\n ;\n ;\n return x;\n },\n renderShortNames: function(u) {\n if (((u.length == 1))) {\n return [u[0].JSBNG__name,];\n }\n ;\n ;\n return u.map(function(v) {\n return v.short_name;\n });\n },\n getUserCanonicalTitanURL: function(u, v, w) {\n var x = new o().setSubdomain(\"www\"), y = u.substr(((u.indexOf(\":\") + 1)));\n x.setPath(((((t(w) + \"/\")) + y)));\n ((v && v(x.toString())));\n return x.toString();\n },\n getTitanURLWithServerID: function(u, v, w) {\n var x = new o().setSubdomain(\"www\");\n x.setPath(p.getURIPathForThreadID(u, t(w)));\n ((v && v(x.toString())));\n return x.toString();\n },\n renderUserCanonicalTitanLink: function(u, v, w, x) {\n var y = this.getUserCanonicalTitanURL(u, null, x);\n v.setAttribute(\"href\", y);\n ((w && w()));\n },\n renderTitanLinkWithServerID: function(u, v, w, x) {\n var y = this.getTitanURLWithServerID(u, null, x);\n v.setAttribute(\"href\", y);\n ((w && w()));\n },\n renderStatusIndicator: function(u, v, w) {\n var x;\n if (((u == j.RESENDING))) {\n x = this.renderResendIndicator();\n }\n else if (((((((((u !== undefined)) && ((u != j.UNSENT)))) && ((u != j.UNCONFIRMED)))) && ((u != j.SUCCESS))))) {\n x = this.renderErrorIndicator(v, w);\n }\n \n ;\n ;\n return x;\n },\n renderResendIndicator: function() {\n return m[\":fb:mercury:resend-indicator\"].render();\n },\n renderErrorIndicator: function(u, v) {\n if (!u) {\n return null;\n }\n ;\n ;\n var w = m[\":fb:mercury:error-indicator\"].render(), x = u.is_transient, y = k.getMessage(u);\n if (x) {\n if (k.isConnectionError(u)) {\n y = r._(\"{message} Check your network connection or click to try again.\", {\n message: y\n });\n }\n else y = r._(\"{message} Click to send again.\", {\n message: y\n });\n ;\n }\n ;\n ;\n n.set(w, y, \"above\", \"center\");\n if (((v && x))) {\n g.listen(w, \"click\", v);\n w.setAttribute(\"tabindex\", \"0\");\n h.addClass(w, \"_55q-\");\n }\n ;\n ;\n return w;\n },\n _cloneIfDOMElement: function(u) {\n if (u.cloneNode) {\n return u.cloneNode();\n }\n else return u\n ;\n }\n };\n function t(u) {\n var v = p.BASE_PATH;\n if (((u && ((u != l.INBOX))))) {\n v += ((\"/\" + u));\n }\n ;\n ;\n return v;\n };\n;\n e.exports = s;\n});\n__d(\"MercurySeenByAll\", [\"CSS\",\"DataStore\",\"DOM\",\"MercuryParticipants\",\"MercuryDelayedRoger\",\"MercuryThreads\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"DataStore\"), i = b(\"DOM\"), j = b(\"MercuryParticipants\"), k = b(\"MercuryDelayedRoger\"), l = b(\"MercuryThreads\").get(), m = {\n }, n = {\n updateOnSeenChange: function(p, q) {\n m[p.tagName] = true;\n h.set(p, \"thread-id\", q.thread_id);\n g.addClass(p, \"seenByListener\");\n o(p, q);\n }\n };\n function o(p, q) {\n var r = q.participants.filter(function(t) {\n return ((t !== j.user));\n }), s = ((((q.participants.length > 0)) && ((q.participants[0] === j.user))));\n g.conditionClass(p, \"repliedLast\", s);\n g.conditionClass(p, \"seenByAll\", ((s && ((k.getSeenBy(q.thread_id).length === r.length)))));\n };\n;\n k.subscribe(\"state-changed\", function(p, q) {\n {\n var fin268keys = ((window.top.JSBNG_Replay.forInKeys)((m))), fin268i = (0);\n var r;\n for (; (fin268i < fin268keys.length); (fin268i++)) {\n ((r) = (fin268keys[fin268i]));\n {\n var s = i.scry(JSBNG__document.body, ((r + \".seenByListener\")));\n for (var t = 0; ((t < s.length)); t++) {\n var u = s[t], v = h.get(u, \"thread-id\");\n if (q[v]) {\n l.getThreadMeta(v, function(w) {\n o(u, w);\n });\n }\n ;\n ;\n };\n ;\n };\n };\n };\n ;\n });\n e.exports = n;\n});\n__d(\"MercuryThreadMetadataRenderer\", [\"MercuryConfig\",\"CSS\",\"DOM\",\"HTML\",\"JSLogger\",\"MercuryAttachment\",\"MercuryAttachmentType\",\"MercuryEmoji\",\"MercuryMessageSourceTags\",\"MercurySingletonMixin\",\"MercuryThreadMetadataRawRenderer\",\"MercuryParticipants\",\"MercuryParticipantsConstants\",\"React\",\"MercurySeenByAll\",\"MercuryServerRequests\",\"SplitImage.react\",\"Style\",\"MercuryThreadlistIconTemplates\",\"MercuryThreads\",\"Tooltip\",\"URI\",\"arrayContains\",\"createArrayFrom\",\"copyProperties\",\"cx\",\"formatDate\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"MercuryConfig\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"HTML\"), k = b(\"JSLogger\"), l = b(\"MercuryAttachment\"), m = b(\"MercuryAttachmentType\"), n = b(\"MercuryEmoji\"), o = b(\"MercuryMessageSourceTags\"), p = b(\"MercurySingletonMixin\"), q = b(\"MercuryThreadMetadataRawRenderer\"), r = b(\"MercuryParticipants\"), s = b(\"MercuryParticipantsConstants\"), t = b(\"React\"), u = b(\"MercurySeenByAll\"), v = b(\"MercuryServerRequests\"), w = b(\"SplitImage.react\"), x = b(\"Style\"), y = b(\"MercuryThreadlistIconTemplates\"), z = b(\"MercuryThreads\"), aa = b(\"Tooltip\"), ba = b(\"URI\"), ca = b(\"arrayContains\"), da = b(\"createArrayFrom\"), ea = b(\"copyProperties\"), fa = b(\"cx\"), ga = b(\"formatDate\"), ha = b(\"tx\"), ia = k.create(\"wm_timestamp\");\n function ja(pa) {\n this._fbid = pa;\n this._serverRequests = v.getForFBID(pa);\n this._threads = z.getForFBID(pa);\n };\n;\n ea(ja, p);\n ea(ja.prototype, {\n renderTimestamp: function(pa, qa, ra, sa) {\n if (sa) {\n if (!qa) {\n ia.warn(\"no_title\");\n qa = (new JSBNG__Date(sa)).toLocaleDateString();\n }\n ;\n ;\n pa.setAttribute(\"title\", qa);\n pa.setAttribute(\"data-utime\", ((sa / 1000)));\n if (!ra) {\n ia.warn(\"no_display\");\n ra = ga(new JSBNG__Date(sa), ((g[\"24h_times\"] ? \"H:i\" : \"g:ia\")));\n }\n ;\n ;\n i.setContent(pa, ra);\n h.show(pa);\n }\n ;\n ;\n },\n renderMessageSourceTags: function(pa, qa, ra, sa) {\n var ta = \"\", ua = \"\", va = \"\";\n if (ca(ra, o.MESSENGER)) {\n ta = \"Sent from Messenger\";\n ua = new ba(\"/mobile/messenger\");\n va = \"_9g\";\n }\n else if (ca(ra, o.MOBILE)) {\n ta = \"Sent from Mobile\";\n ua = new ba(\"/mobile/\");\n va = \"_9j\";\n }\n else if (ca(ra, o.CHAT)) {\n ta = \"Sent from chat\";\n va = \"_9h\";\n }\n else if (ca(ra, o.EMAIL)) {\n if (sa) {\n ta = ha._(\"Sent from {email}\", {\n email: sa\n });\n }\n else ta = \"Sent from email\";\n ;\n ;\n va = \"_9i\";\n }\n \n \n \n ;\n ;\n if (va) {\n aa.set(pa, ta);\n h.addClass(qa, va);\n if (ua) {\n pa.setAttribute(\"href\", ua);\n }\n else pa.removeAttribute(\"href\");\n ;\n ;\n }\n else h.hide(pa);\n ;\n ;\n },\n renderMessageLocation: function(pa, qa, ra) {\n var sa = ba(\"/ajax/messaging/hovercard/map.php\").setQueryData(ra);\n pa.setAttribute(\"data-hovercard\", sa);\n h.removeClass(pa, \"_b9\");\n h.show(qa);\n },\n renderSpoofWarning: function(pa, qa, ra) {\n if (qa) {\n h.addClass(pa, \"_sa\");\n aa.set(pa, ha._(\"Unable to confirm {name_or_email} as the sender.\", {\n name_or_email: ra.JSBNG__name\n }));\n }\n ;\n ;\n },\n renderChatSpoofWarning: function(pa, qa, ra) {\n if (qa) {\n i.appendContent(pa, ha._(\"Unable to confirm {name_or_email} as the sender.\", {\n name_or_email: ra.JSBNG__name\n }));\n }\n ;\n ;\n },\n renderCoreThreadlist: function(pa, qa, ra, sa, ta) {\n sa = ((sa || {\n }));\n this.renderThreadImage(pa, qa.getNode(\"image\"));\n var ua = qa.getNode(\"accessibleName\"), va = [qa.getNode(\"JSBNG__name\"),];\n if (ua) {\n va.push(ua);\n }\n ;\n ;\n oa(this, pa, va, sa);\n if (((pa.folder && ta))) {\n na(qa.getNode(\"folderBadge\"), pa.folder);\n }\n ;\n ;\n var wa = qa.getNode(\"timestamp\");\n this.renderTimestamp(wa, pa.timestamp_absolute, pa.timestamp_relative, pa.timestamp);\n this.renderSnippet(pa, qa.getNode(\"snippet\"));\n la(qa, pa);\n ra(qa, pa);\n },\n renderAndSeparatedParticipantList: function(pa, qa, ra) {\n ra = ((ra || {\n }));\n ra.last_separator_uses_and = true;\n this._threads.getThreadMeta(pa, function(sa) {\n oa(this, sa, qa, ra);\n }.bind(this));\n },\n renderSnippet: function(pa, qa) {\n var ra = false, sa = i.create(\"span\");\n h.addClass(sa, \"MercuryRepliedIndicator\");\n i.appendContent(qa, sa);\n u.updateOnSeenChange(sa, pa);\n var ta = pa.snippet;\n if (ta) {\n if (pa.snippet_has_attachment) {\n i.appendContent(qa, i.create(\"span\", {\n className: \"MercuryAttachmentIndicator\"\n }));\n }\n ;\n ;\n if (pa.is_forwarded_snippet) {\n i.appendContent(qa, i.create(\"strong\", {\n className: \"_55q_\"\n }, \"Forwarded Message:\"));\n }\n ;\n ;\n if (((ta.substr(0, 4) == \"?OTR\"))) {\n ta = \"[encrypted message]\";\n }\n else ta = ta.replace(/\\r\\n|[\\r\\n]/g, \" \");\n ;\n ;\n ta = j(n.htmlEmojiAndEmote(ta));\n }\n else {\n if (pa.is_forwarded_snippet) {\n i.appendContent(qa, i.create(\"strong\", {\n className: \"_55q_\"\n }, \"Forwarded Message\"));\n }\n ;\n ;\n if (((((pa.snippet_has_attachment && pa.snippet_attachments)) && pa.snippet_attachments.length))) {\n ra = true;\n ta = i.create(\"span\");\n ma(this, pa, ta);\n }\n ;\n ;\n }\n ;\n ;\n var ua = pa.participants.length;\n if (pa.is_subscribed) {\n ua--;\n }\n ;\n ;\n if (((((((!ra && pa.snippet_sender)) && ((r.getIDForUser(this._fbid) != pa.snippet_sender)))) && ((ua > 1))))) {\n r.get(pa.snippet_sender, function(va) {\n if (va.short_name) {\n i.appendContent(qa, ha._(\"{name}: {conversation_snippet}\", {\n JSBNG__name: va.short_name,\n conversation_snippet: ta\n }));\n }\n else i.appendContent(qa, ta);\n ;\n ;\n });\n }\n else i.appendContent(qa, ta);\n ;\n ;\n },\n getTitanURL: function(pa, qa, ra) {\n if (((pa.substr(0, pa.indexOf(\":\")) == \"user\"))) {\n q.getUserCanonicalTitanURL(pa, qa, ra);\n }\n else this._serverRequests.getServerThreadID(pa, function(sa) {\n q.getTitanURLWithServerID(sa, qa, ra);\n });\n ;\n ;\n },\n renderTitanLink: function(pa, qa, ra, sa) {\n if (((pa.substr(0, pa.indexOf(\":\")) == \"user\"))) {\n q.renderUserCanonicalTitanLink(pa, qa, ra, sa);\n }\n else this._serverRequests.getServerThreadID(pa, function(ta) {\n q.renderTitanLinkWithServerID(ta, qa, ra, sa);\n });\n ;\n ;\n },\n renderThreadImage: function(pa, qa) {\n if (pa.image_src) {\n var ra = w({\n srcs: pa.image_src,\n size: s.BIG_IMAGE_SIZE\n });\n t.renderComponent(ra, qa);\n return;\n }\n ;\n ;\n var sa = r.getIDForUser(this._fbid), ta = [], ua = pa.participants.filter(function(va) {\n return ((va != sa));\n });\n if (!ua.length) {\n ta = [sa,];\n }\n else if (((ua.length == 1))) {\n ta = [ua[0],];\n }\n else ta = ua.slice(0, 3);\n \n ;\n ;\n this.renderParticipantImages(ta, qa);\n },\n renderParticipantImages: function(pa, qa) {\n r.getOrderedBigImageMulti(pa, function(ra) {\n var sa = w({\n srcs: ra,\n border: true,\n size: s.BIG_IMAGE_SIZE\n });\n t.renderComponent(sa, qa);\n });\n },\n renderParticipantList: function(pa, qa, ra, sa) {\n return q.renderRawParticipantList(this._serverRequests.getServerThreadIDNow(pa), qa, ra, sa);\n },\n renderThreadNameAndParticipantList: function(pa, qa, ra, sa) {\n var ta = q.renderRawParticipantList(this._serverRequests.getServerThreadIDNow(pa), qa, ra, sa), ua = this._threads.getThreadMetaNow(pa);\n if (!ua.JSBNG__name) {\n return ta;\n }\n ;\n ;\n return ha._(\"{conversation_name} [with {participant_list}]\", {\n conversation_name: ua.JSBNG__name,\n participant_list: ta\n });\n },\n renderParticipantCount: function(pa, qa) {\n return q.renderRawParticipantCount(this._serverRequests.getServerThreadIDNow(pa), qa);\n }\n });\n function ka(pa) {\n if (!pa.snippet_attachments) {\n return [];\n }\n ;\n ;\n return pa.snippet_attachments.filter(function(qa) {\n return ((qa.attach_type === m.PHOTO));\n });\n };\n;\n function la(pa, qa) {\n var ra = ka(qa);\n if (((ra.length === 0))) {\n return;\n }\n ;\n ;\n var sa = ra[0].thumbnail_url;\n if (!sa) {\n return;\n }\n ;\n ;\n var ta = ((((ra.length == 1)) ? \"snippet-thumbnail-single\" : \"snippet-thumbnail-multiple\")), ua = pa.getNode(ta);\n if (!ua) {\n return;\n }\n ;\n ;\n var va = i.JSBNG__find(ua, \"i\");\n x.set(va, \"background-image\", ((((\"url(\" + sa)) + \")\")));\n h.show(ua);\n };\n;\n function ma(pa, qa, ra) {\n var sa = ((qa.snippet_sender && ((r.getIDForUser(pa._fbid) == qa.snippet_sender)))), ta = function(ya) {\n if (((!qa.snippet_sender || sa))) {\n ya(null);\n return;\n }\n ;\n ;\n r.get(qa.snippet_sender, function(za) {\n ya(za.short_name);\n });\n }, ua = ka(qa), va = ((ua.length == qa.snippet_attachments.length)), wa = ((((((qa.snippet_attachments.length === 1)) && qa.snippet_attachments[0].metadata)) && ((qa.snippet_attachments[0].metadata.type == \"fb_voice_message\")))), xa = ((((qa.snippet_attachments.length === 1)) && ((qa.snippet_attachments[0].attach_type === m.STICKER))));\n ta(function(ya) {\n var za = null;\n if (va) {\n var ab = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n if (((ua.length === 1))) {\n za = ((sa ? \"You sent a photo.\" : ha._(\"{name} sent a photo.\", {\n JSBNG__name: ya\n })));\n }\n else za = ((sa ? ha._(\"You sent {num_photos} photos.\", {\n num_photos: ua.length\n }) : ha._(\"{name} sent {num_photos} photos.\", {\n JSBNG__name: ya,\n num_photos: ua.length\n })));\n ;\n ;\n h.addClass(ab, l.getAttachIconClass(ua[0].icon_type));\n i.appendContent(ab, za);\n i.appendContent(ra, ab);\n }\n else if (wa) {\n var bb = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n za = ((sa ? \"You sent a voice message.\" : ha._(\"{name} sent a voice message.\", {\n JSBNG__name: ya\n })));\n h.addClass(bb, l.getAttachIconClass(qa.snippet_attachments[0].icon_type));\n i.appendContent(bb, za);\n i.appendContent(ra, bb);\n }\n else if (xa) {\n za = ((sa ? \"You sent a sticker.\" : ha._(\"{name} sent a sticker.\", {\n JSBNG__name: ya\n })));\n i.appendContent(ra, za);\n }\n else qa.snippet_attachments.filter(function(cb) {\n return ((((cb.attach_type == m.FILE)) || ((cb.attach_type == m.PHOTO))));\n }).forEach(function(cb) {\n var db = y[\":fb:mercury:attachment-icon-text\"].build().getRoot();\n i.appendContent(db, cb.JSBNG__name);\n h.addClass(db, l.getAttachIconClass(cb.icon_type));\n i.appendContent(ra, db);\n });\n \n \n ;\n ;\n });\n };\n;\n function na(pa, qa) {\n da(pa).forEach(function(ra) {\n i.setContent(ra, qa);\n });\n };\n;\n function oa(pa, qa, ra, sa) {\n ra = da(ra);\n if (qa.JSBNG__name) {\n var ta = q.renderRawTitleWithUnreadCount(qa.JSBNG__name, ((sa.show_unread_count ? qa.unread_count : 0)));\n ra.forEach(function(va) {\n i.setContent(va, ta);\n });\n ((sa.callback && sa.callback(ta)));\n return;\n }\n ;\n ;\n var ua = qa.participants;\n if (((qa.participants.length > 1))) {\n ua = qa.participants.filter(function(va) {\n return ((va != r.getIDForUser(pa._fbid)));\n });\n }\n ;\n ;\n r.getMulti(ua, function(va) {\n q.renderParticipantListWithNoThreadName(pa._serverRequests.getServerThreadIDNow(qa.thread_id), qa, ua, va, ra, sa);\n });\n };\n;\n e.exports = ja;\n});\n__d(\"MercuryChatUtils\", [\"Env\",], function(a, b, c, d, e, f) {\n var g = b(\"Env\"), h = {\n canOpenChatTab: function(i) {\n var j = ((i.is_canonical && !i.is_canonical_user));\n return ((((i.is_subscribed && !j)) && ((i.canonical_fbid != g.user))));\n }\n };\n e.exports = h;\n});\n__d(\"RenderManager\", [\"function-extensions\",\"copyProperties\",], function(a, b, c, d, e, f) {\n b(\"function-extensions\");\n var g = b(\"copyProperties\");\n function h(i) {\n this._isDirty = false;\n this._obj = i;\n };\n;\n g(h.prototype, {\n dirty: function() {\n if (!this._isDirty) {\n this._isDirty = true;\n this._doPaint.bind(this).defer();\n }\n ;\n ;\n },\n _doPaint: function() {\n this._isDirty = false;\n this._obj.paint();\n }\n });\n e.exports = h;\n});\n__d(\"CounterDisplay\", [\"Arbiter\",\"CSS\",\"DOM\",\"RenderManager\",\"Run\",\"$\",\"copyProperties\",\"removeFromArray\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"RenderManager\"), k = b(\"Run\"), l = b(\"$\"), m = b(\"copyProperties\"), n = b(\"removeFromArray\");\n function o(p, q, r, s, t, u) {\n m(this, {\n _name: p,\n _valueNode: l(q),\n _wrapperNode: ((l(r) || null)),\n _statusClass: t,\n _rm: new j(this),\n _arbiterSubscription: null,\n _count: 0\n });\n var v = this._valueNode.firstChild;\n if (v) {\n var w = parseInt(v.nodeValue, 10);\n if (!isNaN(w)) {\n this._count = w;\n }\n ;\n ;\n }\n ;\n ;\n this._statusNode = ((s ? l(s) : null));\n this._subscribeAll();\n o.instances.push(this);\n if (!u) {\n k.onLeave(this._destroy.bind(this), true);\n }\n ;\n ;\n };\n;\n m(o, {\n EVENT_TYPE_ADJUST: \"CounterDisplay/adjust\",\n EVENT_TYPE_UPDATE: \"CounterDisplay/update\",\n instances: [],\n adjustCount: function(p, q) {\n g.inform(((((o.EVENT_TYPE_ADJUST + \"/\")) + p)), q);\n },\n setCount: function(p, q) {\n g.inform(((((o.EVENT_TYPE_UPDATE + \"/\")) + p)), q);\n }\n });\n m(o.prototype, {\n _destroy: function() {\n delete this._valueNode;\n delete this._wrapperNode;\n if (this._arbiterSubscription) {\n this._arbiterSubscription.unsubscribe();\n delete this._arbiterSubscription;\n }\n ;\n ;\n n(o.instances, this);\n },\n adjustCount: function(p) {\n this._count = Math.max(0, ((this._count + p)));\n this._rm.dirty();\n return this;\n },\n setCount: function(p) {\n this._count = Math.max(0, p);\n this._rm.dirty();\n return this;\n },\n paint: function() {\n i.setContent(this._valueNode, this._count);\n this._toggleNodes();\n },\n _toggleNodes: function() {\n if (this._wrapperNode) {\n h.conditionClass(this._wrapperNode, \"hidden_elem\", ((this._count <= 0)));\n }\n ;\n ;\n if (((this._statusClass && this._statusNode))) {\n h.conditionClass(this._statusNode, this._statusClass, ((this._count > 0)));\n }\n ;\n ;\n },\n _subscribeAll: function() {\n var p = [((((o.EVENT_TYPE_ADJUST + \"/\")) + this._name)),((((o.EVENT_TYPE_UPDATE + \"/\")) + this._name)),];\n this._arbiterSubscription = g.subscribe(p, this._onInform.bind(this), g.SUBSCRIBE_NEW);\n },\n _onInform: function(p, q) {\n q = parseInt(q);\n if (isNaN(q)) {\n return;\n }\n ;\n ;\n if (((p.indexOf(o.EVENT_TYPE_ADJUST) != -1))) {\n this.adjustCount(q);\n }\n else if (((p.indexOf(o.EVENT_TYPE_UPDATE) != -1))) {\n this.setCount(q);\n }\n else return\n \n ;\n return;\n }\n });\n e.exports = o;\n});\n__d(\"CacheStorage\", [\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = {\n memory: k,\n localstorage: i,\n sessionstorage: j\n };\n function i() {\n this._store = a.JSBNG__localStorage;\n };\n;\n i.available = function() {\n try {\n return !!a.JSBNG__localStorage;\n } catch (m) {\n return false;\n };\n ;\n };\n g(i.prototype, {\n keys: function() {\n var m = [];\n for (var n = 0; ((n < this._store.length)); n++) {\n m.push(this._store.key(n));\n ;\n };\n ;\n return m;\n },\n get: function(m) {\n return this._store.getItem(m);\n },\n set: function(m, n) {\n this._store.setItem(m, n);\n },\n remove: function(m) {\n this._store.removeItem(m);\n },\n clear: function() {\n this._store.clear();\n }\n });\n function j() {\n this._store = a.JSBNG__sessionStorage;\n };\n;\n j.available = function() {\n try {\n return !!a.JSBNG__sessionStorage;\n } catch (m) {\n return false;\n };\n ;\n };\n g(j.prototype, {\n keys: function() {\n var m = [];\n for (var n = 0; ((n < this._store.length)); n++) {\n m.push(this._store.key(n));\n ;\n };\n ;\n return m;\n },\n get: function(m) {\n return this._store.getItem(m);\n },\n set: function(m, n) {\n this._store.setItem(m, n);\n },\n remove: function(m) {\n this._store.removeItem(m);\n },\n clear: function() {\n this._store.clear();\n }\n });\n function k() {\n this._store = {\n };\n };\n;\n k.available = function() {\n return true;\n };\n g(k.prototype, {\n keys: function() {\n return Object.keys(this._store);\n },\n get: function(m) {\n if (((this._store[m] === undefined))) {\n return null;\n }\n ;\n ;\n return this._store[m];\n },\n set: function(m, n) {\n this._store[m] = n;\n },\n remove: function(m) {\n if (((m in this._store))) {\n delete this._store[m];\n }\n ;\n ;\n },\n clear: function() {\n this._store = {\n };\n }\n });\n function l(m, n) {\n this._key_prefix = ((n || \"_cs_\"));\n this._magic_prefix = \"_@_\";\n if (((((m == \"AUTO\")) || !m))) {\n {\n var fin269keys = ((window.top.JSBNG_Replay.forInKeys)((h))), fin269i = (0);\n var o;\n for (; (fin269i < fin269keys.length); (fin269i++)) {\n ((o) = (fin269keys[fin269i]));\n {\n var p = h[o];\n if (p.available()) {\n m = o;\n break;\n }\n ;\n ;\n };\n };\n };\n }\n ;\n ;\n if (m) {\n if (((typeof m == \"string\"))) {\n if (((!h[m] || !h[m].available()))) {\n this._backend = new k();\n }\n else this._backend = new h[m]();\n ;\n ;\n }\n else if (((!m.available || !m.available()))) {\n this._backend = new k();\n }\n else this._backend = m;\n \n ;\n }\n ;\n ;\n };\n;\n g(l, {\n getAllStorageTypes: function() {\n return Object.keys(h);\n }\n });\n g(l.prototype, {\n keys: function() {\n var m = [];\n try {\n if (this._backend) {\n var o = this._backend.keys();\n for (var p = 0; ((p < o.length)); p++) {\n if (((o[p].substr(0, this._key_prefix.length) == this._key_prefix))) {\n m.push(o[p].substr(this._key_prefix.length));\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n } catch (n) {\n \n };\n ;\n return m;\n },\n set: function(m, n) {\n if (this._backend) {\n if (((typeof n == \"string\"))) {\n n = ((this._magic_prefix + n));\n }\n else n = JSON.stringify(n);\n ;\n ;\n try {\n this._backend.set(((this._key_prefix + m)), n);\n } catch (o) {\n \n };\n ;\n }\n ;\n ;\n },\n get: function(m, n) {\n var o;\n if (this._backend) {\n try {\n o = this._backend.get(((this._key_prefix + m)));\n } catch (p) {\n o = null;\n };\n ;\n if (((o !== null))) {\n if (((o.substr(0, this._magic_prefix.length) == this._magic_prefix))) {\n o = o.substr(this._magic_prefix.length);\n }\n else try {\n o = JSON.parse(o);\n } catch (q) {\n o = undefined;\n }\n ;\n ;\n }\n else o = undefined;\n ;\n ;\n }\n ;\n ;\n if (((((o === undefined)) && ((n !== undefined))))) {\n o = n;\n if (this._backend) {\n var r;\n if (((typeof o == \"string\"))) {\n r = ((this._magic_prefix + o));\n }\n else r = JSON.stringify(o);\n ;\n ;\n try {\n this._backend.set(((this._key_prefix + m)), r);\n } catch (p) {\n \n };\n ;\n }\n ;\n ;\n }\n ;\n ;\n return o;\n },\n remove: function(m) {\n if (this._backend) {\n try {\n this._backend.remove(((this._key_prefix + m)));\n } catch (n) {\n \n };\n }\n ;\n ;\n }\n });\n e.exports = l;\n});\n__d(\"Badge\", [\"DOM\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"DOM\"), h = b(\"cx\"), i = function(j) {\n var k;\n switch (j) {\n case \"xsmall\":\n k = \"_56_g _58to\";\n break;\n case \"small\":\n k = \"_56_g _56_h\";\n break;\n case \"medium\":\n k = \"_56_g _56_j\";\n break;\n case \"large\":\n k = \"_56_g _56_k\";\n break;\n case \"xlarge\":\n k = \"_56_g _57s-\";\n break;\n };\n ;\n if (k) {\n return g.create(\"span\", {\n className: k\n });\n }\n ;\n ;\n return null;\n };\n e.exports = i;\n});\n__d(\"BasicTypeaheadRenderer\", [\"Badge\",\"DOM\",], function(a, b, c, d, e, f) {\n var g = b(\"Badge\"), h = b(\"DOM\");\n function i(j, k) {\n var l = [];\n if (j.icon) {\n l.push(h.create(\"img\", {\n alt: \"\",\n src: j.icon\n }));\n }\n ;\n ;\n if (j.text) {\n var m = [j.text,];\n if (j.verified) {\n m.push(g(\"xsmall\"));\n }\n ;\n ;\n l.push(h.create(\"span\", {\n className: \"text\"\n }, m));\n }\n ;\n ;\n if (j.subtext) {\n l.push(h.create(\"span\", {\n className: \"subtext\"\n }, [j.subtext,]));\n }\n ;\n ;\n var n = h.create(\"li\", {\n className: ((j.type || \"\"))\n }, l);\n if (j.text) {\n n.setAttribute(\"aria-label\", j.text);\n }\n ;\n ;\n return n;\n };\n;\n i.className = \"basic\";\n e.exports = i;\n});\n__d(\"TypeaheadView\", [\"JSBNG__Event\",\"ArbiterMixin\",\"BasicTypeaheadRenderer\",\"CSS\",\"DOM\",\"Parent\",\"$\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"BasicTypeaheadRenderer\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Parent\"), m = b(\"$\"), n = b(\"copyProperties\"), o = b(\"emptyFunction\");\n function p(q, r) {\n this.element = this.JSBNG__content = m(q);\n this.showBadges = r.showBadges;\n n(this, r);\n };\n;\n n(p.prototype, h, {\n events: [\"highlight\",\"render\",\"reset\",\"select\",\"beforeRender\",\"next\",\"prev\",],\n renderer: i,\n autoSelect: false,\n ignoreMouseover: false,\n init: function() {\n this.init = o;\n this.initializeEvents();\n this.reset();\n },\n initializeEvents: function() {\n g.listen(this.element, {\n mouseup: this.mouseup.bind(this),\n mouseover: this.mouseover.bind(this)\n });\n },\n setTypeahead: function(q) {\n this.typeahead = q;\n },\n setAccessibilityControlElement: function(q) {\n this.accessibilityElement = q;\n },\n getElement: function() {\n return this.element;\n },\n mouseup: function(JSBNG__event) {\n if (((JSBNG__event.button != 2))) {\n this.select(true);\n JSBNG__event.kill();\n }\n ;\n ;\n },\n mouseover: function(JSBNG__event) {\n if (this.ignoreMouseover) {\n this.ignoreMouseover = false;\n return;\n }\n ;\n ;\n if (this.visible) {\n this.highlight(this.getIndex(JSBNG__event));\n }\n ;\n ;\n },\n reset: function(q) {\n if (!q) {\n this.disableAutoSelect = false;\n }\n ;\n ;\n this.justRendered = false;\n this.justShown = false;\n this.index = -1;\n this.items = [];\n this.results = [];\n this.value = \"\";\n this.JSBNG__content.innerHTML = \"\";\n this.inform(\"reset\");\n return this;\n },\n getIndex: function(JSBNG__event) {\n return this.items.indexOf(l.byTag(JSBNG__event.getTarget(), \"li\"));\n },\n JSBNG__getSelection: function() {\n var q = ((this.results[this.index] || null));\n return ((this.visible ? q : null));\n },\n isEmpty: function() {\n return !this.results.length;\n },\n isVisible: function() {\n return this.visible;\n },\n show: function() {\n j.show(this.element);\n if (((this.results && this.results.length))) {\n if (((((this.autoSelect && this.accessibilityElement)) && this.selected))) {\n this.accessibilityElement.setAttribute(\"aria-activedescendant\", k.getID(this.selected));\n }\n ;\n }\n ;\n ;\n ((this.accessibilityElement && this.accessibilityElement.setAttribute(\"aria-expanded\", \"true\")));\n this.visible = true;\n return this;\n },\n hide: function() {\n j.hide(this.element);\n if (this.accessibilityElement) {\n this.accessibilityElement.setAttribute(\"aria-expanded\", \"false\");\n this.accessibilityElement.removeAttribute(\"aria-activedescendant\");\n }\n ;\n ;\n this.visible = false;\n return this;\n },\n render: function(q, r, s) {\n this.value = q;\n if (!r.length) {\n ((this.accessibilityElement && this.accessibilityElement.removeAttribute(\"aria-activedescendant\")));\n this.reset(true);\n return;\n }\n ;\n ;\n this.justRendered = true;\n if (!this.results.length) {\n this.justShown = true;\n }\n ;\n ;\n var t = {\n results: r,\n value: q\n };\n this.inform(\"beforeRender\", t);\n r = t.results;\n var u = this.getDefaultIndex(r);\n if (((((this.index > 0)) && ((this.index !== this.getDefaultIndex(this.results)))))) {\n var v = this.results[this.index];\n for (var w = 0, x = r.length; ((w < x)); ++w) {\n if (((v.uid == r[w].uid))) {\n u = w;\n break;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n this.results = r;\n k.setContent(this.JSBNG__content, this.buildResults(r));\n this.items = this.getItems();\n this.highlight(u, false);\n this.inform(\"render\", r);\n },\n getItems: function() {\n return k.scry(this.JSBNG__content, \"li\");\n },\n buildResults: function(q) {\n var r, s = null;\n if (((typeof this.renderer == \"function\"))) {\n r = this.renderer;\n s = ((this.renderer.className || \"\"));\n }\n else {\n r = a.TypeaheadRenderers[this.renderer];\n s = this.renderer;\n }\n ;\n ;\n r = r.bind(this);\n var t = this.showBadges, u = q.map(function(w, x) {\n if (!t) {\n w.verified = null;\n }\n ;\n ;\n var y = ((w.node || r(w, x)));\n y.setAttribute(\"role\", \"option\");\n return y;\n }), v = k.create(\"ul\", {\n className: s,\n id: ((\"typeahead_list_\" + ((this.typeahead ? k.getID(this.typeahead) : k.getID(this.element)))))\n }, u);\n v.setAttribute(\"role\", \"listbox\");\n return v;\n },\n getDefaultIndex: function(q) {\n var r = ((this.autoSelect && !this.disableAutoSelect));\n return ((((((this.index < 0)) && !r)) ? -1 : 0));\n },\n next: function() {\n this.highlight(((this.index + 1)));\n this.inform(\"next\", this.selected);\n },\n prev: function() {\n this.highlight(((this.index - 1)));\n this.inform(\"prev\", this.selected);\n },\n getItemText: function(q) {\n var r = \"\";\n if (q) {\n r = q.getAttribute(\"aria-label\");\n if (!r) {\n r = k.getText(q);\n q.setAttribute(\"aria-label\", r);\n }\n ;\n ;\n }\n ;\n ;\n return r;\n },\n setIsViewingSelectedItems: function(q) {\n this.viewingSelected = q;\n return this;\n },\n getIsViewingSelectedItems: function() {\n return this.viewingSelected;\n },\n highlight: function(q, r) {\n var s = true;\n if (this.selected) {\n j.removeClass(this.selected, \"selected\");\n this.selected.setAttribute(\"aria-selected\", \"false\");\n }\n ;\n ;\n if (((q > ((this.items.length - 1))))) {\n q = -1;\n }\n else if (((q < -1))) {\n q = ((this.items.length - 1));\n }\n \n ;\n ;\n if (((((q >= 0)) && ((q < this.items.length))))) {\n if (((this.selected && ((this.getItemText(this.items[q]) === this.getItemText(this.selected)))))) {\n s = false;\n }\n ;\n ;\n this.selected = this.items[q];\n j.addClass(this.selected, \"selected\");\n this.selected.setAttribute(\"aria-selected\", \"true\");\n if (this.accessibilityElement) {\n (function() {\n this.accessibilityElement.setAttribute(\"aria-activedescendant\", k.getID(this.selected));\n }).bind(this).defer();\n }\n ;\n ;\n }\n else ((this.accessibilityElement && this.accessibilityElement.removeAttribute(\"aria-activedescendant\")));\n ;\n ;\n this.index = q;\n this.disableAutoSelect = ((q == -1));\n var t = ((q !== -1)), u = this.getItemText(this.selected);\n if (((((((((q !== -1)) && this.isVisible())) && u)) && this.autoSelect))) {\n if (this.justShown) {\n this.justRendered = false;\n this.justShown = false;\n t = false;\n }\n else if (((s && this.justRendered))) {\n this.justRendered = false;\n t = false;\n }\n \n ;\n }\n ;\n ;\n if (((r !== false))) {\n this.inform(\"highlight\", {\n index: q,\n selected: this.results[q],\n element: this.selected\n });\n }\n ;\n ;\n },\n select: function(q) {\n var r = this.index, s = this.results[r], t = this.element.getAttribute(\"id\");\n if (s) {\n this.inform(\"select\", {\n index: r,\n clicked: !!q,\n selected: s,\n id: t,\n query: this.value\n });\n this.inform(\"afterSelect\");\n }\n ;\n ;\n }\n });\n e.exports = p;\n});\n__d(\"BucketedTypeaheadView\", [\"Class\",\"DOM\",\"tx\",\"TypeaheadView\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"DOM\"), i = b(\"tx\"), j = b(\"TypeaheadView\"), k = b(\"copyProperties\");\n function l(m, n) {\n this.parent.construct(this, m, n);\n };\n;\n g.extend(l, j);\n k(l.prototype, {\n render: function(m, n, o) {\n n = this.buildBuckets(m, n);\n return this.parent.render(m, n, o);\n },\n highlight: function(m, n) {\n if (((((m == -1)) && ((this.index !== 0))))) {\n m = this.index;\n }\n ;\n ;\n while (((((((m >= 0)) && ((m < this.items.length)))) && !this.isHighlightable(this.results[m])))) {\n m = ((m + 1));\n ;\n };\n ;\n this.parent.highlight(m, n);\n },\n buildBuckets: function(m, n) {\n if (((((!this.typeObjects || !n)) || !n.length))) {\n return n;\n }\n ;\n ;\n var o = [], p = {\n };\n for (var q = 0; ((q < n.length)); ++q) {\n var r = n[q], s = ((r.render_type || r.type));\n if (!p.hasOwnProperty(s)) {\n p[s] = o.length;\n o.push([this.buildBucketHeader(s),]);\n }\n ;\n ;\n r.classNames = s;\n r.groupIndex = p[s];\n r.indexInGroup = ((o[r.groupIndex].length - 1));\n o[r.groupIndex].push(r);\n };\n ;\n {\n var fin270keys = ((window.top.JSBNG_Replay.forInKeys)((this.typeObjects))), fin270i = (0);\n (0);\n for (; (fin270i < fin270keys.length); (fin270i++)) {\n ((s) = (fin270keys[fin270i]));\n {\n if (((!p.hasOwnProperty(s) && this.typeObjects[s].show_always))) {\n p[s] = o.length;\n o.push([this.buildBucketHeader(s),]);\n r = this.buildNoResultsEntry();\n r.classNames = r.type;\n r.groupIndex = p[s];\n r.indexInGroup = ((o[r.groupIndex].length - 1));\n o[r.groupIndex].push(r);\n }\n ;\n ;\n };\n };\n };\n ;\n var t = [];\n if (this.typeObjectsOrder) {\n for (var u = 0; ((u < this.typeObjectsOrder.length)); ++u) {\n var v = this.typeObjectsOrder[u];\n if (p.hasOwnProperty(v)) {\n t = t.concat(o[p[v]]);\n }\n ;\n ;\n };\n ;\n }\n else for (var w = 0; ((w < o.length)); ++w) {\n t = t.concat(o[w]);\n ;\n }\n ;\n ;\n return t;\n },\n buildNoResultsEntry: function() {\n return {\n uid: \"disabled_result\",\n type: \"disabled_result\",\n text: \"No Results\"\n };\n },\n buildBucketHeader: function(m) {\n var n = this.typeObjects[m];\n if (((n === undefined))) {\n throw new Error(((((m + \" is undefined in \")) + JSON.stringify(this.typeObjects))));\n }\n ;\n ;\n if (n.markup) {\n n.text = n.markup;\n delete n.markup;\n }\n ;\n ;\n return this.typeObjects[m];\n },\n buildResults: function(m) {\n var n = this.parent.buildResults(m);\n if (this.typeObjects) {\n return h.create(\"div\", {\n className: \"bucketed\"\n }, [n,]);\n }\n else return n\n ;\n },\n isHighlightable: function(m) {\n return ((((m.type != \"header\")) && ((m.type != \"disabled_result\"))));\n },\n select: function(m) {\n var n = this.results[this.index];\n if (((n && this.isHighlightable(n)))) {\n this.parent.select(m);\n }\n ;\n ;\n },\n normalizeIndex: function(m) {\n var n = this.results.length;\n if (((n === 0))) {\n return -1;\n }\n else if (((m < -1))) {\n return ((((((m % n)) + n)) + 1));\n }\n else if (((m >= n))) {\n return ((((m % n)) - 1));\n }\n else return m\n \n \n ;\n },\n getDefaultIndex: function(m) {\n var n = ((this.autoSelect && !this.disableAutoSelect));\n if (((((this.index < 0)) && !n))) {\n return -1;\n }\n ;\n ;\n if (((m.length === 0))) {\n return -1;\n }\n ;\n ;\n var o = 0;\n while (((!this.isHighlightable(m) && ((o < m.length))))) {\n o++;\n ;\n };\n ;\n return o;\n },\n prev: function() {\n var m = this.results[this.normalizeIndex(((this.index - 1)))];\n while (((m && !this.isHighlightable(m)))) {\n this.index = this.normalizeIndex(((this.index - 1)));\n m = this.results[this.normalizeIndex(((this.index - 1)))];\n };\n ;\n return this.parent.prev();\n },\n next: function() {\n var m = this.results[this.normalizeIndex(((this.index + 1)))];\n while (((m && !this.isHighlightable(m)))) {\n this.index = this.normalizeIndex(((this.index + 1)));\n m = this.results[this.normalizeIndex(((this.index + 1)))];\n };\n ;\n return this.parent.next();\n }\n });\n e.exports = l;\n});\n__d(\"ContextualTypeaheadView\", [\"BucketedTypeaheadView\",\"CSS\",\"Class\",\"ContextualLayer\",\"ContextualLayerAutoFlip\",\"ContextualLayerHideOnScroll\",\"DOM\",\"DOMDimensions\",\"Style\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"BucketedTypeaheadView\"), h = b(\"CSS\"), i = b(\"Class\"), j = b(\"ContextualLayer\"), k = b(\"ContextualLayerAutoFlip\"), l = b(\"ContextualLayerHideOnScroll\"), m = b(\"DOM\"), n = b(\"DOMDimensions\"), o = b(\"Style\"), p = b(\"copyProperties\");\n function q(r, s) {\n this.parent.construct(this, r, s);\n };\n;\n i.extend(q, g);\n p(q.prototype, {\n init: function() {\n this.initializeLayer();\n this.parent.init();\n },\n initializeLayer: function() {\n this.context = this.getContext();\n this.wrapper = m.create(\"div\");\n m.appendContent(this.wrapper, this.element);\n h.addClass(this.element, \"uiContextualTypeaheadView\");\n this.layer = new j({\n context: this.context,\n position: \"below\",\n alignment: this.alignment,\n causalElement: this.causalElement,\n permanent: true\n }, this.wrapper);\n this.layer.enableBehavior(l);\n if (((o.isFixed(this.context) || this.autoflip))) {\n this.layer.enableBehavior(k);\n }\n ;\n ;\n this.subscribe(\"render\", this.renderLayer.bind(this));\n },\n show: function() {\n if (this.minWidth) {\n o.set(this.wrapper, \"min-width\", ((this.minWidth + \"px\")));\n }\n else if (this.width) {\n o.set(this.wrapper, \"width\", ((this.width + \"px\")));\n }\n else o.set(this.wrapper, \"width\", ((n.getElementDimensions(this.context).width + \"px\")));\n \n ;\n ;\n var r = this.parent.show();\n this.layer.show();\n return r;\n },\n hide: function() {\n this.layer.hide();\n return this.parent.hide();\n },\n renderLayer: function() {\n if (!this.isVisible()) {\n return;\n }\n ;\n ;\n if (this.layer.isShown()) {\n this.layer.updatePosition();\n }\n else this.layer.show();\n ;\n ;\n },\n clearText: function() {\n this.layer.getCausalElement().value = \"\";\n },\n getContext: function() {\n return this.element.parentNode;\n }\n });\n e.exports = q;\n});\n__d(\"DOMClone\", [], function(a, b, c, d, e, f) {\n var g = {\n shallowClone: function(i) {\n return h(i, false);\n },\n deepClone: function(i) {\n return h(i, true);\n }\n };\n function h(i, j) {\n var k = i.cloneNode(j);\n if (((typeof k.__FB_TOKEN !== \"undefined\"))) {\n delete k.__FB_TOKEN;\n }\n ;\n ;\n return k;\n };\n;\n e.exports = g;\n});\n__d(\"Dcode\", [], function(a, b, c, d, e, f) {\n var g, h = {\n }, i = {\n _: \"%\",\n A: \"%2\",\n B: \"000\",\n C: \"%7d\",\n D: \"%7b%22\",\n E: \"%2c%22\",\n F: \"%22%3a\",\n G: \"%2c%22ut%22%3a1\",\n H: \"%2c%22bls%22%3a\",\n I: \"%2c%22n%22%3a%22%\",\n J: \"%22%3a%7b%22i%22%3a0%7d\",\n K: \"%2c%22pt%22%3a0%2c%22vis%22%3a\",\n L: \"%2c%22ch%22%3a%7b%22h%22%3a%22\",\n M: \"%7b%22v%22%3a2%2c%22time%22%3a1\",\n N: \".channel%22%2c%22sub%22%3a%5b\",\n O: \"%2c%22sb%22%3a1%2c%22t%22%3a%5b\",\n P: \"%2c%22ud%22%3a100%2c%22lc%22%3a0\",\n Q: \"%5d%2c%22f%22%3anull%2c%22uct%22%3a\",\n R: \".channel%22%2c%22sub%22%3a%5b1%5d\",\n S: \"%22%2c%22m%22%3a0%7d%2c%7b%22i%22%3a\",\n T: \"%2c%22blc%22%3a1%2c%22snd%22%3a1%2c%22ct%22%3a\",\n U: \"%2c%22blc%22%3a0%2c%22snd%22%3a1%2c%22ct%22%3a\",\n V: \"%2c%22blc%22%3a0%2c%22snd%22%3a0%2c%22ct%22%3a\",\n W: \"%2c%22s%22%3a0%2c%22blo%22%3a0%7d%2c%22bl%22%3a%7b%22ac%22%3a\",\n X: \"%2c%22ri%22%3a0%7d%2c%22state%22%3a%7b%22p%22%3a0%2c%22ut%22%3a1\",\n Y: \"%2c%22pt%22%3a0%2c%22vis%22%3a1%2c%22bls%22%3a0%2c%22blc%22%3a0%2c%22snd%22%3a1%2c%22ct%22%3a\",\n Z: \"%2c%22sb%22%3a1%2c%22t%22%3a%5b%5d%2c%22f%22%3anull%2c%22uct%22%3a0%2c%22s%22%3a0%2c%22blo%22%3a0%7d%2c%22bl%22%3a%7b%22ac%22%3a\"\n };\n (function() {\n var k = [];\n {\n var fin271keys = ((window.top.JSBNG_Replay.forInKeys)((i))), fin271i = (0);\n var l;\n for (; (fin271i < fin271keys.length); (fin271i++)) {\n ((l) = (fin271keys[fin271i]));\n {\n h[i[l]] = l;\n k.push(i[l]);\n };\n };\n };\n ;\n k.reverse();\n g = new RegExp(k.join(\"|\"), \"g\");\n })();\n var j = {\n encode: function(k) {\n return encodeURIComponent(k).replace(/([_A-Z])|%../g, function(l, m) {\n return ((m ? ((\"%\" + m.charCodeAt(0).toString(16))) : l));\n }).toLowerCase().replace(g, function(l) {\n return h[l];\n });\n },\n decode: function(k) {\n return decodeURIComponent(k.replace(/[_A-Z]/g, function(l) {\n return i[l];\n }));\n }\n };\n e.exports = j;\n});\n__d(\"FileInput\", [\"JSBNG__Event\",\"ArbiterMixin\",\"DOM\",\"DOMClone\",\"Focus\",\"UserAgent\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"ArbiterMixin\"), i = b(\"DOM\"), j = b(\"DOMClone\"), k = b(\"Focus\"), l = b(\"UserAgent\"), m = b(\"copyProperties\"), n = b(\"cx\"), o = l.ie();\n function p(q, r, s) {\n this.container = q;\n this.control = r;\n this.input = s;\n var t = i.scry(this.container, \"a\")[0];\n ((t && t.removeAttribute(\"href\")));\n var u = i.create(\"div\", {\n className: \"_3jk\"\n }, this.input);\n i.appendContent(this.control, u);\n this._initListeners();\n };\n;\n m(p.prototype, h, {\n getValue: function() {\n return this.input.value;\n },\n getInput: function() {\n return this.input;\n },\n clear: function() {\n if (o) {\n var q = j.deepClone(this.input);\n i.replace(this.input, q);\n this.input = q;\n while (this._listeners.length) {\n this._listeners.pop().remove();\n ;\n };\n ;\n this._initListeners();\n }\n else {\n this.input.value = \"\";\n this.input.files = null;\n }\n ;\n ;\n },\n _initListeners: function() {\n k.relocate(this.input, this.control);\n this._listeners = [g.listen(this.input, \"change\", this._handleChange.bind(this)),];\n },\n _handleChange: function(JSBNG__event) {\n this.inform(\"change\", JSBNG__event);\n var q = this.input.form;\n if (((q && ((o < 9))))) {\n g.fire(q, \"change\", JSBNG__event);\n }\n ;\n ;\n }\n });\n e.exports = p;\n});\n__d(\"Poller\", [\"ArbiterMixin\",\"AsyncRequest\",\"Cookie\",\"Env\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"AsyncRequest\"), i = b(\"Cookie\"), j = b(\"Env\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\");\n function m(p) {\n this._config = k({\n clearOnQuicklingEvents: true,\n setupRequest: l,\n interval: null,\n maxRequests: Infinity,\n dontStart: false\n }, p);\n if (!this._config.dontStart) {\n this.start();\n }\n ;\n ;\n };\n;\n m.MIN_INTERVAL = 2000;\n k(m.prototype, g, {\n start: function() {\n if (this._polling) {\n return this;\n }\n ;\n ;\n this._requests = 0;\n this.request();\n return this;\n },\n JSBNG__stop: function() {\n this._cancelRequest();\n return this;\n },\n mute: function() {\n this._muted = true;\n return this;\n },\n resume: function() {\n if (this._muted) {\n this._muted = false;\n if (((!this._handle && this._polling))) {\n return this.request();\n }\n ;\n ;\n }\n ;\n ;\n return this;\n },\n skip: function() {\n this._skip = true;\n return this;\n },\n reset: function() {\n return this.JSBNG__stop().start();\n },\n request: function() {\n this._cancelRequest();\n this._polling = true;\n if (!o()) {\n return this._done();\n }\n ;\n ;\n if (this._muted) {\n return this;\n }\n ;\n ;\n if (((++this._requests > this._config.maxRequests))) {\n return this._done();\n }\n ;\n ;\n var p = new h(), q = false;\n p.setInitialHandler(function() {\n return !q;\n });\n this._cancelRequest = function() {\n q = true;\n this._cleanup();\n }.bind(this);\n p.setFinallyHandler(n.bind(this));\n p.setInitialHandler = l;\n p.setFinallyHandler = l;\n this._config.setupRequest(p, this);\n if (this._skip) {\n this._skip = false;\n n.bind(this).defer();\n }\n else p.send();\n ;\n ;\n return this;\n },\n isPolling: function() {\n return this._polling;\n },\n isMuted: function() {\n return this._muted;\n },\n JSBNG__setInterval: function(p) {\n if (p) {\n this._config.interval = p;\n this.start();\n }\n ;\n ;\n },\n getInterval: function() {\n return this._config.interval;\n },\n _cleanup: function() {\n if (this._handle) {\n JSBNG__clearTimeout(this._handle);\n }\n ;\n ;\n this._handle = null;\n this._cancelRequest = l;\n this._polling = false;\n },\n _done: function() {\n this._cleanup();\n this.inform(\"done\", {\n sender: this\n });\n return this;\n },\n _config: null,\n _requests: 0,\n _muted: false,\n _polling: false,\n _skip: false,\n _cancelRequest: l\n });\n function n() {\n if (!this._polling) {\n return;\n }\n ;\n ;\n if (((this._requests < this._config.maxRequests))) {\n var p = this._config.interval;\n p = ((((typeof p === \"function\")) ? p(this._requests) : p));\n this._handle = this.request.bind(this).defer(((((p > m.MIN_INTERVAL)) ? p : m.MIN_INTERVAL)), this._config.clearOnQuicklingEvents);\n }\n else this._done();\n ;\n ;\n };\n;\n function o() {\n return ((j.user == i.get(\"c_user\")));\n };\n;\n e.exports = m;\n});\n__d(\"SystemEvents\", [\"Arbiter\",\"Env\",\"ErrorUtils\",\"UserAgent\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"Env\"), i = b(\"ErrorUtils\"), j = b(\"UserAgent\"), k = b(\"copyProperties\"), l = new g(), m = [], n = 1000;\n JSBNG__setInterval(function() {\n for (var w = 0; ((w < m.length)); w++) {\n m[w]();\n ;\n };\n ;\n }, n, false);\n function o() {\n return ((((/c_user=(\\d+)/.test(JSBNG__document.cookie) && RegExp.$1)) || 0));\n };\n;\n var p = h.user, q = JSBNG__navigator.onLine;\n function r() {\n if (!q) {\n q = true;\n l.inform(l.ONLINE, q);\n }\n ;\n ;\n };\n;\n function s() {\n if (q) {\n q = false;\n l.inform(l.ONLINE, q);\n }\n ;\n ;\n };\n;\n if (j.ie()) {\n if (((j.ie() >= 8))) {\n window.JSBNG__attachEvent(\"JSBNG__onload\", function() {\n JSBNG__document.body.JSBNG__ononline = r;\n JSBNG__document.body.JSBNG__onoffline = s;\n });\n }\n else m.push(function() {\n ((JSBNG__navigator.onLine ? r : s))();\n });\n ;\n ;\n }\n else if (window.JSBNG__addEventListener) {\n if (!j.chrome()) {\n window.JSBNG__addEventListener(\"online\", r, false);\n window.JSBNG__addEventListener(\"offline\", s, false);\n }\n ;\n }\n \n;\n;\n var t = p;\n m.push(function() {\n var w = o();\n if (((t != w))) {\n l.inform(l.USER, w);\n t = w;\n }\n ;\n ;\n });\n var u = JSBNG__Date.now();\n function v() {\n var w = JSBNG__Date.now(), x = ((w - u)), y = ((((x < 0)) || ((x > 10000))));\n u = w;\n if (y) {\n l.inform(l.TIME_TRAVEL, x);\n }\n ;\n ;\n return y;\n };\n;\n m.push(v);\n m.push(function() {\n if (((window.JSBNG__onerror != i.JSBNG__onerror))) {\n window.JSBNG__onerror = i.JSBNG__onerror;\n }\n ;\n ;\n });\n k(l, {\n USER: \"SystemEvents/USER\",\n ONLINE: \"SystemEvents/ONLINE\",\n TIME_TRAVEL: \"SystemEvents/TIME_TRAVEL\",\n isPageOwner: function(w) {\n return ((((w || o())) == p));\n },\n isOnline: function() {\n return ((j.chrome() || q));\n },\n checkTimeTravel: v\n });\n e.exports = l;\n});\n__d(\"Typeahead\", [\"ArbiterMixin\",\"BehaviorsMixin\",\"DOM\",\"DataStore\",\"JSBNG__Event\",\"Parent\",\"Run\",\"copyProperties\",\"emptyFunction\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"ArbiterMixin\"), h = b(\"BehaviorsMixin\"), i = b(\"DOM\"), j = b(\"DataStore\"), k = b(\"JSBNG__Event\"), l = b(\"Parent\"), m = b(\"Run\"), n = b(\"copyProperties\"), o = b(\"emptyFunction\"), p = b(\"ge\");\n function q(r, s, t, u) {\n this.args = {\n data: r,\n view: s,\n core: t\n };\n j.set(u, \"Typeahead\", this);\n this.element = u;\n };\n;\n q.getInstance = function(r) {\n var s = l.byClass(r, \"uiTypeahead\");\n return ((s ? j.get(s, \"Typeahead\") : null));\n };\n n(q.prototype, g, h, {\n init: function(r) {\n this.init = o;\n this.getCore();\n this.getView().setAccessibilityControlElement(this.getCore().getElement());\n this.proxyEvents();\n this.initBehaviors(((r || [])));\n this.inform(\"init\", this);\n this.data.bootstrap();\n this.core.JSBNG__focus();\n },\n getData: function() {\n if (!this.data) {\n var r = this.args.data;\n this.data = r;\n this.data.init();\n }\n ;\n ;\n return this.data;\n },\n getView: function() {\n if (!this.view) {\n var r = this.args.view, s = ((r.node || p(r.node_id)));\n if (!s) {\n s = i.create(\"div\", {\n className: \"uiTypeaheadView\"\n });\n i.appendContent(this.element, s);\n }\n ;\n ;\n if (((typeof r.ctor === \"string\"))) {\n this.view = new window[r.ctor](s, ((r.options || {\n })));\n }\n else this.view = new r.ctor(s, ((r.options || {\n })));\n ;\n ;\n this.view.init();\n this.view.setTypeahead(this.element);\n }\n ;\n ;\n return this.view;\n },\n getCore: function() {\n if (!this.core) {\n var r = this.args.core;\n if (((typeof r.ctor === \"string\"))) {\n this.core = new window[r.ctor](((r.options || {\n })));\n }\n else this.core = new r.ctor(((r.options || {\n })));\n ;\n ;\n this.core.init(this.getData(), this.getView(), this.getElement());\n }\n ;\n ;\n return this.core;\n },\n getElement: function() {\n return this.element;\n },\n swapData: function(r) {\n var s = this.core;\n this.data = this.args.data = r;\n r.init();\n if (s) {\n s.data = r;\n s.initData();\n s.reset();\n }\n ;\n ;\n r.bootstrap();\n return r;\n },\n proxyEvents: function() {\n [this.data,this.view,this.core,].forEach(function(r) {\n r.subscribe(r.events, this.inform.bind(this));\n }, this);\n },\n initBehaviors: function(r) {\n r.forEach(function(s) {\n if (((typeof s === \"string\"))) {\n if (((a.TypeaheadBehaviors && a.TypeaheadBehaviors[s]))) {\n a.TypeaheadBehaviors[s](this);\n }\n else m.onLoad(function() {\n if (a.TypeaheadBehaviors) {\n ((a.TypeaheadBehaviors[s] || o))(this);\n }\n ;\n ;\n }.bind(this));\n ;\n ;\n }\n else this.enableBehavior(s);\n ;\n ;\n }, this);\n }\n });\n q.initNow = function(r, s, t) {\n if (t) {\n t.init(r);\n }\n ;\n ;\n r.init(s);\n };\n q.init = function(r, s, t, u) {\n if (!i.isNodeOfType(r, [\"input\",\"textarea\",])) {\n r = ((i.scry(r, \"input\")[0] || i.scry(r, \"textarea\")[0]));\n }\n ;\n ;\n var v = false;\n try {\n v = ((JSBNG__document.activeElement === r));\n } catch (w) {\n \n };\n ;\n if (v) {\n q.initNow(s, t, u);\n }\n else var x = k.listen(r, \"JSBNG__focus\", function() {\n q.initNow(s, t, u);\n x.remove();\n })\n ;\n };\n e.exports = q;\n});\n__d(\"TypeaheadCore\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"Focus\",\"Input\",\"InputSelection\",\"Keys\",\"StickyPlaceholderInput\",\"UserAgent\",\"bind\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Focus\"), m = b(\"Input\"), n = b(\"InputSelection\"), o = b(\"Keys\"), p = b(\"StickyPlaceholderInput\"), q = b(\"UserAgent\"), r = b(\"bind\"), s = b(\"copyProperties\"), t = b(\"emptyFunction\");\n function u(v) {\n s(this, v);\n };\n;\n s(u.prototype, i, {\n events: [\"JSBNG__blur\",\"JSBNG__focus\",\"click\",\"unselect\",\"loading\",],\n keepFocused: true,\n resetOnSelect: false,\n resetOnKeyup: true,\n setValueOnSelect: false,\n queryTimeout: 250,\n preventFocusChangeOnTab: false,\n init: function(v, w, x) {\n this.init = t;\n this.data = v;\n this.view = w;\n this.root = x;\n this.initInput();\n this.inputWrap = k.JSBNG__find(x, \"div.wrap\");\n this.hiddenInput = k.JSBNG__find(x, \"input.hiddenInput\");\n this.value = \"\";\n this.nextQuery = null;\n this.selectedText = null;\n if (((this.setValueOnSelect && j.hasClass(this.inputWrap, \"selected\")))) {\n this.selectedText = this.getValue();\n }\n ;\n ;\n this.initView();\n this.initData();\n this.initEvents();\n this.initToggle();\n this._exclusions = [];\n },\n initInput: function() {\n this.element = k.JSBNG__find(this.root, \".textInput\");\n var v = k.scry(this.element, \"input\")[0];\n if (v) {\n this.element = v;\n }\n ;\n ;\n },\n initView: function() {\n this.view.subscribe(\"highlight\", l.set.curry(this.element));\n this.view.subscribe(\"select\", function(v, w) {\n this.select(w.selected);\n }.bind(this));\n this.view.subscribe(\"afterSelect\", function() {\n this.afterSelect();\n }.bind(this));\n },\n initData: function() {\n this.data.subscribe(\"respond\", function(v, w) {\n if (((w.forceDisplay || ((((w.value == this.getValue())) && !this.element.disabled))))) {\n this.view.render(w.value, w.results, w.isAsync);\n }\n ;\n ;\n }.bind(this));\n this.data.subscribe(\"activity\", function(v, w) {\n this.fetching = w.activity;\n if (!this.fetching) {\n ((this.nextQuery && this.performQuery()));\n }\n ;\n ;\n if (((this.loading != this.fetching))) {\n this.loading = this.fetching;\n this.inform(\"loading\", {\n loading: this.loading\n });\n }\n ;\n ;\n }.bind(this));\n },\n initEvents: function() {\n g.listen(this.view.getElement(), {\n mouseup: this.viewMouseup.bind(this),\n mousedown: this.viewMousedown.bind(this)\n });\n var v = {\n JSBNG__blur: r(this, \"JSBNG__blur\"),\n JSBNG__focus: r(this, \"JSBNG__focus\"),\n click: r(this, \"click\"),\n keyup: r(this, \"keyup\"),\n keydown: r(this, \"keydown\")\n };\n if (q.firefox()) {\n v.text = v.keyup;\n }\n ;\n ;\n if (((q.firefox() < 4))) {\n v.keypress = v.keydown;\n delete v.keydown;\n }\n ;\n ;\n g.listen(this.element, v);\n g.listen(this.element, \"keypress\", r(this, \"keypress\"));\n },\n initToggle: function() {\n this.subscribe(\"JSBNG__blur\", this.view.hide.bind(this.view));\n this.subscribe(\"JSBNG__focus\", this.view.show.bind(this.view));\n },\n viewMousedown: function() {\n this.selecting = true;\n },\n viewMouseup: function() {\n this.selecting = false;\n },\n JSBNG__blur: function() {\n if (this.selecting) {\n this.selecting = false;\n return;\n }\n ;\n ;\n this.inform(\"JSBNG__blur\");\n },\n click: function() {\n var v = n.get(this.element);\n if (((v.start == v.end))) {\n this.element.select();\n }\n ;\n ;\n this.inform(\"click\");\n },\n JSBNG__focus: function() {\n this.checkValue();\n this.inform(\"JSBNG__focus\");\n },\n keyup: function() {\n if (((this.resetOnKeyup && !this.getValue()))) {\n this.view.reset();\n }\n ;\n ;\n this.checkValue();\n },\n keydown: function(JSBNG__event) {\n if (((!this.view.isVisible() || this.view.isEmpty()))) {\n this.checkValue.bind(this).defer();\n return;\n }\n ;\n ;\n switch (g.getKeyCode(JSBNG__event)) {\n case o.TAB:\n this.handleTab(JSBNG__event);\n return;\n case o.UP:\n this.view.prev();\n break;\n case o.DOWN:\n this.view.next();\n break;\n case o.ESC:\n this.view.reset();\n break;\n default:\n this.checkValue.bind(this).defer();\n return;\n };\n ;\n JSBNG__event.kill();\n },\n keypress: function(JSBNG__event) {\n if (((this.view.JSBNG__getSelection() && ((g.getKeyCode(JSBNG__event) == o.RETURN))))) {\n this.view.select();\n JSBNG__event.kill();\n }\n ;\n ;\n },\n handleTab: function(JSBNG__event) {\n if (this.preventFocusChangeOnTab) {\n if (this.view.JSBNG__getSelection()) {\n JSBNG__event.kill();\n }\n else JSBNG__event.prevent();\n ;\n }\n ;\n ;\n this.view.select();\n },\n select: function(v) {\n if (((v && this.setValueOnSelect))) {\n this.setValue(v.text);\n this.setHiddenValue(v.uid);\n this.selectedText = v.text;\n j.addClass(this.inputWrap, \"selected\");\n }\n ;\n ;\n },\n afterSelect: function() {\n ((this.keepFocused ? l.set(this.element) : this.element.JSBNG__blur()));\n ((this.resetOnSelect ? this.reset() : this.view.reset()));\n },\n unselect: function() {\n if (this.setValueOnSelect) {\n this.selectedText = null;\n j.removeClass(this.inputWrap, \"selected\");\n }\n ;\n ;\n this.setHiddenValue();\n this.inform(\"unselect\", this);\n },\n setEnabled: function(v) {\n var w = ((v === false));\n this.element.disabled = w;\n j.conditionClass(this.root, \"uiTypeaheadDisabled\", w);\n },\n reset: function() {\n this.unselect();\n this.setValue();\n ((!this.keepFocused && m.reset(this.element)));\n this.view.reset();\n this.inform(\"reset\");\n },\n getElement: function() {\n return this.element;\n },\n setExclusions: function(v) {\n this._exclusions = v;\n },\n getExclusions: function() {\n return this._exclusions;\n },\n setValue: function(v) {\n this.value = this.nextQuery = ((v || \"\"));\n m.setValue(this.element, this.value);\n p.update(this.element);\n },\n setHiddenValue: function(v) {\n this.hiddenInput.value = ((((v || ((v === 0)))) ? v : \"\"));\n h.inform(\"Form/change\", {\n node: this.hiddenInput\n });\n },\n getValue: function() {\n return m.getValue(this.element);\n },\n getHiddenValue: function() {\n return ((this.hiddenInput.value || \"\"));\n },\n checkValue: function() {\n var v = this.getValue();\n if (((v == this.value))) {\n return;\n }\n ;\n ;\n if (((this.selectedText && ((this.selectedText != v))))) {\n this.unselect();\n }\n ;\n ;\n var w = JSBNG__Date.now(), x = ((w - this.time));\n this.time = w;\n this.value = this.nextQuery = v;\n this.performQuery(x);\n },\n performQuery: function(v) {\n if (this.selectedText) {\n return;\n }\n ;\n ;\n v = ((v || 0));\n if (((this.fetching && ((v < this.queryTimeout))))) {\n this.data.query(this.nextQuery, true, this._exclusions, v);\n }\n else {\n this.data.query(this.nextQuery, false, this._exclusions, v);\n this.nextQuery = null;\n }\n ;\n ;\n }\n });\n e.exports = u;\n});\n__d(\"setIntervalAcrossTransitions\", [], function(a, b, c, d, e, f) {\n function g(h, i) {\n return JSBNG__setInterval(h, i, false);\n };\n;\n e.exports = g;\n});\n__d(\"PresenceCookieManager\", [\"Cookie\",\"Dcode\",\"ErrorUtils\",\"Env\",\"JSLogger\",\"PresenceUtil\",\"URI\",\"PresenceInitialData\",], function(a, b, c, d, e, f) {\n var g = b(\"Cookie\"), h = b(\"Dcode\"), i = b(\"ErrorUtils\"), j = b(\"Env\"), k = b(\"JSLogger\"), l = b(\"PresenceUtil\"), m = b(\"URI\"), n = b(\"PresenceInitialData\"), o = n.cookieVersion, p = n.dictEncode, q = \"presence\", r = {\n }, s = null, t = null, u = k.create(\"presence_cookie\");\n function v() {\n try {\n var z = g.get(q);\n if (((s !== z))) {\n s = z;\n t = null;\n if (((z && ((z.charAt(0) == \"E\"))))) {\n z = h.decode(z.substring(1));\n }\n ;\n ;\n if (z) {\n t = JSON.parse(z);\n }\n ;\n ;\n }\n ;\n ;\n if (((t && ((!t.user || ((t.user === j.user))))))) {\n return t;\n }\n ;\n ;\n } catch (y) {\n u.warn(\"getcookie_error\");\n };\n ;\n return null;\n };\n;\n function w() {\n return parseInt(((JSBNG__Date.now() / 1000)), 10);\n };\n;\n var x = {\n register: function(y, z) {\n r[y] = z;\n },\n store: function() {\n var y = v();\n if (((((y && y.v)) && ((o < y.v))))) {\n return;\n }\n ;\n ;\n var z = {\n v: o,\n time: w(),\n user: j.user\n };\n {\n var fin272keys = ((window.top.JSBNG_Replay.forInKeys)((r))), fin272i = (0);\n var aa;\n for (; (fin272i < fin272keys.length); (fin272i++)) {\n ((aa) = (fin272keys[fin272i]));\n {\n z[aa] = i.applyWithGuard(r[aa], r, [((y && y[aa])),], function(ea) {\n ea.presence_subcookie = aa;\n });\n ;\n };\n };\n };\n ;\n var ba = JSON.stringify(z);\n if (p) {\n ba = ((\"E\" + h.encode(ba)));\n }\n ;\n ;\n if (l.hasUserCookie()) {\n var ca = ba.length;\n if (((ca > 1024))) {\n u.warn(\"big_cookie\", ca);\n }\n ;\n ;\n var da = ((m.getRequestURI(false).isSecure() && !!g.get(\"csm\")));\n g.set(q, ba, null, null, da);\n }\n ;\n ;\n },\n clear: function() {\n g.clear(q);\n },\n getSubCookie: function(y) {\n var z = v();\n if (!z) {\n return null;\n }\n ;\n ;\n return z[y];\n }\n };\n e.exports = x;\n});\n__d(\"PresenceState\", [\"Arbiter\",\"ErrorUtils\",\"JSLogger\",\"PresenceCookieManager\",\"copyProperties\",\"debounceAcrossTransitions\",\"setIntervalAcrossTransitions\",\"PresenceInitialData\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ErrorUtils\"), i = b(\"JSLogger\"), j = b(\"PresenceCookieManager\"), k = b(\"copyProperties\"), l = b(\"debounceAcrossTransitions\"), m = b(\"setIntervalAcrossTransitions\"), n = b(\"PresenceInitialData\"), o = ((n.cookiePollInterval || 2000)), p = [], q = [], r = null, s = null, t = 0, u = null, v = 0, w = [\"sb2\",\"t2\",\"lm2\",\"uct2\",\"tr\",\"tw\",\"at\",\"wml\",], x = i.create(\"presence_state\");\n function y() {\n return j.getSubCookie(\"state\");\n };\n;\n function z() {\n t = JSBNG__Date.now();\n j.store();\n da(s);\n };\n;\n var aa = l(z, 0);\n function ba(ia) {\n if (((((((((typeof ia == \"undefined\")) || isNaN(ia))) || ((ia == Number.POSITIVE_INFINITY)))) || ((ia == Number.NEGATIVE_INFINITY))))) {\n ia = 0;\n }\n ;\n ;\n return ia;\n };\n;\n function ca(ia) {\n var ja = {\n };\n if (ia) {\n w.forEach(function(ma) {\n ja[ma] = ia[ma];\n });\n if (((t < ia.ut))) {\n x.error(\"new_cookie\", {\n cookie_time: ia.ut,\n local_time: t\n });\n }\n ;\n ;\n }\n ;\n ;\n ja.ut = t;\n for (var ka = 0, la = p.length; ((ka < la)); ka++) {\n h.applyWithGuard(p[ka], null, [ja,]);\n ;\n };\n ;\n s = ja;\n return s;\n };\n;\n function da(ia) {\n v++;\n t = ba(ia.ut);\n if (!r) {\n r = m(ga, o);\n }\n ;\n ;\n s = ia;\n if (((u === null))) {\n u = ia;\n }\n ;\n ;\n for (var ja = 0, ka = q.length; ((ja < ka)); ja++) {\n h.applyWithGuard(q[ja], null, [ia,]);\n ;\n };\n ;\n v--;\n };\n;\n function ea(ia) {\n if (((ia && ia.ut))) {\n if (((t < ia.ut))) {\n return true;\n }\n else if (((ia.ut < t))) {\n x.error(\"old_cookie\", {\n cookie_time: ia.ut,\n local_time: t\n });\n }\n \n ;\n }\n ;\n ;\n return false;\n };\n;\n function fa() {\n var ia = y();\n if (ea(ia)) {\n s = ia;\n }\n ;\n ;\n return s;\n };\n;\n function ga() {\n var ia = y();\n if (ea(ia)) {\n da(ia);\n }\n ;\n ;\n };\n;\n j.register(\"state\", ca);\n g.subscribe(i.DUMP_EVENT, function(ia, ja) {\n ja.presence_state = {\n initial: k({\n }, u),\n state: k({\n }, s),\n update_time: t,\n sync_paused: v,\n poll_time: o\n };\n });\n (function() {\n var ia = fa();\n if (ia) {\n da(ia);\n }\n else {\n x.debug(\"no_cookie_initial\");\n da(ca());\n return;\n }\n ;\n ;\n })();\n var ha = {\n doSync: function(ia) {\n if (v) {\n return;\n }\n ;\n ;\n if (ia) {\n z();\n }\n else aa();\n ;\n ;\n },\n registerStateStorer: function(ia) {\n p.push(ia);\n },\n registerStateLoader: function(ia) {\n q.push(ia);\n },\n get: function() {\n return fa();\n },\n getInitial: function() {\n return u;\n },\n verifyNumber: ba\n };\n e.exports = ha;\n});\n__d(\"TypeaheadBestName\", [\"TypeaheadUtil\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"TypeaheadUtil\"), h = b(\"copyProperties\");\n function i(j) {\n this._typeahead = j;\n };\n;\n i.prototype.enable = function() {\n var j = this._typeahead.getView();\n this._subscription = j.subscribe(\"beforeRender\", function(k, l) {\n var m = l.value;\n for (var n = 0; ((n < l.results.length)); ++n) {\n var o = l.results[n];\n if (((o.alternate_names == null))) {\n continue;\n }\n ;\n ;\n if (g.isQueryMatch(m, o.default_name)) {\n o.text = o.default_name;\n return;\n }\n ;\n ;\n for (var p = 0; ((p < o.alternate_names.length)); p++) {\n if (g.isQueryMatch(m, o.alternate_names[p])) {\n o.text = o.alternate_names[p];\n return;\n }\n ;\n ;\n };\n ;\n o.text = o.default_name;\n };\n ;\n });\n };\n i.prototype.disable = function() {\n this._typeahead.getView().unsubscribe(this._subscription);\n this._subscription = null;\n };\n h(i.prototype, {\n _subscription: null\n });\n e.exports = i;\n});\n__d(\"legacy:BestNameTypeaheadBehavior\", [\"TypeaheadBestName\",], function(a, b, c, d) {\n var e = b(\"TypeaheadBestName\");\n if (!a.TypeaheadBehaviors) {\n a.TypeaheadBehaviors = {\n };\n }\n;\n;\n a.TypeaheadBehaviors.buildBestAvailableNames = function(f) {\n f.enableBehavior(e);\n };\n}, 3);\n__d(\"TypingDetector\", [\"JSBNG__Event\",\"function-extensions\",\"ArbiterMixin\",\"Input\",\"Run\",\"copyProperties\",\"createObjectFrom\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"ArbiterMixin\"), i = b(\"Input\"), j = b(\"Run\"), k = b(\"copyProperties\"), l = b(\"createObjectFrom\"), m = b(\"emptyFunction\");\n function n(o) {\n this._input = o;\n this._ignoreKeys = {\n };\n };\n;\n n.INACTIVE = 0;\n n.TYPING = 1;\n n.QUITTING = 2;\n k(n.prototype, h, {\n _timeout: 7000,\n _currentState: n.INACTIVE,\n init: function() {\n this.init = m;\n this.reset();\n g.listen(this._input, \"keyup\", this._update.bind(this));\n j.onUnload(this._onunload.bind(this));\n },\n reset: function() {\n JSBNG__clearTimeout(this._checkTimer);\n this._checkTimer = null;\n this._lastKeystrokeAt = null;\n this._currentState = n.INACTIVE;\n },\n setIgnoreKeys: function(o) {\n this._ignoreKeys = l(o);\n },\n _onunload: function() {\n if (((this._currentState == n.TYPING))) {\n this._transition(n.QUITTING);\n }\n ;\n ;\n },\n _update: function(JSBNG__event) {\n var o = g.getKeyCode(JSBNG__event), p = this._currentState;\n if (!this._ignoreKeys[o]) {\n if (((i.getValue(this._input).trim().length === 0))) {\n if (((p == n.TYPING))) {\n this._transition(n.INACTIVE);\n }\n ;\n ;\n }\n else if (((p == n.TYPING))) {\n this._recordKeystroke();\n }\n else if (((p == n.INACTIVE))) {\n this._transition(n.TYPING);\n this._recordKeystroke();\n }\n \n \n ;\n }\n ;\n ;\n },\n _transition: function(o) {\n this.reset();\n this._currentState = o;\n this.inform(\"change\", o);\n },\n _recordKeystroke: function() {\n this._lastKeystrokeTime = JSBNG__Date.now();\n if (!this._checkTimer) {\n this._checkTimer = this._checkTyping.bind(this).defer(this._timeout);\n }\n ;\n ;\n },\n _checkTyping: function() {\n var o = ((this._lastKeystrokeTime + this._timeout)), p = JSBNG__Date.now();\n if (((p > o))) {\n this._transition(n.INACTIVE);\n }\n else {\n JSBNG__clearTimeout(this._checkTimer);\n this._checkTimer = this._checkTyping.bind(this).defer(((((o - p)) + 10)));\n }\n ;\n ;\n }\n });\n e.exports = n;\n});\n__d(\"ClearableTypeahead\", [\"JSBNG__Event\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = {\n resetOnCloseButtonClick: function(i, j) {\n g.listen(j, \"click\", function() {\n var k = i.getCore();\n k.getElement().JSBNG__focus();\n k.reset();\n });\n }\n };\n e.exports = h;\n});\n__d(\"TypeaheadShowLoadingIndicator\", [\"CSS\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"CSS\"), h = b(\"copyProperties\");\n function i(j) {\n this._typeahead = j;\n };\n;\n h(i.prototype, {\n _subscription: null,\n enable: function() {\n this._subscription = this._typeahead.subscribe(\"loading\", function(j, k) {\n g.conditionClass(this._typeahead.getElement(), \"typeaheadLoading\", k.loading);\n g.conditionClass(this._typeahead.getView().getElement(), \"typeaheadViewLoading\", k.loading);\n }.bind(this));\n },\n disable: function() {\n this._typeahead.unsubscribe(this._subscription);\n this._subscription = null;\n }\n });\n e.exports = i;\n});\n__d(\"legacy:ShowLoadingIndicatorTypeaheadBehavior\", [\"TypeaheadShowLoadingIndicator\",], function(a, b, c, d) {\n var e = b(\"TypeaheadShowLoadingIndicator\");\n if (!a.TypeaheadBehaviors) {\n a.TypeaheadBehaviors = {\n };\n }\n;\n;\n a.TypeaheadBehaviors.showLoadingIndicator = function(f) {\n f.enableBehavior(e);\n };\n}, 3);\n__d(\"CompactTypeaheadRenderer\", [\"Badge\",\"DOM\",\"TypeaheadFacepile\",], function(a, b, c, d, e, f) {\n var g = b(\"Badge\"), h = b(\"DOM\"), i = b(\"TypeaheadFacepile\");\n function j(k, l) {\n var m = [];\n if (k.xhp) {\n return h.create(\"li\", {\n className: \"raw\"\n }, k.xhp);\n }\n ;\n ;\n var n = ((k.photos || k.photo));\n if (n) {\n if (((n instanceof Array))) {\n n = i.render(n);\n }\n else n = h.create(\"img\", {\n alt: \"\",\n src: n\n });\n ;\n ;\n m.push(n);\n }\n ;\n ;\n if (k.text) {\n var o = [k.text,];\n if (k.verified) {\n o.push(g(\"xsmall\"));\n }\n ;\n ;\n m.push(h.create(\"span\", {\n className: \"text\"\n }, o));\n }\n ;\n ;\n var p = k.subtext, q = k.category;\n if (((p || q))) {\n var r = [];\n ((p && r.push(p)));\n ((((p && q)) && r.push(\" \\u00b7 \")));\n ((q && r.push(q)));\n m.push(h.create(\"span\", {\n className: \"subtext\"\n }, r));\n }\n ;\n ;\n var s = h.create(\"li\", {\n className: ((k.type || \"\"))\n }, m);\n if (k.text) {\n s.setAttribute(\"aria-label\", k.text);\n }\n ;\n ;\n return s;\n };\n;\n j.className = \"compact\";\n e.exports = j;\n});\n__d(\"URLMatcher\", [], function(a, b, c, d, e, f) {\n var g = \"!\\\"#%&'()*,-./:;\\u003C\\u003E?@[\\\\]^_`{|}\", h = \"\\u2000-\\u206f\\u00ab\\u00bb\\uff08\\uff09\", i = \"(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\", j = \"(?:(?:ht|f)tps?)://\", k = ((((((((\"(?:(?:\" + i)) + \"[.]){3}\")) + i)) + \")\")), l = \"\\\\[(?:(?:[A-Za-z0-9]{1,4}::?){1,7}[A-Za-z0-9]{1,4})\\\\]\", m = \"(?:\\\\b)www\\\\d{0,3}[.]\", n = ((((((\"[^\\\\s\" + g)) + h)) + \"]\")), o = ((((((((((((\"(?:(?:(?:[.:\\\\-_%@]|\" + n)) + \")*\")) + n)) + \")|\")) + l)) + \")\")), p = \"(?:[.][a-z]{2,4})\", q = \"(?::\\\\d+){0,1}\", r = \"(?=[/?#])\", s = ((((((((((((((((((((((((((((((((((((((((((((((((((((\"(?:\" + \"(?:\")) + j)) + o)) + q)) + \")|\")) + \"(?:\")) + k)) + q)) + \")|\")) + \"(?:\")) + l)) + q)) + \")|\")) + \"(?:\")) + m)) + o)) + p)) + q)) + \")|\")) + \"(?:\")) + o)) + p)) + q)) + r)) + \")\")) + \")\")), t = \"[/#?]\", u = \"\\\\([^\\\\s()\\u003C\\u003E]+\\\\)\", v = \"[^\\\\s()\\u003C\\u003E?#]+\", w = new RegExp(s, \"im\"), x = ((((((((((((((((((((((\"(?:\" + \"(?:\")) + t)) + \")\")) + \"(?:\")) + \"(?:\")) + u)) + \"|\")) + v)) + \")*\")) + \")*\")) + \")*\")), y = new RegExp(((((((((((((((\"(\" + \"(?:\")) + s)) + \")\")) + \"(?:\")) + x)) + \")\")) + \")\")), \"im\"), z = new RegExp(((((((((((((((((((((((((\"(\" + \"(?:\")) + j)) + o)) + q)) + \")|\")) + \"(?:\")) + m)) + o)) + p)) + q)) + \")\")) + \")\"))), aa = /[\\s'\";]/, ba = new RegExp(t, \"im\"), ca = new RegExp(\"[\\\\s!\\\"#%&'()*,-./:;\\u003C\\u003E?@[\\\\]^_`{|}\\u00ab\\u00bb\\u2000-\\u206f\\uff08\\uff09]\", \"im\"), da = new RegExp(\"[\\\\s()\\u003C\\u003E?#]\", \"im\"), ea = new RegExp(\"\\\\s()\\u003C\\u003E\"), fa = function(ma) {\n if (((ma && ((ma.indexOf(\"@\") != -1))))) {\n return (((z.exec(ma)) ? ma : null));\n }\n else return ma\n ;\n }, ga = function(ma) {\n return ha(ma, y);\n }, ha = function(ma, na) {\n var oa = ((((na.exec(ma) || []))[1] || null));\n return fa(oa);\n }, ia = function(ma) {\n return w.exec(ma);\n }, ja = function(ma) {\n return !aa.test(ma.charAt(((ma.length - 1))));\n }, ka = function(ma) {\n var na = w.exec(ma);\n if (!na) {\n return null;\n }\n ;\n ;\n var oa = ma.substr(((na.index + na[0].length)));\n if (((((oa.length === 0)) || !(ba.test(oa[0]))))) {\n return fa(na[0]);\n }\n ;\n ;\n var pa = 0, qa = 0, ra = 1, sa = 0, ta = qa;\n for (var ua = 1; ((ua < oa.length)); ua++) {\n var va = oa[ua];\n if (((ta === qa))) {\n if (((va === \"(\"))) {\n sa = ((sa + 1));\n ta = ra;\n }\n else if (((ba.test(va) || !(ca.test(va))))) {\n pa = ua;\n }\n else if (da.test(va)) {\n break;\n }\n \n \n ;\n ;\n }\n else if (((va === \"(\"))) {\n sa = ((sa + 1));\n }\n else if (((va === \")\"))) {\n sa = ((sa - 1));\n if (((sa === 0))) {\n ta = qa;\n pa = ua;\n }\n ;\n ;\n }\n else if (ea.test(va)) {\n break;\n }\n \n \n \n ;\n ;\n };\n ;\n return fa(((na[0] + oa.substring(0, ((pa + 1))))));\n }, la = {\n };\n la.permissiveMatch = ga;\n la.matchToPattern = ha;\n la.matchHost = ia;\n la.trigger = ja;\n la.match = ka;\n e.exports = la;\n});");
// 2865
geval("if (JSBNG__self.CavalryLogger) {\n CavalryLogger.start_js([\"hfrQl\",]);\n}\n;\n;\n__d(\"FriendBrowserCheckboxController\", [\"AsyncRequest\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"Form\",\"OnVisible\",\"$\",\"bind\",\"copyProperties\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"JSBNG__Event\"), k = b(\"Form\"), l = b(\"OnVisible\"), m = b(\"$\"), n = b(\"bind\"), o = b(\"copyProperties\"), p = b(\"ge\");\n function q() {\n \n };\n;\n o(q, {\n instances: {\n },\n getInstance: function(r) {\n return this.instances[r];\n }\n });\n o(q.prototype, {\n init: function(r, s, t, u) {\n q.instances[r] = this;\n this._id = r;\n this._simplified = t;\n this._infiniteScroll = u;\n this._form = s;\n this._contentGrid = i.JSBNG__find(s, \".friendBrowserCheckboxContentGrid\");\n this._loadingIndicator = i.JSBNG__find(s, \".friendBrowsingCheckboxContentLoadingIndicator\");\n this._checkboxResults = i.JSBNG__find(s, \".friendBrowserCheckboxResults\");\n this._contentPager = i.JSBNG__find(s, \".friendBrowserCheckboxContentPager\");\n this.numGetNewRequests = 0;\n this.queuedRequests = {\n };\n j.listen(this._form, \"submit\", this.onFormSubmit.bind(this));\n },\n addTypeahead: function(r, s) {\n r.subscribe(\"select\", this.onHubSelect.bind(this, r, s));\n if (this._simplified) {\n r.subscribe(\"unselect\", this.onHubSelect.bind(this, r, s));\n }\n ;\n ;\n },\n onFormSubmit: function() {\n this.getNew(true);\n return false;\n },\n addSelector: function(r) {\n r.subscribe(\"change\", this.getNew.bind(this, false));\n },\n onHubSelect: function(r, s, JSBNG__event, t) {\n if (this._simplified) {\n this.getNew(true);\n return;\n }\n ;\n ;\n if (!((((JSBNG__event == \"select\")) && t.selected))) {\n return;\n }\n ;\n ;\n var u = this.buildNewCheckbox(s, t.selected.text, t.selected.uid), v = i.JSBNG__find(this._form, ((\".checkboxes_\" + s)));\n i.appendContent(v.firstChild, u);\n var w = i.scry(r.getElement(), \"input[type=\\\"button\\\"]\");\n if (((w && w[0]))) {\n w[0].click();\n }\n ;\n ;\n this.getNew(true);\n },\n buildNewCheckbox: function(r, s, t) {\n var u = ((((r + \"_ids_\")) + t)), v = ((r + \"_ids[]\")), w = i.create(\"input\", {\n id: u,\n type: \"checkbox\",\n value: t,\n JSBNG__name: v,\n checked: true\n });\n j.listen(w, \"click\", n(this, \"getNew\", false));\n var x = i.create(\"td\", null, w);\n h.addClass(x, \"vTop\");\n h.addClass(x, \"hLeft\");\n var y = i.create(\"label\", null, s), z = i.create(\"td\", null, y);\n h.addClass(z, \"vMid\");\n h.addClass(z, \"hLeft\");\n var aa = i.create(\"tr\");\n aa.appendChild(x);\n aa.appendChild(z);\n return aa;\n },\n showMore: function() {\n var r = i.scry(this._contentPager, \".friendBrowserMorePager\")[0];\n if (!r) {\n return false;\n }\n ;\n ;\n if (h.hasClass(r, \"async_saving\")) {\n return false;\n }\n ;\n ;\n var s = this.numGetNewRequests, t = k.serialize(this._form);\n t.show_more = true;\n var u = new g().setURI(\"/ajax/growth/friend_browser/checkbox.php\").setData(t).setHandler(n(this, function(v) {\n this.showMoreHandler(v, s);\n })).setStatusElement(r).send();\n },\n showMoreHandler: function(r, s) {\n if (((s == this.numGetNewRequests))) {\n var t = r.payload;\n i.appendContent(this._contentGrid, t.results);\n this.updatePagerAndExtraData(t.pager, t.extra_data);\n }\n ;\n ;\n },\n getNew: function(r) {\n this.numGetNewRequests++;\n var s = this.numGetNewRequests;\n h.addClass(this._checkboxResults, \"friendBrowserCheckboxContentOnload\");\n if (p(\"friendBrowserCI\")) {\n h.addClass(m(\"friendBrowserCI\"), \"friendBrowserCheckboxContentOnload\");\n }\n ;\n ;\n h.show(this._loadingIndicator);\n var t = k.serialize(this._form);\n t.used_typeahead = r;\n new g().setURI(\"/ajax/growth/friend_browser/checkbox.php\").setData(t).setHandler(n(this, function(u) {\n this.getNewHandler(u, s);\n })).send();\n },\n getNewHandler: function(r, s) {\n if (((s == this.numGetNewRequests))) {\n var t = r.payload;\n i.setContent(this._contentGrid, t.results);\n h.removeClass(this._checkboxResults, \"friendBrowserCheckboxContentOnload\");\n if (p(\"friendBrowserCI\")) {\n h.hide(m(\"friendBrowserCI\"));\n }\n ;\n ;\n h.hide(this._loadingIndicator);\n this.updatePagerAndExtraData(t.pager, t.extra_data);\n }\n ;\n ;\n },\n updatePagerAndExtraData: function(r, s) {\n i.setContent(this._contentPager, r);\n if (this._infiniteScroll) {\n this.setupOnVisible();\n }\n ;\n ;\n i.replace(this._form.elements.extra_data, s);\n },\n setupOnVisible: function() {\n var r = i.scry(this._contentPager, \".friendBrowserMorePager\")[0];\n if (((r && ((this._id != \"jewel\"))))) {\n ((this._onVisible && this._onVisible.remove()));\n this._onVisible = new l(r, n(this, \"showMore\"), false, 1000);\n }\n ;\n ;\n }\n });\n e.exports = q;\n});\n__d(\"legacy:friend-browser-checkbox-js\", [\"FriendBrowserCheckboxController\",], function(a, b, c, d) {\n a.FriendBrowserCheckboxController = b(\"FriendBrowserCheckboxController\");\n}, 3);\n__d(\"FacebarResultStoreUtils\", [], function(a, b, c, d, e, f) {\n var g = {\n processEntityResult: function(h, i, j, k) {\n var l = {\n semantic: i.toString(),\n structure: [{\n type: ((\"ent:\" + h)),\n text: j,\n uid: i\n },],\n type: ((((\"{\" + h)) + \"}\")),\n cost: k,\n cache_id_length: 0,\n bolding: []\n };\n l.tuid = JSON.stringify({\n semantic: l.semantic,\n structure: l.structure\n });\n return l;\n }\n };\n e.exports = g;\n});\n__d(\"HashtagParser\", [\"URLMatcher\",], function(a, b, c, d, e, f) {\n var g = b(\"URLMatcher\"), h = 100, i = 30, j = /@\\[([0-9]+):([0-9]+):((?:[^\\\\\\]]*(?:\\\\.)*)*)\\]/g;\n function k() {\n var da = ((((((((((((((((((((((((((((((((\"\\u00c0-\\u00d6\" + \"\\u00d8-\\u00f6\")) + \"\\u00f8-\\u00ff\")) + \"\\u0100-\\u024f\")) + \"\\u0253-\\u0254\")) + \"\\u0256-\\u0257\")) + \"\\u0259\")) + \"\\u025b\")) + \"\\u0263\")) + \"\\u0268\")) + \"\\u026f\")) + \"\\u0272\")) + \"\\u0289\")) + \"\\u028b\")) + \"\\u02bb\")) + \"\\u0300-\\u036f\")) + \"\\u1e00-\\u1eff\")), ea = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((\"\\u0400-\\u04ff\" + \"\\u0500-\\u0527\")) + \"\\u2de0-\\u2dff\")) + \"\\ua640-\\ua69f\")) + \"\\u0591-\\u05bf\")) + \"\\u05c1-\\u05c2\")) + \"\\u05c4-\\u05c5\")) + \"\\u05c7\")) + \"\\u05d0-\\u05ea\")) + \"\\u05f0-\\u05f4\")) + \"\\ufb12-\\ufb28\")) + \"\\ufb2a-\\ufb36\")) + \"\\ufb38-\\ufb3c\")) + \"\\ufb3e\")) + \"\\ufb40-\\ufb41\")) + \"\\ufb43-\\ufb44\")) + \"\\ufb46-\\ufb4f\")) + \"\\u0610-\\u061a\")) + \"\\u0620-\\u065f\")) + \"\\u066e-\\u06d3\")) + \"\\u06d5-\\u06dc\")) + \"\\u06de-\\u06e8\")) + \"\\u06ea-\\u06ef\")) + \"\\u06fa-\\u06fc\")) + \"\\u06ff\")) + \"\\u0750-\\u077f\")) + \"\\u08a0\")) + \"\\u08a2-\\u08ac\")) + \"\\u08e4-\\u08fe\")) + \"\\ufb50-\\ufbb1\")) + \"\\ufbd3-\\ufd3d\")) + \"\\ufd50-\\ufd8f\")) + \"\\ufd92-\\ufdc7\")) + \"\\ufdf0-\\ufdfb\")) + \"\\ufe70-\\ufe74\")) + \"\\ufe76-\\ufefc\")) + \"\\u200c-\\u200c\")) + \"\\u0e01-\\u0e3a\")) + \"\\u0e40-\\u0e4e\")) + \"\\u1100-\\u11ff\")) + \"\\u3130-\\u3185\")) + \"\\ua960-\\ua97f\")) + \"\\uac00-\\ud7af\")) + \"\\ud7b0-\\ud7ff\")) + \"\\uffa1-\\uffdc\")), fa = String.fromCharCode, ga = ((((((((((((((((((((((((((((((((\"\\u30a1-\\u30fa\\u30fc-\\u30fe\" + \"\\uff66-\\uff9f\")) + \"\\uff10-\\uff19\\uff21-\\uff3a\")) + \"\\uff41-\\uff5a\")) + \"\\u3041-\\u3096\\u3099-\\u309e\")) + \"\\u3400-\\u4dbf\")) + \"\\u4e00-\\u9fff\")) + fa(173824))) + \"-\")) + fa(177983))) + fa(177984))) + \"-\")) + fa(178207))) + fa(194560))) + \"-\")) + fa(195103))) + \"\\u3003\\u3005\\u303b\")), ha = ((((da + ea)) + ga)), ia = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((\"A-Za-z\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\" + \"\\u00f8-\\u0241\\u0250-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ee\\u037a\\u0386\")) + \"\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03ce\\u03d0-\\u03f5\\u03f7-\\u0481\")) + \"\\u048a-\\u04ce\\u04d0-\\u04f9\\u0500-\\u050f\\u0531-\\u0556\\u0559\\u0561-\\u0587\")) + \"\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0621-\\u063a\\u0640-\\u064a\\u066e-\\u066f\")) + \"\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\")) + \"\\u0712-\\u072f\\u074d-\\u076d\\u0780-\\u07a5\\u07b1\\u0904-\\u0939\\u093d\\u0950\")) + \"\\u0958-\\u0961\\u097d\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\")) + \"\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\")) + \"\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\")) + \"\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\")) + \"\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\")) + \"\\u0ad0\\u0ae0-\\u0ae1\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\")) + \"\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\")) + \"\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\")) + \"\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0c05-\\u0c0c\\u0c0e-\\u0c10\")) + \"\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c60-\\u0c61\\u0c85-\\u0c8c\")) + \"\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\")) + \"\\u0ce0-\\u0ce1\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d28\\u0d2a-\\u0d39\")) + \"\\u0d60-\\u0d61\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\")) + \"\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e87-\\u0e88\")) + \"\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\")) + \"\\u0eaa-\\u0eab\\u0ead-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\")) + \"\\u0edc-\\u0edd\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6a\\u0f88-\\u0f8b\\u1000-\\u1021\")) + \"\\u1023-\\u1027\\u1029-\\u102a\\u1050-\\u1055\\u10a0-\\u10c5\\u10d0-\\u10fa\\u10fc\")) + \"\\u1100-\\u1159\\u115f-\\u11a2\\u11a8-\\u11f9\\u1200-\\u1248\\u124a-\\u124d\")) + \"\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\")) + \"\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\")) + \"\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\")) + \"\\u166f-\\u1676\\u1681-\\u169a\\u16a0-\\u16ea\\u1700-\\u170c\\u170e-\\u1711\")) + \"\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\")) + \"\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\")) + \"\\u1980-\\u19a9\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1d00-\\u1dbf\\u1e00-\\u1e9b\")) + \"\\u1ea0-\\u1ef9\\u1f00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\")) + \"\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\")) + \"\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\")) + \"\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u2094\\u2102\\u2107\")) + \"\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\")) + \"\\u212f-\\u2131\\u2133-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u2c00-\\u2c2e\")) + \"\\u2c30-\\u2c5e\\u2c80-\\u2ce4\\u2d00-\\u2d25\\u2d30-\\u2d65\\u2d6f\\u2d80-\\u2d96\")) + \"\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\")) + \"\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3006\\u3031-\\u3035\")) + \"\\u303b-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\")) + \"\\u3105-\\u312c\\u3131-\\u318e\\u31a0-\\u31b7\\u31f0-\\u31ff\\u3400-\\u4db5\")) + \"\\u4e00-\\u9fbb\\ua000-\\ua48c\\ua800-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\")) + \"\\ua80c-\\ua822\\uac00-\\ud7a3\\uf900-\\ufa2d\\ufa30-\\ufa6a\\ufa70-\\ufad9\")) + \"\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\")) + \"\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\")) + \"\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\")) + \"\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\")) + \"\\uffda-\\uffdc\")), ja = ((((((((((((((((((((((((((((((((((((((((\"\\u0300-\\u036f\\u0483-\\u0486\\u0591-\\u05b9\\u05bb-\\u05bd\\u05bf\" + \"\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u0610-\\u0615\\u064b-\\u065e\\u0670\")) + \"\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7-\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\")) + \"\\u07a6-\\u07b0\\u0901-\\u0903\\u093c\\u093e-\\u094d\\u0951-\\u0954\\u0962-\\u0963\")) + \"\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09cd\\u09d7\")) + \"\\u09e2-\\u09e3\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\")) + \"\\u0a70-\\u0a71\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\")) + \"\\u0ae2-\\u0ae3\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b43\\u0b47-\\u0b48\\u0b4b-\\u0b4d\")) + \"\\u0b56-\\u0b57\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\")) + \"\\u0c01-\\u0c03\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\")) + \"\\u0c82-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\")) + \"\\u0d02-\\u0d03\\u0d3e-\\u0d43\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d82-\\u0d83\")) + \"\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2-\\u0df3\\u0e31\\u0e34-\\u0e3a\")) + \"\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb-\\u0ebc\\u0ec8-\\u0ecd\\u0f18-\\u0f19\")) + \"\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f3f\\u0f71-\\u0f84\\u0f86-\\u0f87\\u0f90-\\u0f97\")) + \"\\u0f99-\\u0fbc\\u0fc6\\u102c-\\u1032\\u1036-\\u1039\\u1056-\\u1059\\u135f\")) + \"\\u1712-\\u1714\\u1732-\\u1734\\u1752-\\u1753\\u1772-\\u1773\\u17b6-\\u17d3\\u17dd\")) + \"\\u180b-\\u180d\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u19b0-\\u19c0\\u19c8-\\u19c9\")) + \"\\u1a17-\\u1a1b\\u1dc0-\\u1dc3\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20eb\\u302a-\\u302f\")) + \"\\u3099-\\u309a\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ufb1e\\ufe00-\\ufe0f\")) + \"\\ufe20-\\ufe23\")), ka = ((((((((\"0-9\\u0660-\\u0669\\u06f0-\\u06f9\\u0966-\\u096f\\u09e6-\\u09ef\" + \"\\u0a66-\\u0a6f\\u0ae6-\\u0aef\\u0b66-\\u0b6f\\u0be6-\\u0bef\\u0c66-\\u0c6f\")) + \"\\u0ce6-\\u0cef\\u0d66-\\u0d6f\\u0e50-\\u0e59\\u0ed0-\\u0ed9\\u0f20-\\u0f29\")) + \"\\u1040-\\u1049\\u17e0-\\u17e9\\u1810-\\u1819\\u1946-\\u194f\\u19d0-\\u19d9\")) + \"\\uff10-\\uff19\")), la = ((((ia + ja)) + ha)), ma = ((ka + \"_\")), na = ((la + ma)), oa = ((((\"[\" + la)) + \"]\")), pa = ((((\"[\" + na)) + \"]\")), qa = ((((\"^|$|[^&\" + na)) + \"]\")), ra = \"[#\\\\uFF03]\", sa = ((((((((((((((((((\"(\" + qa)) + \")(\")) + ra)) + \")(\")) + pa)) + \"*\")) + oa)) + pa)) + \"*)\"));\n return new RegExp(sa, \"ig\");\n };\n;\n function l(da) {\n var ea = y(da), fa = 0, ga = 0;\n return n(da).map(function(ha) {\n while (((fa < ea.length))) {\n var ia = ea[fa], ja = ((ia.offset - ga));\n if (((ja < ha.offset))) {\n ga += ((ia.token.length - ia.JSBNG__name.length));\n fa++;\n }\n else break;\n ;\n ;\n };\n ;\n return {\n marker: ha.marker,\n tag: ha.hashtag,\n rawOffset: ((ha.offset + ga)),\n offset: ha.offset\n };\n });\n };\n;\n function m(da) {\n return o(da, t(da));\n };\n;\n function n(da) {\n var ea = aa(da);\n return o(ea, p(da, ea));\n };\n;\n function o(da, ea) {\n return r(da).slice(0, i).filter(function(fa) {\n var ga = v(fa.offset, fa.hashtag.length, ea);\n return ((!ga && ((fa.hashtag.length <= h))));\n });\n };\n;\n function p(da, ea) {\n return u(s(da), t(ea));\n };\n;\n var q = k();\n function r(da) {\n var ea = [];\n da.replace(q, function(fa, ga, ha, ia, ja) {\n ea.push({\n marker: ha,\n hashtag: ia,\n offset: ((ja + ga.length))\n });\n });\n return ea;\n };\n;\n function s(da) {\n return ba(da).map(function(ea) {\n return [ea.offset,ea.JSBNG__name.length,];\n });\n };\n;\n function t(da) {\n var ea = [], fa, ga = 0;\n while ((fa = g.permissiveMatch(da))) {\n var ha = da.indexOf(fa);\n ea.push([((ga + ha)),fa.length,]);\n da = da.substring(((ha + fa.length)));\n ga += ((ha + fa.length));\n };\n ;\n return ea;\n };\n;\n function u(da, ea) {\n var fa = [], ga = 0, ha = 0, ia = 0;\n while (((((ga < da.length)) && ((ha < ea.length))))) {\n if (((da[ga][0] > ea[ha][0]))) {\n fa[ia++] = ea[ha++];\n }\n else fa[ia++] = da[ga++];\n ;\n ;\n };\n ;\n return fa.concat(da.slice(ga), ea.slice(ha));\n };\n;\n function v(da, ea, fa) {\n if (!fa) {\n return false;\n }\n ;\n ;\n var ga = x(fa, da);\n return ((w(da, ea, fa, ga) || w(da, ea, fa, ((ga + 1)))));\n };\n;\n function w(da, ea, fa, ga) {\n if (!fa[ga]) {\n return false;\n }\n ;\n ;\n var ha = fa[ga][0], ia = fa[ga][1];\n return !((((((((da + ea)) - 1)) < ha)) || ((da > ((((ha + ia)) - 1))))));\n };\n;\n function x(da, ea) {\n var fa = 0, ga = ((da.length - 1));\n while (((fa <= ga))) {\n var ha = Math.floor(((((fa + ga)) / 2))), ia = da[ha][0];\n if (((ia == ea))) {\n return ha;\n }\n else if (((ia < ea))) {\n fa = ((ha + 1));\n }\n else ga = ((ha - 1));\n \n ;\n ;\n };\n ;\n return ga;\n };\n;\n function y(da) {\n var ea = [];\n da.replace(j, function(fa, ga, ha, ia, ja) {\n ea.push({\n token: fa,\n id: ga,\n type: ha,\n JSBNG__name: ia,\n offset: ja\n });\n });\n return ea;\n };\n;\n function z(da) {\n return ((da ? da.replace(/\\\\([^\\\\])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\") : null));\n };\n;\n function aa(da) {\n return da.replace(j, function(ea, fa, ga, ha, ia) {\n return z(ha);\n });\n };\n;\n function ba(da) {\n var ea = 0, fa = 0;\n return y(da).map(function(ga) {\n var ha = da.indexOf(ga.token, fa);\n fa = ((ha + 1));\n ha -= ea;\n var ia = z(ga.JSBNG__name);\n ea += ((ga.token.length - ia.length));\n if (((ha >= 0))) {\n return {\n id: ga.id,\n JSBNG__name: ia,\n type: ga.type,\n offset: ha\n };\n }\n ;\n ;\n });\n };\n;\n var ca = {\n };\n ca.parse = l;\n ca.parseWithoutMentions = m;\n e.exports = ca;\n});\n__d(\"HashtagSearchResultUtils\", [\"FacebarResultStoreUtils\",\"HashtagParser\",\"HashtagSearchResultConfig\",\"URI\",], function(a, b, c, d, e, f) {\n var g = b(\"FacebarResultStoreUtils\"), h = b(\"HashtagParser\"), i = b(\"HashtagSearchResultConfig\"), j = b(\"URI\"), k = {\n getHashtagFromQuery: function(l) {\n var m = h.parse(l);\n if (((((m && ((m.length === 1)))) && ((m[0].offset === 0))))) {\n return m[0].tag;\n }\n ;\n ;\n return false;\n },\n makeTypeaheadResult: function(l) {\n return {\n category: \"Hashtag\",\n path: j(((\"/hashtag/\" + l))).toString(),\n photo: i.image_url,\n rankType: null,\n replace_results: ((i.boost_result ? true : false)),\n scaled_score: 1,\n score: 0,\n text: ((\"#\" + l)),\n type: \"hashtag_exact\",\n uid: ((\"hashtag:\" + l))\n };\n },\n makeFacebarEntry: function(l) {\n return {\n category: \"Hashtag\",\n path: j(((\"/hashtag/\" + l))).toString(),\n photo: i.image_url,\n replace_results: ((i.boost_result ? true : false)),\n text: ((\"#\" + l)),\n type: \"hashtag_exact\",\n uid: ((\"hashtag:\" + l))\n };\n },\n makeFacebarResult: function(l) {\n var m = g.processEntityResult(\"hashtag_exact\", ((\"hashtag:\" + l)), ((\"#\" + l)), i.hashtag_cost);\n m.parse = {\n display: [{\n type: \"ent:hashtag_exact\",\n uid: ((\"hashtag:\" + l))\n },],\n remTokens: [],\n suffix: \"\",\n unmatch: []\n };\n return m;\n }\n };\n e.exports = k;\n});\n__d(\"ContextualHelpSearchController\", [\"JSBNG__Event\",\"AsyncRequest\",\"DOM\",\"CSS\",\"Focus\",\"Input\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"DOM\"), j = b(\"CSS\"), k = b(\"Focus\"), l = b(\"Input\"), m = b(\"copyProperties\"), n = 400;\n function o() {\n this._token = null;\n this._timerID = 0;\n this._lastQuery = null;\n this.typing_listener = null;\n this.clear_listener = null;\n this.async_request = null;\n };\n;\n m(o.prototype, {\n init: function(p, q, r, s, t) {\n this.loader = p;\n this.search_box = q;\n this.topics_area = r;\n this.results_area = s;\n this.clear_button = t;\n this.typing_listener = g.listen(this.search_box, \"keyup\", this.setTimer.bind(this));\n this.clear_listener = g.listen(this.clear_button, \"click\", this.clearResults.bind(this));\n k.set(this.search_box);\n },\n source: \"contextual_help\",\n clearResults: function() {\n this.show(this.topics_area);\n this._lastQuery = \"\";\n l.reset(this.search_box);\n k.set(this.search_box);\n if (((this.async_request !== null))) {\n this.async_request.abort();\n this.async_request = null;\n }\n ;\n ;\n j.addClass(this.clear_button, \"hidden_elem\");\n },\n update: function() {\n var p = l.getValue(this.search_box);\n if (((p === this._lastQuery))) {\n return;\n }\n ;\n ;\n this._lastQuery = p;\n if (((p === \"\"))) {\n this.clearResults();\n return;\n }\n ;\n ;\n this.show(this.loader);\n var q = {\n query: p,\n width: ((this._width || n)),\n source: this.source\n };\n this.async_request = new h(\"/help/ajax/search/\").setData(q).setHandler(function(r) {\n this._update(r);\n }.bind(this));\n this.async_request.send();\n },\n _update: function(p) {\n this.async_request = null;\n var q = p.getPayload().results;\n i.setContent(this.results_area, q);\n this.show(this.results_area);\n if (((l.getValue(this.search_box) === \"\"))) {\n this.clearResults();\n }\n else j.removeClass(this.clear_button, \"hidden_elem\");\n ;\n ;\n },\n setTimer: function() {\n if (((this._timerID !== 0))) {\n JSBNG__clearTimeout(this._timerID);\n }\n ;\n ;\n this._timerID = JSBNG__setTimeout(this.update.bind(this), 300);\n if (((this.async_request != null))) {\n this.async_request.abort();\n this.async_request = null;\n }\n ;\n ;\n },\n show: function(p) {\n var q = [this.loader,this.topics_area,this.results_area,];\n for (var r = 0; ((r < q.length)); r++) {\n j.addClass(q[r], \"hidden_elem\");\n ;\n };\n ;\n j.removeClass(p, \"hidden_elem\");\n }\n });\n e.exports = o;\n});\n__d(\"RequestsJewel\", [\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"ChannelConstants\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"FriendBrowserCheckboxController\",\"LinkController\",\"Parent\",\"ScrollableArea\",\"Vector\",\"copyProperties\",\"ge\",\"shield\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"AsyncRequest\"), i = b(\"AsyncSignal\"), j = b(\"ChannelConstants\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"JSBNG__Event\"), n = b(\"FriendBrowserCheckboxController\"), o = b(\"LinkController\"), p = b(\"Parent\"), q = b(\"ScrollableArea\"), r = b(\"Vector\"), s = b(\"copyProperties\"), t = b(\"ge\"), u = b(\"shield\"), v = b(\"tx\");\n function w() {\n \n };\n;\n s(w, {\n instance: null,\n getInstance: function() {\n return this.instance;\n }\n });\n s(w.prototype, {\n init: function(x, y, z) {\n w.instance = this;\n this.countNew = 0;\n this.jewel = x;\n this.jewelFlyoutCase = x.getRoot();\n this.jewelFlyout = t(\"fbRequestsFlyout\");\n this.newCountSpan = t(\"newRequestCount\");\n this.folder = y;\n this.doNewMarkRead = z;\n this.openTimestamp = 0;\n this._requestList = {\n };\n this._requestCount = 0;\n this.egoPredictedCount = 0;\n this.pendingCount = 0;\n this.shouldLogEgoClick = false;\n this.shouldClearPredictionAssocOnClick = false;\n var aa = t(\"requestsMarkReadButton\");\n if (aa) {\n m.listen(aa, \"click\", u(this._markRead, this));\n }\n ;\n ;\n this.jewel.subscribe(\"marked-seen\", u(this._markSeenCallback, this));\n this.jewel.subscribe(\"JSBNG__closed\", u(this._clearNewItems, this));\n this.jewel.subscribe(\"updated\", this._updateCount.bind(this));\n this.jewel.subscribe(\"opened\", this._openHandler.bind(this));\n o.registerHandler(this._handleLink.bind(this));\n g.subscribe(j.getArbiterType(\"jewel_requests_add\"), this._addRequest.bind(this));\n g.subscribe(j.getArbiterType(\"jewel_requests_remove_old\"), this._removeOldRequest.bind(this));\n g.subscribe(j.getArbiterType(\"friend_requests_seen\"), this._markSeenFromMessage.bind(this));\n g.subscribe(\"jewel/ego_predicted_count\", function(ba, ca) {\n this.egoPredictedCount = ca.ego_predicted_count;\n this.pendingCount = ca.pending_count;\n this.egoUnseenTimestamp = ca.unseen_timestamp;\n this.shouldLogEgoClick = ca.should_log_ego_click;\n this.actionContext = ca.action_context;\n }.bind(this));\n m.listen(this.jewelFlyout, \"submit\", function(ba) {\n var ca = p.byClass(ba.getTarget(), \"objectListItem\");\n if (ca) {\n k.removeClass(ca, \"jewelItemNew\");\n k.addClass(ca, \"jewelItemResponded\");\n this.pageInCollapsedRequests();\n }\n ;\n ;\n }.bind(this));\n this.setupScroll();\n return this;\n },\n setupScroll: function() {\n var x = l.scry(this.jewelFlyout, \".uiScrollableAreaWrap\")[0];\n if (x) {\n this._scrollableWrap = x;\n this._lastLinkPosition = 0;\n this._scrollListener = m.listen(x, \"JSBNG__scroll\", this._handleScroll.bind(this), m.Priority._BUBBLE);\n }\n ;\n ;\n },\n fromDom: function() {\n l.scry(this.jewelFlyout, \".jewelItemList li.objectListItem\").forEach(function(x) {\n var y = x.getAttribute(\"id\");\n if (y) {\n var z = this._parseIDToInts(y);\n if (z.requester) {\n this._requestList[z.requester] = y;\n }\n ;\n ;\n ++this._requestCount;\n }\n ;\n ;\n }.bind(this));\n this._conditionShowEmptyMessage();\n },\n _parseID: function(x) {\n var y = x.match(/^(\\d+)_(\\d+)/);\n return (((y) ? {\n requester: y[1],\n type: y[2]\n } : undefined));\n },\n _parseIDToInts: function(x) {\n var y = ((x ? this._parseID(x) : undefined)), z;\n if (((y && y.requester))) {\n z = parseInt(y.requester, 10);\n if (isNaN(z)) {\n z = undefined;\n }\n ;\n ;\n }\n ;\n ;\n var aa;\n if (((y && y.type))) {\n aa = parseInt(y.type, 10);\n if (isNaN(aa)) {\n aa = undefined;\n }\n ;\n ;\n }\n ;\n ;\n return {\n requester: z,\n type: aa\n };\n },\n _handleLink: function(x, JSBNG__event) {\n var y = p.byClass(x, \"jewelItemNew\");\n if (((((y && p.byClass(y, \"fbRequestList\"))) && p.byClass(y, \"beeperEnabled\")))) {\n var z = this._parseID(y.id);\n ((z && this._markSeenCallback(z.requester, z.type)));\n g.inform(\"jewel/count-updated\", {\n jewel: \"requests\",\n count: --this.countNew\n });\n k.removeClass(y, \"jewelItemNew\");\n }\n ;\n ;\n return true;\n },\n _handleScroll: function() {\n var x = l.scry(this._scrollableWrap, \".uiMorePager\");\n if (((!x || ((t(\"fbRequestsJewelManualPager\") && ((x.length < 2))))))) {\n return;\n }\n ;\n ;\n var y = x.pop();\n if (y) {\n var z = r.getElementPosition(y, \"viewport\").y;\n if (((z > 0))) {\n k.addClass(p.byClass(this._scrollableWrap, \"uiScrollableArea\"), \"contentAfter\");\n }\n ;\n ;\n var aa = l.JSBNG__find(y, \"a\");\n if (!aa) {\n return;\n }\n ;\n ;\n var ba = r.getElementPosition(aa, \"viewport\").y;\n if (((ba == this._lastLinkPosition))) {\n return;\n }\n ;\n ;\n var ca = ((r.getElementPosition(this._scrollableWrap, \"viewport\").y + r.getElementDimensions(this._scrollableWrap).y));\n if (((((((ba - 300)) < ca)) && ((ba > 0))))) {\n this._lastLinkPosition = ba;\n var da = aa.getAttribute(\"ajaxify\");\n if (da) {\n new h(da).setRelativeTo(aa).setStatusElement(p.byClass(aa, \"stat_elem\")).send();\n }\n else n.getInstance(\"jewel\").showMore();\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n },\n _addRequest: function(x, y) {\n if (!y) {\n return;\n }\n ;\n ;\n var z = y.obj.from, aa = y.obj.suggester, ba = this._parseIDToInts(this._requestList[z]).type, ca = ((((ba === 19)) && !aa));\n if (((!ca && ((ba || this.jewel.isOpen()))))) {\n return;\n }\n ;\n ;\n if (t(\"fbRequestsJewelLoading\")) {\n new h().setURI(\"/ajax/requests/loader/\").send();\n }\n else {\n var da = this._onMarkupCallback.bind(this, z, !!aa), ea = {\n from: z\n };\n if (aa) {\n ea.suggester = aa;\n }\n ;\n ;\n new h().setURI(\"/ajax/friends/jewel/request_markup\").setData(ea).setHandler(da).send();\n }\n ;\n ;\n },\n _onMarkupCallback: function(x, y, z) {\n var aa = z.getPayload();\n if (!aa) {\n return;\n }\n ;\n ;\n var ba = this._requestList[x], ca = this._parseIDToInts(ba).type;\n if (((((ca === 19)) && !y))) {\n var da = ((ba && t(ba)));\n ((da && l.replace(da, aa.markup)));\n }\n else {\n var ea = l.scry(this.jewelFlyout, \".fbRequestList .uiList\")[0];\n if (!ea) {\n return;\n }\n ;\n ;\n l.prependContent(ea, aa.markup);\n var fa = {\n jewel: \"requests\",\n count: ++this.countNew\n };\n g.inform(\"jewel/count-updated\", fa);\n ++this._requestCount;\n this._conditionShowEmptyMessage();\n }\n ;\n ;\n this._requestList[x] = aa.item_id;\n },\n _removeOldRequest: function(x, y) {\n if (((((!y || this.jewel.isOpen())) || ((t(\"fbRequestsJewelLoading\") !== null))))) {\n return;\n }\n ;\n ;\n var z = this._requestList[y.obj.from], aa = ((z && t(z)));\n if (aa) {\n ((k.hasClass(aa, \"jewelItemNew\") && g.inform(\"jewel/count-updated\", {\n jewel: \"requests\",\n count: --this.countNew\n })));\n if (!k.hasClass(aa, \"jewelItemResponded\")) {\n l.remove(aa);\n delete this._requestList[y.obj.from];\n --this._requestCount;\n this._conditionShowEmptyMessage();\n }\n ;\n ;\n }\n ;\n ;\n },\n pageInCollapsedRequests: function() {\n var x = t(\"fbRequestsJewelManualPager\");\n if (x) {\n var y = l.scry(x, \".uiMorePagerPrimary\")[0];\n if (((y.style && ((y.style.display != \"none\"))))) {\n JSBNG__setTimeout(function() {\n y.click();\n }, 100);\n }\n ;\n ;\n }\n ;\n ;\n },\n _markRead: function() {\n this.jewel.markSeen();\n this._clearNewItems();\n },\n _markSeenCallback: function(x, y) {\n var z = l.scry(this.jewelFlyout, \"li\");\n new i(\"/ajax/gigaboxx/endpoint/UpdateLastSeenTime.php\", {\n folder: this.folder,\n first_item: z[0].id\n }).send();\n new h().setURI(\"/ajax/friends/jewel/predicted_count_logging\").setData({\n ego_predicted_count: this.egoPredictedCount,\n pending_count: this.pendingCount,\n unseen_timestamp: this.egoUnseenTimestamp,\n action_context: this.actionContext,\n should_log_ego_click: this.shouldLogEgoClick\n }).send();\n var aa = ((((((typeof x != \"undefined\")) && ((typeof y != \"undefined\")))) ? {\n requester: x,\n type: y\n } : {\n }));\n ((this.doNewMarkRead && new i(\"/ajax/requests/mark_read/\", aa).send()));\n },\n _markSeenFromMessage: function(x, y) {\n g.inform(\"jewel/count-updated\", {\n jewel: \"requests\",\n count: 0\n });\n },\n _removeRequest: function(x, y) {\n var z = y.obj.item_id;\n if (z) {\n var aa = t(z), ba = ((aa && k.hasClass(aa, \"jewelItemNew\")));\n ((aa ? l.remove(aa) : ((ba && g.inform(\"jewel/count-updated\", {\n jewel: \"requests\",\n count: --this.countNew\n })))));\n }\n ;\n ;\n },\n _clearNewItems: function(x, y) {\n l.scry(this.jewel.root, \"li.jewelItemNew\").forEach(function(z) {\n k.removeClass(z, \"jewelItemNew\");\n });\n },\n _updateCount: function(x, y) {\n this.countNew = y.count;\n k.conditionClass(this.jewelFlyout, \"beeperUnread\", ((this.countNew > 0)));\n k.conditionClass(this.jewelFlyoutCase, \"showRequests\", ((this.countNew > 0)));\n if (this.newCountSpan) {\n var z = ((((this.countNew == 1)) ? v._(\"{num} NEW REQUEST\", {\n num: this.countNew\n }) : v._(\"{num} NEW REQUESTS\", {\n num: this.countNew\n })));\n l.setContent(this.newCountSpan, z);\n }\n ;\n ;\n },\n _conditionShowEmptyMessage: function() {\n l.scry(this.jewelFlyout, \"li.empty\").forEach(function(x) {\n k.conditionShow(x, ((this._requestCount <= 0)));\n }.bind(this));\n },\n _openHandler: function() {\n var x = l.scry(this.jewelFlyout, \".uiScrollableArea\")[0];\n if (t(\"fbRequestsJewelLoading\")) {\n var y = JSBNG__Date.now();\n if (((((this.openTimestamp + 5000)) < y))) {\n this.openTimestamp = y;\n new h().setURI(\"/ajax/requests/loader/\").setData({\n log_impressions: true\n }).send();\n }\n ;\n ;\n }\n else {\n var z = Object.keys(this._requestList);\n if (((z.length > 0))) {\n new h().setURI(\"/friends/requests/log_impressions\").setData({\n ids: z.join(\",\"),\n ref: \"jewel\"\n }).send();\n }\n ;\n ;\n }\n ;\n ;\n ((x && q.poke(x)));\n }\n });\n e.exports = w;\n});\n__d(\"legacy:RequestsJewel\", [\"RequestsJewel\",], function(a, b, c, d) {\n a.RequestsJewel = b(\"RequestsJewel\");\n}, 3);\n__d(\"JewelX\", [\"JSBNG__Event\",\"Arbiter\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"HTML\",\"Keys\",\"TabIsolation\",\"Toggler\",\"copyProperties\",\"emptyFunction\",\"reportData\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"ArbiterMixin\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"HTML\"), m = b(\"Keys\"), n = b(\"TabIsolation\"), o = b(\"Toggler\"), p = b(\"copyProperties\"), q = b(\"emptyFunction\"), r = b(\"reportData\"), s = function(t, u) {\n ((((t && u)) && this.init(t, u)));\n };\n p(s, {\n _instancesByName: {\n },\n _resizeListener: null\n });\n p(s.prototype, i, {\n init: function(t, u) {\n this.JSBNG__name = u.JSBNG__name;\n this.root = t;\n this.countNew = 0;\n this.initialCount = 0;\n this.escHandler = null;\n s._instancesByName[this.JSBNG__name] = this;\n var v = k.JSBNG__find(t, \".jewelFlyout\"), w = new n(v);\n o.listen(\"show\", this.root, function(x) {\n this._logFirstClick();\n ((this.hasNew() && this.markSeen()));\n this.reset();\n this.inform(\"opened\");\n h.inform(\"layer_shown\", {\n type: \"Jewel\"\n });\n w.enable();\n this.setupEvents();\n }.bind(this));\n o.listen(\"hide\", this.root, function(x, y) {\n ((this.hasNew() && this.markSeen()));\n this.reset();\n this.inform(\"JSBNG__closed\");\n h.inform(\"layer_hidden\", {\n type: \"Jewel\"\n });\n w.disable();\n this.removeEvents();\n }.bind(this));\n h.subscribe(\"jewel/count-updated\", function(x, y) {\n ((((y.jewel == this.JSBNG__name)) && this.update(y)));\n }.bind(this));\n h.subscribe(\"jewel/count-initial\", function(x, y) {\n ((((y.jewel == this.JSBNG__name)) && this.setInitial(y)));\n }.bind(this));\n h.subscribe(\"jewel/reset\", function(x, y) {\n ((((y.jewel == this.JSBNG__name)) && this.reset()));\n }.bind(this));\n s._resizeListener = ((s._resizeListener || (function() {\n var x = null;\n return g.listen(window, \"resize\", function() {\n JSBNG__clearTimeout(x);\n x = h.inform.bind(h, \"jewel/resize\").defer(100, false);\n });\n })()));\n },\n getRoot: function() {\n return this.root;\n },\n hasNew: function() {\n return j.hasClass(this.root, \"hasNew\");\n },\n isOpen: function() {\n return j.hasClass(this.root, \"openToggler\");\n },\n reset: function() {\n j.removeClass(this.root, \"hasNew\");\n },\n setContent: function(t) {\n var u = k.JSBNG__find(this.root, \"ul.jewelItemList\");\n k.setContent(u, l(t));\n },\n update: function(t) {\n this.countNew = t.count;\n var u = k.JSBNG__find(this.root, \"span.jewelCount span\");\n k.setContent(u, this.countNew);\n var v = ((isNaN(this.countNew) || ((this.countNew > 0))));\n j.conditionClass(this.root, \"hasNew\", v);\n if (v) {\n var w = ((\"\" + this.countNew)).length;\n j.conditionClass(this.root, \"hasCountSmall\", ((w === 1)));\n j.conditionClass(this.root, \"hasCountMedium\", ((w === 2)));\n j.conditionClass(this.root, \"hasCountLarge\", ((w > 2)));\n }\n ;\n ;\n this.inform(\"updated\", t);\n },\n setInitial: function(t) {\n this.initialCount = t;\n },\n setupEvents: function() {\n this.escHandler = g.listen(JSBNG__document.documentElement, \"keydown\", function(t) {\n if (((((t.keyCode === m.ESC)) && this.isOpen()))) {\n o.hide(this.root);\n }\n ;\n ;\n }.bind(this));\n },\n removeEvents: function() {\n if (this.escHandler) {\n this.escHandler.remove();\n }\n ;\n ;\n },\n markSeen: function() {\n h.inform(\"jewel/count-updated\", {\n jewel: this.JSBNG__name,\n count: 0\n }, h.BEHAVIOR_STATE);\n this.inform(\"marked-seen\");\n },\n _logFirstClick: function() {\n this._logFirstClick = q;\n r(\"jewel_click\", {\n gt: {\n count: this.countNew,\n initial: this.initialCount,\n jewel: this.JSBNG__name\n }\n });\n }\n });\n e.exports = s;\n});\n__d(\"MercuryJewelCountControl\", [\"Arbiter\",\"DOM\",\"MercuryThreadlistConstants\",\"copyProperties\",\"shield\",\"tx\",\"MercuryServerRequests\",\"MercuryThreadInformer\",\"MercuryUnseenState\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"DOM\"), i = b(\"MercuryThreadlistConstants\"), j = b(\"copyProperties\"), k = b(\"shield\"), l = b(\"tx\"), m = b(\"MercuryServerRequests\").get(), n = b(\"MercuryThreadInformer\").get(), o = b(\"MercuryUnseenState\").get(), p, q, r, s = function(u) {\n if (((u || r.isOpen()))) {\n o.markAsSeen();\n }\n ;\n ;\n }, t = function(u, v) {\n p = u;\n q = h.JSBNG__find(p, \"#mercurymessagesCountValue\");\n r = v;\n this.render();\n m.subscribe(\"model-update-completed\", function(w, x) {\n s(false);\n });\n n.subscribe(\"unseen-updated\", this.render.bind(this));\n r.subscribe(\"marked-seen\", k(s, this, true));\n };\n j(t.prototype, {\n render: function() {\n var u = \"\";\n if (o.exceedsMaxCount()) {\n u = l._(\"{count}+\", {\n count: i.MAX_UNSEEN_COUNT\n });\n }\n else u = o.getUnseenCount().toString();\n ;\n ;\n g.inform(\"jewel/count-updated\", {\n jewel: \"mercurymessages\",\n count: u\n }, g.BEHAVIOR_STATE);\n }\n });\n e.exports = t;\n});\n__d(\"MercuryJewelThreadlistControl\", [\"Arbiter\",\"ArbiterMixin\",\"MercuryChatUtils\",\"MercuryConfig\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"JSLogger\",\"JSXDOM\",\"MercuryAPIArgsSource\",\"MercuryThreadlistConstants\",\"MessagingTag\",\"MercuryOrderedThreadlist\",\"Parent\",\"MercuryJewelTemplates\",\"MercuryThreadInformer\",\"MercuryThreadMetadataRenderer\",\"MercuryThreads\",\"Tooltip\",\"MercuryUnreadState\",\"copyProperties\",\"csx\",\"cx\",\"throttle\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ArbiterMixin\"), i = b(\"MercuryChatUtils\"), j = b(\"MercuryConfig\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"JSBNG__Event\"), n = b(\"JSLogger\"), o = b(\"JSXDOM\"), p = b(\"MercuryAPIArgsSource\"), q = b(\"MercuryThreadlistConstants\"), r = b(\"MessagingTag\"), s = b(\"MercuryOrderedThreadlist\").get(), t = b(\"Parent\"), u = b(\"MercuryJewelTemplates\"), v = b(\"MercuryThreadInformer\").get(), w = b(\"MercuryThreadMetadataRenderer\").get(), x = b(\"MercuryThreads\").get(), y = b(\"Tooltip\"), z = b(\"MercuryUnreadState\").get(), aa = b(\"copyProperties\"), ba = b(\"csx\"), ca = b(\"cx\"), da = b(\"throttle\"), ea = b(\"tx\"), fa = n.create(\"mercury_jewel\");\n function ga(na, oa) {\n this._contentArea = ((l.scry(na, \".scrollable\")[0] || na));\n this._contentElement = l.JSBNG__find(this._contentArea, \".jewelContent\");\n this._loadingElement = l.JSBNG__find(this._contentArea, \".jewelLoading\");\n this._loadMoreButton = l.JSBNG__find(this._contentArea, \"._8y5\");\n this._loadMoreLink = l.JSBNG__find(this._contentArea, \"a._8y6\");\n this._currentFolder = r.INBOX;\n this._jewelFolderLinks = [];\n this._jewelFolderLinks[r.INBOX] = l.JSBNG__find(oa, \"._1sde\");\n this._jewelFolderLinks[r.OTHER] = l.JSBNG__find(oa, \"._1sdf\");\n this._jewelFolderCounts = [];\n this._jewelFolderCounts[r.INBOX] = l.JSBNG__find(oa, \"._1sdg\");\n this._jewelFolderCounts[r.OTHER] = l.JSBNG__find(oa, \"._1sdh\");\n la.bind(this)();\n m.listen(this._jewelFolderLinks[r.INBOX], \"click\", ka.bind(this, r.INBOX));\n m.listen(this._jewelFolderLinks[r.OTHER], \"click\", ka.bind(this, r.OTHER));\n this._curCount = [];\n this._curCount[r.INBOX] = ((q.JEWEL_THREAD_COUNT + 1));\n this._curCount[r.OTHER] = ((q.JEWEL_THREAD_COUNT + 1));\n this._isFolderLoaded = [];\n this._isFolderLoaded[r.INBOX] = false;\n this._isFolderLoaded[r.OTHER] = false;\n this._folderIsLoading = [];\n this._folderIsLoading[r.INBOX] = false;\n this._folderIsLoading[r.OTHER] = false;\n v.subscribe(\"threadlist-updated\", this.render.bind(this));\n v.subscribe(\"unread-updated\", la.bind(this));\n this.render();\n fa.bump(((\"opened_threadlist_\" + this._currentFolder)));\n m.listen(this._contentArea, \"JSBNG__scroll\", da(ha, 50, this));\n m.listen(this._loadMoreLink, \"click\", this.renderMoreThreads.bind(this));\n };\n;\n aa(ga, {\n EVENT_THREADS_LOADED: \"threads-loaded\",\n EVENT_THREADS_RENDERED: \"threads-rendered\"\n });\n aa(ga.prototype, h);\n aa(ga.prototype, {\n render: function() {\n l.empty(this._contentElement);\n k.show(this._loadingElement);\n k.hide(this._loadMoreButton);\n var na = l.create(\"div\");\n l.appendContent(this._contentElement, na);\n s.getThreadlist(q.RECENT_THREAD_OFFSET, this._curCount[this._currentFolder], this._currentFolder, this.renderThreads.bind(this, na), true);\n },\n renderThreads: function(na, oa) {\n this.inform(ga.EVENT_THREADS_LOADED);\n if (oa.length) {\n oa.forEach(function(pa) {\n var qa = u[\":fb:mercury:jewel:threadlist-row\"].build();\n x.getThreadMeta(pa, function(ra) {\n w.renderCoreThreadlist(ra, qa, this.renderSingleThread.bind(this), {\n show_unread_count: true\n });\n }.bind(this));\n l.appendContent(na, qa.getRoot());\n }.bind(this));\n }\n else l.setContent(this._contentElement, this.renderEmptyThreadlist());\n ;\n ;\n k.hide(this._loadingElement);\n k.conditionShow(this._loadMoreButton, !this._isFolderLoaded[this._currentFolder]);\n this.inform(ga.EVENT_THREADS_RENDERED);\n },\n renderSingleThread: function(na, oa) {\n var pa = ((oa.unread_count > 0));\n if (pa) {\n k.addClass(na.getRoot(), \"jewelItemNew\");\n }\n ;\n ;\n if (j.MessagesJewelToggleReadGK) {\n var qa = o.div({\n className: \"x_div\"\n }), ra = o.div({\n className: \"_5c9q\"\n }), sa = \"Mark as Unread\";\n if (pa) {\n sa = \"Mark as Read\";\n }\n ;\n ;\n y.set(ra, sa, \"above\", \"right\");\n m.listen(ra, \"click\", function(JSBNG__event) {\n x.changeThreadReadStatus(oa.thread_id, ((oa.unread_count > 0)));\n return false;\n });\n qa.appendChild(ra);\n na.getNode(\"link\").appendChild(qa);\n }\n ;\n ;\n if (((j.MessagesJewelOpenInChat && i.canOpenChatTab(oa)))) {\n m.listen(na.getRoot(), \"click\", function(JSBNG__event) {\n g.inform(\"chat/open-tab\", {\n thread_id: oa.thread_id\n });\n });\n }\n else w.renderTitanLink(oa.thread_id, na.getNode(\"link\"), null, this._currentFolder);\n ;\n ;\n m.listen(na.getRoot(), \"mouseover\", function(JSBNG__event) {\n var ta = na.getRoot();\n if (!t.byClass(ta, \"notifNegativeBase\")) {\n k.addClass(ta, \"selected\");\n }\n ;\n ;\n });\n m.listen(na.getRoot(), \"mouseout\", function(JSBNG__event) {\n k.removeClass(na.getRoot(), \"selected\");\n });\n },\n renderMoreThreads: function() {\n k.addClass(this._loadMoreButton, \"async_saving\");\n this._folderIsLoading[this._currentFolder] = true;\n var na = ((this._curCount[this._currentFolder] + q.JEWEL_MORE_COUNT));\n s.getThreadlist(q.RECENT_THREAD_OFFSET, ((na + 1)), this._currentFolder, ja.bind(this, na, this._currentFolder), true, p.JEWEL);\n },\n renderEmptyThreadlist: function() {\n return l.create(\"li\", {\n className: \"empty\"\n }, \"No messages\");\n }\n });\n function ha() {\n if (((((!this._isFolderLoaded[this._currentFolder] && !this._folderIsLoading[this._currentFolder])) && ia.bind(this)()))) {\n this.renderMoreThreads();\n }\n ;\n ;\n };\n;\n function ia() {\n return ((((this._contentArea.scrollTop + this._contentArea.clientHeight)) >= ((this._contentArea.scrollHeight - 1))));\n };\n;\n function ja(na, oa, pa) {\n this._curCount[oa] = na;\n if (((!this._isFolderLoaded[oa] && ((pa.length < ((this._curCount[oa] + 1))))))) {\n this._isFolderLoaded[oa] = true;\n }\n ;\n ;\n this._folderIsLoading[oa] = false;\n k.removeClass(this._loadMoreButton, \"async_saving\");\n this.render();\n };\n;\n function ka(na) {\n if (((this._currentFolder != na))) {\n fa.bump(((\"opened_threadlist_\" + na)));\n k.addClass(this._jewelFolderLinks[na], \"_1sdd\");\n k.removeClass(this._jewelFolderLinks[this._currentFolder], \"_1sdd\");\n this._currentFolder = na;\n this.render();\n }\n ;\n ;\n };\n;\n function la() {\n ma.bind(this)(r.INBOX);\n ma.bind(this)(r.OTHER);\n };\n;\n function ma(na) {\n var oa;\n if (z.exceedsMaxCount(na)) {\n oa = q.MAX_UNREAD_COUNT;\n }\n else oa = z.getUnreadCount(na);\n ;\n ;\n var pa = this._jewelFolderCounts[na];\n if (((oa > 0))) {\n if (((oa == q.MAX_UNREAD_COUNT))) {\n oa += \"+\";\n }\n ;\n ;\n l.setContent(pa, ea._(\"({unread_count})\", {\n unread_count: oa\n }));\n }\n else l.setContent(pa, \"\");\n ;\n ;\n };\n;\n e.exports = ga;\n});\n__d(\"MercuryJewel\", [\"MercuryChannelHandler\",\"MercuryJewelCountControl\",\"DOM\",\"MercuryJewelThreadlistControl\",\"MercuryServerRequests\",\"userAction\",], function(a, b, c, d, e, f) {\n b(\"MercuryChannelHandler\");\n var g = b(\"MercuryJewelCountControl\"), h = b(\"DOM\"), i = b(\"MercuryJewelThreadlistControl\"), j = b(\"MercuryServerRequests\").get(), k = b(\"userAction\"), l = false;\n function m(q, r, s, t) {\n j.handleUpdate(t);\n var u = new g(r, s), v = h.JSBNG__find(q, \"#MercuryJewelThreadList\");\n if (((s.getRoot() && s.isOpen()))) {\n n.call(this, v, q);\n }\n else s.subscribe(\"opened\", n.bind(this, v, q));\n ;\n ;\n };\n;\n e.exports = m;\n function n(q, r) {\n this._ua = k(\"messages\").uai(\"click\", \"jewel\");\n this._listenForLoad = this._listenForRender = true;\n if (!l) {\n var s = new i(q, r);\n s.subscribe(i.EVENT_THREADS_LOADED, o.bind(this));\n s.subscribe(i.EVENT_THREADS_RENDERED, p.bind(this));\n l = true;\n }\n ;\n ;\n };\n;\n function o() {\n if (this._listenForLoad) {\n this._ua.add_event(\"loaded\");\n this._listenForLoad = false;\n }\n ;\n ;\n };\n;\n function p() {\n if (this._listenForRender) {\n this._ua.add_event(\"rendered\");\n this._listenForRender = false;\n }\n ;\n ;\n };\n;\n});\n__d(\"MessagingEvents\", [\"Arbiter\",\"ChannelConstants\",\"arrayContains\",\"copyProperties\",\"isEmpty\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ChannelConstants\"), i = b(\"arrayContains\"), j = b(\"copyProperties\"), k = b(\"isEmpty\"), l = {\n }, m = new g();\n function n(o) {\n if (!k(l)) {\n return;\n }\n ;\n ;\n {\n var fin273keys = ((window.top.JSBNG_Replay.forInKeys)((o))), fin273i = (0);\n var p;\n for (; (fin273i < fin273keys.length); (fin273i++)) {\n ((p) = (fin273keys[fin273i]));\n {\n m.inform(((\"count/\" + p)), o[p]);\n ;\n };\n };\n };\n ;\n };\n;\n m.subscribe(\"mark-as-read\", function(o, p) {\n ((((p.tids || p.chat_ids)) || [])).forEach(function(q) {\n q = ((\"\" + q));\n if (!((q in l))) {\n l[q] = true;\n var r = function() {\n m.unsubscribe(s);\n JSBNG__clearTimeout(t);\n delete l[q];\n }, s = m.subscribe(\"read\", function(u, v) {\n if (((i(((v.tids || [])), q) || i(((v.chat_ids || [])), q)))) {\n r();\n }\n ;\n ;\n }), t = r.defer(60000);\n }\n ;\n ;\n });\n });\n g.subscribe(h.getArbiterType(\"messaging\"), function(o, p) {\n var q = j({\n }, p.obj), JSBNG__event = ((q.JSBNG__event || \"\"));\n delete q.type;\n delete q.JSBNG__event;\n m.inform(JSBNG__event, q);\n if (((\"unread_counts\" in q))) {\n var r = q.unread_counts;\n n({\n unread: r.inbox,\n other_unseen: r.other\n });\n }\n ;\n ;\n });\n g.subscribe(h.getArbiterType(\"inbox\"), function(o, p) {\n var q = j(p.obj);\n delete q.type;\n n(q);\n });\n a.MessagingEvents = e.exports = m;\n}, 3);\n__d(\"TitanLeftNav\", [\"CounterDisplay\",\"MessagingEvents\",], function(a, b, c, d, e, f) {\n var g = b(\"CounterDisplay\"), h = b(\"MessagingEvents\"), i = {\n initialize: function() {\n h.subscribe(\"count/other_unseen\", function(j, k) {\n g.setCount(\"other_unseen\", k);\n });\n }\n };\n e.exports = i;\n});\n__d(\"AccessibleMenu\", [\"JSBNG__Event\",\"CSS\",\"DOM\",\"Keys\",\"TabbableElements\",\"Toggler\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"Keys\"), k = b(\"TabbableElements\"), l = b(\"Toggler\"), m, n, o;\n function p() {\n var x = i.scry(m, \"a[rel=\\\"toggle\\\"]\")[0];\n ((x && x.JSBNG__focus()));\n l.getInstance(m).hide();\n };\n;\n function q(x) {\n if (!x) {\n return false;\n }\n ;\n ;\n h.removeClass(x, \"selected\");\n x.setAttribute(\"aria-selected\", \"false\");\n };\n;\n function r(x) {\n if (!x) {\n return false;\n }\n ;\n ;\n h.addClass(x, \"selected\");\n x.setAttribute(\"aria-selected\", \"true\");\n var y = k.JSBNG__find(x);\n if (y[0]) {\n y[0].JSBNG__focus();\n }\n ;\n ;\n };\n;\n function s(x) {\n var y = i.scry(m, \".selected\")[0], z = ((n.indexOf(y) + x)), aa = n[z];\n if (!aa) {\n return false;\n }\n ;\n ;\n q(y);\n r(aa);\n };\n;\n function t(x) {\n if (((!l.isShown() || ((l.getActive() !== m))))) {\n return true;\n }\n ;\n ;\n var y = g.getKeyCode(x);\n switch (y) {\n case j.TAB:\n s(((x.shiftKey ? -1 : 1)));\n g.prevent(x);\n break;\n case j.ESC:\n p();\n g.prevent(x);\n break;\n case j.UP:\n \n case j.DOWN:\n s(((((y === j.UP)) ? -1 : 1)));\n g.prevent(x);\n break;\n };\n ;\n };\n;\n function u(x, y) {\n m = y.getActive();\n n = i.scry(m, \"[role=\\\"menuitem\\\"]\");\n if (!o) {\n o = g.listen(JSBNG__document.documentElement, \"keydown\", t);\n }\n ;\n ;\n };\n;\n function v() {\n if (((l.getActive() == m))) {\n q(i.scry(m, \".selected\")[0]);\n }\n ;\n ;\n };\n;\n var w = {\n init: function(x) {\n l.listen(\"show\", x, u);\n l.listen(\"hide\", x, v);\n }\n };\n e.exports = w;\n});\n__d(\"UserNoOp\", [\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"emptyFunction\"), i = function() {\n \n };\n g(i.prototype, {\n add_event: h.thatReturnsThis,\n add_data: h.thatReturnsThis,\n uai: h.thatReturnsThis,\n uai_fallback: h.thatReturnsThis\n });\n e.exports = i;\n});\n__d(\"isEmail\", [], function(a, b, c, d, e, f) {\n var g = /^[\\w!#\\$%&'\\*\\+\\/\\=\\?\\^`\\{\\|\\}~\\-]+(:?\\.[\\w!#\\$%&`\\*\\+\\/\\=\\?\\^`\\{\\|\\}~\\-]+)*@(?:[a-z0-9](?:[a-z0-9\\-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9\\-]*[a-z0-9])?$/i;\n function h(i) {\n return g.test(i);\n };\n;\n e.exports = h;\n});\n__d(\"NegativeNotif\", [\"Animation\",\"AsyncRequest\",\"CSS\",\"DataStore\",\"DOM\",\"JSBNG__Event\",\"Parent\",\"Tooltip\",\"NotifXList\",\"$\",\"clickRefAction\",\"copyProperties\",\"userAction\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"AsyncRequest\"), i = b(\"CSS\"), j = b(\"DataStore\"), k = b(\"DOM\"), l = b(\"JSBNG__Event\"), m = b(\"Parent\"), n = b(\"Tooltip\"), o = b(\"NotifXList\"), p = b(\"$\"), q = b(\"clickRefAction\"), r = b(\"copyProperties\"), s = b(\"userAction\");\n function t(u, v) {\n r(this, v);\n this.owner = u;\n this.xLink = k.JSBNG__find(this.obj, \".notif_x\");\n this.confirmingMsg = k.JSBNG__find(this.obj, \".confirmingMsg\");\n this.mainLink = k.JSBNG__find(this.obj, \".notifMainLink\");\n this.userXClicked = false;\n this.userUnsubscribed = false;\n l.listen(this.xLink, \"click\", this.xClick.bind(this));\n if (((i.hasClass(this.obj, \"first_receipt\") && i.hasClass(p(\"jewelContainer\"), \"notifGentleAppReceipt\")))) {\n this.gentleFirstReceiptHoverEventHandler = l.listen(this.obj, \"mouseover\", this.gentleFirstReceiptNotifHover.bind(this));\n }\n ;\n ;\n };\n;\n r(t.prototype, {\n FADE_AWAY_DURATION: 2500,\n X_OUT_DURATION: 100,\n X_OUT_DURATION_SHORT: 2,\n GENTLE_FRUI_MIN_HOVER_DURATION: 500,\n GENTLE_FRUI_FADE_DURATION_FAST: 200,\n GENTLE_FRUI_FADE_DURATION_SLOW: 2500,\n GENTLE_FRUI_DELAY_FADE_TIME: 60000,\n xClick: function(JSBNG__event) {\n this._activateX();\n var u = this.xLink.getAttribute(\"data-gt\"), v = ((u ? {\n gt: JSON.parse(u)\n } : {\n }));\n s(\"xbutton\", this.xLink, JSBNG__event).uai(\"click\");\n q(\"click\", this.xLink, JSBNG__event, null, v);\n return false;\n },\n gentleFirstReceiptNotifHover: function(JSBNG__event) {\n JSBNG__event.JSBNG__stop();\n var u = k.JSBNG__find(this.obj, \".first_receipt_no_button\"), v = j.get(u, \"notif_fr_prompt\");\n n.set(u, v, \"above\", \"center\");\n n.show(u);\n this._gentleFirstReceiptTooltipFadeIn();\n if (!this.gentleFirstReceiptUnhoverEventHandler) {\n this.hoverTime = new JSBNG__Date();\n this.gentleFirstReceiptUnhoverEventHandler = l.listen(JSBNG__document.documentElement, \"mouseover\", this.gentleFirstReceiptNotifUnhover.bind(this));\n }\n ;\n ;\n if (!this.gentleFirstReceiptNoClickEventHandler) {\n this.gentleFirstReceiptNoClickEventHandler = l.listen(u, \"click\", this.gentleFirstReceiptNoClick.bind(this));\n }\n ;\n ;\n },\n gentleFirstReceiptNotifUnhover: function(JSBNG__event) {\n if (((m.byClass(JSBNG__event.getTarget(), \"uiContextualLayer\") || m.byClass(JSBNG__event.getTarget(), \"uiScrollableAreaTrack\")))) {\n return false;\n }\n ;\n ;\n var u = new JSBNG__Date();\n if (((this.hoverTime && ((((u - this.hoverTime)) < this.GENTLE_FRUI_MIN_HOVER_DURATION))))) {\n this.gentleFirstReceiptUnhoverEventHandler.remove();\n this.gentleFirstReceiptUnhoverEventHandler = null;\n this._gentleFirstReceiptTooltipAlreadyFadedIn = false;\n return;\n }\n ;\n ;\n this._removeGentleFirstReceiptListeners();\n this._gentleFirstReceiptTooltipFadeAway();\n this._gentleFirstReceiptXButtonFadeAway();\n var v = this;\n JSBNG__setTimeout(function() {\n v._gentleFirstReceiptUIFadeAway();\n }, this.GENTLE_FRUI_DELAY_FADE_TIME);\n this._sendFirstReceiptYesToServer();\n },\n gentleFirstReceiptNoClick: function(JSBNG__event) {\n this._removeGentleFirstReceiptListeners();\n },\n restore: function() {\n if (o.newNotifExist(this.id)) {\n o.resumeInsert(this.id);\n }\n else o.removeNotif(this.id);\n ;\n ;\n this._confirmingMsgFadeAway(this.confirmingMsg);\n this._notifMainLinkShowUp(this.mainLink);\n this._buttonShowUp(this.xLink);\n this._adjustContainer(this.obj);\n },\n reset: function() {\n if (((this.userXClicked && !this.userUnsubscribed))) {\n this.userXClicked = false;\n this.restore();\n }\n ;\n ;\n },\n onTurnedOff: function() {\n this.userUnsubscribed = true;\n i.hide(this.confirmingMsg);\n this._notifMainLinkShowUp(k.JSBNG__find(this.obj, \".confirmedMsg\"));\n this._adjustContainer(this.obj);\n },\n onUndid: function() {\n this.userXClicked = false;\n this.userUnsubscribed = false;\n this.restore();\n i.show(this.confirmingMsg);\n this._notifMainLinkFadeAway(k.JSBNG__find(this.obj, \".confirmedMsg\"));\n k.remove(k.JSBNG__find(this.obj, \".confirmedMsg\"));\n },\n onMarkedSpam: function() {\n k.remove(k.JSBNG__find(this.obj, \".confirmedMsg\"));\n this._fadeAway(k.JSBNG__find(this.obj, \".spamMsg\"));\n },\n onFirstReceiptYes: function() {\n this._hideFirstReceiptDiv();\n this._fadeAway(k.JSBNG__find(this.obj, \".firstConfirmedMsg\"));\n },\n onFirstReceiptNo: function() {\n this._hideFirstReceiptDiv();\n i.hide(this.confirmingMsg);\n this._activateX();\n new h().setURI(\"/ajax/notifications/negative_req.php\").setData({\n request_type: \"turn_off\",\n notification_id: this.id\n }).send();\n },\n _sendFirstReceiptYesToServer: function() {\n new h().setURI(\"/ajax/notifications/negative_req.php\").setData({\n request_type: \"first_receipt_yes\",\n notification_id: this.id\n }).send();\n },\n _gentleFirstReceiptTooltipFadeIn: function() {\n if (this._gentleFirstReceiptTooltipAlreadyFadedIn) {\n return;\n }\n ;\n ;\n var u = k.JSBNG__find(JSBNG__document.documentElement, \".uiLayer .uiContextualLayer .uiTooltipX\");\n new g(u).from(\"opacity\", \"0\").to(\"opacity\", \"1\").duration(this.GENTLE_FRUI_FADE_DURATION_FAST).go();\n this._gentleFirstReceiptTooltipAlreadyFadedIn = true;\n },\n _gentleFirstReceiptTooltipFadeAway: function() {\n if (!this._gentleFirstReceiptTooltipAlreadyFadedIn) {\n return;\n }\n ;\n ;\n var u = k.JSBNG__find(JSBNG__document.documentElement, \".uiLayer .uiContextualLayer .uiTooltipX\"), v = m.byClass(u, \"uiLayer\"), w = v.cloneNode(true);\n k.insertAfter(v, w);\n new g(w).from(\"opacity\", \"1\").to(\"opacity\", \"0\").duration(this.GENTLE_FRUI_FADE_DURATION_FAST).ondone(function() {\n k.remove(w);\n }).go();\n this._gentleFirstReceiptTooltipAlreadyFadedIn = false;\n },\n _gentleFirstReceiptXButtonFadeAway: function() {\n var u = k.JSBNG__find(this.obj, \".first_receipt_no_button\");\n new g(u).from(\"opacity\", \"1\").to(\"opacity\", \"0\").duration(this.GENTLE_FRUI_FADE_DURATION_FAST).hide().go();\n i.addClass(this.obj, \"show_original_x\");\n },\n _gentleFirstReceiptUIFadeAway: function() {\n var u = this.obj;\n this.new_label = k.JSBNG__find(this.obj, \".notif_new_label\");\n new g(this.new_label).to(\"opacity\", \"0\").duration(this.GENTLE_FRUI_FADE_DURATION_SLOW).ondone(function() {\n i.removeClass(u, \"first_receipt\");\n }).go();\n if (!i.hasClass(this.obj, \"jewelItemNew\")) {\n new g(this.obj).from(\"backgroundColor\", \"#ECEFF5\").to(\"backgroundColor\", \"#FFFFFF\").duration(this.GENTLE_FRUI_FADE_DURATION_SLOW).go();\n }\n ;\n ;\n },\n _removeGentleFirstReceiptListeners: function() {\n if (this.gentleFirstReceiptHoverEventHandler) {\n this.gentleFirstReceiptHoverEventHandler.remove();\n }\n ;\n ;\n if (this.gentleFirstReceiptUnhoverEventHandler) {\n this.gentleFirstReceiptUnhoverEventHandler.remove();\n }\n ;\n ;\n if (this.gentleFirstReceiptNoClickEventHandler) {\n this.gentleFirstReceiptNoClickEventHandler.remove();\n }\n ;\n ;\n },\n _activateX: function() {\n i.addClass(this.obj, \"forPushSafety\");\n this.userXClicked = true;\n o.userXClick(this.id);\n this._notifMainLinkFadeAway(this.mainLink);\n this._buttonFadeAway(this.xLink);\n if (i.shown(this.confirmingMsg)) {\n this._confirmingMsgShowUp(this.confirmingMsg);\n }\n ;\n ;\n this._adjustContainer(this.obj);\n },\n _hideFirstReceiptDiv: function() {\n i.removeClass(this.obj, \"first_receipt\");\n i.hide(k.JSBNG__find(this.obj, \".first_receipt_div\"));\n },\n _fadeAway: function(u) {\n new g(u).from(\"backgroundColor\", \"#FFF9D7\").to(\"backgroundColor\", \"#FFFFFF\").duration(this.FADE_AWAY_DURATION).checkpoint().to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().hide().duration(this.X_OUT_DURATION).go();\n },\n _adjustContainer: function(u) {\n new g(u).by(\"height\", \"0px\").duration(this.X_OUT_DURATION).checkpoint().by(\"height\", \"0px\").duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"height\", \"auto\").duration(this.X_OUT_DURATION).go();\n },\n _notifMainLinkShowUp: function(u) {\n new g(u).duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"auto\").to(\"paddingTop\", \"4px\").to(\"paddingBottom\", \"4px\").blind().show().duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"opacity\", \"1\").blind().duration(this.X_OUT_DURATION).go();\n },\n _confirmingMsgShowUp: function(u) {\n new g(u).duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"auto\").to(\"paddingTop\", \"10px\").to(\"paddingBottom\", \"10px\").blind().show().duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"opacity\", \"1\").blind().duration(this.X_OUT_DURATION).go();\n },\n _notifMainLinkFadeAway: function(u) {\n new g(u).to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().hide().duration(this.X_OUT_DURATION_SHORT).go();\n },\n _confirmingMsgFadeAway: function(u) {\n new g(u).to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().duration(this.X_OUT_DURATION_SHORT).go();\n },\n _buttonShowUp: function(u) {\n new g(u).duration(this.X_OUT_DURATION).checkpoint().show().duration(this.X_OUT_DURATION_SHORT).checkpoint().to(\"opacity\", \"1\").blind().duration(this.X_OUT_DURATION).go();\n },\n _buttonFadeAway: function(u) {\n new g(u).to(\"opacity\", \"0\").blind().duration(this.X_OUT_DURATION).checkpoint().hide().duration(this.X_OUT_DURATION_SHORT).go();\n }\n });\n e.exports = t;\n});\n__d(\"NotificationCounter\", [\"Arbiter\",\"DocumentTitle\",\"JSLogger\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"DocumentTitle\"), i = b(\"JSLogger\"), j = {\n messages: 0,\n notifications: 0,\n requests: 0\n }, k = {\n init: function(l) {\n g.subscribe(\"update_title\", this._handleUpdate.bind(this));\n g.subscribe(\"jewel/count-updated\", this._handleCountUpdate.bind(this));\n },\n getCount: function() {\n var l = 0;\n {\n var fin274keys = ((window.top.JSBNG_Replay.forInKeys)((j))), fin274i = (0);\n var m;\n for (; (fin274i < fin274keys.length); (fin274i++)) {\n ((m) = (fin274keys[fin274i]));\n {\n var n = Number(j[m]);\n if (((((typeof j[m] == \"string\")) && isNaN(n)))) {\n return j[m];\n }\n ;\n ;\n if (((isNaN(n) || ((n < 0))))) {\n i.create(\"jewels\").error(\"bad_count\", {\n jewel: m,\n count: j[m]\n });\n continue;\n }\n ;\n ;\n l += n;\n };\n };\n };\n ;\n return l;\n },\n updateTitle: function() {\n var l = this.getCount(), m = h.get();\n m = ((l ? ((((((\"(\" + l)) + \") \")) + m)) : m));\n h.set(m, true);\n },\n _handleCountUpdate: function(l, m) {\n j[m.jewel] = m.count;\n this.updateTitle();\n },\n _handleUpdate: function(l, m) {\n this.updateTitle();\n }\n };\n e.exports = k;\n});\n__d(\"NotificationList\", [\"Animation\",\"ArbiterMixin\",\"CSS\",\"DOM\",\"DoublyLinkedListMap\",\"HTML\",\"NotificationURI\",\"Tooltip\",\"JSBNG__Event\",\"$\",\"copyProperties\",\"cx\",\"csx\",\"ge\",\"isEmpty\",\"tx\",\"hasArrayNature\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"ArbiterMixin\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"DoublyLinkedListMap\"), l = b(\"HTML\"), m = b(\"NotificationURI\"), n = b(\"Tooltip\"), o = b(\"JSBNG__Event\"), p = b(\"$\"), q = b(\"copyProperties\"), r = b(\"cx\"), s = b(\"csx\"), t = b(\"ge\"), u = b(\"isEmpty\"), v = b(\"tx\"), w = b(\"hasArrayNature\"), x = \"0\", y = \"1\", z = \"2\";\n function aa(da) {\n return ((((da == y)) || ((da == z))));\n };\n;\n function ba(da) {\n return ((da == y));\n };\n;\n function ca(da, ea) {\n this._list = new k();\n this._filter_func = null;\n this.unseenCount = 0;\n this.contentRoot = da;\n this.noItemsElement = null;\n this.ITEM_TAG = \"li\";\n this.ITEM_CLASS = \"notification\";\n this.NO_ITEMS_ID = \"jewelNoNotifications\";\n this.NO_ITEMS_CLASS = \"empty\";\n this.compare = ((ea.compare || this.compare));\n this.shouldBlockAnimation = ((ea.shouldBlockAnimation || null));\n this.unseenVsUnread = ((ea.unseenVsUnread || false));\n this.markReadSignalServer = ea.markReadSignalServer;\n this.animations = {\n };\n };\n;\n q(ca, {\n ITEM_UNREAD_CLASS: \"jewelItemNew\",\n MARK_READ_TYPE: \"mark_read\",\n UNREAD_COUNT_CHANGE_TYPE: \"unread_count_change\",\n INSERTION_TYPE: \"insert\",\n REMOVAL_TYPE: \"remove\",\n getIdFromDom: function(da) {\n return da.getAttribute(\"id\").replace(\"notification_\", \"\");\n },\n localizeUrls: function(da) {\n j.scry(da, \"a\").forEach(function(ea) {\n ea.href = m.localize(ea.href);\n });\n }\n });\n q(ca.prototype, h, {\n FADE_DURATION: 250,\n RESIZE_DURATION: 200,\n _getField: function(da, ea) {\n var fa = this._list.get(da);\n return ((fa && fa[ea]));\n },\n getDomObj: function(da) {\n return this._getField(da, \"obj\");\n },\n fromDom: function() {\n var da = ((((this.ITEM_TAG + \".\")) + this.ITEM_CLASS)), ea = j.scry(this.contentRoot, da);\n for (var fa = 0; ((fa < ea.length)); ++fa) {\n var ga = ea[fa], ha = ca.getIdFromDom(ga);\n this.insert(ha, ga.getAttribute(\"data-notiftime\"), null);\n };\n ;\n },\n compare: function(da, ea) {\n return ((((da.time < ea.time)) || ((((da.time === ea.time)) && ((da.id < ea.id))))));\n },\n insert: function(da, ea, fa, ga, ha, ia) {\n var ja = y, ka = 0, la = this._list.exists(da), ma = ((ia && this._list.exists(ia))), na = null, oa;\n if (((la || ma))) {\n if (!((ga && fa))) {\n return false;\n }\n else {\n if (this._filter_func) {\n oa = {\n notif_id: da,\n notif_time: ea,\n notif_markup: fa,\n replace: ga,\n ignoreUnread: ha,\n notif_alt_id: ia\n };\n if (this._filter_func(oa)) {\n return false;\n }\n ;\n ;\n }\n ;\n ;\n ja = this._getField(da, \"readness\");\n ka = this._getField(da, \"time\");\n if (((ka > ea))) {\n return false;\n }\n ;\n ;\n na = ((la ? da : ia));\n this._remove(na);\n }\n ;\n }\n ;\n ;\n var pa = ((((fa && l(fa).getRootNode())) || p(((\"notification_\" + da))))), qa = Math.max(ea, ka), ra = pa.getAttribute(\"data-readness\");\n if (((!this.unseenVsUnread && ((z == ra))))) {\n ra = x;\n }\n ;\n ;\n oa = {\n id: da,\n obj: pa,\n time: qa,\n readness: ra,\n app_id: pa.getAttribute(\"data-appid\")\n };\n this._insert(oa);\n this._setUpReadStateToggle(da, pa);\n ca.localizeUrls(pa);\n ((this.noItemsElement && i.hide(this.noItemsElement)));\n if (ba(ra)) {\n ((((ha && !aa(ja))) && this.markRead([da,])));\n this.unseenCount = this.getUnseenIds().length;\n this.inform(ca.UNREAD_COUNT_CHANGE_TYPE);\n }\n ;\n ;\n var sa = ((((!na || ((ka < qa)))) || ((((ra && !ja)) && !ha))));\n this.inform(ca.INSERTION_TYPE, {\n id: da,\n is_new: sa,\n obj: pa,\n replaced_id: na,\n time: qa\n });\n return true;\n },\n _setReadStateToggleReadness: function(da, ea) {\n var fa;\n if (ea) {\n fa = ((this.unseenVsUnread ? \"Mark as Read\" : \"Unread\"));\n }\n else fa = \"Read\";\n ;\n ;\n if (!((ea && this.unseenVsUnread))) {\n i.removeClass(da, \"_5c9q\");\n i.addClass(da, \"_5c9_\");\n }\n ;\n ;\n n.set(da, fa, \"above\", \"center\");\n },\n _setUpReadStateToggle: function(da, ea) {\n var fa = this.isUnreadId(da), ga = j.scry(ea, \"._5c9q\")[0];\n if (!ga) {\n return;\n }\n ;\n ;\n this._setReadStateToggleReadness(ga, fa);\n var ha = function(JSBNG__event) {\n if (((this.unseenVsUnread && this.isUnreadId(da)))) {\n this.markReadSignalServer([da,]);\n }\n ;\n ;\n o.kill(JSBNG__event);\n return false;\n };\n o.listen(ga, \"click\", ha.bind(this));\n },\n showNoNotifications: function() {\n if (((null == this.noItemsElement))) {\n this.noItemsElement = t(this.NO_ITEMS_ID);\n }\n ;\n ;\n if (((null == this.noItemsElement))) {\n this.noItemsElement = j.create(this.ITEM_TAG, {\n id: this.NO_ITEMS_ID,\n className: this.NO_ITEMS_CLASS\n }, \"No new notifications\");\n j.appendContent(this.contentRoot, this.noItemsElement);\n }\n ;\n ;\n i.show(this.noItemsElement);\n },\n _insert: function(da) {\n this._list.remove(da.id);\n var ea = null;\n this._list.JSBNG__find(function(ga) {\n var ha = this.compare(ga, da);\n ((!ha && (ea = ga.id)));\n return ha;\n }.bind(this));\n var fa = this.getDomObj(ea);\n if (fa) {\n this._list.insertAfter(da.id, da, ea);\n j.insertAfter(fa, da.obj);\n }\n else {\n this._list.prepend(da.id, da);\n j.prependContent(this.contentRoot, da.obj);\n }\n ;\n ;\n },\n _remove: function(da) {\n var ea = this._getField(da, \"obj\");\n if (!ea) {\n return false;\n }\n ;\n ;\n this.inform(ca.REMOVAL_TYPE, {\n id: da\n });\n this._list.remove(da);\n j.remove(ea);\n ((this.isEmpty() && this.showNoNotifications()));\n return true;\n },\n getUnreadIds: function() {\n return this._list.reduce(function(da, ea) {\n ((aa(da.readness) && ea.push(da.id)));\n return ea;\n }, []);\n },\n getUnseenIds: function() {\n return this._list.reduce(function(da, ea) {\n ((ba(da.readness) && ea.push(da.id)));\n return ea;\n }, []);\n },\n getIds: function() {\n return this._list.reduce(function(da, ea) {\n ea.push(da.id);\n return ea;\n }, []);\n },\n isUnreadId: function(da) {\n var ea = this.getDomObj(da);\n return ((aa(this._getField(da, \"readness\")) || ((ea && i.hasClass(ea, ca.ITEM_UNREAD_CLASS)))));\n },\n isUnseenId: function(da) {\n return ba(this._getField(da, \"readness\"));\n },\n markRead: function(da, ea) {\n da = ((da ? da.filter(this.isUnreadId.bind(this)) : this.getUnreadIds()));\n var fa = false;\n for (var ga = 0; ((ga < da.length)); ga++) {\n var ha = this._list.get(da[ga]);\n if (ha) {\n if (this._setReadness(da[ga], x)) {\n fa = true;\n }\n ;\n ;\n if (ea) {\n this._markReadInDom(da[ga], ha.obj);\n }\n else this.animateMarkRead(ha.obj);\n ;\n ;\n }\n ;\n ;\n };\n ;\n if (fa) {\n this.unseenCount = this.getUnseenIds().length;\n this.inform(ca.UNREAD_COUNT_CHANGE_TYPE);\n }\n ;\n ;\n },\n markSeen: function(da) {\n if (!w(da)) {\n return;\n }\n ;\n ;\n if (!this.unseenVsUnread) {\n this.markRead(da);\n return;\n }\n ;\n ;\n da = da.filter(this.isUnseenId.bind(this));\n var ea = false;\n for (var fa = 0; ((fa < da.length)); fa++) {\n if (this._setReadness(da[fa], z)) {\n ea = true;\n }\n ;\n ;\n };\n ;\n if (ea) {\n this.unseenCount = this.getUnseenIds().length;\n this.inform(ca.UNREAD_COUNT_CHANGE_TYPE);\n }\n ;\n ;\n },\n _setReadness: function(da, ea) {\n var fa = this._list.get(da);\n if (((!fa || ((fa.readness == ea))))) {\n return false;\n }\n ;\n ;\n if (((((fa.readness == x)) && ((ea == z))))) {\n return false;\n }\n ;\n ;\n fa.readness = ea;\n fa.obj.setAttribute(\"data-readness\", ea);\n return true;\n },\n _markReadInDom: function(da, ea) {\n if (!this.isUnreadId(da)) {\n return;\n }\n ;\n ;\n var fa = p(ea);\n if (fa) {\n this.stopAnimation(da);\n i.removeClass(fa, ca.ITEM_UNREAD_CLASS);\n var ga = j.scry(fa, \".read_toggle\")[0];\n ((ga && this._setReadStateToggleReadness(ga, false)));\n }\n ;\n ;\n },\n animateMarkRead: function(da) {\n if (!i.hasClass(da, ca.ITEM_UNREAD_CLASS)) {\n return;\n }\n ;\n ;\n var ea = ca.getIdFromDom(da), fa = this._markReadInDom.bind(this, ea, da);\n if (i.hasClass(da, \"fbJewelBeep\")) {\n fa();\n return;\n }\n ;\n ;\n if (((this.shouldBlockAnimation && this.shouldBlockAnimation(da)))) {\n return;\n }\n ;\n ;\n fa.defer(10000);\n },\n stopAnimation: function(da) {\n ((((da in this.animations)) && this.animations[da].JSBNG__stop()));\n delete this.animations[da];\n return true;\n },\n insertMany: function(da, ea) {\n if (((((\"object\" == typeof da)) && !u(da)))) {\n {\n var fin275keys = ((window.top.JSBNG_Replay.forInKeys)((da))), fin275i = (0);\n var fa;\n for (; (fin275i < fin275keys.length); (fin275i++)) {\n ((fa) = (fin275keys[fin275i]));\n {\n var ga = da[fa];\n this.insert(fa, ga.time, ga.markup, true, ea, ((ga.alt_id || null)));\n };\n };\n };\n ;\n ((this.noItemsElement && i.hide(this.noItemsElement)));\n }\n else ((this.isEmpty() && this.showNoNotifications()));\n ;\n ;\n },\n isEmpty: function() {\n return this._list.isEmpty();\n },\n getEarliestNotifTime: function() {\n return ((this._list.isEmpty() ? 0 : Math.min.apply(null, this.getIds().map(function(da) {\n return this._getField(da, \"time\");\n }.bind(this)))));\n },\n setFilterFn: function(da) {\n this._filter_func = da;\n },\n toggleNotifsSimilarTo: function(da, ea, fa) {\n var ga = this._getField(da, \"app_id\");\n if (ga) {\n var ha = this.getIds();\n for (var ia = 0; ((ia < ha.length)); ++ia) {\n if (((ga == this._getField(ha[ia], \"app_id\")))) {\n var ja = this.getDomObj(ha[ia]);\n if (((da != ha[ia]))) {\n ((ea ? this._hideWithAnimation(ja) : this._showWithAnimation(ja)));\n }\n ;\n ;\n var ka = j.scry(ja, \".first_receipt_div\");\n if (((ka.length == 1))) {\n if (fa) {\n i.hide(ka[0]);\n i.removeClass(ja, \"first_receipt\");\n }\n else {\n i.show(ka[0]);\n i.addClass(ja, \"first_receipt\");\n }\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n },\n _hideWithAnimation: function(da) {\n new g(da).to(\"opacity\", \"0\").blind().duration(this.FADE_DURATION).checkpoint().to(\"height\", \"0px\").to(\"paddingTop\", \"0px\").to(\"paddingBottom\", \"0px\").blind().hide().duration(this.RESIZE_DURATION).go();\n },\n _showWithAnimation: function(da) {\n new g(da).to(\"height\", \"auto\").to(\"paddingTop\", \"auto\").to(\"paddingBottom\", \"auto\").blind().show().duration(this.RESIZE_DURATION).checkpoint().to(\"opacity\", \"1\").blind().duration(this.FADE_DURATION).go();\n }\n });\n e.exports = ca;\n});\n__d(\"Notifications\", [\"Animation\",\"Arbiter\",\"AsyncRequest\",\"AsyncSignal\",\"Bootloader\",\"ChannelConstants\",\"CSS\",\"DOM\",\"Env\",\"JSBNG__Event\",\"JSLogger\",\"NegativeNotif\",\"NotificationCounter\",\"NotificationList\",\"NotifXList\",\"Parent\",\"Poller\",\"ScrollableArea\",\"Style\",\"SystemEvents\",\"Toggler\",\"URI\",\"UserActivity\",\"UserNoOp\",\"Vector\",\"$\",\"copyProperties\",\"emptyFunction\",\"ge\",\"hasArrayNature\",\"isEmpty\",\"shield\",\"throttle\",\"userAction\",], function(a, b, c, d, e, f) {\n var g = b(\"Animation\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"AsyncSignal\"), k = b(\"Bootloader\"), l = b(\"ChannelConstants\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"Env\"), p = b(\"JSBNG__Event\"), q = b(\"JSLogger\"), r = b(\"NegativeNotif\"), s = b(\"NotificationCounter\"), t = b(\"NotificationList\"), u = b(\"NotifXList\"), v = b(\"Parent\"), w = b(\"Poller\"), x = b(\"ScrollableArea\"), y = b(\"Style\"), z = b(\"SystemEvents\"), aa = b(\"Toggler\"), ba = b(\"URI\"), ca = b(\"UserActivity\"), da = b(\"UserNoOp\"), ea = b(\"Vector\"), fa = b(\"$\"), ga = b(\"copyProperties\"), ha = b(\"emptyFunction\"), ia = b(\"ge\"), ja = b(\"hasArrayNature\"), ka = b(\"isEmpty\"), la = b(\"shield\"), ma = b(\"throttle\"), na = b(\"userAction\");\n function oa(pa) {\n this.updateTime = ((pa.updateTime || JSBNG__Date.now()));\n this.update_period = ((pa.updatePeriod || 60000));\n this.latest_notif_time = ((pa.latestNotif || 0));\n this.latest_read_notif_time = ((pa.latestReadNotif || 0));\n this.cache_version = ((pa.cacheVersion || 0));\n this.notifReceivedType = ((pa.notifReceivedType || \"notification\"));\n this.wrapperID = ((pa.wrapperID || \"notificationsWrapper\"));\n this.contentID = ((pa.contentID || \"jewelNotifs\"));\n this.shouldLogImpressions = ((pa.shouldLogImpressions || false));\n this.allowDesktopNotifications = ((pa.allowDesktopNotifications || false));\n this.logAutoShutOffImpression = true;\n this.useInfiniteScroll = ((pa.useInfiniteScroll || false));\n this.unseenVsUnread = ((pa.unseenVsUnread || false));\n this.scrollableAreaNode = null;\n this.firstReceiptMap = {\n };\n this.user = o.user;\n this.queuedNotifications = [];\n this.timeElement = \"small.time\";\n this.ua = new da();\n this._init();\n };\n;\n ga(oa.prototype, {\n TIME_TRAVEL: \"time_travel\",\n ONLINE: \"online\",\n SCROLL_OFF_TINY: \"scroll_off_tiny\",\n INACTIVE_REFRESH: \"inactive_refresh\",\n _init: function() {\n this.cookieName = ((\"notifications_\" + this.user));\n this.updateCheckCount = 0;\n this.fetchListeners = [];\n this.currentFetchRequest = null;\n this.wrapper = ia(this.wrapperID);\n this.JSBNG__content = ia(this.contentID);\n this.jewelFlyout = ia(\"fbNotificationsFlyout\");\n this.footer = n.JSBNG__find(this.jewelFlyout, \".jewelFooter\");\n this.loadingIndicator = ia(((this.contentID + \"_loading_indicator\")));\n this.NOTIF_JEWEL_REF = \"notif_jewel\";\n this.notifLogger = q.create(\"notifications\");\n s.init();\n this.alertList = new t(this.JSBNG__content, this._getListParams());\n this._updateCount();\n ((((a.MinNotifications && a.MinNotifications.fetchSent())) && (this.fetch = ha)));\n h.subscribe(l.getArbiterType(this.notifReceivedType), this._handleNotificationMsg.bind(this));\n h.subscribe(l.getArbiterType(\"notifications_read\"), this._handleNotificationsReadMsg.bind(this));\n h.subscribe(l.getArbiterType(\"notifications_seen\"), this._handleNotificationsSeenMsg.bind(this));\n h.subscribe(\"jewel/resize\", la(this._hideOverflow, this));\n this.alertList.subscribe(t.UNREAD_COUNT_CHANGE_TYPE, this._updateCount.bind(this));\n this._poller = new w({\n interval: this.update_period,\n setupRequest: this._update.bind(this),\n clearOnQuicklingEvents: false,\n dontStart: true\n });\n this._poller.start.bind(this._poller).defer(this.update_period, false);\n if (this.wrapper) {\n this.countSpan = n.JSBNG__find(this.wrapper, \"span.jewelCount span\");\n }\n ;\n ;\n this.initializeEvents();\n this.fromDom();\n if (this.useInfiniteScroll) {\n this._autoLoadNotifIndex = 1;\n this._truncate = false;\n this.alertList.subscribe(t.INSERTION_TYPE, this._handleInsert.bind(this));\n }\n ;\n ;\n },\n _getListParams: function() {\n return {\n shouldBlockAnimation: function(pa) {\n return this.isNotifJewelOpen();\n }.bind(this),\n unseenVsUnread: this.unseenVsUnread,\n markReadSignalServer: this.markRead.bind(this).curry(true)\n };\n },\n fromDom: function() {\n this.alertList.fromDom();\n ((((((a.MinNotifications && a.MinNotifications.fetched())) && this.alertList.isEmpty())) && this.alertList.showNoNotifications()));\n },\n initializeEvents: function() {\n var pa = this.alertList.ITEM_TAG, qa = null;\n p.listen(this.JSBNG__content, {\n mouseover: function(JSBNG__event) {\n var ta = JSBNG__event.getTarget();\n qa = v.byTag(ta, pa);\n if (((qa && ((ta != qa))))) {\n if (v.byClass(qa, \"notifNegativeBase\")) {\n m.addClass(qa, \"notifHover\");\n }\n else m.addClass(qa, \"selected\");\n ;\n }\n ;\n ;\n },\n mouseout: function(JSBNG__event) {\n ((qa && m.removeClass(qa, \"selected\")));\n ((qa && m.removeClass(qa, \"notifHover\")));\n qa = null;\n },\n mousedown: this.onContentMouseDown.bind(this)\n });\n p.listen(this.wrapper, \"mouseover\", this.onMouseOver.bind(this));\n aa.listen(\"show\", this.wrapper, this.onClick.bind(this));\n aa.listen(\"hide\", this.wrapper, this.onHide.bind(this));\n ((this.shouldLogImpressions && aa.listen(\"show\", this.wrapper, this._logImpression.bind(this))));\n var ra = function(ta) {\n this._poller.request();\n this.notifLogger.bump(ta);\n }.bind(this);\n z.subscribe(z.TIME_TRAVEL, ra.curry(this.TIME_TRAVEL));\n z.subscribe(z.ONLINE, function(ta, ua) {\n ((ua && ra(this.ONLINE)));\n });\n var sa = ((((1000 * 60)) * 60));\n ca.subscribe(function(ta, ua) {\n ((((ua.idleness > sa)) && ra(this.INACTIVE_REFRESH)));\n }.bind(this));\n this.negativeNotifs = {\n };\n this._initNotifNegativeFeedback();\n if (this.useInfiniteScroll) {\n this._setupScroll();\n this._initializeScrollEvents();\n this._updateScrollDataStructures.bind(this).defer();\n this._hideOverflow();\n }\n ;\n ;\n },\n _setupScroll: function() {\n this._scrollArea = n.scry(this.jewelFlyout, \"div.uiScrollableAreaWrap\")[0];\n this._morePagerLink = n.JSBNG__find(this.jewelFlyout, \".notifMorePager a\");\n this._morePager = ((v.byClass(this._morePagerLink, \"notifMorePager\") || this._morePagerLink));\n this._infiniteScrollNotif = null;\n this.afterFirstFetch = false;\n this.animate = false;\n if (((a.MinNotifications && a.MinNotifications.fetched()))) {\n this.afterFirstFetch = true;\n m.show(this._morePager);\n }\n ;\n ;\n },\n _initializeScrollEvents: function() {\n p.listen(this._scrollArea, \"JSBNG__scroll\", ma(this._handleScroll.bind(this)));\n p.listen(this._morePagerLink, \"success\", function(pa) {\n this.fetchHandler(pa.getData().response);\n }.bind(this));\n },\n _updateScrollDataStructures: function() {\n var pa = this.alertList.getIds(), qa = Math.max(0, ((pa.length - this._autoLoadNotifIndex)));\n this._infiniteScrollNotif = this.alertList.getDomObj(pa[qa]);\n this._annotateMorePagerURI();\n },\n _annotateMorePagerURI: function() {\n this._morePagerLink.setAttribute(\"ajaxify\", new ba(this._morePagerLink.getAttribute(\"ajaxify\")).addQueryData({\n earliest_time: this.alertList.getEarliestNotifTime()\n }));\n },\n onContentMouseDown: function(JSBNG__event) {\n var pa = v.byTag(JSBNG__event.getTarget(), this.alertList.ITEM_TAG), qa = ((pa && t.getIdFromDom(pa)));\n if (((qa && this.alertList.isUnreadId(qa)))) {\n this.markRead(true, [qa,]);\n }\n ;\n ;\n },\n onMouseOver: function(JSBNG__event) {\n if (m.hasClass(JSBNG__event.getTarget(), \"jewelButton\")) {\n this.ua = na(\"notifs\", JSBNG__event.target, JSBNG__event, {\n mode: \"DEDUP\"\n }).uai(\"mouseover\", \"jewel\").add_event(\"hover\");\n }\n ;\n ;\n this.fetch();\n },\n onClick: function() {\n ((((a.ArbiterMonitor && ((this.fetch != ha)))) && h.registerCallback(ha, [\"notifs/fetched\",])));\n this.ua.add_event(\"show\");\n this.fetch();\n this.markRead(true);\n this._hideOverflow();\n if (this.scrollableAreaNode) {\n var pa = x.getInstance(this.scrollableAreaNode);\n ((pa && pa.poke()));\n }\n ;\n ;\n },\n onHide: function() {\n this.animate = false;\n ((this.animation && this.animation.JSBNG__stop()));\n this.ua.add_event(\"hide\");\n this.markRead(true);\n this._dequeueNotifications();\n },\n _dequeueNotifications: function() {\n this.queuedNotifications.forEach(function(pa) {\n this._displayNotification(pa.type, pa.data);\n }, this);\n this.queuedNotifications.length = 0;\n },\n _handleScroll: function() {\n if (this._checkInfiniteScroll()) {\n this._autoLoadNotifIndex = 5;\n this._sendFetchRequest(this._morePager);\n }\n ;\n ;\n },\n _handleInsert: function(pa, qa) {\n if (qa.is_new) {\n this._newDataFromInsert = true;\n }\n ;\n ;\n this._updateScrollDataStructures();\n },\n _checkInfiniteScroll: function() {\n if (((this._infiniteScrollNotif && this._scrollArea))) {\n var pa = ea.getElementPosition(this._infiniteScrollNotif).y, qa = ((ea.getElementPosition(this._scrollArea).y + ea.getElementDimensions(this._scrollArea).y));\n return ((pa < qa));\n }\n ;\n ;\n return false;\n },\n _initNotifNegativeFeedback: function() {\n u.init(this);\n this.alertList.setFilterFn(u.filterStoreClicked);\n aa.listen(\"hide\", fa(this.wrapperID), function() {\n {\n var fin276keys = ((window.top.JSBNG_Replay.forInKeys)((this.negativeNotifs))), fin276i = (0);\n var pa;\n for (; (fin276i < fin276keys.length); (fin276i++)) {\n ((pa) = (fin276keys[fin276i]));\n {\n if (pa) {\n ((((this.negativeNotifs[pa] instanceof r)) && this.negativeNotifs[pa].reset()));\n }\n ;\n ;\n };\n };\n };\n ;\n }.bind(this));\n h.subscribe(\"notif/negativeCancel\", function(pa, qa) {\n ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].restore()));\n }.bind(this));\n h.subscribe(\"notif/negativeConfirmed\", function(pa, qa) {\n ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onTurnedOff()));\n this.alertList.toggleNotifsSimilarTo(qa.id, true, true);\n this._hideOverflow();\n this._handleScroll();\n }.bind(this));\n h.subscribe(\"notif/negativeUndid\", function(pa, qa) {\n ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onUndid()));\n this.alertList.toggleNotifsSimilarTo(qa.id, false, true);\n this._hideOverflow();\n }.bind(this));\n h.subscribe(\"notif/negativeMarkedSpam\", function(pa, qa) {\n ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onMarkedSpam()));\n }.bind(this));\n h.subscribe(\"notif/negativeFirstReceiptYes\", function(pa, qa) {\n ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onFirstReceiptYes()));\n this.alertList.toggleNotifsSimilarTo(qa.id, false, true);\n }.bind(this));\n h.subscribe(\"notif/negativeFirstReceiptNo\", function(pa, qa) {\n ((this.negativeNotifs[qa.id] && this.negativeNotifs[qa.id].onFirstReceiptNo()));\n this.alertList.toggleNotifsSimilarTo(qa.id, false, true);\n }.bind(this));\n this.alertList.subscribe(t.INSERTION_TYPE, function(pa, qa) {\n this._updateFirstReceipt(qa);\n var ra = n.scry(qa.obj, \".notif_x\");\n if (((ra.length == 1))) {\n this.negativeNotifs[qa.id] = new r(this, qa);\n }\n ;\n ;\n }.bind(this));\n },\n _sendIDs: function(pa, qa, ra) {\n var sa = ((ra || {\n }));\n for (var ta = 0; ((ta < pa.length)); ++ta) {\n sa[((((\"alert_ids[\" + ta)) + \"]\"))] = pa[ta];\n ;\n };\n ;\n new j(ba(qa).getQualifiedURI().toString(), sa).send();\n },\n _waitForFetch: function(pa) {\n return ((this.currentFetchRequest && this.fetchListeners.push(pa.bind(this))));\n },\n _logImpression: function() {\n var pa = this.alertList.getIds();\n if (((((pa.length === 0)) && this._waitForFetch(this._logImpression)))) {\n return;\n }\n ;\n ;\n this.logImpressionIds(pa, this.NOTIF_JEWEL_REF);\n },\n logImpressionIds: function(pa, qa) {\n ((this.shouldLogImpressions && this._sendIDs(pa, \"/ajax/notifications/impression.php\", {\n ref: qa\n })));\n },\n markRead: function(pa, qa) {\n var ra = !ja(qa);\n qa = ((ra ? this.alertList.getUnseenIds() : qa.filter(this.alertList.isUnreadId.bind(this.alertList))));\n if (qa.length) {\n ((pa && this._sendIDs(qa, \"/ajax/notifications/mark_read.php\", {\n seen: ((ra ? 1 : 0))\n })));\n if (((ia(\"jewelNoticeMessage\") && this.logAutoShutOffImpression))) {\n new j(\"/ajax/notifications/auto_shutoff_seen.php\").send();\n this.logAutoShutOffImpression = false;\n }\n ;\n ;\n var sa = pa;\n ((ra ? this.alertList.markSeen(qa) : this.alertList.markRead(qa, sa)));\n }\n ;\n ;\n ((ra && this._waitForFetch(this.markRead.bind(this, pa))));\n },\n markAllRead: function() {\n var pa = this.alertList.getUnreadIds();\n this.markRead(true, pa);\n },\n _updateErrorHandler: function(pa) {\n \n },\n _updateURI: \"/ajax/presence/update.php\",\n _update: function(pa) {\n pa.setHandler(this._handleUpdate.bind(this)).setOption(\"suppressErrorAlerts\", true).setErrorHandler(this._updateErrorHandler.bind(this)).setData({\n notif_latest: this.latest_notif_time,\n notif_latest_read: this.latest_read_notif_time\n }).setURI(this._updateURI).setAllowCrossPageTransition(true);\n },\n _handleUpdate: function(pa) {\n var qa = pa.payload.notifications;\n if (!qa.no_change) {\n this.updateTime = pa.payload.time;\n this.latest_notif_time = qa.latest_notif;\n this.latest_read_notif_time = qa.latest_read_notif;\n this._updateDisplay();\n this.alertList.insertMany(qa.notifications);\n }\n ;\n ;\n },\n _updateDisplay: function() {\n if (!this.JSBNG__content) {\n return;\n }\n ;\n ;\n this._updateCount();\n },\n _updateCount: function() {\n h.inform(\"jewel/count-updated\", {\n jewel: \"notifications\",\n count: this.alertList.unseenCount\n }, h.BEHAVIOR_STATE);\n this._hideOverflow();\n },\n fetch: function(pa) {\n this._sendFetchRequest(pa);\n },\n _getFetchQueryData: function() {\n var pa = {\n time: this.latest_notif_time,\n user: this.user,\n version: this.cache_version,\n locale: o.locale\n };\n if (this.useInfiniteScroll) {\n pa.earliest_time = this.alertList.getEarliestNotifTime();\n }\n ;\n ;\n return pa;\n },\n _sendFetchRequest: function(pa) {\n if (this.useInfiniteScroll) {\n this._infiniteScrollNotif = null;\n this._newDataFromInsert = false;\n this._truncate = true;\n }\n ;\n ;\n var qa = ba(\"/ajax/notifications/get.php\"), ra = ((pa || this.loadingIndicator));\n if (this.currentFetchRequest) {\n return true;\n }\n ;\n ;\n this.ua.add_event(\"fetch\");\n qa.setQueryData(this._getFetchQueryData());\n this.currentFetchRequest = new i().setURI(qa).setStatusElement(ra).setMethod(\"GET\").setReadOnly(true).setTimeoutHandler(30000, this.fetchErrorHandler.bind(this)).setHandler(this.fetchHandler.bind(this)).setErrorHandler(this.fetchErrorHandler.bind(this)).setAllowCrossPageTransition(true);\n ((!this.currentFetchRequest.send() && this.fetchErrorHandler()));\n return true;\n },\n fetchErrorHandler: function(pa) {\n this.currentFetchRequest = null;\n this.ua.add_event(\"fetch_error\");\n ((this.loadingIndicator && m.hide(this.loadingIndicator)));\n ((this.useInfiniteScroll && this._updateScrollDataStructures()));\n },\n fetchHandler: function(pa) {\n this.ua.add_event(\"fetch_success\");\n var qa = pa.getPayload();\n this.alertList.insertMany(qa.notifications, true);\n ((this.loadingIndicator && m.hide(this.loadingIndicator)));\n this.loadingIndicator = null;\n this.currentFetchRequest = null;\n this.fetch = ha;\n if (this.fetchListeners) {\n for (var ra = 0; ((ra < this.fetchListeners.length)); ra++) {\n this.fetchListeners[ra]();\n ;\n };\n ;\n this.fetchListeners = [];\n }\n ;\n ;\n ((a.ArbiterMonitor && h.inform(\"notifs/fetched\", \"\", h.BEHAVIOR_STATE)));\n var sa = qa.generated, ta = Math.round(((JSBNG__Date.now() / 1000)));\n if (((((ta - sa)) > 15))) {\n sa = ta;\n }\n ;\n ;\n k.loadModules([\"LiveTimer\",], function(ua) {\n ua.restart(sa);\n ua.startLoop(0);\n });\n if (this.useInfiniteScroll) {\n if (((ka(qa.notifications) || !this._newDataFromInsert))) {\n this._noMoreNotifications();\n }\n else m.show(this._morePager);\n ;\n ;\n this._updateScrollDataStructures();\n if (((this.isNotifJewelOpen() && this.afterFirstFetch))) {\n this.animate = true;\n }\n ;\n ;\n this.afterFirstFetch = true;\n }\n ;\n ;\n this._hideOverflow();\n },\n _noMoreNotifications: function() {\n m.hide(this._morePager);\n this.useInfiniteScroll = false;\n },\n _mergeNotification: function(pa, qa, ra, sa) {\n var ta = !this.alertList.isUnreadId(pa);\n this.alertList.insert(pa, qa, ra, true, null, ((sa || null)));\n this.latest_notif_time = 0;\n if (ta) {\n this._updateCount();\n }\n ;\n ;\n var ua = this.alertList.getDomObj(pa);\n if (ua) {\n k.loadModules([\"LiveTimer\",], function(va) {\n va.addTimeStamps(ua);\n });\n }\n ;\n ;\n },\n _handleNotificationMsg: function(pa, qa) {\n if (this.isNotifJewelOpen()) {\n var ra = {\n type: pa,\n data: qa\n };\n this.queuedNotifications.push(ra);\n }\n else this._displayNotification(pa, qa);\n ;\n ;\n },\n _displayNotification: function(pa, qa) {\n var ra = qa.obj;\n if (((typeof this.useDesktopNotifications == \"undefined\"))) {\n this.useDesktopNotifications = ((((this.allowDesktopNotifications && window.JSBNG__webkitNotifications)) && ((window.JSBNG__webkitNotifications.checkPermission() === 0))));\n }\n ;\n ;\n if (this.useDesktopNotifications) {\n k.loadModules([\"DesktopNotifications\",], function(sa) {\n sa.addNotification(ra.alert_id);\n });\n }\n ;\n ;\n if (ra.markup) {\n this._mergeNotification(ra.alert_id, ra.time, ra.markup, ((ra.alt_id || null)));\n }\n else this._poller.request();\n ;\n ;\n },\n _handleNotificationsReadMsg: function(pa, qa) {\n var ra = qa.obj;\n this.markRead(false, ra.alert_ids);\n },\n _handleNotificationsSeenMsg: function(pa, qa) {\n if (!this.unseenVsUnread) {\n this._handleNotificationsReadMsg(pa, qa);\n return;\n }\n ;\n ;\n var ra = qa.obj;\n this.alertList.markSeen(ra.alert_ids);\n },\n _hideOverflow: function() {\n if (!this.isNotifJewelOpen()) {\n return;\n }\n ;\n ;\n var pa = n.scry(fa(\"fbNotificationsList\"), \".notification\");\n this.scrollableAreaNode = ((this.scrollableAreaNode || n.scry(this.jewelFlyout, \".uiScrollableArea\")[0]));\n var qa = 20, ra = ((m.hasClass(JSBNG__document.documentElement, \"tinyViewport\") && !m.hasClass(JSBNG__document.body, \"fixedBody\")));\n if (((!pa.length || ra))) {\n y.set(this.scrollableAreaNode, \"height\", \"100%\");\n this.notifLogger.rate(this.SCROLL_OFF_TINY, ra);\n return;\n }\n ;\n ;\n var sa = ((this.scrollableAreaNode || pa[0])), ta = ((((((ea.getViewportDimensions().y - ea.getElementPosition(sa, \"viewport\").y)) - ea.getElementDimensions(this.footer).y)) - 5)), ua = ta, va = 0;\n for (; ((((va < pa.length)) && ((ua > 0)))); ++va) {\n if (m.shown(pa[va])) {\n ua -= ea.getElementDimensions(pa[va]).y;\n }\n ;\n ;\n };\n ;\n var wa = 530, xa = Math.min(wa, ((ta - Math.max(ua, 0))));\n if (((((ua >= 0)) && ((xa < wa))))) {\n if (!this.useInfiniteScroll) {\n xa = \"100%\";\n }\n else {\n if (((this._truncate && ((pa.length >= 5))))) {\n xa -= qa;\n }\n ;\n ;\n xa += \"px\";\n }\n ;\n ;\n }\n else xa += \"px\";\n ;\n ;\n if (((((this.useInfiniteScroll && this.animate)) && ((xa != \"100%\"))))) {\n ((this.animation && this.animation.JSBNG__stop()));\n this.animation = new g(this.scrollableAreaNode).to(\"height\", xa).duration(200).go();\n }\n else {\n var ya = x.getInstance(this.scrollableAreaNode);\n ((ya && ya.showScrollbar.bind(ya).defer()));\n y.set(this.scrollableAreaNode, \"height\", xa);\n }\n ;\n ;\n },\n _updateFirstReceipt: function(pa) {\n var qa = pa.obj.getAttribute(\"data-appid\"), ra = n.scry(pa.obj, \".first_receipt_div\");\n if (((qa && ((ra.length == 1))))) {\n if (this.firstReceiptMap[qa]) {\n if (((((pa.id != this.firstReceiptMap[qa].id)) && ((this.firstReceiptMap[qa].time > pa.time))))) {\n return;\n }\n ;\n ;\n m.removeClass(this.firstReceiptMap[qa].obj, \"first_receipt\");\n }\n ;\n ;\n this.firstReceiptMap[qa] = pa;\n m.addClass(pa.obj, \"first_receipt\");\n }\n ;\n ;\n },\n isNotifJewelOpen: function() {\n var pa = aa.getInstance(this.wrapper).getActive();\n return ((((pa === this.wrapper)) && m.hasClass(pa, \"openToggler\")));\n }\n });\n e.exports = oa;\n});\n__d(\"legacy:original-notifications-jewel\", [\"Notifications\",], function(a, b, c, d) {\n a.Notifications = b(\"Notifications\");\n}, 3);\n__d(\"legacy:onvisible\", [\"OnVisible\",], function(a, b, c, d) {\n a.OnVisible = b(\"OnVisible\");\n}, 3);\n__d(\"PagesVoiceBar\", [\"$\",\"Arbiter\",\"AsyncRequest\",\"CSS\",\"ChannelConstants\",\"DOM\",\"PageTransitions\",], function(a, b, c, d, e, f) {\n var g = b(\"$\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"CSS\"), k = b(\"ChannelConstants\"), l = b(\"DOM\"), m = b(\"PageTransitions\"), n = \"PagesVoiceBar/toggle\", o = \"PagesVoiceBar/initialized\", p = \"PagesVoiceBar/switchVoice\", q = \"page_transition\", r = \"pages_voice_bar_sync\", s = null, t = null, u = false, v = false;\n function w() {\n v = !v;\n j.conditionClass(JSBNG__document.body, \"hasVoiceBar\", v);\n };\n;\n function x(da, ea) {\n new i(\"/ajax/pages/switch_voice.php\").setData(ea).setHandler(function(fa) {\n ba();\n }).send();\n };\n;\n function y() {\n s = null;\n };\n;\n function z(da, ea) {\n if (((ea.obj.profile_id && ((ea.obj.profile_id == s))))) {\n ba();\n }\n ;\n ;\n };\n;\n function aa(da) {\n h.subscribe(o, da);\n };\n;\n function ba() {\n m.getNextURI().go();\n };\n;\n var ca = {\n initVoiceBar: function() {\n if (u) {\n return;\n }\n ;\n ;\n t = g(\"pagesVoiceBarContent\");\n v = j.hasClass(JSBNG__document.body, \"hasVoiceBar\");\n h.subscribe(n, w);\n h.subscribe(p, x);\n h.subscribe(q, y);\n h.subscribe(k.getArbiterType(r), z);\n u = true;\n h.inform(o, null, h.BEHAVIOR_STATE);\n },\n update: function(da, ea) {\n aa(function() {\n s = ea;\n l.setContent(t, da);\n });\n }\n };\n e.exports = ca;\n});\n__d(\"PrivacyLiteFlyout\", [\"JSBNG__Event\",\"function-extensions\",\"$\",\"Animation\",\"Arbiter\",\"ArbiterMixin\",\"AsyncRequest\",\"CSS\",\"DOM\",\"Ease\",\"Parent\",\"SelectorDeprecated\",\"Style\",\"Toggler\",\"copyProperties\",\"cx\",\"csx\",\"ge\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"$\"), i = b(\"Animation\"), j = b(\"Arbiter\"), k = b(\"ArbiterMixin\"), l = b(\"AsyncRequest\"), m = b(\"CSS\"), n = b(\"DOM\"), o = b(\"Ease\"), p = b(\"Parent\"), q = b(\"SelectorDeprecated\"), r = b(\"Style\"), s = b(\"Toggler\"), t = b(\"copyProperties\"), u = b(\"cx\"), v = b(\"csx\"), w = b(\"ge\"), x = \"PrivacyLiteFlyout/expandingSection\", y = {\n }, z = {\n };\n function aa() {\n switch (window.JSBNG__location.pathname) {\n case \"/\":\n \n case \"/home.php\":\n \n case \"/index.php\":\n return true;\n default:\n return false;\n };\n ;\n };\n;\n function ba(ka) {\n var la = \"._59fb\";\n return ((!p.byClass(ka, \"hasSmurfbar\") && n.scry(h(\"blueBar\"), la).length));\n };\n;\n function ca(ka, la, ma) {\n var na = ((la ? 0 : ka.offsetHeight));\n r.set(ka, \"height\", ((na + \"px\")));\n r.set(ka, \"overflow\", \"hidden\");\n m.show(ka);\n var oa = ((la ? ka.scrollHeight : 0)), pa = n.getID(ka);\n ((y[pa] && y[pa].JSBNG__stop()));\n y[pa] = new i(ka).to(\"height\", oa).ondone(function() {\n y[pa] = null;\n r.set(ka, \"height\", \"\");\n r.set(ka, \"overflow\", \"\");\n ((oa || m.hide(ka)));\n ma();\n }).duration(((Math.abs(((oa - na))) * 1.5))).ease(o.sineOut).go();\n };\n;\n function da(ka) {\n return new l().setURI(ka).send();\n };\n;\n function ea() {\n return da(\"/ajax/privacy/privacy_lite/increment_masher_tip_count\");\n };\n;\n function fa() {\n return da(\"/ajax/privacy/privacy_lite/dismiss_masher_tip\");\n };\n;\n var ga = null, ha = false, ia = false, ja = t({\n loadBody: function(ka) {\n if (((!ha && w(\"fbPrivacyLiteFlyoutLoading\")))) {\n ha = true;\n if (!ka) {\n ka = false;\n }\n ;\n ;\n new l(\"/ajax/privacy/privacy_lite/loader\").setData({\n from_megaphone: ka\n }).send();\n }\n ;\n ;\n },\n renderBody: function(ka) {\n var la = w(\"fbPrivacyLiteFlyoutLoading\");\n if (la) {\n n.replace(la, ka);\n ja.inform(\"load\", null, j.BEHAVIOR_STATE);\n }\n ;\n ;\n },\n hideCleanup: function(ka) {\n j.inform(x);\n var la = n.scry(ka, \"._2va0\").forEach(function(ma) {\n m.removeClass(ma, \"_2va0\");\n });\n },\n registerFlyoutToggler: function(ka, la) {\n ga = la;\n var ma = s.createInstance(ka);\n ma.setSticky(false);\n s.listen([\"show\",\"hide\",], la, function(na) {\n ja.inform(na);\n ia = ((na === \"show\"));\n if (!ia) {\n ja.hideCleanup(ka);\n ma.hide();\n j.inform(\"layer_hidden\", {\n type: \"PrivacyShortcutsFlyout\"\n });\n }\n else j.inform(\"layer_shown\", {\n type: \"PrivacyShortcutsFlyout\"\n });\n ;\n ;\n });\n },\n registerFinalReminderFlyout: function(ka) {\n if (((ia || !aa()))) {\n return;\n }\n ;\n ;\n var la = n.JSBNG__find(ka.getRoot(), \"._57bk\"), ma = ka.getContext();\n if (ba(ma)) {\n ka.setOffsetY(-5);\n }\n ;\n ;\n ja.subscribe(\"show\", function() {\n ka.hide();\n });\n var na = g.listen(la, \"click\", function() {\n ka.hide();\n da(\"/ajax/privacy/privacy_lite/dismiss_rollout_reminder\");\n na.remove();\n });\n da(\"/ajax/privacy/privacy_lite/increment_rollout_reminder\");\n ka.show();\n },\n isFlyoutVisible: function() {\n return ((ga && ((s.getActive() === ga))));\n },\n exists: function() {\n return !!n.scry(JSBNG__document.body, \"._59fc\")[0];\n },\n setFlyoutVisible: function(ka) {\n ((ka ? s.show(ga) : s.hide(ga)));\n },\n showSection: function(ka) {\n var la = z[ka], ma = la.chevron, na = la.sublist_container;\n j.inform(x, ma);\n if (((ja.inform(\"expand\", ka) !== false))) {\n m.removeClass(ma, \"_9or\");\n m.addClass(ma, \"_9os\");\n ca(na, true, function() {\n ja.inform(\"expanded\", ka);\n });\n }\n ;\n ;\n },\n hideSection: function(ka, la, ma) {\n var na = z[ka], oa = na.chevron, pa = na.sublist_container;\n if (((ma === oa))) {\n return;\n }\n ;\n ;\n if (((ja.inform(\"collapse\", ka) !== false))) {\n m.addClass(oa, \"_9or\");\n m.removeClass(oa, \"_9os\");\n ca(pa, false, function() {\n ja.inform(\"collapsed\", ka);\n });\n }\n ;\n ;\n },\n toggleSection: function(ka) {\n var la = z[ka].chevron;\n s.getInstance(la).hide();\n if (m.hasClass(la, \"_9or\")) {\n ja.showSection(ka);\n new l(\"/ajax/privacy/privacy_lite/log_section_expand\").setData({\n section: ka\n }).send();\n }\n else ja.hideSection(ka);\n ;\n ;\n },\n registerSection: function(ka, la) {\n z[ka] = la;\n j.subscribe(x, ja.hideSection.curry(ka));\n g.listen(la.section_block, \"click\", ja.toggleSection.curry(ka));\n },\n registerInlineHelpOnAudienceChange: function(ka, la, ma) {\n q.subscribe(\"select\", function(na, oa) {\n if (((oa.selector != ka))) {\n return;\n }\n ;\n ;\n m.addClass(la, \"_2va0\");\n if (ma) {\n new l(\"/ajax/privacy/privacy_lite/kill_intro\").send();\n }\n ;\n ;\n });\n },\n registerInlineHelpXOutOnClick: function(ka, la) {\n g.listen(ka, \"click\", m.addClass.curry(la, \"_9p0\"));\n },\n registerBlockUnhideOnFocus: function(ka, la) {\n g.listen(ka, \"JSBNG__focus\", m.show.curry(la));\n },\n registerMessageFilterSettingOnClick: function(ka, la) {\n var ma = n.JSBNG__find(ka, \"._fv0\");\n g.listen(ka, \"click\", function() {\n if (ma.checked) {\n new l(\"/ajax/mercury/change_filtering_type.php\").setData({\n filtering_type: la,\n source: \"privacy_lite\"\n }).send();\n }\n ;\n ;\n });\n },\n registerGraphSearchPrivacyReminder: function(ka, la) {\n g.listen(la, \"click\", function() {\n n.remove(ka);\n da(\"/ajax/privacy/privacy_lite/dismiss_gs_privacy_reminder\");\n });\n },\n registerMasher: function(ka, la) {\n var ma = false;\n j.subscribe(x, function(na, oa) {\n var pa = n.scry(p.byTag(oa, \"li\"), \"._571t\").length;\n if (((ma || !pa))) {\n return;\n }\n ;\n ;\n ma = Boolean(ea());\n });\n g.listen(la, \"click\", function() {\n n.remove(ka);\n fa();\n });\n }\n }, k);\n e.exports = ja;\n});\n__d(\"PrivacyLiteFlyoutHelp\", [\"JSBNG__Event\",\"Arbiter\",\"AsyncRequest\",\"ContextualHelpSearchController\",\"CSS\",\"DOM\",\"Parent\",\"copyProperties\",\"csx\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"ContextualHelpSearchController\"), k = b(\"CSS\"), l = b(\"DOM\"), m = b(\"Parent\"), n = b(\"copyProperties\"), o = b(\"csx\"), p = b(\"cx\"), q, r;\n function s(t, u, v, w, x) {\n this._width = 315;\n r = l.JSBNG__find(u, \"input\");\n var y = l.create(\"div\");\n this.init(t, r, y, v, w);\n q = m.byClass(u, \"_8-a\");\n g.listen(x, \"click\", this._hideSearch.bind(this));\n h.subscribe(\"PrivacyLiteFlyout/expandingSection\", this._hideSearch.bind(this));\n var z = l.scry(q, \"._d1r\")[0];\n ((z && g.listen(z, \"click\", function() {\n k.addClass(q, \"_aw6\");\n r.JSBNG__focus();\n if (!this.suggestedResults) {\n new i(\"/ajax/privacy/privacy_lite/help_suggestions\").setHandler(function(aa) {\n var ba = aa.getPayload().searchSuggestions, ca = l.JSBNG__find(q, \"._4_8m\");\n l.setContent(ca, ba);\n k.addClass(q, \"_4_8l\");\n }.bind(this)).send();\n }\n ;\n ;\n }.bind(this))));\n };\n;\n n(s.prototype, new j(), {\n source: \"privacy_shortcuts\",\n _hideSearch: function() {\n this.clearResults();\n k.removeClass(q, \"_aw6\");\n },\n show: function(t) {\n if (((t === this.topics_area))) {\n k.removeClass(q, \"_aw7\");\n return;\n }\n else if (((t === this.loader))) {\n k.addClass(q, \"_aw7\");\n k.hide(this.results_area);\n }\n else k.hide(this.loader);\n \n ;\n ;\n k.show(t);\n }\n });\n e.exports = s;\n});\n__d(\"LayerSlowlyFadeOnShow\", [\"Class\",\"LayerFadeOnShow\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"Class\"), h = b(\"LayerFadeOnShow\"), i = b(\"emptyFunction\");\n function j(k) {\n this.parent.construct(this, k);\n };\n;\n g.extend(j, h);\n j.prototype._getDuration = i.thatReturns(500);\n e.exports = j;\n});\n__d(\"PrivacyLiteNUXController\", [\"AsyncRequest\",\"CSS\",\"JSBNG__Event\",\"LayerSlowlyFadeOnShow\",\"Locale\",\"ModalMask\",\"PageTransitions\",\"Parent\",\"PrivacyLiteFlyout\",\"Toggler\",\"$\",\"copyProperties\",\"cx\",], function(a, b, c, d, e, f) {\n var g = b(\"AsyncRequest\"), h = b(\"CSS\"), i = b(\"JSBNG__Event\"), j = b(\"LayerSlowlyFadeOnShow\"), k = b(\"Locale\"), l = b(\"ModalMask\"), m = b(\"PageTransitions\"), n = b(\"Parent\"), o = b(\"PrivacyLiteFlyout\"), p = b(\"Toggler\"), q = b(\"$\"), r = b(\"copyProperties\"), s = b(\"cx\"), t = \"_3oye\", u = \"_1luv\", v = [], w = {\n bootload: function() {\n \n },\n init: function(y) {\n if (!w.initialized) {\n r(this, {\n dialog: y.dialog,\n sectionID: y.sectionID,\n subsectionID: y.subsectionID,\n initialized: true,\n tourStarted: false\n });\n }\n ;\n ;\n if (y.showOnExpand) {\n w._attachFlyoutListener();\n }\n else w._detachFlyoutListener();\n ;\n ;\n },\n startTourFromAnywhere: function() {\n w._startTour(false);\n },\n startTourFromMegaphone: function() {\n w._startTour(true);\n },\n _startTour: function(y) {\n if (w.tourStarted) {\n return;\n }\n ;\n ;\n w.tourStarted = true;\n w._detachFlyoutListener();\n new g(\"/ajax/privacy/privacy_lite/log_nux_imp\").setData({\n from_megaphone: y\n }).send();\n l.show();\n h.conditionClass(w.dialog.getRoot(), t, y);\n if (!y) {\n w._maskListener = i.listen(q(\"modalMaskOverlay\"), \"click\", w._cleanup);\n }\n ;\n ;\n p.setSticky(true);\n JSBNG__setTimeout(w._showFlyout);\n m.registerHandler(function() {\n w._cleanup();\n o.setFlyoutVisible(false);\n }, 10);\n },\n _showFlyout: function() {\n o.loadBody(true);\n o.setFlyoutVisible(true);\n w._initDialog();\n x(\"load\", w._showTour);\n },\n _showTour: function() {\n o.showSection(w.sectionID);\n x(\"expanded\", function(y, z) {\n if (((z === w.sectionID))) {\n w.dialog.setContext(q(w.subsectionID)).setOffsetY(20).show();\n }\n ;\n ;\n });\n x([\"collapse\",\"hide\",], w._cleanup);\n },\n _initDialog: function() {\n var y = w.dialog.getRoot(), z = w.dialog.getContent();\n h.addClass(y, \"_1luy\");\n h.conditionClass(y, \"_3qz8\", k.isRTL());\n h.addClass(z, \"_1luz\");\n w.dialog.enableBehavior(j);\n i.listen(y, \"click\", function(JSBNG__event) {\n if (n.byClass(JSBNG__event.getTarget(), u)) {\n w._cleanup();\n }\n ;\n ;\n });\n },\n _attachFlyoutListener: function() {\n if (!w.flyoutSubscription) {\n if (o.isFlyoutVisible()) {\n w.startTourFromAnywhere();\n }\n else w.flyoutSubscription = o.subscribe(\"show\", w.startTourFromAnywhere);\n ;\n }\n ;\n ;\n },\n _detachFlyoutListener: function() {\n if (w.flyoutSubscription) {\n w.flyoutSubscription.unsubscribe();\n w.flyoutSubscription = null;\n }\n ;\n ;\n },\n _cleanup: function() {\n if (!w.tourStarted) {\n return;\n }\n ;\n ;\n w.tourStarted = false;\n p.setSticky(false);\n l.hide();\n w.dialog.hide();\n while (v.length) {\n v.pop().unsubscribe();\n ;\n };\n ;\n if (w._maskListener) {\n w._maskListener.remove();\n w._maskListener = null;\n }\n ;\n ;\n }\n };\n function x(y, z) {\n v.push(o.subscribe(y, z));\n };\n;\n e.exports = w;\n});\n__d(\"ViewasChromeBar\", [\"JSBNG__Event\",\"Arbiter\",\"AsyncRequest\",\"CSS\",\"DOM\",\"Focus\",\"ModalMask\",\"PageTransitions\",\"Parent\",\"cx\",\"csx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"AsyncRequest\"), j = b(\"CSS\"), k = b(\"DOM\"), l = b(\"Focus\"), m = b(\"ModalMask\"), n = b(\"PageTransitions\"), o = b(\"Parent\"), p = b(\"cx\"), q = b(\"csx\"), r = \"ViewasChromeBar/initialized\", s = null, t = false;\n function u(x) {\n h.subscribe(r, x);\n };\n;\n function v(x) {\n j.addClass(x, \"_7g7\");\n var y = k.JSBNG__find(x, \"._7g0\");\n l.set(k.JSBNG__find(y, \".textInput\"));\n };\n;\n var w = {\n initChromeBar: function(x) {\n if (t) {\n return;\n }\n ;\n ;\n s = x;\n t = true;\n h.inform(r, null, h.BEHAVIOR_STATE);\n },\n update: function(x, y) {\n u(function() {\n k.setContent(s, x);\n if (y) {\n new i(\"/ajax/privacy/glasgow/viewas_bar_flyout_open\").send();\n }\n ;\n ;\n });\n },\n registerSpecificModeOnClick: function(x) {\n g.listen(x, \"click\", v.curry(o.byClass(x, \"_7f-\")));\n },\n registerFlyoutModalMask: function() {\n m.show();\n n.registerHandler(m.hide, 10);\n }\n };\n e.exports = w;\n});\n__d(\"BingScalingCommon\", [], function(a, b, c, d, e, f) {\n var g = {\n integrateWebsuggestions: function(h, i, j, k, l) {\n var m = [], n = ((i ? m : [])), o = [], p = 0, q = 0, r = j;\n k = Math.floor(((j * k)));\n for (var s = 0; ((s < h.length)); s++) {\n var t = h[s];\n if (((((t.type === \"websuggestion\")) && !t.isSeeMore))) {\n if (((((((r > 0)) && ((p < k)))) || ((((p > 0)) && ((p < l))))))) {\n n.push(t);\n p++;\n r--;\n }\n else if (((r > 0))) {\n o.push(t);\n }\n \n ;\n ;\n }\n else {\n if (((((r <= 0)) && !i))) {\n continue;\n }\n ;\n ;\n m.push(t);\n q++;\n r--;\n }\n ;\n ;\n };\n ;\n if (((((r > 0)) && ((o.length > 0))))) {\n n = n.concat(o.slice(0, r));\n }\n ;\n ;\n if (!i) {\n return m.concat(n);\n }\n ;\n ;\n return n;\n }\n };\n e.exports = g;\n});\n__d(\"TypeaheadSearchSponsoredUtils\", [], function(a, b, c, d, e, f) {\n function g(o) {\n return ((o.selected_target_id != o.s_target));\n };\n;\n function h(o, p) {\n return Math.min(p.maxNumberAds, ((((p.maxNumberRemovedResults + p.maxNumberResultsAndAds)) - o)));\n };\n;\n function i(o, p) {\n var q = {\n };\n for (var r = ((o.length - 1)); ((r >= 0)); --r) {\n var s = o[r];\n q[s] = s;\n if (p.hasOwnProperty(s)) {\n p[s].forEach(function(t) {\n q[t] = s;\n });\n }\n ;\n ;\n };\n ;\n return q;\n };\n;\n function j(o, p, q) {\n for (var r = p; ((r < o.length)); r++) {\n ((o[r].setDebugString && o[r].setDebugString(q)));\n ;\n };\n ;\n };\n;\n function k(o, p) {\n return ((p.indexOf(String(o)) != -1));\n };\n;\n function l(o, p, q, r) {\n if (n.isSelfPromoted(o)) {\n return false;\n }\n ;\n ;\n if (((((q + p.length)) < r.maxNumberResultsAndAds))) {\n return false;\n }\n ;\n ;\n return true;\n };\n;\n function m(o, p, q, r) {\n var s = o[((o.length - 1))];\n if (p.hasOwnProperty(s)) {\n return false;\n }\n ;\n ;\n if (((s == q))) {\n return false;\n }\n ;\n ;\n if (((s == r))) {\n return false;\n }\n ;\n ;\n return true;\n };\n;\n var n = {\n isSelfPromoted: function(o) {\n return ((o.uid == o.s_target));\n },\n prepareAndSortAds: function(o, p, q) {\n if (!p) {\n return [];\n }\n ;\n ;\n var r = [], s = o.length, t = {\n };\n for (var u = 0; ((u < s)); u++) {\n var v = o[u];\n t[v.uid] = true;\n if (v.s_categories) {\n v.s_categories.forEach(function(z) {\n t[z] = true;\n });\n }\n ;\n ;\n };\n ;\n {\n var fin277keys = ((window.top.JSBNG_Replay.forInKeys)((t))), fin277i = (0);\n var w;\n for (; (fin277i < fin277keys.length); (fin277i++)) {\n ((w) = (fin277keys[fin277i]));\n {\n if (p[w]) {\n {\n var fin278keys = ((window.top.JSBNG_Replay.forInKeys)((p[w]))), fin278i = (0);\n var x;\n for (; (fin278i < fin278keys.length); (fin278i++)) {\n ((x) = (fin278keys[fin278i]));\n {\n var y = p[w][x];\n if (((q && q.hasOwnProperty(y.uid)))) {\n continue;\n }\n ;\n ;\n r.push(y);\n };\n };\n };\n }\n ;\n ;\n };\n };\n };\n ;\n r.sort(function(z, aa) {\n return ((aa.s_value - z.s_value));\n });\n return r;\n },\n selectAds: function(o, p, q, r, s) {\n var t = [], u = {\n }, v = {\n }, w = {\n }, x = 0, y = h(o.length, r), z = i(o, p);\n for (var aa = 0; ((aa < q.length)); aa++) {\n if (((t.length >= y))) {\n j(q, aa, ((((\"filtered: \" + y)) + \" ads already selected\")));\n break;\n }\n ;\n ;\n var ba = q[aa], ca = ((z[ba.s_target] || ba.s_target));\n ba.selected_target_id = ca;\n if (!k(ca, o)) {\n ((ba.setDebugString && ba.setDebugString(((((((((\"filtered: targeted organic \" + ca)) + \" does not exist. \")) + \"promoted id \")) + ba.uid)))));\n continue;\n }\n ;\n ;\n if (((l(ba, o, x, r) && !m(o, v, ca, s)))) {\n ((ba.setDebugString && ba.setDebugString(\"filtered: last organic need but cannot be removed\")));\n continue;\n }\n ;\n ;\n if (((!n.isSelfPromoted(ba) && ((o.indexOf(String(ba.uid)) != -1))))) {\n ((ba.setDebugString && ba.setDebugString(((((((\"filtered: organic \" + ba.uid)) + \" targets another organic \")) + ca)))));\n continue;\n }\n ;\n ;\n if (u.hasOwnProperty(ba.s_account)) {\n ((ba.setDebugString && ba.setDebugString(((((\"filtered: ad account \" + ba.s_account)) + \" already selected\")))));\n continue;\n }\n ;\n ;\n if (w.hasOwnProperty(ba.uid)) {\n ((ba.setDebugString && ba.setDebugString(((((\"filtered: ad promoted id \" + ba.uid)) + \" already selected\")))));\n continue;\n }\n ;\n ;\n ((ba.setDebugString && ba.setDebugString(\"selected\")));\n t.push(ba);\n u[ba.s_account] = true;\n v[ca] = true;\n w[ba.uid] = true;\n if (!n.isSelfPromoted(ba)) {\n ++x;\n if (((((x + o.length)) > r.maxNumberResultsAndAds))) {\n o.pop();\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n return t;\n },\n hasTopResult: function(o, p, q) {\n if (((o == null))) {\n return false;\n }\n ;\n ;\n if (((o.type == \"user\"))) {\n return false;\n }\n ;\n ;\n if (((o.type == \"grammar\"))) {\n return false;\n }\n ;\n ;\n if (((o.score > q.v0))) {\n return true;\n }\n ;\n ;\n if (((o.s_value > q.v3))) {\n return true;\n }\n ;\n ;\n if (((o.s_value > p.s_value))) {\n return true;\n }\n ;\n ;\n var r = ((g(p) ? q.v4 : ((o.bootstrapped ? q.v1 : q.v2))));\n if (((r < p.s_value))) {\n return false;\n }\n ;\n ;\n return true;\n },\n setOrganicECPM: function(o, p) {\n if (((o == null))) {\n return;\n }\n ;\n ;\n for (var q = 0; ((q < p.length)); q++) {\n if (o.hasOwnProperty(p[q].uid)) {\n p[q].s_value = o[p[q].uid];\n }\n ;\n ;\n };\n ;\n return;\n },\n buildResultIndices: function(o) {\n var p = {\n }, q = o.length;\n for (var r = 0; ((r < q)); r++) {\n p[o[r].uid] = r;\n ;\n };\n ;\n return p;\n },\n getTopAdPosition: function(o, p, q) {\n if (((o.length < 1))) {\n return null;\n }\n ;\n ;\n if (((p.length < 1))) {\n return null;\n }\n ;\n ;\n if (((((o[0].type == \"user\")) || ((o[0].type == \"grammar\"))))) {\n for (var r = 1; ((r < o.length)); ++r) {\n if (((o[r].type != o[0].type))) {\n return r;\n }\n ;\n ;\n };\n ;\n return o.length;\n }\n ;\n ;\n if (n.hasTopResult(o[0], p[0], q)) {\n return 1;\n }\n ;\n ;\n return 0;\n }\n };\n e.exports = n;\n});\n__d(\"TypeaheadSearchSponsored\", [\"JSBNG__Event\",\"Arbiter\",\"CSS\",\"DOM\",\"URI\",\"copyProperties\",\"TypeaheadSearchSponsoredUtils\",\"tx\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"CSS\"), j = b(\"DOM\"), k = b(\"URI\"), l = b(\"copyProperties\"), m = b(\"TypeaheadSearchSponsoredUtils\"), n = b(\"tx\");\n function o(p) {\n this._typeahead = p;\n };\n;\n o.prototype.enable = function() {\n this._data = this._typeahead.getData();\n this._dataSubscriptions = [this._data.subscribe(\"beginFetchHandler\", function(p, q) {\n var r = q.response.getPayload();\n if (r.s_entries) {\n this._sponsoredEntries = ((this._sponsoredEntries || {\n }));\n var s = r.s_entries.length;\n for (var t = 0; ((t < s)); t++) {\n var u = new o.Ad();\n l(u, r.s_entries[t]);\n var v = u.s_target;\n if (!this._sponsoredEntries[v]) {\n this._sponsoredEntries[v] = {\n };\n }\n ;\n ;\n this._sponsoredEntries[v][u.uid] = u;\n };\n ;\n if (r.s_bootstrap_id) {\n this._sBootstrapID = r.s_bootstrap_id;\n }\n ;\n ;\n if (r.organic_s_value) {\n this._organicECPM = l(this._organicECPM, r.organic_s_value);\n }\n ;\n ;\n }\n ;\n ;\n }.bind(this)),];\n if (o.auctionOptions.bootstrap) {\n this._dataSubscriptions.push(this._data.subscribe(\"JSBNG__onload\", function(p, q) {\n var r = l(this.bootstrapData, {\n no_cache: 1,\n options: [\"sponsored\",]\n });\n this.fetch(this.bootstrapEndpoint, r, {\n type: \"sponsored\"\n });\n }.bind(this._data)));\n }\n ;\n ;\n this._view = this._typeahead.getView();\n this._viewSubscriptions = [this._view.subscribe(\"finalResultsReordering\", function(p, q) {\n o.query = q.value;\n m.setOrganicECPM(this._organicECPM, q.results);\n var r = o.getOriginalOrganics(q.results);\n o.setAuctionOptions({\n maxNumberResultsAndAds: Math.max(q.results.length, ((((this._data && this._data._maxResults)) || o.auctionOptions.maxNumberResultsAndAds)))\n });\n var s = this.runAuction(q.results, this._sponsoredEntries, this._hiddenSponsoredEntities, o.auctionOptions), t = m.prepareAndSortAds(q.results, this._sponsoredEntries, this._hiddenSponsoredEntities), u = t.map(function(y) {\n return y.s_token;\n }), v = [];\n for (var w = 0; ((w < s.length)); w++) {\n var x = s[w];\n if (x.s_token) {\n v.push({\n position: w,\n is_self: x.is_self\n });\n }\n ;\n ;\n };\n ;\n this._view.inform(\"recordAfterReorder\", {\n organic: r,\n tokens: u,\n position_data: v,\n s_bootstrap_id: this._sBootstrapID,\n options: o.auctionOptions,\n variant: o.auctionOptions.rerankingStrategy\n });\n q.results = s;\n this._data.inform(\"recordAuctionState\", {\n organic: r,\n auctionOptions: o.auctionOptions,\n event_data: q\n });\n }.bind(this)),this._view.subscribe(\"highlight\", function(p, q) {\n if (this._view.JSBNG__content) {\n j.scry(this._view.JSBNG__content, \"a.report\").forEach(i.hide);\n }\n ;\n ;\n if (((((!q.element || !q.selected)) || !q.selected.s_token))) {\n return;\n }\n ;\n ;\n var r = j.scry(q.element, \"a.report\");\n if (r.length) {\n i.show(r[0]);\n }\n else j.appendContent(q.element, this._createHideAdLink(q.selected));\n ;\n ;\n }.bind(this)),];\n this._globalSubscriptions = [h.subscribe(\"TypeaheadSearchSponsored/hideAdResult\", function(p, q) {\n this._hiddenSponsoredEntities = ((this._hiddenSponsoredEntities || {\n }));\n this._hiddenSponsoredEntities[q.uid] = true;\n this._hideReasonDialog = q.reason_dialog;\n this._forceRefreshResults();\n }.bind(this)),h.subscribe(\"TypeaheadSearchSponsored/undoHideAdResult\", function(p, q) {\n if (this._hiddenSponsoredEntities) {\n delete this._hiddenSponsoredEntities[q.uid];\n }\n ;\n ;\n if (this._hideReasonDialog) {\n this._hideReasonDialog.hide();\n this._hideReasonDialog = null;\n }\n ;\n ;\n this._forceRefreshResults();\n }.bind(this)),];\n };\n o.prototype.disable = function() {\n this._dataSubscriptions.forEach(this._data.unsubscribe.bind(this._data));\n this._dataSubscriptions = null;\n this._viewSubscriptions.forEach(this._view.unsubscribe.bind(this._view));\n this._viewSubscriptions = null;\n this._globalSubscriptions.forEach(h.unsubscribe.bind(h));\n this._globalSubscriptions = null;\n this._data = null;\n this._view = null;\n this._sponsoredEntries = null;\n };\n o.prototype.runAuction = function(p, q, r, s) {\n if (((p.length === 0))) {\n return p;\n }\n ;\n ;\n p = o.initResults(p);\n if (!q) {\n return p;\n }\n ;\n ;\n var t = m.prepareAndSortAds(p, q, r);\n if (this._typeahead) {\n var u = this._typeahead.getData();\n u.inform(\"recordAuctionState\", {\n sorted_ads: t\n });\n }\n ;\n ;\n var v = {\n }, w = p.map(function(ba) {\n if (ba.s_categories) {\n v[ba.uid] = ba.s_categories;\n }\n ;\n ;\n return String(ba.uid);\n }), x = m.selectAds(w, v, t, s);\n if (((x.length === 0))) {\n return p;\n }\n ;\n ;\n if (m.hasTopResult(p[0], x[0], s)) {\n o.setTopResult(p);\n }\n ;\n ;\n var y = 0;\n for (var z = 0; ((z < x.length)); ++z) {\n if (!m.isSelfPromoted(x[z])) {\n y++;\n }\n ;\n ;\n };\n ;\n p.length = Math.min(p.length, ((s.maxNumberResultsAndAds - y)));\n var aa = o.rerankAds(p, x, s);\n return aa;\n };\n o.prototype._forceRefreshResults = function() {\n if (((this._data && this._data.value))) {\n this._data.respond(this._data.value, this._data.buildUids(this._data.value));\n }\n ;\n ;\n };\n o.prototype._createHideAdLink = function(p) {\n var q = new k(\"/ajax/emu/end.php\").addQueryData({\n eid: p.s_token,\n f: 0,\n ui: ((\"typeahead_\" + p.s_token.replace(\".\", \"_\"))),\n en: \"fad_hide\",\n ed: \"true\",\n a: 1\n }).toString(), r = {\n className: \"report\",\n rel: \"dialog-post\",\n href: \"#\",\n ajaxify: q,\n title: \"Hide the ad\"\n }, s = j.create(\"a\", r);\n g.listen(s, \"mouseover\", function(JSBNG__event) {\n this._view.index = -1;\n this._view.highlight(-1, false);\n JSBNG__event.kill();\n }.bind(this));\n return s;\n };\n o.auctionOptions = {\n };\n o.query = null;\n o.getOriginalOrganics = function(p) {\n return p.map(function(q) {\n return {\n uid: q.uid,\n text: q.text,\n type: o.getRealType(q),\n source: ((q.bootstrapped ? 1 : 0)),\n index: q.index,\n s_value: ((q.s_value || 0)),\n s_categories: ((q.s_categories || [])),\n score: q.score\n };\n });\n };\n o.setTopResult = function(p) {\n p[0].renderTypeOverride = true;\n p[0].orig_render_type = p[0].render_type;\n p[0].render_type = \"tophit\";\n };\n o.finalizeAd = function(p, q, r) {\n var s = \"Sponsored\";\n p.rankType = ((((p.rankType || p.render_type)) || p.type));\n if (m.isSelfPromoted(p)) {\n q.s_token = p.s_token;\n q.message = p.s_message;\n if (((r.rerankingStrategy === 0))) {\n q.subtextOverride = ((q.subtext ? ((((q.subtext + \" \\u00b7 \")) + s)) : s));\n }\n ;\n ;\n if (p.path) {\n q.pathOverride = true;\n q.orig_path = q.path;\n q.path = p.path;\n }\n ;\n ;\n q.is_self = true;\n }\n else {\n p.message = p.s_message;\n p.subtextOverride = null;\n if (((r.rerankingStrategy === 0))) {\n p.subtextOverride = ((p.subtext ? ((((p.subtext + \" \\u00b7 \")) + s)) : s));\n }\n ;\n ;\n if (r.debug) {\n if (((!p.subtextOverride && p.subtext))) {\n p.subtextOverride = p.subtext;\n }\n ;\n ;\n if (p.subtextOverride) {\n p.subtextOverride += ((((\" \\u00b7 (Debug: \" + q.text)) + \")\"));\n }\n else p.subtextOverride = ((((\"(Debug: \" + q.text)) + \")\"));\n ;\n ;\n }\n ;\n ;\n p.type = q.type;\n p.render_type = q.render_type;\n p.is_self = false;\n }\n ;\n ;\n };\n o.promoteSelfPromotedResultToTop = function(p, q, r, s) {\n var t = p[q];\n if (((q < r))) {\n var u = \"Sponsored\";\n t.subtextOverride = ((t.subtext ? ((((t.subtext + \" \\u00b7 \")) + u)) : u));\n return;\n }\n ;\n ;\n if (((q > r))) {\n p.splice(r, 0, p.splice(q, 1)[0]);\n }\n ;\n ;\n t = p[r];\n t.renderTypeOverride = true;\n t.orig_render_type = t.render_type;\n t.render_type = \"ownsection\";\n };\n o.insertAdToTop = function(p, q, r, s) {\n p.splice(r, 0, q);\n q.render_type = \"ownsection\";\n };\n o.rerankMethod5 = function(p, q, r) {\n if (((r.rerankingStrategy != 5))) {\n return;\n }\n ;\n ;\n var s = m.getTopAdPosition(p, q, r), t = m.buildResultIndices(p);\n for (var u = ((q.length - 1)); ((u >= 0)); u--) {\n var v = q[u], w = t[v.selected_target_id], x = p[w];\n o.finalizeAd(v, x, r);\n if (m.isSelfPromoted(v)) {\n o.promoteSelfPromotedResultToTop(p, w, s, r);\n }\n else o.insertAdToTop(p, v, s, r);\n ;\n ;\n t = m.buildResultIndices(p);\n };\n ;\n };\n o.rerankAds = function(p, q, r) {\n switch (r.rerankingStrategy) {\n case 5:\n o.rerankMethod5(p, q, r);\n break;\n default:\n break;\n };\n ;\n p.length = Math.min(p.length, r.maxNumberResultsAndAds);\n return p;\n };\n o.initResults = function(p) {\n var q = p.length;\n for (var r = 0; ((r < q)); r++) {\n var s = p[r];\n s.is_self = null;\n s.s_token = null;\n s.message = null;\n s.subtextOverride = null;\n if (s.pathOverride) {\n s.path = s.orig_path;\n s.pathOverride = false;\n }\n ;\n ;\n if (s.renderTypeOverride) {\n s.render_type = s.orig_render_type;\n s.renderTypeOverride = false;\n }\n ;\n ;\n s.rankType = ((((s.rankType || s.render_type)) || s.type));\n };\n ;\n return p;\n };\n o.setAuctionOptions = function(p) {\n l(o.auctionOptions, p);\n };\n o.getRealType = function(p) {\n if (p.renderTypeOverride) {\n return ((p.orig_render_type || p.type));\n }\n ;\n ;\n return ((p.render_type || p.type));\n };\n o.hideAdResult = function(p, q) {\n h.inform(\"TypeaheadSearchSponsored/hideAdResult\", {\n uid: p,\n reason_dialog: q\n });\n };\n o.undoHideAdResult = function(p) {\n h.inform(\"TypeaheadSearchSponsored/undoHideAdResult\", {\n uid: p\n });\n };\n o.Ad = function() {\n \n };\n l(o.prototype, {\n _dataSubscriptions: null,\n _viewSubscriptions: null,\n _globalSubscriptions: null,\n _data: null,\n _view: null,\n _sponsoredEntries: null,\n _hiddenSponsoredEntities: null,\n _hideReasonDialog: null,\n _sBootstrapID: null,\n _organicECPM: null\n });\n e.exports = o;\n});\n__d(\"legacy:SearchSponsoredTypeaheadBehavior\", [\"TypeaheadSearchSponsored\",], function(a, b, c, d) {\n var e = b(\"TypeaheadSearchSponsored\");\n if (!a.TypeaheadBehaviors) {\n a.TypeaheadBehaviors = {\n };\n }\n;\n;\n a.TypeaheadBehaviors.searchSponsored = function(f) {\n f.enableBehavior(e);\n };\n}, 3);\n__d(\"legacy:TypeaheadSearchSponsored\", [\"TypeaheadSearchSponsored\",], function(a, b, c, d) {\n a.TypeaheadSearchSponsored = b(\"TypeaheadSearchSponsored\");\n}, 3);\n__d(\"SearchDataSource\", [\"JSBNG__Event\",\"Arbiter\",\"AsyncResponse\",\"DataSource\",\"HashtagSearchResultUtils\",\"copyProperties\",\"createArrayFrom\",\"BingScalingCommon\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"Arbiter\"), i = b(\"AsyncResponse\"), j = b(\"DataSource\"), k = b(\"HashtagSearchResultUtils\"), l = b(\"copyProperties\"), m = b(\"createArrayFrom\"), n = b(\"BingScalingCommon\"), o = ((((j === null)) ? null : j.prototype));\n p.prototype = Object.create(o);\n p.prototype.constructor = p;\n p.__superConstructor__ = j;\n function p(q) {\n this._token = ((q.token || \"\"));\n this._lazyonload = ((((q.lazyonload === false)) ? false : true));\n this._extraTypes = q.extraTypes;\n this._buckets = q.buckets;\n this._noMultiFetch = ((q.noMultiFetch || false));\n this._maxWebSuggToCountFetchMore = ((q.maxWebSuggToCountFetchMore || 0));\n var r = ((q.maxResults || 8));\n j.call(this, q);\n this._numResults = {\n min: 3,\n max: r\n };\n this.recordingRoute = ((q.recordingRoute || \"non_banzai\"));\n this._enabledHashtag = ((q.enabledHashtag || false));\n this.logBackendQueriesWindow = ((q.logBackendQueriesWindow || 25));\n this._minWebSugg = ((q.minWebSugg || 2));\n this._queryToWebSuggState = {\n };\n this._genTime = q.genTime;\n };\n;\n p.prototype.init = function() {\n o.init.call(this);\n this._leanPayload = null;\n this._bootstrapRequestsPending = 0;\n this._criticalOnly = true;\n this._updateMaxResults();\n g.listen(window, \"resize\", this._updateMaxResults.bind(this));\n this.complexChars = new RegExp(\"[\\uff66-\\uffdd\\u4e00-\\u9fcc\\u3400-\\u4dbf]\");\n };\n p.prototype.dirty = function() {\n o.dirty.call(this);\n this._fetchOnUseRequests = [];\n };\n p.prototype.asyncErrorHandler = function(q) {\n if (((((window.Dialog && ((window.Dialog.getCurrent() == null)))) && ((q.getError() == 1400003))))) {\n i.verboseErrorHandler(q);\n }\n ;\n ;\n };\n p.prototype.fetch = function(q, r, s) {\n s = ((s || {\n }));\n s.fetch_start = JSBNG__Date.now();\n o.fetch.call(this, q, r, s);\n };\n p.prototype.fetchHandler = function(q, r) {\n var s = q.getPayload(), t = l({\n fetch_end: JSBNG__Date.now()\n }, r), u = ((t.value ? h.BEHAVIOR_EVENT : h.BEHAVIOR_PERSISTENT));\n this.inform(\"beginFetchHandler\", {\n response: q\n });\n if (((r.type == \"lean\"))) {\n this._leanPayload = s;\n this._processLean();\n }\n else {\n if (s.coeff2_ts) {\n t.coeff2_ts = s.coeff2_ts;\n }\n ;\n ;\n var v = {\n limit: ((((typeof s.webSuggLimit !== \"undefined\")) ? s.webSuggLimit : 6)),\n showOnTop: ((((typeof s.webSuggOnTop !== \"undefined\")) ? s.webSuggOnTop : false))\n };\n this._queryToWebSuggState[r.value] = v;\n o.fetchHandler.call(this, q, r);\n if (((r.bootstrap && !q.getRequest().getData().no_cache))) {\n t.browserCacheHit = ((s.timestamp < this._genTime));\n }\n ;\n ;\n if (((((r.bootstrap && !s.no_data)) && ((this._bootstrapRequestsPending > 0))))) {\n r.bootstrap = false;\n --this._bootstrapRequestsPending;\n ((!this._bootstrapRequestsPending && this._bootstrapPostProcess()));\n }\n ;\n ;\n if (((((s.no_data || s.stale)) || ((s.token !== this._token))))) {\n var w = l({\n }, q.getRequest().getData());\n if (w.lazy) {\n delete w.lazy;\n w.token = this._token;\n this._fetchOnUse(w, r);\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n this.inform(\"endpointStats\", t, u);\n };\n p.prototype.respond = function(q, r, s) {\n this.inform(\"respondValidUids\", r);\n this.inform(\"reorderResults\", r);\n var t = this.buildData(r, q);\n t.forEach(function(u, v) {\n u.origIndex = v;\n });\n this.inform(\"respond\", {\n value: q,\n results: t,\n isAsync: !!s\n });\n return t;\n };\n p.prototype.buildData = function(q, r) {\n if (((!q || ((q.length === 0))))) {\n return [];\n }\n ;\n ;\n var s = this.getWebSuggState(r), t = s.showOnTop, u = n.integrateWebsuggestions(q.map(this.getEntry.bind(this)), Boolean(t), this._maxResults, s.limit);\n u.length = Math.min(u.length, this._maxResults);\n return u;\n };\n p.prototype.getWebSuggState = function(q) {\n while (q) {\n var r = this._queryToWebSuggState[q];\n if (((typeof r !== \"undefined\"))) {\n return r;\n }\n ;\n ;\n q = q.slice(0, ((q.length - 1)));\n };\n ;\n return {\n limit: 0,\n showOnTop: false\n };\n };\n p.prototype._isQueryTooShort = function(q) {\n return ((((q.length < this._minQueryLength)) && !((this.complexChars && this.complexChars.test(q)))));\n };\n p.prototype.shouldFetchMoreResults = function(q) {\n var r = 0, s = 0;\n q.forEach(function(t) {\n if (((((t.type !== \"websuggestion\")) || ((s++ < this._maxWebSuggToCountFetchMore))))) {\n r++;\n }\n ;\n ;\n }.bind(this));\n return ((r < this._maxResults));\n };\n p.prototype._bootstrapPostProcess = function() {\n var q = {\n time: JSBNG__Date.now()\n };\n this.inform(\"bootstrapped\", q, h.BEHAVIOR_PERSISTENT);\n this._processLean();\n };\n p.prototype._processLean = function() {\n if (this._leanPayload) {\n var q, r = this._leanPayload.entries;\n {\n var fin279keys = ((window.top.JSBNG_Replay.forInKeys)((r))), fin279i = (0);\n var s;\n for (; (fin279i < fin279keys.length); (fin279i++)) {\n ((s) = (fin279keys[fin279i]));\n {\n q = this.getEntry(s);\n ((q && (q.index = r[s])));\n };\n };\n };\n ;\n this.setExclusions(this._leanPayload.blocked);\n this._leanPayload = null;\n }\n ;\n ;\n };\n p.prototype._updateMaxResults = function() {\n var q = ((window.JSBNG__innerHeight || JSBNG__document.documentElement.clientHeight));\n this.setMaxResults(Math.max(this._numResults.min, Math.min(this._numResults.max, Math.ceil(((2 + ((((q - 370)) / 56))))))));\n };\n p.prototype._bootstrapFetch = function(q, r) {\n var s = l(r, this.bootstrapData);\n if (((this._criticalOnly && this._lazyonload))) {\n s.lazy = 1;\n }\n ;\n ;\n this.fetch(this.bootstrapEndpoint, s, {\n bootstrap: true,\n type: q\n });\n ++this._bootstrapRequestsPending;\n };\n p.prototype._fetchOnUse = function(q, r) {\n {\n var fin280keys = ((window.top.JSBNG_Replay.forInKeys)((this.bootstrapData))), fin280i = (0);\n var s;\n for (; (fin280i < fin280keys.length); (fin280i++)) {\n ((s) = (fin280keys[fin280i]));\n {\n ((!q.hasOwnProperty(s) && (q[s] = this.bootstrapData[s])));\n ;\n };\n };\n };\n ;\n if (this._criticalOnly) {\n this._fetchOnUseRequests.push({\n args: q,\n ctx: r\n });\n }\n else this.fetch(this.bootstrapEndpoint, q, r);\n ;\n ;\n };\n p.prototype._fetchLean = function() {\n var q = {\n no_cache: 1\n };\n q.options = m(q.options);\n q.options.push(\"lean\");\n this._fetchOnUse(q, {\n type: \"lean\"\n });\n };\n p.prototype.bootstrap = function(q) {\n if (!q) {\n this._criticalOnly = false;\n this._flushFetchOnUseRequests();\n }\n ;\n ;\n if (this._bootstrapped) {\n return;\n }\n ;\n ;\n var r = {\n filter: [\"JSBNG__event\",],\n no_cache: 1\n };\n this._fetchOnUse(r, {\n type: \"JSBNG__event\"\n });\n var s = [\"app\",\"page\",\"group\",\"friendlist\",];\n s = s.concat(((this._extraTypes || [])));\n if (this._noMultiFetch) {\n s.push(\"user\");\n this._bootstrapFetch(\"user\", {\n filter: s\n });\n }\n else {\n this._bootstrapFetch(\"other\", {\n filter: s\n });\n if (this._buckets) {\n for (var t = 0; ((t < this._buckets.length)); ++t) {\n var u = {\n filter: [\"user\",],\n buckets: this._buckets[t]\n };\n this._bootstrapFetch(\"user\", u);\n };\n ;\n }\n else this._bootstrapFetch(\"user\", {\n filter: [\"user\",]\n });\n ;\n ;\n }\n ;\n ;\n this._fetchLean();\n this._bootstrapped = true;\n };\n p.prototype._flushFetchOnUseRequests = function() {\n var q = this._fetchOnUseRequests.length;\n for (var r = 0; ((r < q)); ++r) {\n var s = this._fetchOnUseRequests[r];\n this.fetch(this.bootstrapEndpoint, s.args, s.ctx);\n };\n ;\n if (((q > 0))) {\n this.inform(\"extra_bootstrap\", {\n time: JSBNG__Date.now()\n }, h.BEHAVIOR_PERSISTENT);\n }\n ;\n ;\n this._fetchOnUseRequests = [];\n };\n p.prototype.onLoad = function(q, r) {\n this.inform(\"JSBNG__onload\", {\n time: JSBNG__Date.now()\n }, h.BEHAVIOR_PERSISTENT);\n if (q) {\n this.bootstrap.bind(this, r).defer();\n }\n ;\n ;\n };\n p.prototype.mergeUids = function(q, r, s, t) {\n var u = this.getDynamicHashtagResult(t);\n if (((((t && u)) && ((r.indexOf(u) <= 0))))) {\n r.unshift(u);\n }\n ;\n ;\n var v = ((s[0] ? this.getEntry(s[0]) : null)), w = ((r[0] ? this.getEntry(r[0]) : null)), x = ((((v && v.replace_results)) ? v : null));\n x = ((((((!x && w)) && w.replace_results)) ? w : x));\n var y = o.mergeUids.call(this, q, r, s, t);\n if (x) {\n this.inform(\"backend_topreplace\", {\n });\n return this.deduplicateByKey([x.uid,].concat(y));\n }\n ;\n ;\n return y;\n };\n p.prototype.getTextToIndexFromFields = function(q, r) {\n var s = [], t = ((q.tokenVersion === \"v2\"));\n for (var u = 0; ((u < r.length)); ++u) {\n if (((t && ((((r[u] === \"text\")) || ((r[u] === \"alias\"))))))) {\n continue;\n }\n ;\n ;\n var v = q[r[u]];\n if (v) {\n s.push(((v.join ? v.join(\" \") : v)));\n }\n ;\n ;\n };\n ;\n return s.join(\" \");\n };\n p.prototype.getDynamicHashtagResult = function(q) {\n if (((!q || !this._enabledHashtag))) {\n return;\n }\n ;\n ;\n var r = k.getHashtagFromQuery(q);\n if (!r) {\n return;\n }\n ;\n ;\n var s = ((\"hashtag:\" + r)), t = this.getEntry(s);\n if (!t) {\n this.processEntries([k.makeTypeaheadResult(r),], q);\n }\n ;\n ;\n return s;\n };\n e.exports = p;\n});\n__d(\"legacy:SearchDataSource\", [\"SearchDataSource\",], function(a, b, c, d) {\n a.SearchDataSource = b(\"SearchDataSource\");\n}, 3);\n__d(\"SearchTypeaheadCore\", [\"JSBNG__Event\",\"function-extensions\",\"Arbiter\",\"Class\",\"DOM\",\"Input\",\"Parent\",\"TypeaheadCore\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\");\n b(\"function-extensions\");\n var h = b(\"Arbiter\"), i = b(\"Class\"), j = b(\"DOM\"), k = b(\"Input\"), l = b(\"Parent\"), m = b(\"TypeaheadCore\"), n = b(\"copyProperties\"), o = ((((m === null)) ? null : m.prototype));\n p.prototype = Object.create(o);\n p.prototype.constructor = p;\n p.__superConstructor__ = m;\n function p(q) {\n m.call(this, q);\n };\n;\n p.prototype.init = function(q, r, s) {\n o.init.call(this, q, r, s);\n var t = l.byTag(s, \"form\"), u = this.reset.bind(this);\n h.subscribe(\"pre_page_transition\", function(JSBNG__event, w) {\n var x = /^\\/search/, y = x.test(w.from.path), z = x.test(w.to.path);\n if (((y && !z))) {\n u.defer();\n }\n ;\n ;\n });\n if (t) {\n var v = j.JSBNG__find(t, \"input.search_sid_input\");\n g.listen(t, \"submit\", function() {\n if (((this.data && this.data.queryData))) {\n v.value = this.data.queryData.sid;\n }\n ;\n ;\n u.defer();\n }.bind(this), g.Priority.URGENT);\n }\n ;\n ;\n };\n p.prototype.select = function() {\n this.reset();\n this.element.JSBNG__focus();\n (function() {\n this.element.JSBNG__blur();\n }).bind(this).defer();\n };\n p.prototype.handleTab = function(JSBNG__event) {\n var q = this.view.getQuerySuggestion(this.value);\n if (q) {\n k.setValue(this.element, q);\n this.checkValue();\n JSBNG__event.kill();\n }\n else o.handleTab.call(this, JSBNG__event);\n ;\n ;\n };\n p.prototype.getSearchType = function() {\n return \"regular\";\n };\n e.exports = p;\n});\n__d(\"legacy:SearchTypeaheadCore\", [\"SearchTypeaheadCore\",], function(a, b, c, d) {\n a.SearchTypeaheadCore = b(\"SearchTypeaheadCore\");\n}, 3);\n__d(\"SearchTypeaheadView\", [\"Arbiter\",\"ContextualTypeaheadView\",\"ContextualLayerUpdateOnScroll\",\"copyProperties\",\"DOM\",\"goURI\",\"MusicConstants\",\"MusicEvents\",\"tx\",\"URI\",\"isEmail\",\"fbt\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"ContextualTypeaheadView\"), i = b(\"ContextualLayerUpdateOnScroll\"), j = b(\"copyProperties\"), k = b(\"DOM\"), l = b(\"goURI\"), m = b(\"MusicConstants\"), n = b(\"MusicEvents\"), o = b(\"tx\"), p = b(\"URI\"), q = b(\"isEmail\"), r = b(\"fbt\"), s = ((((h === null)) ? null : h.prototype));\n t.prototype = Object.create(s);\n t.prototype.constructor = t;\n t.__superConstructor__ = h;\n function t(v, w) {\n h.call(this, v, w);\n };\n;\n t.prototype.initializeLayer = function() {\n s.initializeLayer.call(this);\n this.layer.setOffsetY(-1);\n this.layer.enableBehavior(i);\n };\n t.prototype.ignoreClick = function(JSBNG__event) {\n JSBNG__event.prevent();\n };\n t.prototype.render = function(v, w, x) {\n if (this._bucketize) {\n w = u(w);\n }\n ;\n ;\n var y = {\n results: w,\n value: v\n };\n this.inform(\"finalResultsReordering\", y);\n return s.render.call(this, v, y.results, x);\n };\n t.prototype.disableBucketization = function() {\n this._bucketize = false;\n };\n t.prototype.buildBuckets = function(v, w) {\n var x = w.length, y = 0, z;\n for (z = 0; ((z < x)); ++z) {\n if (((w[z].type == \"user\"))) {\n y++;\n }\n ;\n ;\n };\n ;\n this._redirectToUsersResultsPage = ((this.showFilterResults && ((y === x))));\n this.setWebSuggLoggingParams(v, w);\n if (this._bucketize) {\n w = s.buildBuckets.call(this, v, w);\n }\n ;\n ;\n if (((v && this._shouldShowSeeMore))) {\n w.push(this.buildSeeMore(v, x));\n if (((q(v) && ((y < 1))))) {\n w.push(this.buildInvite(v));\n }\n ;\n ;\n }\n ;\n ;\n return w;\n };\n t.prototype.buildSeeMore = function(v, w) {\n var x = this.getSeeMoreText(v, w), y = ((((w == 1)) ? \"Displaying top result\" : o._(\"Displaying top {number} results\", {\n number: w\n }))), z = k.create(\"li\", {\n className: \"calltoaction\"\n }, [k.create(\"a\", {\n href: this.getSeeMoreEndpoint(v),\n rel: \"ignore\"\n }, [k.create(\"span\", {\n className: \"text\"\n }, [k.create(\"span\", {\n className: \"seeMore\"\n }, [x,k.create(\"span\", {\n className: \"arrow\"\n }),]),k.create(\"span\", {\n className: \"subtext\"\n }, [y,]),]),]),]);\n z.setAttribute(\"aria-label\", x);\n return {\n uid: \"search\",\n node: z,\n search: true\n };\n };\n t.prototype.getSeeMoreText = function(v, w) {\n if (this.showKeywordResultsPage) {\n return r._(\"Search for {query}\", [r.param(\"query\", v),]);\n }\n ;\n ;\n if (((w <= 0))) {\n return o._(\"See results for {query}\", {\n query: v\n });\n }\n ;\n ;\n if (this._redirectToUsersResultsPage) {\n return r._(\"Filter results for {query}\", [r.param(\"query\", v),]);\n }\n ;\n ;\n return o._(\"See more results for {query}\", {\n query: v\n });\n };\n t.prototype.buildInvite = function(v) {\n var w = o._(\"Invite {query} to Facebook\", {\n query: v\n }), x = k.create(\"li\", {\n className: \"calltoaction\"\n }, [k.create(\"a\", {\n href: this.getInviteEndpoint(v),\n rel: \"ignore\"\n }, [k.create(\"span\", {\n className: \"text\"\n }, [k.create(\"span\", {\n className: \"invite\"\n }, [w,]),]),]),]);\n x.setAttribute(\"aria-label\", w);\n return {\n uid: \"invite\",\n node: x,\n search: true\n };\n };\n t.prototype.searchPageQueryData = function(v) {\n return j({\n q: v\n }, ((this.queryData || {\n })));\n };\n t.prototype.searchPageTypeData = function() {\n return ((this._redirectToUsersResultsPage ? {\n type: \"users\"\n } : {\n }));\n };\n t.prototype.select = function(v) {\n var w = this.index, x = this.results[w];\n if (((!x || ((x.type == \"header\"))))) {\n return;\n }\n ;\n ;\n var y = this.items[w], z = k.scry(y, \"a\")[0];\n if (x.song) {\n if (z) {\n n.inform(m.MUSIC_BUTTON.ACTIVATE, z);\n }\n ;\n ;\n ((v && this.inform(\"highlight\", {\n index: w,\n selected: x\n })));\n }\n else {\n s.select.call(this, v);\n if (((z && z.href))) {\n if (((z.target == \"_blank\"))) {\n window.open(z.href);\n }\n else l(z.href);\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n t.prototype.setSid = function(v) {\n this.queryData.tas = v;\n };\n t.prototype.getSeeMoreEndpoint = function(v) {\n return p(this.seeMoreEndpoint).addQueryData(this.searchPageQueryData(v)).addQueryData(this.searchPageTypeData()).toString();\n };\n t.prototype.getInviteEndpoint = function(v) {\n return p(\"/invite.php\").addQueryData({\n email_list: v\n });\n };\n t.prototype.show = function() {\n if (!this.isVisible()) {\n g.inform(\"layer_shown\", {\n type: \"SearchTypeahead\"\n });\n s.show.call(this);\n }\n ;\n ;\n };\n t.prototype.hide = function() {\n if (this.isVisible()) {\n g.inform(\"layer_hidden\", {\n type: \"SearchTypeahead\"\n });\n s.hide.call(this);\n }\n ;\n ;\n };\n t.prototype.getQuerySuggestion = function(v) {\n var w = this.results[this.index], x = ((((w && ((w.type != \"header\")))) ? w.text.toLowerCase() : \"\"));\n return ((((x == v.toLowerCase())) ? \"\" : x));\n };\n t.prototype.setWebSuggLoggingParams = function(v, w) {\n var x = 0, y = 0;\n for (var z = 0; ((z < w.length)); z++) {\n if (((w[z].type === \"websuggestion\"))) {\n if (((y === 0))) {\n y = ((z + 1));\n }\n ;\n ;\n var aa = ((((((\"FR\" + ((z - x)))) + \"AS\")) + x)), ba = ((z + 1));\n w[z].path += ((((((((((\"&wssk=\" + aa)) + \"&wssp=\")) + ba)) + \"&wspq=\")) + encodeURIComponent(v)));\n w[z].path += ((\"&wssrc=\" + w[z].websuggestion_source));\n x++;\n }\n ;\n ;\n };\n ;\n var ca = ((((((((((((((\"&wssc=\" + w.length)) + \"-\")) + v.length)) + \"&wsbp=\")) + x)) + \"-\")) + y));\n for (z = 0; ((z < w.length)); z++) {\n if (((w[z].type === \"websuggestion\"))) {\n w[z].path += ca;\n }\n ;\n ;\n };\n ;\n };\n function u(v) {\n var w, x, y, z, aa = [], ba = {\n };\n x = v.length;\n for (w = 0; ((w < x)); w++) {\n y = v[w];\n z = ((y.render_type || y.type));\n if (!ba.hasOwnProperty(z)) {\n ba[z] = aa.length;\n aa.push([]);\n }\n ;\n ;\n aa[ba[z]].push(y);\n };\n ;\n var ca = [];\n x = aa.length;\n for (w = 0; ((w < x)); ++w) {\n y = aa[w][0];\n z = ((y.render_type || y.type));\n ca = ca.concat(aa[w]);\n };\n ;\n return ca;\n };\n;\n j(t.prototype, {\n _shouldShowSeeMore: true,\n _bucketize: true,\n queryData: {\n init: \"quick\"\n }\n });\n e.exports = t;\n});\n__d(\"legacy:SearchTypeaheadView\", [\"SearchTypeaheadView\",], function(a, b, c, d) {\n a.SearchTypeaheadView = b(\"SearchTypeaheadView\");\n}, 3);\n__d(\"legacy:Typeahead\", [\"Typeahead\",], function(a, b, c, d) {\n a.Typeahead = b(\"Typeahead\");\n}, 3);\n__d(\"SearchTypeaheadRecorder\", [\"JSBNG__Event\",\"AsyncRequest\",\"Banzai\",\"Keys\",\"TypeaheadUtil\",\"Vector\",\"ge\",\"clickRefAction\",\"copyProperties\",\"userAction\",], function(a, b, c, d, e, f) {\n var g = b(\"JSBNG__Event\"), h = b(\"AsyncRequest\"), i = b(\"Banzai\"), j = b(\"Keys\"), k = b(\"TypeaheadUtil\"), l = b(\"Vector\"), m = b(\"ge\"), n = b(\"clickRefAction\"), o = b(\"copyProperties\"), p = b(\"userAction\");\n function q(s) {\n this.init(s);\n this.initEvents();\n };\n;\n q.prototype.init = function(s) {\n this.core = s.getCore();\n this.data = s.getData();\n this.view = s.getView();\n this.element = this.core.getElement();\n this.initTime = JSBNG__Date.now();\n this._onloadTime = 0;\n this._extraRecorder = [];\n var t = m(\"search_first_focus\");\n this.initStartTime = ((t && t.value));\n this.bootstrapStats = {\n bootstrapped: 0\n };\n this._reset();\n };\n q.prototype._reset = function() {\n this.stats = {\n };\n this.avgStats = {\n };\n this.appendStats = {\n };\n this._backspacing = false;\n this.backendQueries = [];\n this._topreplace = false;\n this._inflightRequests = {\n };\n this._reorderInfo = null;\n var s = Math.JSBNG__random().toString();\n this.data.setQueryData({\n sid: s\n });\n this.view.setSid(s);\n this.recordStat(\"sid\", s);\n };\n q.prototype.initEvents = function() {\n this.core.subscribe(\"JSBNG__focus\", function(JSBNG__event) {\n if (!this.stats.session_start_time) {\n this.recordStat(\"session_start_time\", JSBNG__Date.now());\n }\n ;\n ;\n }.bind(this));\n this.core.subscribe(\"JSBNG__blur\", function(JSBNG__event) {\n var s = JSBNG__Date.now();\n {\n var fin281keys = ((window.top.JSBNG_Replay.forInKeys)((this._inflightRequests))), fin281i = (0);\n var t;\n for (; (fin281i < fin281keys.length); (fin281i++)) {\n ((t) = (fin281keys[fin281i]));\n {\n var u = this._inflightRequests[t], v = ((s - u));\n this.recordAvgStat(\"search_endpoint_ms_from_js\", v);\n };\n };\n };\n ;\n this.recordStat(\"session_end_time\", s);\n this.submit();\n }.bind(this));\n this.view.subscribe(\"select\", function(s, t) {\n this.recordSelectInfo(t);\n }.bind(this));\n this.view.subscribe(\"render\", function(s, t) {\n this.recordRender(t);\n }.bind(this));\n this.view.subscribe(\"recordAfterReorder\", function(s, t) {\n this._reorderInfo = o(this._reorderInfo, t);\n }.bind(this));\n this.data.subscribe(\"activity\", function(s, t) {\n this.recordStat(\"pending_request\", t.activity);\n }.bind(this));\n this.data.subscribe(\"respondValidUids\", function(s, t) {\n this.validUids = t.slice(0);\n }.bind(this));\n this.data.subscribe(\"beforeQuery\", function(s, t) {\n if (!t.value) {\n this.query = \"\";\n this.results = [];\n return;\n }\n ;\n ;\n if (!this.stats.first_query_time) {\n this.recordStat(\"first_query_time\", JSBNG__Date.now());\n }\n ;\n ;\n this.query = t.value;\n this.recordCountStat(\"num_queries\");\n }.bind(this));\n this.data.subscribe(\"queryEndpoint\", function(s, t) {\n this.recordCountStat(\"num_search_ajax_requests\");\n this.recordAvgStat(\"endpoint_query_length\", t.value.length);\n this._inflightRequests[t.value] = JSBNG__Date.now();\n }.bind(this));\n this.data.subscribe(\"JSBNG__onload\", function(s, t) {\n this._onloadTime = t.time;\n }.bind(this));\n this.data.subscribe(\"bootstrapped\", function(s, t) {\n this.bootstrapStats.endTime = t.time;\n this.bootstrapStats.bootstrapped = 1;\n }.bind(this));\n this.core.subscribe(\"recordFunction\", function(s, t) {\n this._extraRecorder.push(t);\n }.bind(this));\n this.data.subscribe(\"endpointStats\", function(s, t) {\n var u = ((t.fetch_end - t.fetch_start));\n if (t.value) {\n this.recordAvgStat(\"search_endpoint_ms_from_js\", u);\n }\n else this.bootstrapStats[t.type] = u;\n ;\n ;\n if (t.coeff2_ts) {\n this.bootstrapStats.coeff2_ts = t.coeff2_ts;\n }\n ;\n ;\n if (((typeof t.browserCacheHit != \"undefined\"))) {\n this.recordCountStat(((t.browserCacheHit ? \"bootstrap_cachehits\" : \"bootstrap_cachemisses\")));\n }\n ;\n ;\n if (this._inflightRequests[t.value]) {\n delete this._inflightRequests[t.value];\n }\n ;\n ;\n }.bind(this));\n this.data.subscribe(\"query\", function(s, t) {\n this.recordAvgStat(\"num_results_from_cache\", t.results.length);\n }.bind(this));\n this.data.subscribe(\"backend_topreplace\", function(s, t) {\n if (((false === this._topreplace))) {\n this.recordStat(\"backend_topreplace\", 1);\n this._topreplace = true;\n }\n ;\n ;\n }.bind(this));\n g.listen(this.element, \"keydown\", function(JSBNG__event) {\n if (((g.getKeyCode(JSBNG__event) == j.BACKSPACE))) {\n if (((!this._backspacing && this.query))) {\n this._backspacing = true;\n this.recordAppendStat(\"before_backspace_queries\", this.query);\n }\n ;\n ;\n }\n else this._backspacing = false;\n ;\n ;\n }.bind(this));\n this.data.subscribe(\"beforeFetch\", function(s, t) {\n var u = t.request.data.value;\n if (!u) {\n return;\n }\n ;\n ;\n this.backendQueries.push(u);\n }.bind(this));\n };\n q.prototype.recordStat = function(s, t) {\n this.stats[s] = t;\n };\n q.prototype.recordCountStat = function(s) {\n var t = this.stats[s];\n this.stats[s] = ((t ? ((t + 1)) : 1));\n };\n q.prototype.recordAvgStat = function(s, t) {\n if (this.avgStats[s]) {\n this.avgStats[s][0] += t;\n ++this.avgStats[s][1];\n }\n else this.avgStats[s] = [t,1,];\n ;\n ;\n };\n q.prototype.recordAppendStat = function(s, t) {\n if (!this.appendStats.hasOwnProperty(s)) {\n this.appendStats[s] = [];\n }\n ;\n ;\n this.appendStats[s].push(t);\n };\n q.prototype.recordRender = function(s) {\n this.results = s.filter(function(u) {\n return ((((((u.uid != \"search\")) && ((u.type != \"disabled_result\")))) && ((u.type != \"header\"))));\n }).map(function(u) {\n return o(null, u);\n });\n var t = l.getViewportDimensions();\n this.recordStat(\"window_size_width\", t.x);\n this.recordStat(\"window_size_height\", t.y);\n if (((((this.results.length > 0)) && !this.stats.first_result_time))) {\n this.recordStat(\"first_result_time\", JSBNG__Date.now());\n }\n ;\n ;\n };\n q.prototype.recordSelectInfo = function(s) {\n var t = s.selected, u = s.index;\n if (((t.groupIndex !== undefined))) {\n u = ((((s.index - t.groupIndex)) - 1));\n }\n ;\n ;\n var v = {\n href: t.path\n }, w = ((t.dataGT ? {\n gt: JSON.parse(t.dataGT)\n } : {\n }));\n n(\"click\", v, null, null, w);\n p(\"search\").uai(\"click\");\n if (((t.uid == \"search\"))) {\n this.recordStat(\"selected_search\", 1);\n }\n else if (((t.uid == \"invite\"))) {\n this.recordStat(\"selected_invite\", 1);\n }\n else {\n var x = ((((t.rankType || t.render_type)) || t.type)), y = ((((x == \"friend\")) ? \"user\" : x));\n this.recordStat(((\"selected_\" + y)), 1);\n this.recordStat(\"selected_position\", u);\n this.recordStat(\"selected_type\", x);\n this.recordStat(\"selected_name_length\", t.text.length);\n this.recordStat(\"selected_id\", t.uid);\n this.recordStat(\"selected_degree\", ((t.bootstrapped ? 1 : 2)));\n var z = k.parse(this.data.getTextToIndex(t)).tokens, aa = r(z, this.query);\n if (aa) {\n this.recordStat(\"matched_terms\", aa);\n }\n ;\n ;\n }\n \n ;\n ;\n var ba = {\n };\n this._extraRecorder.forEach(function(ca) {\n ca(s, this.results, ba);\n }.bind(this));\n this.recordStat(\"extra_select_info\", JSON.stringify(ba));\n if (((t.type === \"websuggestion\"))) {\n this.recordStat(\"selected_memcached_websuggestion\", t.fromMemcache);\n this.recordStat(\"selected_websuggestion_source\", t.websuggestion_source);\n }\n ;\n ;\n this.recordStat(\"selected_with_mouse\", ((s.clicked ? 1 : 0)));\n };\n q.prototype._dataToSubmit = function() {\n this.recordStat(\"candidate_results\", this.buildResults());\n this.recordStat(\"query\", this.query);\n this.recordStat(\"init_time\", this.initTime);\n if (this.initStartTime) {\n this.recordStat(\"init_start_time\", this.initStartTime);\n this.recordStat(\"onload_time\", this._onloadTime);\n this.initStartTime = 0;\n }\n ;\n ;\n this.recordStat(\"bootstrapped\", this.bootstrapStats.bootstrapped);\n if (this.bootstrapStats.endTime) {\n this.recordStat(\"bootstrapped_time\", this.bootstrapStats.endTime);\n this.recordStat(\"user_bootstrap_ms\", this.bootstrapStats.user);\n this.recordStat(\"other_bootstrap_ms\", this.bootstrapStats.other);\n this.bootstrapStats.endTime = 0;\n }\n ;\n ;\n this.recordStat(\"coeff2_ts\", this.bootstrapStats.coeff2_ts);\n this.recordStat(\"max_results\", this.data._maxResults);\n if (((this.backendQueries.length > 0))) {\n if (((this.backendQueries.length > this.data.logBackendQueriesWindow))) {\n this.backendQueries = this.backendQueries.slice(((this.backendQueries.length - this.data.logBackendQueriesWindow)));\n }\n ;\n ;\n this.recordStat(\"backend_queries\", this.backendQueries);\n }\n ;\n ;\n if (this._reorderInfo) {\n var s = this._reorderInfo;\n s.organic.forEach(function(x) {\n delete x.text;\n });\n this.recordStat(\"s_count\", s.position_data.length);\n this.recordStat(\"s_bootstrap_id\", s.s_bootstrap_id);\n this.recordStat(\"s_organic_results\", JSON.stringify(s.organic));\n this.recordStat(\"s_candidate_tokens\", JSON.stringify(s.tokens));\n this.recordStat(\"s_positions\", JSON.stringify(s.position_data));\n this.recordStat(\"s_options\", JSON.stringify(s.options));\n this.recordStat(\"s_variant\", JSON.stringify(s.variant));\n }\n ;\n ;\n var t = this.stats;\n {\n var fin282keys = ((window.top.JSBNG_Replay.forInKeys)((this.avgStats))), fin282i = (0);\n var u;\n for (; (fin282i < fin282keys.length); (fin282i++)) {\n ((u) = (fin282keys[fin282i]));\n {\n var v = this.avgStats[u];\n t[u] = ((v[0] / v[1]));\n };\n };\n };\n ;\n {\n var fin283keys = ((window.top.JSBNG_Replay.forInKeys)((this.appendStats))), fin283i = (0);\n var w;\n for (; (fin283i < fin283keys.length); (fin283i++)) {\n ((w) = (fin283keys[fin283i]));\n {\n t[w] = JSON.stringify(this.appendStats[w]);\n ;\n };\n };\n };\n ;\n return t;\n };\n q.prototype.buildResults = function() {\n var s = ((this.results || [])).map(function(t, u) {\n var v = k.parse(this.data.getTextToIndex(t)).tokens, w = ((((t.rankType || t.render_type)) || t.type)), x = ((t.bootstrapped ? 1 : 0)), y = ((t.s_token || \"\")), z = ((r(v, this.query) || this.query)), aa = t.index_rank, ba = t.match_type, ca = t.prefix_match, da = t.prefix_length;\n if (((typeof t.groupIndex == \"number\"))) {\n return [t.groupIndex,t.indexInGroup,t.uid,w,x,y,z,aa,ba,ca,da,t.origIndex,];\n }\n ;\n ;\n return [0,u,t.uid,w,x,y,z,aa,ba,ca,da,t.origIndex,];\n }.bind(this));\n return JSON.stringify(s);\n };\n q.prototype.submit = function() {\n var s = this._dataToSubmit();\n switch (this.data.recordingRoute) {\n case \"double_recording\":\n if (((Math.JSBNG__random() > 113062))) {\n s.recorded_first = \"legacy\";\n JSBNG__setTimeout(this.submitThroughAsyncRequest.bind(this, s), 0);\n i.post(this._banzaiRoute, s, {\n delay: 0,\n retry: true\n });\n }\n else {\n s.recorded_first = \"banzai\";\n i.post(this._banzaiRoute, s, {\n delay: 0,\n retry: true\n });\n JSBNG__setTimeout(this.submitThroughAsyncRequest.bind(this, s), 0);\n }\n ;\n ;\n break;\n case \"random_recording\":\n if (((Math.JSBNG__random() > 113386))) {\n this.submitThroughAsyncRequest(s);\n }\n else i.post(this._banzaiRoute, s, {\n delay: 0,\n retry: true\n });\n ;\n ;\n break;\n case \"banzai_basic\":\n i.post(this._banzaiRoute, s);\n break;\n case \"banzai_vital\":\n i.post(this._banzaiRoute, s, {\n delay: 0,\n retry: true\n });\n break;\n default:\n this.submitThroughAsyncRequest(s);\n };\n ;\n this._reset();\n };\n q.prototype.submitThroughAsyncRequest = function(s) {\n if (((Object.keys(s).length > 0))) {\n new h().setURI(this._endPoint).setMethod(\"POST\").setData({\n stats: s\n }).setOption(\"handleErrorAfterUnload\", true).setErrorHandler(function(t) {\n s.retry = true;\n new h().setURI(this._endPoint).setMethod(\"POST\").setData({\n stats: s\n }).setOption(\"asynchronous\", false).send();\n }.bind(this)).send();\n }\n ;\n ;\n };\n var r = function(s, t) {\n var u = k.parse(t);\n if (((u.flatValue[((u.flatValue.length - 1))] === \" \"))) {\n return u.flatValue;\n }\n ;\n ;\n var v = u.tokens[((u.tokens.length - 1))], w = {\n };\n s.forEach(function(ba) {\n w[ba] = ((((w[ba] || 0)) + 1));\n });\n var x = {\n }, y = u.tokens.slice(0, ((u.tokens.length - 1)));\n y.forEach(function(ba) {\n x[ba] = ((((x[ba] || 0)) + 1));\n });\n for (var z = 0; ((z < s.length)); ++z) {\n var aa = s[z];\n if (((((aa.indexOf(v) === 0)) && ((((w[aa] - ((x[aa] || 0)))) > 0))))) {\n y.push(aa);\n return y.join(\" \");\n }\n ;\n ;\n };\n ;\n return undefined;\n };\n o(q.prototype, {\n _endPoint: \"/ajax/typeahead/record_metrics.php\",\n _banzaiRoute: \"search\"\n });\n e.exports = q;\n});\n__d(\"TypeaheadSearchRecorderBasic\", [\"SearchTypeaheadRecorder\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"SearchTypeaheadRecorder\"), h = b(\"copyProperties\"), i = b(\"emptyFunction\");\n function j(k) {\n this._typeahead = k;\n };\n;\n j.prototype.enable = function() {\n new g(this._typeahead);\n };\n h(j.prototype, {\n disable: i\n });\n e.exports = j;\n});\n__d(\"legacy:SearchRecorderBasicTypeaheadBehavior\", [\"TypeaheadSearchRecorderBasic\",], function(a, b, c, d) {\n var e = b(\"TypeaheadSearchRecorderBasic\");\n if (!a.TypeaheadBehaviors) {\n a.TypeaheadBehaviors = {\n };\n }\n;\n;\n a.TypeaheadBehaviors.searchRecorderBasic = function(f) {\n f.enableBehavior(e);\n };\n}, 3);\n__d(\"SearchTypeaheadRenderer\", [\"Badge\",\"DOM\",\"Env\",\"MusicButtonManager\",\"TypeaheadFacepile\",\"TypeaheadUtil\",], function(a, b, c, d, e, f) {\n var g = b(\"Badge\"), h = b(\"DOM\"), i = b(\"Env\"), j = b(\"MusicButtonManager\"), k = b(\"TypeaheadFacepile\"), l = b(\"TypeaheadUtil\");\n function m(n, o) {\n var p = [], q = ((n.photos || n.photo));\n if (q) {\n if (((q instanceof Array))) {\n q = k.render(q);\n }\n else q = h.create(\"img\", {\n alt: \"\",\n src: q\n });\n ;\n ;\n p.push(q);\n if (n.song) {\n p.push(h.create(\"span\", {\n className: \"playButton\"\n }));\n p.push(h.create(\"span\", {\n className: \"playLoader\"\n }));\n }\n ;\n ;\n }\n ;\n ;\n var r;\n if (n.text) {\n var s = n.alias, t = this.value, u = n.text;\n r = [u,];\n if (((((s && l.isQueryMatch(t, s))) && !l.isQueryMatch(t, u)))) {\n r.push(h.create(\"span\", {\n className: \"alias\"\n }, [((\" \\u00b7 \" + s)),]));\n }\n ;\n ;\n if (n.verified) {\n r.push(g(\"xsmall\"));\n }\n ;\n ;\n p.push(h.create(\"span\", {\n className: \"text\"\n }, r));\n }\n ;\n ;\n if (n.category) {\n var v = [n.category,];\n if (n.is_external) {\n v.push(h.create(\"span\", {\n className: \"arrow\"\n }));\n }\n ;\n ;\n var w = ((n.message ? \"preCategory\" : \"category\"));\n p.push(h.create(\"span\", {\n className: w\n }, v));\n }\n ;\n ;\n if (n.message) {\n p.push(h.create(\"span\", {\n className: \"category\"\n }, [n.message,]));\n }\n ;\n ;\n var x = ((n.subtextOverride || n.subtext));\n if (x) {\n p.push(h.create(\"span\", {\n className: \"subtext\"\n }, [x,]));\n }\n ;\n ;\n var y = ((((n.classNames || n.type)) || \"\")), z = ((n.is_external ? \"_blank\" : \"\")), aa = ((((!n.song && n.path)) || \"\"));\n if (aa) {\n if (!(/^https?\\:\\/\\//).test(aa)) {\n aa = ((i.www_base + aa.substr(1)));\n }\n ;\n ;\n aa += ((((((aa.indexOf(\"?\") > 0)) ? \"&\" : \"?\")) + \"ref=ts&fref=ts\"));\n }\n ;\n ;\n var ba = h.create(\"a\", {\n href: aa,\n rel: \"ignore\",\n target: z\n }, p);\n if (n.song) {\n ba.id = ((\"mb_\" + ((((Math.JSBNG__random() * 1000000)) | 0))));\n j.addButton.curry(n.song.provider, ba.id, n.song.url, n.song.context, n.song.media_type).defer();\n ba.JSBNG__onclick = this.ignoreClick;\n }\n ;\n ;\n var ca = h.create(\"li\", {\n className: y\n }, [ba,]);\n if (n.text) {\n ca.setAttribute(\"aria-label\", n.text);\n }\n ;\n ;\n return ca;\n };\n;\n m.className = \"search\";\n e.exports = m;\n});\n__d(\"legacy:SearchTypeaheadRenderer\", [\"SearchTypeaheadRenderer\",], function(a, b, c, d) {\n if (!a.TypeaheadRenderers) {\n a.TypeaheadRenderers = {\n };\n }\n;\n;\n a.TypeaheadRenderers.search = b(\"SearchTypeaheadRenderer\");\n}, 3);\nvoid (0);\n__d(\"TypeaheadSearchFilter\", [\"Arbiter\",\"copyProperties\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"copyProperties\");\n function i(j) {\n this._typeahead = j;\n };\n;\n i.prototype.enable = function() {\n var j = this._typeahead, k = j.getView().seeMoreEndpoint;\n this._subscriptions = [g.subscribe(\"search/typeahead/updateFilter\", function(l, m) {\n if (((m.filter_type == \"web\"))) {\n j.getView().queryData.form = \"FBKBFR\";\n }\n ;\n ;\n j.getView().queryData.type = m.filter_type;\n }),g.subscribe(\"search/typeahead/updateSeeMoreEndpoint\", function(l, m) {\n j.getView().seeMoreEndpoint = m;\n }),g.subscribe(\"page_transition\", function(l, m) {\n if (j.getView().queryData.form) {\n delete j.getView().queryData.form;\n }\n ;\n ;\n delete j.getView().queryData.type;\n j.getView().seeMoreEndpoint = k;\n }, g.SUBSCRIBE_NEW),];\n };\n i.prototype.disable = function() {\n this._subscriptions.forEach(function(j) {\n j.unsubscribe();\n });\n this._subscriptions = null;\n };\n h(i.prototype, {\n _subscription: null\n });\n e.exports = i;\n});\n__d(\"legacy:SearchFilterTypeaheadBehavior\", [\"TypeaheadSearchFilter\",], function(a, b, c, d) {\n var e = b(\"TypeaheadSearchFilter\");\n if (!a.TypeaheadBehaviors) {\n a.TypeaheadBehaviors = {\n };\n }\n;\n;\n a.TypeaheadBehaviors.initFilters = function(f) {\n f.enableBehavior(e);\n };\n}, 3);\n__d(\"TypeaheadDetectQueryLocale\", [], function(a, b, c, d, e, f) {\n function g(h) {\n this._typeahead = h;\n this._data = h.getData();\n this._queryCache = {\n \"\": this._data.queryCache,\n ja_JP: {\n },\n zh_TW: {\n }\n };\n };\n;\n g.prototype.enable = function() {\n this._previousLocale = \"\";\n this._reset = this._typeahead.subscribe(\"reset\", this._swapQueryCache.bind(this, \"\"));\n this._beforeQuery = this._data.subscribe(\"beforeQuery\", function(h, i) {\n var j = i.value;\n if (((j === \"\"))) {\n this._swapQueryCache(\"\");\n return;\n }\n ;\n ;\n var k = null, l = j.charCodeAt(((j.length - 1)));\n if (((((12352 <= l)) && ((l <= 12543))))) {\n k = \"ja_JP\";\n }\n else if (((((12544 <= l)) && ((l <= 12735))))) {\n k = \"zh_TW\";\n }\n \n ;\n ;\n this._swapQueryCache(k);\n }.bind(this));\n };\n g.prototype.disable = function() {\n this._swapQueryCache(\"\");\n this._data.unsubscribe(this._beforeQuery);\n this._typeahead.ubsubscribe(this._reset);\n };\n g.prototype._swapQueryCache = function(h) {\n if (((((h === null)) || ((h === this._previousLocale))))) {\n return;\n }\n ;\n ;\n this._data.queryCache = this._queryCache[h];\n this._data.setQueryData({\n query_locale: h\n });\n this._previousLocale = h;\n };\n e.exports = g;\n});\n__d(\"TypeaheadDisableBucketization\", [\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"emptyFunction\");\n function i(j) {\n this._typeahead = j;\n };\n;\n i.prototype.enable = function() {\n this._typeahead.getView().disableBucketization();\n this._typeahead.getData().inform(\"recordFunction\", function(j, k, l) {\n l.bucketization_disabled = 1;\n });\n };\n g(i.prototype, {\n disable: h.thatReturns\n });\n e.exports = i;\n});\n__d(\"TypeaheadExcludeBootstrapFromQueryCache\", [], function(a, b, c, d, e, f) {\n function g(h) {\n this._data = h.getData();\n };\n;\n g.prototype.enable = function() {\n this._buildingQueryCache = false;\n this._buildQueryCache = this._data.subscribe(\"buildQueryCache\", function() {\n this._buildingQueryCache = true;\n }.bind(this));\n this._mergeUids = this._data.subscribe(\"mergeUids\", function(h, i) {\n if (this._buildingQueryCache) {\n i.local_uids.splice(0, i.local_uids.length);\n }\n ;\n ;\n }.bind(this));\n this._fetchComplete = this._data.subscribe(\"fetchComplete\", function() {\n this._buildingQueryCache = false;\n }.bind(this));\n };\n g.prototype.disable = function() {\n this._data.unsubscribe(this._buildQueryCache);\n this._data.unsubscribe(this._mergeUids);\n this._data.unsubscribe(this._fetchComplete);\n };\n e.exports = g;\n});\n__d(\"TypeaheadSearchBrowseUpsell\", [\"Arbiter\",\"CSS\",\"DOM\",\"JSBNG__Event\",\"copyProperties\",\"emptyFunction\",], function(a, b, c, d, e, f) {\n var g = b(\"Arbiter\"), h = b(\"CSS\"), i = b(\"DOM\"), j = b(\"JSBNG__Event\"), k = b(\"copyProperties\"), l = b(\"emptyFunction\"), m = \"TypeaheadSearchBrowseUpsell/form\";\n function n(o) {\n this._typeahead = o;\n this._form = null;\n g.subscribe(m, this._registerForm.bind(this));\n };\n;\n n.prototype._registerForm = function(o, p) {\n this._form = p.cloneNode(true);\n i.scry(this._form, \"button\").forEach(function(q) {\n h.removeClass(q, \"selected\");\n });\n j.listen(this._form, \"success\", function() {\n this._typeahead.view.hide();\n h.addClass(this._form, \"browseSuccess\");\n }.bind(this));\n };\n n.prototype.addUpsell = function(o) {\n if (this._form) {\n var p = i.create(\"li\", {\n className: \"browseUpsell\"\n }, this._form);\n o.push({\n type: \"disabled_result\",\n uid: \"upsell\",\n node: p\n });\n }\n ;\n ;\n };\n n.prototype.decorateSeeMore = function(o) {\n var p = o[((o.length - 1))];\n if (((p && ((p.uid === \"search\"))))) {\n h.addClass(p.node, \"browseMore\");\n }\n ;\n ;\n };\n n.prototype.showUpsell = function() {\n var o = this._typeahead.view;\n return ((o._shouldShowSeeMore && !h.hasClass(o.element, \"typeaheadViewLoading\")));\n };\n n.prototype.enable = function() {\n this._typeahead.subscribe(\"beforeRender\", function(o, p) {\n var q = p.results.length;\n if (((q && this.showUpsell()))) {\n this.decorateSeeMore(p.results);\n this.addUpsell(p.results);\n }\n ;\n ;\n }.bind(this));\n };\n n.registerForm = function(o) {\n g.inform(m, o, g.BEHAVIOR_STATE);\n };\n k(n.prototype, {\n disable: l\n });\n e.exports = n;\n});\n__d(\"TypeaheadRegulateMemorializedUsers\", [\"copyProperties\",\"TypeaheadUtil\",], function(a, b, c, d, e, f) {\n var g = b(\"copyProperties\"), h = b(\"TypeaheadUtil\");\n function i(j) {\n this._typeahead = j;\n };\n;\n g(i.prototype, {\n _filterRegistry: null,\n _filter: function(j, k) {\n if (((((j.type !== \"user\")) || !j.memorialized))) {\n return true;\n }\n ;\n ;\n var l = h.parse(j.text).tokens;\n if (((((l.length === 1)) && h.isExactMatch(k, j.text)))) {\n return true;\n }\n ;\n ;\n var m = this._typeahead.getData().getTextToIndex(j), n = h.parse(k).tokens;\n return ((((n.length > 1)) && h.isQueryMatch(k, m)));\n },\n enable: function() {\n this._filterRegistry = this._typeahead.getData().addFilter(this._filter.bind(this));\n },\n disable: function() {\n this._filterRegistry.remove();\n this._filterRegistry = null;\n }\n });\n e.exports = i;\n});\n__d(\"legacy:RegulateMemorializedUsersTypeaheadBehavior\", [\"TypeaheadRegulateMemorializedUsers\",], function(a, b, c, d) {\n var e = b(\"TypeaheadRegulateMemorializedUsers\");\n if (!a.TypeaheadBehaviors) {\n a.TypeaheadBehaviors = {\n };\n }\n;\n;\n a.TypeaheadBehaviors.regulateMemorializedUsers = function(f) {\n f.enableBehavior(e);\n };\n}, 3);");
// 4275
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4276
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_549");
// 4278
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 4279
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_549");
// 4280
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"src");
// 4281
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"\"\"");
// 4283
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4284
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"length");
// 4285
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"44");
// 4287
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_785");
// 4289
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4290
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_785");
// 4292
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 4293
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_785");
// 4294
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"src");
// 4295
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"\"\"");
// 4297
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4298
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"length");
// 4299
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"44");
// 4301
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_786");
// 4303
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4304
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_786");
// 4306
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 4307
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_786");
// 4308
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"src");
// 4309
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"\"\"");
// 4311
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4312
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"length");
// 4313
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"44");
// 4315
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_787");
// 4317
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4318
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_787");
// 4320
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 4321
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_787");
// 4322
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"src");
// 4323
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"\"\"");
// 4325
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4326
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"length");
// 4327
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"44");
// 4329
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_788");
// 4331
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4332
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_788");
// 4334
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 4335
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_788");
// 4336
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"src");
// 4337
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"\"\"");
// 4339
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4340
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"length");
// 4341
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"44");
// 4343
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_789");
// 4345
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4346
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_789");
// 4348
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 4349
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_789");
// 4350
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"src");
// 4351
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"\"\"");
// 4353
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4354
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"length");
// 4355
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"44");
// 4357
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_790");
// 4359
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4360
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_790");
// 4362
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 4363
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_790");
// 4364
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"src");
// 4365
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"\"\"");
// 4367
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4368
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"length");
// 4369
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"44");
// 4371
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_791");
// 4373
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4374
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_791");
// 4376
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 4377
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_791");
// 4378
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"src");
// 4379
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"\"\"");
// 4381
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4382
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"length");
// 4383
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"44");
// 4385
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_792");
// 4387
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4388
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_792");
// 4390
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 4391
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_792");
// 4392
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"src");
// 4393
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"\"\"");
// 4395
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4396
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"length");
// 4397
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"44");
// 4399
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_793");
// 4401
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4402
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_793");
// 4404
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 4405
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_793");
// 4406
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"src");
// 4407
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"\"\"");
// 4409
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4410
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"length");
// 4411
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"44");
// 4413
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_794");
// 4415
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4416
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_794");
// 4418
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"");
// 4419
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_794");
// 4420
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"src");
// 4421
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"\"\"");
// 4423
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_525");
// 4424
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"length");
// 4425
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"44");
// 4432
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_278[18], o3,o4);
// undefined
o3 = null;
// undefined
o4 = null;
// 4449
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"ow449694821");
// 4450
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"JSBNG__onpopstate");
// 4451
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"f449694821_522");
// 4453
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_1");
// 4454
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"documentElement");
// 4455
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"o449694821_401");
// 4457
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"ow449694821");
// 4458
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"JSBNG__onpopstate");
// 4459
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_1[0], o5,"f449694821_522");
// undefined
o5 = null;
// 4468
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_376[0], o2);
// 4469
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_378[0], o2);
// undefined
o2 = null;
// 4473
o7.toString = f449694821_816;
// 4482
o8.hasOwnProperty = f449694821_818;
// undefined
o8 = null;
// 4471
fpc.call(JSBNG_Replay.s5e7dba3ea700a5261ca8857ec975a807389e8969_42[0], o7);
// undefined
o7 = null;
// 4514
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_96[0], f449694821_826,1373490177573);
// 4574
o0.cookie = "c_user=100006118350059; csm=2; wd=994x603";
// 4533
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_225[0](o9);
// undefined
o9 = null;
// 4585
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o6);
// undefined
o6 = null;
// 4593
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o10);
// undefined
o10 = null;
// 4601
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o11);
// undefined
o11 = null;
// 4609
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o12);
// undefined
o12 = null;
// 4617
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o13);
// undefined
o13 = null;
// 4625
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o14);
// undefined
o14 = null;
// 4633
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o15);
// undefined
o15 = null;
// 4641
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o16);
// undefined
o16 = null;
// 4649
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o17);
// undefined
o17 = null;
// 4657
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o19);
// undefined
o19 = null;
// 4665
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o20);
// undefined
o20 = null;
// 4673
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o21);
// undefined
o21 = null;
// 4681
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o22);
// undefined
o22 = null;
// 4689
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o23);
// undefined
o23 = null;
// 4697
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o24);
// undefined
o24 = null;
// 4705
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o25);
// undefined
o25 = null;
// 4713
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o26);
// undefined
o26 = null;
// 4724
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o27);
// undefined
o27 = null;
// 4732
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o28);
// undefined
o28 = null;
// 4740
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o29);
// undefined
o29 = null;
// 4748
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o30);
// undefined
o30 = null;
// 4756
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o31);
// undefined
o31 = null;
// 4764
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o32);
// undefined
o32 = null;
// 4773
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o33);
// undefined
o33 = null;
// 4782
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o34);
// undefined
o34 = null;
// 4791
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o35);
// undefined
o35 = null;
// 4800
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o36);
// undefined
o36 = null;
// 4809
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o37);
// undefined
o37 = null;
// 4818
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o38);
// undefined
o38 = null;
// 4827
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o39);
// undefined
o39 = null;
// 4839
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o40);
// undefined
o40 = null;
// 4848
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o43);
// undefined
o43 = null;
// 4857
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o44);
// undefined
o44 = null;
// 4866
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o45);
// undefined
o45 = null;
// 4875
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o46);
// undefined
o46 = null;
// 4884
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o47);
// undefined
o47 = null;
// 4893
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o48);
// undefined
o48 = null;
// 4902
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o49);
// undefined
o49 = null;
// 4911
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o50);
// undefined
o50 = null;
// 4920
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o51);
// undefined
o51 = null;
// 4929
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o52);
// undefined
o52 = null;
// 4938
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o53);
// undefined
o53 = null;
// 4947
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o54);
// undefined
o54 = null;
// 4956
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o55);
// undefined
o55 = null;
// 4965
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o56);
// undefined
o56 = null;
// 4974
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o57);
// undefined
o57 = null;
// 4983
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o58);
// undefined
o58 = null;
// 4992
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o59);
// undefined
o59 = null;
// 5001
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o60);
// undefined
o60 = null;
// 5010
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o61);
// undefined
o61 = null;
// 5098
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o65);
// 5107
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o67);
// 5122
o62.transport = o63;
// undefined
o62 = null;
// undefined
o63 = null;
// 5116
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o69);
// 5197
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o65);
// undefined
o65 = null;
// 5206
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o67);
// undefined
o67 = null;
// 5215
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o69);
// undefined
o69 = null;
// 5225
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o64);
// undefined
o64 = null;
// 5234
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o66);
// undefined
o66 = null;
// 5243
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o68);
// undefined
o68 = null;
// 5252
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o70);
// undefined
o70 = null;
// 5261
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o71);
// undefined
o71 = null;
// 5270
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o72);
// undefined
o72 = null;
// 5279
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o73);
// undefined
o73 = null;
// 5288
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o74);
// undefined
o74 = null;
// 5297
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o75);
// undefined
o75 = null;
// 5306
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o76);
// undefined
o76 = null;
// 5315
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o77);
// undefined
o77 = null;
// 5324
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o78);
// undefined
o78 = null;
// 5333
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o79);
// undefined
o79 = null;
// 5342
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o80);
// undefined
o80 = null;
// 5351
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o81);
// undefined
o81 = null;
// 5359
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o82);
// undefined
o82 = null;
// 5368
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o83);
// undefined
o83 = null;
// 5377
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o84);
// undefined
o84 = null;
// 5386
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o85);
// undefined
o85 = null;
// 5398
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o86);
// undefined
o86 = null;
// 5407
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o87);
// undefined
o87 = null;
// 5416
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o88);
// undefined
o88 = null;
// 5425
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o89);
// undefined
o89 = null;
// 5434
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o90);
// undefined
o90 = null;
// 5443
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o91);
// undefined
o91 = null;
// 5452
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o92);
// undefined
o92 = null;
// 5460
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o93);
// undefined
o93 = null;
// 5469
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o94);
// undefined
o94 = null;
// 5478
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o95);
// undefined
o95 = null;
// 5487
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o96);
// undefined
o96 = null;
// 5496
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o97);
// undefined
o97 = null;
// 5504
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o98);
// undefined
o98 = null;
// 5513
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"DOMMouseScroll",o99);
// undefined
o99 = null;
// 5521
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o100);
// undefined
o100 = null;
// 5529
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o101);
// undefined
o101 = null;
// 5537
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o102);
// undefined
o102 = null;
// 5545
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o103);
// undefined
o103 = null;
// 5553
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o104);
// undefined
o104 = null;
// 5561
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o105);
// undefined
o105 = null;
// 5569
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o106);
// undefined
o106 = null;
// 5577
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o107);
// undefined
o107 = null;
// 5585
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o108);
// undefined
o108 = null;
// 5593
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o109);
// undefined
o109 = null;
// 5601
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o110);
// undefined
o110 = null;
// 5609
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o111);
// undefined
o111 = null;
// 5617
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o112);
// undefined
o112 = null;
// 5625
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o113);
// undefined
o113 = null;
// 5633
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o114);
// undefined
o114 = null;
// 5641
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o115);
// undefined
o115 = null;
// 5649
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o116);
// undefined
o116 = null;
// 5660
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o117);
// undefined
o117 = null;
// 5668
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o118);
// undefined
o118 = null;
// 5676
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o119);
// undefined
o119 = null;
// 5684
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o120);
// undefined
o120 = null;
// 5692
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o121);
// undefined
o121 = null;
// 5700
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o122);
// undefined
o122 = null;
// 5708
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o123);
// undefined
o123 = null;
// 5716
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o124);
// undefined
o124 = null;
// 5724
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o125);
// undefined
o125 = null;
// 5732
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o126);
// undefined
o126 = null;
// 5740
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o127);
// undefined
o127 = null;
// 5748
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o128);
// undefined
o128 = null;
// 5756
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o129);
// undefined
o129 = null;
// 5764
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o130);
// undefined
o130 = null;
// 5772
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o131);
// undefined
o131 = null;
// 5780
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o132);
// undefined
o132 = null;
// 5788
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o133);
// undefined
o133 = null;
// 5796
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o134);
// undefined
o134 = null;
// 5804
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o135);
// undefined
o135 = null;
// 5812
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o136);
// undefined
o136 = null;
// 5820
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o137);
// undefined
o137 = null;
// 5828
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o138);
// undefined
o138 = null;
// 5836
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o139);
// undefined
o139 = null;
// 5844
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o140);
// undefined
o140 = null;
// 5852
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o141);
// undefined
o141 = null;
// 5860
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o142);
// undefined
o142 = null;
// 5868
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o143);
// undefined
o143 = null;
// 5876
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o144);
// undefined
o144 = null;
// 5884
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o145);
// undefined
o145 = null;
// 5892
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o146);
// undefined
o146 = null;
// 5900
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o147);
// undefined
o147 = null;
// 5908
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o148);
// undefined
o148 = null;
// 5916
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o149);
// undefined
o149 = null;
// 5924
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o150);
// undefined
o150 = null;
// 5932
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o151);
// undefined
o151 = null;
// 5940
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o152);
// undefined
o152 = null;
// 5948
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o153);
// undefined
o153 = null;
// 5956
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o154);
// undefined
o154 = null;
// 5964
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o155);
// undefined
o155 = null;
// 5972
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o156);
// undefined
o156 = null;
// 5980
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o157);
// undefined
o157 = null;
// 5988
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o158);
// undefined
o158 = null;
// 5996
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o159);
// undefined
o159 = null;
// 6004
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o160);
// undefined
o160 = null;
// 6012
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o161);
// undefined
o161 = null;
// 6023
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o162);
// undefined
o162 = null;
// 6031
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o163);
// undefined
o163 = null;
// 6039
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o164);
// undefined
o164 = null;
// 6047
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o165);
// undefined
o165 = null;
// 6055
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o166);
// undefined
o166 = null;
// 6063
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o167);
// undefined
o167 = null;
// 6071
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o168);
// undefined
o168 = null;
// 6079
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o169);
// undefined
o169 = null;
// 6087
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o170);
// undefined
o170 = null;
// 6095
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o171);
// undefined
o171 = null;
// 6103
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o172);
// undefined
o172 = null;
// 6111
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o173);
// undefined
o173 = null;
// 6119
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o174);
// undefined
o174 = null;
// 6127
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o175);
// undefined
o175 = null;
// 6135
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o176);
// undefined
o176 = null;
// 6143
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o177);
// undefined
o177 = null;
// 6151
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o178);
// undefined
o178 = null;
// 6159
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o179);
// undefined
o179 = null;
// 6167
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o180);
// undefined
o180 = null;
// 6175
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o181);
// undefined
o181 = null;
// 6183
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o182);
// undefined
o182 = null;
// 6191
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o183);
// undefined
o183 = null;
// 6199
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o184);
// undefined
o184 = null;
// 6207
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o185);
// undefined
o185 = null;
// 6215
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o186);
// undefined
o186 = null;
// 6223
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o187);
// undefined
o187 = null;
// 6231
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o188);
// undefined
o188 = null;
// 6239
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o189);
// undefined
o189 = null;
// 6247
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o190);
// undefined
o190 = null;
// 6255
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o191);
// undefined
o191 = null;
// 6263
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o192);
// undefined
o192 = null;
// 6271
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o193);
// undefined
o193 = null;
// 6279
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o194);
// undefined
o194 = null;
// 6287
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o195);
// undefined
o195 = null;
// 6336
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o196);
// undefined
o196 = null;
// 6344
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o197);
// undefined
o197 = null;
// 6352
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o198);
// undefined
o198 = null;
// 6360
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o199);
// undefined
o199 = null;
// 6368
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o200);
// undefined
o200 = null;
// 6376
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o201);
// undefined
o201 = null;
// 6384
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o202);
// undefined
o202 = null;
// 6392
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o203);
// undefined
o203 = null;
// 6400
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o204);
// undefined
o204 = null;
// 6408
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o205);
// undefined
o205 = null;
// 6416
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o206);
// undefined
o206 = null;
// 6424
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o207);
// undefined
o207 = null;
// 6432
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o208);
// undefined
o208 = null;
// 6440
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o209);
// undefined
o209 = null;
// 6448
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o210);
// undefined
o210 = null;
// 6456
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o211);
// undefined
o211 = null;
// 6464
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o212);
// undefined
o212 = null;
// 6472
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o213);
// undefined
o213 = null;
// 6489
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o214);
// undefined
o214 = null;
// 6509
o0.cookie = "c_user=100006118350059; csm=2";
// undefined
o0 = null;
// 6503
JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_226[0](o215);
// undefined
o215 = null;
// 6513
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o216);
// undefined
o216 = null;
// 6521
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o217);
// undefined
o217 = null;
// 6529
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o218);
// undefined
o218 = null;
// 6537
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o219);
// undefined
o219 = null;
// 6545
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o220);
// undefined
o220 = null;
// 6553
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o221);
// undefined
o221 = null;
// 6561
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o222);
// undefined
o222 = null;
// 6569
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o223);
// undefined
o223 = null;
// 6577
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o224);
// undefined
o224 = null;
// 6585
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o225);
// undefined
o225 = null;
// 6593
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o226);
// undefined
o226 = null;
// 6601
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o227);
// undefined
o227 = null;
// 6609
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o228);
// undefined
o228 = null;
// 6617
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o229);
// undefined
o229 = null;
// 6625
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o230);
// undefined
o230 = null;
// 6633
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o231);
// undefined
o231 = null;
// 6641
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o232);
// undefined
o232 = null;
// 6649
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o233);
// undefined
o233 = null;
// 6657
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o234);
// undefined
o234 = null;
// 6665
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o235);
// undefined
o235 = null;
// 6673
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o236);
// undefined
o236 = null;
// 6681
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o237);
// undefined
o237 = null;
// 6689
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o238);
// undefined
o238 = null;
// 6697
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o239);
// undefined
o239 = null;
// 6705
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o240);
// undefined
o240 = null;
// 6713
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o241);
// undefined
o241 = null;
// 6721
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o242);
// 6729
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o243);
// 6737
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o244);
// 6745
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o245);
// 6753
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o246);
// 6761
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o247);
// 6769
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o248);
// 6780
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o249);
// 6788
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o250);
// 6796
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o251);
// 6804
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o252);
// 6812
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o253);
// 6824
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o242);
// undefined
o242 = null;
// 6832
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o243);
// undefined
o243 = null;
// 6840
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o244);
// undefined
o244 = null;
// 6848
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o245);
// undefined
o245 = null;
// 6856
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o246);
// undefined
o246 = null;
// 6864
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o247);
// undefined
o247 = null;
// 6872
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o248);
// undefined
o248 = null;
// 6883
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mouseover",o249);
// undefined
o249 = null;
// 6891
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o250);
// undefined
o250 = null;
// 6899
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o251);
// undefined
o251 = null;
// 6907
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o252);
// undefined
o252 = null;
// 6915
fpc.call(JSBNG_Replay.sf5cf39f60525a87dacca08ba47304e00dca09e9c_39[0], o1,"mousemove",o253);
// undefined
o1 = null;
// undefined
o253 = null;
// 6924
cb(); return null; }
finalize(); })();