diff --git a/docs/kcl/index.md b/docs/kcl/index.md index 95b1846353..38dff8e69c 100644 --- a/docs/kcl/index.md +++ b/docs/kcl/index.md @@ -102,6 +102,7 @@ layout: manual * [`startSketchAt`](kcl/startSketchAt) * [`startSketchOn`](kcl/startSketchOn) * [`tan`](kcl/tan) +* [`tangentToEnd`](kcl/tangentToEnd) * [`tangentialArc`](kcl/tangentialArc) * [`tangentialArcTo`](kcl/tangentialArcTo) * [`tangentialArcToRelative`](kcl/tangentialArcToRelative) diff --git a/docs/kcl/std.json b/docs/kcl/std.json index 2b1951b928..734a292ff2 100644 --- a/docs/kcl/std.json +++ b/docs/kcl/std.json @@ -383,7 +383,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -613,6 +613,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -641,6 +642,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -1235,7 +1240,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -1465,6 +1470,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -1493,6 +1499,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -2138,7 +2148,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -2368,6 +2378,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -2396,6 +2407,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -3498,7 +3513,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -3728,6 +3743,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -3756,6 +3772,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -4350,7 +4370,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -4580,6 +4600,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -4608,6 +4629,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -5253,7 +5278,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -5483,6 +5508,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -5511,6 +5537,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -6646,7 +6676,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -6876,6 +6906,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -6904,6 +6935,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -7964,7 +7999,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -8194,6 +8229,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -8222,6 +8258,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -9330,7 +9370,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -9560,6 +9600,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -9588,6 +9629,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -10749,7 +10794,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -10979,6 +11024,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -11007,6 +11053,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -12067,7 +12117,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -12297,6 +12347,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -12325,6 +12376,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -13433,7 +13488,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -13663,6 +13718,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -13691,6 +13747,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -14852,7 +14912,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -15082,6 +15142,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -15110,6 +15171,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -16170,7 +16235,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -16400,6 +16465,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -16428,6 +16494,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -17536,7 +17606,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -17766,6 +17836,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -17794,6 +17865,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -18951,7 +19026,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -19181,6 +19256,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -19209,6 +19285,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -19880,7 +19960,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -20110,6 +20190,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -20138,6 +20219,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -21198,7 +21283,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -21428,6 +21513,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -21456,6 +21542,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -22500,7 +22590,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -22730,6 +22820,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -22758,6 +22849,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -23904,7 +23999,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -24134,6 +24229,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -24162,6 +24258,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -25222,7 +25322,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -25452,6 +25552,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -25480,6 +25581,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -26588,7 +26693,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -26818,6 +26923,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -26846,6 +26952,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -27992,7 +28102,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -28222,6 +28332,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -28250,6 +28361,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -29310,7 +29425,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -29540,6 +29655,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -29568,6 +29684,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -30676,7 +30796,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -30906,6 +31026,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -30934,6 +31055,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -32131,7 +32256,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -32361,6 +32486,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -32389,6 +32515,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -33449,7 +33579,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -33679,6 +33809,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -33707,6 +33838,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -34815,7 +34950,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -35045,6 +35180,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -35073,6 +35209,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -36229,7 +36369,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -36459,6 +36599,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -36487,6 +36628,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -37547,7 +37692,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -37777,6 +37922,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -37805,6 +37951,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -38913,7 +39063,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -39143,6 +39293,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -39171,6 +39322,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -40741,7 +40896,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -40971,6 +41126,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -40999,6 +41155,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -42059,7 +42219,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -42289,6 +42449,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -42317,6 +42478,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -43425,7 +43590,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -43655,6 +43820,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -43683,6 +43849,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -44888,7 +45058,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -45118,6 +45288,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -45146,6 +45317,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -45844,7 +46019,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -46074,6 +46249,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -46102,6 +46278,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -47180,7 +47360,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -47410,6 +47590,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -47438,6 +47619,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -48773,7 +48958,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -49003,6 +49188,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -49031,6 +49217,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -50404,7 +50594,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -50634,6 +50824,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -50662,6 +50853,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -51722,7 +51917,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -51952,6 +52147,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -51980,6 +52176,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -52541,7 +52741,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -52771,6 +52971,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -52799,6 +53000,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -53919,7 +54124,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -54149,6 +54354,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -54177,6 +54383,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -55237,7 +55447,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -55467,6 +55677,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -55495,6 +55706,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -56603,7 +56818,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -56833,6 +57048,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -56861,6 +57077,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -58111,7 +58331,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -58341,6 +58561,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -58369,6 +58590,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -59800,7 +60025,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -60030,6 +60255,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -60058,6 +60284,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -60952,7 +61182,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -61182,6 +61412,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -61210,6 +61441,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -61908,7 +62143,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -62138,6 +62373,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -62166,6 +62402,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -63244,7 +63484,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -63474,6 +63714,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -63502,6 +63743,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -64837,7 +65082,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -65067,6 +65312,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -65095,6 +65341,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -66004,7 +66254,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -66234,6 +66484,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -66262,6 +66513,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -66902,7 +67157,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -67132,6 +67387,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -67160,6 +67416,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -67800,7 +68060,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -68030,6 +68290,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -68058,6 +68319,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -69018,7 +69283,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -69248,6 +69513,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -69276,6 +69542,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -70393,7 +70663,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -70623,6 +70893,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -70651,6 +70922,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -71520,7 +71795,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -71750,6 +72025,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -71778,6 +72054,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -72885,7 +73165,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -73115,6 +73395,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -73143,6 +73424,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -74251,7 +74536,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -74481,6 +74766,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -74509,6 +74795,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -75931,7 +76221,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -76161,6 +76451,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -76189,6 +76480,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -77306,7 +77601,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -77536,6 +77831,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -77564,6 +77860,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -78876,7 +79176,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -79106,6 +79406,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -79134,6 +79435,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -80265,7 +80570,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -80495,6 +80800,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -80523,6 +80829,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -81814,7 +82124,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -82044,6 +82354,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -82072,6 +82383,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -83132,7 +83447,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -83362,6 +83677,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -83390,6 +83706,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -84498,7 +84818,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -84728,6 +85048,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -84756,6 +85077,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -85892,7 +86217,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -86122,6 +86447,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -86150,6 +86476,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -87210,7 +87540,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -87440,6 +87770,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -87468,6 +87799,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -88576,7 +88911,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -88806,6 +89141,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -88834,6 +89170,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -89996,7 +90336,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -90226,6 +90566,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -90254,6 +90595,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -91314,7 +91659,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -91544,6 +91889,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -91572,6 +91918,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -92950,7 +93300,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -93180,6 +93530,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -93208,6 +93559,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -94829,7 +95184,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -95059,6 +95414,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -95087,6 +95443,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -98796,7 +99156,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -99026,6 +99386,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -99054,6 +99415,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -102767,7 +103132,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -102997,6 +103362,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -103025,6 +103391,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -106331,7 +106701,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -106561,6 +106931,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -106589,6 +106960,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -107402,7 +107777,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -107632,6 +108007,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -107660,6 +108036,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -108710,7 +109090,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -108940,6 +109320,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -108968,6 +109349,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -110357,7 +110742,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -110587,6 +110972,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -110615,6 +111001,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -111729,7 +112119,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -111959,6 +112349,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -111987,6 +112378,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -113429,7 +113824,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -113659,6 +114054,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -113687,6 +114083,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -114810,7 +115210,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -115040,6 +115440,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -115068,6 +115469,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -115912,7 +116317,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -116142,6 +116547,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -116170,6 +116576,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -117284,7 +117694,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -117514,6 +117924,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -117542,6 +117953,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -118968,7 +119383,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -119198,6 +119613,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -119226,6 +119642,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -120349,7 +120769,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -120579,6 +120999,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -120607,6 +121028,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -121725,7 +122150,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -121955,6 +122380,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -121983,6 +122409,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -123106,7 +123536,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -123336,6 +123766,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -123364,6 +123795,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -124196,7 +124631,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -124426,6 +124861,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -124454,6 +124890,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -125568,7 +126008,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -125798,6 +126238,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -125826,6 +126267,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -127518,7 +127963,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -127748,6 +128193,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -127776,6 +128222,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -128836,7 +129286,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -129066,6 +129516,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -129094,6 +129545,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -129655,7 +130110,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -129885,6 +130340,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -129913,6 +130369,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -131081,7 +131541,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -131311,6 +131771,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -131339,6 +131800,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -132475,7 +132940,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -132705,6 +133170,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -132733,6 +133199,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -133864,7 +134334,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -134094,6 +134564,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -134122,6 +134593,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -135888,7 +136363,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -136118,6 +136593,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -136146,6 +136622,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -140471,7 +140951,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -140701,6 +141181,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -140729,6 +141210,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -145055,7 +145540,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -145285,6 +145770,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -145313,6 +145799,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -149037,7 +149527,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -149267,6 +149757,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -149295,6 +149786,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -153620,7 +154115,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -153850,6 +154345,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -153878,6 +154374,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -157587,7 +158087,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -157817,6 +158317,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -157845,6 +158346,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -162171,7 +162676,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -162401,6 +162906,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -162429,6 +162935,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -165720,7 +166230,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -165950,6 +166460,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -165978,6 +166489,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -166759,7 +167274,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -166989,6 +167504,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -167017,6 +167533,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -168352,7 +168872,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -168582,6 +169102,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -168610,6 +169131,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -169500,7 +170025,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -169730,6 +170255,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -169758,429 +170284,433 @@ "type": "number", "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - "SourceRange": { - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - ] - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - } - }, - "required": true - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([5, 10], %, $seg01)\n |> line([-10, 0], %)\n |> angledLine([segAng(seg01), 10], %)\n |> line([-10, 0], %)\n |> angledLine([segAng(seg01), -15], %)\n |> close(%)\n\nexample = extrude(4, exampleSketch)" - ] - }, - { - "name": "segEnd", - "summary": "Compute the ending point of the provided line segment.", - "description": "", - "tags": [], - "args": [ - { - "name": "tag", - "type": "TagIdentifier", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, - "Path": { - "description": "A path.", - "oneOf": [ - { - "description": "A path that goes to a point.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "ToPoint" - ] + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([5, 10], %, $seg01)\n |> line([-10, 0], %)\n |> angledLine([segAng(seg01), 10], %)\n |> line([-10, 0], %)\n |> angledLine([segAng(seg01), -15], %)\n |> close(%)\n\nexample = extrude(4, exampleSketch)" + ] + }, + { + "name": "segEnd", + "summary": "Compute the ending point of the provided line segment.", + "description": "", + "tags": [], + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] }, "from": { "description": "The from point.", @@ -170398,7 +170928,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -170628,6 +171158,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -170656,6 +171187,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -171301,7 +171836,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -171531,6 +172066,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -171559,6 +172095,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -172199,7 +172739,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -172429,6 +172969,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -172457,429 +172998,433 @@ "type": "number", "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - "SourceRange": { - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - ] - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - } - }, - "required": true - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([20, 0], %)\n |> line([0, 3], %, $thing)\n |> line([-10, 0], %)\n |> line([0, segEndY(thing)], %)\n |> line([-10, 0], %)\n |> close(%)\n\nexample = extrude(5, exampleSketch)" - ] - }, - { - "name": "segLen", - "summary": "Compute the length of the provided line segment.", - "description": "", - "tags": [], - "args": [ - { - "name": "tag", - "type": "TagIdentifier", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, - "Path": { - "description": "A path.", - "oneOf": [ - { - "description": "A path that goes to a point.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "ToPoint" - ] + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([20, 0], %)\n |> line([0, 3], %, $thing)\n |> line([-10, 0], %)\n |> line([0, segEndY(thing)], %)\n |> line([-10, 0], %)\n |> close(%)\n\nexample = extrude(5, exampleSketch)" + ] + }, + { + "name": "segLen", + "summary": "Compute the length of the provided line segment.", + "description": "", + "tags": [], + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] }, "from": { "description": "The from point.", @@ -173097,7 +173642,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -173327,6 +173872,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -173355,6 +173901,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -173995,7 +174545,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -174225,6 +174775,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -174253,6 +174804,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -174898,7 +175453,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -175128,6 +175683,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -175156,429 +175712,433 @@ "type": "number", "format": "double" }, - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] - } - } - } - ] - }, - "TagDeclarator": { - "type": "object", - "required": [ - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "digest": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, - "maxItems": 32, - "minItems": 32, - "nullable": true - }, - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "GeoMeta": { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "id", - "sourceRange" - ], - "properties": { - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - "SourceRange": { - "type": "array", - "items": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "maxItems": 3, - "minItems": 3 - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ - { - "description": "An extrude plane.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "faceId": { - "description": "The id for the chamfer surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "Geometry metadata.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "faceId": { - "description": "The id for the fillet surface.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - ] - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - } - } - }, - "required": true - } - ], - "returnValue": { - "name": "", - "type": "number", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "double", - "type": "number", - "format": "double" - }, - "required": true - }, - "unpublished": false, - "deprecated": false, - "examples": [ - "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([20, 0], %, $thing)\n |> line([0, 5], %)\n |> line([20 - segStartX(thing), 0], %)\n |> line([-20, 10], %)\n |> close(%)\n\nexample = extrude(5, exampleSketch)" - ] - }, - { - "name": "segStartY", - "summary": "Compute the starting point of the provided line segment along the 'y' axis.", - "description": "", - "tags": [], - "args": [ - { - "name": "tag", - "type": "TagIdentifier", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TagIdentifier", - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - }, - "definitions": { - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true - } - } - }, - "Path": { - "description": "A path.", - "oneOf": [ - { - "description": "A path that goes to a point.", - "type": "object", - "required": [ - "__geoMeta", - "from", - "to", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "ToPoint" - ] + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + } + }, + "required": true + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([20, 0], %, $thing)\n |> line([0, 5], %)\n |> line([20 - segStartX(thing), 0], %)\n |> line([-20, 10], %)\n |> close(%)\n\nexample = extrude(5, exampleSketch)" + ] + }, + { + "name": "segStartY", + "summary": "Compute the starting point of the provided line segment along the 'y' axis.", + "description": "", + "tags": [], + "args": [ + { + "name": "tag", + "type": "TagIdentifier", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TagIdentifier", + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + }, + "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] }, "from": { "description": "The from point.", @@ -175796,7 +176356,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -176026,6 +176586,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -176054,6 +176615,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -176750,7 +177315,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -176980,6 +177545,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -177008,6 +177574,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -177754,7 +178324,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -177984,6 +178554,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -178012,6 +178583,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -179379,7 +179954,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -179609,6 +180184,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -179637,6 +180213,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -181062,7 +181642,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -181292,6 +181872,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -181320,6 +181901,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -182380,7 +182965,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -182610,6 +183195,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -182638,6 +183224,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -183341,7 +183931,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -183571,6 +184161,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -183599,6 +184190,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -184737,7 +185332,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -184967,6 +185562,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -184995,6 +185591,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -186641,7 +187241,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -186871,6 +187471,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -186899,6 +187500,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -188120,7 +188725,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -188350,6 +188955,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -188378,6 +188984,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -189607,7 +190217,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -189837,6 +190447,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -189865,6 +190476,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -190319,95 +190934,35 @@ ] }, { - "name": "tangentialArc", - "summary": "Draw a curved line segment along part of an imaginary circle.", - "description": "The arc is constructed such that the last line segment is placed tangent to the imaginary circle of the specified radius. The resulting arc is the segment of the imaginary circle from that tangent point for 'offset' degrees along the imaginary circle.", + "name": "tangentToEnd", + "summary": "Returns the angle coming out of the end of the segment in degrees.", + "description": "", "tags": [], "args": [ { - "name": "data", - "type": "TangentialArcData", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "TangentialArcData", - "description": "Data to draw a tangential arc.", - "anyOf": [ - { - "type": "object", - "required": [ - "offset", - "radius" - ], - "properties": { - "radius": { - "description": "Radius of the arc. Not to be confused with Raiders of the Lost Ark.", - "type": "number", - "format": "double" - }, - "offset": { - "description": "Offset of the arc, in degrees.", - "type": "number", - "format": "double" - } - } - } - ] - }, - "required": true - }, - { - "name": "sketch", - "type": "Sketch", + "name": "tag", + "type": "TagIdentifier", "schema": { "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Sketch", - "description": "A sketch is a collection of paths.", + "title": "TagIdentifier", "type": "object", "required": [ "__meta", - "id", - "on", - "paths", - "start" + "value" ], "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] + "value": { + "type": "string" }, - "start": { - "description": "The starting path.", + "info": { "allOf": [ { - "$ref": "#/components/schemas/BasePath" + "$ref": "#/components/schemas/TagEngineInfo" } - ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } + ], + "nullable": true }, "__meta": { - "description": "Metadata.", "type": "array", "items": { "$ref": "#/components/schemas/Metadata" @@ -190415,6 +190970,44 @@ } }, "definitions": { + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, "Path": { "description": "A path.", "oneOf": [ @@ -190650,7 +191243,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -190880,6 +191473,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -190908,6 +191502,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -191014,276 +191612,56 @@ "maxItems": 3, "minItems": 3 }, - "SketchSurface": { - "description": "A sketch type.", + "ExtrudeSurface": { + "description": "An extrude surface.", "oneOf": [ { - "description": "A plane.", + "description": "An extrude plane.", "type": "object", "required": [ - "__meta", + "faceId", "id", - "origin", - "type", - "value", - "xAxis", - "yAxis", - "zAxis" + "sourceRange", + "type" ], "properties": { "type": { "type": "string", "enum": [ - "plane" + "extrudePlane" ] }, - "id": { - "description": "The id of the plane.", + "faceId": { + "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, - "value": { - "$ref": "#/components/schemas/PlaneType" - }, - "origin": { - "description": "Origin of the plane.", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "xAxis": { - "description": "What should the plane’s X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the plane’s Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", + "tag": { + "description": "The tag.", "allOf": [ { - "$ref": "#/components/schemas/Point3d" + "$ref": "#/components/schemas/TagDeclarator" } - ] - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - { - "description": "A face.", - "type": "object", - "required": [ - "__meta", - "id", - "solid", - "type", - "value", - "xAxis", - "yAxis", - "zAxis" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "face" - ] + ], + "nullable": true }, "id": { - "description": "The id of the face.", + "description": "The id of the geometry.", "type": "string", "format": "uuid" }, - "value": { - "description": "The tag of the face.", - "type": "string" - }, - "xAxis": { - "description": "What should the face’s X axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "yAxis": { - "description": "What should the face’s Y axis be?", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "zAxis": { - "description": "The z-axis (normal).", - "allOf": [ - { - "$ref": "#/components/schemas/Point3d" - } - ] - }, - "solid": { - "description": "The solid the face is on.", + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/Solid" + "$ref": "#/components/schemas/SourceRange" } ] - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - } - ] - }, - "PlaneType": { - "description": "Type for a plane.", - "oneOf": [ - { - "type": "string", - "enum": [ - "XY", - "XZ", - "YZ" - ] - }, - { - "description": "A custom plane.", - "type": "string", - "enum": [ - "Custom" - ] - } - ] - }, - "Point3d": { - "type": "object", - "required": [ - "x", - "y", - "z" - ], - "properties": { - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "z": { - "type": "number", - "format": "double" - } - } - }, - "Metadata": { - "description": "Metadata.", - "type": "object", - "required": [ - "sourceRange" - ], - "properties": { - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" } - ] - } - } - }, - "Solid": { - "description": "An solid is a collection of extrude surfaces.", - "type": "object", - "required": [ - "__meta", - "height", - "id", - "sketch", - "value" - ], - "properties": { - "id": { - "description": "The id of the solid.", - "type": "string", - "format": "uuid" - }, - "value": { - "description": "The extrude surfaces.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ExtrudeSurface" - } - }, - "sketch": { - "description": "The sketch.", - "allOf": [ - { - "$ref": "#/components/schemas/Sketch" - } - ] - }, - "height": { - "description": "The height of the solid.", - "type": "number", - "format": "double" - }, - "startCapId": { - "description": "The id of the extrusion start cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "endCapId": { - "description": "The id of the extrusion end cap", - "type": "string", - "format": "uuid", - "nullable": true - }, - "edgeCuts": { - "description": "Chamfers or fillets on this solid.", - "type": "array", - "items": { - "$ref": "#/components/schemas/EdgeCut" } }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } - } - }, - "ExtrudeSurface": { - "description": "An extrude surface.", - "oneOf": [ { - "description": "An extrude plane.", + "description": "An extruded arc.", "type": "object", "required": [ "faceId", @@ -191295,52 +191673,7 @@ "type": { "type": "string", "enum": [ - "extrudePlane" - ] - }, - "faceId": { - "description": "The face id for the extrude plane.", - "type": "string", - "format": "uuid" - }, - "tag": { - "description": "The tag.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - }, - "id": { - "description": "The id of the geometry.", - "type": "string", - "format": "uuid" - }, - "sourceRange": { - "description": "The source range.", - "allOf": [ - { - "$ref": "#/components/schemas/SourceRange" - } - ] - } - } - }, - { - "description": "An extruded arc.", - "type": "object", - "required": [ - "faceId", - "id", - "sourceRange", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "extrudeArc" + "extrudeArc" ] }, "faceId": { @@ -191464,274 +191797,145 @@ } ] }, - "Sketch": { - "description": "A sketch is a collection of paths.", + "Metadata": { + "description": "Metadata.", "type": "object", "required": [ - "__meta", - "id", - "on", - "paths", - "start" + "sourceRange" ], "properties": { - "id": { - "description": "The id of the sketch (this will change when the engine's reference to it changes).", - "type": "string", - "format": "uuid" - }, - "paths": { - "description": "The paths in the sketch.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Path" - } - }, - "on": { - "description": "What the sketch is on (can be a plane or a face).", - "allOf": [ - { - "$ref": "#/components/schemas/SketchSurface" - } - ] - }, - "start": { - "description": "The starting path.", + "sourceRange": { + "description": "The source range.", "allOf": [ { - "$ref": "#/components/schemas/BasePath" + "$ref": "#/components/schemas/SourceRange" } ] - }, - "tags": { - "description": "Tag identifiers that have been declared in this sketch.", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/TagIdentifier" - } - }, - "__meta": { - "description": "Metadata.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } } } - }, - "BasePath": { - "description": "A base path.", + } + } + }, + "required": true + } + ], + "returnValue": { + "name": "", + "type": "number", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "double", + "type": "number", + "format": "double" + }, + "required": true + }, + "unpublished": false, + "deprecated": false, + "examples": [ + "// Horizontal pill.\npillSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([20, 0], %)\n |> tangentialArcToRelative([0, 10], %, $arc1)\n |> angledLine({\n angle = tangentToEnd(arc1),\n length = 20\n }, %)\n |> tangentialArcToRelative([0, -10], %)\n |> close(%)\n\npillExtrude = extrude(10, pillSketch)", + "// Vertical pill. Use absolute coordinate for arc.\npillSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([0, 20], %)\n |> tangentialArcTo([10, 20], %, $arc1)\n |> angledLine({\n angle = tangentToEnd(arc1),\n length = 20\n }, %)\n |> tangentialArcToRelative([-10, 0], %)\n |> close(%)\n\npillExtrude = extrude(10, pillSketch)", + "rectangleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %, $seg1)\n |> angledLine({\n angle = tangentToEnd(seg1),\n length = 10\n }, %)\n |> line([0, 10], %)\n |> line([-20, 0], %)\n |> close(%)\n\nrectangleExtrude = extrude(10, rectangleSketch)", + "bottom = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> arcTo({ end = [10, 10], interior = [5, 1] }, %, $arc1)\n |> angledLine([tangentToEnd(arc1), 20], %)\n |> close(%)", + "circSketch = startSketchOn(\"XY\")\n |> circle({ center = [0, 0], radius = 3 }, %, $circ)\n\ntriangleSketch = startSketchOn(\"XY\")\n |> startProfileAt([-5, 0], %)\n |> angledLine([tangentToEnd(circ), 10], %)\n |> line([-15, 0], %)\n |> close(%)" + ] + }, + { + "name": "tangentialArc", + "summary": "Draw a curved line segment along part of an imaginary circle.", + "description": "The arc is constructed such that the last line segment is placed tangent to the imaginary circle of the specified radius. The resulting arc is the segment of the imaginary circle from that tangent point for 'offset' degrees along the imaginary circle.", + "tags": [], + "args": [ + { + "name": "data", + "type": "TangentialArcData", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "TangentialArcData", + "description": "Data to draw a tangential arc.", + "anyOf": [ + { "type": "object", "required": [ - "__geoMeta", - "from", - "to" + "offset", + "radius" ], "properties": { - "from": { - "description": "The from point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "to": { - "description": "The to point.", - "type": "array", - "items": { - "type": "number", - "format": "double" - }, - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "description": "The tag of the path.", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true + "radius": { + "description": "Radius of the arc. Not to be confused with Raiders of the Lost Ark.", + "type": "number", + "format": "double" }, - "__geoMeta": { - "description": "Metadata.", - "allOf": [ - { - "$ref": "#/components/schemas/GeoMeta" - } - ] + "offset": { + "description": "Offset of the arc, in degrees.", + "type": "number", + "format": "double" } } + } + ] + }, + "required": true + }, + { + "name": "sketch", + "type": "Sketch", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Sketch", + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "id", + "on", + "paths", + "start" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" }, - "TagIdentifier": { - "type": "object", - "required": [ - "__meta", - "value" - ], - "properties": { - "value": { - "type": "string" - }, - "info": { - "allOf": [ - { - "$ref": "#/components/schemas/TagEngineInfo" - } - ], - "nullable": true - }, - "__meta": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } - } + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" } }, - "TagEngineInfo": { - "description": "Engine information for a tag.", - "type": "object", - "required": [ - "id", - "sketch" - ], - "properties": { - "id": { - "description": "The id of the tagged object.", - "type": "string", - "format": "uuid" - }, - "sketch": { - "description": "The sketch the tag is on.", - "type": "string", - "format": "uuid" - }, - "path": { - "description": "The path the tag is on.", - "allOf": [ - { - "$ref": "#/components/schemas/Path" - } - ], - "nullable": true - }, - "surface": { - "description": "The surface information for the tag.", - "allOf": [ - { - "$ref": "#/components/schemas/ExtrudeSurface" - } - ], - "nullable": true + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" } - } + ] }, - "EdgeCut": { - "description": "A fillet or a chamfer.", - "oneOf": [ - { - "description": "A fillet.", - "type": "object", - "required": [ - "edgeId", - "id", - "radius", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "fillet" - ] - }, - "id": { - "description": "The id of the engine command that called this fillet.", - "type": "string", - "format": "uuid" - }, - "radius": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to fillet.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } - }, + "start": { + "description": "The starting path.", + "allOf": [ { - "description": "A chamfer.", - "type": "object", - "required": [ - "edgeId", - "id", - "length", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "chamfer" - ] - }, - "id": { - "description": "The id of the engine command that called this chamfer.", - "type": "string", - "format": "uuid" - }, - "length": { - "type": "number", - "format": "double" - }, - "edgeId": { - "description": "The engine id of the edge to chamfer.", - "type": "string", - "format": "uuid" - }, - "tag": { - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true - } - } + "$ref": "#/components/schemas/BasePath" } ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } } - } - }, - "required": true - }, - { - "name": "tag", - "type": "TagNode", - "schema": { - "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", - "title": "Nullable_TagDeclarator", - "allOf": [ - { - "$ref": "#/components/schemas/TagDeclarator" - } - ], - "nullable": true, + }, "definitions": { "Path": { "description": "A path.", @@ -191968,7 +192172,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -192198,6 +192402,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -192226,6 +192431,1333 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "id", + "origin", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "id", + "solid", + "type", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "height", + "id", + "sketch", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "id", + "on", + "paths", + "start" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + } + } + }, + "required": true + }, + { + "name": "tag", + "type": "TagNode", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_TagDeclarator", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true, + "definitions": { + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -193334,7 +194866,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -193564,6 +195096,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -193592,6 +195125,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -194727,7 +196264,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -194957,6 +196494,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -194985,6 +196523,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -196045,7 +197587,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -196275,6 +197817,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -196303,6 +197846,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -197411,7 +198958,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -197641,6 +199188,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -197669,6 +199217,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -198804,7 +200356,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -199034,6 +200586,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -199062,6 +200615,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -200122,7 +201679,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -200352,6 +201909,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -200380,6 +201938,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -201488,7 +203050,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -201718,6 +203280,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -201746,6 +203309,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -202975,7 +204542,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -203205,6 +204772,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -203233,6 +204801,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -204293,7 +205865,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -204523,6 +206095,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -204551,6 +206124,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -205659,7 +207236,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -205889,6 +207466,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -205917,6 +207495,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -207047,7 +208629,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -207277,6 +208859,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -207305,6 +208888,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -208365,7 +209952,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -208595,6 +210182,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -208623,6 +210211,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -209731,7 +211323,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -209961,6 +211553,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -209989,6 +211582,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -211119,7 +212716,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -211349,6 +212946,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -211377,6 +212975,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -212437,7 +214039,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -212667,6 +214269,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -212695,6 +214298,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -213803,7 +215410,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -214033,6 +215640,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -214061,6 +215669,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -215191,7 +216803,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -215421,6 +217033,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -215449,6 +217062,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -216509,7 +218126,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -216739,6 +218356,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -216767,6 +218385,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", @@ -217875,7 +219497,7 @@ "format": "double" }, "ccw": { - "description": "arc's direction", + "description": "arc's direction This is used to compute the tangential angle.", "type": "boolean" }, "from": { @@ -218105,6 +219727,7 @@ "type": "object", "required": [ "__geoMeta", + "ccw", "center", "from", "radius", @@ -218133,6 +219756,10 @@ "type": "number", "format": "double" }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, "from": { "description": "The from point.", "type": "array", diff --git a/docs/kcl/tangentToEnd.md b/docs/kcl/tangentToEnd.md new file mode 100644 index 0000000000..4ba39e7c04 --- /dev/null +++ b/docs/kcl/tangentToEnd.md @@ -0,0 +1,105 @@ +--- +title: "tangentToEnd" +excerpt: "Returns the angle coming out of the end of the segment in degrees." +layout: manual +--- + +Returns the angle coming out of the end of the segment in degrees. + + + +```js +tangentToEnd(tag: TagIdentifier) -> number +``` + + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `tag` | [`TagIdentifier`](/docs/kcl/types#tag-identifier) | | Yes | + +### Returns + +`number` + + +### Examples + +```js +// Horizontal pill. +pillSketch = startSketchOn('XZ') + |> startProfileAt([0, 0], %) + |> line([20, 0], %) + |> tangentialArcToRelative([0, 10], %, $arc1) + |> angledLine({ + angle = tangentToEnd(arc1), + length = 20 + }, %) + |> tangentialArcToRelative([0, -10], %) + |> close(%) + +pillExtrude = extrude(10, pillSketch) +``` + +![Rendered example of tangentToEnd 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADJ+0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV131n+aaa6558JkzZx58zTXXPPjMmTMPuuaaax58zTXXPBjgzJkzD77mmmsezFVXXXXV/3H33XffrQBnz569FeC+++67FeAf/uEffue+++679ezZs7fed999t3LVVVddddVVV/1nQA960IO46qqrrrrqqqv+/a655poH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BC/5ki/JsWPHuN8//MM//Pbf//3f//aP/uiPfg5XXXXVVVdd9b8TetCDHsRVV1111VVX/W93zTXXPPgd3/EdP+t1Xud13psHuHTpErfddht/93d/x2233cYLI4n/ySTxf50krrrqudnm/yrb/E9km/9OtvmvcOzYMV7iJV6Cl3zJl+TYsWPc77777rv1t37rt777H/7hH37nH/7hH36bq6666qqrrvrfDT3oQQ/iqquuuuqqq/6vuOaaax78Yi/2Yq/9Yi/2Yq/1Oq/zOu/NA1y6dInbbruN2267jUuXLnHbbbfxwkjifwNJ/H8jiav+97PN/ye2+Z/KNv+dbPNf4dixY7zES7wED3rQg7jlllt4oPvuu+/W3/qt3/rus2fPPuO3fuu3vpurrrrqqquu+r8DPehBD+Kqq6666qqr/i+65pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhr8wCXLl3i0qVLXLp0idtuu43bbruNS5cu8YJI4n8LSVz1bJK46r+Gbf6/s83/dLb572ab/0zHjh3j2LFj3HLLLTzoQQ/illtu4bndd999t/7Wb/3Wd//DP/zDb//DP/zD73DVVVddddVV/zehBz3oQVx11VVXXXXV/wfXXHPNg1/sxV7stV/sxV7sta655poHv9iLvdhr81wuXbrEpUuXuHTpErfddhsAly5d4rbbbuO5SeJ/G0lc9W8jif/rbHPVv45t/jewzf8EtvmPdOzYMQCOHTvGLbfcAsCDHvQgbrnlFp6f++6779bf+q3f+u6zZ88+47d+67e+m6uuuuqqq676/wE96EEP4qqrrrrqqqv+P7rmmmse/GIv9mKvfebMmQe9+Iu/+Gu/2Iu92GvzQly6dAmAS5cucenSJe536dIlAC5duoQkrrrqqqv+u9nmfwLb/FsdO3aMBzp+/DgAx44d49ixYxw7dowX5r777rv1H/7hH377vvvuu/Uf/uEffucf/uEffpurrrrqqquu+v8JPehBD+Kqq6666qqrrrrimmuuefCZM2cefM011zz4xV7sxV7rmmuueTDAi73Yi702V1111VVX/Y9y33333Qpw9uzZW//+7//+twH+4R/+4Xf+4R/+4be56qqrrrrqqqvuhx70oAdx1VVXXXXVVVf9y6655poH2/Y111zzkGuuuebBPNOZM2ceBHDNNdc8mKuuuuqqq/5D3HfffbfyAGfPnn0GwH333Xfrfffd9/SzZ88+g6uuuuqqq6666kWBHvSgB3HVVVddddVVV1111VVXXXXVVVddddVVV/2fROWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V/GP3HIKxpfn6p4AAAAASUVORK5CYII=) + +```js +// Vertical pill. Use absolute coordinate for arc. +pillSketch = startSketchOn('XZ') + |> startProfileAt([0, 0], %) + |> line([0, 20], %) + |> tangentialArcTo([10, 20], %, $arc1) + |> angledLine({ + angle = tangentToEnd(arc1), + length = 20 + }, %) + |> tangentialArcToRelative([-10, 0], %) + |> close(%) + +pillExtrude = extrude(10, pillSketch) +``` + +![Rendered example of tangentToEnd 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAC5RElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqr/te75pprHgxw5syZB7/Yi73Ya/FM11xzzYOvueaaB/NM9913363XXHPNgwHuu+++W6+55poH33fffbcC3HfffbeePXv2GQD33XffrWfPnr31vvvuu5Wrrrrqqquuuuqqq/43Qw960IO46qqrrrrqqquuuup/h2uuuebBZ86cefCLvdiLvdY111zzYIDXeZ3XeW+eaXd3F4BLly6xu7sLwO7uLi/I8ePHAbDN8ePHAXjwgx/M/e67775bAf7hH/7ht//hH/7hd+67775b/+Ef/uG3ueqqq6666qqrrrrqfwv0oAc9iKuuuuqqq6666qqr/me65pprHvzar/3a7wXwTu/0Tp/NM+3u7vK3f/u3ADzjGc/g0qVL7O7u8vzY5gWxzXOzzfHjxwE4fvw4x44d48EPfjDHjx/nwQ9+MAD33Xffrf/wD//w2//wD//wO/fdd9+t//AP//DbXHXVVVddddVVV131PxF60IMexFVXXXXVVVddddVV/3O82Iu92Gu/2Iu92Gu90zu902cD7O7u8rd/+7cAPOMZz+AZz3gG/162eW62eSDbPJBtjh8/jm0e/OAH85CHPIRjx47xkIc8hPvuu+/Wf/iHf/jtf/iHf/id3/qt3/purrrqqquuuuqqq676nwI96EEP4qqrrrrqqquuuuqq/16v8zqv894v9mIv9lqv8zqv8967u7tcunSJZzzjGfzu7/4uDySJfyvbvCC2eSDb3M8297PN/WwDcOzYMR7ykIfw4Ac/mJd5mZfhvvvuu/Uf/uEffvsf/uEffue3fuu3vpurrrrqqquuuuqqq/47oQc96EFcddVVV1111VVXXfVf75prrnnwa7/2a7/XO73TO3327u4uf/u3f8sznvEMnvGMZ3A/SfxLJPFAtnlR2Oa52eaBbHM/29zPNgC2uZ9tjh8/zvHjx3mZl3kZXuZlXob77rvv1n/4h3/47d/6rd/6nn/4h3/4ba666qqrrrrqqquu+q+GHvSgB3HVVVddddVVV1111X+Na6655sGv/dqv/V6v8zqv894Ay+XywX/zN3/D3/7t33I/STw3SfxHsc1zs81zs839bHM/2wDY5n62AbANgG2OHz/Ogx/8YB7ykIfwsi/7stx33323/tZv/dZ3/+iP/ujncNVVV1111VVXXXXVfxX0oAc9iKuuuuqqq6666qqr/nNdc801D37t137t93qnd3qnz97d3eVv/uZv+L3f+z3uJ4kHksQLIol/Ddu8ILZ5brZ5INvczzb3sw2AbQBsA2AbANsA2Ob48eO8zMu8DDfffPOtx48f57d+67e++7d/+7e/57777ruVq6666qqrrrrqqqv+M6EHPehBXHXVVVddddVVV131n+Oaa6558Gu/9mu/1zu90zt99u7uLr/7u7/L3/7t33I/SdxPEs9NEv8ZbPPcbPNAtnkg29zPNgC2AbANgG0AbANgGwDb2ObEiRM8+MEP5mVf9mXZ2tq69R/+4R9++0d/9Ec/57777ruVq6666qqrrrrqqqv+M6AHPehBXHXVVVddddVVV131H+uaa6558Gu/9mu/1zu90zt99u7uLj/7sz/Lbbfdxv0kcT9JPJAknh9J/HvY5vmxzXOzzf1scz/b3M82ALa5n20AbANgG9sA2MY2ALY5fvw4b//2b8/W1tat//AP//DbP/qjP/o59913361cddVVV1111VVXXfUfCT3oQQ/iqquuuuqqq6666qr/OK/zOq/z3h/+4R/+Xbu7u/zsz/4sz3jGM5AEgCTuJ4n7SeK5SeKFkcQLYpt/iW2em20eyDb3s839bHM/2wDYBsA2ALYBsI1tAGxjGwDb2ObEiRO8/du/PVtbW7f+1m/91nf/6I/+6Odw1VVXXXXVVVddddV/FPSgBz2Iq6666qqrrrrqqqv+/V7sxV7stT/3cz/3t3Z3d/nZn/1ZnvGMZyCJ+0kCQBL3k8QDSeK5SeI/km2em20eyDYPZJv72eZ+tgGwDYBtAGwDYBsA29gGwDa2AbCNbWzzci/3crz+678+4zje+lu/9Vvf/aM/+qOfw1VXXXXVVVddddVV/17oQQ96EFddddVVV1111VVX/dtdc801D/7wD//w77rxxhtf+2/+5m/43d/9XQAkASAJAEncTxL3k8QDSeIFkcS/lm1eENs8N9s8kG3uZxsA29zPNgC2AbANgG0AbANgG9sA2MY2ALaxjW2OHz/Oy73cy/EGb/AG3Hfffbd+1md91uvcd999t3LVVVddddVVV1111b8V5fjx41x11VVXXXXVVVdd9W/zju/4jp/1SZ/0ST999913P/h7v/d7ue222wCQBIAkACQBIAlJAEhCEgCSkIQk7icJSUhCEpL4t5CEJCQhCUncTxKSkMT9JCGJ+0nifpIAkIQkACQBIAlJAEjifpIAkMT9JHE/SdxvtVrxtKc9jT//8z8nIo6/y7u8y1tvbm4e/4d/+Iff4aqrrrrqqquuuuqqfwv0oAc9iKuuuuqqq6666qqr/nWuueaaB3/4h3/4d914442v/TM/8zM84xnPQBKSAJAEgCQAJHE/SdxPEg8kiedHEv8etnlBbPNAtnkg29zPNvezDYBt7mcbANsA2AbANrYBsI1tAGxjG9sA2MY2trHN8ePH+eAP/mCmabr1sz7rs17nvvvuu5Wrrrrqqquuuuqqq/41KMePH+eqq6666qqrrrrqqhfdO77jO37WJ33SJ/30XXfd9eDv/d7v5dKlS0hCEgCSAJAEgCQAJCEJAElIAkASkpDE/SQhCUlI4gWRhCQkIYkXRBKSkIQkJHE/SUhCEgCSkIQkACQhCQBJSAJAEgCSkASAJAAkASAJAEncTxL3k8Rzk8T9VqsVf//3f09EHH+Xd3mXt97c3Dz+D//wD7/DVVddddVVV1111VUvKvSgBz2Iq6666qqrrrrqqqv+Zddcc82DP/zDP/y7brzxxtf+mZ/5GZ7xjGcAIAlJAEhCEgCSuJ8kACRxP0k8kCSeH0n8R7HN82ObB7LNA9nmfrYBsM39bANgGwDbANgGwDYAtrENgG1sA2Ab29jGNraxDYBtMpOHPvShvPM7vzN33333b3/mZ37m63DVVVddddVVV1111YsCPehBD+Kqq6666qqrrrrqqhfummuuefDnfM7n/NbR0dGDv+d7vgdJAEhCEgCSkASAJAAkASCJ+0nigSTxQJJ4YSTxorDNC2Ob52abB7LN/WxzP9vczzYAtgGwDYBtAGwDYBsA29gGwDa2sQ2AbWxjG9vYxja2sc2JEyd4wzd8Qx70oAfd+lmf9Vmvc999993KVVddddVVV1111VUvDOX48eNcddVVV1111VVXXfWCvdiLvdhrf8VXfMVf/dmf/dnxn/mZn0ESAJKQhCQkIQkASQBIAkASAJKQBIAkJCEJAElIQhL3k4QkJCEJSUjiRSUJSUhCEpJ4IElIQhL3k4Qk7icJSQBIQhIAkpAEgCQAJAEgCUkASOJ+kgCQxP0k8UCSeGGWyyV33XUXko6/67u+61tvbm4e/4d/+Iff4aqrrrrqqquuuuqqF4Ry/Phxrrrqqquuuuqqq656/t7xHd/xsz7iIz7iu7/7u7+bv/mbv0ESAJKQhCQAJCEJSUhCEpKQBIAkACQhiftJQhL3k4QkJPHcJCEJSUhCEpKQhCQkIQlJSEISz00SkpCEJO4nCUlIAkASkpAEgCQkASAJSQBIAkASkgCQBIAkACRxP0kASOJ+knhuknh+bLNcLnnqU5/Ker0+/s7v/M6vDfAP//APv8NVV1111VVXXXXVVc8P5fjx41x11VVXXXXVVVdd9bw+93M/97de5mVe5r1/+Id/mGc84xlIAkASkpAEgCQkASAJAEkASEISAJK4nyQkASAJSUjifpKQhCQkIYl/C0lIQhKSkMQDSUISkrifJCRxP0ncTxL3kwSAJCQBIAkASQBIAkAS95MEgCQeSBL/GnfeeSd/8id/wru8y7u89oMe9KAH/+mf/unPcNVVV1111VVXXXXVc0MPetCDuOqqq6666qqrrrrqOX3u537ub914442v/VVf9VVIQhKSkIQkJAEgCUkASAJAEgCSAJDE/SRxP0k8kCSeH0n8e9jmBbHNc7PNA9nmfra5n20AbHM/2wDYBsA2ALYBsI1tAGwDYBvb2AbANraxjW1sYxvb2MY2tslMbHPixAk+/MM/nGmabv2QD/mQh3DVVVddddVVV1111QOhBz3oQVx11VVXXXXVVVdd9Wyf+7mf+1sbGxuv/d3f/d1IQhKSkIQkJAEgCUkASEISAJIAkMT9JHE/SdxPEs9NEv/ZbPPcbPNAtnkg29zPNgC2uZ9tAGwDYBsA2wDYBsA2tgGwjW0AbGMb2wDYxja2sY1tbGObzMQ2tslMTpw4wbu+67ty7NixWz/kQz7kIVx11VVXXXXVVVdddT/K8ePHueqqq6666qqrrroKrrnmmgd/0id90k9tbGy89nd/93cjCUlIQhKSkASAJCQhCUlIAkASAJIAkIQkACQhCQBJSOJ+kpCEJB5IEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSeG6SkIQk7icJSdxPEpK4nyTuJwkASUgCQBIAkgCQBIAkACQBIIn7SeJ+knh+JHE/2zw/y+WSJz/5yUg6/oEf+IHv/Wd/9mc/c3h4uMtVV1111VVXXXXVVZTjx49z1VVXXXXVVVdd9f/dNddc8+AP//AP/66NjY3X/u7v/m4kIQlJSEISkgCQhCQkASAJAEkASAJAEgCSkASAJCRxP0lI4n6SkIQkJPGCSEISkpCEJCTxgkhCEpKQxANJQhL3k4QkJAEgCUkASEISAJKQBIAkACQBIAkASQBIAkASAJK4nyQeSBIvKtvcb7lccv78eSLi+Lu927u99Z/92Z/9zOHh4S5XXXXVVVddddVV/7+hBz3oQVx11VVXXXXVVVf9f/e5n/u5v7WxsfHa3/Vd34UkIgJJSEISkgCQhCQkASAJSQBIAkAS95MEgCTuJ4kHksTzI4n/SLZ5fmzz3GxzP9s8kG0AbHM/2wDY5n62AbCNbQBsA2AbANvYBsA2trENgG1sYxvb2MY2trGNbTIT29gmM8lMTpw4wSu+4ivyCq/wCrd+yId8yEO46qqrrrrqqquu+v+N4Kqrrrrqqquuuur/uc/93M/9rY2Njdf+ru/6LiQhCUlIQhL3k4QkJAEgCUkASAJAEgCSkASAJAAkIYn7SUISDyQJSUji+ZGEJCQhCUlIQhKSkMQLIglJSOKBJCEJSdxPEpIAkIQk7icJAElIAkASAJKQBIAkACQhCUlIAkASAJKQxP0kIYkHkoQkJCEJSdxPEpIAkIQkLl68yJ/8yZ+wu7v74M/93M/9La666qqrrrrqqqv+f6McP36cq6666qqrrrrqqv+vPvdzP/e3NjY2Xvs7v/M7iQgkIQlJSEISkpCEJCQBIAlJAEgCQBIAkgCQhCQAJHE/SUjifpKQhCTuJwlJSEISkpDEi0ISkpCEJCQhiQeShCQk8UCSkMT9JCEJAElIAkASkgCQBIAkJAEgCQBJAEgCQBL3k8T9JHE/Sfx7LZdLnvzkJ/MyL/MyD37MYx7z4D/90z/9Ga666qqrrrrqqqv+f6IcP36cq6666qqrrrrqqv+PPvzDP/y7jh8//tLf8z3fc1wSEYEkJCEJSUhCEpKQBIAkJAEgCUlIQhKSAJAEgCQkASAJSQBIQhKSuJ8kJCGJ50cSkpCEJCQhCUlIQhKSkMTzIwlJSEIS95OEJCRxP0lI4n6SuJ8k7icJAEncTxIAkgCQBIAkACRxP0ncTxIPJIkXhW0eyDYAR0dHPOlJT+Kt3uqtXnqxWPAP//APv8NVV1111VVXXXXV/z+U48ePc9VVV1111VVXXfX/zYu92Iu99vu+7/t+9U//9E8fv3TpEpKICCQhCUlIQhKSkASAJCQBIAlJAEgCQBKSkIQkACQhCQBJSOJ+kpCEJB5IEpKQhCQk8a8hCUlIQhKSeG6SkMQDSUIS95OEJAAkIQkASUgCQBIAkpAEgCQAJAEgCQBJAEjifpK4nySemyReENvczzbP7ejoiL/6q7/i3d7t3V57sVjwD//wD7/DVVddddVVV1111f8v6EEPehBXXXXVVVddddVV/5+82Iu92Gt/7ud+7m99+7d/O894xjOICCQhiYhAEpKQhCQkASAJSQBIQhIAkgCQBIAkACRxP0k8kCQeSBIvjCSen+3tbXZ2dgC48cYbAdje3mZnZ4f7bW9v8y/Z29sDYG9vD4A777wTgEuXLnHHHXcAYJv72eZ+trmfbQBsA2AbANsA2AbANrYBsA2AbWxjGwDb2MY2trGNbWxjG9vYxja2yUxsk5nYJjPJTDKT48eP89Ef/dG3fv3Xf/37/MM//MNvc9VVV1111VVXXfX/B3rQgx7EVVddddVVV1111f8X11xzzYO/6Zu+6enf9m3fxjOe8QwigohAEpKICCQhCUkASEISkpAEgCQAJAEgCQBJAEjifpK4nyQeSBLPTRLPbXt7mxtvvJGdnR1uvPFGtre32dnZ4b/K3t4eAHt7e+zt7XH77bezt7fH7bffDoBt7mcbANsA2AbANgC2AbCNbQBsYxsA29gGwDa2sY1tbGMb29jGNrbJTGxjm8zENplJZpKZtNZ45Vd+Zd70Td/01s/6rM96nfvuu+9Wrrrqqquuuuqqq/5/QA960IO46qqrrrrqqquu+v/icz/3c39rvV6/9k/+5E8SEUgiIpCEJCQhCUlIQhKSkIQkACQBIAlJAEgCQBL3k8T9JHE/STw3Sdxve3ubG2+8kZ2dHW688UZuvPFGXpDWGq01MpPWGgCtNVpr3C8z+ZdEBAClFAD6vgcgIiilUErh+WmtcXh4yO23384dd9zB3//93wNgGwDbANgGwDYAtgGwjW0AbGMbANvYxja2AbCNbWxjG9vYJjOxjW0yE9tkJrbJTDKTzKS1xpu92ZvxsIc97Lc/8zM/83W46qqrrrrqqquu+v8BPehBD+Kqq6666qqrrrrq/4N3fMd3/Kw3fMM3/Owv//IvJyKICCQREUhCEpKQhCQkIQlJSAJAEpIAkASAJAAkASCJ+0nifpJ4IEkAbG9vs7Ozw4033siNN97IjTfeyHNrrTEMA601MpPWGsMwcD9J/EexzXMrpQDQ9z0AXddRSqHve57b3t4et99+O7fddhv/8A//gG0AbANgGwDbANjGNgC2sQ2AbWxjG9vYxja2sY1tbGMb29gmM7FNZmKbzCQzyUxaaxw/fpz3fu/35m/+5m8++0d/9Ec/h6uuuuqqq6666qr/+9CDHvQgrrrqqquuuuqqq/6ve7EXe7HX/tzP/dzf+rZv+zae8YxnEBFEBJKICCQhCUlIQhKSkASAJCQhCQBJAEgCQBIAkgCQxP0k8UCS2N7e5jGPeQw33ngjN954Iw/UWqO1xjAMjOPIMAz8TxURlFIopbBYLOj7ngdqrXHXXXdx22238Q//8A/s7u4CYBsA29gGwDYAtrGNbQBsYxvb2MY2trGNbWxjm8zENrbJTGyTmWQmmUlrjczk+PHjfNzHfdytX//1X/8+//AP//DbXHXVVVddddVVV/3fhh70oAdx1VVXXXXVVVdd9X/dN33TNz39Z37mZx586623EhFEBBGBJCQREUhCEpKQhCQAJCEJSQBIAkASAJIAkASAJO4nifvt7OzwmMc8hhtvvJEbb7yRB2qtsVwuGYaBYRh4UUniP4Nt/i1KKQAsFgv6vqfvex7o0qVL/P3f/z1///d/z+7uLgC2sQ2AbWwDYBvb2AbANraxjW1sYxvbZCa2sU1mYhvbZCaZSWaSmbTWaK3xyq/8yrzFW7zFrR/yIR/yEK666qqrrrrqqqv+b6McP36cq6666qqrrrrqqv/LPvzDP/y7NjY2Xvs3f/M3iQgigoggIpCEJCICSUhCEgCSkIQkJAEgCQBJSEISkpAEgCQAJCEJgFd6pVfiMY95DK//+q/PjTfeyM7ODq011us1q9WKCxcucHh4yDAMtNaQxP8mtrlfZpKZDMPAcrlkuVwyjiO26bqO+XzOLbfcwsu//Mtzyy23IIn77ruP+0nifpJ4QSQBYJsXxDbPzTYAz3jGM3jZl33Z44997GMf/Kd/+qc/w1VXXXXVVVddddX/XZTjx49z1VVXXXXVVVdd9X/Vi73Yi732+77v+371t33bt7Fer4kIIoKIICKQhCQkIQlJSEISkpCEJAAkIQlJSAJAEgCSkASAJHZ2dnjpl35p3vZt35Ybb7yRM2fOALBerzk4OODSpUusViuGYeDfShL/mWzz75WZjOPIarXi6OiIaZrITLqu49ixYzziEY/gJV7iJZjP50ji0qVLSOKBJPGiss2/xDYAj3/84/nAD/zAl/6Hf/iH3zl79uytXHXVVVddddVVV/3fhB70oAdx1VVXXXXVVVdd9X/Vh3/4h3/X2bNn3/uv//qvKaUQEUgiIogIJCEJSUhCEpKQhCQkASAJSQBIAkASAJIAkMTOzg6v+IqvyGMe8xju11rj6OiI/f19XhSS+N/GNv8aEcFsNmNjY4PZbMb9/u7v/o6//du/5RnPeAYAtrGNbQBsYxvb2MY2trFNZmIb22QmtrFNZpKZZCaZSWuN1hqtNV75lV+Zt3qrt7r1Qz7kQx7CVVddddVVV1111f9NlOPHj3PVVVddddVVV131f9E7vuM7ftZjHvOYj/7FX/xFIoKIICKQREQgiYhAEpKQhCQkIQkASUhCEgCSAJAEgCQAXumVXonXf/3X55Ve6ZU4c+YMAHt7e1y8eJH9/X3W6zUPJIl/D0n8V7DNv5dtnpttxnHk6OiIo6MjMpPZbMa1117LS77kS/KSL/mSrNdr7rvvPl4QSQDY5gWxzXOzDYBtnvGMZ/CyL/uyx0+fPs0//MM//A5XXXXVVVddddVV//dQjh8/zlVXXXXVVVddddX/RZ/7uZ/72z/2Yz/GpUuXKKUQEUQEkogIJBERSEISkpCEJAAkIQlJAEgCQBKSkMQrvdIr8QZv8AY87GEPYzabMU0TBwcHnD17lvV6jW3+NSTxv5Ft/jVsc7/MZL1ec3h4iG1KKWxsbPDIRz6SW265hWPHjnHbbbfxorLNv8Q2ALb5h3/4B97jPd7jwX/2Z3/2M4eHh7tcddVVV1111VVX/d9COX78OFddddVVV1111VX/13z4h3/4d50/f/6l/+iP/ohSChFBRBARSCIikIQkJBERSAJAEpKQhCQAJAEgCUnceOONvN3bvR0Pe9jDmM1mTNPEwcEB58+fZ71e88JI4t9DEv+VbPPvYZsXRWayXq9ZrVaM40jXdZw8eZIHPehBvNRLvRTz+ZzbbruNF8Y297MNgG2em21sA3B4eMjNN998/LGPfezxP/3TP/0Zrrrqqquuuuqqq/5voRw/fpyrrrrqqquuuuqq/0te7MVe7LXf933f96u/5mu+hoggIogIIoKIQBIRgSQkIQlJSEISkpCEJAAkIQlJHDt2jDd7szfjlV/5lZnNZkzTxP7+PufPn2e9XvNAkvjXkMT/Zrb517DN85OZjOPIarViGAb6vmdjY4MHPehBvORLviT33nsvu7u7/HvYBsA2AE9/+tP5kA/5kJf+h3/4h985e/bsrVx11VVXXXXVVVf930E5fvw4V1111VVXXXXVVf+XfMRHfMR3/fVf//WDn/GMZ1BKISKICCKCiEASEYEkJCEJSUhCEpIAkIQkJLGzs8NrvdZr8QZv8Abs7OwwTRP7+/ucO3eOYRh4UUni30MS/x1s8+9hmxeFbe6XmYzjyHK5JDOptbKxscFLvdRLcfz4ce69915WqxXPj23+JbYBsM3R0RF33303b/Zmb/bg3/qt3/oerrrqqquuuuqqq/7voBw/fpyrrrrqqquuuuqq/yte7MVe7LXf6Z3e6bO/5Vu+hVIKEUEphYhAEhGBJCICSUhCEpKQhCQAJCEJSbzSK70Sb/EWb8GZM2cAuHTpEufOnWO9XvOCSOJfSxL/m9nmX8s2/5LWGqvViuVySWYyn8+57rrreNSjHsViseAZz3gGD2Sb+9kGwDbPzTa2AbDN4eEhb/zGb/zgW2+99XfOnj17K1ddddVVV1111VX/N1COHz/OVVddddVVV1111f8VH/ERH/Fdv/mbv/nge++9l1IKEUFEEBFIIiKQhCQiAklIQhIAkpCEJHZ2dni3d3s3HvawhwGwWq248847Wa1WPJAkXhSS+PeQxH8n2/x72OZFYZvnJzNZr9ccHByQmRw/fpwHP/jBvPRLvzT33HMPu7u7/FvZ5vDwkEuXLvHmb/7mD/6t3/qt7+Gqq6666qqrrrrq/wbK8ePHueqqq6666qqrrvq/4MVe7MVe+53e6Z0++3u/93sppRARlFKICCICSUQEkpCEJCQhCUlIQhKSeOVXfmXe4i3egtlsxjRN3Hfffezu7iKJf4kk/jUk8X+JbV5UtvmX2OaBMpPVasXBwQEbGxtsbGzw0i/90kji1ltv5X62+ZfYxjYAtjk4OOCN3/iNH3zrrbf+ztmzZ2/lqquuuuqqq6666n8/yvHjx7nqqquuuuqqq676v+Cd3umdPutJT3rSSz/jGc+glEIphYggIogIJBERSEISkpCEJCQhiWPHjvFu7/ZuPOxhDwNgd3eX++67j2maeH4k8aKQxL+VJP4nsc2/lW3+JbZ5YWwDkJkcHR2RmSwWCx784AfzMi/zMtxzzz1cvHiR+9kGwDbPzTYAtrHNwcEBu7u7vMVbvMWDf+u3fut7uOqqq6666qqrrvrfj3L8+HGuuuqqq6666qqr/i/4pE/6pJ/+1m/9VkopRAQRQUQQEUQEkpBERCAJSUhCEpJ4lVd5Fd7iLd6C2WzGNE3ce++9HBwc8ECS+JdI4kUlif+LbPOiss2/xDbPT2ayXC7Z399nc3OTjY0NHv3oR9N1HbfeeisvCtsA2MY2BwcHvOmbvim33nrr35w9e/ZWrrrqqquuuuqqq/53oxw/fpyrrrrqqquuuuqq/+3e8R3f8bOOjo5e+wlPeAKlFEopRAQRQUQgiYhAEpKICCQhiWPHjvGWb/mWPPaxjwXg4sWL3HvvvbTWeGEk8aKSxL+FJP4nss2/hW1eFLZ5YWzzQJnJ4eEhmcn29jYPechDeNmXfVke97jHsVqtuJ9tnpttbANgm8PDQ2644YbjD33oQ/nTP/3Tn+Gqq6666qqrrrrqfzfK8ePHueqqq6666qqrrvrf7sM//MO/+8d//MePj+NIRBARRAQRQUQgiYhAEpKQhCRuvvlm3uM93oOdnR2maeKee+7h4OCA50cS/xJJvKgk8Z9NEs/NNv/ZbPOvYZsXxjYvjG0yk+Vyyf7+PltbW2xsbPDYxz6W1WrF3XffzQtiGwDb2MY2T33qU3nHd3zH47/wC7/wNVx11VVXXXXVVVf970Y5fvw4V1111VVXXXXVVf+bvc7rvM57z+fz9/6bv/kbaq2UUogIIoKIICKQREQgCUlI4lVf9VV54zd+YwCWyyV33HEH0zQBIIl/iSReFJL4t5DE/2S2+bewzYvCNi+MbZ6fzOTg4IDM5MSJEzziEY+glMLTn/50XhDbANjGNgcHB7z0S7/08XPnzv3O2bNnb+Wqq6666qqrrrrqfy/K8ePHueqqq6666qqrrvrf7H3f932/6klPetKDz549S0QQEZRSkEREEBFIIiKQhCTe8R3fkRd7sRcD4MKFC5w9e5YXRhL/Ekn8a0jiP4Mk/jVs85/BNi8q2/xLbPPC2OZ+mck4jmQmW1tbPPShD+XEiRM87nGPwzbPzTa2uV9mcvfdd/PO7/zOD/6t3/qt7+Gqq6666qqrrrrqfy+Cq6666qqrrrrqqv/lXuzFXuy1/+qv/oqIICKQhCQiAklIQhIAx44d4x3f8R25+eabAbjzzju5cOECtrGNbWzz3GxjG9vY5vmxjW1sYxvbvDC2sY1tbGMb29jm38M2trGNbWxjG9vYxja2sY1t/j1sYxvb2MY2trHNC2Ib29jGNrZ5fmxjG9vY5rnZxja2sc0D2WYcR86fP88dd9wBwMu+7MvyiZ/4iZw8eRJJSEISkpBERCCJiKCUwsWLF3mxF3ux136xF3ux1+aqq6666qqrrrrqfy/K8ePHueqqq6666qqrrvrf6nVe53XeG3jrJz7xiZRSiAhKKUQEEYEkIgJJHDt2jHd+53fmmmuuYRxH7r77bpbLJQCSeEEk8S+RxL+GJP6jSeLfwzb/0WzzorLNv8Q2L4htnp9pmtjb22Nra4vNzU1e7MVejH/4h39gtVrxQLYBsA3AwcEBx44dY2tr69Z/+Id/+B2uuuqqq6666qqr/neiHD9+nKuuuuqqq6666qr/rT7pkz7pp376p3/6+DAMlFIopRARRAQRgSQk8aAHPYj3eq/3YjabcXR0xO233840TTw/knhhJPGikMS/hST+t7DNv4VtXhS2eWFs84LY5n6ZyeHhIbPZjJ2dHV7sxV6Mu+++m4sXL3I/29gGwDa2efrTn857v/d7P/gXfuEXvoarrrrqqquuuuqq/50Irrrqqquuuuqqq/4X293dffDFixeJCCQhCUlIAkASt9xyC+/0Tu8EwNHREXfccQe2sY1tnpttbGMb2zw329jGNraxzfNjG9vYxja2sc2/xDa2sY1tbGMb29jGNraxjW3+o9nGNraxjW1sYxvb2MY2tvmX2MY2trGNbWzz/NjGNraxjW2em21sYxvbPDfb2MY2z20YBu655x7OnTvHiRMneMd3fEce9rCHIQlJSCIiiAgiglIKFy5c4O67737wi73Yi702V1111VVXXXXVVf87UY4fP85VV1111VVXXXXV/0av8zqv896XLl1667Nnz1JKoZRCRBARRASSeNCDHsQ7v/M7A3Dp0iXuuusuJPGCSOKFkcSLQhL/FpL438Y2/xa2+ZfY5l9imxfENg+UmUzTRGuNU6dO8bCHPYzFYsFTn/pUAGxjG9vYxjbr9ZqHPvSht/7DP/zD73DVVVddddVVV131vw/BVVddddVVV1111f9SL/ZiL/Zaf//3f09EIAlJSEISkrjlllt453d+ZwAuXbrEPffcA4BtbGOb52Yb29jGNs/NNraxjW1s8/zYxja2sY1tbPMvsY1tbGMb29jGNraxjW1s85/JNraxjW1sYxvb2MY2trHNv8Q2trGNbWxjm+fHNraxjW2eH9vYxja2eW62sY1tHsg2thmGgXPnznHu3DlOnDjBK7zCK/BGb/RGSEISkogIIoJSCk95ylN48Rd/8dfmqquuuuqqq6666n8nKlddddVVV1111VX/S21sbLx3ZtJ1HRGBJCQhiVtuuYV3eZd3AeDSpUvcfffdAEjigWxzP0k8N9s8kCSem22emySeH9u8IJL417DN/xS2+deyzYvCNi+MbV4Q27wgZ8+exTZnzpzhFV7hFbDNL/3SLxER2CYiiAh2d3e5++67H8xVV1111VVXXXXV/06U48ePc9VVV1111VVXXfW/zeu8zuu893333ffWBwcHRAQRQUQQETz4wQ/mXd7lXQC4dOkSd999N8+PJF4YSfxLJPGiksR/BEn8V7HNfwTbvKhs8y+xzQtimxfENg90dHQEwKlTpzh58iR33XUXFy5cwDYAtslMdnd3j19zzTW/c/bs2Vu56qqrrrrqqquu+t+Fcvz4ca666qqrrrrqqqv+t3nzN3/zj/qrv/qrly6lUEohIogIHvzgB/Ou7/quAFy6dIm77rqL+0niBZHEv0QSLwpJ/GtJ4n872/xr2eZFYZsXxjYviG1eENscHR0BcPr0aR7+8Idz1113cf78eWxjG9tcvHiR7e3tW8+dO/c7XHXVVVddddVVV/3vQjl+/DhXXXXVVVddddVV/9t0XffRq9XqwaUUIoKI4OTJk7zv+74vAIeHh9xxxx28IJJ4YSTxL5HEi0oS/xEk8d/BNv9etnlR2eaFsc0LY5sXxDbP7ejoCNucPn2ahz/84fz93/89y+US29imtcaxY8c4d+7c93DVVVddddVVV131vwvl+PHjXHXVVVddddVVV/1vc8MNN3z3OI6UUogITp48ybu927sxn885PDzkGc94Bg8kiRdEEv8SSbwoJPGvJYn/K2zzr2WbF4VtXhjbvCC2eUFsAzCOI6UUTpw4wUu+5Evyt3/7tyyXS2xjm3vuuQfbX8NVV1111VVXXXXV/y6U48ePc9VVV1111VVXXfW/ycbGxnsvFou3LqUQEZRSePu3f3uuvfZaDg8PufXWW5HECyKJF0YS/xJJvKgk8e8lif9utvn3ss2Lwjb/Etu8MLZ5QWzz3DKT5XLJYrHg2LFjvNRLvRS/9Vu/hW2e6fhqtfqdiLiVq6666qqrrrrqqv89KMePH+eqq6666qqrrrrqf5MTJ0581NbW1kuXUogI3uM93oNbbrmFcRx56lOfynOTxAsjiRdGEi8KSfxrSeL/Gtv8a9nmX2Kbf4ltXhDbPD+2uV9mcnh4yM7ODltbW5w+fZq/+Zu/wTaZSWY+GPgerrrqqquuuuqqq/73oBw/fpyrrrrqqquuuuqq/01uvvnmn661EhG89mu/Ni/5ki8JwG233cYwDEjiBZHECyOJf4kkXlSS+PeQxP80tvn3sM2Lwjb/Etu8MLZ5QWzz/LTW2N/f5/Tp09x0001I4klPehK2yUwy82u46qqrrrrqqquu+t+Dcvz4ca666qqrrrrqqqv+t9ja2nrv48ePv3UphYc85CG8xVu8BQBPf/rTOTw85LlJ4oWRxAsjiReFJP41JPF/mW3+tWzzL7HNC2ObF8Y2z49tHqi1xjiO7OzscOrUKe68807OnTuH7eNHR0eUUn6Hq6666qqrrrrqqv8dKMePH+eqq6666qqrrrrqf4sHP/jBP1VrPX7q1Ck+4AM+AIB7772XixcvAiCJF0QSL4wk/iWSeFFJ4t9DEv9T2ebfwzYvCtv8S2zzwtjmBbHN82Ob5XIJwJkzZ3jkIx/J3/zN33B4eIikB2fm13DVVVddddVVV131vwPl+PHjXHXVVVddddVVV/1vMJvNXvv06dMfXUrhnd7pnTh+/DiHh4fccccdPD+SeEEk8S+RxItCEv8akvj/wDb/Wrb5l9jmhbHNC2ObF8Q2DzSOI/P5nOPHj3PLLbfwh3/4h2Tm8dVq9TsRcStXXXXVVVddddVV//NRjh8/zlVXXXXVVVddddX/BqdPn/6sra2tl36d13kdXuqlXophGHjyk58MgCReGEm8MJL4l0jiRSWJfytJ/G9gm38P27wobPMvsc0LY5sXxDbPj21aaxweHnLs2DGuueYaJPGEJzyBYRiIiJ/hqquuuuqqq6666n8+yvHjx7nqqquuuuqqq6763+DhD3/4Tz/kIQ/hrd7qrQC49dZbGceR5yaJF0YS/xJJ/Esk8a8lif8skvi3sM1/Jtv8a9jmX2KbF8Y2L4xtXhDbPFBrjdVqxcmTJzl9+jR33HEHZ8+ePZ6ZX8NVV1111VVXXXXV/3wEV1111VVXXXXVVf8LbG5uvvc0Tbz2a782APfccw8HBwfY5rnZxja2eX5sYxvb2Ob5sY1tbGOb58c2trGNbWxjmxfGNraxjW1sYxvb/HvZxja2sY1tbGMb29jGNraxjW1s8+9lG9vYxja2sY1tbPPC2MY2trGNbZ4f29jGNrZ5fmxjG9s8P7axjW2em21sY5sHso1t9vf3ueeeezh16hTv937vx2w2e/A0Ta/NVVddddVVV1111f98lOPHj3PVVVddddVVV131P9111133VW/yJm/y4Jd+6ZdmGAZuvfVWnh9JvDCS+JdI4l8iiX8NSfxHk8R/Btv8R7PNv4Zt/iW2+ZfY5gWxzQtim+c2DAOLxYLjx49z5swZ/vRP//TBwPdw1VVXXXXVVVdd9T8b5fjx41x11VVXXXXVVVf9T/car/Ea3/02b/M2ADz96U9nGAYAJPGCSOKFkcSLQhIvCkn8W0nifzvb/FvY5kVhm3+JbV4Y27wgtnl+bAPQWuPg4IBrrrmGjY0N7rnnngffdtttvxMRt3LVVVddddVVV131PxfBVVddddVVV1111f9w11577Xe97uu+LgD33HMPBwcH3M82trHNc7ONbWzz/NjGNraxzQtiG9vYxjYviG1sYxvb2MY2Lwrb2MY2trGNbWxjG9vY5r+abWxjG9vYxja2sY1tbGObf4ltbGMb29jGNi+IbWxjG9u8ILaxjW2eH9vYxjbPzTa2sc1zs41tHmgYBu6++25Onz7NB3zAByDptbjqqquuuuqqq676n41y/Phxrrrqqquuuuqqq/4ne7M3e7OvfvVXf/XjwzDwtKc9jftJ4gWRxAsjiX+JJF5Ukvi3kMT/Jbb5t7DNi8o2L4xtXhjbvCC2eUFsAzAMA8ePH2d7e5tSyoP//u///mu46qqrrrrqqquu+p+L4Kqrrrrqqquuuup/sM3Nzfd+p3d6pwcDPOMZz+CBbGMb2zw329jGNs+PbWxjmxfENraxjW1eGNvYxja2sc2Lwja2sY1tbGMb29jGNrb572Yb29jGNraxjW1sYxvb/EtsYxvb2MY2tnlhbGMb29jm+bGNbWzz/NjGNrZ5braxjW2em21sY5v7DcPArbfeCsDrvM7rPPj06dOvzVVXXXXVVVddddX/XJTjx49z1VVXXXXVVVdd9T/VB33QB33UQx7ykJfe39/n7rvvBkASL4wkXhhJvDCSeFFJ4t9CEv+X2ebfwjYvCtv8S2zzgtjmBbHNC2IbgGEY2N7e5sSJE2xtbT34T//0T7+Hq6666qqrrrrqqv+ZKMePH+eqq6666qqrrrrqf6IXe7EXe+33fd/3/WqAJz/5ybTWeG6SeGEk8cJI4kUhiReVJP4jSOJ/Itv8R7DNi8o2/xLbvDC2eUFs84LY5vnZ29vj2muvZXNzk1tvvfVvzp49eytXXXXVVVddddVV//NQjh8/zlVXXXXVVVddddX/RB/xER/xXddcc82Dz58/z/nz5wGQxAsiiRdGEv8SSbwoJPGvJYn/b2zzr2WbF4Vt/iW2eUFs84LY5gWxDUBrDYDrrrvu+DXXXPPg3/qt3/oerrrqqquuuuqqq/7nIbjqqquuuuqqq676H+jFXuzFXvvFXuzFXhvg1ltv5X62sY1tnpttbGOb58c2trGNbZ4f29jGNrZ5QWxjG9vYxjb/EtvYxja2sY1tbGOb/41sYxvb2MY2trGNbf4ltrGNbWxjmxfENraxjW2eH9vYxja2eW62sY1tnh/b2Oa52cY2tnmgc+fOAfBiL/Zir/1iL/Zir81VV1111VVXXXXV/zwEV1111VVXXXXVVf8DvdM7vdNnAdx1113Y5vmxjW1s89xsYxvb2Ob5sY1tbPOC2MY2trGNbV4Q29jGNraxjW1eVLaxjW1sYxvb2MY2trGNbWxjG9v8R7GNbWxjG9vYxja2sY1tbGMb27yobGMb29jGNrZ5YWxjG9vY5vmxjW1sY5vnxza2sc3zYxvb2Oa52cY2z802tlmv1zz96U8H4J3e6Z0+i6uuuuqqq6666qr/eQiuuuqqq6666qqr/od5sRd7sdd+sRd7sdcGuOuuuwCwjW1s8/zYxja2eX5sYxvbPD+2sY1tbGObF8Q2trGNbWzzwtjGNraxjW1sYxvb/HvZxja2sY1tbGMb29jGNraxjW1sYxvb2MY2/162sY1tbGMb29jmX2Ib29jGNrZ5fmxjG9vY5gWxjW1s8/zYxja2eW62sY1tnpttbPNA+/v7rNdrXuzFXuy1X+zFXuy1ueqqq6666qqrrvqfheCqq6666qqrrrrqf5h3eqd3+iyApz/96djmudnGNrZ5fmxjG9s8P7axjW1s84LYxja2sc0LYxvb2MY2trHNi8I2trGNbWxjG9vYxja2sc1/JdvYxja2sY1tbGMb29jGNrZ5UdjGNraxjW1s84LYxja2sc0LYhvb2MY2z802trGNbZ6bbWxjm+dmG9vY5rnZZrVaceeddwLwTu/0Tp/FVVddddVVV1111f8sBFddddVVV1111VX/g7zYi73Ya7/Yi73YawOcO3cOANvYxjbPzTa2sc3zYxvb2MY2z49tbGMb27wgtrGNbWxjm3+JbWxjG9vYxja2+bewjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1s829lG9vYxja2sY1tXhjb2MY2trHNC2Ib29jGNs+PbWxjm+fHNraxzXOzjW1s89xsYxvb3G9/fx+AF3uxF3vtF3uxF3ttrrrqqquuuuqqq/7nILjqqquuuuqqq676H+Sd3umdPgvgzjvv5PmxjW1s89xsYxvb2Ob5sY1tbPOC2MY2trHNC2Mb29jGNraxzYvCNraxjW1sYxvb2MY2tvmfwja2sY1tbGMb29jGNrZ5UdjGNraxjW1eGNvYxja2eX5sYxvb2Ob5sY1tbPPcbGMb2zw329jGNs/NNqvViqc97WkAvNM7vdNncdVVV1111VVXXfU/B5Wrrrrqqquuuuqq/yGuueaaB7/Yi73YawOcO3cO29xPEs/NNveTxHOzzf0k8dxs80CSeH5s89wk8cLY5vmRxL+Wbf43ss2/hW1eFLb5l9jmhbHNC2Ob58c2z21vbw+AF3uxF3vtF3uxF3vtf/iHf/htrrrqqquuuuqqq/77EVx11VVXXXXVVVf9D/Har/3a7wVw9uxZ1us1D2Qb29jm+bGNbWzz/NjGNraxzfNjG9vYxja2eUFsYxvb2MY2tvmX2MY2trGNbWxjG9vY5n8D29jGNraxjW1sYxvb/EtsYxvb2MY2tnlBbGMb29jmBbGNbWzz/NjGNrZ5fmxjG9s8N9vY5rnZZrVacfbsWQBe53Ve57246qqrrrrqqquu+p+BylVXXXXVVVddddX/EO/0Tu/02QDnzp3DNgCSeG62uZ8knptt7ieJ58c2DySJ58c2DySJF8Y2z48kXlS2+b/ENv9atnlR2eZfYpsXxjYviG1eENs80B133MGZM2d4sRd7sdfmqquuuuqqq6666n8Ggquuuuqqq6666qr/AV7ndV7nvQH29vbY29vjfraxjW2eH9vYxjbPj21sYxvbvCC2sY1tbPOC2MY2trGNbWzzL7GNbWxjG9vYxja2+d/MNraxjW1sYxvb2OZfYhvb2MY2tnlhbGMb29jm+bGNbWxjm+fHNraxzXOzjW1s89xsYxvbPLfVasXe3h7XXHPNg1/ndV7nvbnqqquuuuqqq67670dw1VVXXXXVVVdd9T/A67zO67wXwNmzZ7GNbZ6bbWxjm+fHNraxjW2eH9vYxja2eUFsYxvb2OZfYhvb2MY2trHNi8o2trGNbWxjG9vYxja2sY1tbPOfwTa2sY1tbGMb29jGNraxjW1s86KyjW1sYxvb2OaFsY1tbGMb2zw/trGNbWzz/NjGNraxzXOzjW1s8/zYxjbPzTa2sQ3AfffdB8DrvM7rvBdXXXXVVVddddVV//0Irrrqqquuuuqqq/4HeLEXe7HXBjh79iz3s41tnh/b2MY2L4htbGObF8Q2trGNbV4Q29jGNraxzYvCNraxjW1sYxvb/HvZxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbf69bGMb29jGNraxzb/ENraxjW1s84LYxja2sc0LYhvb2Ob5sY1tbPP82MY2tnlutrHNc9vb2wPgxV7sxV77xV7sxV6bq6666qqrrrrqqv9eBFddddVVV1111VX/zT78wz/8uwDOnj2LbZ6bbWxjm+fHNraxjW2eH9vYxja2eUFsYxvb2OaFsY1tbGMb29jmRWUb29jGNraxjW1sYxvb2Oa/k21sYxvb2MY2trGNbWxjmxeFbWxjG9vYxjYvjG1sYxvbvCC2sY1tbPP82MY2tnl+bGMb2zw329jGNs/NNrZZrVbcd999AFxzzTUP5qqrrrrqqquuuuq/F8FVV1111VVXXXXVf7MXe7EXe22A++67DwDb2MY2z802trGNbZ4f29jGNi+IbWxjG9u8ILaxjW1sY5t/iW1sYxvb2MY2tvm3so1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNv8WtrGNbWxjG9vY5l9iG9vYxja2eUFsYxvb2Ob5sY1tbGOb58c2trHNc7ONbWzz/NjGNg903333AfCO7/iOn8VVV1111VVXXXXVfy+Cq6666qqrrrrqqv9GL/ZiL/ba11xzzYMB9vb2eG62sc0LYhvb2Ob5sY1tbGObF8Q2trGNbV4Y29jGNraxjW1eFLaxjW1sYxvb2MY2trHN/2S2sY1tbGMb29jGNrZ5UdnGNraxjW1eGNvYxja2eUFsYxvbvCC2sY1tnh/b2Ob5sY1tbPPcbLNarbjfi73Yi702V1111VVXXXXVVf99qFx11VVXXXXVVVf9N3qd13md9wK47777sM39JPFAtnkgSTw329xPEs+PbR5IEs+PbZ6bJF4Y2zw/kvjXss3/Fbb5t7DNi8o2/xLbvDC2eWFs84LY5oHW6zX33Xcf11xzzYNf7MVe7LX+4R/+4be56qqrrrrqqquu+u9BcNVVV1111VVXXfXf6MVe7MVeG+C+++7jgWxjmxfENraxzfNjG9vYxjYviG1sYxvbvDC2sY1tbGObF4VtbGMb29jGNraxjW3+N7ONbWxjG9vYxja2eVHYxja2sY1tXhjb2MY2tnlBbGMb2zw/trGNbZ4f29jGNs+PbWzz/Nx7770AvM7rvM57c9VVV1111VVXXfXfh+Cqq6666qqrrrrqv9E111zzYIBLly7x/NjGNrZ5QWxjG9u8ILaxjW1s84LYxja2sY1tXhjb2MY2trGNbWzzr2Eb29jGNraxjW1sYxvb2MY2trHNfyTb2MY2trGNbWxjG9vYxja2sY1t/jVsYxvb2MY2tnlhbGMb29jGNi+IbWxjG9s8P7axjW2eH9vYxjbPj21sY5vnZhvb2Ga1WgFwzTXXPPjFXuzFXpurrrrqqquuuuqq/x4EV1111VVXXXXVVf9NXud1Xue9Ae677z4AbGMb2zw/trGNbWzz/NjGNraxzQtiG9vYxjYvjG1sYxvb2OZFYRvb2MY2trGNbf6j2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNrb5j2Ab29jGNraxjW1s8y+xjW1sYxvbvDC2sY1tbPOC2MY2tnl+bGMb2zw/trGNbZ6bbWxjmwdar9dcunQJgBd7sRd7La666qqrrrrqqqv+exBcddVVV1111VVX/Td5sRd7sdcCuHTpEs/NNraxzQtiG9vY5gWxjW1s88LYxja2sc2/xDa2sY1tbGObF5VtbGMb29jGNraxjW1sY5v/braxjW1sYxvb2MY2trGNbV5UtrGNbWxjG9u8MLaxjW1sY5sXxDa2sY1tnh/b2MY2z49tbGOb58c2tnl+bGObe++9F4AXf/EXf22uuuqqq6666qqr/ntQueqqq6666qqrrvpv8mIv9mKvDbC7u4ttACTx3GxzP0k8P7a5nySeH9s8kCReENs8N0n8S2zzgkji38I2/xvZ5t/KNv8atvmX2OZfYpsXxjYviG2e26VLlwA4c+bMg7nqqquuuuqqq67670Fw1VVXXXXVVVdd9d/gxV7sxV77mmuueTDAer3mfraxjW2eH9vYxja2eX5sYxvb2OYFsY1tbGMb27wwtrGNbWxjG9u8qGxjG9vYxja2sY1tbPO/hW1sYxvb2MY2trGNbV5UtrGNbWxjm3+JbWxjG9u8ILaxjW1eENvYxjbPj21sY5vnxza2eX6WyyW7u7tcc801D36xF3ux1+aqq6666qqrrrrqvx6Vq6666qqrrrrqqv8G11xzzYMB7r33Xmwjiedmm/tJ4vmxzf0k8fzY5oEk8YLY5rlJ4oWxzfMjiX8t2/xfZZt/C9u8qGzzL7HNv8Q2L4xtXhjbPLcXe7EXe61/+Id/+G2uuuqqq6666qqr/msRXHXVVVddddVVV/03eLEXe7HXArh06RIAtrGNbZ4f29jGNi+IbWxjG9u8ILaxjW1s8y+xjW1sYxvbvChsYxvb2MY2trGNbf6vsY1tbGMb29jGNrZ5UdjGNraxjW1eGNvYxja2eUFsYxvbvCC2sY1tnh/b2MY2z49tbGObB3rGM54BwIu/+Iu/NlddddVVV1111VX/9ahcddVVV1111VVX/Td4sRd7sdcGuHTpEs/NNveTxHOzzQNJ4vmxzQNJ4vmxzXOTxAtjm+dHEi8q2/xrSeK/gm3+M9nmX8s2LyrbvChs88LY5oWxzQtjm9VqBcCZM2cezFVXXXXVVVddddV/PSpXXXXVVVddddVV/w2uueaaBwMsl0sAJPH82OZ+knh+bHM/SbwgtnkgSbwgtnlukviX2OYFkcS/l23+N7DNv4dt/jVs86Kwzb/ENv8S27wgtnmg1WoFwDXXXPPga6655sH33XffrVx11VVXXXXVVVf91yG46qqrrrrqqquu+i/2Oq/zOu8NcO+993I/29jGNi+IbWxjmxfENraxjW1eGNvYxja2+ZfYxja2sY1tbPOiso1tbGMb29jGNraxjW3+p7ONbWxjG9vYxja2sc2/hm1sYxvb2OZfYhvb2MY2L4htbGMb27wgtrGNbV4Q29jGNs+PbWzz/Ozu7gJw5syZB3PVVVddddVVV131X4vgqquuuuqqq6666n8Y29jGNi+IbWxjG9u8ILaxjW1s88LYxja2sY1tXhS2sY1tbGMb2/xb2cY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb2/xb2MY2trGNbWxjm3+JbWxjG9vY5gWxjW1sY5sXxDa2sY1tXhDb2MY2z49tbGOb52Yb29hmd3cXgBd7sRd7La666qqrrrrqqqv+axFcddVVV1111VVX/Rd7sRd7sdcC2N3dxTa2eUFsYxvbvDC2sY1tXhjb2MY2tvmX2MY2trGNbV5UtrGNbWxjG9vYxja2+b/CNraxjW1sYxvb2OZFZRvb2MY2tnlhbGMb29jmhbGNbWzzwtjGNrZ5fmxjG9s8P7axzQOtVisAXvzFX/y1ueqqq6666qqrrvqvReWqq6666qqrrrrqv9iLvdiLvTbAarXifra5nySeH9s8kCSeH9s8kCReENs8N0m8MLZ5fiTxr2Wbfy1J/GexzX8F2/xb2OZFZZsXhW3+JbZ5YWzzwiyXS6666qqrrrrqqqv+m1C56qqrrrrqqquu+m+yXC55fmxzP0m8ILa5nyReENs8kCReGNs8N0n8S2zzwkjiP4Jt/qezzb+Xbf41bPOiss2/xDYvjG1eGNvcb7VacdVVV1111VVXXfXfhMpVV1111VVXXXXVf7FrrrnmwQCr1YoHksRzs80DSeL5sc0DSeIFsc1zk8QLY5vnRxIvKtu8KCTxP5Vt/qPZ5l/LNv8atnlR2OaFsc0LY5vnZ7VaAfBiL/Zir81VV1111VVXXXXVfy2Cq6666qqrrrrqqv9CL/ZiL/baAKvViudmG9vY5gWxjW1s88LYxja2sc2/xDa2sY1tbPOisI1tbGMb29jm38M2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb2/xb2cY2trGNbWxjmxeFbWxjG9v8S2xjG9vY5gWxjW1sY5vnxza2sc0LYhvbPD+2sc3FixcBeLEXe7HX5qqrrrrqqquuuuq/DpWrrrrqqquuuuqq/0LXXHPNgwF2d3exjSSeH9vcTxLPj20eSBIviG0eSBL/Ets8N0m8KGzzL5HE/xW2+Y9gm38L27yobPMvsc2/xDYvjG2uuuqqq6666qqr/gegctVVV1111VVXXfXfyDb3k8TzY5v7SeIFsc0DSeIFsc0DSeJFYZvnRxL/Wrb515LEfzbb/Gezzb+HbV5UtnlR2OZfYpsXxjYvyGq1AuCaa6558D/8wz9w1VVXXXXVVVdd9V+EylVXXXXVVVddddV/oTNnzjwIYLlc8txscz9JPD+2eSBJvCC2eSBJvCC2eW6SeFHZ5oWRxH8E2/xvYZv/CLb517DNi8I2LwrbvDC2eWFsA7BcLgE4c+bMg7jqqquuuuqqq676r0Plqquuuuqqq6666r/QNddc82CA1WqFbSTx/NjmfpJ4QWzzQJJ4QWzzQJJ4YWzz/EjiX8s2/xJJ/G9gm/8Mtvm3sM2Lyjb/Etv8S2zzL7HNVVddddVVV1111f8AVK666qqrrrrqqqv+G9nmfpJ4fmzzQJJ4QWxzP0m8MLZ5bpL4l9jmBZHEv5Vt/j+wzb+Vbf41bPOisM2/xDb/Etu8IKvVCoBrrrnmwVx11VVXXXXVVVf916Fy1VVXXXXVVVdd9T+Ebe4niRfENveTxAtim+cmiRfGNs9NEi8q27wgkvj/wDb/EWzzr2WbF5Vt/iW2+ZfY5oWxDcByuQTgmmuueTBXXXXVVVddddVV/3WoXHXVVVddddVVV/0Xuuaaax4MsFwusY0knh/bPJAknh/bPJAkXhjbPJAk/iW2eX4k8a9hmxeVJP4nsc1/Ftv8W9jmX8M2Lwrb/Ets88LY5qqrrrrqqquuuup/CCpXXXXVVVddddVV/41scz9JvCC2uZ8kXhDbPJAkXhjbPDdJvChs84JI4t/DNv+X2Obfwzb/WrZ5UdjmRWGbf4ltrrrqqquuuuqqq/6HoXLVVVddddVVV131X+jMmTMPBlgulzw329xPEi+IbR5IEi+IbZ6bJF4Y2zw/knhR2eZfIon/C2zzH8k2/xa2eVHZ5kVhm3+JbV4Y2wDY5qqrrrrqqquuuuq/AZWrrrrqqquuuuqq/wa2sY0knh/bPJAkXhDbPJAkXhjbPJAkXhS2eX4k8W9hm38LSfxnsM1/Jdv8W9nmX8M2LwrbvChs88LY5rmtVisAzpw582Cuuuqqq6666qqr/utQueqqq6666qqrrvpvZJv7SeIFsc39JPHC2OaBJPHC2Oa5SeJFZZsXRBL/0Wzzv4Ft/iPY5l/LNi8q27wobPMvsc1VV1111VVXXXXV/zBUrrrqqquuuuqqq/4LnT179tZrrrnmwYvFgtVqxQPZ5n6SeEFs80CSeGFs80CS+JfY5vmRxL+GbV4Ukvjfwjb/GWzzb2WbF5VtXhS2eVHY5oWxDYBtrrrqqquuuuqqq/4bULnqqquuuuqqq676b2CbF8Y2DySJF8Q2DySJF8Y2z00SLwrbvCCS+Leyzf8Xtvn3sM2/hm1eVLZ5UdjmX2KbB5rP5wCcPXv2Vq666qqrrrrqqqv+61C56qqrrrrqqquu+m9imweSxAtim/tJ4oWxzQNJ4l9im+cmiX8N27wwkvj/wDb/UWzzr2Wbfw3bvChs8y+xzVVXXXXVVVddddX/MFSuuuqqq6666qqr/oewzf0k8YLY5oEk8cLY5rlJ4l9im+dHEv8WtnlRSeJ/Ctv8Z7PNv5Vt/jVs86KwzYvCNv8S21x11VVXXXXVVVf9N6Fy1VVXXXXVVVdd9d/ANi+MbR5IEi+IbR5IEv8S2zw3SbwobPOCSOI/gm3+r7HNv5dt/rVs86KyzYvCNv8S2zzQYrEA4L777ruVq6666qqrrrrqqv86BFddddVVV1111VX/he67775bARaLBbaxjW3+JbaxjW3+JbaxjW1s86KyjW1sYxvb/GvZxja2sY1tbGMb29jm/yLb2MY2trGNbWxjG9v8a9jGNraxjW1s86KwjW1sY5sXxja2sY1tXhjb2MY2L4htbGObq6666qqrrrrqqv8hqFx11VVXXXXVVVf9D2CbB5LEC2KbB5LEC2Ob5yaJF4Vtnh9J/FvZ5t9CEv/ZbPNfyTb/Hrb517DNi8o2Lwrb/EtsY5urrrrqqquuuuqq/wZUrrrqqquuuuqqq/4L3XfffbcCLBYLXhjb3E8SL4xtHkgS/xLbPDdJvKhs88JI4j+abf43ss1/BNv8a9nmX8M2Lwrb/Ets80CLxQKA++6771auuuqqq6666qqr/utQueqqq6666qqrrvpvYBvb3E8SL4htHkgSL4xtnpsk/iW2eX4k8a9lm3+JJP63s81/NNv8W9nmX8M2Lyrb/Etsc9VVV1111VVXXfU/DJWrrrrqqquuuuqq/wFscz9JvDC2eSBJ/Ets80CSeFHZ5vmRxL+Hbf4jSOJfyzb/3Wzz72Gbfy3bvKhs86KwzYtisVhw1VVXXXXVVVdd9d+AylVXXXXVVVddddV/obNnzz4DYLFY8ILY5oEk8cLY5oEk8S+xzXOTxL+GbV4YSfxXsM3/RLb5j2Kbfwvb/GvY5kVhmxeFbZ7b2bNnn8FVV1111VVXXXXVfx0qV1111VVXXXXVVf9NbAMgiRfGNveTxL/ENg8kiReFbZ4fSfxb2OZFIYn/TWzzn8k2/1a2+dewzYvKNi8K21x11VVXXXXVVVf9D0Llqquuuuqqq6666r/QfffddyvAYrHgfra5nyReGNs8kCT+JbZ5bpJ4UdnmBZHEv5dt/r+xzb+Xbf61bPOvYZsXhW3+Jba56qqrrrrqqquu+m9A5aqrrrrqqquuuup/ENs8kCReGNs8N0n8S2zz/EjiX8M2L4wk/j+yzX8k2/xb2OZfwzYvKtu8KGwDsFgsALjvvvtu5aqrrrrqqquuuuq/DpWrrrrqqquuuuqq/ya2kcQLY5sHksS/xDYPJIkXlW2emyT+rWzzopLE/2S2+c9mm38P2/xr2eZFZZsXhW2uuuqqq6666qqr/oegctVVV1111VVXXfVf6OzZs7cCLBYLAGxzP0n8S2zzQJL4l9jmuUniRWWbF0QS/1Fs8/+Bbf4j2ObfwjYvKtu8qGzzwmxsbABw9uzZW7nqqquuuuqqq676r0Plqquuuuqqq6666n8I2zyQJP4ltnkgSbwobPPcJPGvZZsXRhL/39jmP5pt/i1s869lmxeVbV4Utrnqqquuuuqqq676b0Llqquuuuqqq6666n8o2zyQJP4ltnluknhR2Ob5kcS/lW3+NSTxP5Ft/ivY5t/DNv9atnlR2eZFZZurrrrqqquuuuqq/wGoXHXVVVddddVVV/0Xuu+++24FWCwW2OZ+kviX2OaBJPGisM0DSeJfwzYviCT+I9nm/zrb/Eewzb+Fbf41bPOiss0LslgsALjvvvtu5aqrrrrqqquuuuq/DpWrrrrqqquuuuqq/wFs80CS+JfY5oEk8aKwzfMjiX8t2/xLJPH/iW3+o9nm38o2/xq2eVHZ5qqrrrrqqquuuup/OCpXXXXVVVddddVV/8Xuu+++W6+55poHLxYLlsslz49tHkgS/xLbPDdJvKhs8/xI4t/DNv8akvifxDb/VWzz72GbfwvbvKhs86KyzVVXXXXVVVddddV/MypXXXXVVVddddVV/01sYxtJ/Ets80CSeFHY5rlJ4l/DNi+IJP6j2eb/Mtv8R7HNv4Vt/jVs86KyzXNbLBYA3Hfffbdy1VVXXXXVVVdd9V+L4Kqrrrrqqquuuuq/2NmzZ28F2NjYAMA2trGNbV4UtrGNbWzzr2Eb29jGNrb5t7KNbWxjG9vYxja2+f/INraxjW1sYxvb2Obfwja2sY1tbGObF4VtbGMb29jmX2Ib29jGNi+MbWxjG9tcddVVV1111VVX/Q9D5aqrrrrqqquuuup/GNvcTxIvCts8N0m8qGzz/Eji38M2/xqS+J/GNv9VbPPvZZt/Ldv8a9jmRWWbxWIBwNmzZ2/lqquuuuqqq6666r8Wlauuuuqqq6666qr/wWzz3CTxorDNc5PEv4ZtXhBJ/Eezzf91tvmPYpt/K9v8a9jmRWWbq6666qqrrrrqqv8hqFx11VVXXXXVVVf9N7GNbe4niReFbR5IEi8q2zw3Sfxb2OaFkcT/R7b5z2Cbfyvb/GvZ5l/DNi/IxsYGAPfdd9+tXHXVVVddddVVV/3XIrjqqquuuuqqq676L3bffffdCrBYLHgg29jGNrZ5UdnGNraxzb+WbWxjG9vYxjb/XraxjW1sYxvb2MY2trGNbWzzP5VtbGMb29jGNraxjW1sYxvb/HvZxja2sY1tbPOvYRvb2MY2Lyrb2MY2/xLb2MY2trnqqquuuuqqq676H4rKVVddddVVV1111f9QtnkgSbwobPPcJPGvZZsXRBL/0Wzz/4Vt/qPY5t/KNv8atvnXsA2Aba666qqrrrrqqqv+m1C56qqrrrrqqquu+i9233333QqwWCywjSReFLZ5IEm8qGzz/Eji38I2L4wk/j+zzX8G2/xb2ebfwjb/GrZ5bhsbGwDcd999t3LVVVddddVVV131X4vKVVddddVVV1111X8z2zyQJF4UtnlukvjXsM1zk8S/l23+NSTxP5lt/ivZ5t/LNv8WtvnXss1VV1111VVXXXXV/1BUrrrqqquuuuqqq/6Hsc0DSeJFZZvnJol/Ddu8IJL4z2Cb/29s8x/FNv9WtvnXss2/xmKxAODs2bPP4Kqrrrrqqquuuuq/FpWrrrrqqquuuuqq/2Jnz559BsDGxgYvCts8kCT+NWzz3CTxb2GbF0YSV11hm/8Mtvn3sM2/hW3+NWxz1VVXXXXVVVdd9T8Alauuuuqqq6666qr/RrYBkMSLyjbPTRL/GrZ5fiTx72GbF5Uk/rexzX8V2/x72ebfyjb/Gra56qqrrrrqqquu+h+IylVXXXXVVVddddV/sfvuu+9WgMViwf1s80CS+NewzXOTxL+WbZ4fSfxHs81VYJv/KLb5t7LNv5Ztrrrqqquuuuqqq/6Ho3LVVVddddVVV131P5BtHkgS/1q2eW6S+LewzQsjiaueP9v8Z7DNv4dt/i1s86KyDcDGxgYA9913361cddVVV1111VVX/deictVVV1111VVXXfW/gG2emyT+tWzz3CTx72WbF4Uk/q+wzX8F2/xHsM2/hW3+NWxz1VVXXXXVVVdd9T8Ilauuuuqqq6666qr/YmfPnr0VYGNjA9s8kCReVLZ5IEn8W9jmBZHEfyTb/EeTxIvCNv+T2eY/km3+LWzzr2WbF2ZjYwOAs2fP3spVV1111VVXXXXVfy0qV1111VVXXXXVVf+D2OaBJPGiss1zk8S/h21eEEn8T2Cb/w1s85/FNv9Wtvm3sM1VV1111VVXXXXV/wJUrrrqqquuuuqqq/4Hs80DSeJfwzbPjyT+vWzzopDE/3W2+a9gm38v2/xb2OZfwzZXXXXVVVddddVV/wNQueqqq6666qqrrvovdt99990KsLGxgW0k8aKyzXOTxL+WbZ4fSfxHs82/lST+q9jmfwrb/Eexzb+Fbf61bPP8bGxsAHDffffdylVXXXXVVVddddV/LSpXXXXVVVddddVV/81s80CS+NewzXOTxL+FbV4QSfxXs83/Vbb5j2abfyvb/FvY5qqrrrrqqquuuup/MIKrrrrqqquuuuqq/wb33XffrQAbGxs8N9vYxja2+bewjW1sYxvb/HvZxja2sY1tbGMb21z1nGxjG9vYxja2sY1t/r1sYxvb2MY2/xq2sY1tbPOiso1tbGObq6666qqrrrrqqv/hqFx11VVXXXXVVVf9D2eb5yaJfy3bPD+S+I9gmxeVJP43ss1/Ndv8R7DNv5Vt/jVsc7+NjQ0A7rvvvlu56qqrrrrqqquu+q9H5aqrrrrqqquuuuq/wdmzZ2+95pprHrxYLDg8PEQS/xq2eSBJ/FvZ5vmRxH8W21z1bLb5j2Sbfw/b/GvZ5qqrrrrqqquuuup/ICpXXXXVVVddddVV/wPY5oEk8a9hm+dHEv9WtnlhJHHVi842/xls8+9lm38L2/xLNjY2ADh79uytXHXVVVddddVVV/3Xo3LVVVddddVVV131P5Btnpsk/rVs89wk8R/BNi8KSfxfZpv/Krb597LNv5Vtrrrqqquuuuqqq/6XoXLVVVddddVVV131v4RtHkgS/xa2eUEk8R/NNv8ekvjPZJv/SWzzH8k2/1a2+bewzf02NjYAuO+++27lqquuuuqqq6666r8elauuuuqqq6666qr/Bvfdd9+tL/ZiL8bGxga2AZDEv4Ztnpsk/j1s84JI4r+Dbf6vsc1/Btv8e9jm38I2V1111VVXXXXVVf9DUbnqqquuuuqqq676H8I2DySJfy3bPD+S+Peyzb9EEleBbf6z2ebfyzb/Vra56qqrrrrqqquu+l+AylVXXXXVVVddddV/g/vuu+9WgI2NDV4Q2zw3Sfxb2Ob5kcR/JNv8a0jifwPb/HexzX8U2/xb2ebfYmNjA4D77rvvVq666qqrrrrqqqv+61G56qqrrrrqqquu+l/ENg8kiX8P2zw/kvivYJurwDb/0Wzz72GbfwvbXHXVVVddddVVV/0PQuWqq6666qqrrrrqv5FtbAMgiX8t2zw/kvj3sM0LI4mrXnS2+c9km38v2/xb2eYF2djYAODs2bPP4Kqrrrrqqquuuuq/HpWrrrrqqquuuuqq/wZnz559BsDm5ib3s81zk8S/hW2emyT+o9jmRSGJ/+ts81/JNv8RbPNvZZurrrrqqquuuuqq/yWoXHXVVVddddVVV/0PZpsHksS/lW2eH0n8Z7HNv5ck/rPY5n8i2/xHs82/h22uuuqqq6666qqr/heictVVV1111VVXXfXf4L777rsVYGNjg38N2zw3Sfx72OaFkcR/J9v8X2Sb/yy2+feyzb+Fba666qqrrrrqqqv+B6Fy1VVXXXXVVVdd9d/MNgCS+LewzfMjif8ItnlhJHHV87LNfzbb/Eexzb+VbV6Qzc1NAO67775bueqqq6666qqrrvqvR+Wqq6666qqrrrrqfwjbPDdJ/FvZ5rlJ4j+abf41JPG/kW3+O9nmP4pt/j1sc9VVV1111VVXXfW/BJWrrrrqqquuuuqq/wZnz569FWBjY4MXxjbPTRL/VrZ5QSTxX8E2Vz1/tvnPYJt/D9v8W21sbABw9uzZW7nqqquuuuqqq676r0flqquuuuqqq6666n8Z2zw3Sfx72eaFkcRV/362+c9km38v2/xb2eaqq6666qqrrrrqfxAqV1111VVXXXXVVf/NbAMgiX8r2zw3SfxHss2/RBL/X9nmv5Jt/qPY5t/DNlddddVVV1111VX/Q1G56qqrrrrqqquu+m9w33333QqwubnJ/Wzz3CTxb2Wb50cS/1ls828hif9JbPM/hW3+o9nm38M2L6rNzU0A7rvvvlu56qqrrrrqqquu+q9H5aqrrrrqqquuuup/MNs8N0n8e9jmBZHEfwfb/H9mm/8stvn3ss1VV1111VVXXXXV/1IEV1111VVXXXXVVf9N7rvvvlsBNjc3+dewjW1sYxvb/EexjW1sYxvb2MY2trnq3842trGNbWxjG9v8R7GNbWxjG9v8W9jGNraxzb+WbWxjm6uuuuqqq6666qr/ZlSuuuqqq6666qqr/pvZxjaS+LeyzXOTxH8027woJPH/gW3+O9jmP5Jt/j1s8/xsbm4CcN99993KVVddddVVV1111X8PKlddddVVV1111VX/Tc6ePXvrNddc8+CNjQ0ODw+xzQNJ4t/DNi+IJP4z2ebfSxL/2WzzP5lt/jPY5t/LNlddddVVV1111VX/C1C56qqrrrrqqquu+h/KNs9NEv8RbPOCSOJ/Atv8f2Cb/0y2+Y9gm3+tzc1NAM6ePXsrV1111VVXXXXVVf89qFx11VVXXXXVVVf9L2Kb5yaJ/0i2eWEkcdWLzjb/VWzzH8U2/x62sc1VV1111VVXXXXVfzMqV1111VVXXXXVVf/L2eb5kcR/Btu8qCTxf5Ft/jvZ5j+Sbf69bPPcNjc3Abjvvvtu5aqrrrrqqquuuuq/B8FVV1111VVXXXXVf5P77rvvVoDNzU1sYxvb2OY/gm1sYxvb2MY2tvmvYhvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxzb+GbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2Oa/im1sYxvb2MY2/162sY1tbPNvYRvb2MY2V1111VVXXXXVVf9DUbnqqquuuuqqq676H8g2z00S/1Fs84JI4n862/xfYZv/TLb5j2Cbq6666qqrrrrqqv+FqFx11VVXXXXVVVf9N7nvvvtuBdjY2OBFYZvnRxL/kWzzwkjiqheNbf4r2eY/im3+vTY2NgC47777buWqq6666qqrrrrqvweVq6666qqrrrrqqv/lbPPcJPGfxTb/GpL4v8Q2/91s8x/NNv9etrnqqquuuuqqq676H4bKVVddddVVV1111f8AtrmfJP69bPOCSOK/km2u+rexzX8W2/x72eaF2draAuDs2bPP4Kqrrrrqqquuuuq/B5Wrrrrqqquuuuqq/yZnz559BsDm5iYPZJvnJon/KLZ5QSRx1X8t2/xns81/FNtcddVVV1111VVX/S9C5aqrrrrqqquuuup/Ads8N0n8R7PNv0QSV71obPNfyTb/kWxz1VVXXXXVVVdd9b8clauuuuqqq6666qr/Jvfdd9+tAJubm/xb2Ob5kcR/Jtu8qCTxf41t/iewzX802/xHsA3AxsYGV1111VVXXXXVVf/NqFx11VVXXXXVVVf9D2AbSfxHsM3zI4n/ara56t/HNv9ZbPMfwTYvzH333XcrV1111VVXXXXVVf89qFx11VVXXXXVVVf9D2Gb5yaJ/yi2eWEkcdV/Pdv8V7DNfxTbvCi2tra46qqrrrrqqquu+m9G5aqrrrrqqquuuuq/ydmzZ28F2Nzc5AWxzXOTxH8G27wwkrjqX882/9Vs8x/JNv8eZ8+evZWrrrrqqquuuuqq/x5Urrrqqquuuuqqq/6Xsc3zI4n/TLZ5UUni/zLb/E9gm/8Mtvn3ss1VV1111VVXXXXV/wBUrrrqqquuuuqqq/6PsM3zI4n/arb5zyKJF5Vt/i+wzX8W2/xHsc0DbW5uctVVV1111VVXXfXfjMpVV1111VVXXXXVf5P77rvvVoDNzU1s80CS+I9imxdEEv/b2Ob/Itv8Z7PNfyTbvCjuu+++W7nqqquuuuqqq67670Hlqquuuuqqq6666n8g2zw3SfxHs82/RBJX/fvZ5r+Sbf6j2eaqq6666qqrrrrqfxmCq6666qqrrrrqqv9G9913360Am5ub/EtsYxvb2MY2/xVsYxvb2MY2trGNbWxjm/+PbGMb29jGNraxjW1sYxvb/GeyjW1sYxvb/EewjW1sY5t/jc3NTa666qqrrrrqqqv+B6By1VVXXXXVVVdd9b+YbV4QSfxXss1/BEn8V7DN/za2+c9im/8otrENwH333XcrV1111VVXXXXVVf99CK666qqrrrrqqqv+G509e/ZWgM3NTf6j2cY2trGNbWxjm//JbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGOb/6lsYxvb2MY2trHNfyTb2MY2tvn3sI1tbGObB5Ikrrrqqquuuuqqq/77ULnqqquuuuqqq676H8I2z00S/xls88JI4qr/HLb5r2ab/0i2+ZdsbW0BcN99993KVVddddVVV1111X8fKlddddVVV1111VX/g9nmuUniP5tt/iWSuOrZbPPfzTb/GWxz1VVXXXXVVVdd9b8Ulauuuuqqq6666qr/ZWzz/Ejiv5Jt/q0k8T+Vbf6ns81/Jtv8e21ubgJw33333cpVV1111VVXXXXVfx8qV1111VVXXXXVVf+N7rvvvltf7MVejM3NTf69bPOCSOJ/Ettc9S+zzX822/xHs81VV1111VVXXXXV/xBUrrrqqquuuuqqq/4HsI1tJPGfwTYvjCSu+q9nm/9KtvnPYJurrrrqqquuuuqq/6GoXHXVVVddddVVV/03uu+++24F2NraAsA2z48k/jPZ5l8iiatedLb572Sb/yy2+Zdsbm4CcN999z2dq6666qqrrrrqqv8+VK666qqrrrrqqqv+F7DNc5PEfyXb/GtI4v8S2/xPZJv/bLa56qqrrrrqqquu+l+KylVXXXXVVVddddX/UrZ5QSTx3802V/3Hsc1/Fdv8e21tbQFw9uzZZ3DVVVddddVVV13134fKVVddddVVV1111X+js2fPPgNgc3OT/0i2eUEkcdX/TLb5r2ab/0i2ueqqq6666qqrrvofhMpVV1111VVXXXXV/xC2kcR/Ntu8MJK46j+Hbf472eY/g22uuuqqq6666qqr/oeictVVV1111VVXXfXf6L777rsVYGtrCwDbPDdJ/FeyzYtKEleBbf6nsc1/Btu8KDY3NwE4e/bsrVx11VVXXXXVVVf996Fy1VVXXXXVVVdd9T+cbZ4fSfx3s82/lST+p7DN/1a2+c9km6uuuuqqq6666qr/xahcddVVV1111VVX/S9lmxdEEv/T2eaqF41t/qvY5j/C1tYWAPfdd9+tXHXVVVddddVVV/33oXLVVVddddVVV1313+js2bO3AmxubvIfyTYviCSu+p/HNv/VbPMfzTZXXXXVVVddddVV/4NQueqqq6666qqrrvofwjaS+M9mmxdGElf9x7PNfyfb/GewzVVXXXXVVVddddX/YFSuuuqqq6666qqr/gexzfMjif8qtnlRSeL/M9v8T2Ob/0y2eVFsbW0BcN99993KVVddddVVV1111X8fKlddddVVV1111VX/je67775bAba2tnhhbPP8SOK/k23+I0jiv5pt/jez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qquuuuqqq/77Ubnqqquuuuqqq676H+Ds2bPPANja2uI/g21eFJK46t/PNv/T2eaqq6666qqrrrrq/wEqV1111VVXXXXVVVc9i23+tSTxf5lt/rezzVVXXXXVVVddddX/U1Suuuqqq6666qqr/ge47777bgXY3t7mfxvbXPXfzzb/XWxzv62tLQDuu+++W7nqqquuuuqqq67670flqquuuuqqq6666n8Y27wgkrjq/zfb/HeyzVVXXXXVVVddddX/IlSuuuqqq6666qqr/hexzQsiiav+97PN/yS2+dfY3t4G4OzZs7dy1VVXXXXVVVdd9d+PylVXXXXVVVddddX/AGfPnr0VYGtri38r2/xLJHHVfx/b/E9mm6uuuuqqq6666qr/Y6hcddVVV1111VVX/T9imxeVJK560djmfxPbXHXVVVddddVVV/0/QeWqq6666qqrrrrqqufLNv8ekvjfwjb/F9nmv9r29jYA9913361cddVVV1111VVX/fejctVVV1111VVXXfU/wH333XcrwPb2Nv9X2Oaq/xq2+e9km6uuuuqqq6666qr/oahcddVVV1111VVX/Q9jmxdEElf9/2Sb/wlsc9VVV1111VVXXfW/CMFVV1111VVXXXXV/xD33XffrQDb29u8ILaxjW1sYxvb2MY2trnqfyfb2MY2trGNbWxjm/8utrGNbWzzwmxvbwNw33333cpVV1111VVXXXXV/wxUrrrqqquuuuqqq/6Psc2/RBJX/dexzf90trnqqquuuuqqq676P4jgqquuuuqqq6666n+Is2fP3gqwtbXFfzbb2MY2trGNbWxjG9vYxja2ueo52cY2trGNbWxjG9vYxja2sc3/NLaxjW1sY5v/CNvb21x11VVXXXXVVVf9D0Plqquuuuqqq6666qp/kW3+o0jiv4tt/j+xzX+Hs2fP3spVV1111VVXXXXV/wxUrrrqqquuuuqqq676L2Wbq/5j2ea/m21sc9VVV1111VVXXfU/DMFVV1111VVXXXXV/zDb29vYxja2sY1tbHPV/0+2sY1tbGMb29jGNv/VbGMb29jGNgDb29sA3Hfffbdy1VVXXXXVVVdd9T8DwVVXXXXVVVddddX/EPfdd9+t/AtsYxvb2MY2trGNba7638k2trGNbWxjG9vY5r+TbWxjG9vY5qqrrrrqqquuuup/ESpXXXXVVVddddVV/4fY5kUhiav+a9jmfwvbXHXVVVddddVVV/0fQ+Wqq6666qqrrrrqf4j77rvvVoCtrS3+s9nmX0MSV11hm/8LbPMfbXt7G4D77rvvVq666qqrrrrqqqv+Z6By1VVXXXXVVVddddW/yDb/0STxn802/9/Z5qqrrrrqqquuuur/MSpXXXXVVVddddVVV/23sM1V/zFs8z/B9vY2AGfPnn0GV1111VVXXXXVVf8zULnqqquuuuqqq676H+Ls2bPPANje3sY2z00SV/3/ZZv/aWxz1VVXXXXVVVdd9T8clauuuuqqq6666qr/JWzzwkjiqv+9bPM/mW2uuuqqq6666qqr/heictVVV1111VVXXfU/xH333XcrwPb2Nv8WtvmXSOKq/3q2+d/ENv8WW1tbANx33323ctVVV1111VVXXfU/A5Wrrrrqqquuuuqq/0ds868liauek23+L7DNVVddddVVV1111f9xVK666qqrrrrqqquueqFs8x9JEv/VbPP/mW3+K+zs7ABw9uzZW7nqqquuuuqqq676n4HKVVddddVVV1111f8QZ8+evRVge3ub/8tsc9V/DttcddVVV1111VVXXfUcqFx11VVXXXXVVVf9D2QbAElcddUD2eZ/GttcddVVV1111VVX/Q9F5aqrrrrqqquuuup/MNu8MJK46v8W2/xPZpsXZHt7G4D77rvvVq666qqrrrrqqqv+Z6By1VVXXXXVVVdd9T/EfffddyvA9vY2Lyrb/EskcdX/DLb538Q2V1111VVXXXXVVf/LUbnqqquuuuqqq676P842/xqSuOpFY5v/C2xz1VVXXXXVVVdd9X8UwVVXXXXVVVddddX/IPfdd9+tANvb2/x3sY1tbGMb29jGNraxjW1sYxvb2MY2trHN/wa2sY1tbGMb29jGNraxjW1sYxvb2MY2tvnfyDa2sY1tbPMfYXt7G4D77rvvVq666qqrrrrqqqv+56By1VVXXXXVVVddddV/ONtc9d/HNlddddVVV1111VVXXUZw1VVXXXXVVVdd9T/I2bNnbwXY3t7mqqteGNvYxja2sY1tbPPfYXt7G4CzZ8/eylVXXXXVVVddddX/HFSuuuqqq6666qqr/geyjW2emySu+v/DNv+T2eaqq6666qqrrrrqfzgqV1111VVXXXXVVf+L2OZfIomr/uezzf8mtrnqqquuuuqqq676X4jgqquuuuqqq6666n+Q++6771aAnZ0d/q1sYxvb2MY2trGNbWxjG9tc9R/PNraxjW1sYxvb2MY2tvmfzDa2sY1tbPMv2d7eBuC+++67lauuuuqqq6666qr/OahcddVVV1111VVX/T9mm38LSfxfZpv/D2xz1VVXXXXVVVdd9X8clauuuuqqq6666qqr/tVsc9X/Hra56qqrrrrqqquu+n+KylVXXXXVVVddddX/IPfdd9+tANvb21x11b+Gbf47bW9vA3DffffdylVXXXXVVVddddX/HFSuuuqqq6666qqr/geyzVVXPTfbXHXVVVddddVVV131r0Llqquuuuqqq6666n8o27wwkrjq/xbb/G9hmwfa3t4G4OzZs8/gqquuuuqqq6666n8OKlddddVVV1111VX/g5w9e/YZADs7O/xLbPOikMRV/71s87+Zba666qqrrrrqqqv+l6Jy1VVXXXXVVVdd9X+cbf41JHHVC2eb/4tsc9VVV1111VVXXfV/DJWrrrrqqquuuuqq/0Huu+++WwG2t7f572Kb/yiS+J/CNlddYZv/aDs7OwDcd999t3LVVVddddVVV131PweVq6666qqrrrrqqqv+09jmqv8+trnqqquuuuqqq676f47KVVddddVVV1111VVX/S9mm/8Jtre3ATh79uytXHXVVVddddVVV/3PQeWqq6666qqrrrrqf5CzZ8/eCrC9vY1tJHHVVba56qqrrrrqqquuuurfhMpVV1111VVXXXXV/2C2+ZdI4qr/vWzzv5ltrrrqqquuuuqqq/4Ho3LVVVddddVVV131v5xtXhSSuOq/jm3+r7HNC7KzswPAfffddytXXXXVVVddddVV/3NQueqqq6666qqrrvof5L777rsVYGdnh/9otvm3kMT/Z7b5/8Y2V1111VVXXXXVVf9HULnqqquuuuqqq6666oWyzVX/N9nmqquuuuqqq6666v84gquuuuqqq6666qr/Ye67775bAba3t7nqqv8ItrGNbWxjG9v8R9nZ2QHg7Nmzz+Cqq6666qqrrrrqfxYqV1111VVXXXXVVVdd9X+Aba666qqrrrrqqquueh4EV1111VVXXXXVVf/D3HfffbcC7OzscNVVD2Qb29jGNraxjW3+O21vbwNw33333cpVV1111VVXXXXV/yxUrrrqqquuuuqqq/6Hso1tnpskrvq/yTb/29jGNlddddVVV1111VX/Q1G56qqrrrrqqquu+l/GNi8KSVz1P4Nt/i+wzVVXXXXVVVddddX/MlSuuuqqq6666qqr/oc5e/bsrQA7Ozvceeed/FvZ5l9LEle9cLb5/8A2L6qdnR0A7rvvvlu56qqrrrrqqquu+p+FylVXXXXVVVddddVVz2Kb/2iS+O9im6teONtcddVVV1111VVX/R9G5aqrrrrqqquuuuqq/1S2ueq/n22uuuqqq6666qqr/h+ictVVV1111VVXXfU/zH333XcrwPb2Nldd9a9hm/8OOzs7ANx3331P56qrrrrqqquuuup/FipXXXXVVVddddVVV131v4Rtrrrqqquuuuqqq676V6Fy1VVXXXXVVVdd9T+YbR5IElf932Wb/412dnYAOHv27DO46qqrrrrqqquu+p+FylVXXXXVVVddddX/MGfPnr0VYGdnh+dmmxeVJK76n8E2/5fY5oFsc9VVV1111VVXXfU/FJWrrrrqqquuuuqq/6Ns868hiav+Zbb5/8I2V1111VVXXXXVVf/LUbnqqquuuuqqq676H+a+++67FWB7e5v/Srb5jyaJ/062uepfZpt/j52dHQDOnj17K1ddddVVV1111VX/s1C56qqrrrrqqquuuuo/jW2u+p/DNlddddVVV1111VX/z1C56qqrrrrqqquuuuqq/0Ns819tZ2cHgPvuu+9Wrrrqqquuuuqqq/5noXLVVVddddVVV131P8x99913K8DOzg5XXfX82Oaqq6666qqrrrrqqhcJlauuuuqqq6666qr/wWwDIImr/n+wzVVXXXXVVVddddVV/2GoXHXVVVddddVVV/0vYJsXhSSu+p/JNv/X2AZgZ2cHgPvuu+9Wrrrqqquuuuqqq/5noXLVVVddddVVV131P8zZs2efAbCzs8O/lm3+NSRx1b+Nbf6/sM1VV1111VVXXXXV/1JUrrrqqquuuuqqq/4fs81/FEn8b2Cbq14w21x11VVXXXXVVVf9H0Llqquuuuqqq6666n+g++6779ZrrrnmwTs7O+zt7fG/gW2u+t/BNv9RdnZ2ALjvvvtu5aqrrrrqqquuuup/HipXXXXVVVddddVVV131f5Rtrrrqqquuuuqqq/6fI7jqqquuuuqqq676H+js2bO3Auzs7HDVVS+IbWxjG9vYxja2sc1/hZ2dHQDOnj17K1ddddVVV1111VX/81C56qqrrrrqqquuuuqq/6Fsc9VVV1111VVXXXXVvwuVq6666qqrrrrqqv/BbGObF0QSV/3vZJurrrrqqquuuuqqq/7TEVx11VVXXXXVVVf9D3TffffdCrCzs8MLYxvb2MY2trGNbWxjG9vY5qr/fLaxjW1sYxvb2MY2trGNbf43s41tbLO9vQ3AfffddytXXXXVVVddddVV//NQueqqq6666qqrrvp/wjb/HpL4v842Vz2bba666qqrrrrqqqv+l6Ny1VVXXXXVVVdd9T/Yzs4O/1PY5qr/m2xz1VVXXXXVVVdd9X8Ulauuuuqqq6666qr/ge67775bueqq/2C2+Y+2s7MDwH333XcrV1111VVXXXXVVf/zULnqqquuuuqqq6666qr/I2xz1VVXXXXVVVddddVzoHLVVVddddVVV131P9jOzg5XXfVAtvmf5NixYwCcPXv2GVx11VVXXXXVVVf9z0Plqquuuuqqq6666n+gs2fPPoNnso0krvq/zzZXXXXVVVddddVVV/2HonLVVVddddVVV131P9jOzg4AtnlRSOKq/1lsc9VVV1111VVXXXXVfxsqV1111VVXXXXVVf8D3Xfffbfyb2CbfwtJXPUvs83/Z7Z5btvb2wDcd999t3LVVVddddVVV131Pw+Vq6666qqrrrrqqquwzX8GSfx3sM1V/3a2ueqqq6666qqrrvo/gspVV1111VVXXXXV/2A7Ozv8b2abq/7nss2/17FjxwA4e/bsrVx11VVXXXXVVVf9z0Plqquuuuqqq6666n+gs2fP3spVV/0HsM1VV1111VVXXXXV/2NUrrrqqquuuuqqq6666n8521x11VVXXXXVVVdd9XxRueqqq6666qqrrrrqqv/hbPM/1c7ODgD33XffrVx11VVXXXXVVVf9z0Plqquuuuqqq6666n+g++6771aAnZ0dbHM/SVz1f4dtrrrqqquuuuqqq676T0Xlqquuuuqqq6666n8R2/xrSOKq/1q2ueqqq6666qqrrrrqfwyCq6666qqrrrrqqv+h7rvvvlsBdnZ2+LeyjW1sYxvb2MY2trGNbWxjG9vYxjb/n9nGNraxjW1sYxvb2MY2trGNbWxjm//LbGMb29hme3sbgPvuu+9Wrrrqqquuuuqqq/5nonLVVVddddVVV1111fNlm6v+f7LNVVddddVVV1111f8RBFddddVVV1111VX/Q509e/ZWgJ2dHa666j+abWxjG9vYxja2eVEdO3YMgLNnz97KVVddddVVV1111f9MVK666qqrrrrqqquuuur/KNtcddVVV1111VVX/T9H5aqrrrrqqquuuuqqq/4Xs81VV1111VVXXXXVVS8QwVVXXXXVVVddddX/UPfdd9+tAMeOHeOq/59sYxvb2MY2trGNbWzz32lnZweA++6771auuuqqq6666qqr/meictVVV1111VVXXfU/nG1s80CSuOp/N9tcddVVV1111VVXXfWfjspVV1111VVXXXXV/1D33XffrQA7Ozs8N9v8a0jiqv9ctrnqqquuuuqqq6666n8cKlddddVVV1111VX/D9jm30sS/1fZ5qp/mW0eaGdnB4D77rvvVq666qqrrrrqqqv+Z6Jy1VVXXXXVVVddddWLxDZX/f9gm6uuuuqqq6666qr/I6hcddVVV1111VVX/Q919uzZZwAcO3aMq676z2Cbf4+dnR0Azp49+wyuuuqqq6666qqr/meictVVV1111VVXXXXVVf+H2eaqq6666qqrrrrq/zEqV1111VVXXXXVVf9D3XfffbcC7OzscNVVL4htrrrqqquuuuqqq656gahcddVVV1111VVXXXXV/1C2+Z/s2LFjANx33323ctVVV1111VVXXfU/E5Wrrrrqqquuuuqq/wVscz9JXPW/m22uuuqqq6666qqrrvovQeWqq6666qqrrrrqf6izZ8/eCrCzs8MD2eZfSxJX/eexzf9HOzs7AJw9e/ZWrrrqqquuuuqqq/5nonLVVVddddVVV131/4Bt/iNI4v8S21z1r2ebq6666qqrrrrqqv8lqFx11VVXXXXVVVdd9SKzzVX/P9jmqquuuuqqq6666v8AKlddddVVV1111VVXXfX/mG3+rY4dOwbAfffddytXXXXVVVddddVV/zNRueqqq6666qqrrvof6r777rsV4NixY1x11b+Hba666qqrrrrqqqv+n6Jy1VVXXXXVVVddddVV/8vZ5qqrrrrqqquuuuqq54vgqquuuuqqq6666n+w++6771aAY8eOcdX/T7axjW1sYxvb2MY2tvnvsLOzA8B99913K1ddddVVV1111VX/c1G56qqrrrrqqquu+l/ANraRxFX/d9jmqquuuuqqq6666qr/VARXXXXVVVddddVV/4OdPXv2VoCdnR0AbGMb29jGNraxjW1sYxvb2Oaq/zq2sY1tbGMb29jGNraxjW1sY5v/zY4dOwbA2bNnb+Wqq6666qqrrrrqfy4qV1111VVXXXXVVf+H2ebfSxL/H9jmqquuuuqqq6666qr/c6hcddVVV1111VVXXfVC2eaq/99s89xsc9VVV1111VVXXfW/AMFVV1111VVXXXXV/2D33XffrQDHjh3jqqv+M9nGNraxjW1sY5vn59ixYwDcd999t3LVVVddddVVV131PxeVq6666qqrrrrqqquu+n/CNlddddVVV1111VX/z1C56qqrrrrqqquu+h/svvvuuxVgZ2eHq656Udjmqquuuuqqq6666qpnoXLVVVddddVVV1111VX/S9jmf4pjx44BcN99993KVVddddVVV1111f9cVK666qqrrrrqqquuuup/ANtcddVVV1111VVXXfUfjspVV1111VVXXXXV/2Bnz559BsCxY8ewzb9EElf9z2Cb/8uOHTsGwNmzZ5/BVVddddVVV1111f9cVK666qqrrrrqqqv+D7HNv5UkrnpOtrnqqquuuuqqq6666n81KlddddVVV1111VX/g9133323Ahw7doz/bLa56qp/iW0AbHPVVVddddVVV131vwCVq6666qqrrrrqqquuuup52OaFOXbsGAD33XffrVx11VVXXXXVVVf9z0Xlqquuuuqqq6666qqr/p+yzVVXXXXVVVddddX/cVSuuuqqq6666qqr/gc7e/bsrQA7OztcddW/lm3+sxw7dgyAs2fP3spVV1111VVXXXXV/1xUrrrqqquuuuqqq6666n8p21x11VVXXXXVVVdd9UJRueqqq6666qqrrrrqqv+BbHPVVVddddVVV1111b8blauuuuqqq6666qr/JWxzP0lc9b+Pbf6vOHbsGAD33XffrVx11VVXXXXVVVf9z0Xlqquuuuqqq6666n+w++6771aAY8eO8UC2+beQxFX/MWxz1VVXXXXVVVddddX/eFSuuuqqq6666qqr/h+xzX80SfxPZpurrrrqqquuuuqqq/7fIrjqqquuuuqqq676H+6+++67FeDYsWP8T2Qb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxz1X8M29jGNjs7OwDcd999t3LVVVddddVVV131PxuVq6666qqrrrrqqquuuuoy21x11VVXXXXVVVf9H0Nw1VVXXXXVVVdd9T/c2bNnbwU4duwYV13172Ub29jGNraxjW1eVMeOHQPg7Nmzt3LVVVddddVVV131PxuVq6666qqrrrrqqquu+j/ENlddddVVV1111VVXPQuVq6666qqrrrrqqquu+l/CNv8THDt2jKuuuuqqq6666qr/JQiuuuqqq6666qqr/oe77777bgU4duwYV/3fZRvb2MY2trGNbWxjm/9p7rvvvlu56qqrrrrqqquu+p+NylVXXXXVVVddddX/EraxzQsiiav+57DNVVddddVVV1111VX/7ahcddVVV1111VVX/Q9333333Qpw7NgxXhjb/HtI4qpns81VV1111VVXXXXVVf/rUbnqqquuuuqqq6666jLbXHXVi+LYsWMA3Hfffbdy1VVXXXXVVVdd9T8blauuuuqqq6666qqrrrrqhbLNA9nmqquuuuqqq6666n8JKlddddVVV1111VX/w509e/YZAMeOHeOqq/6z2OZFdfz4cQDOnj37DK666qqrrrrqqqv+Z6Ny1VVXXXXVVVddddVV/w/Y5qqrrrrqqquuuur/ISpXXXXVVVddddVV/8Pdd999twIcO3aMq656QWxz1VVXXXXVVVddddXzoHLVVVddddVVV1111VX/w9nmf5Jjx44BcN99993KVVddddVVV1111f9sVK666qqrrrrqqquuuuq/gW2uuuqqq6666qqrrvpPR+Wqq6666qqrrrrqf7izZ8/eCnDs2DFs86KSxFX/NWzz/8mxY8cAOHv27K1cddVVV1111VVX/c9G5aqrrrrqqquuuur/KNv8R5HE/zW2ueqqq6666qqrrrrq/zwqV1111VVXXXXVVVf9i2xz1VVXXXXVVVddddVV/wtRueqqq6666qqrrvpf4tixY1x11X812zy3Y8eOAXDffffdylVXXXXVVVddddX/bFSuuuqqq6666qqr/oe77777buWqq/4T2eaqq6666qqrrrrq/ygqV1111VVXXXXVVVdd9X+cba666qqrrrrqqqv+nyK46qqrrrrqqquu+l/gvvvuuxXg2LFjXHXVc7ONbWxjG9vYxja2+Y907NgxAM6ePfsMrrrqqquuuuqqq/7no3LVVVddddVVV1111VX/g9nmqquuuuqqq6666qp/M4Krrrrqqquuuuqq/wXuu+++WwGOHTvGVf/72cY2trGNbWxjG9vYxja2+Z/m2LFjANx33323ctVVV1111VVXXfU/H5Wrrrrqqquuuuqq/0VsY5t/LUlc9R/PNlddddVVV1111VVX/Y9G5aqrrrrqqquuuur/Adv8R5PE/xa2ueo/xvHjx7nqqquuuuqqq676X4TKVVddddVVV1111f8CZ8+evRXg+PHj3HbbbfxPYJur/v+67777buWqq6666qqrrrrqfz4qV1111VVXXXXVVVddddULZZv72eaqq6666qqrrrrqfxEqV1111VVXXXXVVf8L3HfffbcCHDt2jKuu+s9gm6uuuuqqq6666qr/g6hcddVVV1111VVXXXXV/wO2+Y9w7NgxAO67776nc9VVV1111VVXXfU/H5Wrrrrqqquuuuqqq676X842V1111VVXXXXVVVc9X1Suuuqqq6666qqr/hc4e/bsrQDHjh3jqv9fbPM/yfHjxwE4e/bsM7jqqquuuuqqq676n4/KVVddddVVV1111VVX/ReyzVVXXXXVVVddddVV/2WoXHXVVVddddVVV/0vcN99990KcOzYMWzzryWJq/5j2eaqq6666qqrrrrqqv/xqFx11VVXXXXVVVf9P2Cb/yyS+J/KNlf9xzp27BgAZ8+evZWrrrrqqquuuuqq//moXHXVVVddddVVV13172Kbq6666qqrrrrqqquu+h+KylVXXXXVVVddddX/Avfdd9+tAMePH+eqq/472Abg2LFjANx33323ctVVV1111VVXXfU/H5Wrrrrqqquuuuqqq6666jLbXHXVVVddddVVV/0fQ+Wqq6666qqrrrrqqqv+n7DNVVddddVVV1111f8zVK666qqrrrrqqqv+Fzh79uwzAI4dO8ZVV70gtvnPdvz4cQDuu+++W7nqqquuuuqqq676n4/KVVddddVVV1111VVX/Q9nm6uuuuqqq6666qqr/k2oXHXVVVddddVVV1111X8D21x11VVXXXXVVVdd9Z+O4Kqrrrrqqquuuup/ifvuu+9WgGPHjmEb29jGNraxjW1sYxvbXPWfzza2sY1tbGMb29jGNraxjW1sY5v/jY4fPw7AfffddytXXXXVVVddddVV/ztQueqqq6666qqrrvo/zDb/GSTxv41trrrqqquuuuqqq676f4fgqquuuuqqq6666n+Js2fP3gpw7Ngx/rvZxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNba7697vlllsAOHv27K1cddVVV1111VVX/e9A5aqrrrrqqquuuuqqq656kVy6dImrrrrqqquuuuqq/2WoXHXVVVddddVVV1111VX/ItscO3YMgPvuu+9Wrrrqqquuuuqqq/53ILjqqquuuuqqq676X+K+++67FeDYsWNcddV/NNvYxja2sY1tbGObq6666qqrrrrqqv+lqFx11VVXXXXVVVf9L3HffffdCnD8+HGuuupfyzb/XseOHQPgvvvuu5Wrrrrqqquuuuqq/x2oXHXVVVddddVVV/0vc+zYMa666oFs81/h+PHjAJw9e/YZXHXVVVddddVVV/3vQOWqq6666qqrrrrqf4l/+Id/+B2A48ePc9X/D7b5n+T48eNcddVVV1111VVX/S9D5aqrrrrqqquuuup/ibNnz94KcOzYMa7638k2/5sdO3YMgH/4h3/4ba666qqrrrrqqqv+d6By1VVXXXXVVVdd9b/EfffddyvA8ePHsc2/hSSu+vexzf9Xx48fB+C+++67lauuuuqqq6666qr/HQiuuuqqq6666qqr/hf5h3/4h98GeNCDHsS/hW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sY5v/SraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW3+v3qpl3opAP7hH/7ht7nqqquuuuqqq67634Pgqquuuuqqq6666n+Rv//7v/9tgAc96EH8T2cb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jmqv86f//3f//bXHXVVVddddVVV/3vQXDVVVddddVVV131v8g//MM//A7Agx/8YK666r/Sgx70IADOnj37DK666qqrrrrqqqv+96By1VVXXXXVVVdd9b/I2bNnbwU4duwYV131n8k2D/SgBz0IgH/4h3/4ba666qqrrrrqqqv+9yC46qqrrrrqqquu+l/kvvvuu/Uf/uEffvv48eM86EEP4qqr/q1sYxvb2MY2trGNbR7opV7qpTh+/DgA9913361cddVVV1111VVX/e9BcNVVV1111VVXXfW/zN///d//NsCDHvQgrrrq+bGNbWxjG9vYxja2sc2/xvHjxwH4rd/6re/mqquuuuqqq6666n8Xgquuuuqqq6666qr/Zf7hH/7hdwBe+qVfmqv+f7GNbWxjG9vYxja2sY1t/qO91Eu9FAC/9Vu/9T1cddVVV1111VVX/e9CcNVVV1111VVXXfW/zNmzZ28FOHbsGA960IO46n8329jGNraxjW1sYxvb2MY2/12OHz8OwD/8wz/8NlddddVVV1111VX/uxBcddVVV1111VVX/S9z33333fpbv/Vb3w3woAc9CNvYxja2sc1V//VsYxvb2MY2trGNbWxjG9vYxja2+Z/utV7rtQD4rd/6re/mqquuuuqqq6666n8fgquuuuqqq6666qr/hX7rt37rewBe6qVeiufHNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1t/i+yjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGOb/6te6qVeCoDf+q3f+h6uuuqqq6666qqr/vchuOqqq6666qqrrvpf6B/+4R9+++///u9/+/jx4zzoQQ/iP5ttbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jmqn/ZS73US3H8+HEA/uEf/uG3ueqqq6666qqrrvrfh+Cqq6666qqrrrrqf6nf/u3f/h6A13qt1+Kqq/4zvNRLvRQAX//1X/8+XHXVVVddddVVV/3vRHDVVVddddVVV131v9Tf//3f/9Z999136/Hjx3nQgx7EVVf9Rzp+/DgPfvCDAfiHf/iH3+aqq6666qqrrrrqfyeCq6666qqrrrrqqv+lzp49+4x/+Id/+O3jx4/z0i/90lx11b+HbWxjG9u85mu+JgC/9Vu/9d333XffrVx11VVXXXXVVVf970Rw1VVXXXXVVVdd9b/Yj/7oj34OwIMe9CCOHz/OVVe9ILaxjW1sYxvb2MY2z+2lX/qlAfjRH/3Rz+Gqq6666qqrrrrqfy+Cq6666qqrrrrqqv/F7rvvvlv/4R/+4bePHz/Oa73Wa3HV/0+2sY1tbGMb29jGNrb513irt3orAH7rt37ru++7775bueqqq6666qqrrvrfi+Cqq6666qqrrrrqf7mv//qvfx+ABz3oQTz4wQ/mqv8bbGMb29jGNraxjW1sYxvb/Ec6fvw4L/3SLw3Aj/7oj34OV1111VVXXXXVVf+7EVx11VVXXXXVVVf9L3fffffd+lu/9Vvfffz4cV7rtV6Lq/7nsY1tbGMb29jGNraxjW1sYxvb/Hd5q7d6KwB+67d+67vvu+++W7nqqquuuuqqq676343gqquuuuqqq6666v+AH/3RH/0cgAc96EE86EEPwja2sY1tbGMb29jGNle96GxjG9vYxja2sY1tbGMb29jGNraxjW3+t3jwgx/Mgx/8YAB+9Ed/9HO46qqrrrrqqquu+t+Pcvz4ca666qqrrrrqqqv+tzs8PNw9e/bsM17xFV/xrR/84AfzJ3/yJ1x11b/WW73VW3H8+HF+5Ed+5LP/9E//9Ge46qqrrrrqqquu+t+Pcvz4ca666qqrrrrqqqv+Lzg6Otp98IMf/NK33HLLgwGe8YxncNVVL6rXeq3X4qVf+qW57777bv3SL/3St+Gqq6666qqrrrrq/waCq6666qqrrrrqqv8j7rvvvlt/9Ed/9LMBXvqlX5oHP/jBXHXVi+LBD34wr/3ar819991369d//de/D1ddddVVV1111VX/dxBcddVVV1111VVX/R/yD//wD7/zIz/yI599/Phx3uqt3oqrrnpRvNZrvRYA//AP//Db//AP//DbXHXVVVddddVVV/3fQTl+/DhXXXXVVVddddVV/5ecPXv2GQ95yENe+pZbbnnw8ePHeeITn8hVV70gb/VWb8WjH/1o7rvvvls/67M+63W46qqrrrrqqquu+r+F4Kqrrrrqqquuuur/mPvuu+/Wr//6r38fgJd+6ZfmpV/6pbnq/yfb2MY2trGNbWxjmwc96EG89Eu/NABf//Vf/z5cddVVV1111VVX/d9DOX78OFddddVVV1111VX/1xweHu6ePXv2Ga/4iq/41tdddx1PfOITWa1WXPV/g23+vY4fP84Hf/AHA/AjP/Ijn/3bv/3b38NVV1111VVXXXXV/z2U48ePc9VVV1111VVXXfV/0a233vrXAC//8i//2o9+9KP5kz/5E676n8k2/9Xe+Z3fmePHj/MP//APv/31X//178NVV1111VVXXXXV/02U48ePc9VVV1111VVXXfV/1dmzZ5/x4Ac/+KVvueWWBz/4wQ/mb/7mb7jqP49t/jd47/d+bx784AfzD//wD7/9mZ/5ma/DVVddddVVV1111f9dlOPHj3PVVVddddVVV131f9Xh4eHuP/zDP/z2K77iK771jTfeePz48eM84QlP4F9LEv/X2Ob/o/d+7/fmwQ9+MPfdd9+tX/qlX/o2h4eHu1x11VVXXXXVVVf930U5fvw4V1111VVXXXXVVf+XHR0dXfqzP/uzn3nzN3/zj77uuusAuPXWW7nq/5+3fuu35tGPfjQAX/IlX/I2t956619z1VVXXXXVVVdd9X8b5fjx41x11VVXXXXVVVf9X3d4eLj7D//wD7/zOq/zOu/94Ac/GIBbb72Vq/7/eO3Xfm1e+ZVfGYDP/MzPfJ1/+Id/+G2uuuqqq6666qqr/u+jHD9+nKuuuuqqq6666qr/D86ePXvrP/zDP/zO67zO67z3gx/8YABuvfVWrvq/77Vf+7V57dd+bQA+5EM+5CG33nrrX3PVVVddddVVV131/wPl+PHjXHXVVVddddVVV/1/cfbs2VvPnj37jAc/+MEv/WIv9mLHAW699Vau+r/rrd/6rXnlV35lAD7zMz/zdW699da/5qqrrrrqqquuuur/D8rx48e56qqrrrrqqquu+v/k1ltv/eujo6NLD37wg1/6xV7sxY4D3HrrrVz1f89bv/Vb89Iv/dIAfOZnfubr/MM//MNvc9VVV1111VVXXfX/C+X48eNcddVVV1111VVX/X9z6623/vXR0dGlV3zFV3zrBz/4wRw/fpwnPOEJXPV/g23e533eh0c/+tEAfOZnfubr/MM//MNvc9VVV1111VVXXfX/D3rQgx7EVVddddVVV1111f9X11xzzYO/6Zu+6ekAu7u7fPd3fze7u7tc9T+PbV4Ux48f523e5m148IMfzH333Xfr13/917/PP/zDP/w2V1111VVXXXXVVf8/UY4fP85VV1111VVXXXXV/1eHh4e7v/3bv/09r/iKr/jWp06dOv7oRz+aJzzhCaxWK676z2Wb/2jHjx/nYz7mYzh+/Dj33XffrV//9V//Pv/wD//w21x11VVXXXXVVVf9/0U5fvw4V1111VVXXXXVVf+fHR4e7v7Zn/3Zz2xubh5/zGMe89KPfvSjmc/n3HrrrVz1gtnmf5KXfumX5n3e530A+K3f+q3v/qzP+qzXOXv27K1cddVVV1111VVX/f9GOX78OFddddVVV1111VX/3x0eHu4+/elP/+vDw8Pdl3/5l3/tBz/4wdjm1ltv5d9CEv/VbPP/0fHjx3mXd3kXXuVVXgWA3/qt3/rur//6r38frrrqqquuuuqqq64CoBw/fpyrrrrqqquuuuqqq+Do6OjSP/zDP/wOwIu/+Iu/9kMe8hBe5mVehnvuuYfd3V2u+p/nwQ9+MO/yLu/CddddB8BnfuZnvs4v/MIvfA1XXXXVVVddddVVV90PPehBD+Kqq6666qqrrrrqqud0zTXXPPhzPudzfuuaa6558O7uLn/1V3/Fb//2b3PV/xyv/dqvzeu8zusAcN999936WZ/1Wa9z33333cpVV1111VVXXXXVVQ9EOX78OFddddVVV1111VVXPafDw8PdP/uzP/uZw8PD3Zd/+Zd/7Yc85CG8zMu8DPfccw+7u7tc9d/nwQ9+MO/zPu/DYx7zGAB+5Ed+5LO/9Eu/9G0ODw93ueqqq6666qqrrrrquaEHPehBXHXVVVddddVVV131gl1zzTUP/pzP+Zzfuuaaax4M8Nd//df81m/9Fru7u1z1X+f48eO89Eu/NK/zOq8DwH333Xfr13/917/PP/zDP/w2V1111VVXXXXVVVe9IJTjx49z1VVXXXXVVVddddULdnh4uPtnf/ZnP3N4eLj74i/+4q993XXX8ZjHPIb5fM6tt97KVf/5Xvu1X5t3eZd34SEPeQgAP/IjP/LZX/qlX/o2Z8+evZWrrrrqqquuuuqqq14Y9KAHPYirrrrqqquuuuqqq14011xzzYNf+7Vf+73e6Z3e6bMBdnd3+au/+it++7d/m6v+4732a782L/MyL8Px48cB+Id/+Iff/vqv//r3ue+++27lqquuuuqqq6666qoXBXrQgx7EVVddddVVV1111VX/Otdcc82DP/zDP/y7XuzFXuy1AXZ3d/mt3/ot/vqv/5qr/v0e/OAH8zZv8zYcP34cgPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq67610APetCDuOqqq6666qqrrrrqX++aa6558Iu92Iu99ju+4zt+1jXXXPNggN3dXf7qr/6K3/7t3+aq5882L8jrvM7r8DIv8zIcP34cgPvuu+/WH/3RH/2c3/qt3/purrrqqquuuuqqq676t0APetCDuOqqq6666qqrrrrq3+6aa6558Iu92Iu91ju+4zt+9jXXXPNggN3dXf76r/+a3/qt3+L/Ctv8Zzh+/Dgv8zIvw+u8zutwv/vuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq67690APetCDuOqqq6666qqrrrrq3++aa6558Iu92Iu99uu8zuu814033vjax48fZ3d3l6c//en81V/9FbfeeitXPdvx48d5mZd5GV7ndV6H+9133323/tZv/dZ3/+iP/ujncNVVV1111VVXXXXVfwT0oAc9iKuuuuqqq6666qqr/mO92Iu92Gu/zuu8znu9zuu8znvzTLu7u/zVX/0Vf/VXf8Xu7i7/Hx0/fpyXeZmX4WVe5mU4fvw497vvvvtu/dEf/dHP+a3f+q3v5qqrrrrqqquuuuqq/0joQQ96EFddddVVV1111VVX/ee45pprHvzar/3a7/U6r/M6733NNdc8mGfa3d3lr/7qr/irv/ordnd3+b/s+PHjvMzLvAwPfvCDechDHgLAfffddyvAb/3Wb333b//2b3/PfffddytXXXXVVVddddVVV/1nQA960IO46qqrrrrqqquuuuo/1zXXXPPgF3uxF3vtF3uxF3ut13md13lvHmB3d5e/+qu/4ulPfzq33nor/xccP36cl3mZl+FlXuZlOH78OA/0Iz/yI5999uzZZ/zWb/3Wd3PVVVddddVVV1111X829KAHPYirrrrqqquuuuqqq/7rXHPNNQ9+sRd7sdd+sRd7sdd6ndd5nffmAXZ3d7l48SK33norT3/607n11lv53+D48eO8zMu8DA9+8IN5yEMewgPdd999t/7DP/zDb9933323/uiP/ujncNVVV1111VVXXXXVfyX0oAc9iKuuuuqqq6666qqr/ntcc801Dz5z5syDXud1Xue9r7nmmge/2Iu92GvzALu7uwA8/elP59Zbb+XixYvceuut/Hc5fvw4AC/zMi8DwIMf/GAe8pCH8Nzuu+++W3/rt37ru//hH/7ht//hH/7hd7jqqquuuuqqq6666r8LetCDHsRVV1111VVXXXXVVf8zXHPNNQ9+sRd7sdd+sRd7sde65pprHvxiL/Zir83zsbu7y8WLF9nd3WV3d5fd3V0uXrwIwO7uLru7u/xbHD9+HIDjx49z4sQJjh8/DsCDH/xgHvKQh/CC3Hfffbf+1m/91ncD/OiP/ujncNVVV1111VVXXXXV/xToQQ96EFddddVVV1111VVX/c90zTXXPPjMmTMPvuaaax78Yi/2Yq91zTXXPPjFXuzFXpsX0e7uLi+K48eP86K67777bv2Hf/iH377vvvtu/Yd/+Iff+Yd/+Iff5qqrrrrqqquuuuqq/6nQgx70IK666qqrrrrqqquu+t/lmmuuefCZM2cefM011zzozJkzD77mmmsefM011zwY4MyZMw8GuOaaax7Mv9J99913K8A//MM//DbAfffddyvAP/zDP/zOP/zDP/w2V1111VVXXXXVVVf9b4Me9KAHcdVVV1111VVXXXXV/03XXHPNgwFsW5J4ANuWJID77rvvVq666qqrrrrqqquu+r8IPehBD+Kqq6666qqrrrrqqquuuuqqq6666qqrrvo/icpVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8V/wjP5O30bIQwkgAAAABJRU5ErkJggg==) + +```js +rectangleSketch = startSketchOn('XZ') + |> startProfileAt([0, 0], %) + |> line([10, 0], %, $seg1) + |> angledLine({ + angle = tangentToEnd(seg1), + length = 10 + }, %) + |> line([0, 10], %) + |> line([-20, 0], %) + |> close(%) + +rectangleExtrude = extrude(10, rectangleSketch) +``` + +![Rendered example of tangentToEnd 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEH1ElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVc9l2uuuebBXHXVVVddddVV/+vcd999t3LVVVddddVVz4nKVVddddVVVz3Ah3/4h3/XNddc8+AXe7EX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f/h3XXPNNQ/mqquuuuqqq6666v+Rv//7v//tH/3RH/0crrrqqquu+q+EHvSgB3HVVVddddVVV1111VVXXXXVVVddddVVV/2fROWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9X8Y8Vx8Ib8+mvoQAAAABJRU5ErkJggg==) + +```js +bottom = startSketchOn("XY") + |> startProfileAt([0, 0], %) + |> arcTo({ end = [10, 10], interior = [5, 1] }, %, $arc1) + |> angledLine([tangentToEnd(arc1), 20], %) + |> close(%) +``` + +![Rendered example of tangentToEnd 3](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAByXklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1UEV1111VVXXXXVVVdd9b/YNddc82Cuuuqqq6666qqrrnpBCK666qqrrrrqqquuuup/qRd7sRd77c/5nM/5rW/6pm96+ou92Iu9NlddddVVV1111VVXPTeCq6666qqrrrrqqquu+l/ommuuefDnfu7n/tYTnvCE33rCE57wW6/zOq/zXlx11VVXXXXVVVdd9dyoXHXVVVddddVVV1111f9CH/7hH/5dv/u7v/tdPNOLvdiLvTZXXXXVVVddddVVVz03gquuuuqqq6666qqrrvpf5h3f8R0/68Ve7MVemwe45pprHvyO7/iOn8VVV1111VVXXXXVVQ9EcNVVV1111VVXXXXVVf+LvNiLvdhrv9M7vdNn/+7v/u538QC/+7u/+12v8zqv895cddVVV1111VVXXfVABFddddVVV1111VVXXfW/yDu90zt91u/+7u9+F8/HNddc8+AXe7EXe22uuuqqq6666qqrrrofwVVXXXXVVVddddVVV/0v8eEf/uHf9WIv9mKvzQvwu7/7u9/1Tu/0Tp/FVVddddVVV1111VX3I7jqqquuuuqqq6666qr/BV7sxV7stV/ndV7nvX/3d3/3u3ghXuzFXuy1X+zFXuy1ueqqq6666qqrrroKAD3oQQ/iqquuuuqqq6666qqr/ie75pprHvxN3/RNT//d3/3d7+JF0FrT13/9178PV1111VVXXXXVVVdRueqqq6666qqrrrrqqv/hPvzDP/y7+Fd4sRd7sdfmqquuuuqqq6666ioAgquuuuqqq6666qqrrvof7HVe53Xe+8Ve7MVe+3d/93e/ixfRNddc8+B3fMd3/Cyuuuqqq6666qqrrkIPetCDuOqqq6666qqrrrrqqv+Jrrnmmgd/0zd909N/93d/97v4V3r0ox/9Oh/yIR/yEK666qqrrrrqqqv+fyO46qqrrrrqqquuuuqq/6E+/MM//Lt+93d/97v4N7jmmmse/GIv9mKvzVVXXXXVVVddddX/bwRXXXXVVVddddVVV131P9A7vuM7ftaLvdiLvTb/Rr/7u7/7Xe/0Tu/0WVx11VVXXXXVVVf9/0Zw1VVXXXXVVVddddVV/8O82Iu92Gu/0zu902f/7u/+7nfx7/BiL/Zir/1iL/Zir81VV1111VVXXXXV/1/oQQ96EFddddVVV1111VVXXfU/yTd90zc9/QlPeMJv8R+gtaav//qvfx+uuuqqq6666qqr/n8iuOqqq6666qqrrrrqqv9BPvdzP/e3rrnmmgfzH+TFXuzFXpurrrrqqquuuuqq/78Irrrqqquuuuqqq6666n+IF3uxF3vtF3uxF3vt3/3d3/0u/oNcc801D37Hd3zHz+Kqq6666qqrrrrq/yf0oAc9iKuuuuqqq6666qqrrvrvds011zz4m77pm57+u7/7u9/Ff7BHP/rRr/MhH/IhD+Gqq6666qqrrrrq/x+Cq6666qqrrrrqqquu+h/gwz/8w7/rd3/3d7+L/wTXXHPNg1/sxV7stbnqqquuuuqqq676/4fgqquuuuqqq6666qqr/pu94zu+42e92Iu92Gvzn+R3f/d3v+ud3umdPourrrrqqquuuuqq/38Irrrqqquuuuqqq6666r/Ri73Yi732O73TO3327/7u734X/4le7MVe7LVf7MVe7LW56qqrrrrqqquu+v8FPehBD+Kqq6666qqrrrrqqqv+u3zu537ub50/f/7p/Bdorenrv/7r34errrrqqquuuuqq/z8Irrrqqquuuuqqq6666r/J537u5/7Wi73Yi702/0Ve7MVe7LW56qqrrrrqqquu+v+F4Kqrrrrqqquuuuqqq/4bvNiLvdhrv9iLvdhr/+7v/u538V/kmmuuefA7vuM7fhZXXXXVVVddddVV/3+gBz3oQVx11VVXXXXVVVddddV/pWuuuebB3/RN3/T03/3d3/0u/os9+tGPfp0P+ZAPeQhXXXXVVVddddVV/z8QXHXVVVddddVVV1111X+xD//wD/+u3/3d3/0u/htcc801D36xF3ux1+aqq6666qqrrrrq/weCq6666qqrrrrqqquu+i/0ju/4jp/1Yi/2Yq/Nf5Pf/d3f/a53eqd3+iyuuuqqq6666qqr/n8guOqqq6666qqrrrrqqv8i11xzzYPf6Z3e6bN/93d/97v4b/RiL/Zir/1iL/Zir81VV1111VVXXXXV/33oQQ96EFddddVVV1111VVXXfVf4XM/93N/6/z580/nf4DWmr7+67/+fbjqqquuuuqqq676v43gqquuuuqqq6666qqr/gu84zu+42e92Iu92GvzP8SLvdiLvTZXXXXVVVddddVV//dRjh8/zlVXXXXVVVddddVVV/1nerEXe7HX/oiP+Ijv/t3f/d3v4n+Ixz72sa8D8A//8A+/w1VXXXXVVVddddX/XehBD3oQV1111VVXXXXVVVdd9Z/pm77pm57+hCc84bf4H+bRj37063zIh3zIQ7jqqquuuuqqq676v4vgqquuuuqqq6666qqr/hN97ud+7m9dc801D+Z/oGuuuebBL/ZiL/baXHXVVVddddVVV/3fRXDVVVddddVVV1111VX/SV7ndV7nvV/sxV7stX/3d3/3u/gf6Hd/93e/653e6Z0+i6uuuuqqq6666qr/uwiuuuqqq6666qqrrrrqP8E111zz4A//8A//rt/93d/9Lv4He7EXe7HXfrEXe7HX5qqrrrrqqquuuur/JvSgBz2Iq6666qqrrrrqqquu+o/2uZ/7ub91/vz5p/O/QGtNX//1X/8+XHXVVVddddVVV/3fQ3DVVVddddVVV1111VX/wd7xHd/xs17sxV7stflf4sVe7MVem6uuuuqqq6666qr/myjHjx/nqquuuuqqq6666qqr/qO82Iu92Gt/xEd8xHf/7u/+7nfxv8RjH/vY1wH4h3/4h9/hqquuuuqqq6666v8W9KAHPYirrrrqqquuuuqqq676j/JN3/RNT3/CE57wW/wv8+hHP/p1PuRDPuQhXHXVVVddddVVV/3fQnDVVVddddVVV1111VX/QT73cz/3t6655poH87/QNddc8+AXe7EXe22uuuqqq6666qqr/m8huOqqq6666qqrrrrqqv8AL/ZiL/baL/ZiL/bav/u7v/td/C/0u7/7u9/1Tu/0Tp/FVVddddVVV1111f8tBFddddVVV1111VVXXfXvdM011zz4cz/3c3/rd3/3d7+L/8Ve7MVe7LVf7MVe7LW56qqrrrrqqquu+r8DPehBD+Kqq6666qqrrrrqqqv+PT73cz/3t86fP/90/g9orenrv/7r34errrrqqquuuuqq/xsIrrrqqquuuuqqq6666t/hHd/xHT/rxV7sxV6b/yNe7MVe7LW56qqrrrrqqquu+r+Dcvz4ca666qqrrrrqqquuuurf4sVe7MVe+yM+4iO++3d/93e/i/8jHvvYx74OwD/8wz/8DlddddVVV1111VX/+6EHPehBXHXVVVddddVVV1111b/F537u5/7W+fPnn87/MY9+9KNf50M+5EMewlVXXXXVVVddddX/fgRXXXXVVVddddVVV131b/DhH/7h3/ViL/Zir83/Qddcc82DX+zFXuy1ueqqq6666qqrrvrfj+Cqq6666qqrrrrqqqv+lV7sxV7stV/ndV7nvX/3d3/3u/g/6Hd/93e/653e6Z0+i6uuuuqqq6666qr//Qiuuuqqq6666qqrrrrqX+lzP/dzf+t3f/d3v4v/w17sxV7stV/sxV7stbnqqquuuuqqq676343gqquuuuqqq6666qqr/hU+93M/97f4f+B3f/d3v+t1Xud13ourrrrqqquuuuqq/92oXHXVVVddddVVV1111YvodV7ndd77xV7sxV77d3/3d7+L/wde7MVe7LW56qqrrrrqqquu+t+Ncvz4ca666qqrrrrqqquuuupfcs011zz4cz/3c3/rd3/3d7+L/yce+9jHvg7AP/zDP/wOV1111VVXXXXVVf87oQc96EFcddVVV1111VVXXXXVv+RzP/dzf+v8+fNP5/+ZRz/60a/zIR/yIQ/hqquuuuqqq6666n8ngquuuuqqq6666qqrrvoXvOM7vuNnvdiLvdhr8//QNddc8+AXe7EXe22uuuqqq6666qqr/nciuOqqq6666qqrrrrqqhfixV7sxV77nd7pnT77d3/3d7+L/4d+93d/97ve6Z3e6bO56qqrrrrqqquu+t+J4Kqrrrrqqquuuuqqq16ID//wD/+u3/3d3/0u/h97sRd7sdd6sRd7sdfmqquuuuqqq6666n8fgquuuuqqq6666qqrrnoBPvdzP/e3rrnmmgfz/9zv/u7vftfrvM7rvBdXXXXVVVddddVV//sQXHXVVVddddVVV1111fPxYi/2Yq/9Yi/2Yq/9u7/7u9/FVbzYi73Ya19zzTUP5qqrrrrqqquuuup/F4Krrrrqqquuuuqqq656Ltdcc82DP/dzP/e3fvd3f/e7uOqya6655sGv/dqv/V5cddVVV1111VVX/e+CHvSgB3HVVVddddVVV1111VUP9Lmf+7m/df78+adz1XN49KMf/Tof8iEf8hCuuuqqq6666qqr/vcguOqqq6666qqrrrrqqgd4x3d8x896sRd7sdfmqudxzTXXPPjFXuzFXpurrrrqqquuuuqq/z0Irrrqqquuuuqqq6666ple7MVe7LXf6Z3e6bN/93d/97u46nn87u/+7ne90zu902dx1VVXXXXVVVdd9b8HwVVXXXXVVVddddVVVz3TO73TO33W7/7u734XV71AL/ZiL/baL/ZiL/baXHXVVVddddVVV/3vQHDVVVddddVVV1111VXA537u5/7Wi73Yi702V71Qv/u7v/tdr/M6r/NeXHXVVVddddVVV/3vQHDVVVddddVVV1111f97L/ZiL/baL/ZiL/bav/u7v/tdXPUverEXe7HXvuaaax7MVVddddVVV1111f98BFddddVVV1111VVX/b92zTXXPPhzP/dzf+t3f/d3v4urXiTXXHPNg1/7tV/7vbjqqquuuuqqq676n4/gqquuuuqqq6666qr/1z78wz/8u7jqX+V3f/d3v+t1X/d134errrrqqquuuuqq//kIrrrqqquuuuqqq676f+t1Xud13vvFXuzFXvt3f/d3v4ur/lXOnDnzoBd7sRd7ba666qqrrrrqqqv+Z0MPetCDuOqqq6666qqrrrrq/59rrrnmwd/0Td/09N/93d/9Lq76Nzl16tRDPvMzP/N1uOqqq6666qqrrvqfi+Cqq6666qqrrrrqqv+XPvzDP/y7fvd3f/e7uOrf7MVe7MVe+8Ve7MVem6uuuuqqq6666qr/uQiuuuqqq6666qqrrvp/5x3f8R0/68Ve7MVem6v+XX73d3/3u17ndV7nvbjqqquuuuqqq676n4vgqquuuuqqq6666qr/V17sxV7std/pnd7ps3/3d3/3u7jq3+3FXuzFXvuaa655MFddddVVV1111VX/MxFcddVVV1111VVXXfX/yod/+Id/1+/+7u9+F1f9h7jmmmse/Nqv/drvxVVXXXXVVVddddX/TARXXXXVVVddddVVV/2/8bmf+7m/dc011zyYq/7D/O7v/u53vc7rvM57c9VVV1111VVXXfU/E8FVV1111VVXXXXVVf8vvNiLvdhrv9iLvdhr/+7v/u53cdV/qGuuuebBL/ZiL/baXHXVVVddddVVV/3Pgx70oAdx1VVXXXXVVVddddX/bddcc82Dv+mbvunpv/u7v/tdXPWf4tSpUw/5zM/8zNfhqquuuuqqq6666n8Wgquuuuqqq6666qqr/s/78A//8O/63d/93e/iqv80L/ZiL/baL/7iL/7aXHXVVVddddVVV/3PQnDVVVddddVVV1111f9p7/iO7/hZL/ZiL/baXPWf6nd/93e/67Vf+7Xfi6uuuuqqq6666qr/WQiuuuqqq6666qqrrvo/68Ve7MVe+53e6Z0++3d/93e/i6v+0734i7/461xzzTUP5qqrrrrqqquuuup/DoKrrrrqqquuuuqqq/7Peqd3eqfP+t3f/d3v4qr/EmfOnHnQa7/2a78XV1111VVXXXXVVf9zEFx11VVXXXXVVVdd9X/S537u5/7Wi73Yi702V/2X+d3f/d3vep3XeZ335qqrrrrqqquuuup/DoKrrrrqqquuuuqqq/7PebEXe7HXfrEXe7HX/t3f/d3v4qr/Utdcc82DX+zFXuy1ueqqq6666qqrrvqfAT3oQQ/iqquuuuqqq6666qr/O6655poHf9M3fdPTf/d3f/e7uOq/xalTpx7ymZ/5ma/DVVddddVVV1111X8/gquuuuqqq6666qqr/k/58A//8O/63d/93e/iqv82L/ZiL/baL/ZiL/baXHXVVVddddVVV/33I7jqqquuuuqqq6666v+Md3zHd/ysF3uxF3ttrvpv9bu/+7vf9Tqv8zrvxVVXXXXVVVddddV/P4Krrrrqqquuuuqqq/5PeLEXe7HXfqd3eqfP/t3f/d3v4qr/di/2Yi/22tdcc82Dueqqq6666qqrrvrvRXDVVVddddVVV1111f8J7/RO7/RZv/u7v/tdXPU/wjXXXPPg137t134vrrrqqquuuuqqq/57EVx11VVXXXXVVVdd9b/eO77jO37Wi73Yi702V/2P8bu/+7vf9Tqv8zrvzVVXXXXVVVddddV/L4Krrrrqqquuuuqqq/5Xe7EXe7HXfqd3eqfP/t3f/d3v4qr/Ua655poHv/iLv/hrc9VVV1111VVXXfXfBz3oQQ/iqquuuuqqq6666qr/vb7pm77p6U94whN+i6v+Rzp16tRDP/MzP/O1ueqqq6666qqrrvrvQXDVVVddddVVV1111f9an/u5n/tb11xzzYO56n+sF3uxF3utF3uxF3ttrrrqqquuuuqqq/57EFx11VVXXXXVVVdd9b/S67zO67z3i73Yi7327/7u734XV/2P9bu/+7vf9Tqv8zrvxVVXXXXVVVddddV/D4Krrrrqqquuuuqqq/7Xueaaax784R/+4d/1u7/7u9/FVf/jvdiLvdhrX3PNNQ/mqquuuuqqq6666r8e5fjx41x11VVXXXXVVVdd9b/LJ33SJ/3UE57whN/iqv8VHvvYx77O5ubm8T/90z/9Ga666qqrrrrqqqv+axFcddVVV1111VVXXfW/yju+4zt+1ou92Iu9Nlf9r/G7v/u73/ViL/Zir81VV1111VVXXXXVfz2Cq6666qqrrrrqqqv+13ixF3ux136nd3qnz/7d3/3d7+Kq/1WuueaaB7/O67zOe3PVVVddddVVV131Xws96EEP4qqrrrrqqquuuuqq/x2+6Zu+6elPeMITfour/ld69KMf/Tof8iEf8hCuuuqqq6666qqr/usQXHXVVVddddVVV131v8Lnfu7n/tY111zzYK76X+uaa6558Iu92Iu9NlddddVVV1111VX/dQiuuuqqq6666qqrrvof78Ve7MVe+8Ve7MVe+3d/93e/i6v+1/rd3/3d73qnd3qnz+Kqq6666qqrrrrqvw7BVVddddVVV1111VX/o11zzTUP/tzP/dzf+t3f/d3v4qr/9c6cOfPga6655sFcddVVV1111VVX/degHD9+nKuuuuqqq6666qqr/uf6pE/6pJ96whOe8Ftc9X/CYx/72NfZ3Nw8/qd/+qc/w1VXXXXVVVddddV/PoKrrrrqqquuuuqqq/7Hesd3fMfPerEXe7HX5qr/M373d3/3u178xV/8dbjqqquuuuqqq676r0Fw1VVXXXXVVVddddX/SC/2Yi/22u/0Tu/02b/7u7/7XVz1f8qZM2ce9Dqv8zrvzVVXXXXVVVddddV/PvSgBz2Iq6666qqrrrrqqqv+5/ncz/3c3zp//vzTuer/pEc/+tGv8yEf8iEP4aqrrrrqqquuuuo/F8FVV1111VVXXXXVVf/jfPiHf/h3vdiLvdhrc9X/Wddcc82DX+zFXuy1ueqqq6666qqrrvrPRXDVVVddddVVV1111f8oL/ZiL/bar/M6r/Pev/u7v/tdXPV/1u/+7u9+1zu90zt9FlddddVVV1111VX/uQiuuuqqq6666qqrrvof5XM/93N/63d/93e/i6v+zztz5syDr7nmmgdz1VVXXXXVVVdd9Z+H4Kqrrrrqqquuuuqq/zE+93M/97e46v+Na6655sHv+I7v+FlcddVVV1111VVX/echuOqqq6666qqrrrrqf4TXeZ3Xee8Xe7EXe+3f/d3f/S6u+n/hd3/3d7/rxV7sxV6bq6666qqrrrrqqv88BFddddVVV1111VVX/be75pprHvzhH/7h3/W7v/u738VV/69cc801D36d13md9+aqq6666qqrrrrqPwd60IMexFVXXXXVVVddddVV/70+93M/97fOnz//dK76f+nRj37063zIh3zIQ7jqqquuuuqqq676j0dw1VVXXXXVVVddddV/q3d8x3f8rBd7sRd7ba76f+uaa6558Iu/+Iu/NlddddVVV1111VX/8Qiuuuqqq6666qqrrvpv82Iv9mKv/U7v9E6f/bu/+7vfxVX/b/3u7/7ud73jO77jZ3PVVVddddVVV131H4/gqquuuuqqq6666qr/Nh/+4R/+Xb/7u7/7XVz1/94111zz4GuuuebBXHXVVVddddVVV/3HIrjqqquuuuqqq6666r/F537u5/7WNddc82Cuugo4c+bMg97xHd/xs7jqqquuuuqqq676j0Vw1VVXXXXVVVddddV/uRd7sRd77Rd7sRd77d/93d/9Lq66Cvjd3/3d73qxF3ux1+aqq6666qqrrrrqPxbBVVddddVVV1111VX/pa655poHf+7nfu5v/e7v/u53cdVVD3DNNdc8+HVe53Xem6uuuuqqq6666qr/OOhBD3oQV1111VVXXXXVVVf91/ncz/3c3zp//vzTueqq5+PRj37063zIh3zIQ7jqqquuuuqqq676j0Fw1VVXXXXVVVddddV/mXd8x3f8rBd7sRd7ba666gW45pprHvxiL/Zir81VV1111VVXXXXVfwyCq6666qqrrrrqqqv+S7zYi73Ya7/TO73TZ//u7/7ud3HVVS/A7/7u737XO73TO30WV1111VVXXXXVVf8xCK666qqrrrrqqquu+i/xTu/0Tp/1u7/7u9/FVVf9C86cOfPga6655sFcddVVV1111VVX/fsRXHXVVVddddVVV131n+5zP/dzf+vFXuzFXpurrnoRXHPNNQ9+x3d8x8/iqquuuuqqq6666t+P4Kqrrrrqqquuuuqq/1Qv9mIv9tov9mIv9tq/+7u/+11cddWL4Hd/93e/68Ve7MVem6uuuuqqq6666qp/P4Krrrrqqquuuuqqq/7TXHPNNQ/+3M/93N/63d/93e/iqqv+Fa655poHv87rvM57c9VVV1111VVXXfXvQ3DVVVddddVVV1111X+aD//wD/8urrrq3+B3f/d3v+ud3umdPpurrrrqqquuuuqqfx+Cq6666qqrrrrqqqv+U7zO67zOe73Yi73Ya//u7/7ud3HVVf8GZ86cedCLvdiLvTZXXXXVVVddddVV/3boQQ96EFddddVVV1111VVX/ce65pprHvxN3/RNT//d3/3d7+Kqq/4dTp069ZDP/MzPfB2uuuqqq6666qqr/m0Irrrqqquuuuqqq676D/fhH/7h3/W7v/u738VVV/07nTlz5sHXXHPNg7nqqquuuuqqq676tyG46qqrrrrqqquuuuo/1Du+4zt+1ou92Iu9Nldd9R/gmmuuefA7vuM7fhZXXXXVVVddddVV/zYEV1111VVXXXXVVVf9h3mxF3ux136nd3qnz/7d3/3d7+Kqq/4D/O7v/u53vdiLvdhrc9VVV1111VVXXfVvQ3DVVVddddVVV1111X+YD//wD/+u3/3d3/0urrrqP9A111zz4Nd5ndd5b6666qqrrrrqqqv+9Qiuuuqqq6666qqrrvoP8bmf+7m/dc011zyYq676D/a7v/u73/WO7/iOn8VVV1111VVXXXXVvx7BVVddddVVV1111VX/bq/zOq/zXi/2Yi/22r/7u7/7XVx11X+Ca6655sEv9mIv9tpcddVVV1111VVX/eugBz3oQVx11VVXXXXVVVdd9W93zTXXPPibvumbnv67v/u738VVV/0nOnXq1EM+8zM/83W46qqrrrrqqquuetERXHXVVVddddVVV1317/LhH/7h3/W7v/u738VVV/0nO3PmzINf/MVf/LW56qqrrrrqqquuetERXHXVVVddddVVV131b/aO7/iOn/ViL/Zir81VV/0XuOaaax782q/92u/FVVddddVVV1111YuO4Kqrrrrqqquuuuqqf5MXe7EXe+13eqd3+uzf/d3f/S6uuuq/wO/+7u9+14u/+Iu/DlddddVVV1111VUvOoKrrrrqqquuuuqqq/5NPvzDP/y7fvd3f/e7uOqq/0Jnzpx50Ou8zuu8N1ddddVVV1111VUvGoKrrrrqqquuuuqqq/7VPvdzP/e3rrnmmgdz1VX/xX73d3/3u97xHd/xs7jqqquuuuqqq6560RBcddVVV1111VVXXfWv8mIv9mKv/WIv9mKv/bu/+7vfxVVX/Te45pprHvxiL/Zir81VV1111VVXXXXVvww96EEP4qqrrrrqqquuuuqqF80111zz4G/6pm96+u/+7u9+F1dd9d/o1KlTD/nMz/zM1+Gqq6666qqrrrrqhSO46qqrrrrqqquuuupF9uEf/uHf9bu/+7vfxVVX/Tc7c+bMg1/sxV7stbnqqquuuuqqq6564Qiuuuqqq6666qqrrnqRvOM7vuNnvdiLvdhrc9VV/wNcc801D36d13md9+Kqq6666qqrrrrqhSO46qqrrrrqqquuuupf9GIv9mKv/U7v9E6f/bu/+7vfxVVX/Q/wu7/7u9/1Yi/2Yq/NVVddddVVV1111QtHcNVVV1111VVXXXXVv+id3umdPut3f/d3v4urrvof5Jprrnnw67zO67w3V1111VVXXXXVVS8YwVVXXXXVVVddddVVL9Q7vuM7ftaLvdiLvTZXXfU/zO/+7u9+1zu+4zt+FlddddVVV1111VUvGMFVV1111VVXXXXVVS/Qi73Yi732O73TO3327/7u734XV131P9A111zz4Bd/8Rd/ba666qqrrrrqqqueP/SgBz2Iq6666qqrrrrqqquev2/6pm96+hOe8ITf4qqr/gdrrenrv/7r34errrrqqquuuuqq50Vw1VVXXXXVVVddddXz9bmf+7m/dc011zyYq676H+7FX/zFX4errrrqqquuuuqq54/gqquuuuqqq6666qrn8Tqv8zrv/WIv9mKv/bu/+7vfxVVX/Q935syZB73Yi73Ya3PVVVddddVVV131vNCDHvQgrrrqqquuuuqqq656tmuuuebB3/RN3/T03/3d3/0urrrqf4lTp0495DM/8zNfh6uuuuqqq6666qrnRHDVVVddddVVV1111XP48A//8O/63d/93e/iqqv+Fzlz5syDr7nmmgdz1VVXXXXVVVdd9ZwIrrrqqquuuuqqq656lnd8x3f8rBd7sRd7ba666n+Za6655sFnzpx5MFddddVVV1111VXPieCqq6666qqrrrrqqste7MVe7LXf6Z3e6bN/93d/97u46qr/ZX73d3/3u97pnd7ps7jqqquuuuqqq656TlSuuuqqq6666qqrrrrswz/8w7/rd3/3d7+Lq676X+rMmTMP5qqrrrrqqquuuuo5EVx11VVXXXXVVVddxed+7uf+1jXXXPNgrrrqf7FrrrnmwS/2Yi/22lx11VVXXXXVVVc9G8FVV1111VVXXXXV/3Mv9mIv9tov9mIv9tq/+7u/+11cddX/ci/2Yi/2Wlx11VVXXXXVVVc9G8FVV1111VVXXXXV/2PXXHPNgz/3cz/3t373d3/3u7jqqv/lfvd3f/e7XvzFX/y1ueqqq6666qqrrno2KlddddVVV1111VX/j334h3/4d/3u7/7ud3HVVf9HnDlz5sFcddVVV1111VVXPRvBVVddddVVV1111f9T7/iO7/hZL/ZiL/baXHXVVVddddVVV1111f9dBFddddVVV1111VX/D73Yi73Ya7/TO73TZ//u7/7ud3HVVf+HXHPNNQ9+sRd7sdfmqquuuuqqq6666goqV1111VVXXXXVVf8PvdM7vdNn/e7v/u53cdVVV1111VVXXXXVVf+3EVx11VVXXXXVVVf9P/PhH/7h3/ViL/Zir81VV/0f9WIv9mKvxVVXXXXVVVddddUVVK666qqrrrrqqqv+H3mxF3ux136d13md9/7d3/3d7+Kqq/4P+t3f/d3v4qqrrrrqqquuuurZqFx11VVXXXXVVVf9P/K5n/u5v/W7v/u738VVV/0fds011zyYq6666qqrrrrqqiuoXHXVVVddddVVV/0/8bmf+7m/xVVXXXXVVVddddVVV/3/QuWqq6666qqrrrrq/4HXeZ3Xee8Xe7EXe+3f/d3f/S6uuur/uGuuuebBXHXVVVddddVVV11B5aqrrrrqqquuuur/uGuuuebBH/7hH/5dv/u7v/tdXHXVVVddddVVV1111f8vVK666qqrrrrqqqv+j/vwD//w7/rd3/3d7+Kqq6666qqrrrrqqqv+/yG46qqrrrrqqquu+j/sHd/xHT/rxV7sxV6bq6666qqrrrrqqquu+v+JylVXXXXVVVddddX/US/2Yi/22u/0Tu/02b/7u7/7XVx11f8j9913361cddVVV1111VVXXUHlqquuuuqqq6666v+oD//wD/+u3/3d3/0urrrqqquuuuqqq6666v8vgquuuuqqq6666qr/gz73cz/3t6655poHc9VVV1111VVXXXXVVf+/Ubnqqquuuuqqq676P+bFXuzFXvvFXuzFXvt3f/d3v4urrvp/6L777ruVq6666qqrrrrqqisIrrrqqquuuuqqq/4Pueaaax78uZ/7ub/1u7/7u9/FVVf9P/Sar/ma73P27NlncNVVV1111VVXXXUFlauuuuqqq6666qr/Qz78wz/8u373d3/3u7jqqquuuuqqq6666qqrAAiuuuqqq6666qqr/o94x3d8x896sRd7sdfmqqv+n/uHf/iH3+aqq6666qqrrrrqCipXXXXVVVddddVV/we82Iu92Gu/0zu902f/7u/+7ndx1VX/z9133323ctVVV1111VVXXXUFlauuuuqqq6666qr/A97pnd7ps373d3/3u7jqqv/n7rvvvlu56qqrrrrqqquuejaCq6666qqrrrrqqv/lPvdzP/e3XuzFXuy1ueqqq/iHf/iH3+aqq6666qqrrrrq2Qiuuuqqq6666qqr/hd7sRd7sdd+sRd7sdf+3d/93e/iqqv+n3vN13zN97nvvvtu5aqrrrrqqquuuurZqFx11VVXXXXVVVf9L3XNNdc8+HM/93N/63d/93e/i6uuuuqy3/7t3/4errrqqquuuuqqq56NylVXXXXVVVddddX/Uh/+4R/+Xb/7u7/7XVx11VXPct99993KVVddddVVV1111bMRXHXVVVddddVVV/0v9Dqv8zrv/WIv9mKvzVVXXfUsv/Vbv/XdXHXVVVddddVVVz0ngquuuuqqq6666qr/Za655poHf/iHf/h3/e7v/u53cdVVV132mq/5mu/zD//wD7/DVVddddVVV1111XOictVVV1111VVXXfW/zId/+Id/1+/+7u9+F1ddddWz3Hfffbf+wz/8w29z1VVXXXXVVVdd9ZwIrrrqqquuuuqqq/4Xecd3fMfPerEXe7HX5qqrrnoO11xzzYPvu+++W7nqqquuuuqqq656TlSuuuqqq6666qqr/pd4sRd7sdd+p3d6p8/+3d/93e/iqquuepbXfM3XfJ8f+ZEf+Wyuuuqqq6666qqrnheVq6666qqrrrrqqv8lPvzDP/y7fvd3f/e7uOqqq57Hb//2b38PV1111VVXXXXVVc+L4Kqrrrrqqquuuup/gc/93M/9rWuuuebBXHXVVc/jt37rt77nvvvuu5Wrrrrqqquuuuqq50Vw1VVXXXXVVVdd9T/c67zO67z3i73Yi7327/7u734XV1111XN4zdd8zff5h3/4h9/mqquuuuqqq6666vmjctVVV1111VVXXfU/2DXXXPPgD//wD/+u3/3d3/0urrrqqudx33333foP//APv81VV1111VVXXXXV80dw1VVXXXXVVVdd9T/Yh3/4h3/X7/7u734XV1111fN4zdd8zff5h3/4h9++7777buWqq6666qqrrrrq+SO46qqrrrrqqquu+h/qHd/xHT/rxV7sxV6bq6666gX60R/90c/hqquuuuqqq6666gWjctVVV1111VVXXfU/0Iu92Iu99ju90zt99u/+7u9+F1ddddXz9Vu/9Vvffd99993KVVddddVVV1111QtGcNVVV1111VVXXfU/0Id/+Id/1+/+7u9+F1ddddXz9Zqv+Zrv81u/9Vvfw1VXXXXVVVddddULR3DVVVddddVVV131P8znfu7n/tY111zzYK666qoX6Ld+67e++x/+4R9+m6uuuuqqq6666qoXjuCqq6666qqrrrrqf5AXe7EXe+0Xe7EXe+3f/d3f/S6uuuqq5+s1X/M13+e3fuu3voerrrrqqquuuuqqfxmVq6666qqrrrrqqv8hrrnmmgd/7ud+7m/97u/+7ndx1VVXvUD/8A//8Nv/8A//8NtcddVVV1111VVX/cuoXHXVVVddddVVV/0P8eEf/uHf9bu/+7vfxVVXXfUCveZrvub7fMiHfMhDuOqqq6666qqrrnrREFx11VVXXXXVVVf9D/CO7/iOn/ViL/Zir81VV131Ar3ma77m+/zoj/7o59x33323ctVVV1111VVXXfWioXLVVVddddVVV1313+zFXuzFXvud3umdPvt3f/d3v4urrrrqBbrvvvtu/ZEf+ZHP5qqrrrrqqquuuupFR3DVVVddddVVV1313+yd3umdPut3f/d3v4urrrrqBXrN13zN9/n6r//69+Gqq6666qqrrrrqX4fgqquuuuqqq6666r/RO77jO37Wi73Yi702V1111Qv1W7/1W9/9D//wD7/NVVddddVVV1111b8OwVVXXXXVVVddddV/kxd7sRd77Xd6p3f67N/93d/9Lq666qoX6DVf8zXf57d+67e+h6uuuuqqq6666qp/PfSgBz2Iq6666qqrrrrqqv8OP/ETP+Hf/d3f/S6uuuqqF+g1X/M13+czP/MzX+cf/uEffpurrrrqqquuuuqqfz0qV1111VVXXXXVVf8NPvdzP/e3uOqqq16o13zN13yff/iHf/jtf/iHf/htrrrqqquuuuqqq/5tqFx11VVXXXXVVVf9F3ud13md936xF3ux1/7d3/3d7+Kqq656ge67775bP/MzP/N1uOqqq6666qqrrvq3I7jqqquuuuqqq676L3TNNdc8+MM//MO/63d/93e/i6uuuuoFes3XfM33+fqv//r34aqrrrrqqquuuurfh8pVV1111VVXXXXVf6EP//AP/67f/d3f/S6uuuqqF+g1X/M13+e3fuu3vvsf/uEffpurrrrqqquuuuqq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NV/zfX7kR37ks3/0R3/0c7jqqquuuuqqq6763ws96EEP4qqrrrrqqquuuuq5XXPNNQ/+pm/6pqf/7u/+7ndx1VX/j7zma77m+9x33323fv3Xf/37/MM//MNvc9VVV1111VVXXfW/G3rQgx7EVVddddVVV1111XP73M/93N86f/7807nqqv9HXvM1X/N9fuRHfuSzf/RHf/RzuOqqq6666qqrrvq/gcpVV1111VVXXXXVc3nHd3zHz3qxF3ux1/7d3/3dp3PVVf8PvOZrvub73Hfffbd+5md+5uv8wz/8w29z1VVXXXXVVVdd9X8Hlauuuuqqq6666qoHuOaaax78Tu/0Tp/9u7/7u9/FVVf9P/Car/ma7/MjP/Ijn/2jP/qjn8NVV1111VVXXXXV/z1Urrrqqquuuuqqqx7gwz/8w7/rd3/3d7+Lq676P+41X/M13+e+++679UM+5EMect99993KVVddddVVV1111f9NBFddddVVV1111VXP9I7v+I6f9WIv9mKvzVVX/R/2mq/5mu/z6Ec/+nV+5Ed+5LM/5EM+5CH33XffrVx11VVXXXXVVVf930Xlqquuuuqqq666CnixF3ux136nd3qnz/7d3/3d7+Kqq/6Pes3XfM33+ZEf+ZHP/tEf/dHP4aqrrrrqqquuuur/B/SgBz2Iq6666qqrrrrqqm/6pm96+hOe8ITf4qqr/g96zdd8zfe57777bv36r//69/mHf/iH3+aqq6666qqrrrrq/w8qV1111VVXXXXV/3uf+7mf+1vXXHPNg5/whCdw1VX/l7zma77m+9x33323/siP/Mhn/+iP/ujncNVVV1111VVXXfX/D5Wrrrrqqquuuur/tdd5ndd57xd7sRd77d/93d/9Lq666v+Q13zN13yfH/mRH/nsH/3RH/0crrrqqquuuuqqq/7/onLVVVddddVVV/2/dc011zz4wz/8w7/rd3/3d7+Lq676P+I1X/M13+cf/uEffvtDPuRDHnLffffdylVXXXXVVVddddX/b+hBD3oQV1111VVXXXXV/0+f+7mf+1vnz59/Oldd9X/Aa77ma77Pfffdd+vXf/3Xv88//MM//DZXXXXVVVddddVVVwFQueqqq6666qqr/l96x3d8x896sRd7sdf+3d/93adz1VX/i73ma77m+9x33323fv3Xf/37/NZv/dZ3c9VVV1111VVXXXXVA1G56qqrrrrqqqv+33mxF3ux136nd3qnz/7d3/3d7+Kqq/6Xes3XfM33ue+++279kR/5kc/+0R/90c/hqquuuuqqq6666qrnBz3oQQ/iqquuuuqqq676/+Wbvumbnv6EJzzht7jqqv+FXvM1X/N97rvvvlt/67d+67t/9Ed/9HO46qqrrrrqqquuuuqFoXLVVVddddVVV/2/8rmf+7m/dc011zz4CU94Aldd9b/Ja77ma77Pfffdd+uP/MiPfPaP/uiPfg5XXXXVVVddddVVV70oqFx11VVXXXXVVf9vvNiLvdhrv9iLvdhr/+7v/u53cdVV/0u85mu+5vvcd999t/7Ij/zIZ//oj/7o53DVVVddddVVV1111b8GetCDHsRVV1111VVXXfV/3zXXXPPgb/qmb3r67/7u734XV131v8BrvuZrvs99991362/91m9994/+6I9+DlddddVVV1111VVX/VugBz3oQVx11VVXXXXVVf/3fe7nfu5vnT9//ulcddX/cK/5mq/5Pvfdd9+tv/Vbv/XdP/qjP/o5XHXVVVddddVVV13170Hlqquuuuqqq676P+8d3/EdP+vFXuzFXvt3f/d3n85VV/0P9Zqv+Zrvc99999369V//9e/zW7/1W9/NVVddddVVV1111VX/EahcddVVV1111VX/p73Yi73Ya7/TO73TZ//u7/7ud3HVVf8DveZrvub73Hfffbd+5md+5uv8wz/8w29z1VVXXXXVVVddddV/JPSgBz2Iq6666qqrrrrq/67P/dzP/a3z588/nauu+h/kNV/zNd8H4Ed+5Ec++7d/+7e/57777ruVq6666qqrrrrqqqv+M1C56qqrrrrqqqv+z/rwD//w73qxF3ux1/7d3/3dp3PVVf8DvOZrvub73Hfffbf+yI/8yGf/6I/+6Odw1VVXXXXVVVddddV/NipXXXXVVVddddX/SS/2Yi/22q/zOq/z3r/7u7/7XVx11X+j13zN13wfgPvuu+/Wr//6r3+f3/qt3/purrrqqquuuuqqq676r4Ie9KAHcdVVV1111VVX/d/zEz/xE/7d3/3d7+Kqq/6bvOZrvub73Hfffbf+1m/91nf/9m//9vfcd999t3LVVVddddVVV1111X81KlddddVVV1111f85n/u5n/tbXHXVf4PXfM3XfB+A++6779Yf+ZEf+ewf/dEf/Ryuuuqqq6666qqrrvrvROWqq6666qqrrvo/5XVe53Xe+8Ve7MVe+3d/93e/i6uu+i/ymq/5mu9z33333fojP/Ijn/3bv/3b33PffffdylVXXXXVVVddddVV/xOgBz3oQVx11VVXXXXVVf83XHPNNQ/+pm/6pqf/7u/+7ndx1VX/yV7zNV/zfQDuu+++W3/0R3/0c37rt37ru7nqqquuuuqqq6666n8a9KAHPYirrrrqqquuuur/hs/93M/9rfPnzz+dq676T/Sar/ma73Pffffd+lu/9Vvf/aM/+qOfw1VXXXXVVVddddVV/5NRueqqq6666qqr/k94x3d8x896sRd7sdf+3d/93adz1VX/wV7zNV/zfe67775bf+u3fuu7P+RDPuQh9913361cddVVV1111VVXXfW/AXrQgx7EVVddddVVV131v9uLvdiLvfbnfu7n/tbv/u7vfhdXXfUf5DVf8zXf57777rv1t37rt7777Nmzz/it3/qt7+aqq6666qqrrrrqqv9t0IMe9CCuuuqqq6666qr/3b7pm77p6U94whN+i6uu+nd6zdd8zfe57777bv2t3/qt7z579uwzfuu3fuu7ueqqq6666qqrrrrqfzMqV1111VVXXXXV/2qf+7mf+1vXXHPNg5/whCdw1VX/Fq/5mq/5Pvfdd9+tv/Vbv/XdX//1X//ev/Vbv/U9XHXVVVddddVVV131fwWVq6666qqrrrrqf60Xe7EXe+0Xe7EXe+3f/d3f/S6uuupf4TVf8zXf57777rv1t37rt77767/+69/nt37rt76bq6666qqrrrrqqqv+L0IPetCDuOqqq6666qqr/ve55pprHvxN3/RNT//d3/3d7+Kqq/4Fr/mar/k+APfdd9+tv/Vbv/XdZ8+efcZv/dZvfTdXXXXVVVddddVVV/1fhx70oAdx1VVXXXXVVVf97/O5n/u5v3X+/Pmnc9VVL8BrvuZrvg/Afffdd+tv/dZvffc//MM//M4//MM//DZXXXXVVVddddVVV/1/QuWqq6666qqrrvpf5x3f8R0/68Ve7MVe+3d/93efzlVXPcBrvuZrvs99991369mzZ2/9kR/5kc/+0R/90c/hqquuuuqqq6666qr/z9CDHvQgrrrqqquuuuqq/z1e7MVe7LU/93M/97d+93d/97u46v+913zN13wfgPvuu+/W3/qt3/ruf/iHf/idf/iHf/htrrrqqquuuuqqq6666gr0oAc9iKuuuuqqq6666n+Pz/3cz/2t8+fPP52r/l96zdd8zfcBuO+++249e/bsrX//93//27/927/9Pffdd9+tXHXVVVddddVVV1111fOictVVV1111VVX/a/x4R/+4d/1Yi/2Yq/9u7/7u0/nqv8XXvM1X/N9AO67775bz549e+uP/MiPfPY//MM//M4//MM//DZXXXXVVVddddVVV131L6Ny1VVXXXXVVVf9r/BiL/Zir/06r/M67/27v/u738VV/2e95mu+5vvwTPfdd9+tP/IjP/LZ//AP//A7//AP//DbXHXVVVddddVVV1111b8eetCDHsRVV1111VVXXfU/2zXXXPPgb/qmb3r67/7u734XV/2f8pqv+ZrvA3DffffdCvBbv/Vb3/0P//APv/MP//APv81VV1111VVXXXXVVVf9+1G56qqrrrrqqqv+x/vwD//w7+Kq//Ve8zVf8314pvvuu+/Wf/iHf/jtH/mRH/nsf/iHf/jtf/iHf/gdrrrqqquuuuqqq6666j8elauuuuqqq6666n+013md13nvF3uxF3vt3/3d3/0urvpf5TVf8zXfB+C+++67FeBHfuRHPvsf/uEffvsf/uEffoerrrrqqquuuuqqq676r4Ee9KAHcdVVV1111VVX/c90zTXXPPibvumbnv67v/u738VV/6O95mu+5vvwTPfdd9+t//AP//Db9913363/8A//8Dv/8A//8NtcddVVV1111VVXXXXVfw/0oAc9iKuuuuqqq6666n+mz/3cz/2t8+fPP52r/sd4zdd8zffhme67775bAX7rt37ruwH+4R/+4Xf+4R/+4be56qqrrrrqqquuuuqq/zmoXHXVVVddddVV/yO94zu+42e92Iu92Gv/7u/+7tO56r/Fa77ma74Pz3Tffffdevbs2Vt/5Ed+5LP/4R/+4bf/4R/+4Xe46qqrrrrqqquuuuqq//nQgx70IK666qqrrrrqqv9ZXuzFXuy1P/dzP/e3fvd3f/e7uOo/1Wu+5mu+Dw9w33333Xr27Nlb//7v//63Af7hH/7ht//hH/7hd7jqqquuuuqqq6666qr/ndCDHvQgrrrqqquuuuqq/1m+6Zu+6elPeMITfour/sO85mu+5vvwTPfdd9+tAP/wD//w2/fdd9+tZ8+efcZ999136z/8wz/8NlddddVVV1111VVXXfV/C3rQgx7EVVddddVVV131P8fnfu7n/taLvdiLvfbv/u7vfhdXvche8zVf8314gPvuu+9WgH/4h3/47fvuu+9WgH/4h3/4nX/4h3/4ba666qqrrrrqqquuuur/D/SgBz2Iq6666qqrrrrqf4YXe7EXe+3P/dzP/a3f/d3f/S6uepbXfM3XfB+ey3333XcrwD/8wz/89n333XcrwD/8wz/8zn333ff0s2fPPoOrrrrqqquuuuqqq666CgA96EEP4qqrrrrqqquu+p/hJ37iJ/y7v/u738X/A6/5mq/5Pjwf9913360AZ8+evfW+++679b777rsV4OzZs7fed999zzh79uyt9913361cddVVV1111VVXXXXVVS8K9KAHPYirrrrqqquuuup/htd5ndd57w//8A//Lp6P3/3d3/0u/pu95mu+5vvwIrrvvvtu5ZnOnj17K8B9991363333Xcrz3T27Nln3HfffU8/e/bsM+67775bueqqq6666qqrrrrqqqv+o6EHPehBXHXVVVddddVV/zNcc801Dz5z5syDrrnmmofwAGfOnHkQz3TNNdc8mAe45pprHsx/sPvuu+9WHuC+++67ledy9uzZZwDcd999twIGdPbs2Vvvu+++W7nqqquuuuqqq6666qqr/qdAD3rQg7jqqquuuuqqq6666qqrrrrqqquuuuqqq/5PonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8q/hEVd94RkJj7vwAAAABJRU5ErkJggg==) + +```js +circSketch = startSketchOn("XY") + |> circle({ center = [0, 0], radius = 3 }, %, $circ) + +triangleSketch = startSketchOn("XY") + |> startProfileAt([-5, 0], %) + |> angledLine([tangentToEnd(circ), 10], %) + |> line([-15, 0], %) + |> close(%) +``` + +![Rendered example of tangentToEnd 4](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABxVElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111Yvgm77pm55+zTXXPJirrrrqqv8nvv7rv/59/uEf/uG377vvvlu56qqrrrrqqquu+t+LylVXXXXVVVe9CK655poHA/zu7/7ud3HVVVdd9f/Ah3/4h3/XZ37mZ77OfffddytXXXXVVVddddVV/3tRjh8/zlVXXXXVVVf9S377t3/7e2699da/eexjH/var/AKr/A2D3rQg17mGc94xl9z1VVXXfV/2DAMq3/4h3/4Ha666qqrrrrqqqv+90IPetCDuOqqq6666qp/jWuuuebBZ86cefDrvM7rvNc111zz4Bd7sRd7bYDf/d3f/S6uuuqqq/6POHbs2HXXX3/9Yz7kQz7kIVx11VVXXXXVVVf970Xlqquuuuqqq/6V7rvvvlvvu+++W//hH/7htwGuueaaB7/Yi73Ya7/O67zOe73Yi73YawP87u/+7ndx1VVXXfW/2Hq9PuCqq6666qqrrrrqfz/0oAc9iKuuuuqqq676j3LNNdc8+MVe7MVe+8Ve7MVe68Ve7MVe+5prrnkwwO/+7u9+F1ddddVV/8u85mu+5vt85md+5uv8wz/8w29z1VVXXXXVVVdd9b8Tlauuuuqqq676D3Tffffdet999333b/3Wb303wDXXXPPg137t136vF3/xF3/tF3uxF3ttgN/93d/9Lq666qqr/pd4sRd7sdf6h3/4h9/mqquuuuqqq6666n8n9KAHPYirrrrqqquu+q9wzTXXPPjFXuzFXvvFXuzFXut1Xud13ptn+t3f/d3v4qqrrrrqf6Bjx45dV2tdfOZnfubrcNVVV1111VVXXfW/E3rQgx7EVVddddVVV/13uOaaax782q/92u/14i/+4q/9Yi/2Yq8N8Lu/+7vfxVVXXXXV/xDz+XzrwQ9+8Ct8yId8yEO46qqrrrrqqquu+t8JPehBD+Kqq6666qqr/rtdc801D36xF3ux136xF3ux13qd13md9+aZfvd3f/e7uOqqq676b/Sar/ma7/MhH/IhD7nvvvtu5aqrrrrqqquuuup/H/SgBz2Iq6666qqrrvqf5JprrnkwwGu/9mu/14u/+Iu/9ou92Iu9NsDv/u7vfhdXXXXVVf/FXvM1X/N9PvMzP/N1/uEf/uG3ueqqq6666qqrrvrfh3L8+HGuuuqqq6666n+Sw8PD3cPDw91/+Id/+J3f+q3f+p7f/u3f/p5bb731b06fPv3g137t136fBz3oQS/zjGc846+56qqrrvov8KAHPehl7rvvvlv/4R/+4Xe46qqrrrrqqquu+t8HPehBD+Kqq6666qqr/re45pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhrA/zu7/7ud3HVVVdd9Z/g2LFj19VaF5/5mZ/5Olx11VVXXXXVVVf974Me9KAHcdVVV1111VX/W11zzTUPfrEXe7HXfp3XeZ33erEXe7HXBvjd3/3d7+Kqq6666j/IfD7fevCDH/wKH/IhH/IQrrrqqquuuuqqq/73QQ960IO46qqrrrrqqv8LrrnmmgefOXPmwa/zOq/zXtdcc82DX+zFXuy1AX73d3/3u7jqqquu+nd4zdd8zff5zM/8zNf5h3/4h9/mqquuuuqqq6666n8XKlddddVVV131f8R9991363333XfrP/zDP/w2wDXXXPPgF3uxF3vt13md13mvF3uxF3ttgN/93d/9Lq666qqr/g2uueaaB//DP/wDV1111VVXXXXVVf/LoAc96EFcddVVV1111f9111xzzYNf7MVe7LVf7MVe7LVe7MVe7LWvueaaBwP87u/+7ndx1VVXXfUveNCDHvTST3va0/7m67/+69+Hq6666qqrrrrqqv9d0IMe9CCuuuqqq6666v+ba6655sEv9mIv9tqv8zqv814v9mIv9toAv/u7v/tdXHXVVVc9H8eOHbvu+uuvf8yHfMiHPISrrrrqqquuuuqq/12oXHXVVVddddX/Q/fdd9+t991333f/1m/91ndfc801D36xF3ux136xF3ux13qd13md9+aZfvd3f/e7uOqqq64C1uv1AVddddVVV1111VX/O6EHPehBXHXVVVddddVVz3bNNdc8+LVf+7Xf68Vf/MVf+8Ve7MVeG+B3f/d3v4urrrrq/7XXfM3XfJ/P/MzPfJ1/+Id/+G2uuuqqq6666qqr/vdAD3rQ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ddVVV/3XuOaaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq8N8Lu/+7vfxVX/Jxw7duy6WuviMz/zM1+Hq/5Xueaaax4McObMmQcDXHPNNQ8+c+bMg3iAa6655iGAeaZrrrnmwYAA80z33XffrYAA80z33XffrQBnz559BsB99913K8909uzZW++7775bueqqq6666qr/POhBD3oQV1111VVXXXXVVVf917vmmmse/GIv9mKv/WIv9mKv9Tqv8zrvzTP97u/+7ndx1f9K8/l868EPfvArfMiHfMhDuOp/lGuuuebBZ86cefA111zz4DNnzjwI4MVf/MVf+8yZMw++5pprHswL8Td/8ze/xL/B2bNnbz1z5syDAV7qpV7qTXgh7rvvvlsBzp49+4z77rvv6ffdd9+tZ8+efcZ9991369mzZ2+97777buWqq6666qqr/m3Qgx70IK666qqrrrrqqquu+u93zTXXPPi1X/u13+vFX/zFX/vFXuzFXhvgd3/3d7+Lq/5Xec3XfM33+czP/MzX+Yd/+Iff5qr/ctdcc82DAV77tV/7vQBe/MVf/LVf7MVe7LV5gN/93d/9Lv4XeM3XfM334QHuu+++W8+ePXvrfffdd+s//MM//M59991369mzZ2+97777buWqq6666qqrXjD0oAc9iKuuuuqqq6666qqr/me55pprHvxiL/Zir/1iL/Zir/U6r/M6780z/e7v/u53cdX/aK/5mq/5Pp/5mZ/5Ov/wD//w21z1n+6aa6558Gu/9mu/F8CLv/iLv/aLvdiLvTbP9Lu/+7vfxf9Rr/mar/k+PNN99913K8A//MM//M4//MM//PZ999136z/8wz/8NlddddVVV111BXrQgx7EVVddddVVV1111VX/c11zzTUPBnjt137t93rxF3/x136xF3ux1wb43d/93e/iqv9xHvSgB730H//xH//Mj/7oj34OV/2Hu+aaax782q/92u8F8E7v9E6fzTP97u/+7ndxFa/5mq/5PjzTfffdd+s//MM//M4//MM//PZ999136z/8wz/8NlddddVVV/1/hB70oAdx1VVXXXXVVVddddX/Htdcc82DX+zFXuy1X+zFXuy1Xud1Xue9AX73d3/3u7jqf4Rjx45dV2tdfOZnfubrcNV/iGuuuebBr/3ar/1eL/7iL/7aL/ZiL/baAL/7u7/7XVz1InnN13zN9wG47777bj179uyt99133zN+67d+67v/4R/+4be56qqrrrrq/wP0oAc9iKuuuuqqq6666qqr/nc6c+bMg6655pqHvNiLvdhrvfiLv/hrv9iLvdhrA/zu7/7ud3HVf4v5fL714Ac/+BU+5EM+5CFc9W92zTXXPPi1X/u13+t1X/d13+fMmTMPAvjd3/3d7+Kqf7fXfM3XfB+A++6771aAf/iHf/jt3/qt3/qef/iHf/htrrrqqquu+r8IPehBD+Kqq6666qqrrrrqqv8brrnmmge/2Iu92Gu92Iu92Gu/zuu8znsD/O7v/u53cdV/qdd8zdd8n8/8zM98nX/4h3/4ba76V3md13md936xF3ux13qd13md9wb43d/93e/iqv9Ur/mar/k+APfdd9+tZ8+evfW3fuu3vue+++679R/+4R9+m6uuuuqqq/4vQA960IO46qqrrrrqqquuuur/nmuuuebBZ86cefDrvM7rvNc111zz4Bd7sRd7bYDf/d3f/S6u+k/1mq/5mu/zIz/yI5/9oz/6o5/DVf+ia6655sGv/dqv/V6v+7qv+z5nzpx50O/+7u9+F1f9t3nN13zN9wE4e/bsM/7+7//+t370R3/0c+67775bueqqq6666n8r9KAHPYirrrrqqquuuuqqq/7vu+aaax78Yi/2Yq/9Oq/zOu/1Yi/2Yq8N8Lu/+7vfxVX/4Y4dO3ZdrXXxmZ/5ma/DVS/QNddc8+DXfu3Xfq93eqd3+myA3/3d3/0urvof5zVf8zXf57777rv1H/7hH377t37rt77nH/7hH36bq6666qqr/jdBD3rQg7jqqquuuuqqq6666v+Xa6655sEv9mIv9lov9mIv9tov9mIv9trXXHPNgwF+93d/97u46t9tPp9vPfjBD36FD/mQD3kIVz1f7/iO7/hZ7/RO7/TZAL/7u7/7XVz1v8JrvuZrvs9999136z/8wz/89m/91m99zz/8wz/8NlddddVVV/1Phx70oAdx1VVXXXXVVVddddX/b9dcc82DX+zFXuy1X+d1Xue9XuzFXuy1AX73d3/3u7jq3+w1X/M13+ft3u7txFXP4cVe7MVe+8M//MO/65prrnnw7/7u734XV/2v9Zqv+Zrv8w//8A+//Q//8A+/81u/9Vvffd99993KVVddddVV/xOhBz3oQVx11VVXXXXVVVddddX9rrnmmge/2Iu92Gu/2Iu92Gu9zuu8znvzTL/7u7/7XVz1InvN13zN9/nMz/zM1/mHf/iH3+Yqrrnmmgd/+Id/+He92Iu92Gv/7u/+7ndx1f8Zr/mar/k+AL/1W7/13f/wD//wO7/1W7/13Vx11VVXXfU/CXrQgx7EVVddddVVV1111VVXvSBnzpx50Ou8zuu894u/+Iu/9ou92Iu9NsDv/u7vfhdXvVCv+Zqv+T4/8iM/8tk/+qM/+jn8P/diL/Zir/3hH/7h33XNNdc8+Hd/93e/i6v+z3rN13zN97nvvvtu/e3f/u3v+a3f+q3vvu+++27lqquuuuqq/27oQQ96EFddddVVV1111VVXXfWiuOaaax78Yi/2Yq/9Yi/2Yq/1Oq/zOu/NM/3u7/7ud3HVczh27Nh1tdbFZ37mZ74O/4+94zu+42e90zu902f/7u/+7ndx1f8br/mar/k+9913363/8A//8Nu/9Vu/9T3/8A//8NtcddVVV1313wU96EEP4qqrrrrqqquuuuqqq/61rrnmmgcDvPZrv/Z7vfiLv/hrv9iLvdhrA/zu7/7ud3EV8/l868EPfvArfMiHfMhD+H/qwz/8w7/rdV7ndd77d3/3d7+Lq/7fes3XfM33ue+++2790R/90c/5rd/6re/mqquuuuqq/2roQQ96EFddddVVV1111VVXXfXvdebMmQe9+Iu/+Ou82Iu92Gu9zuu8znsD/O7v/u538f/Ya77ma77PZ33WZ73O3//93/82/8987ud+7m+92Iu92Gv/7u/+7ndx1VXAa77ma77Pfffdd+tv/dZvffeP/uiPfg5XXXXVVVf9V0EPetCDuOqqq6666qqrrrrqqv9I11xzzYPPnDnz4Bd7sRd7rRd/8Rd/7Rd7sRd7bYDf/d3f/S7+H3nN13zN9/msz/qs1/n7v//73+b/kc/93M/9rRd7sRd77d/93d/9Lq666rm85mu+5vvcd999t/7oj/7o5/zWb/3Wd3PVVVddddV/NvSgBz2Iq6666qqrrrrqqquu+s90zTXXPPjFXuzFXvvFXuzFXut1Xud13hvgd3/3d7+L/+Me9KAHvfQf//Ef/8yP/uiPfg7/T3z4h3/4d73O67zOe//u7/7ud3HVVS/Eox/96NeRpK/7uq9773/4h3/4ba666qqrrvrPgh70oAdx1VVXXXXVVVddddVV/1XOnDnzoGuuueYhr/M6r/Ne11xzzYNf7MVe7LUBfvd3f/e7+D/m2LFj19VaNz7zMz/ztfl/4MVe7MVe+3M/93N/63d/93e/i6uuehG95mu+5vv81m/91nf/6I/+6Ofcd999t3LVVVddddV/NPSgBz2Iq6666qqrrrrqqquu+u9yzTXXPPjFXuzFXut1Xud13vvFXuzFXhvgd3/3d7+L/wPm8/nWQx7ykFf84A/+4Afzf9w111zz4G/6pm96+u/+7u9+F1dd9W/w6Ec/+nV+67d+67t/9Ed/9HO46qqrrrrqPxJ60IMexFVXXXXVVVddddVVV/1PcM011zz4xV7sxV77xV7sxV7rmmuuefCLvdiLvTbA7/7u734X/0u95mu+5vt85md+5uv8wz/8w2/zf9jnfu7n/tb58+efzlVX/Tu85mu+5vucPXv2Gb/5m7/5XT/6oz/6OVx11VVXXfUfgcpVV1111VVXXXXVVVf9D3Hffffdet999333b/3Wb303wDXXXPPgF3uxF3vt13md13mvF3uxF3ttgN/93d/9Lv6XebEXe7HX+od/+Iff5v+oF3uxF3vtM2fOPPj8+fNP56qr/h1+93d/97sA3umd3umzr7nmmgf/6I/+6Ofcd999t3LVVVddddW/B3rQgx7EVVddddVVV1111VVX/U93zTXXPPjFXuzFXuvFXuzFXvt1Xud13ptn+t3f/d3v4n+wY8eOXVdrXXzmZ37m6/B/1Od+7uf+1vnz55/OVVf9B3rN13zN97nvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqn8r9KAHPYirrrrqqquuuuqqq6763+aaa6558Gu/9mu/14u/+Iu/9ou92Iu9NsDv/u7vfhf/w8zn860HP/jBr/AhH/IhD+H/qG/6pm96+hOe8ITf4qqr/hO85mu+5vv86I/+6Of8yI/8yGdz1VVXXXXVvwV60IMexFVXXXXVVVddddVVV/1vds011zz4xV7sxV77xV7sxV7rdV7ndd6bZ/rd3/3d7+J/gNd8zdd8nw/5kA95yH333Xcr/8e8zuu8znt/+Id/+Hf97u/+7ndx1VX/SV7zNV/zfe67775bP+uzPut17rvvvlu56qqrrrrqXwM96EEP4qqrrrrqqquuuuqqq/4vOXPmzINe53Ve571f/MVf/LVf7MVe7LUBfvd3f/e7+G/ymq/5mu/zmZ/5ma/zD//wD7/N/zHv+I7v+FnXX3/9g7jqqv8Cp06desjf//3f//aP/uiPfg5XXXXVVVe9qCjHjx/nqquuuuqqq6666qqr/i85Ojq69A//8A+/81u/9Vvf89u//dvfc+utt/7N6dOnH/zar/3a7/OgBz3oZR70oAe9zDOe8Yy/5r/Igx70oJe57777bv2Hf/iH3+H/mHd6p3f67OVyuctVV/0XWC6Xu2/2Zm/2MQD/8A//8DtcddVVV131okAPetCDuOqqq6666qqrrrrqqv8PrrnmmgefOXPmwS/2Yi/2Wi/+4i/+2i/2Yi/22gC/+7u/+138Jzp27Nh1tdbFZ37mZ74O/8f8xE/8hH/3d3/3u7jqqv9Cr/mar/k+v/Vbv/XdX//1X/8+XHXVVVdd9S+hctVVV1111VVXXXXVVf9P3Hfffbfed999t/7DP/zDb//oj/7o55w5c+ZBL/7iL/46L/ZiL/Zar/M6r/PeAL/7u7/7XfwHW6/XB9dff/1j+D/mzJkzD7rvvvtu5aqr/ov97u/+7ne9zuu8zvtcc801D/7Mz/zM1+Gqq6666qoXBj3oQQ/iqquuuuqqq6666qqr/r+75pprHnzmzJkHv9iLvdhrvfiLv/hrv9iLvdhrA/zu7/7ud/Ef4DVf8zXf5zM/8zNf5x/+4R9+m/8jzpw586Bv/uZvvvV3f/d3v4urrvpv8Jqv+Zrvc9999936IR/yIQ/hqquuuuqqF4TKVVddddVVV1111VVXXcV9991363333XfrP/zDP/z2j/7oj37ONddc8+AXe7EXe+3XeZ3Xea8Xe7EXe22A3/3d3/0urrrqqv8xfvd3f/e7XvM1X/N9PvzDP/y7vv7rv/59uOqqq6666vmhctVVV1111VVXXXXVVVc9j/vuu+/W++6777t/67d+67vPnDnzoBd/8Rd/nRd7sRd7rWuuuebBL/ZiL/baAL/7u7/7XbyInvGMZ/zVi73Yi73WP/zDP/w2/0ecPXv2GVx11X+z3/3d3/2u13md13kfgK//+q9/H6666qqrrnpu6EEPehBXXXXVVVddddVVV1111YvummuuefCLvdiLvdbrvM7rvPeLvdiLvTbA7/7u734XL8SxY8euq7UuPvMzP/N1+D/km77pm57+hCc84be46qr/Zq/5mq/5Pj/6oz/6OT/yIz/y2Vx11VVXXfVAVK666qqrrrrqqquuuuqqf5X77rvv1vvuu+/W3/qt3/qea6655sEv9mIv9tov9mIv9lov9mIv9trXXHPNgwF+93d/97t4gPV6fXD99dc/hv9jzp49e+uxY8euu3Tp0j1cddV/oz/90z/9sXd8x3f8rL//+7//7X/4h3/4ba666qqrrrof5fjx41x11VVXXXXVVVddddVV/zaHh4e7t95661//6Z/+6c/8wi/8wtf89m//9vccHh7uPvjBD36ZV3iFV3ibBz3oQS/zjGc846+naRoe+9jHvs4//MM//M7Zs2dv5f8OveVbvuXHP+MZz/hrrrrqv9E0TcO99977lDd8wzf80D/7sz/7mcPDw12uuuqqq64CQA960IO46qqrrrrqqquuuuqqq/7jXXPNNQ9+sRd7sdd6sRd7sdd+ndd5nff+zM/8zNf5h3/4h9/m/5Brrrnmwd/0Td/09N/93d/9Lq666n+ABz3oQS99cHBw6TM/8zNfh6uuuuqqqwDQgx70IK666qqrrrrqqquuuuqqq/6tPvzDP/y7Tp48ee2lS5fu4aqr/pvN5/OtV3zFV3yHr//6r3+f3/qt3/purrrqqquuIrjqqquuuuqqq6666qqrrvp3+K3f+q3veamXeqk34aqr/gdYrVYHf/qnf/pj7/iO7/hZXHXVVVddBUBw1VVXXXXVVVddddVVV1317/AP//APv/0P//APv81VV/0PsVqtDq655poHv87rvM57c9VVV111FcFVV1111VVXXXXVVVddddW/04/8yI98zmu+5mu+D1dd9T/E7/7u737XO77jO34WV1111VVXEVx11VVXXXXVVVddddVVV/07/cM//MNv/8M//MNvc9VV/4Ncc801D37xF3/x1+aqq6666v839KAHPYirrrrqqquuuuqqq6666qp/r2uuuebB3/RN3/T03/3d3/0urrrqf4hTp0499DM/8zNfm6uuuuqq/78Irrrqqquuuuqqq6666qqr/gPcd999t37913/9+7zma77m+3DVVf9DXHPNNQ/mqquuuur/N8rx48e56qqrrrrqqquuuuqqq676j3Drrbf+NcCbvdmbfcwznvGMv+aqq/6bPfaxj33tf/iHf/ids2fP3spVV1111f9PBFddddVVV1111VVXXXXVVf+Bfvu3f/t7/uEf/uG3X/M1X/N9uOqq/wGu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n/vuu+/W3/qt3/ruH/3RH/0crrrqqquu+vdCD3rQg7jqqquuuuqqq6666qqrrroKrrnmmge/2Iu92Gu/2Iu92Gu92Iu92Gtfc801Dwb43d/93e/iqv80r/mar/k+AL/1W7/13f/wD//w27/1W7/1PVx11VVXXfUfBT3oQQ/iqquuuuqqq6666qqrrrrqqud1zTXXPPjFXuzFXvvFXuzFXut1Xud13ptn+t3f/d3v4qp/l9d8zdd8H4D77rvv1t/6rd/67h/90R/9HK666qqrrvrPgB70oAdx1VVXXXXVVVddddVVV1111b/smmuuefCLvdiLvfaLvdiLvRbA67zO67w3z/S7v/u738VVL9RrvuZrvs99991369mzZ2/9+7//+9/+0R/90c/hqquuuuqq/2zoQQ96EFddddVVV1111VVXXXXVVVf96505c+ZB11xzzUOuueaaB7/O67zOe505c+bB11xzzYN5pt/93d/9Lv6fes3XfM334Znuu+++W3/rt37ru//hH/7hd/7hH/7ht7nqqquuuuq/EnrQgx7EVVddddVVV1111VVXXXXVVf8xzpw586BrrrnmIddcc82DX+zFXuy1rrnmmge/2Iu92GvzAL/7u7/7Xfwf8pqv+ZrvwzP9wz/8w28D/P3f//1v/8M//MPv/MM//MNvc9VVV1111X8n9KAHPYirrrrqqquuuuqqq6666qqr/nNdc801Dz5z5syDr7nmmge/2Iu92Gtdc801DwZ4sRd7sdfmufzu7/7ud/E/zGu+5mu+Dw9w33333QrwD//wD79933333foP//APv/MP//APv81VV1111VX/06AHPehBXHXVVVddddVVV1111VVXXfXf55prrnkwwIu92Iu91n333feMF3uxF3uta6655sHXXHPNgwHOnDnz4GuuuebB/Be57777bgU4e/bsrffdd9+t9913360AZ8+evfW+++57xj/8wz/8NlddddVVV/1vgR70oAdx1VVXXXXVVVddddVVV1111f8O11xzzYNt+5prrnkIz3TNNdc8GDAgnunMmTMP4vk4e/bsrYAA7rvvvlu5wmfPnn3GfffddytXXXXVVVf9X4Me9KAHcdVVV1111VVXXXXVVVddddVVV1111VVX/Z9E5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/Vfwjw/kgkMF32xgAAAAASUVORK5CYII=) + + diff --git a/docs/kcl/types/Path.md b/docs/kcl/types/Path.md index 4484b1abea..ba49c0228a 100644 --- a/docs/kcl/types/Path.md +++ b/docs/kcl/types/Path.md @@ -91,7 +91,7 @@ a complete arc | `type` |enum: `Circle`| | No | | `center` |`[number, number]`| the arc's center | No | | `radius` |`number`| the arc's radius | No | -| `ccw` |`boolean`| arc's direction | No | +| `ccw` |`boolean`| arc's direction This is used to compute the tangential angle. | No | | `from` |`[number, number]`| The from point. | No | | `to` |`[number, number]`| The to point. | No | | `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | @@ -177,6 +177,7 @@ A circular arc, not necessarily tangential to the current point. | `type` |enum: `Arc`| | No | | `center` |`[number, number]`| Center of the circle that this arc is drawn on. | No | | `radius` |`number`| Radius of the circle that this arc is drawn on. | No | +| `ccw` |`boolean`| True if the arc is counterclockwise. | No | | `from` |`[number, number]`| The from point. | No | | `to` |`[number, number]`| The to point. | No | | `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No | diff --git a/src/wasm-lib/kcl/src/executor.rs b/src/wasm-lib/kcl/src/executor.rs index b9a792fe62..fcaac4a8ed 100644 --- a/src/wasm-lib/kcl/src/executor.rs +++ b/src/wasm-lib/kcl/src/executor.rs @@ -824,10 +824,27 @@ impl SketchSurface { } } -pub struct GetTangentialInfoFromPathsResult { - pub center_or_tangent_point: [f64; 2], - pub is_center: bool, - pub ccw: bool, +#[derive(Debug, Clone)] +pub(crate) enum GetTangentialInfoFromPathsResult { + PreviousPoint([f64; 2]), + Arc { center: [f64; 2], ccw: bool }, + Circle { center: [f64; 2], ccw: bool, radius: f64 }, +} + +impl GetTangentialInfoFromPathsResult { + pub(crate) fn tan_previous_point(&self, last_arc_end: crate::std::utils::Coords2d) -> [f64; 2] { + match self { + GetTangentialInfoFromPathsResult::PreviousPoint(p) => *p, + GetTangentialInfoFromPathsResult::Arc { center, ccw, .. } => { + crate::std::utils::get_tangent_point_from_previous_arc(*center, *ccw, last_arc_end) + } + // The circle always starts at 0 degrees, so a suitable tangent + // point is either directly above or below. + GetTangentialInfoFromPathsResult::Circle { + center, radius, ccw, .. + } => [center[0] + radius, center[1] + if *ccw { -1.0 } else { 1.0 }], + } + } } impl Sketch { @@ -863,32 +880,9 @@ impl Sketch { pub(crate) fn get_tangential_info_from_paths(&self) -> GetTangentialInfoFromPathsResult { let Some(path) = self.latest_path() else { - return GetTangentialInfoFromPathsResult { - center_or_tangent_point: self.start.to, - is_center: false, - ccw: false, - }; + return GetTangentialInfoFromPathsResult::PreviousPoint(self.start.to); }; - match path { - Path::TangentialArc { center, ccw, .. } => GetTangentialInfoFromPathsResult { - center_or_tangent_point: *center, - is_center: true, - ccw: *ccw, - }, - Path::TangentialArcTo { center, ccw, .. } => GetTangentialInfoFromPathsResult { - center_or_tangent_point: *center, - is_center: true, - ccw: *ccw, - }, - _ => { - let base = path.get_base(); - GetTangentialInfoFromPathsResult { - center_or_tangent_point: base.from, - is_center: false, - ccw: false, - } - } - } + path.get_tangential_info() } } @@ -1275,7 +1269,7 @@ pub enum Path { /// the arc's radius radius: f64, /// arc's direction - // Maybe this one's not needed since it's a full revolution? + /// This is used to compute the tangential angle. ccw: bool, }, /// A path that is horizontal. @@ -1307,6 +1301,8 @@ pub enum Path { center: [f64; 2], /// Radius of the circle that this arc is drawn on. radius: f64, + /// True if the arc is counterclockwise. + ccw: bool, }, } @@ -1430,6 +1426,28 @@ impl Path { Path::Arc { base, .. } => Some(base), } } + + pub(crate) fn get_tangential_info(&self) -> GetTangentialInfoFromPathsResult { + match self { + Path::TangentialArc { center, ccw, .. } + | Path::TangentialArcTo { center, ccw, .. } + | Path::Arc { center, ccw, .. } => GetTangentialInfoFromPathsResult::Arc { + center: *center, + ccw: *ccw, + }, + Path::Circle { + center, ccw, radius, .. + } => GetTangentialInfoFromPathsResult::Circle { + center: *center, + ccw: *ccw, + radius: *radius, + }, + Path::ToPoint { .. } | Path::Horizontal { .. } | Path::AngledLineTo { .. } | Path::Base { .. } => { + let base = self.get_base(); + GetTangentialInfoFromPathsResult::PreviousPoint(base.from) + } + } + } } /// Compute the straight-line distance between a pair of (2D) points. diff --git a/src/wasm-lib/kcl/src/std/mod.rs b/src/wasm-lib/kcl/src/std/mod.rs index 9eab036582..eb49883687 100644 --- a/src/wasm-lib/kcl/src/std/mod.rs +++ b/src/wasm-lib/kcl/src/std/mod.rs @@ -65,6 +65,7 @@ lazy_static! { Box::new(crate::std::segment::LastSegY), Box::new(crate::std::segment::SegLen), Box::new(crate::std::segment::SegAng), + Box::new(crate::std::segment::TangentToEnd), Box::new(crate::std::segment::AngleToMatchLengthX), Box::new(crate::std::segment::AngleToMatchLengthY), Box::new(crate::std::shapes::Circle), diff --git a/src/wasm-lib/kcl/src/std/segment.rs b/src/wasm-lib/kcl/src/std/segment.rs index 29e8672539..6347f3490d 100644 --- a/src/wasm-lib/kcl/src/std/segment.rs +++ b/src/wasm-lib/kcl/src/std/segment.rs @@ -2,10 +2,11 @@ use anyhow::Result; use derive_docs::stdlib; +use kittycad_modeling_cmds::shared::Angle; use crate::{ errors::{KclError, KclErrorDetails}, - executor::{ExecState, KclValue, Sketch, TagIdentifier}, + executor::{ExecState, KclValue, Point2d, Sketch, TagIdentifier}, std::{utils::between, Args}, }; @@ -411,6 +412,112 @@ fn inner_segment_angle(tag: &TagIdentifier, exec_state: &mut ExecState, args: Ar Ok(result.to_degrees()) } +/// Returns the angle coming out of the end of the segment in degrees. +pub async fn tangent_to_end(exec_state: &mut ExecState, args: Args) -> Result { + let tag: TagIdentifier = args.get_data()?; + + let result = inner_tangent_to_end(&tag, exec_state, args.clone()).await?; + Ok(args.make_user_val_from_f64(result)) +} + +/// Returns the angle coming out of the end of the segment in degrees. +/// +/// ```no_run +/// // Horizontal pill. +/// pillSketch = startSketchOn('XZ') +/// |> startProfileAt([0, 0], %) +/// |> line([20, 0], %) +/// |> tangentialArcToRelative([0, 10], %, $arc1) +/// |> angledLine({ +/// angle: tangentToEnd(arc1), +/// length: 20, +/// }, %) +/// |> tangentialArcToRelative([0, -10], %) +/// |> close(%) +/// +/// pillExtrude = extrude(10, pillSketch) +/// ``` +/// +/// ```no_run +/// // Vertical pill. Use absolute coordinate for arc. +/// pillSketch = startSketchOn('XZ') +/// |> startProfileAt([0, 0], %) +/// |> line([0, 20], %) +/// |> tangentialArcTo([10, 20], %, $arc1) +/// |> angledLine({ +/// angle: tangentToEnd(arc1), +/// length: 20, +/// }, %) +/// |> tangentialArcToRelative([-10, 0], %) +/// |> close(%) +/// +/// pillExtrude = extrude(10, pillSketch) +/// ``` +/// +/// ```no_run +/// rectangleSketch = startSketchOn('XZ') +/// |> startProfileAt([0, 0], %) +/// |> line([10, 0], %, $seg1) +/// |> angledLine({ +/// angle: tangentToEnd(seg1), +/// length: 10, +/// }, %) +/// |> line([0, 10], %) +/// |> line([-20, 0], %) +/// |> close(%) +/// +/// rectangleExtrude = extrude(10, rectangleSketch) +/// ``` +/// +/// ```no_run +/// bottom = startSketchOn("XY") +/// |> startProfileAt([0, 0], %) +/// |> arcTo({ +/// end: [10, 10], +/// interior: [5, 1] +/// }, %, $arc1) +/// |> angledLine([tangentToEnd(arc1), 20], %) +/// |> close(%) +/// ``` +/// +/// ```no_run +/// circSketch = startSketchOn("XY") +/// |> circle({ center: [0, 0], radius: 3 }, %, $circ) +/// +/// triangleSketch = startSketchOn("XY") +/// |> startProfileAt([-5, 0], %) +/// |> angledLine([tangentToEnd(circ), 10], %) +/// |> line([-15, 0], %) +/// |> close(%) +/// ``` +#[stdlib { + name = "tangentToEnd", +}] +async fn inner_tangent_to_end(tag: &TagIdentifier, exec_state: &mut ExecState, args: Args) -> Result { + let line = args.get_tag_engine_info(exec_state, tag)?; + let path = line.path.clone().ok_or_else(|| { + KclError::Type(KclErrorDetails { + message: format!("Expected a line segment with a path, found `{:?}`", line), + source_ranges: vec![args.source_range], + }) + })?; + + let from = Point2d::from(path.get_to()); + + // Undocumented voodoo from get_tangential_arc_to_info + let tangent_info = path.get_tangential_info(); + let tan_previous_point = tangent_info.tan_previous_point(from.into()); + + // Calculate the end point from the angle and radius. + // atan2 outputs radians. + let previous_end_tangent = Angle::from_radians(f64::atan2( + from.y - tan_previous_point[1], + from.x - tan_previous_point[0], + )); + + Ok(previous_end_tangent.to_degrees()) +} + /// Returns the angle to match the given length for x. pub async fn angle_to_match_length_x(exec_state: &mut ExecState, args: Args) -> Result { let (tag, to, sketch) = args.get_tag_to_number_sketch()?; diff --git a/src/wasm-lib/kcl/src/std/shapes.rs b/src/wasm-lib/kcl/src/std/shapes.rs index 0ec136c8c9..8921c82a98 100644 --- a/src/wasm-lib/kcl/src/std/shapes.rs +++ b/src/wasm-lib/kcl/src/std/shapes.rs @@ -97,6 +97,7 @@ async fn inner_circle( ) .await?; + let from = [data.center[0] + data.radius, data.center[1]]; let angle_start = Angle::zero(); let angle_end = Angle::turn(); @@ -119,8 +120,8 @@ async fn inner_circle( let current_path = Path::Circle { base: BasePath { - from: data.center, - to: data.center, + from, + to: from, tag: tag.clone(), geo_meta: GeoMeta { id, diff --git a/src/wasm-lib/kcl/src/std/sketch.rs b/src/wasm-lib/kcl/src/std/sketch.rs index 0574af7017..388f790a82 100644 --- a/src/wasm-lib/kcl/src/std/sketch.rs +++ b/src/wasm-lib/kcl/src/std/sketch.rs @@ -21,8 +21,8 @@ use crate::{ }, std::{ utils::{ - arc_angles, arc_center_and_end, get_tangent_point_from_previous_arc, get_tangential_arc_to_info, - get_x_component, get_y_component, intersection_with_parallel_line, TangentialArcInfoInput, + arc_angles, arc_center_and_end, get_tangential_arc_to_info, get_x_component, get_y_component, + intersection_with_parallel_line, TangentialArcInfoInput, }, Args, }, @@ -1564,6 +1564,7 @@ pub(crate) async fn inner_arc( source_ranges: vec![args.source_range], })); } + let ccw = angle_start.to_degrees() < angle_end.to_degrees(); let id = exec_state.id_generator.next_uuid(); @@ -1594,6 +1595,7 @@ pub(crate) async fn inner_arc( }, center: center.into(), radius, + ccw, }; let mut new_sketch = sketch.clone(); @@ -1668,8 +1670,8 @@ pub(crate) async fn inner_arc_to( .await?; let start = [from.x, from.y]; - let interior = [data.interior[0], data.interior[1]]; - let end = [data.end[0], data.end[1]]; + let interior = data.interior; + let end = data.end; // compute the center of the circle since we do not have the value returned from the engine let center = calculate_circle_center(start, interior, end); @@ -1680,6 +1682,8 @@ pub(crate) async fn inner_arc_to( (center[0] - start[0] * center[0] - start[0]) + (center[1] - start[1] * center[1] - start[1]); let radius = sum_of_square_differences.sqrt(); + let ccw = is_ccw(start, interior, end); + let current_path = Path::Arc { base: BasePath { from: from.into(), @@ -1692,6 +1696,7 @@ pub(crate) async fn inner_arc_to( }, center, radius, + ccw, }; let mut new_sketch = sketch.clone(); @@ -1704,6 +1709,26 @@ pub(crate) async fn inner_arc_to( Ok(new_sketch) } +/// Returns true if the three-point arc is counterclockwise. The order of +/// parameters is critical. +/// +/// | end +/// | / +/// | | / interior +/// | / / +/// | | / +/// |/_____________ +/// start +/// +/// If the slope of the line from start to interior is less than the slope of +/// the line from start to end, the arc is counterclockwise. +fn is_ccw(start: [f64; 2], interior: [f64; 2], end: [f64; 2]) -> bool { + let t1 = (interior[0] - start[0]) * (end[1] - start[1]); + let t2 = (end[0] - start[0]) * (interior[1] - start[1]); + // If these terms are equal, the points are collinear. + t1 > t2 +} + /// Data to draw a tangential arc. #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, ts_rs::TS)] #[ts(export)] @@ -1764,11 +1789,7 @@ async fn inner_tangential_arc( let from: Point2d = sketch.current_pen_position()?; // next set of lines is some undocumented voodoo from get_tangential_arc_to_info let tangent_info = sketch.get_tangential_info_from_paths(); //this function desperately needs some documentation - let tan_previous_point = if tangent_info.is_center { - get_tangent_point_from_previous_arc(tangent_info.center_or_tangent_point, tangent_info.ccw, from.into()) - } else { - tangent_info.center_or_tangent_point - }; + let tan_previous_point = tangent_info.tan_previous_point(from.into()); let id = exec_state.id_generator.next_uuid(); @@ -1897,11 +1918,7 @@ async fn inner_tangential_arc_to( ) -> Result { let from: Point2d = sketch.current_pen_position()?; let tangent_info = sketch.get_tangential_info_from_paths(); - let tan_previous_point = if tangent_info.is_center { - get_tangent_point_from_previous_arc(tangent_info.center_or_tangent_point, tangent_info.ccw, from.into()) - } else { - tangent_info.center_or_tangent_point - }; + let tan_previous_point = tangent_info.tan_previous_point(from.into()); let [to_x, to_y] = to; let result = get_tangential_arc_to_info(TangentialArcInfoInput { arc_start_point: [from.x, from.y], @@ -1966,12 +1983,10 @@ async fn inner_tangential_arc_to_relative( args: Args, ) -> Result { let from: Point2d = sketch.current_pen_position()?; + let to = [from.x + delta[0], from.y + delta[1]]; let tangent_info = sketch.get_tangential_info_from_paths(); - let tan_previous_point = if tangent_info.is_center { - get_tangent_point_from_previous_arc(tangent_info.center_or_tangent_point, tangent_info.ccw, from.into()) - } else { - tangent_info.center_or_tangent_point - }; + let tan_previous_point = tangent_info.tan_previous_point(from.into()); + let [dx, dy] = delta; let result = get_tangential_arc_to_info(TangentialArcInfoInput { arc_start_point: [from.x, from.y], @@ -2002,7 +2017,7 @@ async fn inner_tangential_arc_to_relative( let current_path = Path::TangentialArcTo { base: BasePath { from: from.into(), - to: delta, + to, tag: tag.clone(), geo_meta: GeoMeta { id, diff --git a/src/wasm-lib/kcl/tests/helix_ccw/program_memory.snap b/src/wasm-lib/kcl/tests/helix_ccw/program_memory.snap index 80b1d44e7b..55b2a67e7d 100644 --- a/src/wasm-lib/kcl/tests/helix_ccw/program_memory.snap +++ b/src/wasm-lib/kcl/tests/helix_ccw/program_memory.snap @@ -64,13 +64,13 @@ snapshot_kind: text 5.0 ], "from": [ - 5.0, + 15.0, 5.0 ], "radius": 10.0, "tag": null, "to": [ - 5.0, + 15.0, 5.0 ], "type": "Circle" diff --git a/src/wasm-lib/kcl/tests/i_shape/program_memory.snap b/src/wasm-lib/kcl/tests/i_shape/program_memory.snap index 6a836d279b..5bb72ea2cc 100644 --- a/src/wasm-lib/kcl/tests/i_shape/program_memory.snap +++ b/src/wasm-lib/kcl/tests/i_shape/program_memory.snap @@ -73,7 +73,7 @@ snapshot_kind: text ], "tag": null, "to": [ - 5.0, + 73.4, 5.0 ], "type": "TangentialArcTo" @@ -88,12 +88,12 @@ snapshot_kind: text ] }, "from": [ - 5.0, + 73.4, 5.0 ], "tag": null, "to": [ - 5.0, + 73.4, 25.0 ], "type": "ToPoint" @@ -109,17 +109,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - 0.0, + 68.4, 25.0 ], "from": [ - 5.0, + 73.4, 25.0 ], "tag": null, "to": [ - -5.0, - 5.0 + 68.4, + 30.0 ], "type": "TangentialArcTo" }, @@ -133,13 +133,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - 5.0 + 68.4, + 30.0 ], "tag": null, "to": [ - -17.8, - 5.0 + 55.6, + 30.0 ], "type": "ToPoint" }, @@ -154,17 +154,17 @@ snapshot_kind: text }, "ccw": false, "center": [ - -17.8, - 10.0 + 55.60000000000001, + 35.0 ], "from": [ - -17.8, - 5.0 + 55.6, + 30.0 ], "tag": null, "to": [ - -5.0, - 5.0 + 50.6, + 35.0 ], "type": "TangentialArcTo" }, @@ -178,13 +178,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - 5.0 + 50.6, + 35.0 ], "tag": null, "to": [ - -5.0, - 67.0 + 50.6, + 97.0 ], "type": "ToPoint" }, @@ -199,17 +199,17 @@ snapshot_kind: text }, "ccw": false, "center": [ - -0.0, - 67.0 + 55.60000000000001, + 97.0 ], "from": [ - -5.0, - 67.0 + 50.6, + 97.0 ], "tag": null, "to": [ - 5.0, - 5.0 + 55.6, + 102.0 ], "type": "TangentialArcTo" }, @@ -223,13 +223,13 @@ snapshot_kind: text ] }, "from": [ - 5.0, - 5.0 + 55.6, + 102.0 ], "tag": null, "to": [ - 10.0, - 5.0 + 60.6, + 102.0 ], "type": "ToPoint" }, @@ -244,17 +244,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - 10.0, - 10.0 + 60.60000000000001, + 107.0 ], "from": [ - 10.0, - 5.0 + 60.6, + 102.0 ], "tag": null, "to": [ - 5.0, - 5.0 + 65.6, + 107.0 ], "type": "TangentialArcTo" }, @@ -268,13 +268,13 @@ snapshot_kind: text ] }, "from": [ - 5.0, - 5.0 + 65.6, + 107.0 ], "tag": null, "to": [ - 5.0, - 23.0 + 65.6, + 125.0 ], "type": "ToPoint" }, @@ -289,17 +289,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - 0.0, - 23.0 + 60.60000000000001, + 125.0 ], "from": [ - 5.0, - 23.0 + 65.6, + 125.0 ], "tag": null, "to": [ - -5.0, - 5.0 + 60.6, + 130.0 ], "type": "TangentialArcTo" }, @@ -313,13 +313,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - 5.0 + 60.6, + 130.0 ], "tag": null, "to": [ - -49.0, - 5.0 + 16.6, + 130.0 ], "type": "ToPoint" }, @@ -334,17 +334,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - -49.0, - 0.0 + 16.60000000000001, + 125.0 ], "from": [ - -49.0, - 5.0 + 16.6, + 130.0 ], "tag": null, "to": [ - -5.0, - -5.0 + 11.6, + 125.0 ], "type": "TangentialArcTo" }, @@ -358,13 +358,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - -5.0 + 11.6, + 125.0 ], "tag": null, "to": [ - -5.0, - -23.0 + 11.6, + 107.0 ], "type": "ToPoint" }, @@ -379,17 +379,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - 0.0, - -23.0 + 16.60000000000001, + 107.0 ], "from": [ - -5.0, - -23.0 + 11.6, + 107.0 ], "tag": null, "to": [ - 5.0, - -5.0 + 16.6, + 102.0 ], "type": "TangentialArcTo" }, @@ -403,13 +403,13 @@ snapshot_kind: text ] }, "from": [ - 5.0, - -5.0 + 16.6, + 102.0 ], "tag": null, "to": [ - 10.0, - -5.0 + 21.6, + 102.0 ], "type": "ToPoint" }, @@ -424,17 +424,17 @@ snapshot_kind: text }, "ccw": false, "center": [ - 10.0, - -10.0 + 21.60000000000001, + 97.0 ], "from": [ - 10.0, - -5.0 + 21.6, + 102.0 ], "tag": null, "to": [ - 5.0, - -5.0 + 26.6, + 97.0 ], "type": "TangentialArcTo" }, @@ -448,13 +448,13 @@ snapshot_kind: text ] }, "from": [ - 5.0, - -5.0 + 26.6, + 97.0 ], "tag": null, "to": [ - 5.0, - -67.0 + 26.6, + 35.0 ], "type": "ToPoint" }, @@ -469,17 +469,17 @@ snapshot_kind: text }, "ccw": false, "center": [ - -0.0, - -67.0 + 21.60000000000001, + 35.0 ], "from": [ - 5.0, - -67.0 + 26.6, + 35.0 ], "tag": null, "to": [ - -5.0, - -5.0 + 21.6, + 30.0 ], "type": "TangentialArcTo" }, @@ -493,13 +493,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - -5.0 + 21.6, + 30.0 ], "tag": null, "to": [ - -21.6, - -5.0 + 5.0, + 30.0 ], "type": "ToPoint" }, @@ -514,17 +514,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - -21.599999999999994, - -10.0 + 5.000000000000014, + 25.0 ], "from": [ - -21.6, - -5.0 + 5.0, + 30.0 ], "tag": null, "to": [ - -5.0, - -5.0 + 0.0, + 25.0 ], "type": "TangentialArcTo" }, @@ -538,13 +538,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - -5.0 + 0.0, + 25.0 ], "tag": null, "to": [ - -5.0, - -25.0 + 0.0, + 5.0 ], "type": "ToPoint" }, @@ -559,17 +559,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - 0.0, - -25.0 + 5.000000000000014, + 5.0 ], "from": [ - -5.0, - -25.0 + 0.0, + 5.0 ], "tag": null, "to": [ 5.0, - -5.0 + 0.0 ], "type": "TangentialArcTo" }, @@ -584,7 +584,7 @@ snapshot_kind: text }, "from": [ 5.0, - -5.0 + 0.0 ], "tag": null, "to": [ @@ -1043,7 +1043,7 @@ snapshot_kind: text ], "tag": null, "to": [ - 5.0, + 73.4, 5.0 ], "type": "TangentialArcTo" @@ -1058,12 +1058,12 @@ snapshot_kind: text ] }, "from": [ - 5.0, + 73.4, 5.0 ], "tag": null, "to": [ - 5.0, + 73.4, 25.0 ], "type": "ToPoint" @@ -1079,17 +1079,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - 0.0, + 68.4, 25.0 ], "from": [ - 5.0, + 73.4, 25.0 ], "tag": null, "to": [ - -5.0, - 5.0 + 68.4, + 30.0 ], "type": "TangentialArcTo" }, @@ -1103,13 +1103,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - 5.0 + 68.4, + 30.0 ], "tag": null, "to": [ - -17.8, - 5.0 + 55.6, + 30.0 ], "type": "ToPoint" }, @@ -1124,17 +1124,17 @@ snapshot_kind: text }, "ccw": false, "center": [ - -17.8, - 10.0 + 55.60000000000001, + 35.0 ], "from": [ - -17.8, - 5.0 + 55.6, + 30.0 ], "tag": null, "to": [ - -5.0, - 5.0 + 50.6, + 35.0 ], "type": "TangentialArcTo" }, @@ -1148,13 +1148,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - 5.0 + 50.6, + 35.0 ], "tag": null, "to": [ - -5.0, - 67.0 + 50.6, + 97.0 ], "type": "ToPoint" }, @@ -1169,17 +1169,17 @@ snapshot_kind: text }, "ccw": false, "center": [ - -0.0, - 67.0 + 55.60000000000001, + 97.0 ], "from": [ - -5.0, - 67.0 + 50.6, + 97.0 ], "tag": null, "to": [ - 5.0, - 5.0 + 55.6, + 102.0 ], "type": "TangentialArcTo" }, @@ -1193,13 +1193,13 @@ snapshot_kind: text ] }, "from": [ - 5.0, - 5.0 + 55.6, + 102.0 ], "tag": null, "to": [ - 10.0, - 5.0 + 60.6, + 102.0 ], "type": "ToPoint" }, @@ -1214,17 +1214,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - 10.0, - 10.0 + 60.60000000000001, + 107.0 ], "from": [ - 10.0, - 5.0 + 60.6, + 102.0 ], "tag": null, "to": [ - 5.0, - 5.0 + 65.6, + 107.0 ], "type": "TangentialArcTo" }, @@ -1238,13 +1238,13 @@ snapshot_kind: text ] }, "from": [ - 5.0, - 5.0 + 65.6, + 107.0 ], "tag": null, "to": [ - 5.0, - 23.0 + 65.6, + 125.0 ], "type": "ToPoint" }, @@ -1259,17 +1259,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - 0.0, - 23.0 + 60.60000000000001, + 125.0 ], "from": [ - 5.0, - 23.0 + 65.6, + 125.0 ], "tag": null, "to": [ - -5.0, - 5.0 + 60.6, + 130.0 ], "type": "TangentialArcTo" }, @@ -1283,13 +1283,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - 5.0 + 60.6, + 130.0 ], "tag": null, "to": [ - -49.0, - 5.0 + 16.6, + 130.0 ], "type": "ToPoint" }, @@ -1304,17 +1304,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - -49.0, - 0.0 + 16.60000000000001, + 125.0 ], "from": [ - -49.0, - 5.0 + 16.6, + 130.0 ], "tag": null, "to": [ - -5.0, - -5.0 + 11.6, + 125.0 ], "type": "TangentialArcTo" }, @@ -1328,13 +1328,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - -5.0 + 11.6, + 125.0 ], "tag": null, "to": [ - -5.0, - -23.0 + 11.6, + 107.0 ], "type": "ToPoint" }, @@ -1349,17 +1349,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - 0.0, - -23.0 + 16.60000000000001, + 107.0 ], "from": [ - -5.0, - -23.0 + 11.6, + 107.0 ], "tag": null, "to": [ - 5.0, - -5.0 + 16.6, + 102.0 ], "type": "TangentialArcTo" }, @@ -1373,13 +1373,13 @@ snapshot_kind: text ] }, "from": [ - 5.0, - -5.0 + 16.6, + 102.0 ], "tag": null, "to": [ - 10.0, - -5.0 + 21.6, + 102.0 ], "type": "ToPoint" }, @@ -1394,17 +1394,17 @@ snapshot_kind: text }, "ccw": false, "center": [ - 10.0, - -10.0 + 21.60000000000001, + 97.0 ], "from": [ - 10.0, - -5.0 + 21.6, + 102.0 ], "tag": null, "to": [ - 5.0, - -5.0 + 26.6, + 97.0 ], "type": "TangentialArcTo" }, @@ -1418,13 +1418,13 @@ snapshot_kind: text ] }, "from": [ - 5.0, - -5.0 + 26.6, + 97.0 ], "tag": null, "to": [ - 5.0, - -67.0 + 26.6, + 35.0 ], "type": "ToPoint" }, @@ -1439,17 +1439,17 @@ snapshot_kind: text }, "ccw": false, "center": [ - -0.0, - -67.0 + 21.60000000000001, + 35.0 ], "from": [ - 5.0, - -67.0 + 26.6, + 35.0 ], "tag": null, "to": [ - -5.0, - -5.0 + 21.6, + 30.0 ], "type": "TangentialArcTo" }, @@ -1463,13 +1463,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - -5.0 + 21.6, + 30.0 ], "tag": null, "to": [ - -21.6, - -5.0 + 5.0, + 30.0 ], "type": "ToPoint" }, @@ -1484,17 +1484,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - -21.599999999999994, - -10.0 + 5.000000000000014, + 25.0 ], "from": [ - -21.6, - -5.0 + 5.0, + 30.0 ], "tag": null, "to": [ - -5.0, - -5.0 + 0.0, + 25.0 ], "type": "TangentialArcTo" }, @@ -1508,13 +1508,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - -5.0 + 0.0, + 25.0 ], "tag": null, "to": [ - -5.0, - -25.0 + 0.0, + 5.0 ], "type": "ToPoint" }, @@ -1529,17 +1529,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - 0.0, - -25.0 + 5.000000000000014, + 5.0 ], "from": [ - -5.0, - -25.0 + 0.0, + 5.0 ], "tag": null, "to": [ 5.0, - -5.0 + 0.0 ], "type": "TangentialArcTo" }, @@ -1554,7 +1554,7 @@ snapshot_kind: text }, "from": [ 5.0, - -5.0 + 0.0 ], "tag": null, "to": [ @@ -1691,7 +1691,7 @@ snapshot_kind: text ], "tag": null, "to": [ - 5.0, + 6.0, 5.0 ], "type": "TangentialArcTo" @@ -1706,12 +1706,12 @@ snapshot_kind: text ] }, "from": [ - 5.0, + 6.0, 5.0 ], "tag": null, "to": [ - 5.0, + 6.0, 20.0 ], "type": "ToPoint" @@ -1727,17 +1727,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - 0.0, + 1.0, 20.0 ], "from": [ - 5.0, + 6.0, 20.0 ], "tag": null, "to": [ - -5.0, - 5.0 + 1.0, + 25.0 ], "type": "TangentialArcTo" }, @@ -1751,13 +1751,13 @@ snapshot_kind: text ] }, "from": [ - -5.0, - 5.0 + 1.0, + 25.0 ], "tag": null, "to": [ - -6.0, - 5.0 + 0.0, + 25.0 ], "type": "ToPoint" }, @@ -1772,17 +1772,17 @@ snapshot_kind: text }, "ccw": true, "center": [ - -6.0, - 0.0 + 0.0, + 20.0 ], "from": [ - -6.0, - 5.0 + 0.0, + 25.0 ], "tag": null, "to": [ -5.0, - -5.0 + 20.0 ], "type": "TangentialArcTo" }, @@ -1797,12 +1797,12 @@ snapshot_kind: text }, "from": [ -5.0, - -5.0 + 20.0 ], "tag": null, "to": [ -5.0, - -20.0 + 5.0 ], "type": "ToPoint" }, @@ -1818,16 +1818,16 @@ snapshot_kind: text "ccw": true, "center": [ 0.0, - -20.0 + 5.0 ], "from": [ -5.0, - -20.0 + 5.0 ], "tag": null, "to": [ - 5.0, - -5.0 + 0.0, + 0.0 ], "type": "TangentialArcTo" }, @@ -1841,8 +1841,8 @@ snapshot_kind: text ] }, "from": [ - 5.0, - -5.0 + 0.0, + 0.0 ], "tag": null, "to": [ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end0.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end0.png new file mode 100644 index 0000000000..889de154b0 Binary files /dev/null and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end0.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end1.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end1.png new file mode 100644 index 0000000000..f8495dd5a3 Binary files /dev/null and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end1.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end2.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end2.png new file mode 100644 index 0000000000..2fda72a933 Binary files /dev/null and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end2.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end3.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end3.png new file mode 100644 index 0000000000..3e48788994 Binary files /dev/null and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end3.png differ diff --git a/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end4.png b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end4.png new file mode 100644 index 0000000000..6e6947be38 Binary files /dev/null and b/src/wasm-lib/kcl/tests/outputs/serial_test_example_tangent_to_end4.png differ diff --git a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap index 6f82b4dd09..d8116b4f4e 100644 --- a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap +++ b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap @@ -105,6 +105,7 @@ snapshot_kind: text 0 ] }, + "ccw": true, "center": [ 200.0, 100.0 @@ -288,6 +289,7 @@ snapshot_kind: text 0 ] }, + "ccw": true, "center": [ -200.0, 100.0 @@ -775,6 +777,7 @@ snapshot_kind: text 0 ] }, + "ccw": true, "center": [ -200.0, 100.0 @@ -850,6 +853,7 @@ snapshot_kind: text 0 ] }, + "ccw": true, "center": [ 200.0, 100.0 @@ -1337,6 +1341,7 @@ snapshot_kind: text 0 ] }, + "ccw": true, "center": [ 200.0, 100.0 @@ -2779,6 +2784,7 @@ snapshot_kind: text 0 ] }, + "ccw": true, "center": [ 200.0, 100.0 @@ -3266,6 +3272,7 @@ snapshot_kind: text 0 ] }, + "ccw": true, "center": [ 200.0, 100.0 @@ -3389,6 +3396,7 @@ snapshot_kind: text 0 ] }, + "ccw": true, "center": [ -200.0, 100.0 @@ -3876,6 +3884,7 @@ snapshot_kind: text 0 ] }, + "ccw": true, "center": [ -200.0, 100.0 diff --git a/src/wasm-lib/kcl/tests/sketch_on_face_circle_tagged/program_memory.snap b/src/wasm-lib/kcl/tests/sketch_on_face_circle_tagged/program_memory.snap index 9218b30a47..57e2099682 100644 --- a/src/wasm-lib/kcl/tests/sketch_on_face_circle_tagged/program_memory.snap +++ b/src/wasm-lib/kcl/tests/sketch_on_face_circle_tagged/program_memory.snap @@ -373,7 +373,7 @@ snapshot_kind: text 0.0 ], "from": [ - 0.0, + 5.0, 0.0 ], "radius": 5.0, @@ -384,7 +384,7 @@ snapshot_kind: text "value": "myCircle" }, "to": [ - 0.0, + 5.0, 0.0 ], "type": "Circle" @@ -660,7 +660,7 @@ snapshot_kind: text 0.0 ], "from": [ - 0.0, + 5.0, 0.0 ], "radius": 5.0, @@ -671,7 +671,7 @@ snapshot_kind: text "value": "myCircle" }, "to": [ - 0.0, + 5.0, 0.0 ], "type": "Circle" @@ -950,7 +950,7 @@ snapshot_kind: text 0.0 ], "from": [ - 0.0, + 5.0, 0.0 ], "radius": 5.0, @@ -961,7 +961,7 @@ snapshot_kind: text "value": "myCircle" }, "to": [ - 0.0, + 5.0, 0.0 ], "type": "Circle"