PageSourceSearch

https://www.toyota.com/etc.clientlibs/tcom/clientlibs/cs/core/clie…-b8da50b2d260f77e7967a00582953bde-lc.min.js

js toyota.com collected 2026-09-24 07:50:27 UTC 50,000 bytes, 2 lines download raw bytes

1import{D as L}from"./clientlib-dependencies/resources/deep-link.CMbxbvgP.js";import{f as b}from"./clientlib-dependencies/resources/fireAnalytics.Da8CxRx4.js";import{E as w}from"./clientlib-dependencies/resources/EntryPoint.DjJzDErg.js";const v={controls:".scc-horizontal-scroll__controls",grid:".scc-horizontal-scroll__grid > .aem-Grid",previousArrow:".scc-horizontal-scroll__arrow--previous",nextArrow:".scc-horizontal-scroll__arrow--next",viewport:".scc-horizontal-scroll__viewport",track:".scc-horizontal-scroll__track",item:".scc-horizontal-scroll__grid > .aem-Grid > .aem-GridColumn",scrollbar:".scc-horizontal-scroll__scrollbar",scrollbarTrack:".scc-horizontal-scroll__scrollbar-track",scrollbarThumb:".scc-horizontal-scroll__scrollbar-thumb",coarsePointerMediaQuery:"(pointer: coarse), (hover: none)",desktopWheelMediaQuery:"(min-width: 1024px) and (hover: hover) and (pointer: fine)",reducedMotionMediaQuery:"(prefers-reduced-motion: reduce)",minThumbWidth:48},a=(n,t,i)=>Math.min(Math.max(n,t),i),d=n=>n>0?"swipe right":"swipe left",u=n=>typeof globalThis.matchMedia=="function"?globalThis.matchMedia(n):{matches:!1,media:n,onchange:null,addListener:()=>{},removeListener:()=>{},addEventListener:()=>{},removeEventListener:()=>{},dispatchEvent:()=>!0};class c{static LAST_ITEM_CLASS="scc-horizontal-scroll__item--last";static SWIPE_THRESHOLD=40;#i;#e;#g;#n;#l;#t;#y;#D;#a;#s;#M;#x;#W;#_;#z;#f=null;#C=0;#k=0;#p=0;#h=0;#m=0;#L=null;#b=0;#w=0;#A=0;#v=0;#S=null;#T=null;constructor({el:t,...i}){this.#i={...v,...i},this.#e=t;const e=this.#e.querySelector(this.#i.controls),r=this.#e.querySelector(this.#i.grid),s=this.#e.querySelector(this.#i.previousArrow),l=this.#e.querySelector(this.#i.nextArrow),o=this.#e.querySelector(this.#i.viewport),h=this.#e.querySelector(this.#i.track),f=this.#e.querySelector(this.#i.scrollbar),p=this.#e.querySelector(this.#i.scrollbarTrack),m=this.#e.querySelector(this.#i.scrollbarThumb);if(!e||!r||!s||!l||!o||!h||!f||!p||!m)throw new Error("Horizontal Scroll component is missing required elements");this.#g=e,this.#n=s,this.#l=l,this.#t=o,this.#y=h,this.#D=f,this.#a=p,this.#s=m,this.#M=u(this.#i.coarsePointerMediaQuery),this.#x=u(this.#i.desktopWheelMediaQuery),this.#W=u(this.#i.reducedMotionMediaQuery),this.#t.addEventListener("scroll",this.#N,{passive:!0}),this.#t.addEventListener("wheel",this.#$,{passive:!1}),this.#t.addEventListener("touchstart",this.#tt,{passive:!0}),this.#t.addEventListener("touchend",this.#it,{passive:!0}),this.#t.addEventListener("touchcancel",this.#et,{passive:!0}),this.#t.addEventListener("pointerdown",this.#j,{passive:!0}),this.#t.addEventListener("pointerup",this.#J,{passive:!0}),this.#t.addEventListener("pointercancel",this.#Z,{passive:!0}),this.#n.addEventListener("click",this.#U),this.#l.addEventListener("click",this.#K),this.#a.addEventListener("click",this.#st),this.#s.addEventListener("pointerdown",this.#rt),globalThis.addEventListener("pointermove",this.#ot),globalThis.addEventListener("pointerup",this.#V),globalThis.addEventListener("pointercancel",this.#V),this.#M.addEventListener("change",this.#c),this.#x.addEventListener("change",this.#c),typeof ResizeObserver<"u"&&(this.#_=new ResizeObserver(()=>{this.#c()}),this.#_.observe(this.#t),this.#_.observe(this.#y)),typeof MutationObserver<"u"&&(this.#z=new MutationObserver(()=>{this.#c()}),this.#z.observe(this.#y,{childList:!0,subtree:!0})),this.#e.addEventListener(L,this.#Y),this.#c(),globalThis.AEMCS_TCOM?.deepLinkController?.checkLateReveal(this.#e)}#I(){return Array.from(this.#e.querySelectorAll(this.#i.item))}#Y=t=>{const{target:i,detail:e}=t;if(!(i instanceof Element))return;const r=this.#I().find(s=>s===i||s.contains(i));r&&e.promises.push(this.#R(r))};#R(t){return new Promise(i=>{const e=performance.now(),r=()=>{const l=this.#r(),o=a(t.offsetLeft,0,l);if(Math.abs(this.#t.scrollLeft-o)<1){this.#u(),this.#d(),i();return}const h=()=>{this.#t.removeEventListener("scrollend",h),this.#u(),this.#d(),i()};this.#t.addEventListener("scrollend",h,{once:!0}),setTimeout(h,600),this.#t.scrollTo({left:o,behavior:this.#P()})},s=()=>
1{if(this.#t.clientWidth<=0&&performance.now()-e<1e3){requestAnimationFrame(s);return}r()};requestAnimationFrame(s)})}#r(){return Math.max(this.#t.scrollWidth-this.#t.clientWidth,0)}#B(){return this.#M.matches}#P(){return this.#W.matches?"auto":"smooth"}#F(){return this.#x.matches}#G(){const t=this.#I();t.forEach(e=>{e.classList.remove(c.LAST_ITEM_CLASS)});const i=t.at(-1);i&&i.classList.add(c.LAST_ITEM_CLASS)}#o(t,i,e){b("aa-action",t,{link_type:e,link_text:i,link_button_action:i,link_trigger:"aa-action"})}#c=()=>{this.#G();const t=this.#r()>1;this.#e.classList.toggle("scc-horizontal-scroll--is-overflowing",t),this.#g.hidden=!t||this.#B(),this.#D.hidden=!t,this.#u(),this.#d()};#d(){if(this.#g.hidden){this.#n.disabled=!0,this.#l.disabled=!0;return}const t=this.#r(),{scrollLeft:i}=this.#t;this.#n.disabled=i<=1,this.#l.disabled=i>=t-1}#u(){const t=this.#r(),i=this.#a.clientWidth;if(this.#m=i,t<=0||i<=0){this.#h=i,this.#p=0,this.#s.style.width=i>0?`${i}px`:"",this.#s.style.transform="translate3d(0px, 0px, 0px)";return}const e=Math.max(this.#t.clientWidth/this.#t.scrollWidth*i,this.#i.minThumbWidth),r=Math.max(i-e,0),s=r>0?this.#t.scrollLeft/t*r:0;this.#h=e,this.#p=s,this.#s.style.width=`${e}px`,this.#s.style.transform=`translate3d(${s}px, 0px, 0px)`}#q(t){const e=this.#I().map(o=>o.offsetLeft),r=this.#t.scrollLeft,s=this.#r();if(t==="next"){const o=e.find(h=>h>r+1)??s;this.#t.scrollTo({left:a(o,0,s),behavior:this.#P()});return}const l=[...e].reverse().find(o=>o<r-1)??0;this.#t.scrollTo({left:a(l,0,s),behavior:this.#P()})}#X(t){const i=this.#r(),e=Math.max(this.#m-this.#h,0);if(i<=0||e<=0){this.#t.scrollLeft=0;return}this.#t.scrollLeft=t/e*i}#N=()=>{this.#v=this.#t.scrollLeft,this.#u(),this.#d()};#$=t=>{if(this.#r()<=0)return;if(Math.abs(t.deltaX)>Math.abs(t.deltaY)){this.#H(d(t.deltaX));return}if(t.deltaY===0||!this.#F())return;const e=this.#r(),r=a(this.#t.scrollLeft+t.deltaY,0,e),s=r-this.#t.scrollLeft;s!==0&&(t.preventDefault(),this.#t.scrollLeft=r,this.#u(),this.#d(),this.#H(d(s)))};#H(t){this.#T=t,this.#S!==null&&clearTimeout(this.#S),this.#S=setTimeout(()=>{this.#T!==null&&(this.#o(this.#t,this.#T,"swipe"),this.#T=null),this.#S=null},500)}#U=t=>{t.stopPropagation(),this.#o(this.#n,"prev arrow","arrow"),this.#q("previous")};#K=t=>{t.stopPropagation(),this.#o(this.#l,"next arrow","arrow"),this.#q("next")};#j=t=>{t.pointerType==="touch"&&this.#O(t.clientX,t.clientY,t.pointerId)};#J=t=>{if(this.#L!==t.pointerId||t.pointerType!=="touch")return;const i=t.clientX-this.#b,e=t.clientY-this.#w;this.#Q(i,e)};#Z=t=>{this.#L===t.pointerId&&this.#E()};#E(){this.#L=null,this.#b=0,this.#w=0,this.#A=0,this.#v=0}#O(t,i,e=null){this.#L=e,this.#b=t,this.#w=i,this.#A=this.#t.scrollLeft,this.#v=this.#t.scrollLeft}#Q(t,i){const e=this.#v-this.#A,r=Math.abs(e)>=c.SWIPE_THRESHOLD,s=Math.abs(t)>=c.SWIPE_THRESHOLD&&Math.abs(t)>Math.abs(i);if(r){this.#o(this.#t,d(e),"swipe"),this.#E();return}s&&this.#o(this.#t,t>0?"swipe left":"swipe right","swipe"),this.#E()}#tt=t=>{const[i]=t.changedTouches;i&&this.#O(i.clientX,i.clientY)};#it=t=>{const[i]=t.changedTouches;if(!i)return;const e=i.clientX-this.#b,r=i.clientY-this.#w;this.#Q(e,r)};#et=()=>{this.#E()};#st=t=>{if(t.target===this.#s)return;const i=this.#a.getBoundingClientRect(),e=a(t.clientX-i.left-this.#h/2,0,Math.max(this.#m-this.#h,0)),r=this.#t.scrollLeft;this.#X(e);const s=this.#t.scrollLeft-r;s!==0&&this.#o(this.#a,d(s),"swipe")};#rt=t=>{this.#r()<=0||(t.preventDefault(),this.#f=t.pointerId,this.#C=t.clientX,this.#k=this.#p,this.#s.setPointerCapture?.(t.pointerId))};#ot=t=>{if(this.#f!==t.pointerId)return;const i=Math.max(this.#m-this.#h,0),e=a(this.#k+(t.clientX-this.#C),0,i);this.#X(e)};#V=t=>{if(this.#f!==t.pointerId)return;this.#s.releasePointerCapture?.(t.pointerId),this.#f=null;const i=this.#p-this.#k;i!==0&&this.#o(this.#s,d(i),"swipe")}}w(c,".scc-horizontal-scroll");
2//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50bGliLWhvcml6b250YWxzY3JvbGwuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2hvcml6b250YWwtc2Nyb2xsL2pzL2hvcml6b250YWwtc2Nyb2xsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi4vY3NzL2hvcml6b250YWwtc2Nyb2xsLnNjc3MnO1xuXG5pbXBvcnQgeyBERUVQTElOS19SRVZFQUxfRVZFTlQsIHR5cGUgRGVlcExpbmtSZXZlYWxEZXRhaWwgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9kZWVwLWxpbmsnO1xuaW1wb3J0IHsgZmlyZUFuYWx5dGljcyB9IGZyb20gJy4uLy4uLy4uL3V0aWwvYW5hbHl0aWNzL2ZpcmVBbmFseXRpY3MnO1xuaW1wb3J0IHsgRW50cnlQb2ludCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvRW50cnlQb2ludCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG9yaXpvbn
2RhbFNjcm9sbENvbmZpZ3VyYXRpb24ge1xuICBjb250cm9sczogc3RyaW5nO1xuICBncmlkOiBzdHJpbmc7XG4gIHByZXZpb3VzQXJyb3c6IHN0cmluZztcbiAgbmV4dEFycm93OiBzdHJpbmc7XG4gIHZpZXdwb3J0OiBzdHJpbmc7XG4gIHRyYWNrOiBzdHJpbmc7XG4gIGl0ZW06IHN0cmluZztcbiAgc2Nyb2xsYmFyOiBzdHJpbmc7XG4gIHNjcm9sbGJhclRyYWNrOiBzdHJpbmc7XG4gIHNjcm9sbGJhclRodW1iOiBzdHJpbmc7XG4gIGNvYXJzZVBvaW50ZXJNZWRpYVF1ZXJ5OiBzdHJpbmc7XG4gIGRlc2t0b3BXaGVlbE1lZGlhUXVlcnk6IHN0cmluZztcbiAgcmVkdWNlZE1vdGlvbk1lZGlhUXVlcnk6IHN0cmluZztcbiAgbWluVGh1bWJXaWR0aDogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgSG9yaXpvbnRhbFNjcm9sbENvbmZpZ3VyYXRpb25EZWZhdWx0czogSG9yaXpvbnRhbFNjcm9sbENvbmZpZ3VyYXRpb24gPSB7XG4gIGNvbnRyb2xzOiAnLnNjYy1ob3Jpem9udGFsLXNjcm9sbF9fY29udHJvbHMnLFxuICBncmlkOiAnLnNjYy1ob3Jpem9udGFsLXNjcm9sbF9fZ3JpZCA+IC5hZW0tR3JpZCcsXG4gIHByZXZpb3VzQXJyb3c6ICcuc2NjLWhvcml6b250YWwtc2Nyb2xsX19hcnJvdy0tcHJldmlvdXMnLFxuICBuZXh0QXJyb3c6ICcuc2NjLWhvcml6b250YWwtc2Nyb2xsX19hcnJvdy0tbmV4dCcsXG4gIHZpZXdwb3J0OiAnLnNjYy1ob3Jpem9udGFsLXNjcm9sbF9fdmlld3BvcnQnLFxuICB0cmFjazogJy5zY2MtaG9yaXpvbnRhbC1zY3JvbGxfX3RyYWNrJyxcbiAgaXRlbTogJy5zY2MtaG9yaXpvbnRhbC1zY3JvbGxfX2dyaWQgPiAuYWVtLUdyaWQgPiAuYWVtLUdyaWRDb2x1bW4nLFxuICBzY3JvbGxiYXI6ICcuc2NjLWhvcml6b250YWwtc2Nyb2xsX19zY3JvbGxiYXInLFxuICBzY3JvbGxiYXJUcmFjazogJy5zY2MtaG9yaXpvbnRhbC1zY3JvbGxfX3Njcm9sbGJhci10cmFjaycsXG4gIHNjcm9sbGJhclRodW1iOiAnLnNjYy1ob3Jpem9udGFsLXNjcm9sbF9fc2Nyb2xsYmFyLXRodW1iJyxcbiAgY29hcnNlUG9pbnRlck1lZGlhUXVlcnk6ICcocG9pbnRlcjogY29hcnNlKSwgKGhvdmVyOiBub25lKScsXG4gIGRlc2t0b3BXaGVlbE1lZGlhUXVlcnk6ICcobWluLXdpZHRoOiAxMDI0cHgpIGFuZCAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpJyxcbiAgcmVkdWNlZE1vdGlvbk1lZGlhUXVlcnk6ICcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScsXG4gIG1pblRodW1iV2lkdGg6IDQ4LFxufTtcblxuY29uc3QgY2xhbXAgPSAodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKSA9PiBNYXRoLm1pbihNYXRoLm1heCh2YWx1ZSwgbWluKSwgbWF4KTtcblxuY29uc3QgZ2V0U3dpcGVEaXJlY3Rpb24gPSAoZGVsdGE6IG51bWJlcikgPT4ge1xuICByZXR1cm4gZGVsdGEgPiAwID8gJ3N3aXBlIHJpZ2h0JyA6ICdzd2lwZSBsZWZ0Jztcbn07XG5cbmNvbnN0IGNyZWF0ZU1lZGlhUXVlcnlMaXN0ID0gKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzLm1hdGNoTWVkaWEgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZ2xvYmFsVGhpcy5tYXRjaE1lZGlhKHF1ZXJ5KTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbWF0Y2hlczogZmFsc2UsXG4gICAgbWVkaWE6IHF1ZXJ5LFxuICAgIG9uY2hhbmdlOiBudWxsLFxuICAgIGFkZExpc3RlbmVyOiAoKSA9PiB1bmRlZmluZWQsXG4gICAgcmVtb3ZlTGlzdGVuZXI6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBhZGRFdmVudExpc3RlbmVyOiAoKSA9PiB1bmRlZmluZWQsXG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogKCkgPT4gdW5kZWZpbmVkLFxuICAgIGRpc3BhdGNoRXZlbnQ6ICgpID0+IHRydWUsXG4gIH0gYXMgTWVkaWFRdWVyeUxpc3Q7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb3Jpem9udGFsU2Nyb2xsIHtcbiAgc3RhdGljIHJlYWRvbmx5IExBU1RfSVRFTV9DTEFTUyA9ICdzY2MtaG9yaXpvbnRhbC1zY3JvbGxfX2l0ZW0tLWxhc3QnO1xuICBzdGF0aWMgcmVhZG9ubHkgU1dJUEVfVEhSRVNIT0xEID0gNDA7XG5cbiAgcmVhZG9ubHkgI2NvbmZpZzogSG9yaXpvbnRhbFNjcm9sbENvbmZpZ3VyYXRpb247XG4gIHJlYWRvbmx5ICNlbDogSFRNTEVsZW1lbnQ7XG4gIHJlYWRvbmx5ICNjb250cm9sczogSFRNTERpdkVsZW1lbnQ7XG4gIHJlYWRvbmx5ICNwcmV2aW91c0Fycm93OiBIVE1MQnV0dG9uRWxlbWVudDtcbiAgcmVhZG9ubHkgI25leHRBcnJvdzogSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIHJlYWRvbmx5ICN2aWV3cG9ydDogSFRNTERpdkVsZW1lbnQ7XG4gIHJlYWRvbmx5ICN0cmFjazogSFRNTERpdkVsZW1lbnQ7XG4gIHJlYWRvbmx5ICNzY3JvbGxiYXI6IEhUTUxEaXZFbGVtZW50O1xuICByZWFkb25seSAjc2Nyb2xsYmFyVHJhY2s6IEhUTUxEaXZFbGVtZW50O1xuICByZWFkb25seSAjc2Nyb2xsYmFyVGh1bWI6IEhUTUxEaXZFbGVtZW50O1xuICByZWFkb25seSAjY29hcnNlUG9pbnRlck1lZGlhUXVlcnk6IE1lZGlhUXVlcnlMaXN0O1xuICByZWFkb25seSAjZGVza3RvcFdoZWVsTWVkaWFRdWVyeTogTWVkaWFRdWVyeUxpc3Q7XG4gIHJlYWRvbmx5ICNyZWR1Y2VkTW90aW9uTWVkaWFRdWVyeTogTWVkaWFRdWVyeUxpc3Q7XG4gIHJlYWRvbmx5ICNyZXNpemVPYnNlcnZlcj86IFJlc2l6ZU9ic2VydmVyO1xuICByZWFkb25seSAjbXV0YXRpb25PYnNlcnZlcj86IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgI3RodW1iUG9pbnRlcklkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgI3RodW1iRHJhZ1N0YXJ0WCA9IDA7XG4gICN0aHVtYkRyYWdTdGFydExlZnQgPSAwO1xuICAjdGh1bWJMZWZ0ID0gMDtcbiAgI3RodW1iV2lkdGggPSAwO1xuICAjdHJhY2tXaWR0aCA9IDA7XG4gICNzd2lwZVBvaW50ZXJJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICNzd2lwZVN0YXJ0WCA9IDA7XG4gICNzd2lwZVN0YXJ0WSA9IDA7XG4gICNzd2lwZVN0YXJ0U2Nyb2xsTGVmdCA9IDA7XG4gICNzd2lwZUxhc3RTY3JvbGxMZWZ0ID0gMDtcbiAgI3doZWVsRGVib3VuY2VUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcbiAgI3doZWVsTGFzdERpcmVjdGlvbj
2ogJ3N3aXBlIHJpZ2h0JyB8ICdzd2lwZSBsZWZ0JyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHsgZWwsIC4uLmNmZyB9OiB7IGVsOiBFbGVtZW50IH0gJiBQYXJ0aWFsPEhvcml6b250YWxTY3JvbGxDb25maWd1cmF0aW9uPikge1xuICAgIHRoaXMuI2NvbmZpZyA9IHsgLi4uSG9yaXpvbnRhbFNjcm9sbENvbmZpZ3VyYXRpb25EZWZhdWx0cywgLi4uY2ZnIH07XG4gICAgdGhpcy4jZWwgPSBlbCBhcyBIVE1MRWxlbWVudDtcblxuICAgIGNvbnN0IGNvbnRyb2xzID0gdGhpcy4jZWwucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4odGhpcy4jY29uZmlnLmNvbnRyb2xzKTtcbiAgICBjb25zdCBncmlkID0gdGhpcy4jZWwucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4odGhpcy4jY29uZmlnLmdyaWQpO1xuICAgIGNvbnN0IHByZXZpb3VzQXJyb3cgPSB0aGlzLiNlbC5xdWVyeVNlbGVjdG9yPEhUTUxCdXR0b25FbGVtZW50Pih0aGlzLiNjb25maWcucHJldmlvdXNBcnJvdyk7XG4gICAgY29uc3QgbmV4dEFycm93ID0gdGhpcy4jZWwucXVlcnlTZWxlY3RvcjxIVE1MQnV0dG9uRWxlbWVudD4odGhpcy4jY29uZmlnLm5leHRBcnJvdyk7XG4gICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLiNlbC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50Pih0aGlzLiNjb25maWcudmlld3BvcnQpO1xuICAgIGNvbnN0IHRyYWNrID0gdGhpcy4jZWwucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4odGhpcy4jY29uZmlnLnRyYWNrKTtcbiAgICBjb25zdCBzY3JvbGxiYXIgPSB0aGlzLiNlbC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50Pih0aGlzLiNjb25maWcuc2Nyb2xsYmFyKTtcbiAgICBjb25zdCBzY3JvbGxiYXJUcmFjayA9IHRoaXMuI2VsLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KHRoaXMuI2NvbmZpZy5zY3JvbGxiYXJUcmFjayk7XG4gICAgY29uc3Qgc2Nyb2xsYmFyVGh1bWIgPSB0aGlzLiNlbC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50Pih0aGlzLiNjb25maWcuc2Nyb2xsYmFyVGh1bWIpO1xuXG4gICAgaWYgKCFjb250cm9scyB8fCAhZ3JpZCB8fCAhcHJldmlvdXNBcnJvdyB8fCAhbmV4dEFycm93IHx8ICF2aWV3cG9ydCB8fCAhdHJhY2sgfHwgIXNjcm9sbGJhciB8fCAhc2Nyb2xsYmFyVHJhY2sgfHwgIXNjcm9sbGJhclRodW1iKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0hvcml6b250YWwgU2Nyb2xsIGNvbXBvbmVudCBpcyBtaXNzaW5nIHJlcXVpcmVkIGVsZW1lbnRzJyk7XG4gICAgfVxuXG4gICAgdGhpcy4jY29udHJvbHMgPSBjb250cm9scztcbiAgICB0aGlzLiNwcmV2aW91c0Fycm93ID0gcHJldmlvdXNBcnJvdztcbiAgICB0aGlzLiNuZXh0QXJyb3cgPSBuZXh0QXJyb3c7XG4gICAgdGhpcy4jdmlld3BvcnQgPSB2aWV3cG9ydDtcbiAgICB0aGlzLiN0cmFjayA9IHRyYWNrO1xuICAgIHRoaXMuI3Njcm9sbGJhciA9IHNjcm9sbGJhcjtcbiAgICB0aGlzLiNzY3JvbGxiYXJUcmFjayA9IHNjcm9sbGJhclRyYWNrO1xuICAgIHRoaXMuI3Njcm9sbGJhclRodW1iID0gc2Nyb2xsYmFyVGh1bWI7XG4gICAgdGhpcy4jY29hcnNlUG9pbnRlck1lZGlhUXVlcnkgPSBjcmVhdGVNZWRpYVF1ZXJ5TGlzdCh0aGlzLiNjb25maWcuY29hcnNlUG9pbnRlck1lZGlhUXVlcnkpO1xuICAgIHRoaXMuI2Rlc2t0b3BXaGVlbE1lZGlhUXVlcnkgPSBjcmVhdGVNZWRpYVF1ZXJ5TGlzdCh0aGlzLiNjb25maWcuZGVza3RvcFdoZWVsTWVkaWFRdWVyeSk7XG4gICAgdGhpcy4jcmVkdWNlZE1vdGlvbk1lZGlhUXVlcnkgPSBjcmVhdGVNZWRpYVF1ZXJ5TGlzdCh0aGlzLiNjb25maWcucmVkdWNlZE1vdGlvbk1lZGlhUXVlcnkpO1xuXG4gICAgdGhpcy4jdmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy4jaGFuZGxlVmlld3BvcnRTY3JvbGwsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICB0aGlzLiN2aWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIHRoaXMuI2hhbmRsZVZpZXdwb3J0V2hlZWwsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgdGhpcy4jdmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuI2hhbmRsZVZpZXdwb3J0VG91Y2hTdGFydCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgIHRoaXMuI3ZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy4jaGFuZGxlVmlld3BvcnRUb3VjaEVuZCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgIHRoaXMuI3ZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgdGhpcy4jaGFuZGxlVmlld3BvcnRUb3VjaENhbmNlbCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgIHRoaXMuI3ZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy4jaGFuZGxlVmlld3BvcnRQb2ludGVyRG93biwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgIHRoaXMuI3ZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMuI2hhbmRsZVZpZXdwb3J0UG9pbnRlclVwLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgdGhpcy4jdmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmNhbmNlbCcsIHRoaXMuI2hhbmRsZVZpZXdwb3J0UG9pbnRlckNhbmNlbCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgIHRoaXMuI3ByZXZpb3VzQXJyb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLiNoYW5kbGVQcmV2aW91c0NsaWNrKTtcbiAgICB0aGlzLiNuZXh0QXJyb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLiNoYW5kbGVOZXh0Q2xpY2spO1xuICAgIHRoaXMuI3Njcm9sbGJhclRyYWNrLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy4jaGFuZGxlU2Nyb2xsYmFyVHJhY2tDbGljayk7XG4gICAgdGhpcy4jc2Nyb2xsYmFyVGh1bWIuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCB0aGlzLiNoYW5kbGVUaHVtYlBvaW50ZXJEb3duKTtcbiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgdGhpcy4jaGFuZGxlUG9pbnRlck1vdmUpO1xuICAgIGdsb2JhbFRoaXMuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy4jaGFuZGxlUG9pbnRlclVwKTtcbiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJjYW5jZWwnLCB0aGlzLiNoYW5kbGVQb2ludGVyVXApO1xuXG4gICAgdGhpcy4jY29hcnNlUG9pbnRlck1lZGlhUXVlcnkuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy4jdXBkYXRlU3RhdGUpO1xuICAgIHRoaXMuI2Rlc2t0b3BXaGVlbE1lZGlhUXVlcnkuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy4jdXBkYXRlU3RhdGUpO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuI3Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgdGhpcy4jdXBkYXRlU3RhdGUoKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy4jcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLiN2aWV3cG9ydCk7XG4gICAgICB0aGlzLiNyZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuI3RyYWNrKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLiNtdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLiN1cGRhdGVTdGF0ZSgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLiNtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy4jdHJhY2ssIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIH1cblxuICAgI
2HRoaXMuI2VsLmFkZEV2ZW50TGlzdGVuZXIoREVFUExJTktfUkVWRUFMX0VWRU5ULCB0aGlzLiNoYW5kbGVEZWVwTGlua1JldmVhbCk7XG5cbiAgICB0aGlzLiN1cGRhdGVTdGF0ZSgpO1xuXG4gICAgZ2xvYmFsVGhpcy5BRU1DU19UQ09NPy5kZWVwTGlua0NvbnRyb2xsZXI/LmNoZWNrTGF0ZVJldmVhbCh0aGlzLiNlbCk7XG4gIH1cblxuICAjZ2V0SXRlbXMoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy4jZWwucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4odGhpcy4jY29uZmlnLml0ZW0pKTtcbiAgfVxuXG4gIHJlYWRvbmx5ICNoYW5kbGVEZWVwTGlua1JldmVhbCA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICBjb25zdCB7IHRhcmdldCwgZGV0YWlsIH0gPSBldmVudCBhcyBDdXN0b21FdmVudDxEZWVwTGlua1JldmVhbERldGFpbD47XG4gICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtID0gdGhpcy4jZ2V0SXRlbXMoKS5maW5kKGNhbmRpZGF0ZSA9PiBjYW5kaWRhdGUgPT09IHRhcmdldCB8fCBjYW5kaWRhdGUuY29udGFpbnModGFyZ2V0KSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZGV0YWlsLnByb21pc2VzLnB1c2godGhpcy4jcmV2ZWFsSXRlbShpdGVtKSk7XG4gIH07XG5cbiAgI3JldmVhbEl0ZW0oaXRlbTogSFRNTEVsZW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgICAgY29uc3Qgc2Nyb2xsVG9JdGVtID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBtYXhTY3JvbGxMZWZ0ID0gdGhpcy4jZ2V0TWF4U2Nyb2xsTGVmdCgpO1xuICAgICAgICBjb25zdCBsZWZ0ID0gY2xhbXAoaXRlbS5vZmZzZXRMZWZ0LCAwLCBtYXhTY3JvbGxMZWZ0KTtcblxuICAgICAgICBpZiAoTWF0aC5hYnModGhpcy4jdmlld3BvcnQuc2Nyb2xsTGVmdCAtIGxlZnQpIDwgMSkge1xuICAgICAgICAgIHRoaXMuI3N5bmNUaHVtYigpO1xuICAgICAgICAgIHRoaXMuI3N5bmNBcnJvd3MoKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmluaXNoID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3ZpZXdwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbGVuZCcsIGZpbmlzaCk7XG4gICAgICAgICAgdGhpcy4jc3luY1RodW1iKCk7XG4gICAgICAgICAgdGhpcy4jc3luY0Fycm93cygpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy4jdmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsZW5kJywgZmluaXNoLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgICAgIHNldFRpbWVvdXQoZmluaXNoLCA2MDApOyAvLyBmYWxsYmFjayBpZiBgc2Nyb2xsZW5kYCBuZXZlciBmaXJlc1xuICAgICAgICB0aGlzLiN2aWV3cG9ydC5zY3JvbGxUbyh7IGxlZnQsIGJlaGF2aW9yOiB0aGlzLiNnZXRTY3JvbGxCZWhhdmlvcigpIH0pO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgd2FpdEZvckxheW91dCA9ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuI3ZpZXdwb3J0LmNsaWVudFdpZHRoIDw9IDAgJiYgcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWUgPCAxMDAwKSB7XG4gICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHdhaXRGb3JMYXlvdXQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzY3JvbGxUb0l0ZW0oKTtcbiAgICAgIH07XG5cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh3YWl0Rm9yTGF5b3V0KTtcbiAgICB9KTtcbiAgfVxuXG4gICNnZXRNYXhTY3JvbGxMZWZ0KCkge1xuICAgIHJldHVybiBNYXRoLm1heCh0aGlzLiN2aWV3cG9ydC5zY3JvbGxXaWR0aCAtIHRoaXMuI3ZpZXdwb3J0LmNsaWVudFdpZHRoLCAwKTtcbiAgfVxuXG4gICNnZXRTaG91bGRIaWRlQXJyb3dzKCkge1xuICAgIHJldHVybiB0aGlzLiNjb2Fyc2VQb2ludGVyTWVkaWFRdWVyeS5tYXRjaGVzO1xuICB9XG5cbiAgI2dldFNjcm9sbEJlaGF2aW9yKCk6IFNjcm9sbEJlaGF2aW9yIHtcbiAgICByZXR1cm4gdGhpcy4jcmVkdWNlZE1vdGlvbk1lZGlhUXVlcnkubWF0Y2hlcyA/ICdhdXRvJyA6ICdzbW9vdGgnO1xuICB9XG5cbiAgI2dldFNob3VsZEhhbmRsZVdoZWVsKCkge1xuICAgIHJldHVybiB0aGlzLiNkZXNrdG9wV2hlZWxNZWRpYVF1ZXJ5Lm1hdGNoZXM7XG4gIH1cblxuICAjc3luY0xhc3RJdGVtQ2xhc3MoKSB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLiNnZXRJdGVtcygpO1xuXG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGl0ZW0uY2xhc3NMaXN0LnJlbW92ZShIb3Jpem9udGFsU2Nyb2xsLkxBU1RfSVRFTV9DTEFTUyk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBsYXN0SXRlbSA9IGl0ZW1zLmF0KC0xKTtcblxuICAgIGlmIChsYXN0SXRlbSkge1xuICAgICAgbGFzdEl0ZW0uY2xhc3NMaXN0LmFkZChIb3Jpem9udGFsU2Nyb2xsLkxBU1RfSVRFTV9DTEFTUyk7XG4gICAgfVxuICB9XG5cbiAgI2ZpcmVJbnRlcmFjdGlvbkFuYWx5dGljcyhlbGVtZW50OiBFbGVtZW50LCBsaW5rVGV4dDogc3RyaW5nLCBsaW5rVHlwZTogJ2Fycm93JyB8ICdzd2lwZScpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cbiAgICBmaXJlQW5hbHl0aWNzKCdhYS1hY3Rpb24nLCBlbGVtZW50LCB7XG4gICAgICBsaW5rX3R5cGU6IGxpbmtUeXBlLFxuICAgICAgbGlua190ZXh0OiBsaW5rVGV4dCxcbiAgICAgIGxpbmtfYnV0dG9uX2FjdGlvbjogbGlua1RleHQsXG4gICAgICBsaW5rX3RyaWdnZXI6ICdhYS1hY3Rpb24nLFxuICAgIH0pO1xuICAgIC8qIGVzbGludC1lbmFibGUgY2FtZWxjYXNlICovXG4gIH1cblxuICByZWFkb25seSAjdXBkYXRlU3RhdGUgPSAoKSA9PiB7XG4gICAgdGhpcy4jc3luY0xhc3RJdGVtQ2xhc3MoKTtcblxuICAgIGNvbnN0IG92ZXJmbG93aW5nID0gdGhpcy4jZ2V0TWF4U2Nyb2xsTGVmdCgpID4gMTtcblxuICAgI
2HRoaXMuI2VsLmNsYXNzTGlzdC50b2dnbGUoJ3NjYy1ob3Jpem9udGFsLXNjcm9sbC0taXMtb3ZlcmZsb3dpbmcnLCBvdmVyZmxvd2luZyk7XG4gICAgdGhpcy4jY29udHJvbHMuaGlkZGVuID0gIW92ZXJmbG93aW5nIHx8IHRoaXMuI2dldFNob3VsZEhpZGVBcnJvd3MoKTtcbiAgICB0aGlzLiNzY3JvbGxiYXIuaGlkZGVuID0gIW92ZXJmbG93aW5nO1xuXG4gICAgdGhpcy4jc3luY1RodW1iKCk7XG4gICAgdGhpcy4jc3luY0Fycm93cygpO1xuICB9O1xuXG4gICNzeW5jQXJyb3dzKCkge1xuICAgIGlmICh0aGlzLiNjb250cm9scy5oaWRkZW4pIHtcbiAgICAgIHRoaXMuI3ByZXZpb3VzQXJyb3cuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy4jbmV4dEFycm93LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtYXhTY3JvbGxMZWZ0ID0gdGhpcy4jZ2V0TWF4U2Nyb2xsTGVmdCgpO1xuICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCB9ID0gdGhpcy4jdmlld3BvcnQ7XG5cbiAgICB0aGlzLiNwcmV2aW91c0Fycm93LmRpc2FibGVkID0gc2Nyb2xsTGVmdCA8PSAxO1xuICAgIHRoaXMuI25leHRBcnJvdy5kaXNhYmxlZCA9IHNjcm9sbExlZnQgPj0gbWF4U2Nyb2xsTGVmdCAtIDE7XG4gIH1cblxuICAjc3luY1RodW1iKCkge1xuICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSB0aGlzLiNnZXRNYXhTY3JvbGxMZWZ0KCk7XG4gICAgY29uc3QgdHJhY2tXaWR0aCA9IHRoaXMuI3Njcm9sbGJhclRyYWNrLmNsaWVudFdpZHRoO1xuXG4gICAgdGhpcy4jdHJhY2tXaWR0aCA9IHRyYWNrV2lkdGg7XG5cbiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAwIHx8IHRyYWNrV2lkdGggPD0gMCkge1xuICAgICAgdGhpcy4jdGh1bWJXaWR0aCA9IHRyYWNrV2lkdGg7XG4gICAgICB0aGlzLiN0aHVtYkxlZnQgPSAwO1xuICAgICAgdGhpcy4jc2Nyb2xsYmFyVGh1bWIuc3R5bGUud2lkdGggPSB0cmFja1dpZHRoID4gMCA/IGAke3RyYWNrV2lkdGh9cHhgIDogJyc7XG4gICAgICB0aGlzLiNzY3JvbGxiYXJUaHVtYi5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCknO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRodW1iV2lkdGggPSBNYXRoLm1heCgodGhpcy4jdmlld3BvcnQuY2xpZW50V2lkdGggLyB0aGlzLiN2aWV3cG9ydC5zY3JvbGxXaWR0aCkgKiB0cmFja1dpZHRoLCB0aGlzLiNjb25maWcubWluVGh1bWJXaWR0aCk7XG4gICAgY29uc3QgbWF4VGh1bWJMZWZ0ID0gTWF0aC5tYXgodHJhY2tXaWR0aCAtIHRodW1iV2lkdGgsIDApO1xuICAgIGNvbnN0IHRodW1iTGVmdCA9IG1heFRodW1iTGVmdCA+IDAgPyAodGhpcy4jdmlld3BvcnQuc2Nyb2xsTGVmdCAvIG1heFNjcm9sbExlZnQpICogbWF4VGh1bWJMZWZ0IDogMDtcblxuICAgIHRoaXMuI3RodW1iV2lkdGggPSB0aHVtYldpZHRoO1xuICAgIHRoaXMuI3RodW1iTGVmdCA9IHRodW1iTGVmdDtcbiAgICB0aGlzLiNzY3JvbGxiYXJUaHVtYi5zdHlsZS53aWR0aCA9IGAke3RodW1iV2lkdGh9cHhgO1xuICAgIHRoaXMuI3Njcm9sbGJhclRodW1iLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgke3RodW1iTGVmdH1weCwgMHB4LCAwcHgpYDtcbiAgfVxuXG4gICNzY3JvbGxUb0l0ZW1Cb3VuZGFyeShkaXJlY3Rpb246ICdwcmV2aW91cycgfCAnbmV4dCcpIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuI2dldEl0ZW1zKCk7XG4gICAgY29uc3Qgb2Zmc2V0cyA9IGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0ub2Zmc2V0TGVmdCk7XG4gICAgY29uc3QgY3VycmVudFNjcm9sbExlZnQgPSB0aGlzLiN2aWV3cG9ydC5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSB0aGlzLiNnZXRNYXhTY3JvbGxMZWZ0KCk7XG5cbiAgICBpZiAoZGlyZWN0aW9uID09PSAnbmV4dCcpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IG9mZnNldHMuZmluZChvZmZzZXQgPT4gb2Zmc2V0ID4gY3VycmVudFNjcm9sbExlZnQgKyAxKSA/PyBtYXhTY3JvbGxMZWZ0O1xuICAgICAgdGhpcy4jdmlld3BvcnQuc2Nyb2xsVG8oeyBsZWZ0OiBjbGFtcCh0YXJnZXQsIDAsIG1heFNjcm9sbExlZnQpLCBiZWhhdmlvcjogdGhpcy4jZ2V0U2Nyb2xsQmVoYXZpb3IoKSB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSBbLi4ub2Zmc2V0c10ucmV2ZXJzZSgpLmZpbmQob2Zmc2V0ID0+IG9mZnNldCA8IGN1cnJlbnRTY3JvbGxMZWZ0IC0gMSkgPz8gMDtcbiAgICB0aGlzLiN2aWV3cG9ydC5zY3JvbGxUbyh7IGxlZnQ6IGNsYW1wKHRhcmdldCwgMCwgbWF4U2Nyb2xsTGVmdCksIGJlaGF2aW9yOiB0aGlzLiNnZXRTY3JvbGxCZWhhdmlvcigpIH0pO1xuICB9XG5cbiAgI3NldFNjcm9sbEZyb21UaHVtYlBvc2l0aW9uKHRodW1iTGVmdDogbnVtYmVyKSB7XG4gICAgY29uc3QgbWF4U2Nyb2xsTGVmdCA9IHRoaXMuI2dldE1heFNjcm9sbExlZnQoKTtcbiAgICBjb25zdCBtYXhUaHVtYkxlZnQgPSBNYXRoLm1heCh0aGlzLiN0cmFja1dpZHRoIC0gdGhpcy4jdGh1bWJXaWR0aCwgMCk7XG5cbiAgICBpZiAobWF4U2Nyb2xsTGVmdCA8PSAwIHx8IG1heFRodW1iTGVmdCA8PSAwKSB7XG4gICAgICB0aGlzLiN2aWV3cG9ydC5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiN2aWV3cG9ydC5zY3JvbGxMZWZ0ID0gKHRodW1iTGVmdCAvIG1heFRodW1iTGVmdCkgKiBtYXhTY3JvbGxMZWZ0O1xuICB9XG5cbiAgcmVhZG9ubHkgI2hhbmRsZVZpZXdwb3J0U2Nyb2xsID0gKCkgPT4ge1xuICAgIHRoaXMuI3N3aXBlTGFzdFNjcm9sbExlZnQgPSB0aGlzLiN2aWV3cG9ydC5zY3JvbGxMZWZ0O1xuICAgIHRoaXMuI3N5bmNUaHVtYigpO1xuICAgIHRoaXMuI3N5bmNBcnJvd3MoKTtcbiAgfTtcblxuICByZWFkb25seSAjaGFuZGxlVmlld3BvcnRXaGVlbCA9IChldmVudDogV2hlZWxFdmVudCkgPT4ge1xuICAgIGlmICh0aGlzLiNnZXRNYXhTY3JvbGxMZWZ0KCkgPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzSG9yaXpvbnRhbERlbHRhID0gTWF0aC5hYnMoZXZlbnQuZGVsdGFYKSA+IE1hdGguYWJzKGV2ZW50LmRlbHRhWSk7XG5cbiAgICBpZiAoaXNIb3Jpem9udGFsRGVsdGEpIHtcbiAgICAgIHRoaXMuI3F1ZXVlV2hlZWxBbmFseXRpY3MoZ2V0U3d
2pcGVEaXJlY3Rpb24oZXZlbnQuZGVsdGFYKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmRlbHRhWSA9PT0gMCB8fCAhdGhpcy4jZ2V0U2hvdWxkSGFuZGxlV2hlZWwoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1heFNjcm9sbExlZnQgPSB0aGlzLiNnZXRNYXhTY3JvbGxMZWZ0KCk7XG4gICAgY29uc3QgbmV4dFNjcm9sbExlZnQgPSBjbGFtcCh0aGlzLiN2aWV3cG9ydC5zY3JvbGxMZWZ0ICsgZXZlbnQuZGVsdGFZLCAwLCBtYXhTY3JvbGxMZWZ0KTtcbiAgICBjb25zdCBzY3JvbGxEZWx0YSA9IG5leHRTY3JvbGxMZWZ0IC0gdGhpcy4jdmlld3BvcnQuc2Nyb2xsTGVmdDtcblxuICAgIGlmIChzY3JvbGxEZWx0YSA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy4jdmlld3BvcnQuc2Nyb2xsTGVmdCA9IG5leHRTY3JvbGxMZWZ0O1xuICAgIHRoaXMuI3N5bmNUaHVtYigpO1xuICAgIHRoaXMuI3N5bmNBcnJvd3MoKTtcbiAgICB0aGlzLiNxdWV1ZVdoZWVsQW5hbHl0aWNzKGdldFN3aXBlRGlyZWN0aW9uKHNjcm9sbERlbHRhKSk7XG4gIH07XG5cbiAgI3F1ZXVlV2hlZWxBbmFseXRpY3MoZGlyZWN0aW9uOiAnc3dpcGUgcmlnaHQnIHwgJ3N3aXBlIGxlZnQnKSB7XG4gICAgdGhpcy4jd2hlZWxMYXN0RGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuXG4gICAgaWYgKHRoaXMuI3doZWVsRGVib3VuY2VUaW1lciAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuI3doZWVsRGVib3VuY2VUaW1lcik7XG4gICAgfVxuXG4gICAgdGhpcy4jd2hlZWxEZWJvdW5jZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy4jd2hlZWxMYXN0RGlyZWN0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuI2ZpcmVJbnRlcmFjdGlvbkFuYWx5dGljcyh0aGlzLiN2aWV3cG9ydCwgdGhpcy4jd2hlZWxMYXN0RGlyZWN0aW9uLCAnc3dpcGUnKTtcbiAgICAgICAgdGhpcy4jd2hlZWxMYXN0RGlyZWN0aW9uID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdGhpcy4jd2hlZWxEZWJvdW5jZVRpbWVyID0gbnVsbDtcbiAgICB9LCA1MDApO1xuICB9XG5cbiAgcmVhZG9ubHkgI2hhbmRsZVByZXZpb3VzQ2xpY2sgP
2SAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLiNmaXJlSW50ZXJhY3Rpb25BbmFseXRpY3ModGhpcy4jcHJldmlvdXNBcnJvdywgJ3ByZXYgYXJyb3cnLCAnYXJyb3cnKTtcbiAgICB0aGlzLiNzY3JvbGxUb0l0ZW1Cb3VuZGFyeSgncHJldmlvdXMnKTtcbiAgfTtcblxuICByZWFkb25seSAjaGFuZGxlTmV4dENsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy4jZmlyZUludGVyYWN0aW9uQW5hbHl0aWNzKHRoaXMuI25leHRBcnJvdywgJ25leHQgYXJyb3cnLCAnYXJyb3cnKTtcbiAgICB0aGlzLiNzY3JvbGxUb0l0ZW1Cb3VuZGFyeSgnbmV4dCcpO1xuICB9O1xuXG4gIHJlYWRvbmx5ICNoYW5kbGVWaWV3cG9ydFBvaW50ZXJEb3duID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgIT09ICd0b3VjaCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiNzZXRTd2lwZVN0YXJ0KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFksIGV2ZW50LnBvaW50ZXJJZCk7XG4gIH07XG5cbiAgcmVhZG9ubHkgI2hhbmRsZVZpZXdwb3J0UG9pbnRlclVwID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy4jc3dpcGVQb2ludGVySWQgIT09IGV2ZW50LnBvaW50ZXJJZCB8fCBldmVudC5wb2ludGVyVHlwZSAhPT0gJ3RvdWNoJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbHRhWCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLiNzd2lwZVN0YXJ0WDtcbiAgICBjb25zdCBkZWx0YVkgPSBldmVudC5jbGllbnRZIC0gdGhpcy4jc3dpcGVTdGFydFk7XG4gICAgdGhpcy4jaGFuZGxlU3dpcGVFbmQoZGVsdGFYLCBkZWx0YVkpO1xuICB9O1xuXG4gIHJlYWRvbmx5ICNoYW5kbGVWaWV3cG9ydFBvaW50ZXJDYW5jZWwgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgIGlmICh0aGlzLiNzd2lwZVBvaW50ZXJJZCAhPT0gZXZlbnQucG9pbnRlcklkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy4jcmVzZXRTd2lwZVRyYWNraW5nKCk7XG4gIH07XG5cbiAgI3Jlc2V0U3dpcGVUcmFja2luZygpIHtcbiAgICB0aGlzLiNzd2lwZVBvaW50ZXJJZCA9IG51bGw7XG4gICAgdGhpcy4jc3dpcGVTdGFydFggPSAwO1xuICAgIHRoaXMuI3N3aXBlU3RhcnRZID0gMDtcbiAgICB0aGlzLiNzd2lwZVN0YXJ0U2Nyb2xsTGVmdCA9IDA7XG4gICAgdGhpcy4jc3dpcGVMYXN0U2Nyb2xsTGVmdCA9IDA7XG4gIH1cblxuICAjc2V0U3dpcGVTdGFydChjbGllbnRYOiBudW1iZXIsIGNsaWVudFk6IG51bWJlciwgcG9pbnRlcklkOiBudW1iZXIgfCBudWxsID0gbnVsbCkge1xuICAgIHRoaXMuI3N3aXBlUG9pbnRlcklkID0gcG9pbnRlcklkO1xuICAgIHRoaXMuI3N3aXBlU3RhcnRYID0gY2xpZW50WDtcbiAgICB0aGlzLiNzd2lwZVN0YXJ0WSA9IGNsaWVudFk7XG4gICAgdGhpcy4jc3dpcGVTdGFydFNjcm9sbExlZnQgPSB0aGlzLiN2aWV3cG9ydC5zY3JvbGxMZWZ0O1xuICAgIHRoaXMuI3N3aXBlTGFzdFNjcm9sbExlZnQgPSB0aGlzLiN2aWV3cG9ydC5zY3JvbGxMZWZ0O1xuICB9XG5cbiAgI2hhbmRsZVN3aXBlRW5kKGRlbHRhWDogbnVtYmVyLCBkZWx0YVk6IG51bWJlcikge1xuICAgIGNvbnN0IHNjcm9sbERlbHRhID0gdGhpcy4jc3dpcGVMYXN0U2Nyb2xsTGVmdCAtIHRoaXMuI3N3aXBlU3RhcnRTY3JvbGxMZWZ0O1xuICAgIGNvbnN0IGlzU2Nyb2xsU3dpcGUgPSBNYXRoLmFicyhzY3JvbGxEZWx0YSkgPj0gSG9yaXpvbnRhbFNjcm9sbC5TV0lQRV9USFJFU0hPTEQ7XG4gICAgY29uc3QgaXNIb3Jpem9udGFsU3dpcGUgPSBNYXRoLmFicyhkZWx0YVgpID49IEhvcml6b250YWxTY3JvbGwuU1dJUEVfVEhSRVNIT0xEICYmIE1hdGguYWJzKGRlbHRhWCkgPiBNYXRoLmFicyhkZWx0YVkpO1xuXG4gICAgaWYgKGlzU2Nyb2xsU3dpcGUpIHtcbiAgICAgIHRoaXMuI2ZpcmVJbnRlcmFjdGlvbkFuYWx5dGljcyh0aGlzLiN2aWV3cG9ydCwgZ2V0U3dpcGVEaXJlY3Rpb24oc2Nyb2xsRGVsdGEpLCAnc3dpcGUnKTtcbiAgICAgIHRoaXMuI3Jlc2V0U3dpcGVUcmFja2luZygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0hvcml6b250YWxTd2lwZSkge1xuICAgICAgdGhpcy4jZmlyZUludGVyYWN0aW9uQW5hbHl0aWNzKHRoaXMuI3ZpZXdwb3J0LCBkZWx0YVggPiAwID8gJ3N3aXBlIGxlZnQnIDogJ3N3aXBlIHJpZ2h0JywgJ3N3aXBlJyk7XG4gICAgfVxuXG4gICAgdGhpcy4jcmVzZXRTd2lwZVRyYWNraW5nKCk7XG4gIH1cblxuICByZWFkb25seSAjaGFuZGxlVmlld3BvcnRUb3VjaFN0YXJ0ID0gKGV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgY29uc3QgW3RvdWNoXSA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzO1xuXG4gICAgaWYgKCF0b3VjaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuI3NldFN3aXBlU3RhcnQodG91Y2guY2xpZW50WCwgdG91Y2guY2xpZW50WSk7XG4gIH07XG5cbiAgcmVhZG9ubHkgI2hhbmRsZVZpZXdwb3J0VG91Y2hFbmQgPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcbiAgICBjb25zdCBbdG91Y2hdID0gZXZlbnQuY2hhbmdlZFRvdWNoZXM7XG5cbiAgICBpZiAoIXRvdWNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVsdGFYID0gdG91Y2guY2xpZW50WCAtIHRoaXMuI3N3aXBlU3RhcnRYO1xuICAgIGNvbnN0IGRlbHRhWSA9IHRvdWNoLmNsaWVudFkgLSB0aGlzLiNzd2lwZVN0YXJ0WTtcbiAgICB0aGlzLiNoYW5kbGVTd2lwZUVuZChkZWx0YVgsIGRlbHRhWSk7XG4gIH07XG5cbiAgcmVhZG9ubHkgI2hhbmRsZVZpZXdwb3J0VG91Y2hDYW5jZWwgPSAoKSA9PiB7XG4gICAgdGhpcy4jcmVzZXRTd2lwZVRyYWNraW5nKCk7XG4gIH07XG5cbiAgcmVhZG9ubHkgI2hhbmRsZVNjcm9sbGJhclRyYWNrQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLiNzY3JvbGxiYXJUaHVtYikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLiNzY3JvbGxiYXJUcmFjay5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBuZXh0VGh1bWJMZWZ0ID0gY2xhbXAoZXZlbnQuY2xpZW50WCAtIHJlY3QubGVmdCAtIHRoaXMuI3RodW1iV2lkdGggLyAyLCAwLCBNYXRoLm1heCh0aGlzLiN0cmFja1dpZHRoIC0gdGhpcy4jdGh1bWJXaWR0aCwgMCkpO1xuICAgIGNvbnN0IHNjcm9sbExlZnRCZWZvcmUgPSB0aGlzLiN2aWV3cG9ydC5zY3JvbGxMZWZ0O1xuICAgIHRoaXMuI3NldFNjcm9sbEZyb21UaHVtYlBvc2l0aW9uKG5leHRUaHVtYkxlZnQpO1xuICAgIGNvbnN0IHNjcm9sbERlbHRhID0gdGh
2pcy4jdmlld3BvcnQuc2Nyb2xsTGVmdCAtIHNjcm9sbExlZnRCZWZvcmU7XG5cbiAgICBpZiAoc2Nyb2xsRGVsdGEgIT09IDApIHtcbiAgICAgIHRoaXMuI2ZpcmVJbnRlcmFjdGlvbkFuYWx5dGljcyh0aGlzLiNzY3JvbGxiYXJUcmFjaywgZ2V0U3dpcGVEaXJlY3Rpb24oc2Nyb2xsRGVsdGEpLCAnc3dpcGUnKTtcbiAgICB9XG4gIH07XG5cbiAgcmVhZG9ubHkgI2hhbmRsZVRodW1iUG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgIGlmICh0aGlzLiNnZXRNYXhTY3JvbGxMZWZ0KCkgPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy4jdGh1bWJQb2ludGVySWQgPSBldmVudC5wb2ludGVySWQ7XG4gICAgdGhpcy4jdGh1bWJEcmFnU3RhcnRYID0gZXZlbnQuY2xpZW50WDtcbiAgICB0aGlzLiN0aHVtYkRyYWdTdGFydExlZnQgPSB0aGlzLiN0aHVtYkxlZnQ7XG4gICAgdGhpcy4jc2Nyb2xsYmFyVGh1bWIuc2V0UG9pbnRlckNhcHR1cmU/LihldmVudC5wb2ludGVySWQpO1xuICB9O1xuXG4gIHJlYWRvbmx5ICNoYW5kbGVQb2ludGVyTW92ZSA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgaWYgKHRoaXMuI3RodW1iUG9pbnRlcklkICE9PSBldmVudC5wb2ludGVySWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtYXhUaHVtYkxlZnQgPSBNYXRoLm1heCh0aGlzLiN0cmFja1dpZHRoIC0gdGhpcy4jdGh1bWJXaWR0aCwgMCk7XG4gICAgY29uc3QgbmV4dFRodW1iTGVmdCA9IGNsYW1wKHRoaXMuI3RodW1iRHJhZ1N0YXJ0TGVmdCArIChldmVudC5jbGllbnRYIC0gdGhpcy4jdGh1bWJEcmFnU3RhcnRYKSwgMCwgbWF4VGh1bWJMZWZ0KTtcbiAgICB0aGlzLiNzZXRTY3JvbGxGcm9tVGh1bWJQb3NpdGlvbihuZXh0VGh1bWJMZWZ0KTtcbiAgfTtcblxuICByZWFkb25seSAjaGFuZGxlUG9pbnRlclVwID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy4jdGh1bWJQb2ludGVySWQgIT09IGV2ZW50LnBvaW50ZXJJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuI3Njcm9sbGJhclRodW1iLnJlbGVhc2VQb2ludGVyQ2FwdHVyZT8uKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgdGhpcy4jdGh1bWJQb2ludGVySWQgPSBudWxsO1xuXG4gICAgY29uc3QgdGh1bWJEZWx0YSA9IHRoaXMuI3RodW1iTGVmdCAtIHRoaXMuI3RodW1iRHJhZ1N0YXJ0TGVmdDtcblxuICAgIGlmICh0aHVtYkRlbHRhICE9PSAwKSB7XG4gICAgICB0aGlzLiNmaXJlSW50ZXJhY3Rpb25BbmFseXRpY3ModGhpcy4jc2Nyb2xsYmFyVGh1bWIsIGdldFN3aXBlRGlyZWN0aW9uKHRodW1iRGVsdGEpLCAnc3dpcGUnKTtcbiAgICB9XG4gIH07XG59XG5cbkVudHJ5UG9pbnQoSG9yaXpvbnRhbFNjcm9sbCwgJy5zY2MtaG9yaXpvbnRhbC1zY3JvbGwnKTtcbiJdLCJuYW1lcyI6WyJIb3Jpem9udGFsU2Nyb2xsQ29uZmlndXJhdGlvbkRlZmF1bHRzIiwiY2xhbXAiLCJ2YWx1ZSIsIm1pbiIsIm1heCIsImdldFN3aXBlRGlyZWN0aW9uIiwiZGVsdGEiLCJjcmVhdGVNZWRpYVF1ZXJ5TGlzdCIsInF1ZXJ5IiwiSG9yaXpvbn
2RhbFNjcm9sbCIsIiNjb25maWciLCIjZWwiLCIjY29udHJvbHMiLCIjcHJldmlvdXNBcnJvdyIsIiNuZXh0QXJyb3ciLCIjdmlld3BvcnQiLCIjdHJhY2siLCIjc2Nyb2xsYmFyIiwiI3Njcm9sbGJhclRyYWNrIiwiI3Njcm9sbGJhclRodW1iIiwiI2NvYXJzZVBvaW50ZXJNZWRpYVF1ZXJ5IiwiI2Rlc2t0b3BXaGVlbE1lZGlhUXVlcnkiLCIjcmVkdWNlZE1vdGlvbk1lZGlhUXVlcnkiLCIjcmVzaXplT2JzZXJ2ZXIiLCIjbXV0YXRpb25PYnNlcnZlciIsIiN0aHVtYlBvaW50ZXJJZCIsIiN0aHVtYkRyYWdTdGFydFgiLCIjdGh1bWJEcmFnU3RhcnRMZWZ0IiwiI3RodW1iTGVmdCIsIiN0aHVtYldpZHRoIiwiI3RyYWNrV2lkdGgiLCIjc3dpcGVQb2ludGVySWQiLCIjc3dpcGVTdGFydFgiLCIjc3dpcGVTdGFydFkiLCIjc3dpcGVTdGFydFNjcm9sbExlZnQiLCIjc3dpcGVMYXN0U2Nyb2xsTGVmdCIsIiN3aGVlbERlYm91bmNlVGltZXIiLCIjd2hlZWxMYXN0RGlyZWN0aW9uIiwiZWwiLCJjZmciLCJjb250cm9scyIsImdyaWQiLCJwcmV2aW91c0Fycm93IiwibmV4dEFycm93Iiwidmlld3BvcnQiLCJ0cmFjayIsInNjcm9sbGJhciIsInNjcm9sbGJhclRyYWNrIiwic2Nyb2xsYmFyVGh1bWIiLCIjaGFuZGxlVmlld3BvcnRTY3JvbGwiLCIjaGFuZGxlVmlld3BvcnRXaGVlbCIsIiNoYW5kbGVWaWV3cG9ydFRvdWNoU3RhcnQiLCIjaGFuZGxlVmlld3BvcnRUb3VjaEVuZCIsIiNoYW5kbGVWaWV3cG9ydFRvdWNoQ2FuY2VsIiwiI2hhbmRsZVZpZXdwb3J0UG9pbnRlckRvd24iLCIjaGFuZGxlVmlld3BvcnRQb2ludGVyVXAiLCIjaGFuZGxlVmlld3BvcnRQb2ludGVyQ2FuY2VsIiwiI2hhbmRsZVByZXZpb3VzQ2xpY2siLCIjaGFuZGxlTmV4dENsaWNrIiwiI2hhbmRsZVNjcm9sbGJhclRyYWNrQ2xpY2siLCIjaGFuZGxlVGh1bWJQb2ludGVyRG93biIsIiNoYW5kbGVQb2ludGVyTW92ZSIsIiNoYW5kbGVQb2ludGVyVXAiLCIjdXBkYXRlU3RhdGUiLCJERUVQTElOS19SRVZFQUxfRVZFTlQiLCIjaGFuZGxlRGVlcExpbmtSZXZlYWwiLCIjZ2V0SXRlbXMiLCJldmVudCIsInRhcmdldCIsImRldGFpbCIsIml0ZW0iLCJjYW5kaWRhdGUiLCIjcmV2ZWFsSXRlbSIsInJlc29sdmUiLCJzdGFydFRpbWUiLCJzY3JvbGxUb0l0ZW0iLCJtYXhTY3JvbGxMZWZ0IiwiI2dldE1heFNjcm9sbExlZnQiLCJsZWZ0IiwiI3N5bmNUaHVtYiIsIiNzeW5jQXJyb3dzIiwiZmluaXNoIiwiI2dldFNjcm9sbEJlaGF2aW9yIiwid2FpdEZvckxheW91dCIsIiNnZXRTaG91bGRIaWRlQXJyb3dzIiwiI2dldFNob3VsZEhhbmRsZVdoZWVsIiwiI3N5bmNMYXN0SXRlbUNsYXNzIiwiaXRlbXMiLCJsYXN0SXRlbSIsIiNmaXJlSW50ZXJhY3Rpb25BbmFseXRpY3MiLCJlbGVtZW50IiwibGlua1RleHQiLCJsaW5rVHlwZSIsImZpcmVBbmFseXRpY3MiLCJvdmVyZmxvd2luZyIsInNjcm9sbExlZnQiLCJ0cmFja1dpZHRoIiwidGh1bWJXaWR0aCIsIm1heFRodW1iTGVmdCIsInRodW1iTGVmdCIsIiNzY3JvbGxUb0l0ZW1Cb3VuZGFyeSIsImRpcmVjdGlvbiIsIm9mZnNldHMiLCJjdXJyZW50U2Nyb2xsTGVmdCIsIm9mZnNldCIsIiNzZXRTY3JvbGxGcm9tVGh1bWJQb3NpdGlvbiIsIiNxdWV1ZVdoZWVsQW5hbHl0aWNzIiwibmV4dFNjcm9sbExlZnQiLCJzY3JvbGxEZWx0YSIsIiNzZXRTd2lwZVN0YXJ0IiwiZGVsdGFYIiwiZGVsdGF
2ZIiwiI2hhbmRsZVN3aXBlRW5kIiwiI3Jlc2V0U3dpcGVUcmFja2luZyIsImNsaWVudFgiLCJjbGllbnRZIiwicG9pbnRlcklkIiwiaXNTY3JvbGxTd2lwZSIsImlzSG9yaXpvbnRhbFN3aXBlIiwidG91Y2giLCJyZWN0IiwibmV4dFRodW1iTGVmdCIsInNjcm9sbExlZnRCZWZvcmUiLCJ0aHVtYkRlbHRhIiwiRW50cnlQb2ludCJdLCJtYXBwaW5ncyI6IjRPQXVCTyxNQUFNQSxFQUF1RSxDQUNsRixTQUFVLG1DQUNWLEtBQU0sMkNBQ04sY0FBZSwwQ0FDZixVQUFXLHNDQUNYLFNBQVUsbUNBQ1YsTUFBTyxnQ0FDUCxLQUFNLDZEQUNOLFVBQVcsb0NBQ1gsZUFBZ0IsMENBQ2hCLGVBQWdCLDBDQUNoQix3QkFBeUIsbUNBQ3pCLHVCQUF3Qiw2REFDeEIsd0JBQXlCLG1DQUN6QixjQUFlLEVBQ2pCLEVBRU1DLEVBQVEsQ0FBQ0MsRUFBZUMsRUFBYUMsSUFBZ0IsS0FBSyxJQUFJLEtBQUssSUFBSUYsRUFBT0MsQ0FBRyxFQUFHQyxDQUFHLEVBRXZGQyxFQUFxQkMsR0FDbEJBLEVBQVEsRUFBSSxjQUFnQixhQUcvQkMsRUFBd0JDLEdBQ3hCLE9BQU8sV0FBVyxZQUFlLFdBQzVCLFdBQVcsV0FBV0EsQ0FBSyxFQUc3QixDQUNMLFFBQVMsR0FDVCxNQUFPQSxFQUNQLFNBQVUsS0FDVixZQUFhLElBQUEsR0FDYixlQUFnQixJQUFBLEdBQ2hCLGlCQUFrQixJQUFBLEdBQ2xCLG9CQUFxQixJQUFBLEdBQ3JCLGNBQWUsSUFBTSxFQUFBLEVBSXpCLE1BQXFCQyxDQUFpQixDQUNwQyxPQUFnQixnQkFBa0Isb0NBQ2xDLE9BQWdCLGdCQUFrQixHQUV6QkMsR0FDQUMsR0FDQUMsR0FDQUMsR0FDQUMsR0FDQUMsR0FDQUMsR0FDQUMsR0FDQUMsR0FDQUMsR0FDQUMsR0FDQUMsR0FDQUMsR0FDQUMsR0FDQUMsR0FFVEMsR0FBaUMsS0FDakNDLEdBQW1CLEVBQ25CQyxHQUFzQixFQUN0QkMsR0FBYSxFQUNiQyxHQUFjLE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

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.