CINXE.COM
The path to climate neutrality: what is the role of carbon removals and cleantech innovation?
<!doctype html> <html lang="en" class="no-js"> <head><!-- InMobi Choice. Consent Manager Tag v3.0 (for TCF 2.2) --> <script type="text/javascript" async=true> (function() { var host = window.location.hostname; var element = document.createElement('script'); var firstScript = document.getElementsByTagName('script')[0]; var url = 'https://cmp.inmobi.com' .concat('/choice/', '1C3fJ9awG115y', '/', host, '/choice.js?tag_version=V3'); var uspTries = 0; var uspTriesLimit = 3; element.async = true; element.type = 'text/javascript'; element.src = url; firstScript.parentNode.insertBefore(element, firstScript); function makeStub() { var TCF_LOCATOR_NAME = '__tcfapiLocator'; var queue = []; var win = window; var cmpFrame; function addFrame() { var doc = win.document; var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]); if (!otherCMP) { if (doc.body) { var iframe = doc.createElement('iframe'); iframe.style.cssText = 'display:none'; iframe.name = TCF_LOCATOR_NAME; doc.body.appendChild(iframe); } else { setTimeout(addFrame, 5); } } return !otherCMP; } function tcfAPIHandler() { var gdprApplies; var args = arguments; if (!args.length) { return queue; } else if (args[0] === 'setGdprApplies') { if ( args.length > 3 && args[2] === 2 && typeof args[3] === 'boolean' ) { gdprApplies = args[3]; if (typeof args[2] === 'function') { args[2]('set', true); } } } else if (args[0] === 'ping') { var retr = { gdprApplies: gdprApplies, cmpLoaded: false, cmpStatus: 'stub' }; if (typeof args[2] === 'function') { args[2](retr); } } else { if(args[0] === 'init' && typeof args[3] === 'object') { args[3] = Object.assign(args[3], { tag_version: 'V3' }); } queue.push(args); } } function postMessageEventHandler(event) { var msgIsString = typeof event.data === 'string'; var json = {}; try { if (msgIsString) { json = JSON.parse(event.data); } else { json = event.data; } } catch (ignore) {} var payload = json.__tcfapiCall; if (payload) { window.__tcfapi( payload.command, payload.version, function(retValue, success) { var returnMsg = { __tcfapiReturn: { returnValue: retValue, success: success, callId: payload.callId } }; if (msgIsString) { returnMsg = JSON.stringify(returnMsg); } if (event && event.source && event.source.postMessage) { event.source.postMessage(returnMsg, '*'); } }, payload.parameter ); } } while (win) { try { if (win.frames[TCF_LOCATOR_NAME]) { cmpFrame = win; break; } } catch (ignore) {} if (win === window.top) { break; } win = win.parent; } if (!cmpFrame) { addFrame(); win.__tcfapi = tcfAPIHandler; win.addEventListener('message', postMessageEventHandler, false); } }; makeStub(); function makeGppStub() { const CMP_ID = 10; const SUPPORTED_APIS = [ '2:tcfeuv2', '6:uspv1', '7:usnatv1', '8:usca', '9:usvav1', '10:uscov1', '11:usutv1', '12:usctv1' ]; window.__gpp_addFrame = function (n) { if (!window.frames[n]) { if (document.body) { var i = document.createElement("iframe"); i.style.cssText = "display:none"; i.name = n; document.body.appendChild(i); } else { window.setTimeout(window.__gpp_addFrame, 10, n); } } }; window.__gpp_stub = function () { var b = arguments; __gpp.queue = __gpp.queue || []; __gpp.events = __gpp.events || []; if (!b.length || (b.length == 1 && b[0] == "queue")) { return __gpp.queue; } if (b.length == 1 && b[0] == "events") { return __gpp.events; } var cmd = b[0]; var clb = b.length > 1 ? b[1] : null; var par = b.length > 2 ? b[2] : null; if (cmd === "ping") { clb( { gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1” cmpStatus: "stub", // possible values: stub, loading, loaded, error cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled signalStatus: "not ready", // possible values: not ready, ready supportedAPIs: SUPPORTED_APIS, // list of supported APIs cmpId: CMP_ID, // IAB assigned CMP ID, may be 0 during stub/loading sectionList: [], applicableSections: [-1], gppString: "", parsedSections: {}, }, true ); } else if (cmd === "addEventListener") { if (!("lastId" in __gpp)) { __gpp.lastId = 0; } __gpp.lastId++; var lnr = __gpp.lastId; __gpp.events.push({ id: lnr, callback: clb, parameter: par, }); clb( { eventName: "listenerRegistered", listenerId: lnr, // Registered ID of the listener data: true, // positive signal pingData: { gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1” cmpStatus: "stub", // possible values: stub, loading, loaded, error cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled signalStatus: "not ready", // possible values: not ready, ready supportedAPIs: SUPPORTED_APIS, // list of supported APIs cmpId: CMP_ID, // list of supported APIs sectionList: [], applicableSections: [-1], gppString: "", parsedSections: {}, }, }, true ); } else if (cmd === "removeEventListener") { var success = false; for (var i = 0; i < __gpp.events.length; i++) { if (__gpp.events[i].id == par) { __gpp.events.splice(i, 1); success = true; break; } } clb( { eventName: "listenerRemoved", listenerId: par, // Registered ID of the listener data: success, // status info pingData: { gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1” cmpStatus: "stub", // possible values: stub, loading, loaded, error cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled signalStatus: "not ready", // possible values: not ready, ready supportedAPIs: SUPPORTED_APIS, // list of supported APIs cmpId: CMP_ID, // CMP ID sectionList: [], applicableSections: [-1], gppString: "", parsedSections: {}, }, }, true ); } else if (cmd === "hasSection") { clb(false, true); } else if (cmd === "getSection" || cmd === "getField") { clb(null, true); } //queue all other commands else { __gpp.queue.push([].slice.apply(b)); } }; window.__gpp_msghandler = function (event) { var msgIsString = typeof event.data === "string"; try { var json = msgIsString ? JSON.parse(event.data) : event.data; } catch (e) { var json = null; } if (typeof json === "object" && json !== null && "__gppCall" in json) { var i = json.__gppCall; window.__gpp( i.command, function (retValue, success) { var returnMsg = { __gppReturn: { returnValue: retValue, success: success, callId: i.callId, }, }; event.source.postMessage(msgIsString ? JSON.stringify(returnMsg) : returnMsg, "*"); }, "parameter" in i ? i.parameter : null, "version" in i ? i.version : "1.1" ); } }; if (!("__gpp" in window) || typeof window.__gpp !== "function") { window.__gpp = window.__gpp_stub; window.addEventListener("message", window.__gpp_msghandler, false); window.__gpp_addFrame("__gppLocator"); } }; makeGppStub(); var uspStubFunction = function() { var arg = arguments; if (typeof window.__uspapi !== uspStubFunction) { setTimeout(function() { if (typeof window.__uspapi !== 'undefined') { window.__uspapi.apply(window.__uspapi, arg); } }, 500); } }; var checkIfUspIsReady = function() { uspTries++; if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) { console.warn('USP is not accessible'); } else { clearInterval(uspInterval); } }; if (typeof window.__uspapi === 'undefined') { window.__uspapi = uspStubFunction; var uspInterval = setInterval(checkIfUspIsReady, 6000); } })(); </script> <!-- End InMobi Choice. Consent Manager Tag v3.0 (for TCF 2.2) --><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="language" content="en" /><meta name="generator" content="Isle Interactive Ltd" /><meta name="designer" content="Isle Interactive Ltd" /><meta name="viewport" content="initial-scale=1.0, width=device-width" /><meta name="format-detection" content="telephone=no" /><meta name="application-name" content="The Parliament Magazine" /><meta name="msapplication-TileColor" content="#ffffff" /><meta name="msapplication-config" content="/_img/_favicons/browserconfig.xml" /><meta name="theme-color" content="#ffffff" /> <meta name="robots" content="index, follow" /> <meta name="revisit-after" content="14 days" /><link rel="apple-touch-icon" sizes="180x180" href="/_img/_favicons/apple-touch-icon.png" /><link rel="icon" type="image/png" sizes="32x32" href="/_img/_favicons/favicon-32x32.png" /><link rel="icon" type="image/png" sizes="16x16" href="/_img/_favicons/favicon-16x16.png" /><link rel="manifest" href="/_img/_favicons/manifest.json" /><link rel="mask-icon" href="/_img/_favicons/safari-pinned-tab.svg" color="#231f20" /><link rel="shortcut icon" href="/favicon.ico" /><link rel="stylesheet" href="/_styles/core2.css?v14" media="screen" /><link rel="stylesheet" href="/_styles/layout2.css?v26" media="screen" /><link rel="preconnect" href="https://fonts.googleapis.com" /><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="" /> <!--<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&family=Playfair+Display:wght@400;700&family=Roboto+Condensed:wght@700&display=swap" rel="stylesheet" />--> <link href="https://fonts.googleapis.com/css2?family=Cardo:ital,wght@0,400;0,700;1,400&family=Open+Sans:wght@400;700&family=Roboto:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap" rel="stylesheet" /> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <script>!window.jQuery && document.write('<script src="/_scripts/jquery.js"><\/script>')</script> <script src="/_scripts/modernizr.js"></script> <script src="/_scripts/core.js?11"></script> <script src="/_scripts/plugins.js?2a"></script> <!-- ADVERTISING - START --> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <script> window.googletag = window.googletag || {cmd: []}; </script> <script> // define variables to hold gpt slot objects var gptSlots = []; var slot1,slot2,slot3,slot4,slot5,slot6,slot7; googletag.cmd.push(function() { headerMapping = googletag.sizeMapping(). addSize([0, 0], [1, 1]). addSize([320, 0], [[320, 50], [320, 100]]). addSize([801, 0], [[468, 60], [728, 90]]). addSize([1201, 0], [[970, 90], [970, 250], [728, 90]]). build(); lmpuMapping = googletag.sizeMapping(). addSize([0, 0], [1, 1]). addSize([300, 0], [300, 250]). addSize([801, 0], [[300, 600], [300, 250]]). addSize([1201, 0], [[300, 1050], [300, 600], [300, 250]]). build(); rmpuMapping = googletag.sizeMapping(). addSize([0, 0], [1, 1]). addSize([300, 0], [300, 250]). addSize([801, 0], [[300, 600], [300, 250]]). build(); inartMapping = googletag.sizeMapping(). addSize([0, 0], [1, 1]). addSize([300, 0], [300, 250]). build(); skinMapping = googletag.sizeMapping(). addSize([1201, 0], [1, 1]). build(); slot1 = googletag.defineSlot('/1048162/pm/news-article_header', [[320, 50], [970, 250], [970, 90], [320, 100], [1, 1], [728, 90]], 'div-gpt-ad-1608230013890-0').defineSizeMapping(headerMapping).setTargeting('lazyload').addService(googletag.pubads()); slot2 = googletag.defineSlot('/1048162/pm/news-article_left-side-top', [[300, 600], [300, 250]], 'div-gpt-ad-1608230013890-1').defineSizeMapping(rmpuMapping).setTargeting('lazyload').addService(googletag.pubads()); slot3 = googletag.defineSlot('/1048162/pm/news-article_right-side-top', [300, 250], 'div-gpt-ad-1608230013890-2').setTargeting('lazyload').addService(googletag.pubads()); slot4 = googletag.defineSlot('/1048162/pm/news-article_right-side-bot', [[300, 1050], [300, 600], [300, 250]], 'div-gpt-ad-1608230013890-3').defineSizeMapping(lmpuMapping).setTargeting('lazyload').addService(googletag.pubads()); slot5 = googletag.defineSlot('/1048162/pm/news-article_teads', [1, 1], 'div-gpt-ad-1608230013890-4').setTargeting('lazyload').addService(googletag.pubads()); slot6 = googletag.defineSlot('/1048162/pm/news-article_inarticle', [[1, 1], [300, 250]], 'div-gpt-ad-1608230013890-5').defineSizeMapping(inartMapping).setTargeting('lazyload').addService(googletag.pubads()); slot7 = googletag.defineSlot('/1048162/pm/news-article_skin', [1, 1], 'div-gpt-ad-1608230013890-6').defineSizeMapping(skinMapping).setTargeting('lazyload').addService(googletag.pubads()); googletag.defineSlot('/1048162/pm/news-article_pixel-1', [1, 1], 'div-gpt-ad-1608230013890-7').setTargeting('lazyload').addService(googletag.pubads()); googletag.defineSlot('/1048162/pm/news-article_pixel-2', [1, 1], 'div-gpt-ad-1608230013890-8').setTargeting('lazyload').addService(googletag.pubads()); googletag.pubads().disableInitialLoad(); googletag.pubads().enableSingleRequest(); googletag.pubads().collapseEmptyDivs(); googletag.pubads().enableLazyLoad({ fetchMarginPercent: 200, renderMarginPercent: 100, mobileScaling: 2.0 }); googletag.enableServices();googletag.pubads().setTargeting("environment","production"); googletag.pubads().setTargeting("articletype","Q&A"); googletag.pubads().setTargeting("topic",["Energy & Environment"]); gptSlots.push(slot1, slot2, slot3, slot4, slot5, slot6, slot7); }); </script> <!-- ADVERTISING - END --> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WHDKTSQ');</script> <!-- End Google Tag Manager --> <script type="text/javascript"> var _elqQ = _elqQ || []; _elqQ.push(['elqSetSiteId', '1690315']); _elqQ.push(['elqTrackPageView']); (function () { function async_load() { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = '//img06.en25.com/i/elqCfg.min.js'; var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); } if (window.addEventListener) window.addEventListener('DOMContentLoaded', async_load, false); else if (window.attachEvent) window.attachEvent('onload', async_load); })(); </script><script type="text/javascript" src='https://www.google.com/recaptcha/api.js'></script><!-- Poool Tracking --> <script id="poool-engage" src="https://assets.poool.fr/engage.min.js" async></script> <script> const script = document.getElementById('poool-engage'); script.addEventListener('load', function() { Engage.init('B7H7E-5SALK-J1YCN-ZNZ63') .autoCreate(); }); </script> <!-- Poool Tracking End--><script src="https://cdn.p-n.io/pushly-sdk.min.js?domain_key=W6PndT8I8jSyIKDSivrEQYBdUvzu4EXy4W82" async></script> <script> window.PushlySDK = window.PushlySDK || []; function pushly() { window.PushlySDK.push(arguments) } pushly('load', { domainKey: 'W6PndT8I8jSyIKDSivrEQYBdUvzu4EXy4W82', sw: '/assets/pushly/pushly-sdk-worker.js' }); </script> <meta property="og:site_name" content="The Parliament Magazine" /> <meta property="og:locale" content="en_GB" /> <meta property="og:title" content="The path to climate neutrality: what is the role of carbon removals and cleantech innovation?" /> <meta property="og:description" content="Achieving the EU’s climate goals while maintaining economic growth and competitiveness is the key challenge of this new mandate. What role can carb..." /> <meta property="og:url" content="https://www.theparliamentmagazine.eu/partner/article/the-path-to-climate-neutrality-what-is-the-role-of-carbon-removals-and-cleantech-innovation" /> <meta property="og:image" content="https://www.theparliamentmagazine.eu/siteimg/share/ugc-1/fullnews/news/24835/24566_original.jpg" /> <meta property="og:image:type" content="image/jpeg" /> <meta property="og:type" content="article" /> <meta property="article:published_time" content="2024-11-12 07:06:02" /> <meta property="article:modified_time" content="2024-11-19 11:29:47" /> <link rel="canonical" href="https://www.theparliamentmagazine.eu/partner/article/the-path-to-climate-neutrality-what-is-the-role-of-carbon-removals-and-cleantech-innovation" /><meta name="Description" content="Achieving the EU’s climate goals while maintaining economic growth and competitiveness is the key challenge of this new mandate. What role can carbon ..." /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@parlimag" /> <meta name="twitter:url" content="https://www.theparliamentmagazine.eu/partner/article/the-path-to-climate-neutrality-what-is-the-role-of-carbon-removals-and-cleantech-innovation" /> <meta name="twitter:title" content="The path to climate neutrality: what is the role of carbon removals and cleantech innovation?" /> <meta name="twitter:description" content="Achieving the EU’s climate goals while maintaining economic growth and competitiveness is the key challenge of this new mandate. What role can carbon removals and cleantech innovation play? We speak with MEP Lidia Pereira (Portugal, EPP), and Kasia Wilk, Head of Public Affairs and Policy for Europe and Asia, at Drax, to find out more" /> <meta name="twitter:image" content="https://www.theparliamentmagazine.eu/siteimg/share/ugc-1/fullnews/news/24835/24566_original.jpg?v1" /> <title> The path to climate neutrality: what is the role of carbon removals and cleantech innovation? </title></head> <body > <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WHDKTSQ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <form method="post" action="/partner/article/the-path-to-climate-neutrality-what-is-the-role-of-carbon-removals-and-cleantech-innovation" id="form1"> <div class="aspNetHidden"> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE5Njg1MzgzMTcPZBYCZg9kFgRmD2QWCAIeD2QWBAIBDxYCHgRUZXh0BbEZdmFyIHNsb3QxLHNsb3QyLHNsb3QzLHNsb3Q0LHNsb3Q1LHNsb3Q2LHNsb3Q3OwogIGdvb2dsZXRhZy5jbWQucHVzaChmdW5jdGlvbigpIHsKCiAgICAgICAgaGVhZGVyTWFwcGluZyA9IGdvb2dsZXRhZy5zaXplTWFwcGluZygpLgogIAkJCWFkZFNpemUoWzAsIDBdLCBbMSwgMV0pLgogIAkJCWFkZFNpemUoWzMyMCwgMF0sIFtbMzIwLCA1MF0sIFszMjAsIDEwMF1dKS4KICAJCQlhZGRTaXplKFs4MDEsIDBdLCBbWzQ2OCwgNjBdLCBbNzI4LCA5MF1dKS4KICAJCQlhZGRTaXplKFsxMjAxLCAwXSwgW1s5NzAsIDkwXSwgWzk3MCwgMjUwXSwgWzcyOCwgOTBdXSkuCiAgCQkJYnVpbGQoKTsKCiAgICAgICAgbG1wdU1hcHBpbmcgPSBnb29nbGV0YWcuc2l6ZU1hcHBpbmcoKS4JCQogIAkJCWFkZFNpemUoWzAsIDBdLCBbMSwgMV0pLgogIAkJCWFkZFNpemUoWzMwMCwgMF0sIFszMDAsIDI1MF0pLgogIAkJCWFkZFNpemUoWzgwMSwgMF0sIFtbMzAwLCA2MDBdLCBbMzAwLCAyNTBdXSkuCiAgCQkJYWRkU2l6ZShbMTIwMSwgMF0sIFtbMzAwLCAxMDUwXSwgWzMwMCwgNjAwXSwgWzMwMCwgMjUwXV0pLgogIAkJCWJ1aWxkKCk7CgogICAgICAgIHJtcHVNYXBwaW5nID0gZ29vZ2xldGFnLnNpemVNYXBwaW5nKCkuCQkKICAJCQlhZGRTaXplKFswLCAwXSwgWzEsIDFdKS4KICAJCQlhZGRTaXplKFszMDAsIDBdLCBbMzAwLCAyNTBdKS4KICAJCQlhZGRTaXplKFs4MDEsIDBdLCBbWzMwMCwgNjAwXSwgWzMwMCwgMjUwXV0pLgogIAkJCWJ1aWxkKCk7CiAgICAgICAgCiAgICAgICAgICBpbmFydE1hcHBpbmcgPSBnb29nbGV0YWcuc2l6ZU1hcHBpbmcoKS4JCQogIAkJCWFkZFNpemUoWzAsIDBdLCBbMSwgMV0pLgogIAkJCWFkZFNpemUoWzMwMCwgMF0sIFszMDAsIDI1MF0pLgogIAkJCWJ1aWxkKCk7CgogICAgICAgIHNraW5NYXBwaW5nID0gZ29vZ2xldGFnLnNpemVNYXBwaW5nKCkuCiAgCQkJYWRkU2l6ZShbMTIwMSwgMF0sIFsxLCAxXSkuCiAgCQkJYnVpbGQoKTsKCiAgICBzbG90MSA9IGdvb2dsZXRhZy5kZWZpbmVTbG90KCcvMTA0ODE2Mi9wbS9uZXdzLWFydGljbGVfaGVhZGVyJywgW1szMjAsIDUwXSwgWzk3MCwgMjUwXSwgWzk3MCwgOTBdLCBbMzIwLCAxMDBdLCBbMSwgMV0sIFs3MjgsIDkwXV0sICdkaXYtZ3B0LWFkLTE2MDgyMzAwMTM4OTAtMCcpLmRlZmluZVNpemVNYXBwaW5nKGhlYWRlck1hcHBpbmcpLnNldFRhcmdldGluZygnbGF6eWxvYWQnKS5hZGRTZXJ2aWNlKGdvb2dsZXRhZy5wdWJhZHMoKSk7CiAgICBzbG90MiA9IGdvb2dsZXRhZy5kZWZpbmVTbG90KCcvMTA0ODE2Mi9wbS9uZXdzLWFydGljbGVfbGVmdC1zaWRlLXRvcCcsIFtbMzAwLCA2MDBdLCBbMzAwLCAyNTBdXSwgJ2Rpdi1ncHQtYWQtMTYwODIzMDAxMzg5MC0xJykuZGVmaW5lU2l6ZU1hcHBpbmcocm1wdU1hcHBpbmcpLnNldFRhcmdldGluZygnbGF6eWxvYWQnKS5hZGRTZXJ2aWNlKGdvb2dsZXRhZy5wdWJhZHMoKSk7CiAgICBzbG90MyA9IGdvb2dsZXRhZy5kZWZpbmVTbG90KCcvMTA0ODE2Mi9wbS9uZXdzLWFydGljbGVfcmlnaHQtc2lkZS10b3AnLCBbMzAwLCAyNTBdLCAnZGl2LWdwdC1hZC0xNjA4MjMwMDEzODkwLTInKS5zZXRUYXJnZXRpbmcoJ2xhenlsb2FkJykuYWRkU2VydmljZShnb29nbGV0YWcucHViYWRzKCkpOwogICAgc2xvdDQgPSBnb29nbGV0YWcuZGVmaW5lU2xvdCgnLzEwNDgxNjIvcG0vbmV3cy1hcnRpY2xlX3JpZ2h0LXNpZGUtYm90JywgW1szMDAsIDEwNTBdLCBbMzAwLCA2MDBdLCBbMzAwLCAyNTBdXSwgJ2Rpdi1ncHQtYWQtMTYwODIzMDAxMzg5MC0zJykuZGVmaW5lU2l6ZU1hcHBpbmcobG1wdU1hcHBpbmcpLnNldFRhcmdldGluZygnbGF6eWxvYWQnKS5hZGRTZXJ2aWNlKGdvb2dsZXRhZy5wdWJhZHMoKSk7CiAgICBzbG90NSA9IGdvb2dsZXRhZy5kZWZpbmVTbG90KCcvMTA0ODE2Mi9wbS9uZXdzLWFydGljbGVfdGVhZHMnLCBbMSwgMV0sICdkaXYtZ3B0LWFkLTE2MDgyMzAwMTM4OTAtNCcpLnNldFRhcmdldGluZygnbGF6eWxvYWQnKS5hZGRTZXJ2aWNlKGdvb2dsZXRhZy5wdWJhZHMoKSk7CiAgICBzbG90NiA9IGdvb2dsZXRhZy5kZWZpbmVTbG90KCcvMTA0ODE2Mi9wbS9uZXdzLWFydGljbGVfaW5hcnRpY2xlJywgW1sxLCAxXSwgWzMwMCwgMjUwXV0sICdkaXYtZ3B0LWFkLTE2MDgyMzAwMTM4OTAtNScpLmRlZmluZVNpemVNYXBwaW5nKGluYXJ0TWFwcGluZykuc2V0VGFyZ2V0aW5nKCdsYXp5bG9hZCcpLmFkZFNlcnZpY2UoZ29vZ2xldGFnLnB1YmFkcygpKTsKICAgIHNsb3Q3ID0gZ29vZ2xldGFnLmRlZmluZVNsb3QoJy8xMDQ4MTYyL3BtL25ld3MtYXJ0aWNsZV9za2luJywgWzEsIDFdLCAnZGl2LWdwdC1hZC0xNjA4MjMwMDEzODkwLTYnKS5kZWZpbmVTaXplTWFwcGluZyhza2luTWFwcGluZykuc2V0VGFyZ2V0aW5nKCdsYXp5bG9hZCcpLmFkZFNlcnZpY2UoZ29vZ2xldGFnLnB1YmFkcygpKTsKICAgIGdvb2dsZXRhZy5kZWZpbmVTbG90KCcvMTA0ODE2Mi9wbS9uZXdzLWFydGljbGVfcGl4ZWwtMScsIFsxLCAxXSwgJ2Rpdi1ncHQtYWQtMTYwODIzMDAxMzg5MC03Jykuc2V0VGFyZ2V0aW5nKCdsYXp5bG9hZCcpLmFkZFNlcnZpY2UoZ29vZ2xldGFnLnB1YmFkcygpKTsKICAgIGdvb2dsZXRhZy5kZWZpbmVTbG90KCcvMTA0ODE2Mi9wbS9uZXdzLWFydGljbGVfcGl4ZWwtMicsIFsxLCAxXSwgJ2Rpdi1ncHQtYWQtMTYwODIzMDAxMzg5MC04Jykuc2V0VGFyZ2V0aW5nKCdsYXp5bG9hZCcpLmFkZFNlcnZpY2UoZ29vZ2xldGFnLnB1YmFkcygpKTsKICAgIGdvb2dsZXRhZy5wdWJhZHMoKS5kaXNhYmxlSW5pdGlhbExvYWQoKTsKICAgIGdvb2dsZXRhZy5wdWJhZHMoKS5lbmFibGVTaW5nbGVSZXF1ZXN0KCk7CiAgICBnb29nbGV0YWcucHViYWRzKCkuY29sbGFwc2VFbXB0eURpdnMoKTsKICAgIGdvb2dsZXRhZy5wdWJhZHMoKS5lbmFibGVMYXp5TG9hZCh7CiAgICAgICAgZmV0Y2hNYXJnaW5QZXJjZW50OiAyMDAsCiAgICAgICAgcmVuZGVyTWFyZ2luUGVyY2VudDogMTAwLAogICAgICAgIG1vYmlsZVNjYWxpbmc6IDIuMAogICAgfSk7CiAgICBnb29nbGV0YWcuZW5hYmxlU2VydmljZXMoKTtnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCJlbnZpcm9ubWVudCIsInByb2R1Y3Rpb24iKTsNCmdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoImFydGljbGV0eXBlIiwiUSZBIik7DQoNCmdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoInRvcGljIixbIkVuZXJneSAmIEVudmlyb25tZW50Il0pOw0KZAICDxYCHwAFQCBncHRTbG90cy5wdXNoKHNsb3QxLCBzbG90Miwgc2xvdDMsIHNsb3Q0LCBzbG90NSwgc2xvdDYsIHNsb3Q3KTtkAiIPFgIfAAX7Bw0KPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iVGhlIFBhcmxpYW1lbnQgTWFnYXppbmUiIC8+DQo8bWV0YSBwcm9wZXJ0eT0ib2c6bG9jYWxlIiBjb250ZW50PSJlbl9HQiIgLz4NCjxtZXRhIHByb3BlcnR5PSJvZzp0aXRsZSIgY29udGVudD0iVGhlIHBhdGggdG8gY2xpbWF0ZSBuZXV0cmFsaXR5OiB3aGF0IGlzIHRoZSByb2xlIG9mIGNhcmJvbiByZW1vdmFscyBhbmQgY2xlYW50ZWNoIGlubm92YXRpb24/IiAvPg0KPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJBY2hpZXZpbmcgdGhlIEVV4oCZcyBjbGltYXRlIGdvYWxzIHdoaWxlIG1haW50YWluaW5nIGVjb25vbWljIGdyb3d0aCBhbmQgY29tcGV0aXRpdmVuZXNzIGlzIHRoZSBrZXkgY2hhbGxlbmdlIG9mIHRoaXMgbmV3IG1hbmRhdGUuIFdoYXQgcm9sZSBjYW4gY2FyYi4uLiIgLz4NCjxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vd3d3LnRoZXBhcmxpYW1lbnRtYWdhemluZS5ldS9wYXJ0bmVyL2FydGljbGUvdGhlLXBhdGgtdG8tY2xpbWF0ZS1uZXV0cmFsaXR5LXdoYXQtaXMtdGhlLXJvbGUtb2YtY2FyYm9uLXJlbW92YWxzLWFuZC1jbGVhbnRlY2gtaW5ub3ZhdGlvbiIgLz4NCjxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iaHR0cHM6Ly93d3cudGhlcGFybGlhbWVudG1hZ2F6aW5lLmV1L3NpdGVpbWcvc2hhcmUvdWdjLTEvZnVsbG5ld3MvbmV3cy8yNDgzNS8yNDU2Nl9vcmlnaW5hbC5qcGciIC8+DQo8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6dHlwZSIgY29udGVudD0iaW1hZ2UvanBlZyIgLz4NCjxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJhcnRpY2xlIiAvPg0KPG1ldGEgcHJvcGVydHk9ImFydGljbGU6cHVibGlzaGVkX3RpbWUiIGNvbnRlbnQ9IjIwMjQtMTEtMTIgMDc6MDY6MDIiIC8+DQo8bWV0YSBwcm9wZXJ0eT0iYXJ0aWNsZTptb2RpZmllZF90aW1lIiBjb250ZW50PSIyMDI0LTExLTE5IDExOjI5OjQ3IiAvPg0KZAIjDxYCHwAFsgENCjxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL3d3dy50aGVwYXJsaWFtZW50bWFnYXppbmUuZXUvcGFydG5lci9hcnRpY2xlL3RoZS1wYXRoLXRvLWNsaW1hdGUtbmV1dHJhbGl0eS13aGF0LWlzLXRoZS1yb2xlLW9mLWNhcmJvbi1yZW1vdmFscy1hbmQtY2xlYW50ZWNoLWlubm92YXRpb24iIC8+ZAIkDxYCHgdjb250ZW50BZsBQWNoaWV2aW5nIHRoZSBFVeKAmXMgY2xpbWF0ZSBnb2FscyB3aGlsZSBtYWludGFpbmluZyBlY29ub21pYyBncm93dGggYW5kIGNvbXBldGl0aXZlbmVzcyBpcyB0aGUga2V5IGNoYWxsZW5nZSBvZiB0aGlzIG5ldyBtYW5kYXRlLiBXaGF0IHJvbGUgY2FuIGNhcmJvbiAuLi5kAgIQZGQWBgIBD2QWAmYPZBYMAgEPZBYCAgEPFgIfAAXFATwhLS0gLzEwNDgxNjIvcG0vbmV3cy1hcnRpY2xlX2hlYWRlciAtLT4KPGRpdiBpZD0nZGl2LWdwdC1hZC0xNjA4MjMwMDEzODkwLTAnPgogIDxzY3JpcHQ+CiAgICBnb29nbGV0YWcuY21kLnB1c2goZnVuY3Rpb24oKSB7IGdvb2dsZXRhZy5kaXNwbGF5KCdkaXYtZ3B0LWFkLTE2MDgyMzAwMTM4OTAtMCcpOyB9KTsKICA8L3NjcmlwdD4KPC9kaXY+ZAIDD2QWAmYPZBYCZg9kFgJmD2QWAmYPZBYCZg8WAh8ABfICPGRpdiBjbGFzcz0icHJvbW8tdGV4dCI+DQogICA8cCBjbGFzcz0ib3N3YWxkIj5TdWJzY3JpYmUgdG8gVGhlIFBhcmxpYW1lbnQ8L3A+DQogICA8YSBocmVmPSJodHRwczovL3d3dy50cGdyb3Vwc2hvcC5jb20vc3RvcmUvcHJvZHVjdHMsdGhlLXBhcmxpYW1lbnRfMjEuaHRtIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImJ0biBidG4tLWRhcmsgYnRuLS14c21hbGwiID5TdWJzY3JpYmUgbm93PC9hPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwcm9tby1pbWciPg0KICA8aW1nIGFsdD0iU3Vic2NyaWJlIG5vdyIgc3JjPSIvdWdjLTEvdXBsb2Fkcy9wYWdlYmxvY2tzLzg1MjEvMzVlYjZkOTMwY2ExZGIxZmFlMjhjZmE5OWI1YzI2YWYuanBnIj4NCjwvZGl2PmQCBQ8WAh8ABbUOPHVsPjxsaT48YSBocmVmPSIvdGhlLWdyZWVuLWRlYWwuaHRtIiB0aXRsZT0iVGhlIEdyZWVuIERlYWwiPjxzcGFuPlRoZSBFVSdzIGdyZWVuIHRyYW5zaXRpb248L3NwYW4+PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9ldS1pbnN0aXR1dGlvbnMuaHRtIiB0aXRsZT0iRVUgSW5zdGl0dXRpb25zIj48c3Bhbj5FVSBJbnN0aXR1dGlvbnM8L3NwYW4+PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9mb3JlaWduLWFuZC1zZWN1cml0eS1wb2xpY3kuaHRtIiB0aXRsZT0iRm9yZWlnbiAmYW1wOyBTZWN1cml0eSBQb2xpY3kiPjxzcGFuPkZvcmVpZ24gJiBTZWN1cml0eSBQb2xpY3k8L3NwYW4+PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9lY29ub21pY3MuaHRtIiB0aXRsZT0iRWNvbm9taWNzIj48c3Bhbj5FY29ub21pY3M8L3NwYW4+PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii90ZWNobm9sb2d5Lmh0bSIgdGl0bGU9IlRlY2hub2xvZ3kiPjxzcGFuPlRlY2hub2xvZ3k8L3NwYW4+PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9lbmVyZ3ktYW5kLWVudmlyb25tZW50Lmh0bSIgdGl0bGU9IkVuZXJneSAmYW1wOyBFbnZpcm9ubWVudCI+PHNwYW4+RW5lcmd5ICYgRW52aXJvbm1lbnQ8L3NwYW4+PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9jdWx0dXJlLWFuZC1hcnRzLmh0bSIgdGl0bGU9IkN1bHR1cmUgJmFtcDsgQXJ0cyI+PHNwYW4+Q3VsdHVyZSAmIEFydHM8L3NwYW4+PC9hPjwvbGk+PGxpIGNsYXNzPSJuYXZEaXNhYmxlQ2xpY2sgbmF2TW9iVG9nZ2xlIGxpSGFzQ2hpbGRyZW4iPjxhIGhyZWY9Ii9tb3JlLmh0bSIgdGl0bGU9Ik1vcmUiPjxzcGFuPk1vcmU8L3NwYW4+PC9hPjx1bD48bGk+PGEgaHJlZj0iL21vcmUvYWJvdXQtdXMuaHRtIiB0aXRsZT0iQWJvdXQgVGhlIFBhcmxpYW1lbnQgTWFnYXppbmUgIHwgVGhlIFBhcmxpYW1lbnQgTWFnYXppbmUiPjxzcGFuPkFib3V0PC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIvbWFnYXppbmUuaHRtIiB0aXRsZT0iUHJpbnQgbWFnYXppbmUiPjxzcGFuPlByaW50IG1hZ2F6aW5lPC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIvbW9yZS9uZXdzbGV0dGVyLXJlZ2lzdHJhdGlvbi5odG0iIHRpdGxlPSJOZXdzbGV0dGVycyAmYW1wOyBSZWdpc3RyYXRpb24gIHwgVGhlIFBhcmxpYW1lbnQgTWFnYXppbmUiPjxzcGFuPk5ld3NsZXR0ZXI8L3NwYW4+PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vZXZlbnRzLnRoZXBhcmxpYW1lbnRtYWdhemluZS5ldS8iIHRpdGxlPSJFdmVudHMiPjxzcGFuPkV2ZW50czwvc3Bhbj48L2E+PC9saT48bGk+PGEgaHJlZj0iL21vcmUvdHJhaW5pbmcuaHRtIiB0aXRsZT0iUHJvZmVzc2lvbmFsIERldmVsb3BtZW50IFRyYWluaW5nIj48c3Bhbj5UcmFpbmluZzwvc3Bhbj48L2E+PC9saT48bGk+PGEgaHJlZj0iL21vcmUvY29tbWVyY2lhbC1vcHBvcnR1bml0aWVzLmh0bSIgdGl0bGU9IkNvbW1lcmNpYWwgT3Bwb3J0dW5pdGllcyAgfCBUaGUgUGFybGlhbWVudCBNYWdhemluZSI+PHNwYW4+Q29tbWVyY2lhbCBPcHBvcnR1bml0aWVzPC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIvbWVtYmVycy9kaXJlY3RvcnkuaHRtIiB0aXRsZT0iTWVtYmVycyBEaXJlY3RvcnkiPjxzcGFuPk1lbWJlcnMgRGlyZWN0b3J5PC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIvbW9yZS90aGUtZXVyb3BlYW4tcGFybGlhbWVudC1jb21taXR0ZWUtZ3VpZGUtMjAyNC5odG0iIHRpdGxlPSJUaGUgRXVyb3BlYW4gUGFybGlhbWVudCBDb21taXR0ZWUgR3VpZGUgMjAyNCI+PHNwYW4+VGhlIEV1cm9wZWFuIFBhcmxpYW1lbnQgQ29tbWl0dGVlIEd1aWRlIDIwMjQ8L3NwYW4+PC9hPjwvbGk+PC91bD48L2xpPjwvdWw+ZAIHDxYCHgdWaXNpYmxlZxYCAgEPFgIfAAXzAzx1bD48bGkgY2xhc3M9Im5vU3ViIj48YSBocmVmPSIvbmV3cy5odG0iIHRpdGxlPSJOZXdzIHwgVGhlIFBhcmxpYW1lbnQgTWFnYXppbmUiPjxzcGFuPk5ld3MgYW5hbHlzaXM8L3NwYW4+PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9mZWF0dXJlcy5odG0iIHRpdGxlPSJGZWF0dXJlcyI+PHNwYW4+RmVhdHVyZTwvc3Bhbj48L2E+PC9saT48bGk+PGEgaHJlZj0iL3EtYS5odG0iIHRpdGxlPSJRK0EiPjxzcGFuPlErQTwvc3Bhbj48L2E+PC9saT48bGk+PGEgaHJlZj0iL29waW5pb24uaHRtIiB0aXRsZT0iT3BpbmlvbiB8IFRoZSBQYXJsaWFtZW50IE1hZ2F6aW5lIj48c3Bhbj5PcGluaW9uPC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIvbW9yZS9uZXdzbGV0dGVyLXJlZ2lzdHJhdGlvbi5odG0iIHRpdGxlPSJOZXdzbGV0dGVycyAmYW1wOyBSZWdpc3RyYXRpb24gIHwgVGhlIFBhcmxpYW1lbnQgTWFnYXppbmUiPjxzcGFuPk5ld3NsZXR0ZXI8L3NwYW4+PC9hPjwvbGk+PC91bD5kAgkPFgIfAAW1Djx1bD48bGk+PGEgaHJlZj0iL3RoZS1ncmVlbi1kZWFsLmh0bSIgdGl0bGU9IlRoZSBHcmVlbiBEZWFsIj48c3Bhbj5UaGUgRVUncyBncmVlbiB0cmFuc2l0aW9uPC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIvZXUtaW5zdGl0dXRpb25zLmh0bSIgdGl0bGU9IkVVIEluc3RpdHV0aW9ucyI+PHNwYW4+RVUgSW5zdGl0dXRpb25zPC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIvZm9yZWlnbi1hbmQtc2VjdXJpdHktcG9saWN5Lmh0bSIgdGl0bGU9IkZvcmVpZ24gJmFtcDsgU2VjdXJpdHkgUG9saWN5Ij48c3Bhbj5Gb3JlaWduICYgU2VjdXJpdHkgUG9saWN5PC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIvZWNvbm9taWNzLmh0bSIgdGl0bGU9IkVjb25vbWljcyI+PHNwYW4+RWNvbm9taWNzPC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIvdGVjaG5vbG9neS5odG0iIHRpdGxlPSJUZWNobm9sb2d5Ij48c3Bhbj5UZWNobm9sb2d5PC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIvZW5lcmd5LWFuZC1lbnZpcm9ubWVudC5odG0iIHRpdGxlPSJFbmVyZ3kgJmFtcDsgRW52aXJvbm1lbnQiPjxzcGFuPkVuZXJneSAmIEVudmlyb25tZW50PC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSIvY3VsdHVyZS1hbmQtYXJ0cy5odG0iIHRpdGxlPSJDdWx0dXJlICZhbXA7IEFydHMiPjxzcGFuPkN1bHR1cmUgJiBBcnRzPC9zcGFuPjwvYT48L2xpPjxsaSBjbGFzcz0ibmF2RGlzYWJsZUNsaWNrIG5hdk1vYlRvZ2dsZSBsaUhhc0NoaWxkcmVuIj48YSBocmVmPSIvbW9yZS5odG0iIHRpdGxlPSJNb3JlIj48c3Bhbj5Nb3JlPC9zcGFuPjwvYT48dWw+PGxpPjxhIGhyZWY9Ii9tb3JlL2Fib3V0LXVzLmh0bSIgdGl0bGU9IkFib3V0IFRoZSBQYXJsaWFtZW50IE1hZ2F6aW5lICB8IFRoZSBQYXJsaWFtZW50IE1hZ2F6aW5lIj48c3Bhbj5BYm91dDwvc3Bhbj48L2E+PC9saT48bGk+PGEgaHJlZj0iL21hZ2F6aW5lLmh0bSIgdGl0bGU9IlByaW50IG1hZ2F6aW5lIj48c3Bhbj5QcmludCBtYWdhemluZTwvc3Bhbj48L2E+PC9saT48bGk+PGEgaHJlZj0iL21vcmUvbmV3c2xldHRlci1yZWdpc3RyYXRpb24uaHRtIiB0aXRsZT0iTmV3c2xldHRlcnMgJmFtcDsgUmVnaXN0cmF0aW9uICB8IFRoZSBQYXJsaWFtZW50IE1hZ2F6aW5lIj48c3Bhbj5OZXdzbGV0dGVyPC9zcGFuPjwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2V2ZW50cy50aGVwYXJsaWFtZW50bWFnYXppbmUuZXUvIiB0aXRsZT0iRXZlbnRzIj48c3Bhbj5FdmVudHM8L3NwYW4+PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9tb3JlL3RyYWluaW5nLmh0bSIgdGl0bGU9IlByb2Zlc3Npb25hbCBEZXZlbG9wbWVudCBUcmFpbmluZyI+PHNwYW4+VHJhaW5pbmc8L3NwYW4+PC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii9tb3JlL2NvbW1lcmNpYWwtb3Bwb3J0dW5pdGllcy5odG0iIHRpdGxlPSJDb21tZXJjaWFsIE9wcG9ydHVuaXRpZXMgIHwgVGhlIFBhcmxpYW1lbnQgTWFnYXppbmUiPjxzcGFuPkNvbW1lcmNpYWwgT3Bwb3J0dW5pdGllczwvc3Bhbj48L2E+PC9saT48bGk+PGEgaHJlZj0iL21lbWJlcnMvZGlyZWN0b3J5Lmh0bSIgdGl0bGU9Ik1lbWJlcnMgRGlyZWN0b3J5Ij48c3Bhbj5NZW1iZXJzIERpcmVjdG9yeTwvc3Bhbj48L2E+PC9saT48bGk+PGEgaHJlZj0iL21vcmUvdGhlLWV1cm9wZWFuLXBhcmxpYW1lbnQtY29tbWl0dGVlLWd1aWRlLTIwMjQuaHRtIiB0aXRsZT0iVGhlIEV1cm9wZWFuIFBhcmxpYW1lbnQgQ29tbWl0dGVlIEd1aWRlIDIwMjQiPjxzcGFuPlRoZSBFdXJvcGVhbiBQYXJsaWFtZW50IENvbW1pdHRlZSBHdWlkZSAyMDI0PC9zcGFuPjwvYT48L2xpPjwvdWw+PC9saT48L3VsPmQCCw9kFgICAQ8PZBYCHgtwbGFjZWhvbGRlcgUPRW50ZXIga2V5d29yZC9zZAIDD2QWAgIDD2QWAmYPZBYCAgIPZBYCZg9kFhBmD2QWAmYPFgIfAAWuAg0KPHNjcmlwdD4NCiAgIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOw0KICAgd2luZG93LmRhdGFMYXllci5wdXNoKHsNCiAgICAgICAiQXJ0aWNsZVR5cGUiOlt7Im5hbWUiOiJRJkEiLCAiaWQiIDozMzQ1fV0sDQogICAgICAgIkNhdGVnb3J5IjpbeyJuYW1lIjoiRW5lcmd5ICYgRW52aXJvbm1lbnQiLCAiaWQiIDozMzUxfV0sDQogICAgICAgIlRhZ2dpbmciOlt7Im5hbWUiOiJDYXJib24gQm9yZGVyIEFkanVzdG1lbnQgTWVjaGFuaXNtIiwgImlkIiA6MTM5Mn1dDQogICB9KTsNCjwvc2NyaXB0Pg0KZAICD2QWAmYPFgIfAAWQEjxkaXYgY2xhc3M9ImF2LXRpdGxlIj4NCiAgICA8aDE+VGhlIHBhdGggdG8gY2xpbWF0ZSBuZXV0cmFsaXR5OiB3aGF0IGlzIHRoZSByb2xlIG9mIGNhcmJvbiByZW1vdmFscyBhbmQgY2xlYW50ZWNoIGlubm92YXRpb24/PC9oMT4NCiAgIDxkaXYgY2xhc3M9ImF2LXN0YW5kRmlyc3QgcGxheWZhaXIiPkFjaGlldmluZyB0aGUgRVXigJlzIGNsaW1hdGUgZ29hbHMgd2hpbGUgbWFpbnRhaW5pbmcgZWNvbm9taWMgZ3Jvd3RoIGFuZCBjb21wZXRpdGl2ZW5lc3MgaXMgdGhlIGtleSBjaGFsbGVuZ2Ugb2YgdGhpcyBuZXcgbWFuZGF0ZS4gV2hhdCByb2xlIGNhbiBjYXJib24gcmVtb3ZhbHMgYW5kIGNsZWFudGVjaCBpbm5vdmF0aW9uPGJyIC8+CnBsYXk/IFdlIHNwZWFrIHdpdGggTUVQIExpZGlhIFBlcmVpcmEgKFBvcnR1Z2FsLCBFUFApLCBhbmQgS2FzaWEgV2lsaywgSGVhZCBvZiBQdWJsaWMgQWZmYWlycyBhbmQgUG9saWN5IGZvciBFdXJvcGUgYW5kIEFzaWEsIGF0IERyYXgsIHRvIGZpbmQgb3V0IG1vcmU8L2Rpdj4gDQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0iYXYtaW1hZ2UiPg0KICAgIDxkaXYgY2xhc3M9ImF2LW1haW4taW1nIj4NCiAgICAgICAgPGltZyBjbGFzcz0ibGF6eWxvYWQiIGRhdGEtc3JjPSIvc2l0ZWltZy9uZXdzLW1haW4vdWdjLTEvZnVsbG5ld3MvbmV3cy8yNDgzNS8yNDU2Nl9vcmlnaW5hbC5qcGciPg0KICAgIDwvZGl2Pg0KICAgIA0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9ImF2LWF1dGhvciI+DQogICAgPGRpdiBjbGFzcz0iYXYtYXV0aEltZyI+DQogICAgICAgICANCiAgICAgICAgICAgPGltZyBkYXRhLXNyYz0iL3NpdGVpbWcvYXV0aG9yaW1nL3VnYy0xL2Z1bGxuZXdzL2F1dGhvci80ODAyLzgzMF9vcmlnaW5hbC5qcGciIGNsYXNzPSJsYXp5bG9hZCIgYWx0PSJUaGUgUGFybGlhbWVudCBQYXJ0bmVyIENvbnRlbnQiPiANCiAgICAgICAgIA0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9ImF2LWF1dGhJbmZvIj4NCg0KICAgICAgICA8cCBjbGFzcz0iYXYtYXV0aE5hbWUiPg0KICAgICAgICAgICBCeSANCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICAgICBUaGUgUGFybGlhbWVudCBQYXJ0bmVyIENvbnRlbnQNCiAgICAgICAgDQogICAgICAgIDwvcD4NCg0KDQoNCjxwIGNsYXNzPSJhdi1hdXRoQmlvIj5UaGUgUGFybGlhbWVudCBQYXJ0bmVyIENvbnRlbnQgdGVhbSB3b3JrcyB3aXRoIG9yZ2FuaXNhdGlvbnMgZnJvbSBhY3Jvc3MgdGhlIHdvcmxkIHRvIGJyaW5nIHRoZWlyIHN0b3JpZXMgdG8gdGhlIGV5ZXMgb2YgcG9saWN5IG1ha2VycyBhbmQgaW5kdXN0cnkgc3Rha2Vob2xkZXJzIGFjcm9zcyBFdXJvcGUuPC9wPg0KDQogICAgICAgIDxwIGNsYXNzPSJhdi1kYXRlIj4xOSBOb3YgMjAyNDwvcD4NCg0KDQogICAgICAgIDxwIGNsYXNzPSJhdi1hdXRoVHdpdHRlciI+DQogICAgICAgICAgICA8YSB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Imljb24gaWNvbi0teCINCiAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3guY29tL0BQYXJsaW1hZyI+DQogICAgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIGltYWdlLXJlbmRlcmluZz0ib3B0aW1pemVRdWFsaXR5IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iMCAwIDUxMiA0NjIuNzk5Ij48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik00MDMuMjI5IDBoNzguNTA2TDMxMC4yMTkgMTk2LjA0IDUxMiA0NjIuNzk5SDM1NC4wMDJMMjMwLjI2MSAzMDEuMDA3IDg4LjY2OSA0NjIuNzk5aC03OC41NmwxODMuNDU1LTIwOS42ODNMMCAwaDE2MS45OTlsMTExLjg1NiAxNDcuODhMNDAzLjIyOSAwem0tMjcuNTU2IDQxNS44MDVoNDMuNTA1TDEzOC4zNjMgNDQuNTI3aC00Ni42OGwyODMuOTkgMzcxLjI3OHoiLz48L3N2Zz4NCg0KQFBhcmxpbWFnPC9hPg0KICAgICAgICA8L3A+DQoNCjxociBjbGFzcz0iaHItY2xpZW50IiAvPjxwIGNsYXNzPSJhdi1hdXRoTmFtZSBhdi1hdXRoQ2xpZW50IGF2LWF1dGhDbGllbnQtLW5vbGluayI+RHJheDwvcD4NCiAgICA8L2Rpdj4NCg0KDQoNCjwvZGl2Pg0KDQoNCjxkaXYgY2xhc3M9ImF2LW1haW4iPg0KPGRpdiBjbGFzcz0iYXYtYXV0aFR5cGUiPiA8c3BhbiBjbGFzcz0iYXYtdGFnIGF2LXRhZy0tcGFydG5lciI+PGEgaHJlZj0iL21vcmUvY29tbWVyY2lhbC1vcHBvcnR1bml0aWVzLmh0bSI+UGFydG5lciBDb250ZW50PC9hPjwvc3Bhbj4gPC9kaXY+DQpkAgQPFgIfAAW/KTxkaXYgY2xhc3M9ImF2LXNoYXJlLWJvdHRvbSBjbGVhckZpeCBzaGFyZS1idXR0b25zLXdyYXAiPg0KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpY29uLS1yaWdodC1hcnJvdyI+U2hhcmUgdGhpcyBwYWdlPC9zcGFuPg0KDQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYXJlLWJ1dHRvbnMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InNoYXJlLWJ1dHRvbi1pdGVtIHNoYXJlLWJ1dHRvbi1pdGVtLS10d2l0dGVyIg0KICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL3guY29tL2ludGVudC90d2VldD90ZXh0PVRoZStwYXRoK3RvK2NsaW1hdGUrbmV1dHJhbGl0eSUzYSt3aGF0K2lzK3RoZStyb2xlK29mK2NhcmJvbityZW1vdmFscythbmQrY2xlYW50ZWNoK2lubm92YXRpb24lM2YmYW1wO3VybD1odHRwczovL3d3dy50aGVwYXJsaWFtZW50bWFnYXppbmUuZXUlMmZwYXJ0bmVyJTJmYXJ0aWNsZSUyZnRoZS1wYXRoLXRvLWNsaW1hdGUtbmV1dHJhbGl0eS13aGF0LWlzLXRoZS1yb2xlLW9mLWNhcmJvbi1yZW1vdmFscy1hbmQtY2xlYW50ZWNoLWlubm92YXRpb24iIHRhcmdldD0iX2JsYW5rIg0KICAgICAgICAgICAgICAgICAgICByZWw9Im5vb3BlbmVyIiBhcmlhLWxhYmVsPSIiPg0KICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMTQgMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyIj48cGF0aCBkPSJNMTEuMDI2IDBoMi4xNDZMOC40ODMgNS4wODMgMTQgMTJIOS42OEw2LjI5NiA3LjgwNSAyLjQyNSAxMkguMjc2bDUuMDE3LTUuNDM3TDAgMGg0LjQzbDMuMDU4IDMuODM0TDExLjAyNiAwWm0tLjc1NCAxMC43ODFoMS4xOUwzLjc4MyAxLjE1NUgyLjUwN2w3Ljc2NSA5LjYyNloiIHN0eWxlPSJmaWxsOiNmZmY7ZmlsbC1ydWxlOm5vbnplcm8iLz48L3N2Zz4NCiAgICAgICAgICAgICAgICA8L2E+DQo8YSBjbGFzcz0ic2hhcmUtYnV0dG9uLWl0ZW0gc2hhcmUtYnV0dG9uLWl0ZW0tLXdoYXRzYXBwIg0KICAgICAgICAgICAgICAgICAgICBocmVmPSJ3aGF0c2FwcDovL3NlbmQ/dGV4dD1UaGUrcGF0aCt0bytjbGltYXRlK25ldXRyYWxpdHklM2Erd2hhdCtpcyt0aGUrcm9sZStvZitjYXJib24rcmVtb3ZhbHMrYW5kK2NsZWFudGVjaCtpbm5vdmF0aW9uJTNmJTIwaHR0cHM6Ly93d3cudGhlcGFybGlhbWVudG1hZ2F6aW5lLmV1JTJmcGFydG5lciUyZmFydGljbGUlMmZ0aGUtcGF0aC10by1jbGltYXRlLW5ldXRyYWxpdHktd2hhdC1pcy10aGUtcm9sZS1vZi1jYXJib24tcmVtb3ZhbHMtYW5kLWNsZWFudGVjaC1pbm5vdmF0aW9uIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciINCiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iIj4NCiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0yMC4xIDMuOUMxNy45IDEuNyAxNSAuNSAxMiAuNSA1LjguNS43IDUuNi43IDExLjljMCAyIC41IDMuOSAxLjUgNS42TC42IDIzLjRsNi0xLjZjMS42LjkgMy41IDEuMyA1LjQgMS4zIDYuMyAwIDExLjQtNS4xIDExLjQtMTEuNC0uMS0yLjgtMS4yLTUuNy0zLjMtNy44ek0xMiAyMS40Yy0xLjcgMC0zLjMtLjUtNC44LTEuM2wtLjQtLjItMy41IDEgMS0zLjRMNCAxN2MtMS0xLjUtMS40LTMuMi0xLjQtNS4xIDAtNS4yIDQuMi05LjQgOS40LTkuNCAyLjUgMCA0LjkgMSA2LjcgMi44IDEuOCAxLjggMi44IDQuMiAyLjggNi43LS4xIDUuMi00LjMgOS40LTkuNSA5LjR6bTUuMS03LjFjLS4zLS4xLTEuNy0uOS0xLjktMS0uMy0uMS0uNS0uMS0uNy4xLS4yLjMtLjggMS0uOSAxLjEtLjIuMi0uMy4yLS42LjFzLTEuMi0uNS0yLjMtMS40Yy0uOS0uOC0xLjQtMS43LTEuNi0yLS4yLS4zIDAtLjUuMS0uNnMuMy0uMy40LS41Yy4yLS4xLjMtLjMuNC0uNS4xLS4yIDAtLjQgMC0uNUMxMCA5IDkuMyA3LjYgOSA3Yy0uMS0uNC0uNC0uMy0uNS0uM2gtLjZzLS40LjEtLjcuM2MtLjMuMy0xIDEtMSAyLjRzMSAyLjggMS4xIDNjLjEuMiAyIDMuMSA0LjkgNC4zLjcuMyAxLjIuNSAxLjYuNi43LjIgMS4zLjIgMS44LjEuNi0uMSAxLjctLjcgMS45LTEuMy4yLS43LjItMS4yLjItMS4zLS4xLS4zLS4zLS40LS42LS41eiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPC9zdmc+DQogICAgICAgICAgICAgICAgPC9hPg0KPGEgY2xhc3M9InNoYXJlLWJ1dHRvbi1pdGVtIHNoYXJlLWJ1dHRvbi1pdGVtLS1saW5rZWRpbiINCiAgICAgICAgICAgICAgICAgICAgaHJlZj0iaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJlQXJ0aWNsZT9taW5pPXRydWUmYW1wO3VybD1odHRwczovL3d3dy50aGVwYXJsaWFtZW50bWFnYXppbmUuZXUlMmZwYXJ0bmVyJTJmYXJ0aWNsZSUyZnRoZS1wYXRoLXRvLWNsaW1hdGUtbmV1dHJhbGl0eS13aGF0LWlzLXRoZS1yb2xlLW9mLWNhcmJvbi1yZW1vdmFscy1hbmQtY2xlYW50ZWNoLWlubm92YXRpb24mYW1wO3RpdGxlPVRoZStwYXRoK3RvK2NsaW1hdGUrbmV1dHJhbGl0eSUzYSt3aGF0K2lzK3RoZStyb2xlK29mK2NhcmJvbityZW1vdmFscythbmQrY2xlYW50ZWNoK2lubm92YXRpb24lM2YmYW1wO3N1bW1hcnk9VGhlK3BhdGgrdG8rY2xpbWF0ZStuZXV0cmFsaXR5JTNhK3doYXQraXMrdGhlK3JvbGUrb2YrY2FyYm9uK3JlbW92YWxzK2FuZCtjbGVhbnRlY2graW5ub3ZhdGlvbiUzZiZhbXA7c291cmNlPWh0dHBzOi8vd3d3LnRoZXBhcmxpYW1lbnRtYWdhemluZS5ldSUyZnBhcnRuZXIlMmZhcnRpY2xlJTJmdGhlLXBhdGgtdG8tY2xpbWF0ZS1uZXV0cmFsaXR5LXdoYXQtaXMtdGhlLXJvbGUtb2YtY2FyYm9uLXJlbW92YWxzLWFuZC1jbGVhbnRlY2gtaW5ub3ZhdGlvbiINCiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGFyaWEtbGFiZWw9IiI+DQogICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNNi41IDIxLjVoLTV2LTEzaDV2MTN6TTQgNi41QzIuNSA2LjUgMS41IDUuMyAxLjUgNHMxLTIuNCAyLjUtMi40YzEuNiAwIDIuNSAxIDIuNiAyLjUgMCAxLjQtMSAyLjUtMi42IDIuNXptMTEuNSA2Yy0xIDAtMiAxLTIgMnY3aC01di0xM2g1VjEwczEuNi0xLjUgNC0xLjVjMyAwIDUgMi4yIDUgNi4zdjYuN2gtNXYtN2MwLTEtMS0yLTItMnoiIC8+DQogICAgICAgICAgICAgICAgICAgIDwvc3ZnPg0KICAgICAgICAgICAgICAgIDwvYT4NCjxhIGNsYXNzPSJzaGFyZS1idXR0b24taXRlbSBzaGFyZS1idXR0b24taXRlbS0tZW1haWwiDQogICAgICAgICAgICAgICAgICAgIGhyZWY9Im1haWx0bzo/c3ViamVjdD1UaGUrcGF0aCt0bytjbGltYXRlK25ldXRyYWxpdHklM2Erd2hhdCtpcyt0aGUrcm9sZStvZitjYXJib24rcmVtb3ZhbHMrYW5kK2NsZWFudGVjaCtpbm5vdmF0aW9uJTNmJmFtcDtib2R5PWh0dHBzOi8vd3d3LnRoZXBhcmxpYW1lbnRtYWdhemluZS5ldSUyZnBhcnRuZXIlMmZhcnRpY2xlJTJmdGhlLXBhdGgtdG8tY2xpbWF0ZS1uZXV0cmFsaXR5LXdoYXQtaXMtdGhlLXJvbGUtb2YtY2FyYm9uLXJlbW92YWxzLWFuZC1jbGVhbnRlY2gtaW5ub3ZhdGlvbiIgdGFyZ2V0PSJfc2VsZiIgcmVsPSJub29wZW5lciINCiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iIj4NCiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9Ik0yMiA0SDJDLjkgNCAwIDQuOSAwIDZ2MTJjMCAxLjEuOSAyIDIgMmgyMGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek03LjI1IDE0LjQzbC0zLjUgMmMtLjA4LjA1LS4xNy4wNy0uMjUuMDctLjE3IDAtLjM0LS4xLS40My0uMjUtLjE0LS4yNC0uMDYtLjU1LjE4LS42OGwzLjUtMmMuMjQtLjE0LjU1LS4wNi42OC4xOC4xNC4yNC4wNi41NS0uMTguNjh6bTQuNzUuMDdjLS4xIDAtLjItLjAzLS4yNy0uMDhsLTguNS01LjVjLS4yMy0uMTUtLjMtLjQ2LS4xNS0uNy4xNS0uMjIuNDYtLjMuNy0uMTRMMTIgMTMuNGw4LjIzLTUuMzJjLjIzLS4xNS41NC0uMDguNy4xNS4xNC4yMy4wNy41NC0uMTYuN2wtOC41IDUuNWMtLjA4LjA0LS4xNy4wNy0uMjcuMDd6bTguOTMgMS43NWMtLjEuMTYtLjI2LjI1LS40My4yNS0uMDggMC0uMTctLjAyLS4yNS0uMDdsLTMuNS0yYy0uMjQtLjEzLS4zMi0uNDQtLjE4LS42OHMuNDQtLjMyLjY4LS4xOGwzLjUgMmMuMjQuMTMuMzIuNDQuMTguNjh6IiAvPg0KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4NCiAgICAgICAgICAgICAgICA8L2E+DQo8YSBjbGFzcz0ic2hhcmUtYnV0dG9uLWl0ZW0gc2hhcmUtYnV0dG9uLWl0ZW0tLWZhY2Vib29rIg0KICAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwczovL2ZhY2Vib29rLmNvbS9zaGFyZXIvc2hhcmVyLnBocD91PWh0dHBzOi8vd3d3LnRoZXBhcmxpYW1lbnRtYWdhemluZS5ldSUyZnBhcnRuZXIlMmZhcnRpY2xlJTJmdGhlLXBhdGgtdG8tY2xpbWF0ZS1uZXV0cmFsaXR5LXdoYXQtaXMtdGhlLXJvbGUtb2YtY2FyYm9uLXJlbW92YWxzLWFuZC1jbGVhbnRlY2gtaW5ub3ZhdGlvbiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiDQogICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IiI+DQogICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggIGQ9Ik0xOC43NyA3LjQ2SDE0LjV2LTEuOWMwLS45LjYtMS4xIDEtMS4xaDNWLjVoLTQuMzNDMTAuMjQuNSA5LjUgMy40NCA5LjUgNS4zMnYyLjE1aC0zdjRoM3YxMmg1di0xMmgzLjg1bC40Mi00eiIgLz4NCiAgICAgICAgICAgICAgICAgICAgPC9zdmc+DQogICAgICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj5kAgUPFgIfAAXceTxwPjxzdHJvbmc+V2hhdCBhcmUgdGhlIG1haW4gc3RlcHMgdGhlIEVVIG5lZWRzIHRvIHRha2UgdG8gcmVhY2ggaXRzIGdvYWwgb2YgYWNoaWV2aW5nIGNhcmJvbiBuZXV0cmFsaXR5IGJ5IDIwNTA/IDwvc3Ryb25nPjwvcD4NCg0KPHA+PHN0cm9uZz5MaWRpYSBQZXJlaXJhIE1FUDogPC9zdHJvbmc+Rmlyc3Qgb2YgYWxsLCB3ZSBzaG91bGQgcmVtZW1iZXIgdGhhdCBFdXJvcGUgaGFzIGJlZW4gbGVhZGluZyBnbG9iYWwgZWZmb3J0cyB0byBhY2hpZXZlIGNhcmJvbiBuZXV0cmFsaXR5IGJ5IDIwNTAuIFRoaXMgaXMgYSBkZWNpc2l2ZSB0cmFuc2Zvcm1hdGlvbiB0byBzZWN1cmUgdGhlIGZ1dHVyZSwgd2hpY2ggdGhlIGNsaW1hdGUgZW1lcmdlbmN5IGRlbWFuZHMgdG8gYmUgY2FycmllZCBvdXQgaW4gYSB2ZXJ5IHNob3J0IHBlcmlvZCBvZiB0aW1lLjwvcD4NCg0KPHA+V2UgaGF2ZSBiZWVuIHZlcnkgZGlsaWdlbnQgaW4gcmVndWxhdGlvbiwgaW4gY29tbXVuaWNhdGluZyBhbmQgaW4gYXBwcm92aW5nIGRpcmVjdGl2ZXMgYW5kIHJlZ3VsYXRpb25zLiBVbmZvcnR1bmF0ZWx5LCB0aGF0IGRvZXMgbm90IGRvIHRoZSB3b3JrIGJ5IGl0c2VsZi4gV2Uga25vdyB0aGF0IHRoZSB0cmFuc2l0aW9uIGZyb20gcG9sbHV0aW5nIGVuZXJneSBzb3VyY2VzLCB3aXRoIGFuIGVjb25vbXkgdGhhdCBpcyBzdGlsbCBkZXBlbmRlbnQgb24gY2FyYm9uLWVtaXR0aW5nIGVuZXJneSBzb3VyY2VzLCBpcyBub3QgYW4gZWFzeSBjaGFsbGVuZ2UsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIG1hdHVyaXR5IG9mIG1hbnkgdGVjaG5vbG9naWVzLiBUaGVyZWZvcmUsIHdlIG5lZWQgdG8gY3JlYXRlIGFuIGVudmlyb25tZW50IHRoYXQgYWxsb3dzIHRoaXMgdHJhbnNpdGlvbiB0byBvY2N1ciBxdWlja2x5LCBidXQgaW4gYSBzdXN0YWluYWJsZSBhbmQgcmVsaWFibGUgbWFubmVyLjwvcD4NCg0KPHA+V2UgbmVlZCB0byBrZWVwIHdvcmtpbmcgb24gdGhlIGJ1c2luZXNzIGNhc2UgZm9yIHRoZSB0cmFuc2l0aW9uLiBGb3IgdGhpcywgd2UgbmVlZCB0byBwcm92aWRlIG1vcmUgYW5kIGJldHRlciBzdXBwb3J0LCBib3RoIGluIHRlcm1zIG9mIGluY3JlYXNlZCBmdW5kaW5nIGFuZCBzdXBwb3J0IGluIHRoZSB2YXJpb3VzIHN0YWdlcyBvZiBkZXZlbG9wbWVudCBvZiBuZXcgY2xlYW50ZWNoIHRlY2hub2xvZ2llcy4gSXQgaXMgYWxzbyBpbXBvcnRhbnQgdG8gc2ltcGxpZnkgYW5kIGZhY2lsaXRhdGUgbGljZW5zaW5nIG1lY2hhbmlzbXMgc28gdGhhdCBFdXJvcGVhbiBjb21wYW5pZXMgY2FuIGZpbmQgbWFya2V0cyB3aXRoaW4gdGhlIEV1cm9wZWFuIHNwYWNlIGl0c2VsZiBhbmQgb3V0c2lkZSwgYWxsb3dpbmcgdGhlbSB0byBncm93IGFuZCBzY2FsZSB0aGVpciBzb2x1dGlvbnMuIE9ubHkgdGhyb3VnaCB0aGUgY29tYmluYXRpb24gb2YgZGlmZmVyZW50IGZhY3RvcnMgJm5kYXNoOyBpbnZlc3RtZW50IGFuZCBmdW5kaW5nLCBsaWNlbnNpbmcsIGltcHJvdmluZyB0aGUgaW50ZXJuYWwgbWFya2V0IGFuZCB0aGUgY2FwaXRhbCBtYXJrZXRzIHVuaW9uLCBhbmQgcHVibGljIHByb2N1cmVtZW50ICZuZGFzaDsgY2FuIHdlIGFjaGlldmUgYSBidXNpbmVzcyBkeW5hbWljIHRoYXQgYWxsb3dzIHVzIHRvIHJlYWNoIGNhcmJvbiBuZXV0cmFsaXR5LjwvcD4NCg0KPGJsb2NrcXVvdGU+DQo8cD5DYXJib24gcmVtb3ZhbHMgYXJlIGNydWNpYWwgZm9yIHVzIHRvJm5ic3A7YWNoaWV2ZSBvdXIgY2xpbWF0ZSBnb2Fscy4gVGhlIHJlcG9ydHMgdGhhdCZuYnNwO2hhdmUgYmVlbiBjb21pbmcgb3V0IGZyb20gdGhlIFVORkNDQyBhcmUmbmJzcDt2ZXJ5IGNsZWFyIGFib3V0IHRoaXM6IHdlIHdpbGwgbm90IGFjaGlldmUmbmJzcDtvdXIgY2xpbWF0ZSB0YXJnZXRzIG9ubHkgYnkgcmVkdWNpbmcgb3VyJm5ic3A7ZW1pc3Npb25zLiBJdCBpcyBub3QgZmVhc2libGUuPC9wPg0KDQo8cD4mbmJzcDs8L3A+DQo8L2Jsb2NrcXVvdGU+DQoNCjxwPjxzdHJvbmc+S2FzaWEgV2lsazogPC9zdHJvbmc+SSBhZ3JlZSwgdGhlIEVVIGhhcyBwcm92ZW4gdG8gYmUgYSBnbG9iYWwgbGVhZGVyIGluIGFkZHJlc3NpbmcgY2xpbWF0ZSBjaGFuZ2UuIFRoZSBFVSBHcmVlbiBkZWFsIHN1cHBvcnRzIHRoZSBFVSZyc3F1bztzIGNhcmJvbiBuZXV0cmFsaXR5IHRhcmdldCB0aG91Z2ggYSBjb21wcmVoZW5zaXZlIHN0cmF0ZWd5LCBpbmNsdWRpbmcgaW5jcmVhc2luZyB0aGUgc2hhcmUgb2YgcmVuZXdhYmxlIGVuZXJneSwgZW5oYW5jaW5nIGVuZXJneSBlZmZpY2llbmN5LCBhbmQgZGVjYXJib25pc2luZyBrZXkgc2VjdG9ycyBzdWNoIGFzIGluZHVzdHJ5LCB0cmFuc3BvcnQgYW5kIGFncmljdWx0dXJlLiBJdCBhbHNvIGhhcyBlc3RhYmxpc2hlZCBhIGxlZ2FsIGZyYW1ld29yaywgRVUgQ2xpbWF0ZSBMYXcsIHRvIGVuc3VyZSBhY2NvdW50YWJpbGl0eSBhbmQgY29tcGxpYW5jZS48L3A+DQoNCjxwPlRoYXQgc2FpZCwgZm9yIHRoZSBFVSB0byByZW1haW4gY29tcGV0aXRpdmUgd2hpbGUgYWNoaWV2aW5nIGl0cyBjbGltYXRlIGdvYWxzLCBhIHN0cmF0ZWdpYyBzaGlmdCBpcyBuZWVkZWQgdG8gc3VwcG9ydCBidXNpbmVzc2VzIHRocm91Z2ggdGhlIHRyYW5zaXRpb24gYW5kIGVuY291cmFnZSBpbnZlc3RtZW50IGludG8gaW5ub3ZhdGl2ZSBjbGVhbiB0ZWNobm9sb2dpZXMsIHN1Y2ggYXMgY2FyYm9uIGRpb3hpZGUgcmVtb3ZhbHMuIEluIG15IG9waW5pb24sIHJlZ3VsYXRvcnkgY2VydGFpbnR5IGFuZCBzdGFiaWxpdHkgYXJlIGFzIGltcG9ydGFudCBhcyBpbnZlc3RtZW50IGFuZCBuZXcgZnVuZGluZy48L3A+DQoNCjxwPlRoZSBwcm9wb3NlZCBDbGVhbiBJbmR1c3RyaWFsIEFjdCwgYXMgd2VsbCBhcyBJbmR1c3RyaWFsIEFjY2VsZXJhdG9yIEFjdCBhbiZzaHk7bm91bmNlZCBieSBQcmVzaWRlbnQgVm9uIGRlciBMZXllbiwgYXJlIGEgcHJvbWlzaW5nIHN0ZXAgdG93YXJkIGFsaWduaW5nIHRoZSBFVSZyc3F1bztzIGluZHVzdHJpYWwgc2VjdG9yIHdpdGggaXRzIGNsaW1hdGUgbmV1dHJhbGl0eSBnb2Fscywgd2hpbGUgYm9vc3RpbmcgY29tcGV0aXRpdmVuZXNzLiBIb3dldmVyLCB0aGVpciBzdWNjZXNzIHdpbGwgZGVwZW5kIG9uIHRoZWlyIGltcGxlbWVudGF0aW9uLCBpbmNsdWRpbmcgbGV2ZXImc2h5O2FnaW5nIHB1YmxpYyBhbmQgcHJpdmF0ZSBpbnZlc3RtZW50IHRvIHN1cHBvcnQgdGhlIGNsZWFudGVjaCB0cmFuc2l0aW9uLjwvcD4NCg0KPHA+PHN0cm9uZz5XaGF0IHJvbGUgY2FuIGNhcmJvbiByZW1vdmFscyBwbGF5IGluIGFjaGlldmluZyB0aGUgMjA1MCBnb2FsPyA8L3N0cm9uZz48L3A+DQoNCjxwPjxzdHJvbmc+TUVQIFBlcmVpcmE6IDwvc3Ryb25nPlRoZSByb2xlIG9mIGNhcmJvbiByZW1vdmFscyBpcyBjcnVjaWFsIGZvciB1cyB0byBhY2hpZXZlIG91ciBjbGltYXRlIGdvYWxzLiBUaGUgcmVwb3J0cyB0aGF0IGhhdmUgYmVlbiBjb21pbmcgb3V0IGZyb20gdGhlIFVORkNDQyBhcmUgdmVyeSBjbGVhciBhYm91dCB0aGlzOiB3ZSB3aWxsIG5vdCBhY2hpZXZlIG91ciBjbGltYXRlIHRhcmdldHMgb25seSBieSByZWR1Y2luZyBvdXIgZW1pc3Npb25zLiBJdCBpcyBub3QgZmVhc2libGUuIFNvIEkgd291bGQgc2F5IHRoYXQgdGhlIHJvbGUgaXMgYW4gYWJzb2x1dGUga2V5IG9uZS4gTm90IG9ubHkgdGFsa2luZyBhYm91dCB2b2x1bnRhcnkgY2FyYm9uIG1hcmtldHMgYnV0IGFsc28gYWJvdXQgcG9zc2libGUgY29tcGxpYW5jZSBydWxlcyBhbmQgaW50ZWdyYXRpb24gd2l0aCB0aGUgRW1pc3Npb25zIFRyYWRpbmcgU3lzdGVtLiBHbG9iYWxseSB3ZSBuZWVkIGl0IG5vdCBvbmx5IGJlY2F1c2Ugd2Ugd2FudCB0byBhY2hpZXZlIG91ciB0YXJnZXRzIGJ1dCBtb3JlIGJyb2FkbHkgYmVjYXVzZSB3ZSBhcmUgaW4gZmF2b3VyIG9mIGRlY2FyYm9uaXNhdGlvbiwgYnV0IG5vdCBkZWluZHVzdHJpYWxpemF0aW9uLiBXZSB3YW50IGdyb3d0aCB3aXRoIGRlY2FyYm9uaXNhdGlvbiwgd2l0aCBjYXJib24gYmVpbmcgcmVtb3ZlZCBmcm9tIHRoZSBhdG1vc3BoZXJlLiBJIGJlbGlldmUgdGhpcyBpcyBhbHNvIHRoZSBzZW50aW1lbnQgb2YgdGhlIHBlb3BsZSBhbmQgb3VyIGNvbW11bml0aWVzLCB3aG8gd2FudCB0byBwcm90ZWN0IHRoZSBwbGFuZXQgYnV0IGRvbiZyc3F1bzt0IHdhbnQgdG8gYmUgcG9vcmVyIGJlY2F1c2Ugb2YgaXQuIFNvbWUgcG9saXRpY2FsIHBlcnNwZWN0aXZlcyBhcHBlYXIgdG8gaGF2ZSBmb3VuZCBpbiB0aGUgY2xpbWF0ZSBmaWdodCBhIG5ldyBjbGFzcyBzdHJ1Z2dsZSwgYWdhaW5zdCByZWluZHVzdHJpYWxpemF0aW9uLCBhZ2FpbnN0IGdyb3d0aC4gV2UgYXJlIG9uIHRoZSBvdGhlciBzaWRlOiBmb3IgdXMsIHRoZSBwYXRoIGlzIG9uZSBvZiBpbm5vdmF0aW9uLCBvZiBpbnZlc3RtZW50IGluIEV1cm9wZWFuIHNjaWVuY2UgYW5kIHRlY2hub2xvZ3ksIG9mIGNvbmZpZGVuY2UgaW4gY29tcGFuaWVzIGFuZCBvdXIgaW5kdXN0cmlhbCBjYXBhY2l0eSBpbiBFdXJvcGUuPC9wPg0KDQo8cD48c3Ryb25nPkthc2lhIFdpbGs6IDwvc3Ryb25nPkVjaG9pbmcgTUVQIFBlcmVpcmEgJm5kYXNoOyBpdCZyc3F1bztzIGNsZWFyIHRoYXQgdG8gcmVhY2ggbmV0IHplcm8gd2UgbmVlZCB0byByZWR1Y2UgZW1pc3Npb25zIGFjcm9zcyBlYWNoIHNlY3RvciBvZiB0aGUgZ2xvYmFsIGVjb25vbXkgYW5kIGZ1bGx5IGVsaW1pbmF0ZSB0aGVtIHdoZXJlIHBvc3NpYmxlLiBCdXQgYnkgMjA1MCwgc2lnbmlmaWNhbnQgZW1pc3Npb25zIGFyZSBzdGlsbCBleHBlY3RlZCBmcm9tIGhhcmQtdG8tZGVjYXJib25pc2Ugc2VjdG9ycyBzdWNoIGFzIGF2aWF0aW9uLCBhZ3JpY3VsdHVyZSBhbmQgaGVhdnkgaW5kdXN0cnkuIEl0JnJzcXVvO3MgaW5jcmVhc2luZ2x5IGNsZWFyIHRoYXQgY2FyYm9uIGRpb3hpZGUgcmVtb3ZhbCAoQ0RSKSB3aWxsIGJlIGVzc2VudGlhbCB0byByZWFjaCBuZXQgemVybyB0byBiYWxhbmNlIG91dCBlbWlzc2lvbnMgdGhhdCBhcmUgZGlmZmljdWx0IHRvIGF2b2lkIGFzIHdlbGwgYXMgaGVscCByZW1vdmUgaGlzdG9yaWMgZW1pc3Npb25zLCBieSBjYXB0dXJpbmcgY2FyYm9uIGRpb3hpZGUgKENPMikgdGhhdCBpcyBhbHJlYWR5IGluIHRoZSBhdG1vc3BoZXJlLCByZW1vdmluZyBpdCBhbmQgc3RvcmluZyBpdCBwZXJtYW5lbnRseS48L3A+DQoNCjxwPkFjY29yZGluZyB0byB0aGUgU2l4dGggQXNzZXNzbWVudCBSZXBvcnQgb2YgdGhlIFVOJnJzcXVvO3MgSVBDQywgbmVhcmx5IGFsbCBwYXRod2F5cyB0byBuZXQgemVybyBieSAyMDUwIHdpbGwgcmVxdWlyZSBhIHNpZ25pZmljYW50IHNjYWxlLXVwIG9mIGNhcmJvbiByZW1vdmFscy4gTmV2ZXJ0aGVsZXNzLCB0byBnZXQgdGhlIHNlY3RvciB0byB3aGVyZSBpdCBuZWVkcyB0byBiZSBieSBtaWQtY2VudHVyeSB3aWxsIHJlcXVpcmUgdGhlIHJpZ2h0IHBvbGljaWVzIGFuZCBpbnZlc3RtZW50IHRvIHN1cHBvcnQgZGVwbG95bWVudCBub3cuIEF0IERyYXgsIHdlIGFyZSB3b3JraW5nIHRvIG1lZXQgdGhpcyBuZWVkICZuZGFzaDsgZWFybGllciB0aGlzIHllYXIgd2UgbGF1bmNoZWQgRWxpbWluaSwgYSBkZWRpY2F0ZWQgY2FyYm9uIHJlbW92YWxzIGJ1c2luZXNzIHdpdGggYW4gYW1iaXRpb24gdG8gZGVsaXZlciBjYXJib24gcmVtb3ZhbHMgYXQgbWVnYXRvbiBzY2FsZSwgd2hpbHN0IGFsc28gcHJvZHVjaW5nIDI0LzcgcmVuZXdhYmxlIHBvd2VyLjwvcD4NCg0KPHA+TUVQIFBlcmVpcmEgaXMgcmlnaHQgLSB3ZSBuZWVkIHRvIHN1cHBvcnQgc29sdXRpb25zIHRoYXQgYWxsb3cgdXMgdG8gZGVjYXJib25pemUgd2hpbGUgc3RpbGwgbW92aW5nIGZvcndhcmQuIFRoYXQgaXMgdGhlIGNydXggb2Ygd2h5IHdlIG5lZWQgdG8gaW52ZXN0IGluIGNhcmJvbiByZW1vdmFsIHRlY2hub2xvZ2llcyBub3cuIFdlIGhhdmUgc29sdXRpb25zIGF2YWlsYWJsZSB0byB1cywgbGlrZSBCRUNDUyAoYmlvZW5lcmd5IHdpdGggY2FyYm9uIGNhcHR1cmUgYW5kIHN0b3JhZ2UpLCB0aGF0IHdpbGwgYWxsb3cgdXMgdG8gcmVtb3ZlIGNhcmJvbiBmcm9tIHRoZSBhdG1vc3BoZXJlIHdoaWxlIGFsc28gZ2VuZXJhdGluZyB0aGUgcmVuZXdhYmxlIHBvd2VyIG91ciBzb2NpZXR5IG5lZWRzLjwvcD4NCg0KPGJsb2NrcXVvdGU+DQo8cD5UaGUgW3JpZ2h0XSBwYXRoIGlzIG9uZSBvZiZuYnNwO2lubm92YXRpb24sIG9mIGludmVzdG1lbnQmbmJzcDtpbiBFdXJvcGVhbiBzY2llbmNlIGFuZCZuYnNwO3RlY2hub2xvZ3ksIG9mIGNvbmZpZGVuY2UmbmJzcDtpbiBjb21wYW5pZXMgYW5kIG91ciBpbmR1c3RyaWFsIGNhcGFjaXR5IGluIEV1cm9wZS48L3A+DQo8L2Jsb2NrcXVvdGU+DQoNCjxwPjxzdHJvbmc+V2hhdCBjYW4gYmUgZG9uZSB0byByYWlzZSBhd2FyZW5lc3Mgb2YgdGhlIG5lZWQgZm9yIGNhcmJvbiByZW1vdmFscyBhbmQgcHJvdmlkZSBzdXBwb3J0IGZvciBjYXJib24gcmVtb3ZhbCBwcm9qZWN0cz8gPC9zdHJvbmc+PC9wPg0KDQo8cD48c3Ryb25nPk1FUCBQZXJlaXJhOiA8L3N0cm9uZz5JbiBmYWN0LCBldmVuIGlmIHRoZSBhd2FyZW5lc3MgZm9yIGNsaW1hdGUgY2hhbmdlIGV4aXN0cywgaXQgaXMgYSB0b3RhbCBkaWZmZXJlbnQgaXNzdWUgd2hlbiBkaXNjdXNzaW5nIGNhcmJvbiByZW1vdmFscy4gVGhpcyBjaGFsbGVuZ2UgaXMgZGlmZmVyZW50LCBhbmQgcG9zc2libHkgbW9yZSBkZW1hbmRpbmc6IGl0IGlzIGEgY2hhbGxlbmdlIG9mIGNvbXBldGl0aXZlbmVzcyBvZiBjYXJib24gcmVtb3ZhbCBzb2x1dGlvbnMuIElmIHdlIGFyZSBhYmxlIHRvIHByb3ZpZGUgYSBzdWNjZXNzZnVsIGJ1c2luZXNzIG1vZGVsIGZvciBjYXJib24gcmVtb3ZhbCwgYmUgaXQgdGhyb3VnaCBEQUNTIG9yIGNhcmJvbiBmYXJtaW5nLCBjYXJib24gcmVtb3ZhbHMgd2lsbCBtYWtlIGl0cyBwYXRoLiBXaGF0IHdlIG11c3QgcHJvdmlkZSBpcyBrbm93bGVkZ2UsIGZ1bmRpbmcgYW5kIGRlbWFuZC4gQSBidXNpbmVzcyBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGVzZSBzb2x1dGlvbnMgbWF5IHRocml2ZSwgZW5zdXJpbmcgb3VyIGNvbXBldGl0aXZlbmVzcyB0byB0aGUgY29tcGV0aXRpb24gZnJvbSBvdGhlciBnZW9ncmFwaGllcyB0aGF0LCBkdWUgdG8gdGhlaXIgc2NhbGUsIGdvdmVybmFuY2UgbW9kZWwsIGFuZCBzdHJhdGVnaWMgaW52ZXN0bWVudCBmb2N1cywgY2hhbGxlbmdlIHVzLiBSYWlzaW5nIGF3YXJlbmVzcyBtdXN0IGJlIGRvbmUsIGZpcnN0IGFuZCBmb3JlbW9zdCwgYW1vbmcgZGVjaXNpb24tbWFrZXJzLCB3aGV0aGVyIHB1YmxpYyBvciBwcml2YXRlLCBub3Qgb25seSBhYm91dCB0aGUgaW1wb3J0YW5jZSBvZiBjYXJib24gcmVtb3ZhbHMgZm9yIHRoZSBmdXR1cmUgb2YgdGhlIHBsYW5ldCBidXQgYWxzbyB0aGVpciBzdHJhdGVnaWMgcG90ZW50aWFsIGZvciBlY29ub21pYyBncm93dGggYW5kIHJlbGV2YW5jZSBmb3IgaW5kdXN0cnkuPC9wPg0KDQo8cD48c3Ryb25nPldoYXQgcm9sZSBjYW4gaW5kdXN0cnkgcGxheSBpbiBzdXBwb3J0aW5nIHRoZXNlIGVmZm9ydHMgYW5kIHdoYXQgcG9saWNpZXMgbmVlZCB0byBiZSBwdXQgaW4gcGxhY2UgdG8gZW5hYmxlIGluZHVzdHJ5IHRvIGFjdD8gPC9zdHJvbmc+PC9wPg0KDQo8cD48c3Ryb25nPkthc2lhIFdpbGs6IDwvc3Ryb25nPkJ1c2luZXNzZXMgbGlrZSBFbGltaW5pIHdpbGwgYmUgY3JpdGljYWwgaW4gZWZmb3J0cyB0byByYXBpZGx5IHNjYWxlIGNhcmJvbiByZW1vdmFsIHRlY2hub2xvZ2llcyBpbiB0aGUgRVUuIFRvIGVuYWJsZSB0aGlzLCB0aGUgRVUgaGFzIGEgdW5pcXVlIG9wcG9ydHVuaXR5IHRvIGltcGxlbWVudCByYXBpZCBwb2xpY3kgYWN0aW9uLCBpbmNsdWRpbmcgc2V0dGluZyBjbGVhciZuYnNwO2NhcmJvbiByZW1vdmFsIHRhcmdldHMsIGEgZGVkaWNhdGVkIHBvbGljeSBmcmFtZXdvcmssIGFzIHdlbGwgYXMgcHJvdmlkaW5nIHJvYnVzdCBmaW5hbmNpYWwgc3VwcG9ydCBhbmQgZGUtcmlza2luZyBpbnZlc3RtZW50LiBXaXRob3V0IHJhcGlkIGFjdGlvbiwgdGhlIEVVIHJpc2tzIGxhZ2dpbmcgZ2xvYmFsIGNvbXBldGl0aW9uIGluIG90aGVyIGdlb2dyYXBoaWVzLCBhbmQgaW4gcGFydGljdWxhciBpbiBOb3J0aCBBbWVyaWNhLjwvcD4NCg0KPHA+VG8gc3VwcG9ydCB0aGlzIGVmZm9ydCBpdCZyc3F1bztzIGNyaXRpY2FsIHRvIGRldmVsb3AgcG9saWN5IGZyYW1ld29ya3MgdGhhdCBpbmNlbnRpdmlzZSBib3RoIHRoZSBzdXBwbHkgb2YgdGhvc2UgdGVjaG5vbG9naWVzIGJ1dCBhbHNvIHRoZSBkZW1hbmQgZm9yIGNhcmJvbiByZW1vdmFscy48L3A+DQoNCjxwPlRoZSBjYXJib24gcmVtb3ZhbCBzZWN0b3IgaXMgc3RpbGwgbmV3IGFuZCByZWxpZXMgb24gYSBsaW1pdGVkIG51bWJlciBvZiBmaW5hbmNpbmcgdG9vbHMuIEludmVzdG1lbnQgZGVjaXNpb25zIG1haW5seSByZWx5IG9uIHN0YXRlIHN1YnNpZGllcyBvciB2b2x1bnRhcnkgY2FyYm9uIG1hcmtldHMgKFZDTSkgLSBhIGRlY2VudHJhbGlzZWQgbWFya2V0IHdoZXJlIHByaXZhdGUgYWN0b3JzIGNhbiB2b2x1bnRhcmlseSBidXkgYW5kIHNlbGwgY2FyYm9uIGNyZWRpdHMuIFRoZSBzZWN0b3IgbmVlZHMgbW9yZSBzdXBwb3J0IGluIHRoZSBjb21pbmcgeWVhcnMsIGFzIG91dGxpbmVkIGluIHRoZSBJbmR1c3RyaWFsIENhcmJvbiBNYW5hZ2VtZW50IFN0cmF0ZWd5LCBpbmNsdWRpbmc6ICgxKSB0aGUgaW50ZWdyYXRpb24gb2YgY2FyYm9uIHJlbW92YWxzIGludG8gRVUgRVRTOyAoMikgdGhlIGRldmVsb3BtZW50IG9mIHN1cHBvcnQgc2NoZW1lcywgc3VjaCBhcyBDYXJib24gQ29udHJhY3RzIGZvciBEaWZmZXJlbmNlIGFuZC8gb3IgR292ZXJubWVudCBwcm9jdXJlbWVudCBvZiBjYXJib24gcmVtb3ZhbHMgKHRoZSBVUyBhbmQgQ2FuYWRhIGhhdmUgcmVjZW50bHkgbGF1bmNoZWQgc2ltaWxhciBzY2hlbWVzKTsgYW5kICgzKSBmaW5hbGx5LCBzdXBwb3J0aW5nIHRoZSByb2xlIG9mJm5ic3A7dGhlIFZDTSBhdCBnbG9iYWwgc3RhZ2UgY291bGQgZHJpdmUgcHJpdmF0ZSBmaW5hbmNlLiBUaGUgR3JlZW4gQ2xhaW1zIERpcmVjdGl2ZSwgY3VycmVudGx5IGJlaW5nIGRpc2N1c3NlZCBpbiB0aGUgUGFybGlhbWVudCBhbmQgQ291bmNpbCwgaGFzIGFuIGltcG9ydGFudCByb2xlIHRvIHBsYXkgZm9yIHRoZSBsYXR0ZXIuPC9wPg0KDQo8cD5EZXZlbG9waW5nIEVVJnJzcXVvO3MgQ08yIHRyYW5zcG9ydCBhbmQgc3RvcmFnZSBpbmZyYXN0cnVjdHVyZSBhbmQgbG9va2luZyBhdCB0aGUgY3Jvc3MgYm9yZGVyIGFuZCBpbnRlcm5hdGlvbmFsIGNhcmJvbiBtYXJrZXRzIHdpbGwgYmUgYW5vdGhlciBrZXkgZWxlbWVudC48L3A+DQoNCjxwPjxzdHJvbmc+V2h5IGlzIGl0IGltcG9ydGFudCB0byBhZG9wdCBhIGdsb2JhbCBwZXJzcGVjdGl2ZSB3aGVuIGRpc2N1c3NpbmcgY2FyYm9uIHJlbW92YWxzPyA8L3N0cm9uZz48L3A+DQoNCjxwPjxzdHJvbmc+TUVQIFBlcmVpcmE6IDwvc3Ryb25nPlRoZXJlIGFyZSBzZXZlcmFsIGNoYWxsZW5nZXMgaW4gdGhlIGdsb2JhbCBjb250ZXh0LiBXZSBrbm93IHRoYXQgaXQgd2lsbCBiZSBkaWZmaWN1bHQgdG8gaGF2ZSBhIGdsb2JhbCBhcHByb2FjaCB0aHJvdWdoIFdUTyBpbiB0aGUgY29taW5nIHllYXJzLCBidXQgdGhlcmUgaXMgc3RpbGwgcGxlbnR5IG9mIHdvcmsgdG8gZG8uIEl0IHdvdWxkIGJlIGdvb2QsIGZvciBpbnN0YW5jZSwgdGhhdCBvdGhlciBlY29ub21pYyBibG9ja3Mgd2VyZSBhYmxlIHRvIGFsaWduIHdpdGggb3VyIENhcmJvbiBSZW1vdmFsIENlcnRpZmljYXRpb24gRnJhbWV3b3JrLiBPdGhlciBpbXBvcnRhbnQgc3RlcHMgd291bGQgYmUgdGhlIGFwcHJvdmFsIG9mIHRoZSBHcmVlbiBDbGFpbXMgRGlyZWN0aXZlIHdpdGggYSBwcm8tYnVzaW5lc3MgcGVyc3BlY3RpdmUgYnV0IGFsc28gdGhhdCB3ZSBzdGFydCBkaXNjdXNzaW5nIGNvbXBsaWFuY2UgdGFyZ2V0cyBmb3IgY2FyYm9uIHJlbW92YWxzIGFuZCwgZmluYWxseSwgdG8gdXNlIHRoZSBFVFMgcmV2aWV3IGluIDIwMjYgdG8gaW50ZWdyYXRlIHRoaXMgaW5zdHJ1bWVudCBpbnRvIEVUUywgd2hpY2ggaGFzIGJlZW4gcHJvdmVkIHRvIGJlIGEgcmVndWxhdGVkIGFuZCByZWxpYWJsZSBlbWlzc2lvbiBtYXJrZXQuIFRoZXNlIGFyZSBmb3VyIGNvbmNyZXRlIHN0ZXBzLCBib3RoIGF0IGdsb2JhbCBhbmQgRVUgbGV2ZWwgSSBiZWxpZXZlIHdvdWxkIGJlIGltcG9ydGFudCBmb3IgdGhlIGdyb3d0aCBvZiBjYXJib24gcmVtb3ZhbHMuPC9wPg0KDQo8cD48c3Ryb25nPkthc2lhIFdpbGs6IDwvc3Ryb25nPkludGVybmF0aW9uYWwgY2FyYm9uIG1hcmtldHMgY2FuIHBsYXkgYSBrZXkgcm9sZSBpbiByZWR1Y2luZyBnbG9iYWwgZ3JlZW5ob3VzZSBnYXMgZW1pc3Npb25zIGNvc3QtZWZmZWN0aXZlbHkuIFRoZSBQYXJpcyBBZ3JlZW1lbnQgcHJvdmlkZXMgYSBiYXNpcyBmb3IgdGhlIHVzZSBvZiBpbnRlcm5hdGlvbmFsIG1hcmtldHMgYW5kIHJlaW5mb3JjZXMgZ2xvYmFsIHRhcmdldHMsIHRyYW5zcGFyZW5jeSBhbmQgYWNjb3VudGFiaWxpdHkuIFJlY29nbmlzaW5nIHRoZSBpbXBvcnRhbmNlIG9mIGludGVybmF0aW9uYWwgY2FyYm9uIG1hcmtldHMsIEFydGljbGUgNiBvZiB0aGUgYWdyZWVtZW50IGFsbG93cyBwYXJ0aWVzIHRvIHVzZSBpbnRlcm5hdGlvbmFsIHRyYWRpbmcgb2YgZW1pc3Npb24gYWxsb3dhbmNlcyB0byBoZWxwIGFjaGlldmUgZW1pc3Npb25zIHJlZHVjdGlvbiB0YXJnZXRzOyBlc3RhYmxpc2hlcyBhIGZyYW1ld29yayBmb3IgYWNjb3VudGluZyBydWxlcywgYW5kIGNyZWF0ZXMgYSBuZXcsIG1vcmUgYW1iaXRpb3VzIG1hcmtldCBtZWNoYW5pc20uPC9wPg0KDQo8cD5JdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgZGV2ZWxvcGluZyBFVSBwb2xpY3kgb24gY2FyYm9uIHJlbW92YWxzIHJlZmxlY3RzIGFuZCBpbmZsdWVuY2VzIHRoaXMgaW50ZXJuYXRpb25hbCBkaW1lbnNpb24uIFRoZSBFVSZyc3F1bztzIGNlcnRpZmljYXRpb24gbWVjaGFuaXNtIGlzIHRoZSZuYnNwO2ZpcnN0IG9mIGl0cyBraW5kLCBidXQgaXQgZG9lc24mcnNxdW87dCBjdXJyZW50bHkgZnVsbHkgcmVmbGVjdCB0aGUgaW50ZXJuYXRpb25hbCBkaW1lbnNpb24gb2YgY2FyYm9uIG1hcmtldHM6IGl0IGlzIHVuY2xlYXIgaG93IHJlbW92YWxzIGFuZCBjZXJ0aWZpY2F0ZXMgaXNzdWVkIG91dHNpZGUgb2YgdGhlIEVVIHdpbGwgYmUgdHJlYXRlZCBpbnNpZGUgdGhlIEVVLjwvcD4NCg0KPHA+VGhlIEVVIGhhcyBhbiBvcHBvcnR1bml0eSB0byBoZWxwIHNoYXBlIHRoZSBpbnRlcm5hdGlvbmFsIGRpbWVuc2lvbiBhbmQgY29uc2lkZXJhdGlvbiBvZiBjYXJib24gcmVtb3ZhbHMuPC9wPg0KDQo8cD48c3Ryb25nPldoYXQgY2FuIEVVIHBvbGljeW1ha2VycyBkbyB0byBzdXBwb3J0IHRoZSBlZmZlY3RpdmUgZGV2ZWxvcG1lbnQgb2YgY2FyYm9uIHJlbW92YWxzIHRlY2hub2xvZ2llcyBhbmQgdGhlIG1hcmtldCBmb3IgdGhlbT8gPC9zdHJvbmc+PC9wPg0KDQo8cD48c3Ryb25nPkthc2lhIFdpbGs6IDwvc3Ryb25nPlRoZSBFVSBoYXMgYWxyZWFkeSB0YWtlbiBzZXZlcmFsIHN0ZXBzIHRvIHN1cHBvcnQgdGhlIGRldmVsb3BtZW50IG9mIGNhcmJvbiByZW1vdmFsIHRlY2hub2xvZ2llcyBhbmQgaW5kdXN0cnkuPC9wPg0KDQo8cD5UaGUgQ2FyYm9uIERpb3hpZGUgQ2FwdHVyZSBhbmQgU3RvcmFnZSBEaXJlY3RpdmUgZXN0YWJsaXNoZXMgYSByZWd1bGF0b3J5IGZyYW1ld29yayBmb3IgdGhlIGdlb2xvZ2ljYWwgc3RvcmFnZSBvZiBDTzIgYW5kIHRoZSBDYXJib24gUmVtb3ZhbCBDZXJ0aWZpY2F0aW9uIEZyYW1ld29yayBzdXBwb3J0cyB0aGUgZGV2ZWxvcG1lbnQgb2YgYSBWQ00uPC9wPg0KDQo8cD5UaGUgSW5kdXN0cmlhbCBDYXJib24gTWFuYWdlbWVudCZuYnNwO1N0cmF0ZWd5IHdoaWNoIHByb3ZpZGVzIGEgcm9hZG1hcCBmb3IgdGhlIGNhcHR1cmUgYW5kIHN0b3JhZ2Ugb2YgbWlsbGlvbnMgb2YgdG9ubmVzIG9mIGNhcmJvbiBkaW94aWRlIGluIHRoZSBuZXh0IHRocmVlIGRlY2FkZXMsIGFsc28gcmVpbmZvcmNlcyB0aGUgbmVlZCBmb3IgcG9saWNpZXMgYW5kIHN1cHBvcnQgbWVjaGFuaXNtcyBmb3IgY2FyYm9uIHJlbW92YWwgdGVjaG5vbG9naWVzLiBIb3dldmVyLCB0aGUgY3VycmVudCBsZWdpc2xhdGl2ZSBmcmFtZXdvcmsgaXMgZnJhZ21lbnRlZCwgYWRkcmVzc2luZyBjYXJib24gcmVtb3ZhbHMgYWNyb3NzIHNldmVyYWwgcGllY2VzIG9mIGxlZ2lzbGF0aW9uLiBUaGUgc2VjdG9yIGN1cnJlbnRseSByZWxpZXMgb24gYSBmZXcgZnVuZGluZyB0b29scyB0byBnZXQgcHJvamVjdHMgb2ZmIHRoZSBncm91bmQsIHdpdGggdGhlIFZDTSBiZWluZyBvbmUgb2YgdGhlIGtleSBzb3VyY2VzIG9mIGZ1bmRpbmcuPC9wPg0KDQo8cD5BcyBJIG1lbnRpb25lZCBwcmV2aW91c2x5LCBpdCBpcyBpbXBvcnRhbnQgdG8gYXNzZXNzIGFuZCBlc3RhYmxpc2ggY2xlYXIgRVUgdGFyZ2V0cyBmb3IgaW5kdXN0cmlhbCBjYXJib24gcmVtb3ZhbHMgYW5kIGRldmVsb3AgYSByb2FkbWFwIGZvciB0aGUgc2NhbGUgdXAgb2YgdGhlc2UgdGVjaG5vbG9naWVzLCBldmFsdWF0aW5nIHZhcmlvdXMgYnVzaW5lc3MgbW9kZWxzIGFuZCBmdW5kaW5nIG9wdGlvbnMsIGluY2x1ZGluZyBFVSBFVFMgaW50ZWdyYXRpb24uPC9wPg0KDQo8cD5XZSBhbHNvIG5lZWQgYSBwb2xpY3kgZnJhbWV3b3JrIHRoYXQgaXMgY29uc2lzdGVudCBhbmQgaGFybW9uaXNlZCwgd2hlcmUgdGhlIGFkbWluaXN0cmF0aXZlIGJ1cmRlbiBpcyBhdCBhIG1pbmltdW0sIHdoaWxlIHN0aWxsIG1haW50YWluaW5nIGhpZ2ggc3VzdGFpbmFiaWxpdHkgc3RhbmRhcmRzLjwvcD4NCg0KPHA+VG9vbHMgbGlrZSBzdXN0YWluYWJsZSBiaW9lbmVyZ3kgYW5kIEJFQ0NTIGFyZSBrZXkgZm9yIHJlYWNoaW5nIGNsaW1hdGUgbmV1dHJhbGl0eSBpbiAyMDUwLiBTdXN0YWluYWJsZSBiaW9tYXNzIGlzIHRoZSBsYXJnZXN0IHJlbmV3YWJsZSBlbmVyZ3kgc291cmNlIGluIEV1cm9wZSBhbmQgd2lsbCBjb250aW51ZSB0byBwbGF5IGFuIGltcG9ydGFudCByb2xlIHRvd2FyZHMgMjA1MC48L3A+DQoNCjxwPkJFQ0NTIC0gY2FwdHVyaW5nIGFuZCBwZXJtYW5lbnRseSBzdG9yaW5nIGNhcmJvbiBkaW94aWRlIGZyb20gYmlvZW5lcmd5IC0gaXMgdGhlIG1vc3Qgc2NhbGFibGUgY2FyYm9uIHJlbW92YWwmbmJzcDt0ZWNobm9sb2d5IGF2YWlsYWJsZS4gQkVDQ1MgaXMgdW5pcXVlIGluIGl0cyBhYmlsaXR5IHRvIGRlbGl2ZXIgMjQvNyBkaXNwYXRjaGFibGUgcmVuZXdhYmxlIHBvd2VyIHdoaWxlIHJlbW92aW5nIGNhcmJvbiBmcm9tIHRoZSBhdG1vc3BoZXJlLjwvcD4NCg0KPHA+VGhlIEludGVybmF0aW9uYWwgRW5lcmd5IEFnZW5jeSByZWNvZ25pc2VzIEJFQ0NTIGFzIHRoZSBtb3N0IG1hdHVyZSBjYXJib24gcmVtb3ZhbCBlbWlzc2lvbnMgdGVjaG5vbG9neSBvbiB0aGUgbWFya2V0LCBlc3RpbWF0aW5nIHRoYXQgMS4zIEd0Q08yIG9mIGNhcmJvbiByZW1vdmFscyBmcm9tIEJFQ0NTIGlzIG5lZWRlZCBldmVyeSB5ZWFyIHRvIHJlYWNoIG5ldCB6ZXJvLiBXaGVuIGRvbmUgd2VsbCwgQkVDQ1Mgd2lsbCBwbGF5IGEgdml0YWwgcm9sZSBpbiBzdXBwb3J0aW5nIHRoZSBFVSBkZWxpdmVyIGl0cyBjbGltYXRlIHRhcmdldHMuPC9wPg0KDQo8YmxvY2txdW90ZT4NCjxwPlRhcmdldHMgY2Fubm90IGJlIG1lcmUgcHJvY2xhbWF0aW9ucyBvZiZuYnNwO21lcmUgd2lzaGZ1bCB0aGlua2luZyZuYnNwO2FwcHJvYWNoZXMuIFdlIG5lZWQgdG8mbmJzcDtoYXZlIHBsYW5zIGFuZCB0aG9zZSBwbGFucyZuYnNwO25lZWQgdG8gYmUgZmVhc2libGUuPC9wPg0KDQo8cD4mbmJzcDs8L3A+DQo8L2Jsb2NrcXVvdGU+DQoNCjxwPjxzdHJvbmc+TUVQIFBlcmVpcmE6IDwvc3Ryb25nPkVVIHBvbGljeSBtYWtlcnMgbmVlZCwgZmlyc3QgYW5kIGZvcmVtb3N0LCB0byB1bmRlcnN0YW5kIHRoYXQgdGFyZ2V0cyBjYW5ub3QgYmUgbWVyZSBwcm9jbGFtYXRpb25zIG9mIG1lcmUgd2lzaGZ1bCB0aGlua2luZyBhcHByb2FjaGVzLiBXZSBuZWVkIHRvIGhhdmUgcGxhbnMgYW5kIHRob3NlIHBsYW5zIG5lZWQgdG8gYmUgZmVhc2libGUuPC9wPg0KDQo8cD5JZiB3ZSBhcmUgdG8gY3JlYXRlIGNvbmRpdGlvbnMgZm9yIGNhcmJvbiByZW1vdmFsIHRlY2hub2xvZ2llcyB0byBncm93LCB3ZSBuZWVkIGZ1bmRpbmcuIEZvciBpbnN0YW5jZSwgb3VyIGNsZWFudGVjaCBzY2FsZS11cHMgYWNjZXNzIGxlc3MgdGhhbiBoYWxmIHRoYXQgQW1lcmljYW4gc2NhbGUgdXAgY29tcGFuaWVzIGRvLiBXZSBuZWVkIHRvIHdvcmsgb24gYmxlbmRlZCBmaW5hbmNlLCB3aXRoIHB1YmxpYy1wcml2YXRlIGd1YXJhbnRlZXMuIFdlIG11c3QgaW52ZXN0IGluIHB1YmxpYyBwcm9jdXJlbWVudCBvZiB0aGVzZSBzb2x1dGlvbnMuPC9wPg0KDQo8cD5XZSBhcmUgYXQgdGhlIGZvcmVmcm9udCBvZiBtYW55IG9mIHRoZXNlIHRlY2hub2xvZ2llcyBhbmQgd2UgbmVlZCBzdHJvbmcgcHVibGljIGFuZCBwcml2YXRlIGRlbWFuZCB0byBiZSBhYmxlIHRvIGdyb3cgdGhlc2UgY29tcGFuaWVzLiBTbyB3ZSBjYW4gc3RhcnQgd2l0aCBzbWFsbCBwdWJsaWMgcHJvY3VyZW1lbnQgcHJvY2VkdXJlcy4gRm9yIGluc3RhbmNlLCB3aGVuIGlzIHRoZSBFVSBQYXJsaWFtZW50IGdvaW5nIGNsaW1hdGUgbmV1dHJhbCwgYW5kIHdoYXQgaXMgdGhlIHJvbGUgb2YgY2FyYm9uIHJlbW92YWxzIG9uIGl0PyBXZSBuZWVkIGFsc28sIG9mIGNvdXJzZSwgdG8gaGF2ZSBmYXZvcmFibGUgcmVndWxhdG9yeSBlbnZpcm9ubWVudCwgYW5kIGluIHRoaXMgcGFydGljdWxhciBjYXNlLCBJIGFtIHdvcnJpZWQgYWJvdXQgdGhlIEdyZWVuIENsYWltcyBEaXJlY3RpdmUsIHdoaWNoIEkgaG9wZSBlbmRzIGluIGEgbW9yZSBjYXJib24gcmVtb3ZhbCBmcmllbmRseSBhcHByb2FjaCB0aGF0IGhhcyBzdGFydGVkLjwvcD4NCg0KPHA+V2UgbXVzdCBhbHNvIGxvb2sgYXQgdGhlIHBvc3NpYmlsaXR5IG9mIGhhdmluZyBjb21wbGlhbmNlIHRhcmdldHMgZm9yIGNhcmJvbiByZW1vdmFscyBmb3IgdGhlIE1lbWJlciBTdGF0ZXMuIFdlIGNhbiBwdXNoIGZvciBzdHJvbmcgdGF4IGluY2VudGl2ZXMgYXQgbWVtYmVyIHN0YXRlIGxldmVsLCBmb3IgaW5zdGFuY2UuIFRoZXJlIGlzIG11Y2ggd29yayB0byBiZSBkb25lLCBhbmQgSSBhbSBoYXBweSB0aGF0IEkgaGF2ZSBmaXZlIHllYXJzIGFoZWFkIHRvIGtlZXAgb24gcHVzaGluZyBmb3IgdGhpcyBhZ2VuZGEuPC9wPg0KPGRpdiBjbGFzcz0ibWlkYXJ0aWNsZS1hZHMiPg0KPCEtLS0tLS0tLS0tLS0tLS0tLSBTY3JvbGxBZCBUYWcgLS0tLS0tLS0tLS0tLS0tLS0+IDxkaXYgaWQ9ImFkc3VpdGVTY3JvbGxBZCI+PC9kaXY+DQo8ZGl2IGNsYXNzPSJjb2wtLWFkIGNvbC0tYWQtaW5BcnRpY2xlIj4NCjxkaXYgaWQ9J2Rpdi1ncHQtYWQtMTYwODIzMDAxMzg5MC01Jz4NCiAgPHNjcmlwdD4NCiAgICBnb29nbGV0YWcuY21kLnB1c2goZnVuY3Rpb24oKSB7IGdvb2dsZXRhZy5kaXNwbGF5KCdkaXYtZ3B0LWFkLTE2MDgyMzAwMTM4OTAtNScpOyB9KTsNCiAgPC9zY3JpcHQ+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQpkAggPFgIeC18hSXRlbUNvdW50AgEWAgIBD2QWAmYPFQIZL25ld3MvdGFnLmh0bT9maWx0ZXI9MTM5MiJDYXJib24gQm9yZGVyIEFkanVzdG1lbnQgTWVjaGFuaXNtZAIJDxYCHwQCARYCAgEPZBYCZg8VAhsvZW5lcmd5LWFuZC1lbnZpcm9ubWVudC5odG0URW5lcmd5ICYgRW52aXJvbm1lbnRkAgoPFgIfAGVkAgwPFgIfBAIBFgJmD2QWAgIBDw8WAh8CZ2QWBmYPZBYCZg9kFgJmD2QWBGYPZBYCAgEPFgIfBAL/////D2QCAg9kFgICAQ8WAh8EAv////8PZAICDxYEHwAFtAI8ZGl2IGNsYXNzPSJhdi1ib3ggYXYtYm94LS1hc3NvY2lhdGVkIj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhdmItdGl0bGUiPkFzc29jaWF0ZWQgT3JnYW5pc2F0aW9uPC9zcGFuPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXZiLWNvbnRlbnQiPg0KPGltZyBkYXRhLXNpemVzPSJhdXRvIiBkYXRhLXNyYz0iL3NpdGVpbWcvbGlzdC14LWZvdXIvdWdjLTEvZnVsbG5ld3MvbmV3cy8yNDgzNi8yNDU2NV9vcmlnaW5hbC5qcGciIGNsYXNzPSJsYXp5bG9hZCIgYWx0PSJEcmF4Ij4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCh8CZ2QCBA8WAh8ABQREcmF4ZAIFD2QWAmYPZBYCZg9kFgJmD2QWAmYPZBYCZg9kFgJmDxYCHwAFvQY8ZGl2IGNsYXNzPSJoMyI+QSBtb250aGx5IG1hZ2F6aW5lIHBhY2tlZCB3aXRoIHRpbWVseSBmZWF0dXJlcywgbmV3cyBhbmFseXNlcyBhbmQgb3BpbmlvbiBhcnRpY2xlcyBvbiBFVSBwb2xpY3kuPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZnRyLXN1YnMiPg0KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iY2xlYXJGaXgiIGhyZWY9Imh0dHBzOi8vd3d3LnRwZ3JvdXBzaG9wLmNvbS9zdG9yZS9wcm9kdWN0cyx0aGUtcGFybGlhbWVudF8yMS5odG0iIHRhcmdldD0iX2JsYW5rIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ0cnMtaW1nIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPSJsYXp5bG9hZCIgZGF0YS1zcmM9Ii91Z2MtMS91cGxvYWRzL3BhZ2VibG9ja3MvODUyNC9kMDliYmFmMzlmN2ZiZjdkMjljOTI5MjZlOGM1ODVmNi5qcGciIGFsdD0iU3Vic2NyaWJlIiA+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZ0cnMtdGV4dCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5TdWJzY3JpYmUgdG8gVGhlIFBhcmxpYW1lbnQ8L3N0cm9uZz48L3A+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iYnRuIGJ0bi0teWVsbG93IGJ0bi0teHNtYWxsIj5TdWJzY3JpYmUgbm93PC9zcGFuPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgPC9kaXY+ZGTicGSDdoshpr7EI3tnv+o3SyKiafm4iCCOaA+V5aUOSQ==" /> </div> <script type="text/javascript"> //<![CDATA[ var theForm = document.forms['form1']; if (!theForm) { theForm = document.form1; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script> <script src="/WebResource.axd?d=Z6H9xMIlvyL3CntSP0RUQ2RoiZrPLCPNLqj1SwZk_bp3I663kp8bWldCSTkypXZQ5VmtzuTMW06WuULwL-0MnQDq-PJzyWq4-5wHJgsW2cY1&t=638563308220000000" type="text/javascript"></script> <script src="/ScriptResource.axd?d=YH05l78KeK8eaVTwL8OCmqH87AJXyqNFsxb8JSr2dYTx3O90_kf_o6FS1UiSoMyPht7mB9LYkgHwxs-jdGdHETIdCvPQTjTuKYxdazco3-mxkoijuLVKxa-EQzUpHfvY6dKy15qZB2xH7B9LNA56fZ-1J-PcrlL0MXoP-iI98tQ1&t=ffffffffc820c398" type="text/javascript"></script> <script src="/ScriptResource.axd?d=mk5b-_CofLPrVExdUD7Fe-eWGk5yCsU42S2HuBk7P_NWXJxFr7tN5PWSXRbIgU8NtU3vnHY17uqPzRdbJs3O6ISdP63yANjFZJcjpYadBFZjmIATiT6w9srdNRraKhmG2pwem0LYLalC_pYN8agQGh9zhvBE8hIIZ4IIX9Eg-V4Wg1efJTmVm-btScZBxwVY0&t=ffffffffc820c398" type="text/javascript"></script> <header> <noscript> <div class="msg msgError nojavascript"> <p> This site requires JavaScript for certain functions and interactions to work. Please turn on JavaScript for the best possible experience.</p> </div> </noscript> <div class="hdr-ad"> <div class="row--ad"> <!-- /1048162/pm/news-article_header --> <div id='div-gpt-ad-1608230013890-0'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1608230013890-0'); }); </script> </div> </div> </div> <div class="hdr-top"> <!--<div class="hdr-pDods"> <a href="http://www.dodsgroup.com/" target="_blank">Part of the DODS Group <span> <img src="/_img/icons/dods_icon_white.svg" alt="DODS Group Logo"> </span> </a> </div>--> <div class="hdr-topRight"> <div class="hdr-register"> <a href="/more/newsletter-registration.htm" class="hdr-reg">Register for our newsletter</a> </div> <div class="burger"> <div class="hamburger"> <span></span> </div> <div class="b-label">Menu</div> </div> </div> </div> <div class="hdr-main"> <div class="hdr-social"> <a href="http://www.facebook.com/TheParliamentMagazine/" target="_blank" class="icon icon--facebook"></a> <a href="https://x.com/parlimag" target="_blank" class="icon icon--x"> <svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 512 462.799"><path fill-rule="nonzero" d="M403.229 0h78.506L310.219 196.04 512 462.799H354.002L230.261 301.007 88.669 462.799h-78.56l183.455-209.683L0 0h161.999l111.856 147.88L403.229 0zm-27.556 415.805h43.505L138.363 44.527h-46.68l283.99 371.278z"/></svg> </a> <a href="https://www.linkedin.com/company/the-parliament-magazine/" target="_blank" class="icon icon--linkedIn"></a> <a href="https://www.instagram.com/theparliamentmagazineeu/" target="_blank" class="icon icon--instagram"></a> </div> <a href="/" class="logo hideText">The Parliament Magazine</a> <div class="hdr-promo"> <div class="promo-text"> <p class="oswald">Subscribe to The Parliament</p> <a href="https://www.tpgroupshop.com/store/products,the-parliament_21.htm" target="_blank" class="btn btn--dark btn--xsmall" >Subscribe now</a> </div> <div class="promo-img"> <img alt="Subscribe now" src="/ugc-1/uploads/pageblocks/8521/35eb6d930ca1db1fae28cfa99b5c26af.jpg"> </div> </div> </div> <div class="hdr-nav"> <div class="nav-main"> <nav class="menu"> <ul><li><a href="/the-green-deal.htm" title="The Green Deal"><span>The EU's green transition</span></a></li><li><a href="/eu-institutions.htm" title="EU Institutions"><span>EU Institutions</span></a></li><li><a href="/foreign-and-security-policy.htm" title="Foreign & Security Policy"><span>Foreign & Security Policy</span></a></li><li><a href="/economics.htm" title="Economics"><span>Economics</span></a></li><li><a href="/technology.htm" title="Technology"><span>Technology</span></a></li><li><a href="/energy-and-environment.htm" title="Energy & Environment"><span>Energy & Environment</span></a></li><li><a href="/culture-and-arts.htm" title="Culture & Arts"><span>Culture & Arts</span></a></li><li class="navDisableClick navMobToggle liHasChildren"><a href="/more.htm" title="More"><span>More</span></a><ul><li><a href="/more/about-us.htm" title="About The Parliament Magazine | The Parliament Magazine"><span>About</span></a></li><li><a href="/magazine.htm" title="Print magazine"><span>Print magazine</span></a></li><li><a href="/more/newsletter-registration.htm" title="Newsletters & Registration | The Parliament Magazine"><span>Newsletter</span></a></li><li><a href="https://events.theparliamentmagazine.eu/" title="Events"><span>Events</span></a></li><li><a href="/more/training.htm" title="Professional Development Training"><span>Training</span></a></li><li><a href="/more/commercial-opportunities.htm" title="Commercial Opportunities | The Parliament Magazine"><span>Commercial Opportunities</span></a></li><li><a href="/members/directory.htm" title="Members Directory"><span>Members Directory</span></a></li><li><a href="/more/the-european-parliament-committee-guide-2024.htm" title="The European Parliament Committee Guide 2024"><span>The European Parliament Committee Guide 2024</span></a></li></ul></li></ul> </nav> <div class="nav-search icon icon--search"><span>Search</span></div> </div> <div class="nav-sub"> <nav class="greedy-nav"> <ul><li class="noSub"><a href="/news.htm" title="News | The Parliament Magazine"><span>News analysis</span></a></li><li><a href="/features.htm" title="Features"><span>Feature</span></a></li><li><a href="/q-a.htm" title="Q+A"><span>Q+A</span></a></li><li><a href="/opinion.htm" title="Opinion | The Parliament Magazine"><span>Opinion</span></a></li><li><a href="/more/newsletter-registration.htm" title="Newsletters & Registration | The Parliament Magazine"><span>Newsletter</span></a></li></ul> <ul class="hidden-links hidden"></ul> <div class="gn-more"> <span class="icon icon--minusSlim">More</span> </div> </nav> </div> <div class="nav-bottom"> <div class="nav-social"> <p>Follow us:</p> <a href="https://x.com/parlimag" target="_blank" class="icon icon--x"> <svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 512 462.799"><path fill-rule="nonzero" d="M403.229 0h78.506L310.219 196.04 512 462.799H354.002L230.261 301.007 88.669 462.799h-78.56l183.455-209.683L0 0h161.999l111.856 147.88L403.229 0zm-27.556 415.805h43.505L138.363 44.527h-46.68l283.99 371.278z"/></svg> </a> <a href="https://www.facebook.com/PoliticsHomeUK/" target="_blank" class="icon icon--facebook"></a> <a href="https://www.linkedin.com/company/the-parliament-magazine/" target="_blank" class="icon icon--linkedIn"></a> <a href="https://www.instagram.com/theparliamentmagazineeu/" target="_blank" class="icon icon--instagram"></a> </div> </div> </div> </header> <div class="sticky-header clearFix"> <a class="logo-sticky" href="/"> <img src="/_img/logo_the_parliament_white.svg" /> </a> <nav class="sticky-nav"> <ul><li><a href="/the-green-deal.htm" title="The Green Deal"><span>The EU's green transition</span></a></li><li><a href="/eu-institutions.htm" title="EU Institutions"><span>EU Institutions</span></a></li><li><a href="/foreign-and-security-policy.htm" title="Foreign & Security Policy"><span>Foreign & Security Policy</span></a></li><li><a href="/economics.htm" title="Economics"><span>Economics</span></a></li><li><a href="/technology.htm" title="Technology"><span>Technology</span></a></li><li><a href="/energy-and-environment.htm" title="Energy & Environment"><span>Energy & Environment</span></a></li><li><a href="/culture-and-arts.htm" title="Culture & Arts"><span>Culture & Arts</span></a></li><li class="navDisableClick navMobToggle liHasChildren"><a href="/more.htm" title="More"><span>More</span></a><ul><li><a href="/more/about-us.htm" title="About The Parliament Magazine | The Parliament Magazine"><span>About</span></a></li><li><a href="/magazine.htm" title="Print magazine"><span>Print magazine</span></a></li><li><a href="/more/newsletter-registration.htm" title="Newsletters & Registration | The Parliament Magazine"><span>Newsletter</span></a></li><li><a href="https://events.theparliamentmagazine.eu/" title="Events"><span>Events</span></a></li><li><a href="/more/training.htm" title="Professional Development Training"><span>Training</span></a></li><li><a href="/more/commercial-opportunities.htm" title="Commercial Opportunities | The Parliament Magazine"><span>Commercial Opportunities</span></a></li><li><a href="/members/directory.htm" title="Members Directory"><span>Members Directory</span></a></li><li><a href="/more/the-european-parliament-committee-guide-2024.htm" title="The European Parliament Committee Guide 2024"><span>The European Parliament Committee Guide 2024</span></a></li></ul></li></ul> </nav> <div class="sticky-srch"></div> <div class="burger"> <div class="hamburger"> <span></span> </div> </div> </div> <div class="search-overlay"> <div id="hdr_pnlSearch" class="hdr-searchBar" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'hdr_btnSearch')"> <input name="ctl00$hdr$txtSearch" type="text" id="hdr_txtSearch" class="text sb-keyword" placeholder="Enter keyword/s" /> <input type="submit" name="ctl00$hdr$btnSearch" value="Search" id="hdr_btnSearch" class="btn btn--medium sb-btn" /> </div> <span class="search-close icon icon--close"></span> </div> <main> <div class="template template--1col "> <div class="main-content"> <div class="container"> <script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ "ArticleType":[{"name":"Q&A", "id" :3345}], "Category":[{"name":"Energy & Environment", "id" :3351}], "Tagging":[{"name":"Carbon Border Adjustment Mechanism", "id" :1392}] }); </script> <div class="article-view "> <div class="av-inner"> <div class="av-title"> <h1>The path to climate neutrality: what is the role of carbon removals and cleantech innovation?</h1> <div class="av-standFirst playfair">Achieving the EU’s climate goals while maintaining economic growth and competitiveness is the key challenge of this new mandate. What role can carbon removals and cleantech innovation<br /> play? We speak with MEP Lidia Pereira (Portugal, EPP), and Kasia Wilk, Head of Public Affairs and Policy for Europe and Asia, at Drax, to find out more</div> </div> <div class="av-image"> <div class="av-main-img"> <img class="lazyload" data-src="/siteimg/news-main/ugc-1/fullnews/news/24835/24566_original.jpg"> </div> </div> <div class="av-author"> <div class="av-authImg"> <img data-src="/siteimg/authorimg/ugc-1/fullnews/author/4802/830_original.jpg" class="lazyload" alt="The Parliament Partner Content"> </div> <div class="av-authInfo"> <p class="av-authName"> By The Parliament Partner Content </p> <p class="av-authBio">The Parliament Partner Content team works with organisations from across the world to bring their stories to the eyes of policy makers and industry stakeholders across Europe.</p> <p class="av-date">19 Nov 2024</p> <p class="av-authTwitter"> <a target="_blank" class="icon icon--x" href="https://x.com/@Parlimag"> <svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 512 462.799"><path fill-rule="nonzero" d="M403.229 0h78.506L310.219 196.04 512 462.799H354.002L230.261 301.007 88.669 462.799h-78.56l183.455-209.683L0 0h161.999l111.856 147.88L403.229 0zm-27.556 415.805h43.505L138.363 44.527h-46.68l283.99 371.278z"/></svg> @Parlimag</a> </p> <hr class="hr-client" /><p class="av-authName av-authClient av-authClient--nolink">Drax</p> </div> </div> <div class="av-main"> <div class="av-authType"> <span class="av-tag av-tag--partner"><a href="/more/commercial-opportunities.htm">Partner Content</a></span> </div> <!-- <div class="av-standFirst playfair"> </div> --> <div class="av-share-bottom clearFix share-buttons-wrap"> <span class="icon icon--right-arrow">Share this page</span> <div class="share-buttons"> <a class="share-button-item share-button-item--twitter" href="https://x.com/intent/tweet?text=The+path+to+climate+neutrality%3a+what+is+the+role+of+carbon+removals+and+cleantech+innovation%3f&url=https://www.theparliamentmagazine.eu%2fpartner%2farticle%2fthe-path-to-climate-neutrality-what-is-the-role-of-carbon-removals-and-cleantech-innovation" target="_blank" rel="noopener" aria-label=""> <svg viewBox="0 0 14 12" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path d="M11.026 0h2.146L8.483 5.083 14 12H9.68L6.296 7.805 2.425 12H.276l5.017-5.437L0 0h4.43l3.058 3.834L11.026 0Zm-.754 10.781h1.19L3.783 1.155H2.507l7.765 9.626Z" style="fill:#fff;fill-rule:nonzero"/></svg> </a> <a class="share-button-item share-button-item--whatsapp" href="whatsapp://send?text=The+path+to+climate+neutrality%3a+what+is+the+role+of+carbon+removals+and+cleantech+innovation%3f%20https://www.theparliamentmagazine.eu%2fpartner%2farticle%2fthe-path-to-climate-neutrality-what-is-the-role-of-carbon-removals-and-cleantech-innovation" target="_blank" rel="noopener" aria-label=""> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M20.1 3.9C17.9 1.7 15 .5 12 .5 5.8.5.7 5.6.7 11.9c0 2 .5 3.9 1.5 5.6L.6 23.4l6-1.6c1.6.9 3.5 1.3 5.4 1.3 6.3 0 11.4-5.1 11.4-11.4-.1-2.8-1.2-5.7-3.3-7.8zM12 21.4c-1.7 0-3.3-.5-4.8-1.3l-.4-.2-3.5 1 1-3.4L4 17c-1-1.5-1.4-3.2-1.4-5.1 0-5.2 4.2-9.4 9.4-9.4 2.5 0 4.9 1 6.7 2.8 1.8 1.8 2.8 4.2 2.8 6.7-.1 5.2-4.3 9.4-9.5 9.4zm5.1-7.1c-.3-.1-1.7-.9-1.9-1-.3-.1-.5-.1-.7.1-.2.3-.8 1-.9 1.1-.2.2-.3.2-.6.1s-1.2-.5-2.3-1.4c-.9-.8-1.4-1.7-1.6-2-.2-.3 0-.5.1-.6s.3-.3.4-.5c.2-.1.3-.3.4-.5.1-.2 0-.4 0-.5C10 9 9.3 7.6 9 7c-.1-.4-.4-.3-.5-.3h-.6s-.4.1-.7.3c-.3.3-1 1-1 2.4s1 2.8 1.1 3c.1.2 2 3.1 4.9 4.3.7.3 1.2.5 1.6.6.7.2 1.3.2 1.8.1.6-.1 1.7-.7 1.9-1.3.2-.7.2-1.2.2-1.3-.1-.3-.3-.4-.6-.5z" /> </svg> </a> <a class="share-button-item share-button-item--linkedin" href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.theparliamentmagazine.eu%2fpartner%2farticle%2fthe-path-to-climate-neutrality-what-is-the-role-of-carbon-removals-and-cleantech-innovation&title=The+path+to+climate+neutrality%3a+what+is+the+role+of+carbon+removals+and+cleantech+innovation%3f&summary=The+path+to+climate+neutrality%3a+what+is+the+role+of+carbon+removals+and+cleantech+innovation%3f&source=https://www.theparliamentmagazine.eu%2fpartner%2farticle%2fthe-path-to-climate-neutrality-what-is-the-role-of-carbon-removals-and-cleantech-innovation" target="_blank" rel="noopener" aria-label=""> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M6.5 21.5h-5v-13h5v13zM4 6.5C2.5 6.5 1.5 5.3 1.5 4s1-2.4 2.5-2.4c1.6 0 2.5 1 2.6 2.5 0 1.4-1 2.5-2.6 2.5zm11.5 6c-1 0-2 1-2 2v7h-5v-13h5V10s1.6-1.5 4-1.5c3 0 5 2.2 5 6.3v6.7h-5v-7c0-1-1-2-2-2z" /> </svg> </a> <a class="share-button-item share-button-item--email" href="mailto:?subject=The+path+to+climate+neutrality%3a+what+is+the+role+of+carbon+removals+and+cleantech+innovation%3f&body=https://www.theparliamentmagazine.eu%2fpartner%2farticle%2fthe-path-to-climate-neutrality-what-is-the-role-of-carbon-removals-and-cleantech-innovation" target="_self" rel="noopener" aria-label=""> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M22 4H2C.9 4 0 4.9 0 6v12c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7.25 14.43l-3.5 2c-.08.05-.17.07-.25.07-.17 0-.34-.1-.43-.25-.14-.24-.06-.55.18-.68l3.5-2c.24-.14.55-.06.68.18.14.24.06.55-.18.68zm4.75.07c-.1 0-.2-.03-.27-.08l-8.5-5.5c-.23-.15-.3-.46-.15-.7.15-.22.46-.3.7-.14L12 13.4l8.23-5.32c.23-.15.54-.08.7.15.14.23.07.54-.16.7l-8.5 5.5c-.08.04-.17.07-.27.07zm8.93 1.75c-.1.16-.26.25-.43.25-.08 0-.17-.02-.25-.07l-3.5-2c-.24-.13-.32-.44-.18-.68s.44-.32.68-.18l3.5 2c.24.13.32.44.18.68z" /> </svg> </a> <a class="share-button-item share-button-item--facebook" href="https://facebook.com/sharer/sharer.php?u=https://www.theparliamentmagazine.eu%2fpartner%2farticle%2fthe-path-to-climate-neutrality-what-is-the-role-of-carbon-removals-and-cleantech-innovation" target="_blank" rel="noopener" aria-label=""> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M18.77 7.46H14.5v-1.9c0-.9.6-1.1 1-1.1h3V.5h-4.33C10.24.5 9.5 3.44 9.5 5.32v2.15h-3v4h3v12h5v-12h3.85l.42-4z" /> </svg> </a> </div> </div> <p><strong>What are the main steps the EU needs to take to reach its goal of achieving carbon neutrality by 2050? </strong></p> <p><strong>Lidia Pereira MEP: </strong>First of all, we should remember that Europe has been leading global efforts to achieve carbon neutrality by 2050. This is a decisive transformation to secure the future, which the climate emergency demands to be carried out in a very short period of time.</p> <p>We have been very diligent in regulation, in communicating and in approving directives and regulations. Unfortunately, that does not do the work by itself. We know that the transition from polluting energy sources, with an economy that is still dependent on carbon-emitting energy sources, is not an easy challenge, especially given the maturity of many technologies. Therefore, we need to create an environment that allows this transition to occur quickly, but in a sustainable and reliable manner.</p> <p>We need to keep working on the business case for the transition. For this, we need to provide more and better support, both in terms of increased funding and support in the various stages of development of new cleantech technologies. It is also important to simplify and facilitate licensing mechanisms so that European companies can find markets within the European space itself and outside, allowing them to grow and scale their solutions. Only through the combination of different factors – investment and funding, licensing, improving the internal market and the capital markets union, and public procurement – can we achieve a business dynamic that allows us to reach carbon neutrality.</p> <blockquote> <p>Carbon removals are crucial for us to achieve our climate goals. The reports that have been coming out from the UNFCCC are very clear about this: we will not achieve our climate targets only by reducing our emissions. It is not feasible.</p> <p> </p> </blockquote> <p><strong>Kasia Wilk: </strong>I agree, the EU has proven to be a global leader in addressing climate change. The EU Green deal supports the EU’s carbon neutrality target though a comprehensive strategy, including increasing the share of renewable energy, enhancing energy efficiency, and decarbonising key sectors such as industry, transport and agriculture. It also has established a legal framework, EU Climate Law, to ensure accountability and compliance.</p> <p>That said, for the EU to remain competitive while achieving its climate goals, a strategic shift is needed to support businesses through the transition and encourage investment into innovative clean technologies, such as carbon dioxide removals. In my opinion, regulatory certainty and stability are as important as investment and new funding.</p> <p>The proposed Clean Industrial Act, as well as Industrial Accelerator Act an­nounced by President Von der Leyen, are a promising step toward aligning the EU’s industrial sector with its climate neutrality goals, while boosting competitiveness. However, their success will depend on their implementation, including lever­aging public and private investment to support the cleantech transition.</p> <p><strong>What role can carbon removals play in achieving the 2050 goal? </strong></p> <p><strong>MEP Pereira: </strong>The role of carbon removals is crucial for us to achieve our climate goals. The reports that have been coming out from the UNFCCC are very clear about this: we will not achieve our climate targets only by reducing our emissions. It is not feasible. So I would say that the role is an absolute key one. Not only talking about voluntary carbon markets but also about possible compliance rules and integration with the Emissions Trading System. Globally we need it not only because we want to achieve our targets but more broadly because we are in favour of decarbonisation, but not deindustrialization. We want growth with decarbonisation, with carbon being removed from the atmosphere. I believe this is also the sentiment of the people and our communities, who want to protect the planet but don’t want to be poorer because of it. Some political perspectives appear to have found in the climate fight a new class struggle, against reindustrialization, against growth. We are on the other side: for us, the path is one of innovation, of investment in European science and technology, of confidence in companies and our industrial capacity in Europe.</p> <p><strong>Kasia Wilk: </strong>Echoing MEP Pereira – it’s clear that to reach net zero we need to reduce emissions across each sector of the global economy and fully eliminate them where possible. But by 2050, significant emissions are still expected from hard-to-decarbonise sectors such as aviation, agriculture and heavy industry. It’s increasingly clear that carbon dioxide removal (CDR) will be essential to reach net zero to balance out emissions that are difficult to avoid as well as help remove historic emissions, by capturing carbon dioxide (CO2) that is already in the atmosphere, removing it and storing it permanently.</p> <p>According to the Sixth Assessment Report of the UN’s IPCC, nearly all pathways to net zero by 2050 will require a significant scale-up of carbon removals. Nevertheless, to get the sector to where it needs to be by mid-century will require the right policies and investment to support deployment now. At Drax, we are working to meet this need – earlier this year we launched Elimini, a dedicated carbon removals business with an ambition to deliver carbon removals at megaton scale, whilst also producing 24/7 renewable power.</p> <p>MEP Pereira is right - we need to support solutions that allow us to decarbonize while still moving forward. That is the crux of why we need to invest in carbon removal technologies now. We have solutions available to us, like BECCS (bioenergy with carbon capture and storage), that will allow us to remove carbon from the atmosphere while also generating the renewable power our society needs.</p> <blockquote> <p>The [right] path is one of innovation, of investment in European science and technology, of confidence in companies and our industrial capacity in Europe.</p> </blockquote> <p><strong>What can be done to raise awareness of the need for carbon removals and provide support for carbon removal projects? </strong></p> <p><strong>MEP Pereira: </strong>In fact, even if the awareness for climate change exists, it is a total different issue when discussing carbon removals. This challenge is different, and possibly more demanding: it is a challenge of competitiveness of carbon removal solutions. If we are able to provide a successful business model for carbon removal, be it through DACS or carbon farming, carbon removals will make its path. What we must provide is knowledge, funding and demand. A business environment in which these solutions may thrive, ensuring our competitiveness to the competition from other geographies that, due to their scale, governance model, and strategic investment focus, challenge us. Raising awareness must be done, first and foremost, among decision-makers, whether public or private, not only about the importance of carbon removals for the future of the planet but also their strategic potential for economic growth and relevance for industry.</p> <p><strong>What role can industry play in supporting these efforts and what policies need to be put in place to enable industry to act? </strong></p> <p><strong>Kasia Wilk: </strong>Businesses like Elimini will be critical in efforts to rapidly scale carbon removal technologies in the EU. To enable this, the EU has a unique opportunity to implement rapid policy action, including setting clear carbon removal targets, a dedicated policy framework, as well as providing robust financial support and de-risking investment. Without rapid action, the EU risks lagging global competition in other geographies, and in particular in North America.</p> <p>To support this effort it’s critical to develop policy frameworks that incentivise both the supply of those technologies but also the demand for carbon removals.</p> <p>The carbon removal sector is still new and relies on a limited number of financing tools. Investment decisions mainly rely on state subsidies or voluntary carbon markets (VCM) - a decentralised market where private actors can voluntarily buy and sell carbon credits. The sector needs more support in the coming years, as outlined in the Industrial Carbon Management Strategy, including: (1) the integration of carbon removals into EU ETS; (2) the development of support schemes, such as Carbon Contracts for Difference and/ or Government procurement of carbon removals (the US and Canada have recently launched similar schemes); and (3) finally, supporting the role of the VCM at global stage could drive private finance. The Green Claims Directive, currently being discussed in the Parliament and Council, has an important role to play for the latter.</p> <p>Developing EU’s CO2 transport and storage infrastructure and looking at the cross border and international carbon markets will be another key element.</p> <p><strong>Why is it important to adopt a global perspective when discussing carbon removals? </strong></p> <p><strong>MEP Pereira: </strong>There are several challenges in the global context. We know that it will be difficult to have a global approach through WTO in the coming years, but there is still plenty of work to do. It would be good, for instance, that other economic blocks were able to align with our Carbon Removal Certification Framework. Other important steps would be the approval of the Green Claims Directive with a pro-business perspective but also that we start discussing compliance targets for carbon removals and, finally, to use the ETS review in 2026 to integrate this instrument into ETS, which has been proved to be a regulated and reliable emission market. These are four concrete steps, both at global and EU level I believe would be important for the growth of carbon removals.</p> <p><strong>Kasia Wilk: </strong>International carbon markets can play a key role in reducing global greenhouse gas emissions cost-effectively. The Paris Agreement provides a basis for the use of international markets and reinforces global targets, transparency and accountability. Recognising the importance of international carbon markets, Article 6 of the agreement allows parties to use international trading of emission allowances to help achieve emissions reduction targets; establishes a framework for accounting rules, and creates a new, more ambitious market mechanism.</p> <p>It is important that the developing EU policy on carbon removals reflects and influences this international dimension. The EU’s certification mechanism is the first of its kind, but it doesn’t currently fully reflect the international dimension of carbon markets: it is unclear how removals and certificates issued outside of the EU will be treated inside the EU.</p> <p>The EU has an opportunity to help shape the international dimension and consideration of carbon removals.</p> <p><strong>What can EU policymakers do to support the effective development of carbon removals technologies and the market for them? </strong></p> <p><strong>Kasia Wilk: </strong>The EU has already taken several steps to support the development of carbon removal technologies and industry.</p> <p>The Carbon Dioxide Capture and Storage Directive establishes a regulatory framework for the geological storage of CO2 and the Carbon Removal Certification Framework supports the development of a VCM.</p> <p>The Industrial Carbon Management Strategy which provides a roadmap for the capture and storage of millions of tonnes of carbon dioxide in the next three decades, also reinforces the need for policies and support mechanisms for carbon removal technologies. However, the current legislative framework is fragmented, addressing carbon removals across several pieces of legislation. The sector currently relies on a few funding tools to get projects off the ground, with the VCM being one of the key sources of funding.</p> <p>As I mentioned previously, it is important to assess and establish clear EU targets for industrial carbon removals and develop a roadmap for the scale up of these technologies, evaluating various business models and funding options, including EU ETS integration.</p> <p>We also need a policy framework that is consistent and harmonised, where the administrative burden is at a minimum, while still maintaining high sustainability standards.</p> <p>Tools like sustainable bioenergy and BECCS are key for reaching climate neutrality in 2050. Sustainable biomass is the largest renewable energy source in Europe and will continue to play an important role towards 2050.</p> <p>BECCS - capturing and permanently storing carbon dioxide from bioenergy - is the most scalable carbon removal technology available. BECCS is unique in its ability to deliver 24/7 dispatchable renewable power while removing carbon from the atmosphere.</p> <p>The International Energy Agency recognises BECCS as the most mature carbon removal emissions technology on the market, estimating that 1.3 GtCO2 of carbon removals from BECCS is needed every year to reach net zero. When done well, BECCS will play a vital role in supporting the EU deliver its climate targets.</p> <blockquote> <p>Targets cannot be mere proclamations of mere wishful thinking approaches. We need to have plans and those plans need to be feasible.</p> <p> </p> </blockquote> <p><strong>MEP Pereira: </strong>EU policy makers need, first and foremost, to understand that targets cannot be mere proclamations of mere wishful thinking approaches. We need to have plans and those plans need to be feasible.</p> <p>If we are to create conditions for carbon removal technologies to grow, we need funding. For instance, our cleantech scale-ups access less than half that American scale up companies do. We need to work on blended finance, with public-private guarantees. We must invest in public procurement of these solutions.</p> <p>We are at the forefront of many of these technologies and we need strong public and private demand to be able to grow these companies. So we can start with small public procurement procedures. For instance, when is the EU Parliament going climate neutral, and what is the role of carbon removals on it? We need also, of course, to have favorable regulatory environment, and in this particular case, I am worried about the Green Claims Directive, which I hope ends in a more carbon removal friendly approach that has started.</p> <p>We must also look at the possibility of having compliance targets for carbon removals for the Member States. We can push for strong tax incentives at member state level, for instance. There is much work to be done, and I am happy that I have five years ahead to keep on pushing for this agenda.</p> <div class="midarticle-ads"> <!----------------- ScrollAd Tag -----------------> <div id="adsuiteScrollAd"></div> <div class="col--ad col--ad-inArticle"> <div id='div-gpt-ad-1608230013890-5'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1608230013890-5'); }); </script> </div> </div> </div> <div class="hide js-newsview-related"> <div class="av-related"> <div class="avr-title"> <span class="avr-cat">Related</span> </div> <div class="news-item news-item--related"> <div class="ni-image"> <a href="/news/article/oped-its-time-to-end-europes-antinuclear-dogma"> <img class="lazyload" data-src="/siteimg/list-x-four/ugc-1/fullnews/news/24853/24585_original.jpg"> </a> </div> <div class="ni-content"> <div class="ni-meta"> <span class="ni-date">20 Nov</span> <span class="ni-cat"><a href="/eu-institutions.htm">EU Institutions</a></span> </div> <div class="ni-title h3"> <a href="/news/article/oped-its-time-to-end-europes-antinuclear-dogma">Op-ed: It’s time to end Europe’s anti-nuclear dogma</a> </div> <div class="ni-author">by <a href="/news/author/christophe-grudler">Christophe Grudler</a></div> </div> </div> </div> </div> <div class="av-most-recent"> <p>Read the most recent articles written by <b>The Parliament Partner Content</b> - <a href="/news/article/shifting-the-dial-on-parkinsons-care-in-europe">Shifting the dial on Parkinson’s care in Europe</a> </p> </div> <div class="av-tags"> <p class="av-tagTitle">Tags</p> <a href="/news/tag.htm?filter=1392">Carbon Border Adjustment Mechanism</a> </div> <div class="av-tags av-tags--categories"> <p class="av-tagTitle">Categories</p> <a href="/energy-and-environment.htm">Energy & Environment</a> </div> </div> <div class="av-rc"> <div class="col-ad"> <!-- /1048162/pm/news-article_right-side-top --> <div id='div-gpt-ad-1608230013890-2' class="peu-ad"> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1608230013890-2'); }); </script> </div> </div> <div class="news-title"> <span class="nt-cat h6">Related articles</span> </div> <div class="news-list news-list--sqThumb news-list--sqThumb--members"> <div class="news-item"> <div class="ni-image"> <a href="/partner/article/redefining-europes-industrial-landscape"> <img data-src="/siteimg/news-memb/ugc-1/fullnews/news/24848/24580_original.jpg" class=" lazyload" alt="Alt"> <span class="ni-tag">Partner Content</span> </a> </div> <div class="ni-content"> <div class="ni-title"> <a href="/partner/article/redefining-europes-industrial-landscape">Redefining Europe’s industrial landscape</a> </div> <div class="ni-meta"> <span class="ni-date">18 Nov</span> <span class="ni-author">by <a href="">The Parliament Events</a></span> </div> </div> </div><div class="news-item"> <div class="ni-image"> <a href="/news/article/eus-landmark-deforestation-regulation-might-get-chopped"> <img data-src="/siteimg/news-memb/ugc-1/fullnews/news/24785/24584_original.jpg" class=" lazyload" alt="Alt"> </a> </div> <div class="ni-content"> <div class="ni-title"> <a href="/news/article/eus-landmark-deforestation-regulation-might-get-chopped">It’s official: EU deforestation law gets put on backburner</a> </div> <div class="ni-meta"> <span class="ni-date">15 Nov</span> <span class="ni-author">by <a href="/news/author/eloise-hardy">Eloise Hardy</a></span> </div> </div> </div><div class="news-item"> <div class="ni-image"> <a href="/news/article/oped-eu-needs-strategic-partnerships-to-secure-critical-raw-materials-supply"> <img data-src="/siteimg/news-memb/ugc-1/fullnews/news/24841/24573_original.jpg" class=" lazyload" alt="Alt"> </a> </div> <div class="ni-content"> <div class="ni-title"> <a href="/news/article/oped-eu-needs-strategic-partnerships-to-secure-critical-raw-materials-supply">Op-ed: EU needs strategic partnerships to secure critical raw materials supply</a> </div> <div class="ni-meta"> <span class="ni-date">14 Nov</span> <span class="ni-author">by <a href="/news/author/helene-bille-albrechtsen-and-mille-kjr-adamsen">Helene Bille Albrechtsen and Mille Kjær Adamsen</a></span> </div> </div> </div><div class="news-item"> <div class="ni-image"> <a href="/news/article/oped-the-green-transition-is-at-risk-national-interests-must-not-slow-it-down"> <img data-src="/siteimg/news-memb/ugc-1/fullnews/news/24811/24536_original.jpg" class=" lazyload" alt="Alt"> </a> </div> <div class="ni-content"> <div class="ni-title"> <a href="/news/article/oped-the-green-transition-is-at-risk-national-interests-must-not-slow-it-down">Op-ed: The green transition is at risk – national interests must not slow it down</a> </div> <div class="ni-meta"> <span class="ni-date">12 Nov</span> <span class="ni-author">by <a href="/news/author/antonio-decaro">Antonio Decaro</a></span> </div> </div> </div><div class="news-item"> <div class="ni-image"> <a href="/news/article/oped-europes-approach-to-energy-must-balance-climate-protections-with-industrial-needs"> <img data-src="/siteimg/news-memb/ugc-1/fullnews/news/24816/24541_original.jpg" class=" lazyload" alt="Alt"> </a> </div> <div class="ni-content"> <div class="ni-title"> <a href="/news/article/oped-europes-approach-to-energy-must-balance-climate-protections-with-industrial-needs">Op-ed: Europe’s approach to energy must balance climate protections with industrial needs</a> </div> <div class="ni-meta"> <span class="ni-date">12 Nov</span> <span class="ni-author">by <a href="/news/author/borys-budka">Borys Budka</a></span> </div> </div> </div><div class="news-item"> <div class="ni-image"> <a href="/news/article/is-the-green-deal-on-track"> <img data-src="/siteimg/news-memb/ugc-1/fullnews/news/24837/24568_original.jpg" class=" lazyload" alt="Alt"> </a> </div> <div class="ni-content"> <div class="ni-title"> <a href="/news/article/is-the-green-deal-on-track">Is the Green Deal on track?</a> </div> <div class="ni-meta"> <span class="ni-date">12 Nov</span> <span class="ni-author">by <a href="/news/author/julia-kaiser">Julia Kaiser</a></span> </div> </div> </div> </div> <!-- <div class="news-list news-list--dianomi"> <script type="text/javascript" id="dianomi_context_script" src="https://www.dianomi.com/js/contextfeed.js"></script> <div class="dianomi_context" data-dianomi-context-id="1343"></div> </div> --> <div class="col-ad"> <!-- /1048162/pm/news-article_right-side-bot --> <div id='div-gpt-ad-1608230013890-3' class="peu-ad"> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1608230013890-3'); }); </script> </div> </div> </div> <div class="av-lc"> <div class="av-box av-box--associated"> <span class="avb-title">Associated Organisation</span> <div class="avb-content"> <img data-sizes="auto" data-src="/siteimg/list-x-four/ugc-1/fullnews/news/24836/24565_original.jpg" class="lazyload" alt="Drax"> </div> </div> <div class="col-ad"> <!-- /1048162/pm/news-article_left-side-top --> <div id='div-gpt-ad-1608230013890-1' class="peu-ad"> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1608230013890-1'); }); </script> </div> </div> <div class="col-next"> <div class="news-title news-title--next"> <span class="nt-cat h6">Read Next:</span> </div> <div class="news-list news-list--readNext"> <div class="news-item"> <div class="ni-image"> <a href="/news/article/oped-why-renewables-must-replace-nuclear"> <img data-src="/siteimg/list-x-four/ugc-1/fullnews/news/24854/24588_original.jpg" class=" lazyload"> </a> </div> <div class="ni-content"> <div class="ni-meta"><span class="ni-cat"><a href="/eu-institutions.htm">EU Institutions</a></span></div> <div class="ni-title h6 sans"> <a href="/news/article/oped-why-renewables-must-replace-nuclear">Op-ed: Why renewables must replace nuclear</a> </div> <div class="ni-meta"> <span class="ni-author">by <a href="/news/author/jutta-paulus">Jutta Paulus</a></span> </div> </div> </div> </div> </div> </div> </div> </div> <div class="avantisDiv"></div> <!-- /1048162/pm/news-article_teads --> <div id='div-gpt-ad-1608230013890-4'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1608230013890-4'); }); </script> </div> </div> </div> </div> </main> <footer> <div class="container"> <div class="ftr-col ftr-col--left clearFix"> <div class="ftr-subsWrap"> <div class="h3">A monthly magazine packed with timely features, news analyses and opinion articles on EU policy.</div> <div class="ftr-subs"> <a class="clearFix" href="https://www.tpgroupshop.com/store/products,the-parliament_21.htm" target="_blank"> <div class="ftrs-img"> <img class="lazyload" data-src="/ugc-1/uploads/pageblocks/8524/d09bbaf39f7fbf7d29c92926e8c585f6.jpg" alt="Subscribe" > </div> <div class="ftrs-text"> <p><strong>Subscribe to The Parliament</strong></p> <p><span class="btn btn--yellow btn--xsmall">Subscribe now</span></p> </div> </a> </div> </div> <div class="ftr-social"> <div class="h3 nato">Follow us</div> <a href="http://www.twitter.com/parlimag" target="_blank" class="icon icon--x"> <svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 512 462.799"><path fill-rule="nonzero" d="M403.229 0h78.506L310.219 196.04 512 462.799H354.002L230.261 301.007 88.669 462.799h-78.56l183.455-209.683L0 0h161.999l111.856 147.88L403.229 0zm-27.556 415.805h43.505L138.363 44.527h-46.68l283.99 371.278z"/></svg> </a> <a href="https://www.linkedin.com/company/the-parliament-magazine/" target="_blank" class="icon icon--linkedIn"></a> </div> <div class="ftr-copyWrap"> <p>Registered in England & Wales under No. 07291783</p> <p>© Political Holdings Limited <script>document.write(new Date().getFullYear());</script></p> </div> </div> <div class="ftr-col ftr-col--right clearFix flx flx--wr"> <!-- <div class="ftr-subcol ftr-subcol--1"> <div class="h5 sans">Quick Links</div> <ul> <li><a href="/">Home</a></li> <li><a href="/news.htm">News</a></li> <li><a href="/opinion.htm">Opinion</a></li> <li><a href="/interviews.htm">Interviews</a></li> <li><a href="/pm-plus.htm">PM+</a></li> <li><a href="/pm-plus.htm">Policy</a></li> <li><a href="/magazine.htm">Magazine</a></li> <li><a href="/events.htm">Events</a></li> <li><a href="/more/commercial-opportunities.htm">Commercial Opportunities</a></li> </ul> <span class="icon icon--chevDown"></span> </div> --> <div class="ftr-subcol ftr-subcol--1"> <div class="h5 sans">Services</div> <ul> <li><a href="https://www.totalpolitics.com/media/" target="_blank">Media</a></li> <li><a href="https://www.totalpolitics.com/events/" target="_blank">Events</a></li> <li><a href="https://www.totalpolitics.com/training/" target="_blank">Training</a></li> </ul> <span class="icon icon--chevDown"></span> </div> <div class="ftr-subcol ftr-subcol--1"> <div class="h5 sans">Media & Publishing</div> <ul> <li><a href="https://www.politicshome.com/" target="_blank">PoliticsHome</a></li> <li><a href="http://www.holyrood.com" target="_blank">Holyrood</a></li> <li><a href="https://www.civilserviceworld.com/" target="_blank">Civil Service World</a></li> <li><a href="https://www.politicshome.com/thehouse" target="_blank">The House Magazine</a></li> <li><a href="http://www.publictechnology.net/" target="_blank">PublicTechnology</a></li> <li><a href="http://www.trainingjournal.com" target="_blank">Training Journal</a></li> <li><a href="https://www.tpgroupshop.com/" target="_blank">Subscribe to Total Politics media titles</a></li> </ul> <span class="icon icon--chevDown"></span> </div> <div class="ftr-subcol ftr-subcol--1 ftr-subcol--last"> <div class="h5 sans">About Us</div> <ul> <li><a href="https://www.totalpolitics.com/" target="_blank">Total Politics Group</a></li> <li><a href="https://www.totalpolitics.com/docs/privacy-policy.pdf" target="_blank">Privacy Policy</a></li> <li><a href="https://www.totalpolitics.com/docs/Website_Terms_and_Conditions_of_Use.pdf" target="_blank">Terms & Conditions</a></li> </ul> <span class="icon icon--chevDown"></span> </div> <!--<div class="ftr-subcol ftr-subcol--1"> <div class="h5 sans">Dods Events</div> <span class="icon icon--chevDown"></span> </div>--> <!--<div class="ftr-subcol ftr-subcol--1 ftr-subcol--last"> <div class="h5 sans">Partnership Events</div> <span class="icon icon--chevDown"></span> </div>--> </div> </div> </footer> <!--Skin Ad Unit--> <!-- /1048162/pm/news-article_skin --> <div id='div-gpt-ad-1608230013890-6'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1608230013890-6'); }); </script> </div> <!-- /1048162/pm/news-article_pixel-1 --> <div id='div-gpt-ad-1608230013890-7'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1608230013890-7'); }); </script> </div> <!-- /1048162/pm/news-article_pixel-2 --> <div id='div-gpt-ad-1608230013890-8'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1608230013890-8'); }); </script> </div> <script type="text/javascript"> //<![CDATA[ Sys.WebForms.PageRequestManager._initialize('ctl00$ajax', 'form1', [], [], [], 90, 'ctl00'); //]]> </script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-2383253-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-2383253-1'); </script> <!-- Hotjar Tracking Code for https://www.theparliamentmagazine.eu/ --><script> (function(h,o,t,j,a,r){ h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h._hjSettings={hjid:1499290,hjsv:6}; a=o.getElementsByTagName('head')[0]; r=o.createElement('script');r.async=1; r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); </script> <script type="text/javascript"> _linkedin_partner_id = "1282260"; window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; window._linkedin_data_partner_ids.push(_linkedin_partner_id); </script><script type="text/javascript"> (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); </script><noscript> <img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=1282260&fmt=gif" /> </noscript> <!-- Quantcast Consent Handlers --> <script async type="text/javascript"> function dodsCheckQuantCast () { if (typeof(window.__tcfapi) !== 'function') { setTimeout(function () { dodsCheckQuantCast(); }, 250); } else { __tcfapi('getTCData', 2, function(tcData, success) { if (!success || tcData.cmpStatus != "loaded") { setTimeout(function () { dodsCheckQuantCast(); }, 250); } else { __tcfapi('addEventListener', 2, function(tcData, success) { if (success) { dodsGetVendorConsents(tcData); } }); } }); } } dodsCheckQuantCast(); function dodsGetVendorConsents(tcData) { // Google GDPR checks console.log('Google GDPR checks', tcData.eventStatus, tcData.gdprApplies); if(tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete') { if (!tcData.gdprApplies) { console.log('GDPR does not apply'); // Do nothing as all ads allowed } else { console.log('GDPR applies'); // GDPR applies // Purpose 1 refers to the storage and/or access of information on a device. var hasDeviceStorageAndAccessConsent = tcData.purpose.consents[1] || false; // Google Requires Consent for Purpose 1 console.log('Storage consent', hasDeviceStorageAndAccessConsent); if (hasDeviceStorageAndAccessConsent) { var hasGoogleAdvertisingProductsConsent = tcData.vendor.consents[755] || false; // Google Advertising (IAB Vendor ID 755) console.log('Google consent', hasGoogleAdvertisingProductsConsent); if (hasGoogleAdvertisingProductsConsent) { var hasPersonalizedProfileConsent = tcData.purpose.consents[3] || false; var hasPersonalizedAdsConsent = tcData.purpose.consents[4] || false; // Check if have add personalization consent Purpose 3 and 4 console.log('Google personalization consent', hasPersonalizedAdsConsent, hasPersonalizedProfileConsent); if( hasPersonalizedAdsConsent && hasPersonalizedProfileConsent ) { // Set request non-personalized ads to false. (do nothing as default) } else { // Set request non-personalized ads to true. googletag.cmd.push(function() { googletag.pubads().setRequestNonPersonalizedAds(1); }); } } } } // Refresh the ads after the consent has been configured googletag.cmd.push(function() { googletag.pubads().refresh(); }); } } </script> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="90059987" /> </div></form> <form id="Form_Eloqua" method="post" action="https://s438870623.t.eloqua.com/e/f2"> <input type="hidden" name="elqCustomerGUID" value=""> <input type="hidden" name="elqCookieWrite" value="0"> </form> <script type='text/javascript'> var _elqQ = _elqQ || []; _elqQ.push(['elqSetSiteId', '438870623']); _elqQ.push(['elqTrackPageView']); (function () { function a() { var b = document.createElement("script"); b.type = "text/javascript"; b.async = !0; b.src = "//img.en25.com/i/elqCfg.min.js"; var a = document.getElementsByTagName("script")[0]; a.parentNode.insertBefore(b, a) } window.addEventListener ? window.addEventListener("DOMContentLoaded", a, !1) : window.attachEvent && window.attachEvent("onload", a) })(); </script> <script type='text/javascript'><!--// var timerId = null, timeout = 5; //--></script> <script type='text/javascript'><!--// function WaitUntilCustomerGUIDIsRetrieved() { if (!!(timerId)) { if (timeout == 0) { return; } if (typeof this.GetElqCustomerGUID === 'function') { $('input[name="elqCustomerGUID"]').val(GetElqCustomerGUID()); return; } timeout -= 1; } timerId = setTimeout("WaitUntilCustomerGUIDIsRetrieved()", 500); return; } window.onload = WaitUntilCustomerGUIDIsRetrieved; _elqQ.push(['elqGetCustomerGUID']); //--></script> </body> </html>