From 6109657c5f4d227edeb1a061f9c470e0ee8ad397 Mon Sep 17 00:00:00 2001 From: Nikos M Date: Wed, 7 Dec 2022 20:11:13 +0200 Subject: [PATCH] v.0.5.0 * Qbezier exact bounding box * more examples * Arc convex hull same as exact bounding box (needs to be rotated to fit arc) --- README.md | 12 +++- boundingboxes.png | Bin 0 -> 55918 bytes build/Geometrize.js | 151 ++++++++++++++++++++++++++++------------ build/Geometrize.min.js | 5 +- convexhulls.png | Bin 0 -> 56962 bytes intersections.png | Bin 53624 -> 56365 bytes src/Arc.js | 101 +++++++++++++++++++++------ src/Bezier2.js | 14 ++-- src/Ellipse.js | 2 +- src/Primitive.js | 6 +- src/utils.js | 24 +++---- test/intersect.html | 8 +-- test/tween.html | 33 ++++++--- 13 files changed, 256 insertions(+), 100 deletions(-) create mode 100644 boundingboxes.png create mode 100644 convexhulls.png diff --git a/README.md b/README.md index 213fd4d..c0c6022 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,18 @@ Computational Geometry and Rendering library for JavaScript -**version: 0.5.0** (74 kB minified) +**version: 0.5.0** (72 kB minified) Examples: +**Bounding Boxes** + +![geometrize bounding boxes](/boundingboxes.png) + +**Convex Hulls** + +![geometrize convex hulls](/convexhulls.png) + **Intersections** ![geometrize intersections](/intersections.png) @@ -40,7 +48,7 @@ intersections.forEach(p => { }); ``` -**Shape Tween** +**Shape Tweens** ![geometrize tween between multiple shapes](/shapetween.gif) diff --git a/boundingboxes.png b/boundingboxes.png new file mode 100644 index 0000000000000000000000000000000000000000..5cb53120e9662289c7c9e657b51b4a3a5604c233 GIT binary patch literal 55918 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%0ATJmjIU;s)&-zcWCKL2!8 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 literal 0 HcmV?d00001 diff --git a/build/Geometrize.js b/build/Geometrize.js index 914eade..bb6c95d 100644 --- a/build/Geometrize.js +++ b/build/Geometrize.js @@ -2,14 +2,14 @@ * Geometrize * computational geometry and rendering library for JavaScript * -* @version 0.5.0 (2022-12-07 16:52:30) +* @version 0.5.0 (2022-12-07 20:08:29) * https://github.com/foo123/Geometrize * **//** * Geometrize * computational geometry and rendering library for JavaScript * -* @version 0.5.0 (2022-12-07 16:52:30) +* @version 0.5.0 (2022-12-07 20:08:29) * https://github.com/foo123/Geometrize * **/ @@ -1001,10 +1001,10 @@ var Primitive = makeClass(null, merge(null, { return []; }, getCenter: function() { - var box = this.getBoundingBox(); + var bb = this.getBoundingBox(); return { - x: (box.xmin + box.xmax)/2, - y: (box.ymin + box.ymax)/2 + x: (bb.xmin + bb.xmax)/2, + y: (bb.ymin + bb.ymax)/2 }; }, hasPoint: function(point) { @@ -2454,13 +2454,26 @@ var Arc = makeClass(Curve, { theta = self.theta, dtheta = self.dtheta, theta2 = theta + dtheta, - sweep = self.sweep, otherArc = false, + otherArc = false, tan = stdMath.tan(rad(self.angle)), p1, p2, p3, p4, t, xmin, xmax, ymin, ymax, txmin, txmax, tymin, tymax ; - // get parameter t by zeroing directional derivatives along x and y + if (!self.sweep) + { + t = theta; + theta = theta2; + theta2 = t; + } + if (theta > theta2) + { + t = theta; + theta = theta2; + theta2 = t; + otherArc = true; + } + // find min/max from zeroes of directional derivative along x and y // first get of whole ellipse // along x axis t = stdMath.atan2(-ry*tan, rx); @@ -2507,19 +2520,6 @@ var Arc = makeClass(Curve, { if (tymin > TWO_PI) tymin -= TWO_PI; if (tymax < 0) tymax += TWO_PI; if (tymax > TWO_PI) tymax -= TWO_PI; - if (!self.sweep) - { - t = theta; - theta = theta2; - theta2 = t; - } - if (theta > theta2) - { - t = theta; - theta = theta2; - theta2 = t; - otherArc = true; - } if ((!otherArc && (theta > txmin || theta2 < txmin)) || (otherArc && !(theta > txmin || theta2 < txmin))) { xmin = o1.x < o2.x ? o1 : o2; @@ -2552,13 +2552,74 @@ var Arc = makeClass(Curve, { get: function() { if (null == _hull) { - var b = self._bbox; + var bb = self._bbox; _hull = [ - new Point([b.xmin, b.ymin]), - new Point([b.xmax, b.ymin]), - new Point([b.xmax, b.ymax]), - new Point([b.xmin, b.ymax]) + new Point([bb.xmin, bb.ymin]), + new Point([bb.xmax, bb.ymin]), + new Point([bb.xmax, bb.ymax]), + new Point([bb.xmin, bb.ymax]) ]; + /*var c = self.center, rx = self.rX, ry = self.rY, + theta = self.theta, theta2 = theta + self.dtheta, + o1 = self.start, o2 = self.end, + xmin = toarc(-1, 0, c.x, c.y, rx, ry, _cos, _sin), + xmax = toarc(1, 0, c.x, c.y, rx, ry, _cos, _sin), + ymin = toarc(0, -1, c.x, c.y, rx, ry, _cos, _sin), + ymax = toarc(0, 1, c.x, c.y, rx, ry, _cos, _sin), + txmin, txmax, tymin, tymax, t, otherArc = false; + if (!self.sweep) + { + t = theta; + theta = theta2; + theta2 = t; + t = o1; + o1 = o2; + o2 = t; + } + if (theta > theta2) + { + t = theta; + theta = theta2; + theta2 = t; + t = o1; + o1 = o2; + o2 = t; + otherArc = true; + } + txmin = vector_angle(1, 0, xmin.x - c.x, xmin.y - c.y); + txmax = vector_angle(1, 0, xmax.x - c.x, xmax.y - c.y); + tymin = vector_angle(1, 0, ymin.x - c.x, ymin.y - c.y); + tymax = vector_angle(1, 0, ymax.x - c.x, ymax.y - c.y); + if (txmin < 0) txmin += TWO_PI; + if (txmin > TWO_PI) txmin -= TWO_PI; + if (txmax < 0) txmax += TWO_PI; + if (txmax > TWO_PI) txmax -= TWO_PI; + if (tymin < 0) tymin += TWO_PI; + if (tymin > TWO_PI) tymin -= TWO_PI; + if (tymax < 0) tymax += TWO_PI; + if (tymax > TWO_PI) tymax -= TWO_PI; + if ((!otherArc && (theta > txmin || theta2 < txmin)) || (otherArc && !(theta > txmin || theta2 < txmin))) + { + xmin.x = o1.x < o2.x ? o1.x : o2.x; + } + if ((!otherArc && (theta > txmax || theta2 < txmax)) || (otherArc && !(theta > txmax || theta2 < txmax))) + { + xmax.x = o1.x > o2.x ? o1.x : o2.x; + } + if ((!otherArc && (theta > tymin || theta2 < tymin)) || (otherArc && !(theta > tymin || theta2 < tymin))) + { + ymin.y = o1.y < o2.y ? o1.y : o2.y; + } + if ((!otherArc && (theta > tymax || theta2 < tymax)) || (otherArc && !(theta > tymax || theta2 < tymax))) + { + ymax.y = o1.y > o2.y ? o1.y : o2.y; + } + _hull = [ + new Point(xmin.x, ymin.y), + new Point(xmax.x, ymin.y), + new Point(xmax.x, ymax.y), + new Point(xmin.x, ymax.y) + ];*/ } return _hull; }, @@ -2738,12 +2799,16 @@ var Bezier2 = makeClass(Bezier, { get: function() { if (null == _bbox) { + // find min/max from zeroes of directional derivative along x and y var p = self._points, - p1 = p[0], p2 = p[1], p3 = p[2], - xmin = stdMath.min(p1.x, p2.x, p3.x), - xmax = stdMath.max(p1.x, p2.x, p3.x), - ymin = stdMath.min(p1.y, p2.y, p3.y), - ymax = stdMath.max(p1.y, p2.y, p3.y) + ax = p[0].x - 2*p[1].x + p[2].x, + px = is_strictly_equal(ax, 0) ? p[1] : self.f((p[0].x - p[1].x)/ax), + ay = p[0].y - 2*p[1].y + p[2].y, + py = is_strictly_equal(ay, 0) ? p[1] : self.f((p[0].y - p[1].y)/ay), + xmin = stdMath.min(px.x, p[0].x, p[2].x), + xmax = stdMath.max(px.x, p[0].x, p[2].x), + ymin = stdMath.min(py.y, p[0].y, p[2].y), + ymax = stdMath.max(py.y, p[0].y, p[2].y) ; _bbox = { ymin: ymin, @@ -3507,7 +3572,7 @@ var Ellipse = makeClass(Curve, { tan = stdMath.tan(rad(self.angle)), p1, p2, p3, p4, t ; - // get parameter t by zeroing directional derivatives along x and y + // find min/max from zeroes of directional derivative along x and y // along x axis t = stdMath.atan2(-ry*tan, rx); p1 = arc(t, c.x, c.y, rx, ry, _cos, _sin); @@ -4411,12 +4476,12 @@ function point_on_qbezier(p, c) { //x = t^{2} \left(x_{1} - 2 x_{2} + x_{3}\right) + t \left(- 2 x_{1} + 2 x_{2}\right) + x_{1} var tx, ty; - tx = quad_solve(c[0].x - 2*c[1].x + c[2].x, -2*c[0].x + 2*c[1].x, c[0].x - p.x); + tx = solve_quadratic(c[0].x - 2*c[1].x + c[2].x, -2*c[0].x + 2*c[1].x, c[0].x - p.x); if (!tx) return false; if (1 < tx.length && (0 > tx[1] || 1 < tx[1])) tx.pop(); if (tx.length && (0 > tx[0] || 1 < tx[0])) tx.shift(); if (!tx.length) return false; - ty = quad_solve(c[0].y - 2*c[1].y + c[2].y, -2*c[0].y + 2*c[1].y, c[0].y - p.y); + ty = solve_quadratic(c[0].y - 2*c[1].y + c[2].y, -2*c[0].y + 2*c[1].y, c[0].y - p.y); if (!ty) return false; if (1 < ty.length && (0 > ty[1] || 1 < ty[1])) ty.pop(); if (ty.length && (0 > ty[0] || 1 < ty[0])) ty.shift(); @@ -4796,22 +4861,22 @@ function is_convex(points) } return 1 === abs(stdMath.round(angle_sum / TWO_PI)); } -function lin_solve(a, b) +function solve_linear(a, b) { return is_strictly_equal(a, 0) ? false : [-b/a]; } -function quad_solve(a, b, c) +function solve_quadratic(a, b, c) { - if (is_strictly_equal(a, 0)) return lin_solve(b, c); + if (is_strictly_equal(a, 0)) return solve_linear(b, c); var D = b*b - 4*a*c, DS = 0; if (is_almost_equal(D, 0)) return [-b/(2*a)]; if (0 > D) return false; DS = sqrt(D); return [(-b-DS)/(2*a), (-b+DS)/(2*a)]; } -function cub_solve(a, b, c, d) +function solve_cubic(a, b, c, d) { - if (is_strictly_equal(a, 0)) return quad_solve(b, c, d); + if (is_strictly_equal(a, 0)) return solve_quadratic(b, c, d); var A = b/a, B = c/a, C = d/a, Q = (3*B - A*A)/9, QS = 0, R = (9*A*B - 27*C - 2*pow(A, 3))/54, @@ -4869,10 +4934,10 @@ function line_quadratic_intersection(m, n, k, a, b, c, d, e, f) var x, y, x1 = 0, y1 = 0, x2 = 0, y2 = 0, D = 0, R = 0, F = 0; if (is_strictly_equal(m, 0)) { - y = lin_solve(n, k); + y = solve_linear(n, k); if (!y) return false; y1 = y[0]; - x = quad_solve(a, c*y1+d, b*y1*y1+e*y1+f); + x = solve_quadratic(a, c*y1+d, b*y1*y1+e*y1+f); if (!x) return false; return 2 === x.length ? [{x:x[0],y:y1},{x:x[1],y:y1}] : [{x:x[0],y:y1}]; } @@ -5499,9 +5564,9 @@ function is_function(x) Geometrize.Math.deg = deg; Geometrize.Math.rad = rad; Geometrize.Math.hypot = hypot; -Geometrize.Math.solve1 = lin_solve; -Geometrize.Math.solve2 = quad_solve; -Geometrize.Math.solve3 = cub_solve; +Geometrize.Math.solveLinear = solve_linear; +Geometrize.Math.solveQuadratic = solve_quadratic; +Geometrize.Math.solveCubic = solve_cubic; // export it return Geometrize; diff --git a/build/Geometrize.min.js b/build/Geometrize.min.js index 7ba2bb8..e2ebf5f 100644 --- a/build/Geometrize.min.js +++ b/build/Geometrize.min.js @@ -2,7 +2,8 @@ * Geometrize * computational geometry and rendering library for JavaScript * -* @version 0.5.0 (2022-12-07 16:52:30) +* @version 0.5.0 (2022-12-07 20:08:29) * https://github.com/foo123/Geometrize * -**/!function(t,n,e){"use strict";"object"==typeof module&&module.exports?(module.$deps=module.$deps||{})&&(module.exports=module.$deps[n]=e.call(t)):"function"==typeof define&&define.amd&&"function"==typeof require&&"function"==typeof require.specified&&require.specified(n)?define(n,["module"],function(n){return e.moduleUri=n.uri,e.call(t)}):n in t||(t[n]=e.call(t)||1)&&"function"==typeof define&&define.amd&&define(function(){return t[n]})}("undefined"!=typeof self?self:this,"Geometrize",function(y){"use strict";var d=Object.prototype.hasOwnProperty,t=Object.prototype.toString,b=Object.defineProperty,_=Math,S=_.abs,C=_.sqrt,a=_.pow,$=_.PI,w=2*$,r=1e-6,i=C(2),l=C(3),p={},u=function(){},x=("undefined"!=typeof global&&t.call(global),"undefined"!=typeof window&&"[object Window]"===t.call(window)),n={VERSION:"0.5.0",Math:{}};function e(n,t,e){var r,i,s,o=d.call(t,"constructor")?t.constructor:function(){};for(r in n?(o.prototype=Object.create(n.prototype),o.prototype.$super=(i=n,s={},function(n,t){var e=":"+n;return 1===s[e]?(i.prototype.$super||u).call(this,n,t):(s[e]=1,t=("constructor"===n?i:i.prototype[n]||u).apply(this,t||[]),s[e]=0,t)})):o.prototype.$super=u,o.prototype.constructor=o,t)d.call(t,r)&&"constructor"!==r&&(o.prototype[r]=t[r]);if(e)for(r in e)d.call(e,r)&&(o[r]=e[r]);return o}var o={$changed:!1,$cb:null,dispose:function(){this.$cb=null},isChanged:function(n){return arguments.length?(this.$changed=!!n,this):this.$changed},onChange:function(n,t){var e,r=this;return!1===t&&(at(n)||st(n))?r.$cb&&-1!==(e=(st(n)?r.$cb.map(function(n){return tt(n.id)}):r.$cb).indexOf(n))&&r.$cb.splice(e,1):at(n)&&(r.$cb||(r.$cb=[]),-1===(e=r.$cb.indexOf(n))&&r.$cb.push(n)),r},triggerChange:function(){var t=this;return t.$cb&&t.$cb.forEach(function(n){n(t)}),t}},k=e(null,Rn(null,{constructor:function e(r){var i=this;return r instanceof e?r:i instanceof e?(r=+r||0,i.dispose=function(){r=null,e.prototype.dispose.call(i)},i.clone=function(){return new e(r)},i.val=function(n){if(arguments.length){n=n instanceof e?n.val():+n||0;var t=!Tn(r,n);return r=n,t&&!i.isChanged()&&(i.isChanged(!0),i.triggerChange()),i}return r},i.valueOf=function(){return r.valueOf()},i.toString=function(){return tt(r)},void i.isChanged(!0)):new e(r)},clone:null,val:null,valueOf:null,toString:null},o)),g=e(null,{constructor:function n(t,e,r,i,s,o,u,a,l){var c=this;return t instanceof n?t:c instanceof n?(ot(t)&&9<=t.length?(c.$00=et(t[0]),c.$01=et(t[1]),c.$02=et(t[2]),c.$10=et(t[3]),c.$11=et(t[4]),c.$12=et(t[5])):(c.$00=t,c.$01=e,c.$02=r,c.$10=i,c.$11=s,c.$12=o),c.$20=0,c.$21=0,void(c.$22=1)):new n(t,e,r,i,s,o,u,a,l)},$00:1,$01:0,$02:0,$10:0,$11:1,$12:0,$20:0,$21:0,$22:1,clone:function(){var n=this;return new g(n.$00,n.$01,n.$02,n.$10,n.$11,n.$12,0,0,1)},eq:function(n){if(n instanceof g){var t=this;return Tn(t.$00,n.$00)&&Tn(t.$01,n.$01)&&Tn(t.$02,n.$02)&&Tn(t.$10,n.$10)&&Tn(t.$11,n.$11)&&Tn(t.$12,n.$12)}return!1},add:function(n){var t=this;return n instanceof g?new g(t.$00+n.$00,t.$01+n.$01,t.$02+n.$02,t.$10+n.$10,t.$11+n.$11,t.$12+n.$12,0,0,1):(n=+n||0,new g(t.$00+n,t.$01+n,t.$02+n,t.$10+n,t.$11+n,t.$12+n,0,0,1))},mul:function(n){var t=this;return n instanceof g?new g(t.$00*n.$00+t.$01*n.$10+t.$02*n.$20,t.$00*n.$01+t.$01*n.$11+t.$02*n.$21,t.$00*n.$02+t.$01*n.$12+t.$02*n.$22,t.$10*n.$00+t.$11*n.$10+t.$12*n.$20,t.$10*n.$01+t.$11*n.$11+t.$12*n.$21,t.$10*n.$02+t.$11*n.$12+t.$12*n.$22,0,0,1):(n=+n||0,new g(t.$00*n,t.$01*n,t.$02*n,t.$10*n,t.$11*n,t.$12*n,0,0,1))},det:function(){var n=this;return n.$00*(n.$11*n.$22-n.$12*n.$21)+n.$01*(n.$12*n.$20-n.$10*n.$22)+n.$02*(n.$21*n.$10-n.$11*n.$20)},inv:function(){var n,t,e,r=this,i=r.$00,s=r.$01,o=r.$02,u=r.$10,a=r.$11,l=r.$12,c=i*a-s*u;return is_almost_zero(c)?null:new g(n=a/c,t=-s/c,-n*o-t*l,e=-u/c,r=i/c,-e*o-r*l,0,0,1)},transform:function(n,t){var e=this,r=n.x,i=n.y,n=e.$00*r+e.$01*i+e.$02,e=e.$10*r+e.$11*i+e.$12;return t?(t.x=n,t.y=e):t=new F(n,e),t},getTranslation:function(){return{x:this.$02,y:this.$12}},getRotationAngle:function(){return _.atan2(this.$10,this.$00)},getScale:function(){var n=this.$00,t=-this.$01,e=this.$10,r=this.$11;return{x:zn(n)*On(n,e),y:zn(r)*On(t,r)}},toArray:function(){var n=this;return[n.$00,n.$01,n.$02,n.$10,n.$11,n.$12,n.$20,n.$21,n.$22]},toSVG:function(){var n=this;return"matrix("+tt(n.$00)+" "+tt(n.$10)+" "+tt(n.$01)+" "+tt(n.$11)+" "+tt(n.$02)+" "+tt(n.$12)+")"},toCSS:function(){var n=this;return"matrix("+tt(n.$00)+","+tt(n.$10)+","+tt(n.$01)+","+tt(n.$11)+","+tt(n.$02)+","+tt(n.$12)+")"},toTex:function(){return g.arrayTex(this.toArray(),3,3)},toString:function(){return g.arrayString(this.toArray(),3,3)}},{eye:function(){return new g(1,0,0,0,1,0,0,0,1)},translate:function(n,t){return new g(1,0,+n||0,0,1,+t||0,0,0,1)},rotate:function(n){n=+n||0;var t=_.cos(n),n=_.sin(n);return new g(t,-n,0,n,t,0,0,0,1)},rotateAroundPoint:function(n,t,e){e=+e||0;var r=_.cos(e),e=_.sin(e);return new g(r,-e,n-r*n+e*t,e,r,t-r*t-e*n,0,0,1)},scale:function(n,t){return new g(+n||0,0,0,0,+t||0,0,0,0,1)},reflectX:function(){return new g(-1,0,0,0,1,0,0,0,1)},reflectY:function(){return new g(1,0,0,0,-1,0,0,0,1)},shearX:function(n){return new g(1,+n||0,0,0,1,0,0,0,1)},shearY:function(n){return new g(1,0,0,+n||0,1,0,0,0,1)},arrayTex:function(n,t,e){for(var r="\\begin{pmatrix}",i=0;it.x?n:t),(!i&&(ft.y?n:t),m={ymin:u.y,xmin:s.x,ymax:a.y,xmax:o.x}),m},enumerable:!1,configurable:!1}),b(y,"_hull",{get:function(){var n;return null==v&&(n=y._bbox,v=[new F([n.xmin,n.ymin]),new F([n.xmax,n.ymin]),new F([n.xmax,n.ymax]),new F([n.xmin,n.ymax])]),v},enumerable:!1,configurable:!1}),void(y.isChanged=function(n){return!0===n&&(v=m=p=g=null),y.$super("isChanged",arguments)})):new n(t,e,r,i,s,o,u)},name:"Arc",clone:function(){return new B(this.start.clone(),this.end.clone(),this.radiusX,this.radiusY,this.angle,this.largeArc,this.sweep)},transform:function(n){var t=this.radiusX,e=this.radiusY,r=this.angle,i=qn(n.getRotationAngle()),s=n.getScale();return new B(this.start.transform(n),this.end.transform(n),t*s.x,e*s.y,r+i,this.largeArc,this.sweep)},isClosed:function(){return!1},isConvex:function(){return!1},hasMatrix:function(){return!1},f:function(n){var t=this.center,e=this.cs;return jn(this.theta+n*this.dtheta,t.x,t.y,this.rX,this.rY,e[0],e[1])},getPointAt:function(n){return(n=+n||0)<0||1=n.nframes}E["ease-in"]=E["ease-in-quad"],E["ease-out"]=E["ease-out-quad"],E["ease-in-out"]=E["ease-in-out-quad"];var H=e(T,{constructor:function n(e){var t,r=this,i=!1,s=0,o=null,u=null;return e instanceof n?e:r instanceof n?(T.call(r),r.start=function(){var n;return i=!0,((n=e).reverse?n.nframes-1===n.current.frame:0===n.current.frame)&&o&&o(r),setTimeout(t,(e.delay||0)+s),r},r.stop=function(){return i=!1,r},r.rewind=function(){return function(n){n.reverse?n.kf=n.keyframes.length-1:n.kf=0;var t,e,r,i,s,o,u=n.keyframes[n.kf],a=u.transform.translate.x,l=u.transform.translate.y,c=u.transform.scale.x,f=u.transform.scale.y,h=u.transform.rotate.angle,g=c*u.transform.rotate.point.x,y=f*u.transform.rotate.point.y,x=1,d=0,p=u.shape,m=p.length,v=new Array(m);for(Tn(h,0)||(x=_.cos(h),d=_.sin(h)),e=0;ee+1?2:1}}(n.shape,y)}),h}(e,60),t=function n(){i&&e&&(!function(n){if(n.current.frame+=n.reverse?-1:1,!D(n)){var t,e;d=n.reverse?(n.current.frame<=n.keyframes[n.kf-1].frame&&0<=n.kf-2&&--n.kf,t=n.keyframes[n.kf],e=n.keyframes[n.kf-1],S(n.current.frame-t.frame)/(t.frame-e.frame+1)):(n.current.frame>=n.keyframes[n.kf+1].frame&&n.kf+2"+tt(r)+"":"/>");return t}function Qn(o,u,a,i){if(at(o.onChange))return o;function l(t){o.$cb.forEach(function(n){n(t)})}var c=!0;i=i||Hn;var f=function(n,t){for(var e=n;et.x?n:t),(!i&&(ht.y?n:t),m={ymin:a.y,xmin:o.x,ymax:l.y,xmax:u.x}),m},enumerable:!1,configurable:!1}),b(g,"_hull",{get:function(){var n;return null==v&&(n=g._bbox,v=[new F([n.xmin,n.ymin]),new F([n.xmax,n.ymin]),new F([n.xmax,n.ymax]),new F([n.xmin,n.ymax])]),v},enumerable:!1,configurable:!1}),void(g.isChanged=function(n){return!0===n&&(v=m=p=y=null),g.$super("isChanged",arguments)})):new n(t,e,r,i,s,o,u)},name:"Arc",clone:function(){return new B(this.start.clone(),this.end.clone(),this.radiusX,this.radiusY,this.angle,this.largeArc,this.sweep)},transform:function(n){var t=this.radiusX,e=this.radiusY,r=this.angle,i=qn(n.getRotationAngle()),s=n.getScale();return new B(this.start.transform(n),this.end.transform(n),t*s.x,e*s.y,r+i,this.largeArc,this.sweep)},isClosed:function(){return!1},isConvex:function(){return!1},hasMatrix:function(){return!1},f:function(n){var t=this.center,e=this.cs;return jn(this.theta+n*this.dtheta,t.x,t.y,this.rX,this.rY,e[0],e[1])},getPointAt:function(n){return(n=+n||0)<0||1=n.nframes}E["ease-in"]=E["ease-in-quad"],E["ease-out"]=E["ease-out-quad"],E["ease-in-out"]=E["ease-in-out-quad"];var H=e(T,{constructor:function n(e){var t,r=this,i=!1,s=0,o=null,u=null;return e instanceof n?e:r instanceof n?(T.call(r),r.start=function(){var n;return i=!0,((n=e).reverse?n.nframes-1===n.current.frame:0===n.current.frame)&&o&&o(r),setTimeout(t,(e.delay||0)+s),r},r.stop=function(){return i=!1,r},r.rewind=function(){return function(n){n.reverse?n.kf=n.keyframes.length-1:n.kf=0;var t,e,r,i,s,o,u=n.keyframes[n.kf],a=u.transform.translate.x,l=u.transform.translate.y,c=u.transform.scale.x,f=u.transform.scale.y,h=u.transform.rotate.angle,y=c*u.transform.rotate.point.x,g=f*u.transform.rotate.point.y,x=1,d=0,p=u.shape,m=p.length,v=new Array(m);for(Tn(h,0)||(x=_.cos(h),d=_.sin(h)),e=0;ee+1?2:1}}(n.shape,g)}),h}(e,60),t=function n(){i&&e&&(!function(n){if(n.current.frame+=n.reverse?-1:1,!D(n)){var t,e;d=n.reverse?(n.current.frame<=n.keyframes[n.kf-1].frame&&0<=n.kf-2&&--n.kf,t=n.keyframes[n.kf],e=n.keyframes[n.kf-1],S(n.current.frame-t.frame)/(t.frame-e.frame+1)):(n.current.frame>=n.keyframes[n.kf+1].frame&&n.kf+2"+tt(r)+"":"/>");return t}function Qn(o,u,a,i){if(at(o.onChange))return o;function l(t){o.$cb.forEach(function(n){n(t)})}var c=!0;i=i||Hn;var f=function(n,t){for(var e=n;eQD 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 b+x^w^RXf%9Iw*(JkL>j(>(c&kIQ)MA6Ap@y literal 0 HcmV?d00001 diff --git a/intersections.png b/intersections.png index c44a63ff5c415ae14fbe95e32cadc23028be4dd1..dc20f73e3283c87cd3c8c61c07cc235286d5487e 100644 GIT binary patch literal 56365 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˫T_sv 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 literal 53624 zcmd42byO5u^fo-`MXxAwRS-nNpu3S)X{5W6lJ1TnE&|fh-Q8V73IYPs-AH#2F~h)j z#<=hAegAm>`qsC;S+Ia%=A3=@+56ege$JTyS!q#hEJ7>@1cEItCL|Am++v16Zd(3* z3p}Ipgmw}9_{;9CxZ>a7;r_S5C-CKbPq@6hz zcg3-}uEYJ$|2%(i^NwGJ;&U&I=M~CgFM3|E7!v(?3KEeO9DGk)SUmXS$G;*7{yg2v#=^p) z*gNs&&l8Zkw-0ar`6KS3_`N^Bzn35b?)dfaq7DZu{{6@i`v3F|@)r>V7wgsfUtWdm z42gsg`fhOt3CAp@ZoeJNlY0s$;F7-Un55DidsAdevp*@Tu4~~~TEC$)zkau=Ms?IG z#VO&`S8F+8CON2MSVqZ(Tf2#qs_AlB{Z&C2#h&e9gXwq|#;=ums&tZxl<=pFiiX1p z^Ono~(l%isPEhWWn(Eor&SJKaI`Q=4d^;Y*r+t;D^8#{%$QJ}YyGdm1i`##~X-xf&c(7fM^9A2jF4K)s`dwP+=Ru)2 zmi*-6UzkgcJ67&j4Cp5f78o}0x^GpS(h=nHTM$y8a0k&n4x)?M#+}X!aV2ZY!0zfT z3v6BGLrkoY!OP5OWuN~D8O;%m(4MlMZBO{Cfvv>l(1@-=HNkAQB;$NIax_z_?(K~r z4=1g>>60h9m~Q4VclrfNlp;x#*D0Q3(U~s820v`^(rCF!R3=zo*;qImMsagia!J4c z)RyQl-oE^}&O|>2p$3MWHZu)vFI5h%b7bi2%0IuqLpU+JMnrGQZy6hfEboMy>+xB> z7pt2-xoF@(sSKCcm|B)kLUR^)XZ}GMwm1^s6l@zSI&LSd zeJ_JY_kCv)Cs4m{;t;!(Dqr-eum4}#+qr$*W}~!ES7xPpJ*>>N<||(>BdX*w2e*rm z+W6{M9!bc_!?-H^r`fQ^9BR&JnS_3XOy_lp`Sb6;xmd1^ zEB9WBEeg;m=XqQ&XLJJ#L_YZYEo!o~lwT)w4 zMEXbbsNeDEP6MDQj@>Ng$MDpq2xs@_U6~W1<Nfw9xKi2nh~*( zsyWVKF*UWf?ifEruInj78jBeT%YR_(o!#9vkzClny2oIVuyJu5k)HOU^BXxOF+bPD zhDO_k1PgAw=?)!#@2FVAf^g1v7WvGiFyg@<9c^yStYe?-&$SlnYo4FbUz{^|>`YU& z^W8J$7`BGpGhB4OlGkbH$L;cXmbqVq>O4WVg+Op@Fxj4L{i8CqAEHa(7k(CUIREW~ z$mgyBOoAWfjD#9mj@0-lXXSzitM*zqgYPpw4%>?C+{&sUC#pQB{AQe3HEr#7mxjpG zhKF3|xQ%)8D*BclE>5OlZSc*IW2p{vfq^2(J*h4fyKd@Vl5rX=Zr6x;&ycVa=cDXef?>T*FF)^cf5!7 zvP=7&efg<)o}Z*^&dFJ0+flWJW|#b2`{hf!lR*pA%4+Z8kl%vC&}7)aHw9zNE_`F5 zHs0jI!Ejsl{q!0_mUXc^(O8(=m781+P5MbS(W=ANlBML*(Z}>88R7%D^FP`>cZ<)T zxJhUcmm7&R!mdjT5f2zUQd^{!_ly;m*cr{Y>K@-SDSW=Kw9^wSv3HyB@t72&IgPMp z&qT@-=;*1pXWrLRLZzZGm;I~X*tNFE98hkCwDiAi!by|UP)lk=I9hWq?pmZ^bC_{ULK}@dC?0u zW<=ipjv<9G`yjXDvR<>jifpsUS%;6FeE;jWrC0{AoIw7ilF&&+J?wex?gEQc0KGbp={H(_cOf*d9G4@ zHTC`&ro)~&HL1O{ny);Ny|4ktvGcpMCqllDZe=_DXu}jwhp{^3+cG?134Yh3matKE z)timCnV{qCW_MoN#NOi}`-+HF+`_{0-J4TIY#Vl}9o)0!6xVuZNdmv%<6|Y~pxEt; zmYuTtQ{S%HNVj~d&UZa?yb7q@Te992*D*z$M3!E)OAG8Cp9J-av&=l-yi>S(Pdu=j zL&Ojawbb#Cc^M5mR=?KdZ~XYqh*IU++4=KhBBxKZCLVGE?Do`7l^;&6ULZ>o%3*Fh z(+?lrTiw==;M^zul^yR1Q*t6*Yg?8_--e59Nyj$CXv{}^5&1M1#Uv+EFfz;H(rFYB zvYV^0$ur@hp5I8`x%dxqQ~vE<>ZUDLY-4f1!j{l+Pe`*sa=f3+dn-(O0{_<{CW&;FB*!F}%i)n}UADi*)w_op-29Z? zz$p#oYW*bPkRn3AUn!JXJ_p}1`(8cMt#tXkbCKL~uWT9B#NIKvW!fV6DCGVZ-Ok-P zQf7G_wGZa}9wi^kRr}Aif;Ye6t~*Lg@2@ez<-LZSO4_xh6_V>WS+h5mr5Dt&nD?uP z)Tu~+X75^iB@uRJZ(QV(Woa|ZX#27A)gJzgFfoziOst_BUh{Zcwwhy0i_N!6LXsbo z&L1B>a+^UpIQ1`KGT{3#r2fPAO3$kcbEcO;rz$3_uR^(>MlZiOPvNU+4*MRj@^)@@sOt()ove^@^UTGj zrRcM@dB|?e`I28Idw%mFWKN56I-g`|YVPT1o9RoPIDKbSb#}~^5OMU*p}xKuYOWn9 z;Q52jpLtG-dO3L}K#VAR{);ZG2`Na(x_MpoVc-ru(cYZ4dmoo!<7qR>N!h+YTgH4z zZ}zYJd>w@l~;Czx6lg5dz9=Ge?wCB-b+}Au(Liuk0g=~1@F3D{gmYhVwy6I}I zD)kvleD`!X$6d#wt20+*eku2*dgg4uJ6;x&NDE(l$6?W2YfWlEr7!icGcnyTtRRg|d5%{%r1FFmulY zkprWeU37i0kcyUjPCanLzvbK&=<(D z+AS(6nZ6@2c=Xe)XYBfyrS>w3Pw_Nu<5sKGueGgGKW`sw%k51B-+{@5-7Axc)1E%h z=Y@_%HH5ir{=w@HOUwZeriudEdAjW1w{YUL=-dvSYKdg6Zc3yHeW0#eyG~8qM}75l zS!=p^<_9Cn3Q=zt{jvC4PK5x^ev*bk;zot%Mj?uOon=+w$+8E zC`SUhD5hxMw;ZR*x^YhEenh1W=4W!HOlTgwVnCP-r*ePO-Nan=ypA4kVpR$_t5FgX zOMBZklP5Y%i#YkTO}R85xR9UhHBC--v#_;f*Y>L5kk|M{BDZ@O3D2`I9ro2d{rUPo z=^5`VsW&@c9l2x1j8%0wQmxH<8AdY_taSgr;XduPztu&(CCzni({>jrT)$pmXZLGF z?26S$-Cno)zO(1ej1&K}oNp$bOyUAps#k@wOFp_*`NWEw3j0wOgq*kiE0nzD($_p^ z)8LQv@%GNiW(!`&4tQiclnP|Jy|j}3X5kYRZjs7yXn6U-zIUMaTuQ;4e=P+0o5IHh zbdmY(g{jE+`|IYeT`Q2*xv#Nn_F@bAwGYfTYX^-rG+&7{o>BLjz5N zk|0q=1yCPHkm-W!CIQE$tIE3>$tC};#T*e5blSRXvz)6}9j6WU4{Q6kD>J zQ}0__YoKf|%`JF5#8ntqO^+*7q7Y(Eb0juCcG0cAcoNC>7W8+mIu^D#kPb5ThwfuV zZcE|~q3F#&m&%-T+i5Ye-?k_?DNVqd75D`et&+Ty%(z(?GGX%i4QE(UeATfqsUAgf z)`E3XoopGte(dEW_g6KXg_?IFkozIkp88$aCN(p{50Bu75n;Rdq|JvIs0u||Cl$X? zQ&Pk0{^laB<~!LLyv06;jsgQCEB5A$$lfxUE7vD98CqRDJJ+sPliG$#9l-*zGA8@E z`=--%;afu#n$L?nO=8I~7xEZdB!{B7QqA_e@50Xe-eQ+u%MS)*PK;9>DqlL;o0~24 z=Svpbapeqbk~;ZQHA>-NOC}UK(K=vkBUdk#SZ7eKbQh#%-Cd3gY_LObodWr0(?H@_nlqW_wU4T(C2&({b!o9hw^%fGHrw^=HEmETj8%RY zg~!amH)N5RU+g|ybzkQ=+tl6{G1lqRUUwzF$5SgngY5mB8Sj}u>Dh1(k7Mxxb`>cu zqH>}jbynlb8DP%Y1Y&N~scNsV5|+fLQd;W3Zz>z94J-8Z_iM!U99&$Otj(lrVsh3*! ze!5cr#qso?{z@`yh0O2Y(fwVSD8g0VO4qCK4%e$MC8ooR+-h`>)#xVj-$d5HIBg2% zua5*6NMHEP56RU|*6=TKkx%vWD|{}_Z-SZ3R`}3-4_Vp1{9;Hrk)4hPqOMjlDUUOS zU587B?OQTbyEt-=IQWdkB*iszDWm@quiw?LcbCu@zMbbXkzb)z^86W%(i2Z(?W62G zp}wx1g3{faGk0m(3PvE=R$NMohqh|DHCbk@1A@5IMU}2$M7bu8ce3<$SJ-GrPG#VS zhIlF0evGsx5-IK$$o7BM9hh!pL?OB#y2J_hh}eZl?b0H9nIw{LWtqJ@L@~hp1#s>t zRrWWr+s?9~%zA5WVfS(rd)ywey&jmt32fWSwdu7l+YmY)ARVo+(HdnU)3k8Cr#QUg z1mB!jAXgT38D?ZxJ8i%GIEhn%AGSS~*IxwTPmfMkZgKw&tz zR@5cCCohDTVDM2=_wGp&ZgURYuPH?YSiVGxmxNN=_1Ub_>a62<6!aNV2^k*3YPfpW^l(HteO2`w(gv~i#FUN|q04|BYF+Dw?vruEv4E<5-_8|ko-49XTnZ(#FRgH_Ld)pqn zGvxL%(M4MzQ&pCgkJl`y3$wj1YxImFuQJD6r!=7a2hCXC-(gBy1r7=FOG#QOfW1Y{ zP4g7CBt)5hx=qFFm@#hU#QeAk&r{Y2bDAW+1vMoV_%-xhyrm%v#AArqt~})K z1FT95wr8rk!WR7t9_kAgNg2ple(c~ur~=2<$r+cr!ss~m_-%U(tovpK(l_6Ygfjk> z-@Q21!xfu-k$-b6Ki^`9rm;qfXVaUR(M+nJYn4tyHmcA+>_L0A!GMHRaLe2p_bsYd zbZ={&_KTigYhdQeKX@a>=Ij{SZ`h}@)hcaDXydcPDEKkK(e<^ywsvNc9hZ94KT5EV z{!gM-=h3?zvaq>1RyIzWV zf*`D6><2aa8!jDnPiN)>1*jxsO0J}HYw_W?XB-1to(6V(-NCSYi1}uV*Ra8{pD15i z$^xM<6bGv`+#S}*(0g!Z($hJD;5Q1m1 zV+_}ml86jHe4yds(WtMlkH&jMBQ7NLF(V@b_tB%wZ{NO2@Z3jzoh>LJ6+6MS(!ZA| zs1*AA=e~I*l#Gf8UmUNSEi^;7=9?P!>eorwEobXkmfw=UvRV3AQBe^U9-cm4tYJ1; zrmHP*3-$G~AOno!+tW(G;a@-~_-p?^(*dDPtQqatQ!8JFTX!Hu6|spAIer_fMkM@L8B>9o{y0jran z0nLkdgLUl={w&3dFHAgmc2*PZ$pSrZ95%~YRj@I5ram4^*NsD94gWGS0edw5vqwU6 z5}b?udbHw;>HYZ~qVOW%xBdo!NCuFh588e{n6i7s^@t=CiaK5db!1Fd39gzOM2l$X zDeZ-|ued`!X_4p6`~r%hNAoH(14Ep@-sCl0@R6+Zc{X1}#zwT?z4pPJ6`$yX){-h5 zjJ}hyLFUJ-9m*p%j9vu_!_NA=zqVyD;q^YJi!72we-vhT=-Bvy@KBpy#IQD=$IVui@)Dd!q^bqaM$QZuTfjyaQ(qL+Y!hgwa()6?I9LrqLq!O;+V6aeA78AF9c)0#@Wc*;Xpg(cNy<*Ekd9<5qD{VkQjDN1b);d8i}k5%xV?v=#P zoL_#m4{7@dR^6_n9Ri-H) z?Q$5)DO4p2wXsg9Kuq!r^(yulY!YW0Ukd{LB~t0cWhRcdTH)j~gN@;k(S6edhJw_t z?FxxZ4ei8#dsUwlN5$N?sfT^ATt3FD6LbhF+(bd9R$vpr+PvEYq(5e*BA zfnTC6dn2U~NJ8!LY=KfMfR>ZG-q)Xh{S4JQ7S}zVZW|Kh443(?*z<1Ul)K73o#heI zjo><^q@mE6cz^p{_D*7n^jzwGa_-^crh4p&)yJ1z$XWTA?2=9+u)Q4V~-Gn!4Qm41=klzi# zUzML{9G~%hI9RK+6Mc*g9#+S19=3=0AfwdCyTnvTx2vAhM=x!r(MMF97-kG3UrDkq zSZXYplZLU78~aosfdbr zSRCDfQ^g18^4!0j(kbbJcyqbW-p7%jXM%t>N|0Qal(-olpSi7D@py#lB}QIS4@pQ$s*pBNPLm)?1kP^CoaJbu(tHuvp>l{} zC3J|e)ul?2NBNs=oWfLCJe!?Jx&)uJn9&yG*>+iEN5%iKDj#jt3yGl`g^nWiEnVIH zin92E>fvj5CR&=5AJ3{n!`vkELubux%kF9(XEr4MDDdUb*4XcnUu7FVOiLG5C~B)Na%i`t zK2{iAs}?rQR8UvXwKSQcTZLX4L4qIXo_wc!Ck7n$ESrKzTs-h^C=UrGvg zO6rJW#Q6w>-1ZE_`;~wbvj3yRb?ZNT`QpV}O6jD$0@cNv;HRvRkkJ3V(&pt+85$ZY zDbXEx7ZuS73kxg#UkmxCfPf*G!*&79fXu8FdpsM$FCav}kL%C-O27Ix z`C~uL0kr4Hx-cQ0(<-Gug|ASz-OnYP4-w#b|aj%Ah(q8`})j5b4SDrGBqNPTjJcS?R5}^bJy|{kB?QY^5@4x zjAWUu6LJ^_7=JF?C~ZVxJ;Dp^4tz>ZPlKo*x^07z^Vvy4T|jJ_Deu6cymBVXj>jDz zACgKvVh?T~p&wK&9TA=1>W7zf#Y=-$Fiq=9@!x55O;R$FQ8xzRvWmi<_i)-^98mw6 zBYGzaD-u75c)mr>w>!wckoQHa(2=ybPH=d$4Z-v3EwNn+@#2(lI!UUVql$mp7n%oS z_+Gaabs$t2zpwjvNmy$SFWZ(h=P_q%^uq-(G1bLK>xbgbQ=l;JStujeXw#rr>7ddN2eG^(w zoJ@{j-Ocy!fcM?+f9I+wPdY`(wDm55-XvS>ecG*F9`a&RG7AEO)Yd#D(Jdw=nCGKA z_aM@Fp!aH($?}XZp;ajri=eA8wod%QABtwZHF?bt-ZU^D7y4pSD-JFJW!cPM)1tHr%ER6*q|xQFeIk6<>CW>4k+Rp#K{Eln^*tGaPsG9D*~WyhZ;>S`_OI2 zVa5pD_je9-g}^B6kA7Q{CxqTKrt(dVob4?c6>ue{+J_x>Y)mQ&;#am(GvXu*45*m_ zJc0KNJ)pQ&y{oX5rRNBYZz=SFscfz{&Pz}i^3=v9Tos4q{Lk{6AwqCWFB(DgC9cSX zO1sd0Z7y2zifNZn7n5(NgOFEZQt@UF>s3s1ztUG@Afzn##JIKXoYBeGi6y$NRwi^6_- zo_{=W>uxK30V5<17oBdBOFd(>u6D@8@m=rY+god{oJgh@z<*m`=BDwVN8|)nGs?E3 z?OXY2-$Ogc{-G&aqvDxvt;nB2_!?gJ)6?kJ;Cx1hKbiL2Q32c`HnAbkEVAV1s#{yY zznwueLIi#-;(TLJblTIk#UYUf7~yrKK?^LZ1;Mju^mCpYKmCw6J1FEceeXz@4MgEp z05JR}c-i?+yg64rjW;jmZ=8mqB)_v_mHl;&wi|L?`JXjm=&XqAkET_zU+uxuYIdJO zAbO%{dwP3E9454KL3vX5{MW~)xD+*3_1%Oe@JgAf$TCjEiDY*feYx`T_MfP~g*M53 zN#Ob->^{+}Gyv+vudG`UcIOAWC{P>>Eg7k(#KObFVY@XmxOjNkGnNe?M&vR@qOEVu z+wA$~d>)boasWnzA> zfOZTS<~Y{qB!fPb2t*7i%>r>$o5KdYu2bo!SwR zm{>^uF2=Y!f;=J%IA*J#XMc3gX`vX@)O_Kf$NT|>tyF`-#jHg$H#KlZ`{0(R;&kXe z(JKafHj7Spb~HXOvKtMgjO|QSR=@vp1A4I|9dLs5Cy|9>q!FT1 zF|Q2s?qlOG|6;0_>-lz}wnpa;G7;vJFdn^c4y@W8rx= z=QLewl?vpU+-kE4V7dc?z*z^r&PEVpv#hOc1>$tK5YP$Jjlp!oz(U?(j$Abzr~3LJ z7{{jiW*0hjMa{teEH&?$na$Yvt4#4o7Umu zEjZU25u>1}a3{DcV#Gj7t3j<>-2V?{Mj=4A?D_UhmR{%f4afn``atT$`Qfs|c5&^N zFTQr!yZ5Sej{)P8x<2m`I7z*}6g3+!k^@W2e?$<0`}lFrP^Rd17G-X`wcx8W&uf+1S=%5A$+)z;_za5YbyG$a)rbSrp9M_pJ#YtZJsGw5Fkgkt z`;TG?&o>pqTVG?x{N_F1_`M(e^THwJIUEu7*DWtoe~^i-FWZ@-Qc_Aj^d)Q#cwSY` z30|sKo0@=K=C)q+LPtYZ78$$wjhj1EY~&QRjQkf)rcK;$E2G5BOU20I;C0jeLn z&5{ti*|;QFJ|6e@Pk^Bi`n!aO_u@d^em;L^9NeaA&(? z_=ux_L{#`B3b7k*ss9m@mx9KhS#IZpG(CNNcGnZ*WC724gvaaGUVb>FB>;~4QU!GA z)vFG4qvr7e{x~f_Ri>t<5b#n@i`eh4oc5ADjuRKqF$TtXA3wu?*3Q*8$2al2D0j`` zfnE_3z1#RFm$60BxlAS?pu^aB@b7euMPXke=M0L0fkE2sbZ2O`-mXyVs7)^DF?|)t z^WDjE!SeEQ#}wOm>$e12isXTiUJF#KSI^4aFmbA7_8fa%TSk=JBkQkbjB> zKT!A~=z=lHW4rQ++i9;zJd%Q1KwtrJCB-?Hh0fP@KWx*nf@qwVMXpY>HvSxzvw7$S z0c7g<+40fQ2>^w{cd-oIwku)*yZ<}s;w_NZ12DkUa2z2bzV&jG=O=qWPdSNZCS~f4 z&gIk9X1SmR*meW?t!!#qaG!)XPv;sj!5`dz1|TZu=I#3%Q%0#uyVKRh`}<&(;Fpo5 zjvzjFb@l&2*XoDS%^FkX(pC`H{rxjskniB@eHaL)*B2KTgsdNeZ($Q=1>rNQFYFIx z`k(I26;dnYPyqz=e~{1xpU^3d)piwEQ&WSjr??gE>ohvc`P{-Dj+EgyQTdXQ%#&@{ zn`PKrWjho!UaP@wo;^?Rs$#eST*<#)g2-sjss%7(`U+IW*6i0h;2Ok1@k`NA2iI4cvD*1v!BVB{F#~?sJTpA-zHeJ`^jf%GQzQ-{OCURH|i^}k(e`>i> z;&vTH#5<8SDT_+%(L10G%Ebc0K+I?3%F!m%SE3p7g?whsgEQs|}8$V+e zGV0A!xL~A-pwX6nvc_U&v`~dntIqlhV!n@ap$JFdQkIz8{y^8@N`Ggvd}}y6h{Sc{ zITRpoL{_fTj_lWsA%?TkYaceZd`0Va3X}dvN>6A&mdGTYiaa2b&^iLL=*3gHvQHRVL4Vqe6qz zzH%4|Ulg5*0X6@lgMLkuwvQ5_fP1vo&K5%-Fq)JC?(e6+dly252l$ihO^{DwK*Ame zhCdT8P%4bkcK(4`tlgvzN)CT$zW~tAH!E@Y2X(ebsZstE(p8C;K=ew3QJL%pMe8A` zM&B1fF(8I$x?>vWd3Bsh$m?8&g@r{X4x(*5LpX>{x9u-Ay31%8VbvIVh2)H{vibB{ z>ReyIzMlX6n|i#CFQ>Q#8GV+YpYOVv9a}W>{P}alK|78EC{9SG0@EyBB|IJ{S3a-~ zh|c?6z>mh8AzrpW_u%XCfPhtOYo1O^^A&2}a~qWO6J5pk+|+>W5*J0B#O>sUMu2^r zf2bgu?uT?OuW|@RjmpXE!iB%jND^a0$kB0x8ji#0epcW;_J* zEeftH#ieb$L~eqZaMc)=V20wFmNhC2Bi;=Ay*V8b#r!CiY$VpiZ-}4*2WRLBq%7uO zN;v%IX(ifCG~!tI?u`cG(TB$eIldX@TktF;=5bW?kOW3*zx~}i z$x^F6x(O*rkEE2L;pf*DxIFM7%LjzU73{%SWPT8h4)T<{+BTfwtX`*9+q$V2Qyjo~ zqpk4a;o)?HQ)yd!dm)pU+f1$1L}$oT2S6H=d0phekp;KQQI>QHZ~jQGOyL`!Tc(3) z-feAdXfCqtdA06|OG;Y$`SU-i9bj_{9-9F+1KLH1A`N;$eU~RAGK8J(5PlO9H!@ zLAm0U=j0^_sOc(`NHn~{wEgcH-Imc<X+V*TIIr8oa!iwg3yg_Z4-OnN2v zl+&`xl9HUH{^w0Jg zg6jF2{RjZL$42SQrJ{C>&}0p)oAafx}{}!OJu)>^?LLm3yX9JEx?J zYc^Gp4TzHA96uP_139x0vpwm5pLp2H;~0E4#D6>9D8(kewQe;=gU#d88La4Cu1xAU za=)cCH^sF;^3FYR)6u-}6xS{4)s+?F`9>Gm6=J)%MFVh8Eq3sEvIEjWvg&ZV8!xqo zwb8`w46bM5@^t+#5h0oU1(MAg<`>==kZ2!JX%%l?U!Ap7+i%KmJIc#PkhmYbAr(<% z&9;!PY__x&e1vVvn)h|!a!aLUcw;EDc!t#dz#Aknd9fBP^s3(eB(H10YN1&RB!+x% z41IKX_>U9hc4>=t7~g3e|MjIEzy(RLdo*^#ZIPfUG68*;=}1lpylFiZgyDG6;WSW2 zUaxYOw*4hcIweD@q%%Adp&YoGDeJSE95Id)!Evu5m7fMk7rcU7aOx3JjMwD)0E-Xo zR7y05^uzc*%vla+1!#L*7^3YqOzj@uYA-CF5pNNb_aaYIOikvnNKh`(%=fZt9=aQ` zM2!Ec$sGtFYxz9{a;3Ve#SRFo6=FhvqBOUuoZfKv+Tb`&mFB3X9!0Am{afk8Ofz9p9~; zcP$(yQ7_ffpzc$?JHnFNE&Icj?3ehn@sQs}3N%OXy+<;}{r>4YV0hQuFA5CYG3)hx&BuwwUNSqfjN=YdNbhZ|BVCy6%dzz)3`)B@=G~Us z2@C`e;yCrXNWUv|lhN}c2ta<1l5ZmYZX!aBz zA3weex}Ys10i;?s(RKi37Pmu*1tpnmxLncy(Va6uZ;FOJW?0m^6*f^)jAoZQo~Y`p zlUxC6Hnu9s)KbZtx9$!0aq94R&S0(srD`8^%0Km)I6}0)6&_JYmNkPD_Huc7d752S z9NuU2TCVirx&*#vl9As&Ki<{KT3*o6h$O2wvz;P*sMSavM_h;a;dcz$H?9ktVeDl47S0mbJtWSxNF zz!$EsCeYHW>@nIKvOxWtqs@i|{{vxqgf`cx#%iGiptDA;f`S4bF0P_s7iG9j-!Db5 z8(WGkuP==S%FoCs!w9{!nZnr-6~8CW4K8|wy}*E^tpPpyAWac;29Qd$*y^zcw1leW z5g3x!n}q2qM#HS*F9IU4m_Lq;y}`hLLAT3Sd8q}E|iSo>)5+~lg(JMRdiQO z2jq6jLgiG^2;D~BZGDO6{-tQSOW?PXqgv~E*06A4ZnK_{@+~fgOUmz_xV-i5`;a|N z7}w<0|%kLk@~{w9oH3(x%az)58D=HRBV2Vx$tX zQC)m-F)R!S2#%lmuyqs`OD_IcE$U(9lFcF!qkIDGLN( zL0_5f@O1U?UB*drRtC&lrlDC4(~eUe+savFFIxdz)c@O6vtqE z=95gMBKoBiI+hI`8V6AL{urufB2Boe6g0;^NPN-LTVIHPYrY%0R&;M zE#E(DS4W=&c<6yDI6eVnu%UJwft_~aq_HTW&WxrY`%5H1;+2w;Tqm@GiB@6U_Uc8u z!gOW?0A&WG4SXezg2v)u*co7SGsV=*6F3YT;ApC-6hx65y*SXhX+Hj$ZF(smV0-|V zT?uO4^!f^=l>18K{R{Tz;o&u0|4ZQ>;RnbI)UwDNnN-U&55R`d-RsKAioC#NsY+>z z$3?G>daXq+E^A>jkCVENsHiBC=^;q?+yD6%-3On0gE~V^N!bPC1Hv7t$g-M)w88%- zj!PrIC$PT*Rdy7}V8#2sA3vfyRCS;zfC8buwmdCOT;sH_P0R^E3Nl4_d(#ccC!2Qob%IPvOsmfd{EFz1s_E2`kL-WlVoZ<$D?X`BX zo;B~=SwN#D2?+l0K*qcJ2767fsyH|qPk=e@nsRn1w0EPj$^YC1@WX}=iISrEuVav{ z%Ew)3trTut9{@|n?d{1)RbM|p1QQ|9zI&k zDqz3yxf!{~gX4x2@$hH{P;NLE8Wwhj7WdC%JN}$<-B=bc9s8};ic3dQR4*H68H-Z^Pes?(w^=y&fBVMC(_)K!@6YM?`dOe+7+ zH5KfMAff+cjW8S19xiGuS7 z=UiS=gqPdpMn$|R)-r=`V~C5A^;t4P2iet8ZYQ-Gjfl>tR-?n&@9>^J)iBXTGkp*d zJv}`Uij$1rW4@LpOB4WpU^-Efj6Pawy?k8A5pzbODBFmu+U!0eR_eUsLLP?@Ypo-j{^UIcSa;WS{OPIh_9f#F?5xO%{`X>#A z;?#J!>;rU?cvhpLnGb~z!LsNACz`F3__uWNN}$YnJuh!aengMYfEEKE(Na+j{%H3v zo*4t5yohHDXV!fia3@$#ioDnjTy)9J1^>@u$*j4qdIUJ$R_=)L+HO2n1%@4q*;9Ua8=#3&>UzQ-%%%w<}P)8y0C zoC$!c4H~B6BLd9}#Pw9eejQEkb=b0%A68tT@qKGqkv-x5*_YKs#$twh(e)2oV$?2r zdt%fB&_|71M!0SY89sVP_H*cCSFW zI3a|l{Cx08X<|i|~FVVeMHjtymBYb>7=R#<(90-Aw;bbv-*?(?^ zKnxyA-Gh|rQwwA2Cu;n5hhn-;ZO5d{w>5*EnAZKQlV>Rk$>je6o zEa;~#R3AVfr`{)+pYIO?w!%6HwuQ%WZJ}V% z56{USpo`++;TZ;t1BK^^XBhuAH+mTrUO>N^EC)?LL6>kKZn-Y`xY3A+Uv2H)XrAso zpH_o zxb9_a$pgnffni~s{p?mFn(c&ELs?Jd7w_k5%)Tu6tf*+~BqOc;*R2m0kF4)j#FBM_ zw%UrQ0R}T&`4-MmhzapZsu3GzisxX=S{d!IA8LHf?_?TYxys0y!zEf!pjjH4*OzL(|lh6!hvicSW9e`>vWd9~(0| znNmFv-2^zq+=?ARGZXudAdqoux$eFoBq=exEFuw~mmBLs{ZiOuqHHuQlxC5Ek2zXY z6a!Kb+y(H8*v@`MXC%g>Y7{6t^6X6WuG{od7kYtfq;;Go`|3?fv;Bkw5rAhH5K&T4 zOlSFl6z>J_UsyVwbsqw;edq=@~t@+thXIINjJc0uJ*yAhQ_-6B7}g z079>_-*VmDe6?)WF&i3A#>K;JX1_cXL$i=!j`~#2=XPp5l;L)5$F2AE?`V1rj;?J` zD09osK1X_WR09Dzs$ofZH=OH)(u}}@zHC!K(7Z(@bnro;eJ?;Ds^)<50? zrGHa;m>61*>~%9!f~%}Pj4nRpsOTG)3XXEq!DY}?-ET%(hE4#LKw5YI?la;Y5KiBo z|BT7-uT0UFFEcMGKr2iA;>AVpjKxL*@vA{JDj1 zR57^4M^Kpfw1KOx&_|&B>FGd~d>=gw9sx(aV+i=R5=e?=&B4%T%XR50g6uRC-(XfR zo|;d66{|l3vW`DE^GeLzz6tsK=)b(cI7Op`$iw9?dmJnh+@fZg>iMfE>|k6H39&&U zaTFOIqqb&xdO8JmFmX6f)$w;}ee(h8d)w)pz9=#>&(jvc<|Hc|XKW-}hK5`25_t3Ft_j zlfAv~z!6e!cs20!oggwLm8~vOhge(+5>j9Hz0nsYhVap_FdAglD0Ofb2+g99k-*M5>;+ctOR7knVcci2>uo^o~wvXVec{Tk8r{==kR&U)fM_%QKLJ(t5?$*;l?oKQ4ct#QG@5i8GbhgkAXzx7ocKzUw`OY0S>mcIqC&(?{S)PRx-csM|a zuk)ZVOd3g(LZn}l((f=eMD zB?h^v3b@*v9sy4)D=RK8HLL4Tu*uk@{Idk0l9>TrS6Kr%K_*Z=XSnrfz|Obca6iU>($Z_!2` zLRqsbDqCbrc1?ShL@2Z(*=4EhnzFShvXqoU_Q)Q>?{z&*b3WhSALpEzIn#6B_xpao zujRE|xAC)^58^Le{`=v>#Zl55`)(|aI;gMcX>@W^Y{AA@;UkGgkL0>l#@Zde?q&iB zuCUzLhr(umZ*Q-j2?CuhQUU9o@-4eXd1?KjB^D@kWs;v3J}oH`-k_lHe(+HlQ@YGs z@XTq;qP3#$!2>wjz1+=Qq3B~w(4$1ELFQdkkIpqoDRUWq(*KJ%t0^EZ^Niqhy8QAjl>8_*iGD?n@ygi9|Tok$rFM%O*-t*++mfcVbSPa|9(nJQ2d$%2Yj;)XVw&c=XY0P~F1#{y`;~!8wdpu3sfh>p`p!-!dx*NgSgG zp7i`U4C@SWxf1L3lCR1fZHN`oO%%BKZ6rMRc-YKYYnCm0ztnn-aFjm!h>Y()*gOJi zz>W(=Y#y2Tol)-jD}0sDvI0r4K6s#NyYG+wbFfF+=?4UQ0q~2IusADm+|jWrt!OF{ zl*!ibbKFLG5?_o196OMakSEQ%22haY!14sZt@nVKau5Tn_Uq8|U7`(=v+WsM%96#4 zvpj}v-m_cGA`Yp-A}IR$^=!L$lC^1OieIBL2DbZNS3nGyh0Z7rFUZ2KQ?T?DFTeDm zXG{H4fzhqG{Hu~FLrLamd<(h+5wpU4i760nNB65&f&{q^;P)si_W|5Z1T)atv_C#b z=l&gcf7h>(XXd5!<@FVA3|i?uw9miy+~wflTfHChqGCNy1T19~-}vtWbF1hAcg%`> zO8W=CJa?TOcYV(uy7PG7M=?c3#Sb~oWpc9K<1S+p6G!a-4i4UvCaoSLHSMA{IPb*_ z;Mo%I%JYGyb6lSWbX8aAJrU6V?ei0Ny2g6C#$~gQYN2qALwSCr>@s1ddYqAOohBIc&0N)-Wz`kz(UbXOb zpCzEE&D((^vpcub|BP1VnTj%`Ij718>lut-chn&@H@0{RFcC0opdHc8b+P8wKV$$^ z1#~3^D0c&$!TVJISa+P`uKmr#z>my^x0;Dd+EcF|_0`%Q|941Uo=$v_4Ric{3}`Z~ z9sd+4pB0FEd+~`NmC7g#xm)o2hIYO9ZxIoZXUjFONh+cJeE9YU+JySm%qNx&`N1LD z%if?U9BWKas_s2-_vL(HdG9K7g_j5(H;Bh}x{N>m?D6C6Ay=+kAv~kHl-)oNY|9PL zUU`zl$w5iIg@|(v4UNOE+}89`Jy-w3s_F3gc@L~3eq2pZa19uonyS8}s9IU+)}4N7 zSLre{uLC@rvXU-JvrWP7!AgBBQEv_If{7T*dIqzd%=& zbSNCV>*xh7p*Ij{ndDNZwinl8pyXKI0@RHJVj>0^mf>yw>gRR8rJ7sxnAMt@D&OfCDLg3^iJUAxR=!k38yjA$Gb`&*QZAJD)pE-I?uK&CO5&SPoG>;A1ES?CGa}bBxnnT zvVF@GvDzK%Xq;*#KU;^bym~WsaXAY1$xdGBzfLab{aSm$ z=*Nxj`TLN(NN5G9z|!{PH{U1Oz26lqHs?8Wzt5@RB z2TRJzl5i)v9>a-_y%2*$q@_7L==zPpC%WT`&vD*M4@RRP4uKyI0q=0|Ovn z5XMf^8fa@n?NM3hMFbN_r$YfynJN|h7M2`XR}kELb4&eL;XcN4zx)qPF3 ztR#5NSY!&W7TmTHq)jgdywI8^6i!chS{P>@erYGG1bLSJc`UXy@-k!FT~_++1uC@{ zg4e+Q;8i;VZniy?m5`9YyOx4{P1@mO?PQj;?WqFTYcJIs3S}62(gRktTl4Qp)&YYwG^*oy<$x%Z!hdvOX9v z4Fc5$%!*9%+H3@oU5e8`G9^;A;x4us9n-#W=D>V*cd_c_muwX(4>~u!3JDAVWCvi- zb9%}9L|xG>(?13c5=BKsRDr$AGMi7IK79{DJcCF!ywzVAi{H8!oFVt8s3t|-Mm<+9 z80u>>167`RKxwoG>_3XATnV3!+vjMVAb~Nk3%s>rw0iA=0w<>_ReKg1VNGafX8PqK_Xxj(`;fi;>28GP5{(JU(9i-xdkp^3N)927@W?NP) zwlFU6aP|JtU&dk5@?vvENqdq*zJSrD>#Nhmkxl5ypGA9hdb zj=vUs>0;sNU?L?1C!2$%0i5FyAO$++IDN@F{?#xiH}|mhR)CgHdewY! z_NFIPBiBSOD{pTWSIs+%zhCOHKT+{|8}8F!8|sLGtWj(2u$nTffZ9@KY|DD%N9iQlMP|3`gyuH*@?TVcV(%~* zNmQA;2S-Fi=%ty8;gT)JMLv`0S0Z@~6j!aubEEjJyP?c+>8w7SmTmn;u;AN2^C<^hY0Njw zaf$CY5Knvn!i+huFq+0Z&?-9S_k2ZLe#`yyOUopm`*y4N6TCNfrUY^mfKUJ`UH;u=twl2z zFIhtUY9QxEWw+kOit1=6MK-txKmZp*P`ZDOXVHHUS$dy&jzXT{Au;DQ0sj5j(*I4_h_oWY-K$hD6P%S2j4Z%V2o+~ zm$&^)jy-Ti9~@o((7`Nh?Ya`th2LUEMjM0gMOBDX+i=oE1qs~uGL?(kzc1TFIQyw zlB46z)o~X^_ip=Q-z1~q?&&EiC8g8Lx!GqP!!IB@OiCpoYT1pD!x!3S59ECJuTDLH zzdyqp-lZAujv`|riEziT)Yr2PJek8Tto2mx;nDXpwFu>aL9a#fqjQAbM-Ns9N7Pt_ znTD!-ze3EE?&KHUr_V)fukquOKvt?@RuNb;t<$|hU;l%9$8D*;vBp*ID=+=w!HR(M znhI0oL&k-3PToKCoFkJ9`qj-U|68{Ybn3?TL%ucywOS$~TxkyCVuL*~ zNFQefshQuNn)}6NJWI+ov9(<&+v@TUX`3r9&8K-+zSs2*%PCN4Q)!rb!X~1h8XflW z4+ftifcu~Lx8DaRtLj*0wcm_cQs%`BqxzYQ^vgi@&?l&pVyR*b?YkBVO1&>{-?p|X z4V_vtYXZvjj98zk_LZTQ=i+oHGZGh?DXe4Kbky$MH0Nvir-j{ru(9di-0B@LRAK_z zL2Z`x8y%prLqhkocQ+I%4$dF>DthMhRkO927;e8eAp9pE@*C?tYWv52c(NyInU>S| zoyRVb$n({=Ry2a?zp#rn7d2 zgo|w~+RxZl_zSUPI8j5y*a>w>Hlz=sWolxoD&;i=v+X}#$#u=tv!2(m$dX52*g(l7 z$tAnN(ApsHcnYuY4@c6jKGe2*1WTDK#n!F{=}>8M=bzntkLIFOEyQ6=HGhnO`V!s{#w{F!!CuvF=`fOIdemp?7t2 zN!y2fYwZCaHV!G*37s{<%#ha4UAGHe#|>SkvZ5iB#xd4YQ8|yexW^QebPCXlCIFI( zQgqbw@fC@z)tJd>)n3JF*NIWtmP%lC@ZEFkO(drU=PQnMu$qPqP0QIvR;<%MqVJ#T zScG%e1$9l$E5+$#AZ?-bB6`X9tl!+FzNvfuqdYYqpSG{gRcU5*^|KhQ?nl-v(CXT~ z+Z|O6?}{^C>wjX(yLYp*${HfI%-adgF22*Nx$f%GH+NeLq7b943{v1-Oijx)gX1Bs)ih12tl?r0O8!R^JQ+_t0Omsdr^0GzS-^L<3q?tn?rBC zX5=Q>+D?UiTIE`u*S*;)Y%LFDb}?xihOakCL|U;$funk&Sg;M1vqwvyELv(`_O*NY z-rIfz3Wr}BKh&*v{j!wMsqVDItA;kABW$kqVzMA7?IN&Q`2S1lH>d&*evoPsR~56- zdrX(<-`99qFQpoQL~C2yT{^*d%Dr$4)ubQT2}JDMW7+tsVwH+bs|{^xRT~~jj9uPy z7%@Mb1a_}q?}ZA*2H^L_z(DU$*(knPcNed@5?Zxu1$C#MqOXN|vLXGzso2(=(XN9- zI_aUIJlb~4ee`v{aCDuJQkhuXt-{o5nm#&v2mdU_U#mgpRfBo}vl5F+EApGHPQ#mzbaO#W#81r=aW1 znK<7M_x44OKb~t-Xn6tFzksaAlO)(^(%KuW!M6Ms^gJa`pRN@Y zR9+@-T7z44L94l9tJi)~Xd~lqls1FyM+zDQz$&__so_mhKfvOX9OvulM_PIs;uSwuev${oR|^Y4L!ci@gI*&!-s-m500Acy?@Y2@{X-OdpLQ3 zApcd15I3uXqbeW`?`_MmDckzgYqiC}0_T$SYabp|Ix0C>nCIo?RdZLJ8+EfX(3|jc z=XP@(dG;1@q89%Yj)`iy`bUlyWLrg9SW&|xCCT9P<^Pw5VYu@G!q}F(b*yzs2^bia z3dJvDuX^5jJbk>%U2~p;LxRTjxgXm_cMWIhrAiaOlvMs4lCGCW(^Ug5?{wg^)cMu9y|_PP<^}v8y+{wQUB-Iwlbx z6uNa&jo--uSlIKRUA7*TXKkF?ve3XMbKxIDH-6Y%gNu_9?E7E4?M1yWpSqd%a2W9s z0ZlM$`oA=}yN45XkTQ|QdMU^&&xZ;wC|&G`Qk=e$l$6xi*x1_DWfNAgF2e?Lk9oiU z{`%|EsAy_6mI!IQ7-^)X?VJB!y;<%?d4abBHFKnbYodhx`v)nB`f2vpOU8#cCSCX} zXYPlWm#nQOLy5;BzyEAVNQeLvl_-*3_~mW)f1{h0RZ`&+tX@_;iv{&H5%6>3mb`OY zM{|j%;%97Qxo)w#?4;KAh#Y0*l8e=w`u3-Vugi6A51RAm@>_6TaJJ7|y7m@|{%5aV zy=v~RDhDph&#cxDDOJsNZ?Z*Y%=+b&)w@C|ZvptHTbJ-}zzftHNq)5-u9d=`a_t2Ma%hl(FU$cx{tO*HYzKP&av>KXOEGz#L;cEbX?d_jTpQP1%`2OSN{7 zrw&JW^lM00yx%nTeBsx|9Btwb0GS6klR_3RMJG`wfhUPSWmjpoZS}X$@_P8m(A7hq zhR!?;;pUbS4^E?{WQi~mCML`OhNh6 z3|97hD%<2`!Ltl_De$rT;FZ&o$$^bhR+HvZ&`W&DBwr0N2!_rU0=thIRnU;`j; zSTjrBP4aMKWhoWM|m1fNv+Ycd%n%|J8pY^O5 zVxEYCk%C*gyi5gq`%mCQksFT$N%R7Qg*EK(u5iN#TTHpT7$?)-7drLPf|@S$B~J5Zm;BQf$QGT z`{moy`~M#T-rK|(ja~wRB6-0aQ&03a6Hov>IFnm1oD10?oo$h-XP>`(h+&(RwBL0I zN6^zUDTm=(Oh>rO(BJ5waZV|0YxH(@l^@9vsMx-c>%)nx+Ip#aqQ#);6P1yvlS3ZU zO)w-cM?;)M(QP%D55B}k0NtiYr8 z>XVl*)z8dhM^QL?<#z;!?Aye2lRDZi^&h^OXdBrAj}*CNpwqEFR5!=zkZyujN$d0X@85R?s`JSreOdYu4qm>RDt%@(IJJX3O_Rmd4Syg1?SoOK zCA;g1_vlLhj;YVe%k-Va%qtQdLa;VAt{kJ zmvn{1#B741HB$3&!nY_53uQtWx(igMBavyvpL!%9L1{Z6hII`P{2_lt6N zZhF-tRT{$;lrbL3$y8B!4Hps7*lRw1P}!jc6f4W_U50T%1S9az=W_4^(F{veq==}i z-;A=Z+g+!Nw-|8t4EP#6#FyS)`)rRilf1)HQoX%T9H)M`TdWMixj8iM{j{_cf>{%S zOe@APDk2FxF45>=YE|Qj?+1J$ImTuIIGIJjiQjBGlxsI{Hpa1)E|sr(s&eh0Z^wrB zHYs?g6dv}#YIVl+h+%GZ4+Mz8S7uxl-Du zMn!XT|7kFDLa5}UzTVWzvf9TkW~dV;8edSq2ge7fa4ZIOa+_gxLIdjSyLG>#H$8FU zk?8eL(UAqbX63m zAwg<2Kl82~c#D8=uN#=bnEQ)3I1bxs`3$zbocqE>6M=!oP9W5%grIg9Y7Ny)giy?; zF8LbxzXM^TGh2WA@6^wy^!pli(SR1<4A8h&BzDj4`%`bn!M_D6-c=d!a|dO0c~~Rh zR=vKx6Fkf2&_P0<2)G609-5mBvZIvbg^y3ojc-`ioC;hj(XHYk%xP_zZ~trVF&*(G)$83*orGEm<|QQ;U9rmC&@b5 z1uB=G`jGFg4L9m^JOY$4P%#PjmmfZukQN85+s(ev-!5$)IM3_ex@gPbi;aTqNRx?0 z(^KRC8HYeL8>Y0-)7q*=5A3QyO$Inljt>JR5|y^D-X&)AKnK$7lyP1b$0E6nfb0E> zh^}h~66f0SdX8rpe{yDxrgMs$t}3xsAAy2!ul>alIQP#+MO85!D2R$C|`x>;th25cfbhq=b6j z=TiY8#E_4yVFm>SB|^`Hu$_v3i45W*`|j)tDq!P_`~5$>y_KZ1!LO+F#oI4^q;XwA z&%~jj(z?`fXWCgCoz%;^^=fFs)w`OCikRa<LZKytYxuY^qf@FrbyKVHzF;E0p4b z?O@ty7)WQBzUgH&U4eOb zJ=tb+&Hq?L>LRG~kT(t>{PNvY8`FMW_pw}oRhPwCvV)yY@A4oF3kpG!Bvy=}?@ez#CutU}{6+B0hAvhJ`LVFPxd)ErGIRDw`{%fYtZ{c&<#aKiyLIb zqRsu@`E_o&W?%qdKf5+FYb3E}2Ir&f=(&T?!~ zMl*QL*mtl^UCbm`2ZpgQP!1S!W4`%#B6#u#C+3&O{V$oB?+hY6j=7O=)bcv7-szgJ z+F`M+yXD;nsR>_+;PiAfDSNF9+?5iM_@5#+hGP#mvV# z$|HFdG(hMiWvtD!9GXm#GU87jIG3NFF9rJ(>3AU(O(PrzMNtBP{Df5XJ$q^ZVGp%M zIV9qYQ=qAd!&6y9c#FZPFFrpzkhWSNTW=udj@H(#&y1=az;P{&a^r8hShV)& zAHhCs8@yp?JQsI&e%#^t?p{l=sTcj+DBcqf9K9g;NJ{P>UTG%Uc0Ay}4ASuf!U~)h#sq4e6`*YoSM%wk-b(Ot2Q=C;&gD zF~$d~*}J(TDA>lE{l%f8UjoF{7L!$I!`FmK!ds zhuHTu67?#mpsD&KQ5o7m++qe4=D{;a#q?8>9DMWUO~-st^E82H_2At-2d;=3YRsse z^&)o~4;Q)FJ%geV_R)1njarAHq3OV#RAWE6yXY)@RCKw&oF87@2T4MiTgN;2OG-<* zTCf`L)4AS;B6E{@9@tbwmQ~eiq5y#WC#1g5agHaS;61Og0a9xXqx=!2=*9ko=l|p^ zC4!Sk+gDCfLYMZ+6_5bPymvl3&7JC6R?pe;dHCG(ipRp*qmUcwr4@`sK8p}ft2guA zQmd&*MoGYj00pCTVw3~z>My?FmR5~a&=oP#Ye?TNqFq|Y9@mHFhy}t?N77Z7V*BKx z`6XjxE?ZN}kZArIl;E<NO2> zr9P-VyZK$;ruNx#Aprral8fvptoEXxrYJ~$?N(kK8Ay?BQ8ZEaiu%cN#B;~g2&_LW zPt4mUC~|7~9*Ux#powXysym=;;8OI-M{lW~nu8F6sJk9b+?M{QOU5Avb%ElUTQ}Nw z*Lj>Pz?L{yY@`?2kPl4<6{r%0C;^cVYaTi@=}c&;sQR4Nxp>n>v%b)~VWiO+n=b0& zGVxS$hogXpiA&S96Ah0mJQ*aArI{GbdE0#+qDEP>W({WxYKbb`qqr~x-GUg+J0Jqf|LOrlKR|5lNoR&fv1QOocrGAnX`msS7?Ny{I& zNL(dSq+rosOD*dfZ_Hn2gI__TsGL|&K$ABZLP(wKhC1I2BcvW4+rkJTnwYB$@&$c_ zEW7;+2389R2~kW(Wu2) zxkouU^h8*7uf%#(;H()OVEZFbSY-JY88~~Yspf>ik@1km4w6v<>R6Va|6s|*LrFfL zQX!LGUMApSe)Q0@D^;Z3Ah`+9FKtZ11F2}`q>j@@WjS(VB8q1kK!PsmsE%Xr|0;Wu zwlg-f*iBTo_rP|rd2NxAkx?6z5jNgWd@<^9*XE~x(ER7v_2!tb)hiWr^F;F>+n&-l~u1EoWbUVA($X~))N>+i{) z>A5d?zXZ+j#Hi1DJX{S%1L@S0f_7kVP#X=&5Jon2qIH+KS2NP4nz+6*Vxn?1bSX|_ zc{>YZ^*T+<**!iSYExg?n4N8_cJid2*xX0{f^(csfo`&aPMNxekM8X&!q%H0%~737 z1~~+I2v&yBufM%l9Zf=HO%fvC2+>oE)KHpc&QMx{iBSW- zwZL3e7HfAB~Txy|B%`c+yZwP9jIrkGMuIBRsYFV}OY&n7qV5>J&h3Ht1P_s{7TL#&F`8>ByOV{-$6q)ZwseQz;0=tLr-k{JbN7u8s{BYs z2Te#Pl{DB0)Z@!5e4Nl6gWE}LfBH6@+kJpphS6qr;pECB%X$Cr*I9J-q3xUg4zT!F zJB61#+Sv3|4kJf#)9caz9njD*wEQb)&zW;~+-Dl<%bGkl2i<#nw^I#?ux}Zos{J25 zSv-q%7%Q%IAIbXu`k=+;w{Gdi*G=HGKBkEfyQdWRpiJU#={L}}+Q8LF9SK6@mzEZb z0T1ABw7XFE+kXG{8Kd#D_Qh5FB8eHnf^^{4{qg@(H?>^!^8~af(6@9VgGb)!>G2YV zo*oKyI&ioc(A+SDg(CwVKq)EoKqRF@85{$KoU*n8&STlP8J6U?D7L%*$Nk8hBX=c6 z(z?XcR-4Ks|E`jP{<&0w`Dg1~a6&Xml7yhdW+32T`n{xS5&Ab8ng+k)9?(^HFkRDX zm_&IjBQ+zK#l#N!Lra1@Jf|05IUjC(=J@i0<&!jUBNEe?1DD+BhtH;niB1xav zFy5bNy}X+`S*2aO)^6Ca7rbAoEwsKgn*+@Wp&%G)`ee0j$glm((o!=H8#vnqvPc5v zfnrls>7{ZS=-VBNCJ)oEiWogezN>LP5vm?rbS6%2vM;wMgRlm6uZJ=y8?nA-$*$dM zZ|*Wv44EbVYL_;z2EO+4x~(x;gUF?aH%S2M1~r!X_Fr2oHg^{3-Eh`rN?{R#J<8Af z+qZ9&#DLHXdjl*$!FHvh8_F^dgagu9r0l=HdaU)XdWE`wadB%)hn4W^9fr9&UG4-~v_AFbx|MkbRD zV#73TloavK(!tY@9zC)`o2UTqAH;?hA*La*74RC`@Q!v^iFMYgFYcVb4gUcxIiD4k zuZTM8OHCJhvCh)PyrmBhC~Ygnwmu|j3JML!v?mIz4bn$E@kH1>#0iWu6Rk>l#AJ_F z-#!03@<3KfM@XVB}R*)jpWJ z8ZZ%1P}<&ZWKs+k#vQub*0aK1u?Uqqk}eR+7B)`C{h#wvo{!nCm2y*%W09MVTW?k? zZ`?c%sp-2zBbAH+5z03|<-ozWe@XG@%FLrz?S2Du`dYpt>{ErYAZfl#L901G8t0oMyd$ zmMB-H{;~huY_erln$VN4*iv-%%-dHDo7&y`y1HhFQwRhgomx?Qit+XP+$- zOS_OFXfyihgVS-B2d?sd?;v}+b>xP7>GD_TlRyW-ao{(3O*A1l)=VpU{-5)zVME+l z=w7pS*d${Y#TfYl5N5=@09GYB@o0t9$!JtD@J$@HI`|1QKt{hucVh;~E6$A^ZQqpy zukZ+R3a^r>o8i4NUc4gVveP{Iln&dv>Wlv&p!AYyD@(q7SK21x@wCIjQx9ONr=H?(ojusexSp$xyy-*No>)T}V5ki_T7z!6d~2`;ZVhn%v%TrUt)Br8vkzeWc^Sb}emfnjl02P`MOb z?lm{tkDc6Le#wf?(c9TO06~6QOe7K7`{msTgx$aZWF1!*Z+5daJFPZQ*|WoUdg%4) zwJJ8R`JRu8!x4k__#VhMB_RLQ-vqXUv0x1XCwv@kITthyUcQQcx>ck}NEbbg5MO+V zj3sC0H*Kyzgd$H+W7bvvvaj<+*TMu0#CR#%64{R@c7paObq2<-1y~J=l~fP{YlMW1 z`a@4{zQc-7Zmb1*z7~NS>FiK4&|z2jPO(7qG;X|KrneW!zB+W)Fk;ehZyK2bqO6(h zf>=;P6akzM-A~E?e0nj~(`(VN-K4#@qo(Ic0SQ_XKVzP<-dF$144;YBo4z~?dxKfP zE3bpIg2>@A%Nt=L*YHlf z-$>cN%y$}Oi$7B{bZj}0G@^7Iw~|PrB1pSH9%P*8J-5Hyp7)5i>1cgHh_b$9ZJ06IX71BSu85(SN=OBNEsuT6Y#g0!0SRgm9kp`#GHF#*rW zaPcfQD~!Jf5)#Q=@{jdvda1|cSTA)Amb#?b=LhC8NjP#9EAZU*zI+{FuN%`!BQb(B zzrf*RM;9){1uGDZ@CVeeMCkO+7o?>Q&jZZK59Jot)NdXhm?d?RGG;EUT~ArvbsJ@xXiQS}3krqXZ#FEjq+Bk{XGL zy?iQs!0qQtT)=vX)pRAASh-*G#%2SIpNhD!WQJQrRpFzrZqHW~V&!}%yUi$_?%26g z7p<0sBF49)=nVxl2x!Nm`E)ur>s3b2W4%giAl(Ei-N(x>B1itmZQEq*kD4_Oc4BV&gd~!*7AKB?)_kdN?W3i#^QQ? zPp2DnD#4o|Wd_74IAh(p=lh@S<2EQ$SoqG8#XPUc~C5cy0XqPp0Ifs+`R15R=$+vab6Tfcvrg;BrP z7qBKOWXB z)$n!Jn{ndfQQww>I~o1xNs%`Z3z!6^snda%J&f19b(_xKUfc(vI)AeLyeVSl**!)wtrS_?FhOUCY=u7re$bN|7hwC;4*B-3xB z?RER~IKcK`(-@HPs>BE68hsOi#+AfY1Si-!R!`6Q=-z$r&X>5-`Hx&ddHIDt|6StI zb^O&f!N33hn_5YW0yxNCM$5l>dLdY!hEk9^1=$!1Q3D7jKy?;K;ixDnD>tlz^8nG# z=weW%uHP!=P32vGnZNZbDk@sIa%(ae^#th3N~h305NDnMyzb)5p5ta~PefDP^y8iv z1!o+?uVCK%`EMXVaDh3MN$^Mwwkt-1T-(f<;f#5~G(#O*ry4+f3f^7&_!bi8eEpgN zussPJCUqc0$8JXR%eoz?*h^dLhH>41(ScV_M)zJ>8T)<@hE20CUVI1qw(aX%+riGI z^fwami5Xtju!3MkuU^p3-N4#Xj}}m5+Qy-JW$kTzKMk^#hPT~-^wCNZqP|4v$ycgJ z@HG=_fUNXe$Z5_lCV=FSluUr{?f@!vZ2-GaJ;R;J1CN2v1Q zTS5_!@y-g`>9c=w-a(?7#~l@qx@CZSFl2t<*8Ezc;&s#crXvNz$6H_a6rPR z37;3Vb5apLh@FO1zZyc0u<-Ek&TgOxvA|F;o_8-?!?8f=?_%5m$G5EN_Wpj4^${MH*Hd#F5=gLtf?O^ziISc6Z-Kt)*vQHb>67t3iR(`oBBDOXxOTQr$8yn&5P zF*?S!K*qiX-{ zP$(PRHV8S54IBdGgwfmY@GY#o7Iy>%lG%gq&>I^V8JzVhEM(3z$^78h$`B3}Nx{IN z@YSnhxqTNfL;n6dcB^-69?wTINZBIrG+<24idPr{rw5R@hJ-I}ZljyM*~*PwTrjt% zD-O+!QI9?VKFo932T{SE$QLJ%QDS8{UD!xf%D^qeS-^8w&Ye3aAS@=Pjw+)LZ%O^e z3watPjZ(3x2MMPH>j2Z$|yp%=hpLu_5$gnZH5|Pzh`sAP%68vBM3gc}S zZ`1SUEDsq%AhQ`Z1^pMLCg3Z=g#Um|F08A!kYeO>MXnM%u_N6Fr#( zJ6GORbZ9<(oR$6=0~c7yEduhFTQqQeKe>HT$WbMJL0kR-HbxRSJy4GAD~_0w6#^J+ zHDSKUT~PU!#tQejOuSphsi3Cdh5Yvo1_x|NvZj%)jpG&RlTb<1QKNmpt^Uaa+yqNx z0rbl)I_$nptw=3K9|M0BR6i0ghcRHlJXqya@LZy*a^3pulSlD^aX{Tsa+fV=Dl5F^ zG3R(aR7g%x;tV#tCV+Dz(G@_|G{6!_T0h(LCD;1^xQl`Fz}eFS262}1 zQ2L{SDpacu_euVzG45FfzubU zic+t8#yJ@fbKs%Ii}X-c(s&ap<|;zp#SzuI!72eYM2pvA<*O;?uMOYXLFKWG_}-B8{@)$rhiJ$5)XRircvy(`Mc zYFEs6vU2ShMqSS*j;>SzUJo$iwKQ#{S!d)6B{$Rr!_cW3MlahNtFkB%&IKyPu+?pv zPhZO%MbnHAPuxcHib-OwB4$%Vs>zU`hlj2Yc;TtdXZ}Lt0$A5_YUnk2sv~2zL}tnW6GG7q3yZLe13h$gu_61}-DKM#=-^(5wNXjB!NW4mOq(mrJlhw?&dYIKl1)oJh!p#1=E;F)+| zn&?(B4LN&H^akgk#=>${bf-heKDOAv94P^S!%RSu(@EPCT{-p}S|C*F6rf9{5D>mV zMp19-NjX~DI@e3};;UTmDuEsI_6xBmMSuB%1=(i52skKXKNDryFl_mhvECX1T_-AT zNxWnker5RIuP3Kl#e5$h?}7@A=11>|UT<4jU0D7Mnc>pIVu5*6Kd zhsGaHZZhP=Vp3AUO{HO}Kb* zL;1}BJ!Q-(6C2UQcY=vF0qCyEWJ*})@~B>nI9{|?>0#L7SB;JFtm=9uE4-N>qBD*@ z244df6rOybN)#|Y>R>)#`9Kyt1kF4eN824(;PmC0H9`$JAfWfQX?D5hJc8pxI6H9c zE0#pc)CMn;0UxgE-s)S!5C6tx(mJnyRX@ z;xbOXd~eQz<03I({g7lC_LMz+N-K&nXqWaxu3Pf+ybArixFs51Qcm2T0whR@?7FQ^@aS7$ z93k+OTG<|&L`h#8LR}ePWb$Rv2$|LND0mfym1eF zsE69YxVv{bUTpZe?(sj@{RPq$O{s@iC7^&MJIXsw`_(ZcKMK<*kcLRuXpshbhwLgP zqtVI+)G+H2+d z^UCe4E6?-8Z;(F~s3NB)e395@l?9?pxEUq2QYAqC%mwBSAHTWanA1$O(cW%U(u z3|7vXsRic?O}T8|&;&(#0tONaYJ@psOeP6OSwmFQ$j*;3W~6Wwo_IYlKnt=&oMSm?(rcc|#;uYKqA(*%%Q4X7-<_6}`JA{>hyQ+yP%C zAhXch_Xt*4z&JGc@1Isg>w}dcR|zUFqn;wv5%k$G^!d@FvaEo^n7flw!QNsBTjEe6 zQFZb*3bsu`E0@GSGX$~%ThlPAUT#mA!2s{%EnU8Rh0X@2Us?dGX3KCZv$sJAhTvDp zq;BCrU%0>)BViDB;2@pP+sL`pv6qS!2+(JO=u1u*sJ%}7{KXK#J&(rrXO<4Qvkt?t zz4pi}YV$!HqUd^;iOlc__2q+m$V{c5-;(PRO*OGxp+b3tB+_m|A9A=yH^opF8z<4U zAooJ3fuXSVt#yRkxZdA(dRd(lKnZ;KV;_1$$q~3w5-@Sj|9$M^T#Ttq!5{zVSnP)X zFDqj=8~e&ldKUu=2LG|CjV)J6_{YFnQ}Ow?9jXpyQU<$DV7(Z5S^pwH)N}Y5(2A4t za_{XS-!*D#YTA$qXM^Al6;dN}1wknD^(U;Y2qMI3^A+!UdG!w7vt z9<~AFqN(wu3!(B4F*K$FGc|~uT{kifJNLz+Z#&v%oV`-m*DmxjmQn?y>}L|c1ENp^ zLolW4ka4Kc%OY4ko>fQ?mwx}@k7IC}jUzZmeE3ni<%rqU7!0VU58L7_AMQcePzCB* zh0+vJDhI+BLv9(n*HG=Ze*V15m-$(~;CoTX`lj!ZnM5;uGG`suJ$2BP6=0fvsR9O* zpn}V?-d>78H$+()ucXuz-2fG8hCC|v91Y9boZZ~&@r22!MmRn3Rabo!b2N0T*|O3B zGg-%*rl;a%FD`pErlc<*Hh7Emgy(j#%9Odvn6!@q;^ls`To>lalP72MTJnJ9N7hkQ zQQ0s;A9JJaVObF}TS4tG_97chYvAfT;v!5XM{56fBvqGP|NX--I<|H0|) ztV(DhtIH|Yps$I*fwQ3w2Nxgw({XWeIq5Y;kPINMF8r_L2+5d$q!HXQTXLr!E+d4? z5Y&uJD>FhcmY*L3@`Dx-wP-uaEc$A35-f-^lRbI2y$?*|h)Cgkr52OG(Gt*a{Ujdf{U4jd zDr}DnWMdo%h=0cz2TlchmR}}5E8-%6w14{E0;RFppRJne6RQv zQTdZ6PZDp2ffC?(gD549@3mQ6UldHq>1jgr>oAiLhu*2F9|evU+zSAbGTw6hT!Uvl z$tSN|Svq_6Y+*^sYLS~XQx?nSZ!`rcNCj$zE8q=uxAH&4jTU0K1AU6LR3S4{FL*bz zzq)r>T*m{gy;?!yYQaNK+g{H5#05v;-jwihUA1Kf=2To!-WsnFw(bD7GZ3X#fVHCr;3Ap7*P5eq-${e zsG5d`9uNT9?mc8zq-t7tNpFIL`TW`7rki7v_eD-w4O`U+nFm1dtPJ1a8={Qz`GXoZzoCi_q8^tF2$-kCLKKKI z6!70!?0g4Q?l{DC0ogEVkvC!B%lxe(`~RN+8T0}!H1c`9(Ns)9Y-Cb_g0FMQq8Pyd zO8d5j9luv5M~n<*{wXeypv9d~u{vS@p@g$=vIvW)UJMF9Xz_+^%Kr7XdGoaR9UNBh z%I(GK>)bzBLgT=e6fVN8^7XOy7SB^qbYI}Yfh0^tl}(a9KL>O6{^;$&*D=Du78Gu2 zE@~BgN;nEQv1RDB%*F9T--I^r#g^QGW<%7>uaT$1!u4 zvC#6{r^kkmj@>SCxX%V?2#GtdI~!PTEoi{NY*Z*1?r{fi{k>&f^0ARKw!)_Qj|!*8 zZD|CzCt_MP=q2^&XF(r)MwHH~9*sT1*2HPv`Zwo8e>w#N{)8D6Kh8&&coEUycS*p% zA-tAPOI4qo!x$NSj!P#utLFBpAix+v2DsAP+}!k`=pxIixwG@gneKs+kvdYdW7f5W zL$TisvNc`Mes`^>ve0Vrs@chEMc&{A7@rQZ_yNCJxYq~}(PX_aK@S}=G#I?9I?za+ z6U5EEwY6bcOs%=h{tymv)8yjf;+atqnc^78p+rn9@@*}In}946LAlUS5(1RpwOkVw zV!_yq^`uB-_?@C=fK=ajcH675@^0=0MX@O%f`6_|{a7&QqZZkC%lo7e=75<|AktYo zskoDbS)g~jArKPOJiM5d_lr$fU7%b#3YL!UGxPhn%q^|>I-Az0H8=^(I%3ARkpSfq z&h;$wWO4B}GAley*kk^Lm6;evc2K(b^l7Hg_f>Ao@&|*C&dGtWq4zLWi8}niVL~_X zdE=HkD~&)Fh7-(^2QY%xD=4_7UApvYQd)l3#7ucII zF`~N9YA(flpUfvsDZo1U zr=jZKm|uM-b#K6D zWmQ~6(9IrjK)Rx@Q{$s(+{{kjqq4{qHrIy zD?Um7F3@?of))Q?d)N9`V;Z#|#V{g_!yY0HB}qj|DJe!M6d@5xjYz4SN@Z&g8izu1 zsHmJW#FlDemsHy+p#w#wQaNR^OGq1S<-OMZ?D@SP-hbfzpfBxq&$`d|{j7DZYpvU@ zG{DSkU)#rM#o5_MjeMUvS+_MMFT$o17}-Y?4tRC$@wLL{sxj^Nbc1rUB$5G|DVZm= zdOuE(>>qRa)BEkNGjA*<-v-VZN`MbIEt-(BMqJQ9LBewq4b}8w&I-?*?cZ|$Mfv>j zmV-mC>sXoFL?2&LMhA@gfoePaHa`zC76GpLSzSIv-~TK8UdIbtZ&~^A18Rb#f7h5I zOF3Q@#AVg7tBv+*sg4O2{dQJj3;>`(;P$FXZ9psm=&|t zf5a8MZHnmG>6E>rbcd>~h^l?nhrM@I?dQ&21PgdyopVf*(wWw%7WV!40ax`8^0u}o zfKXxe7}(majoMN2c2K`lC(nX6{R4U0U~}ZRBesChs?yTZ^sEcqs?BoS=b=e6 z8)pCMs(pE_*Id#a%m=c!VD|}#tpiGR&!w*O_qwKq$xgQ8|M5y*WjMvZ`2F(?qj@I* z-KHSdgoX_MiM5#AQ4X6_nKgFOhCc*iVdD|bo_`I}gCuqLe!e_Ve?wc`6A#ZTBP@=| zyY)mUODi!KJ%=Hs65ceiCcRh*(gAG0sB7c)WkeUu$4%{Np8-}~go%?CdZx0nChSXR zM^@fX1-nKd%MAe2d4RLDpG_YA5S=J`6|;?6ZNl%LGQJoB@C2#?|5WOfgMWc&we9ke=&d@vTgqnYwqzUKt(cn^vdHSEK38MAjGhI=7a5)| zBIsVn&K?F1026WOl>DqUjSqGu4S(bMPNO+uYPn)876CVj9mMW$$h8UY$geUiu8U|? zR>%Q!yXAh9UufS!cEr(R#>}kf)Y4m63Q8cwB@w{0_(X4)*?@7`EjAr69~;_R!so1K z2cf%!S4>?HQbM4+7-WQGWHNa5*2=g_pzmKDhMfA#D+9Lfc1}kb@S`ZkG zt3(Kyua`2RdG zePgI%#P7j&`hJt`&DLn$$+v(091*W@YBl1zowGv4tAB$3nb`DnB!GsO?O?u9hznHu zCAoPswTv1{PF%(-SOcj*XA*xQE3|(xahSNFN~3@V6B~0gtW!^acrS3VK+&T%5Vm-~ ziJGu|*8KTSn>Mw3zFYQEs|BtlZ@`HZF7@FffEc=QVC0O*c{r2(a!s}B;6llO-{hsc z0{oyvaK`WHY!R-i@Wl1vnGJvjx0v5P1Lp z@H=J^d4rO`AcV;-nh-*G-r$(Ftd=?d?|DD3_GU!kbzH|tgh4py_vK*YdV`5{0q)!* zQ@Rzz0Tll&FP91Sd74CHmmheM)l#RTo?u1DsAAffm?yCg?D z;XqE-Otv)xdhmPb51d;Tuq@LwaX%zLl7F@eQ%Z7EkwD88PAwrAgo$ZE0RM%czfNqQ zuC?*CTZrCjqw6EQi}zjD|1!HoGg@=#=zB#IchEtd+LJdR)+2c|5!+mF2gxF^XbL`E z>GmwQAQFl@{FY~cU(JqIQBj!?*yN%SHYOlqcMq_vOJ4lYuMqDp`FeavA*k#j;!h>;0-9}kwC^-c?#LTu`9M%nc@^i(v0G^-8?LU+H zl(beGBG3`QB1RnlB9LGozc5{IZ=I=-zdwDww9h-kg7+^1F_jZPls!*>@lve;mq~Hl z-;^eUb5Dg5nfq&e@|7FmCz_jy?FS6Y~l|1Kk`H1Lm?u6lzqEXpDd)N`|=~$ z6<`3R7)~=>cs`1J>m^o`F~mzI2@Hfw94*ppoZ1a4A1^3fFt8=0QGxONO-p)|z3fxF zFidfKYFOT+mQ;5vt&mKngFE9|IRftiWm!M~;b0lGS=dWfB`u`a zoOEYev`aMow z^N(kQ$Ws@dIUs(To0$NNmMAA;xZ*CsV5x3uC0V78c;vR-+Y!k*63M8@;U`+vW*>=0 zUbROHMG2X%iV^M!3&k7$j5LPV=NUnv^;hSG^8+X+5y(!Sm>q9uJEv?`Q~gmUO!{loquhTtyp;8N zw`Wg?#gr93>DieJ^}J=y#ScZT>1Qy&WaQxR*N`Fh>n$+kzYDRBI4z&>B2E03&cAec z!aTABHXns*o?$$G{?zDiItIOa%zN_q@h8ES&~x1d!uE$!QLDv2E2_#$!1O4s7R((K zH)uu8S~yL~cT7kcXibP?^uen2IzTUz`a!IHSp$GUc)VVxc&%d)wW+Q)CuGx8W6!#r z%|45sWhB@C)V1*N0HZs-vRljN+g?9AV`I;6<@28=<7yJZFTql>izbf^qTne%(I`h6 zH!W4R6$-+uOL7YyE-8Jk5hj;al)T7-S~H-)SJc?l)D#gP3%?6kjBCX+;cx>){NVN; z$Z|D%83Cbtx`pEO^`wDjn%JE#LvgRpmTmBzg}lGfT`j;#+BI;i+}7dS8|&}mbN5F? zl)<9)eldaM{TP58AeiLsHp>Y(KPX^6liiY?bddTf*T$>soR^~Ji0WtC3O>WxdJ*{v zV$BJ|5%prDv82FTG2#}IuTa7_@oJ>m#T!K+O%nY)^ty0;HuS{{a5hFKA%FlJ8|f?7 zkESZ!sR(La1YA3^&_aMy!9MjbJfWB zldQrK&fI8iAS2-Q6yzUL85NL@#ewGQLk07sE2CkT7V(3`_H9j6HP9HkRtEK$mc#op z4+hjaqTBJ5Hn};^hZk!^$UvyOd?xC`OpT zUSD`>TI2WRO-Nf3agty}n;RoYVKLORZjR`MbF>0!C-!Xycb4L~^&NZ0O7Bz&Bruy3 z+dsGXi{WWwsbks1)L)}lo#??mf9R_SxynFZWddEICxmrwy;#&EHs7{dAUQs6<#s5E zk!`pPh>_8zqdt)jU+v4tk9E13&v13$1-fPtj(~Zn`;y6M_n!p*7${&JyuA-%dI{>E0~um-gzhXtIWSz;;c{!SOY3{68Is6 zNu?!1qh<6ZzBf#-aL~Od4+oCS;X$LZV++5uL$RRbz;ohh?*$mpVw5INAKfaq)qv|4 zZcMrqox=G%hiPi2AhpbP5} z1tp|URora&sgI@@)ee?{B~wRfL;TkYC_o)rveRx8_y z3klpP{{pk^>9uBVL_Kwn@zA*vJ;9~)wW}O>+G*j+?nH{F*n|8K1VgvOWyEj400&lm zN=;Sn?%Zbhc}4KJ93*-&oNV8ds5^*MC>q8(K8-!=cU#%iz;hJv3E(qL9XWG=C@Xt3 zg*~?E=@p}Iwh9%DcOG&lj7Ek#J13w7wOd~HMsy2}w;GN2xJ6=PEc!E_+&v?pB!oZ8 zO$|lf3F5V+!Hso=?sHYn5C8m~XH|mkI=v6Saz44BOW;m<_^mCiMP^WCF`a#e`>|73 zw2`gNZidc5{%#BP-zRgH>kanH!*?VD(8Gi=E=~#@PF4KMe>0V|v7Uf7>J1$(9WF1; z4VVr^2=HOL3k_?5H4W=LEe~|4p!AA)W3^$a+_2GY^-1CLail)600y9Tdbr0;StR3_ z_+qRA1cRF+%JdCBd%Ky(!$7?VtR+7L{&^UsCj3_Yz)rH`dj>YEY0ZXJy7y?zv9KA6 zn_Yr~gB#%$HY-O;t4FI(2)+2#@RG4;oMXn2J`T#!mrV}nXR}A~vH}U^i-T^JA5xRK z9(a`UFi2xHT(mGuPR1^XyMI-fHZ8=%w!I?2g?t%EWsuehA_^Fh!0S2%!R*FIT62q+KCw*vtS|kPi z(b0)(+%hNQeZ=gx6L6@KKb9ZA@zgufGKGWFx@S*wx6A=J1km^)+$!+sSGzbSSS(^( z0oF!M)<&Og(VAJSnv*|O+c#q`WrA8)a2pA9)@|(|?us~O3PT<Y`L ze!7z6?A1plwsC3vr@TLdYAr6T2~Pf?;y0|DT`62$tK_uHM7P*Z51t|F5;KEowwy1H zlDwQs*)ZqW^&YQbhmONS}<>59PcyCdL zG8B;$RWn8o-0f`1a)0oCVJNy^v&ctTv^vwHx#9!7u(>u9Hpc>k5Lf?@7moi=n5}lvMp%>dZ-*VM zUBx?;!aN#kK1C^fm=~^83YYQC_EZiKA9cj--^B}Ovfw+;TwN*b#0&qb6y~FIL_%es z4f#IHm3_{fz?xk-oEPTU7L(S-Fa51~7>;OaD?g%^2e-_qdgf@6UAuwzHgK6^nP_ZF zOb+dv#?c2U>OTAf6biD`kb<#pL?kTo3KnAqDC@s;Nj{x#|M6c;W3z;Tx=v=9Ws~ z?o7?EFZ@sVS89jIMA?o26((H#mr~e{7Y3J&)vU|rtiG30IKD3v9;sY)0Uk_vKVBvD zwDcZpw)qgHuzSrak6#^|HRo5~A@g?puCrlwOL%SK#@aXW ztzYMueb4?T*R5++Nu4>p7bjZhPTNqb`3pAqTQRX!Di@4EUaKQ*)VxrK+gOR4@DKH;hq70)hcu}DTeVqr zsoqrGE`C&OcVjQlWFsch*@MqPe5n!r(G0)ORV7|4I%*5^z6XElc;sI^S-vB#tdHSF zYIW0KG^pN+6&Xcsxc<30VsTz*b^A>T&5OGos!6S5ZPA*Ij>u#DsfRYl(8i_{$Ge;4 zeZ9b1eH-;kw*_~6jkDhB)8OWx)AHeQ;hDu=nu=4r#BP$<1qmZ-(^iRWS6z#>W$Rf1 zU-T>#9auN4LSWKbP~oNd{a)eSlCc{ILkgIT7FI6DEEHQ?Zj|3!^-cxfPWgqtoy!kJ z8^*|8!jF7$-|?L289!c@wkY-L3D&$OZ4&UCdC5rg+Judr{B%^(oTVnzZrj)(iLuVi z{c>A(bz-JPYuxMyHMA1Nk!Z8;iM;FPtqOg~w0wotChvxb#s1;+o^qE_kL6nwMRAK$ z3ct18xz)lq=MXi=l5b8e7OZF@oBK*vRQ7Nco5|3*XjusBIxT6@5cWiU7$i^LV5=r` zAF3W(!hcpp+gG%lU%MyHH`c8VB8}-$~83+P~DTCdjMdn+fZSbQcx=#B#0h zL!<6$!^xH#zdz+C;ObtqPh7lS7Gd;lQ^Uar5%Dx&zPeOkZ&slD9TZq!%f^B8p|z#E znsr`$5TZ3!{6nhr(7T-0198^hKfXWC`k3l5+_jyoRjV&g(UElY!J(n1Op+VE{+;&+S`jX4sMR`BiHL?Zyh*~>c$#LOerD08#Ltf} zevHSDo7fKn)~+u0WT3g4gdfE diff --git a/src/Arc.js b/src/Arc.js index 9fdbda8..cf3bb38 100644 --- a/src/Arc.js +++ b/src/Arc.js @@ -199,13 +199,26 @@ var Arc = makeClass(Curve, { theta = self.theta, dtheta = self.dtheta, theta2 = theta + dtheta, - sweep = self.sweep, otherArc = false, + otherArc = false, tan = stdMath.tan(rad(self.angle)), p1, p2, p3, p4, t, xmin, xmax, ymin, ymax, txmin, txmax, tymin, tymax ; - // get parameter t by zeroing directional derivatives along x and y + if (!self.sweep) + { + t = theta; + theta = theta2; + theta2 = t; + } + if (theta > theta2) + { + t = theta; + theta = theta2; + theta2 = t; + otherArc = true; + } + // find min/max from zeroes of directional derivative along x and y // first get of whole ellipse // along x axis t = stdMath.atan2(-ry*tan, rx); @@ -252,19 +265,6 @@ var Arc = makeClass(Curve, { if (tymin > TWO_PI) tymin -= TWO_PI; if (tymax < 0) tymax += TWO_PI; if (tymax > TWO_PI) tymax -= TWO_PI; - if (!self.sweep) - { - t = theta; - theta = theta2; - theta2 = t; - } - if (theta > theta2) - { - t = theta; - theta = theta2; - theta2 = t; - otherArc = true; - } if ((!otherArc && (theta > txmin || theta2 < txmin)) || (otherArc && !(theta > txmin || theta2 < txmin))) { xmin = o1.x < o2.x ? o1 : o2; @@ -297,13 +297,74 @@ var Arc = makeClass(Curve, { get: function() { if (null == _hull) { - var b = self._bbox; + var bb = self._bbox; _hull = [ - new Point([b.xmin, b.ymin]), - new Point([b.xmax, b.ymin]), - new Point([b.xmax, b.ymax]), - new Point([b.xmin, b.ymax]) + new Point([bb.xmin, bb.ymin]), + new Point([bb.xmax, bb.ymin]), + new Point([bb.xmax, bb.ymax]), + new Point([bb.xmin, bb.ymax]) ]; + /*var c = self.center, rx = self.rX, ry = self.rY, + theta = self.theta, theta2 = theta + self.dtheta, + o1 = self.start, o2 = self.end, + xmin = toarc(-1, 0, c.x, c.y, rx, ry, _cos, _sin), + xmax = toarc(1, 0, c.x, c.y, rx, ry, _cos, _sin), + ymin = toarc(0, -1, c.x, c.y, rx, ry, _cos, _sin), + ymax = toarc(0, 1, c.x, c.y, rx, ry, _cos, _sin), + txmin, txmax, tymin, tymax, t, otherArc = false; + if (!self.sweep) + { + t = theta; + theta = theta2; + theta2 = t; + t = o1; + o1 = o2; + o2 = t; + } + if (theta > theta2) + { + t = theta; + theta = theta2; + theta2 = t; + t = o1; + o1 = o2; + o2 = t; + otherArc = true; + } + txmin = vector_angle(1, 0, xmin.x - c.x, xmin.y - c.y); + txmax = vector_angle(1, 0, xmax.x - c.x, xmax.y - c.y); + tymin = vector_angle(1, 0, ymin.x - c.x, ymin.y - c.y); + tymax = vector_angle(1, 0, ymax.x - c.x, ymax.y - c.y); + if (txmin < 0) txmin += TWO_PI; + if (txmin > TWO_PI) txmin -= TWO_PI; + if (txmax < 0) txmax += TWO_PI; + if (txmax > TWO_PI) txmax -= TWO_PI; + if (tymin < 0) tymin += TWO_PI; + if (tymin > TWO_PI) tymin -= TWO_PI; + if (tymax < 0) tymax += TWO_PI; + if (tymax > TWO_PI) tymax -= TWO_PI; + if ((!otherArc && (theta > txmin || theta2 < txmin)) || (otherArc && !(theta > txmin || theta2 < txmin))) + { + xmin.x = o1.x < o2.x ? o1.x : o2.x; + } + if ((!otherArc && (theta > txmax || theta2 < txmax)) || (otherArc && !(theta > txmax || theta2 < txmax))) + { + xmax.x = o1.x > o2.x ? o1.x : o2.x; + } + if ((!otherArc && (theta > tymin || theta2 < tymin)) || (otherArc && !(theta > tymin || theta2 < tymin))) + { + ymin.y = o1.y < o2.y ? o1.y : o2.y; + } + if ((!otherArc && (theta > tymax || theta2 < tymax)) || (otherArc && !(theta > tymax || theta2 < tymax))) + { + ymax.y = o1.y > o2.y ? o1.y : o2.y; + } + _hull = [ + new Point(xmin.x, ymin.y), + new Point(xmax.x, ymin.y), + new Point(xmax.x, ymax.y), + new Point(xmin.x, ymax.y) + ];*/ } return _hull; }, diff --git a/src/Bezier2.js b/src/Bezier2.js index 932a681..06e4a0f 100644 --- a/src/Bezier2.js +++ b/src/Bezier2.js @@ -28,12 +28,16 @@ var Bezier2 = makeClass(Bezier, { get: function() { if (null == _bbox) { + // find min/max from zeroes of directional derivative along x and y var p = self._points, - p1 = p[0], p2 = p[1], p3 = p[2], - xmin = stdMath.min(p1.x, p2.x, p3.x), - xmax = stdMath.max(p1.x, p2.x, p3.x), - ymin = stdMath.min(p1.y, p2.y, p3.y), - ymax = stdMath.max(p1.y, p2.y, p3.y) + ax = p[0].x - 2*p[1].x + p[2].x, + px = is_strictly_equal(ax, 0) ? p[1] : self.f((p[0].x - p[1].x)/ax), + ay = p[0].y - 2*p[1].y + p[2].y, + py = is_strictly_equal(ay, 0) ? p[1] : self.f((p[0].y - p[1].y)/ay), + xmin = stdMath.min(px.x, p[0].x, p[2].x), + xmax = stdMath.max(px.x, p[0].x, p[2].x), + ymin = stdMath.min(py.y, p[0].y, p[2].y), + ymax = stdMath.max(py.y, p[0].y, p[2].y) ; _bbox = { ymin: ymin, diff --git a/src/Ellipse.js b/src/Ellipse.js index 119cfeb..884a0df 100644 --- a/src/Ellipse.js +++ b/src/Ellipse.js @@ -119,7 +119,7 @@ var Ellipse = makeClass(Curve, { tan = stdMath.tan(rad(self.angle)), p1, p2, p3, p4, t ; - // get parameter t by zeroing directional derivatives along x and y + // find min/max from zeroes of directional derivative along x and y // along x axis t = stdMath.atan2(-ry*tan, rx); p1 = arc(t, c.x, c.y, rx, ry, _cos, _sin); diff --git a/src/Primitive.js b/src/Primitive.js index 78d8f94..ee2349f 100644 --- a/src/Primitive.js +++ b/src/Primitive.js @@ -78,10 +78,10 @@ var Primitive = makeClass(null, merge(null, { return []; }, getCenter: function() { - var box = this.getBoundingBox(); + var bb = this.getBoundingBox(); return { - x: (box.xmin + box.xmax)/2, - y: (box.ymin + box.ymax)/2 + x: (bb.xmin + bb.xmax)/2, + y: (bb.ymin + bb.ymax)/2 }; }, hasPoint: function(point) { diff --git a/src/utils.js b/src/utils.js index 1489193..fc5002e 100644 --- a/src/utils.js +++ b/src/utils.js @@ -78,12 +78,12 @@ function point_on_qbezier(p, c) { //x = t^{2} \left(x_{1} - 2 x_{2} + x_{3}\right) + t \left(- 2 x_{1} + 2 x_{2}\right) + x_{1} var tx, ty; - tx = quad_solve(c[0].x - 2*c[1].x + c[2].x, -2*c[0].x + 2*c[1].x, c[0].x - p.x); + tx = solve_quadratic(c[0].x - 2*c[1].x + c[2].x, -2*c[0].x + 2*c[1].x, c[0].x - p.x); if (!tx) return false; if (1 < tx.length && (0 > tx[1] || 1 < tx[1])) tx.pop(); if (tx.length && (0 > tx[0] || 1 < tx[0])) tx.shift(); if (!tx.length) return false; - ty = quad_solve(c[0].y - 2*c[1].y + c[2].y, -2*c[0].y + 2*c[1].y, c[0].y - p.y); + ty = solve_quadratic(c[0].y - 2*c[1].y + c[2].y, -2*c[0].y + 2*c[1].y, c[0].y - p.y); if (!ty) return false; if (1 < ty.length && (0 > ty[1] || 1 < ty[1])) ty.pop(); if (ty.length && (0 > ty[0] || 1 < ty[0])) ty.shift(); @@ -463,22 +463,22 @@ function is_convex(points) } return 1 === abs(stdMath.round(angle_sum / TWO_PI)); } -function lin_solve(a, b) +function solve_linear(a, b) { return is_strictly_equal(a, 0) ? false : [-b/a]; } -function quad_solve(a, b, c) +function solve_quadratic(a, b, c) { - if (is_strictly_equal(a, 0)) return lin_solve(b, c); + if (is_strictly_equal(a, 0)) return solve_linear(b, c); var D = b*b - 4*a*c, DS = 0; if (is_almost_equal(D, 0)) return [-b/(2*a)]; if (0 > D) return false; DS = sqrt(D); return [(-b-DS)/(2*a), (-b+DS)/(2*a)]; } -function cub_solve(a, b, c, d) +function solve_cubic(a, b, c, d) { - if (is_strictly_equal(a, 0)) return quad_solve(b, c, d); + if (is_strictly_equal(a, 0)) return solve_quadratic(b, c, d); var A = b/a, B = c/a, C = d/a, Q = (3*B - A*A)/9, QS = 0, R = (9*A*B - 27*C - 2*pow(A, 3))/54, @@ -536,10 +536,10 @@ function line_quadratic_intersection(m, n, k, a, b, c, d, e, f) var x, y, x1 = 0, y1 = 0, x2 = 0, y2 = 0, D = 0, R = 0, F = 0; if (is_strictly_equal(m, 0)) { - y = lin_solve(n, k); + y = solve_linear(n, k); if (!y) return false; y1 = y[0]; - x = quad_solve(a, c*y1+d, b*y1*y1+e*y1+f); + x = solve_quadratic(a, c*y1+d, b*y1*y1+e*y1+f); if (!x) return false; return 2 === x.length ? [{x:x[0],y:y1},{x:x[1],y:y1}] : [{x:x[0],y:y1}]; } @@ -1166,7 +1166,7 @@ function is_function(x) Geometrize.Math.deg = deg; Geometrize.Math.rad = rad; Geometrize.Math.hypot = hypot; -Geometrize.Math.solve1 = lin_solve; -Geometrize.Math.solve2 = quad_solve; -Geometrize.Math.solve3 = cub_solve; +Geometrize.Math.solveLinear = solve_linear; +Geometrize.Math.solveQuadratic = solve_quadratic; +Geometrize.Math.solveCubic = solve_cubic; diff --git a/test/intersect.html b/test/intersect.html index 9417bb9..46f51de 100644 --- a/test/intersect.html +++ b/test/intersect.html @@ -3,7 +3,7 @@ -Geometrize Intersections +Geometrize Intersections, Bounding Boxes, Convex Hulls -

Geometrize Intersections

+

Geometrize Intersections, Bounding Boxes, Convex Hulls

@@ -47,7 +47,7 @@

Geometrize Intersections