
/* Controltag Loader for Centro */
(function(){
  var debugging = /kxdebug/.test(location);
  var log = function() {
    // It's a flag, so if it's there, then it means debug.
    debugging && window.console && console.log([].slice.call(arguments).join(' '));
  };

  var load = function(url, callback) {
    log('Loading script from:', url);
    var node = document.createElement('script');
    node.async = true;  // This is just to be friendly.
    node.src = url;

    // Connect to both in case we're in older IE.
    node.onload = node.onreadystatechange = function() {
      var state = node.readyState;
      if (!callback.done && (!state || /loaded|complete/.test(state))) {
        log('Script loaded from:', url);
        callback.done = true;  // Mark the callback, so we don't load it twice on accident.
        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(node, sibling);
  };

  // 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;

  var config = {"partner_segment_map": {}, "context_terms": [{"id": "JRbouLOF", "value": "cheap tickets"}, {"id": "JRbouLip", "value": "travel insurance"}, {"id": "JRbouL2q", "value": "airline tickets"}, {"id": "JRbouMOu", "value": "travel"}, {"id": "JRbouMi2", "value": "cheap hotels"}, {"id": "JRbouM3Q", "value": "cheap airline tickets"}, {"id": "JRbouNLX", "value": "flight tickets"}, {"id": "JRbouOQB", "value": "travel lodge"}, {"id": "JRbouOkO", "value": "travel channel"}, {"id": "JRbouO4A", "value": "one travel"}, {"id": "JRbouPL5", "value": "srs travels"}, {"id": "JRbouPrZ", "value": "cheap flight tickets"}, {"id": "JRbouQDF", "value": "cheap flight"}, {"id": "JRbouQX2", "value": "last minute travel"}, {"id": "JRbouQsE", "value": "travel agency"}, {"id": "JRbouQ_2", "value": "travel news"}, {"id": "JRbouRs7", "value": "travelling"}, {"id": "JRbouSBe", "value": "travel advisor"}, {"id": "JRbouSVr", "value": "traveling"}, {"id": "JRbouSp7", "value": "parveen travels"}, {"id": "JRbouS-4", "value": "travel agents"}, {"id": "JRbouTVB", "value": "travel sites"}, {"id": "JRbouTp8", "value": "kallada travels"}, {"id": "JRbouT-v", "value": "budget travel"}, {"id": "JRbouUVx", "value": "cheap travel insurance"}, {"id": "JRbouU5a", "value": "srm travels"}, {"id": "JRbouVTo", "value": "vrl travels"}, {"id": "JRbouVqC", "value": "travel deals"}, {"id": "JRbouWVd", "value": "travel agent"}, {"id": "JRbouWqb", "value": "cheap airfares"}, {"id": "JRxrShtZ", "value": "dogs"}, {"id": "JRxrSjew", "value": "cats"}, {"id": "JRxrSjmI", "value": "yorkshire terrier"}, {"id": "JRxrSjtk", "value": "puppies"}, {"id": "JRxrSj0_", "value": "rspca"}, {"id": "JRxrSj8d", "value": "cocker spaniel"}, {"id": "JRxrSlRO", "value": "pet"}, {"id": "JRxrSlYp", "value": "puppies for sale"}, {"id": "JRxrSlf9", "value": "puppy"}, {"id": "JRxrSlrV", "value": "dogs for sale"}, {"id": "JRxrSlyo", "value": "littlest pet shop"}, {"id": "JRxrSl58", "value": "pet shop"}, {"id": "JRxrSmBN", "value": "pet insurance"}, {"id": "JRxrSmIl", "value": "pet smart"}, {"id": "JRxrSmPz", "value": "pet supermarket"}, {"id": "JRxrSmXP", "value": "pet rescue"}, {"id": "JRxrSmep", "value": "pets"}, {"id": "JRxrSmmg", "value": "husky puppies"}, {"id": "JRxrSmuO", "value": "adopt a pet"}, {"id": "JRxrSm2F", "value": "kittens for sale"}, {"id": "JRxrSm9h", "value": "petshop"}, {"id": "JRxrSncl", "value": "rottweiler puppies"}, {"id": "JRxrSnkY", "value": "french bulldog puppies"}, {"id": "JRxrSnr1", "value": "pug puppies"}, {"id": "JRxrSn0T", "value": "pet finder"}, {"id": "JRxrSoS4", "value": "pet city"}, {"id": "JRxrSoaa", "value": "cocker spaniel puppies"}, {"id": "JRxrSojQ", "value": "english bulldog puppies"}, {"id": "JRxrSoqw", "value": "pet store"}, {"id": "JRxrSoyc", "value": "pet meds"}, {"id": "JRxrSo6D", "value": "pugs for sale"}, {"id": "JRxrSpBl", "value": "banfield pet hospital"}, {"id": "JRxrSpJI", "value": "pet valu"}, {"id": "JRxrSpQo", "value": "boston terrier puppies"}, {"id": "JRxrSpYM", "value": "adopt a dog"}, {"id": "JRxrSpfw", "value": "dog food"}, {"id": "JRxrSpnS", "value": "rescue dogs"}, {"id": "JRxrSpuz", "value": "pet friendly hotels"}, {"id": "JRxrSp2k", "value": "puppy finder"}, {"id": "JRxrSp-X", "value": "doberman puppies"}, {"id": "JRxrSqF9", "value": "pet stores"}, {"id": "JRxrSqNc", "value": "pet games"}, {"id": "JRxrSqVM", "value": "cats for sale"}, {"id": "JRxrSqcy", "value": "pets for sale"}, {"id": "JRxrSqki", "value": "vets for pets"}, {"id": "JRxrSqsP", "value": "exotic pets"}, {"id": "JRxrSqz5", "value": "preloved pets"}, {"id": "JRxrSq7e", "value": "pet barn"}, {"id": "JRxrSrEb", "value": "dogs for adoption"}, {"id": "JRxrSrUY", "value": "golden retriever rescue"}, {"id": "JRxrSrcF", "value": "german shepherd rescue"}, {"id": "JRxrSrjx", "value": "dog rescue"}, {"id": "JRxrSrsa", "value": "french bulldog rescue"}, {"id": "JRxrSr0I", "value": "pet supplies"}, {"id": "JRxrSr70", "value": "pet co"}, {"id": "JRxrSsDv", "value": "pet names"}, {"id": "JRxrSsLh", "value": "zhu zhu pets"}, {"id": "JRxrSsTZ", "value": "free puppies"}, {"id": "JRxrSsbM", "value": "siberian husky puppies"}, {"id": "JRxrSsjB", "value": "little pet shop"}, {"id": "JRxrSsrI", "value": "pet adoption"}, {"id": "JRxrSsy2", "value": "puppies for adoption"}, {"id": "JRxrSs6j", "value": "dog adoption"}, {"id": "JRxrStCS", "value": "pet grooming"}, {"id": "JRxrStKA", "value": "pets mart"}, {"id": "JRxrStTF", "value": "pet love"}, {"id": "JRxrSta1", "value": "sims 3 pets"}, {"id": "JRxrStij", "value": "free dogs"}, {"id": "JRxrStqc", "value": "dog for sale"}, {"id": "JRxrStyP", "value": "border collie rescue"}, {"id": "JRxrSt5-", "value": "cocker spaniel rescue"}, {"id": "JRxrSuEu", "value": "dachshund rescue"}, {"id": "JRxrSuMa", "value": "free kittens"}, {"id": "JRxrSuUR", "value": "pet paradise"}, {"id": "JRxrSucD", "value": "puppy for sale"}, {"id": "JRxrSukl", "value": "dalmatian puppies for sale"}, {"id": "JRxrSusr", "value": "great dane rescue"}, {"id": "JRxrSu0m", "value": "labradoodle rescue"}, {"id": "JRxrSu8e", "value": "pet shops"}, {"id": "JRxrSvEY", "value": "pet insurance reviews"}, {"id": "JRxrSvMT", "value": "bulldog rescue"}, {"id": "JRxrSvUN", "value": "bulldogs for sale"}, {"id": "JRxrSvcG", "value": "pet shop online"}, {"id": "JRxrSvj8", "value": "adopt a puppy"}, {"id": "JRxrSvtW", "value": "pet food"}, {"id": "JRxrSv1t", "value": "pet world"}, {"id": "JRxrSv9i", "value": "pet at home"}, {"id": "JRxrSwFf", "value": "pet club"}, {"id": "JRxrSwNV", "value": "pets corner"}, {"id": "JRxrSwVl", "value": "english bulldog puppies for sale"}, {"id": "JRxrSwdo", "value": "golden retriever puppies for sale"}, {"id": "JRxrSwlp", "value": "shih tzu rescue"}, {"id": "JRxrSwt6", "value": "rottweiler rescue"}, {"id": "JRxrSw14", "value": "pug rescue"}, {"id": "JRxrSxTt", "value": "boston terrier rescue"}, {"id": "JRxrSxbj", "value": "poodle rescue"}, {"id": "JRxrSxjJ", "value": "doberman rescue"}, {"id": "JRxrSxr4", "value": "english bulldog rescue"}, {"id": "JRxrSxzq", "value": "kittens for adoption"}, {"id": "JRxrSx7R", "value": "global pet foods"}, {"id": "JRxrSyDB", "value": "pet friendly accommodation"}, {"id": "JRxrSyKt", "value": "pet gates"}, {"id": "JRxrSySZ", "value": "pet carrier"}, {"id": "JV7-KgyN", "value": "Absolutely chicago Segway Tours"}, {"id": "JV7-Kv3I", "value": "Accenting Chicago Events and Tours"}, {"id": "JV7-K8Wt", "value": "Adler Planetarium"}, {"id": "JV7-LI3Q", "value": "All Trusted Tours and Attractions of Chicago"}, {"id": "JV7-LQrC", "value": "Alternative Chicago Experience"}, {"id": "JV7-LRBF", "value": "American Sightseeing Chicago"}, {"id": "JV7-LRQI", "value": "Art Institute of Chicago"}, {"id": "JV7-LRfC", "value": "Brookfield Zoo"}, {"id": "JV7-LRub", "value": "Buckingham Fountain"}, {"id": "JV7-LR9b", "value": "Centennial Fountain and Water Arc"}, {"id": "JV7-LSMa", "value": "Chicago Architecture Foundation"}, {"id": "JV7-LScy", "value": "Chicago Beer Experience"}, {"id": "JV7-LSsC", "value": "Chicago Botanic Garden"}, {"id": "JV7-LS7G", "value": "Chicago Childrens Museum"}, {"id": "JV7-LTKV", "value": "Chicago Chinese Cultural Institute"}, {"id": "JV7-LTZZ", "value": "chicago Chcolate Tours"}, {"id": "JV7-LToD", "value": "Chicago cityPass"}, {"id": "JV7-LUGg", "value": "Chicago Crime Tours"}, {"id": "JV7-LUl3", "value": "Chicago Cultural Center"}, {"id": "JV7-LU04", "value": "Chicago Detours"}, {"id": "JV7-LVDw", "value": "United Nations Foundation"}, {"id": "JV7-LVUK", "value": "chicago dine-Around"}, {"id": "JV7-LVjU", "value": "Chicago Food Planet Food Tours"}, {"id": "JV7-LVzM", "value": "chicago Gray line"}, {"id": "JV7-LWCJ", "value": "Chicago Greeter"}, {"id": "JV7-LWSS", "value": "chicago helicopter Express"}, {"id": "JV7-LWij", "value": "Chicago History Museum"}, {"id": "JV7-LWx3", "value": "Chicago Line Cruises"}, {"id": "JV7-LXCf", "value": "chicago Loop Bridges"}, {"id": "JV7-LXZj", "value": "Chicago Park District"}, {"id": "JV7-LXoe", "value": "Chicago Photo Safaris"}, {"id": "JV7-LX3W", "value": "Chicago Pizza Tours"}, {"id": "JV7-LYGn", "value": "Chicago Prime Tours"}, {"id": "JV7-LYWu", "value": "Chicago Sports Museum"}, {"id": "JV7-LYmO", "value": "The Chicago Tour company"}, {"id": "JV7-LY2i", "value": "Chicago Travel and Tours"}, {"id": "JV7-LZHY", "value": "Chicago Trolley and Double Decker Co"}, {"id": "JV7-LZYw", "value": "Chicagoland Transportation Solutions"}, {"id": "JV7-LZy6", "value": "Chicagos Finest Tours"}, {"id": "JV7-LaDO", "value": "Chicagos First Lady Cruises"}, {"id": "JV7-LbGI", "value": "Chicagos Womens park and gardens"}, {"id": "JV7-LbWt", "value": "City Segway Tours Chicago"}, {"id": "JV7-Lbm3", "value": "columbus Park Refrectory"}, {"id": "JV7-LcfZ", "value": "Daley Civic Center"}, {"id": "JV7-Ljp5", "value": "Descubre Chicago"}, {"id": "JV7-LwUI", "value": "Dinner Detective Murder Mystery Dinner Show"}, {"id": "JV7-L9pQ", "value": "DuSable Museum of African American history"}, {"id": "JV7-MLdx", "value": "Elis Cheesecake World"}, {"id": "JV7-MNG3", "value": "Federal Reserve Bank of Chicago"}, {"id": "JV7-MNV5", "value": "Frank Lloyd Wrights Home and Studio"}, {"id": "JV7-MNku", "value": "Frank Lloyd Wrights Robie House"}, {"id": "JV7-MNz5", "value": "Frank Lloyd Wrights unity Temple"}, {"id": "JV7-MODc", "value": "Free Tour by Foot"}, {"id": "JV7-MOSj", "value": "Garfield Park Conservatory"}, {"id": "JV7-MOkR", "value": "Go Chicago Card"}, {"id": "JV7-MOzw", "value": "Grant Park Rose Garden"}, {"id": "JV7-MPDp", "value": "Hersherys Chicago"}, {"id": "JV7-MPnG", "value": "History on Tap"}, {"id": "JV7-MQHa", "value": "Hop The pond"}, {"id": "JV7-MQh9", "value": "Illinois Railway museum"}, {"id": "JV7-MQxZ", "value": "inside chicago walking tours"}, {"id": "JV7-MROi", "value": "koval distillery"}, {"id": "JV7-MRuI", "value": "lagunitas brewing company"}, {"id": "JV7-MSKM", "value": "legoland discovery center"}, {"id": "JV7-MSbU", "value": "lincoln park conservator"}, {"id": "JV7-MSrZ", "value": "lincoln park zoo"}, {"id": "JV7-MS65", "value": "lookingglass theatre company"}, {"id": "JV7-MTUj", "value": "louis tours"}, {"id": "JV7-MTwy", "value": "macys on state street"}, {"id": "JV7-MUKh", "value": "mecury chicagos skyline cruiselines"}, {"id": "JV7-MUn2", "value": "metrowalkz self guided walking tours"}, {"id": "JV7-MU4C", "value": "millennium park"}, {"id": "JV7-MVYc", "value": "millennium trolley tours"}, {"id": "JV7-MVpP", "value": "museum of science and industry"}, {"id": "JV7-MV8u", "value": "my kind of town destination management"}, {"id": "JV7-MWNu", "value": "mystic blue cruises"}, {"id": "JV7-MWfT", "value": "navy pier"}, {"id": "JV7-MWvh", "value": "navy pier imax theatre"}, {"id": "JV7-MW_r", "value": "noble private art tours"}, {"id": "JV7-MXQq", "value": "odyssey cruises"}, {"id": "JV7-MXix", "value": "osaka garden"}, {"id": "JV7-MXzU", "value": "pullman rail journeys"}, {"id": "JV7-MZJI", "value": "seadog"}, {"id": "JV7-Mg2R", "value": "seadog ventures"}, {"id": "JV7-MtJ-", "value": "segway experience"}, {"id": "JV7-M5_x", "value": "segway chicago"}, {"id": "JV7-NGSq", "value": "shoreline sightseeing"}, {"id": "JV7-NGml", "value": "sidetour"}, {"id": "JV7-NG27", "value": "skydeck chicago"}, {"id": "JV7-NHG8", "value": "spirit of chicago"}, {"id": "JV7-NHWy", "value": "swedish american museum"}, {"id": "JV7-NHrC", "value": "tastebud tours"}, {"id": "JV7-NH6t", "value": "tourbudy"}, {"id": "JV7-NIKb", "value": "tours r us chicago"}, {"id": "JV7-NIaL", "value": "wanderbikes"}, {"id": "JV7-NIqB", "value": "washington park refectory"}, {"id": "JV7-NI8C", "value": "waterriders"}, {"id": "JV7-NJMw", "value": "wendella"}, {"id": "JV7-NJdz", "value": "wild onion walks"}, {"id": "JV7-NJv3", "value": "wild onion walks chicago"}, {"id": "JV7-NKCP", "value": "windy city connection"}, {"id": "JV7-NKUy", "value": "windy city wine tours"}, {"id": "JV7-NKn_", "value": "field museum"}, {"id": "JV7-NK64", "value": "john hanckock building"}, {"id": "JV7-NLMs", "value": "sears tower"}, {"id": "JV7-NLen", "value": "willis tower"}, {"id": "JV7-NLwQ", "value": "block 37"}, {"id": "JV7-NMDB", "value": "water tower place"}, {"id": "JV7-NMVr", "value": "state street"}, {"id": "JV7-NMnr", "value": "magnificent mile"}, {"id": "JV7-NM5g", "value": "mag mile"}, {"id": "JV7-NNMk", "value": "shakespeare on the lake"}, {"id": "JV7-NNj4", "value": "lurie garden"}, {"id": "JV7-NN4c", "value": "jay pritzker pavillion"}, {"id": "JV7-NOS3", "value": "pritzker pavillion"}, {"id": "JV7-NOzg", "value": "cloud gate"}, {"id": "JV7-NPa9", "value": "the bean"}, {"id": "JV7-NPtN", "value": "crown fountain"}, {"id": "JV7-NQOI", "value": "crown fountain at millennium park"}, {"id": "JV7-NQha", "value": "boeing galleries"}, {"id": "JV7-NQy3", "value": "wrigley field"}, {"id": "JV7-NREu", "value": "wrigley square and millennium monument"}, {"id": "JV7-NRXm", "value": "bp bridge"}, {"id": "JV7-NRp0", "value": "mccormick tribune ice rink and plaze"}, {"id": "JV7-NSHl", "value": "ice skating at millennium park"}, {"id": "JV7-NSaG", "value": "harris theatre"}, {"id": "JV7-NSwR", "value": "nichols bridgeway"}, {"id": "JV7-NTDE", "value": "chicago shakespeare theatre"}, {"id": "JV7-NTVn", "value": "landshark beer garden"}, {"id": "JV7-NToj", "value": "navy peir fireworks"}, {"id": "JV7-NT_d", "value": "harry carrays"}, {"id": "JV7-NUZS", "value": "harry carrays tavern"}, {"id": "JV7-NUu5", "value": "Grant Park"}, {"id": "JV7-NVKK", "value": "agora"}, {"id": "JV7-NVeU", "value": "lions at the art institute"}, {"id": "JV7-NV3S", "value": "sky deck"}, {"id": "JV7-NWM-", "value": "trump international hotel and tower chicago"}, {"id": "JV7-NWhg", "value": "trump chicago"}, {"id": "JV7-NW1W", "value": "palmer house"}, {"id": "JV7-NXJa", "value": "grant park music festival"}, {"id": "JV7-NXcw", "value": "lollapalooza"}, {"id": "JV7-NXxf", "value": "taste of chicago"}, {"id": "JV7-NYFZ", "value": "chicago blues festival"}, {"id": "JV7-NYXP", "value": "second city"}, {"id": "JV7-NYpB", "value": "navy peier ferris wheel"}, {"id": "JV7-NY7k", "value": "omni chicago"}, {"id": "JV7-NZNn", "value": "sheraton chicago"}, {"id": "JV7-NZjE", "value": "chicago marriott"}, {"id": "JV7-NZ3O", "value": "hilton chicago"}, {"id": "JV7-NaLi", "value": "the drake"}, {"id": "JV7-Nafj", "value": "four seasons hotel chicago"}, {"id": "JV7-Nazo", "value": "milenorth"}, {"id": "JV7-NbIN", "value": "the tremont chicago"}, {"id": "JV7-NbcD", "value": "hotel chicago"}, {"id": "JV7-Nb0E", "value": "intercontinental chicago"}, {"id": "JV7-NcHX", "value": "renaissance chicago"}, {"id": "JV7-NceJ", "value": "fairmont chicago"}, {"id": "JV7-Ndk1", "value": "acme hotel chicago"}, {"id": "JV7-Nl0k", "value": "allegro chicago"}, {"id": "JV7-NyZE", "value": "kimpton chicago"}, {"id": "JV7-N-0O", "value": "aloft chicago"}, {"id": "JV7-OEpX", "value": "burnham hotel"}, {"id": "JV7-OE6N", "value": "chicago essex inn"}, {"id": "JV7-OFKk", "value": "congress plaza hotel"}, {"id": "JV7-OFaI", "value": "conrad chicago"}, {"id": "JV7-OFqk", "value": "dana hotel"}, {"id": "JV7-OF_b", "value": "dewitt place"}, {"id": "JV7-OGPU", "value": "godfrey hotel chicago"}, {"id": "JV7-OGfH", "value": "hard rock hotel chicago"}, {"id": "JV7-OGu8", "value": "hotel blake"}, {"id": "JV7-OHAa", "value": "hotel felix chicago"}, {"id": "JV7-OHQ9", "value": "hotel indigo chicago"}, {"id": "JV7-OHhs", "value": "hotel lincoln"}, {"id": "JV7-OH5Y", "value": "hotel palomar"}, {"id": "JV7-OIbz", "value": "inn of chicago"}, {"id": "JV7-OIvQ", "value": "james hotel"}, {"id": "JV7-OJao", "value": "jw marriott chicago"}, {"id": "JV7-OJrN", "value": "kinzie hotel"}, {"id": "JV7-OJ7p", "value": "the langham chicago"}, {"id": "JV7-OKX2", "value": "lowes chicago"}, {"id": "JV7-OK4K", "value": "majestic hotel"}, {"id": "JV7-OLXA", "value": "millennium knickerbocker"}, {"id": "JV7-OLw7", "value": "monaco kimpton"}, {"id": "JV7-OMEt", "value": "omni chicago hotel"}, {"id": "JV7-OMVY", "value": "peninsula chicago"}, {"id": "JV7-OMru", "value": "penthouse at grand plaza"}, {"id": "JV7-ONGj", "value": "public chicago"}, {"id": "JV7-ONfL", "value": "blu aqua"}, {"id": "JV7-ON67", "value": "radisson blu aqua"}, {"id": "JV7-OOcX", "value": "raffaello hotel"}, {"id": "JV7-OOvo", "value": "ritz carlton chicago"}, {"id": "JV7-OPSc", "value": "sofitel chicago"}, {"id": "JV7-OPlH", "value": "swisshotel chicago"}, {"id": "JV7-OQZp", "value": "talbott hotel"}, {"id": "JV7-OYNf", "value": "thewit chicago"}, {"id": "JV7-Ok77", "value": "tremont chicago"}, {"id": "JV7-Oxer", "value": "virgin hotels chicago"}, {"id": "JV7-O-Gc", "value": "w chicago"}, {"id": "JV7-PBT0", "value": "waldorph astoria chicago"}, {"id": "JV7-PBlB", "value": "warwick allerton hotel chicago"}, {"id": "JV7-PB1S", "value": "westin chicago"}, {"id": "JV7-PCFy", "value": "wheeler mansion"}, {"id": "JV7-PCWX", "value": "whitehall hotel"}, {"id": "JV7-PCmx", "value": "wicker park inn"}, {"id": "JV7-PC3b", "value": "willows hotel"}, {"id": "JV7-PDW5", "value": "wyndham grand chicago"}], "tags": [{"content": "<script>\r\n\r\n(function() {\r\n\t_ml = window._ml || {};\r\n\t_ml.pub = '748';\r\n\t_ml.redirect = '//beacon.krxd.net/usermatch.gif?partner=madisonlogic&partner_uid=[PersonID]';\r\n\tvar s = document.getElementsByTagName('script')[0],\r\n\t\tcd = new Date(),\r\n\t\tmltag = document.createElement('script');\r\n\tmltag.type = 'text/javascript';\r\n\tmltag.async = true;\r\n\tmltag.src = '//ml314.com/tag.aspx?' + cd.getDate() + cd.getMonth() + cd.getFullYear();\r\n\ts.parentNode.insertBefore(mltag, s);\r\n})();\r\n\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", "freq_cap": 3, "timing": "asap", "method": "document", "type": "publisher", "id": 35714, "name": "Madison Logic user match"}, {"content": "<script>\r\n\r\n(function(){\r\n\r\nvar prefix = window.location.protocol == 'https:' ? \"https:\" : \"http:\";\r\nnew Image().src = \"//pixel.sitescout.com/connectors/krux/usersync?redir=\" + prefix + \"//beacon.krxd.net%2Fusermatch.gif%3Fpartner_id%3Dsscout%26partner_uid%3D%24UUID\";\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": 1, "content_type": "html", "freq_cap": 3, "timing": "asap", "method": "document", "type": "publisher", "id": 54735, "name": "SiteScout user match"}, {"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": 26681, "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": 16189, "name": "Krux Geographic Data provider tag"}, {"content": "", "target": null, "target_action": "append", "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 88, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "id": 56674, "name": "Dun & Bradstreet provider tag"}, {"content": "<script>\r\n\r\n(function () {\r\n_ml = window._ml || {};\r\n_ml.pub = '748';\r\n_ml.redirect = '//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\r\n</script>", "target": null, "target_action": "append", "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 47, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "data provider", "id": 33177, "name": "Madison Logic provider tag"}, {"content": "<script>\r\n(function(){\r\n    var kuid = Krux('get', 'user');\r\n        if (kuid) {\r\n            var prefix = 'https:';\r\n            var rurl = prefix + '//cms.analytics.yahoo.com/cms?partner_id=KRUX';\r\n            var i = new Image();\r\n            i.src = rurl;\r\n        }\r\n})();\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": 62753, "name": "Y! DataX"}, {"content": "<script>\r\n    (function() {\r\n        var prefix = location.protocol == 'https:' ? \"https\" : \"http\";\r\n        var tm_url = prefix + '://rtd.tubemogul.com/upi/pid/NC4WTmcy?redir=' + prefix + '%3A%2F%2Fbeacon.krxd.net%2Fusermatch.gif%3Fpartner_id%3Dcb276571-e0d9-4438-9fd4-80a1ff034b01%26puid%3D%24%7BTM_USER_ID%7D'\r\n        var i = new Image();\r\n        i.src = tm_url;\r\n    })();\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": 62306, "name": "TubeMogul User Matching"}, {"content": "<script>\r\n    (function() {\r\n        var kuid = Krux('get', 'user');\r\n        if (kuid) {\r\n            var prefix = location.protocol == 'https:' ? \"https:\" : \"http:\";\r\n            var kurl_params = encodeURIComponent(\"_kuid=\" + kuid + \"&_kdpid=d7158cb7-a851-4e3c-b7ab-cc9e815b2399&dlxid=<na_id>&dlxdata=<na_da>\");\r\n            var kurl = prefix + \"//beacon.krxd.net/data.gif?\" + kurl_params;\r\n            var dlx_url = '//r.nexac.com/e/getdata.xgi?dt=br&pkey=gwjn34gwjnh86&ru=' + kurl;\r\n            var i = new Image();\r\n            i.src = dlx_url;\r\n        }\r\n    })();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 1, "content_type": "html", "freq_cap": 1, "timing": "onload", "method": "document", "type": "publisher", "id": 64939, "name": "Datalogix Custom User Sync"}, {"content": "<script>\r\n\r\n(function() { \r\n  var i = new Image(); \r\n  i.src = '//rs.gwallet.com/r1/cm/p70r' + Date.now(); \r\n}\r\n)();\r\n\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": 44721, "name": "RadiumOne User Match"}, {"content": "<script>\r\n(function(){     \r\n\tvar kuid = window.Krux('get', 'user');\r\n\tif (kuid) {\r\n\t     var min = 1000000000;\r\n\t     var max = 9999999999;\r\n\t     var rand = Math.floor(Math.random() * (max - min)) + min;\r\n\t     var prefix = location.protocol == 'https:' ? \"https:\" :\"http:\";\r\n\t     var url = prefix \r\n\t               + '//t.mookie1.com/t/v1/event?migClientId=6726&migAction=krux&migSource=mig&migRandom='\r\n\t               + rand \r\n\t               +'&migParam1='\r\n\t               + kuid;\r\n\t     (new Image()).src = url;\r\n\t     \r\n\t}\r\n})();\r\n</script>", "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": 43454, "name": "xaxis match"}, {"content": "<script>\r\n(function(){\r\n    function retrieve(n) {\r\n      var m, k = 'kx' + n;\r\n      if (window.localStorage) {\r\n        return window.localStorage[k] || \"\";\r\n      } else if (navigator.cookieEnabled) {\r\n          m = document.cookie.match(k + '=([^;]*)');\r\n          return (m && unescape(m[1])) || \"\";\r\n      } else {\r\n            return '';\r\n      }\r\n    }\r\n    var Krux = window.Krux('ns:centro');\r\n    var kuid = retrieve('centro_user');\r\n    if (kuid) {\r\n    Krux('require:http').pixel({\r\n      url: \"//krxd.nexac.com/dlx.gif\",\r\n      data: {\r\n          _kdpid: '2dd640a6-6ebd-4d4f-af30-af8baa441a0d',\r\n          kuid: kuid\r\n      }});\r\n  }\r\n  })();\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": 28357, "name": "DataLogix Cookie Match"}, {"content": "<script>\r\n(function(){\r\n    function retrieve(n) {\r\n      var m, k = 'kx' + n;\r\n      if (window.localStorage) {\r\n        return window.localStorage[k] || \"\";\r\n      } else if (navigator.cookieEnabled) {\r\n          m = document.cookie.match(k + '=([^;]*)');\r\n          return (m && unescape(m[1])) || \"\";\r\n      } else {\r\n            return '';\r\n      }\r\n    }\r\n    var Krux = window.Krux('ns:centro');\r\n    var kuid = retrieve('centro_user');\r\n  if (kuid) {\r\n    Krux('require:http').pixel({\r\n      url: \"//loadm.exelator.com/load\",\r\n      data: {\r\n          _kdpid: 'e4942ff0-4070-4896-a7ef-e6a5a30ce9f9',\r\n          buid: kuid,\r\n          p: '204',\r\n          g: '270',\r\n          j: '0'\r\n      }});\r\n  }\r\n  })();\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": 28359, "name": "eXelate Cookie Match"}, {"content": "<script>\r\n(function() {\r\n    function retrieve(n) {\r\n      var m, k = 'kx' + n;\r\n      if (window.localStorage) {\r\n        return window.localStorage[k] || \"\";\r\n      } else if (navigator.cookieEnabled) {\r\n          m = document.cookie.match(k + '=([^;]*)');\r\n          return (m && unescape(m[1])) || \"\";\r\n      } else {\r\n            return '';\r\n      }\r\n    }\r\n    var Krux = window.Krux('ns:centro');\r\n    var kuid = retrieve('centro_user');\r\n  if (kuid) {\r\n      // adadvisor redirects to http://logger... so it's not https safe\r\n      if (location.protocol == \"http:\") {\r\n         var u = \"http://adadvisor.net/adscores/g.js?sid=9212244187&_kdpid=2111c0af-fc3a-446f-ab07-63aa74fbde8e\";\r\n         (new Image()).src = u;\r\n       }\r\n   }\r\n})();\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": 28360, "name": "AdAdvisor Data Tag"}, {"content": "<script>\r\n(function(){\r\n  var kuid = Krux('get', 'user');\r\n  if (kuid) {\r\n      var liveramp_url = 'https://idsync.rlcdn.com/379708.gif?partner_uid=' + kuid;\r\n      var i = new Image();\r\n      i.src = liveramp_url;     \r\n  }\r\n})();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 1, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "publisher", "id": 60872, "name": "LiveRamp User Match"}, {"content": "<script>\r\n(function(){\r\n  var kuid = Krux('get', 'user');\r\n  if (kuid) {\r\n      var liveramp_url = 'https://idsync.rlcdn.com/379708.gif?partner_uid=' + kuid;\r\n      var i = new Image();\r\n      i.src = liveramp_url;      \r\n  }\r\n})();\r\n</script>", "target": "", "target_action": null, "require": "", "docwrite": null, "template_replacement": 1, "execution_results": null, "tier": 1, "internal": 21, "content_type": "html", "freq_cap": 3, "timing": "onload", "method": "document", "type": "data provider", "id": 23754, "name": "Acxiom S2S provider tag"}, {"content": "<script>\r\n  (function() {\r\n    function retrieve(n) {\r\n      var m, k = 'kx' + n;\r\n      if (window.localStorage) {\r\n        return window.localStorage[k] || \"\";\r\n      } else if (navigator.cookieEnabled) {\r\n          m = document.cookie.match(k + '=([^;]*)');\r\n          return (m && unescape(m[1])) || \"\";\r\n      } else {\r\n            return '';\r\n      }\r\n    }\r\n    var Krux = window.Krux('ns:centro');\r\n    var kuid = retrieve('centro_user');\r\n    if (kuid) {\r\n        Krux('require:http').pixel({\r\n            url: \"//s.ixiaa.com/digi/C726AB29-0470-440B-B8D2-D552CED3A3DC/a.gif\"});\r\n    }\r\n  })();\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": 28363, "name": "IXI Data Provider Tag"}, {"content": "<script>\r\n(function() {\r\n    var kuid = Krux('get', 'user');\r\n    if (kuid) {\r\n        var prefix = window.location.protocol == 'https:' ? \"https:\" :\"http:\";\r\n        var r_url = prefix + '//secure-us.imrworldwide.com/cgi-bin/m?ci=ent599834&c1=kxkuid,'\r\n        var kurl = r_url + kuid;\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": {"onloadSafe": true, "docwrite": false, "listeners": []}, "tier": 1, "internal": false, "content_type": "html", "timing": "onload", "method": "document", "type": "publisher", "id": 44760, "name": "nielsen_usermatch"}], "buckets": [], "publisher": {"uuid": "7b3785dc-e5e8-4465-88e8-0bb2db048533", "id": 10215, "name": "Centro"}, "controltag_options": {"async": "true", "render": true}, "site": {"id": 22618, "name": "Washington Post"}, "realtime_segments": [], "dnt": null, "params": {"connector_host": "connector.krxd.net", "first_party_uid": false, "control_tag_load_sync": "false", "userData_host": "cdn.krxd.net", "disable_http_compression": false, "remove_kxhead": true, "supertag_requires_approval": false, "control_tag_namespace": "centro", "control_tag_stats_prefix": null, "beacon_host": "beacon.krxd.net", "control_tag_pixel_throttle": null, "store_realtime_segments": false, "user_id_cookie": null, "max_segments": null, "no_pii": 0, "recommend": false, "revenue_optimization": false, "context_terms": "true", "jslog_host": "jslog.krxd.net", "buckets": "", "site_level_supertag_config": "site", "max_slot_time": 1000, "services_host": "apiservices.krxd.net", "capture_leakage": true, "client_side_storage": "localStorage,cookie", "fingerprint": false, "config_source": 1, "control_tag_version": "stable", "capture_js_errors": true, "datatag_version": "3", "dfp_premium": "true", "userdata_host": "cdn.krxd.net", "target_fingerprint": false}, "services": {"event": "//beacon.krxd.net/event.gif", "impression": "//beacon.krxd.net/ad_impression.gif", "stats": "//apiservices.krxd.net/stats", "log": "//jslog.krxd.net/jslog.gif", "optout": "//beacon.krxd.net/optout_check", "um": "//apiservices.krxd.net/um", "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", "userData": "//cdn.krxd.net/userdata/get", "data": "//beacon.krxd.net/data.gif", "userdata": "//cdn.krxd.net/userdata/get", "addSegment": "//cdn.krxd.net/userdata/add"}, "geo": {}, "segments": [], "confid": "J_Q9A4vG"};

  // 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":"H3G", "LATITUDE":"45.499", "LONGITUDE":"-73.579"}
  */}).replace(/^.*\/\*[^{]+|[^}]+\*\/.*$/g, '');

  if (esiGeo) {
    log('Got a request for:', esiGeo, 'adding geo to config.');
    try {
      config.geo = window.JSON.parse(esiGeo);
    } catch (__) {
      // Couldn't parse, so setting to {}
      log('Unable to parse geo from:', config.geo);
      config.geo = {};
    }
  }

  
  
  

  load('//cdn.krxd.net/ctjs/controltag.js.875fd5b280a77e06def8c74a5a268e2c', function() {
    
    
    log('Loading krux configuration.');

    Krux('config', config);

    
  });
})();
