
/* Controltag Loader for Turner */
(function(){
  function debugLog(msg) {
    var isDebug = /kxdebug=(1|true)/.test(location);
    if (isDebug && typeof window.console === 'object' && typeof console.info === 'function') {
      console.info(msg);
    }
  }

  function loadCT(url, callback) {
    debugLog('Loading Krux control tag.');
    var ct_element = document.createElement('script');
    ct_element.async = true;
    ct_element.src = url;

    ct_element.onload = ct_element.onreadystatechange = function() {
      var state = ct_element.readyState;
      if (!callback.done && (!state || /loaded|complete/.test(state))) {
        callback.done = true;
        callback();
      }
    };

    // Fetch the first script element, so we can insert the
    // controltag before it. There *must* be at least one
    // script element, or this code would never be called
    var sibling = document.getElementsByTagName('script')[0];
    sibling.parentNode.insertBefore(ct_element, sibling);
  };

  function loadConfig() {
    
    
    debugLog('Loading krux configuration.');

    var config = {"partner_segment_map": {}, "context_terms": [], "tags": [{"content": "<script>\r\n(function(){\r\n  if (window.Krux) {\r\n    var kuid = window.Krux('get', 'user');\r\n    if (kuid && typeof kuid != 'undefined') {\r\n       var rubicon_url = '//tap.rubiconproject.com/oz/feeds/krux/tokens?afu=' + kuid;\r\n       var i = new Image();\r\n       i.src = rubicon_url;\r\n\r\n      var ki = new Image();\r\n      ki.src = '//beacon.krxd.net/usermatch.gif?partner=rubicon&kuid=' + kuid;\r\n    }\r\n  }\r\n})();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": false, "content_type": "html", "freq_cap": 3, "timing": "asap", "method": "document", "type": "publisher", "id": 28180, "name": "Rubicon User Matching"}, {"content": "<script type=\"text/javascript\">\r\n(function () {\r\n_ml = window._ml || {};\r\n_ml.pub = '748';\r\n_ml.redirect = 'http://beacon.krxd.net/usermatch.gif?partner=madisonlogic&partner_uid=[PersonID]';\r\nvar s = document.getElementsByTagName('script')[0], cd = new Date(), mltag = document.createElement('script');\r\nmltag.type = 'text/javascript'; mltag.async = true;\r\nmltag.src = '//ml314.com/tag.aspx?' + cd.getDate() + cd.getMonth() + cd.getFullYear();\r\ns.parentNode.insertBefore(mltag, s);\r\n})();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": false, "content_type": "html", "freq_cap": 3, "timing": "asap", "method": "document", "type": "publisher", "id": 31684, "name": "Madison Logic User Match - 1/24"}, {"content": "<script type=\"text/javascript\">\r\n// DFP premium.\r\n(function(require) {\r\n  var store = require('store');\r\n  var _ = require('util');  \r\n  var segments;\r\n  \r\n  function handleUserDataResponse(r) {\r\n    // Handle the response as usual.\r\n    segments.handleUserDataResponse(r);\r\n    \r\n    // Override localStorage.kxuser with a case-insensitive value for DFP premium.\r\n    // This will get read by the interchange direct snippet for Krux.user\r\n    // and Krux.dfpKeyValues\r\n    if(r.kuid_long) {\r\n      store.set('user', r.kuid_long, store.DAYS*30);\r\n    }\r\n  }\r\n  \r\n  // Our own fetch uses our own handleResponse\r\n  function fetch() {\r\n    var options = {\r\n      url: _.get('url_userData'),\r\n      data: {pubid: _.get('pubid')},\r\n      callback: 'kxjsonp_userData',\r\n      done: handleUserDataResponse\r\n    };\r\n    if(!segments.readTechFromStore()) {\r\n      options.data.technographics = 1;\r\n    }\r\n    require('http').jsonp(options);  \r\n  }\r\n  \r\n  \r\n  if(!store.get('segWait')) {\r\n    // disable segments.fetch and use our own\r\n    _.set('segWait', 1, store.MINUTES*5);\r\n    _.onOnce('dom:load', fetch);\r\n    _.fire('user_data_fetch_scheduled');\r\n  }\r\n  \r\n  // Finally, require segments as usual.\r\n  segments = require('segments');\r\n}(Krux.require));\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 2, "internal": 1, "content_type": "html", "timing": "asap", "method": "document", "type": "publisher", "id": 20614, "name": "Krux Load Segments"}, {"content": "<script type=\"text/javascript\">Krux('social.init');</script>", "target": null, "target_action": "append", "require": "", "docwrite": null, "internal": 1, "template_replacement": 1, "execution_results": null, "tier": 1, "library_tag_config": {}, "content_type": "html", "timing": "onload", "method": "document", "type": "library", "id": 28016, "name": "Krux Track Social"}, {"content": "<script>\r\n// this tag is intentionally blank\r\n</script>", "target": null, "target_action": "append", "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 6, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "data provider", "id": 20466, "name": "Technographic Data provider tag"}, {"content": "", "target": null, "target_action": "append", "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 14, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "id": 20467, "name": "Krux Geographic Data provider tag"}, {"content": "<script>\r\n(function(){\r\n  var kuid = Krux('get', 'user');\r\n  if (kuid && typeof kuid != 'undefined') {\r\n      var prefix = location.protocol == 'https:' ? \"https:\" :\"http:\";\r\n      var r_url = prefix + '//cm.g.doubleclick.net/pixel'\r\n      var kurl = prefix + '//apiservices.krxd.net/um?partner=google&r=' + r_url;\r\n      var i = new Image();\r\n      i.src = kurl;\r\n  }\r\n})();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": false, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "publisher", "id": 30470, "name": "Google User Matching"}, {"content": "<script>\r\n// Using Globals currentVideoObj.franchiseName to produce page attribute currentVideoObj.franchiseName\r\nKrux('scrape', { \"page_attr_currentVideoObj.franchiseName\": {js_global: \"currentVideoObj.franchiseName\"}});\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 1, "content_type": "html", "timing": "onload", "method": "document", "type": "publisher", "id": 28449, "name": "Data Transfer Code v2"}, {"content": "<img height=\"1\" width=\"1\" style=\"display:none;\" alt=\"\" src=\"//t.co/i/adsct?txn_id=l4urr&p_id=Twitter\" />", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 0, "execution_results": {"onloadSafe": true, "docwrite": false, "listeners": []}, "tier": 1, "internal": false, "content_type": "html", "timing": "onload", "method": "document", "type": "publisher", "id": 34398, "name": "Twitter Pixel CNN (TMG) Lisa Ling"}, {"content": "<img height=\"1\" width=\"1\" style=\"display:none;\" alt=\"\" src=\"//t.co/i/adsct?txn_id=l4umf&p_id=Twitter\" />", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 0, "execution_results": {"onloadSafe": true, "docwrite": false, "listeners": []}, "tier": 1, "internal": false, "content_type": "html", "timing": "onload", "method": "document", "type": "publisher", "id": 34399, "name": "Twitter Pixel CNN (TMG) Parts Unknown"}, {"content": "<img height=\"1\" width=\"1\" alt=\"\" style=\"display:none\" src=\"https://www.facebook.com/tr?id=1588926451334235&amp;ev=NoScript\" />", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": {"onloadSafe": true, "docwrite": false, "listeners": []}, "tier": 1, "internal": false, "content_type": "html", "timing": "onload", "method": "document", "type": "publisher", "id": 32379, "name": "Facebook Pixel CNN (TMG)"}, {"content": "<img height=\"1\" width=\"1\" style=\"border-style:none;\" alt=\"\" src=\"//googleads.g.doubleclick.net/pagead/viewthroughconversion/986255830/?value=0&amp;guid=ON&amp;script=0\"/>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": {"onloadSafe": true, "docwrite": false, "listeners": []}, "tier": 1, "internal": false, "content_type": "html", "timing": "onload", "method": "document", "type": "publisher", "id": 32385, "name": "Google Remarketing CNN"}, {"content": "<script class=\"krux-dtc\">\r\n(function() {\r\n  window.Krux||((Krux=function(){Krux.q.push(arguments);}).q=[]);;\r\n  Krux.turnerDataTransfer = function() {\r\n    /*\r\n    Parse ad call\r\n    */\r\n\r\n    var attrs, el, els, find, i, key, keys, lookFor, m, match, ns, parts, pixel, site, size, sizes, _, _i, _len, _ref;\r\n    sizes = [\"728x90\", \"300x250\", \"336x280\", \"160x600\", \"336x850\", \"300x600\", \"custom_rgt\", \"970x66\"];\r\n    _ = Krux._;\r\n    find = Krux('require:sizzle').find;\r\n    el = null;\r\n    while (sizes.length && (el == null)) {\r\n      size = sizes.pop();\r\n      els = find(\"*[src*=_pos=\" + size + \"], *[src*=_position=\" + size + \"]\");\r\n      el = els[0];\r\n    }\r\n    if (el) {\r\n      m = el.src.match(/\\.ng\\/(site=.*)$/);\r\n      if (!m) {\r\n        return;\r\n      }\r\n      attrs = Krux('require:util').parseKeyValues(m[1]);\r\n      site = attrs.site;\r\n      if (!site) {\r\n        return;\r\n      }\r\n      Krux('set', \"page_attr_\" + site + \"_site\", site);\r\n      Krux('set', \"page_attr_\" + site + \"_pagetype\", attrs[\"\" + site + \"_pagetype\"]);\r\n      Krux('set', \"page_attr_\" + site + \"_rollup\", attrs[\"\" + site + \"_rollup\"]);\r\n      Krux('set', \"page_attr_\" + site + \"_pos\", attrs[\"\" + site + \"_pos\"]);\r\n      Krux('set', \"page_attr_\" + site + \"_position\", attrs[\"\" + site + \"_position\"]);\r\n      Krux('set', \"page_attr_\" + site + \"_section\", attrs[\"\" + site + \"_section\"]);\r\n      Krux('set', \"page_attr_\" + site + \"_subsection\", attrs[\"\" + site + \"_subsection\"]);\r\n      Krux('set', \"section\", attrs[\"\" + site + \"_rollup\"]);\r\n      Krux('set', \"subsection\", attrs[\"\" + site + \"_section\"]);\r\n    }\r\n\r\n//Defining NCAA site because of move from DE \r\nif(document.location.host.split('.')[1] == \"tcm\"){site = \"TCM\"}\r\nelse{}\r\n//Defining TMC site because of move from DE \r\nif(document.location.host.split('.')[1] == \"ncaa\"){site = \"NCAA\"}\r\nelse{}\r\n    /*\r\n    Parse metrics pixel\r\n    */\r\n\r\n    ns = (function() {\r\n      var exceptions, jsmdmap, key1, key2, val1, val2, _ref;\r\n      if (window._jsmd_default) {\r\n        jsmdmap = _jsmd_default.map;\r\n        for (key1 in jsmdmap) {\r\n          val1 = jsmdmap[key1];\r\n          for (key2 in val1) {\r\n            val2 = val1[key2];\r\n            if (ns = val2 != null ? (_ref = val2.settings) != null ? _ref.visitorNamespace : void 0 : void 0) {\r\n              return ns;\r\n            }\r\n          }\r\n        }\r\n      }\r\n      exceptions = {\r\n        'NBA': '0_nbagroup',\r\n        'Nascar': 'nascardigitalsap',\r\n        'Bleacher Report': 'turnersidigital',\r\n        'Teamcoco': '0_teamcoco'\r\n      };\r\n      return exceptions[Krux('get', 'site')];\r\n    })();\r\n    if (!ns) {\r\n      return;\r\n    }\r\n    lookFor = \"&h1=(.*?)&\";\r\n    i = 0;\r\n    pixel = window[\"s_i_1_\" + ns];\r\n    while (pixel && !(match = (_ref = pixel.src) != null ? _ref.match(lookFor) : void 0)) {\r\n      i++;\r\n      pixel = window[\"s_i_\" + ns + \"_\" + i];\r\n    }\r\n    if (match) {\r\n      parts = decodeURIComponent(match[1]).split('|');\r\n      keys = ['lob', 'brand', 'bizunit', 'sitename', 'sitesectionlevel1', 'sitesectionlevel2'];\r\n      for (i = _i = 0, _len = keys.length; _i < _len; i = ++_i) {\r\n        key = keys[i];\r\n        Krux('set', \"page_attr_\" + site + \"_\" + key, parts[i]);\r\n      }\r\n    }\r\n    return null;\r\n  };\r\n\r\n  Krux.turnerDataTransfer();\r\n\r\n}).call(this);\r\n \r\n// Using Meta keywords to produce page attribute keywords\r\nKrux('scrape', { \"page_attr_keywords\": {meta_name: \"keywords\"}});\r\n// Using Cookie last5stocks to produce page attribute cookie_last5stocks\r\nKrux('scrape', { \"page_attr_cookie_last5stocks\": {cookie: \"last5stocks\"}});\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": {"onloadSafe": true, "docwrite": false, "listeners": []}, "tier": 1, "internal": 1, "content_type": "html", "timing": "onload", "method": "document", "type": "publisher", "id": 32209, "name": "DTC (CNN, CNN A, CNN P, NCAA, PGA, TBS, TCM, TNT)"}], "segments": [], "publisher": {"uuid": "e9eaedd3-c1da-4334-82f0-d7e3ff883c87", "id": 11621, "name": "Turner"}, "controltag_options": {"async": "true", "render": true}, "site": {"id": 13687, "name": "CNN"}, "prioritized_segments": ["o5du0invq", "onwuk1j3p", "oqvo8j78z", "n5wqmenoa", "op7zb9wst", "o23p36wlj", "oz5bke2e7", "op7qu134u", "ow02vxoxn", "oz8m5cfyg", "o2zs76nt2", "oihw95wki", "omcyl176a", "n5c46smdr", "n4pf1bml8", "n5c09rzgz", "ow4wwcby5", "oxs03zajh", "n5dedrl9e", "n7g8xd3gn", "o2inaxkhd", "o2fd4g1pt", "o2fdy8egn", "n5dcxk9zb", "o1jvfgmc1", "oo349otu8", "n5c244zga", "oo69w0dc2", "n5ddb1bpr", "oy7qw91dr", "oy7qt9hxr", "oy7nbnw4j", "oy34zcvr5", "oydrlwfzj", "owtk68gke", "ovqm6jls6", "ouqgr7oij", "oxkbqlt7w", "oofjeme8d", "oxkcjzrc8", "oxkhq21md", "oxkkizowq", "oor80jpam", "n5wn1ui77", "n5w0979by", "onrvw56e6", "ojpy27x0p", "onrvrj151", "ohlith9bw", "n6wmil4a3", "ow0u8jsko", "ow4vr99p4", "ojwwecir2", "oor00a4oq", "ok9lbcpn0", "ojdcwdj3g", "ojpzrxlxg", "opfsqxmay", "orqod1wl4", "obi1ao2ri", "noaold8o2", "omcmpk6l4", "nodwjned9", "ol8huco5c", "ol8iinpau", "oj4y3xm7o", "n4817demz", "n5c8q8fb1", "n4805apw4", "ol8hjgv59", "n5c3w4duk", "n5dan1tu8", "n5c66y79u", "n5wsey11k", "obzgikk57", "n5c7t6dg4", "n5xfud34k", "n5c8gwwbs", "oebdg789j", "okgplh5nx", "nu4l9ovvc", "n6lamk0rg", "ojs08vn88", "n58oam1zv", "onz8ml55o", "nzu2b1bfi", "n5xd2axks", "ojdltp8ul", "ooogej5l0", "ndgr2etcz", "obmv7hptl", "omck0gx0c", "ol8yeu190", "nzywhgceh", "n58q590u8", "n0c7ap7lr", "ohtonitcp", "ohtoh2tr9", "opgalic5g", "nwsjaji63", "oumosjvfg", "oumuc886y", "oumuaorqi", "oumt5myjt", "oumty4ao5", "oumtvhell", "opvhgnrtm", "n49ko408n", "n5c5fca4g", "opz04nnaj", "owxwwefli", "oqy1un0dw", "n5cyf9l75", "olh3w1che", "olh3iw8lt", "oo3rbptjj", "op366l1kv", "olh2v6yvi", "oo3hu0arq", "olimj2zxi", "olh4wqb5p", "oxsyy463v", "oxs0vfa32", "oxs3r451h", "oxs36l7uz", "oxs4dbge1", "oxs4nxpti", "oxv4lul2h", "oxv4rmmx0", "oxv4tyldq", "oxv4wr11x", "oridvh5jd", "ox1lo70kn", "of13oevco", "oqvol9nts", "n5cxgub05", "ozbsbyrm3", "ozbsgud8g", "ozbtq0kta", "ozbtt5x3m", "ozbuwal10", "ozbwa3w46", "ozb5wiqsf", "ozcdquubf", "ozcd4hm46", "ozcg3msr9", "ozcyxtz1t", "ozfzyehpw", "ozfz738kn", "ozgifrvkv", "ozgjnrlvj", "ozgjpv2i8", "ozgkh6owo", "ozgnxrje2", "ozgp1nt1y", "ozguqsks6", "ozguz067q", "ozz840qnx", "oz0igv79x", "oz0ik2bm6", "oz0jnchnx", "oz0jruvyr", "oz0k7jpxd", "oz4o0ey85", "oz4o45elw", "oz4o8h8mf", "oz4pewtn4", "os2095t87", "oz8g03xkf", "oz82slv9i", "oz822mqnk", "oz836nquc", "oz84h9xsh", "oz87pcf5v", "o0o7zgeiv", "o0o8bl6xt", "o0o8gctw6", "o0o8pij58", "o0o82372p", "o0o89e60w", "o0o9hw7mx", "o0o9q5iy6", "o0o9ue97d", "o0o9xkrqt", "o0o91v0ye", "o0o94s955", "o0o98llbg", "o0pabuft1", "o0pahuutd", "o0pakxp0d", "o0pao1u5n", "o0pat9m92", "o0paw91v4", "o0pa0f8xg", "o0pa4bb5b", "o0pa7f5pp", "o0pbakgom", "o0pbc7drh", "o0pbfzi1l", "o0pbievdx", "o0pbkue8w", "o0pbrhbxe", "o0pbt110f", "o0pbxjfan", "o0pb4smw7", "o0r5wsyef", "o0r6ane6a", "o0r8pae7g", "o0r8fli4d", "o0sa4hufz", "ozdf5vvox", "o0v69l7hu", "o0v7utzxo", "o0v768p7z", "o0zzd87wk", "o0z1uzp0g", "o00u2jpsc", "o1gj5l80s", "oygxnee7j", "o1kqe24c2", "o1m94ad6a", "o1si984cw", "o2feiauhb", "o2fev2mvu", "o2fkok9cs", "osa589jkw", "o23sfuct7", "o24hoxx06", "o26g5dgko", "o26g9l6n9", "o3b0blopm", "o3b0epo45", "o3q3era29", "o3sg2wjj7", "oypp33wcp", "o3zcige25", "o30fzobfs", "o33zq2y73", "o4q5ntjxv", "o4rccvnk1", "o4r5oe1fb", "o3yj1w7gv", "ozbva47al", "o2ferxzzx", "ozgu2hs07", "ozb6d0bcn", "ozgima1zp", "o2fjub5hf", "o3ypflabr", "ozwiknp64", "ozci2encp", "o2fevsz6h", "o1j2spsop", "oxs4szrpj", "oxkjze4mo", "ozkt3b9rk", "oxkkwius6", "ozgnz4hgt", "ozktztglt", "ozgkx0vjv", "o3covw898", "o4r5z6wou", "n5devf5ak", "o30gifrcg", "o3zitnii7", "o3q3gz4l1", "o30gcvyf5", "o4r545zoy", "oyhruwwz1", "oi5y5rdb9", "o4r5rx09v", "oxstascbt", "o4u75w9p9", "o4u8kossr", "o5bh18lve", "o5b2fcpmy", "o5fisrv2i", "o520fplrd", "o4sfw4n7a"], "dnt": null, "params": {"connector_host": "connector.krxd.net", "control_tag_load_sync": "false", "fingerprint": false, "disable_http_compression": false, "remove_kxhead": true, "supertag_requires_approval": false, "config_source": 1, "control_tag_stats_prefix": null, "beacon_host": "beacon.krxd.net", "control_tag_pixel_throttle": "100", "user_id_cookie": null, "max_segments": "20", "no_pii": 0, "recommend": false, "revenue_optimization": false, "context_terms": "false", "jslog_host": "jslog.krxd.net", "site_level_supertag_config": "site", "max_slot_time": 1000, "services_host": "apiservices.krxd.net", "capture_leakage": true, "client_side_storage": "localStorage,cookie", "userData_host": "cdn.krxd.net", "control_tag_namespace": null, "control_tag_version": "stable", "capture_js_errors": "true", "datatag_version": "3", "target_fingerprint": false}, "services": {"impression": "//beacon.krxd.net/ad_impression.gif", "stats": "//apiservices.krxd.net/stats", "log": "//jslog.krxd.net/jslog.gif", "userData": "//cdn.krxd.net/user_data/segments/3", "um": "//apiservices.krxd.net/um", "optout": "//beacon.krxd.net/optout_check", "pixel": "//beacon.krxd.net/pixel.gif", "contentConnector": "//connector.krxd.net/content_connector/", "is_optout": "//beacon.krxd.net/optout_check", "set_optin": "//apiservices.krxd.net/consumer/optin", "social": "//beacon.krxd.net/social.gif", "set_optout": "//apiservices.krxd.net/consumer/optout", "data": "//beacon.krxd.net/data.gif", "event": "//beacon.krxd.net/event.gif"}, "geo": {}, "realtime_segments": [{"test": ["and", ["or", ["and", ["or", ["intersects", "$page_attr_cnn_site", "[\"cnn\"]"]], ["and", ["intersects", "$page_attr_cnn_rollup", "[\"health\"]"], ["intersects", "$page_attr_cnn_section", "[\"expert_qa\"]"]]]]], "id": "n0c7ap7lr"}, {"test": ["and", ["or", ["and", ["or", ["intersects", "$page_attr_cnn_sitesectionlevel1", "[\"awards season\"]"]]]]], "id": "ohtoh2tr9"}, {"test": ["and", ["or", ["and", ["or", ["intersects", "$page_attr_cnn_sitesectionlevel1", "[\"awards season\"]"]]]]], "id": "ohtonitcp"}], "confid": "ITb_4eqO"};

    // Wrap in a function and comment, then toString the func and replace
    // everything that's not the beginning or end of a JSON object, so we get a
    // string that's either empty or JSON.
    var esiGeo = String(function(){/*
      {"CONTINENT":"NA", "COUNTRY":"CA", "REGION":"QC", "CITY":"Montréal", "DMA":"0", "AREACODE":"0", "ZIP":"H3A", "LATITUDE":"45.508", "LONGITUDE":"-73.580"}
    */}).replace(/^.*\/\*[^{]+|[^}]+\*\/.*$/g, '');

    if (esiGeo) {
      config.geo = esiGeo;
    }

    Krux('config', config);
    
  };

  // ControlTag simply crashes when opening a website from Twitter browser on
  // iOS, temporarily disable CT when Twitter for iPhone is detected until they
  // fix this (works fine with other twitter client though)
  if (/Twitter for iPhone/.test(window.navigator.userAgent || '')) return;
    
  loadCT( "//cdn.krxd.net/ctjs/controltag.js.f99670595ccd46c65a517672ea749179", loadConfig );
})();
