1!function(t,e){"use strict";t.HalftoneFX=t.HalftoneFX||{};var i,n=function(){return x.__string_rec(this,"")},w={};var r=function(t,e){this.r=new RegExp(t,e.split("u").join(""))};r.__name__=!0,r.prototype={match:function(t){return this.r.global&&(this.r.lastIndex=0),this.r.m=this.r.exec(t),this.r.s=t,null!=this.r.m}};var a=function(t){this.shaderSource="\r\n\r\n precision mediump float;\r\n uniform sampler2D u_image;\r\n uniform vec2 u_textureSize;\r\n uniform vec2 center;\r\n uniform float angle;\r\n uniform float scale;\r\n\r\n\r\n\r\n\r\n float pattern(float angle, float delta) {\r\n\r\n\r\n float s = sin(angle), c = cos(angle);\r\n vec2 texCoord = (gl_FragCoord.xy) / u_textureSize;\r\n vec2 tex = texCoord * u_textureSize - center;\r\n vec2 point = vec2(\r\n c * tex.x - s * tex.y,\r\n s * tex.x + c * tex.y\r\n ) * scale;\r\n return (sin(point.x) * sin(point.y)) * 4.0;\r\n }\r\n\r\n void main() {\r\n\r\n vec2 texCoord = gl_FragCoord.xy / u_textureSize;\r\n vec4 color = texture2D(u_image, texCoord);\r\n vec3 cmy = 1.0 - color.rgb;\r\n float k = min(cmy.x, min(cmy.y, cmy.z));\r\n k/=3.0;\r\n\r\n cmy = (cmy - k) / (1.0 - k);\r\n cmy = clamp(cmy * 10.0 - 3.0 + vec3(pattern(angle + 0.3141592653589793,1.), pattern(angle + 1.2566370614359172,2.), pattern(angle,0.)), 0.0, 1.0);\r\n k = clamp(k * 10.0 - 5.0 + pattern(angle + 0.7853981633974483,3.), 0.0, 1.0);\r\n vec3 col = (1.0 - cmy - k);\r\n col.z = col.y;\r\n gl_FragColor = vec4((col*.2+color.rgb), color.a);\r\n\r\n }\r\n ",this.ctx=t,this.gl=t.gl,this.program=t.createProgram("Halftone",this.shaderSource)};a.__name__=!0,a.prototype={update:function(t,e,n,r){this.gl.useProgram(this.program),this.gl.uniform2f(this.gl.getUniformLocation(this.program,"center"),t,e),this.gl.uniform1f(this.gl.getUniformLocation(this.program,"angle"),n),this.gl.uniform1f(this.gl.getUniformLocation(this.program,"scale"),r),this.ctx.execute(this.program)}};var o=t.HalftoneFX=function(e,t){this.firstTime=!0;var n=this;this.isEdgeOrIE=null!=window.document.documentMode||new r("Edge","").match(window.navigator.userAgent),this.isEdgeOrIE||(this.fx=new v,null!=this.fx.gl&&(this.renderIMG=e.cloneNode(),this.onUpdate=t,this.halfTone=new a(this.fx),0<e.naturalWidth&&0<e.naturalHeight&&e.complete&&this.updateEffect(e),e.addEventListener("load",function(t){n.updateEffect(e)}),this.winWidth=window.innerWidth,this.winHeight=window.innerHeight,this.testSize(e)))};o.__name__=!0,o.main=function(){},o.create=t.HalftoneFX.create=function(t,e){new o(t,e)},o.prototype={updateEffect:function(t){this.renderIMG=t.cloneNode(),t.naturalWidth<17||this.requestOnResizeUpdate(t)},requestOnResizeUpdate:function(e){var n=this;if(0!=e.naturalWidth&&0!=e.naturalHeight&&e.complete)if(null!=this.stopOnResize&&this.stopOnResize(),this.isEdgeOrIE){var t=d(this,this.updateOnResize),r=e;this.stopOnResize=d(i=h.delay(function(){t(r)},100),i.stop)}else window.requestAnimationFrame(function(t){n.updateOnResize(e)});else window.requestAnimationFrame(function(t){n.updateOnResize(e)})},updateOnResize:function(t){var e=this;if(0!=this.renderIMG.naturalWidth&&0!=this.renderIMG.naturalHeight&&this.renderIMG.complete){null!=this.stopOnResize&&(this.stopOnResize(),this.stopOnResize=null);var n=t.parentElement.getBoundingClientRect();if(0!=n.width){var r=Math.max(n.height/t.naturalHeight,n.width/t.naturalWidth),i=t.naturalWidth*r|0,a=t.naturalHeight*r|0;this.renderIMG.width=i,this.renderIMG.height=a,this.fx.load(this.renderIMG);this.halfTone.update(.5*i,.5*a,Math.PI/4,.9),this.fx.draw(null,0,0,0,r,r),null==this.img2&&(this.img2=this.isEdgeOrIE?window.document.createElement("img"):this.fx.gl.canvas),t.width=t.naturalWidth,t.height=t.naturalHeight,this.img2.onload=function(){e.img2.width=t.naturalWidth,e.img2.height=t.naturalHeight},this.isEdgeOrIE&&(this.img2.src=this.fx.gl.canvas.toDataURL()),this.img2.style.display="initial",this.img2.style.position="absolute",this.img2.style.top="0",this.img2.style.left="0",t.parentElement.appendChild(this.img2),this.img2.className="halftone-view",null!=this.onUpdate&&this.onUpdate(t,this.img2)}}},testSize:function(e){var n=this,t=window.innerWidth,r=window.innerHeight;t==this.winWidth&&r==this.winHeight||(this.winWidth=t,this.winHeight=r,this.requestOnResizeUpdate(e)),window.requestAnimationFrame(function(t){n.testSize(e)}
1)}},Math.__name__=!0;var p=function(){};p.__name__=!0,p.string=function(t){return x.__string_rec(t,"")};var v=function(t){this.identity=[1,0,0,0,1,0,0,0,1],this.drawProgramm=null,this.programs=new l;this.gl=null!=t?v.getWebGLContext(t):v.getWebGLContext(window.document.createElement("canvas"))};v.__name__=!0,v.getWebGLContext=function(t){try{var e=t.getContext("webgl",{premultipliedAlpha:!1});return null==e&&(e=t.getContext("experimental-webgl",{premultipliedAlpha:!1})),e}catch(t){c.trace("ERROR: %o",{fileName:"src/WebGLFX.hx",lineNumber:27,className:"WebGLFX",methodName:"getWebGLContext",customParams:[t instanceof y?t.val:t]})}return null},v.multiply=function(t,e){for(var n=t.length,r=t[0].length,i=(e.length,e[0].length),a=new Array(n),o=0,s=n;o<s;)for(var u=o++,h=new Array(i),l=a[u]=h,f=t[u],c=0,_=i;c<_;){for(var g=c++,m=0,d=0,p=r;d<p;){var v=d++;m+=f[v]*e[v][g]}l[g]=m}return a},v.prototype={createTexture:function(t){var e=t.createTexture();return t.bindTexture(3553,e),t.getExtension("OES_texture_float"),t.pixelStorei(37440,!0),t.texParameteri(3553,10241,9728),t.texParameteri(3553,10240,9728),t.texParameteri(3553,10242,33071),t.texParameteri(3553,10243,33071),e},createProgram:function(t,e,n){var r=this.gl,i=this.programs,a=null!=E[t]?i.getReserved(t):i.h[t];if(null!=a)return a;var o,s=function(t,e){var n=r.createShader(t);return r.shaderSource(n,e),r.compileShader(n),null==r.getShaderParameter(n,35713)?(c.trace("An error occurred compiling the shaders: "+r.getShaderInfoLog(n),{fileName:"src/WebGLFX.hx",lineNumber:101,className:"WebGLFX",methodName:"createProgram"}),null):n};o=s(35633,null==n?"attribute vec2 a_position;\r\n void main() { gl_Position = vec4(a_position, 0.0, 1.0); }":n);var u=s(35632,e);if(a=r.createProgram(),r.attachShader(a,o),r.attachShader(a,u),r.linkProgram(a),null==r.getProgramParameter(a,35714))c.trace("Unable to initialize the shader program.",{fileName:"src/WebGLFX.hx",lineNumber:127,className:"WebGLFX",methodName:"createProgram"});else{var h=a,l=this.programs,f=h;null!=E[t]?l.setReserved(t,f):l.h[t]=f}return a},initialize:function(t,e){var n=this.gl,r=n.canvas;if(null==this.originalImageTexture||r.width!=t||r.height!=e){r.width=t,r.height=e,this.originalImageTexture=this.createTexture(n);for(var i=[],a=[],o=0;o<2;){o++;var s=this.createTexture(n);i.push(s),n.texImage2D(3553,0,6408,r.width,r.height,0,6408,5126,null);var u=n.createFramebuffer();a.push(u),n.bindFramebuffer(36160,u),n.framebufferTexture2D(36160,36064,3553,s,0)}this.positionBuffer=n.createBuffer(),n.bindBuffer(34962,this.positionBuffer),n.bufferData(34962,new P([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),35044),this.textures=i,this.framebuffers=a,this.count=0}},load:function(t){var e=this.gl;this.initialize(t.width,t.height),e.bindTexture(3553,this.originalImageTexture),e.texImage2D(3553,0,6408,6408,5121,t),e.texParameteri(3553,10241,9729),e.texParameteri(3553,10240,9729)},render:function(t,e,n,r){this.lastRenderedProgram!=e&&(this.positionLocation=t.getAttribLocation(e,"a_position"),this.u_imageLoc=t.getUniformLocation(e,"u_image"),this.textureSizeLocation=t.getUniformLocation(e,"u_textureSize"),t.vertexAttribPointer(this.positionLocation,2,5126,!1,0,0),this.lastRenderedProgram=e),t.enableVertexAttribArray(this.positionLocation);var i=t.canvas.width,a=t.canvas.height;t.bindFramebuffer(36160,n),t.uniform2f(this.textureSizeLocation,i,a),t.uniform1i(this.u_imageLoc,0),t.viewport(0,0,i,a),null!=r?(t.enable(3089),t.scissor(r.x,a-r.y-r.height|0,r.width,r.height)):t.disable(3089),t.drawArrays(4,0,6)},draw:function(t,e,n,r,i,a,o,s,u){null==s&&(s=0),null==o&&(o=0),null==a&&(a=1),null==i&&(i=1),null==r&&(r=0),null==n&&(n=0),null==e&&(e=0);var h=this.gl;null==this.drawProgramm&&(this.drawProgramm=this.createProgram("draw","precision mediump float;\r\n uniform sampler2D u_image;\r\n uniform vec2 u_textureSize;\r\n uniform mat3 u_matrix;\r\n void main() {\r\n vec2 textCoord = (u_matrix * vec3(gl_FragCoord.xy/ u_textureSize,1.0)).xy;\r\n gl_FragColor = texture2D(u_image, textCoord/*vec2(textCoord.x, 1.0 - textCoord.y)*/ );\r\n }"));var l=this.drawProgramm;h.useProgram(l);var f=h.getUniformLocation(l,"u_matrix"),c=this.identity;
1if(0!=e||0!=n||0!=r||0!=o||0!=s){var _=this.makeRotation(r,-e,n);_=v.multiply(_,this.makeScale(i,a));var g=v.multiply(this.makeTranslation(-o,s),_),m=g[0],d=g[1],p=g[2];c=[m[0],m[1],m[2],d[0],d[1],d[2],p[0],p[1],p[2]]}h.uniformMatrix3fv(f,!1,c),this.render(h,l,null,u),this.count=0,null!=t&&t.getContext("2d").drawImage(h.canvas,0,0)},makeTranslation:function(t,e){return[[1,0,0].slice(0),[0,1,0].slice(0),[t,e,1].slice(0)].slice(0)},makeRotation:function(t,e,n){null==n&&(n=0),null==e&&(e=0);var r=Math.cos(t),i=Math.sin(t);return[[r,-i,0].slice(0),[i,r,0].slice(0),[e,n,1].slice(0)].slice(0)},makeScale:function(t,e){return[[t,0,0].slice(0),[0,e,0].slice(0),[0,0,1].slice(0)].slice(0)},execute:function(t){var e=this.gl;this.render(e,t,this.framebuffers[this.count%2]),e.bindTexture(3553,this.textures[this.count%2]),++this.count}};var s=function(){},u=function(t,e){this.high=t,this.low=e};u.__name__=s.__name__=!0;var c=function(){};c.__name__=!0,c.formatOutput=function(t,e){var n=p.string(t);if(null==e)return n;var r=e.fileName+":"+e.lineNumber;if(null!=e&&null!=e.customParams)for(var i=0,a=e.customParams;i<a.length;){var o=a[i];++i,n+=", "+p.string(o)}return r+": "+n},c.trace=function(t,e){var n=c.formatOutput(t,e);"undefined"!=typeof console&&null!=console.log&&console.log(n)};var h=function(t){var e=this;this.id=setInterval(function(){e.run()},t)};h.__name__=!0,h.delay=function(t,e){var n=new h(e);return n.run=function(){n.stop(),t()},n},h.prototype={stop:function(){null!=this.id&&(clearInterval(this.id),this.id=null)},run:function(){}};var l=function(){this.h={}};l.__name__=!0,l.__interfaces__=[s],l.prototype={setReserved:function(t,e){null==this.rh&&(this.rh={}),this.rh["$"+t]=e},getReserved:function(t){return null==this.rh?null:this.rh["$"+t]}};var f=w["haxe.io.Error"]={__ename__:!0,__constructs__:["Blocked","Overflow","OutsideBounds","Custom"],Blocked:{_hx_index:0,__enum__:"haxe.io.Error",toString:n},Overflow:{_hx_index:1,__enum__:"haxe.io.Error",toString:n},OutsideBounds:{_hx_index:2,__enum__:"haxe.io.Error",toString:n},Custom:(i=function(t){return{_hx_index:3,e:t,__enum__:"haxe.io.Error",toString:n}},i.__params__=["e"],i)},b=function(){};b.__name__=!0,b.i32ToFloat=function(t){return b.helper.setInt32(0,t,!0),b.helper.getFloat32(0,!0)},b.floatToI32=function(t){return b.helper.setFloat32(0,t,!0),b.helper.getInt32(0,!0)};var y=function(t){Error.call(this),this.val=t,Error.captureStackTrace&&Error.captureStackTrace(this,y)};y.__name__=!0,y.wrap=function(t){return t instanceof Error?t:new y(t)},y.__super__=Error,y.prototype=function(t,e){function n(){}n.prototype=t;var r=new n;for(var i in e)r[i]=e[i];return e.toString!==Object.prototype.toString&&(r.toString=e.toString),r}(Error.prototype,{});var x=function(){};x.__name__=!0,x.__string_rec=function(t,e){if(null==t)return"null";if(5<=e.length)return"<...>";var n=typeof t;switch("function"==n&&(t.__name__||t.__ename__)&&(n="object"),n){case"function":return"<function>";case"object":if(t.__enum__){var r=w[t.__enum__],i=r.__constructs__[t._hx_index],a=r[i];if(a.__params__){e+="\t";for(var o=i+"(",s=[],u=0,h=a.__params__;u<h.length;){var l=h[u];++u,s.push(x.__string_rec(t[l],e))}return o+s.join(",")+")"}return i}if(t instanceof Array){var f="[";e+="\t";for(var c=0,_=t.length;c<_;){var g=c++;f+=(0<g?",":"")+x.__string_rec(t[g],e)}return f+="]"}var m;try{m=t.toString}catch(t){t instanceof y&&t.val;return"???"}if(null!=m&&m!=Object.toString&&"function"==typeof m){var d=t.toString();if("[object Object]"!=d)return d}var p=null,v="{\n";e+="\t";var b=null!=t.hasOwnProperty;for(var p in t)b&&!t.hasOwnProperty(p)||"prototype"!=p&&"__class__"!=p&&"__super__"!=p&&"__interfaces__"!=p&&"__properties__"!=p&&(2!=v.length&&(v+=", \n"),v+=e+p+" : "+x.__string_rec(t[p],e));return v+="\n"+(e=e.substring(1))+"}";case"string":return t;default:return String(t)}};var L=function(t){if(t instanceof Array&&null==t.__enum__)this.a=t,this.byteLength=t.length;else{var e=t;this.a=[];for(var n=0,r=e;n<r;){var i=n++;this.a[i]=0}this.byteLength=e}};L.__name__=!0,L.sliceImpl=function(t,e){var n=new F(this,t,null==e?null:e-t),r=new S(n.byteLength);return new F(r).set(n),r},L.prototype={slice:function(t,e){return new L(this.a.slice(t,e))}};var _=function(t,e,n){if(this.buf=t,this.offset=null==e?0:e,this.length=null==n?t.byteLength-this.offset:n,this.offset<0||this.length<0||this.offset+this.length>t.byteLength)throw new y(f.OutsideBounds);this.byteLength=this.length,this.byteOffset=this.offset,this.buffer=this.buf};_.__name__=!0,_.prototype={getInt8:function(t){var e=this.buf.a[this.offset+t];return 128<=e?e-256:e},getUint8:function(t){return this.buf.a[this.offset+t]},getInt16:function(t,e){var n=this.getUint16(t,e);return 32768<=n?n-65536:n},getUint16:function(t,e){return e?this.buf.a[this.offset+t]|this.buf.a[this.offset+t+1]<<8:this.buf.a[this.offset+t]<<8|this.buf.a[this.offset+t+1]},getInt32:function(t,e){var n=this.offset+t,r=this.buf.a[n++],i=this.buf.a[n++],a=this.buf.a[n++],o=this.buf.a[n++];return e?r|i<<8|a<<16|o<<24:o|a<<8|i<<16|r<<24},getUint32:function(t,e){var n=this.getInt32(t,e);return n<0?n+4294967296:n},getFloat32:function(t,e){var n=this.getInt32(t,e),r=1-(n>>>31<<1),i=n>>23&255;return 255==i?0==(8388607&n)?0<r?1/0:-1/0:NaN:r*(0==i?(8388607&n)<<1:8388607&n|8388608)*Math.pow(2,i-150)},getFloat64:function(t,e){var n=this.getInt32(t,e),r=this.getInt32(t+4,e),i=e?n:r,a=e?r:n,o=1-(a>>>31<<1),s=a>>20&2047;if(2047==s)return 0==i&&0==(1048575&a)?0<o?1/0:-1/0:NaN;var u=2220446049250313e-31*(4294967296*(1048575&a)+2147483648*(i>>>31)+(2147483647&i));return 0==s?u*=2:u+=1,o*u*Math.pow(2,s-1023)},setInt8:function(t,e){this.buf.a[t+this.offset]=e<0?e+128&255:255&e},setUint8:function(t,e){this.buf.a[t+this.offset]=255&e},setInt16:function(t,e,n){this.setUint16(t,e<0?e+65536:e,n)},setUint16:function(t,e,n){var r=t+this.offset;n?(this.buf.a[r++]=255&e,this.buf.a[r]=e>>8&255):(this.buf.a[r++]=e>>8&255,this.buf.a[r]=255&e)}
1,setInt32:function(t,e,n){this.setUint32(t,e,n)},setUint32:function(t,e,n){var r=t+this.offset;n?(this.buf.a[r++]=255&e,this.buf.a[r++]=e>>8&255,this.buf.a[r++]=e>>16&255,this.buf.a[r++]=e>>>24):(this.buf.a[r++]=e>>>24,this.buf.a[r++]=e>>16&255,this.buf.a[r++]=e>>8&255,this.buf.a[r++]=255&e)},setFloat32:function(t,e,n){var r;if(0==e)r=0;else{var i=e<0?-e:e,a=Math.floor(Math.log(i)/.6931471805599453);127<a?r=2139095040:(a<=-127?(a=-127,i*=71362384635298e31):i=8388608*(i/Math.pow(2,a)-1),r=(e<0?-2147483648:0)|a+127<<23|Math.round(i))}this.setUint32(t,r,n)},setFloat64:function(t,e,n){var r=b.i64tmp;if(0==e)r.low=0,r.high=0;else if(isFinite(e)){var i=e<0?-e:e,a=Math.floor(Math.log(i)/.6931471805599453);if(1023<a)r.low=-1,r.high=2146435071;else{a<=-1023?(a=-1023,i/=22250738585072014e-324):i=i/Math.pow(2,a)-1;var o=Math.round(4503599627370496*i),s=0|o,u=o/4294967296|0;r.low=s,r.high=(e<0?-2147483648:0)|a+1023<<20|u}}else r.low=0,r.high=0<e?2146435072:-1048576;var h=r;n?(this.setUint32(t,h.low,!0),this.setUint32(t+4,h.high,!0)):(this.setUint32(t,h.high,!1),this.setUint32(t+4,h.low,!1))}};var O=function(){};O.__name__=!0,O._new=function(t,e,n){var r;if("number"==typeof t){r=[];for(var i=0,a=t;i<a;){r[i++]=0}r.byteLength=r.length<<2;for(var o=[],s=r.byteOffset=0,u=r.length<<2;s<u;){s++;o.push(0)}r.buffer=new L(o)}else if(t instanceof L){var h=t;null==e&&(e=0),null==n&&(n=h.byteLength-e>>2),r=[];for(var l=0,f=n;l<f;){l++;var c=h.a[e++]|h.a[e++]<<8|h.a[e++]<<16|h.a[e++]<<24;r.push(b.i32ToFloat(c))}r.byteLength=r.length<<2,r.byteOffset=e,r.buffer=h}else{if(!(t instanceof Array&&null==t.__enum__))throw new y("TODO "+p.string(t));r=t.slice();for(var _=[],g=0;g<r.length;){var m=r[g];++g;var d=b.floatToI32(m);_.push(255&d),_.push(d>>8&255),_.push(d>>16&255),_.push(d>>>24)}r.byteLength=r.length<<2,r.byteOffset=0,r.buffer=new L(_)}return r.subarray=O._subarray,r.set=O._set,r},O._set=function(t,e){if(null==e&&(e=0),t.buffer instanceof L){var n=t;if(t.byteLength+e>this.byteLength)throw new y("set() outside of range");for(var r=0,i=t.byteLength;r<i;){var a=r++;this[a+e]=n[a]}}else{if(!(t instanceof Array&&null==t.__enum__))throw new y("TODO");var o=t;if(o.length+e>this.byteLength)throw new y("set() outside of range");for(var s=0,u=o.length;s<u;){var h=s++;this[h+e]=o[h]}}},O._subarray=function(t,e){var n=O._new(this.slice(t,e));return n.byteOffset=4*t,n};var g=function(){};g.__name__=!0,g._new=function(t,e,n){var r;if("number"==typeof t){r=[];for(var i=0,a=t;i<a;){r[i++]=0}r.byteLength=r.length,r.byteOffset=0,r.buffer=new L(r)}else if(t instanceof L){var o=t;null==e&&(e=0),null==n&&(n=o.byteLength-e),(r=0==e?o.a:o.a.slice(e,e+n)).byteLength=r.length,r.byteOffset=e,r.buffer=o}else{if(!(t instanceof Array&&null==t.__enum__))throw new y("TODO "+p.string(t));(r=t.slice()).byteLength=r.length,r.byteOffset=0,r.buffer=new L(r)}return r.subarray=g._subarray,r.set=g._set,r},g._set=function(t,e){if(null==e&&(e=0),t.buffer instanceof L){var n=t;if(t.byteLength+e>this.byteLength)throw new y("set() outside of range");for(var r=0,i=t.byteLength;r<i;){var a=r++;this[a+e]=n[a]}}else{if(!(t instanceof Array&&null==t.__enum__))throw new y("TODO");var o=t;if(o.length+e>this.byteLength)throw new y("set() outside of range");for(var s=0,u=o.length;s<u;){var h=s++;this[h+e]=o[h]}}},g._subarray=function(t,e){var n=g._new(this.slice(t,e));return n.byteOffset=t,n};var m=0;function d(t,e){return null==e?null:(null==e.__id__&&(e.__id__=m++),null==t.hx__closures__?t.hx__closures__={}:n=t.hx__closures__[e.__id__],null==n&&(n=e.bind(t),t.hx__closures__[e.__id__]=n),n);var n}String.__name__=!0,Array.__name__=!0;var E={};Object.defineProperty(y.prototype,"message",{get:function(){return String(this.val)}});var S=e.ArrayBuffer||L;null==S.prototype.slice&&(S.prototype.slice=L.sliceImpl);var I=e.DataView||_,P=e.Float32Array||O._new,F=e.Uint8Array||g._new;b.i64tmp=new u(0,0),b.helper=new I(new S(8)),O.BYTES_PER_ELEMENT=4,g.BYTES_PER_ELEMENT=1,o.main()}("undefined"!=typeof exports?exports:"undefined"!=typeof window?window:"undefined"!=typeof self?self:this,"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this);
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.