/**
 * Copyright 2016 The AMP HTML Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS-IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Long list of, uhm, stuff the ads code needs to compile.
// All unquoted external properties need to be added here.
data.cid;
data.bn;
data.mid;
data.ws;
data.s;
data.sid;
data.zid;
data.pid;
data.custom3
window.uAd = {}
window.uAd.embed;
data.pageOpts;
data.adUnits;
data.clmb_slot;
data.clmb_position;
data.clmb_divid;
data.clmb_section
var Criteo;
Criteo.DisplayAd;
data.epl_si;
data.epl_isv;
data.epl_sv;
data.epl_sec;
data.epl_ksv;
data.epl_kvs;
data.epl_e;
data.guid;

var googletag;
window.googletag;
googletag.cmd;
googletag.cmd.push;
googletag.pubads;
googletag.defineSlot
data.slot;
var pubads;
pubads.addService;
pubads.markAsGladeOptOut;
pubads.markAsAmp;
pubads.setCorrelator;
pubads.markAsGladeControl;
googletag.enableServices;
data.slot.setCategoryExclusion;
pubads.setCookieOptions;
pubads.setTagForChildDirectedTreatment;
data.slot.setTargeting;
data.slot.setAttribute;
data.optin;
data.keyvalue;
var asmi;
asmi.sas;
asmi.sas.call;
asmi.sas.setup;
data.spot;
var MicroAd;
MicroAd.Compass;
MicroAd.Compass.showAd;
data.adhost
data.pos;
var dfpData;
dfpData.dfp;
var OX;
OX._requestArgs;
var oxRequest;
oxRequest.addAdUnit;
oxRequest.setAdSizes;
oxRequest.getOrCreateAdUnit;
data.zone;
data.sitepage;
data.auid;
data.widgetname;
data.urlprefix;
var rubicontag;
rubicontag.setFPV;
rubicontag.setFPI;
rubicontag.getSlot;
rubicontag.getAdServerTargeting;
data.account;
rubicontag.addKW;
rubicontag.setUrl;
rubicontag.setIntegration;
data.account;
data.kw;
data.visitor;
data.inventory;
data.callback;
var wads;
wads.init;
data.wbo_account_id;
data.wbo_customparameter;
data.wbo_tracking_element_id;
data.wbo_host;
data.wbo_fullhost;
data.wbo_bid_price;
data.wbo_price_paid;
data.wbo_random;
data.wbo_debug;
data.wbo_publisherclick;
data.wbo_disable_unload_event;
data.wbo_donottrack;
data.wbo_script_variant;
data.wbo_is_mobile;
data.wbo_vars;
data.wbo_weak_encoding;
data.psn;
var yieldbot;
yieldbot.psn;
yieldbot.enableAsync;
yieldbot.defineSlot;
yieldbot.go;
data.ybSlot;
yieldbot.nextPageview;
yieldbot.getSlotCriteria;
data.ymid;
var PostRelease;
PostRelease.Start;
PostRelease.checkIsAdVisible;
var _prx;
data.delayByTime;
window.PulsePointHeaderTag;
data.tagid;
data.tagtype;
data.zergid;
window.zergnetWidgetId;
window.MADSAdrequest = {};
window.MADSAdrequest.adrequest;
window.EzoicAmpAd;

@@ -2920,23 +2920,165 @@
 st;%0A
-window.EzoicAmp
+/**%0A * @constructor%0A * @param %7B!Window%7D global%0A * @param %7B!Object%7D data%0A */%0Awindow.EzoicAmpAd = function(global, data) %7B%7D;%0Awindow.EzoicAmpAd.prototype.create
 Ad;%0A

add extern for EzoicAmpAd (#4456)