From 6c6a7d09eb5aa1f43c1c4c1a44042649580162bd Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Tue, 3 Dec 2024 17:23:01 +0000 Subject: [PATCH] build based on 6f7d2ee --- previews/PR238/404.html | 4 +- previews/PR238/api.html | 136 +++++++++--------- ...ytks.3sfpQl2i.png => acglfmt.3sfpQl2i.png} | Bin ...kjlp.Bglvb-jp.png => aelmmcv.Bglvb-jp.png} | Bin ...{api.md.DdY_rhMa.js => api.md.608Eto75.js} | 128 ++++++++--------- ...Y_rhMa.lean.js => api.md.608Eto75.lean.js} | 128 ++++++++--------- .../{app.QBoZQMQG.js => app.CGG1rM39.js} | 2 +- ...shmj.3UVIT8DR.png => boznahp.3UVIT8DR.png} | Bin previews/PR238/assets/candwhz.W-r9-vls.png | Bin 60084 -> 0 bytes .../chunks/@localSearchIndexroot.D41mAyhC.js | 1 + .../chunks/@localSearchIndexroot.Dr3-XR6o.js | 1 - ...eSYx2c.js => VPLocalSearchBox.CPPYCYL5.js} | 2 +- .../{theme.Beldwsud.js => theme.B7VD6roi.js} | 4 +- ...uxmh.DC3TvBOO.png => cnioidk.DC3TvBOO.png} | Bin ...uazh.CgiryX2p.png => czijwjc.CgiryX2p.png} | Bin previews/PR238/assets/elpyarh.kYI7eJr8.png | Bin 0 -> 206611 bytes previews/PR238/assets/excqmms.DIwADWhE.png | Bin 0 -> 64267 bytes ... => experiments_predicates.md.BWVHVMmB.js} | 2 +- ...xperiments_predicates.md.BWVHVMmB.lean.js} | 2 +- ...eujh.D5-bot8v.png => fsjmnbb.D5-bot8v.png} | Bin ...lmze.DeeQUply.png => fsrdwjj.DeeQUply.png} | Bin ...wnzm.CPClNl7F.png => gazeekx.CPClNl7F.png} | Bin ...btsk._0R9BbFk.png => hgskvzv._0R9BbFk.png} | Bin ...bqkq.DuBHk1fh.png => hlbmezo.DuBHk1fh.png} | Bin previews/PR238/assets/hosrsyx.CvvJ-ORz.png | Bin 0 -> 64060 bytes ...bynp.Cx40vhB3.png => hpptrek.Cx40vhB3.png} | Bin previews/PR238/assets/ictcaon.BxyFC9l3.png | Bin 0 -> 80206 bytes previews/PR238/assets/iefhksx.CHIqn74q.png | Bin 65207 -> 0 bytes ...dcjl.DaovVbE6.png => ioeltbg.DaovVbE6.png} | Bin previews/PR238/assets/irtqhkl.BDltONk3.png | Bin 81042 -> 0 bytes previews/PR238/assets/ixnjtdx.DpDSz3U3.png | Bin 232758 -> 0 bytes ...kgfn.0f3Lq4Lw.png => jyzhdin.0f3Lq4Lw.png} | Bin ...zdol.mCtKcWOr.png => khupcbf.mCtKcWOr.png} | Bin ...hwxi.DiwGEg2f.png => kvtkfdl.DiwGEg2f.png} | Bin ...jlcw.rOsRk89v.png => lhqicfo.rOsRk89v.png} | Bin ...wqgg.DTKLkKh_.png => mbjwyhn.DTKLkKh_.png} | Bin ...cnpi.C3SxJ3x-.png => nbwwrdy.C3SxJ3x-.png} | Bin previews/PR238/assets/nguwnkb.CXOHBuIW.png | Bin 0 -> 76165 bytes ...egmo.Cb0_DiYE.png => nhetjum.Cb0_DiYE.png} | Bin ...rplz.B94PsR1K.png => nzfjycb.B94PsR1K.png} | Bin previews/PR238/assets/odgkqfb.CThyMQae.png | Bin 73982 -> 0 bytes ...jkkk.Dig-DWOQ.png => pmzjbup.Dig-DWOQ.png} | Bin ...yfze.BD0hVfse.png => qqpaewv.BD0hVfse.png} | Bin ...brub.4wfjCtJV.png => qsuxgwe.4wfjCtJV.png} | Bin ...dzqb.D9AE7i2o.png => rfezaag.D9AE7i2o.png} | Bin ...ztwp.0OJvb21A.png => rnyengw.0OJvb21A.png} | Bin ...s => source_methods_angles.md.Bdl4uNud.js} | 2 +- ...source_methods_angles.md.Bdl4uNud.lean.js} | 2 +- ....js => source_methods_area.md.D2Da__F3.js} | 2 +- ...> source_methods_area.md.D2Da__F3.lean.js} | 2 +- ...source_methods_barycentric.md.DnBl0n-K.js} | 2 +- ...e_methods_barycentric.md.DnBl0n-K.lean.js} | 2 +- ...=> source_methods_centroid.md.BT82gcVg.js} | 2 +- ...urce_methods_centroid.md.BT82gcVg.lean.js} | 2 +- ..._methods_clipping_coverage.md.CJpiLfPD.js} | 2 +- ...ods_clipping_coverage.md.CJpiLfPD.lean.js} | 2 +- ...ource_methods_clipping_cut.md.DRYvrHTw.js} | 2 +- ..._methods_clipping_cut.md.DRYvrHTw.lean.js} | 2 +- ...source_methods_convex_hull.md.BrjOWkfq.js} | 2 +- ...e_methods_convex_hull.md.BrjOWkfq.lean.js} | 2 +- ...=> source_methods_distance.md.CVMqDjx5.js} | 2 +- ...urce_methods_distance.md.CVMqDjx5.lean.js} | 2 +- ...s => source_methods_equals.md.CgqJun80.js} | 2 +- ...source_methods_equals.md.CgqJun80.lean.js} | 2 +- ...ds_geom_relations_contains.md.CPKJZ7bw.js} | 2 +- ...om_relations_contains.md.CPKJZ7bw.lean.js} | 2 +- ...s_geom_relations_coveredby.md.Bu438YZs.js} | 2 +- ...m_relations_coveredby.md.Bu438YZs.lean.js} | 2 +- ...hods_geom_relations_covers.md.BdZW6XW5.js} | 2 +- ...geom_relations_covers.md.BdZW6XW5.lean.js} | 2 +- ...ds_geom_relations_disjoint.md.Di-QgxVW.js} | 2 +- ...om_relations_disjoint.md.Di-QgxVW.lean.js} | 2 +- ..._geom_relations_intersects.md.DW3h6fuT.js} | 2 +- ..._relations_intersects.md.DW3h6fuT.lean.js} | 2 +- ...ds_geom_relations_overlaps.md.DFiMjrKk.js} | 61 ++------ ...om_relations_overlaps.md.DFiMjrKk.lean.js} | 61 ++------ ...ods_geom_relations_touches.md.DCOHUOGJ.js} | 2 +- ...eom_relations_touches.md.DCOHUOGJ.lean.js} | 2 +- ...hods_geom_relations_within.md.DW6O5MaM.js} | 2 +- ...geom_relations_within.md.DW6O5MaM.lean.js} | 2 +- .../source_not_implemented_yet.md.B4PawMww.js | 4 - ...ce_not_implemented_yet.md.B4PawMww.lean.js | 4 - .../source_not_implemented_yet.md.iNF0IoqE.js | 1 + ...ce_not_implemented_yet.md.iNF0IoqE.lean.js | 1 + ...rvB.js => source_src_apply.md.wwJRCjFI.js} | 2 +- ...s => source_src_apply.md.wwJRCjFI.lean.js} | 2 +- ...ource_src_other_primitives.md.DuzRAPMQ.js} | 8 +- ..._src_other_primitives.md.DuzRAPMQ.lean.js} | 8 +- ...ection_geometry_correction.md.rHY_l4Yi.js} | 4 +- ...n_geometry_correction.md.rHY_l4Yi.lean.js} | 4 +- ...transformations_segmentize.md.CoptJFaF.js} | 2 +- ...formations_segmentize.md.CoptJFaF.lean.js} | 2 +- ...e_transformations_simplify.md.DhlRwMdg.js} | 2 +- ...nsformations_simplify.md.DhlRwMdg.lean.js} | 2 +- ...tpgs.DHcwB147.png => sqhssgt.DHcwB147.png} | Bin ...ukrz.pAYw0Yqf.png => tqgkqbl.pAYw0Yqf.png} | Bin previews/PR238/assets/ttsketx.DJUk7VMK.png | Bin 66813 -> 0 bytes ...utorials_creating_geometry.md.BbxWhyiL.js} | 4 +- ...als_creating_geometry.md.BbxWhyiL.lean.js} | 4 +- ...> tutorials_geodesic_paths.md.B0eW2fhm.js} | 2 +- ...orials_geodesic_paths.md.B0eW2fhm.lean.js} | 2 +- ...=> tutorials_spatial_joins.md.B_DJwau_.js} | 2 +- ...torials_spatial_joins.md.B_DJwau_.lean.js} | 2 +- ...licr.CULn5saZ.png => tvzxwdn.CULn5saZ.png} | Bin previews/PR238/assets/uavptik.C7FptcSe.png | Bin 0 -> 68726 bytes previews/PR238/assets/uchcjdf.yR5twQOY.png | Bin 0 -> 59706 bytes ...dloa.Dz86q2IX.png => uvccsex.Dz86q2IX.png} | Bin ...ynmy.-VpeHhXX.png => vnqwpfr.-VpeHhXX.png} | Bin previews/PR238/assets/wsfrvqa.DEsobWOp.png | Bin 209957 -> 0 bytes previews/PR238/assets/xrbwfdh.eu_Auql1.png | Bin 0 -> 228246 bytes previews/PR238/assets/xseqdrd.DP9--zAp.png | Bin 65470 -> 0 bytes ...nrcg.BEFUMtlf.png => ysbkgcq.BEFUMtlf.png} | Bin ...uluo.Dab1-ETk.png => zsrvzwp.Dab1-ETk.png} | Bin previews/PR238/call_notes.html | 6 +- .../experiments/accurate_accumulators.html | 6 +- previews/PR238/experiments/predicates.html | 10 +- previews/PR238/explanations/crs.html | 6 +- previews/PR238/explanations/paradigms.html | 6 +- .../PR238/explanations/peculiarities.html | 6 +- .../PR238/explanations/winding_order.html | 6 +- previews/PR238/hashmap.json | 2 +- previews/PR238/index.html | 6 +- previews/PR238/introduction.html | 6 +- previews/PR238/source/GeometryOps.html | 6 +- .../GeometryOpsFlexiJoinsExt.html | 6 +- .../GeometryOpsLibGEOSExt.html | 6 +- .../source/GeometryOpsLibGEOSExt/buffer.html | 6 +- .../GeometryOpsLibGEOSExt/segmentize.html | 6 +- .../simple_overrides.html | 6 +- .../GeometryOpsLibGEOSExt/simplify.html | 6 +- .../GeometryOpsProjExt.html | 6 +- .../source/GeometryOpsProjExt/reproject.html | 6 +- .../source/GeometryOpsProjExt/segmentize.html | 6 +- previews/PR238/source/methods/angles.html | 10 +- previews/PR238/source/methods/area.html | 12 +- .../PR238/source/methods/barycentric.html | 10 +- previews/PR238/source/methods/buffer.html | 6 +- previews/PR238/source/methods/centroid.html | 12 +- .../methods/clipping/clipping_processor.html | 6 +- .../source/methods/clipping/coverage.html | 10 +- .../PR238/source/methods/clipping/cut.html | 10 +- .../source/methods/clipping/difference.html | 6 +- .../source/methods/clipping/intersection.html | 6 +- .../source/methods/clipping/predicates.html | 6 +- .../PR238/source/methods/clipping/union.html | 6 +- .../PR238/source/methods/convex_hull.html | 14 +- previews/PR238/source/methods/distance.html | 12 +- previews/PR238/source/methods/equals.html | 10 +- .../methods/geom_relations/contains.html | 10 +- .../methods/geom_relations/coveredby.html | 10 +- .../source/methods/geom_relations/covers.html | 10 +- .../methods/geom_relations/crosses.html | 6 +- .../methods/geom_relations/disjoint.html | 10 +- .../geom_relations/geom_geom_processors.html | 6 +- .../methods/geom_relations/intersects.html | 10 +- .../methods/geom_relations/overlaps.html | 67 ++------- .../methods/geom_relations/touches.html | 10 +- .../source/methods/geom_relations/within.html | 10 +- .../PR238/source/methods/orientation.html | 6 +- previews/PR238/source/methods/polygonize.html | 6 +- .../PR238/source/not_implemented_yet.html | 13 +- previews/PR238/source/primitives.html | 6 +- .../PR238/source/src/GeometryOpsCore.html | 6 +- previews/PR238/source/src/apply.html | 10 +- previews/PR238/source/src/applyreduce.html | 6 +- previews/PR238/source/src/geometry_utils.html | 6 +- previews/PR238/source/src/keyword_docs.html | 6 +- .../PR238/source/src/other_primitives.html | 12 +- previews/PR238/source/src/types.html | 6 +- .../correction/closed_ring.html | 6 +- .../correction/geometry_correction.html | 12 +- .../correction/intersecting_polygons.html | 6 +- .../PR238/source/transformations/extent.html | 6 +- .../PR238/source/transformations/flip.html | 6 +- .../source/transformations/reproject.html | 6 +- .../source/transformations/segmentize.html | 12 +- .../source/transformations/simplify.html | 16 +-- .../source/transformations/transform.html | 6 +- .../PR238/source/transformations/tuples.html | 6 +- previews/PR238/source/types.html | 6 +- previews/PR238/source/utils.html | 6 +- .../PR238/tutorials/creating_geometry.html | 30 ++-- previews/PR238/tutorials/geodesic_paths.html | 10 +- previews/PR238/tutorials/spatial_joins.html | 14 +- 184 files changed, 578 insertions(+), 716 deletions(-) rename previews/PR238/assets/{cudytks.3sfpQl2i.png => acglfmt.3sfpQl2i.png} (100%) rename previews/PR238/assets/{oblkjlp.Bglvb-jp.png => aelmmcv.Bglvb-jp.png} (100%) rename previews/PR238/assets/{api.md.DdY_rhMa.js => api.md.608Eto75.js} (91%) rename previews/PR238/assets/{api.md.DdY_rhMa.lean.js => api.md.608Eto75.lean.js} (91%) rename previews/PR238/assets/{app.QBoZQMQG.js => app.CGG1rM39.js} (95%) rename previews/PR238/assets/{eheshmj.3UVIT8DR.png => boznahp.3UVIT8DR.png} (100%) delete mode 100644 previews/PR238/assets/candwhz.W-r9-vls.png create mode 100644 previews/PR238/assets/chunks/@localSearchIndexroot.D41mAyhC.js delete mode 100644 previews/PR238/assets/chunks/@localSearchIndexroot.Dr3-XR6o.js rename previews/PR238/assets/chunks/{VPLocalSearchBox.CCeSYx2c.js => VPLocalSearchBox.CPPYCYL5.js} (99%) rename previews/PR238/assets/chunks/{theme.Beldwsud.js => theme.B7VD6roi.js} (99%) rename previews/PR238/assets/{wjkuxmh.DC3TvBOO.png => cnioidk.DC3TvBOO.png} (100%) rename previews/PR238/assets/{oynuazh.CgiryX2p.png => czijwjc.CgiryX2p.png} (100%) create mode 100644 previews/PR238/assets/elpyarh.kYI7eJr8.png create mode 100644 previews/PR238/assets/excqmms.DIwADWhE.png rename previews/PR238/assets/{experiments_predicates.md.BPsYqbuf.lean.js => experiments_predicates.md.BWVHVMmB.js} (99%) rename previews/PR238/assets/{experiments_predicates.md.BPsYqbuf.js => experiments_predicates.md.BWVHVMmB.lean.js} (99%) rename previews/PR238/assets/{heqeujh.D5-bot8v.png => fsjmnbb.D5-bot8v.png} (100%) rename previews/PR238/assets/{zprlmze.DeeQUply.png => fsrdwjj.DeeQUply.png} (100%) rename previews/PR238/assets/{nclwnzm.CPClNl7F.png => gazeekx.CPClNl7F.png} (100%) rename previews/PR238/assets/{cppbtsk._0R9BbFk.png => hgskvzv._0R9BbFk.png} (100%) rename previews/PR238/assets/{osxbqkq.DuBHk1fh.png => hlbmezo.DuBHk1fh.png} (100%) create mode 100644 previews/PR238/assets/hosrsyx.CvvJ-ORz.png rename previews/PR238/assets/{vxbbynp.Cx40vhB3.png => hpptrek.Cx40vhB3.png} (100%) create mode 100644 previews/PR238/assets/ictcaon.BxyFC9l3.png delete mode 100644 previews/PR238/assets/iefhksx.CHIqn74q.png rename previews/PR238/assets/{mvjdcjl.DaovVbE6.png => ioeltbg.DaovVbE6.png} (100%) delete mode 100644 previews/PR238/assets/irtqhkl.BDltONk3.png delete mode 100644 previews/PR238/assets/ixnjtdx.DpDSz3U3.png rename previews/PR238/assets/{stlkgfn.0f3Lq4Lw.png => jyzhdin.0f3Lq4Lw.png} (100%) rename previews/PR238/assets/{uibzdol.mCtKcWOr.png => khupcbf.mCtKcWOr.png} (100%) rename previews/PR238/assets/{eiqhwxi.DiwGEg2f.png => kvtkfdl.DiwGEg2f.png} (100%) rename previews/PR238/assets/{brpjlcw.rOsRk89v.png => lhqicfo.rOsRk89v.png} (100%) rename previews/PR238/assets/{tsgwqgg.DTKLkKh_.png => mbjwyhn.DTKLkKh_.png} (100%) rename previews/PR238/assets/{euucnpi.C3SxJ3x-.png => nbwwrdy.C3SxJ3x-.png} (100%) create mode 100644 previews/PR238/assets/nguwnkb.CXOHBuIW.png rename previews/PR238/assets/{emcegmo.Cb0_DiYE.png => nhetjum.Cb0_DiYE.png} (100%) rename previews/PR238/assets/{nrirplz.B94PsR1K.png => nzfjycb.B94PsR1K.png} (100%) delete mode 100644 previews/PR238/assets/odgkqfb.CThyMQae.png rename previews/PR238/assets/{adhjkkk.Dig-DWOQ.png => pmzjbup.Dig-DWOQ.png} (100%) rename previews/PR238/assets/{zhayfze.BD0hVfse.png => qqpaewv.BD0hVfse.png} (100%) rename previews/PR238/assets/{cnhbrub.4wfjCtJV.png => qsuxgwe.4wfjCtJV.png} (100%) rename previews/PR238/assets/{galdzqb.D9AE7i2o.png => rfezaag.D9AE7i2o.png} (100%) rename previews/PR238/assets/{ycwztwp.0OJvb21A.png => rnyengw.0OJvb21A.png} (100%) rename previews/PR238/assets/{source_methods_angles.md.BfBgRbNW.js => source_methods_angles.md.Bdl4uNud.js} (99%) rename previews/PR238/assets/{source_methods_angles.md.BfBgRbNW.lean.js => source_methods_angles.md.Bdl4uNud.lean.js} (99%) rename previews/PR238/assets/{source_methods_area.md.CHWxYYB9.js => source_methods_area.md.D2Da__F3.js} (99%) rename previews/PR238/assets/{source_methods_area.md.CHWxYYB9.lean.js => source_methods_area.md.D2Da__F3.lean.js} (99%) rename previews/PR238/assets/{source_methods_barycentric.md.DmIno-Km.js => source_methods_barycentric.md.DnBl0n-K.js} (99%) rename previews/PR238/assets/{source_methods_barycentric.md.DmIno-Km.lean.js => source_methods_barycentric.md.DnBl0n-K.lean.js} (99%) rename previews/PR238/assets/{source_methods_centroid.md.fOzim5wq.js => source_methods_centroid.md.BT82gcVg.js} (99%) rename previews/PR238/assets/{source_methods_centroid.md.fOzim5wq.lean.js => source_methods_centroid.md.BT82gcVg.lean.js} (99%) rename previews/PR238/assets/{source_methods_clipping_coverage.md.BjYwMAiW.js => source_methods_clipping_coverage.md.CJpiLfPD.js} (99%) rename previews/PR238/assets/{source_methods_clipping_coverage.md.BjYwMAiW.lean.js => source_methods_clipping_coverage.md.CJpiLfPD.lean.js} (99%) rename previews/PR238/assets/{source_methods_clipping_cut.md.BRN3NaqE.js => source_methods_clipping_cut.md.DRYvrHTw.js} (99%) rename previews/PR238/assets/{source_methods_clipping_cut.md.BRN3NaqE.lean.js => source_methods_clipping_cut.md.DRYvrHTw.lean.js} (99%) rename previews/PR238/assets/{source_methods_convex_hull.md.E_Okplhz.js => source_methods_convex_hull.md.BrjOWkfq.js} (99%) rename previews/PR238/assets/{source_methods_convex_hull.md.E_Okplhz.lean.js => source_methods_convex_hull.md.BrjOWkfq.lean.js} (99%) rename previews/PR238/assets/{source_methods_distance.md.BuLlEwp9.js => source_methods_distance.md.CVMqDjx5.js} (99%) rename previews/PR238/assets/{source_methods_distance.md.BuLlEwp9.lean.js => source_methods_distance.md.CVMqDjx5.lean.js} (99%) rename previews/PR238/assets/{source_methods_equals.md.CQYqwJi6.js => source_methods_equals.md.CgqJun80.js} (99%) rename previews/PR238/assets/{source_methods_equals.md.CQYqwJi6.lean.js => source_methods_equals.md.CgqJun80.lean.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_contains.md.8_K3j1rE.js => source_methods_geom_relations_contains.md.CPKJZ7bw.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_contains.md.8_K3j1rE.lean.js => source_methods_geom_relations_contains.md.CPKJZ7bw.lean.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_coveredby.md.BmZEzXXT.js => source_methods_geom_relations_coveredby.md.Bu438YZs.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_coveredby.md.BmZEzXXT.lean.js => source_methods_geom_relations_coveredby.md.Bu438YZs.lean.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_covers.md.CgxV2GZS.js => source_methods_geom_relations_covers.md.BdZW6XW5.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_covers.md.CgxV2GZS.lean.js => source_methods_geom_relations_covers.md.BdZW6XW5.lean.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_disjoint.md.B0CCPLEP.js => source_methods_geom_relations_disjoint.md.Di-QgxVW.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_disjoint.md.B0CCPLEP.lean.js => source_methods_geom_relations_disjoint.md.Di-QgxVW.lean.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_intersects.md.CHxhFqD_.js => source_methods_geom_relations_intersects.md.DW3h6fuT.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_intersects.md.CHxhFqD_.lean.js => source_methods_geom_relations_intersects.md.DW3h6fuT.lean.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_overlaps.md.CA5EtZc5.js => source_methods_geom_relations_overlaps.md.DFiMjrKk.js} (86%) rename previews/PR238/assets/{source_methods_geom_relations_overlaps.md.CA5EtZc5.lean.js => source_methods_geom_relations_overlaps.md.DFiMjrKk.lean.js} (86%) rename previews/PR238/assets/{source_methods_geom_relations_touches.md.C-hkkD6y.js => source_methods_geom_relations_touches.md.DCOHUOGJ.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_touches.md.C-hkkD6y.lean.js => source_methods_geom_relations_touches.md.DCOHUOGJ.lean.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_within.md.OUFUC9ym.js => source_methods_geom_relations_within.md.DW6O5MaM.js} (99%) rename previews/PR238/assets/{source_methods_geom_relations_within.md.OUFUC9ym.lean.js => source_methods_geom_relations_within.md.DW6O5MaM.lean.js} (99%) delete mode 100644 previews/PR238/assets/source_not_implemented_yet.md.B4PawMww.js delete mode 100644 previews/PR238/assets/source_not_implemented_yet.md.B4PawMww.lean.js create mode 100644 previews/PR238/assets/source_not_implemented_yet.md.iNF0IoqE.js create mode 100644 previews/PR238/assets/source_not_implemented_yet.md.iNF0IoqE.lean.js rename previews/PR238/assets/{source_src_apply.md.BuwZgrvB.js => source_src_apply.md.wwJRCjFI.js} (99%) rename previews/PR238/assets/{source_src_apply.md.BuwZgrvB.lean.js => source_src_apply.md.wwJRCjFI.lean.js} (99%) rename previews/PR238/assets/{source_src_other_primitives.md.CclyXPRq.js => source_src_other_primitives.md.DuzRAPMQ.js} (99%) rename previews/PR238/assets/{source_src_other_primitives.md.CclyXPRq.lean.js => source_src_other_primitives.md.DuzRAPMQ.lean.js} (99%) rename previews/PR238/assets/{source_transformations_correction_geometry_correction.md.BUKI5iqX.js => source_transformations_correction_geometry_correction.md.rHY_l4Yi.js} (96%) rename previews/PR238/assets/{source_transformations_correction_geometry_correction.md.BUKI5iqX.lean.js => source_transformations_correction_geometry_correction.md.rHY_l4Yi.lean.js} (96%) rename previews/PR238/assets/{source_transformations_segmentize.md.C1u6DChx.js => source_transformations_segmentize.md.CoptJFaF.js} (99%) rename previews/PR238/assets/{source_transformations_segmentize.md.C1u6DChx.lean.js => source_transformations_segmentize.md.CoptJFaF.lean.js} (99%) rename previews/PR238/assets/{source_transformations_simplify.md.u8Bjh-r2.js => source_transformations_simplify.md.DhlRwMdg.js} (99%) rename previews/PR238/assets/{source_transformations_simplify.md.u8Bjh-r2.lean.js => source_transformations_simplify.md.DhlRwMdg.lean.js} (99%) rename previews/PR238/assets/{bdbtpgs.DHcwB147.png => sqhssgt.DHcwB147.png} (100%) rename previews/PR238/assets/{cjoukrz.pAYw0Yqf.png => tqgkqbl.pAYw0Yqf.png} (100%) delete mode 100644 previews/PR238/assets/ttsketx.DJUk7VMK.png rename previews/PR238/assets/{tutorials_creating_geometry.md.BNJCwUIY.js => tutorials_creating_geometry.md.BbxWhyiL.js} (99%) rename previews/PR238/assets/{tutorials_creating_geometry.md.BNJCwUIY.lean.js => tutorials_creating_geometry.md.BbxWhyiL.lean.js} (99%) rename previews/PR238/assets/{tutorials_geodesic_paths.md.CwDXJw5E.js => tutorials_geodesic_paths.md.B0eW2fhm.js} (98%) rename previews/PR238/assets/{tutorials_geodesic_paths.md.CwDXJw5E.lean.js => tutorials_geodesic_paths.md.B0eW2fhm.lean.js} (98%) rename previews/PR238/assets/{tutorials_spatial_joins.md.Do6MoDbG.js => tutorials_spatial_joins.md.B_DJwau_.js} (99%) rename previews/PR238/assets/{tutorials_spatial_joins.md.Do6MoDbG.lean.js => tutorials_spatial_joins.md.B_DJwau_.lean.js} (99%) rename previews/PR238/assets/{zzklicr.CULn5saZ.png => tvzxwdn.CULn5saZ.png} (100%) create mode 100644 previews/PR238/assets/uavptik.C7FptcSe.png create mode 100644 previews/PR238/assets/uchcjdf.yR5twQOY.png rename previews/PR238/assets/{csmdloa.Dz86q2IX.png => uvccsex.Dz86q2IX.png} (100%) rename previews/PR238/assets/{lxpynmy.-VpeHhXX.png => vnqwpfr.-VpeHhXX.png} (100%) delete mode 100644 previews/PR238/assets/wsfrvqa.DEsobWOp.png create mode 100644 previews/PR238/assets/xrbwfdh.eu_Auql1.png delete mode 100644 previews/PR238/assets/xseqdrd.DP9--zAp.png rename previews/PR238/assets/{nefnrcg.BEFUMtlf.png => ysbkgcq.BEFUMtlf.png} (100%) rename previews/PR238/assets/{dlquluo.Dab1-ETk.png => zsrvzwp.Dab1-ETk.png} (100%) diff --git a/previews/PR238/404.html b/previews/PR238/404.html index dc193ddae..d71632dab 100644 --- a/previews/PR238/404.html +++ b/previews/PR238/404.html @@ -9,14 +9,14 @@ - +
- + \ No newline at end of file diff --git a/previews/PR238/api.html b/previews/PR238/api.html index 9d4db31af..ab97b43e3 100644 --- a/previews/PR238/api.html +++ b/previews/PR238/api.html @@ -9,25 +9,25 @@ - + - + - + -
Skip to content

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

GeometryOpsCore.apply Function
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
+    
Skip to content

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

GeometryOpsCore.apply Function
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
 import GeometryOps as GO
 geom = GI.Polygon([GI.LinearRing([(1, 2), (3, 4), (5, 6), (1, 2)]),
                    GI.LinearRing([(3, 4), (5, 6), (6, 7), (3, 4)])])
 
 flipped_geom = GO.apply(GI.PointTrait, geom) do p
     (GI.y(p), GI.x(p))
-end

source

GeometryOpsCore.applyreduce Function
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source

GeometryOps.reproject Function
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
+end

source

GeometryOpsCore.applyreduce Function
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source

GeometryOps.reproject Function
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
 reproject(geometry, source_crs, target_crs; always_xy, time)
-reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

GeometryOps.transform Function
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

GeometryOps.transform Function
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -46,144 +46,141 @@
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

General geometry methods

OGC methods

GeometryOps.contains Function
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

General geometry methods

OGC methods

GeometryOps.contains Function
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source

GeometryOps.coveredby Function
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

GeometryOps.coveredby Function
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source

GeometryOps.covers Function
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

GeometryOps.covers Function
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source

GeometryOps.crosses Function
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source

GeometryOps.disjoint Function
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

GeometryOps.crosses Function
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source

GeometryOps.disjoint Function
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source

GeometryOps.intersects Function
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source

GeometryOps.intersects Function
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
 GO.intersects(line1, line2)
 
 # output
-true

source

GeometryOps.overlaps Function
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

GeometryOps.overlaps Function
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
+true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

GeometryOps.touches Function
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

GeometryOps.touches Function
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source

GeometryOps.within Function
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

GeometryOps.within Function
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source

Other general methods

GeometryOps.equals Function
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

Other general methods

GeometryOps.equals Function
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
+true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

GeometryOps.centroid Function
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

GeometryOps.distance Function
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.signed_distance Function
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.area Function
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

GeometryOps.centroid Function
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

GeometryOps.distance Function
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.signed_distance Function
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.area Function
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.signed_area Function
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.signed_area Function
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.angles Function
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.angles Function
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

GeometryOps.embed_extent Function
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

Barycentric coordinates

GeometryOps.barycentric_coordinates Function
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

GeometryOps.barycentric_coordinates! Function
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

GeometryOps.barycentric_interpolate Function
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

Other methods

GeometryOps.AbstractBarycentricCoordinateMethod Type
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source

GeometryOps.ClosedRing Type
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source

GeometryOps.DiffIntersectingPolygons Type
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source

GeometryOps.DouglasPeucker Type
julia
DouglasPeucker <: SimplifyAlg
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

GeometryOps.embed_extent Function
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

Barycentric coordinates

GeometryOps.barycentric_coordinates Function
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

GeometryOps.barycentric_coordinates! Function
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

GeometryOps.barycentric_interpolate Function
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

Other methods

GeometryOps.AbstractBarycentricCoordinateMethod Type
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source

GeometryOps.ClosedRing Type
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source

GeometryOps.DiffIntersectingPolygons Type
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source

GeometryOps.DouglasPeucker Type
julia
DouglasPeucker <: SimplifyAlg
 
-DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

GeometryOps.GEOS Type
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source

GeometryOps.GeodesicSegments Type
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source

GeometryOps.GeometryCorrection Type
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source

GeometryOps.LineOrientation Type
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source

GeometryOps.LinearSegments Type
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source

GeometryOps.MeanValue Type
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source

GeometryOps.MonotoneChainMethod Type
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source

GeometryOps.PointOrientation Type
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source

GeometryOps.RadialDistance Type
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

GeometryOps.SimplifyAlg Type
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source

GeometryOps.UnionIntersectingPolygons Type
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source

GeometryOps.VisvalingamWhyatt Type
julia
VisvalingamWhyatt <: SimplifyAlg
+DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

GeometryOps.GEOS Type
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source

GeometryOps.GeodesicSegments Type
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source

GeometryOps.GeometryCorrection Type
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source

GeometryOps.LineOrientation Type
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source

GeometryOps.LinearSegments Type
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source

GeometryOps.MeanValue Type
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source

GeometryOps.MonotoneChainMethod Type
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source

GeometryOps.PointOrientation Type
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source

GeometryOps.RadialDistance Type
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

GeometryOps.SimplifyAlg Type
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source

GeometryOps.UnionIntersectingPolygons Type
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source

GeometryOps.VisvalingamWhyatt Type
julia
VisvalingamWhyatt <: SimplifyAlg
 
-VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source

GeometryOps._det Method
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source

GeometryOps._equals_curves Method
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source

GeometryOps.angles Method
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source

GeometryOps._det Method
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source

GeometryOps._equals_curves Method
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source

GeometryOps.angles Method
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

GeometryOps.area Method
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

GeometryOps.area Method
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.barycentric_coordinates! Method
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

GeometryOps.barycentric_coordinates Method
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

GeometryOps.barycentric_interpolate Method
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

GeometryOps.centroid Method
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

GeometryOps.centroid_and_area Method
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source

GeometryOps.centroid_and_length Method
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source

GeometryOps.contains Method
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.barycentric_coordinates! Method
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

GeometryOps.barycentric_coordinates Method
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

GeometryOps.barycentric_interpolate Method
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

GeometryOps.centroid Method
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

GeometryOps.centroid_and_area Method
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source

GeometryOps.centroid_and_length Method
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source

GeometryOps.contains Method
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source

GeometryOps.convex_hull Function
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source

GeometryOps.coverage Method
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.coveredby Method
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

GeometryOps.convex_hull Function
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source

GeometryOps.coverage Method
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.coveredby Method
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source

GeometryOps.covers Method
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

GeometryOps.covers Method
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source

GeometryOps.crosses Method
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source

GeometryOps.cut Method
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source

GeometryOps.crosses Method
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source

GeometryOps.cut Method
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0.0, 0.0), (10.0, 0.0), (10.0, 10.0), (0.0, 10.0), (0.0, 0.0)]])
 line = GI.Line([(5.0, -5.0), (5.0, 15.0)])
@@ -193,7 +190,7 @@
 # output
 2-element Vector{Vector{Vector{Vector{Float64}}}}:
  [[[0.0, 0.0], [5.0, 0.0], [5.0, 10.0], [0.0, 10.0], [0.0, 0.0]]]
- [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source

GeometryOps.difference Method
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+ [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source

GeometryOps.difference Method
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly1 = GI.Polygon([[[0.0, 0.0], [5.0, 5.0], [10.0, 0.0], [5.0, -5.0], [0.0, 0.0]]])
 poly2 = GI.Polygon([[[3.0, 0.0], [8.0, 5.0], [13.0, 0.0], [8.0, -5.0], [3.0, 0.0]]])
@@ -202,32 +199,32 @@
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source

GeometryOps.disjoint Method
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source

GeometryOps.disjoint Method
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source

GeometryOps.distance Method
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.embed_extent Method
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

GeometryOps.enforce Method
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source

GeometryOps.equals Method
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

GeometryOps.equals Method
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

GeometryOps.distance Method
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.embed_extent Method
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

GeometryOps.enforce Method
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source

GeometryOps.equals Method
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

GeometryOps.equals Method
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source

GeometryOps.equals Method
julia
equals(
+true

source

GeometryOps.equals Method
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

GeometryOps.equals Method
julia
equals(
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

GeometryOps.equals Method
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

GeometryOps.equals Method
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

GeometryOps.equals Method
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

GeometryOps.equals Method
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

GeometryOps.equals Method
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

GeometryOps.equals Method
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

GeometryOps.equals Method
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

GeometryOps.equals Method
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

GeometryOps.equals Method
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

GeometryOps.equals Method
julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

GeometryOps.equals Method
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

GeometryOps.equals Method
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

GeometryOps.equals Method
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

GeometryOps.equals Method
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

GeometryOps.equals Method
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

GeometryOps.equals Method
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

GeometryOps.equals Method
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

GeometryOps.equals Method
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

GeometryOps.equals Method
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

GeometryOps.equals Method
julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

GeometryOps.equals Method
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

GeometryOps.equals Method
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

GeometryOps.flip Method
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

GeometryOps.intersection Method
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

GeometryOps.equals Method
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

GeometryOps.flip Method
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

GeometryOps.intersection Method
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
@@ -236,7 +233,7 @@
 
 # output
 1-element Vector{Vector{Float64}}:
- [125.58375366067548, -14.83572303404496]

source

GeometryOps.intersection_points Method
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

+ [125.58375366067548, -14.83572303404496]

source

GeometryOps.intersection_points Method
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)]) line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)]) inter_points = GO.intersection_points(line1, line2)
 
 **output**
@@ -244,7 +241,7 @@
 1-element Vector{Tuple{Float64, Float64}}:  (125.58375366067548, -14.83572303404496)
 
 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/51625e9f63dd625d794d140757f2f4fbde58fea2/src/methods/clipping/intersection.jl#L177-L195)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/6f7d2ee24cb7fcde8e5c7bc68e82dbc1382ba550/src/methods/clipping/intersection.jl#L177-L195)
 
 </details>
 
@@ -261,54 +258,51 @@
 GO.intersects(line1, line2)
 
 # output
-true

source

GeometryOps.isclockwise Method
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

(i=2n(xixi1)(yi+yi1))>0

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
+true

source

GeometryOps.isclockwise Method
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

(i=2n(xixi1)(yi+yi1))>0

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
 julia> ring = GI.LinearRing([(0, 0), (1, 1), (1, 0), (0, 0)]);
 julia> GO.isclockwise(ring)
 # output
-true

source

GeometryOps.isconcave Method
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+true

source

GeometryOps.isconcave Method
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0, 0), (0, 1), (1, 1), (1, 0), (0, 0)]])
 GO.isconcave(poly)
 
 # output
-false

source

GeometryOps.overlaps Method
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+false

source

GeometryOps.overlaps Method
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source

GeometryOps.overlaps Method
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

GeometryOps.overlaps Method
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

GeometryOps.overlaps Method
julia
overlaps(
+true

source

GeometryOps.overlaps Method
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

GeometryOps.overlaps Method
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

GeometryOps.overlaps Method
julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

GeometryOps.overlaps Method
julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

GeometryOps.overlaps Method
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

GeometryOps.overlaps Method
julia
overlaps(
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

GeometryOps.overlaps Method
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

GeometryOps.overlaps Method
julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

GeometryOps.overlaps Method
julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

GeometryOps.overlaps Method
julia
overlaps(
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

GeometryOps.polygon_to_line Method
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

GeometryOps.polygon_to_line Method
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 poly = GI.Polygon([[(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)]])
 GO.polygon_to_line(poly)
 # output
-GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source

GeometryOps.polygonize Method
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
+GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source

GeometryOps.polygonize Method
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
 polygonize(f, A::AbstractMatrix; kw...)
 polygonize(xs, ys, A::AbstractMatrix{Bool}; kw...)
 polygonize(f, xs, ys, A::AbstractMatrix; kw...)

Polygonize an AbstractMatrix of values, currently to a single class of polygons.

Returns a MultiPolygon for Bool values and f return values, and a FeatureCollection of Features holding MultiPolygon for all other values.

Function f should return either true or false or a transformation of values into simpler groups, especially useful for floating point arrays.

If xs and ys are ranges, they are used as the pixel/cell center points. If they are Vector of Tuple they are used as the lower and upper bounds of each pixel/cell.

Keywords

  • minpoints: ignore polygons with less than minpoints points.

  • values: the values to turn into polygons. By default these are union(A), If function f is passed these refer to the return values of f, by default union(map(f, A). If values Bool, false is ignored and a single MultiPolygon is returned rather than a FeatureCollection.

Example

julia
using GeometryOps
 A = rand(100, 100)
-multipolygon = polygonize(>(0.5), A);

source

GeometryOps.segmentize Method
julia
segmentize([method = Planar()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::Manifold = Planar(): The method to use for segmentizing the geometry. At the moment, only Planar (assumes a flat plane) and Geodesic (assumes geometry on the ellipsoidal Earth and uses Vincenty's formulae) are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, Polygon, MultiPolygon, or GeometryCollection, or some vector or table of those.

  • max_distance::Real: The maximum distance between vertices in the geometry. Beware: for Planar, this is in the units of the geometry, but for Geodesic and Spherical it's in units of the radius of the sphere.

Returns a geometry of similar type to the input geometry, but resampled.

source

GeometryOps.signed_area Method
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+multipolygon = polygonize(>(0.5), A);

source

GeometryOps.segmentize Method
julia
segmentize([method = Planar()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::Manifold = Planar(): The method to use for segmentizing the geometry. At the moment, only Planar (assumes a flat plane) and Geodesic (assumes geometry on the ellipsoidal Earth and uses Vincenty's formulae) are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, Polygon, MultiPolygon, or GeometryCollection, or some vector or table of those.

  • max_distance::Real: The maximum distance between vertices in the geometry. Beware: for Planar, this is in the units of the geometry, but for Geodesic and Spherical it's in units of the radius of the sphere.

Returns a geometry of similar type to the input geometry, but resampled.

source

GeometryOps.signed_area Method
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.signed_distance Method
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.simplify Method
julia
simplify(obj; kw...)
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.signed_distance Method
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

GeometryOps.simplify Method
julia
simplify(obj; kw...)
 simplify(::SimplifyAlg, obj; kw...)

Simplify a geometry, feature, feature collection, or nested vectors or a table of these.

RadialDistance, DouglasPeucker, or VisvalingamWhyatt algorithms are available, listed in order of increasing quality but decreasing performance.

PoinTrait and MultiPointTrait are returned unchanged.

The default behaviour is simplify(DouglasPeucker(; kw...), obj). Pass in other SimplifyAlg to use other algorithms.

Keywords

  • prefilter_alg: SimplifyAlg algorithm used to pre-filter object before using primary filtering algorithm.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Keywords for DouglasPeucker are allowed when no algorithm is specified:

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Example

Simplify a polygon to have six points:

julia
import GeoInterface as GI
 import GeometryOps as GO
 
@@ -338,9 +332,9 @@
 GI.npoint(simple)
 
 # output
-6

source

GeometryOps.t_value Method
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

t=det(s,s)rr+ss

+6

source

GeometryOps.t_value Method
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

t=det(s,s)rr+ss

 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/51625e9f63dd625d794d140757f2f4fbde58fea2/src/methods/barycentric.jl#L289-L305)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/6f7d2ee24cb7fcde8e5c7bc68e82dbc1382ba550/src/methods/barycentric.jl#L289-L305)
 
 </details>
 
@@ -350,14 +344,14 @@
 
 
 ```julia
-to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source

GeometryOps.touches Method
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source

GeometryOps.touches Method
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source

GeometryOps.transform Method
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+true

source

GeometryOps.transform Method
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -376,7 +370,7 @@
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

GeometryOps.tuples Method
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

GeometryOps.union Method
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

GeometryOps.tuples Method
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

GeometryOps.union Method
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 p1 = GI.Polygon([[(0.0, 0.0), (5.0, 5.0), (10.0, 0.0), (5.0, -5.0), (0.0, 0.0)]])
 p2 = GI.Polygon([[(3.0, 0.0), (8.0, 5.0), (13.0, 0.0), (8.0, -5.0), (3.0, 0.0)]])
@@ -385,15 +379,15 @@
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source

GeometryOps.weighted_mean Method
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source

GeometryOps.within Method
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source

GeometryOps.weighted_mean Method
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source

GeometryOps.within Method
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source


  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

- +true

source


  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

+ \ No newline at end of file diff --git a/previews/PR238/assets/cudytks.3sfpQl2i.png b/previews/PR238/assets/acglfmt.3sfpQl2i.png similarity index 100% rename from previews/PR238/assets/cudytks.3sfpQl2i.png rename to previews/PR238/assets/acglfmt.3sfpQl2i.png diff --git a/previews/PR238/assets/oblkjlp.Bglvb-jp.png b/previews/PR238/assets/aelmmcv.Bglvb-jp.png similarity index 100% rename from previews/PR238/assets/oblkjlp.Bglvb-jp.png rename to previews/PR238/assets/aelmmcv.Bglvb-jp.png diff --git a/previews/PR238/assets/api.md.DdY_rhMa.js b/previews/PR238/assets/api.md.608Eto75.js similarity index 91% rename from previews/PR238/assets/api.md.DdY_rhMa.js rename to previews/PR238/assets/api.md.608Eto75.js index 8e7231667..c30816259 100644 --- a/previews/PR238/assets/api.md.DdY_rhMa.js +++ b/previews/PR238/assets/api.md.608Eto75.js @@ -1,13 +1,13 @@ -import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/framework.Bkt_v4A4.js";const ui=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),r={name:"api.md"},o={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},_={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},$={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},ss={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""},as={class:"jldocstring custom-block",open:""},es={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},ns={class:"jldocstring custom-block",open:""},ls={class:"jldocstring custom-block",open:""},ps={class:"jldocstring custom-block",open:""},hs={class:"jldocstring custom-block",open:""},ks={class:"jldocstring custom-block",open:""},rs={class:"jldocstring custom-block",open:""},os={class:"jldocstring custom-block",open:""},ds={class:"jldocstring custom-block",open:""},gs={class:"jldocstring custom-block",open:""},ys={class:"jldocstring custom-block",open:""},Es={class:"jldocstring custom-block",open:""},cs={class:"jldocstring custom-block",open:""},us={class:"jldocstring custom-block",open:""},ms={class:"jldocstring custom-block",open:""},Fs={class:"jldocstring custom-block",open:""},Cs={class:"jldocstring custom-block",open:""},fs={class:"jldocstring custom-block",open:""},bs={class:"jldocstring custom-block",open:""},Ts={class:"jldocstring custom-block",open:""},Gs={class:"jldocstring custom-block",open:""},As={class:"jldocstring custom-block",open:""},vs={class:"jldocstring custom-block",open:""},js={class:"jldocstring custom-block",open:""},Bs={class:"jldocstring custom-block",open:""},Os={class:"jldocstring custom-block",open:""},Ds={class:"jldocstring custom-block",open:""},Qs={class:"jldocstring custom-block",open:""},xs={class:"jldocstring custom-block",open:""},ws={class:"jldocstring custom-block",open:""},Ls={class:"jldocstring custom-block",open:""},Is={class:"jldocstring custom-block",open:""},Ms={class:"jldocstring custom-block",open:""},Ps={class:"jldocstring custom-block",open:""},qs={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},Rs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.827ex"},xmlns:"http://www.w3.org/2000/svg",width:"33.539ex",height:"6.785ex",role:"img",focusable:"false",viewBox:"0 -1749.5 14824.1 2999","aria-hidden":"true"},Ss={class:"jldocstring custom-block",open:""},Vs={class:"jldocstring custom-block",open:""},Js={class:"jldocstring custom-block",open:""},Us={class:"jldocstring custom-block",open:""},Hs={class:"jldocstring custom-block",open:""},Ns={class:"jldocstring custom-block",open:""},zs={class:"jldocstring custom-block",open:""},Ws={class:"jldocstring custom-block",open:""},Zs={class:"jldocstring custom-block",open:""},_s={class:"jldocstring custom-block",open:""},Ks={class:"jldocstring custom-block",open:""},Xs={class:"jldocstring custom-block",open:""},$s={class:"jldocstring custom-block",open:""},Ys={class:"jldocstring custom-block",open:""},si={class:"jldocstring custom-block",open:""},ii={class:"jldocstring custom-block",open:""},ai={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ei={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.746ex",height:"5.362ex",role:"img",focusable:"false",viewBox:"0 -1460 12263.9 2370","aria-hidden":"true"},ti={class:"jldocstring custom-block",open:""},ni={class:"jldocstring custom-block",open:""},li={class:"jldocstring custom-block",open:""},pi={class:"jldocstring custom-block",open:""},hi={class:"jldocstring custom-block",open:""},ki={class:"jldocstring custom-block",open:""};function ri(oi,s,di,gi,yi,Ei){const t=k("Badge");return p(),l("div",null,[s[315]||(s[315]=a('

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

',5)),i("details",o,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOpsCore.apply",href:"#GeometryOpsCore.apply"},[i("span",{class:"jlbinding"},"GeometryOpsCore.apply")],-1)),s[1]||(s[1]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=a(`
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
+import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/framework.Bkt_v4A4.js";const ci=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),r={name:"api.md"},o={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},_={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},$={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},ss={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""},as={class:"jldocstring custom-block",open:""},es={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},ns={class:"jldocstring custom-block",open:""},ls={class:"jldocstring custom-block",open:""},ps={class:"jldocstring custom-block",open:""},hs={class:"jldocstring custom-block",open:""},ks={class:"jldocstring custom-block",open:""},rs={class:"jldocstring custom-block",open:""},os={class:"jldocstring custom-block",open:""},ds={class:"jldocstring custom-block",open:""},gs={class:"jldocstring custom-block",open:""},ys={class:"jldocstring custom-block",open:""},Es={class:"jldocstring custom-block",open:""},cs={class:"jldocstring custom-block",open:""},us={class:"jldocstring custom-block",open:""},ms={class:"jldocstring custom-block",open:""},Fs={class:"jldocstring custom-block",open:""},bs={class:"jldocstring custom-block",open:""},Cs={class:"jldocstring custom-block",open:""},fs={class:"jldocstring custom-block",open:""},Ts={class:"jldocstring custom-block",open:""},Gs={class:"jldocstring custom-block",open:""},As={class:"jldocstring custom-block",open:""},vs={class:"jldocstring custom-block",open:""},js={class:"jldocstring custom-block",open:""},Bs={class:"jldocstring custom-block",open:""},Os={class:"jldocstring custom-block",open:""},Ds={class:"jldocstring custom-block",open:""},Qs={class:"jldocstring custom-block",open:""},xs={class:"jldocstring custom-block",open:""},ws={class:"jldocstring custom-block",open:""},Ls={class:"jldocstring custom-block",open:""},Is={class:"jldocstring custom-block",open:""},Ms={class:"jldocstring custom-block",open:""},Ps={class:"jldocstring custom-block",open:""},qs={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},Rs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.827ex"},xmlns:"http://www.w3.org/2000/svg",width:"33.539ex",height:"6.785ex",role:"img",focusable:"false",viewBox:"0 -1749.5 14824.1 2999","aria-hidden":"true"},Ss={class:"jldocstring custom-block",open:""},Vs={class:"jldocstring custom-block",open:""},Js={class:"jldocstring custom-block",open:""},Hs={class:"jldocstring custom-block",open:""},Us={class:"jldocstring custom-block",open:""},Ns={class:"jldocstring custom-block",open:""},zs={class:"jldocstring custom-block",open:""},Ws={class:"jldocstring custom-block",open:""},Zs={class:"jldocstring custom-block",open:""},_s={class:"jldocstring custom-block",open:""},Ks={class:"jldocstring custom-block",open:""},Xs={class:"jldocstring custom-block",open:""},$s={class:"jldocstring custom-block",open:""},Ys={class:"jldocstring custom-block",open:""},si={class:"jldocstring custom-block",open:""},ii={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ai={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.746ex",height:"5.362ex",role:"img",focusable:"false",viewBox:"0 -1460 12263.9 2370","aria-hidden":"true"},ei={class:"jldocstring custom-block",open:""},ti={class:"jldocstring custom-block",open:""},ni={class:"jldocstring custom-block",open:""},li={class:"jldocstring custom-block",open:""},pi={class:"jldocstring custom-block",open:""},hi={class:"jldocstring custom-block",open:""};function ki(ri,s,oi,di,gi,yi){const t=k("Badge");return p(),l("div",null,[s[312]||(s[312]=a('

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

',5)),i("details",o,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOpsCore.apply",href:"#GeometryOpsCore.apply"},[i("span",{class:"jlbinding"},"GeometryOpsCore.apply")],-1)),s[1]||(s[1]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=a(`
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
 import GeometryOps as GO
 geom = GI.Polygon([GI.LinearRing([(1, 2), (3, 4), (5, 6), (1, 2)]),
                    GI.LinearRing([(3, 4), (5, 6), (6, 7), (3, 4)])])
 
 flipped_geom = GO.apply(GI.PointTrait, geom) do p
     (GI.y(p), GI.x(p))
-end

source

`,10))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.applyreduce",href:"#GeometryOpsCore.applyreduce"},[i("span",{class:"jlbinding"},"GeometryOpsCore.applyreduce")],-1)),s[4]||(s[4]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a('
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source

',5))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOps.reproject",href:"#GeometryOps.reproject"},[i("span",{class:"jlbinding"},"GeometryOps.reproject")],-1)),s[7]||(s[7]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=a(`
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
+end

source

`,10))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.applyreduce",href:"#GeometryOpsCore.applyreduce"},[i("span",{class:"jlbinding"},"GeometryOpsCore.applyreduce")],-1)),s[4]||(s[4]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a('
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source

',5))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOps.reproject",href:"#GeometryOps.reproject"},[i("span",{class:"jlbinding"},"GeometryOps.reproject")],-1)),s[7]||(s[7]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=a(`
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
 reproject(geometry, source_crs, target_crs; always_xy, time)
-reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

`,10))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOps.transform",href:"#GeometryOps.transform"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[10]||(s[10]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=a(`
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

`,10))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOps.transform",href:"#GeometryOps.transform"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[10]||(s[10]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=a(`
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -26,144 +26,141 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

`,9))]),s[316]||(s[316]=i("h2",{id:"General-geometry-methods",tabindex:"-1"},[e("General geometry methods "),i("a",{class:"header-anchor",href:"#General-geometry-methods","aria-label":'Permalink to "General geometry methods {#General-geometry-methods}"'},"​")],-1)),s[317]||(s[317]=i("h3",{id:"OGC-methods",tabindex:"-1"},[e("OGC methods "),i("a",{class:"header-anchor",href:"#OGC-methods","aria-label":'Permalink to "OGC methods {#OGC-methods}"'},"​")],-1)),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeometryOps.contains",href:"#GeometryOps.contains"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[13]||(s[13]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=a(`
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

`,9))]),s[313]||(s[313]=i("h2",{id:"General-geometry-methods",tabindex:"-1"},[e("General geometry methods "),i("a",{class:"header-anchor",href:"#General-geometry-methods","aria-label":'Permalink to "General geometry methods {#General-geometry-methods}"'},"​")],-1)),s[314]||(s[314]=i("h3",{id:"OGC-methods",tabindex:"-1"},[e("OGC methods "),i("a",{class:"header-anchor",href:"#OGC-methods","aria-label":'Permalink to "OGC methods {#OGC-methods}"'},"​")],-1)),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeometryOps.contains",href:"#GeometryOps.contains"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[13]||(s[13]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=a(`
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source

`,6))]),i("details",c,[i("summary",null,[s[15]||(s[15]=i("a",{id:"GeometryOps.coveredby",href:"#GeometryOps.coveredby"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[16]||(s[16]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[17]||(s[17]=a(`
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",c,[i("summary",null,[s[15]||(s[15]=i("a",{id:"GeometryOps.coveredby",href:"#GeometryOps.coveredby"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[16]||(s[16]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[17]||(s[17]=a(`
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source

`,6))]),i("details",u,[i("summary",null,[s[18]||(s[18]=i("a",{id:"GeometryOps.covers",href:"#GeometryOps.covers"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[19]||(s[19]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=a(`
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",u,[i("summary",null,[s[18]||(s[18]=i("a",{id:"GeometryOps.covers",href:"#GeometryOps.covers"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[19]||(s[19]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=a(`
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source

`,6))]),i("details",m,[i("summary",null,[s[21]||(s[21]=i("a",{id:"GeometryOps.crosses",href:"#GeometryOps.crosses"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[22]||(s[22]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[23]||(s[23]=a(`
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source

`,6))]),i("details",F,[i("summary",null,[s[24]||(s[24]=i("a",{id:"GeometryOps.disjoint",href:"#GeometryOps.disjoint"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[25]||(s[25]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[26]||(s[26]=a(`
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",m,[i("summary",null,[s[21]||(s[21]=i("a",{id:"GeometryOps.crosses",href:"#GeometryOps.crosses"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[22]||(s[22]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[23]||(s[23]=a(`
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source

`,6))]),i("details",F,[i("summary",null,[s[24]||(s[24]=i("a",{id:"GeometryOps.disjoint",href:"#GeometryOps.disjoint"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[25]||(s[25]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[26]||(s[26]=a(`
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source

`,6))]),i("details",C,[i("summary",null,[s[27]||(s[27]=i("a",{id:"GeometryOps.intersects",href:"#GeometryOps.intersects"},[i("span",{class:"jlbinding"},"GeometryOps.intersects")],-1)),s[28]||(s[28]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[29]||(s[29]=a(`
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source

`,6))]),i("details",b,[i("summary",null,[s[27]||(s[27]=i("a",{id:"GeometryOps.intersects",href:"#GeometryOps.intersects"},[i("span",{class:"jlbinding"},"GeometryOps.intersects")],-1)),s[28]||(s[28]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[29]||(s[29]=a(`
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
 GO.intersects(line1, line2)
 
 # output
-true

source

`,6))]),i("details",f,[i("summary",null,[s[30]||(s[30]=i("a",{id:"GeometryOps.overlaps",href:"#GeometryOps.overlaps"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[31]||(s[31]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[32]||(s[32]=a(`
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",C,[i("summary",null,[s[30]||(s[30]=i("a",{id:"GeometryOps.overlaps",href:"#GeometryOps.overlaps"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[31]||(s[31]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[32]||(s[32]=a(`
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
+true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

`,26))]),i("details",b,[i("summary",null,[s[33]||(s[33]=i("a",{id:"GeometryOps.touches",href:"#GeometryOps.touches"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[34]||(s[34]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[35]||(s[35]=a(`
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

`,23))]),i("details",f,[i("summary",null,[s[33]||(s[33]=i("a",{id:"GeometryOps.touches",href:"#GeometryOps.touches"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[34]||(s[34]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[35]||(s[35]=a(`
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source

`,5))]),i("details",T,[i("summary",null,[s[36]||(s[36]=i("a",{id:"GeometryOps.within",href:"#GeometryOps.within"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[37]||(s[37]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[38]||(s[38]=a(`
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,5))]),i("details",T,[i("summary",null,[s[36]||(s[36]=i("a",{id:"GeometryOps.within",href:"#GeometryOps.within"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[37]||(s[37]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[38]||(s[38]=a(`
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source

`,6))]),s[318]||(s[318]=i("h3",{id:"Other-general-methods",tabindex:"-1"},[e("Other general methods "),i("a",{class:"header-anchor",href:"#Other-general-methods","aria-label":'Permalink to "Other general methods {#Other-general-methods}"'},"​")],-1)),i("details",G,[i("summary",null,[s[39]||(s[39]=i("a",{id:"GeometryOps.equals",href:"#GeometryOps.equals"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[40]||(s[40]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[41]||(s[41]=a(`
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),s[315]||(s[315]=i("h3",{id:"Other-general-methods",tabindex:"-1"},[e("Other general methods "),i("a",{class:"header-anchor",href:"#Other-general-methods","aria-label":'Permalink to "Other general methods {#Other-general-methods}"'},"​")],-1)),i("details",G,[i("summary",null,[s[39]||(s[39]=i("a",{id:"GeometryOps.equals",href:"#GeometryOps.equals"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[40]||(s[40]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[41]||(s[41]=a(`
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
+true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

`,47))]),i("details",A,[i("summary",null,[s[42]||(s[42]=i("a",{id:"GeometryOps.centroid",href:"#GeometryOps.centroid"},[i("span",{class:"jlbinding"},"GeometryOps.centroid")],-1)),s[43]||(s[43]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[44]||(s[44]=a('
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

',3))]),i("details",v,[i("summary",null,[s[45]||(s[45]=i("a",{id:"GeometryOps.distance",href:"#GeometryOps.distance"},[i("span",{class:"jlbinding"},"GeometryOps.distance")],-1)),s[46]||(s[46]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[47]||(s[47]=a('
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",j,[i("summary",null,[s[48]||(s[48]=i("a",{id:"GeometryOps.signed_distance",href:"#GeometryOps.signed_distance"},[i("span",{class:"jlbinding"},"GeometryOps.signed_distance")],-1)),s[49]||(s[49]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[50]||(s[50]=a('
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',4))]),i("details",B,[i("summary",null,[s[51]||(s[51]=i("a",{id:"GeometryOps.area",href:"#GeometryOps.area"},[i("span",{class:"jlbinding"},"GeometryOps.area")],-1)),s[52]||(s[52]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[53]||(s[53]=a(`
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

`,47))]),i("details",A,[i("summary",null,[s[42]||(s[42]=i("a",{id:"GeometryOps.centroid",href:"#GeometryOps.centroid"},[i("span",{class:"jlbinding"},"GeometryOps.centroid")],-1)),s[43]||(s[43]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[44]||(s[44]=a('
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

',3))]),i("details",v,[i("summary",null,[s[45]||(s[45]=i("a",{id:"GeometryOps.distance",href:"#GeometryOps.distance"},[i("span",{class:"jlbinding"},"GeometryOps.distance")],-1)),s[46]||(s[46]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[47]||(s[47]=a('
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",j,[i("summary",null,[s[48]||(s[48]=i("a",{id:"GeometryOps.signed_distance",href:"#GeometryOps.signed_distance"},[i("span",{class:"jlbinding"},"GeometryOps.signed_distance")],-1)),s[49]||(s[49]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[50]||(s[50]=a('
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',4))]),i("details",B,[i("summary",null,[s[51]||(s[51]=i("a",{id:"GeometryOps.area",href:"#GeometryOps.area"},[i("span",{class:"jlbinding"},"GeometryOps.area")],-1)),s[52]||(s[52]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[53]||(s[53]=a(`
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",O,[i("summary",null,[s[54]||(s[54]=i("a",{id:"GeometryOps.signed_area",href:"#GeometryOps.signed_area"},[i("span",{class:"jlbinding"},"GeometryOps.signed_area")],-1)),s[55]||(s[55]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[56]||(s[56]=a(`
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",O,[i("summary",null,[s[54]||(s[54]=i("a",{id:"GeometryOps.signed_area",href:"#GeometryOps.signed_area"},[i("span",{class:"jlbinding"},"GeometryOps.signed_area")],-1)),s[55]||(s[55]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[56]||(s[56]=a(`
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",D,[i("summary",null,[s[57]||(s[57]=i("a",{id:"GeometryOps.angles",href:"#GeometryOps.angles"},[i("span",{class:"jlbinding"},"GeometryOps.angles")],-1)),s[58]||(s[58]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[59]||(s[59]=a(`
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",D,[i("summary",null,[s[57]||(s[57]=i("a",{id:"GeometryOps.angles",href:"#GeometryOps.angles"},[i("span",{class:"jlbinding"},"GeometryOps.angles")],-1)),s[58]||(s[58]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[59]||(s[59]=a(`
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

`,5))]),i("details",Q,[i("summary",null,[s[60]||(s[60]=i("a",{id:"GeometryOps.embed_extent",href:"#GeometryOps.embed_extent"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[61]||(s[61]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[62]||(s[62]=a('
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

',6))]),s[319]||(s[319]=i("h2",{id:"Barycentric-coordinates",tabindex:"-1"},[e("Barycentric coordinates "),i("a",{class:"header-anchor",href:"#Barycentric-coordinates","aria-label":'Permalink to "Barycentric coordinates {#Barycentric-coordinates}"'},"​")],-1)),i("details",x,[i("summary",null,[s[63]||(s[63]=i("a",{id:"GeometryOps.barycentric_coordinates",href:"#GeometryOps.barycentric_coordinates"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates")],-1)),s[64]||(s[64]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[65]||(s[65]=a('
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

',3))]),i("details",w,[i("summary",null,[s[66]||(s[66]=i("a",{id:"GeometryOps.barycentric_coordinates!",href:"#GeometryOps.barycentric_coordinates!"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates!")],-1)),s[67]||(s[67]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[68]||(s[68]=a('
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

',5))]),i("details",L,[i("summary",null,[s[69]||(s[69]=i("a",{id:"GeometryOps.barycentric_interpolate",href:"#GeometryOps.barycentric_interpolate"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_interpolate")],-1)),s[70]||(s[70]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[71]||(s[71]=a('
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

',5))]),s[320]||(s[320]=i("h2",{id:"Other-methods",tabindex:"-1"},[e("Other methods "),i("a",{class:"header-anchor",href:"#Other-methods","aria-label":'Permalink to "Other methods {#Other-methods}"'},"​")],-1)),i("details",I,[i("summary",null,[s[72]||(s[72]=i("a",{id:"GeometryOps.AbstractBarycentricCoordinateMethod",href:"#GeometryOps.AbstractBarycentricCoordinateMethod"},[i("span",{class:"jlbinding"},"GeometryOps.AbstractBarycentricCoordinateMethod")],-1)),s[73]||(s[73]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[74]||(s[74]=a('
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source

',7))]),i("details",M,[i("summary",null,[s[75]||(s[75]=i("a",{id:"GeometryOps.ClosedRing",href:"#GeometryOps.ClosedRing"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[76]||(s[76]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[77]||(s[77]=a('
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source

',5))]),i("details",P,[i("summary",null,[s[78]||(s[78]=i("a",{id:"GeometryOps.DiffIntersectingPolygons",href:"#GeometryOps.DiffIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[79]||(s[79]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[80]||(s[80]=a('
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source

',3))]),i("details",q,[i("summary",null,[s[81]||(s[81]=i("a",{id:"GeometryOps.DouglasPeucker",href:"#GeometryOps.DouglasPeucker"},[i("span",{class:"jlbinding"},"GeometryOps.DouglasPeucker")],-1)),s[82]||(s[82]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[83]||(s[83]=a(`
julia
DouglasPeucker <: SimplifyAlg
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

`,5))]),i("details",Q,[i("summary",null,[s[60]||(s[60]=i("a",{id:"GeometryOps.embed_extent",href:"#GeometryOps.embed_extent"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[61]||(s[61]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[62]||(s[62]=a('
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

',6))]),s[316]||(s[316]=i("h2",{id:"Barycentric-coordinates",tabindex:"-1"},[e("Barycentric coordinates "),i("a",{class:"header-anchor",href:"#Barycentric-coordinates","aria-label":'Permalink to "Barycentric coordinates {#Barycentric-coordinates}"'},"​")],-1)),i("details",x,[i("summary",null,[s[63]||(s[63]=i("a",{id:"GeometryOps.barycentric_coordinates",href:"#GeometryOps.barycentric_coordinates"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates")],-1)),s[64]||(s[64]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[65]||(s[65]=a('
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

',3))]),i("details",w,[i("summary",null,[s[66]||(s[66]=i("a",{id:"GeometryOps.barycentric_coordinates!",href:"#GeometryOps.barycentric_coordinates!"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates!")],-1)),s[67]||(s[67]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[68]||(s[68]=a('
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

',5))]),i("details",L,[i("summary",null,[s[69]||(s[69]=i("a",{id:"GeometryOps.barycentric_interpolate",href:"#GeometryOps.barycentric_interpolate"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_interpolate")],-1)),s[70]||(s[70]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[71]||(s[71]=a('
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

',5))]),s[317]||(s[317]=i("h2",{id:"Other-methods",tabindex:"-1"},[e("Other methods "),i("a",{class:"header-anchor",href:"#Other-methods","aria-label":'Permalink to "Other methods {#Other-methods}"'},"​")],-1)),i("details",I,[i("summary",null,[s[72]||(s[72]=i("a",{id:"GeometryOps.AbstractBarycentricCoordinateMethod",href:"#GeometryOps.AbstractBarycentricCoordinateMethod"},[i("span",{class:"jlbinding"},"GeometryOps.AbstractBarycentricCoordinateMethod")],-1)),s[73]||(s[73]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[74]||(s[74]=a('
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source

',7))]),i("details",M,[i("summary",null,[s[75]||(s[75]=i("a",{id:"GeometryOps.ClosedRing",href:"#GeometryOps.ClosedRing"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[76]||(s[76]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[77]||(s[77]=a('
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source

',5))]),i("details",P,[i("summary",null,[s[78]||(s[78]=i("a",{id:"GeometryOps.DiffIntersectingPolygons",href:"#GeometryOps.DiffIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[79]||(s[79]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[80]||(s[80]=a('
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source

',3))]),i("details",q,[i("summary",null,[s[81]||(s[81]=i("a",{id:"GeometryOps.DouglasPeucker",href:"#GeometryOps.DouglasPeucker"},[i("span",{class:"jlbinding"},"GeometryOps.DouglasPeucker")],-1)),s[82]||(s[82]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[83]||(s[83]=a(`
julia
DouglasPeucker <: SimplifyAlg
 
-DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

`,6))]),i("details",R,[i("summary",null,[s[84]||(s[84]=i("a",{id:"GeometryOps.GEOS",href:"#GeometryOps.GEOS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOS")],-1)),s[85]||(s[85]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[86]||(s[86]=a('
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source

',5))]),i("details",S,[i("summary",null,[s[87]||(s[87]=i("a",{id:"GeometryOps.GeodesicSegments",href:"#GeometryOps.GeodesicSegments"},[i("span",{class:"jlbinding"},"GeometryOps.GeodesicSegments")],-1)),s[88]||(s[88]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[89]||(s[89]=a('
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source

',8))]),i("details",V,[i("summary",null,[s[90]||(s[90]=i("a",{id:"GeometryOps.GeometryCorrection",href:"#GeometryOps.GeometryCorrection"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[91]||(s[91]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[92]||(s[92]=a('
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source

',5))]),i("details",J,[i("summary",null,[s[93]||(s[93]=i("a",{id:"GeometryOps.LineOrientation",href:"#GeometryOps.LineOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.LineOrientation")],-1)),s[94]||(s[94]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[95]||(s[95]=a('
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source

',3))]),i("details",U,[i("summary",null,[s[96]||(s[96]=i("a",{id:"GeometryOps.LinearSegments",href:"#GeometryOps.LinearSegments"},[i("span",{class:"jlbinding"},"GeometryOps.LinearSegments")],-1)),s[97]||(s[97]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[98]||(s[98]=a('
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source

',4))]),i("details",H,[i("summary",null,[s[99]||(s[99]=i("a",{id:"GeometryOps.MeanValue",href:"#GeometryOps.MeanValue"},[i("span",{class:"jlbinding"},"GeometryOps.MeanValue")],-1)),s[100]||(s[100]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[101]||(s[101]=a('
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source

',4))]),i("details",N,[i("summary",null,[s[102]||(s[102]=i("a",{id:"GeometryOps.MonotoneChainMethod",href:"#GeometryOps.MonotoneChainMethod"},[i("span",{class:"jlbinding"},"GeometryOps.MonotoneChainMethod")],-1)),s[103]||(s[103]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[104]||(s[104]=a('
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source

',5))]),i("details",z,[i("summary",null,[s[105]||(s[105]=i("a",{id:"GeometryOps.PointOrientation",href:"#GeometryOps.PointOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.PointOrientation")],-1)),s[106]||(s[106]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[107]||(s[107]=a('
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source

',3))]),i("details",W,[i("summary",null,[s[108]||(s[108]=i("a",{id:"GeometryOps.RadialDistance",href:"#GeometryOps.RadialDistance"},[i("span",{class:"jlbinding"},"GeometryOps.RadialDistance")],-1)),s[109]||(s[109]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[110]||(s[110]=a('
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

',6))]),i("details",Z,[i("summary",null,[s[111]||(s[111]=i("a",{id:"GeometryOps.SimplifyAlg",href:"#GeometryOps.SimplifyAlg"},[i("span",{class:"jlbinding"},"GeometryOps.SimplifyAlg")],-1)),s[112]||(s[112]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[113]||(s[113]=a('
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source

',6))]),i("details",_,[i("summary",null,[s[114]||(s[114]=i("a",{id:"GeometryOps.UnionIntersectingPolygons",href:"#GeometryOps.UnionIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[115]||(s[115]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[116]||(s[116]=a('
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source

',4))]),i("details",K,[i("summary",null,[s[117]||(s[117]=i("a",{id:"GeometryOps.VisvalingamWhyatt",href:"#GeometryOps.VisvalingamWhyatt"},[i("span",{class:"jlbinding"},"GeometryOps.VisvalingamWhyatt")],-1)),s[118]||(s[118]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[119]||(s[119]=a(`
julia
VisvalingamWhyatt <: SimplifyAlg
+DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

`,6))]),i("details",R,[i("summary",null,[s[84]||(s[84]=i("a",{id:"GeometryOps.GEOS",href:"#GeometryOps.GEOS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOS")],-1)),s[85]||(s[85]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[86]||(s[86]=a('
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source

',5))]),i("details",S,[i("summary",null,[s[87]||(s[87]=i("a",{id:"GeometryOps.GeodesicSegments",href:"#GeometryOps.GeodesicSegments"},[i("span",{class:"jlbinding"},"GeometryOps.GeodesicSegments")],-1)),s[88]||(s[88]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[89]||(s[89]=a('
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source

',8))]),i("details",V,[i("summary",null,[s[90]||(s[90]=i("a",{id:"GeometryOps.GeometryCorrection",href:"#GeometryOps.GeometryCorrection"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[91]||(s[91]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[92]||(s[92]=a('
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source

',5))]),i("details",J,[i("summary",null,[s[93]||(s[93]=i("a",{id:"GeometryOps.LineOrientation",href:"#GeometryOps.LineOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.LineOrientation")],-1)),s[94]||(s[94]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[95]||(s[95]=a('
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source

',3))]),i("details",H,[i("summary",null,[s[96]||(s[96]=i("a",{id:"GeometryOps.LinearSegments",href:"#GeometryOps.LinearSegments"},[i("span",{class:"jlbinding"},"GeometryOps.LinearSegments")],-1)),s[97]||(s[97]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[98]||(s[98]=a('
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source

',4))]),i("details",U,[i("summary",null,[s[99]||(s[99]=i("a",{id:"GeometryOps.MeanValue",href:"#GeometryOps.MeanValue"},[i("span",{class:"jlbinding"},"GeometryOps.MeanValue")],-1)),s[100]||(s[100]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[101]||(s[101]=a('
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source

',4))]),i("details",N,[i("summary",null,[s[102]||(s[102]=i("a",{id:"GeometryOps.MonotoneChainMethod",href:"#GeometryOps.MonotoneChainMethod"},[i("span",{class:"jlbinding"},"GeometryOps.MonotoneChainMethod")],-1)),s[103]||(s[103]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[104]||(s[104]=a('
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source

',5))]),i("details",z,[i("summary",null,[s[105]||(s[105]=i("a",{id:"GeometryOps.PointOrientation",href:"#GeometryOps.PointOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.PointOrientation")],-1)),s[106]||(s[106]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[107]||(s[107]=a('
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source

',3))]),i("details",W,[i("summary",null,[s[108]||(s[108]=i("a",{id:"GeometryOps.RadialDistance",href:"#GeometryOps.RadialDistance"},[i("span",{class:"jlbinding"},"GeometryOps.RadialDistance")],-1)),s[109]||(s[109]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[110]||(s[110]=a('
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

',6))]),i("details",Z,[i("summary",null,[s[111]||(s[111]=i("a",{id:"GeometryOps.SimplifyAlg",href:"#GeometryOps.SimplifyAlg"},[i("span",{class:"jlbinding"},"GeometryOps.SimplifyAlg")],-1)),s[112]||(s[112]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[113]||(s[113]=a('
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source

',6))]),i("details",_,[i("summary",null,[s[114]||(s[114]=i("a",{id:"GeometryOps.UnionIntersectingPolygons",href:"#GeometryOps.UnionIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[115]||(s[115]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[116]||(s[116]=a('
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source

',4))]),i("details",K,[i("summary",null,[s[117]||(s[117]=i("a",{id:"GeometryOps.VisvalingamWhyatt",href:"#GeometryOps.VisvalingamWhyatt"},[i("span",{class:"jlbinding"},"GeometryOps.VisvalingamWhyatt")],-1)),s[118]||(s[118]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[119]||(s[119]=a(`
julia
VisvalingamWhyatt <: SimplifyAlg
 
-VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source

`,6))]),i("details",X,[i("summary",null,[s[120]||(s[120]=i("a",{id:"GeometryOps._det-Union{Tuple{T2}, Tuple{T1}, Tuple{Union{Tuple{T1, T1}, StaticArraysCore.StaticArray{Tuple{2}, T1, 1}}, Union{Tuple{T2, T2}, StaticArraysCore.StaticArray{Tuple{2}, T2, 1}}}} where {T1<:Real, T2<:Real}",href:"#GeometryOps._det-Union{Tuple{T2}, Tuple{T1}, Tuple{Union{Tuple{T1, T1}, StaticArraysCore.StaticArray{Tuple{2}, T1, 1}}, Union{Tuple{T2, T2}, StaticArraysCore.StaticArray{Tuple{2}, T2, 1}}}} where {T1<:Real, T2<:Real}"},[i("span",{class:"jlbinding"},"GeometryOps._det")],-1)),s[121]||(s[121]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[122]||(s[122]=a('
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source

',5))]),i("details",$,[i("summary",null,[s[123]||(s[123]=i("a",{id:"GeometryOps._equals_curves-NTuple{4, Any}",href:"#GeometryOps._equals_curves-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps._equals_curves")],-1)),s[124]||(s[124]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[125]||(s[125]=a('
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source

',3))]),i("details",Y,[i("summary",null,[s[126]||(s[126]=i("a",{id:"GeometryOps.angles-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.angles-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.angles")],-1)),s[127]||(s[127]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[128]||(s[128]=a(`
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source

`,6))]),i("details",X,[i("summary",null,[s[120]||(s[120]=i("a",{id:"GeometryOps._det-Union{Tuple{T2}, Tuple{T1}, Tuple{Union{Tuple{T1, T1}, StaticArraysCore.StaticArray{Tuple{2}, T1, 1}}, Union{Tuple{T2, T2}, StaticArraysCore.StaticArray{Tuple{2}, T2, 1}}}} where {T1<:Real, T2<:Real}",href:"#GeometryOps._det-Union{Tuple{T2}, Tuple{T1}, Tuple{Union{Tuple{T1, T1}, StaticArraysCore.StaticArray{Tuple{2}, T1, 1}}, Union{Tuple{T2, T2}, StaticArraysCore.StaticArray{Tuple{2}, T2, 1}}}} where {T1<:Real, T2<:Real}"},[i("span",{class:"jlbinding"},"GeometryOps._det")],-1)),s[121]||(s[121]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[122]||(s[122]=a('
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source

',5))]),i("details",$,[i("summary",null,[s[123]||(s[123]=i("a",{id:"GeometryOps._equals_curves-NTuple{4, Any}",href:"#GeometryOps._equals_curves-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps._equals_curves")],-1)),s[124]||(s[124]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[125]||(s[125]=a('
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source

',3))]),i("details",Y,[i("summary",null,[s[126]||(s[126]=i("a",{id:"GeometryOps.angles-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.angles-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.angles")],-1)),s[127]||(s[127]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[128]||(s[128]=a(`
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

`,5))]),i("details",ss,[i("summary",null,[s[129]||(s[129]=i("a",{id:"GeometryOps.area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.area")],-1)),s[130]||(s[130]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[131]||(s[131]=a(`
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

`,5))]),i("details",ss,[i("summary",null,[s[129]||(s[129]=i("a",{id:"GeometryOps.area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.area")],-1)),s[130]||(s[130]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[131]||(s[131]=a(`
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",is,[i("summary",null,[s[132]||(s[132]=i("a",{id:"GeometryOps.barycentric_coordinates!-Tuple{Vector{<:Real}, GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}",href:"#GeometryOps.barycentric_coordinates!-Tuple{Vector{<:Real}, GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates!")],-1)),s[133]||(s[133]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[134]||(s[134]=a('
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

',5))]),i("details",as,[i("summary",null,[s[135]||(s[135]=i("a",{id:"GeometryOps.barycentric_coordinates-Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}",href:"#GeometryOps.barycentric_coordinates-Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates")],-1)),s[136]||(s[136]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[137]||(s[137]=a('
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

',3))]),i("details",es,[i("summary",null,[s[138]||(s[138]=i("a",{id:"GeometryOps.barycentric_interpolate-Union{Tuple{V}, Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, AbstractVector{V}, Any}} where V",href:"#GeometryOps.barycentric_interpolate-Union{Tuple{V}, Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, AbstractVector{V}, Any}} where V"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_interpolate")],-1)),s[139]||(s[139]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[140]||(s[140]=a('
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

',5))]),i("details",ts,[i("summary",null,[s[141]||(s[141]=i("a",{id:"GeometryOps.centroid-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid")],-1)),s[142]||(s[142]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[143]||(s[143]=a('
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

',3))]),i("details",ns,[i("summary",null,[s[144]||(s[144]=i("a",{id:"GeometryOps.centroid_and_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid_and_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid_and_area")],-1)),s[145]||(s[145]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=a('
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source

',3))]),i("details",ls,[i("summary",null,[s[147]||(s[147]=i("a",{id:"GeometryOps.centroid_and_length-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid_and_length-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid_and_length")],-1)),s[148]||(s[148]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[149]||(s[149]=a('
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source

',3))]),i("details",ps,[i("summary",null,[s[150]||(s[150]=i("a",{id:"GeometryOps.contains-Tuple{Any, Any}",href:"#GeometryOps.contains-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[151]||(s[151]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[152]||(s[152]=a(`
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",is,[i("summary",null,[s[132]||(s[132]=i("a",{id:"GeometryOps.barycentric_coordinates!-Tuple{Vector{<:Real}, GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}",href:"#GeometryOps.barycentric_coordinates!-Tuple{Vector{<:Real}, GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates!")],-1)),s[133]||(s[133]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[134]||(s[134]=a('
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

',5))]),i("details",as,[i("summary",null,[s[135]||(s[135]=i("a",{id:"GeometryOps.barycentric_coordinates-Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}",href:"#GeometryOps.barycentric_coordinates-Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates")],-1)),s[136]||(s[136]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[137]||(s[137]=a('
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

',3))]),i("details",es,[i("summary",null,[s[138]||(s[138]=i("a",{id:"GeometryOps.barycentric_interpolate-Union{Tuple{V}, Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, AbstractVector{V}, Any}} where V",href:"#GeometryOps.barycentric_interpolate-Union{Tuple{V}, Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, AbstractVector{V}, Any}} where V"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_interpolate")],-1)),s[139]||(s[139]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[140]||(s[140]=a('
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

',5))]),i("details",ts,[i("summary",null,[s[141]||(s[141]=i("a",{id:"GeometryOps.centroid-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid")],-1)),s[142]||(s[142]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[143]||(s[143]=a('
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

',3))]),i("details",ns,[i("summary",null,[s[144]||(s[144]=i("a",{id:"GeometryOps.centroid_and_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid_and_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid_and_area")],-1)),s[145]||(s[145]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=a('
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source

',3))]),i("details",ls,[i("summary",null,[s[147]||(s[147]=i("a",{id:"GeometryOps.centroid_and_length-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid_and_length-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid_and_length")],-1)),s[148]||(s[148]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[149]||(s[149]=a('
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source

',3))]),i("details",ps,[i("summary",null,[s[150]||(s[150]=i("a",{id:"GeometryOps.contains-Tuple{Any, Any}",href:"#GeometryOps.contains-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[151]||(s[151]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[152]||(s[152]=a(`
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source

`,6))]),i("details",hs,[i("summary",null,[s[153]||(s[153]=i("a",{id:"GeometryOps.convex_hull",href:"#GeometryOps.convex_hull"},[i("span",{class:"jlbinding"},"GeometryOps.convex_hull")],-1)),s[154]||(s[154]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[155]||(s[155]=a('
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source

',5))]),i("details",ks,[i("summary",null,[s[156]||(s[156]=i("a",{id:"GeometryOps.coverage-Union{Tuple{T}, NTuple{5, Any}, Tuple{Any, Any, Any, Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.coverage-Union{Tuple{T}, NTuple{5, Any}, Tuple{Any, Any, Any, Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.coverage")],-1)),s[157]||(s[157]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[158]||(s[158]=a('
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",rs,[i("summary",null,[s[159]||(s[159]=i("a",{id:"GeometryOps.coveredby-Tuple{Any, Any}",href:"#GeometryOps.coveredby-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[160]||(s[160]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[161]||(s[161]=a(`
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",hs,[i("summary",null,[s[153]||(s[153]=i("a",{id:"GeometryOps.convex_hull",href:"#GeometryOps.convex_hull"},[i("span",{class:"jlbinding"},"GeometryOps.convex_hull")],-1)),s[154]||(s[154]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[155]||(s[155]=a('
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source

',5))]),i("details",ks,[i("summary",null,[s[156]||(s[156]=i("a",{id:"GeometryOps.coverage-Union{Tuple{T}, NTuple{5, Any}, Tuple{Any, Any, Any, Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.coverage-Union{Tuple{T}, NTuple{5, Any}, Tuple{Any, Any, Any, Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.coverage")],-1)),s[157]||(s[157]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[158]||(s[158]=a('
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",rs,[i("summary",null,[s[159]||(s[159]=i("a",{id:"GeometryOps.coveredby-Tuple{Any, Any}",href:"#GeometryOps.coveredby-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[160]||(s[160]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[161]||(s[161]=a(`
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source

`,6))]),i("details",os,[i("summary",null,[s[162]||(s[162]=i("a",{id:"GeometryOps.covers-Tuple{Any, Any}",href:"#GeometryOps.covers-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[163]||(s[163]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[164]||(s[164]=a(`
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",os,[i("summary",null,[s[162]||(s[162]=i("a",{id:"GeometryOps.covers-Tuple{Any, Any}",href:"#GeometryOps.covers-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[163]||(s[163]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[164]||(s[164]=a(`
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source

`,6))]),i("details",ds,[i("summary",null,[s[165]||(s[165]=i("a",{id:"GeometryOps.crosses-Tuple{Any, Any}",href:"#GeometryOps.crosses-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[166]||(s[166]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[167]||(s[167]=a(`
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source

`,6))]),i("details",gs,[i("summary",null,[s[168]||(s[168]=i("a",{id:"GeometryOps.cut-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.cut-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.cut")],-1)),s[169]||(s[169]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[170]||(s[170]=a(`
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source

`,6))]),i("details",ds,[i("summary",null,[s[165]||(s[165]=i("a",{id:"GeometryOps.crosses-Tuple{Any, Any}",href:"#GeometryOps.crosses-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[166]||(s[166]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[167]||(s[167]=a(`
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source

`,6))]),i("details",gs,[i("summary",null,[s[168]||(s[168]=i("a",{id:"GeometryOps.cut-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.cut-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.cut")],-1)),s[169]||(s[169]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[170]||(s[170]=a(`
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0.0, 0.0), (10.0, 0.0), (10.0, 10.0), (0.0, 10.0), (0.0, 0.0)]])
 line = GI.Line([(5.0, -5.0), (5.0, 15.0)])
@@ -173,7 +170,7 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 # output
 2-element Vector{Vector{Vector{Vector{Float64}}}}:
  [[[0.0, 0.0], [5.0, 0.0], [5.0, 10.0], [0.0, 10.0], [0.0, 0.0]]]
- [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source

`,6))]),i("details",ys,[i("summary",null,[s[171]||(s[171]=i("a",{id:"GeometryOps.difference-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.difference-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.difference")],-1)),s[172]||(s[172]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[173]||(s[173]=a(`
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+ [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source

`,6))]),i("details",ys,[i("summary",null,[s[171]||(s[171]=i("a",{id:"GeometryOps.difference-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.difference-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.difference")],-1)),s[172]||(s[172]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[173]||(s[173]=a(`
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly1 = GI.Polygon([[[0.0, 0.0], [5.0, 5.0], [10.0, 0.0], [5.0, -5.0], [0.0, 0.0]]])
 poly2 = GI.Polygon([[[3.0, 0.0], [8.0, 5.0], [13.0, 0.0], [8.0, -5.0], [3.0, 0.0]]])
@@ -182,32 +179,32 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source

`,5))]),i("details",Es,[i("summary",null,[s[174]||(s[174]=i("a",{id:"GeometryOps.disjoint-Tuple{Any, Any}",href:"#GeometryOps.disjoint-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[175]||(s[175]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[176]||(s[176]=a(`
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source

`,5))]),i("details",Es,[i("summary",null,[s[174]||(s[174]=i("a",{id:"GeometryOps.disjoint-Tuple{Any, Any}",href:"#GeometryOps.disjoint-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[175]||(s[175]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[176]||(s[176]=a(`
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source

`,6))]),i("details",cs,[i("summary",null,[s[177]||(s[177]=i("a",{id:"GeometryOps.distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.distance")],-1)),s[178]||(s[178]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[179]||(s[179]=a('
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",us,[i("summary",null,[s[180]||(s[180]=i("a",{id:"GeometryOps.embed_extent-Tuple{Any}",href:"#GeometryOps.embed_extent-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[181]||(s[181]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[182]||(s[182]=a('
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

',6))]),i("details",ms,[i("summary",null,[s[183]||(s[183]=i("a",{id:"GeometryOps.enforce-Tuple{GEOS, Symbol, Any}",href:"#GeometryOps.enforce-Tuple{GEOS, Symbol, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.enforce")],-1)),s[184]||(s[184]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[185]||(s[185]=a('
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source

',4))]),i("details",Fs,[i("summary",null,[s[186]||(s[186]=i("a",{id:"GeometryOps.equals-NTuple{4, Any}",href:"#GeometryOps.equals-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[187]||(s[187]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[188]||(s[188]=a('
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

',3))]),i("details",Cs,[i("summary",null,[s[189]||(s[189]=i("a",{id:"GeometryOps.equals-Tuple{Any, Any}",href:"#GeometryOps.equals-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[190]||(s[190]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[191]||(s[191]=a(`
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",cs,[i("summary",null,[s[177]||(s[177]=i("a",{id:"GeometryOps.distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.distance")],-1)),s[178]||(s[178]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[179]||(s[179]=a('
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",us,[i("summary",null,[s[180]||(s[180]=i("a",{id:"GeometryOps.embed_extent-Tuple{Any}",href:"#GeometryOps.embed_extent-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[181]||(s[181]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[182]||(s[182]=a('
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

',6))]),i("details",ms,[i("summary",null,[s[183]||(s[183]=i("a",{id:"GeometryOps.enforce-Tuple{GEOS, Symbol, Any}",href:"#GeometryOps.enforce-Tuple{GEOS, Symbol, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.enforce")],-1)),s[184]||(s[184]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[185]||(s[185]=a('
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source

',4))]),i("details",Fs,[i("summary",null,[s[186]||(s[186]=i("a",{id:"GeometryOps.equals-NTuple{4, Any}",href:"#GeometryOps.equals-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[187]||(s[187]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[188]||(s[188]=a('
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

',3))]),i("details",bs,[i("summary",null,[s[189]||(s[189]=i("a",{id:"GeometryOps.equals-Tuple{Any, Any}",href:"#GeometryOps.equals-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[190]||(s[190]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[191]||(s[191]=a(`
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source

`,5))]),i("details",fs,[i("summary",null,[s[192]||(s[192]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, GeoInterface.LinearRingTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, GeoInterface.LinearRingTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[193]||(s[193]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[194]||(s[194]=a(`
julia
equals(
+true

source

`,5))]),i("details",Cs,[i("summary",null,[s[192]||(s[192]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, GeoInterface.LinearRingTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, GeoInterface.LinearRingTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[193]||(s[193]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[194]||(s[194]=a(`
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

`,3))]),i("details",bs,[i("summary",null,[s[195]||(s[195]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[196]||(s[196]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[197]||(s[197]=a(`
julia
equals(
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

`,3))]),i("details",fs,[i("summary",null,[s[195]||(s[195]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[196]||(s[196]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[197]||(s[197]=a(`
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

`,3))]),i("details",Ts,[i("summary",null,[s[198]||(s[198]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[199]||(s[199]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[200]||(s[200]=a('
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

',3))]),i("details",Gs,[i("summary",null,[s[201]||(s[201]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.PointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.PointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[202]||(s[202]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[203]||(s[203]=a('
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

',3))]),i("details",As,[i("summary",null,[s[204]||(s[204]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[205]||(s[205]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[206]||(s[206]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

',3))]),i("details",vs,[i("summary",null,[s[207]||(s[207]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[208]||(s[208]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[209]||(s[209]=a('
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

',3))]),i("details",js,[i("summary",null,[s[210]||(s[210]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[211]||(s[211]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[212]||(s[212]=a('
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

',3))]),i("details",Bs,[i("summary",null,[s[213]||(s[213]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.PointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.PointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[214]||(s[214]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[215]||(s[215]=a('
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

',3))]),i("details",Os,[i("summary",null,[s[216]||(s[216]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[217]||(s[217]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[218]||(s[218]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

',3))]),i("details",Ds,[i("summary",null,[s[219]||(s[219]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[220]||(s[220]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[221]||(s[221]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

',3))]),i("details",Qs,[i("summary",null,[s[222]||(s[222]=i("a",{id:"GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, GeoInterface.LinearRingTrait, Any}",href:"#GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, GeoInterface.LinearRingTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[223]||(s[223]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[224]||(s[224]=a(`
julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

`,3))]),i("details",Ts,[i("summary",null,[s[198]||(s[198]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[199]||(s[199]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[200]||(s[200]=a('
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

',3))]),i("details",Gs,[i("summary",null,[s[201]||(s[201]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.PointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.PointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[202]||(s[202]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[203]||(s[203]=a('
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

',3))]),i("details",As,[i("summary",null,[s[204]||(s[204]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[205]||(s[205]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[206]||(s[206]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

',3))]),i("details",vs,[i("summary",null,[s[207]||(s[207]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[208]||(s[208]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[209]||(s[209]=a('
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

',3))]),i("details",js,[i("summary",null,[s[210]||(s[210]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[211]||(s[211]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[212]||(s[212]=a('
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

',3))]),i("details",Bs,[i("summary",null,[s[213]||(s[213]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.PointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.PointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[214]||(s[214]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[215]||(s[215]=a('
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

',3))]),i("details",Os,[i("summary",null,[s[216]||(s[216]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[217]||(s[217]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[218]||(s[218]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

',3))]),i("details",Ds,[i("summary",null,[s[219]||(s[219]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[220]||(s[220]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[221]||(s[221]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

',3))]),i("details",Qs,[i("summary",null,[s[222]||(s[222]=i("a",{id:"GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, GeoInterface.LinearRingTrait, Any}",href:"#GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, GeoInterface.LinearRingTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[223]||(s[223]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[224]||(s[224]=a(`
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

`,3))]),i("details",xs,[i("summary",null,[s[225]||(s[225]=i("a",{id:"GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}",href:"#GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[226]||(s[226]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[227]||(s[227]=a(`
julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

`,3))]),i("details",xs,[i("summary",null,[s[225]||(s[225]=i("a",{id:"GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}",href:"#GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[226]||(s[226]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[227]||(s[227]=a(`
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

`,3))]),i("details",ws,[i("summary",null,[s[228]||(s[228]=i("a",{id:"GeometryOps.equals-Union{Tuple{T}, Tuple{T, Any, T, Any}} where T",href:"#GeometryOps.equals-Union{Tuple{T}, Tuple{T, Any, T, Any}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[229]||(s[229]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[230]||(s[230]=a('
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

',3))]),i("details",Ls,[i("summary",null,[s[231]||(s[231]=i("a",{id:"GeometryOps.flip-Tuple{Any}",href:"#GeometryOps.flip-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.flip")],-1)),s[232]||(s[232]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[233]||(s[233]=a('
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

',5))]),i("details",Is,[i("summary",null,[s[234]||(s[234]=i("a",{id:"GeometryOps.intersection-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.intersection-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.intersection")],-1)),s[235]||(s[235]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[236]||(s[236]=a(`
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

`,3))]),i("details",ws,[i("summary",null,[s[228]||(s[228]=i("a",{id:"GeometryOps.equals-Union{Tuple{T}, Tuple{T, Any, T, Any}} where T",href:"#GeometryOps.equals-Union{Tuple{T}, Tuple{T, Any, T, Any}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[229]||(s[229]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[230]||(s[230]=a('
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

',3))]),i("details",Ls,[i("summary",null,[s[231]||(s[231]=i("a",{id:"GeometryOps.flip-Tuple{Any}",href:"#GeometryOps.flip-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.flip")],-1)),s[232]||(s[232]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[233]||(s[233]=a('
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

',5))]),i("details",Is,[i("summary",null,[s[234]||(s[234]=i("a",{id:"GeometryOps.intersection-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.intersection-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.intersection")],-1)),s[235]||(s[235]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[236]||(s[236]=a(`
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
@@ -216,7 +213,7 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 
 # output
 1-element Vector{Vector{Float64}}:
- [125.58375366067548, -14.83572303404496]

source

`,5))]),i("details",Ms,[i("summary",null,[s[237]||(s[237]=i("a",{id:"GeometryOps.intersection_points-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.intersection_points-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.intersection_points")],-1)),s[238]||(s[238]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[239]||(s[239]=a(`
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

+ [125.58375366067548, -14.83572303404496]

source

`,5))]),i("details",Ms,[i("summary",null,[s[237]||(s[237]=i("a",{id:"GeometryOps.intersection_points-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.intersection_points-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.intersection_points")],-1)),s[238]||(s[238]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[239]||(s[239]=a(`
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)]) line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)]) inter_points = GO.intersection_points(line1, line2)
 
 **output**
@@ -224,7 +221,7 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 1-element Vector{Tuple{Float64, Float64}}:  (125.58375366067548, -14.83572303404496)
 
 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/51625e9f63dd625d794d140757f2f4fbde58fea2/src/methods/clipping/intersection.jl#L177-L195)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/6f7d2ee24cb7fcde8e5c7bc68e82dbc1382ba550/src/methods/clipping/intersection.jl#L177-L195)
 
 </details>
 
@@ -241,54 +238,51 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 GO.intersects(line1, line2)
 
 # output
-true

source

`,9))]),i("details",Ps,[i("summary",null,[s[240]||(s[240]=i("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isclockwise")],-1)),s[241]||(s[241]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[244]||(s[244]=a('
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

',2)),i("mjx-container",qs,[(p(),l("svg",Rs,s[242]||(s[242]=[a('',1)]))),s[243]||(s[243]=i("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[i("mrow",{"data-mjx-texclass":"INNER"},[i("mo",{"data-mjx-texclass":"OPEN"},"("),i("munderover",null,[i("mo",{"data-mjx-texclass":"OP"},"∑"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"="),i("mn",null,"2")]),i("mi",null,"n")]),i("mo",{stretchy:"false"},"("),i("msub",null,[i("mi",null,"x"),i("mi",null,"i")]),i("mo",null,"−"),i("msub",null,[i("mi",null,"x"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"−"),i("mn",null,"1")])]),i("mo",{stretchy:"false"},")"),i("mo",null,"⋅"),i("mo",{stretchy:"false"},"("),i("msub",null,[i("mi",null,"y"),i("mi",null,"i")]),i("mo",null,"+"),i("msub",null,[i("mi",null,"y"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"−"),i("mn",null,"1")])]),i("mo",{stretchy:"false"},")"),i("mo",{"data-mjx-texclass":"CLOSE"},")")]),i("mo",null,">"),i("mn",null,"0")])],-1))]),s[245]||(s[245]=a(`

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
+true

source

`,9))]),i("details",Ps,[i("summary",null,[s[240]||(s[240]=i("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isclockwise")],-1)),s[241]||(s[241]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[244]||(s[244]=a('
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

',2)),i("mjx-container",qs,[(p(),l("svg",Rs,s[242]||(s[242]=[a('',1)]))),s[243]||(s[243]=i("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[i("mrow",{"data-mjx-texclass":"INNER"},[i("mo",{"data-mjx-texclass":"OPEN"},"("),i("munderover",null,[i("mo",{"data-mjx-texclass":"OP"},"∑"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"="),i("mn",null,"2")]),i("mi",null,"n")]),i("mo",{stretchy:"false"},"("),i("msub",null,[i("mi",null,"x"),i("mi",null,"i")]),i("mo",null,"−"),i("msub",null,[i("mi",null,"x"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"−"),i("mn",null,"1")])]),i("mo",{stretchy:"false"},")"),i("mo",null,"⋅"),i("mo",{stretchy:"false"},"("),i("msub",null,[i("mi",null,"y"),i("mi",null,"i")]),i("mo",null,"+"),i("msub",null,[i("mi",null,"y"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"−"),i("mn",null,"1")])]),i("mo",{stretchy:"false"},")"),i("mo",{"data-mjx-texclass":"CLOSE"},")")]),i("mo",null,">"),i("mn",null,"0")])],-1))]),s[245]||(s[245]=a(`

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
 julia> ring = GI.LinearRing([(0, 0), (1, 1), (1, 0), (0, 0)]);
 julia> GO.isclockwise(ring)
 # output
-true

source

`,3))]),i("details",Ss,[i("summary",null,[s[246]||(s[246]=i("a",{id:"GeometryOps.isconcave-Tuple{Any}",href:"#GeometryOps.isconcave-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isconcave")],-1)),s[247]||(s[247]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[248]||(s[248]=a(`
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+true

source

`,3))]),i("details",Ss,[i("summary",null,[s[246]||(s[246]=i("a",{id:"GeometryOps.isconcave-Tuple{Any}",href:"#GeometryOps.isconcave-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isconcave")],-1)),s[247]||(s[247]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[248]||(s[248]=a(`
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0, 0), (0, 1), (1, 1), (1, 0), (0, 0)]])
 GO.isconcave(poly)
 
 # output
-false

source

`,5))]),i("details",Vs,[i("summary",null,[s[249]||(s[249]=i("a",{id:"GeometryOps.overlaps-Tuple{Any, Any}",href:"#GeometryOps.overlaps-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[250]||(s[250]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[251]||(s[251]=a(`
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+false

source

`,5))]),i("details",Vs,[i("summary",null,[s[249]||(s[249]=i("a",{id:"GeometryOps.overlaps-Tuple{Any, Any}",href:"#GeometryOps.overlaps-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[250]||(s[250]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[251]||(s[251]=a(`
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source

`,5))]),i("details",Js,[i("summary",null,[s[252]||(s[252]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.AbstractTrait, Any, GeoInterface.AbstractTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.AbstractTrait, Any, GeoInterface.AbstractTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[253]||(s[253]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[254]||(s[254]=a('
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

',3))]),i("details",Us,[i("summary",null,[s[255]||(s[255]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.LineTrait, Any, GeoInterface.LineTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.LineTrait, Any, GeoInterface.LineTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[256]||(s[256]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[257]||(s[257]=a('
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

',3))]),i("details",Hs,[i("summary",null,[s[258]||(s[258]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[259]||(s[259]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[260]||(s[260]=a(`
julia
overlaps(
+true

source

`,5))]),i("details",Js,[i("summary",null,[s[252]||(s[252]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.AbstractTrait, Any, GeoInterface.AbstractTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.AbstractTrait, Any, GeoInterface.AbstractTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[253]||(s[253]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[254]||(s[254]=a('
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

',3))]),i("details",Hs,[i("summary",null,[s[255]||(s[255]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.LineTrait, Any, GeoInterface.LineTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.LineTrait, Any, GeoInterface.LineTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[256]||(s[256]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[257]||(s[257]=a('
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

',3))]),i("details",Us,[i("summary",null,[s[258]||(s[258]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[259]||(s[259]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[260]||(s[260]=a(`
julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

`,3))]),i("details",Ns,[i("summary",null,[s[261]||(s[261]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[262]||(s[262]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[263]||(s[263]=a(`
julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

`,3))]),i("details",Ns,[i("summary",null,[s[261]||(s[261]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[262]||(s[262]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[263]||(s[263]=a(`
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

`,3))]),i("details",zs,[i("summary",null,[s[264]||(s[264]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[265]||(s[265]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[266]||(s[266]=a(`
julia
overlaps(
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

`,3))]),i("details",zs,[i("summary",null,[s[264]||(s[264]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[265]||(s[265]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[266]||(s[266]=a(`
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

`,3))]),i("details",Ws,[i("summary",null,[s[267]||(s[267]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[268]||(s[268]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[269]||(s[269]=a(`
julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

`,3))]),i("details",Ws,[i("summary",null,[s[267]||(s[267]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[268]||(s[268]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[269]||(s[269]=a(`
julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

`,3))]),i("details",Zs,[i("summary",null,[s[270]||(s[270]=i("a",{id:"GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}",href:"#GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[271]||(s[271]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[272]||(s[272]=a(`
julia
overlaps(
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

`,3))]),i("details",_s,[i("summary",null,[s[273]||(s[273]=i("a",{id:"GeometryOps.polygon_to_line-Tuple{Any}",href:"#GeometryOps.polygon_to_line-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.polygon_to_line")],-1)),s[274]||(s[274]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[275]||(s[275]=a(`
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

`,3))]),i("details",Zs,[i("summary",null,[s[270]||(s[270]=i("a",{id:"GeometryOps.polygon_to_line-Tuple{Any}",href:"#GeometryOps.polygon_to_line-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.polygon_to_line")],-1)),s[271]||(s[271]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[272]||(s[272]=a(`
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 poly = GI.Polygon([[(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)]])
 GO.polygon_to_line(poly)
 # output
-GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source

`,5))]),i("details",Ks,[i("summary",null,[s[276]||(s[276]=i("a",{id:"GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}",href:"#GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}"},[i("span",{class:"jlbinding"},"GeometryOps.polygonize")],-1)),s[277]||(s[277]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[278]||(s[278]=a(`
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
+GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source

`,5))]),i("details",_s,[i("summary",null,[s[273]||(s[273]=i("a",{id:"GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}",href:"#GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}"},[i("span",{class:"jlbinding"},"GeometryOps.polygonize")],-1)),s[274]||(s[274]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[275]||(s[275]=a(`
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
 polygonize(f, A::AbstractMatrix; kw...)
 polygonize(xs, ys, A::AbstractMatrix{Bool}; kw...)
 polygonize(f, xs, ys, A::AbstractMatrix; kw...)

Polygonize an AbstractMatrix of values, currently to a single class of polygons.

Returns a MultiPolygon for Bool values and f return values, and a FeatureCollection of Features holding MultiPolygon for all other values.

Function f should return either true or false or a transformation of values into simpler groups, especially useful for floating point arrays.

If xs and ys are ranges, they are used as the pixel/cell center points. If they are Vector of Tuple they are used as the lower and upper bounds of each pixel/cell.

Keywords

  • minpoints: ignore polygons with less than minpoints points.

  • values: the values to turn into polygons. By default these are union(A), If function f is passed these refer to the return values of f, by default union(map(f, A). If values Bool, false is ignored and a single MultiPolygon is returned rather than a FeatureCollection.

Example

julia
using GeometryOps
 A = rand(100, 100)
-multipolygon = polygonize(>(0.5), A);

source

`,10))]),i("details",Xs,[i("summary",null,[s[279]||(s[279]=i("a",{id:"GeometryOps.segmentize-Tuple{Any}",href:"#GeometryOps.segmentize-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.segmentize")],-1)),s[280]||(s[280]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[281]||(s[281]=a('
julia
segmentize([method = Planar()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::Manifold = Planar(): The method to use for segmentizing the geometry. At the moment, only Planar (assumes a flat plane) and Geodesic (assumes geometry on the ellipsoidal Earth and uses Vincenty's formulae) are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, Polygon, MultiPolygon, or GeometryCollection, or some vector or table of those.

  • max_distance::Real: The maximum distance between vertices in the geometry. Beware: for Planar, this is in the units of the geometry, but for Geodesic and Spherical it's in units of the radius of the sphere.

Returns a geometry of similar type to the input geometry, but resampled.

source

',6))]),i("details",$s,[i("summary",null,[s[282]||(s[282]=i("a",{id:"GeometryOps.signed_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.signed_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.signed_area")],-1)),s[283]||(s[283]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[284]||(s[284]=a(`
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+multipolygon = polygonize(>(0.5), A);

source

`,10))]),i("details",Ks,[i("summary",null,[s[276]||(s[276]=i("a",{id:"GeometryOps.segmentize-Tuple{Any}",href:"#GeometryOps.segmentize-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.segmentize")],-1)),s[277]||(s[277]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[278]||(s[278]=a('
julia
segmentize([method = Planar()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::Manifold = Planar(): The method to use for segmentizing the geometry. At the moment, only Planar (assumes a flat plane) and Geodesic (assumes geometry on the ellipsoidal Earth and uses Vincenty's formulae) are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, Polygon, MultiPolygon, or GeometryCollection, or some vector or table of those.

  • max_distance::Real: The maximum distance between vertices in the geometry. Beware: for Planar, this is in the units of the geometry, but for Geodesic and Spherical it's in units of the radius of the sphere.

Returns a geometry of similar type to the input geometry, but resampled.

source

',6))]),i("details",Xs,[i("summary",null,[s[279]||(s[279]=i("a",{id:"GeometryOps.signed_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.signed_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.signed_area")],-1)),s[280]||(s[280]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[281]||(s[281]=a(`
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",Ys,[i("summary",null,[s[285]||(s[285]=i("a",{id:"GeometryOps.signed_distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.signed_distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.signed_distance")],-1)),s[286]||(s[286]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[287]||(s[287]=a('
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',4))]),i("details",si,[i("summary",null,[s[288]||(s[288]=i("a",{id:"GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}",href:"#GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.simplify")],-1)),s[289]||(s[289]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[290]||(s[290]=a(`
julia
simplify(obj; kw...)
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",$s,[i("summary",null,[s[282]||(s[282]=i("a",{id:"GeometryOps.signed_distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.signed_distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.signed_distance")],-1)),s[283]||(s[283]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[284]||(s[284]=a('
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',4))]),i("details",Ys,[i("summary",null,[s[285]||(s[285]=i("a",{id:"GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}",href:"#GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.simplify")],-1)),s[286]||(s[286]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[287]||(s[287]=a(`
julia
simplify(obj; kw...)
 simplify(::SimplifyAlg, obj; kw...)

Simplify a geometry, feature, feature collection, or nested vectors or a table of these.

RadialDistance, DouglasPeucker, or VisvalingamWhyatt algorithms are available, listed in order of increasing quality but decreasing performance.

PoinTrait and MultiPointTrait are returned unchanged.

The default behaviour is simplify(DouglasPeucker(; kw...), obj). Pass in other SimplifyAlg to use other algorithms.

Keywords

  • prefilter_alg: SimplifyAlg algorithm used to pre-filter object before using primary filtering algorithm.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Keywords for DouglasPeucker are allowed when no algorithm is specified:

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Example

Simplify a polygon to have six points:

julia
import GeoInterface as GI
 import GeometryOps as GO
 
@@ -318,9 +312,9 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 GI.npoint(simple)
 
 # output
-6

source

`,14))]),i("details",ii,[i("summary",null,[s[291]||(s[291]=i("a",{id:"GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}",href:"#GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}"},[i("span",{class:"jlbinding"},"GeometryOps.t_value")],-1)),s[292]||(s[292]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[295]||(s[295]=a('
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

',3)),i("mjx-container",ai,[(p(),l("svg",ei,s[293]||(s[293]=[a('',1)]))),s[294]||(s[294]=i("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[i("mi",null,"t"),i("mi",null,"ᵢ"),i("mo",null,"="),i("mfrac",null,[i("mrow",null,[i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",{"data-mjx-auto-op":"false"},"det")]),i("mrow",{"data-mjx-texclass":"INNER"},[i("mo",{"data-mjx-texclass":"OPEN"},"("),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mo",null,","),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")]),i("mo",{"data-mjx-texclass":"CLOSE"},")")])]),i("mrow",null,[i("mi",null,"r"),i("mi",null,"ᵢ"),i("mo",null,"∗"),i("mi",null,"r"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")]),i("mo",null,"+"),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mo",null,"⋅"),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1))]),s[296]||(s[296]=a(`

+6

source

`,14))]),i("details",si,[i("summary",null,[s[288]||(s[288]=i("a",{id:"GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}",href:"#GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}"},[i("span",{class:"jlbinding"},"GeometryOps.t_value")],-1)),s[289]||(s[289]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[292]||(s[292]=a('
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

',3)),i("mjx-container",ii,[(p(),l("svg",ai,s[290]||(s[290]=[a('',1)]))),s[291]||(s[291]=i("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[i("mi",null,"t"),i("mi",null,"ᵢ"),i("mo",null,"="),i("mfrac",null,[i("mrow",null,[i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",{"data-mjx-auto-op":"false"},"det")]),i("mrow",{"data-mjx-texclass":"INNER"},[i("mo",{"data-mjx-texclass":"OPEN"},"("),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mo",null,","),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")]),i("mo",{"data-mjx-texclass":"CLOSE"},")")])]),i("mrow",null,[i("mi",null,"r"),i("mi",null,"ᵢ"),i("mo",null,"∗"),i("mi",null,"r"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")]),i("mo",null,"+"),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mo",null,"⋅"),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1))]),s[293]||(s[293]=a(`

 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/51625e9f63dd625d794d140757f2f4fbde58fea2/src/methods/barycentric.jl#L289-L305)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/6f7d2ee24cb7fcde8e5c7bc68e82dbc1382ba550/src/methods/barycentric.jl#L289-L305)
 
 </details>
 
@@ -330,14 +324,14 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 
 
 \`\`\`julia
-to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source

`,3))]),i("details",ti,[i("summary",null,[s[297]||(s[297]=i("a",{id:"GeometryOps.touches-Tuple{Any, Any}",href:"#GeometryOps.touches-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[298]||(s[298]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[299]||(s[299]=a(`
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source

`,3))]),i("details",ei,[i("summary",null,[s[294]||(s[294]=i("a",{id:"GeometryOps.touches-Tuple{Any, Any}",href:"#GeometryOps.touches-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[295]||(s[295]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[296]||(s[296]=a(`
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source

`,5))]),i("details",ni,[i("summary",null,[s[300]||(s[300]=i("a",{id:"GeometryOps.transform-Tuple{Any, Any}",href:"#GeometryOps.transform-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[301]||(s[301]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[302]||(s[302]=a(`
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+true

source

`,5))]),i("details",ti,[i("summary",null,[s[297]||(s[297]=i("a",{id:"GeometryOps.transform-Tuple{Any, Any}",href:"#GeometryOps.transform-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[298]||(s[298]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[299]||(s[299]=a(`
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -356,7 +350,7 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

`,9))]),i("details",li,[i("summary",null,[s[303]||(s[303]=i("a",{id:"GeometryOps.tuples-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.tuples-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.tuples")],-1)),s[304]||(s[304]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[305]||(s[305]=a('
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

',6))]),i("details",pi,[i("summary",null,[s[306]||(s[306]=i("a",{id:"GeometryOps.union-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.union-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.union")],-1)),s[307]||(s[307]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[308]||(s[308]=a(`
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

`,9))]),i("details",ni,[i("summary",null,[s[300]||(s[300]=i("a",{id:"GeometryOps.tuples-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.tuples-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.tuples")],-1)),s[301]||(s[301]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[302]||(s[302]=a('
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

',6))]),i("details",li,[i("summary",null,[s[303]||(s[303]=i("a",{id:"GeometryOps.union-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.union-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.union")],-1)),s[304]||(s[304]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[305]||(s[305]=a(`
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 p1 = GI.Polygon([[(0.0, 0.0), (5.0, 5.0), (10.0, 0.0), (5.0, -5.0), (0.0, 0.0)]])
 p2 = GI.Polygon([[(3.0, 0.0), (8.0, 5.0), (13.0, 0.0), (8.0, -5.0), (3.0, 0.0)]])
@@ -365,11 +359,11 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source

`,6))]),i("details",hi,[i("summary",null,[s[309]||(s[309]=i("a",{id:"GeometryOps.weighted_mean-Union{Tuple{WT}, Tuple{WT, Any, Any}} where WT<:Real",href:"#GeometryOps.weighted_mean-Union{Tuple{WT}, Tuple{WT, Any, Any}} where WT<:Real"},[i("span",{class:"jlbinding"},"GeometryOps.weighted_mean")],-1)),s[310]||(s[310]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[311]||(s[311]=a('
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source

',5))]),i("details",ki,[i("summary",null,[s[312]||(s[312]=i("a",{id:"GeometryOps.within-Tuple{Any, Any}",href:"#GeometryOps.within-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[313]||(s[313]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[314]||(s[314]=a(`
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source

`,6))]),i("details",pi,[i("summary",null,[s[306]||(s[306]=i("a",{id:"GeometryOps.weighted_mean-Union{Tuple{WT}, Tuple{WT, Any, Any}} where WT<:Real",href:"#GeometryOps.weighted_mean-Union{Tuple{WT}, Tuple{WT, Any, Any}} where WT<:Real"},[i("span",{class:"jlbinding"},"GeometryOps.weighted_mean")],-1)),s[307]||(s[307]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[308]||(s[308]=a('
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source

',5))]),i("details",hi,[i("summary",null,[s[309]||(s[309]=i("a",{id:"GeometryOps.within-Tuple{Any, Any}",href:"#GeometryOps.within-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[310]||(s[310]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[311]||(s[311]=a(`
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source

`,6))]),s[321]||(s[321]=a('
  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

',2))])}const mi=h(r,[["render",ri]]);export{ui as __pageData,mi as default}; +true

source

`,6))]),s[318]||(s[318]=a('
  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

',2))])}const ui=h(r,[["render",ki]]);export{ci as __pageData,ui as default}; diff --git a/previews/PR238/assets/api.md.DdY_rhMa.lean.js b/previews/PR238/assets/api.md.608Eto75.lean.js similarity index 91% rename from previews/PR238/assets/api.md.DdY_rhMa.lean.js rename to previews/PR238/assets/api.md.608Eto75.lean.js index 8e7231667..c30816259 100644 --- a/previews/PR238/assets/api.md.DdY_rhMa.lean.js +++ b/previews/PR238/assets/api.md.608Eto75.lean.js @@ -1,13 +1,13 @@ -import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/framework.Bkt_v4A4.js";const ui=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),r={name:"api.md"},o={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},_={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},$={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},ss={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""},as={class:"jldocstring custom-block",open:""},es={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},ns={class:"jldocstring custom-block",open:""},ls={class:"jldocstring custom-block",open:""},ps={class:"jldocstring custom-block",open:""},hs={class:"jldocstring custom-block",open:""},ks={class:"jldocstring custom-block",open:""},rs={class:"jldocstring custom-block",open:""},os={class:"jldocstring custom-block",open:""},ds={class:"jldocstring custom-block",open:""},gs={class:"jldocstring custom-block",open:""},ys={class:"jldocstring custom-block",open:""},Es={class:"jldocstring custom-block",open:""},cs={class:"jldocstring custom-block",open:""},us={class:"jldocstring custom-block",open:""},ms={class:"jldocstring custom-block",open:""},Fs={class:"jldocstring custom-block",open:""},Cs={class:"jldocstring custom-block",open:""},fs={class:"jldocstring custom-block",open:""},bs={class:"jldocstring custom-block",open:""},Ts={class:"jldocstring custom-block",open:""},Gs={class:"jldocstring custom-block",open:""},As={class:"jldocstring custom-block",open:""},vs={class:"jldocstring custom-block",open:""},js={class:"jldocstring custom-block",open:""},Bs={class:"jldocstring custom-block",open:""},Os={class:"jldocstring custom-block",open:""},Ds={class:"jldocstring custom-block",open:""},Qs={class:"jldocstring custom-block",open:""},xs={class:"jldocstring custom-block",open:""},ws={class:"jldocstring custom-block",open:""},Ls={class:"jldocstring custom-block",open:""},Is={class:"jldocstring custom-block",open:""},Ms={class:"jldocstring custom-block",open:""},Ps={class:"jldocstring custom-block",open:""},qs={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},Rs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.827ex"},xmlns:"http://www.w3.org/2000/svg",width:"33.539ex",height:"6.785ex",role:"img",focusable:"false",viewBox:"0 -1749.5 14824.1 2999","aria-hidden":"true"},Ss={class:"jldocstring custom-block",open:""},Vs={class:"jldocstring custom-block",open:""},Js={class:"jldocstring custom-block",open:""},Us={class:"jldocstring custom-block",open:""},Hs={class:"jldocstring custom-block",open:""},Ns={class:"jldocstring custom-block",open:""},zs={class:"jldocstring custom-block",open:""},Ws={class:"jldocstring custom-block",open:""},Zs={class:"jldocstring custom-block",open:""},_s={class:"jldocstring custom-block",open:""},Ks={class:"jldocstring custom-block",open:""},Xs={class:"jldocstring custom-block",open:""},$s={class:"jldocstring custom-block",open:""},Ys={class:"jldocstring custom-block",open:""},si={class:"jldocstring custom-block",open:""},ii={class:"jldocstring custom-block",open:""},ai={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ei={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.746ex",height:"5.362ex",role:"img",focusable:"false",viewBox:"0 -1460 12263.9 2370","aria-hidden":"true"},ti={class:"jldocstring custom-block",open:""},ni={class:"jldocstring custom-block",open:""},li={class:"jldocstring custom-block",open:""},pi={class:"jldocstring custom-block",open:""},hi={class:"jldocstring custom-block",open:""},ki={class:"jldocstring custom-block",open:""};function ri(oi,s,di,gi,yi,Ei){const t=k("Badge");return p(),l("div",null,[s[315]||(s[315]=a('

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

',5)),i("details",o,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOpsCore.apply",href:"#GeometryOpsCore.apply"},[i("span",{class:"jlbinding"},"GeometryOpsCore.apply")],-1)),s[1]||(s[1]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=a(`
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
+import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/framework.Bkt_v4A4.js";const ci=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),r={name:"api.md"},o={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},_={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},$={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},ss={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""},as={class:"jldocstring custom-block",open:""},es={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},ns={class:"jldocstring custom-block",open:""},ls={class:"jldocstring custom-block",open:""},ps={class:"jldocstring custom-block",open:""},hs={class:"jldocstring custom-block",open:""},ks={class:"jldocstring custom-block",open:""},rs={class:"jldocstring custom-block",open:""},os={class:"jldocstring custom-block",open:""},ds={class:"jldocstring custom-block",open:""},gs={class:"jldocstring custom-block",open:""},ys={class:"jldocstring custom-block",open:""},Es={class:"jldocstring custom-block",open:""},cs={class:"jldocstring custom-block",open:""},us={class:"jldocstring custom-block",open:""},ms={class:"jldocstring custom-block",open:""},Fs={class:"jldocstring custom-block",open:""},bs={class:"jldocstring custom-block",open:""},Cs={class:"jldocstring custom-block",open:""},fs={class:"jldocstring custom-block",open:""},Ts={class:"jldocstring custom-block",open:""},Gs={class:"jldocstring custom-block",open:""},As={class:"jldocstring custom-block",open:""},vs={class:"jldocstring custom-block",open:""},js={class:"jldocstring custom-block",open:""},Bs={class:"jldocstring custom-block",open:""},Os={class:"jldocstring custom-block",open:""},Ds={class:"jldocstring custom-block",open:""},Qs={class:"jldocstring custom-block",open:""},xs={class:"jldocstring custom-block",open:""},ws={class:"jldocstring custom-block",open:""},Ls={class:"jldocstring custom-block",open:""},Is={class:"jldocstring custom-block",open:""},Ms={class:"jldocstring custom-block",open:""},Ps={class:"jldocstring custom-block",open:""},qs={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},Rs={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.827ex"},xmlns:"http://www.w3.org/2000/svg",width:"33.539ex",height:"6.785ex",role:"img",focusable:"false",viewBox:"0 -1749.5 14824.1 2999","aria-hidden":"true"},Ss={class:"jldocstring custom-block",open:""},Vs={class:"jldocstring custom-block",open:""},Js={class:"jldocstring custom-block",open:""},Hs={class:"jldocstring custom-block",open:""},Us={class:"jldocstring custom-block",open:""},Ns={class:"jldocstring custom-block",open:""},zs={class:"jldocstring custom-block",open:""},Ws={class:"jldocstring custom-block",open:""},Zs={class:"jldocstring custom-block",open:""},_s={class:"jldocstring custom-block",open:""},Ks={class:"jldocstring custom-block",open:""},Xs={class:"jldocstring custom-block",open:""},$s={class:"jldocstring custom-block",open:""},Ys={class:"jldocstring custom-block",open:""},si={class:"jldocstring custom-block",open:""},ii={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ai={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.746ex",height:"5.362ex",role:"img",focusable:"false",viewBox:"0 -1460 12263.9 2370","aria-hidden":"true"},ei={class:"jldocstring custom-block",open:""},ti={class:"jldocstring custom-block",open:""},ni={class:"jldocstring custom-block",open:""},li={class:"jldocstring custom-block",open:""},pi={class:"jldocstring custom-block",open:""},hi={class:"jldocstring custom-block",open:""};function ki(ri,s,oi,di,gi,yi){const t=k("Badge");return p(),l("div",null,[s[312]||(s[312]=a('

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

',5)),i("details",o,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOpsCore.apply",href:"#GeometryOpsCore.apply"},[i("span",{class:"jlbinding"},"GeometryOpsCore.apply")],-1)),s[1]||(s[1]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=a(`
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
 import GeometryOps as GO
 geom = GI.Polygon([GI.LinearRing([(1, 2), (3, 4), (5, 6), (1, 2)]),
                    GI.LinearRing([(3, 4), (5, 6), (6, 7), (3, 4)])])
 
 flipped_geom = GO.apply(GI.PointTrait, geom) do p
     (GI.y(p), GI.x(p))
-end

source

`,10))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.applyreduce",href:"#GeometryOpsCore.applyreduce"},[i("span",{class:"jlbinding"},"GeometryOpsCore.applyreduce")],-1)),s[4]||(s[4]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a('
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source

',5))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOps.reproject",href:"#GeometryOps.reproject"},[i("span",{class:"jlbinding"},"GeometryOps.reproject")],-1)),s[7]||(s[7]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=a(`
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
+end

source

`,10))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.applyreduce",href:"#GeometryOpsCore.applyreduce"},[i("span",{class:"jlbinding"},"GeometryOpsCore.applyreduce")],-1)),s[4]||(s[4]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a('
julia
applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

Apply function f to all objects with the target trait, and reduce the result with an op like +.

The order and grouping of application of op is not guaranteed.

If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

source

',5))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOps.reproject",href:"#GeometryOps.reproject"},[i("span",{class:"jlbinding"},"GeometryOps.reproject")],-1)),s[7]||(s[7]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=a(`
julia
reproject(geometry; source_crs, target_crs, transform, always_xy, time)
 reproject(geometry, source_crs, target_crs; always_xy, time)
-reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

`,10))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOps.transform",href:"#GeometryOps.transform"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[10]||(s[10]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=a(`
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+reproject(geometry, transform; always_xy, time)

Reproject any GeoInterface.jl compatible geometry from source_crs to target_crs.

The returned object will be constructed from GeoInterface.WrapperGeometry geometries, wrapping views of a Vector{Proj.Point{D}}, where D is the dimension.

Tip

The Proj.jl package must be loaded for this method to work, since it is implemented in a package extension.

Arguments

  • geometry: Any GeoInterface.jl compatible geometries.

  • source_crs: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.

If these a passed as keywords, transform will take priority. Without it target_crs is always needed, and source_crs is needed if it is not retrievable from the geometry with GeoInterface.crs(geometry).

Keywords

  • always_xy: force x, y coordinate order, true by default. false will expect and return points in the crs coordinate order.

  • time: the time for the coordinates. Inf by default.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

`,10))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOps.transform",href:"#GeometryOps.transform"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[10]||(s[10]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=a(`
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -26,144 +26,141 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

`,9))]),s[316]||(s[316]=i("h2",{id:"General-geometry-methods",tabindex:"-1"},[e("General geometry methods "),i("a",{class:"header-anchor",href:"#General-geometry-methods","aria-label":'Permalink to "General geometry methods {#General-geometry-methods}"'},"​")],-1)),s[317]||(s[317]=i("h3",{id:"OGC-methods",tabindex:"-1"},[e("OGC methods "),i("a",{class:"header-anchor",href:"#OGC-methods","aria-label":'Permalink to "OGC methods {#OGC-methods}"'},"​")],-1)),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeometryOps.contains",href:"#GeometryOps.contains"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[13]||(s[13]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=a(`
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

`,9))]),s[313]||(s[313]=i("h2",{id:"General-geometry-methods",tabindex:"-1"},[e("General geometry methods "),i("a",{class:"header-anchor",href:"#General-geometry-methods","aria-label":'Permalink to "General geometry methods {#General-geometry-methods}"'},"​")],-1)),s[314]||(s[314]=i("h3",{id:"OGC-methods",tabindex:"-1"},[e("OGC methods "),i("a",{class:"header-anchor",href:"#OGC-methods","aria-label":'Permalink to "OGC methods {#OGC-methods}"'},"​")],-1)),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeometryOps.contains",href:"#GeometryOps.contains"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[13]||(s[13]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=a(`
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source

`,6))]),i("details",c,[i("summary",null,[s[15]||(s[15]=i("a",{id:"GeometryOps.coveredby",href:"#GeometryOps.coveredby"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[16]||(s[16]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[17]||(s[17]=a(`
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",c,[i("summary",null,[s[15]||(s[15]=i("a",{id:"GeometryOps.coveredby",href:"#GeometryOps.coveredby"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[16]||(s[16]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[17]||(s[17]=a(`
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source

`,6))]),i("details",u,[i("summary",null,[s[18]||(s[18]=i("a",{id:"GeometryOps.covers",href:"#GeometryOps.covers"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[19]||(s[19]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=a(`
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",u,[i("summary",null,[s[18]||(s[18]=i("a",{id:"GeometryOps.covers",href:"#GeometryOps.covers"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[19]||(s[19]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=a(`
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source

`,6))]),i("details",m,[i("summary",null,[s[21]||(s[21]=i("a",{id:"GeometryOps.crosses",href:"#GeometryOps.crosses"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[22]||(s[22]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[23]||(s[23]=a(`
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source

`,6))]),i("details",F,[i("summary",null,[s[24]||(s[24]=i("a",{id:"GeometryOps.disjoint",href:"#GeometryOps.disjoint"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[25]||(s[25]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[26]||(s[26]=a(`
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",m,[i("summary",null,[s[21]||(s[21]=i("a",{id:"GeometryOps.crosses",href:"#GeometryOps.crosses"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[22]||(s[22]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[23]||(s[23]=a(`
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source

`,6))]),i("details",F,[i("summary",null,[s[24]||(s[24]=i("a",{id:"GeometryOps.disjoint",href:"#GeometryOps.disjoint"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[25]||(s[25]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[26]||(s[26]=a(`
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source

`,6))]),i("details",C,[i("summary",null,[s[27]||(s[27]=i("a",{id:"GeometryOps.intersects",href:"#GeometryOps.intersects"},[i("span",{class:"jlbinding"},"GeometryOps.intersects")],-1)),s[28]||(s[28]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[29]||(s[29]=a(`
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source

`,6))]),i("details",b,[i("summary",null,[s[27]||(s[27]=i("a",{id:"GeometryOps.intersects",href:"#GeometryOps.intersects"},[i("span",{class:"jlbinding"},"GeometryOps.intersects")],-1)),s[28]||(s[28]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[29]||(s[29]=a(`
julia
intersects(geom1, geom2)::Bool

Return true if the interiors or boundaries of the two geometries interact.

intersects returns the exact opposite result of disjoint.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
 GO.intersects(line1, line2)
 
 # output
-true

source

`,6))]),i("details",f,[i("summary",null,[s[30]||(s[30]=i("a",{id:"GeometryOps.overlaps",href:"#GeometryOps.overlaps"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[31]||(s[31]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[32]||(s[32]=a(`
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",C,[i("summary",null,[s[30]||(s[30]=i("a",{id:"GeometryOps.overlaps",href:"#GeometryOps.overlaps"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[31]||(s[31]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[32]||(s[32]=a(`
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
+true

source

julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

`,26))]),i("details",b,[i("summary",null,[s[33]||(s[33]=i("a",{id:"GeometryOps.touches",href:"#GeometryOps.touches"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[34]||(s[34]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[35]||(s[35]=a(`
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

`,23))]),i("details",f,[i("summary",null,[s[33]||(s[33]=i("a",{id:"GeometryOps.touches",href:"#GeometryOps.touches"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[34]||(s[34]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[35]||(s[35]=a(`
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source

`,5))]),i("details",T,[i("summary",null,[s[36]||(s[36]=i("a",{id:"GeometryOps.within",href:"#GeometryOps.within"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[37]||(s[37]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[38]||(s[38]=a(`
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,5))]),i("details",T,[i("summary",null,[s[36]||(s[36]=i("a",{id:"GeometryOps.within",href:"#GeometryOps.within"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[37]||(s[37]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[38]||(s[38]=a(`
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source

`,6))]),s[318]||(s[318]=i("h3",{id:"Other-general-methods",tabindex:"-1"},[e("Other general methods "),i("a",{class:"header-anchor",href:"#Other-general-methods","aria-label":'Permalink to "Other general methods {#Other-general-methods}"'},"​")],-1)),i("details",G,[i("summary",null,[s[39]||(s[39]=i("a",{id:"GeometryOps.equals",href:"#GeometryOps.equals"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[40]||(s[40]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[41]||(s[41]=a(`
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),s[315]||(s[315]=i("h3",{id:"Other-general-methods",tabindex:"-1"},[e("Other general methods "),i("a",{class:"header-anchor",href:"#Other-general-methods","aria-label":'Permalink to "Other general methods {#Other-general-methods}"'},"​")],-1)),i("details",G,[i("summary",null,[s[39]||(s[39]=i("a",{id:"GeometryOps.equals",href:"#GeometryOps.equals"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[40]||(s[40]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[41]||(s[41]=a(`
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
+true

source

julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

`,47))]),i("details",A,[i("summary",null,[s[42]||(s[42]=i("a",{id:"GeometryOps.centroid",href:"#GeometryOps.centroid"},[i("span",{class:"jlbinding"},"GeometryOps.centroid")],-1)),s[43]||(s[43]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[44]||(s[44]=a('
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

',3))]),i("details",v,[i("summary",null,[s[45]||(s[45]=i("a",{id:"GeometryOps.distance",href:"#GeometryOps.distance"},[i("span",{class:"jlbinding"},"GeometryOps.distance")],-1)),s[46]||(s[46]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[47]||(s[47]=a('
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",j,[i("summary",null,[s[48]||(s[48]=i("a",{id:"GeometryOps.signed_distance",href:"#GeometryOps.signed_distance"},[i("span",{class:"jlbinding"},"GeometryOps.signed_distance")],-1)),s[49]||(s[49]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[50]||(s[50]=a('
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',4))]),i("details",B,[i("summary",null,[s[51]||(s[51]=i("a",{id:"GeometryOps.area",href:"#GeometryOps.area"},[i("span",{class:"jlbinding"},"GeometryOps.area")],-1)),s[52]||(s[52]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[53]||(s[53]=a(`
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

`,47))]),i("details",A,[i("summary",null,[s[42]||(s[42]=i("a",{id:"GeometryOps.centroid",href:"#GeometryOps.centroid"},[i("span",{class:"jlbinding"},"GeometryOps.centroid")],-1)),s[43]||(s[43]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[44]||(s[44]=a('
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

',3))]),i("details",v,[i("summary",null,[s[45]||(s[45]=i("a",{id:"GeometryOps.distance",href:"#GeometryOps.distance"},[i("span",{class:"jlbinding"},"GeometryOps.distance")],-1)),s[46]||(s[46]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[47]||(s[47]=a('
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",j,[i("summary",null,[s[48]||(s[48]=i("a",{id:"GeometryOps.signed_distance",href:"#GeometryOps.signed_distance"},[i("span",{class:"jlbinding"},"GeometryOps.signed_distance")],-1)),s[49]||(s[49]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[50]||(s[50]=a('
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',4))]),i("details",B,[i("summary",null,[s[51]||(s[51]=i("a",{id:"GeometryOps.area",href:"#GeometryOps.area"},[i("span",{class:"jlbinding"},"GeometryOps.area")],-1)),s[52]||(s[52]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[53]||(s[53]=a(`
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",O,[i("summary",null,[s[54]||(s[54]=i("a",{id:"GeometryOps.signed_area",href:"#GeometryOps.signed_area"},[i("span",{class:"jlbinding"},"GeometryOps.signed_area")],-1)),s[55]||(s[55]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[56]||(s[56]=a(`
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",O,[i("summary",null,[s[54]||(s[54]=i("a",{id:"GeometryOps.signed_area",href:"#GeometryOps.signed_area"},[i("span",{class:"jlbinding"},"GeometryOps.signed_area")],-1)),s[55]||(s[55]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[56]||(s[56]=a(`
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",D,[i("summary",null,[s[57]||(s[57]=i("a",{id:"GeometryOps.angles",href:"#GeometryOps.angles"},[i("span",{class:"jlbinding"},"GeometryOps.angles")],-1)),s[58]||(s[58]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[59]||(s[59]=a(`
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",D,[i("summary",null,[s[57]||(s[57]=i("a",{id:"GeometryOps.angles",href:"#GeometryOps.angles"},[i("span",{class:"jlbinding"},"GeometryOps.angles")],-1)),s[58]||(s[58]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[59]||(s[59]=a(`
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

`,5))]),i("details",Q,[i("summary",null,[s[60]||(s[60]=i("a",{id:"GeometryOps.embed_extent",href:"#GeometryOps.embed_extent"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[61]||(s[61]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[62]||(s[62]=a('
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

',6))]),s[319]||(s[319]=i("h2",{id:"Barycentric-coordinates",tabindex:"-1"},[e("Barycentric coordinates "),i("a",{class:"header-anchor",href:"#Barycentric-coordinates","aria-label":'Permalink to "Barycentric coordinates {#Barycentric-coordinates}"'},"​")],-1)),i("details",x,[i("summary",null,[s[63]||(s[63]=i("a",{id:"GeometryOps.barycentric_coordinates",href:"#GeometryOps.barycentric_coordinates"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates")],-1)),s[64]||(s[64]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[65]||(s[65]=a('
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

',3))]),i("details",w,[i("summary",null,[s[66]||(s[66]=i("a",{id:"GeometryOps.barycentric_coordinates!",href:"#GeometryOps.barycentric_coordinates!"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates!")],-1)),s[67]||(s[67]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[68]||(s[68]=a('
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

',5))]),i("details",L,[i("summary",null,[s[69]||(s[69]=i("a",{id:"GeometryOps.barycentric_interpolate",href:"#GeometryOps.barycentric_interpolate"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_interpolate")],-1)),s[70]||(s[70]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[71]||(s[71]=a('
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

',5))]),s[320]||(s[320]=i("h2",{id:"Other-methods",tabindex:"-1"},[e("Other methods "),i("a",{class:"header-anchor",href:"#Other-methods","aria-label":'Permalink to "Other methods {#Other-methods}"'},"​")],-1)),i("details",I,[i("summary",null,[s[72]||(s[72]=i("a",{id:"GeometryOps.AbstractBarycentricCoordinateMethod",href:"#GeometryOps.AbstractBarycentricCoordinateMethod"},[i("span",{class:"jlbinding"},"GeometryOps.AbstractBarycentricCoordinateMethod")],-1)),s[73]||(s[73]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[74]||(s[74]=a('
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source

',7))]),i("details",M,[i("summary",null,[s[75]||(s[75]=i("a",{id:"GeometryOps.ClosedRing",href:"#GeometryOps.ClosedRing"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[76]||(s[76]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[77]||(s[77]=a('
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source

',5))]),i("details",P,[i("summary",null,[s[78]||(s[78]=i("a",{id:"GeometryOps.DiffIntersectingPolygons",href:"#GeometryOps.DiffIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[79]||(s[79]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[80]||(s[80]=a('
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source

',3))]),i("details",q,[i("summary",null,[s[81]||(s[81]=i("a",{id:"GeometryOps.DouglasPeucker",href:"#GeometryOps.DouglasPeucker"},[i("span",{class:"jlbinding"},"GeometryOps.DouglasPeucker")],-1)),s[82]||(s[82]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[83]||(s[83]=a(`
julia
DouglasPeucker <: SimplifyAlg
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

`,5))]),i("details",Q,[i("summary",null,[s[60]||(s[60]=i("a",{id:"GeometryOps.embed_extent",href:"#GeometryOps.embed_extent"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[61]||(s[61]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[62]||(s[62]=a('
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

',6))]),s[316]||(s[316]=i("h2",{id:"Barycentric-coordinates",tabindex:"-1"},[e("Barycentric coordinates "),i("a",{class:"header-anchor",href:"#Barycentric-coordinates","aria-label":'Permalink to "Barycentric coordinates {#Barycentric-coordinates}"'},"​")],-1)),i("details",x,[i("summary",null,[s[63]||(s[63]=i("a",{id:"GeometryOps.barycentric_coordinates",href:"#GeometryOps.barycentric_coordinates"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates")],-1)),s[64]||(s[64]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[65]||(s[65]=a('
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

',3))]),i("details",w,[i("summary",null,[s[66]||(s[66]=i("a",{id:"GeometryOps.barycentric_coordinates!",href:"#GeometryOps.barycentric_coordinates!"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates!")],-1)),s[67]||(s[67]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[68]||(s[68]=a('
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

',5))]),i("details",L,[i("summary",null,[s[69]||(s[69]=i("a",{id:"GeometryOps.barycentric_interpolate",href:"#GeometryOps.barycentric_interpolate"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_interpolate")],-1)),s[70]||(s[70]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[71]||(s[71]=a('
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

',5))]),s[317]||(s[317]=i("h2",{id:"Other-methods",tabindex:"-1"},[e("Other methods "),i("a",{class:"header-anchor",href:"#Other-methods","aria-label":'Permalink to "Other methods {#Other-methods}"'},"​")],-1)),i("details",I,[i("summary",null,[s[72]||(s[72]=i("a",{id:"GeometryOps.AbstractBarycentricCoordinateMethod",href:"#GeometryOps.AbstractBarycentricCoordinateMethod"},[i("span",{class:"jlbinding"},"GeometryOps.AbstractBarycentricCoordinateMethod")],-1)),s[73]||(s[73]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[74]||(s[74]=a('
julia
abstract type AbstractBarycentricCoordinateMethod

Abstract supertype for barycentric coordinate methods. The subtypes may serve as dispatch types, or may cache some information about the target polygon.

API

The following methods must be implemented for all subtypes:

  • barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, point::Point{2, T2})

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, values::Vector{V}, point::Point{2, T2})::V

  • barycentric_interpolate(method::AbstractBarycentricCoordinateMethod, exterior::Vector{<: Point{2, T1}}, interiors::Vector{<: Vector{<: Point{2, T1}}} values::Vector{V}, point::Point{2, T2})::V

The rest of the methods will be implemented in terms of these, and have efficient dispatches for broadcasting.

source

',7))]),i("details",M,[i("summary",null,[s[75]||(s[75]=i("a",{id:"GeometryOps.ClosedRing",href:"#GeometryOps.ClosedRing"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[76]||(s[76]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[77]||(s[77]=a('
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source

',5))]),i("details",P,[i("summary",null,[s[78]||(s[78]=i("a",{id:"GeometryOps.DiffIntersectingPolygons",href:"#GeometryOps.DiffIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[79]||(s[79]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[80]||(s[80]=a('
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source

',3))]),i("details",q,[i("summary",null,[s[81]||(s[81]=i("a",{id:"GeometryOps.DouglasPeucker",href:"#GeometryOps.DouglasPeucker"},[i("span",{class:"jlbinding"},"GeometryOps.DouglasPeucker")],-1)),s[82]||(s[82]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[83]||(s[83]=a(`
julia
DouglasPeucker <: SimplifyAlg
 
-DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

`,6))]),i("details",R,[i("summary",null,[s[84]||(s[84]=i("a",{id:"GeometryOps.GEOS",href:"#GeometryOps.GEOS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOS")],-1)),s[85]||(s[85]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[86]||(s[86]=a('
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source

',5))]),i("details",S,[i("summary",null,[s[87]||(s[87]=i("a",{id:"GeometryOps.GeodesicSegments",href:"#GeometryOps.GeodesicSegments"},[i("span",{class:"jlbinding"},"GeometryOps.GeodesicSegments")],-1)),s[88]||(s[88]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[89]||(s[89]=a('
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source

',8))]),i("details",V,[i("summary",null,[s[90]||(s[90]=i("a",{id:"GeometryOps.GeometryCorrection",href:"#GeometryOps.GeometryCorrection"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[91]||(s[91]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[92]||(s[92]=a('
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source

',5))]),i("details",J,[i("summary",null,[s[93]||(s[93]=i("a",{id:"GeometryOps.LineOrientation",href:"#GeometryOps.LineOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.LineOrientation")],-1)),s[94]||(s[94]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[95]||(s[95]=a('
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source

',3))]),i("details",U,[i("summary",null,[s[96]||(s[96]=i("a",{id:"GeometryOps.LinearSegments",href:"#GeometryOps.LinearSegments"},[i("span",{class:"jlbinding"},"GeometryOps.LinearSegments")],-1)),s[97]||(s[97]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[98]||(s[98]=a('
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source

',4))]),i("details",H,[i("summary",null,[s[99]||(s[99]=i("a",{id:"GeometryOps.MeanValue",href:"#GeometryOps.MeanValue"},[i("span",{class:"jlbinding"},"GeometryOps.MeanValue")],-1)),s[100]||(s[100]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[101]||(s[101]=a('
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source

',4))]),i("details",N,[i("summary",null,[s[102]||(s[102]=i("a",{id:"GeometryOps.MonotoneChainMethod",href:"#GeometryOps.MonotoneChainMethod"},[i("span",{class:"jlbinding"},"GeometryOps.MonotoneChainMethod")],-1)),s[103]||(s[103]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[104]||(s[104]=a('
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source

',5))]),i("details",z,[i("summary",null,[s[105]||(s[105]=i("a",{id:"GeometryOps.PointOrientation",href:"#GeometryOps.PointOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.PointOrientation")],-1)),s[106]||(s[106]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[107]||(s[107]=a('
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source

',3))]),i("details",W,[i("summary",null,[s[108]||(s[108]=i("a",{id:"GeometryOps.RadialDistance",href:"#GeometryOps.RadialDistance"},[i("span",{class:"jlbinding"},"GeometryOps.RadialDistance")],-1)),s[109]||(s[109]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[110]||(s[110]=a('
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

',6))]),i("details",Z,[i("summary",null,[s[111]||(s[111]=i("a",{id:"GeometryOps.SimplifyAlg",href:"#GeometryOps.SimplifyAlg"},[i("span",{class:"jlbinding"},"GeometryOps.SimplifyAlg")],-1)),s[112]||(s[112]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[113]||(s[113]=a('
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source

',6))]),i("details",_,[i("summary",null,[s[114]||(s[114]=i("a",{id:"GeometryOps.UnionIntersectingPolygons",href:"#GeometryOps.UnionIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[115]||(s[115]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[116]||(s[116]=a('
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source

',4))]),i("details",K,[i("summary",null,[s[117]||(s[117]=i("a",{id:"GeometryOps.VisvalingamWhyatt",href:"#GeometryOps.VisvalingamWhyatt"},[i("span",{class:"jlbinding"},"GeometryOps.VisvalingamWhyatt")],-1)),s[118]||(s[118]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[119]||(s[119]=a(`
julia
VisvalingamWhyatt <: SimplifyAlg
+DouglasPeucker(; number, ratio, tol)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

`,6))]),i("details",R,[i("summary",null,[s[84]||(s[84]=i("a",{id:"GeometryOps.GEOS",href:"#GeometryOps.GEOS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOS")],-1)),s[85]||(s[85]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[86]||(s[86]=a('
julia
GEOS(; params...)

A struct which instructs the method it's passed to as an algorithm to use the appropriate GEOS function via LibGEOS.jl for the operation.

Dispatch is generally carried out using the names of the keyword arguments. For example, segmentize will only accept a GEOS struct with only a max_distance keyword, and no other.

It's generally a lot slower than the native Julia implementations, since it must convert to the LibGEOS implementation and back - so be warned!

source

',5))]),i("details",S,[i("summary",null,[s[87]||(s[87]=i("a",{id:"GeometryOps.GeodesicSegments",href:"#GeometryOps.GeodesicSegments"},[i("span",{class:"jlbinding"},"GeometryOps.GeodesicSegments")],-1)),s[88]||(s[88]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[89]||(s[89]=a('
julia
GeodesicSegments(; max_distance::Real, equatorial_radius::Real=6378137, flattening::Real=1/298.257223563)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance. This method calculates the distance between points on the geodesic, and assumes input in lat/long coordinates.

Warning

Any input geometries must be in lon/lat coordinates! If not, the method may fail or error.

Arguments

  • max_distance::Real: The maximum distance, in meters, between vertices in the geometry.

  • equatorial_radius::Real=6378137: The equatorial radius of the Earth, in meters. Passed to Proj.geod_geodesic.

  • flattening::Real=1/298.257223563: The flattening of the Earth, which is the ratio of the difference between the equatorial and polar radii to the equatorial radius. Passed to Proj.geod_geodesic.

One can also omit the equatorial_radius and flattening keyword arguments, and pass a geodesic object directly to the eponymous keyword.

This method uses the Proj/GeographicLib API for geodesic calculations.

source

',8))]),i("details",V,[i("summary",null,[s[90]||(s[90]=i("a",{id:"GeometryOps.GeometryCorrection",href:"#GeometryOps.GeometryCorrection"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[91]||(s[91]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[92]||(s[92]=a('
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source

',5))]),i("details",J,[i("summary",null,[s[93]||(s[93]=i("a",{id:"GeometryOps.LineOrientation",href:"#GeometryOps.LineOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.LineOrientation")],-1)),s[94]||(s[94]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[95]||(s[95]=a('
julia
Enum LineOrientation

Enum for the orientation of a line with respect to a curve. A line can be line_cross (crossing over the curve), line_hinge (crossing the endpoint of the curve), line_over (collinear with the curve), or line_out (not interacting with the curve).

source

',3))]),i("details",H,[i("summary",null,[s[96]||(s[96]=i("a",{id:"GeometryOps.LinearSegments",href:"#GeometryOps.LinearSegments"},[i("span",{class:"jlbinding"},"GeometryOps.LinearSegments")],-1)),s[97]||(s[97]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[98]||(s[98]=a('
julia
LinearSegments(; max_distance::Real)

A method for segmentizing geometries by adding extra vertices to the geometry so that no segment is longer than a given distance.

Here, max_distance is a purely nondimensional quantity and will apply in the input space. This is to say, that if the polygon is provided in lat/lon coordinates then the max_distance will be in degrees of arc. If the polygon is provided in meters, then the max_distance will be in meters.

source

',4))]),i("details",U,[i("summary",null,[s[99]||(s[99]=i("a",{id:"GeometryOps.MeanValue",href:"#GeometryOps.MeanValue"},[i("span",{class:"jlbinding"},"GeometryOps.MeanValue")],-1)),s[100]||(s[100]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[101]||(s[101]=a('
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source

',4))]),i("details",N,[i("summary",null,[s[102]||(s[102]=i("a",{id:"GeometryOps.MonotoneChainMethod",href:"#GeometryOps.MonotoneChainMethod"},[i("span",{class:"jlbinding"},"GeometryOps.MonotoneChainMethod")],-1)),s[103]||(s[103]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[104]||(s[104]=a('
julia
MonotoneChainMethod()

This is an algorithm for the convex_hull function.

Uses DelaunayTriangulation.jl to compute the convex hull. This is a pure Julia algorithm which provides an optimal Delaunay triangulation.

See also convex_hull

source

',5))]),i("details",z,[i("summary",null,[s[105]||(s[105]=i("a",{id:"GeometryOps.PointOrientation",href:"#GeometryOps.PointOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.PointOrientation")],-1)),s[106]||(s[106]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[107]||(s[107]=a('
julia
Enum PointOrientation

Enum for the orientation of a point with respect to a curve. A point can be point_in the curve, point_on the curve, or point_out of the curve.

source

',3))]),i("details",W,[i("summary",null,[s[108]||(s[108]=i("a",{id:"GeometryOps.RadialDistance",href:"#GeometryOps.RadialDistance"},[i("span",{class:"jlbinding"},"GeometryOps.RadialDistance")],-1)),s[109]||(s[109]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[110]||(s[110]=a('
julia
RadialDistance <: SimplifyAlg

Simplifies geometries by removing points less than tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance between points.

Note: user input tol is squared to avoid unnecessary computation in algorithm.

source

',6))]),i("details",Z,[i("summary",null,[s[111]||(s[111]=i("a",{id:"GeometryOps.SimplifyAlg",href:"#GeometryOps.SimplifyAlg"},[i("span",{class:"jlbinding"},"GeometryOps.SimplifyAlg")],-1)),s[112]||(s[112]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[113]||(s[113]=a('
julia
abstract type SimplifyAlg

Abstract type for simplification algorithms.

API

For now, the algorithm must hold the number, ratio and tol properties.

Simplification algorithm types can hook into the interface by implementing the _simplify(trait, alg, geom) methods for whichever traits are necessary.

source

',6))]),i("details",_,[i("summary",null,[s[114]||(s[114]=i("a",{id:"GeometryOps.UnionIntersectingPolygons",href:"#GeometryOps.UnionIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[115]||(s[115]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[116]||(s[116]=a('
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source

',4))]),i("details",K,[i("summary",null,[s[117]||(s[117]=i("a",{id:"GeometryOps.VisvalingamWhyatt",href:"#GeometryOps.VisvalingamWhyatt"},[i("span",{class:"jlbinding"},"GeometryOps.VisvalingamWhyatt")],-1)),s[118]||(s[118]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[119]||(s[119]=a(`
julia
VisvalingamWhyatt <: SimplifyAlg
 
-VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source

`,6))]),i("details",X,[i("summary",null,[s[120]||(s[120]=i("a",{id:"GeometryOps._det-Union{Tuple{T2}, Tuple{T1}, Tuple{Union{Tuple{T1, T1}, StaticArraysCore.StaticArray{Tuple{2}, T1, 1}}, Union{Tuple{T2, T2}, StaticArraysCore.StaticArray{Tuple{2}, T2, 1}}}} where {T1<:Real, T2<:Real}",href:"#GeometryOps._det-Union{Tuple{T2}, Tuple{T1}, Tuple{Union{Tuple{T1, T1}, StaticArraysCore.StaticArray{Tuple{2}, T1, 1}}, Union{Tuple{T2, T2}, StaticArraysCore.StaticArray{Tuple{2}, T2, 1}}}} where {T1<:Real, T2<:Real}"},[i("span",{class:"jlbinding"},"GeometryOps._det")],-1)),s[121]||(s[121]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[122]||(s[122]=a('
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source

',5))]),i("details",$,[i("summary",null,[s[123]||(s[123]=i("a",{id:"GeometryOps._equals_curves-NTuple{4, Any}",href:"#GeometryOps._equals_curves-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps._equals_curves")],-1)),s[124]||(s[124]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[125]||(s[125]=a('
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source

',3))]),i("details",Y,[i("summary",null,[s[126]||(s[126]=i("a",{id:"GeometryOps.angles-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.angles-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.angles")],-1)),s[127]||(s[127]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[128]||(s[128]=a(`
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
+VisvalingamWhyatt(; kw...)

Simplifies geometries by removing points below tol distance from the line between its neighboring points.

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum area of a triangle made with a point and its neighboring points.

Note: user input tol is doubled to avoid unnecessary computation in algorithm.

source

`,6))]),i("details",X,[i("summary",null,[s[120]||(s[120]=i("a",{id:"GeometryOps._det-Union{Tuple{T2}, Tuple{T1}, Tuple{Union{Tuple{T1, T1}, StaticArraysCore.StaticArray{Tuple{2}, T1, 1}}, Union{Tuple{T2, T2}, StaticArraysCore.StaticArray{Tuple{2}, T2, 1}}}} where {T1<:Real, T2<:Real}",href:"#GeometryOps._det-Union{Tuple{T2}, Tuple{T1}, Tuple{Union{Tuple{T1, T1}, StaticArraysCore.StaticArray{Tuple{2}, T1, 1}}, Union{Tuple{T2, T2}, StaticArraysCore.StaticArray{Tuple{2}, T2, 1}}}} where {T1<:Real, T2<:Real}"},[i("span",{class:"jlbinding"},"GeometryOps._det")],-1)),s[121]||(s[121]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[122]||(s[122]=a('
julia
_det(s1::Point2{T1}, s2::Point2{T2}) where {T1 <: Real, T2 <: Real}

Returns the determinant of the matrix formed by hcat'ing two points s1 and s2.

Specifically, this is:

julia
s1[1] * s2[2] - s1[2] * s2[1]

source

',5))]),i("details",$,[i("summary",null,[s[123]||(s[123]=i("a",{id:"GeometryOps._equals_curves-NTuple{4, Any}",href:"#GeometryOps._equals_curves-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps._equals_curves")],-1)),s[124]||(s[124]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[125]||(s[125]=a('
julia
_equals_curves(c1, c2, closed_type1, closed_type2)::Bool

Two curves are equal if they share the same set of point, representing the same geometry. Both curves must must be composed of the same set of points, however, they do not have to wind in the same direction, or start on the same point to be equivalent. Inputs: c1 first geometry c2 second geometry closed_type1::Bool true if c1 is closed by definition (polygon, linear ring) closed_type2::Bool true if c2 is closed by definition (polygon, linear ring)

source

',3))]),i("details",Y,[i("summary",null,[s[126]||(s[126]=i("a",{id:"GeometryOps.angles-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.angles-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.angles")],-1)),s[127]||(s[127]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[128]||(s[128]=a(`
julia
angles(geom, ::Type{T} = Float64)

Returns the angles of a geometry or collection of geometries. This is computed differently for different geometries:

- The angles of a point is an empty vector.
 - The angles of a single line segment is an empty vector.
 - The angles of a linestring or linearring is a vector of angles formed by the curve.
 - The angles of a polygon is a vector of vectors of angles formed by each ring.
 - The angles of a multi-geometry collection is a vector of the angles of each of the
-    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

`,5))]),i("details",ss,[i("summary",null,[s[129]||(s[129]=i("a",{id:"GeometryOps.area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.area")],-1)),s[130]||(s[130]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[131]||(s[131]=a(`
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
+    sub-geometries as defined above.

Result will be a Vector, or nested set of vectors, of type T where an optional argument with a default value of Float64.

source

`,5))]),i("details",ss,[i("summary",null,[s[129]||(s[129]=i("a",{id:"GeometryOps.area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.area")],-1)),s[130]||(s[130]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[131]||(s[131]=a(`
julia
area(geom, [T = Float64])::T

Returns the area of a geometry or collection of geometries. This is computed slightly differently for different geometries:

- The area of a point/multipoint is always zero.
 - The area of a curve/multicurve is always zero.
 - The area of a polygon is the absolute value of the signed area.
 - The area multi-polygon is the sum of the areas of all of the sub-polygons.
 - The area of a geometry collection, feature collection of array/iterable 
-    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",is,[i("summary",null,[s[132]||(s[132]=i("a",{id:"GeometryOps.barycentric_coordinates!-Tuple{Vector{<:Real}, GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}",href:"#GeometryOps.barycentric_coordinates!-Tuple{Vector{<:Real}, GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates!")],-1)),s[133]||(s[133]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[134]||(s[134]=a('
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

',5))]),i("details",as,[i("summary",null,[s[135]||(s[135]=i("a",{id:"GeometryOps.barycentric_coordinates-Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}",href:"#GeometryOps.barycentric_coordinates-Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates")],-1)),s[136]||(s[136]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[137]||(s[137]=a('
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

',3))]),i("details",es,[i("summary",null,[s[138]||(s[138]=i("a",{id:"GeometryOps.barycentric_interpolate-Union{Tuple{V}, Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, AbstractVector{V}, Any}} where V",href:"#GeometryOps.barycentric_interpolate-Union{Tuple{V}, Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, AbstractVector{V}, Any}} where V"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_interpolate")],-1)),s[139]||(s[139]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[140]||(s[140]=a('
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

',5))]),i("details",ts,[i("summary",null,[s[141]||(s[141]=i("a",{id:"GeometryOps.centroid-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid")],-1)),s[142]||(s[142]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[143]||(s[143]=a('
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

',3))]),i("details",ns,[i("summary",null,[s[144]||(s[144]=i("a",{id:"GeometryOps.centroid_and_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid_and_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid_and_area")],-1)),s[145]||(s[145]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=a('
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source

',3))]),i("details",ls,[i("summary",null,[s[147]||(s[147]=i("a",{id:"GeometryOps.centroid_and_length-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid_and_length-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid_and_length")],-1)),s[148]||(s[148]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[149]||(s[149]=a('
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source

',3))]),i("details",ps,[i("summary",null,[s[150]||(s[150]=i("a",{id:"GeometryOps.contains-Tuple{Any, Any}",href:"#GeometryOps.contains-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[151]||(s[151]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[152]||(s[152]=a(`
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+    is the sum of the areas of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",is,[i("summary",null,[s[132]||(s[132]=i("a",{id:"GeometryOps.barycentric_coordinates!-Tuple{Vector{<:Real}, GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}",href:"#GeometryOps.barycentric_coordinates!-Tuple{Vector{<:Real}, GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates!")],-1)),s[133]||(s[133]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[134]||(s[134]=a('
julia
barycentric_coordinates!(λs::Vector{<: Real}, method::AbstractBarycentricCoordinateMethod, polygon, point)

Loads the barycentric coordinates of point in polygon into λs using the barycentric coordinate method method.

λs must be of the length of the polygon plus its holes.

Tip

Use this method to avoid excess allocations when you need to calculate barycentric coordinates for many points.

source

',5))]),i("details",as,[i("summary",null,[s[135]||(s[135]=i("a",{id:"GeometryOps.barycentric_coordinates-Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}",href:"#GeometryOps.barycentric_coordinates-Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_coordinates")],-1)),s[136]||(s[136]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[137]||(s[137]=a('
julia
barycentric_coordinates(method = MeanValue(), polygon, point)

Returns the barycentric coordinates of point in polygon using the barycentric coordinate method method.

source

',3))]),i("details",es,[i("summary",null,[s[138]||(s[138]=i("a",{id:"GeometryOps.barycentric_interpolate-Union{Tuple{V}, Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, AbstractVector{V}, Any}} where V",href:"#GeometryOps.barycentric_interpolate-Union{Tuple{V}, Tuple{GeometryOps.AbstractBarycentricCoordinateMethod, Any, AbstractVector{V}, Any}} where V"},[i("span",{class:"jlbinding"},"GeometryOps.barycentric_interpolate")],-1)),s[139]||(s[139]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[140]||(s[140]=a('
julia
barycentric_interpolate(method = MeanValue(), polygon, values::AbstractVector{V}, point)

Returns the interpolated value at point within polygon using the barycentric coordinate method method. values are the per-point values for the polygon which are to be interpolated.

Returns an object of type V.

Warning

Barycentric interpolation is currently defined only for 2-dimensional polygons. If you pass a 3-D polygon in, the Z coordinate will be used as per-vertex value to be interpolated (the M coordinate in GIS parlance).

source

',5))]),i("details",ts,[i("summary",null,[s[141]||(s[141]=i("a",{id:"GeometryOps.centroid-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid")],-1)),s[142]||(s[142]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[143]||(s[143]=a('
julia
centroid(geom, [T=Float64])::Tuple{T, T}

Returns the centroid of a given line segment, linear ring, polygon, or mutlipolygon.

source

',3))]),i("details",ns,[i("summary",null,[s[144]||(s[144]=i("a",{id:"GeometryOps.centroid_and_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid_and_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid_and_area")],-1)),s[145]||(s[145]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=a('
julia
centroid_and_area(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and area of a given geometry.

source

',3))]),i("details",ls,[i("summary",null,[s[147]||(s[147]=i("a",{id:"GeometryOps.centroid_and_length-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.centroid_and_length-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.centroid_and_length")],-1)),s[148]||(s[148]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[149]||(s[149]=a('
julia
centroid_and_length(geom, [T=Float64])::(::Tuple{T, T}, ::Real)

Returns the centroid and length of a given line/ring. Note this is only valid for line strings and linear rings.

source

',3))]),i("details",ps,[i("summary",null,[s[150]||(s[150]=i("a",{id:"GeometryOps.contains-Tuple{Any, Any}",href:"#GeometryOps.contains-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[151]||(s[151]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[152]||(s[152]=a(`
julia
contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the second geometry is completely contained by the first geometry. The interiors of both geometries must intersect and the interior and boundary of the secondary (g2) must not intersect the exterior of the first (g1).

contains returns the exact opposite result of within.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = GI.Point((1, 2))
 
 GO.contains(line, point)
 # output
-true

source

`,6))]),i("details",hs,[i("summary",null,[s[153]||(s[153]=i("a",{id:"GeometryOps.convex_hull",href:"#GeometryOps.convex_hull"},[i("span",{class:"jlbinding"},"GeometryOps.convex_hull")],-1)),s[154]||(s[154]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[155]||(s[155]=a('
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source

',5))]),i("details",ks,[i("summary",null,[s[156]||(s[156]=i("a",{id:"GeometryOps.coverage-Union{Tuple{T}, NTuple{5, Any}, Tuple{Any, Any, Any, Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.coverage-Union{Tuple{T}, NTuple{5, Any}, Tuple{Any, Any, Any, Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.coverage")],-1)),s[157]||(s[157]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[158]||(s[158]=a('
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",rs,[i("summary",null,[s[159]||(s[159]=i("a",{id:"GeometryOps.coveredby-Tuple{Any, Any}",href:"#GeometryOps.coveredby-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[160]||(s[160]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[161]||(s[161]=a(`
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",hs,[i("summary",null,[s[153]||(s[153]=i("a",{id:"GeometryOps.convex_hull",href:"#GeometryOps.convex_hull"},[i("span",{class:"jlbinding"},"GeometryOps.convex_hull")],-1)),s[154]||(s[154]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[155]||(s[155]=a('
julia
convex_hull([method], geometries)

Compute the convex hull of the points in geometries. Returns a GI.Polygon representing the convex hull.

Note that the polygon returned is wound counterclockwise as in the Simple Features standard by default. If you choose GEOS, the winding order will be inverted.

Warning

This interface only computes the 2-dimensional convex hull!

For higher dimensional hulls, use the relevant package (Qhull.jl, Quickhull.jl, or similar).

source

',5))]),i("details",ks,[i("summary",null,[s[156]||(s[156]=i("a",{id:"GeometryOps.coverage-Union{Tuple{T}, NTuple{5, Any}, Tuple{Any, Any, Any, Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.coverage-Union{Tuple{T}, NTuple{5, Any}, Tuple{Any, Any, Any, Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.coverage")],-1)),s[157]||(s[157]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[158]||(s[158]=a('
julia
coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T

Returns the area of intersection between given geometry and grid cell defined by its minimum and maximum x and y-values. This is computed differently for different geometries:

  • The signed area of a point is always zero.

  • The signed area of a curve is always zero.

  • The signed area of a polygon is calculated by tracing along its edges and switching to the cell edges if needed.

  • The coverage of a geometry collection, multi-geometry, feature collection of array/iterable is the sum of the coverages of all of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",rs,[i("summary",null,[s[159]||(s[159]=i("a",{id:"GeometryOps.coveredby-Tuple{Any, Any}",href:"#GeometryOps.coveredby-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[160]||(s[160]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[161]||(s[161]=a(`
julia
coveredby(g1, g2)::Bool

Return true if the first geometry is completely covered by the second geometry. The interior and boundary of the primary geometry (g1) must not intersect the exterior of the secondary geometry (g2).

Furthermore, coveredby returns the exact opposite result of covers. They are equivalent with the order of the arguments swapped.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 p1 = GI.Point(0.0, 0.0)
 p2 = GI.Point(1.0, 1.0)
 l1 = GI.Line([p1, p2])
 
 GO.coveredby(p1, l1)
 # output
-true

source

`,6))]),i("details",os,[i("summary",null,[s[162]||(s[162]=i("a",{id:"GeometryOps.covers-Tuple{Any, Any}",href:"#GeometryOps.covers-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[163]||(s[163]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[164]||(s[164]=a(`
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",os,[i("summary",null,[s[162]||(s[162]=i("a",{id:"GeometryOps.covers-Tuple{Any, Any}",href:"#GeometryOps.covers-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[163]||(s[163]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[164]||(s[164]=a(`
julia
covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool

Return true if the first geometry is completely covers the second geometry, The exterior and boundary of the second geometry must not be outside of the interior and boundary of the first geometry. However, the interiors need not intersect.

covers returns the exact opposite result of coveredby.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 l1 = GI.LineString([(1.0, 1.0), (1.0, 2.0), (1.0, 3.0), (1.0, 4.0)])
 l2 = GI.LineString([(1.0, 1.0), (1.0, 2.0)])
 
 GO.covers(l1, l2)
 # output
-true

source

`,6))]),i("details",ds,[i("summary",null,[s[165]||(s[165]=i("a",{id:"GeometryOps.crosses-Tuple{Any, Any}",href:"#GeometryOps.crosses-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[166]||(s[166]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[167]||(s[167]=a(`
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
-# TODO: Add working example

source

`,6))]),i("details",gs,[i("summary",null,[s[168]||(s[168]=i("a",{id:"GeometryOps.cut-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.cut-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.cut")],-1)),s[169]||(s[169]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[170]||(s[170]=a(`
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+true

source

`,6))]),i("details",ds,[i("summary",null,[s[165]||(s[165]=i("a",{id:"GeometryOps.crosses-Tuple{Any, Any}",href:"#GeometryOps.crosses-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[166]||(s[166]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[167]||(s[167]=a(`
julia
 crosses(geom1, geom2)::Bool

Return true if the intersection results in a geometry whose dimension is one less than the maximum dimension of the two source geometries and the intersection set is interior to both source geometries.

TODO: broken

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+# TODO: Add working example

source

`,6))]),i("details",gs,[i("summary",null,[s[168]||(s[168]=i("a",{id:"GeometryOps.cut-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.cut-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.cut")],-1)),s[169]||(s[169]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[170]||(s[170]=a(`
julia
cut(geom, line, [T::Type])

Return given geom cut by given line as a list of geometries of the same type as the input geom. Return the original geometry as only list element if none are found. Line must cut fully through given geometry or the original geometry will be returned.

Note: This currently doesn't work for degenerate cases there line crosses through vertices.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0.0, 0.0), (10.0, 0.0), (10.0, 10.0), (0.0, 10.0), (0.0, 0.0)]])
 line = GI.Line([(5.0, -5.0), (5.0, 15.0)])
@@ -173,7 +170,7 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 # output
 2-element Vector{Vector{Vector{Vector{Float64}}}}:
  [[[0.0, 0.0], [5.0, 0.0], [5.0, 10.0], [0.0, 10.0], [0.0, 0.0]]]
- [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source

`,6))]),i("details",ys,[i("summary",null,[s[171]||(s[171]=i("a",{id:"GeometryOps.difference-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.difference-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.difference")],-1)),s[172]||(s[172]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[173]||(s[173]=a(`
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+ [[[5.0, 0.0], [10.0, 0.0], [10.0, 10.0], [5.0, 10.0], [5.0, 0.0]]]

source

`,6))]),i("details",ys,[i("summary",null,[s[171]||(s[171]=i("a",{id:"GeometryOps.difference-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.difference-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.difference")],-1)),s[172]||(s[172]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[173]||(s[173]=a(`
julia
difference(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the difference between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly1 = GI.Polygon([[[0.0, 0.0], [5.0, 5.0], [10.0, 0.0], [5.0, -5.0], [0.0, 0.0]]])
 poly2 = GI.Polygon([[[3.0, 0.0], [8.0, 5.0], [13.0, 0.0], [8.0, -5.0], [3.0, 0.0]]])
@@ -182,32 +179,32 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source

`,5))]),i("details",Es,[i("summary",null,[s[174]||(s[174]=i("a",{id:"GeometryOps.disjoint-Tuple{Any, Any}",href:"#GeometryOps.disjoint-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[175]||(s[175]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[176]||(s[176]=a(`
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [3.0, 0.0], [6.5, 3.5]]]

source

`,5))]),i("details",Es,[i("summary",null,[s[174]||(s[174]=i("a",{id:"GeometryOps.disjoint-Tuple{Any, Any}",href:"#GeometryOps.disjoint-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[175]||(s[175]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[176]||(s[176]=a(`
julia
disjoint(geom1, geom2)::Bool

Return true if the first geometry is disjoint from the second geometry.

Return true if the first geometry is disjoint from the second geometry. The interiors and boundaries of both geometries must not intersect.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (2, 2)
 GO.disjoint(point, line)
 
 # output
-true

source

`,6))]),i("details",cs,[i("summary",null,[s[177]||(s[177]=i("a",{id:"GeometryOps.distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.distance")],-1)),s[178]||(s[178]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[179]||(s[179]=a('
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",us,[i("summary",null,[s[180]||(s[180]=i("a",{id:"GeometryOps.embed_extent-Tuple{Any}",href:"#GeometryOps.embed_extent-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[181]||(s[181]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[182]||(s[182]=a('
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

',6))]),i("details",ms,[i("summary",null,[s[183]||(s[183]=i("a",{id:"GeometryOps.enforce-Tuple{GEOS, Symbol, Any}",href:"#GeometryOps.enforce-Tuple{GEOS, Symbol, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.enforce")],-1)),s[184]||(s[184]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[185]||(s[185]=a('
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source

',4))]),i("details",Fs,[i("summary",null,[s[186]||(s[186]=i("a",{id:"GeometryOps.equals-NTuple{4, Any}",href:"#GeometryOps.equals-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[187]||(s[187]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[188]||(s[188]=a('
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

',3))]),i("details",Cs,[i("summary",null,[s[189]||(s[189]=i("a",{id:"GeometryOps.equals-Tuple{Any, Any}",href:"#GeometryOps.equals-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[190]||(s[190]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[191]||(s[191]=a(`
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+true

source

`,6))]),i("details",cs,[i("summary",null,[s[177]||(s[177]=i("a",{id:"GeometryOps.distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.distance")],-1)),s[178]||(s[178]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[179]||(s[179]=a('
julia
distance(point, geom, ::Type{T} = Float64)::T

Calculates the ditance from the geometry g1 to the point. The distance will always be positive or zero.

The method will differ based on the type of the geometry provided: - The distance from a point to a point is just the Euclidean distance between the points. - The distance from a point to a line is the minimum distance from the point to the closest point on the given line. - The distance from a point to a linestring is the minimum distance from the point to the closest segment of the linestring. - The distance from a point to a linear ring is the minimum distance from the point to the closest segment of the linear ring. - The distance from a point to a polygon is zero if the point is within the polygon and otherwise is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The distance from a point to a multigeometry or a geometry collection is the minimum distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',5))]),i("details",us,[i("summary",null,[s[180]||(s[180]=i("a",{id:"GeometryOps.embed_extent-Tuple{Any}",href:"#GeometryOps.embed_extent-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[181]||(s[181]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[182]||(s[182]=a('
julia
embed_extent(obj)

Recursively wrap the object with a GeoInterface.jl geometry, calculating and adding an Extents.Extent to all objects.

This can improve performance when extents need to be checked multiple times, such when needing to check if many points are in geometries, and using their extents as a quick filter for obviously exterior points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

source

',6))]),i("details",ms,[i("summary",null,[s[183]||(s[183]=i("a",{id:"GeometryOps.enforce-Tuple{GEOS, Symbol, Any}",href:"#GeometryOps.enforce-Tuple{GEOS, Symbol, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.enforce")],-1)),s[184]||(s[184]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[185]||(s[185]=a('
julia
enforce(alg::GO.GEOS, kw::Symbol, f)

Enforce the presence of a keyword argument in a GEOS algorithm, and return alg.params[kw].

Throws an error if the key is not present, and mentions f in the error message (since there isn't a good way to get the name of the function that called this method).

source

',4))]),i("details",Fs,[i("summary",null,[s[186]||(s[186]=i("a",{id:"GeometryOps.equals-NTuple{4, Any}",href:"#GeometryOps.equals-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[187]||(s[187]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[188]||(s[188]=a('
julia
equals(trait_a, geom_a, trait_b, geom_b)

Two geometries which are not of the same type cannot be equal so they always return false.

source

',3))]),i("details",bs,[i("summary",null,[s[189]||(s[189]=i("a",{id:"GeometryOps.equals-Tuple{Any, Any}",href:"#GeometryOps.equals-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[190]||(s[190]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[191]||(s[191]=a(`
julia
equals(geom1, geom2)::Bool

Compare two Geometries return true if they are the same geometry.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 
 GO.equals(poly1, poly2)
 # output
-true

source

`,5))]),i("details",fs,[i("summary",null,[s[192]||(s[192]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, GeoInterface.LinearRingTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, GeoInterface.LinearRingTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[193]||(s[193]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[194]||(s[194]=a(`
julia
equals(
+true

source

`,5))]),i("details",Cs,[i("summary",null,[s[192]||(s[192]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, GeoInterface.LinearRingTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, GeoInterface.LinearRingTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[193]||(s[193]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[194]||(s[194]=a(`
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

`,3))]),i("details",bs,[i("summary",null,[s[195]||(s[195]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[196]||(s[196]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[197]||(s[197]=a(`
julia
equals(
+)::Bool

Two linear rings are equal if they share the same set of points going along the curve. Note that rings are closed by definition, so they can have, but don't need, a repeated last point to be equal.

source

`,3))]),i("details",fs,[i("summary",null,[s[195]||(s[195]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.LinearRingTrait, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[196]||(s[196]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[197]||(s[197]=a(`
julia
equals(
     ::GI.LinearRingTrait, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

`,3))]),i("details",Ts,[i("summary",null,[s[198]||(s[198]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[199]||(s[199]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[200]||(s[200]=a('
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

',3))]),i("details",Gs,[i("summary",null,[s[201]||(s[201]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.PointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.PointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[202]||(s[202]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[203]||(s[203]=a('
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

',3))]),i("details",As,[i("summary",null,[s[204]||(s[204]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[205]||(s[205]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[206]||(s[206]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

',3))]),i("details",vs,[i("summary",null,[s[207]||(s[207]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[208]||(s[208]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[209]||(s[209]=a('
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

',3))]),i("details",js,[i("summary",null,[s[210]||(s[210]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[211]||(s[211]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[212]||(s[212]=a('
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

',3))]),i("details",Bs,[i("summary",null,[s[213]||(s[213]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.PointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.PointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[214]||(s[214]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[215]||(s[215]=a('
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

',3))]),i("details",Os,[i("summary",null,[s[216]||(s[216]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[217]||(s[217]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[218]||(s[218]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

',3))]),i("details",Ds,[i("summary",null,[s[219]||(s[219]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[220]||(s[220]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[221]||(s[221]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

',3))]),i("details",Qs,[i("summary",null,[s[222]||(s[222]=i("a",{id:"GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, GeoInterface.LinearRingTrait, Any}",href:"#GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, GeoInterface.LinearRingTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[223]||(s[223]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[224]||(s[224]=a(`
julia
equals(
+)::Bool

A linear ring and a line/linestring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

`,3))]),i("details",Ts,[i("summary",null,[s[198]||(s[198]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[199]||(s[199]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[200]||(s[200]=a('
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

Two multipoints are equal if they share the same set of points.

source

',3))]),i("details",Gs,[i("summary",null,[s[201]||(s[201]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.PointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.PointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[202]||(s[202]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[203]||(s[203]=a('
julia
equals(::GI.MultiPointTrait, mp1, ::GI.PointTrait, p2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

',3))]),i("details",As,[i("summary",null,[s[204]||(s[204]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[205]||(s[205]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[206]||(s[206]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two multipolygons are equal if they share the same set of polygons.

source

',3))]),i("details",vs,[i("summary",null,[s[207]||(s[207]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[208]||(s[208]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[209]||(s[209]=a('
julia
equals(::GI.MultiPolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

',3))]),i("details",js,[i("summary",null,[s[210]||(s[210]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[211]||(s[211]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[212]||(s[212]=a('
julia
equals(::GI.PointTrait, p1, ::GI.MultiPointTrait, mp2)::Bool

A point and a multipoint are equal if the multipoint is composed of a single point that is equivalent to the given point.

source

',3))]),i("details",Bs,[i("summary",null,[s[213]||(s[213]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.PointTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PointTrait, Any, GeoInterface.PointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[214]||(s[214]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[215]||(s[215]=a('
julia
equals(::GI.PointTrait, p1, ::GI.PointTrait, p2)::Bool

Two points are the same if they have the same x and y (and z if 3D) coordinates.

source

',3))]),i("details",Os,[i("summary",null,[s[216]||(s[216]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[217]||(s[217]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[218]||(s[218]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.MultiPolygonTrait, geom_b)::Bool

A polygon and a multipolygon are equal if the multipolygon is composed of a single polygon that is equivalent to the given polygon.

source

',3))]),i("details",Ds,[i("summary",null,[s[219]||(s[219]=i("a",{id:"GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.equals-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[220]||(s[220]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[221]||(s[221]=a('
julia
equals(::GI.PolygonTrait, geom_a, ::GI.PolygonTrait, geom_b)::Bool

Two polygons are equal if they share the same exterior edge and holes.

source

',3))]),i("details",Qs,[i("summary",null,[s[222]||(s[222]=i("a",{id:"GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, GeoInterface.LinearRingTrait, Any}",href:"#GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, GeoInterface.LinearRingTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[223]||(s[223]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[224]||(s[224]=a(`
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::GI.LinearRingTrait, l2,
-)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

`,3))]),i("details",xs,[i("summary",null,[s[225]||(s[225]=i("a",{id:"GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}",href:"#GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[226]||(s[226]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[227]||(s[227]=a(`
julia
equals(
+)::Bool

A line/linestring and a linear ring are equal if they share the same set of points going along the curve. Note that lines aren't closed by definition, but rings are, so the line must have a repeated last point to be equal

source

`,3))]),i("details",xs,[i("summary",null,[s[225]||(s[225]=i("a",{id:"GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}",href:"#GeometryOps.equals-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[226]||(s[226]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[227]||(s[227]=a(`
julia
equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, l2,
-)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

`,3))]),i("details",ws,[i("summary",null,[s[228]||(s[228]=i("a",{id:"GeometryOps.equals-Union{Tuple{T}, Tuple{T, Any, T, Any}} where T",href:"#GeometryOps.equals-Union{Tuple{T}, Tuple{T, Any, T, Any}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[229]||(s[229]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[230]||(s[230]=a('
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

',3))]),i("details",Ls,[i("summary",null,[s[231]||(s[231]=i("a",{id:"GeometryOps.flip-Tuple{Any}",href:"#GeometryOps.flip-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.flip")],-1)),s[232]||(s[232]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[233]||(s[233]=a('
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

',5))]),i("details",Is,[i("summary",null,[s[234]||(s[234]=i("a",{id:"GeometryOps.intersection-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.intersection-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.intersection")],-1)),s[235]||(s[235]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[236]||(s[236]=a(`
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+)::Bool

Two lines/linestrings are equal if they share the same set of points going along the curve. Note that lines/linestrings aren't closed by definition.

source

`,3))]),i("details",ws,[i("summary",null,[s[228]||(s[228]=i("a",{id:"GeometryOps.equals-Union{Tuple{T}, Tuple{T, Any, T, Any}} where T",href:"#GeometryOps.equals-Union{Tuple{T}, Tuple{T, Any, T, Any}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[229]||(s[229]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[230]||(s[230]=a('
julia
equals(::T, geom_a, ::T, geom_b)::Bool

Two geometries of the same type, which don't have a equals function to dispatch off of should throw an error.

source

',3))]),i("details",Ls,[i("summary",null,[s[231]||(s[231]=i("a",{id:"GeometryOps.flip-Tuple{Any}",href:"#GeometryOps.flip-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.flip")],-1)),s[232]||(s[232]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[233]||(s[233]=a('
julia
flip(obj)

Swap all of the x and y coordinates in obj, otherwise keeping the original structure (but not necessarily the original type).

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

',5))]),i("details",Is,[i("summary",null,[s[234]||(s[234]=i("a",{id:"GeometryOps.intersection-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.intersection-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.intersection")],-1)),s[235]||(s[235]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[236]||(s[236]=a(`
julia
intersection(geom_a, geom_b, [T::Type]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the intersection between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a target type as a keyword argument and a list of target geometries found in the intersection will be returned. The user can also provide a float type that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to nothing if you know that the multipolygons are valid, as it will avoid unneeded computation.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)])
 line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)])
@@ -216,7 +213,7 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 
 # output
 1-element Vector{Vector{Float64}}:
- [125.58375366067548, -14.83572303404496]

source

`,5))]),i("details",Ms,[i("summary",null,[s[237]||(s[237]=i("a",{id:"GeometryOps.intersection_points-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.intersection_points-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.intersection_points")],-1)),s[238]||(s[238]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[239]||(s[239]=a(`
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

+ [125.58375366067548, -14.83572303404496]

source

`,5))]),i("details",Ms,[i("summary",null,[s[237]||(s[237]=i("a",{id:"GeometryOps.intersection_points-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.intersection_points-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.intersection_points")],-1)),s[238]||(s[238]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[239]||(s[239]=a(`
julia
intersection_points(geom_a, geom_b, [T::Type])

Return a list of intersection tuple points between two geometries. If no intersection points exist, returns an empty list.

Example

jldoctest

 line1 = GI.Line([(124.584961,-12.768946), (126.738281,-17.224758)]) line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)]) inter_points = GO.intersection_points(line1, line2)
 
 **output**
@@ -224,7 +221,7 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 1-element Vector{Tuple{Float64, Float64}}:  (125.58375366067548, -14.83572303404496)
 
 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/51625e9f63dd625d794d140757f2f4fbde58fea2/src/methods/clipping/intersection.jl#L177-L195)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/6f7d2ee24cb7fcde8e5c7bc68e82dbc1382ba550/src/methods/clipping/intersection.jl#L177-L195)
 
 </details>
 
@@ -241,54 +238,51 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 GO.intersects(line1, line2)
 
 # output
-true

source

`,9))]),i("details",Ps,[i("summary",null,[s[240]||(s[240]=i("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isclockwise")],-1)),s[241]||(s[241]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[244]||(s[244]=a('
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

',2)),i("mjx-container",qs,[(p(),l("svg",Rs,s[242]||(s[242]=[a('',1)]))),s[243]||(s[243]=i("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[i("mrow",{"data-mjx-texclass":"INNER"},[i("mo",{"data-mjx-texclass":"OPEN"},"("),i("munderover",null,[i("mo",{"data-mjx-texclass":"OP"},"∑"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"="),i("mn",null,"2")]),i("mi",null,"n")]),i("mo",{stretchy:"false"},"("),i("msub",null,[i("mi",null,"x"),i("mi",null,"i")]),i("mo",null,"−"),i("msub",null,[i("mi",null,"x"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"−"),i("mn",null,"1")])]),i("mo",{stretchy:"false"},")"),i("mo",null,"⋅"),i("mo",{stretchy:"false"},"("),i("msub",null,[i("mi",null,"y"),i("mi",null,"i")]),i("mo",null,"+"),i("msub",null,[i("mi",null,"y"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"−"),i("mn",null,"1")])]),i("mo",{stretchy:"false"},")"),i("mo",{"data-mjx-texclass":"CLOSE"},")")]),i("mo",null,">"),i("mn",null,"0")])],-1))]),s[245]||(s[245]=a(`

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
+true

source

`,9))]),i("details",Ps,[i("summary",null,[s[240]||(s[240]=i("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isclockwise")],-1)),s[241]||(s[241]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[244]||(s[244]=a('
julia
isclockwise(line::Union{LineString, Vector{Position}})::Bool

Take a ring and return true if the line goes clockwise, or false if the line goes counter-clockwise. "Going clockwise" means, mathematically,

',2)),i("mjx-container",qs,[(p(),l("svg",Rs,s[242]||(s[242]=[a('',1)]))),s[243]||(s[243]=i("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[i("mrow",{"data-mjx-texclass":"INNER"},[i("mo",{"data-mjx-texclass":"OPEN"},"("),i("munderover",null,[i("mo",{"data-mjx-texclass":"OP"},"∑"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"="),i("mn",null,"2")]),i("mi",null,"n")]),i("mo",{stretchy:"false"},"("),i("msub",null,[i("mi",null,"x"),i("mi",null,"i")]),i("mo",null,"−"),i("msub",null,[i("mi",null,"x"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"−"),i("mn",null,"1")])]),i("mo",{stretchy:"false"},")"),i("mo",null,"⋅"),i("mo",{stretchy:"false"},"("),i("msub",null,[i("mi",null,"y"),i("mi",null,"i")]),i("mo",null,"+"),i("msub",null,[i("mi",null,"y"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",null,"i"),i("mo",null,"−"),i("mn",null,"1")])]),i("mo",{stretchy:"false"},")"),i("mo",{"data-mjx-texclass":"CLOSE"},")")]),i("mo",null,">"),i("mn",null,"0")])],-1))]),s[245]||(s[245]=a(`

Example

julia
julia> import GeoInterface as GI, GeometryOps as GO
 julia> ring = GI.LinearRing([(0, 0), (1, 1), (1, 0), (0, 0)]);
 julia> GO.isclockwise(ring)
 # output
-true

source

`,3))]),i("details",Ss,[i("summary",null,[s[246]||(s[246]=i("a",{id:"GeometryOps.isconcave-Tuple{Any}",href:"#GeometryOps.isconcave-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isconcave")],-1)),s[247]||(s[247]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[248]||(s[248]=a(`
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
+true

source

`,3))]),i("details",Ss,[i("summary",null,[s[246]||(s[246]=i("a",{id:"GeometryOps.isconcave-Tuple{Any}",href:"#GeometryOps.isconcave-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isconcave")],-1)),s[247]||(s[247]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[248]||(s[248]=a(`
julia
isconcave(poly::Polygon)::Bool

Take a polygon and return true or false as to whether it is concave or not.

Examples

julia
import GeoInterface as GI, GeometryOps as GO
 
 poly = GI.Polygon([[(0, 0), (0, 1), (1, 1), (1, 0), (0, 0)]])
 GO.isconcave(poly)
 
 # output
-false

source

`,5))]),i("details",Vs,[i("summary",null,[s[249]||(s[249]=i("a",{id:"GeometryOps.overlaps-Tuple{Any, Any}",href:"#GeometryOps.overlaps-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[250]||(s[250]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[251]||(s[251]=a(`
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+false

source

`,5))]),i("details",Vs,[i("summary",null,[s[249]||(s[249]=i("a",{id:"GeometryOps.overlaps-Tuple{Any, Any}",href:"#GeometryOps.overlaps-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[250]||(s[250]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[251]||(s[251]=a(`
julia
overlaps(geom1, geom2)::Bool

Compare two Geometries of the same dimension and return true if their intersection set results in a geometry different from both but of the same dimension. This means one geometry cannot be within or contain the other and they cannot be equal

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 poly1 = GI.Polygon([[(0,0), (0,5), (5,5), (5,0), (0,0)]])
 poly2 = GI.Polygon([[(1,1), (1,6), (6,6), (6,1), (1,1)]])
 
 GO.overlaps(poly1, poly2)
 # output
-true

source

`,5))]),i("details",Js,[i("summary",null,[s[252]||(s[252]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.AbstractTrait, Any, GeoInterface.AbstractTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.AbstractTrait, Any, GeoInterface.AbstractTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[253]||(s[253]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[254]||(s[254]=a('
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

',3))]),i("details",Us,[i("summary",null,[s[255]||(s[255]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.LineTrait, Any, GeoInterface.LineTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.LineTrait, Any, GeoInterface.LineTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[256]||(s[256]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[257]||(s[257]=a('
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

',3))]),i("details",Hs,[i("summary",null,[s[258]||(s[258]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[259]||(s[259]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[260]||(s[260]=a(`
julia
overlaps(
+true

source

`,5))]),i("details",Js,[i("summary",null,[s[252]||(s[252]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.AbstractTrait, Any, GeoInterface.AbstractTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.AbstractTrait, Any, GeoInterface.AbstractTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[253]||(s[253]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[254]||(s[254]=a('
julia
overlaps(::GI.AbstractTrait, geom1, ::GI.AbstractTrait, geom2)::Bool

For any non-specified pair, all have non-matching dimensions, return false.

source

',3))]),i("details",Hs,[i("summary",null,[s[255]||(s[255]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.LineTrait, Any, GeoInterface.LineTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.LineTrait, Any, GeoInterface.LineTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[256]||(s[256]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[257]||(s[257]=a('
julia
overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool

If the lines overlap, meaning that they are collinear but each have one endpoint outside of the other line, return true. Else false.

source

',3))]),i("details",Us,[i("summary",null,[s[258]||(s[258]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPointTrait, Any, GeoInterface.MultiPointTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[259]||(s[259]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[260]||(s[260]=a(`
julia
overlaps(
     ::GI.MultiPointTrait, points1,
     ::GI.MultiPointTrait, points2,
-)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

`,3))]),i("details",Ns,[i("summary",null,[s[261]||(s[261]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[262]||(s[262]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[263]||(s[263]=a(`
julia
overlaps(
+)::Bool

If the multipoints overlap, meaning some, but not all, of the points within the multipoints are shared, return true.

source

`,3))]),i("details",Ns,[i("summary",null,[s[261]||(s[261]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[262]||(s[262]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[263]||(s[263]=a(`
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

`,3))]),i("details",zs,[i("summary",null,[s[264]||(s[264]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[265]||(s[265]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[266]||(s[266]=a(`
julia
overlaps(
+)::Bool

Return true if at least one pair of polygons from multipolygons overlap. Else false.

source

`,3))]),i("details",zs,[i("summary",null,[s[264]||(s[264]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.MultiPolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[265]||(s[265]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[266]||(s[266]=a(`
julia
overlaps(
     ::GI.MultiPolygonTrait, polys1,
     ::GI.PolygonTrait, poly2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

`,3))]),i("details",Ws,[i("summary",null,[s[267]||(s[267]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[268]||(s[268]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[269]||(s[269]=a(`
julia
overlaps(
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

`,3))]),i("details",Ws,[i("summary",null,[s[267]||(s[267]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.MultiPolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[268]||(s[268]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[269]||(s[269]=a(`
julia
overlaps(
     ::GI.PolygonTrait, poly1,
     ::GI.MultiPolygonTrait, polys2,
-)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

`,3))]),i("details",Zs,[i("summary",null,[s[270]||(s[270]=i("a",{id:"GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}",href:"#GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.LineTrait}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[271]||(s[271]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[272]||(s[272]=a(`
julia
overlaps(
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
-    ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
-)::Bool

If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

`,3))]),i("details",_s,[i("summary",null,[s[273]||(s[273]=i("a",{id:"GeometryOps.polygon_to_line-Tuple{Any}",href:"#GeometryOps.polygon_to_line-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.polygon_to_line")],-1)),s[274]||(s[274]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[275]||(s[275]=a(`
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+)::Bool

Return true if polygon overlaps with at least one of the polygons within the multipolygon. Else false.

source

`,3))]),i("details",Zs,[i("summary",null,[s[270]||(s[270]=i("a",{id:"GeometryOps.polygon_to_line-Tuple{Any}",href:"#GeometryOps.polygon_to_line-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.polygon_to_line")],-1)),s[271]||(s[271]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[272]||(s[272]=a(`
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 poly = GI.Polygon([[(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)]])
 GO.polygon_to_line(poly)
 # output
-GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source

`,5))]),i("details",Ks,[i("summary",null,[s[276]||(s[276]=i("a",{id:"GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}",href:"#GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}"},[i("span",{class:"jlbinding"},"GeometryOps.polygonize")],-1)),s[277]||(s[277]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[278]||(s[278]=a(`
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
+GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(-2.275543, 53.464547), (-2.275543, 53.489271), (-2.215118, 53.489271), (-2.215118, 53.464547), (-2.275543, 53.464547)], nothing, nothing)

source

`,5))]),i("details",_s,[i("summary",null,[s[273]||(s[273]=i("a",{id:"GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}",href:"#GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}"},[i("span",{class:"jlbinding"},"GeometryOps.polygonize")],-1)),s[274]||(s[274]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[275]||(s[275]=a(`
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
 polygonize(f, A::AbstractMatrix; kw...)
 polygonize(xs, ys, A::AbstractMatrix{Bool}; kw...)
 polygonize(f, xs, ys, A::AbstractMatrix; kw...)

Polygonize an AbstractMatrix of values, currently to a single class of polygons.

Returns a MultiPolygon for Bool values and f return values, and a FeatureCollection of Features holding MultiPolygon for all other values.

Function f should return either true or false or a transformation of values into simpler groups, especially useful for floating point arrays.

If xs and ys are ranges, they are used as the pixel/cell center points. If they are Vector of Tuple they are used as the lower and upper bounds of each pixel/cell.

Keywords

  • minpoints: ignore polygons with less than minpoints points.

  • values: the values to turn into polygons. By default these are union(A), If function f is passed these refer to the return values of f, by default union(map(f, A). If values Bool, false is ignored and a single MultiPolygon is returned rather than a FeatureCollection.

Example

julia
using GeometryOps
 A = rand(100, 100)
-multipolygon = polygonize(>(0.5), A);

source

`,10))]),i("details",Xs,[i("summary",null,[s[279]||(s[279]=i("a",{id:"GeometryOps.segmentize-Tuple{Any}",href:"#GeometryOps.segmentize-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.segmentize")],-1)),s[280]||(s[280]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[281]||(s[281]=a('
julia
segmentize([method = Planar()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::Manifold = Planar(): The method to use for segmentizing the geometry. At the moment, only Planar (assumes a flat plane) and Geodesic (assumes geometry on the ellipsoidal Earth and uses Vincenty's formulae) are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, Polygon, MultiPolygon, or GeometryCollection, or some vector or table of those.

  • max_distance::Real: The maximum distance between vertices in the geometry. Beware: for Planar, this is in the units of the geometry, but for Geodesic and Spherical it's in units of the radius of the sphere.

Returns a geometry of similar type to the input geometry, but resampled.

source

',6))]),i("details",$s,[i("summary",null,[s[282]||(s[282]=i("a",{id:"GeometryOps.signed_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.signed_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.signed_area")],-1)),s[283]||(s[283]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[284]||(s[284]=a(`
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
+multipolygon = polygonize(>(0.5), A);

source

`,10))]),i("details",Ks,[i("summary",null,[s[276]||(s[276]=i("a",{id:"GeometryOps.segmentize-Tuple{Any}",href:"#GeometryOps.segmentize-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.segmentize")],-1)),s[277]||(s[277]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[278]||(s[278]=a('
julia
segmentize([method = Planar()], geom; max_distance::Real, threaded)

Segmentize a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Arguments

  • method::Manifold = Planar(): The method to use for segmentizing the geometry. At the moment, only Planar (assumes a flat plane) and Geodesic (assumes geometry on the ellipsoidal Earth and uses Vincenty's formulae) are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, Polygon, MultiPolygon, or GeometryCollection, or some vector or table of those.

  • max_distance::Real: The maximum distance between vertices in the geometry. Beware: for Planar, this is in the units of the geometry, but for Geodesic and Spherical it's in units of the radius of the sphere.

Returns a geometry of similar type to the input geometry, but resampled.

source

',6))]),i("details",Xs,[i("summary",null,[s[279]||(s[279]=i("a",{id:"GeometryOps.signed_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.signed_area-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.signed_area")],-1)),s[280]||(s[280]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[281]||(s[281]=a(`
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slightly differently for different geometries:

- The signed area of a point is always zero.
 - The signed area of a curve is always zero.
 - The signed area of a polygon is computed with the shoelace formula and is
 positive if the polygon coordinates wind clockwise and negative if
 counterclockwise.
 - You cannot compute the signed area of a multipolygon as it doesn't have a
-meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",Ys,[i("summary",null,[s[285]||(s[285]=i("a",{id:"GeometryOps.signed_distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.signed_distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.signed_distance")],-1)),s[286]||(s[286]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[287]||(s[287]=a('
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',4))]),i("details",si,[i("summary",null,[s[288]||(s[288]=i("a",{id:"GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}",href:"#GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.simplify")],-1)),s[289]||(s[289]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[290]||(s[290]=a(`
julia
simplify(obj; kw...)
+meaning as each sub-polygon could have a different winding order.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

`,5))]),i("details",$s,[i("summary",null,[s[282]||(s[282]=i("a",{id:"GeometryOps.signed_distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.signed_distance-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.signed_distance")],-1)),s[283]||(s[283]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[284]||(s[284]=a('
julia
signed_distance(point, geom, ::Type{T} = Float64)::T

Calculates the signed distance from the geometry geom to the given point. Points within geom have a negative signed distance, and points outside of geom have a positive signed distance. - The signed distance from a point to a point, line, linestring, or linear ring is equal to the distance between the two. - The signed distance from a point to a polygon is negative if the point is within the polygon and is positive otherwise. The value of the distance is the minimum distance from the point to an edge of the polygon. This includes edges created by holes. - The signed distance from a point to a multigeometry or a geometry collection is the minimum signed distance between the point and any of the sub-geometries.

Result will be of type T, where T is an optional argument with a default value of Float64.

source

',4))]),i("details",Ys,[i("summary",null,[s[285]||(s[285]=i("a",{id:"GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}",href:"#GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.simplify")],-1)),s[286]||(s[286]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[287]||(s[287]=a(`
julia
simplify(obj; kw...)
 simplify(::SimplifyAlg, obj; kw...)

Simplify a geometry, feature, feature collection, or nested vectors or a table of these.

RadialDistance, DouglasPeucker, or VisvalingamWhyatt algorithms are available, listed in order of increasing quality but decreasing performance.

PoinTrait and MultiPointTrait are returned unchanged.

The default behaviour is simplify(DouglasPeucker(; kw...), obj). Pass in other SimplifyAlg to use other algorithms.

Keywords

  • prefilter_alg: SimplifyAlg algorithm used to pre-filter object before using primary filtering algorithm.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Keywords for DouglasPeucker are allowed when no algorithm is specified:

Keywords

  • ratio: the fraction of points that should remain after simplify. Useful as it will generalise for large collections of objects.

  • number: the number of points that should remain after simplify. Less useful for large collections of mixed size objects.

  • tol: the minimum distance a point will be from the line joining its neighboring points.

Example

Simplify a polygon to have six points:

julia
import GeoInterface as GI
 import GeometryOps as GO
 
@@ -318,9 +312,9 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 GI.npoint(simple)
 
 # output
-6

source

`,14))]),i("details",ii,[i("summary",null,[s[291]||(s[291]=i("a",{id:"GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}",href:"#GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}"},[i("span",{class:"jlbinding"},"GeometryOps.t_value")],-1)),s[292]||(s[292]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[295]||(s[295]=a('
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

',3)),i("mjx-container",ai,[(p(),l("svg",ei,s[293]||(s[293]=[a('',1)]))),s[294]||(s[294]=i("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[i("mi",null,"t"),i("mi",null,"ᵢ"),i("mo",null,"="),i("mfrac",null,[i("mrow",null,[i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",{"data-mjx-auto-op":"false"},"det")]),i("mrow",{"data-mjx-texclass":"INNER"},[i("mo",{"data-mjx-texclass":"OPEN"},"("),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mo",null,","),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")]),i("mo",{"data-mjx-texclass":"CLOSE"},")")])]),i("mrow",null,[i("mi",null,"r"),i("mi",null,"ᵢ"),i("mo",null,"∗"),i("mi",null,"r"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")]),i("mo",null,"+"),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mo",null,"⋅"),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1))]),s[296]||(s[296]=a(`

+6

source

`,14))]),i("details",si,[i("summary",null,[s[288]||(s[288]=i("a",{id:"GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}",href:"#GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{NTuple{N, T1}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}"},[i("span",{class:"jlbinding"},"GeometryOps.t_value")],-1)),s[289]||(s[289]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[292]||(s[292]=a('
julia
t_value(sᵢ, sᵢ₊₁, rᵢ, rᵢ₊₁)

Returns the "T-value" as described in Hormann's presentation [1] on how to calculate the mean-value coordinate.

Here, sᵢ is the vector from vertex vᵢ to the point, and rᵢ is the norm (length) of sᵢ. s must be Point and r must be real numbers.

',3)),i("mjx-container",ii,[(p(),l("svg",ai,s[290]||(s[290]=[a('',1)]))),s[291]||(s[291]=i("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[i("mi",null,"t"),i("mi",null,"ᵢ"),i("mo",null,"="),i("mfrac",null,[i("mrow",null,[i("mrow",{"data-mjx-texclass":"ORD"},[i("mi",{"data-mjx-auto-op":"false"},"det")]),i("mrow",{"data-mjx-texclass":"INNER"},[i("mo",{"data-mjx-texclass":"OPEN"},"("),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mo",null,","),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")]),i("mo",{"data-mjx-texclass":"CLOSE"},")")])]),i("mrow",null,[i("mi",null,"r"),i("mi",null,"ᵢ"),i("mo",null,"∗"),i("mi",null,"r"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")]),i("mo",null,"+"),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mo",null,"⋅"),i("mi",null,"s"),i("mi",null,"ᵢ"),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₊")]),i("mrow",{"data-mjx-texclass":"ORD"},[i("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1))]),s[293]||(s[293]=a(`

 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/51625e9f63dd625d794d140757f2f4fbde58fea2/src/methods/barycentric.jl#L289-L305)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/6f7d2ee24cb7fcde8e5c7bc68e82dbc1382ba550/src/methods/barycentric.jl#L289-L305)
 
 </details>
 
@@ -330,14 +324,14 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 
 
 \`\`\`julia
-to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source

`,3))]),i("details",ti,[i("summary",null,[s[297]||(s[297]=i("a",{id:"GeometryOps.touches-Tuple{Any, Any}",href:"#GeometryOps.touches-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[298]||(s[298]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[299]||(s[299]=a(`
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+to_edges()

Convert any geometry or collection of geometries into a flat vector of Tuple{Tuple{Float64,Float64},Tuple{Float64,Float64}} edges.

source

`,3))]),i("details",ei,[i("summary",null,[s[294]||(s[294]=i("a",{id:"GeometryOps.touches-Tuple{Any, Any}",href:"#GeometryOps.touches-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[295]||(s[295]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[296]||(s[296]=a(`
julia
touches(geom1, geom2)::Bool

Return true if the first geometry touches the second geometry. In other words, the two interiors cannot interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 l1 = GI.Line([(0.0, 0.0), (1.0, 0.0)])
 l2 = GI.Line([(1.0, 1.0), (1.0, -1.0)])
 
 GO.touches(l1, l2)
 # output
-true

source

`,5))]),i("details",ni,[i("summary",null,[s[300]||(s[300]=i("a",{id:"GeometryOps.transform-Tuple{Any, Any}",href:"#GeometryOps.transform-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[301]||(s[301]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[302]||(s[302]=a(`
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
+true

source

`,5))]),i("details",ti,[i("summary",null,[s[297]||(s[297]=i("a",{id:"GeometryOps.transform-Tuple{Any, Any}",href:"#GeometryOps.transform-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[298]||(s[298]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[299]||(s[299]=a(`
julia
transform(f, obj)

Apply a function f to all the points in obj.

Points will be passed to f as an SVector to allow using CoordinateTransformations.jl and Rotations.jl without hassle.

SVector is also a valid GeoInterface.jl point, so will work in all GeoInterface.jl methods.

Example

julia
julia> import GeoInterface as GI
 
 julia> import GeometryOps as GO
 
@@ -356,7 +350,7 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
 ing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVe
 ctor{2, Int64}[[2, 1], [4, 3], [6, 5], [2, 1]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}(StaticArraysCore.SVector{2, Int64
-}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

`,9))]),i("details",li,[i("summary",null,[s[303]||(s[303]=i("a",{id:"GeometryOps.tuples-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.tuples-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.tuples")],-1)),s[304]||(s[304]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[305]||(s[305]=a('
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

',6))]),i("details",pi,[i("summary",null,[s[306]||(s[306]=i("a",{id:"GeometryOps.union-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.union-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.union")],-1)),s[307]||(s[307]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[308]||(s[308]=a(`
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
+}[[4, 3], [6, 5], [7, 6], [4, 3]], nothing, nothing)], nothing, nothing)

source

`,9))]),i("details",ni,[i("summary",null,[s[300]||(s[300]=i("a",{id:"GeometryOps.tuples-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.tuples-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.tuples")],-1)),s[301]||(s[301]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[302]||(s[302]=a('
julia
tuples(obj)

Convert all points in obj to Tuples, wherever the are nested.

Returns a similar object or collection of objects using GeoInterface.jl geometries wrapping Tuple points.

Keywords

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

source

',6))]),i("details",li,[i("summary",null,[s[303]||(s[303]=i("a",{id:"GeometryOps.union-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.union-Union{Tuple{T}, Tuple{Any, Any}, Tuple{Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.union")],-1)),s[304]||(s[304]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[305]||(s[305]=a(`
julia
union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())

Return the union between two geometries as a list of geometries. Return an empty list if none are found. The type of the list will be constrained as much as possible given the input geometries. Furthermore, the user can provide a taget type as a keyword argument and a list of target geometries found in the difference will be returned. The user can also provide a float type 'T' that they would like the points of returned geometries to be. If the user is taking a intersection involving one or more multipolygons, and the multipolygon might be comprised of polygons that intersect, if fix_multipoly is set to an IntersectingPolygons correction (the default is UnionIntersectingPolygons()), then the needed multipolygons will be fixed to be valid before performing the intersection to ensure a correct answer. Only set fix_multipoly to false if you know that the multipolygons are valid, as it will avoid unneeded computation.

Calculates the union between two polygons.

Example

julia
import GeoInterface as GI, GeometryOps as GO
 
 p1 = GI.Polygon([[(0.0, 0.0), (5.0, 5.0), (10.0, 0.0), (5.0, -5.0), (0.0, 0.0)]])
 p2 = GI.Polygon([[(3.0, 0.0), (8.0, 5.0), (13.0, 0.0), (8.0, -5.0), (3.0, 0.0)]])
@@ -365,11 +359,11 @@ import{_ as h,c as l,a5 as a,j as i,a as e,G as n,B as k,o as p}from"./chunks/fr
 
 # output
 1-element Vector{Vector{Vector{Vector{Float64}}}}:
- [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source

`,6))]),i("details",hi,[i("summary",null,[s[309]||(s[309]=i("a",{id:"GeometryOps.weighted_mean-Union{Tuple{WT}, Tuple{WT, Any, Any}} where WT<:Real",href:"#GeometryOps.weighted_mean-Union{Tuple{WT}, Tuple{WT, Any, Any}} where WT<:Real"},[i("span",{class:"jlbinding"},"GeometryOps.weighted_mean")],-1)),s[310]||(s[310]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[311]||(s[311]=a('
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source

',5))]),i("details",ki,[i("summary",null,[s[312]||(s[312]=i("a",{id:"GeometryOps.within-Tuple{Any, Any}",href:"#GeometryOps.within-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[313]||(s[313]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[314]||(s[314]=a(`
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
+ [[[6.5, 3.5], [5.0, 5.0], [0.0, 0.0], [5.0, -5.0], [6.5, -3.5], [8.0, -5.0], [13.0, 0.0], [8.0, 5.0], [6.5, 3.5]]]

source

`,6))]),i("details",pi,[i("summary",null,[s[306]||(s[306]=i("a",{id:"GeometryOps.weighted_mean-Union{Tuple{WT}, Tuple{WT, Any, Any}} where WT<:Real",href:"#GeometryOps.weighted_mean-Union{Tuple{WT}, Tuple{WT, Any, Any}} where WT<:Real"},[i("span",{class:"jlbinding"},"GeometryOps.weighted_mean")],-1)),s[307]||(s[307]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[308]||(s[308]=a('
julia
weighted_mean(weight::Real, x1, x2)

Returns the weighted mean of x1 and x2, where weight is the weight of x1.

Specifically, calculates x1 * weight + x2 * (1 - weight).

Note

The idea for this method is that you can override this for custom types, like Color types, in extension modules.

source

',5))]),i("details",hi,[i("summary",null,[s[309]||(s[309]=i("a",{id:"GeometryOps.within-Tuple{Any, Any}",href:"#GeometryOps.within-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[310]||(s[310]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[311]||(s[311]=a(`
julia
within(geom1, geom2)::Bool

Return true if the first geometry is completely within the second geometry. The interiors of both geometries must intersect and the interior and boundary of the primary geometry (geom1) must not intersect the exterior of the secondary geometry (geom2).

Furthermore, within returns the exact opposite result of contains.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 
 line = GI.LineString([(1, 1), (1, 2), (1, 3), (1, 4)])
 point = (1, 2)
 GO.within(point, line)
 
 # output
-true

source

`,6))]),s[321]||(s[321]=a('
  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

',2))])}const mi=h(r,[["render",ri]]);export{ui as __pageData,mi as default}; +true

source

`,6))]),s[318]||(s[318]=a('
  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

',2))])}const ui=h(r,[["render",ki]]);export{ci as __pageData,ui as default}; diff --git a/previews/PR238/assets/app.QBoZQMQG.js b/previews/PR238/assets/app.CGG1rM39.js similarity index 95% rename from previews/PR238/assets/app.QBoZQMQG.js rename to previews/PR238/assets/app.CGG1rM39.js index 5e6536c9c..cac5720ce 100644 --- a/previews/PR238/assets/app.QBoZQMQG.js +++ b/previews/PR238/assets/app.CGG1rM39.js @@ -1 +1 @@ -import{R as p}from"./chunks/theme.Beldwsud.js";import{R as o,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,af as v,d as P,u as R,v as w,s as y,ag as C,ah as b,ai as E,a4 as S}from"./chunks/framework.Bkt_v4A4.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=v(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp}; +import{R as p}from"./chunks/theme.B7VD6roi.js";import{R as o,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,af as v,d as P,u as R,v as w,s as y,ag as C,ah as b,ai as E,a4 as S}from"./chunks/framework.Bkt_v4A4.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=v(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp}; diff --git a/previews/PR238/assets/eheshmj.3UVIT8DR.png b/previews/PR238/assets/boznahp.3UVIT8DR.png similarity index 100% rename from previews/PR238/assets/eheshmj.3UVIT8DR.png rename to previews/PR238/assets/boznahp.3UVIT8DR.png diff --git a/previews/PR238/assets/candwhz.W-r9-vls.png b/previews/PR238/assets/candwhz.W-r9-vls.png deleted file mode 100644 index 53bcbfca11ae34c8947674702f44d8d2cb5d9364..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60084 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 diff --git a/previews/PR238/assets/chunks/@localSearchIndexroot.D41mAyhC.js b/previews/PR238/assets/chunks/@localSearchIndexroot.D41mAyhC.js new file mode 100644 index 000000000..7d7f86166 --- /dev/null +++ b/previews/PR238/assets/chunks/@localSearchIndexroot.D41mAyhC.js @@ -0,0 +1 @@ +const e='{"documentCount":202,"nextId":202,"documentIds":{"0":"/GeometryOps.jl/previews/PR238/api#Full-GeometryOps-API-documentation","1":"/GeometryOps.jl/previews/PR238/api#apply-and-associated-functions","2":"/GeometryOps.jl/previews/PR238/api#General-geometry-methods","3":"/GeometryOps.jl/previews/PR238/api#OGC-methods","4":"/GeometryOps.jl/previews/PR238/api#Other-general-methods","5":"/GeometryOps.jl/previews/PR238/api#Barycentric-coordinates","6":"/GeometryOps.jl/previews/PR238/api#Other-methods","7":"/GeometryOps.jl/previews/PR238/call_notes#20th-April,-2024","8":"/GeometryOps.jl/previews/PR238/call_notes#29th-Feb,-2024","9":"/GeometryOps.jl/previews/PR238/call_notes#To-do","10":"/GeometryOps.jl/previews/PR238/call_notes#done","11":"/GeometryOps.jl/previews/PR238/experiments/accurate_accumulators#Accurate-accumulation","12":"/GeometryOps.jl/previews/PR238/experiments/predicates#predicates","13":"/GeometryOps.jl/previews/PR238/experiments/predicates#orient","14":"/GeometryOps.jl/previews/PR238/experiments/predicates#dashboard","15":"/GeometryOps.jl/previews/PR238/experiments/predicates#Testing-robust-vs-regular-predicates","16":"/GeometryOps.jl/previews/PR238/experiments/predicates#incircle","17":"/GeometryOps.jl/previews/PR238/explanations/paradigms#paradigms","18":"/GeometryOps.jl/previews/PR238/explanations/paradigms#apply","19":"/GeometryOps.jl/previews/PR238/explanations/paradigms#applyreduce","20":"/GeometryOps.jl/previews/PR238/explanations/paradigms#fix-and-prepare","21":"/GeometryOps.jl/previews/PR238/explanations/peculiarities#peculiarities","22":"/GeometryOps.jl/previews/PR238/explanations/peculiarities#What-does-apply-return-and-why?","23":"/GeometryOps.jl/previews/PR238/explanations/peculiarities#Why-do-you-want-me-to-provide-a-target-in-set-operations?","24":"/GeometryOps.jl/previews/PR238/explanations/peculiarities#_True-and-_False-(or-BoolsAsTypes)","25":"/GeometryOps.jl/previews/PR238/#what-is-geometryops-jl","26":"/GeometryOps.jl/previews/PR238/#how-to-navigate-the-docs","27":"/GeometryOps.jl/previews/PR238/introduction#introduction","28":"/GeometryOps.jl/previews/PR238/introduction#Main-concepts","29":"/GeometryOps.jl/previews/PR238/introduction#The-apply-paradigm","30":"/GeometryOps.jl/previews/PR238/introduction#What\'s-this-GeoInterface.Wrapper-thing?","31":"/GeometryOps.jl/previews/PR238/source/GeometryOps#geometryops-jl","32":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/segmentize#segmentize","33":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#Simple-overrides","34":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#Polygon-set-operations","35":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#difference","36":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#union","37":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#intersection","38":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#Symmetric-difference","39":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#DE-9IM-boolean-methods","40":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#equals","41":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#disjoint","42":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#touches","43":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#crosses","44":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#within","45":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#contains","46":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#overlaps","47":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#covers","48":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#coveredby","49":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#intersects","50":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#Convex-hull","51":"/GeometryOps.jl/previews/PR238/source/methods/angles#angles","52":"/GeometryOps.jl/previews/PR238/source/methods/angles#What-is-angles?","53":"/GeometryOps.jl/previews/PR238/source/methods/angles#implementation","54":"/GeometryOps.jl/previews/PR238/source/methods/area#Area-and-signed-area","55":"/GeometryOps.jl/previews/PR238/source/methods/area#What-is-area?-What-is-signed-area?","56":"/GeometryOps.jl/previews/PR238/source/methods/area#implementation","57":"/GeometryOps.jl/previews/PR238/source/methods/barycentric#Barycentric-coordinates","58":"/GeometryOps.jl/previews/PR238/source/methods/barycentric#example","59":"/GeometryOps.jl/previews/PR238/source/methods/barycentric#Barycentric-coordinate-API","60":"/GeometryOps.jl/previews/PR238/source/methods/buffer#buffer","61":"/GeometryOps.jl/previews/PR238/source/methods/centroid#centroid","62":"/GeometryOps.jl/previews/PR238/source/methods/centroid#What-is-the-centroid?","63":"/GeometryOps.jl/previews/PR238/source/methods/centroid#implementation","64":"/GeometryOps.jl/previews/PR238/source/methods/clipping/clipping_processor#Polygon-clipping-helpers","65":"/GeometryOps.jl/previews/PR238/source/methods/clipping/coverage#What-is-coverage?","66":"/GeometryOps.jl/previews/PR238/source/methods/clipping/coverage#implementation","67":"/GeometryOps.jl/previews/PR238/source/methods/clipping/cut#Polygon-cutting","68":"/GeometryOps.jl/previews/PR238/source/methods/clipping/cut#What-is-cut?","69":"/GeometryOps.jl/previews/PR238/source/methods/clipping/cut#implementation","70":"/GeometryOps.jl/previews/PR238/source/methods/clipping/difference#Difference-Polygon-Clipping","71":"/GeometryOps.jl/previews/PR238/source/methods/clipping/difference#Helper-functions-for-Differences-with-Greiner-and-Hormann-Polygon-Clipping","72":"/GeometryOps.jl/previews/PR238/source/methods/clipping/intersection#Geometry-Intersection","73":"/GeometryOps.jl/previews/PR238/source/methods/clipping/intersection#Helper-functions-for-Intersections-with-Greiner-and-Hormann-Polygon-Clipping","74":"/GeometryOps.jl/previews/PR238/source/methods/clipping/predicates#If-we-want-to-inject-adaptivity,-we-would-do-something-like:","75":"/GeometryOps.jl/previews/PR238/source/methods/clipping/union#Union-Polygon-Clipping","76":"/GeometryOps.jl/previews/PR238/source/methods/clipping/union#Helper-functions-for-Unions-with-Greiner-and-Hormann-Polygon-Clipping","77":"/GeometryOps.jl/previews/PR238/source/methods/distance#Distance-and-signed-distance","78":"/GeometryOps.jl/previews/PR238/source/methods/distance#What-is-distance?-What-is-signed-distance?","79":"/GeometryOps.jl/previews/PR238/source/methods/distance#implementation","80":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#Convex-hull","81":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#example","82":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#Simple-hull","83":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#Convex-hull-of-the-USA","84":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#Investigating-the-winding-order","85":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#implementation","86":"/GeometryOps.jl/previews/PR238/source/methods/equals#equals","87":"/GeometryOps.jl/previews/PR238/source/methods/equals#What-is-equals?","88":"/GeometryOps.jl/previews/PR238/source/methods/equals#implementation","89":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/contains#contains","90":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/contains#What-is-contains?","91":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/contains#implementation","92":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/covers#covers","93":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/covers#What-is-covers?","94":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/covers#implementation","95":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#coveredby","96":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#What-is-coveredby?","97":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#implementation","98":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Convert-features-to-geometries","99":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Points-coveredby-geometries","100":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Lines-coveredby-geometries","101":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Rings-covered-by-geometries","102":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Polygons-covered-by-geometries","103":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Geometries-coveredby-multi-geometry/geometry-collections","104":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Multi-geometry/geometry-collections-coveredby-geometries","105":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/crosses#Crossing-checks","106":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#disjoint","107":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#What-is-disjoint?","108":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#implementation","109":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Convert-features-to-geometries","110":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Point-disjoint-geometries","111":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Lines-disjoint-geometries","112":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Rings-disjoint-geometries","113":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Polygon-disjoint-geometries","114":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Geometries-disjoint-multi-geometry/geometry-collections","115":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Multi-geometry/geometry-collections-coveredby-geometries","116":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/geom_geom_processors#Line-curve-interaction","117":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/intersects#Intersection-checks","118":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/intersects#What-is-intersects?","119":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/intersects#implementation","120":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/overlaps#overlaps","121":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/overlaps#What-is-overlaps?","122":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/overlaps#implementation","123":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/overlaps#Convert-features-to-geometries","124":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#touches","125":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#What-is-touches?","126":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#implementation","127":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Convert-features-to-geometries","128":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Point-touches-geometries","129":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Lines-touching-geometries","130":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Rings-touch-geometries","131":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Polygons-touch-geometries","132":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Geometries-touch-multi-geometry/geometry-collections","133":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Multi-geometry/geometry-collections-cross-geometries","134":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#within","135":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#What-is-within?","136":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#implementation","137":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Convert-features-to-geometries","138":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Points-within-geometries","139":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Lines-within-geometries","140":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Rings-covered-by-geometries","141":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Polygons-within-geometries","142":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Geometries-within-multi-geometry/geometry-collections","143":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Multi-geometry/geometry-collections-within-geometries","144":"/GeometryOps.jl/previews/PR238/source/methods/orientation#orientation","145":"/GeometryOps.jl/previews/PR238/source/methods/orientation#isclockwise","146":"/GeometryOps.jl/previews/PR238/source/methods/orientation#isconcave","147":"/GeometryOps.jl/previews/PR238/source/methods/polygonize#Polygonizing-raster-data","148":"/GeometryOps.jl/previews/PR238/source/not_implemented_yet#Not-implemented-yet","149":"/GeometryOps.jl/previews/PR238/source/src/apply#apply","150":"/GeometryOps.jl/previews/PR238/source/src/apply#docstrings","151":"/GeometryOps.jl/previews/PR238/source/src/apply#functions","152":"/GeometryOps.jl/previews/PR238/source/src/apply#What-is-apply?","153":"/GeometryOps.jl/previews/PR238/source/src/apply#embedding","154":"/GeometryOps.jl/previews/PR238/source/src/apply#threading","155":"/GeometryOps.jl/previews/PR238/source/src/applyreduce#applyreduce","156":"/GeometryOps.jl/previews/PR238/source/src/keyword_docs#Keyword-docs","157":"/GeometryOps.jl/previews/PR238/source/src/other_primitives#Other-primitives-(unwrap,-flatten,-etc)","158":"/GeometryOps.jl/previews/PR238/source/src/types#types","159":"/GeometryOps.jl/previews/PR238/source/src/types#Manifold","160":"/GeometryOps.jl/previews/PR238/source/src/types#TraitTarget","161":"/GeometryOps.jl/previews/PR238/source/src/types#BoolsAsTypes","162":"/GeometryOps.jl/previews/PR238/source/transformations/correction/closed_ring#Closed-Rings","163":"/GeometryOps.jl/previews/PR238/source/transformations/correction/closed_ring#example","164":"/GeometryOps.jl/previews/PR238/source/transformations/correction/closed_ring#implementation","165":"/GeometryOps.jl/previews/PR238/source/transformations/correction/geometry_correction#Geometry-Corrections","166":"/GeometryOps.jl/previews/PR238/source/transformations/correction/geometry_correction#interface","167":"/GeometryOps.jl/previews/PR238/source/transformations/correction/geometry_correction#Available-corrections","168":"/GeometryOps.jl/previews/PR238/source/transformations/correction/intersecting_polygons#Intersecting-Polygons","169":"/GeometryOps.jl/previews/PR238/source/transformations/correction/intersecting_polygons#example","170":"/GeometryOps.jl/previews/PR238/source/transformations/correction/intersecting_polygons#implementation","171":"/GeometryOps.jl/previews/PR238/source/transformations/extent#Extent-embedding","172":"/GeometryOps.jl/previews/PR238/source/transformations/flip#Coordinate-flipping","173":"/GeometryOps.jl/previews/PR238/source/transformations/reproject#Geometry-reprojection","174":"/GeometryOps.jl/previews/PR238/source/transformations/reproject#Method-error-handling","175":"/GeometryOps.jl/previews/PR238/source/transformations/segmentize#segmentize","176":"/GeometryOps.jl/previews/PR238/source/transformations/segmentize#examples","177":"/GeometryOps.jl/previews/PR238/source/transformations/segmentize#benchmark","178":"/GeometryOps.jl/previews/PR238/source/transformations/segmentize#implementation","179":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#Geometry-simplification","180":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#examples","181":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#benchmark","182":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#Simplify-with-RadialDistance-Algorithm","183":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#Simplify-with-DouglasPeucker-Algorithm","184":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#Simplify-with-VisvalingamWhyatt-Algorithm","185":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#Shared-utils","186":"/GeometryOps.jl/previews/PR238/source/transformations/transform#Pointwise-transformation","187":"/GeometryOps.jl/previews/PR238/source/transformations/tuples#Tuple-conversion","188":"/GeometryOps.jl/previews/PR238/source/types#types","189":"/GeometryOps.jl/previews/PR238/source/types#GEOS","190":"/GeometryOps.jl/previews/PR238/source/utils#Utility-functions","191":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#Creating-Geometry","192":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#creating-geometry","193":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#plot-geometry","194":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#geom-crs","195":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#attributes","196":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#save-geometry","197":"/GeometryOps.jl/previews/PR238/tutorials/geodesic_paths#Geodesic-paths","198":"/GeometryOps.jl/previews/PR238/tutorials/spatial_joins#Spatial-joins","199":"/GeometryOps.jl/previews/PR238/tutorials/spatial_joins#Simple-example","200":"/GeometryOps.jl/previews/PR238/tutorials/spatial_joins#Real-world-example","201":"/GeometryOps.jl/previews/PR238/tutorials/spatial_joins#Enabling-custom-predicates"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,87],"1":[4,4,246],"2":[3,4,1],"3":[2,7,195],"4":[3,7,255],"5":[2,4,81],"6":[2,4,1015],"7":[3,1,55],"8":[3,1,1],"9":[2,3,107],"10":[1,3,17],"11":[2,1,74],"12":[1,1,5],"13":[1,1,128],"14":[1,2,116],"15":[5,2,72],"16":[1,1,1],"17":[1,1,53],"18":[1,1,109],"19":[1,2,35],"20":[3,1,79],"21":[1,1,1],"22":[7,1,71],"23":[13,1,101],"24":[6,1,66],"25":[5,1,72],"26":[5,1,61],"27":[1,1,72],"28":[2,1,1],"29":[3,3,50],"30":[8,3,18],"31":[2,1,146],"32":[1,1,106],"33":[2,1,23],"34":[3,2,1],"35":[1,5,20],"36":[1,5,20],"37":[1,5,20],"38":[2,5,22],"39":[4,2,1],"40":[1,6,13],"41":[1,6,13],"42":[1,6,13],"43":[1,6,13],"44":[1,6,13],"45":[1,6,13],"46":[1,6,13],"47":[1,6,13],"48":[1,6,13],"49":[1,6,13],"50":[2,2,34],"51":[1,1,3],"52":[4,1,57],"53":[1,1,268],"54":[4,1,4],"55":[5,4,100],"56":[1,4,246],"57":[2,1,65],"58":[1,2,211],"59":[3,2,414],"60":[1,1,110],"61":[1,1,6],"62":[5,1,91],"63":[1,1,199],"64":[3,1,610],"65":[4,1,70],"66":[1,1,327],"67":[2,1,3],"68":[4,2,57],"69":[1,2,200],"70":[3,1,214],"71":[10,1,190],"72":[2,1,250],"73":[10,1,480],"74":[11,1,25],"75":[3,1,236],"76":[10,1,284],"77":[4,1,4],"78":[5,4,128],"79":[1,4,260],"80":[2,1,56],"81":[1,2,1],"82":[2,3,32],"83":[5,2,40],"84":[4,2,100],"85":[1,2,166],"86":[1,1,3],"87":[4,1,68],"88":[1,1,265],"89":[1,1,3],"90":[4,1,79],"91":[1,1,79],"92":[1,1,3],"93":[4,1,67],"94":[1,1,78],"95":[1,1,3],"96":[4,1,81],"97":[1,1,128],"98":[4,1,11],"99":[3,1,56],"100":[3,1,46],"101":[4,1,48],"102":[4,1,40],"103":[5,1,40],"104":[5,1,44],"105":[2,1,149],"106":[1,1,3],"107":[4,1,68],"108":[1,1,110],"109":[4,1,10],"110":[3,1,57],"111":[3,1,58],"112":[3,1,47],"113":[3,1,33],"114":[5,1,39],"115":[5,1,44],"116":[3,1,432],"117":[2,1,3],"118":[4,2,80],"119":[1,2,76],"120":[1,1,3],"121":[4,1,82],"122":[1,1,128],"123":[4,1,217],"124":[1,1,3],"125":[4,1,70],"126":[1,1,125],"127":[4,1,11],"128":[3,1,69],"129":[3,1,52],"130":[3,1,61],"131":[3,1,40],"132":[5,1,39],"133":[5,1,42],"134":[1,1,3],"135":[4,1,72],"136":[1,1,129],"137":[4,1,11],"138":[3,1,63],"139":[3,1,53],"140":[4,1,53],"141":[3,1,38],"142":[5,1,39],"143":[5,1,42],"144":[1,1,4],"145":[1,1,21],"146":[1,1,206],"147":[3,1,511],"148":[3,1,43],"149":[1,1,114],"150":[1,1,1],"151":[1,2,152],"152":[4,1,114],"153":[2,1,36],"154":[1,1,490],"155":[1,1,291],"156":[2,1,51],"157":[6,1,217],"158":[1,1,17],"159":[1,1,221],"160":[1,1,74],"161":[1,1,98],"162":[2,1,54],"163":[1,2,87],"164":[1,2,83],"165":[2,1,41],"166":[1,2,109],"167":[2,2,106],"168":[2,1,77],"169":[1,2,70],"170":[1,2,135],"171":[2,1,71],"172":[2,1,56],"173":[2,1,132],"174":[3,2,77],"175":[1,1,76],"176":[1,1,147],"177":[1,1,268],"178":[1,1,221],"179":[2,1,44],"180":[1,2,67],"181":[1,2,391],"182":[4,1,75],"183":[4,1,186],"184":[4,1,85],"185":[2,1,149],"186":[2,1,111],"187":[2,1,58],"188":[1,1,37],"189":[1,1,147],"190":[2,1,136],"191":[2,1,60],"192":[4,2,287],"193":[13,2,280],"194":[9,2,199],"195":[7,2,63],"196":[4,2,140],"197":[2,1,52],"198":[2,1,141],"199":[2,2,137],"200":[3,2,117],"201":[3,2,68]},"averageFieldLength":[2.7277227722772293,1.7227722772277227,101.84158415841588],"storedFields":{"0":{"title":"Full GeometryOps API documentation","titles":[]},"1":{"title":"apply and associated functions","titles":["Full GeometryOps API documentation"]},"2":{"title":"General geometry methods","titles":["Full GeometryOps API documentation"]},"3":{"title":"OGC methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"4":{"title":"Other general methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"5":{"title":"Barycentric coordinates","titles":["Full GeometryOps API documentation"]},"6":{"title":"Other methods","titles":["Full GeometryOps API documentation"]},"7":{"title":"20th April, 2024","titles":[]},"8":{"title":"29th Feb, 2024","titles":[]},"9":{"title":"To do","titles":["29th Feb, 2024"]},"10":{"title":"Done","titles":["29th Feb, 2024"]},"11":{"title":"Accurate accumulation","titles":[]},"12":{"title":"Predicates","titles":[]},"13":{"title":"Orient","titles":["Predicates"]},"14":{"title":"Dashboard","titles":["Predicates","Orient"]},"15":{"title":"Testing robust vs regular predicates","titles":["Predicates","Orient"]},"16":{"title":"Incircle","titles":["Predicates"]},"17":{"title":"Paradigms","titles":[]},"18":{"title":"apply","titles":["Paradigms"]},"19":{"title":"applyreduce","titles":["Paradigms","apply"]},"20":{"title":"fix and prepare","titles":["Paradigms"]},"21":{"title":"Peculiarities","titles":[]},"22":{"title":"What does apply return and why?","titles":["Peculiarities"]},"23":{"title":"Why do you want me to provide a target in set operations?","titles":["Peculiarities"]},"24":{"title":"_True and _False (or BoolsAsTypes)","titles":["Peculiarities"]},"25":{"title":"What is GeometryOps.jl?","titles":[]},"26":{"title":"How to navigate the docs","titles":[]},"27":{"title":"Introduction","titles":[]},"28":{"title":"Main concepts","titles":["Introduction"]},"29":{"title":"The apply paradigm","titles":["Introduction","Main concepts"]},"30":{"title":"What's this GeoInterface.Wrapper thing?","titles":["Introduction","Main concepts"]},"31":{"title":"GeometryOps.jl","titles":[]},"32":{"title":"Segmentize","titles":[]},"33":{"title":"Simple overrides","titles":[]},"34":{"title":"Polygon set operations","titles":["Simple overrides"]},"35":{"title":"Difference","titles":["Simple overrides","Polygon set operations"]},"36":{"title":"Union","titles":["Simple overrides","Polygon set operations"]},"37":{"title":"Intersection","titles":["Simple overrides","Polygon set operations"]},"38":{"title":"Symmetric difference","titles":["Simple overrides","Polygon set operations"]},"39":{"title":"DE-9IM boolean methods","titles":["Simple overrides"]},"40":{"title":"Equals","titles":["Simple overrides","DE-9IM boolean methods"]},"41":{"title":"Disjoint","titles":["Simple overrides","DE-9IM boolean methods"]},"42":{"title":"Touches","titles":["Simple overrides","DE-9IM boolean methods"]},"43":{"title":"Crosses","titles":["Simple overrides","DE-9IM boolean methods"]},"44":{"title":"Within","titles":["Simple overrides","DE-9IM boolean methods"]},"45":{"title":"Contains","titles":["Simple overrides","DE-9IM boolean methods"]},"46":{"title":"Overlaps","titles":["Simple overrides","DE-9IM boolean methods"]},"47":{"title":"Covers","titles":["Simple overrides","DE-9IM boolean methods"]},"48":{"title":"CoveredBy","titles":["Simple overrides","DE-9IM boolean methods"]},"49":{"title":"Intersects","titles":["Simple overrides","DE-9IM boolean methods"]},"50":{"title":"Convex hull","titles":["Simple overrides"]},"51":{"title":"Angles","titles":[]},"52":{"title":"What is angles?","titles":["Angles"]},"53":{"title":"Implementation","titles":["Angles"]},"54":{"title":"Area and signed area","titles":[]},"55":{"title":"What is area? What is signed area?","titles":["Area and signed area"]},"56":{"title":"Implementation","titles":["Area and signed area"]},"57":{"title":"Barycentric coordinates","titles":[]},"58":{"title":"Example","titles":["Barycentric coordinates"]},"59":{"title":"Barycentric-coordinate API","titles":["Barycentric coordinates"]},"60":{"title":"Buffer","titles":[]},"61":{"title":"Centroid","titles":[]},"62":{"title":"What is the centroid?","titles":["Centroid"]},"63":{"title":"Implementation","titles":["Centroid"]},"64":{"title":"Polygon clipping helpers","titles":[]},"65":{"title":"What is coverage?","titles":[]},"66":{"title":"Implementation","titles":[]},"67":{"title":"Polygon cutting","titles":[]},"68":{"title":"What is cut?","titles":["Polygon cutting"]},"69":{"title":"Implementation","titles":["Polygon cutting"]},"70":{"title":"Difference Polygon Clipping","titles":[]},"71":{"title":"Helper functions for Differences with Greiner and Hormann Polygon Clipping","titles":[]},"72":{"title":"Geometry Intersection","titles":[]},"73":{"title":"Helper functions for Intersections with Greiner and Hormann Polygon Clipping","titles":[]},"74":{"title":"If we want to inject adaptivity, we would do something like:","titles":[]},"75":{"title":"Union Polygon Clipping","titles":[]},"76":{"title":"Helper functions for Unions with Greiner and Hormann Polygon Clipping","titles":[]},"77":{"title":"Distance and signed distance","titles":[]},"78":{"title":"What is distance? What is signed distance?","titles":["Distance and signed distance"]},"79":{"title":"Implementation","titles":["Distance and signed distance"]},"80":{"title":"Convex hull","titles":[]},"81":{"title":"Example","titles":["Convex hull"]},"82":{"title":"Simple hull","titles":["Convex hull","Example"]},"83":{"title":"Convex hull of the USA","titles":["Convex hull"]},"84":{"title":"Investigating the winding order","titles":["Convex hull"]},"85":{"title":"Implementation","titles":["Convex hull"]},"86":{"title":"Equals","titles":[]},"87":{"title":"What is equals?","titles":["Equals"]},"88":{"title":"Implementation","titles":["Equals"]},"89":{"title":"Contains","titles":[]},"90":{"title":"What is contains?","titles":["Contains"]},"91":{"title":"Implementation","titles":["Contains"]},"92":{"title":"Covers","titles":[]},"93":{"title":"What is covers?","titles":["Covers"]},"94":{"title":"Implementation","titles":["Covers"]},"95":{"title":"CoveredBy","titles":[]},"96":{"title":"What is coveredby?","titles":["CoveredBy"]},"97":{"title":"Implementation","titles":["CoveredBy"]},"98":{"title":"Convert features to geometries","titles":[]},"99":{"title":"Points coveredby geometries","titles":[]},"100":{"title":"Lines coveredby geometries","titles":[]},"101":{"title":"Rings covered by geometries","titles":[]},"102":{"title":"Polygons covered by geometries","titles":[]},"103":{"title":"Geometries coveredby multi-geometry/geometry collections","titles":[]},"104":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"105":{"title":"Crossing checks","titles":[]},"106":{"title":"Disjoint","titles":[]},"107":{"title":"What is disjoint?","titles":["Disjoint"]},"108":{"title":"Implementation","titles":["Disjoint"]},"109":{"title":"Convert features to geometries","titles":[]},"110":{"title":"Point disjoint geometries","titles":[]},"111":{"title":"Lines disjoint geometries","titles":[]},"112":{"title":"Rings disjoint geometries","titles":[]},"113":{"title":"Polygon disjoint geometries","titles":[]},"114":{"title":"Geometries disjoint multi-geometry/geometry collections","titles":[]},"115":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"116":{"title":"Line-curve interaction","titles":[]},"117":{"title":"Intersection checks","titles":[]},"118":{"title":"What is intersects?","titles":["Intersection checks"]},"119":{"title":"Implementation","titles":["Intersection checks"]},"120":{"title":"Overlaps","titles":[]},"121":{"title":"What is overlaps?","titles":["Overlaps"]},"122":{"title":"Implementation","titles":["Overlaps"]},"123":{"title":"Convert features to geometries","titles":[]},"124":{"title":"Touches","titles":[]},"125":{"title":"What is touches?","titles":["Touches"]},"126":{"title":"Implementation","titles":["Touches"]},"127":{"title":"Convert features to geometries","titles":[]},"128":{"title":"Point touches geometries","titles":[]},"129":{"title":"Lines touching geometries","titles":[]},"130":{"title":"Rings touch geometries","titles":[]},"131":{"title":"Polygons touch geometries","titles":[]},"132":{"title":"Geometries touch multi-geometry/geometry collections","titles":[]},"133":{"title":"Multi-geometry/geometry collections cross geometries","titles":[]},"134":{"title":"Within","titles":[]},"135":{"title":"What is within?","titles":["Within"]},"136":{"title":"Implementation","titles":["Within"]},"137":{"title":"Convert features to geometries","titles":[]},"138":{"title":"Points within geometries","titles":[]},"139":{"title":"Lines within geometries","titles":[]},"140":{"title":"Rings covered by geometries","titles":[]},"141":{"title":"Polygons within geometries","titles":[]},"142":{"title":"Geometries within multi-geometry/geometry collections","titles":[]},"143":{"title":"Multi-geometry/geometry collections within geometries","titles":[]},"144":{"title":"Orientation","titles":[]},"145":{"title":"isclockwise","titles":["Orientation"]},"146":{"title":"isconcave","titles":["Orientation"]},"147":{"title":"Polygonizing raster data","titles":[]},"148":{"title":"Not implemented yet","titles":[]},"149":{"title":"apply","titles":[]},"150":{"title":"Docstrings","titles":["apply"]},"151":{"title":"Functions","titles":["apply","Docstrings"]},"152":{"title":"What is apply?","titles":["apply"]},"153":{"title":"Embedding:","titles":["apply"]},"154":{"title":"Threading","titles":["apply"]},"155":{"title":"applyreduce","titles":[]},"156":{"title":"Keyword docs","titles":[]},"157":{"title":"Other primitives (unwrap, flatten, etc)","titles":[]},"158":{"title":"Types","titles":[]},"159":{"title":"Manifold","titles":["Types"]},"160":{"title":"TraitTarget","titles":["Types"]},"161":{"title":"BoolsAsTypes","titles":["Types"]},"162":{"title":"Closed Rings","titles":[]},"163":{"title":"Example","titles":["Closed Rings"]},"164":{"title":"Implementation","titles":["Closed Rings"]},"165":{"title":"Geometry Corrections","titles":[]},"166":{"title":"Interface","titles":["Geometry Corrections"]},"167":{"title":"Available corrections","titles":["Geometry Corrections"]},"168":{"title":"Intersecting Polygons","titles":[]},"169":{"title":"Example","titles":["Intersecting Polygons"]},"170":{"title":"Implementation","titles":["Intersecting Polygons"]},"171":{"title":"Extent embedding","titles":[]},"172":{"title":"Coordinate flipping","titles":[]},"173":{"title":"Geometry reprojection","titles":[]},"174":{"title":"Method error handling","titles":["Geometry reprojection"]},"175":{"title":"Segmentize","titles":[]},"176":{"title":"Examples","titles":["Segmentize"]},"177":{"title":"Benchmark","titles":["Segmentize"]},"178":{"title":"Implementation","titles":["Segmentize"]},"179":{"title":"Geometry simplification","titles":[]},"180":{"title":"Examples","titles":["Geometry simplification"]},"181":{"title":"Benchmark","titles":["Geometry simplification"]},"182":{"title":"Simplify with RadialDistance Algorithm","titles":[]},"183":{"title":"Simplify with DouglasPeucker Algorithm","titles":[]},"184":{"title":"Simplify with VisvalingamWhyatt Algorithm","titles":[]},"185":{"title":"Shared utils","titles":[]},"186":{"title":"Pointwise transformation","titles":[]},"187":{"title":"Tuple conversion","titles":[]},"188":{"title":"Types","titles":[]},"189":{"title":"GEOS","titles":["Types"]},"190":{"title":"Utility functions","titles":[]},"191":{"title":"Creating Geometry","titles":[]},"192":{"title":"Creating and plotting geometries","titles":["Creating Geometry"]},"193":{"title":"Plot geometries on a map using GeoMakie and coordinate reference system (CRS)","titles":["Creating Geometry"]},"194":{"title":"Create geospatial geometries with embedded coordinate reference system information","titles":["Creating Geometry"]},"195":{"title":"Creating a table with attributes and geometry","titles":["Creating Geometry"]},"196":{"title":"Saving your geospatial data","titles":["Creating Geometry"]},"197":{"title":"Geodesic paths","titles":[]},"198":{"title":"Spatial joins","titles":[]},"199":{"title":"Simple example","titles":["Spatial joins"]},"200":{"title":"Real-world example","titles":["Spatial joins"]},"201":{"title":"Enabling custom predicates","titles":["Spatial joins"]}},"dirtCount":0,"index":[["⋮",{"2":{"193":1}}],["θ",{"2":{"192":7,"193":3,"194":5}}],["☁",{"2":{"192":1}}],["✈",{"2":{"192":1}}],["÷",{"2":{"154":1,"155":1}}],["ϵ",{"2":{"73":5}}],["∘",{"2":{"73":1,"123":1,"147":2,"166":1,"181":2,"201":2}}],["⊻",{"2":{"64":1,"71":2}}],["≥",{"2":{"64":1,"116":2,"170":1,"183":1}}],["α≈1",{"2":{"73":1}}],["α≈0",{"2":{"73":1}}],["α2",{"2":{"64":4,"73":2}}],["α",{"2":{"64":3,"73":28,"116":7}}],["α1",{"2":{"64":4,"73":2}}],["β2",{"2":{"64":4,"73":2}}],["β",{"2":{"64":4,"73":28,"116":7}}],["β1",{"2":{"64":4,"73":2}}],["≤",{"2":{"64":5,"66":14,"116":6,"183":1,"185":1,"190":4}}],["^",{"2":{"193":1}}],["^3",{"2":{"193":1}}],["^n",{"2":{"146":1}}],["^2",{"2":{"63":2,"79":2}}],["^hormannpresentation",{"2":{"59":2}}],["∑λ",{"2":{"59":2}}],["∑i=2n",{"2":{"6":1}}],["`$",{"2":{"189":1}}],["`equatorial",{"2":{"177":2}}],["`extents",{"2":{"171":1}}],["`inf`",{"2":{"173":1}}],["`inv",{"2":{"159":1}}],["`intersects`",{"2":{"119":1}}],["`intersectingpolygons`",{"2":{"70":1,"72":1,"75":1}}],["`90`",{"2":{"159":1}}],["`libgeos",{"2":{"189":1}}],["`linearring`",{"2":{"178":1}}],["`linestring`",{"2":{"178":1}}],["`linestringtrait`",{"2":{"166":1}}],["`line2`",{"2":{"146":1}}],["`line1`",{"2":{"146":1}}],["`line",{"2":{"72":4}}],["`lat`",{"2":{"159":1}}],["`lon`",{"2":{"159":1}}],["`z`",{"2":{"159":1}}],["``1",{"2":{"159":1}}],["``a``",{"2":{"159":1}}],["``r",{"2":{"159":1}}],["```jldoctest",{"2":{"69":1,"70":1,"72":1,"73":1,"75":1,"88":1,"91":1,"94":1,"97":1,"108":1,"119":1,"122":1,"126":1,"136":1,"146":1,"181":1}}],["```julia",{"2":{"6":2,"59":1,"105":1,"146":1,"154":1,"160":1,"186":2}}],["```math",{"2":{"59":1,"146":1}}],["```",{"2":{"11":1,"59":3,"69":1,"70":1,"72":1,"75":1,"88":1,"91":1,"94":1,"97":1,"108":1,"119":1,"122":1,"126":1,"136":1,"146":3,"147":11,"154":1,"181":1,"186":2,"190":1}}],["`6371008",{"2":{"159":1}}],["`prefilter",{"2":{"181":1}}],["`proj",{"2":{"173":1,"177":2}}],["`planar`",{"2":{"159":1,"178":2}}],["`polgontrait`",{"2":{"154":1}}],["`polygontrait`",{"2":{"154":1,"166":1}}],["`polygonize`",{"2":{"147":2}}],["`polygon`",{"2":{"59":3,"178":1}}],["`polys`",{"2":{"71":1}}],["`poly",{"2":{"71":3,"73":1,"76":1}}],["`pointrait`",{"2":{"181":1}}],["`pointtrait`",{"2":{"157":3,"166":1}}],["`point",{"2":{"116":3}}],["`point`",{"2":{"59":4,"79":1}}],["`point2f`",{"2":{"58":1}}],["`obj`",{"2":{"157":1,"186":1,"187":1}}],["`op`",{"2":{"155":2}}],["`calc",{"2":{"156":1}}],["`crs`",{"2":{"156":1}}],["`components`",{"2":{"157":1}}],["`collect`",{"2":{"155":1}}],["`coveredby`",{"2":{"94":1,"97":1}}],["`covers`",{"2":{"94":1,"97":1}}],["`contains`",{"2":{"91":1,"136":1}}],["`convex",{"2":{"85":2}}],["`+`",{"2":{"155":1}}],["`alg",{"2":{"189":1}}],["`alg`",{"2":{"185":1}}],["`always",{"2":{"173":1}}],["`application",{"2":{"166":1}}],["`apply`",{"2":{"154":1,"160":1}}],["`abstractgeometrytrait`",{"2":{"157":1}}],["`abstractarray`",{"2":{"157":1}}],["`abstractmatrix`",{"2":{"147":1}}],["`union",{"2":{"147":2}}],["`unionintersectingpolygons`",{"2":{"170":1}}],["`unionintersectingpolygons",{"2":{"70":1,"71":2,"72":1,"73":2,"75":1,"76":2}}],["`ys`",{"2":{"147":1}}],["`flattening`",{"2":{"177":1}}],["`flattening",{"2":{"177":1}}],["`flatten`",{"2":{"157":1}}],["`f",{"2":{"154":1}}],["`featurecollectiontrait`",{"2":{"154":1,"157":1}}],["`featurecollection`",{"2":{"147":2}}],["`featuretrait`",{"2":{"154":2,"157":1}}],["`feature`s",{"2":{"147":1}}],["`f`",{"2":{"147":5,"154":3,"155":1,"157":2,"186":2,"189":1}}],["`false`",{"2":{"146":1,"147":1,"156":4,"161":1,"173":1}}],["`fix",{"2":{"70":2,"71":2,"72":2,"73":2,"75":2,"76":2}}],["`douglaspeucker`",{"2":{"181":1}}],["`d`",{"2":{"173":1}}],["`difference`",{"2":{"170":1}}],["`disjoint`",{"2":{"119":1}}],["`delaunaytriangulation",{"2":{"85":1}}],["`within`",{"2":{"91":1,"136":1}}],["`weight`",{"2":{"59":1}}],["`geos`",{"2":{"189":3}}],["`geodesicsegments`",{"2":{"176":1}}],["`geodesic`",{"2":{"159":1,"177":2,"178":2}}],["`geointerface`",{"2":{"166":1}}],["`geointerface",{"2":{"154":1,"157":2,"173":2}}],["`geometrycollection`",{"2":{"178":1}}],["`geometrycorrection`",{"2":{"164":1,"166":1,"170":2}}],["`geometry`",{"2":{"154":1,"173":2}}],["`geometrybasics",{"2":{"59":3}}],["`geometries`",{"2":{"85":1}}],["`geom`",{"2":{"79":3,"157":1,"178":1}}],["`gi",{"2":{"85":1,"147":1}}],["`g1`",{"2":{"79":1}}],["`tuple",{"2":{"190":1}}],["`tuple`s",{"2":{"187":1}}],["`tuple`",{"2":{"147":1,"187":1}}],["`time`",{"2":{"173":1}}],["`transform`",{"2":{"173":1}}],["`true`",{"2":{"97":1,"105":1,"108":2,"126":1,"136":1,"146":2,"147":1,"156":2,"161":1,"173":1}}],["`threaded`",{"2":{"156":1}}],["`threaded==true`",{"2":{"155":1}}],["`tol`",{"2":{"181":2,"182":3,"183":2,"184":3,"185":4}}],["`to",{"2":{"73":1}}],["`target",{"2":{"173":3}}],["`target`",{"2":{"72":1,"154":2,"155":1,"157":1,"160":1}}],["`tables",{"2":{"154":1}}],["`taget`",{"2":{"70":1,"75":1}}],["`method",{"2":{"178":1}}],["`method`",{"2":{"59":3}}],["`max",{"2":{"177":4,"178":3,"189":1}}],["`map`",{"2":{"154":1}}],["`makie",{"2":{"147":1}}],["`multipointtrait`",{"2":{"154":1,"181":1}}],["`multipolygontrait`",{"2":{"154":1}}],["`multipolygon`",{"2":{"147":3,"178":1}}],["`multipolygon",{"2":{"71":3,"73":3,"76":2}}],["`multipoly",{"2":{"71":7,"73":3,"76":3}}],["`minpoints`",{"2":{"147":2}}],["`number`",{"2":{"181":2,"185":3}}],["`namedtuple`",{"2":{"154":1}}],["`nothing`",{"2":{"64":1,"156":1}}],["`next",{"2":{"64":1}}],["`boolsastypes`",{"2":{"161":1}}],["`bool`",{"2":{"147":2}}],["`buffer`",{"2":{"60":1}}],["`barycentric",{"2":{"59":3}}],["`radialdistance`",{"2":{"181":1}}],["`ratio`",{"2":{"181":2,"185":3}}],["`reproject`",{"2":{"174":1}}],["`rebuild`",{"2":{"157":1}}],["`r`",{"2":{"59":1}}],["`rᵢ`",{"2":{"59":1}}],["`svector`",{"2":{"186":3}}],["`simplifyalg`",{"2":{"181":2}}],["`simplify",{"2":{"181":1}}],["`simplify`",{"2":{"181":2}}],["`segmentize`",{"2":{"189":1}}],["`segmentize",{"2":{"178":2}}],["`semimajor",{"2":{"159":1}}],["`source",{"2":{"173":3}}],["`spherical`",{"2":{"159":1,"178":1}}],["`s`",{"2":{"59":1}}],["`sᵢ`",{"2":{"59":2}}],["`s2`",{"2":{"59":1}}],["`s1`",{"2":{"59":1}}],["`hcat`",{"2":{"59":1}}],["`x`",{"2":{"154":1,"161":1}}],["`xs`",{"2":{"147":1}}],["`x1",{"2":{"59":1}}],["`x1`",{"2":{"59":2}}],["`x2`",{"2":{"59":1}}],["`visvalingamwhyatt`",{"2":{"181":1}}],["`vector",{"2":{"173":1}}],["`vector`",{"2":{"147":1,"154":1}}],["`vᵢ`",{"2":{"59":1}}],["`v`",{"2":{"59":1}}],["`values`",{"2":{"59":1,"147":1}}],["`λs`",{"2":{"59":2}}],["`",{"2":{"59":2,"70":1,"71":2,"72":1,"73":3,"75":1,"76":2,"147":3,"154":2,"155":1,"159":1,"166":2,"173":2,"178":1,"181":3,"189":2,"190":1}}],["λ₁",{"2":{"59":2}}],["λn",{"2":{"57":1}}],["λ3",{"2":{"57":1}}],["λ2",{"2":{"57":2}}],["λ1",{"2":{"57":2}}],["λs",{"2":{"5":3,"6":4,"59":27}}],["π",{"2":{"53":1,"181":1}}],["δbay",{"2":{"73":3}}],["δbax",{"2":{"73":3}}],["δby",{"2":{"73":5}}],["δbx",{"2":{"73":5}}],["δb",{"2":{"73":2}}],["δay",{"2":{"73":5}}],["δax",{"2":{"73":5}}],["δa",{"2":{"73":2}}],["δintrs",{"2":{"64":2}}],["δy2",{"2":{"146":2}}],["δy1",{"2":{"146":2}}],["δyl",{"2":{"123":4}}],["δy",{"2":{"53":8,"66":3,"116":7}}],["δys",{"2":{"53":1}}],["δx2",{"2":{"146":2}}],["δx1",{"2":{"146":2}}],["δxl",{"2":{"123":4}}],["δx",{"2":{"53":9,"66":3,"116":7}}],["∈",{"2":{"14":1}}],["~",{"2":{"14":3}}],["$ratio",{"2":{"185":1}}],["$rectangle",{"2":{"177":2}}],["$number",{"2":{"185":1}}],["$name",{"2":{"31":2}}],["$min",{"2":{"185":1}}],["$douglas",{"2":{"181":1,"183":1}}],["$simplify",{"2":{"181":1,"182":1,"184":1}}],["$lg",{"2":{"177":1}}],["$lin",{"2":{"177":2}}],["$geom",{"2":{"181":8}}],["$geo",{"2":{"177":1}}],["$calc",{"2":{"156":1}}],["$crs",{"2":{"156":1,"171":1}}],["$apply",{"2":{"154":1,"172":1,"173":1,"181":1}}],["$tol",{"2":{"185":1}}],["$threaded",{"2":{"156":1}}],["$t",{"2":{"88":1,"154":2,"155":2}}],["$target",{"2":{"71":1,"73":1,"76":1,"157":3}}],["$trait",{"2":{"69":1,"71":2,"73":2,"76":2}}],["$",{"2":{"13":4,"14":1,"59":4,"64":2,"147":3,"166":4,"178":4,"181":12,"189":1}}],["|=",{"2":{"116":4,"123":1}}],["||",{"2":{"53":2,"64":13,"66":8,"69":1,"72":1,"73":5,"75":1,"88":18,"105":2,"116":8,"123":1,"128":1,"147":7,"183":1,"185":3}}],["|",{"2":{"11":4,"116":1}}],["|>",{"2":{"11":8,"13":2,"157":3,"176":1,"177":1,"181":3,"200":2}}],["↩︎",{"2":{"6":1}}],["ᵢᵢᵢ₊₁ᵢᵢ₊₁ᵢᵢ₊₁tᵢ=det",{"2":{"6":1}}],["⋅",{"2":{"6":1,"59":1}}],["qy",{"2":{"13":2,"14":2}}],["qx",{"2":{"13":2,"14":2}}],["q",{"2":{"13":13,"14":12,"64":4}}],["qhull",{"2":{"6":1,"85":1}}],["queue",{"2":{"183":41}}],["questions",{"2":{"73":1}}],["quite",{"2":{"163":1,"200":1}}],["quickhull",{"2":{"6":1,"80":1,"85":2}}],["quick",{"2":{"4":1,"6":1,"59":1,"171":1,"180":1}}],["quality",{"2":{"6":1,"181":1}}],["quantity",{"2":{"6":1,"177":1}}],["quot",{"2":{"1":4,"6":6,"20":2,"64":8,"78":2,"79":2,"88":2,"93":4,"116":10,"123":6,"151":4,"152":2,"154":2,"155":2,"157":4,"175":6,"192":2,"199":2}}],["zone",{"2":{"193":1}}],["zoom",{"2":{"14":1}}],["zs",{"2":{"147":5}}],["zip",{"2":{"13":1,"14":1,"192":4,"193":1,"194":1}}],["zeros",{"2":{"59":1,"66":1}}],["zero",{"2":{"4":6,"6":8,"56":11,"63":3,"64":4,"66":11,"73":22,"78":1,"79":3,"146":1,"154":1,"183":4}}],["z",{"2":{"4":1,"5":1,"6":2,"59":3,"88":3,"147":3,"159":1,"172":1,"186":1,"187":1}}],["0e6",{"2":{"193":6}}],["0example",{"2":{"6":1}}],["097075198097933",{"2":{"194":1}}],["09707519809793252",{"2":{"194":2}}],["091887951911644",{"2":{"194":3}}],["0999933334666654",{"2":{"192":1}}],["09801605542096",{"2":{"192":1}}],["098016055420953",{"2":{"192":3}}],["09297443860091348",{"2":{"192":4}}],["09",{"2":{"58":1}}],["08506974233813636",{"2":{"194":2}}],["08",{"2":{"58":1}}],["062749678615475",{"2":{"194":1}}],["06274967861547665",{"2":{"194":2}}],["06592462566760626",{"2":{"192":1}}],["0650624499034016",{"2":{"192":4}}],["06",{"2":{"58":1}}],["02017324484778",{"2":{"194":1}}],["020173244847778715",{"2":{"194":2}}],["027886421973952302",{"2":{"192":4}}],["02",{"2":{"58":3}}],["04500741774392",{"2":{"194":1}}],["045007417743918",{"2":{"194":2}}],["049999166670833324",{"2":{"192":1}}],["0438052480035",{"2":{"192":1}}],["043805248003498",{"2":{"192":3}}],["04",{"2":{"58":6}}],["07518688541961",{"2":{"194":1}}],["075186885419612",{"2":{"194":2}}],["071",{"2":{"176":2,"177":2}}],["07",{"2":{"58":6,"176":6,"177":6}}],["009176636029576",{"2":{"194":1}}],["0091766360295773",{"2":{"194":2}}],["003135308800957",{"2":{"194":1}}],["0031353088009582475",{"2":{"194":2}}],["0035114210915891397",{"2":{"192":4}}],["006784125578492062",{"2":{"194":2}}],["0020133807972559925",{"2":{"194":2}}],["00839489109211",{"2":{"194":3}}],["008696",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["005465967083412071",{"2":{"192":4}}],["00111595449914",{"2":{"192":1}}],["001115954499138",{"2":{"192":3}}],["0010075412835199304",{"2":{"192":4}}],["001",{"2":{"181":1}}],["00085222666982",{"2":{"194":3}}],["000577332369005",{"2":{"194":1}}],["0005773323690041465",{"2":{"194":2}}],["000510363870095e6",{"2":{"193":2}}],["00025191811248184703",{"2":{"194":2}}],["000215611503127e6",{"2":{"193":2}}],["0007260527263e6",{"2":{"193":2}}],["000342160541625e6",{"2":{"193":2}}],["000124843834609e6",{"2":{"193":2}}],["000063948817746e6",{"2":{"193":2}}],["000026987852369e6",{"2":{"193":2}}],["000008144045314",{"2":{"194":1}}],["000007998400139e6",{"2":{"193":2}}],["000000999950001e6",{"2":{"193":2}}],["00001e6",{"2":{"193":1}}],["0004397316773170068",{"2":{"192":4}}],["000",{"2":{"181":1,"197":1}}],["00",{"2":{"58":2}}],["053798628882221644",{"2":{"194":2}}],["05877989361332",{"2":{"192":1}}],["058779893613323",{"2":{"192":3}}],["05416726609360478",{"2":{"192":4}}],["05",{"2":{"58":1}}],["052704767595",{"2":{"15":1}}],["037564867762832",{"2":{"194":1}}],["03756486776283019",{"2":{"194":2}}],["031245035570328428",{"2":{"194":2}}],["033518309870985",{"2":{"194":3}}],["03503632062070827",{"2":{"192":4}}],["03",{"2":{"58":4}}],["01458815628695",{"2":{"194":3}}],["016044338630866517",{"2":{"194":2}}],["01592650896568995",{"2":{"192":1}}],["01597247419241532",{"2":{"192":4}}],["01908693278165",{"2":{"192":1}}],["019086932781654",{"2":{"192":3}}],["01098781325325",{"2":{"192":1}}],["010987813253244",{"2":{"192":3}}],["011814947665167774",{"2":{"192":4}}],["01362848005",{"2":{"15":1}}],["01",{"2":{"14":1,"58":1,"176":1,"177":1,"192":1,"193":1,"194":1}}],["0^",{"2":{"13":2,"14":2}}],["0+2",{"2":{"13":2,"14":2}}],["0",{"2":{"3":35,"4":12,"6":190,"11":1,"13":5,"14":8,"15":32,"52":20,"53":3,"55":9,"56":4,"58":155,"59":2,"62":6,"63":6,"64":49,"65":13,"66":5,"68":22,"69":49,"70":42,"72":2,"73":21,"75":46,"76":2,"78":20,"79":2,"83":1,"87":13,"88":18,"90":16,"93":6,"94":12,"96":6,"97":6,"105":9,"107":15,"116":37,"121":13,"122":6,"123":3,"125":12,"126":11,"135":16,"146":21,"147":7,"159":1,"163":24,"169":64,"170":4,"176":16,"177":13,"178":2,"181":11,"183":7,"185":4,"190":2,"192":129,"193":2,"194":46,"199":13}}],[">=",{"2":{"59":6,"105":4,"123":1,"185":1}}],[">geometryops",{"2":{"6":2}}],[">",{"2":{"1":1,"6":6,"11":2,"13":1,"15":2,"50":1,"53":1,"59":1,"64":17,"66":3,"69":5,"70":1,"71":1,"73":2,"75":1,"76":3,"78":1,"88":1,"105":8,"116":10,"123":2,"146":4,"147":12,"157":6,"166":1,"170":3,"178":3,"181":1,"183":12,"185":3,"186":1,"190":1,"200":1}}],["914930257661865",{"2":{"194":1}}],["96875496442967",{"2":{"194":1}}],["961329",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["983955661369134",{"2":{"194":1}}],["9833",{"2":{"15":1}}],["9877550012664",{"2":{"192":1}}],["9840085315131",{"2":{"192":1}}],["98271048511609",{"2":{"192":1}}],["98661575256801",{"2":{"192":1}}],["99321587442151",{"2":{"194":1}}],["99375130197483",{"2":{"192":1}}],["997986619202745",{"2":{"194":1}}],["997750168744936",{"2":{"192":1}}],["997247091122496",{"2":{"192":1}}],["99600053330489",{"2":{"192":1}}],["991002699676024",{"2":{"192":1}}],["990022362600165",{"2":{"192":1}}],["99292997455441",{"2":{"192":1}}],["99533829767195",{"2":{"192":1}}],["99865616402829",{"2":{"192":1}}],["999999967681458e6",{"2":{"193":2}}],["999997707902938e6",{"2":{"193":2}}],["999987539891298e6",{"2":{"193":2}}],["999963474314044e6",{"2":{"193":2}}],["999919535736425e6",{"2":{"193":2}}],["999974634566875",{"2":{"192":1}}],["999849768598615e6",{"2":{"193":2}}],["999748081887518",{"2":{"194":1}}],["999748243174828e6",{"2":{"193":2}}],["999750002083324",{"2":{"192":1}}],["999609061508909e6",{"2":{"193":2}}],["999426363321033e6",{"2":{"193":2}}],["999194331880103e6",{"2":{"193":2}}],["99900003333289",{"2":{"192":1}}],["999565375483215",{"2":{"192":1}}],["97976366505997",{"2":{"192":1}}],["9783069507679",{"2":{"192":1}}],["97",{"2":{"58":1}}],["946201371117777",{"2":{"194":1}}],["94",{"2":{"58":1}}],["92",{"2":{"58":1}}],["9im",{"0":{"39":1},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"116":2,"198":1}}],["95770326033",{"2":{"15":1}}],["95",{"2":{"13":1,"14":1,"197":1}}],["900",{"2":{"177":1}}],["90063612163",{"2":{"11":2}}],["90`",{"2":{"159":1}}],["90",{"2":{"52":9,"58":1}}],["909318372607",{"2":{"11":3}}],["9",{"2":{"1":1,"6":1,"116":2,"146":12,"176":1,"186":1}}],["897070",{"2":{"197":1}}],["873633668827033",{"2":{"194":1}}],["8135804051007",{"2":{"192":1}}],["813580405100698",{"2":{"192":3}}],["88",{"2":{"58":1}}],["86641841658641",{"2":{"192":1}}],["866418416586406",{"2":{"192":3}}],["86",{"2":{"58":1}}],["868447876892",{"2":{"15":2}}],["84",{"2":{"58":1}}],["821068835162155",{"2":{"194":1}}],["82",{"2":{"58":1}}],["800",{"2":{"58":1}}],["80000",{"2":{"15":5}}],["80",{"2":{"58":1}}],["80869813739",{"2":{"15":2}}],["856614689791036e",{"2":{"15":2}}],["83572303404496",{"2":{"6":2,"72":1,"73":1}}],["8",{"2":{"1":3,"6":9,"13":1,"14":1,"70":2,"75":4,"116":1,"147":3,"159":2,"176":1,"186":3,"194":2}}],["karnataka",{"2":{"200":1}}],["kbn",{"2":{"11":2}}],["kinds",{"2":{"23":1}}],["kind",{"2":{"9":1,"147":1,"198":1}}],["k",{"2":{"6":1,"14":6,"59":1,"64":5,"116":5,"192":5,"194":5}}],["kernel",{"2":{"178":4}}],["keepat",{"2":{"75":1,"170":2}}],["keep",{"2":{"64":3,"147":1,"170":14,"176":1,"199":1}}],["keeping",{"2":{"6":1,"154":1,"172":1}}],["keys",{"2":{"147":4,"154":1}}],["key",{"2":{"6":1,"147":4,"154":2,"189":5}}],["keyword",{"0":{"156":1},"2":{"6":8,"23":1,"31":3,"70":1,"72":1,"75":1,"154":1,"156":7,"171":2,"177":2,"189":4,"193":1,"194":1}}],["keywords",{"2":{"1":2,"4":1,"6":10,"31":1,"116":2,"147":1,"154":1,"156":1,"171":1,"172":2,"173":3,"181":8,"182":1,"183":1,"184":1,"185":1,"187":2}}],["known",{"2":{"66":2}}],["know",{"2":{"6":3,"53":2,"64":1,"66":1,"70":1,"72":1,"73":2,"75":1,"76":1,"154":1,"199":1}}],["kwargs",{"2":{"32":2,"60":3,"66":1,"69":1,"70":3,"71":3,"72":4,"73":5,"75":3,"76":5,"166":2,"174":1,"177":1}}],["kwdef",{"2":{"31":1,"64":1,"159":2,"177":1,"182":1,"183":1,"184":1}}],["kw",{"2":{"1":1,"6":10,"116":10,"147":20,"151":1,"154":18,"155":3,"157":2,"172":3,"181":15,"184":1,"186":3,"187":3,"189":6}}],["json",{"2":{"196":3}}],["jstep",{"2":{"88":3}}],["jstart",{"2":{"88":7}}],["jrnmz",{"2":{"193":1}}],["joined",{"2":{"199":4}}],["joins",{"0":{"198":1},"1":{"199":1,"200":1,"201":1},"2":{"198":3}}],["joinpath",{"2":{"181":2}}],["join",{"2":{"154":1,"155":1,"198":4,"199":5,"201":1}}],["joining",{"2":{"6":2,"181":1,"198":1}}],["jpn",{"2":{"200":2}}],["jp",{"2":{"88":2}}],["jhole",{"2":{"88":2}}],["jh",{"2":{"76":5}}],["j+1",{"2":{"64":1,"147":1,"185":1}}],["j",{"2":{"64":24,"88":8,"105":9,"116":12,"146":2,"147":8,"185":2}}],["jet",{"2":{"58":1}}],["just",{"2":{"4":1,"6":1,"32":1,"63":1,"64":2,"73":4,"76":1,"79":2,"84":1,"147":1,"152":1,"154":2,"155":1,"158":1,"177":1,"178":1,"198":1}}],["julialand",{"2":{"193":2}}],["julialines",{"2":{"55":1}}],["julialinearsegments",{"2":{"6":1}}],["juliahole",{"2":{"192":1}}],["juliaplot",{"2":{"193":2}}],["juliap1",{"2":{"192":1}}],["juliapoly",{"2":{"193":1}}],["juliapolygon3",{"2":{"193":1}}],["juliapolygon1",{"2":{"192":1}}],["juliapolygonize",{"2":{"6":1}}],["juliapolygon",{"2":{"6":1}}],["juliapoints",{"2":{"199":1}}],["juliapoint",{"2":{"192":1}}],["juliaxoffset",{"2":{"192":3,"194":1}}],["juliax",{"2":{"192":2}}],["juliaxrange",{"2":{"78":1}}],["julia$apply",{"2":{"187":1}}],["julia$threaded",{"2":{"171":1}}],["julia6",{"2":{"181":1}}],["julia```jldoctest",{"2":{"190":1}}],["julia```julia",{"2":{"147":1}}],["julia```",{"2":{"105":1,"160":1}}],["julia1",{"2":{"70":1,"72":1,"73":1,"75":1}}],["julia2",{"2":{"69":1}}],["juliabase",{"2":{"59":1,"79":4,"154":1,"189":1}}],["juliabarycentric",{"2":{"5":3,"6":3}}],["juliafig",{"2":{"192":1,"193":1}}],["juliaflexijoins",{"2":{"201":1}}],["juliaflatten",{"2":{"157":1}}],["juliaflipped",{"2":{"149":1}}],["juliaflip",{"2":{"6":1}}],["juliafalse",{"2":{"146":1}}],["juliafunction",{"2":{"32":1,"35":1,"36":1,"37":1,"38":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"53":2,"59":3,"60":2,"63":1,"64":11,"66":2,"69":1,"71":1,"73":2,"76":1,"79":8,"85":1,"116":6,"123":3,"128":1,"148":1,"155":2,"157":4,"174":1,"177":1,"178":1,"185":2}}],["juliafor",{"2":{"31":1,"154":1,"155":1}}],["juliagi",{"2":{"11":2}}],["juliago",{"2":{"11":1,"52":1,"55":1,"65":1,"87":1,"90":1,"93":1,"96":1,"107":1,"118":1,"121":1,"125":1,"135":1,"198":1}}],["juliageopoly1",{"2":{"194":1}}],["juliageointerface",{"2":{"190":1}}],["juliageometry",{"2":{"85":1}}],["juliageo",{"2":{"6":2,"159":1}}],["juliageodesicsegments",{"2":{"6":1}}],["juliageos",{"2":{"6":1}}],["juliaweighted",{"2":{"6":1}}],["juliawithin",{"2":{"3":1,"6":1}}],["juliaunwrap",{"2":{"157":7}}],["juliaunion",{"2":{"6":1}}],["juliaunionintersectingpolygons",{"2":{"6":1,"167":1}}],["juliausing",{"2":{"6":1,"13":1,"14":1,"58":1,"176":2,"177":1,"180":1,"181":1,"195":1,"198":1}}],["juliascatter",{"2":{"199":1}}],["juliasource",{"2":{"193":2}}],["juliasimplify",{"2":{"6":1,"181":3}}],["juliasigned",{"2":{"4":2,"6":2}}],["juliasegmentize",{"2":{"6":1,"178":1}}],["julias1",{"2":{"6":1}}],["juliavisvalingamwhyatt",{"2":{"6":1}}],["juliaring3",{"2":{"193":1}}],["juliaring1",{"2":{"192":1}}],["juliar",{"2":{"192":2,"193":1,"194":1}}],["juliarebuild",{"2":{"157":1}}],["juliareconstruct",{"2":{"157":1}}],["juliareproject",{"2":{"1":1}}],["juliaradialdistance",{"2":{"6":1}}],["juliamy",{"2":{"201":1}}],["juliamultipoly",{"2":{"181":1}}],["juliamodule",{"2":{"31":1}}],["juliamonotonechainmethod",{"2":{"6":1}}],["juliameanvalue",{"2":{"6":1}}],["juliadf",{"2":{"195":1}}],["juliadestination",{"2":{"193":1}}],["juliadouglaspeucker",{"2":{"6":1}}],["juliadifference",{"2":{"6":1}}],["juliadiffintersectingpolygons",{"2":{"6":1,"167":1}}],["juliadistance",{"2":{"4":1,"6":1}}],["juliadisjoint",{"2":{"3":1,"6":1}}],["juliaexport",{"2":{"51":1,"54":1,"57":1,"61":1,"67":1,"70":1,"72":1,"75":1,"77":1,"86":1,"89":1,"92":1,"95":1,"106":1,"117":1,"120":1,"124":1,"134":1,"144":1,"147":1,"149":1,"155":1,"159":1,"162":1,"165":1,"168":1,"173":1,"175":1,"181":1,"188":1}}],["juliaend",{"2":{"79":1}}],["juliaenforce",{"2":{"6":1}}],["juliaenum",{"2":{"6":2}}],["juliaembed",{"2":{"4":1,"6":1}}],["juliaequals",{"2":{"4":15,"6":15,"64":1}}],["juliaaccuratearithmetic",{"2":{"11":2}}],["juliaabstract",{"2":{"6":3,"166":1,"167":1,"177":1}}],["juliaangles",{"2":{"4":1,"6":1}}],["juliaarea",{"2":{"4":1,"6":1}}],["juliaapplyreduce",{"2":{"1":1,"151":1}}],["juliaapply",{"2":{"1":1,"18":1,"151":1}}],["juliacent",{"2":{"62":1}}],["juliacentroid",{"2":{"4":1,"6":3}}],["juliacut",{"2":{"6":1}}],["juliaclosedring",{"2":{"6":1,"167":1}}],["juliaconst",{"2":{"53":1,"56":1,"59":1,"64":1,"66":2,"79":1,"97":1,"108":1,"122":1,"126":1,"136":1,"156":1}}],["juliaconvex",{"2":{"6":1,"85":1}}],["juliacontains",{"2":{"3":1,"6":1}}],["juliacoverage",{"2":{"6":1}}],["juliacovers",{"2":{"3":1,"6":1}}],["juliacoveredby",{"2":{"3":1,"6":1}}],["juliatraittarget",{"2":{"160":1}}],["juliatransform",{"2":{"1":1,"6":1}}],["juliatrue",{"2":{"88":1,"91":1,"94":1,"97":1,"108":1,"119":1,"122":1,"126":1,"136":1,"146":1}}],["juliatuples",{"2":{"6":1}}],["juliat",{"2":{"6":1}}],["juliatouches",{"2":{"3":1,"6":1}}],["juliaoverlaps",{"2":{"3":7,"6":7,"123":1}}],["juliainnerjoin",{"2":{"200":1}}],["juliaintersection",{"2":{"6":2}}],["juliaintersects",{"2":{"3":1}}],["juliaisconcave",{"2":{"6":1}}],["juliaisclockwise",{"2":{"6":1}}],["juliaimport",{"2":{"1":1,"3":9,"4":1,"6":17,"11":1,"32":1,"52":1,"55":1,"62":1,"65":1,"68":1,"78":1,"82":1,"83":1,"84":1,"87":1,"90":1,"93":1,"96":1,"107":1,"118":1,"121":1,"125":1,"135":1,"151":1,"163":2,"169":2,"176":1,"196":4,"197":1,"199":1,"200":1}}],["julia",{"2":{"3":1,"6":5,"9":1,"15":1,"25":1,"27":1,"31":1,"32":2,"53":4,"56":10,"59":8,"63":19,"64":60,"66":18,"69":10,"70":6,"71":1,"72":5,"73":29,"75":6,"76":4,"78":1,"79":4,"80":1,"85":5,"88":15,"91":1,"94":1,"98":1,"99":5,"100":1,"101":1,"102":2,"103":1,"104":1,"105":3,"109":1,"110":3,"111":1,"112":1,"113":1,"114":1,"115":1,"116":50,"119":1,"123":6,"127":1,"128":3,"129":1,"130":1,"131":1,"132":1,"133":1,"137":1,"138":3,"139":1,"140":1,"141":2,"142":1,"143":1,"146":9,"147":40,"148":2,"154":44,"155":18,"157":11,"160":1,"161":1,"164":5,"166":1,"170":3,"171":1,"172":1,"173":1,"177":1,"178":2,"181":1,"182":2,"183":15,"184":3,"186":1,"187":1,"188":1,"189":4,"190":1,"191":2,"193":2,"196":2,"199":1}}],["julia>",{"2":{"1":5,"6":7,"146":3,"186":7}}],["juliajulia>",{"2":{"1":2,"6":3}}],["jl`",{"2":{"85":1,"173":1,"189":1}}],["jlmethod",{"2":{"6":2}}],["jlobjecttype",{"2":{"6":2}}],["jlbinding",{"2":{"6":2}}],["jldocstring",{"2":{"6":2}}],["jldoctest",{"2":{"6":1}}],["jl",{"0":{"25":1,"31":1},"2":{"1":10,"4":1,"6":15,"10":2,"11":1,"22":2,"25":2,"27":2,"31":42,"32":1,"50":1,"53":1,"56":1,"59":1,"60":3,"63":1,"64":1,"66":1,"69":1,"71":1,"73":1,"74":1,"76":1,"79":1,"80":3,"85":6,"88":1,"91":1,"94":1,"104":1,"105":1,"115":1,"116":1,"119":1,"123":1,"133":1,"143":1,"146":2,"147":1,"148":1,"154":2,"155":1,"156":1,"157":3,"159":1,"161":2,"164":1,"167":1,"170":1,"171":2,"172":1,"173":4,"174":3,"175":1,"177":3,"178":2,"181":2,"185":1,"186":6,"187":2,"189":2,"190":1,"193":1,"198":1}}],["+5000000",{"2":{"193":1}}],["+proj=natearth2",{"2":{"193":2}}],["+=",{"2":{"56":2,"59":11,"63":6,"64":17,"66":10,"69":1,"88":1,"105":1,"116":5,"146":1,"170":2,"183":4,"190":3}}],["+",{"2":{"1":1,"6":1,"13":1,"14":1,"53":4,"56":1,"59":20,"63":10,"64":15,"66":7,"69":1,"73":10,"79":3,"88":2,"105":2,"116":6,"146":6,"147":2,"151":1,"170":3,"178":2,"183":3,"184":2,"185":2,"192":6,"193":1,"194":4}}],["yticklabelsvisible",{"2":{"193":1}}],["york",{"2":{"200":1}}],["yoffset",{"2":{"192":7,"194":2}}],["your",{"0":{"196":1},"2":{"18":1,"60":1,"147":1,"149":1,"174":1,"177":1,"195":1,"196":1,"201":2}}],["you",{"0":{"23":1},"2":{"1":1,"4":1,"5":2,"6":9,"9":1,"11":1,"17":1,"18":5,"23":1,"29":2,"53":1,"56":1,"59":8,"60":1,"63":1,"70":1,"72":1,"75":1,"84":1,"85":1,"149":1,"154":1,"155":1,"160":1,"163":1,"169":1,"174":1,"176":1,"177":1,"186":1,"193":1,"195":2,"196":3,"199":2,"200":3,"201":4}}],["y=y",{"2":{"190":1}}],["yvec",{"2":{"147":4}}],["ybounds",{"2":{"147":4}}],["yhalf",{"2":{"147":2}}],["ylast",{"2":{"79":3}}],["yfirst",{"2":{"79":5}}],["y0",{"2":{"79":5}}],["yw",{"2":{"66":4}}],["ye",{"2":{"66":4}}],["yet",{"0":{"148":1},"2":{"31":1,"59":1,"69":1,"71":1,"73":1,"76":1,"88":1,"147":1,"148":1,"166":2,"200":1}}],["y2",{"2":{"63":2,"66":18,"79":7,"105":10,"116":5,"123":4,"147":5,"178":6,"190":2}}],["y1",{"2":{"63":2,"66":22,"79":7,"105":11,"116":6,"123":5,"147":5,"178":7,"190":2}}],["yind+1",{"2":{"147":1}}],["yind",{"2":{"147":2}}],["yinterior",{"2":{"63":2}}],["yield",{"2":{"73":1,"177":1}}],["yi+yi−1",{"2":{"6":1}}],["ycentroid",{"2":{"63":13}}],["yrange",{"2":{"58":3,"78":3}}],["yautolimits",{"2":{"58":2}}],["yp2",{"2":{"53":4}}],["ys",{"2":{"6":3,"147":30}}],["ymax",{"2":{"6":1,"65":2,"66":48}}],["ymin",{"2":{"6":1,"65":2,"66":49}}],["y",{"2":{"1":2,"4":1,"6":3,"13":9,"14":10,"53":8,"56":2,"58":8,"62":1,"63":10,"64":6,"65":1,"66":8,"71":6,"73":8,"78":2,"79":7,"88":3,"105":21,"116":16,"123":7,"146":10,"149":2,"151":1,"154":1,"172":4,"173":1,"178":2,"185":1,"186":2,"187":2,"190":7,"192":8,"193":2,"194":2,"198":1}}],["75",{"2":{"78":2,"90":1,"107":1,"135":1}}],["78",{"2":{"58":1}}],["749907",{"2":{"197":1}}],["74",{"2":{"58":1}}],["72",{"2":{"58":1}}],["726711609794",{"2":{"15":1}}],["76",{"2":{"58":1}}],["76085",{"2":{"15":1}}],["768946",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["70440582002419",{"2":{"192":1}}],["704405820024185",{"2":{"192":3}}],["704377648755",{"2":{"15":2}}],["700",{"2":{"14":1}}],["700454",{"2":{"6":1,"180":1,"181":1}}],["701141",{"2":{"6":1,"180":1,"181":1}}],["70",{"2":{"6":20,"58":1,"180":20,"181":20,"192":20}}],["738281",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["7",{"2":{"1":5,"6":4,"116":1,"151":1,"154":1,"176":4,"177":4,"186":4,"194":1}}],["65533525026046",{"2":{"192":1}}],["655335250260467",{"2":{"192":3}}],["659942",{"2":{"6":1,"180":1,"181":1}}],["6378137",{"2":{"159":1}}],["6371008",{"2":{"159":1}}],["639343",{"2":{"6":1,"180":1,"181":1}}],["6area",{"2":{"63":2}}],["66",{"2":{"58":1}}],["668869",{"2":{"6":1,"180":1,"181":1}}],["64744840486518",{"2":{"194":3}}],["64",{"2":{"58":1,"176":2,"177":2}}],["646209",{"2":{"6":1,"180":1,"181":1}}],["629",{"2":{"193":1}}],["62",{"2":{"58":1}}],["624923",{"2":{"6":1,"180":1,"181":1}}],["61366192682",{"2":{"15":1}}],["614624",{"2":{"6":1,"180":1,"181":1}}],["605000000000004",{"2":{"176":2}}],["60",{"2":{"58":1,"176":2}}],["60000",{"2":{"15":3}}],["609817",{"2":{"6":1,"180":1,"181":1}}],["603637",{"2":{"6":2,"180":2,"181":2}}],["68",{"2":{"58":1}}],["682601",{"2":{"6":1,"180":1,"181":1}}],["683975",{"2":{"6":1,"180":1,"181":1}}],["69159119078359",{"2":{"194":3}}],["694274",{"2":{"6":1,"180":1,"181":1}}],["697021",{"2":{"6":1,"180":1,"181":1}}],["6f7d2ee24cb7fcde8e5c7bc68e82dbc1382ba550",{"2":{"6":2}}],["6",{"2":{"1":12,"3":4,"6":20,"70":3,"75":3,"116":1,"122":4,"151":3,"154":3,"181":1,"186":9,"194":2}}],["51695367760999",{"2":{"194":1}}],["516953677609987",{"2":{"194":2}}],["51030066635026",{"2":{"192":4}}],["5e6",{"2":{"193":2}}],["55715336218991",{"2":{"194":1}}],["557153362189904",{"2":{"194":2}}],["55",{"2":{"192":3}}],["55494217175954",{"2":{"192":4}}],["57",{"2":{"176":4,"177":4}}],["57725",{"2":{"15":2}}],["5x",{"2":{"154":1}}],["563198",{"2":{"73":1}}],["56",{"2":{"58":1}}],["54",{"2":{"58":1,"192":19}}],["50",{"2":{"58":1,"176":4,"177":4,"192":3}}],["500000",{"2":{"193":1}}],["50000",{"2":{"15":1}}],["500",{"2":{"14":1,"193":1}}],["5d",{"2":{"25":1,"27":1,"159":1}}],["52",{"2":{"58":1,"197":1}}],["52521",{"2":{"15":1}}],["52709",{"2":{"15":2}}],["594711",{"2":{"6":1,"180":1,"181":1}}],["590591",{"2":{"6":1,"180":1,"181":1}}],["595397",{"2":{"6":1,"180":1,"181":1}}],["535",{"2":{"176":4}}],["5355",{"2":{"176":2}}],["53333",{"2":{"15":4}}],["53",{"2":{"6":10,"176":2,"190":10}}],["58",{"2":{"58":1}}],["58059",{"2":{"15":2}}],["587158",{"2":{"6":2,"180":2,"181":2}}],["58375366067548",{"2":{"6":2,"72":1,"73":1}}],["584961",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["5",{"2":{"1":29,"3":4,"4":8,"6":82,"13":1,"58":1,"68":5,"69":8,"70":16,"75":18,"78":8,"88":8,"116":1,"122":4,"147":1,"151":2,"154":2,"176":1,"177":1,"186":27,"192":32,"193":25,"201":1}}],["4983491639274692e6",{"2":{"193":2}}],["4986507085647392e6",{"2":{"193":2}}],["497205585568957e6",{"2":{"193":2}}],["4976022389592e6",{"2":{"193":2}}],["4957639801366436e6",{"2":{"193":2}}],["4940253560034204e6",{"2":{"193":2}}],["4946113281484335e6",{"2":{"193":2}}],["491990928929295e6",{"2":{"193":2}}],["4904357734399722e6",{"2":{"193":2}}],["4926709788709967e6",{"2":{"193":2}}],["4962554647802354e6",{"2":{"193":2}}],["499984780817334e6",{"2":{"193":2}}],["4997392479570867e6",{"2":{"193":2}}],["4991939151049731e6",{"2":{"193":2}}],["4994001399837343e6",{"2":{"193":2}}],["4998500087497458e6",{"2":{"193":2}}],["49",{"2":{"147":1}}],["43541888381864",{"2":{"194":3}}],["4326",{"2":{"193":2,"194":3}}],["43787",{"2":{"15":1}}],["439295815226",{"2":{"15":1}}],["434306",{"2":{"6":1,"180":1,"181":1}}],["4896621210021754e6",{"2":{"193":2}}],["489271",{"2":{"6":4,"190":4}}],["4870405593989636e6",{"2":{"193":2}}],["4879072738504685e6",{"2":{"193":2}}],["484003",{"2":{"146":4}}],["482551",{"2":{"146":4}}],["48268",{"2":{"15":1}}],["48",{"2":{"58":1}}],["48001",{"2":{"15":1}}],["45",{"2":{"58":2,"146":12,"192":2}}],["450",{"2":{"13":1}}],["458369",{"2":{"6":2,"180":2,"181":2}}],["42004014766201",{"2":{"192":1}}],["420040147662014",{"2":{"192":3}}],["4219350464667047e",{"2":{"192":4}}],["42",{"2":{"13":1,"14":1,"58":3}}],["426283",{"2":{"6":1,"180":1,"181":1}}],["400",{"2":{"58":3}}],["40000",{"2":{"15":1}}],["40",{"2":{"14":1,"58":3}}],["406224",{"2":{"6":1,"180":1,"181":1}}],["404504",{"2":{"6":1,"180":1,"181":1}}],["41544701408748197",{"2":{"192":1}}],["41",{"2":{"58":1,"194":20}}],["41878",{"2":{"15":1}}],["414248",{"2":{"6":1,"180":1,"181":1}}],["419406",{"2":{"6":1,"180":1,"181":1}}],["4493927459900552",{"2":{"192":1}}],["44121252392",{"2":{"15":1}}],["44",{"2":{"14":1,"58":2}}],["442901",{"2":{"6":1,"180":1,"181":1}}],["446339",{"2":{"6":1,"180":1,"181":1}}],["477985",{"2":{"146":4}}],["47",{"2":{"58":3}}],["473835",{"2":{"6":1,"180":1,"181":1}}],["472117",{"2":{"6":2,"180":2,"181":2}}],["46525251631344455",{"2":{"192":1}}],["465816",{"2":{"6":1,"180":1,"181":1}}],["46",{"2":{"58":3}}],["468107",{"2":{"6":1,"180":1,"181":1}}],["464547",{"2":{"6":6,"190":6}}],["4",{"2":{"1":11,"3":4,"6":12,"9":2,"13":2,"14":1,"52":1,"66":1,"91":1,"94":1,"108":1,"116":2,"136":1,"146":1,"151":3,"154":3,"176":1,"183":1,"186":8,"193":20,"196":2,"197":1}}],["358421",{"2":{"197":1}}],["3585",{"2":{"176":1}}],["35",{"2":{"58":3}}],["354492",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["38042741557976",{"2":{"192":1}}],["380427415579764",{"2":{"192":3}}],["38",{"2":{"58":3}}],["3655999675063154",{"2":{"192":1}}],["36",{"2":{"58":2}}],["360",{"2":{"53":1}}],["36022",{"2":{"15":1}}],["327284472232776",{"2":{"194":3}}],["32610",{"2":{"193":3}}],["32",{"2":{"58":3}}],["377956",{"2":{"197":1}}],["37",{"2":{"58":5}}],["3497142366876638",{"2":{"192":1}}],["34",{"2":{"58":3}}],["31571636123306385",{"2":{"192":1}}],["31",{"2":{"58":2}}],["30151010318639",{"2":{"192":4}}],["30527612515520186",{"2":{"192":4}}],["300",{"2":{"78":1}}],["30",{"2":{"14":2,"58":3,"192":2}}],["3376428491230612",{"2":{"192":4}}],["3390",{"2":{"116":1}}],["33333333333",{"2":{"15":1}}],["333333333336",{"2":{"15":3}}],["33",{"2":{"6":20,"180":20,"181":20}}],["3d",{"2":{"4":1,"6":1,"59":2,"88":1,"157":1,"175":1}}],["3",{"2":{"1":13,"3":4,"5":1,"6":26,"14":2,"59":13,"62":6,"64":1,"70":6,"75":5,"87":1,"91":1,"94":1,"108":1,"116":2,"121":1,"136":1,"147":7,"151":3,"154":3,"159":2,"169":16,"176":4,"181":3,"183":2,"185":1,"186":11,"193":1,"194":1,"199":1}}],["39945867303846",{"2":{"194":3}}],["3995734698458635",{"2":{"192":1}}],["399918",{"2":{"6":2,"180":2,"181":2}}],["394759",{"2":{"6":1,"180":1,"181":1}}],["392466",{"2":{"6":1,"180":1,"181":1}}],["395332",{"2":{"6":1,"180":1,"181":1}}],["39",{"0":{"30":1},"2":{"0":1,"3":1,"4":5,"6":22,"7":1,"9":2,"17":2,"18":1,"19":1,"23":1,"29":1,"32":1,"53":1,"55":1,"56":1,"57":1,"58":3,"59":2,"62":6,"63":3,"64":28,"66":1,"68":1,"69":1,"71":1,"72":4,"73":1,"76":2,"79":4,"84":2,"88":7,"93":2,"96":1,"110":2,"116":19,"122":1,"125":2,"128":2,"147":3,"149":2,"154":5,"155":4,"160":2,"161":3,"167":6,"168":1,"176":6,"177":1,"179":1,"181":2,"189":6,"191":1,"192":6,"193":6,"194":4,"195":4,"196":5,"198":1,"200":1,"201":2}}],["2pi",{"2":{"192":1,"193":1,"194":1}}],["2nd",{"2":{"73":6}}],["2335447787454",{"2":{"194":1}}],["233544778745394",{"2":{"194":2}}],["23",{"2":{"58":3,"116":1}}],["23699059147",{"2":{"15":1}}],["28",{"2":{"58":2}}],["28083",{"2":{"15":2}}],["2658011835867806",{"2":{"192":1}}],["26745668457025",{"2":{"192":1}}],["267456684570245",{"2":{"192":3}}],["26",{"2":{"58":5,"116":2}}],["24989584635339165",{"2":{"192":1}}],["24279488312757858",{"2":{"192":4}}],["24",{"2":{"58":7,"116":1,"194":9}}],["274364",{"2":{"70":1,"72":1,"75":1}}],["274363",{"2":{"70":1,"72":1,"75":1}}],["27",{"2":{"58":2}}],["275543",{"2":{"6":6,"190":6}}],["2d",{"2":{"25":1,"27":1,"159":4,"175":1}}],["2^",{"2":{"14":1}}],["2158594260436434",{"2":{"192":1}}],["215118",{"2":{"6":4,"190":4}}],["21664550952386064",{"2":{"192":4}}],["21",{"2":{"58":4,"116":2,"194":40}}],["21427",{"2":{"11":5}}],["25",{"2":{"58":3,"90":1,"116":1,"135":1,"194":12}}],["258",{"2":{"11":1}}],["257223563`",{"2":{"177":1}}],["257223563",{"2":{"6":2,"159":1,"177":1}}],["295828190107045",{"2":{"194":1}}],["29582819010705",{"2":{"194":2}}],["299820032397223",{"2":{"192":1}}],["29",{"2":{"58":3,"197":1}}],["29th",{"0":{"8":1},"1":{"9":1,"10":1}}],["298",{"2":{"6":2,"159":1,"177":2}}],["20340",{"2":{"196":1}}],["20682326747054",{"2":{"194":1}}],["206823267470536",{"2":{"194":2}}],["20093817218219",{"2":{"192":1}}],["200938172182195",{"2":{"192":3}}],["2018",{"2":{"116":1}}],["2017",{"2":{"6":1,"59":1}}],["20",{"2":{"58":3,"116":2,"192":60,"194":1}}],["2024",{"0":{"7":1,"8":1},"1":{"9":1,"10":1}}],["20th",{"0":{"7":1}}],["22",{"2":{"58":3,"116":1}}],["22168",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["224758",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["2",{"2":{"1":19,"3":9,"5":1,"6":48,"13":1,"14":1,"15":3,"25":2,"27":2,"32":1,"53":3,"56":1,"58":6,"59":32,"62":2,"63":4,"64":10,"65":6,"66":7,"68":1,"69":2,"73":2,"75":1,"78":1,"79":3,"82":1,"83":1,"84":3,"85":1,"88":4,"91":2,"94":2,"105":2,"107":2,"108":3,"116":11,"136":2,"146":2,"147":23,"151":2,"154":4,"155":1,"159":2,"170":1,"178":1,"181":5,"183":7,"184":7,"185":5,"186":18,"190":11,"192":7,"193":6,"194":10,"195":1,"197":1}}],["1st",{"2":{"73":6}}],["198232937815632",{"2":{"194":1}}],["19823293781563178",{"2":{"194":2}}],["1999466709331708",{"2":{"192":1}}],["1998",{"2":{"70":1,"72":1,"75":1}}],["19",{"2":{"58":2,"116":2}}],["11591614996189725",{"2":{"192":1}}],["11966707868197",{"2":{"192":1}}],["119667078681967",{"2":{"192":3}}],["110m",{"2":{"193":2}}],["110",{"2":{"83":1,"193":1}}],["11",{"2":{"15":2,"58":2,"116":1}}],["1145",{"2":{"70":1,"72":1,"75":1}}],["114",{"2":{"7":1}}],["16589608273778408",{"2":{"192":1}}],["165644",{"2":{"146":2}}],["16692537029320365",{"2":{"192":4}}],["166644",{"2":{"146":2}}],["163434",{"2":{"146":2}}],["169356",{"2":{"146":2}}],["164434",{"2":{"146":2}}],["16111",{"2":{"15":1}}],["16",{"2":{"13":1,"14":1,"58":2,"116":2}}],["180",{"2":{"53":1,"146":1,"159":2}}],["18593721105",{"2":{"15":1}}],["18",{"2":{"13":1,"14":1,"58":3,"116":2}}],["13309630561615",{"2":{"194":3}}],["13401805979",{"2":{"15":2}}],["13",{"2":{"6":3,"58":1,"70":1,"75":2,"116":1}}],["10n",{"2":{"193":1}}],["10832215707812454",{"2":{"192":4}}],["10^9",{"2":{"13":1}}],["1000000",{"2":{"193":1}}],["1000",{"2":{"13":2,"176":2,"193":1,"199":2}}],["100",{"2":{"6":2,"14":3,"82":1,"84":1,"147":2,"197":1}}],["10",{"2":{"6":12,"11":1,"55":1,"58":5,"68":4,"69":10,"70":2,"72":1,"75":2,"87":2,"116":3,"121":2,"177":1,"181":4,"192":1}}],["14182952335953",{"2":{"194":1}}],["14182952335952814",{"2":{"194":2}}],["14404531208901e",{"2":{"194":2}}],["1499775010124783",{"2":{"192":1}}],["1464721641710074",{"2":{"192":4}}],["14",{"2":{"3":1,"6":5,"58":2,"72":2,"73":2,"116":1,"118":1,"119":1,"176":2,"177":2}}],["15488729606723",{"2":{"194":3}}],["15",{"2":{"3":1,"6":4,"58":1,"68":1,"69":1,"72":1,"73":1,"116":1,"118":1,"119":1}}],["17893116483784577",{"2":{"194":2}}],["17289902010158",{"2":{"192":1}}],["172899020101585",{"2":{"192":3}}],["170356",{"2":{"146":2}}],["17",{"2":{"3":1,"6":3,"58":3,"72":1,"73":1,"116":2,"118":1,"119":1}}],["125",{"2":{"6":2,"72":1,"73":1}}],["127",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1,"193":1}}],["123",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["12636633117296836",{"2":{"194":2}}],["126",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["12",{"2":{"3":1,"6":3,"58":2,"72":1,"73":1,"116":1,"118":1,"119":1,"200":1}}],["124",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["1",{"2":{"1":8,"3":38,"6":59,"13":1,"14":4,"15":1,"52":4,"53":15,"55":7,"57":2,"58":11,"59":16,"62":4,"63":7,"64":72,"65":9,"66":15,"68":1,"69":10,"71":3,"73":9,"75":4,"76":11,"78":7,"79":6,"84":6,"88":16,"90":2,"91":6,"93":2,"94":8,"96":2,"97":2,"105":12,"107":2,"108":5,"116":38,"122":6,"125":4,"126":5,"128":1,"135":2,"136":6,"146":16,"147":27,"151":2,"154":6,"155":3,"157":1,"163":12,"164":2,"170":9,"177":1,"178":4,"181":8,"183":15,"184":3,"185":15,"186":6,"190":9,"192":8,"193":44,"194":12,"195":1,"199":8,"200":3}}],["nselected",{"2":{"185":3}}],["nmax",{"2":{"185":2}}],["nice",{"2":{"183":1}}],["n+1",{"2":{"163":1}}],["nfeature",{"2":{"154":1,"155":1}}],["nkeys",{"2":{"147":8}}],["nc",{"2":{"116":13}}],["ncoord",{"2":{"88":2}}],["nl",{"2":{"116":11}}],["nhole",{"2":{"64":2,"70":2,"72":2,"75":2,"76":1,"88":2}}],["nbpts",{"2":{"64":2}}],["ngeom",{"2":{"63":1,"154":2,"155":1,"190":1}}],["nt",{"2":{"189":2}}],["ntasks",{"2":{"154":3,"155":3}}],["nthreads",{"2":{"154":2,"155":2}}],["nthe",{"2":{"60":1,"174":1,"177":1}}],["ntuple",{"2":{"59":3,"178":1}}],["n2",{"2":{"59":8,"88":10}}],["n1",{"2":{"59":8,"88":9}}],["np2",{"2":{"105":4}}],["npolygon",{"2":{"71":1,"88":3,"170":2}}],["npoints",{"2":{"53":6,"64":5,"116":3,"177":6,"183":7}}],["npoint",{"2":{"6":1,"53":2,"55":1,"56":1,"66":2,"79":1,"84":2,"88":6,"105":6,"116":6,"128":1,"146":2,"164":1,"177":3,"178":1,"181":14,"185":1,"190":13}}],["npts",{"2":{"64":6,"183":3}}],["np",{"2":{"56":2,"79":5}}],["null",{"2":{"32":1,"177":1}}],["numeric",{"2":{"11":1}}],["numbers",{"2":{"6":1,"7":1,"57":2,"59":1,"177":1}}],["number=6",{"2":{"6":1,"180":1,"181":1}}],["number",{"2":{"6":11,"59":1,"64":2,"69":1,"78":1,"80":1,"84":1,"88":2,"116":2,"175":1,"176":1,"178":1,"181":2,"182":4,"183":7,"184":4,"185":12}}],["n",{"2":{"6":1,"9":1,"57":2,"59":36,"60":2,"64":51,"69":10,"75":4,"76":4,"116":11,"128":2,"146":6,"147":5,"163":1,"170":25,"174":2,"177":2,"178":3,"181":2,"185":7,"190":32}}],["naive",{"2":{"74":1}}],["napts",{"2":{"64":3}}],["navigate",{"0":{"26":1}}],["natearth2",{"2":{"193":1}}],["natural",{"2":{"181":1,"193":2,"198":1}}],["naturalearth",{"2":{"11":2,"83":2,"181":3,"193":1}}],["nature",{"2":{"147":1}}],["native",{"2":{"6":1,"148":1,"189":4,"196":1}}],["nan",{"2":{"9":1}}],["named",{"2":{"154":1}}],["namedtuple",{"2":{"22":2,"154":2,"189":2}}],["name",{"2":{"6":1,"31":2,"181":1,"189":1,"195":1,"196":2,"200":1}}],["namespaced",{"2":{"154":1}}],["names",{"2":{"6":1,"31":3,"154":3,"155":3,"189":1}}],["nodestatus",{"2":{"147":6}}],["nodes",{"2":{"64":1,"147":4}}],["node",{"2":{"64":26,"147":17}}],["north",{"2":{"66":12,"159":1}}],["nor",{"2":{"60":1,"174":1,"177":1}}],["normalized",{"2":{"59":1}}],["normalize",{"2":{"59":1}}],["norm",{"2":{"6":1,"59":22}}],["now",{"2":{"6":1,"13":1,"25":1,"27":1,"55":1,"58":2,"59":4,"60":1,"64":1,"69":1,"76":1,"79":1,"80":1,"146":1,"147":2,"169":1,"175":1,"176":3,"177":1,"181":1,"192":5,"193":6,"194":2,"195":1,"196":3,"199":2}}],["no",{"2":{"6":6,"53":1,"59":2,"64":4,"70":1,"71":1,"72":1,"73":14,"75":1,"88":2,"97":3,"108":3,"116":2,"126":2,"128":1,"130":1,"131":2,"136":2,"138":1,"139":3,"140":3,"141":1,"147":2,"148":1,"149":1,"154":3,"175":1,"177":2,"178":1,"181":1,"189":1,"196":1}}],["nonzero",{"2":{"178":2}}],["none",{"2":{"6":4,"64":1,"69":1,"70":1,"72":1,"75":1,"76":1,"105":4,"107":1}}],["nondimensional",{"2":{"6":1,"177":1}}],["nonintersecting",{"2":{"6":1,"23":1,"167":1,"170":1}}],["non",{"2":{"3":2,"6":2,"22":1,"57":2,"64":15,"70":2,"71":1,"72":1,"73":4,"75":1,"76":2,"78":1,"123":2,"130":1,"152":1,"161":1}}],["note",{"2":{"4":4,"6":11,"19":1,"29":1,"53":1,"56":2,"59":1,"62":2,"63":2,"64":3,"66":1,"69":2,"71":3,"73":5,"76":3,"79":1,"85":1,"88":5,"116":1,"121":1,"122":1,"159":1,"161":1,"173":1,"178":1,"182":1,"183":2,"184":1,"193":2,"194":1}}],["not",{"0":{"148":1},"2":{"1":2,"3":7,"4":1,"6":15,"18":1,"19":1,"22":1,"24":1,"31":1,"53":4,"56":1,"59":4,"60":1,"62":1,"64":18,"69":1,"72":1,"73":7,"76":3,"84":1,"87":2,"88":4,"90":2,"91":1,"93":1,"94":2,"96":2,"97":2,"108":3,"110":5,"111":3,"112":2,"113":2,"116":5,"121":1,"123":1,"126":1,"135":2,"136":2,"138":1,"146":4,"147":2,"148":1,"151":1,"152":1,"153":1,"154":7,"155":4,"157":3,"159":2,"160":1,"161":1,"163":2,"166":2,"169":3,"172":1,"173":1,"174":1,"175":1,"177":2,"178":1,"188":1,"189":2,"193":1,"194":1,"198":1}}],["nothing`",{"2":{"71":2,"73":2,"76":2}}],["nothing",{"2":{"1":34,"4":1,"6":41,"15":3,"64":4,"69":1,"71":2,"72":1,"73":2,"76":2,"88":1,"116":1,"146":9,"147":3,"151":1,"154":3,"155":2,"157":3,"163":24,"166":1,"169":60,"174":1,"178":1,"181":2,"182":6,"183":6,"184":6,"185":1,"186":32,"190":7,"192":252,"193":16,"194":20}}],["ne",{"2":{"193":2}}],["net",{"2":{"166":2}}],["ness",{"2":{"157":1}}],["nesting",{"2":{"152":2}}],["nestedloopfast",{"2":{"201":1}}],["nested",{"2":{"1":2,"4":1,"6":3,"18":1,"53":1,"151":2,"152":2,"154":2,"155":2,"181":1,"187":1}}],["never",{"2":{"152":1,"182":1}}],["neumann",{"2":{"147":1}}],["neither",{"2":{"76":1}}],["neighborhood",{"2":{"147":2}}],["neighbor",{"2":{"64":27}}],["neighboring",{"2":{"6":6,"64":1,"181":1,"182":1,"183":1,"184":2}}],["nearly",{"2":{"196":1}}],["nearest",{"2":{"64":1,"73":2}}],["neatly",{"2":{"17":1}}],["nedge",{"2":{"64":2,"190":13}}],["nextnode",{"2":{"147":27}}],["nextnodes",{"2":{"147":6}}],["next",{"2":{"63":1,"64":81,"66":3,"69":4,"116":14,"147":3,"170":13,"183":5}}],["necessarily",{"2":{"6":1,"146":1,"172":1}}],["necessary",{"2":{"6":1,"152":1,"181":1}}],["newfeature",{"2":{"157":2}}],["newnodes",{"2":{"147":2}}],["new",{"2":{"6":1,"60":1,"64":58,"66":9,"70":3,"71":1,"76":16,"116":2,"147":4,"153":1,"154":21,"155":1,"166":2,"167":1,"168":1,"170":19,"178":10,"182":1,"183":2,"184":1,"194":1,"195":1,"200":1}}],["negative",{"2":{"4":3,"6":3,"55":2,"56":1,"57":2,"78":2,"79":3}}],["needs",{"2":{"63":1}}],["needing",{"2":{"4":1,"6":1,"17":1,"171":1}}],["need",{"2":{"1":1,"3":1,"4":2,"5":1,"6":5,"32":1,"59":2,"62":1,"64":2,"71":1,"84":1,"88":4,"93":1,"94":1,"116":1,"147":2,"149":1,"154":3,"155":1,"171":1,"185":1,"186":1,"193":1,"194":2,"201":2}}],["needed",{"2":{"1":2,"6":4,"53":1,"59":1,"64":4,"66":1,"70":1,"72":1,"75":1,"79":2,"116":5,"147":1,"154":1,"155":1,"166":1,"173":3,"194":1}}],["bx",{"2":{"146":2}}],["b2y",{"2":{"73":4}}],["b2x",{"2":{"73":4}}],["b2",{"2":{"73":47,"79":3,"123":6}}],["b``",{"2":{"71":1}}],["b`",{"2":{"71":3,"73":4,"76":4}}],["bigger",{"2":{"64":1}}],["bit",{"2":{"25":1,"27":1,"185":8,"192":2}}],["b1y",{"2":{"73":7}}],["b1x",{"2":{"73":7}}],["b1",{"2":{"64":8,"73":63,"123":6}}],["breaks",{"2":{"170":1}}],["break",{"2":{"64":3,"66":1,"71":2,"88":4,"116":11,"123":1,"147":6,"170":2}}],["brevity",{"2":{"59":1}}],["broadcasting",{"2":{"6":1,"59":1}}],["broken",{"2":{"3":1,"6":1,"105":1}}],["building",{"2":{"192":1}}],["build",{"2":{"64":13,"69":1,"70":1,"72":1,"75":1,"176":2,"184":1,"185":1}}],["built",{"2":{"17":1,"20":1}}],["buffers",{"2":{"147":1}}],["buffered",{"2":{"60":2}}],["buffering",{"2":{"59":1,"60":1}}],["buffer",{"0":{"60":1},"2":{"31":2,"60":5,"63":2,"64":1}}],["but",{"2":{"1":2,"3":4,"4":3,"6":11,"18":1,"22":1,"25":1,"27":1,"32":1,"53":1,"55":1,"56":1,"66":1,"73":2,"76":2,"84":2,"85":2,"88":4,"96":2,"116":1,"121":1,"122":1,"123":4,"125":1,"126":1,"129":2,"130":1,"135":1,"146":1,"147":1,"148":1,"151":2,"152":1,"154":10,"155":3,"157":5,"159":5,"160":1,"172":1,"173":1,"178":2,"181":1,"189":2,"193":2,"194":2,"196":1,"198":1,"199":1,"200":2}}],["black",{"2":{"68":1,"193":1}}],["blue",{"2":{"14":1,"68":1,"87":2,"90":2,"107":2,"121":2,"135":2,"199":2}}],["bloat",{"2":{"194":1}}],["block",{"2":{"6":2,"192":1}}],["blob",{"2":{"6":2,"181":1}}],["balancing",{"2":{"154":1,"155":1}}],["barrier",{"2":{"154":1}}],["barycentric",{"0":{"5":1,"57":1,"59":1},"1":{"58":1,"59":1},"2":{"0":6,"5":10,"6":17,"9":1,"31":1,"57":9,"58":4,"59":52}}],["basic",{"2":{"147":1}}],["base",{"2":{"31":4,"32":1,"59":15,"60":1,"64":2,"147":6,"154":3,"155":3,"159":2,"160":1,"174":1,"177":2,"189":3}}],["based",{"2":{"4":2,"6":2,"19":1,"53":2,"56":2,"58":2,"63":1,"66":1,"79":2,"88":1,"97":1,"108":1,"116":2,"122":1,"126":1,"136":1,"160":1,"196":1,"198":1,"199":1}}],["badge",{"2":{"6":2}}],["backs",{"2":{"69":4}}],["backwards",{"2":{"64":1,"71":1,"73":1,"76":1}}],["backing",{"2":{"64":1}}],["backend",{"2":{"60":2,"189":1}}],["back",{"2":{"6":1,"18":1,"22":1,"23":1,"69":4,"189":1}}],["b",{"2":{"4":7,"6":11,"35":2,"36":2,"37":2,"38":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"64":206,"66":9,"70":26,"71":18,"72":26,"73":77,"74":3,"75":27,"76":39,"88":29,"116":2,"123":13,"195":1}}],["box",{"2":{"65":2,"66":3,"199":1}}],["bounce",{"2":{"64":8,"70":1,"71":1,"72":1,"73":1,"75":1,"76":1}}],["bouncings",{"2":{"64":1}}],["bouncing",{"2":{"64":13,"71":3,"73":4,"76":4}}],["bound",{"2":{"74":1}}],["bounding",{"2":{"64":1,"65":2,"66":3}}],["boundscheck",{"2":{"59":14}}],["bounds",{"2":{"6":1,"147":4}}],["boundaries",{"2":{"3":2,"6":2,"93":2,"107":1,"108":1,"116":2,"118":1,"119":1,"147":1}}],["boundary",{"2":{"3":7,"6":7,"78":1,"90":1,"91":1,"94":2,"96":1,"97":3,"100":4,"105":9,"108":2,"110":1,"111":6,"112":3,"116":18,"125":2,"126":4,"128":3,"129":5,"130":3,"131":3,"135":1,"136":3}}],["bold",{"2":{"60":1,"174":1,"177":1}}],["both",{"2":{"3":5,"6":6,"64":2,"73":4,"75":1,"76":1,"78":1,"84":2,"88":3,"91":1,"105":4,"108":1,"116":2,"122":1,"130":1,"136":1,"176":1,"178":1}}],["booltype",{"2":{"31":1,"154":2,"155":1,"159":1,"161":5,"178":1}}],["booleans",{"2":{"64":1,"116":2}}],["boolean",{"0":{"39":1},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"24":2,"64":1,"71":1,"73":1,"76":1,"157":1,"161":2,"198":1}}],["boolsastypes",{"0":{"24":1,"161":1},"2":{"31":1,"32":1,"159":1,"161":10,"178":3}}],["bools",{"2":{"10":1}}],["bool",{"2":{"3":15,"4":14,"6":38,"32":1,"64":3,"88":17,"91":1,"94":2,"97":1,"105":13,"108":1,"116":2,"119":1,"122":2,"123":7,"126":2,"136":1,"146":7,"147":6,"161":2,"178":3,"190":5}}],["bypred",{"2":{"201":1}}],["by",{"0":{"101":1,"102":1,"140":1},"2":{"1":3,"3":2,"4":8,"6":29,"7":1,"17":1,"18":2,"19":1,"22":1,"24":1,"25":1,"26":1,"27":1,"52":1,"53":6,"55":1,"56":1,"59":4,"60":1,"62":5,"63":4,"64":14,"65":1,"66":6,"68":1,"69":6,"70":1,"72":1,"73":5,"75":4,"76":3,"79":5,"85":2,"88":8,"91":1,"93":1,"96":1,"97":1,"101":2,"102":2,"103":1,"104":2,"115":2,"116":10,"146":2,"147":4,"154":2,"157":7,"159":7,"167":2,"168":1,"170":3,"172":1,"173":2,"174":1,"175":1,"177":3,"178":1,"179":1,"181":1,"182":1,"183":3,"184":1,"186":1,"192":1,"193":1,"194":1,"196":1,"198":5,"199":1,"200":2,"201":1}}],["berlin",{"2":{"200":1}}],["bearing",{"2":{"146":4}}],["beauty",{"2":{"9":1}}],["better",{"2":{"105":1,"123":1,"154":1,"155":1,"181":1}}],["between",{"2":{"4":4,"6":18,"23":1,"53":2,"59":13,"64":1,"66":18,"70":1,"71":4,"72":1,"73":11,"75":2,"76":4,"79":8,"88":1,"116":4,"123":4,"147":1,"159":2,"177":3,"178":1,"182":2,"183":2,"184":1,"193":1,"198":2,"199":1}}],["been",{"2":{"71":1,"147":1,"149":2,"155":1,"161":1}}],["because",{"2":{"64":1,"85":1,"149":1,"155":1,"188":1}}],["becomes",{"2":{"159":1}}],["become",{"2":{"22":1}}],["being",{"2":{"53":1,"73":1,"116":1,"122":1,"168":1}}],["behind",{"2":{"25":1,"26":1,"27":1,"58":1,"149":1,"155":1}}],["behaviours",{"2":{"32":1}}],["behaviour",{"2":{"6":1,"18":1,"23":1,"181":1}}],["best",{"2":{"19":1,"154":2,"181":1}}],["benchmarking",{"2":{"177":1,"181":1}}],["benchmarkgroup",{"2":{"177":2,"181":3}}],["benchmark",{"0":{"177":1,"181":1},"2":{"177":1,"181":1}}],["benchmarktools",{"2":{"13":1,"177":1,"181":1}}],["benchmarks",{"2":{"9":2}}],["beginning",{"2":{"66":1,"192":1}}],["begin+1",{"2":{"59":5}}],["begin",{"2":{"9":1,"59":7,"154":1,"155":1,"182":1,"196":1}}],["beware",{"2":{"6":1,"18":1,"178":1}}],["before",{"2":{"6":4,"33":1,"59":1,"70":1,"72":1,"73":1,"75":1,"181":1,"193":1}}],["below",{"2":{"6":2,"17":1,"60":1,"123":1,"166":1,"183":1,"184":1,"185":1,"196":1}}],["be",{"2":{"1":7,"3":3,"4":11,"5":4,"6":59,"7":1,"9":1,"13":2,"20":3,"23":2,"24":1,"25":3,"26":1,"27":3,"32":1,"53":8,"56":7,"57":2,"58":1,"59":10,"60":2,"62":1,"63":3,"64":14,"65":1,"66":2,"69":1,"70":7,"71":4,"72":7,"73":12,"75":6,"76":5,"78":2,"79":4,"85":6,"88":15,"93":2,"94":1,"97":6,"108":6,"116":21,"122":2,"126":6,"136":6,"138":1,"139":1,"140":1,"141":1,"146":2,"147":1,"151":4,"152":2,"153":2,"154":9,"155":1,"156":1,"157":6,"159":4,"161":1,"163":1,"164":1,"165":1,"166":3,"167":4,"168":2,"170":2,"171":1,"173":3,"174":1,"175":1,"177":8,"178":3,"181":10,"183":1,"185":3,"186":1,"189":2,"192":2,"194":1,"198":4}}],["human",{"2":{"196":1}}],["hull`",{"2":{"85":2}}],["hulls",{"2":{"6":1,"80":1,"85":1}}],["hull",{"0":{"50":1,"80":1,"82":1,"83":1},"1":{"81":1,"82":1,"83":1,"84":1,"85":1},"2":{"0":1,"6":8,"31":2,"50":1,"80":2,"82":4,"83":1,"84":10,"85":15}}],["hypot",{"2":{"178":1}}],["h2",{"2":{"116":6}}],["h1",{"2":{"116":11}}],["hm",{"2":{"58":2}}],["h",{"2":{"53":2,"64":2,"76":8}}],["href=",{"2":{"6":2}}],["https",{"2":{"6":2,"70":1,"72":1,"73":1,"75":1,"85":1,"116":2,"159":1,"183":1}}],["high",{"2":{"196":1}}],["highest",{"2":{"194":1}}],["higher",{"2":{"6":1,"85":1}}],["hit",{"2":{"64":1,"154":1,"155":1,"157":3}}],["hits",{"2":{"18":1}}],["hidedecorations",{"2":{"58":2}}],["hinter",{"2":{"31":3,"60":1,"174":1,"177":1}}],["hint",{"2":{"31":3,"60":1,"177":1}}],["hinge=2",{"2":{"72":1}}],["hinge`",{"2":{"72":1}}],["hinge",{"2":{"6":1,"64":1,"73":13,"116":15}}],["hist",{"2":{"13":1}}],["histogram",{"2":{"13":1}}],["hcat",{"2":{"6":1}}],["heavily",{"2":{"154":1}}],["heatmap",{"2":{"13":5,"14":6,"58":2,"78":2,"147":1}}],["help",{"2":{"159":1,"161":1}}],["helpers",{"0":{"64":1},"2":{"105":1,"123":1}}],["helper",{"0":{"71":1,"73":1,"76":1},"2":{"63":1,"64":1,"69":1}}],["helps",{"2":{"30":1}}],["held",{"2":{"1":1,"151":1,"154":1}}],["here",{"2":{"6":2,"9":1,"13":1,"14":1,"20":1,"59":1,"73":1,"85":2,"105":1,"147":2,"154":2,"157":4,"159":1,"163":1,"177":1,"193":2,"198":5,"199":3}}],["hours",{"2":{"200":1}}],["hood",{"2":{"196":1}}],["hook",{"2":{"6":1,"181":1}}],["home",{"2":{"193":1}}],["horizontal",{"2":{"66":1,"73":1,"147":1,"181":1}}],["hormann",{"0":{"71":1,"73":1,"76":1},"2":{"6":2,"59":2,"64":3,"69":2,"70":1,"72":1,"75":1}}],["how",{"0":{"26":1},"2":{"6":1,"26":2,"55":1,"59":1,"64":1,"73":1,"88":1,"147":2,"157":2,"172":1,"181":1,"193":1,"196":1,"198":2,"199":2,"200":1,"201":1}}],["however",{"2":{"3":1,"6":2,"53":1,"59":1,"63":1,"64":1,"73":1,"78":1,"84":1,"88":1,"90":1,"94":1,"168":1}}],["hole",{"2":{"53":1,"56":3,"58":2,"59":9,"63":4,"64":60,"66":3,"70":6,"72":2,"76":15,"79":3,"100":1,"101":1,"102":1,"116":33,"147":5,"164":2,"192":1}}],["holes=",{"2":{"64":1}}],["holes",{"2":{"4":3,"5":1,"6":4,"9":2,"53":2,"55":1,"59":2,"63":1,"64":19,"69":4,"70":2,"72":2,"75":6,"76":29,"79":3,"88":3,"113":1,"116":11,"138":1,"147":17,"164":2,"192":4}}],["holds",{"2":{"64":1,"160":2,"179":1}}],["holding",{"2":{"6":1,"147":1,"154":2}}],["hold",{"2":{"6":1,"147":1,"161":1,"181":1,"196":1}}],["halign",{"2":{"181":1}}],["half",{"2":{"65":2}}],["hail",{"2":{"164":1}}],["handling",{"0":{"174":1},"2":{"149":1}}],["handler",{"2":{"60":1,"174":1}}],["handle",{"2":{"31":1,"146":1,"152":2,"154":1,"193":1}}],["handled",{"2":{"18":1}}],["hao",{"2":{"116":1}}],["had",{"2":{"70":1,"72":1,"88":1,"161":1,"176":1}}],["happens",{"2":{"64":1}}],["happen",{"2":{"24":1,"154":1}}],["have",{"2":{"3":3,"4":9,"6":15,"19":1,"23":1,"33":1,"53":2,"56":3,"59":6,"60":1,"64":4,"73":1,"78":1,"79":2,"85":2,"88":10,"116":5,"121":1,"123":3,"125":1,"126":1,"147":1,"148":1,"149":2,"153":1,"154":1,"155":2,"157":4,"159":2,"161":1,"181":1,"183":1,"189":1,"192":1,"193":1,"198":1,"199":1,"200":3}}],["haskey",{"2":{"154":1,"189":1}}],["hash",{"2":{"147":1}}],["hasn",{"2":{"147":1}}],["hassle",{"2":{"1":1,"6":1,"186":1}}],["has",{"2":{"1":4,"52":1,"55":2,"59":2,"64":2,"71":2,"73":1,"76":1,"78":1,"79":1,"88":11,"128":1,"146":1,"151":4,"154":6,"162":1,"176":2,"185":1,"193":1}}],["xticklabelsvisible",{"2":{"193":1}}],["xticklabelrotation",{"2":{"13":2}}],["xoffset",{"2":{"192":4,"194":1}}],["x=x",{"2":{"190":1}}],["x`",{"2":{"154":1}}],["xvec",{"2":{"147":4}}],["xbounds",{"2":{"147":4}}],["xhalf",{"2":{"147":2}}],["xlast",{"2":{"79":3}}],["xfirst",{"2":{"79":5}}],["x0",{"2":{"79":5}}],["xn",{"2":{"66":4}}],["xind+1",{"2":{"147":1}}],["xind",{"2":{"147":2}}],["xinterior",{"2":{"63":2}}],["xi−xi−1",{"2":{"6":1}}],["xcentroid",{"2":{"63":13}}],["xrange",{"2":{"58":3,"78":2}}],["xautolimits",{"2":{"58":2}}],["xp2",{"2":{"53":5}}],["x26",{"2":{"53":2,"56":6,"59":1,"60":4,"64":58,"66":36,"70":4,"71":4,"73":24,"76":2,"79":3,"88":14,"103":2,"104":2,"105":48,"114":2,"115":2,"116":170,"123":22,"128":2,"132":2,"133":2,"142":2,"143":2,"146":4,"147":12,"154":2,"166":2,"170":6,"174":2,"177":2,"183":10,"184":2,"190":4,"198":4}}],["x2",{"2":{"6":3,"59":4,"63":2,"66":18,"79":8,"105":10,"116":5,"123":4,"147":5,"178":6,"190":2}}],["x1",{"2":{"6":4,"59":3,"63":2,"66":22,"79":8,"105":11,"116":6,"123":5,"147":5,"178":7,"190":2}}],["xs",{"2":{"6":3,"66":4,"147":30,"190":4}}],["xmax",{"2":{"6":1,"65":2,"66":48}}],["xmin",{"2":{"6":1,"65":2,"66":49}}],["x3c",{"2":{"5":1,"6":28,"31":1,"53":4,"56":2,"59":66,"64":17,"66":11,"69":3,"70":1,"72":1,"73":6,"75":1,"78":1,"79":13,"88":2,"105":33,"116":13,"123":10,"146":1,"147":4,"154":3,"155":2,"157":19,"159":3,"160":4,"161":4,"164":2,"167":3,"170":5,"177":2,"182":2,"183":6,"184":3,"185":9,"201":1}}],["xy`",{"2":{"173":1}}],["xy",{"2":{"1":4,"59":1,"173":3}}],["x",{"2":{"1":4,"4":1,"6":3,"7":1,"9":5,"11":6,"13":11,"14":10,"15":4,"50":2,"53":9,"56":2,"58":8,"62":1,"63":10,"64":21,"65":1,"66":8,"69":6,"71":9,"73":18,"76":9,"78":2,"79":7,"88":3,"105":21,"116":16,"123":7,"146":11,"147":2,"149":2,"151":3,"154":5,"155":4,"157":10,"161":5,"166":2,"171":2,"172":4,"173":1,"178":2,"181":2,"183":2,"185":1,"186":2,"187":2,"190":33,"192":6,"193":2,"194":2,"198":1,"200":2}}],["=>",{"2":{"154":2}}],["=float64",{"2":{"63":3,"72":1,"75":1}}],["=false",{"2":{"53":1}}],["===",{"2":{"105":8,"146":4}}],["==",{"2":{"9":1,"19":1,"32":1,"53":4,"56":2,"59":9,"60":2,"63":1,"64":34,"66":30,"71":1,"73":20,"75":2,"76":1,"78":1,"83":1,"88":16,"116":44,"123":2,"146":3,"147":18,"154":2,"164":1,"166":1,"170":1,"174":1,"177":2,"181":1,"185":3}}],["=",{"2":{"1":5,"3":17,"4":7,"5":2,"6":59,"11":1,"13":19,"14":33,"15":18,"31":4,"32":7,"35":2,"36":2,"37":2,"38":2,"50":3,"52":4,"53":56,"55":6,"56":25,"58":35,"59":110,"60":3,"62":6,"63":36,"64":324,"65":6,"66":96,"68":7,"69":29,"70":21,"71":30,"72":18,"73":143,"75":21,"76":78,"78":15,"79":52,"82":6,"83":4,"84":14,"85":4,"87":7,"88":40,"90":7,"91":3,"93":5,"94":3,"96":4,"97":23,"98":3,"99":7,"100":14,"101":14,"102":4,"103":2,"104":2,"105":57,"107":7,"108":18,"109":3,"110":11,"111":17,"112":9,"113":3,"114":2,"115":2,"116":189,"118":3,"119":3,"121":7,"122":22,"123":45,"125":3,"126":22,"127":3,"128":9,"129":14,"130":10,"131":6,"132":2,"133":2,"135":7,"136":22,"137":3,"138":11,"139":14,"140":14,"141":4,"142":2,"143":2,"146":32,"147":110,"149":1,"151":3,"154":40,"155":20,"156":4,"157":39,"159":3,"160":6,"161":2,"163":2,"164":4,"166":9,"169":3,"170":30,"171":1,"174":2,"176":16,"177":21,"178":25,"179":2,"180":5,"181":60,"182":11,"183":49,"184":7,"185":43,"186":2,"187":1,"189":3,"190":42,"192":45,"193":19,"194":13,"195":3,"196":4,"197":7,"199":12,"200":6,"201":2}}],["utm",{"2":{"193":1}}],["utility",{"0":{"190":1},"2":{"59":1,"154":1,"155":1}}],["utils",{"0":{"185":1},"2":{"31":1}}],["u2",{"2":{"116":4}}],["u1",{"2":{"116":4}}],["update",{"2":{"64":6,"147":10}}],["updated",{"2":{"64":6,"157":3}}],["updates",{"2":{"59":1}}],["up",{"2":{"64":2,"73":1,"116":1,"130":1,"152":1,"169":1,"183":2,"192":2}}],["upper",{"2":{"6":1,"147":1,"199":1}}],["uv",{"2":{"59":1}}],["usage",{"2":{"200":1}}],["usable",{"2":{"158":1}}],["usa",{"0":{"83":1},"2":{"83":4,"181":15,"200":3}}],["us",{"2":{"56":1,"85":1,"193":1,"200":1}}],["usually",{"2":{"26":2,"80":1,"154":1,"157":2,"159":1,"196":1}}],["usual",{"2":{"6":1,"164":1,"167":1}}],["usecases",{"2":{"25":1,"27":1}}],["uses",{"2":{"6":3,"80":1,"85":1,"116":1,"158":1,"159":1,"173":1,"177":1,"178":1,"181":1,"196":1}}],["users",{"2":{"31":1,"149":1,"168":1}}],["user",{"2":{"6":12,"23":1,"63":1,"70":3,"72":3,"75":3,"154":1,"182":1,"183":1,"184":1,"198":1}}],["useful",{"2":{"6":10,"59":1,"147":1,"175":1,"178":1,"181":2,"189":1}}],["used",{"2":{"1":1,"5":1,"6":4,"53":1,"56":1,"57":1,"59":1,"63":2,"64":7,"66":1,"69":1,"73":1,"78":1,"79":1,"88":1,"122":1,"147":2,"151":1,"154":1,"155":1,"157":2,"159":1,"160":1,"162":1,"181":1,"183":2,"188":2,"193":1,"196":1,"198":2,"199":1}}],["use",{"2":{"1":2,"4":1,"5":1,"6":9,"11":1,"20":1,"23":1,"26":1,"59":1,"64":1,"76":1,"85":2,"105":2,"123":1,"147":1,"148":1,"151":1,"154":4,"155":3,"156":1,"159":2,"164":1,"172":1,"176":1,"178":2,"181":1,"183":2,"189":3,"192":1,"196":1,"198":2,"201":2}}],["using",{"0":{"193":1},"2":{"1":4,"4":1,"5":3,"6":11,"11":4,"13":4,"14":1,"15":1,"31":6,"32":1,"50":1,"52":1,"53":1,"55":2,"56":2,"58":4,"59":7,"60":3,"62":2,"63":1,"64":5,"65":2,"66":1,"68":2,"69":1,"71":3,"73":4,"74":1,"76":3,"78":2,"79":2,"82":1,"83":2,"84":1,"85":2,"87":2,"88":1,"90":2,"91":1,"93":2,"94":1,"96":2,"97":1,"104":1,"105":1,"107":2,"108":1,"115":1,"116":1,"118":2,"119":1,"121":2,"123":1,"125":2,"126":1,"133":1,"135":2,"136":1,"143":1,"146":1,"147":5,"148":1,"149":2,"151":1,"152":1,"154":4,"155":2,"156":1,"157":1,"161":1,"164":1,"167":1,"170":1,"171":2,"172":1,"173":1,"174":3,"176":1,"177":5,"178":1,"181":3,"183":1,"185":1,"186":4,"187":2,"189":2,"190":1,"191":4,"192":1,"194":1,"195":2,"197":1,"198":1,"199":4,"200":2}}],["until",{"2":{"147":3,"152":1,"183":1,"189":1}}],["unprocessed",{"2":{"64":1}}],["unknown",{"2":{"64":4,"66":15}}],["unknown=3",{"2":{"64":1}}],["unmatched",{"2":{"64":9,"66":26}}],["understand",{"2":{"188":1}}],["under",{"2":{"56":2,"196":1}}],["undergrad",{"2":{"9":1}}],["undef",{"2":{"53":2,"64":1,"182":1,"183":1,"185":2,"190":2}}],["unwrap",{"0":{"157":1},"2":{"31":2,"157":19}}],["unless",{"2":{"22":1,"64":1,"71":2,"73":2,"76":2,"154":1}}],["unlike",{"2":{"18":1,"188":1}}],["unstable",{"2":{"13":1,"154":1,"161":1}}],["unneeded",{"2":{"6":3,"64":1,"70":2,"72":2,"75":2}}],["unnecessary",{"2":{"6":3,"147":1,"182":1,"183":1,"184":1}}],["universal",{"2":{"193":1}}],["united",{"2":{"181":1}}],["unit",{"2":{"159":1}}],["units",{"2":{"6":2,"178":2}}],["unify",{"2":{"25":1,"27":1}}],["unique",{"2":{"6":2,"73":3,"167":2,"170":2}}],["unioning",{"2":{"76":1}}],["unionintersectingpolygons",{"2":{"0":1,"6":8,"70":1,"71":2,"72":1,"73":2,"75":1,"76":2,"167":2,"168":2,"169":1,"170":4}}],["unions",{"0":{"76":1},"2":{"18":1,"160":1}}],["union",{"0":{"36":1,"75":1},"2":{"0":1,"1":2,"4":4,"6":16,"11":3,"23":2,"31":1,"32":1,"36":2,"53":2,"56":1,"59":1,"63":4,"64":7,"66":1,"72":2,"75":18,"76":30,"79":1,"88":8,"99":2,"100":4,"101":1,"103":2,"104":1,"110":2,"111":6,"114":2,"115":1,"123":8,"128":2,"129":4,"130":1,"132":2,"133":1,"138":2,"139":4,"140":1,"142":2,"143":1,"146":1,"147":5,"149":1,"151":2,"152":3,"154":3,"155":3,"160":4,"167":1,"168":1,"170":9,"178":5,"181":2,"182":3,"183":3,"184":3,"190":1}}],["unchanged",{"2":{"1":1,"6":1,"151":1,"154":1,"181":1}}],["gdal",{"2":{"196":1}}],["gml",{"2":{"196":1}}],["gpkg",{"2":{"196":3}}],["gadm",{"2":{"200":4}}],["ga",{"2":{"193":3,"197":2}}],["gaps",{"2":{"147":1}}],["global",{"2":{"193":1}}],["globally",{"2":{"155":1,"159":1}}],["gft",{"2":{"191":1,"193":2}}],["gc",{"2":{"166":6}}],["g",{"2":{"53":3,"56":3,"60":1,"63":3,"66":3,"79":6,"152":1,"154":2,"157":4,"159":1,"181":2,"190":2,"196":1}}],["gb",{"2":{"31":1}}],["guarantee",{"2":{"19":1,"30":1}}],["guaranteed",{"2":{"1":1,"53":1,"151":1,"155":1}}],["grows",{"2":{"159":1}}],["grouped",{"2":{"192":1}}],["groups",{"2":{"6":1,"147":1}}],["grouping",{"2":{"1":1,"151":1,"155":3}}],["grand",{"2":{"200":1}}],["grained",{"2":{"176":1}}],["grahamscanmethod",{"2":{"85":1}}],["graphics",{"2":{"6":1,"59":1}}],["great",{"2":{"192":1,"194":1,"196":1}}],["greater",{"2":{"146":1}}],["greiner",{"0":{"71":1,"73":1,"76":1},"2":{"64":3,"69":2,"70":1,"72":1,"75":1}}],["green",{"2":{"14":1,"193":1}}],["grid",{"2":{"6":1,"58":1,"66":4}}],["g2",{"2":{"3":5,"6":5,"91":4,"94":3,"97":12,"98":6,"99":9,"100":6,"101":6,"102":3,"103":4,"104":2,"105":21,"108":10,"109":6,"110":10,"111":8,"112":4,"113":2,"114":4,"115":2,"123":6,"126":10,"127":6,"128":10,"129":6,"130":5,"131":4,"132":4,"133":2,"136":10,"137":6,"138":9,"139":6,"140":6,"141":3,"142":4,"143":2}}],["g1",{"2":{"3":5,"4":1,"6":6,"91":4,"94":3,"97":12,"98":6,"99":9,"100":6,"101":6,"102":3,"103":2,"104":4,"105":21,"108":9,"109":6,"110":10,"111":8,"112":4,"113":2,"114":2,"115":4,"123":6,"126":10,"127":6,"128":9,"129":6,"130":5,"131":4,"132":2,"133":4,"136":10,"137":6,"138":9,"139":6,"140":6,"141":3,"142":2,"143":4}}],["generic",{"2":{"22":1,"178":1}}],["generation",{"2":{"181":2}}],["generated",{"2":{"31":1,"32":1,"50":1,"53":1,"56":1,"59":1,"60":1,"63":1,"64":1,"66":1,"69":1,"71":1,"73":1,"74":1,"76":1,"79":1,"85":1,"88":1,"91":1,"94":1,"104":1,"105":1,"115":1,"116":1,"119":1,"123":1,"133":1,"143":1,"146":1,"147":1,"148":1,"154":1,"155":1,"156":1,"157":1,"161":1,"164":1,"167":1,"170":1,"171":1,"172":1,"174":1,"178":1,"181":1,"185":1,"186":1,"187":1,"189":1,"190":1,"199":1}}],["generate",{"2":{"7":1,"13":2,"181":1,"199":2}}],["generalization",{"2":{"57":1}}],["generalized",{"2":{"6":1,"57":3,"59":1}}],["generalise",{"2":{"6":4,"181":1}}],["generally",{"2":{"6":2,"159":2,"189":3}}],["general",{"0":{"2":1,"4":1},"1":{"3":1,"4":1},"2":{"18":1,"20":1,"25":1,"27":1,"149":1,"155":1,"174":1}}],["getfeature",{"2":{"154":1,"155":1,"157":3,"190":5}}],["getcolumn",{"2":{"154":2,"155":2,"157":1}}],["getgeom",{"2":{"103":1,"104":1,"114":1,"115":1,"123":2,"132":1,"133":1,"142":1,"143":1,"154":3,"155":2,"157":3,"181":3,"190":6}}],["getring",{"2":{"64":1}}],["getindex",{"2":{"59":2}}],["gethole",{"2":{"53":1,"56":1,"63":1,"64":4,"66":1,"69":1,"70":2,"72":2,"76":6,"79":1,"88":2,"116":5,"164":1,"192":1}}],["getexterior",{"2":{"53":1,"56":1,"59":1,"63":1,"64":3,"66":1,"69":1,"70":2,"72":2,"75":3,"76":6,"79":1,"88":2,"116":5,"146":1,"147":1,"164":1,"192":1}}],["getpolygon",{"2":{"71":3,"73":2,"76":2,"88":3}}],["getpoint",{"2":{"52":1,"53":5,"55":2,"56":1,"59":1,"62":1,"63":6,"64":3,"65":2,"66":3,"68":3,"78":1,"79":6,"87":4,"88":13,"90":4,"93":1,"96":1,"105":7,"107":4,"116":28,"118":2,"121":4,"123":2,"125":2,"128":2,"135":4,"146":5,"164":3,"176":4,"178":2,"185":1,"190":3,"192":2}}],["getproperty",{"2":{"13":2,"14":1}}],["get",{"2":{"6":1,"13":1,"32":1,"55":1,"60":1,"64":9,"70":1,"71":1,"72":1,"73":2,"75":2,"85":2,"147":4,"154":3,"155":1,"174":1,"177":3,"181":1,"182":1,"184":1,"185":2,"189":5,"190":1,"192":2,"200":2}}],["geoparquet",{"2":{"196":4}}],["geopoly1",{"2":{"194":1,"195":1}}],["geopoly2",{"2":{"194":1,"195":1}}],["geoaxis",{"2":{"193":4,"197":1}}],["geographic",{"2":{"159":1,"193":1,"196":1}}],["geographiclib",{"2":{"6":1,"177":1}}],["geointeface",{"2":{"152":1}}],["geointerace",{"2":{"22":1}}],["geointerfacemakie",{"2":{"180":1,"199":1,"200":1}}],["geointerface",{"0":{"30":1},"2":{"1":20,"3":9,"4":2,"6":35,"11":1,"13":1,"14":1,"15":1,"22":3,"25":1,"27":1,"30":1,"31":7,"52":1,"53":1,"55":1,"56":1,"59":23,"62":1,"63":1,"64":1,"65":1,"66":1,"68":1,"69":1,"70":1,"72":1,"73":1,"75":1,"78":1,"79":11,"82":1,"83":1,"84":1,"87":1,"88":2,"90":1,"91":2,"93":1,"94":2,"96":1,"97":2,"105":1,"107":1,"108":3,"118":1,"119":2,"121":1,"122":2,"125":1,"126":2,"135":1,"136":2,"146":5,"147":1,"151":3,"152":3,"154":11,"157":5,"163":9,"166":1,"167":1,"169":23,"171":1,"173":2,"176":1,"177":1,"180":1,"181":2,"186":13,"187":1,"190":1,"191":1,"192":122,"193":5,"194":9,"197":1,"199":1,"200":1}}],["geo",{"2":{"147":1,"177":4,"193":2}}],["geotable",{"2":{"29":1}}],["geojson",{"2":{"11":1,"181":2,"191":1,"193":4,"196":3}}],["geodataframes",{"2":{"196":3}}],["geodesy",{"2":{"159":1}}],["geodesic`",{"2":{"177":2}}],["geodesic",{"0":{"197":1},"2":{"6":7,"31":3,"159":6,"176":6,"177":8,"178":3,"197":1}}],["geodesicsegments",{"2":{"0":1,"6":1,"175":1,"176":3,"177":6,"178":1,"197":1}}],["geod",{"2":{"6":2,"177":3}}],["geoformattypes",{"2":{"1":2,"173":2,"191":1,"193":2,"194":8}}],["geomakie",{"0":{"193":1},"2":{"191":2,"193":5,"197":2}}],["geomtype",{"2":{"154":2,"157":1}}],["geoms",{"2":{"50":3,"85":1,"116":1,"154":12,"157":9}}],["geomfromgeos",{"2":{"32":1,"177":1}}],["geom2",{"2":{"3":8,"4":1,"6":9,"79":6,"88":1,"105":6,"108":1,"119":3,"122":4,"123":2,"126":1,"136":2}}],["geom1",{"2":{"3":8,"4":1,"6":9,"79":6,"88":1,"105":4,"108":1,"119":3,"122":4,"123":2,"126":1,"136":2}}],["geometrical",{"2":{"198":1}}],["geometric",{"2":{"25":2,"27":2,"62":1,"159":1}}],["geometries",{"0":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"123":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"192":1,"193":1,"194":1},"2":{"1":6,"3":8,"4":14,"6":55,"18":3,"20":1,"22":3,"25":2,"27":2,"29":4,"52":1,"53":3,"56":4,"63":1,"66":2,"69":1,"70":5,"72":5,"73":4,"75":5,"78":1,"79":4,"85":6,"87":1,"88":7,"91":1,"96":1,"97":1,"105":2,"108":2,"116":1,"118":1,"119":1,"121":2,"122":3,"125":2,"126":2,"136":2,"138":1,"149":1,"151":3,"153":2,"154":6,"155":3,"156":1,"157":10,"171":1,"173":2,"175":3,"176":1,"177":4,"178":1,"179":1,"182":1,"183":1,"184":1,"187":1,"190":1,"191":5,"193":1,"194":2,"195":2,"196":1,"198":5,"199":1,"201":1}}],["geometry=",{"2":{"195":1}}],["geometrybasics",{"2":{"31":3,"58":2,"59":10,"78":1,"85":1,"97":1,"126":1,"136":1}}],["geometrycolumns",{"2":{"154":5,"155":2,"157":1}}],["geometrycollections",{"2":{"198":1}}],["geometrycollectiontrait",{"2":{"23":1,"32":1,"103":1,"104":1,"114":1,"115":1,"132":1,"133":1,"142":1,"143":1}}],["geometrycollection",{"2":{"6":1,"23":1,"200":1}}],["geometrycorrections",{"2":{"166":1}}],["geometrycorrection",{"2":{"0":1,"6":11,"164":2,"165":2,"166":13,"167":11,"170":4}}],["geometry",{"0":{"2":1,"72":1,"103":2,"104":2,"114":2,"115":2,"132":2,"133":2,"142":2,"143":2,"165":1,"173":1,"179":1,"191":1,"195":1},"1":{"3":1,"4":1,"166":1,"167":1,"174":1,"180":1,"181":1,"192":1,"193":1,"194":1,"195":1,"196":1},"2":{"1":10,"3":24,"4":12,"6":67,"9":1,"11":2,"18":4,"20":1,"23":3,"29":1,"31":1,"53":7,"56":4,"60":4,"63":3,"65":1,"66":4,"69":4,"78":4,"79":6,"83":1,"88":8,"90":5,"91":2,"93":4,"94":4,"96":4,"97":5,"98":4,"99":1,"103":3,"104":4,"105":3,"107":2,"108":5,"109":4,"110":2,"111":2,"114":3,"115":4,"116":2,"118":2,"122":3,"123":4,"125":3,"126":4,"127":4,"128":2,"132":3,"133":4,"135":4,"136":5,"137":4,"142":3,"143":4,"145":1,"149":4,"151":3,"152":2,"154":28,"155":12,"157":10,"159":5,"163":1,"164":1,"165":2,"166":23,"167":6,"171":1,"172":1,"173":6,"175":3,"176":1,"177":5,"178":10,"181":6,"190":6,"192":1,"193":1,"194":4,"195":2,"196":2,"198":1,"199":7,"200":4,"201":2}}],["geometryopsprojext",{"2":{"173":1,"174":1,"177":1,"178":1}}],["geometryopslibgeosext",{"2":{"60":1}}],["geometryopscore",{"2":{"0":2,"1":2,"31":2,"151":2,"157":4}}],["geometryops",{"0":{"0":1,"25":1,"31":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":103,"1":4,"3":18,"4":9,"5":3,"6":104,"7":2,"11":1,"13":1,"14":1,"15":1,"17":2,"25":1,"26":4,"27":1,"31":1,"32":2,"52":1,"55":1,"58":5,"60":1,"62":1,"65":1,"68":1,"69":1,"70":1,"72":1,"73":1,"75":1,"78":1,"80":1,"82":1,"83":1,"84":3,"87":1,"88":1,"90":1,"91":2,"93":1,"94":2,"96":1,"97":2,"105":2,"107":1,"108":2,"118":1,"119":1,"121":1,"122":1,"125":1,"126":2,"135":1,"136":2,"146":3,"147":2,"151":1,"154":1,"158":2,"159":1,"163":1,"166":1,"167":4,"169":1,"174":1,"176":1,"177":2,"180":1,"181":2,"186":1,"188":1,"189":2,"190":1,"191":1,"192":3,"197":1,"198":1,"199":2,"200":2}}],["geom",{"2":{"1":7,"4":21,"6":41,"18":3,"31":12,"32":10,"35":5,"36":5,"37":5,"38":5,"40":4,"41":4,"42":4,"43":4,"44":4,"45":4,"46":4,"47":4,"48":4,"49":4,"53":25,"56":17,"63":28,"64":16,"66":6,"69":15,"70":8,"71":2,"72":12,"73":10,"75":9,"76":9,"79":28,"88":45,"97":4,"105":1,"108":4,"116":3,"123":1,"126":4,"136":4,"146":3,"147":1,"149":2,"151":4,"154":34,"155":13,"157":52,"170":11,"172":4,"178":24,"181":36,"185":3,"186":7,"187":4,"190":13,"200":6}}],["geospatial",{"0":{"194":1,"196":1},"2":{"191":5,"193":1,"194":3,"196":5}}],["geoscontext",{"2":{"177":1}}],["geosdensify",{"2":{"32":2,"177":3}}],["geos",{"0":{"189":1},"2":{"0":1,"6":6,"32":8,"33":1,"35":1,"36":1,"37":1,"38":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"60":4,"80":1,"84":4,"85":1,"159":1,"179":5,"181":2,"188":1,"189":12}}],["got",{"2":{"185":3}}],["goes",{"2":{"6":2,"146":2}}],["good",{"2":{"6":1,"59":1,"189":2,"194":1}}],["going",{"2":{"4":4,"6":5,"66":2,"84":1,"88":5,"146":1,"147":1,"191":1}}],["go",{"2":{"1":5,"3":17,"4":2,"6":40,"11":9,"13":1,"14":1,"15":6,"18":1,"31":2,"32":5,"35":1,"36":1,"37":1,"38":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":2,"52":1,"55":1,"59":1,"62":2,"65":1,"68":2,"69":2,"70":2,"72":2,"73":2,"75":2,"78":6,"82":3,"83":2,"84":8,"85":2,"87":1,"88":2,"90":2,"91":2,"93":2,"94":2,"96":1,"97":2,"105":1,"107":1,"108":2,"118":1,"119":2,"121":1,"122":2,"125":1,"126":2,"135":2,"136":2,"146":6,"147":2,"149":1,"151":2,"154":2,"157":2,"163":3,"169":3,"176":7,"177":8,"180":2,"181":49,"186":3,"189":1,"190":2,"191":1,"192":3,"194":1,"196":1,"197":3,"198":9,"199":2,"200":5,"201":1}}],["gtrait",{"2":{"79":2}}],["gt",{"2":{"1":1,"6":1,"9":2,"10":1,"11":5,"64":3,"146":3,"151":1}}],["gif",{"2":{"183":1}}],["gives",{"2":{"200":1}}],["give",{"2":{"116":1,"196":1}}],["given",{"2":{"4":7,"6":21,"18":2,"29":1,"52":1,"53":1,"56":2,"63":3,"64":8,"66":3,"69":5,"70":1,"71":2,"72":1,"73":2,"75":1,"76":2,"79":8,"88":4,"90":1,"91":1,"93":1,"94":1,"97":1,"108":1,"116":7,"118":1,"119":1,"126":1,"128":1,"136":1,"149":1,"155":1,"166":4,"167":1,"169":1,"175":2,"177":2,"178":2,"184":1}}],["github",{"2":{"6":2,"85":1,"159":1}}],["gis",{"2":{"5":1,"6":1,"25":1,"27":1,"59":1}}],["gi",{"2":{"1":13,"3":36,"4":31,"6":102,"11":8,"13":15,"14":15,"15":8,"18":2,"31":1,"32":12,"35":3,"36":3,"37":3,"38":3,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":3,"52":3,"53":30,"55":5,"56":21,"58":1,"62":5,"63":38,"64":34,"65":5,"66":17,"68":6,"69":13,"70":19,"71":16,"72":25,"73":24,"75":17,"76":36,"78":8,"79":42,"82":1,"83":1,"84":3,"85":4,"87":7,"88":99,"90":7,"91":3,"93":3,"94":3,"96":3,"97":4,"98":6,"99":12,"100":10,"101":7,"102":4,"103":8,"104":6,"105":21,"107":7,"108":2,"109":3,"110":12,"111":14,"112":4,"113":2,"114":8,"115":6,"116":59,"118":5,"119":3,"121":7,"122":5,"123":60,"125":5,"126":3,"127":6,"128":15,"129":10,"130":7,"131":4,"132":8,"133":6,"135":7,"136":2,"137":6,"138":12,"139":10,"140":7,"141":4,"142":8,"143":6,"146":32,"147":15,"149":4,"151":9,"154":42,"155":25,"157":54,"160":9,"163":2,"164":10,"166":9,"169":3,"170":8,"171":1,"172":5,"176":6,"177":6,"178":13,"180":2,"181":34,"185":4,"186":9,"187":5,"190":55,"191":1,"192":21,"193":2,"194":2,"197":2,"199":5,"200":2}}],["ty",{"2":{"147":3}}],["typing",{"2":{"60":1,"174":1,"177":1}}],["typically",{"2":{"57":1,"195":1}}],["typemax",{"2":{"79":1,"147":9}}],["typeof",{"2":{"19":1,"59":3,"154":2,"157":1,"160":1,"178":1,"201":1}}],["type=",{"2":{"6":2}}],["type2",{"2":{"6":2,"88":4}}],["type1",{"2":{"6":2,"88":5}}],["types",{"0":{"158":1,"188":1},"1":{"159":1,"160":1,"161":1,"189":1},"2":{"6":4,"23":1,"24":1,"31":1,"59":3,"66":1,"69":1,"116":3,"158":1,"161":1,"181":1,"188":3,"198":1}}],["type",{"2":{"4":11,"5":1,"6":40,"11":1,"22":2,"23":1,"24":2,"30":2,"53":9,"56":11,"58":1,"59":8,"63":8,"64":21,"66":8,"69":6,"70":7,"71":6,"72":8,"73":19,"75":7,"76":5,"79":28,"88":2,"154":5,"157":42,"159":2,"160":3,"161":6,"165":1,"166":5,"167":2,"172":1,"177":1,"178":1,"181":3,"187":1,"189":1,"190":3,"197":1}}],["tx",{"2":{"147":3}}],["tᵢ",{"2":{"59":1}}],["tutorial",{"2":{"191":1,"198":1}}],["tutorials",{"2":{"26":2}}],["tups",{"2":{"164":4}}],["tuplepoint",{"2":{"31":3,"190":1}}],["tuple",{"0":{"187":1},"2":{"4":1,"6":19,"31":2,"59":2,"63":3,"64":5,"66":3,"69":1,"73":31,"116":17,"146":2,"147":5,"154":2,"163":6,"169":13,"176":1,"181":2,"183":1,"185":2,"190":6,"192":99,"199":2}}],["tuples",{"2":{"0":1,"6":2,"31":1,"60":1,"63":1,"64":1,"69":1,"70":3,"71":1,"72":2,"73":1,"75":4,"76":5,"85":2,"164":2,"170":2,"181":2,"187":2,"200":2}}],["turf",{"2":{"146":1}}],["turned",{"2":{"147":1,"154":1}}],["turning",{"2":{"147":8}}],["turn",{"2":{"6":1,"147":1}}],["temporary",{"2":{"64":1}}],["term",{"2":{"56":1}}],["terms",{"2":{"6":1,"59":1}}],["teach",{"2":{"26":1}}],["technically",{"2":{"23":1,"162":1}}],["technique",{"2":{"11":1}}],["tell",{"2":{"18":1,"116":1,"161":1,"201":1}}],["test",{"2":{"64":1,"181":2,"189":1}}],["testing",{"0":{"15":1}}],["tests",{"2":{"9":2}}],["text=",{"2":{"6":2}}],["t2",{"2":{"6":5,"59":47,"98":1,"105":2,"123":1,"127":1,"137":1}}],["t1",{"2":{"6":6,"59":51,"105":2}}],["t=float64",{"2":{"4":1,"6":3,"63":3}}],["two",{"2":{"3":4,"4":10,"6":22,"23":2,"53":2,"55":1,"59":1,"63":1,"64":6,"66":3,"70":2,"72":1,"73":14,"75":4,"76":3,"79":5,"87":3,"88":12,"90":2,"91":1,"93":1,"94":1,"96":1,"105":1,"107":1,"116":2,"118":2,"119":2,"121":4,"122":2,"123":2,"125":3,"126":1,"135":2,"147":3,"166":2,"167":1,"169":2,"170":2,"176":1,"189":1,"192":1,"198":3,"199":3}}],["task",{"2":{"154":3,"155":3}}],["tasks",{"2":{"154":5,"155":5}}],["taskrange",{"2":{"154":5,"155":5}}],["tags",{"2":{"64":4}}],["taget",{"2":{"6":2}}],["taylor",{"2":{"6":1,"59":1}}],["table2",{"2":{"198":4}}],["table1",{"2":{"198":12}}],["tables",{"2":{"22":4,"31":1,"154":6,"155":5,"157":2}}],["table",{"0":{"195":1},"2":{"6":2,"18":1,"29":2,"154":13,"155":4,"178":1,"181":1,"195":1,"196":1,"198":2}}],["taking",{"2":{"6":3,"63":1,"70":1,"71":1,"72":1,"73":1,"75":1,"76":1,"168":1}}],["takes",{"2":{"64":3,"198":1}}],["taken",{"2":{"20":1,"58":1}}],["take",{"2":{"1":1,"6":2,"29":1,"64":3,"70":1,"71":1,"72":1,"73":1,"76":1,"146":2,"147":2,"149":1,"155":1,"173":1}}],["target=gi",{"2":{"64":1}}],["target=nothing",{"2":{"35":1,"36":1,"37":1,"38":1,"70":1,"72":1,"75":1}}],["targets",{"2":{"23":1,"53":2,"56":3,"66":3,"79":3}}],["target",{"0":{"23":1},"2":{"1":14,"6":11,"15":3,"22":2,"23":2,"32":1,"59":1,"63":2,"64":1,"70":5,"71":11,"72":6,"73":10,"75":4,"76":13,"147":1,"149":1,"151":8,"152":5,"153":1,"154":34,"155":33,"157":87,"160":3,"170":2,"173":3,"181":2}}],["tilted",{"2":{"66":1}}],["tie",{"2":{"53":1}}],["timings",{"2":{"13":5}}],["timing",{"2":{"13":2}}],["times",{"2":{"4":1,"6":1,"171":1}}],["time",{"2":{"1":5,"13":3,"24":1,"58":1,"147":1,"159":1,"173":4,"189":1,"192":1,"193":1,"194":2,"199":1,"200":1}}],["title",{"2":{"13":2,"58":2,"84":2,"147":1,"177":1,"181":2}}],["tip",{"2":{"1":1,"5":1,"6":1,"59":1,"173":1,"198":1}}],["tree",{"2":{"198":1}}],["treating",{"2":{"181":1}}],["treated",{"2":{"116":5,"192":1}}],["treats",{"2":{"56":1,"79":1}}],["trials",{"2":{"177":2,"181":2}}],["triangles",{"2":{"57":1}}],["triangle",{"2":{"6":1,"57":4,"184":4,"199":1}}],["triangulation",{"2":{"6":1,"31":1,"85":1}}],["trivially",{"2":{"149":1}}],["try",{"2":{"74":3,"147":1,"152":1,"154":3,"155":3,"157":3,"200":1}}],["tr",{"2":{"56":3}}],["trues",{"2":{"170":3}}],["true",{"0":{"24":1},"2":{"1":5,"3":23,"4":3,"6":38,"31":1,"53":7,"56":1,"58":2,"60":1,"64":30,"66":6,"69":1,"70":1,"71":2,"72":1,"73":1,"75":2,"76":3,"79":4,"88":21,"90":1,"91":1,"93":2,"94":1,"96":2,"97":6,"99":1,"100":1,"101":4,"103":1,"104":1,"105":9,"107":2,"108":2,"110":1,"111":1,"112":3,"114":1,"115":1,"116":78,"118":3,"119":1,"121":2,"122":12,"123":18,"125":2,"126":6,"129":1,"130":1,"132":1,"133":1,"135":2,"136":7,"138":1,"139":1,"140":4,"142":1,"143":1,"146":4,"147":5,"151":2,"154":6,"155":2,"157":1,"159":1,"161":3,"170":1,"174":1,"177":1,"181":1,"198":1,"201":1}}],["traditional",{"2":{"147":1,"159":1}}],["traverse",{"2":{"64":1}}],["traced",{"2":{"64":1}}],["traces",{"2":{"64":1}}],["trace",{"2":{"64":2,"70":1,"72":1,"75":1}}],["track",{"2":{"64":3,"170":2}}],["tracing",{"2":{"6":1,"64":4,"66":1,"71":5,"73":2,"76":2}}],["transverse",{"2":{"193":1}}],["translate",{"2":{"58":2}}],["translation",{"2":{"1":2,"6":2,"181":2,"186":2,"192":3,"194":1}}],["transformations",{"2":{"31":10}}],["transformation",{"0":{"186":1},"2":{"6":1,"147":1,"154":1,"165":1,"173":1,"191":1}}],["transform",{"2":{"0":2,"1":6,"6":3,"15":2,"31":1,"149":1,"173":2,"181":1,"186":4,"192":4,"194":1}}],["trait`",{"2":{"157":1}}],["trait2",{"2":{"79":10,"88":2,"110":2,"111":2,"123":2,"128":2,"130":2,"131":2}}],["trait1",{"2":{"79":12,"88":2,"110":2,"111":2,"123":2,"128":2,"130":2,"131":2}}],["traits",{"2":{"6":1,"18":1,"122":1,"152":2,"160":3,"166":2,"181":2}}],["trait",{"2":{"1":5,"4":2,"6":4,"18":7,"20":1,"22":1,"31":1,"32":1,"53":2,"56":5,"59":6,"63":7,"66":2,"69":3,"70":2,"71":2,"72":6,"73":4,"75":2,"76":2,"79":7,"88":11,"97":3,"105":2,"108":3,"116":4,"122":4,"126":3,"136":3,"146":1,"149":1,"151":5,"152":3,"154":19,"155":9,"157":27,"160":8,"166":9,"167":1,"178":2,"181":2,"190":7,"192":1}}],["traittarget",{"0":{"160":1},"2":{"1":2,"31":2,"32":1,"53":1,"56":1,"63":1,"66":1,"70":2,"71":4,"72":3,"73":4,"75":2,"76":4,"79":1,"149":1,"151":2,"154":6,"155":6,"159":1,"160":20,"178":1,"181":1}}],["thus",{"2":{"53":1,"56":1,"64":3,"71":1,"73":1,"76":1}}],["though",{"2":{"20":1,"163":1}}],["those",{"2":{"6":1,"33":1,"53":1,"64":1,"73":1,"99":1,"138":1,"159":1,"178":1}}],["thing",{"0":{"30":1}}],["things",{"2":{"9":1}}],["this",{"0":{"30":1},"2":{"0":1,"1":1,"3":1,"4":6,"5":1,"6":30,"7":1,"18":1,"23":3,"24":2,"25":2,"27":2,"29":1,"31":1,"32":3,"33":1,"50":1,"52":2,"53":6,"55":2,"56":9,"58":3,"59":11,"60":2,"62":1,"63":4,"64":26,"65":1,"66":4,"68":1,"69":5,"71":1,"73":5,"74":1,"75":1,"76":2,"78":4,"79":6,"85":5,"88":4,"90":1,"91":2,"93":1,"94":2,"96":3,"97":3,"104":1,"105":1,"108":3,"115":1,"116":3,"119":2,"121":1,"122":3,"123":3,"126":3,"133":1,"135":1,"136":3,"143":1,"145":1,"146":3,"147":8,"148":2,"149":2,"152":2,"154":15,"155":7,"156":2,"157":2,"158":1,"159":4,"160":2,"161":4,"162":3,"164":3,"165":1,"166":6,"167":7,"168":4,"170":3,"171":2,"172":2,"173":4,"174":3,"175":3,"176":5,"177":5,"178":5,"179":2,"181":3,"185":9,"186":1,"187":1,"188":3,"189":2,"190":1,"191":1,"192":2,"193":4,"194":3,"195":3,"196":1,"198":3,"199":3,"200":3,"201":1}}],["three",{"2":{"26":1,"57":1,"73":1,"159":1,"178":1}}],["thread",{"2":{"154":3,"155":3}}],["threading",{"0":{"154":1},"2":{"154":5,"155":2,"161":1}}],["threads",{"2":{"1":1,"151":1,"154":5,"155":7}}],["threaded=",{"2":{"154":4,"155":5}}],["threaded=true",{"2":{"154":1}}],["threaded=false",{"2":{"56":1,"63":4,"66":2,"79":8,"154":1,"155":1,"171":1,"181":1}}],["threaded==true",{"2":{"1":1,"151":1,"154":1}}],["threaded",{"2":{"1":3,"4":1,"6":5,"24":1,"31":1,"32":2,"53":2,"56":1,"63":3,"66":3,"79":5,"151":2,"154":25,"155":27,"156":1,"161":2,"171":1,"178":13,"181":1}}],["through",{"2":{"6":4,"53":1,"59":1,"64":3,"66":1,"68":1,"69":2,"85":1,"97":1,"116":5,"136":1,"147":1,"152":1,"154":1,"167":2,"170":2,"183":1,"189":1,"192":1}}],["thrown",{"2":{"152":1}}],["throws",{"2":{"6":1,"189":1}}],["throw",{"2":{"4":1,"6":1,"76":1,"88":1,"147":1,"154":1,"155":1,"157":3}}],["than",{"2":{"1":1,"3":1,"6":10,"11":1,"64":2,"99":1,"105":1,"123":1,"138":1,"146":1,"147":2,"151":1,"153":1,"154":1,"158":1,"167":2,"168":1,"169":1,"170":2,"175":1,"177":2,"178":1,"182":1,"189":2}}],["that",{"2":{"1":1,"3":2,"4":8,"6":39,"9":1,"17":1,"18":4,"19":3,"20":1,"22":3,"25":1,"26":1,"27":1,"53":4,"55":2,"56":4,"59":4,"60":2,"62":2,"63":3,"64":17,"65":3,"66":5,"70":4,"71":5,"72":4,"73":14,"75":3,"76":5,"79":2,"80":1,"84":3,"85":4,"87":1,"88":11,"90":4,"91":1,"94":1,"96":2,"97":1,"107":1,"108":1,"116":3,"118":1,"119":1,"121":2,"122":5,"123":5,"125":2,"126":2,"128":2,"135":3,"136":1,"138":3,"146":1,"147":4,"149":1,"151":1,"154":5,"155":1,"156":1,"157":4,"158":2,"159":6,"160":1,"161":3,"162":3,"163":2,"164":1,"165":3,"166":2,"167":4,"168":2,"169":3,"170":4,"173":1,"175":2,"176":2,"177":3,"178":2,"181":2,"183":1,"185":1,"189":1,"193":4,"194":1,"195":2,"196":3,"198":1,"199":2}}],["theta",{"2":{"159":1}}],["theorem",{"2":{"79":1}}],["themselves",{"2":{"59":1}}],["them",{"2":{"25":1,"27":1,"64":1,"147":2,"148":2,"154":3,"157":2,"163":2,"168":1,"169":1,"181":1,"192":1,"194":1,"196":3}}],["thereof",{"2":{"149":1,"155":1}}],["therefore",{"2":{"78":1,"162":1}}],["there",{"2":{"6":2,"22":1,"53":1,"59":2,"60":1,"64":3,"66":1,"69":2,"71":1,"73":6,"74":1,"76":1,"116":1,"123":2,"147":3,"148":1,"149":1,"154":4,"159":1,"160":1,"163":1,"176":1,"185":1,"189":1,"193":2,"196":3}}],["then",{"2":{"6":5,"18":1,"22":1,"29":1,"53":3,"59":2,"64":6,"66":1,"70":1,"72":2,"73":6,"74":2,"75":2,"76":2,"85":1,"116":1,"147":2,"149":1,"152":1,"154":2,"155":3,"168":1,"177":2,"181":1,"193":1,"198":1,"199":1}}],["their",{"2":{"3":1,"4":1,"6":2,"59":1,"62":2,"76":1,"79":2,"113":1,"122":1,"125":1,"129":1,"130":1,"139":3,"140":3,"149":1,"155":1,"163":1,"169":1,"171":1}}],["they",{"2":{"3":3,"4":11,"6":24,"20":2,"22":1,"23":1,"24":1,"57":1,"63":2,"64":8,"66":2,"70":2,"72":1,"73":6,"75":2,"76":3,"84":1,"87":3,"88":16,"97":1,"107":1,"111":2,"112":1,"113":1,"116":2,"118":1,"121":2,"122":2,"123":2,"128":1,"130":1,"131":1,"139":1,"140":1,"147":6,"154":2,"157":2,"162":1,"167":2,"170":2,"176":1,"185":1,"188":1,"199":1}}],["these",{"2":{"1":2,"6":4,"24":1,"53":1,"59":5,"64":3,"76":1,"87":1,"88":1,"90":1,"93":1,"97":1,"105":2,"107":1,"108":1,"118":1,"121":1,"123":1,"125":2,"126":1,"135":1,"136":1,"146":1,"147":3,"151":1,"152":1,"154":2,"173":1,"177":1,"181":2,"189":1,"196":1,"198":1}}],["the",{"0":{"26":1,"29":1,"62":1,"83":1,"84":1},"2":{"1":28,"3":62,"4":112,"5":12,"6":384,"7":5,"9":3,"10":1,"11":3,"17":5,"18":10,"19":2,"20":4,"22":4,"23":5,"24":3,"25":3,"26":4,"27":3,"29":3,"32":3,"52":1,"53":63,"55":12,"56":43,"57":15,"58":12,"59":71,"60":6,"62":6,"63":25,"64":116,"65":7,"66":47,"68":2,"69":7,"70":27,"71":23,"72":27,"73":82,"74":1,"75":29,"76":70,"78":11,"79":81,"80":6,"84":11,"85":16,"87":5,"88":47,"90":9,"91":11,"93":4,"94":11,"96":8,"97":25,"100":8,"101":9,"102":3,"103":3,"104":2,"105":5,"107":2,"108":21,"110":8,"111":6,"112":4,"114":3,"115":2,"116":123,"118":5,"119":6,"121":5,"122":9,"123":18,"125":5,"126":21,"128":6,"129":10,"130":7,"131":3,"132":3,"133":2,"135":7,"136":24,"138":2,"139":9,"140":9,"141":6,"142":2,"143":2,"145":1,"146":8,"147":47,"148":1,"149":9,"151":14,"152":11,"154":69,"155":23,"156":2,"157":19,"158":1,"159":24,"161":5,"162":5,"163":5,"164":4,"165":2,"166":13,"167":10,"168":4,"169":8,"170":6,"171":1,"172":5,"173":14,"174":2,"175":3,"176":5,"177":26,"178":21,"179":3,"181":18,"182":3,"183":6,"184":3,"185":2,"186":3,"187":1,"188":2,"189":21,"192":10,"193":11,"194":10,"195":2,"196":4,"198":10,"199":17,"200":3}}],["t",{"2":{"0":1,"4":28,"6":54,"9":1,"23":1,"31":8,"32":1,"53":32,"56":41,"59":26,"63":38,"64":74,"66":44,"69":18,"70":12,"71":12,"72":12,"73":156,"75":10,"76":20,"79":87,"88":17,"96":1,"111":1,"116":24,"123":1,"125":1,"129":2,"130":1,"147":14,"154":5,"155":4,"157":3,"159":5,"160":14,"161":2,"167":2,"170":2,"177":3,"178":4,"181":1,"187":7,"189":3,"190":10,"192":4,"200":1}}],["tokyo",{"2":{"200":1}}],["toy",{"2":{"198":1}}],["together",{"2":{"73":1,"76":1,"192":1,"199":1}}],["touching",{"0":{"129":1},"2":{"73":1,"76":1}}],["touch",{"0":{"130":1,"131":1,"132":1},"2":{"64":1,"125":1,"128":2,"130":1,"132":1}}],["touches",{"0":{"42":1,"124":1,"125":1,"128":1},"1":{"125":1,"126":1},"2":{"0":2,"3":3,"6":3,"31":1,"42":2,"124":1,"125":3,"126":11,"127":6,"128":11,"129":15,"130":9,"131":8,"132":3,"133":4,"198":1}}],["totally",{"2":{"75":1}}],["total",{"2":{"56":1,"59":2,"64":2,"66":1}}],["towards",{"2":{"25":1,"27":1}}],["topright",{"2":{"181":1}}],["topologypreserve",{"2":{"179":1}}],["topology",{"2":{"179":1}}],["topological",{"2":{"159":2}}],["top",{"2":{"20":1,"26":1,"64":1,"147":1}}],["took",{"2":{"200":1}}],["tools",{"2":{"17":1}}],["too",{"2":{"6":1,"73":1,"175":1,"178":1}}],["tol^2",{"2":{"182":1,"183":1}}],["tolerances",{"2":{"184":1,"185":29}}],["tolerance",{"2":{"182":1,"183":1,"184":1,"185":17}}],["tol",{"2":{"6":12,"177":2,"181":18,"182":7,"183":15,"184":8,"185":18}}],["todo",{"2":{"3":2,"6":2,"32":1,"64":1,"73":1,"85":2,"105":4,"123":2,"147":1,"154":1,"161":1,"164":1,"181":1}}],["to",{"0":{"9":1,"23":1,"26":1,"74":1,"98":1,"109":1,"123":1,"127":1,"137":1},"2":{"0":2,"1":22,"3":1,"4":33,"5":4,"6":125,"7":2,"9":3,"10":2,"11":2,"13":1,"17":2,"18":9,"19":1,"20":2,"22":3,"23":4,"24":2,"25":3,"26":2,"27":3,"29":4,"30":1,"52":1,"53":8,"55":1,"56":4,"57":4,"58":1,"59":26,"60":2,"62":2,"63":5,"64":32,"65":1,"66":12,"68":1,"69":3,"70":8,"71":4,"72":8,"73":27,"75":7,"76":11,"78":6,"79":32,"80":1,"82":1,"83":1,"84":4,"85":6,"87":2,"88":17,"90":1,"91":1,"93":3,"94":1,"96":2,"97":7,"105":2,"107":1,"108":7,"116":21,"118":2,"119":1,"121":3,"122":1,"123":5,"125":1,"126":7,"128":1,"135":1,"136":7,"146":4,"147":16,"149":4,"151":9,"152":6,"153":1,"154":33,"155":11,"156":7,"157":23,"159":7,"160":2,"161":6,"162":2,"163":3,"165":4,"166":8,"167":5,"168":3,"169":1,"170":4,"171":3,"172":1,"173":4,"174":1,"175":3,"176":3,"177":9,"178":7,"179":1,"181":4,"182":1,"183":15,"184":1,"185":2,"186":4,"187":1,"188":2,"189":9,"190":28,"191":4,"192":6,"193":10,"194":6,"195":7,"196":5,"197":1,"198":7,"199":5,"200":2,"201":8}}],["o",{"2":{"155":24}}],["odd",{"2":{"116":1}}],["own",{"2":{"76":1,"149":2}}],["occur",{"2":{"73":1}}],["occurs",{"2":{"73":1}}],["occupied",{"2":{"55":1}}],["old",{"2":{"64":8,"123":1,"154":3}}],["ourselves",{"2":{"177":1}}],["our",{"2":{"24":1,"177":1,"192":4,"193":3,"199":1}}],["out=3",{"2":{"116":1}}],["out=4",{"2":{"72":1}}],["out`",{"2":{"72":1,"116":1}}],["out",{"2":{"6":3,"64":12,"66":23,"73":6,"76":4,"78":5,"85":1,"97":4,"105":1,"108":3,"116":102,"122":4,"123":2,"126":4,"136":4,"146":1,"154":1,"178":1,"189":2}}],["outside",{"2":{"3":2,"4":1,"6":3,"64":3,"66":1,"71":2,"73":4,"76":3,"78":2,"79":1,"94":1,"96":1,"107":1,"116":12,"123":3,"141":1}}],["outputs",{"2":{"64":1}}],["output",{"2":{"3":8,"4":1,"6":18,"18":1,"23":1,"69":2,"70":1,"72":1,"73":1,"75":1,"76":2,"88":1,"91":1,"94":1,"97":1,"108":1,"119":1,"122":1,"126":1,"136":1,"146":2,"181":1,"185":1,"190":1}}],["outerjoin",{"2":{"198":1}}],["outermost",{"2":{"154":1}}],["outer",{"2":{"1":1,"151":1,"152":1,"154":2,"199":1}}],["omit",{"2":{"6":1,"177":1}}],["obtain",{"2":{"154":1}}],["obtained",{"2":{"23":1}}],["observable",{"2":{"14":2}}],["obs",{"2":{"14":10}}],["obviously",{"2":{"4":1,"6":1,"171":1}}],["objects",{"2":{"1":4,"4":1,"6":10,"151":4,"152":5,"154":4,"155":1,"157":6,"171":1,"175":1,"181":2,"187":1}}],["object",{"2":{"1":4,"4":1,"5":1,"6":5,"20":1,"59":1,"78":1,"116":4,"151":1,"152":5,"154":1,"157":4,"171":1,"173":3,"177":1,"181":1,"187":1}}],["obj",{"2":{"1":4,"4":1,"6":10,"151":2,"154":1,"155":1,"157":13,"171":1,"172":2,"177":3,"181":3,"186":1,"187":1}}],["others",{"2":{"60":1,"170":1}}],["otherwise",{"2":{"4":2,"6":3,"60":1,"64":1,"71":1,"73":1,"79":2,"147":1,"172":1,"174":1,"177":1,"190":1}}],["other",{"0":{"4":1,"6":1,"157":1},"2":{"3":4,"6":10,"53":1,"64":5,"70":1,"72":1,"73":1,"75":2,"76":3,"79":2,"80":2,"88":2,"90":1,"99":1,"116":8,"118":1,"121":1,"122":1,"123":3,"125":2,"126":2,"129":1,"138":1,"147":1,"152":1,"154":1,"157":2,"160":1,"167":2,"168":1,"170":2,"181":2,"183":2,"188":1,"189":1,"193":1,"198":4,"201":1}}],["ogc",{"0":{"3":1}}],["over=3",{"2":{"72":1}}],["over`",{"2":{"72":1}}],["overflow",{"2":{"69":1}}],["overhead",{"2":{"22":1,"154":1,"155":1}}],["overrides",{"0":{"33":1},"1":{"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1},"2":{"33":1}}],["override",{"2":{"6":1,"59":1}}],["overlapping",{"2":{"64":11,"73":4,"76":6}}],["overlap",{"2":{"3":3,"6":3,"9":1,"64":2,"73":8,"76":2,"93":1,"97":1,"116":2,"121":5,"122":1,"123":5,"136":1,"168":1}}],["overlaps",{"0":{"46":1,"120":1,"121":1},"1":{"121":1,"122":1},"2":{"0":8,"3":4,"6":10,"31":1,"46":2,"73":1,"120":1,"121":3,"122":9,"123":45,"147":1,"198":1}}],["over",{"2":{"1":1,"6":2,"55":2,"56":1,"63":3,"64":5,"66":1,"72":1,"73":11,"76":1,"84":1,"97":1,"105":1,"108":1,"116":15,"122":1,"123":2,"126":1,"136":1,"151":1,"154":9,"155":11,"157":3,"192":3}}],["opposed",{"2":{"197":1}}],["opposite",{"2":{"3":5,"6":5,"64":2,"71":1,"73":2,"76":1,"91":2,"94":2,"97":1,"119":2,"136":1}}],["ops",{"2":{"155":1}}],["operable",{"2":{"159":1}}],["operates",{"2":{"154":1,"155":1,"162":1,"168":1}}],["operate",{"2":{"18":1,"29":1,"155":1}}],["operations",{"0":{"23":1,"34":1},"1":{"35":1,"36":1,"37":1,"38":1},"2":{"23":1,"26":1,"73":1,"76":1,"149":1}}],["operation",{"2":{"6":3,"64":1,"149":1,"155":1,"159":1,"167":2,"170":2,"189":2,"198":1}}],["open",{"2":{"64":1,"163":1,"193":1}}],["open>",{"2":{"6":2}}],["optimisation",{"2":{"116":1}}],["optimise",{"2":{"105":1}}],["optimal",{"2":{"6":1,"85":1}}],["options",{"2":{"14":1,"64":1}}],["optional",{"2":{"4":5,"6":6,"53":1,"56":2,"66":1,"79":2}}],["op",{"2":{"1":3,"19":2,"63":1,"151":3,"155":35}}],["on=2",{"2":{"116":1}}],["on`",{"2":{"116":1}}],["once",{"2":{"105":1,"123":1,"147":1}}],["onto",{"2":{"79":1}}],["ones",{"2":{"169":1}}],["oneunit",{"2":{"59":1}}],["one",{"2":{"1":1,"3":7,"6":12,"23":1,"53":4,"56":2,"58":1,"59":1,"63":1,"64":5,"66":3,"70":1,"71":1,"72":1,"73":32,"75":2,"76":2,"78":2,"80":1,"96":1,"103":1,"105":1,"107":1,"116":18,"121":1,"122":1,"123":16,"125":2,"126":2,"129":3,"130":2,"131":2,"132":1,"133":1,"135":1,"136":1,"142":1,"146":1,"147":5,"154":1,"159":2,"169":1,"173":1,"177":1,"185":1,"186":1,"193":1,"198":1}}],["on",{"0":{"193":1},"2":{"1":2,"4":3,"6":9,"9":1,"18":1,"20":1,"23":2,"25":3,"27":3,"29":2,"32":1,"53":5,"56":3,"58":1,"59":2,"63":3,"64":28,"66":8,"69":1,"70":1,"71":5,"72":1,"73":4,"75":1,"76":2,"78":1,"79":3,"85":1,"88":2,"96":1,"97":7,"99":2,"100":3,"101":3,"102":1,"105":4,"108":6,"110":4,"111":1,"112":1,"116":125,"122":5,"123":8,"126":7,"128":2,"136":7,"138":2,"139":1,"140":1,"147":3,"149":1,"151":2,"154":12,"155":4,"157":2,"159":4,"161":2,"162":1,"164":1,"167":1,"168":1,"175":1,"177":1,"178":1,"183":1,"191":1,"193":3,"194":1,"196":1,"197":1,"198":4,"199":1,"200":2,"201":2}}],["only",{"2":{"0":1,"5":1,"6":10,"23":1,"33":2,"56":2,"58":2,"59":1,"60":1,"63":2,"64":4,"66":3,"69":1,"70":1,"72":1,"73":1,"75":1,"79":2,"85":3,"88":3,"121":3,"122":1,"125":1,"147":2,"154":1,"155":2,"159":2,"169":1,"175":1,"176":1,"178":1,"188":1,"189":2,"194":1,"200":1,"201":1}}],["often",{"2":{"193":1}}],["offers",{"2":{"192":1}}],["offer",{"2":{"177":1}}],["offset",{"2":{"53":8,"88":1}}],["off",{"2":{"4":1,"6":1,"64":4,"88":1,"116":6,"155":1}}],["of",{"0":{"83":1},"2":{"1":7,"3":28,"4":66,"5":5,"6":189,"7":2,"9":4,"17":3,"18":5,"19":1,"20":2,"22":1,"23":2,"24":2,"25":1,"26":1,"27":1,"29":3,"32":2,"52":1,"53":38,"55":5,"56":28,"57":9,"58":1,"59":13,"60":1,"62":3,"63":12,"64":84,"65":5,"66":31,"69":5,"70":12,"71":13,"72":10,"73":48,"75":9,"76":20,"78":6,"79":18,"80":5,"84":3,"85":3,"87":2,"88":19,"90":4,"91":5,"94":5,"96":6,"97":18,"99":1,"100":5,"101":5,"102":1,"103":2,"104":1,"105":1,"107":3,"108":14,"110":1,"111":1,"112":1,"114":2,"115":1,"116":85,"118":1,"119":3,"121":1,"122":4,"123":9,"125":2,"126":15,"128":3,"129":7,"130":5,"131":1,"132":2,"133":1,"135":4,"136":18,"138":3,"139":6,"140":6,"141":4,"142":1,"143":1,"145":2,"146":3,"147":19,"148":2,"149":3,"151":6,"152":5,"153":2,"154":21,"155":7,"157":2,"159":5,"160":2,"162":1,"163":1,"167":2,"168":4,"170":4,"172":3,"173":1,"175":2,"176":2,"177":5,"178":6,"181":8,"183":4,"184":2,"185":1,"187":1,"189":4,"190":2,"192":6,"193":4,"194":2,"195":1,"196":4,"198":4,"199":4,"200":2}}],["org",{"2":{"70":1,"72":1,"75":1,"116":2,"183":1}}],["organise",{"2":{"10":1}}],["orange",{"2":{"68":1,"78":1,"87":2,"90":2,"107":2,"121":2,"135":2}}],["oro",{"2":{"11":2}}],["originate",{"2":{"76":1}}],["originals",{"2":{"22":1}}],["original",{"2":{"6":4,"18":1,"22":1,"64":10,"69":5,"70":1,"72":1,"76":4,"152":1,"154":7,"166":1,"172":2,"178":1,"180":4,"181":1}}],["orient",{"0":{"13":1},"1":{"14":1,"15":1},"2":{"13":7,"14":12,"64":15,"73":53}}],["orientation",{"0":{"144":1},"1":{"145":1,"146":1},"2":{"6":2,"10":1,"31":1,"56":1,"64":10,"66":2,"70":1,"72":2,"73":2,"75":1,"116":16,"145":1,"181":1}}],["ordered",{"2":{"55":1}}],["order",{"0":{"84":1},"2":{"1":4,"3":1,"4":2,"6":5,"53":1,"55":1,"56":2,"59":1,"64":4,"73":1,"76":1,"79":2,"84":4,"85":1,"88":3,"91":1,"94":1,"97":1,"119":1,"151":2,"154":1,"155":1,"173":2,"181":1,"198":1}}],["or",{"0":{"24":1},"2":{"1":11,"3":3,"4":10,"6":46,"18":1,"20":1,"22":1,"23":1,"25":1,"27":1,"29":2,"31":1,"32":1,"53":4,"56":1,"59":1,"60":1,"62":2,"63":4,"64":24,"65":1,"69":1,"70":1,"71":3,"72":2,"73":9,"75":1,"76":2,"78":2,"79":4,"80":1,"85":1,"88":3,"90":1,"97":1,"99":2,"100":1,"101":1,"102":1,"103":1,"104":1,"107":2,"110":2,"111":3,"112":2,"113":1,"114":1,"115":1,"116":26,"118":2,"119":1,"121":1,"122":2,"125":1,"126":1,"132":1,"133":1,"136":1,"138":2,"142":1,"143":1,"145":2,"146":3,"147":7,"149":4,"151":7,"153":1,"154":8,"155":3,"156":2,"157":2,"159":2,"160":3,"161":1,"162":1,"164":1,"166":5,"167":2,"173":2,"174":1,"175":2,"177":2,"178":4,"179":1,"181":3,"183":2,"185":2,"187":1,"190":2,"198":1,"200":2}}],["ecosystem",{"2":{"158":1}}],["effects",{"2":{"154":2,"155":1}}],["efficiently",{"2":{"20":1}}],["efficient",{"2":{"6":1,"59":1,"70":2,"72":2,"75":2,"85":1,"164":1}}],["e2",{"2":{"116":4}}],["e1",{"2":{"116":8}}],["euclid",{"2":{"66":2,"79":11,"116":1,"182":1}}],["euclidean",{"2":{"4":1,"6":1,"59":13,"79":6,"159":6,"178":1}}],["everything",{"2":{"181":1}}],["everywhere",{"2":{"159":1}}],["every",{"2":{"64":1,"88":2,"152":1,"189":1}}],["evenly",{"2":{"199":1}}],["eventually",{"2":{"64":1}}],["even",{"2":{"56":2,"66":1,"73":1,"79":1,"88":1,"149":1,"163":1,"168":1}}],["evaluated",{"2":{"198":1}}],["eval",{"2":{"31":2,"154":1,"155":1}}],["epsg",{"2":{"193":5,"194":8}}],["eps",{"2":{"53":2,"73":14}}],["eponymous",{"2":{"6":1,"177":1}}],["est",{"2":{"200":1}}],["essentially",{"2":{"33":1,"160":1}}],["especially",{"2":{"6":1,"18":1,"23":1,"147":1}}],["eg",{"2":{"32":1}}],["etc",{"0":{"157":1},"2":{"20":2,"55":1,"85":1,"160":1,"196":1}}],["e",{"2":{"9":1,"22":1,"60":1,"147":1,"152":1,"154":2,"159":1,"192":2,"193":1,"196":1}}],["ellipsoid",{"2":{"159":2,"197":1}}],["ellipsoidal",{"2":{"6":1,"178":1}}],["eltype",{"2":{"147":4}}],["elements",{"2":{"103":1,"104":1,"114":1,"115":1,"122":1,"132":1,"133":1,"142":1,"143":1}}],["element",{"2":{"6":6,"52":1,"64":4,"69":2,"70":1,"72":1,"73":1,"75":3,"176":1,"193":1}}],["elsewhere",{"2":{"69":1}}],["elseif",{"2":{"64":5,"66":7,"70":1,"72":1,"73":14,"75":2,"76":1,"105":3,"116":10,"146":1,"147":2,"170":1,"183":2,"185":2}}],["else",{"2":{"3":4,"6":4,"53":1,"59":2,"64":19,"66":9,"69":1,"71":2,"73":9,"75":1,"76":9,"105":2,"116":17,"123":7,"147":20,"154":6,"155":2,"157":2,"164":1,"172":1,"174":1,"181":2,"183":4,"185":2,"186":1,"187":1,"189":1}}],["empty",{"2":{"4":2,"6":6,"53":2,"64":2,"70":1,"72":1,"73":2,"75":1,"147":2}}],["embedding",{"0":{"153":1,"171":1}}],["embedded",{"0":{"194":1},"2":{"147":1,"153":3,"191":1,"194":1}}],["embed",{"2":{"0":2,"4":1,"6":1,"153":1,"171":2}}],["edgekeys",{"2":{"147":3}}],["edge",{"2":{"4":3,"6":3,"20":1,"31":1,"56":1,"62":1,"64":25,"66":13,"70":1,"72":1,"73":6,"75":1,"79":4,"88":1,"99":2,"111":2,"112":1,"116":7,"122":1,"123":20,"138":2,"139":1,"140":1,"147":7,"190":2}}],["edges`",{"2":{"73":1}}],["edges",{"2":{"0":1,"4":2,"6":9,"64":12,"66":8,"71":3,"73":10,"76":3,"79":3,"87":2,"88":1,"90":1,"99":1,"100":3,"101":7,"102":3,"107":1,"110":3,"113":1,"116":3,"123":15,"135":1,"138":1,"147":22,"190":29}}],["errors",{"2":{"31":1,"73":1,"178":1}}],["error",{"0":{"174":1},"2":{"4":1,"6":4,"7":1,"18":1,"31":6,"32":2,"59":1,"60":4,"64":2,"73":2,"74":1,"88":2,"147":1,"152":1,"166":2,"174":3,"177":5,"185":4,"189":3,"190":1}}],["earlier",{"2":{"192":3}}],["earth",{"2":{"6":3,"25":1,"27":1,"159":3,"177":2,"178":1,"181":1,"193":2,"198":1}}],["easiest",{"2":{"195":1}}],["easier",{"2":{"161":1,"188":1}}],["easily",{"2":{"149":1}}],["east",{"2":{"66":9}}],["easy",{"2":{"1":1,"6":1,"168":1,"186":1}}],["eachindex",{"2":{"53":1,"146":1,"147":3,"154":1,"155":1,"182":1,"185":1}}],["each",{"2":{"3":1,"4":3,"6":5,"9":1,"18":2,"20":1,"53":4,"56":2,"57":4,"59":1,"64":5,"66":1,"73":3,"79":1,"88":2,"97":1,"108":1,"116":6,"121":1,"123":3,"126":1,"136":1,"146":1,"147":1,"154":1,"168":2,"181":1,"195":1,"196":1,"199":2,"200":2,"201":1}}],["equator",{"2":{"159":1}}],["equatorial",{"2":{"6":6,"177":4}}],["equality",{"2":{"64":1,"73":1,"198":1}}],["equal",{"2":{"3":1,"4":16,"6":18,"53":6,"73":1,"78":1,"79":4,"87":3,"88":22,"99":1,"110":1,"116":15,"121":1,"122":1,"128":2,"138":1,"163":1}}],["equals",{"0":{"40":1,"86":1,"87":1},"1":{"87":1,"88":1},"2":{"0":17,"4":3,"6":19,"31":1,"40":2,"53":2,"64":4,"69":2,"73":8,"79":1,"86":1,"87":2,"88":50,"99":1,"110":1,"116":10,"123":5,"128":3,"138":1,"198":1}}],["equivalent",{"2":{"3":1,"4":4,"6":6,"56":1,"64":1,"73":1,"76":1,"88":5,"97":1,"116":1}}],["enable",{"2":{"201":1}}],["enabled",{"2":{"198":1}}],["enabling",{"0":{"201":1}}],["enclosed",{"2":{"116":1}}],["encode",{"2":{"24":1}}],["encompasses",{"2":{"18":1,"116":1}}],["encounters",{"2":{"18":1}}],["en",{"2":{"116":1,"183":1}}],["envelope",{"2":{"73":2}}],["envelopes",{"2":{"73":2}}],["enough",{"2":{"64":1}}],["entirely",{"2":{"116":1}}],["entire",{"2":{"66":1,"116":4}}],["entry",{"2":{"64":11,"71":3,"73":4,"76":3,"147":1}}],["ent",{"2":{"64":19,"69":2}}],["enter",{"2":{"64":4}}],["ensuring",{"2":{"6":1,"175":1,"178":1}}],["ensure",{"2":{"6":3,"59":1,"70":1,"72":1,"75":1,"154":2,"162":2,"165":1}}],["ensures",{"2":{"6":3,"164":1,"167":3,"170":2}}],["enumerate",{"2":{"13":2,"53":1,"64":10,"66":1,"69":1,"71":1,"76":2,"116":1,"147":2,"170":2,"185":1}}],["enum",{"2":{"6":2,"64":3,"72":3,"116":3}}],["endpt",{"2":{"183":3}}],["endpoints",{"2":{"64":3,"66":1,"71":1,"73":6,"76":1,"79":2,"116":11,"123":2,"125":1}}],["endpoint=3",{"2":{"64":1}}],["endpointtype",{"2":{"64":2}}],["endpoint",{"2":{"3":1,"6":2,"64":27,"72":1,"73":16,"79":2,"96":1,"116":3,"123":2,"181":4,"183":4,"192":1}}],["ending",{"2":{"64":1,"66":1}}],["end",{"2":{"1":1,"9":1,"13":4,"14":3,"31":4,"32":4,"35":1,"36":1,"37":1,"38":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"53":18,"56":8,"59":35,"60":3,"63":10,"64":130,"66":43,"69":9,"70":8,"71":12,"72":5,"73":31,"74":1,"75":6,"76":24,"79":19,"85":3,"88":20,"103":2,"104":2,"105":20,"114":2,"115":2,"116":104,"123":24,"128":1,"132":2,"133":2,"138":1,"142":2,"143":2,"146":9,"147":44,"148":1,"149":1,"151":1,"154":27,"155":17,"157":15,"159":4,"160":1,"161":4,"162":1,"164":5,"166":3,"170":18,"172":4,"173":1,"174":2,"177":8,"178":9,"181":7,"182":6,"183":30,"184":3,"185":27,"186":4,"187":4,"189":4,"190":19}}],["enforce",{"2":{"0":1,"6":2,"32":3,"189":3}}],["exits",{"2":{"64":1}}],["exit",{"2":{"64":32,"69":2,"71":3,"73":3,"76":2}}],["existingnodes",{"2":{"147":3}}],["existing",{"2":{"64":3,"75":1,"147":1,"193":2,"195":1}}],["exists",{"2":{"64":1,"66":1,"73":1}}],["exist",{"2":{"6":1,"64":1,"73":3,"189":1}}],["excluding",{"2":{"113":1,"116":1,"138":2}}],["exclude",{"2":{"105":9}}],["exclusively",{"2":{"130":1}}],["exclusive",{"2":{"66":1,"73":2}}],["exc",{"2":{"60":2,"174":2,"177":2}}],["excellent",{"2":{"23":1}}],["except",{"2":{"18":1,"19":1}}],["excess",{"2":{"5":1,"6":1,"59":1}}],["exp10",{"2":{"177":1,"181":2}}],["expressed",{"2":{"57":2}}],["express",{"2":{"57":1}}],["experimental",{"2":{"31":3}}],["expect",{"2":{"1":1,"118":1,"173":1}}],["explain",{"2":{"26":1}}],["explanations",{"2":{"26":3}}],["explicitly",{"2":{"18":1,"24":1,"53":2,"56":1,"59":1,"60":1,"79":2,"88":1,"174":1,"177":1}}],["expose",{"2":{"80":1}}],["exposes",{"2":{"17":1}}],["export",{"2":{"31":1,"57":1,"159":2,"175":1,"194":1,"196":1}}],["exponential",{"2":{"9":1}}],["ext2",{"2":{"116":3}}],["ext1",{"2":{"116":3}}],["ext",{"2":{"58":15,"64":10,"66":2,"69":3,"70":8,"72":8,"73":18,"75":8,"76":14,"105":7,"116":7}}],["extrema",{"2":{"147":1,"190":1}}],["extreem",{"2":{"53":10}}],["extracts",{"2":{"85":1}}],["extract",{"2":{"85":1,"147":1,"154":1,"155":2,"181":1}}],["extra",{"2":{"6":3,"64":1,"75":1,"175":1,"177":2,"178":1}}],["external",{"2":{"56":1,"116":2}}],["exteriors",{"2":{"9":1,"72":2,"75":2,"147":1}}],["exterior",{"2":{"3":4,"4":2,"6":10,"53":1,"55":1,"56":1,"58":1,"59":36,"63":2,"64":4,"70":2,"75":3,"76":14,"79":1,"88":2,"90":1,"91":1,"94":1,"97":3,"108":2,"116":9,"126":2,"135":1,"136":3,"139":3,"140":3,"146":6,"147":6,"164":3,"165":1,"167":1,"171":1,"192":2}}],["extending",{"2":{"123":1}}],["extended",{"2":{"79":1,"159":2}}],["extensions",{"2":{"80":1,"196":1}}],["extension",{"2":{"1":1,"6":1,"59":1,"60":1,"85":1,"96":1,"148":1,"173":3,"174":2,"177":1,"178":1,"179":1,"196":1}}],["extent`",{"2":{"156":1,"171":1}}],["extent=true",{"2":{"171":1}}],["extent=nothing",{"2":{"157":1}}],["extent=",{"2":{"154":4}}],["extent=false",{"2":{"154":1,"181":1}}],["extent=gi",{"2":{"147":3}}],["extents",{"2":{"4":3,"6":3,"31":5,"66":1,"73":3,"116":5,"123":1,"147":3,"154":2,"171":2,"190":2}}],["extent",{"0":{"171":1},"2":{"0":2,"1":4,"4":3,"6":9,"24":1,"31":3,"32":1,"35":2,"36":2,"37":2,"38":2,"50":1,"58":1,"65":1,"66":1,"73":10,"116":4,"123":2,"147":12,"151":2,"153":4,"154":29,"156":3,"157":2,"161":1,"171":2,"181":1,"190":7}}],["exactly",{"2":{"185":1}}],["exactpredicates",{"2":{"7":1,"13":2,"14":2,"31":1}}],["exact",{"2":{"3":5,"6":5,"7":2,"12":1,"13":1,"64":36,"66":6,"69":7,"70":5,"72":5,"73":7,"74":1,"75":5,"76":7,"91":2,"94":2,"97":3,"99":1,"100":3,"101":3,"102":1,"105":1,"108":2,"110":1,"111":3,"112":2,"113":1,"116":24,"119":2,"122":2,"123":7,"126":2,"128":1,"129":3,"130":1,"131":1,"136":3,"138":1,"139":3,"140":3,"141":1,"147":1,"169":1}}],["examples",{"0":{"176":1,"180":1},"2":{"3":8,"4":1,"6":11,"26":2,"88":1,"91":1,"94":1,"97":1,"105":1,"108":1,"122":1,"126":1,"136":1,"146":2,"190":1}}],["example",{"0":{"58":1,"81":1,"163":1,"169":1,"199":1,"200":1},"1":{"82":1},"2":{"1":3,"3":2,"6":11,"11":1,"20":1,"23":2,"52":1,"55":1,"58":1,"62":1,"63":1,"65":1,"68":1,"69":1,"70":1,"72":1,"73":1,"75":1,"78":1,"87":1,"88":1,"90":1,"93":1,"96":1,"105":1,"107":1,"116":1,"118":1,"119":1,"121":1,"125":1,"135":1,"146":1,"147":8,"149":1,"151":2,"154":2,"163":1,"165":1,"168":1,"169":1,"172":1,"180":1,"181":2,"186":1,"189":1,"199":1,"201":1}}],["either",{"2":{"1":2,"3":1,"6":2,"22":1,"25":1,"27":1,"64":9,"70":1,"72":1,"73":2,"75":1,"76":1,"78":1,"97":1,"116":5,"118":1,"125":1,"126":1,"136":1,"147":1,"151":2,"154":3,"166":1,"198":1}}],["lj",{"2":{"147":2}}],["lrs",{"2":{"181":2}}],["lr",{"2":{"147":3,"154":3}}],["lp",{"2":{"116":2}}],["lstart",{"2":{"116":2}}],["ls",{"2":{"116":12}}],["ll",{"2":{"17":1,"58":1,"176":2,"181":1,"193":1,"195":1}}],["l",{"2":{"14":4,"59":6,"105":2,"116":32}}],["lgeos",{"2":{"181":1}}],["lg",{"2":{"13":1,"14":1,"15":2,"32":5,"33":1,"35":3,"36":3,"37":3,"38":3,"40":3,"41":3,"42":3,"43":3,"44":3,"45":3,"46":3,"47":3,"48":3,"49":3,"50":3,"84":4,"177":9,"181":17}}],["l305",{"2":{"6":1}}],["log10",{"2":{"177":2,"181":4}}],["log",{"2":{"176":2}}],["loudly",{"2":{"154":1}}],["location",{"2":{"64":1,"116":6}}],["locally",{"2":{"159":2}}],["local",{"2":{"53":3,"56":1,"64":4,"71":1,"76":1,"147":1}}],["loose",{"2":{"162":1}}],["lookup",{"2":{"147":1,"154":1}}],["looks",{"2":{"62":1}}],["look",{"2":{"55":2,"147":2,"163":1,"176":1}}],["looping",{"2":{"147":1}}],["loop",{"2":{"53":1,"59":2,"63":3,"64":8,"66":1,"73":1,"76":1,"116":5,"147":3,"183":1}}],["lower",{"2":{"6":1,"7":1,"147":1,"199":1}}],["lon",{"2":{"6":2,"176":1,"177":2}}],["longitude",{"2":{"159":3,"193":2}}],["long",{"2":{"6":1,"73":1,"177":1,"200":1}}],["longer",{"2":{"6":3,"175":1,"177":2,"178":1}}],["lots",{"2":{"193":1}}],["lot",{"2":{"6":1,"23":1,"53":1,"56":1,"63":1,"66":1,"79":1,"88":1,"122":1,"149":1,"176":1,"189":2}}],["load",{"2":{"154":1,"155":1,"181":1,"191":2}}],["loading",{"2":{"60":1,"174":1,"177":1}}],["loads",{"2":{"5":1,"6":1,"59":1}}],["loaded",{"2":{"1":1,"60":3,"173":1,"174":2,"177":2}}],["laptop",{"2":{"200":1}}],["land",{"2":{"193":8}}],["lazily",{"2":{"157":2}}],["layers",{"2":{"152":1}}],["label",{"2":{"14":4,"15":2,"78":1,"82":2,"84":1,"147":3,"176":2,"180":2,"181":2}}],["labels",{"2":{"13":2,"147":1}}],["latitude",{"2":{"159":3,"193":2}}],["later",{"2":{"56":1,"84":1,"147":1}}],["lat",{"2":{"6":3,"176":1,"177":3}}],["larger",{"2":{"64":1,"75":1,"185":1}}],["large",{"2":{"6":8,"59":1,"181":2,"196":1,"200":1}}],["lastindex",{"2":{"185":1}}],["last",{"2":{"4":3,"6":3,"9":1,"53":11,"56":2,"58":2,"64":9,"66":4,"79":7,"88":5,"116":20,"128":1,"147":6,"163":1,"170":2,"183":1}}],["lt",{"2":{"6":6,"73":4,"176":1}}],["len",{"2":{"183":7}}],["length",{"2":{"0":1,"5":1,"6":5,"9":1,"18":1,"59":32,"61":1,"62":1,"63":22,"64":11,"66":1,"69":2,"70":2,"72":1,"73":1,"75":1,"76":1,"116":1,"147":16,"154":2,"155":1,"170":2,"176":1,"182":1,"183":1,"184":1,"185":7}}],["legend",{"2":{"181":4}}],["le",{"2":{"116":10}}],["leaving",{"2":{"163":1}}],["leaf",{"2":{"154":1,"157":3}}],["leading",{"2":{"192":1}}],["lead",{"2":{"73":1,"163":1}}],["least",{"2":{"3":3,"6":3,"64":1,"73":1,"76":2,"116":14,"123":6,"126":1,"129":3,"130":2,"131":2,"132":1,"133":1,"136":1,"142":1,"146":1}}],["leftjoin",{"2":{"198":1}}],["leftover",{"2":{"64":1}}],["left=1",{"2":{"64":1}}],["left",{"2":{"59":1,"64":5,"146":1,"147":2,"183":17,"185":5}}],["lets",{"2":{"56":1}}],["let",{"2":{"55":1,"62":1,"116":1,"147":3,"176":1,"192":6,"193":4,"194":3,"195":2,"196":2,"201":1}}],["levels",{"2":{"147":1,"152":1,"160":1}}],["level",{"2":{"6":1,"7":1,"9":1,"18":2,"20":1,"29":1,"152":1,"154":2,"162":1,"164":1,"166":4,"167":1,"168":1,"170":2,"194":2}}],["less",{"2":{"3":1,"6":7,"53":1,"56":1,"59":1,"63":1,"66":1,"79":1,"88":1,"105":1,"122":1,"147":1,"181":1,"182":1}}],["l289",{"2":{"6":1}}],["l2",{"2":{"3":4,"4":4,"6":8,"87":4,"88":12,"90":8,"94":2,"107":5,"121":4,"125":3,"126":2,"135":8}}],["l195",{"2":{"6":1}}],["l177",{"2":{"6":1}}],["l1",{"2":{"3":6,"4":4,"6":10,"87":4,"88":12,"90":8,"93":4,"94":2,"96":4,"97":2,"107":5,"121":4,"125":3,"126":2,"135":8}}],["li",{"2":{"147":2}}],["lie",{"2":{"73":1}}],["lies",{"2":{"64":3,"159":1,"199":1}}],["limitations",{"2":{"73":1}}],["limits",{"2":{"58":1}}],["limited",{"2":{"6":1,"175":1,"178":1}}],["library",{"2":{"69":1,"196":1}}],["libraries",{"2":{"56":1,"168":1,"196":1}}],["libgeos",{"2":{"6":2,"13":1,"14":1,"15":1,"23":1,"32":2,"56":1,"60":5,"84":1,"148":1,"177":7,"181":4,"189":2}}],["little",{"2":{"26":1}}],["literate",{"2":{"26":1,"31":1,"32":1,"50":1,"53":1,"56":1,"59":1,"60":1,"63":1,"64":1,"66":1,"69":1,"71":1,"73":1,"74":1,"76":1,"79":1,"85":1,"88":1,"91":1,"94":1,"104":1,"105":1,"115":1,"116":1,"119":1,"123":1,"133":1,"143":1,"146":1,"147":1,"148":1,"154":1,"155":1,"156":1,"157":1,"161":1,"164":1,"167":1,"170":1,"171":1,"172":1,"174":1,"178":1,"185":1,"186":1,"187":1,"189":1,"190":1}}],["lift",{"2":{"14":2}}],["lin",{"2":{"177":5}}],["linked",{"2":{"80":1}}],["linrange",{"2":{"13":2,"14":5,"58":2,"78":1,"147":2,"177":1,"181":2}}],["linering",{"2":{"193":1}}],["linewidth",{"2":{"55":1,"192":1}}],["linesegment",{"2":{"146":2,"178":1}}],["lines",{"0":{"100":1,"111":1,"129":1,"139":1},"2":{"3":1,"4":4,"6":5,"64":3,"68":1,"73":9,"78":1,"82":1,"83":2,"84":2,"87":4,"88":4,"90":3,"93":2,"96":1,"97":1,"105":1,"107":3,"116":2,"118":3,"121":4,"122":1,"123":1,"125":4,"135":3,"136":1,"147":3,"179":1,"192":4,"197":2}}],["linestrings",{"2":{"4":2,"6":2,"9":1,"88":2,"145":1,"162":1,"192":1}}],["linestringtrait",{"2":{"4":4,"6":5,"11":3,"32":1,"53":1,"63":4,"72":2,"79":2,"88":8,"99":1,"100":4,"101":1,"105":6,"110":1,"111":5,"123":8,"128":1,"129":4,"130":1,"138":1,"139":4,"140":1,"152":1,"160":2,"166":2,"167":1,"178":2}}],["linestring",{"2":{"3":5,"4":6,"6":15,"18":1,"20":1,"53":2,"63":2,"79":4,"87":2,"88":2,"90":2,"91":1,"94":2,"99":1,"100":3,"107":2,"108":1,"110":1,"111":4,"116":2,"121":2,"123":2,"128":1,"129":3,"130":1,"135":2,"136":1,"138":1,"139":4,"140":1,"146":7,"154":2,"155":2,"190":3,"192":5,"197":1}}],["linetrait",{"2":{"3":2,"4":4,"6":6,"53":1,"64":2,"69":2,"72":2,"79":2,"88":8,"99":1,"100":4,"101":1,"110":1,"111":5,"123":8,"128":1,"129":4,"130":1,"138":1,"139":4,"140":1}}],["line2",{"2":{"3":2,"6":6,"72":2,"73":2,"105":5,"118":3,"119":2,"123":9,"146":5}}],["line1",{"2":{"3":3,"6":7,"72":2,"73":2,"105":5,"118":3,"119":2,"123":11,"146":5}}],["linea",{"2":{"1":1,"6":1,"186":1}}],["linearmap",{"2":{"181":1}}],["linearalgebra",{"2":{"31":1}}],["linear",{"2":{"4":7,"6":10,"9":1,"56":2,"59":1,"62":1,"63":3,"66":1,"73":1,"79":5,"88":8,"101":1,"116":2,"129":1,"130":2,"139":1,"145":1,"154":1,"155":1,"159":1,"164":3,"176":5,"177":3,"178":4}}],["linearr",{"2":{"1":1,"6":1,"186":1}}],["linearrings",{"2":{"9":1,"112":1,"147":6,"162":1,"192":1}}],["linearringtrait",{"2":{"4":4,"6":4,"11":3,"32":1,"53":3,"56":2,"63":4,"64":4,"72":2,"79":2,"88":8,"99":1,"100":1,"101":4,"110":1,"111":2,"112":3,"123":4,"128":1,"129":1,"130":4,"138":1,"139":1,"140":4,"160":2,"166":1,"178":2,"181":1}}],["linearring",{"2":{"1":10,"4":1,"6":11,"31":1,"53":2,"63":2,"64":2,"75":2,"76":1,"79":1,"85":1,"99":1,"101":3,"110":1,"111":1,"112":2,"116":2,"123":2,"128":1,"129":1,"130":3,"138":1,"140":4,"146":1,"147":3,"151":2,"154":5,"155":2,"162":1,"163":6,"164":1,"169":13,"181":1,"186":8,"192":24,"193":6,"194":8,"199":2}}],["linearsegments",{"2":{"0":1,"6":1,"175":1,"176":1,"177":3,"178":2}}],["line",{"0":{"116":1},"2":{"0":1,"3":13,"4":9,"6":52,"23":1,"52":2,"53":7,"62":3,"63":10,"64":12,"66":8,"68":6,"69":18,"72":8,"73":67,"76":6,"79":11,"88":5,"91":2,"93":1,"96":2,"97":1,"99":2,"100":11,"101":8,"105":11,"108":2,"110":1,"111":9,"112":4,"116":141,"118":2,"119":2,"121":3,"123":17,"125":2,"126":2,"128":1,"129":10,"130":3,"136":2,"138":2,"139":10,"140":7,"146":6,"147":2,"178":1,"181":1,"182":1,"183":4,"184":1,"190":3,"192":3}}],["lineorientation",{"2":{"0":1,"6":2,"72":2}}],["lists",{"2":{"20":1,"64":3,"123":1}}],["listed",{"2":{"6":1,"53":1,"181":1}}],["list",{"2":{"6":16,"9":1,"53":20,"64":233,"69":20,"70":14,"71":8,"72":13,"73":5,"75":13,"76":1,"200":2}}],["likely",{"2":{"152":1}}],["like",{"0":{"74":1},"2":{"1":2,"6":5,"17":1,"18":2,"19":1,"20":1,"23":1,"24":1,"29":1,"56":1,"58":1,"59":1,"62":1,"66":1,"70":1,"72":1,"75":1,"78":1,"79":1,"85":1,"88":1,"149":2,"151":2,"154":1,"155":2,"160":2,"166":2,"167":1,"175":1,"176":1,"193":2}}],["iah",{"2":{"197":2}}],["image",{"2":{"147":1}}],["impossible",{"2":{"69":1,"121":1}}],["important",{"2":{"176":1}}],["import",{"2":{"1":3,"6":4,"13":2,"14":2,"15":1,"31":9,"52":1,"55":1,"60":1,"62":1,"65":1,"69":1,"70":1,"72":1,"73":1,"75":1,"78":1,"87":1,"88":1,"90":1,"91":1,"93":1,"94":1,"96":1,"97":1,"105":1,"107":1,"108":1,"118":1,"119":1,"121":1,"122":1,"125":1,"126":1,"135":1,"136":1,"146":3,"151":1,"154":2,"155":1,"174":1,"177":2,"180":2,"181":3,"186":2,"190":1,"191":5}}],["implements",{"2":{"32":1,"189":1}}],["implementing",{"2":{"6":1,"181":1}}],["implement",{"2":{"6":1,"17":1,"23":1,"53":1,"56":1,"59":1,"63":1,"66":1,"79":1,"85":1,"88":1,"97":1,"108":1,"122":1,"126":1,"136":1,"149":1,"165":1,"166":3,"167":1}}],["implementation",{"0":{"53":1,"56":1,"63":1,"66":1,"69":1,"79":1,"85":1,"88":1,"91":1,"94":1,"97":1,"108":1,"119":1,"122":1,"126":1,"136":1,"164":1,"170":1,"178":1},"2":{"6":1,"53":3,"56":3,"59":1,"63":3,"66":3,"75":1,"79":3,"88":3,"91":1,"94":1,"97":2,"108":2,"119":1,"122":3,"126":2,"136":2,"147":2,"148":1,"154":1,"155":1,"173":1,"178":1,"181":1,"189":1}}],["implementations",{"2":{"6":1,"97":1,"108":1,"126":1,"136":1,"148":1,"179":1,"189":3}}],["implemented",{"0":{"148":1},"2":{"1":1,"6":2,"31":1,"56":1,"59":3,"69":2,"71":2,"73":2,"76":2,"79":2,"85":1,"148":1,"149":2,"155":1,"166":2,"173":1,"179":1}}],["improvements",{"2":{"9":2,"10":1}}],["improve",{"2":{"4":1,"6":1,"171":1}}],["i=2",{"2":{"146":1}}],["ipoints",{"2":{"116":4}}],["ip",{"2":{"88":2}}],["ipt",{"2":{"64":8}}],["ihole",{"2":{"88":2}}],["ih",{"2":{"76":22}}],["i2",{"2":{"66":2}}],["i1",{"2":{"66":2}}],["ii",{"2":{"64":8}}],["io",{"2":{"60":5,"174":5,"177":5}}],["i+1",{"2":{"59":8,"147":1,"183":2,"185":1}}],["i",{"2":{"9":1,"13":4,"22":1,"53":14,"56":1,"59":16,"64":28,"66":4,"71":2,"75":2,"76":4,"79":2,"88":8,"105":7,"116":28,"146":14,"147":17,"154":8,"155":8,"178":2,"182":3,"183":12,"185":28,"190":2,"192":2,"193":1,"200":3}}],["id",{"2":{"195":1}}],["identical",{"2":{"154":1,"169":1}}],["identity",{"2":{"147":4,"157":2,"171":1}}],["ideal",{"2":{"147":1}}],["idea",{"2":{"6":1,"20":1,"25":1,"27":1,"59":1,"149":1,"155":1}}],["idx`",{"2":{"64":1}}],["idx",{"2":{"53":6,"64":167,"66":9,"69":23,"70":5,"72":5,"75":2,"170":34,"183":51}}],["id=",{"2":{"6":2}}],["ignored",{"2":{"6":1,"147":1}}],["ignore",{"2":{"6":1,"147":2}}],["innerjoin",{"2":{"198":1,"199":1,"200":1}}],["inner",{"2":{"116":6,"154":5}}],["in=1",{"2":{"116":1}}],["in`",{"2":{"116":1}}],["inject",{"0":{"74":1},"2":{"174":1}}],["inaccuracies",{"2":{"73":1}}],["ind",{"2":{"200":2}}],["individual",{"2":{"194":1}}],["indicate",{"2":{"157":1}}],["indicates",{"2":{"20":1}}],["indices",{"2":{"64":4,"154":2,"155":2,"185":16}}],["indeed",{"2":{"163":1}}],["index",{"2":{"59":8,"64":11,"116":1,"154":1,"183":1}}],["inds",{"2":{"147":3}}],["inplace",{"2":{"59":1}}],["inputs",{"2":{"6":1,"64":1,"88":1,"91":1,"94":1,"119":1,"185":1}}],["input",{"2":{"6":11,"53":1,"69":1,"70":1,"72":1,"73":1,"75":1,"147":1,"149":1,"155":1,"177":3,"178":1,"182":1,"183":1,"184":1,"193":1}}],["inbounds",{"2":{"59":16,"79":5,"116":1}}],["inspiration",{"2":{"69":1}}],["inspired",{"2":{"68":1,"69":2}}],["inside",{"2":{"53":3,"62":1,"64":3,"66":1,"70":1,"71":1,"72":1,"73":1,"75":1,"76":2,"78":3,"79":1,"99":1,"116":1,"135":1,"138":1,"147":2}}],["insertion",{"2":{"64":1}}],["insert",{"2":{"53":1,"183":1}}],["instability",{"2":{"24":2}}],["instantiating",{"2":{"20":1}}],["instead",{"2":{"18":1,"24":1,"155":1,"178":1}}],["instructs",{"2":{"6":1,"189":2}}],["inline",{"2":{"32":1,"116":4,"146":1,"154":12,"155":10,"161":2}}],["init=nothing",{"2":{"155":1}}],["init=typemax",{"2":{"79":2}}],["init=zero",{"2":{"56":1,"66":1}}],["initial",{"2":{"73":2,"177":1}}],["initially",{"2":{"64":1}}],["initialize",{"2":{"59":3,"63":2,"64":1,"73":1}}],["init",{"2":{"19":1,"31":1,"53":1,"63":2,"155":30,"177":4}}],["incorrect",{"2":{"162":1,"163":1}}],["increase",{"2":{"64":1,"116":1}}],["increasing",{"2":{"6":1,"181":1}}],["increment",{"2":{"59":5}}],["including",{"2":{"53":1,"64":2,"73":1,"79":1,"99":1,"100":1,"101":1,"102":1,"116":2}}],["include",{"2":{"31":41,"53":1,"64":1,"79":2,"80":1,"161":1,"181":2,"194":2,"195":1}}],["included",{"2":{"6":2,"76":2,"167":2,"170":2,"194":1}}],["includes",{"2":{"4":2,"6":2,"76":1,"79":2,"88":1,"116":1}}],["incircle",{"0":{"16":1}}],["inv",{"2":{"159":3}}],["investigate",{"2":{"147":1}}],["investigating",{"0":{"84":1}}],["inverted",{"2":{"6":1,"85":1}}],["invalid",{"2":{"20":1,"71":2,"163":1,"168":1,"169":1}}],["invoke",{"2":{"20":1}}],["involved",{"2":{"149":1}}],["involve",{"2":{"20":1}}],["involving",{"2":{"6":3,"70":1,"72":1,"75":1}}],["invocation",{"2":{"18":1}}],["ing",{"2":{"1":1,"6":2,"59":1,"186":1}}],["intr",{"2":{"64":28,"66":9,"69":16,"73":8}}],["intr2",{"2":{"64":2,"73":14}}],["intr1",{"2":{"64":3,"73":21,"116":2}}],["intrs",{"2":{"64":10,"73":5}}],["introduction",{"0":{"27":1},"1":{"28":1,"29":1,"30":1}}],["introducing",{"2":{"24":1}}],["introduces",{"2":{"24":1}}],["int",{"2":{"64":6,"76":7,"105":7,"178":1,"181":1,"183":5,"184":1,"185":1}}],["integrate",{"2":{"56":1}}],["integrating",{"2":{"56":1}}],["integrals",{"2":{"55":1}}],["integral",{"2":{"55":1}}],["intended",{"2":{"6":1,"166":2,"167":1}}],["intermediate",{"2":{"66":1}}],["inter2",{"2":{"66":15}}],["inter1",{"2":{"66":23}}],["interpreted",{"2":{"59":1}}],["interpolation",{"2":{"5":1,"6":1,"58":1,"59":2,"175":1}}],["interpolated",{"2":{"5":3,"6":3,"59":17,"175":1}}],["interpolate",{"2":{"0":2,"5":2,"6":4,"57":1,"58":2,"59":25}}],["interest",{"2":{"59":1,"79":1}}],["internal",{"2":{"58":1}}],["internals",{"2":{"24":1}}],["inter",{"2":{"6":3,"64":21,"69":1,"70":1,"72":5,"73":4}}],["interface",{"0":{"166":1},"2":{"6":3,"20":1,"80":1,"85":1,"154":1,"165":1,"166":4,"167":1,"181":1,"193":1}}],["interacted",{"2":{"116":1}}],["interaction",{"0":{"116":1},"2":{"116":2}}],["interactions",{"2":{"64":1,"76":3,"116":15}}],["interactive",{"2":{"13":1,"14":1}}],["interacting",{"2":{"6":1,"72":1,"116":2}}],["interacts",{"2":{"3":1,"6":1,"116":3,"125":1,"126":1,"129":3,"130":1,"131":1}}],["interact",{"2":{"3":2,"6":2,"75":1,"76":1,"107":1,"116":5,"119":1,"125":1,"126":1,"128":1,"129":2,"130":2,"131":1}}],["interior",{"2":{"3":6,"6":7,"53":9,"55":1,"59":7,"63":5,"64":1,"76":18,"90":1,"91":1,"93":2,"94":1,"96":1,"97":3,"100":5,"101":1,"102":2,"105":1,"108":2,"110":2,"111":6,"112":3,"116":15,"125":1,"126":3,"129":1,"130":2,"131":2,"135":1,"136":3,"141":2,"146":2,"164":1,"167":1}}],["interiors",{"2":{"3":6,"6":7,"59":20,"90":1,"91":1,"93":1,"94":1,"96":1,"107":1,"108":1,"113":1,"116":5,"118":1,"119":1,"125":1,"126":1,"128":1,"129":2,"130":1,"135":1,"136":1,"139":3,"140":3}}],["intersectingpolygons",{"2":{"6":3}}],["intersecting",{"0":{"168":1},"1":{"169":1,"170":1},"2":{"6":4,"31":1,"64":2,"76":2,"167":4,"168":1,"170":4}}],["intersections",{"0":{"73":1},"2":{"64":2,"66":2,"71":1,"72":2,"73":1,"76":1,"116":2}}],["intersection",{"0":{"37":1,"72":1,"117":1},"1":{"118":1,"119":1},"2":{"0":2,"3":3,"6":19,"9":1,"15":4,"23":1,"31":1,"37":2,"64":38,"66":6,"69":3,"70":4,"71":4,"72":15,"73":73,"75":2,"76":2,"105":2,"116":6,"118":1,"122":1,"123":4}}],["intersect",{"2":{"3":7,"6":10,"64":4,"66":3,"70":2,"72":1,"73":1,"75":1,"76":5,"90":1,"91":2,"94":1,"96":1,"97":1,"108":1,"111":1,"113":1,"116":4,"118":2,"135":1,"136":2,"139":3,"140":3,"169":1,"170":4}}],["intersects",{"0":{"49":1,"118":1},"2":{"0":2,"3":3,"6":6,"31":1,"49":2,"64":1,"73":2,"76":2,"105":2,"117":1,"118":4,"119":4,"123":4,"141":1,"170":2,"198":1}}],["into",{"2":{"5":1,"6":5,"17":1,"26":1,"53":1,"56":1,"59":1,"63":4,"64":2,"69":1,"70":1,"72":1,"116":1,"147":4,"154":3,"155":2,"156":1,"157":2,"160":1,"170":1,"181":1,"190":2,"192":2,"198":1}}],["int64",{"2":{"1":6,"6":6,"163":6,"182":1,"183":1,"185":1,"186":6,"192":14}}],["influence",{"2":{"159":1}}],["infinity",{"2":{"116":1,"123":1}}],["info",{"2":{"6":2,"175":1}}],["information",{"0":{"194":1},"2":{"6":1,"29":1,"59":1,"64":2,"65":1,"73":1,"85":1,"116":1,"191":1,"194":3,"196":2}}],["inf",{"2":{"1":1,"9":1,"69":2,"182":1,"185":3}}],["in",{"0":{"23":1},"2":{"1":6,"3":3,"4":1,"5":4,"6":45,"7":1,"9":2,"13":6,"14":2,"17":2,"18":4,"20":1,"23":3,"24":2,"25":1,"26":3,"27":1,"29":1,"30":1,"31":2,"32":1,"33":1,"53":7,"55":1,"56":3,"57":2,"59":22,"60":1,"62":2,"63":5,"64":72,"66":31,"69":6,"70":9,"71":3,"72":5,"73":29,"75":11,"76":28,"78":6,"79":6,"84":1,"85":3,"87":1,"88":17,"90":2,"91":1,"94":1,"97":10,"100":1,"101":1,"102":1,"103":1,"104":1,"105":7,"108":9,"110":1,"111":1,"112":1,"114":1,"115":1,"116":135,"118":2,"119":1,"121":1,"122":5,"123":9,"125":1,"126":11,"130":1,"132":1,"133":1,"135":1,"136":10,"139":3,"140":3,"142":1,"143":1,"146":4,"147":10,"148":3,"149":1,"151":2,"152":2,"153":1,"154":8,"155":4,"157":8,"158":1,"159":5,"160":1,"161":1,"165":1,"166":1,"167":2,"168":1,"170":7,"171":1,"172":2,"173":3,"174":1,"175":2,"176":2,"177":14,"178":8,"179":1,"181":5,"182":2,"183":4,"184":1,"185":5,"186":2,"187":1,"188":4,"189":4,"190":8,"191":1,"192":2,"193":6,"196":2,"198":4,"199":3,"200":1,"201":1}}],["itererable",{"2":{"190":1}}],["iter",{"2":{"157":31}}],["iterator",{"2":{"64":4,"72":2,"157":4}}],["iterators",{"2":{"13":1,"59":1,"64":5,"66":3,"72":1,"76":2,"147":1,"154":2,"155":3,"157":8,"170":6,"178":1}}],["iterate",{"2":{"59":2,"152":1,"154":1,"157":4}}],["iteration",{"2":{"56":1}}],["iterabletype",{"2":{"154":5,"155":6}}],["iterable",{"2":{"4":1,"6":2,"18":1,"56":1,"66":1,"85":1,"154":17,"155":15,"157":11,"192":1}}],["iterables",{"2":{"1":2,"22":1,"151":2,"154":1,"155":2,"157":3}}],["ith",{"2":{"64":3,"76":7}}],["itself",{"2":{"66":1,"146":1,"152":1}}],["its",{"2":{"5":1,"6":9,"18":1,"55":1,"59":1,"64":2,"66":4,"76":1,"100":1,"157":2,"165":1,"181":1,"182":1,"183":1,"184":3,"198":1}}],["it",{"2":{"1":4,"4":1,"6":14,"9":1,"18":11,"19":2,"20":1,"22":1,"29":3,"30":1,"52":1,"53":1,"55":2,"56":3,"58":1,"60":1,"63":2,"64":2,"65":1,"66":2,"70":1,"71":1,"72":1,"73":4,"75":1,"76":3,"79":3,"84":2,"85":2,"88":1,"96":2,"99":3,"110":3,"116":14,"121":1,"122":1,"128":2,"138":3,"145":1,"146":2,"147":4,"149":3,"151":1,"152":3,"153":1,"154":8,"155":5,"157":8,"159":1,"160":2,"161":2,"163":1,"164":1,"165":1,"167":1,"168":1,"173":5,"176":2,"177":1,"178":1,"181":1,"183":1,"188":1,"189":7,"193":3,"194":3,"196":3,"200":2,"201":2}}],["iff",{"2":{"154":1}}],["if",{"0":{"74":1},"2":{"1":5,"3":15,"4":19,"5":1,"6":66,"18":1,"22":2,"32":1,"52":1,"53":15,"55":1,"56":6,"59":5,"60":3,"63":1,"64":95,"66":36,"69":8,"70":13,"71":12,"72":9,"73":44,"75":10,"76":22,"78":2,"79":8,"85":3,"87":2,"88":35,"90":1,"91":1,"93":1,"94":1,"96":1,"97":2,"99":4,"100":3,"101":3,"102":2,"103":1,"104":1,"105":9,"107":1,"108":3,"110":5,"111":4,"112":2,"113":2,"114":1,"115":1,"116":132,"118":1,"119":1,"121":4,"122":1,"123":14,"125":1,"126":2,"128":4,"129":3,"130":2,"131":2,"132":1,"133":1,"135":1,"136":2,"138":5,"139":3,"140":3,"141":1,"142":1,"143":1,"146":5,"147":35,"151":3,"152":1,"154":19,"155":6,"157":9,"161":1,"164":1,"166":1,"167":2,"168":1,"170":12,"171":1,"172":1,"173":3,"174":2,"177":6,"178":1,"181":1,"183":12,"185":12,"186":1,"187":1,"189":2,"193":1,"196":1,"199":2,"200":1}}],["isolate",{"2":{"181":1}}],["isodd",{"2":{"69":1}}],["istable",{"2":{"154":1,"155":1,"157":1}}],["isequal",{"2":{"147":1}}],["iseven",{"2":{"116":1}}],["isempty",{"2":{"56":1,"59":4,"66":1,"70":1,"71":2,"72":1,"147":1,"166":1,"183":1}}],["isparallel",{"2":{"116":1,"146":8}}],["is3d",{"2":{"88":1,"157":1,"172":1,"186":1,"187":1,"190":10}}],["issue",{"2":{"64":1}}],["issues",{"2":{"25":1,"27":1}}],["isa",{"2":{"18":1,"59":9,"154":3,"155":1,"178":2,"190":1}}],["isnothing",{"2":{"60":1,"64":9,"69":1,"71":2,"73":2,"76":2,"88":1,"147":1,"174":1,"177":1,"181":1,"182":1,"183":5,"184":1,"185":6}}],["isn",{"2":{"6":1,"56":1,"64":4,"66":1,"69":1,"71":1,"73":3,"76":2,"79":3,"88":1,"96":1,"116":9,"123":1,"181":1,"189":1}}],["isconcave",{"0":{"146":1},"2":{"0":1,"6":2,"84":1,"144":1,"146":3}}],["isclockwise",{"0":{"145":1},"2":{"0":1,"6":2,"66":1,"144":1,"146":5,"147":2}}],["is",{"0":{"25":1,"52":1,"55":2,"62":1,"65":1,"68":1,"78":2,"87":1,"90":1,"93":1,"96":1,"107":1,"118":1,"121":1,"125":1,"135":1,"152":1},"2":{"0":1,"1":10,"3":8,"4":43,"5":1,"6":103,"9":3,"11":1,"13":1,"14":1,"18":3,"19":1,"20":1,"22":3,"23":2,"25":2,"27":2,"52":1,"53":19,"55":7,"56":19,"57":2,"58":2,"59":15,"60":3,"62":2,"63":5,"64":82,"65":3,"66":22,"68":1,"69":2,"70":4,"71":13,"72":4,"73":40,"75":7,"76":20,"78":8,"79":23,"80":1,"84":5,"85":4,"88":13,"90":2,"91":3,"94":3,"96":4,"97":4,"99":7,"100":3,"101":3,"102":1,"103":1,"104":1,"105":3,"107":1,"108":5,"110":9,"111":4,"112":2,"113":1,"114":1,"115":1,"116":91,"119":2,"121":3,"122":2,"123":13,"126":4,"128":2,"135":4,"136":5,"138":8,"139":3,"140":3,"141":1,"142":2,"143":1,"145":2,"146":7,"147":11,"148":1,"149":3,"151":3,"152":3,"153":1,"154":18,"155":4,"157":7,"159":11,"160":1,"161":1,"162":7,"163":2,"164":1,"165":3,"166":2,"167":1,"168":4,"169":1,"170":2,"172":1,"173":7,"174":2,"175":3,"176":3,"177":9,"178":8,"180":1,"181":4,"182":1,"183":2,"184":1,"186":2,"188":1,"189":3,"192":4,"193":5,"194":3,"195":1,"196":3,"198":2,"199":5,"200":2}}],["cpu",{"2":{"200":1}}],["cp",{"2":{"197":1}}],["circumstances",{"2":{"159":2}}],["cy",{"2":{"146":2}}],["cyan",{"2":{"60":1,"174":1,"177":1}}],["cx",{"2":{"146":2}}],["cdot",{"2":{"146":1}}],["cs",{"2":{"116":9}}],["cshape",{"2":{"62":3}}],["cw",{"2":{"66":2}}],["cb",{"2":{"58":1,"84":1,"147":1}}],["cgrad",{"2":{"58":1}}],["cgal",{"2":{"58":1}}],["c",{"2":{"32":1,"56":1,"62":1,"66":4,"69":5,"74":3,"116":24,"177":1}}],["cleaner",{"2":{"85":1}}],["cleanest",{"2":{"85":1}}],["clear",{"2":{"65":1}}],["clearly",{"2":{"52":1,"55":1,"78":1}}],["clamped",{"2":{"73":18}}],["clamp",{"2":{"53":1,"73":1}}],["classified",{"2":{"64":1}}],["classify",{"2":{"64":4}}],["class",{"2":{"6":1,"147":1}}],["class=",{"2":{"6":6}}],["clipping",{"0":{"64":1,"70":1,"71":1,"73":1,"75":1,"76":1},"2":{"6":1,"9":1,"31":8,"64":9,"69":3,"70":1,"72":1,"75":1,"168":1}}],["closure",{"2":{"154":2}}],["closing",{"2":{"53":1}}],["closer",{"2":{"159":1}}],["close",{"2":{"53":5,"64":2,"66":1,"69":1,"73":1,"79":9,"147":1,"163":1,"164":4}}],["closest",{"2":{"4":3,"6":3,"73":2,"78":1,"79":6,"159":1}}],["closed2",{"2":{"88":2}}],["closed1",{"2":{"88":2}}],["closed",{"0":{"162":1},"1":{"163":1,"164":1},"2":{"4":4,"6":11,"9":1,"31":1,"53":6,"56":3,"63":3,"64":1,"66":1,"73":1,"76":3,"88":21,"99":2,"100":5,"101":5,"110":2,"111":5,"112":3,"116":52,"123":6,"129":5,"130":1,"138":3,"139":5,"140":5,"146":1,"147":1,"162":1,"163":1,"164":2,"165":1,"167":1,"192":1}}],["closedring",{"2":{"0":1,"6":1,"162":1,"163":1,"164":4,"165":1,"166":1,"167":1}}],["clockwise",{"2":{"4":1,"6":4,"9":1,"55":1,"56":1,"66":7,"84":1,"145":2,"146":3,"147":1}}],["ceil",{"2":{"178":1}}],["ce",{"2":{"116":11}}],["certainly",{"2":{"73":1}}],["certain",{"2":{"17":1,"18":1,"26":1,"29":1}}],["central",{"2":{"64":1}}],["centroids",{"2":{"62":1,"63":1}}],["centroid",{"0":{"61":1,"62":1},"1":{"62":1,"63":1},"2":{"0":4,"4":2,"6":6,"31":1,"61":3,"62":4,"63":38,"149":1,"155":1,"181":4}}],["cent",{"2":{"62":2}}],["centered",{"2":{"64":1}}],["center",{"2":{"6":1,"62":1,"147":1}}],["cells",{"2":{"147":1}}],["cell",{"2":{"6":4,"65":3,"66":28,"147":2}}],["children",{"2":{"181":1}}],["child",{"2":{"157":9}}],["chunks",{"2":{"154":4,"155":5}}],["chunk",{"2":{"154":6,"155":7}}],["chull",{"2":{"50":2}}],["chose",{"2":{"24":1,"147":1}}],["choose",{"2":{"6":1,"85":1,"147":2}}],["changes",{"2":{"64":1}}],["changed",{"2":{"64":1}}],["change",{"2":{"24":1,"64":1,"84":1}}],["chain=2",{"2":{"64":1}}],["chain=1",{"2":{"64":1}}],["chain",{"2":{"64":66,"71":3,"73":4,"76":4,"84":2}}],["chains",{"2":{"20":1,"64":1}}],["chairmarks",{"2":{"13":1,"177":1,"181":1}}],["checkargs",{"2":{"182":1,"183":1,"184":1,"185":1}}],["checking",{"2":{"88":1,"183":1}}],["checks",{"0":{"105":1,"117":1},"1":{"118":1,"119":1},"2":{"60":1,"64":1,"73":1,"87":1,"90":1,"93":1,"96":1,"107":1,"116":5,"118":1,"121":1,"123":1,"125":1,"135":1,"199":1}}],["check",{"2":{"4":1,"6":1,"7":1,"63":1,"64":8,"66":3,"69":1,"70":1,"73":4,"74":1,"75":1,"88":8,"116":11,"147":5,"154":1,"169":1,"171":1,"176":2,"183":1,"185":1}}],["checked",{"2":{"4":1,"6":1,"64":1,"73":1,"84":1,"116":1,"171":1}}],["c2",{"2":{"6":3,"15":2,"79":3,"88":14,"147":21}}],["c1",{"2":{"6":3,"15":2,"79":4,"88":13,"147":26}}],["ctor",{"2":{"1":1,"6":1,"186":1}}],["categorize",{"2":{"69":1}}],["categorical",{"2":{"58":1}}],["came",{"2":{"69":1}}],["case",{"2":{"53":1,"57":2,"63":1,"64":1,"70":1,"73":2,"76":1,"116":16,"155":1,"178":1,"201":1}}],["cases",{"2":{"6":1,"59":1,"69":2,"116":3,"152":1,"154":1,"155":1,"157":3}}],["cause",{"2":{"18":1,"23":1,"183":1}}],["careful",{"2":{"59":1,"152":1}}],["care",{"2":{"17":1,"154":1,"159":1}}],["carried",{"2":{"6":1,"189":1}}],["cairomakie",{"2":{"13":1,"52":1,"55":1,"58":2,"62":1,"65":1,"68":1,"78":1,"82":1,"83":1,"84":1,"87":1,"90":1,"93":1,"96":1,"107":1,"118":1,"121":1,"125":1,"135":1,"176":1,"177":1,"181":1,"191":1,"197":1,"199":1,"200":1}}],["california",{"2":{"200":1}}],["callable",{"2":{"147":4,"166":1}}],["calls",{"2":{"64":1,"73":1,"76":1,"79":1,"97":1,"108":1,"126":1,"136":1,"152":1,"154":1,"178":1}}],["calling",{"2":{"33":1,"64":2,"154":1}}],["call",{"2":{"18":1,"24":1,"56":1,"63":1,"154":4,"179":1}}],["called",{"2":{"6":2,"63":3,"64":1,"154":1,"164":1,"166":1,"167":1,"189":1,"193":1}}],["calculation",{"2":{"73":1}}],["calculations",{"2":{"6":1,"25":2,"27":2,"73":1,"159":2,"177":1}}],["calculating",{"2":{"4":1,"6":1,"18":1,"64":1,"171":1}}],["calculated",{"2":{"6":1,"62":2,"66":1,"73":2,"79":1,"154":4}}],["calculates",{"2":{"4":2,"6":6,"56":1,"59":2,"66":1,"73":2,"75":1,"79":2,"177":1,"184":1}}],["calculate",{"2":{"1":2,"5":1,"6":5,"11":1,"53":3,"59":3,"63":1,"66":1,"73":1,"116":1,"147":1,"151":1,"154":3,"156":1}}],["calc",{"2":{"1":2,"6":3,"24":1,"31":1,"32":1,"35":2,"36":2,"37":2,"38":2,"50":1,"53":4,"151":1,"153":1,"154":19,"156":1,"161":1,"171":1,"181":2}}],["cache",{"2":{"6":1,"59":1}}],["cant",{"2":{"88":1,"147":1,"190":1}}],["cannot",{"2":{"3":3,"4":2,"6":5,"56":1,"88":1,"99":1,"102":1,"122":2,"126":1,"128":2,"130":1,"141":1}}],["can",{"2":{"1":1,"4":2,"6":14,"7":2,"9":1,"13":1,"14":1,"24":1,"26":1,"31":1,"53":1,"56":1,"57":2,"58":1,"59":3,"60":1,"63":1,"64":3,"66":1,"70":3,"72":3,"73":1,"75":3,"76":1,"84":1,"85":2,"87":1,"88":3,"90":1,"96":1,"105":1,"107":1,"116":23,"118":2,"121":2,"122":2,"123":1,"125":1,"129":1,"130":1,"135":1,"138":1,"139":1,"140":1,"147":1,"148":1,"149":1,"151":1,"153":1,"154":8,"156":1,"157":2,"159":1,"163":2,"164":1,"167":1,"168":2,"169":1,"171":1,"174":1,"176":1,"177":2,"181":2,"189":1,"192":6,"193":1,"194":3,"196":3,"198":3,"199":3}}],["creation",{"2":{"192":1,"194":1}}],["creating",{"0":{"191":1,"192":1,"195":1},"1":{"192":1,"193":1,"194":1,"195":1,"196":1},"2":{"116":1}}],["creates",{"2":{"7":1,"64":3}}],["create",{"0":{"194":1},"2":{"6":2,"13":2,"14":1,"64":1,"69":1,"73":2,"85":1,"147":2,"154":1,"167":2,"168":3,"170":2,"191":2,"192":4,"193":5,"194":3,"195":1,"196":1,"199":1}}],["created",{"2":{"4":2,"6":2,"64":1,"79":3}}],["criteria",{"2":{"97":2,"108":2,"126":2,"136":2,"183":3}}],["cropping",{"2":{"58":2}}],["cross=1",{"2":{"72":1}}],["cross`",{"2":{"72":1}}],["crossings",{"2":{"64":3,"116":1}}],["crossing",{"0":{"105":1},"2":{"6":2,"64":81,"70":1,"71":7,"72":3,"73":7,"75":1,"76":6,"97":1,"105":1,"116":1,"136":1}}],["cross",{"0":{"133":1},"2":{"6":1,"9":1,"53":3,"64":13,"69":14,"70":2,"71":1,"72":2,"73":10,"74":4,"75":2,"76":1,"97":1,"105":2,"108":1,"116":17,"122":1,"123":2,"126":1,"136":1,"146":3}}],["crosses",{"0":{"43":1},"2":{"0":2,"3":2,"6":3,"31":1,"43":2,"64":1,"69":1,"105":26,"116":2,"198":1}}],["crc",{"2":{"6":1,"59":1}}],["crs2",{"2":{"193":2}}],["crs1",{"2":{"193":2,"194":1}}],["crs=nothing",{"2":{"154":1,"171":1,"181":1}}],["crs=gi",{"2":{"154":5,"157":3}}],["crs`",{"2":{"154":1,"173":6}}],["crs",{"0":{"193":1},"2":{"1":16,"4":2,"6":8,"31":1,"32":2,"35":2,"36":2,"37":2,"38":2,"50":2,"85":1,"147":10,"151":2,"153":3,"154":36,"156":2,"157":5,"171":1,"173":7,"181":1,"191":1,"193":13,"194":7,"196":1}}],["customize",{"2":{"154":1,"155":1}}],["custom",{"0":{"201":1},"2":{"6":3,"59":1,"201":2}}],["curr^2",{"2":{"53":2}}],["curr",{"2":{"53":8,"64":116,"69":9,"76":3,"170":26}}],["currentnode",{"2":{"147":8}}],["current",{"2":{"53":1,"59":8,"64":3,"69":2,"71":1,"73":1,"76":6,"147":2,"170":3}}],["currently",{"2":{"5":1,"6":3,"23":1,"59":1,"64":1,"69":1,"71":2,"147":1,"154":1,"159":2}}],["curve",{"0":{"116":1},"2":{"4":7,"6":17,"53":6,"56":7,"64":5,"66":3,"72":7,"78":1,"79":22,"88":6,"97":2,"99":4,"100":9,"101":9,"108":1,"110":4,"111":6,"112":3,"116":152,"122":1,"123":10,"126":1,"129":6,"131":3,"136":1,"138":4,"139":6,"140":6}}],["curves",{"2":{"0":1,"6":4,"56":3,"66":3,"73":1,"78":1,"79":1,"88":13,"102":1,"116":1,"123":1,"141":1,"181":2}}],["cutpolygon",{"2":{"68":1}}],["cuts",{"2":{"68":1}}],["cutting",{"0":{"67":1},"1":{"68":1,"69":1},"2":{"64":1,"69":2}}],["cut",{"0":{"68":1},"2":{"0":1,"6":6,"31":1,"59":1,"67":1,"68":5,"69":22,"116":1}}],["coastlines",{"2":{"197":1}}],["coarse",{"2":{"6":1,"175":1,"178":1}}],["cos",{"2":{"192":3,"193":1,"194":2}}],["copy",{"2":{"154":1,"166":1,"185":1}}],["coors1",{"2":{"146":2}}],["coors2",{"2":{"146":3}}],["coord",{"2":{"178":6}}],["coords",{"2":{"69":9,"178":8}}],["coordinatetransformations",{"2":{"1":2,"6":2,"181":1,"186":2,"191":1,"192":5,"194":2}}],["coordinate",{"0":{"59":1,"172":1,"193":1,"194":1},"2":{"1":4,"5":5,"6":7,"25":1,"27":1,"58":2,"59":10,"157":1,"173":4,"178":1,"191":3,"193":1}}],["coordinates",{"0":{"5":1,"57":1},"1":{"58":1,"59":1},"2":{"0":4,"1":1,"4":2,"5":7,"6":20,"56":2,"57":8,"59":25,"64":2,"65":1,"69":2,"70":1,"72":1,"75":1,"79":1,"88":2,"149":1,"159":2,"172":2,"173":1,"176":1,"177":3,"193":2}}],["co",{"2":{"116":2}}],["core",{"2":{"158":1}}],["corner",{"2":{"66":4,"147":1}}],["corners",{"2":{"66":1}}],["correspondent",{"2":{"146":1}}],["correspond",{"2":{"64":1}}],["corresponding",{"2":{"53":3,"71":2}}],["corrected",{"2":{"166":1}}],["correctness",{"2":{"162":1,"189":1}}],["correctly",{"2":{"154":1,"176":1}}],["correcting",{"2":{"20":1,"166":1}}],["corrections",{"0":{"165":1,"167":1},"1":{"166":1,"167":1},"2":{"163":1,"166":6,"169":1}}],["correction",{"2":{"6":10,"31":4,"70":1,"71":2,"72":1,"73":2,"75":1,"76":2,"162":1,"164":2,"165":2,"166":8,"167":7,"168":1,"170":2}}],["correct",{"2":{"6":3,"24":1,"53":1,"56":1,"63":1,"64":1,"66":1,"70":1,"72":1,"75":1,"79":1,"88":1,"97":1,"108":1,"122":1,"126":1,"136":1,"162":1,"163":2,"165":1}}],["cov",{"2":{"66":16}}],["cover",{"2":{"99":1,"103":1}}],["covering",{"2":{"6":2,"93":1,"167":2,"170":2}}],["covered",{"0":{"101":1,"102":1,"140":1},"2":{"3":1,"6":1,"71":1,"76":1,"93":1,"96":1,"97":1,"101":2,"102":2,"103":1,"104":2,"115":2,"116":3,"170":1}}],["coveredby",{"0":{"48":1,"95":1,"96":1,"99":1,"100":1,"103":1,"104":1,"115":1},"1":{"96":1,"97":1},"2":{"0":2,"3":4,"6":4,"31":1,"48":2,"64":1,"94":3,"95":1,"96":3,"97":10,"98":6,"99":13,"100":15,"101":13,"102":5,"103":2,"104":2,"198":1}}],["covers",{"0":{"47":1,"92":1,"93":1},"1":{"93":1,"94":1},"2":{"0":2,"3":5,"6":5,"31":1,"47":2,"92":1,"93":4,"94":5,"147":1,"198":1}}],["coverages",{"2":{"6":1,"66":1}}],["coverage",{"0":{"65":1},"2":{"0":1,"6":2,"31":1,"65":3,"66":16}}],["code",{"2":{"7":1,"10":1,"26":5,"59":1,"97":1,"108":1,"116":1,"123":2,"126":1,"136":1,"146":1,"161":1,"188":1,"200":1}}],["colatitude",{"2":{"159":1}}],["colname",{"2":{"154":3}}],["col",{"2":{"154":2,"155":1}}],["columns",{"2":{"154":2}}],["column",{"2":{"22":1,"154":9,"155":8,"157":2,"195":2,"198":8}}],["colored",{"2":{"199":1}}],["color=",{"2":{"193":2}}],["colors",{"2":{"82":1,"83":1,"197":1,"199":2}}],["colorrange",{"2":{"58":2,"78":1}}],["colorbar",{"2":{"58":1,"78":1,"84":1,"147":1}}],["colormap",{"2":{"14":1,"58":3,"78":1}}],["color",{"2":{"6":1,"55":1,"58":2,"59":1,"60":1,"62":1,"68":3,"78":2,"82":1,"83":1,"84":2,"87":4,"90":4,"93":1,"96":1,"107":4,"121":4,"135":4,"174":1,"177":1,"192":1,"193":1,"197":1,"199":5}}],["collect",{"2":{"11":3,"13":1,"50":1,"52":1,"55":2,"59":1,"62":1,"65":2,"68":2,"78":1,"85":2,"147":3,"154":2,"155":1,"176":4,"190":2}}],["collections",{"0":{"103":1,"104":1,"114":1,"115":1,"132":1,"133":1,"142":1,"143":1},"2":{"1":2,"6":8,"22":1,"151":2,"153":1,"154":2,"155":2,"157":3,"181":2,"196":1}}],["collection",{"2":{"1":1,"4":7,"6":12,"18":2,"29":2,"53":2,"56":3,"66":2,"79":2,"103":2,"104":2,"114":2,"115":2,"132":2,"133":2,"142":2,"143":2,"149":1,"151":1,"154":3,"155":1,"181":1,"187":1,"190":1}}],["collinear",{"2":{"3":1,"6":2,"64":5,"70":2,"72":3,"73":12,"75":2,"121":1,"123":2}}],["come",{"2":{"159":1}}],["commonly",{"2":{"196":1}}],["common",{"2":{"87":1,"156":1,"178":1,"191":1,"193":1,"194":1}}],["commented",{"2":{"146":1}}],["comments",{"2":{"116":1}}],["comment",{"2":{"30":1}}],["combos",{"2":{"71":1,"73":1,"76":1}}],["combination",{"2":{"64":1,"157":2}}],["combines",{"2":{"63":1}}],["combine",{"2":{"63":2,"64":5,"170":1}}],["combined",{"2":{"6":1,"64":4,"76":1,"167":1,"170":2,"192":1}}],["coming",{"2":{"66":1}}],["com",{"2":{"6":2,"73":1,"85":1,"159":1}}],["compilation",{"2":{"161":1}}],["compiled",{"2":{"24":1}}],["compiler",{"2":{"24":1,"154":2,"161":2}}],["complex",{"2":{"149":1,"181":1,"198":1}}],["complexity",{"2":{"149":1}}],["complete",{"2":{"56":1}}],["completely",{"2":{"1":1,"3":4,"6":4,"64":2,"71":1,"76":1,"90":2,"91":1,"93":1,"94":1,"97":1,"116":1,"136":1,"151":1,"154":1,"159":1}}],["components",{"2":{"62":1,"63":2,"155":1,"157":25}}],["component",{"2":{"56":3,"63":11,"66":8,"73":1,"154":2,"157":2}}],["composed",{"2":{"4":4,"6":5,"88":5,"192":2}}],["comprised",{"2":{"6":3,"70":1,"72":1,"75":1}}],["computing",{"2":{"60":1,"80":1}}],["computational",{"2":{"6":1,"59":1}}],["computation",{"2":{"6":6,"59":1,"63":1,"70":1,"72":1,"75":1,"182":2,"183":2,"184":2}}],["computer",{"2":{"6":1,"59":1}}],["computes",{"2":{"6":1,"85":1}}],["compute",{"2":{"4":1,"6":3,"56":1,"59":1,"85":3,"178":1}}],["computed",{"2":{"4":4,"6":5,"53":1,"56":3,"59":3,"66":1,"197":1}}],["compact",{"2":{"200":3}}],["comparisons",{"2":{"198":1}}],["comparing",{"2":{"76":1,"88":1}}],["compares",{"2":{"147":1}}],["compared",{"2":{"88":1}}],["compare",{"2":{"3":1,"4":1,"6":2,"53":1,"76":1,"88":2,"122":1}}],["compatibility",{"2":{"56":1}}],["compatible",{"2":{"1":3,"22":1,"25":1,"27":1,"53":1,"56":1,"59":2,"63":1,"66":1,"79":1,"88":1,"91":1,"94":1,"97":1,"108":1,"119":1,"122":1,"126":1,"136":1,"151":1,"152":1,"154":1,"173":2}}],["couple",{"2":{"195":1}}],["course",{"2":{"153":1}}],["country",{"2":{"200":8}}],["countries",{"2":{"11":1,"83":1,"181":1}}],["counted",{"2":{"73":2}}],["counters",{"2":{"59":8}}],["counterparts",{"2":{"33":1}}],["counter",{"2":{"6":1,"64":7,"116":1,"145":1,"146":1}}],["counterclockwise",{"2":{"4":1,"6":2,"9":1,"55":2,"56":1,"84":1,"85":1}}],["count",{"2":{"64":16,"147":1,"185":1}}],["couldn",{"2":{"9":1,"161":1}}],["could",{"2":{"4":1,"6":1,"56":3,"73":4,"76":1,"79":1,"80":1,"116":2,"159":1,"173":1}}],["conditions",{"2":{"198":4}}],["connected",{"2":{"116":5}}],["connect",{"2":{"66":11}}],["connecting",{"2":{"53":1,"183":1,"192":2}}],["connections",{"2":{"6":2,"167":2,"170":2}}],["contents",{"2":{"154":1,"162":1}}],["context",{"2":{"32":4,"177":4,"193":2}}],["contours",{"2":{"147":1}}],["contour",{"2":{"147":4}}],["continue",{"2":{"56":1,"64":7,"66":1,"71":2,"73":1,"116":1,"154":1,"166":1,"170":3,"185":1,"200":1}}],["contributions",{"2":{"25":1,"27":1}}],["controlled",{"2":{"24":1}}],["control",{"2":{"23":1}}],["containing",{"2":{"65":1,"199":1}}],["contain",{"2":{"3":1,"6":1,"26":1,"76":1,"90":1,"122":1,"192":1}}],["contained",{"2":{"3":1,"6":1,"9":1,"76":4,"91":1,"93":1,"121":1,"122":1,"123":1,"154":1,"199":1}}],["contains",{"0":{"45":1,"89":1,"90":1},"1":{"90":1,"91":1},"2":{"0":2,"3":4,"6":4,"26":1,"31":1,"33":1,"45":2,"64":1,"76":1,"80":1,"89":1,"90":5,"91":4,"152":1,"169":1,"198":1,"199":1}}],["consistent",{"2":{"64":1,"149":1}}],["consistency",{"2":{"22":1}}],["considered",{"2":{"53":1,"59":1}}],["consider",{"2":{"52":1,"55":1,"62":1,"65":1,"66":3,"68":1,"78":2,"87":1,"90":1,"93":1,"96":1,"107":1,"116":3,"118":1,"121":1,"125":1,"135":1}}],["constprop",{"2":{"105":1}}],["constants",{"2":{"64":1}}],["const",{"2":{"31":4,"64":1,"97":4,"108":3,"122":4,"126":4,"136":4,"156":3,"181":4}}],["constructing",{"2":{"194":1}}],["constructors",{"2":{"160":2}}],["construct",{"2":{"160":1}}],["constructed",{"2":{"1":1,"20":1,"173":1}}],["constrained",{"2":{"6":3,"70":1,"72":1,"75":1}}],["concepts",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"26":1}}],["concieve",{"2":{"9":1}}],["concave",{"2":{"6":1,"53":2,"62":2,"146":2}}],["convention",{"2":{"62":1}}],["convenience",{"2":{"59":1,"189":1}}],["conversely",{"2":{"64":1}}],["conversion",{"0":{"187":1},"2":{"22":1,"33":1}}],["converted",{"2":{"22":1,"59":3}}],["converts",{"2":{"6":1,"190":1}}],["convert",{"0":{"98":1,"109":1,"123":1,"127":1,"137":1},"2":{"6":3,"32":1,"35":2,"36":2,"37":2,"38":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":1,"59":6,"78":1,"85":1,"147":2,"177":1,"181":3,"187":1,"189":1,"190":1}}],["convexity",{"2":{"84":2}}],["convexhull",{"2":{"50":1}}],["convex",{"0":{"50":1,"80":1,"83":1},"1":{"81":1,"82":1,"83":1,"84":1,"85":1},"2":{"0":1,"6":7,"31":2,"50":1,"53":3,"80":4,"82":2,"83":1,"84":4,"85":11,"146":1}}],["vw",{"2":{"181":3}}],["von",{"2":{"147":1}}],["v2",{"2":{"116":9}}],["v1",{"2":{"116":9}}],["v`",{"2":{"59":2}}],["vcat",{"2":{"53":1,"59":1,"154":1}}],["vararg",{"2":{"59":1}}],["varying",{"2":{"159":1}}],["vary",{"2":{"53":1}}],["variables",{"2":{"24":1,"59":8,"91":1,"94":1,"119":1}}],["variable",{"2":{"24":1,"71":2}}],["vals",{"2":{"183":9}}],["valign",{"2":{"181":1}}],["validated",{"2":{"71":2,"73":2,"76":2}}],["validate",{"2":{"9":1}}],["valid",{"2":{"1":1,"6":8,"63":1,"70":2,"72":2,"73":3,"75":2,"147":1,"162":3,"163":1,"168":1,"169":1,"185":1,"186":1}}],["val",{"2":{"53":2,"64":2,"73":8,"116":30,"123":4}}],["values=",{"2":{"147":2}}],["values=sort",{"2":{"147":1}}],["values",{"2":{"1":1,"5":3,"6":15,"53":2,"58":3,"59":40,"63":2,"64":5,"66":5,"73":1,"79":2,"116":4,"147":19,"151":1,"154":2,"161":1,"183":2,"185":1}}],["value",{"2":{"0":1,"4":7,"5":2,"6":15,"14":1,"24":1,"32":2,"53":1,"55":2,"56":4,"59":45,"64":5,"66":2,"73":7,"78":1,"79":3,"147":6,"154":2,"183":11,"189":2,"198":1}}],["vs",{"0":{"15":1},"2":{"12":1,"73":2}}],["vᵢ",{"2":{"6":1}}],["v",{"2":{"5":2,"6":6,"14":4,"59":23,"79":8}}],["visvalingam",{"2":{"179":1}}],["visvalingamwhyatt",{"0":{"184":1},"2":{"0":1,"6":3,"181":4,"184":5}}],["visualized",{"2":{"163":1}}],["visualize",{"2":{"118":1,"193":1}}],["visa",{"2":{"64":1}}],["visited",{"2":{"64":4}}],["view",{"2":{"64":2,"85":1,"147":1,"170":1,"183":3,"200":1}}],["viewport",{"2":{"14":1}}],["views",{"2":{"1":1,"64":1,"75":1,"173":1}}],["vincenty",{"2":{"6":1,"178":1}}],["via",{"2":{"6":1,"60":1,"80":1,"148":1,"174":1,"177":1,"189":2}}],["vec",{"2":{"85":2}}],["vect",{"2":{"157":2}}],["vectypes",{"2":{"59":5}}],["vector",{"2":{"1":12,"4":6,"5":1,"6":46,"18":1,"23":1,"29":1,"52":1,"53":10,"59":14,"64":7,"69":6,"70":4,"71":1,"72":2,"73":3,"75":4,"116":1,"123":2,"146":3,"147":4,"149":1,"151":1,"154":4,"155":3,"163":8,"164":1,"169":22,"175":1,"176":1,"178":2,"182":1,"183":4,"184":1,"185":2,"186":10,"190":15,"192":18,"193":6,"194":9}}],["vectors",{"2":{"1":1,"4":2,"6":3,"22":1,"53":4,"59":3,"64":1,"79":1,"85":1,"145":1,"147":1,"151":1,"154":1,"157":2,"181":1}}],["ve",{"2":{"17":1,"178":1}}],["vein",{"2":{"7":1}}],["version",{"2":{"189":1}}],["versa",{"2":{"64":1}}],["vert",{"2":{"185":21}}],["verts",{"2":{"181":2}}],["vertical",{"2":{"58":1,"66":1,"73":1,"147":1}}],["vertices",{"2":{"6":7,"9":1,"57":4,"59":5,"64":1,"69":2,"85":1,"99":1,"101":5,"107":1,"110":3,"113":1,"116":1,"138":1,"163":1,"175":2,"176":1,"177":3,"178":3,"181":1,"184":1}}],["vertex",{"2":{"5":1,"6":2,"53":1,"57":2,"59":2,"64":19,"73":12,"84":1,"99":2,"111":2,"112":1,"116":1,"138":3}}],["very",{"2":{"0":1,"176":1,"200":2}}],["rd",{"2":{"181":3}}],["rdbu",{"2":{"78":1}}],["rhumb",{"2":{"146":2}}],["runner",{"2":{"193":1}}],["running",{"2":{"154":1,"157":2}}],["run",{"2":{"154":5,"155":3,"200":1}}],["runs",{"2":{"73":2,"145":1}}],["rule",{"2":{"64":1}}],["rules",{"2":{"64":1}}],["rightjoin",{"2":{"198":1}}],["right=2",{"2":{"64":1}}],["right",{"2":{"59":1,"64":4,"69":1,"79":1,"146":1,"183":19,"185":5,"192":1}}],["ring4",{"2":{"194":2}}],["ring3",{"2":{"193":1}}],["ring2",{"2":{"123":3,"192":2}}],["ring1",{"2":{"123":3,"192":2}}],["rings",{"0":{"101":1,"112":1,"130":1,"140":1,"162":1},"1":{"163":1,"164":1},"2":{"4":4,"6":6,"9":2,"56":1,"63":1,"64":3,"73":1,"88":7,"145":1,"147":5,"164":1,"167":1,"181":1}}],["ring",{"2":{"4":7,"6":13,"9":1,"31":1,"53":3,"56":2,"59":1,"62":1,"63":4,"64":12,"66":13,"76":3,"79":5,"88":4,"99":1,"100":2,"101":5,"110":1,"112":1,"116":2,"128":1,"129":1,"130":3,"138":1,"139":2,"140":4,"146":3,"147":11,"162":2,"163":1,"164":14,"165":1,"192":1}}],["rtrees",{"2":{"20":1}}],["r+y",{"2":{"13":2,"14":1}}],["r+x",{"2":{"13":2,"14":1}}],["ry",{"2":{"13":3,"14":3}}],["rx",{"2":{"13":3,"14":3}}],["round",{"2":{"181":1,"183":1,"185":1}}],["routines",{"2":{"11":1}}],["row",{"2":{"155":3}}],["rows",{"2":{"155":2}}],["robust",{"0":{"15":1},"2":{"84":1,"123":1}}],["rotate",{"2":{"66":1}}],["rotation",{"2":{"1":1,"6":1,"186":1}}],["rotations",{"2":{"1":3,"6":3,"186":3}}],["rotmatrix2d",{"2":{"181":1}}],["rotmatrix",{"2":{"1":1,"6":1,"186":1}}],["r",{"2":{"6":1,"9":1,"13":11,"14":12,"32":1,"177":1,"185":2,"192":6,"193":2,"194":4}}],["rᵢ₋₁",{"2":{"59":20}}],["rᵢ∗rᵢ₊₁+sᵢ⋅sᵢ₊₁",{"2":{"6":1}}],["rᵢ₊₁",{"2":{"6":1,"59":29}}],["rᵢ",{"2":{"6":2,"59":49}}],["ramer",{"2":{"183":1}}],["raster",{"0":{"147":1},"2":{"147":4}}],["ray",{"2":{"116":4}}],["raw",{"2":{"18":1}}],["range",{"2":{"13":8,"14":4,"147":3,"154":2,"155":2}}],["ranges",{"2":{"6":1,"147":2}}],["randomly",{"2":{"199":2}}],["random",{"2":{"181":2}}],["randn",{"2":{"82":1}}],["rand",{"2":{"6":1,"84":1,"147":1,"199":2}}],["rather",{"2":{"6":1,"147":1,"169":1}}],["ratio",{"2":{"6":7,"73":1,"177":1,"181":1,"182":4,"183":6,"184":4,"185":11}}],["radii",{"2":{"6":1,"177":1}}],["radius`",{"2":{"177":1}}],["radius",{"2":{"6":6,"59":13,"159":5,"177":4,"178":1}}],["radialdistance",{"0":{"182":1},"2":{"0":1,"6":2,"179":1,"181":4,"182":4}}],["rrayscore",{"2":{"1":1,"6":1,"186":1}}],["rring",{"2":{"1":1,"6":1,"186":1}}],["rewrap",{"2":{"154":2,"157":1}}],["req",{"2":{"116":44}}],["requirement",{"2":{"162":1,"168":1}}],["requirements",{"2":{"116":5}}],["required",{"2":{"85":1,"97":3,"108":3,"126":3,"136":3,"176":1,"191":1}}],["requires",{"2":{"60":1,"88":1,"90":1,"97":2,"100":3,"101":3,"102":1,"108":1,"111":3,"112":2,"113":1,"122":1,"123":4,"126":1,"129":3,"130":1,"131":1,"135":1,"136":1,"139":3,"140":3,"141":1,"174":1,"177":1,"189":1}}],["require",{"2":{"33":1,"85":1,"96":2,"97":6,"108":3,"116":32,"122":3,"126":3,"136":3}}],["requests",{"2":{"25":1,"27":1}}],["reflected",{"2":{"181":3}}],["ref",{"2":{"78":1}}],["refers",{"2":{"159":1}}],["referring",{"2":{"116":1}}],["refer",{"2":{"6":1,"147":1}}],["references",{"2":{"6":1,"59":1}}],["reference",{"0":{"193":1,"194":1},"2":{"0":1,"1":2,"173":2,"191":2,"193":1}}],["reveal",{"2":{"76":1}}],["reveals",{"2":{"76":1}}],["reverse",{"2":{"55":1,"58":1,"59":1,"64":2,"192":2}}],["rev",{"2":{"75":1}}],["render",{"2":{"58":1}}],["rendering",{"2":{"58":3,"59":1}}],["rename",{"2":{"10":1}}],["regardless",{"2":{"73":1,"116":1}}],["regions",{"2":{"71":3,"73":5,"75":1,"76":3,"116":2,"200":1}}],["region",{"2":{"60":2,"73":3,"76":2,"200":1}}],["register",{"2":{"31":3,"59":3}}],["regular",{"0":{"15":1}}],["rebuilding",{"2":{"154":1,"155":1}}],["rebuild",{"2":{"31":2,"152":1,"154":3,"157":11,"178":1,"181":2}}],["rebuilt",{"2":{"1":1,"149":1,"151":1,"154":1,"157":2}}],["readable",{"2":{"196":1}}],["readability",{"2":{"64":1}}],["read",{"2":{"154":1,"193":2}}],["reading",{"2":{"154":1}}],["reads",{"2":{"154":1}}],["reached",{"2":{"154":1,"157":3}}],["reaches",{"2":{"152":1}}],["reach",{"2":{"152":1}}],["reasons",{"2":{"189":1}}],["reason",{"2":{"24":1,"161":1,"162":1,"168":1}}],["real`",{"2":{"177":1,"178":1}}],["reality",{"2":{"84":1}}],["really",{"2":{"56":1,"116":1,"147":1,"161":1}}],["real=1",{"2":{"6":2,"177":2}}],["real=6378137`",{"2":{"177":1}}],["real=6378137",{"2":{"6":2,"177":1}}],["real",{"0":{"200":1},"2":{"5":1,"6":13,"53":1,"59":45,"63":2,"73":1,"177":3,"178":3,"185":5,"198":1}}],["relation",{"2":{"64":2}}],["relations",{"2":{"31":10,"105":1,"123":1}}],["relationship",{"2":{"23":1,"198":2}}],["relative",{"2":{"59":3}}],["relevant",{"2":{"6":1,"10":1,"85":1,"159":2}}],["reducing",{"2":{"155":2}}],["reduced",{"2":{"182":1,"183":1,"184":1}}],["reduces",{"2":{"19":1,"76":1,"155":1}}],["reduce",{"2":{"1":1,"147":1,"151":1,"155":2,"166":1}}],["redundant",{"2":{"64":1}}],["red",{"2":{"14":1,"62":2,"78":1,"93":1,"96":1,"118":1,"192":1,"193":1,"199":2}}],["removal",{"2":{"64":1}}],["removes",{"2":{"64":1,"149":1}}],["removed",{"2":{"64":3,"71":5,"147":1}}],["remove",{"2":{"56":1,"64":33,"66":1,"69":2,"70":5,"72":5,"75":2,"170":2,"182":1,"183":3,"185":4}}],["removing",{"2":{"6":3,"64":1,"71":1,"182":1,"183":1,"184":1}}],["remainingnode",{"2":{"147":3}}],["remaining",{"2":{"64":1,"88":1,"116":2,"183":1}}],["remain",{"2":{"1":1,"6":8,"151":1,"154":1,"181":2}}],["resolution",{"2":{"193":1}}],["resolved",{"2":{"147":1}}],["resembles",{"2":{"159":2}}],["reset",{"2":{"64":1,"154":1}}],["resize",{"2":{"13":1,"14":1,"64":2}}],["resampled",{"2":{"6":1,"178":1}}],["respectively",{"2":{"64":1,"122":1,"157":1,"192":1}}],["respect",{"2":{"6":2,"72":1,"73":1,"85":1,"116":6}}],["rest",{"2":{"6":1,"59":2,"75":1}}],["resulting",{"2":{"69":1,"76":1,"147":1,"199":1}}],["results",{"2":{"3":2,"6":2,"73":1,"105":1,"122":1,"154":1,"155":1,"163":1,"183":25,"192":3}}],["result",{"2":{"1":2,"3":5,"4":5,"6":11,"19":1,"32":3,"53":1,"56":2,"66":1,"73":15,"79":2,"85":1,"91":1,"94":1,"97":1,"119":1,"136":1,"151":2,"154":9,"155":2,"177":3,"185":6}}],["receives",{"2":{"154":1,"155":1}}],["recent",{"2":{"64":1,"71":1,"73":1,"76":1}}],["recalculate",{"2":{"153":1}}],["recursive",{"2":{"152":1}}],["recursively",{"2":{"4":1,"6":1,"152":1,"171":1}}],["rect",{"2":{"52":3,"55":5,"65":3,"78":7}}],["rectangle",{"2":{"52":2,"55":2,"58":2,"65":2,"66":1,"78":2,"176":5,"177":8,"199":2}}],["rectangletrait",{"2":{"32":1}}],["recommended",{"2":{"22":1}}],["reconstructing",{"2":{"181":1}}],["reconstructed",{"2":{"18":1}}],["reconstruct",{"2":{"1":1,"18":1,"31":2,"151":1,"154":2,"155":1,"157":28}}],["replace",{"2":{"64":1,"147":2,"183":1}}],["replaced",{"2":{"22":1}}],["repl",{"2":{"60":1,"174":1,"177":1}}],["repeat",{"2":{"63":1,"64":3,"88":6}}],["repeating",{"2":{"56":1,"76":1}}],["repeated",{"2":{"4":3,"6":3,"9":1,"53":2,"59":1,"64":2,"76":2,"79":2,"88":4,"116":1}}],["represented",{"2":{"159":1,"199":1}}],["represent",{"2":{"17":1,"59":1,"64":4,"88":1,"159":1}}],["representing",{"2":{"6":2,"71":1,"73":1,"76":1,"78":1,"85":1,"88":1,"159":1,"200":1}}],["represents",{"2":{"6":1,"166":2,"167":1}}],["reprojects",{"2":{"173":1}}],["reprojection",{"0":{"173":1},"1":{"174":1}}],["reproject",{"2":{"0":1,"1":4,"31":2,"149":1,"173":6,"174":2}}],["re",{"2":{"1":1,"6":1,"17":1,"85":1,"186":1,"191":1,"193":1}}],["retrievable",{"2":{"1":1,"173":1}}],["returnval",{"2":{"116":9}}],["returntype",{"2":{"19":1}}],["returning",{"2":{"18":1,"60":1,"71":2}}],["return",{"0":{"22":1},"2":{"1":1,"3":16,"4":2,"6":35,"13":3,"14":3,"23":2,"30":1,"32":3,"35":1,"36":1,"37":1,"38":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"53":5,"56":5,"59":20,"60":1,"63":4,"64":36,"66":12,"69":12,"70":5,"71":4,"72":4,"73":18,"75":6,"76":9,"79":8,"85":2,"88":30,"91":1,"94":1,"97":1,"103":2,"104":2,"105":18,"108":2,"114":2,"115":2,"116":71,"118":1,"119":1,"122":2,"123":28,"126":1,"128":2,"132":2,"133":2,"136":1,"142":2,"143":2,"146":10,"147":12,"154":17,"155":3,"157":7,"162":1,"164":4,"166":6,"167":2,"170":2,"172":2,"173":1,"178":4,"181":3,"182":1,"183":5,"184":3,"185":7,"186":2,"187":2,"189":3,"190":8}}],["returned",{"2":{"1":1,"6":10,"22":2,"23":1,"64":3,"69":1,"70":2,"72":2,"73":2,"75":2,"84":1,"85":1,"147":1,"154":1,"157":2,"161":1,"173":1,"181":1}}],["returns",{"2":{"1":1,"3":5,"4":4,"5":3,"6":23,"18":1,"22":2,"53":1,"56":2,"59":6,"63":3,"64":4,"66":6,"69":1,"70":1,"73":1,"75":1,"79":8,"85":1,"87":1,"90":2,"91":1,"93":2,"94":1,"97":1,"107":1,"116":4,"119":1,"123":2,"136":1,"147":2,"151":1,"154":2,"161":1,"178":1,"187":1,"198":1}}],["phi``",{"2":{"159":1}}],["physics",{"2":{"159":1}}],["psa",{"2":{"154":1,"155":1}}],["pb",{"2":{"105":2}}],["p0",{"2":{"79":9}}],["p3",{"2":{"64":8,"184":4}}],["ptm",{"2":{"146":3}}],["ptj",{"2":{"146":5}}],["pti",{"2":{"146":3}}],["ptrait",{"2":{"79":2}}],["pts",{"2":{"64":22,"69":7}}],["pt",{"2":{"64":114,"69":2,"73":26,"116":8,"183":4}}],["pt2",{"2":{"64":14,"73":2}}],["pt1",{"2":{"64":18,"73":2}}],["pn",{"2":{"128":3}}],["pn2",{"2":{"64":4}}],["pn1",{"2":{"64":4}}],["pfirst",{"2":{"56":3}}],["pu",{"2":{"199":2}}],["purpose",{"2":{"154":1}}],["pure",{"2":{"6":1,"85":1,"147":1}}],["purely",{"2":{"6":1,"18":1,"159":1,"177":1}}],["push",{"2":{"64":15,"69":5,"70":2,"72":2,"73":2,"75":4,"76":5,"147":3,"164":1,"178":3,"183":3}}],["pulling",{"2":{"85":1}}],["pull",{"2":{"25":1,"27":1}}],["public",{"2":{"24":1}}],["pick",{"2":{"193":2}}],["piece",{"2":{"64":6,"170":6}}],["pieces",{"2":{"64":12,"69":1,"71":2,"75":4,"116":1,"170":9}}],["pi",{"2":{"13":2}}],["pixels",{"2":{"147":1}}],["pixel",{"2":{"6":2,"147":7}}],["pythagorean",{"2":{"79":1}}],["py",{"2":{"13":2,"14":2}}],["px",{"2":{"13":2,"14":2}}],["peucker",{"2":{"179":2,"181":3,"183":2}}],["peaks",{"2":{"147":2}}],["peculiarities",{"0":{"21":1},"1":{"22":1,"23":1,"24":1}}],["people",{"2":{"9":1}}],["persist",{"2":{"154":1}}],["performed",{"2":{"159":1,"199":1}}],["performs",{"2":{"59":1,"155":1,"178":1}}],["perform",{"2":{"26":1,"58":1,"59":2,"64":1,"149":1,"155":1,"198":3,"199":2,"201":1}}],["performing",{"2":{"6":3,"23":1,"59":1,"70":1,"72":1,"75":1,"199":1}}],["performance",{"2":{"4":1,"6":2,"22":1,"147":1,"168":1,"171":1,"181":1,"196":1}}],["per",{"2":{"5":2,"6":2,"58":1,"59":2,"64":5,"147":1,"154":2,"155":2,"178":1}}],["pl",{"2":{"199":2}}],["plt",{"2":{"192":1}}],["please",{"2":{"64":1}}],["place",{"2":{"73":1,"198":1}}],["placement",{"2":{"64":1}}],["plan",{"2":{"175":1}}],["plane",{"2":{"6":1,"59":1,"159":3,"178":1,"197":1}}],["planar",{"2":{"6":4,"31":2,"159":5,"178":9}}],["plottable",{"2":{"147":1}}],["plotted",{"2":{"62":1}}],["plotting",{"0":{"192":1},"2":{"6":1,"147":1,"175":1,"178":1,"191":1,"192":4,"193":1}}],["plots",{"2":{"58":2}}],["plot",{"0":{"193":1},"2":{"13":1,"58":3,"82":2,"83":1,"84":1,"87":1,"121":1,"147":1,"177":2,"181":4,"191":2,"192":9,"193":5,"194":1,"196":1,"199":1}}],["plus",{"2":{"5":1,"6":1,"59":1}}],["p2y",{"2":{"190":3}}],["p2x",{"2":{"190":3}}],["p2box",{"2":{"58":1}}],["p2",{"2":{"3":2,"4":2,"6":6,"15":12,"53":12,"56":9,"64":18,"66":19,"75":2,"79":15,"84":1,"88":11,"93":2,"97":2,"116":12,"123":2,"146":3,"176":1,"184":4,"190":3,"192":2}}],["p1y",{"2":{"190":3}}],["p1x",{"2":{"190":3}}],["p1",{"2":{"3":3,"4":2,"6":7,"15":12,"53":21,"56":8,"58":4,"64":9,"66":25,"68":1,"75":2,"79":15,"84":2,"88":14,"93":5,"96":5,"97":3,"116":4,"123":2,"128":3,"146":3,"184":4,"190":3,"192":1}}],["practice",{"2":{"194":1}}],["pred",{"2":{"198":5,"199":1,"200":2,"201":1}}],["predicate",{"2":{"7":1,"105":1,"198":6,"199":1,"201":5}}],["predicates",{"0":{"12":1,"15":1,"201":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"7":4,"12":1,"31":1,"64":5,"73":4,"74":3,"116":1,"198":1,"200":1}}],["pretty",{"2":{"173":1}}],["prettytime",{"2":{"13":2}}],["prevent",{"2":{"71":2,"73":2,"76":2}}],["prev^2",{"2":{"53":2}}],["prev",{"2":{"53":14,"64":69,"146":4}}],["previously",{"2":{"123":1,"176":1}}],["previous",{"2":{"19":1,"53":1,"154":1,"182":3}}],["preparations",{"2":{"20":1}}],["prepared",{"2":{"20":1,"147":2}}],["prepare",{"0":{"20":1},"2":{"17":1,"20":1}}],["precision",{"2":{"11":1}}],["preserve",{"2":{"181":4,"183":3}}],["preserved",{"2":{"154":2}}],["preserving",{"2":{"179":1}}],["presentation",{"2":{"6":1,"59":1}}],["present",{"2":{"6":1,"154":1,"189":1}}],["presence",{"2":{"6":1,"32":1,"189":1}}],["prescribes",{"2":{"20":1}}],["press",{"2":{"6":1,"59":1}}],["pre",{"2":{"6":1,"75":1,"181":1,"183":2}}],["prefilter",{"2":{"6":1,"181":7}}],["protters",{"2":{"154":1,"155":1}}],["progressively",{"2":{"152":1}}],["program",{"2":{"17":1}}],["programming",{"2":{"17":1,"26":1}}],["promote",{"2":{"59":5}}],["property",{"2":{"155":2}}],["properties=gi",{"2":{"157":1}}],["properties=namedtuple",{"2":{"155":1}}],["properties=",{"2":{"147":1}}],["properties",{"2":{"6":1,"154":8,"157":1,"181":1,"185":1}}],["propagated",{"2":{"154":1}}],["propagate",{"2":{"59":16,"79":4}}],["probably",{"2":{"56":1,"154":1}}],["prod",{"2":{"53":4}}],["product",{"2":{"53":1}}],["process",{"2":{"99":3,"100":3,"101":3,"102":1,"105":1,"110":3,"111":3,"112":2,"113":1,"116":11,"123":4,"128":1,"129":3,"130":1,"131":1,"138":3,"139":3,"140":3,"141":1,"154":1,"155":1,"183":1}}],["processed",{"2":{"64":6}}],["processors",{"2":{"31":1,"97":2,"108":2,"126":2,"136":2}}],["processor",{"2":{"31":1}}],["processing",{"2":{"23":1}}],["profile",{"2":{"9":1}}],["providers",{"2":{"163":1,"169":1}}],["provide",{"0":{"23":1},"2":{"6":6,"52":1,"55":1,"57":1,"62":1,"65":1,"68":1,"70":2,"72":2,"75":2,"78":1,"87":1,"90":1,"93":1,"96":1,"107":1,"116":2,"118":1,"121":1,"125":1,"135":1,"147":1,"185":1}}],["provides",{"2":{"6":1,"80":1,"85":1,"193":1}}],["provided",{"2":{"4":1,"6":3,"11":1,"64":1,"79":1,"88":1,"169":1,"177":2,"189":1}}],["projecting",{"2":{"193":1}}],["projections",{"2":{"159":1}}],["projection",{"2":{"79":2,"191":1,"193":1}}],["project",{"2":{"9":1}}],["projects",{"2":{"9":1}}],["proj",{"2":{"1":2,"6":3,"173":2,"174":4,"176":1,"177":6,"191":1}}],["prints",{"2":{"174":1}}],["printstyled",{"2":{"60":1,"174":1,"177":1}}],["println",{"2":{"60":1,"174":1,"177":1,"181":2}}],["print",{"2":{"60":2,"174":2,"177":2}}],["primitives",{"0":{"157":1},"2":{"31":1,"157":1}}],["primitive",{"2":{"29":1}}],["primarily",{"2":{"25":2,"27":2,"160":1}}],["primary",{"2":{"3":2,"6":3,"97":1,"136":1,"181":1}}],["priority",{"2":{"1":1,"173":1}}],["pay",{"2":{"155":1}}],["paper",{"2":{"116":2}}],["pa",{"2":{"105":2}}],["pathof",{"2":{"181":2}}],["paths",{"0":{"197":1},"2":{"161":1,"197":2}}],["path",{"2":{"55":3,"193":2}}],["parquet",{"2":{"196":3}}],["parent",{"2":{"161":1}}],["parse",{"2":{"116":1,"123":1}}],["part",{"2":{"66":2,"76":2,"116":3,"153":1}}],["partition",{"2":{"154":2,"155":2}}],["partialsort",{"2":{"185":1}}],["partial",{"2":{"66":4}}],["partially",{"2":{"64":2,"76":2}}],["particularly",{"2":{"59":1}}],["particular",{"2":{"30":1,"53":1,"147":1,"193":2}}],["parameter",{"2":{"160":3}}],["parameterized",{"2":{"159":1}}],["parameters",{"2":{"157":1,"160":2}}],["parametrized",{"2":{"159":1}}],["params",{"2":{"6":2,"189":10}}],["parallel",{"2":{"116":1,"146":1}}],["paradigm",{"0":{"29":1}}],["paradigms",{"0":{"17":1},"1":{"18":1,"19":1,"20":1},"2":{"17":2,"20":1}}],["parlance",{"2":{"5":1,"6":1,"59":1,"159":1}}],["passes",{"2":{"66":2,"116":1}}],["passed",{"2":{"1":2,"6":5,"85":1,"147":1,"157":4,"173":1,"177":2,"186":1,"189":2,"201":1}}],["passable",{"2":{"59":18}}],["passing",{"2":{"18":1,"154":1,"179":1}}],["pass",{"2":{"5":1,"6":3,"18":1,"59":1,"91":1,"94":1,"116":2,"119":1,"154":1,"161":1,"177":1,"181":1}}],["pairs",{"2":{"73":1,"192":1}}],["pair",{"2":{"3":2,"6":2,"66":1,"123":2,"154":2,"155":1}}],["packages",{"2":{"25":1,"27":1,"80":1,"157":2,"162":1,"188":1,"191":3,"193":1,"196":1}}],["package",{"2":{"1":2,"6":1,"22":1,"25":2,"27":2,"60":1,"80":2,"85":1,"147":1,"173":3,"174":1,"177":1,"193":1,"196":2}}],["page",{"2":{"0":1,"9":1,"26":1,"29":1,"31":1,"32":1,"50":1,"53":1,"56":1,"58":1,"59":1,"60":1,"63":1,"64":1,"66":1,"69":1,"71":1,"73":1,"74":1,"76":1,"79":1,"85":1,"88":1,"91":1,"94":1,"104":1,"105":1,"115":1,"116":1,"119":1,"123":1,"133":1,"143":1,"146":1,"147":1,"148":1,"154":1,"155":1,"156":1,"157":1,"161":1,"164":1,"167":1,"170":1,"171":1,"172":1,"174":1,"178":1,"185":1,"186":1,"187":1,"189":1,"190":1}}],["p",{"2":{"1":5,"6":2,"13":13,"14":12,"15":2,"52":1,"55":1,"62":1,"64":5,"65":1,"66":5,"71":2,"75":2,"78":3,"82":1,"83":1,"87":1,"90":1,"93":1,"96":1,"105":4,"107":1,"116":20,"118":1,"121":1,"125":1,"135":1,"146":4,"147":3,"149":3,"151":3,"154":5,"172":7,"176":1,"180":1,"181":1,"185":3,"186":9,"187":7,"190":11,"198":1,"199":1}}],["poylgon",{"2":{"116":1}}],["potential",{"2":{"66":1}}],["potentially",{"2":{"6":2,"64":1,"167":2,"170":2}}],["post",{"2":{"183":2}}],["possibly",{"2":{"154":1}}],["possiblenodes",{"2":{"147":2}}],["possible",{"2":{"6":3,"70":1,"72":1,"75":1,"147":1,"154":1,"155":1}}],["possibility",{"2":{"152":1}}],["possibilities",{"2":{"73":1}}],["position=",{"2":{"181":1}}],["position",{"2":{"6":1,"146":1,"176":1}}],["positive",{"2":{"4":4,"6":4,"55":3,"56":1,"78":3,"79":3,"178":2,"185":1}}],["poles",{"2":{"159":1}}],["pole",{"2":{"159":2}}],["polgons",{"2":{"147":1}}],["polgontrait",{"2":{"1":1,"151":1}}],["polar",{"2":{"6":1,"177":1}}],["polynodes",{"2":{"64":7,"70":1,"72":1,"75":1}}],["polynode",{"2":{"64":36}}],["polypoints",{"2":{"59":46}}],["poly",{"2":{"6":14,"15":2,"52":1,"55":1,"56":6,"58":2,"59":3,"62":1,"64":107,"65":2,"66":4,"68":4,"69":20,"70":22,"71":12,"72":15,"73":10,"75":19,"76":79,"78":1,"79":3,"82":2,"88":4,"105":10,"116":21,"146":5,"147":5,"170":18,"176":2,"180":2,"181":8,"190":8,"192":2,"199":5}}],["polys",{"2":{"6":2,"64":39,"68":3,"69":10,"70":14,"71":14,"72":9,"73":6,"75":14,"76":28,"170":26}}],["polys1",{"2":{"3":2,"6":2,"123":6}}],["polys2",{"2":{"3":2,"6":2,"123":6}}],["poly2",{"2":{"3":3,"4":2,"6":7,"70":2,"88":2,"116":19,"122":2,"123":8}}],["poly1",{"2":{"3":3,"4":2,"6":7,"70":2,"88":2,"116":14,"122":2,"123":8}}],["polygon3",{"2":{"192":2,"193":1}}],["polygon2",{"2":{"192":6}}],["polygon1",{"2":{"192":4}}],["polygonization",{"2":{"147":1}}],["polygonizing",{"0":{"147":1}}],["polygonized",{"2":{"147":1}}],["polygonize",{"2":{"0":1,"6":6,"9":1,"31":1,"147":31}}],["polygon`",{"2":{"59":3,"85":1}}],["polygons",{"0":{"102":1,"131":1,"141":1,"168":1},"1":{"169":1,"170":1},"2":{"3":3,"4":3,"5":1,"6":17,"9":1,"23":5,"31":1,"56":5,"57":1,"59":2,"62":1,"63":1,"64":14,"66":1,"69":2,"70":9,"71":5,"72":3,"73":8,"75":6,"76":19,"78":1,"79":1,"88":5,"102":1,"122":1,"123":3,"141":1,"146":1,"147":19,"152":1,"163":2,"167":3,"168":2,"169":2,"170":10,"179":1,"181":1,"192":3,"193":1,"199":5,"200":3}}],["polygontrait",{"2":{"1":1,"3":2,"4":6,"6":11,"15":3,"23":1,"32":1,"53":2,"56":3,"59":3,"63":2,"64":2,"66":2,"69":1,"70":5,"71":5,"72":3,"73":5,"75":4,"76":8,"79":2,"88":10,"99":2,"100":1,"101":1,"102":3,"103":1,"105":4,"110":2,"111":2,"112":1,"113":2,"114":1,"123":6,"128":2,"129":1,"130":1,"131":3,"132":1,"138":2,"139":1,"140":1,"141":3,"142":1,"149":1,"151":1,"152":2,"154":2,"155":1,"164":2,"166":2,"167":1,"170":2,"181":2,"190":1}}],["polygon",{"0":{"34":1,"64":1,"67":1,"70":1,"71":1,"73":1,"75":1,"76":1,"113":1},"1":{"35":1,"36":1,"37":1,"38":1,"68":1,"69":1},"2":{"0":1,"1":4,"3":4,"4":21,"5":9,"6":65,"9":2,"11":3,"15":4,"20":1,"23":1,"52":1,"53":5,"55":2,"56":5,"57":5,"58":16,"59":57,"62":2,"63":4,"64":39,"65":3,"66":4,"68":3,"69":10,"70":5,"71":7,"72":5,"73":6,"75":6,"76":34,"78":3,"79":14,"80":1,"84":1,"85":3,"88":12,"97":1,"99":3,"100":3,"101":4,"102":8,"105":1,"110":3,"111":4,"112":4,"113":4,"116":66,"122":3,"123":5,"126":1,"128":3,"129":4,"130":5,"131":7,"136":1,"138":3,"139":4,"140":4,"141":8,"146":5,"147":4,"151":1,"154":1,"162":4,"163":8,"164":5,"165":1,"167":4,"168":3,"169":12,"170":7,"176":1,"177":4,"180":1,"181":9,"186":3,"190":6,"192":12,"193":5,"194":7,"195":2,"199":6}}],["pointwise",{"0":{"186":1},"2":{"173":1}}],["point1",{"2":{"79":4}}],["point`",{"2":{"73":1}}],["pointedgeside",{"2":{"64":1}}],["point₂",{"2":{"63":13}}],["point₁",{"2":{"63":13}}],["point3s",{"2":{"59":10}}],["point3f",{"2":{"58":1}}],["pointrait",{"2":{"6":1}}],["point2f",{"2":{"58":4,"59":2,"78":1,"82":1}}],["point2d",{"2":{"58":1}}],["point2",{"2":{"6":2,"59":5,"79":4,"84":1}}],["pointtrait",{"2":{"1":1,"4":4,"6":6,"18":1,"32":1,"50":1,"53":2,"56":1,"59":3,"66":1,"72":2,"79":17,"85":1,"88":8,"99":6,"103":1,"110":6,"114":1,"128":6,"132":1,"138":6,"142":1,"149":2,"151":1,"152":1,"154":7,"155":4,"157":12,"160":2,"166":2,"167":1,"171":1,"172":2,"181":2,"186":2,"187":2,"190":1}}],["point",{"0":{"110":1,"128":1},"2":{"1":4,"3":10,"4":37,"5":7,"6":82,"9":2,"20":1,"50":1,"53":12,"56":3,"57":3,"58":1,"59":126,"63":6,"64":97,"66":50,"69":13,"71":9,"72":1,"73":71,"76":9,"78":17,"79":73,"85":3,"88":27,"91":3,"96":1,"97":2,"99":8,"105":21,"108":2,"110":10,"116":138,"118":1,"121":2,"122":2,"123":20,"125":1,"126":3,"128":10,"129":1,"131":1,"136":4,"138":11,"146":1,"147":3,"151":1,"154":1,"162":1,"163":2,"167":2,"168":1,"170":2,"173":1,"175":1,"181":2,"182":3,"183":9,"184":1,"186":2,"190":4,"192":111,"193":7,"194":8,"199":2}}],["points2",{"2":{"3":1,"6":1,"123":3}}],["points1",{"2":{"3":1,"6":1,"123":3}}],["points",{"0":{"99":1,"138":1},"2":{"0":1,"1":3,"3":1,"4":11,"5":1,"6":53,"9":3,"13":1,"53":2,"55":3,"56":3,"58":8,"59":32,"63":1,"64":55,"66":5,"69":3,"70":5,"71":1,"72":8,"73":28,"75":4,"76":1,"78":2,"79":8,"80":3,"82":4,"84":4,"85":6,"87":2,"88":13,"90":1,"97":6,"99":3,"100":4,"108":6,"110":1,"111":7,"112":3,"116":10,"122":1,"123":4,"126":5,"128":1,"129":2,"130":4,"131":3,"135":1,"136":5,"138":3,"139":3,"140":3,"141":1,"145":1,"147":3,"154":2,"155":1,"171":2,"173":1,"176":2,"177":2,"181":11,"182":11,"183":26,"184":10,"185":33,"186":2,"187":2,"190":25,"192":8,"193":1,"198":1,"199":11}}],["pointorientation",{"2":{"0":1,"6":2,"116":2}}],["my",{"2":{"200":1,"201":2}}],["m`",{"2":{"159":1}}],["mdk",{"2":{"154":2}}],["moore",{"2":{"147":1}}],["moved",{"2":{"64":1,"173":1}}],["move",{"2":{"63":1,"116":1}}],["mode",{"2":{"201":3}}],["model",{"2":{"159":1,"198":1}}],["modify",{"2":{"192":1}}],["modified",{"2":{"154":1,"155":1}}],["module",{"2":{"173":1,"178":1}}],["modules",{"2":{"6":1,"59":1}}],["mod1",{"2":{"59":5}}],["mod",{"2":{"59":1,"64":1}}],["most",{"2":{"25":1,"27":1,"64":1,"71":1,"73":1,"76":1,"84":1,"116":1,"181":1,"196":2}}],["monotone",{"2":{"20":1,"84":2}}],["monotonechainmethod",{"2":{"0":1,"6":1,"80":1,"84":2,"85":4}}],["moment",{"2":{"6":1,"176":1,"178":1}}],["more",{"2":{"6":3,"7":1,"9":1,"10":1,"11":1,"23":1,"26":1,"29":1,"64":1,"70":1,"72":1,"75":1,"85":1,"116":1,"123":2,"154":2,"155":2,"158":1,"159":2,"164":1,"174":1,"176":1,"178":1,"192":2,"198":1}}],["missing",{"2":{"176":4}}],["missed",{"2":{"147":1}}],["mistakenly",{"2":{"168":1}}],["mid",{"2":{"66":2,"116":3}}],["midpoint",{"2":{"64":2}}],["middle",{"2":{"64":2}}],["mining",{"2":{"200":1}}],["minimal",{"2":{"200":1}}],["minimize",{"2":{"73":1}}],["minimum",{"2":{"4":7,"6":12,"65":1,"66":2,"79":12,"181":1,"182":1,"184":1}}],["mind",{"2":{"176":1,"199":1}}],["minmax",{"2":{"73":4}}],["min",{"2":{"66":1,"73":16,"79":15,"181":1,"183":3,"184":1,"185":28}}],["minus",{"2":{"55":1}}],["minpoints=0",{"2":{"147":1}}],["minpoints",{"2":{"6":2}}],["might",{"2":{"6":3,"25":1,"27":1,"56":1,"70":1,"72":1,"73":1,"75":1,"165":1,"183":1}}],["mixed",{"2":{"6":4,"181":1}}],["m",{"2":{"5":1,"6":1,"15":10,"59":2,"66":6,"146":2,"193":1}}],["mp",{"2":{"105":2}}],["mp1",{"2":{"4":2,"6":2,"88":7}}],["mp2",{"2":{"4":2,"6":2,"88":8}}],["mason",{"2":{"154":1,"155":1}}],["markersize",{"2":{"192":2}}],["marker",{"2":{"192":2}}],["marked",{"2":{"64":6,"71":1,"73":1,"76":1}}],["marking",{"2":{"71":2,"73":2,"76":2}}],["mark",{"2":{"64":2}}],["marks",{"2":{"64":1}}],["mag",{"2":{"53":4}}],["making",{"2":{"64":1,"147":1,"152":1,"169":1,"192":1,"194":2}}],["makie",{"2":{"13":1,"14":1,"52":1,"55":1,"58":3,"62":1,"65":1,"68":4,"78":1,"82":1,"83":1,"87":1,"90":1,"93":1,"96":1,"107":1,"118":1,"121":1,"125":1,"135":1,"147":3,"180":1,"181":1,"197":1}}],["makevalid",{"2":{"181":2}}],["makes",{"2":{"56":1,"64":1,"79":1,"154":1,"163":1,"168":1,"169":1}}],["make",{"2":{"9":1,"25":1,"27":1,"53":1,"64":3,"73":1,"79":1,"122":1,"123":1,"147":2,"152":1,"164":1,"176":1,"185":1,"188":1,"192":2,"194":1}}],["mainly",{"2":{"59":1,"78":1,"149":1,"155":1}}],["maintain",{"2":{"56":1}}],["main",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"7":1,"26":1,"64":1,"147":1,"154":1,"177":1}}],["manner",{"2":{"198":1}}],["manipulate",{"2":{"196":1}}],["manifolds",{"2":{"159":2}}],["manifold",{"0":{"159":1},"2":{"6":1,"31":2,"159":12,"178":3}}],["manually",{"2":{"162":1}}],["many",{"2":{"4":1,"5":1,"6":2,"23":1,"26":1,"59":1,"64":1,"69":1,"71":1,"73":2,"76":1,"88":1,"163":1,"171":1}}],["mapped",{"2":{"196":1}}],["maptasks`",{"2":{"154":1}}],["maptasks",{"2":{"154":7}}],["mapreducetasks`",{"2":{"155":1}}],["mapreducetasks",{"2":{"155":5}}],["mapreduce",{"2":{"71":1,"147":2,"154":3,"155":7}}],["map",{"0":{"193":1},"2":{"6":1,"13":1,"18":3,"19":1,"29":1,"59":1,"64":1,"73":1,"123":1,"147":17,"154":11,"155":5,"157":10,"159":1,"160":1,"164":1,"181":1,"191":1,"193":1,"194":1,"196":1}}],["matches",{"2":{"88":1,"147":1}}],["match",{"2":{"88":12,"123":3,"147":1,"154":1,"157":2}}],["matching",{"2":{"3":1,"6":1,"22":1,"88":3,"123":1,"152":2}}],["matlab",{"2":{"68":1}}],["materializer`",{"2":{"154":1}}],["materializer",{"2":{"22":1,"154":1}}],["mathematical",{"2":{"159":1}}],["mathematically",{"2":{"6":1,"146":1,"159":2}}],["mathematics",{"2":{"159":1}}],["mathrm",{"2":{"59":1}}],["math",{"2":{"7":1}}],["matrix",{"2":{"6":1,"14":2,"59":1}}],["maxlog=3",{"2":{"178":1}}],["maximal",{"2":{"73":1}}],["maximum",{"2":{"3":1,"6":4,"14":1,"65":1,"66":4,"105":1,"147":1,"177":1,"178":1,"183":4}}],["max",{"2":{"6":9,"32":9,"53":2,"66":1,"147":1,"154":1,"155":1,"176":5,"177":8,"178":21,"183":36,"185":1,"197":1}}],["made",{"2":{"6":2,"63":1,"64":1,"73":1,"130":1,"152":1,"167":1,"170":1,"184":1}}],["maybe",{"2":{"32":1,"116":4,"123":1,"154":2,"155":3,"157":2}}],["may",{"2":{"1":1,"6":3,"23":2,"24":1,"59":2,"64":1,"73":1,"84":1,"146":1,"148":1,"151":1,"152":1,"154":4,"159":1,"160":1,"168":1,"169":1,"177":1}}],["mercator",{"2":{"193":1}}],["merge",{"2":{"154":1}}],["measures",{"2":{"159":1}}],["measure",{"2":{"157":1,"175":1}}],["meant",{"2":{"26":1}}],["meaning",{"2":{"3":2,"4":1,"6":3,"24":1,"56":1,"60":1,"123":4,"146":1,"159":1}}],["means",{"2":{"3":1,"6":2,"55":1,"56":1,"60":1,"96":1,"116":3,"121":1,"122":1,"146":1,"152":1,"159":2,"161":2}}],["mean",{"2":{"0":1,"6":5,"17":1,"58":2,"59":5,"155":1,"159":1}}],["meanvalue",{"2":{"0":1,"5":2,"6":3,"57":1,"58":2,"59":15}}],["meets",{"2":{"116":9,"123":1,"183":1}}],["meet",{"2":{"73":3,"96":1,"97":1,"108":1,"116":7,"126":1,"136":1}}],["memory",{"2":{"59":1,"194":1}}],["mesh",{"2":{"58":1}}],["message",{"2":{"6":1,"189":1}}],["me",{"0":{"23":1}}],["mentioned",{"2":{"19":1}}],["mentions",{"2":{"6":1,"189":1}}],["menu",{"2":{"14":3}}],["median",{"2":{"13":4,"155":1}}],["mechanics",{"2":{"6":1,"59":1}}],["metadatakeys",{"2":{"154":1}}],["metadatasupport",{"2":{"154":2}}],["metadata",{"2":{"154":11}}],["met",{"2":{"116":44}}],["meters",{"2":{"6":4,"176":1,"177":4,"193":1}}],["methoderror",{"2":{"31":3}}],["methods",{"0":{"2":1,"3":1,"4":1,"6":1,"39":1},"1":{"3":1,"4":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"1":1,"6":7,"9":1,"25":1,"27":1,"31":27,"59":3,"80":1,"97":1,"108":1,"126":1,"136":1,"147":1,"152":1,"154":1,"157":2,"160":1,"176":1,"181":2,"186":1,"192":1}}],["method",{"0":{"174":1},"2":{"1":1,"4":1,"5":10,"6":30,"24":1,"32":1,"53":1,"56":1,"59":37,"60":2,"63":1,"66":1,"73":1,"76":1,"79":4,"84":3,"85":2,"88":1,"97":2,"108":2,"122":1,"126":2,"136":2,"147":1,"154":1,"155":1,"157":3,"161":1,"173":1,"174":2,"176":2,"177":9,"178":22,"179":2,"189":3,"198":1,"201":1}}],["mutation",{"2":{"195":1}}],["mutlipolygon",{"2":{"4":1,"6":1,"63":1}}],["muladd",{"2":{"59":2}}],["multifloats",{"2":{"13":1,"14":1,"15":1}}],["multifloat",{"2":{"7":1}}],["multilinestringtrait",{"2":{"32":1,"166":1}}],["multilinestring",{"2":{"6":1,"190":2}}],["multi",{"0":{"103":1,"104":1,"114":1,"115":1,"132":1,"133":1,"142":1,"143":1},"2":{"4":2,"6":3,"53":1,"56":1,"66":1,"88":2,"103":1,"104":1,"114":1,"115":1,"132":1,"133":1,"142":1,"143":1}}],["multicurves",{"2":{"56":1,"66":1}}],["multicurve",{"2":{"4":1,"6":1,"56":1}}],["multigeometry",{"2":{"4":2,"6":2,"79":2}}],["multiplication",{"2":{"178":1}}],["multiplied",{"2":{"59":3,"159":1}}],["multiple",{"2":{"4":1,"6":1,"59":1,"116":1,"171":1,"185":1,"192":1,"196":1}}],["multiply",{"2":{"1":1,"6":1,"186":1}}],["multipolys",{"2":{"76":3}}],["multipoly`",{"2":{"70":2,"72":2,"75":2}}],["multipoly",{"2":{"6":9,"15":3,"70":1,"71":27,"72":1,"73":26,"75":1,"76":24,"170":21,"181":9}}],["multipolygon`",{"2":{"147":1}}],["multipolygons",{"2":{"3":1,"4":1,"6":11,"63":1,"70":3,"72":3,"73":3,"75":3,"78":1,"88":1,"122":1,"123":1,"169":1,"192":1,"193":1}}],["multipolygon",{"2":{"3":2,"4":5,"6":17,"56":2,"62":1,"70":1,"71":7,"72":1,"73":5,"75":1,"76":6,"88":4,"123":2,"147":7,"167":2,"168":7,"169":8,"170":2,"181":3,"192":8,"193":1}}],["multipolygontrait",{"2":{"1":1,"3":4,"4":2,"6":6,"23":1,"32":1,"71":4,"73":4,"76":4,"88":6,"103":1,"104":1,"114":1,"115":1,"123":8,"132":1,"133":1,"142":1,"143":1,"151":1,"154":1,"166":1,"170":4}}],["multipoint",{"2":{"4":5,"6":5,"50":1,"56":1,"88":5,"105":6,"154":1,"155":2,"181":1,"192":5}}],["multipoints",{"2":{"3":2,"4":1,"6":3,"56":1,"66":1,"88":2,"123":2,"181":1,"192":1}}],["multipointtrait",{"2":{"1":1,"3":2,"4":4,"6":7,"32":1,"53":2,"56":1,"66":1,"88":8,"103":1,"104":1,"105":4,"114":1,"115":1,"123":4,"132":1,"133":1,"142":1,"143":1,"151":1,"152":1,"166":1,"181":2,"190":1}}],["multithreading",{"2":{"1":2,"4":1,"6":4,"151":1,"156":1}}],["must",{"2":{"1":1,"3":8,"4":2,"5":1,"6":22,"9":1,"53":1,"59":5,"60":1,"64":2,"66":3,"69":1,"73":2,"88":5,"91":2,"93":1,"94":1,"97":1,"108":1,"116":13,"122":1,"125":1,"126":1,"136":2,"147":1,"154":1,"157":2,"165":1,"166":3,"167":1,"173":1,"177":1,"178":1,"181":1,"185":4,"189":1}}],["much",{"2":{"0":1,"6":3,"70":1,"72":1,"75":1}}],["df",{"2":{"195":3,"196":4,"199":10,"200":12}}],["dp",{"2":{"181":3}}],["dy",{"2":{"146":2,"178":3}}],["dy2",{"2":{"146":2}}],["dy1",{"2":{"105":10,"146":2}}],["dyc",{"2":{"105":2}}],["dx",{"2":{"146":2,"178":3}}],["dx2",{"2":{"146":2}}],["dx1",{"2":{"105":10,"146":2}}],["dxc",{"2":{"105":2}}],["drop",{"2":{"76":1,"170":1,"178":1}}],["driven",{"2":{"25":1,"27":1}}],["driving",{"2":{"25":1,"27":1}}],["duplicated",{"2":{"73":2}}],["during",{"2":{"64":1}}],["due",{"2":{"63":1,"64":1,"73":3}}],["date",{"2":{"84":1}}],["datas",{"2":{"201":1}}],["datasets",{"2":{"193":1,"198":1,"199":1}}],["dataset",{"2":{"193":1,"198":1}}],["datainterpolations",{"2":{"175":1}}],["dataapi",{"2":{"31":1,"154":7}}],["dataaspect",{"2":{"13":1,"14":1,"52":1,"55":1,"58":2,"62":1,"65":1,"78":2,"147":2,"176":1,"181":1}}],["dataframes",{"2":{"195":3,"199":2,"200":1}}],["dataframe",{"2":{"29":1,"195":1,"198":1,"199":5,"200":2}}],["data",{"0":{"147":1,"196":1},"2":{"23":1,"25":1,"27":1,"83":1,"147":2,"154":1,"181":10,"191":1,"193":2,"194":2,"195":2,"196":6,"199":1}}],["dashboard",{"0":{"14":1},"2":{"13":1,"14":1}}],["d",{"2":{"1":2,"5":1,"6":1,"59":1,"159":1,"173":1,"183":3}}],["deu",{"2":{"200":2}}],["demonstrates",{"2":{"199":1}}],["densify",{"2":{"177":3}}],["densifying",{"2":{"177":1}}],["densifies",{"2":{"175":1}}],["denoted",{"2":{"116":1}}],["denotes",{"2":{"64":1}}],["debug",{"2":{"166":1}}],["debugging",{"2":{"59":1,"64":1}}],["de9im",{"2":{"123":1}}],["derivation",{"2":{"73":1}}],["dealing",{"2":{"66":1}}],["delete",{"2":{"105":1,"123":1,"147":1,"183":1}}],["deleteat",{"2":{"64":6,"183":1,"185":2}}],["deltri",{"2":{"85":1}}],["delayed",{"2":{"64":10,"71":2,"73":2,"76":2}}],["delay",{"2":{"64":14,"70":2,"71":2,"72":2,"73":2,"75":2,"76":2}}],["delaunay",{"2":{"6":1,"85":1}}],["delaunaytriangulation",{"2":{"6":1,"31":1,"80":1,"85":6}}],["deprecated",{"2":{"178":1}}],["depend",{"2":{"64":2}}],["depends",{"2":{"64":1,"69":1}}],["depending",{"2":{"1":1,"23":1,"73":1,"151":1,"154":1}}],["depth",{"2":{"59":2}}],["desktop",{"2":{"196":1}}],["dest",{"2":{"193":2}}],["destination",{"2":{"193":5}}],["desired",{"2":{"75":1,"196":1}}],["despite",{"2":{"53":1}}],["describe",{"2":{"17":1}}],["described",{"2":{"6":1,"59":1,"63":1,"64":1}}],["de",{"0":{"39":1},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"116":2,"198":1}}],["deconstruct",{"2":{"149":1,"155":1}}],["decomposition",{"2":{"18":1,"149":1}}],["decomposing",{"2":{"18":1}}],["decompose",{"2":{"18":2,"29":1,"59":4,"155":1,"162":1}}],["decrementing",{"2":{"147":1}}],["decrease",{"2":{"63":1}}],["decreasing",{"2":{"6":1,"181":1}}],["decide",{"2":{"84":1,"147":1}}],["decision",{"2":{"24":1}}],["degeneracies",{"2":{"9":1}}],["degenerate",{"2":{"6":1,"59":1,"69":2}}],["degrees",{"2":{"6":1,"52":1,"146":1,"159":1,"177":1}}],["defines",{"2":{"64":1,"149":1,"155":1,"156":1,"157":1,"158":1,"165":1,"188":1}}],["define",{"2":{"58":1,"73":2,"87":1,"147":2,"149":1,"152":1,"154":1,"159":1,"188":1,"201":2}}],["defined",{"2":{"4":1,"5":1,"6":3,"7":1,"22":1,"53":2,"59":1,"65":1,"66":4,"73":4,"79":2,"145":1,"154":1,"159":3,"178":1,"188":1}}],["definitions",{"2":{"189":1}}],["definition",{"2":{"4":4,"6":6,"88":8,"96":1,"159":3,"178":1}}],["default",{"2":{"1":2,"4":5,"6":13,"32":1,"53":1,"56":2,"66":1,"70":1,"71":2,"72":1,"73":5,"75":1,"76":2,"79":2,"85":1,"147":5,"154":5,"157":2,"159":1,"173":2,"181":2}}],["defaults",{"2":{"1":6,"4":2,"6":11,"151":3,"154":1,"156":3}}],["deeper",{"2":{"1":1,"151":1,"153":1,"154":2}}],["detrimental",{"2":{"168":1}}],["detector",{"2":{"84":1}}],["detection",{"2":{"84":1,"147":1}}],["determined",{"2":{"64":1,"66":1}}],["determine",{"2":{"64":10,"66":3,"70":2,"72":2,"73":9,"75":2,"97":1,"108":1,"116":9,"123":1,"126":1,"136":1,"183":3,"198":1}}],["determines",{"2":{"56":1,"64":3,"73":1,"116":10}}],["determinant",{"2":{"6":1,"59":1}}],["detail",{"2":{"26":1}}],["details",{"2":{"6":2,"176":2}}],["details>",{"2":{"6":2}}],["det",{"2":{"0":1,"6":2,"59":4}}],["dirname",{"2":{"181":4}}],["dirty",{"2":{"180":1}}],["directive",{"2":{"154":1}}],["direction",{"2":{"6":1,"64":1,"88":5,"147":3}}],["direct",{"2":{"33":1}}],["directly",{"2":{"6":1,"85":3,"147":1,"177":1}}],["dig",{"2":{"154":1}}],["dict",{"2":{"147":5}}],["didn",{"2":{"76":1,"116":1,"161":1}}],["division",{"2":{"58":1}}],["divided",{"2":{"26":1}}],["ditance",{"2":{"4":1,"6":1,"79":1}}],["dimensional",{"2":{"5":1,"6":3,"55":1,"59":1,"85":2,"159":1}}],["dimensions",{"2":{"3":1,"6":1,"122":1,"123":1}}],["dimension",{"2":{"1":1,"3":4,"6":4,"105":2,"121":1,"122":4,"173":1}}],["discouraged",{"2":{"194":1}}],["discussion",{"2":{"25":1,"27":1,"69":1}}],["distributed",{"2":{"199":2}}],["distinct",{"2":{"73":1,"147":1}}],["dist",{"2":{"73":40,"79":19,"116":2,"177":8,"183":40}}],["distance`",{"2":{"177":3,"178":2,"189":1}}],["distances",{"2":{"73":1,"78":1,"177":1,"182":5}}],["distance",{"0":{"77":2,"78":2},"1":{"78":2,"79":2},"2":{"0":4,"4":26,"6":47,"31":1,"32":9,"59":13,"60":3,"66":3,"73":32,"77":2,"78":17,"79":92,"116":1,"149":1,"155":1,"175":1,"176":5,"177":13,"178":28,"181":1,"182":3,"183":6,"184":1,"197":1,"201":2}}],["disagree",{"2":{"56":1}}],["displacement",{"2":{"159":1}}],["displaying",{"2":{"193":1}}],["display",{"2":{"13":1,"58":1,"193":1}}],["disparate",{"2":{"25":1,"27":1}}],["dispatches",{"2":{"6":1,"53":1,"56":1,"59":1,"63":1,"66":1,"79":1,"88":1,"97":1,"108":1,"122":1,"126":1,"136":1}}],["dispatch",{"2":{"4":1,"6":3,"24":1,"59":1,"88":1,"157":3,"160":1,"189":1}}],["disjoint",{"0":{"41":1,"106":1,"107":1,"110":1,"111":1,"112":1,"113":1,"114":1},"1":{"107":1,"108":1},"2":{"0":2,"3":5,"6":7,"23":1,"31":1,"41":2,"76":2,"106":1,"107":3,"108":11,"109":6,"110":15,"111":18,"112":10,"113":5,"114":4,"115":2,"116":16,"119":3,"167":2,"168":2,"170":7,"198":1}}],["diffs",{"2":{"53":4}}],["diff",{"2":{"6":2,"53":17,"70":5,"71":3,"123":3,"170":8}}],["differs",{"2":{"193":1}}],["differ",{"2":{"4":1,"6":1,"79":1}}],["differently",{"2":{"4":3,"6":4,"53":1,"56":2,"66":1}}],["different",{"2":{"3":1,"4":4,"6":6,"20":1,"23":1,"53":1,"56":4,"64":3,"66":1,"73":2,"84":1,"122":2,"123":1,"147":1,"152":1,"154":1,"168":2,"193":2,"196":1}}],["differences",{"0":{"71":1},"2":{"73":1,"183":1}}],["difference",{"0":{"35":1,"38":1,"70":1},"2":{"0":1,"6":7,"11":1,"23":1,"31":1,"35":2,"38":1,"64":3,"70":12,"71":14,"73":1,"75":1,"76":3,"167":1,"170":1,"177":1}}],["diffintersectingpolygons",{"2":{"0":1,"6":1,"167":1,"170":4}}],["doi",{"2":{"70":2,"72":2,"75":2,"116":1}}],["doing",{"2":{"17":1,"22":1,"154":1,"194":1}}],["dot",{"2":{"53":2,"59":1}}],["download",{"2":{"193":1}}],["down",{"2":{"18":1,"29":1,"59":1,"157":2}}],["doable",{"2":{"9":1}}],["documenter",{"2":{"176":2}}],["documentation",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"26":1,"58":1,"156":1}}],["docstring",{"2":{"176":4}}],["docstrings",{"0":{"150":1},"1":{"151":1},"2":{"7":1,"156":1}}],["docs",{"0":{"26":1,"156":1},"2":{"26":1,"147":1}}],["doc",{"2":{"9":1,"10":1}}],["does",{"0":{"22":1},"2":{"7":1,"19":1,"62":1,"73":2,"90":1,"96":3,"116":1}}],["doesn",{"2":{"4":1,"6":2,"32":1,"56":1,"69":1,"88":1,"177":1,"189":1,"200":1}}],["doublets",{"2":{"200":2}}],["double",{"2":{"184":4}}],["doubled",{"2":{"6":1,"184":1}}],["douglas",{"2":{"179":2,"181":2,"183":1}}],["douglaspeucker",{"0":{"183":1},"2":{"0":1,"6":5,"179":1,"181":5,"183":6}}],["done",{"0":{"10":1},"2":{"13":1,"14":1,"116":2,"147":1,"149":1,"159":1,"168":1,"192":1,"198":1}}],["don",{"2":{"4":2,"6":2,"64":4,"70":1,"76":1,"88":6,"111":1,"116":1,"125":1,"129":1,"147":2,"154":3,"155":2,"189":1}}],["do",{"0":{"9":1,"23":1,"74":1},"2":{"1":1,"6":1,"14":1,"23":1,"31":1,"53":1,"56":2,"59":2,"60":1,"63":1,"66":1,"69":1,"76":3,"79":2,"87":1,"88":1,"93":1,"111":2,"112":1,"113":2,"116":1,"147":4,"149":1,"151":1,"154":5,"155":2,"157":4,"163":1,"164":1,"169":1,"172":2,"174":1,"177":1,"181":1,"186":2,"187":2,"193":2,"194":2,"195":3,"199":1,"200":1}}],["aim",{"2":{"159":1}}],["ay",{"2":{"146":2}}],["azimuth",{"2":{"146":2}}],["automatically",{"2":{"122":1,"154":1,"193":1}}],["a3",{"2":{"83":1}}],["against",{"2":{"88":1,"116":2,"177":1,"181":1}}],["again",{"2":{"73":1,"154":1}}],["a``",{"2":{"71":2}}],["a`",{"2":{"71":7,"73":3,"76":2}}],["away",{"2":{"60":1,"105":1,"201":1}}],["a2y",{"2":{"73":4}}],["a2x",{"2":{"73":4}}],["a2",{"2":{"58":4,"73":54,"84":1,"123":6}}],["a1y",{"2":{"73":7}}],["a1x",{"2":{"73":7}}],["a1",{"2":{"58":2,"64":9,"73":66,"84":1,"123":6}}],["ams",{"2":{"197":2}}],["america",{"2":{"181":1}}],["am",{"2":{"116":1}}],["ambiguity",{"2":{"79":2,"154":1,"155":1,"157":3}}],["amounts",{"2":{"196":1}}],["amount",{"2":{"55":1,"65":1}}],["amp",{"2":{"6":1,"9":1,"123":6}}],["axes",{"2":{"147":6}}],["ax",{"2":{"13":3,"14":3,"146":2,"192":5}}],["axis`",{"2":{"159":1}}],["axislegend",{"2":{"82":1,"176":1,"180":1}}],["axis",{"2":{"13":2,"14":1,"52":1,"55":1,"58":4,"62":1,"65":1,"78":1,"84":2,"147":2,"159":4,"176":1,"181":1,"197":1}}],["axs",{"2":{"13":2}}],["advised",{"2":{"160":1}}],["advance",{"2":{"63":2}}],["adjust",{"2":{"73":1}}],["adjacent",{"2":{"64":1,"71":1,"73":1,"76":1}}],["adaptivity",{"0":{"74":1}}],["adaptive",{"2":{"7":1,"13":3,"14":2,"74":1}}],["adapted",{"2":{"70":1,"72":1,"75":1,"146":1}}],["administrative",{"2":{"200":1}}],["admin",{"2":{"11":1,"83":1,"181":2}}],["adm0",{"2":{"11":7,"83":4}}],["additional",{"2":{"196":1}}],["additionally",{"2":{"64":3,"88":1}}],["addition",{"2":{"58":1,"76":1}}],["adding",{"2":{"4":1,"6":4,"7":1,"76":2,"147":1,"171":1,"175":1,"177":2,"178":1}}],["added",{"2":{"53":1,"64":6,"66":1,"76":2,"157":2,"170":2,"183":1}}],["add",{"2":{"3":1,"6":1,"7":2,"59":1,"60":1,"64":16,"66":1,"69":4,"70":3,"72":1,"73":2,"75":2,"76":9,"85":1,"105":1,"147":4,"157":1,"161":1,"175":1,"177":1,"183":10,"193":1,"195":2,"198":4}}],["average",{"2":{"57":3,"63":4,"73":1}}],["available",{"0":{"167":1},"2":{"6":2,"31":1,"63":1,"160":1,"166":3,"175":1,"176":1,"178":1,"181":1,"185":1}}],["avoid",{"2":{"5":1,"6":7,"59":1,"70":1,"72":1,"73":1,"75":1,"76":1,"147":2,"154":1,"155":1,"157":3,"178":1,"182":1,"183":1,"184":1,"192":3}}],["a>",{"2":{"6":2}}],["achieve",{"2":{"168":1}}],["across",{"2":{"152":1}}],["acos",{"2":{"53":1}}],["activate",{"2":{"176":1}}],["action",{"2":{"20":2}}],["actions",{"2":{"20":2}}],["actual",{"2":{"10":1,"59":1,"146":1,"164":1,"173":1,"177":1}}],["actually",{"2":{"1":1,"6":1,"9":1,"59":4,"73":1,"76":3,"116":1,"147":1,"186":1,"196":1}}],["access",{"2":{"193":1}}],["accessed",{"2":{"189":1}}],["accepted",{"2":{"159":1}}],["acceptable",{"2":{"116":1}}],["accepts",{"2":{"85":1}}],["accept",{"2":{"6":1,"189":1}}],["according",{"2":{"163":1,"168":1,"169":1,"199":1}}],["accordingly",{"2":{"64":1}}],["account",{"2":{"70":1,"72":1}}],["accurary",{"2":{"73":1}}],["accuratearithmetic",{"2":{"11":2}}],["accurate",{"0":{"11":1},"2":{"11":3,"176":1}}],["accumulators",{"2":{"59":1}}],["accumulator",{"2":{"59":1}}],["accumulate",{"2":{"56":1,"63":3}}],["accumulation",{"0":{"11":1},"2":{"59":1}}],["after",{"2":{"6":8,"53":1,"64":3,"154":1,"155":1,"181":2}}],["ab",{"2":{"64":3,"70":1,"72":1,"73":5,"75":1}}],["able",{"2":{"20":1,"73":1}}],["ability",{"2":{"17":1}}],["about",{"2":{"6":1,"24":2,"30":1,"59":2,"116":1,"154":1,"159":1,"162":1}}],["above",{"2":{"4":1,"6":1,"53":1,"63":1,"64":1,"73":1,"76":1,"166":1}}],["abs",{"2":{"53":1,"56":4,"63":1,"66":2,"105":8,"123":2,"147":1,"184":1,"201":1}}],["absolutely",{"2":{"155":1}}],["absolute",{"2":{"4":1,"6":1,"55":1,"56":2}}],["abstractarray",{"2":{"154":4,"155":2,"157":1,"190":2}}],["abstractarrays",{"2":{"152":1}}],["abstractrange",{"2":{"147":6}}],["abstractmulticurvetrait",{"2":{"103":1,"104":1,"114":1,"115":1,"132":1,"133":1,"142":1,"143":1}}],["abstractmatrix",{"2":{"6":5,"147":13}}],["abstractpolygontrait",{"2":{"79":1}}],["abstractcurvetrait",{"2":{"53":1,"56":1,"66":1,"99":1,"102":1,"103":1,"105":1,"110":1,"114":1,"128":1,"131":1,"132":1,"138":1,"141":1,"142":1,"146":1,"181":2,"190":3}}],["abstractwkbgeomtrait",{"2":{"32":1}}],["abstractfloat",{"2":{"31":1,"53":1,"56":2,"64":1,"66":2,"69":1,"70":1,"72":1,"73":1,"75":1,"79":8}}],["abstract",{"2":{"6":3,"32":1,"59":3,"159":2,"161":3,"165":1,"166":4,"167":1,"181":3}}],["abstractvector",{"2":{"5":1,"6":1,"59":26,"147":8}}],["abstractgeometrytrait`",{"2":{"166":1}}],["abstractgeometrytrait",{"2":{"6":2,"32":1,"56":2,"66":1,"79":1,"104":1,"115":1,"133":1,"143":1,"152":1,"157":1,"166":4,"167":2,"190":5}}],["abstractgeometry",{"2":{"3":4,"6":4,"32":1,"91":2,"94":2}}],["abstracttrait",{"2":{"1":2,"3":2,"6":2,"69":1,"71":2,"73":4,"76":2,"123":4,"149":1,"151":2,"154":1,"155":2,"157":11,"160":3}}],["abstractbarycentriccoordinatemethod",{"2":{"0":1,"5":1,"6":7,"59":18}}],["attribute",{"2":{"196":1}}],["attributed",{"2":{"195":1}}],["attributes",{"0":{"195":1},"2":{"191":1,"195":3}}],["attempt",{"2":{"159":1}}],["attempts",{"2":{"116":1}}],["attach",{"2":{"1":2,"4":1,"6":4,"151":1,"156":1}}],["atomic",{"2":{"7":1}}],["at",{"2":{"3":3,"5":1,"6":5,"9":1,"18":1,"20":1,"24":1,"26":1,"53":2,"55":1,"56":1,"58":1,"59":2,"64":4,"66":2,"73":8,"76":2,"84":1,"116":17,"123":6,"125":1,"126":1,"129":3,"130":2,"131":2,"132":1,"133":1,"136":1,"142":1,"146":1,"152":1,"154":1,"176":1,"178":1,"183":1,"185":1,"193":1,"194":2}}],["arbitrarily",{"2":{"152":1}}],["arbitrary",{"2":{"57":1,"149":1,"155":1,"192":1}}],["around",{"2":{"58":1,"59":2,"69":1,"78":1,"88":1,"147":1,"181":1,"199":1}}],["argmin",{"2":{"185":1}}],["arg",{"2":{"178":1}}],["argtypes",{"2":{"60":2,"174":1,"177":1}}],["args",{"2":{"13":2}}],["argumenterror",{"2":{"76":1,"147":1,"154":1,"155":1,"157":3}}],["argument",{"2":{"4":5,"6":10,"53":1,"56":2,"63":1,"66":1,"70":1,"72":1,"75":1,"79":2,"154":1,"157":1,"189":2,"193":1,"194":1}}],["arguments",{"2":{"1":1,"3":1,"6":5,"64":1,"97":2,"108":1,"126":1,"136":1,"173":1,"177":2,"178":1,"189":1}}],["arithmetic",{"2":{"11":1}}],["archgdal",{"2":{"23":1}}],["arc",{"2":{"6":1,"177":1}}],["array",{"2":{"4":1,"6":2,"56":1,"66":1,"147":5,"154":5,"155":2,"182":1,"185":1}}],["arrays",{"2":{"1":1,"6":1,"22":1,"147":1,"151":1,"155":2}}],["aren",{"2":{"4":3,"6":5,"69":1,"71":1,"73":2,"76":4,"88":3,"167":2,"170":2}}],["are",{"2":{"1":1,"3":3,"4":18,"5":2,"6":45,"9":2,"20":2,"22":3,"24":1,"25":1,"26":2,"27":1,"52":1,"53":8,"55":1,"56":2,"57":6,"59":11,"62":1,"63":3,"64":31,"66":6,"69":3,"70":3,"71":15,"72":2,"73":16,"75":5,"76":9,"78":1,"79":1,"84":3,"87":3,"88":26,"90":1,"97":7,"99":1,"100":3,"101":3,"102":1,"104":1,"107":1,"108":5,"110":1,"111":1,"112":1,"114":1,"115":1,"116":12,"122":1,"123":5,"126":5,"128":1,"130":2,"135":1,"136":5,"138":1,"139":3,"140":3,"141":1,"143":1,"146":1,"147":14,"148":1,"151":1,"152":1,"154":6,"157":4,"158":1,"159":4,"160":1,"162":1,"163":1,"164":1,"166":1,"167":3,"168":1,"169":1,"170":2,"171":1,"176":1,"177":1,"178":1,"181":4,"183":1,"185":2,"187":1,"188":2,"189":1,"192":1,"195":2,"196":2,"197":1,"198":3,"199":6,"200":1,"201":1}}],["area2",{"2":{"63":4}}],["area1",{"2":{"63":4}}],["areas",{"2":{"4":2,"6":2,"56":3,"159":1,"184":2}}],["area",{"0":{"54":2,"55":2},"1":{"55":2,"56":2},"2":{"0":5,"4":15,"6":25,"11":6,"31":1,"54":2,"55":9,"56":61,"61":1,"62":3,"63":49,"65":2,"66":44,"75":2,"76":1,"122":1,"149":1,"155":1,"159":2,"167":2,"170":2,"181":2,"184":4,"193":1}}],["asked",{"2":{"154":1}}],["ask",{"2":{"23":1}}],["aspect",{"2":{"13":1,"14":1,"52":1,"55":1,"58":2,"62":1,"65":1,"78":2,"147":2,"176":1,"181":1}}],["assign",{"2":{"191":1}}],["assigned",{"2":{"64":1,"147":7,"199":1}}],["assets",{"2":{"193":1}}],["assetpath",{"2":{"193":1}}],["assemble",{"2":{"164":1}}],["assert",{"2":{"59":23,"63":1,"64":1,"69":1,"71":1,"73":1,"178":2,"190":1}}],["assume",{"2":{"123":2,"154":3,"155":1,"163":1,"170":1}}],["assumed",{"2":{"56":1,"88":1,"116":1}}],["assumes",{"2":{"6":3,"64":1,"79":1,"177":1,"178":2,"185":1}}],["associativity",{"2":{"19":1}}],["associated",{"0":{"1":1},"2":{"57":2}}],["as",{"2":{"1":8,"3":18,"4":6,"5":1,"6":74,"7":1,"11":2,"13":3,"14":3,"15":3,"17":2,"18":2,"20":1,"22":1,"23":2,"24":1,"25":1,"27":1,"52":2,"53":4,"55":2,"56":3,"57":4,"58":1,"59":4,"60":3,"62":2,"63":1,"64":15,"65":2,"66":5,"68":3,"69":5,"70":8,"71":2,"72":7,"73":8,"75":7,"76":5,"78":3,"79":1,"80":1,"82":2,"83":2,"84":3,"85":3,"87":2,"88":2,"90":2,"91":2,"93":2,"94":2,"96":3,"97":3,"105":2,"107":2,"108":3,"116":7,"118":2,"119":2,"121":2,"122":2,"125":2,"126":3,"128":1,"135":2,"136":3,"146":8,"147":3,"149":3,"151":2,"152":2,"153":2,"154":10,"155":4,"157":4,"159":4,"160":2,"161":2,"163":2,"164":2,"166":1,"167":1,"169":2,"171":1,"173":3,"175":2,"176":2,"177":3,"178":1,"179":2,"180":2,"181":7,"183":2,"186":3,"189":2,"190":2,"191":3,"192":2,"193":1,"194":1,"196":3,"197":3,"198":2,"199":3,"200":2}}],["alone",{"2":{"154":1}}],["along",{"2":{"4":4,"6":5,"64":3,"66":2,"73":4,"88":4,"116":1}}],["although",{"2":{"139":1,"140":1}}],["alternate",{"2":{"64":1}}],["alternative",{"2":{"64":1}}],["already",{"2":{"88":1,"116":2,"154":1,"183":1}}],["almost",{"2":{"73":1}}],["alg=nothing",{"2":{"181":1}}],["alg`",{"2":{"181":1}}],["alg",{"2":{"6":4,"32":2,"181":21,"182":3,"183":8,"184":3,"185":7,"189":9}}],["algorithms",{"2":{"6":3,"80":1,"84":1,"163":1,"178":1,"179":1,"181":4,"183":1,"185":1}}],["algorithm",{"0":{"182":1,"183":1,"184":1},"2":{"6":12,"58":1,"64":2,"66":1,"69":3,"70":1,"72":1,"75":1,"80":1,"85":4,"116":1,"179":1,"181":8,"182":1,"183":3,"184":1,"189":4}}],["allocating",{"2":{"85":1}}],["allocations",{"2":{"5":1,"6":1,"59":1}}],["allocate",{"2":{"85":1}}],["allow=",{"2":{"116":1}}],["allows",{"2":{"11":1,"18":1,"23":1,"24":1,"29":1,"97":2,"99":3,"100":3,"101":3,"102":1,"108":2,"110":3,"111":3,"112":2,"113":1,"122":3,"123":4,"126":1,"129":1,"130":1,"131":1,"136":3,"138":3,"139":3,"140":3,"141":1,"149":1,"179":1,"193":1,"195":1,"198":1}}],["allowed",{"2":{"6":1,"97":3,"108":3,"116":6,"126":5,"128":1,"129":2,"136":3,"181":1}}],["allow",{"2":{"1":1,"6":1,"23":1,"73":1,"97":7,"105":3,"108":7,"116":73,"122":10,"126":10,"136":10,"178":1,"186":1}}],["all",{"2":{"1":3,"3":2,"4":3,"6":12,"9":1,"11":7,"22":1,"25":1,"27":1,"31":2,"53":5,"56":3,"59":1,"64":13,"66":3,"70":1,"71":3,"73":3,"76":5,"78":1,"80":1,"83":3,"85":1,"88":2,"90":1,"100":3,"101":3,"104":1,"114":1,"115":1,"116":7,"123":4,"135":1,"143":1,"146":1,"147":3,"148":1,"151":1,"152":2,"153":1,"154":7,"155":1,"157":2,"159":1,"164":1,"166":1,"168":1,"171":1,"172":1,"181":1,"186":2,"187":1,"188":1,"192":1,"194":1,"196":1,"198":1}}],["always",{"2":{"1":7,"4":6,"6":8,"25":1,"27":1,"55":1,"56":4,"66":2,"78":1,"79":1,"84":1,"88":1,"151":2,"154":3,"155":1,"173":4,"198":1}}],["also",{"2":{"1":2,"6":9,"23":1,"53":1,"56":2,"63":2,"64":3,"66":1,"70":1,"72":1,"73":2,"75":1,"78":1,"79":2,"80":1,"84":1,"85":1,"88":3,"122":1,"147":1,"151":1,"152":1,"154":1,"160":1,"164":1,"167":3,"170":2,"174":1,"175":1,"176":1,"177":1,"179":1,"186":1,"192":2,"195":1}}],["a",{"0":{"23":1,"193":1,"195":1},"2":{"1":13,"3":3,"4":79,"5":1,"6":185,"7":3,"9":1,"11":1,"15":2,"17":1,"18":6,"20":3,"22":3,"23":4,"24":2,"25":2,"27":2,"29":2,"30":2,"32":4,"35":3,"36":3,"37":3,"38":3,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"52":3,"53":22,"55":11,"56":20,"57":13,"58":4,"59":11,"60":2,"62":5,"63":8,"64":281,"65":2,"66":17,"68":3,"69":4,"70":39,"71":30,"72":38,"73":91,"74":3,"75":36,"76":45,"78":15,"79":27,"80":3,"82":3,"83":2,"84":1,"85":4,"87":2,"88":54,"90":2,"93":2,"96":1,"97":3,"99":5,"100":3,"101":2,"103":2,"104":2,"105":1,"107":1,"108":3,"110":4,"111":3,"112":1,"114":2,"115":2,"116":52,"118":2,"121":5,"122":4,"123":15,"125":2,"126":4,"128":4,"129":2,"130":2,"131":1,"132":2,"133":2,"135":1,"136":3,"138":5,"139":2,"140":2,"142":2,"143":2,"145":1,"146":4,"147":79,"149":4,"151":4,"152":4,"154":27,"155":6,"157":7,"159":11,"160":6,"161":6,"162":6,"163":2,"164":2,"165":5,"166":5,"167":9,"168":8,"170":6,"171":2,"172":3,"173":8,"174":3,"175":5,"176":4,"177":8,"178":10,"180":3,"181":5,"184":3,"185":1,"186":2,"187":1,"189":12,"190":2,"191":1,"192":21,"193":12,"194":5,"195":5,"196":11,"197":1,"198":5,"199":8,"200":3,"201":3}}],["apart",{"2":{"170":1}}],["april",{"0":{"7":1}}],["appears",{"2":{"163":1}}],["append",{"2":{"53":1,"64":5,"70":1,"71":2,"73":2,"75":1,"76":5,"170":2}}],["approximately",{"2":{"64":1,"176":1}}],["approach",{"2":{"19":1}}],["appropriately",{"2":{"199":1}}],["appropriate",{"2":{"6":1,"189":2}}],["applies",{"2":{"152":2}}],["applied",{"2":{"6":1,"20":1,"157":4,"165":2,"166":2,"167":1}}],["application",{"2":{"1":1,"6":2,"151":1,"155":1,"164":1,"166":3,"167":1,"170":2,"175":1,"178":1}}],["apply`",{"2":{"154":1}}],["applys",{"2":{"56":1,"66":1}}],["applyreduce",{"0":{"19":1,"155":1},"2":{"0":1,"1":1,"17":1,"19":2,"29":1,"31":2,"53":1,"56":1,"63":2,"66":1,"79":2,"149":1,"151":1,"155":42,"161":1}}],["apply",{"0":{"1":1,"18":1,"22":1,"29":1,"149":1,"152":1},"1":{"19":1,"150":1,"151":1,"152":1,"153":1,"154":1},"2":{"0":1,"1":4,"6":3,"17":1,"18":5,"20":1,"22":1,"24":1,"29":3,"31":3,"32":2,"149":5,"151":3,"152":4,"153":1,"154":55,"155":5,"156":1,"157":3,"159":1,"161":1,"166":4,"167":1,"171":1,"172":3,"173":1,"177":1,"178":1,"181":2,"186":3,"187":2}}],["apis",{"2":{"17":1}}],["api",{"0":{"0":1,"59":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"6":3,"24":1,"59":1,"177":1,"181":1,"189":1}}],["annotation",{"2":{"161":1}}],["annotated",{"2":{"26":1}}],["another",{"2":{"64":2,"73":1,"78":1,"85":1,"90":1,"93":1,"96":1,"99":1,"101":1,"102":1,"107":1,"110":1,"111":1,"112":1,"113":1,"116":1,"118":1,"121":1,"123":1,"125":1,"128":1,"129":1,"130":1,"131":1,"135":1,"138":1,"139":1,"140":1,"141":1,"147":1,"173":1}}],["anonymous",{"2":{"1":1,"6":1,"186":1}}],["angular",{"2":{"159":1}}],["angels",{"2":{"53":1}}],["angle",{"2":{"53":35,"146":1}}],["angles",{"0":{"51":1,"52":1},"1":{"52":1,"53":1},"2":{"0":2,"4":10,"6":10,"31":1,"51":1,"52":4,"53":42}}],["answers",{"2":{"168":1}}],["answer",{"2":{"6":3,"70":1,"72":1,"73":1,"75":1}}],["an",{"2":{"1":3,"4":11,"5":1,"6":27,"9":1,"13":1,"14":1,"18":1,"20":1,"23":2,"32":1,"52":1,"53":4,"55":1,"56":2,"58":1,"59":3,"60":2,"62":1,"64":15,"65":2,"66":2,"68":1,"69":1,"70":2,"71":5,"72":2,"73":9,"75":2,"76":2,"78":2,"79":5,"85":3,"87":1,"88":1,"90":1,"93":1,"96":2,"99":2,"107":1,"116":13,"118":1,"121":1,"122":1,"125":1,"135":1,"138":2,"139":1,"140":1,"147":3,"148":1,"151":1,"152":1,"153":1,"154":5,"155":2,"157":2,"159":1,"164":1,"171":1,"173":1,"177":1,"186":2,"189":3,"190":1,"192":2,"193":2,"195":1,"197":1,"199":1}}],["anything",{"2":{"58":1,"116":1}}],["any",{"2":{"1":3,"3":1,"4":2,"6":17,"18":1,"24":1,"25":1,"27":1,"29":1,"57":2,"63":1,"64":7,"66":1,"69":1,"71":1,"73":4,"76":1,"79":2,"98":2,"99":1,"102":1,"107":1,"109":2,"110":1,"111":2,"112":1,"113":2,"116":8,"122":1,"123":3,"127":2,"137":2,"141":1,"147":2,"149":2,"151":1,"154":2,"155":2,"157":2,"164":1,"165":1,"166":3,"167":4,"170":4,"173":2,"175":1,"177":1,"178":1,"183":1,"190":1,"198":3,"199":2}}],["and",{"0":{"1":1,"20":1,"22":1,"24":1,"54":1,"71":1,"73":1,"76":1,"77":1,"192":1,"193":1,"195":1},"1":{"55":1,"56":1,"78":1,"79":1},"2":{"0":2,"1":8,"3":11,"4":18,"6":79,"7":1,"9":2,"17":4,"18":4,"20":2,"22":1,"23":2,"24":3,"25":2,"26":5,"27":2,"29":2,"30":1,"31":2,"32":2,"33":1,"53":13,"55":1,"56":7,"57":2,"58":2,"59":20,"60":1,"61":2,"62":1,"63":29,"64":71,"65":2,"66":18,"68":1,"69":4,"70":4,"71":16,"72":4,"73":38,"75":6,"76":15,"78":2,"79":13,"84":1,"85":2,"87":2,"88":13,"90":3,"91":2,"93":2,"94":2,"96":2,"97":3,"100":3,"101":4,"102":1,"105":1,"108":3,"111":3,"112":1,"113":1,"116":36,"118":1,"121":2,"122":3,"126":2,"130":2,"131":2,"135":3,"136":4,"138":2,"139":3,"140":3,"141":1,"146":2,"147":16,"149":6,"151":5,"152":2,"153":3,"154":16,"155":10,"157":3,"158":1,"159":14,"160":1,"161":3,"162":1,"163":2,"164":1,"165":1,"166":4,"167":2,"168":1,"171":2,"172":2,"173":2,"176":1,"177":5,"178":7,"179":2,"180":1,"181":8,"183":8,"184":1,"185":1,"186":1,"189":4,"191":3,"192":9,"193":7,"194":2,"196":5,"198":2,"199":4,"200":2}}],["snapped",{"2":{"147":1}}],["s3",{"2":{"64":3}}],["scratch",{"2":{"196":1}}],["sciences",{"2":{"193":1}}],["scalefactor",{"2":{"177":3}}],["scattered",{"2":{"199":1}}],["scatter",{"2":{"62":1,"78":2,"87":2,"90":2,"93":1,"96":1,"107":2,"121":2,"135":2,"199":1}}],["schema",{"2":{"154":5,"155":1}}],["scheme",{"2":{"63":1}}],["scenario",{"2":{"116":2}}],["scene",{"2":{"14":1}}],["skipmissing",{"2":{"147":1}}],["skipped",{"2":{"147":1}}],["skip",{"2":{"56":1,"116":14,"147":1,"154":1,"185":4}}],["skygering",{"2":{"7":1}}],["square",{"2":{"79":1,"182":1,"183":1}}],["squared",{"2":{"6":2,"66":2,"79":12,"182":2,"183":7}}],["sqrt",{"2":{"53":2,"63":1,"79":3}}],["sgn",{"2":{"53":5}}],["smallest",{"2":{"53":2,"73":1,"80":1}}],["sᵢ₋₁",{"2":{"59":25}}],["sᵢ₊₁",{"2":{"6":2,"59":41}}],["sᵢ",{"2":{"6":4,"59":46}}],["src",{"2":{"6":2}}],["syntax",{"2":{"195":1}}],["sym10100477",{"2":{"116":1}}],["symdifference",{"2":{"38":1,"148":1}}],["symmetric",{"0":{"38":1},"2":{"38":1}}],["symbol=",{"2":{"105":1}}],["symbol",{"2":{"6":1,"189":2}}],["system",{"0":{"193":1,"194":1},"2":{"1":2,"173":2,"191":2,"193":1}}],["switches",{"2":{"73":1,"76":1}}],["switch",{"2":{"64":1,"76":1,"161":1}}],["switching",{"2":{"6":1,"66":1}}],["swap",{"2":{"6":1,"76":1,"79":2,"172":1}}],["swapped",{"2":{"3":1,"6":1,"91":1,"94":1,"97":1,"105":1,"119":1,"123":1}}],["swapping",{"2":{"1":1,"151":1,"154":1}}],["s2",{"2":{"6":4,"59":6,"64":3}}],["s1",{"2":{"6":3,"59":6,"64":3}}],["saving",{"0":{"196":1}}],["saved",{"2":{"88":1}}],["save",{"2":{"53":1,"191":1,"196":3}}],["samples",{"2":{"13":1}}],["sample",{"2":{"13":1}}],["same",{"2":{"3":2,"4":12,"6":22,"18":1,"53":3,"56":1,"64":15,"66":1,"69":1,"70":3,"72":1,"73":1,"75":1,"76":1,"78":1,"84":1,"87":2,"88":30,"116":2,"121":1,"122":4,"123":4,"152":1,"154":5,"157":2,"162":1,"167":2,"169":1,"170":2,"176":1,"192":1,"193":1,"196":1}}],["says",{"2":{"84":1}}],["say",{"2":{"6":1,"59":1,"177":1}}],["spliced",{"2":{"156":1}}],["split",{"2":{"69":1}}],["sp",{"2":{"116":2}}],["specify",{"2":{"157":2,"193":1,"194":1,"198":1}}],["specification",{"2":{"163":1,"166":1,"168":1,"169":1}}],["specifically",{"2":{"6":2,"59":3,"179":1,"198":1}}],["specific",{"2":{"64":1,"97":1,"108":1,"126":1,"136":1,"154":1,"155":1,"157":3,"159":1}}],["specified",{"2":{"3":1,"6":2,"64":1,"71":2,"73":2,"76":2,"123":1,"152":1,"181":1}}],["specialized",{"2":{"25":1,"27":1,"85":1,"154":1}}],["sphere",{"2":{"6":1,"159":3,"178":1}}],["sphericalgeodesics",{"2":{"159":1}}],["spherical",{"2":{"6":1,"31":2,"159":7,"178":1}}],["spatial",{"0":{"198":1},"1":{"199":1,"200":1,"201":1},"2":{"198":6,"199":3,"201":1}}],["spawn",{"2":{"154":3,"155":3}}],["span>",{"2":{"6":2}}],["span",{"2":{"6":2,"199":1}}],["space",{"2":{"6":1,"25":1,"27":1,"53":1,"55":1,"116":1,"159":5,"177":1}}],["slow",{"2":{"200":1}}],["slower",{"2":{"6":1,"189":2}}],["slope2",{"2":{"146":2}}],["slope1",{"2":{"146":2}}],["slidergrid",{"2":{"14":1}}],["sliders",{"2":{"14":3}}],["slightly",{"2":{"4":2,"6":2,"56":2}}],["suite",{"2":{"177":5,"181":13}}],["suggestion",{"2":{"174":1}}],["success",{"2":{"159":1}}],["such",{"2":{"4":1,"6":1,"55":1,"68":1,"80":1,"152":1,"171":1}}],["sun",{"2":{"116":1}}],["surrounds",{"2":{"116":1}}],["sure",{"2":{"9":1,"53":1,"64":2,"79":1,"122":1,"185":1}}],["suppose",{"2":{"200":1,"201":1}}],["supports",{"2":{"58":1,"59":1,"80":1,"154":3,"196":1,"201":2}}],["support",{"2":{"32":1,"60":1,"123":1,"175":1,"201":1}}],["supported",{"2":{"23":1,"196":1}}],["supertype",{"2":{"6":1,"59":1}}],["sukumar",{"2":{"6":1,"59":1}}],["sum=1",{"2":{"59":1}}],["summary>",{"2":{"6":4}}],["sum",{"2":{"4":2,"6":3,"11":6,"55":1,"56":2,"57":2,"59":8,"66":1,"79":2,"146":5,"185":1,"190":4}}],["sublevel",{"2":{"200":1}}],["subsequent",{"2":{"192":1}}],["substituted",{"2":{"1":1,"151":1,"154":1}}],["subgeom1",{"2":{"157":2}}],["subgeom",{"2":{"157":3}}],["subject",{"2":{"64":1}}],["subtype",{"2":{"154":1}}],["subtypes",{"2":{"6":2,"59":2}}],["subtracted",{"2":{"146":1}}],["subtitle",{"2":{"13":1,"58":2,"177":1,"181":2}}],["sub",{"2":{"4":6,"6":7,"53":1,"56":3,"66":1,"71":6,"73":3,"76":4,"79":2,"103":2,"104":2,"114":2,"115":2,"132":2,"133":2,"142":2,"143":2,"154":3,"168":4,"169":2,"170":4}}],["series",{"2":{"192":1}}],["serve",{"2":{"6":1,"59":1}}],["searchsortedfirst",{"2":{"183":1}}],["semimajor",{"2":{"159":3}}],["seg2",{"2":{"146":2}}],["seg1",{"2":{"146":3}}],["seg",{"2":{"116":23,"123":9}}],["segmentation",{"2":{"176":1}}],["segments",{"2":{"23":1,"31":1,"52":2,"53":1,"62":1,"63":2,"64":3,"66":1,"73":6,"116":18,"177":1,"178":3}}],["segmentization",{"2":{"32":1,"159":1,"175":1}}],["segmentizing",{"2":{"6":3,"176":1,"177":2,"178":1}}],["segmentizemethod",{"2":{"177":3,"178":1}}],["segmentized",{"2":{"176":1}}],["segmentizes",{"2":{"175":1}}],["segmentize",{"0":{"32":1,"175":1},"1":{"176":1,"177":1,"178":1},"2":{"0":1,"6":4,"31":1,"32":9,"60":1,"149":1,"159":1,"175":1,"176":5,"177":11,"178":18,"197":1}}],["segment",{"2":{"4":4,"6":7,"53":1,"63":5,"64":6,"66":3,"68":1,"73":17,"79":2,"105":3,"116":43,"123":3,"146":2,"175":1,"177":2,"178":1}}],["seperate",{"2":{"73":1}}],["separates",{"2":{"116":1}}],["separate",{"2":{"64":1,"147":1,"154":1,"161":1,"196":1,"199":1}}],["separately",{"2":{"59":1,"147":1}}],["sense",{"2":{"56":1,"79":1}}],["several",{"2":{"20":2,"56":1,"162":1,"170":1}}],["select",{"2":{"160":1}}],["selected",{"2":{"147":1}}],["selectednode",{"2":{"147":3}}],["selection",{"2":{"14":1}}],["self",{"2":{"9":2}}],["section",{"2":{"26":1,"116":3,"121":1}}],["sections",{"2":{"10":1,"26":1}}],["seconds=1",{"2":{"177":3,"181":8}}],["secondisleft",{"2":{"147":4}}],["secondisstraight",{"2":{"147":7}}],["secondary",{"2":{"3":3,"6":3,"91":1,"97":1,"136":1}}],["second",{"2":{"3":8,"6":9,"64":1,"73":4,"88":1,"90":2,"91":1,"94":2,"96":1,"97":1,"100":1,"101":1,"102":1,"108":2,"116":2,"126":1,"135":1,"136":1,"139":1,"140":1,"141":2,"183":1,"194":1,"198":1}}],["seem",{"2":{"25":1,"27":1}}],["see",{"2":{"6":4,"7":1,"29":1,"62":1,"79":1,"85":1,"87":1,"90":1,"96":1,"107":1,"116":5,"118":1,"121":1,"125":1,"135":1,"147":2,"163":1,"164":1,"166":1,"167":3,"169":1,"170":2,"176":2,"183":1,"199":2}}],["setup=",{"2":{"97":1,"108":1,"126":1,"136":1}}],["sets",{"2":{"64":1,"84":1}}],["setting",{"2":{"23":1}}],["set",{"0":{"23":1,"34":1},"1":{"35":1,"36":1,"37":1,"38":1},"2":{"3":2,"4":7,"6":19,"23":1,"53":1,"57":2,"59":8,"64":3,"70":2,"72":2,"73":7,"75":2,"80":2,"87":2,"88":10,"97":1,"105":1,"108":1,"116":2,"122":1,"126":1,"136":1,"146":1,"147":1,"154":5,"167":2,"170":2,"183":2,"192":1,"196":1,"199":3}}],["sve",{"2":{"1":1,"6":1,"186":1}}],["svector",{"2":{"1":14,"6":14,"64":5,"70":1,"73":2,"76":6,"116":1,"147":1,"186":13,"192":6,"194":4}}],["solution",{"2":{"116":1}}],["south",{"2":{"66":7,"159":1}}],["source",{"2":{"1":10,"3":17,"4":22,"5":3,"6":82,"26":4,"105":2,"151":2,"157":4,"166":1,"167":4,"173":3,"193":13,"194":1}}],["sort",{"2":{"64":4,"69":2,"73":2,"75":2,"116":1,"123":1,"147":1,"183":1}}],["sorted",{"2":{"20":1,"64":1,"183":7,"198":1}}],["someone",{"2":{"85":1,"189":1}}],["something",{"0":{"74":1},"2":{"10":1}}],["some",{"2":{"3":1,"6":4,"9":1,"17":1,"59":4,"88":1,"116":3,"123":1,"147":1,"148":1,"149":1,"152":2,"154":2,"155":1,"165":1,"166":2,"167":1,"178":1,"185":1,"188":2,"191":2,"198":1,"201":1}}],["so",{"2":{"1":1,"4":4,"6":9,"9":1,"17":1,"19":1,"25":1,"27":1,"31":1,"58":1,"59":1,"64":1,"65":1,"73":1,"75":2,"76":2,"78":1,"79":1,"87":1,"88":4,"90":1,"107":1,"116":2,"118":1,"135":1,"147":3,"154":8,"157":2,"175":1,"176":1,"177":3,"178":1,"185":1,"186":1,"189":2,"193":1,"194":1}}],["styles",{"2":{"154":1}}],["style",{"2":{"154":7}}],["step",{"2":{"64":7,"70":1,"71":3,"72":1,"73":3,"75":1,"76":3,"147":6,"190":1}}],["storing",{"2":{"196":1}}],["stored",{"2":{"64":2,"199":1}}],["stores",{"2":{"64":1}}],["store",{"2":{"59":1,"196":1}}],["stopping",{"2":{"183":2}}],["stops",{"2":{"152":1}}],["stop",{"2":{"18":2,"105":3,"116":4,"123":3}}],["stay",{"2":{"76":1}}],["stackoverflow",{"2":{"73":1}}],["stack",{"2":{"69":1}}],["states",{"2":{"181":1}}],["state",{"2":{"75":1,"200":9}}],["status",{"2":{"64":31,"71":4,"73":5,"76":4,"147":1}}],["static",{"2":{"161":1}}],["staticarray",{"2":{"59":1}}],["staticarrays",{"2":{"31":1,"64":5,"70":1,"73":2,"76":6,"116":1,"147":1,"186":2}}],["staticarraysco",{"2":{"1":1,"6":1,"186":1}}],["staticarrayscore",{"2":{"1":10,"6":10,"59":1,"186":10,"192":6,"194":4}}],["statica",{"2":{"1":1,"6":1,"186":1}}],["statistics",{"2":{"13":2,"31":1}}],["stability",{"2":{"23":1,"30":1}}],["stable",{"2":{"13":1,"24":1,"178":1}}],["stage",{"2":{"7":1}}],["standardized",{"2":{"116":1}}],["standards",{"2":{"116":1}}],["standard",{"2":{"6":1,"85":1,"159":1}}],["started",{"2":{"64":1}}],["starting",{"2":{"63":2,"64":1,"66":1,"73":1,"170":4}}],["startvalue",{"2":{"14":4}}],["start",{"2":{"6":1,"18":1,"53":7,"59":1,"64":76,"66":17,"71":4,"73":4,"76":5,"88":1,"105":4,"116":44,"123":3,"138":1,"147":2,"162":1,"183":16,"192":1}}],["straightline",{"2":{"147":3}}],["straight",{"2":{"147":6,"155":1}}],["strait",{"2":{"147":1}}],["structs",{"2":{"20":1,"166":1}}],["structures",{"2":{"149":1}}],["structure",{"2":{"6":1,"149":1,"157":2,"172":1}}],["struct",{"2":{"6":2,"59":2,"64":2,"85":1,"159":3,"160":3,"161":6,"164":1,"170":2,"177":2,"182":1,"183":1,"184":1,"189":4}}],["strings",{"2":{"6":1,"63":1,"73":1}}],["string",{"2":{"1":2,"14":1,"62":1,"63":1,"173":2}}],["still",{"2":{"0":1,"56":1,"63":1,"64":3,"96":1,"183":1}}],["shp",{"2":{"196":1}}],["ships",{"2":{"193":1}}],["shifting",{"2":{"194":1}}],["shift",{"2":{"192":3}}],["shewchuck",{"2":{"7":1}}],["short",{"2":{"154":1}}],["shorthand",{"2":{"85":1}}],["show",{"2":{"9":1,"11":1,"13":1,"14":1,"58":1,"193":1,"196":1,"198":2}}],["shoelace",{"2":{"4":1,"6":1,"56":2,"66":1}}],["shouldn",{"2":{"73":1}}],["should",{"2":{"1":1,"4":1,"6":12,"17":1,"18":1,"20":2,"25":1,"27":1,"32":1,"53":3,"56":1,"63":1,"64":3,"65":1,"88":1,"116":4,"147":2,"151":1,"154":2,"157":2,"159":1,"161":1,"163":1,"166":4,"167":2,"178":2,"181":2}}],["sharing",{"2":{"107":1}}],["shares",{"2":{"73":1}}],["share",{"2":{"4":7,"6":8,"87":2,"88":8,"111":2,"112":1,"113":1,"122":1,"131":1}}],["shared",{"0":{"185":1},"2":{"3":1,"6":1,"64":2,"73":2,"123":3}}],["shapes",{"2":{"79":1,"196":7}}],["shape",{"2":{"62":1,"71":1,"73":1,"87":1,"159":1,"169":1,"192":1}}],["shaped",{"2":{"58":1}}],["shapefiles",{"2":{"196":1}}],["shapefile",{"2":{"29":1,"196":4}}],["shallower",{"2":{"1":1,"151":1,"154":1}}],["sites",{"2":{"200":1}}],["sides",{"2":{"64":3,"163":1}}],["side",{"2":{"53":4,"64":26}}],["signals",{"2":{"153":1}}],["sign",{"2":{"13":2,"14":2,"53":7,"56":2,"146":3}}],["signed",{"0":{"54":1,"55":1,"77":1,"78":1},"1":{"55":1,"56":1,"78":1,"79":1},"2":{"0":4,"4":15,"6":18,"11":3,"54":1,"55":5,"56":23,"66":3,"77":1,"78":7,"79":19}}],["six",{"2":{"6":1,"181":1}}],["size=",{"2":{"193":1}}],["sizehint",{"2":{"64":2,"71":1,"178":1}}],["size",{"2":{"6":4,"13":2,"14":5,"58":1,"76":1,"147":2,"154":2,"155":2,"181":1}}],["sin",{"2":{"192":3,"193":1,"194":2}}],["singed",{"2":{"79":1}}],["singular",{"2":{"73":1}}],["singlepoly",{"2":{"181":6}}],["single",{"2":{"4":6,"6":10,"23":1,"53":2,"56":1,"66":1,"88":5,"121":2,"147":2,"155":1,"167":2,"168":1,"170":2,"192":3,"196":1}}],["since",{"2":{"1":1,"6":2,"26":1,"53":1,"56":1,"63":1,"66":2,"75":1,"79":1,"88":1,"116":1,"122":2,"130":1,"154":1,"161":1,"173":1,"189":2,"200":1}}],["simulation",{"2":{"23":1}}],["simultaneously",{"2":{"20":1}}],["simply",{"2":{"7":1,"55":1,"60":1,"64":1,"73":1,"76":1,"91":1,"94":1,"119":1,"147":1,"165":1,"173":1,"174":1,"177":1,"192":1,"195":1}}],["simpler",{"2":{"6":1,"147":1}}],["simple",{"0":{"33":1,"82":1,"199":1},"1":{"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1},"2":{"6":3,"33":1,"59":1,"85":1,"149":3,"159":1,"161":1,"172":1,"173":1,"180":2,"181":2}}],["simplifier",{"2":{"181":4}}],["simplified",{"2":{"23":1,"180":1}}],["simplifies",{"2":{"6":3,"182":1,"183":1,"184":1}}],["simplification",{"0":{"179":1},"1":{"180":1,"181":1},"2":{"6":2,"179":2,"181":3}}],["simplifying",{"2":{"179":1}}],["simplify",{"0":{"182":1,"183":1,"184":1},"2":{"0":1,"6":15,"9":1,"31":1,"64":1,"149":1,"180":1,"181":41,"182":1,"183":2,"184":1}}],["simplifyalgs",{"2":{"185":1}}],["simplifyalg",{"2":{"0":1,"6":8,"181":5,"182":2,"183":2,"184":2}}],["similarly",{"2":{"149":1}}],["similar",{"2":{"1":1,"6":3,"18":1,"25":1,"27":1,"29":1,"60":1,"80":1,"85":1,"147":2,"151":1,"154":1,"177":2,"178":1,"187":1}}],["s",{"0":{"30":1},"2":{"0":1,"3":1,"6":11,"7":1,"9":1,"18":1,"19":1,"29":1,"53":1,"55":1,"56":4,"57":1,"58":2,"59":5,"62":3,"63":3,"64":3,"66":1,"68":1,"71":1,"73":2,"76":3,"79":1,"84":1,"88":1,"93":2,"110":3,"111":4,"112":2,"116":9,"122":1,"125":1,"126":1,"131":1,"147":5,"149":2,"154":2,"155":1,"160":2,"161":2,"164":1,"167":4,"168":1,"170":3,"176":4,"177":1,"178":2,"179":1,"181":2,"185":4,"189":6,"192":6,"193":4,"194":4,"195":2,"196":5,"201":2}}],["fn",{"2":{"196":8}}],["f``",{"2":{"159":1}}],["fc",{"2":{"154":4,"155":5,"157":13,"181":3,"190":14}}],["fj",{"2":{"147":2}}],["f2",{"2":{"64":2}}],["f1",{"2":{"64":2}}],["f64",{"2":{"13":2,"14":2}}],["few",{"2":{"163":1}}],["fetched",{"2":{"147":1}}],["fetch",{"2":{"32":2,"154":1,"155":1}}],["feb",{"0":{"8":1},"1":{"9":1,"10":1}}],["featurecollection",{"2":{"6":2,"11":1,"18":1,"147":4,"154":6,"157":1,"193":2}}],["featurecollectiontrait",{"2":{"1":1,"151":1,"152":1,"154":3,"155":2,"157":10,"190":5}}],["features",{"0":{"98":1,"109":1,"123":1,"127":1,"137":1},"2":{"1":1,"6":2,"11":1,"22":1,"85":1,"147":3,"151":1,"153":1,"154":11,"155":6,"157":2,"193":1}}],["featuretrait",{"2":{"1":2,"98":4,"105":2,"109":4,"123":4,"127":4,"137":4,"151":2,"152":3,"154":3,"155":3,"157":10,"190":5}}],["feature",{"2":{"1":6,"4":1,"6":4,"18":2,"22":1,"56":1,"66":1,"147":2,"149":1,"151":6,"153":1,"154":22,"155":6,"157":22,"181":2,"190":2,"196":1}}],["fra",{"2":{"200":2}}],["frame",{"2":{"195":1}}],["framework",{"2":{"149":4,"155":2}}],["fracs",{"2":{"64":20,"69":1}}],["frac",{"2":{"59":1,"64":2,"73":17,"181":2}}],["fractional",{"2":{"64":1,"73":3}}],["fractions",{"2":{"64":1,"73":4}}],["fraction",{"2":{"6":4,"73":2,"79":1,"181":1}}],["front",{"2":{"53":1}}],["from",{"2":{"1":3,"3":4,"4":16,"6":26,"7":1,"11":1,"20":1,"22":1,"26":1,"31":1,"56":2,"58":1,"59":4,"60":1,"63":1,"64":6,"66":11,"69":1,"70":1,"71":3,"72":1,"73":11,"75":1,"76":6,"79":25,"85":1,"108":2,"110":5,"111":4,"112":2,"113":1,"114":2,"116":6,"122":1,"123":1,"146":2,"147":7,"154":1,"157":6,"159":1,"161":1,"170":1,"173":4,"175":1,"181":1,"182":1,"183":3,"184":1,"190":1,"191":1,"193":5,"196":1,"198":1,"199":1,"201":1}}],["footprint",{"2":{"194":1}}],["foldable",{"2":{"154":2,"155":1}}],["follows",{"2":{"64":2,"97":1,"108":1,"126":1,"136":1,"147":1}}],["followed",{"2":{"26":1}}],["following",{"2":{"6":1,"59":1,"68":1,"157":1,"163":1,"169":1,"181":1,"198":1}}],["focusing",{"2":{"25":1,"27":1}}],["foundational",{"2":{"17":1}}],["found",{"2":{"6":7,"26":1,"66":1,"69":1,"70":2,"72":2,"73":1,"75":2,"88":1,"147":5,"152":3,"154":2,"155":1,"157":5,"178":2}}],["forward",{"2":{"73":1}}],["forwards",{"2":{"64":1,"71":1,"76":1}}],["formats",{"2":{"191":1,"194":1,"196":3}}],["format",{"2":{"69":1,"196":3}}],["form",{"2":{"18":1,"64":3,"73":8,"76":3,"154":1}}],["formed",{"2":{"4":2,"6":3,"52":1,"53":4,"59":1,"64":8,"75":1,"76":1,"183":1}}],["formulae",{"2":{"6":1,"178":1}}],["formula",{"2":{"4":1,"6":1,"56":2,"66":1}}],["force",{"2":{"1":1,"154":3,"173":1,"181":1}}],["for",{"0":{"71":1,"73":1,"76":1},"2":{"0":2,"1":3,"3":1,"4":4,"5":3,"6":46,"7":4,"9":2,"13":5,"14":1,"18":1,"20":1,"22":1,"23":5,"25":3,"26":1,"27":3,"29":1,"31":2,"32":1,"33":1,"53":5,"56":8,"57":1,"58":1,"59":19,"60":3,"63":7,"64":35,"66":11,"69":5,"70":2,"71":3,"72":1,"73":7,"75":1,"76":9,"78":2,"79":7,"80":2,"83":1,"85":3,"88":13,"93":1,"97":3,"103":1,"104":1,"105":6,"108":2,"114":1,"115":1,"116":22,"121":1,"122":2,"123":9,"126":2,"132":1,"133":1,"136":3,"142":1,"143":1,"145":1,"146":5,"147":13,"148":1,"149":3,"151":1,"154":7,"155":1,"157":1,"159":1,"160":1,"161":2,"162":3,"163":2,"165":1,"166":5,"168":3,"169":1,"170":5,"171":1,"173":3,"175":4,"176":7,"177":6,"178":10,"179":4,"181":12,"182":2,"183":2,"184":1,"185":6,"189":5,"190":7,"191":1,"193":4,"194":1,"196":3,"198":2,"200":2,"201":1}}],["fi",{"2":{"147":2}}],["fine",{"2":{"176":1}}],["final",{"2":{"76":1,"166":4,"177":1}}],["finally",{"2":{"58":2,"73":1,"147":1,"154":3,"155":1,"196":1}}],["findmin",{"2":{"185":1}}],["findmax",{"2":{"181":1,"183":1}}],["findall",{"2":{"166":1}}],["finding",{"2":{"73":1}}],["findfirst",{"2":{"64":6,"69":2,"83":1,"181":1}}],["findnext",{"2":{"64":3}}],["findlast",{"2":{"64":2}}],["findprev",{"2":{"64":2}}],["finds",{"2":{"64":1,"66":1}}],["find",{"2":{"53":6,"56":1,"64":12,"66":3,"69":2,"70":4,"72":2,"73":8,"75":1,"79":3,"88":1,"116":7,"147":2,"183":5,"200":1}}],["finish",{"2":{"9":1}}],["fill",{"2":{"64":1,"147":1,"178":3}}],["filled",{"2":{"64":5,"66":3,"78":1,"79":2,"116":16}}],["files",{"2":{"188":1,"196":2}}],["file",{"2":{"26":1,"32":1,"33":1,"64":1,"97":3,"108":3,"126":3,"136":3,"147":1,"148":1,"149":1,"155":1,"156":1,"157":1,"165":1,"173":1,"178":1,"179":1,"188":2,"191":1,"196":2}}],["filters",{"2":{"64":1}}],["filtering",{"2":{"6":1,"181":1}}],["filter",{"2":{"4":1,"6":2,"64":2,"154":2,"155":1,"170":2,"171":1,"181":1}}],["fit",{"2":{"17":1}}],["field",{"2":{"13":2,"64":2}}],["figure",{"2":{"13":1,"14":1,"55":1,"58":2,"84":1,"193":3}}],["fig",{"2":{"13":6,"14":6,"84":5,"192":7,"193":4,"197":2}}],["fix1",{"2":{"154":1,"155":1}}],["fixme",{"2":{"146":1}}],["fix2",{"2":{"32":1,"64":2}}],["fixed",{"2":{"6":3,"70":1,"72":1,"75":1}}],["fix",{"0":{"20":1},"2":{"6":9,"9":3,"15":3,"17":1,"20":1,"70":1,"71":11,"72":1,"73":11,"75":1,"76":10,"84":2,"163":1,"165":1,"166":1,"169":1}}],["firstisright",{"2":{"147":2}}],["firstisleft",{"2":{"147":4}}],["firstisstraight",{"2":{"147":4}}],["firstnode",{"2":{"147":9}}],["first",{"2":{"3":9,"6":10,"53":14,"56":7,"58":1,"59":9,"60":1,"63":1,"64":17,"66":2,"69":1,"70":2,"72":1,"73":5,"75":3,"79":8,"88":4,"90":2,"91":2,"94":2,"96":1,"97":2,"100":1,"101":1,"102":1,"108":3,"116":22,"122":1,"126":2,"128":1,"135":1,"136":2,"139":1,"140":1,"141":2,"146":1,"147":16,"154":3,"155":2,"157":2,"163":1,"178":3,"182":1,"183":2,"190":2,"191":1,"192":1,"193":1,"194":1,"198":1,"199":1}}],["flexijoins",{"2":{"198":2,"199":3,"200":1,"201":5}}],["flexible",{"2":{"154":1,"155":1}}],["flags",{"2":{"64":5}}],["flag",{"2":{"64":12,"69":1}}],["flattened",{"2":{"18":1}}],["flatten",{"0":{"157":1},"2":{"11":3,"13":1,"18":1,"31":2,"50":1,"59":1,"64":2,"66":3,"72":1,"76":1,"85":2,"105":1,"157":33,"170":1}}],["flattening`",{"2":{"159":1}}],["flattening",{"2":{"6":4,"155":1,"159":3,"177":2}}],["flat",{"2":{"6":2,"178":1,"185":2,"190":1}}],["floating",{"2":{"6":1,"64":1,"73":5,"147":2}}],["float",{"2":{"6":3,"70":1,"72":1,"75":1}}],["float64x2",{"2":{"13":6,"14":6,"15":2}}],["float64",{"2":{"1":6,"4":10,"6":30,"13":1,"52":1,"53":3,"56":6,"63":1,"66":4,"69":2,"70":2,"72":1,"73":3,"75":1,"79":12,"84":1,"116":4,"123":2,"146":4,"163":6,"169":26,"176":2,"177":2,"178":1,"182":4,"183":9,"184":2,"185":6,"186":6,"187":1,"190":8,"192":190,"193":7,"194":10}}],["flipping",{"0":{"172":1},"2":{"172":1}}],["flipped",{"2":{"1":2,"151":2,"154":2}}],["flipaxis",{"2":{"58":1}}],["flip",{"2":{"0":1,"6":1,"31":1,"149":2,"154":1,"172":2}}],["fancy",{"2":{"192":1}}],["fancis",{"2":{"6":1,"59":1}}],["fair",{"2":{"176":1}}],["fails",{"2":{"123":1}}],["fail",{"2":{"1":1,"6":1,"151":1,"154":2,"155":1,"157":3,"177":1}}],["fallback",{"2":{"154":1}}],["falses",{"2":{"64":2,"69":1,"70":1,"72":1}}],["false",{"0":{"24":1},"2":{"1":29,"3":5,"4":3,"6":49,"31":1,"32":2,"35":1,"36":1,"37":1,"38":1,"50":1,"53":2,"56":1,"58":5,"64":26,"66":5,"69":1,"70":1,"71":3,"73":1,"75":4,"79":2,"87":2,"88":27,"90":2,"93":2,"97":8,"99":2,"100":4,"101":1,"102":1,"103":1,"104":1,"105":11,"108":9,"110":1,"111":4,"114":1,"115":1,"116":39,"122":4,"123":24,"126":8,"128":3,"129":4,"130":1,"132":1,"133":1,"135":1,"136":7,"138":2,"139":4,"140":1,"141":1,"142":1,"143":1,"146":10,"147":5,"151":4,"154":11,"155":7,"157":3,"159":1,"161":3,"163":16,"169":44,"170":4,"178":5,"181":1,"185":2,"186":20,"190":2,"192":242,"193":12,"194":18,"198":1}}],["fashion",{"2":{"55":1}}],["faster",{"2":{"59":1,"154":1}}],["fast",{"2":{"12":1}}],["f",{"2":{"1":12,"6":14,"15":1,"18":3,"19":1,"22":2,"52":1,"55":2,"58":4,"60":1,"62":2,"64":19,"65":2,"68":2,"70":2,"71":2,"72":2,"73":2,"75":2,"76":2,"78":5,"82":2,"83":2,"87":2,"90":2,"93":2,"96":2,"107":2,"116":7,"118":2,"121":2,"125":2,"135":2,"147":30,"151":7,"152":2,"154":61,"155":64,"157":52,"174":1,"176":2,"177":1,"180":2,"181":1,"185":6,"186":6,"189":5,"190":16,"192":6,"194":2,"199":3}}],["fulfilled",{"2":{"183":1}}],["fully",{"2":{"6":1,"64":4,"69":1,"123":4}}],["full",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"66":5,"123":1,"166":1,"200":4}}],["furthest",{"2":{"147":1}}],["further",{"2":{"62":1,"154":1}}],["furthermore",{"2":{"3":2,"6":5,"64":1,"70":1,"72":1,"75":1,"97":1,"136":1}}],["fun",{"2":{"192":1}}],["fundamental",{"2":{"26":1,"188":1}}],["func",{"2":{"13":5}}],["funcs",{"2":{"13":2,"14":3}}],["functionality",{"2":{"73":1,"172":1,"173":1,"178":1,"189":1}}],["functionalities",{"2":{"64":1}}],["functionally",{"2":{"1":1,"18":1,"29":1,"151":1,"154":1}}],["function",{"2":{"1":4,"4":1,"6":10,"7":2,"9":1,"13":3,"14":2,"18":2,"29":1,"31":1,"32":2,"53":5,"56":3,"59":13,"63":6,"64":18,"66":7,"68":2,"69":4,"70":3,"71":3,"72":2,"73":7,"74":1,"75":2,"76":4,"79":6,"85":2,"87":1,"88":8,"90":1,"93":1,"96":1,"97":1,"103":1,"104":1,"105":5,"107":1,"108":1,"114":1,"115":1,"116":9,"118":1,"121":1,"123":9,"125":1,"126":1,"132":1,"133":1,"135":1,"136":1,"142":1,"143":1,"146":4,"147":16,"149":1,"151":2,"152":2,"154":15,"155":11,"157":5,"161":1,"164":2,"166":7,"167":2,"170":2,"172":2,"173":1,"175":2,"177":2,"178":7,"181":3,"182":2,"183":3,"184":2,"185":7,"186":3,"187":1,"189":6,"190":12,"192":1,"198":4,"201":4}}],["functions",{"0":{"1":1,"71":1,"73":1,"76":1,"151":1,"190":1},"2":{"6":1,"9":3,"17":1,"26":1,"29":1,"33":1,"56":1,"59":1,"63":1,"64":2,"66":1,"68":1,"116":1,"148":1,"149":1,"152":1,"166":2,"167":1}}],["future",{"2":{"23":1,"79":1,"80":1,"175":2}}],["wgs84",{"2":{"193":1}}],["wglmakie",{"2":{"14":1}}],["wₜₒₜ",{"2":{"59":8}}],["wᵢ",{"2":{"59":18}}],["wt",{"2":{"59":3}}],["w",{"2":{"13":13,"14":7,"79":4,"147":1}}],["wrong",{"2":{"168":1,"185":1}}],["writing",{"2":{"196":1}}],["written",{"2":{"88":1}}],["writes",{"2":{"154":1}}],["write",{"2":{"7":1,"30":1,"147":1,"154":1,"196":7}}],["wrap",{"2":{"4":1,"6":1,"32":3,"35":1,"36":1,"37":1,"38":1,"50":1,"171":1,"177":1}}],["wrapped",{"2":{"22":1,"147":2,"152":1,"154":1}}],["wrapper",{"0":{"30":1},"2":{"30":1,"53":1,"56":1,"63":1,"66":1,"79":1,"88":1,"97":1,"108":1,"122":1,"126":1,"136":1}}],["wrappers`",{"2":{"157":1}}],["wrappers",{"2":{"1":10,"6":11,"22":1,"146":2,"147":1,"157":1,"163":8,"164":1,"169":22,"176":1,"177":1,"181":1,"186":10,"190":1,"192":121,"193":5,"194":9}}],["wrappergeometry`",{"2":{"173":1}}],["wrappergeometry",{"2":{"1":1}}],["wrapping",{"2":{"1":1,"6":1,"88":1,"173":1,"187":1}}],["web",{"2":{"196":1}}],["west",{"2":{"66":8}}],["were",{"2":{"64":1,"147":1,"199":1}}],["welcome",{"2":{"25":1,"27":1}}],["well",{"2":{"17":1,"64":1,"66":1,"85":1,"161":1,"175":1,"178":1,"179":1}}],["we",{"0":{"74":2},"2":{"7":1,"11":1,"13":1,"17":3,"19":1,"23":3,"24":1,"25":2,"26":1,"27":2,"32":1,"53":1,"55":2,"56":2,"58":4,"59":8,"60":2,"63":1,"64":7,"66":4,"71":8,"72":2,"73":3,"76":1,"79":1,"80":1,"84":3,"85":2,"87":1,"88":5,"90":1,"91":1,"94":1,"96":1,"97":1,"107":1,"108":1,"116":2,"118":3,"119":1,"121":1,"122":2,"125":1,"126":1,"135":1,"136":1,"147":21,"148":1,"152":1,"154":19,"155":6,"157":3,"159":6,"161":4,"162":1,"174":1,"175":2,"176":2,"177":3,"178":1,"181":5,"185":2,"188":1,"189":1,"191":2,"192":4,"193":6,"194":4,"195":1,"196":3,"198":3,"199":7}}],["weighting",{"2":{"62":2,"63":1}}],["weights",{"2":{"57":4}}],["weight",{"2":{"6":5,"59":14,"63":1}}],["weighted",{"2":{"0":1,"6":2,"57":3,"59":4,"63":4}}],["walk",{"2":{"69":1}}],["wall2",{"2":{"66":7}}],["wall1",{"2":{"66":12}}],["walls",{"2":{"66":3}}],["wall",{"2":{"66":69}}],["wachspress",{"2":{"59":1}}],["wasincreasing",{"2":{"147":10}}],["wasn",{"2":{"64":1}}],["was",{"2":{"31":1,"32":1,"50":1,"53":1,"56":1,"58":1,"59":4,"60":1,"63":1,"64":1,"66":1,"69":1,"70":1,"71":3,"72":1,"73":2,"74":1,"75":1,"76":3,"79":1,"85":1,"88":1,"91":1,"94":1,"104":1,"105":1,"115":1,"116":1,"119":1,"123":2,"133":1,"143":1,"146":1,"147":1,"148":1,"152":1,"154":1,"155":1,"156":1,"157":1,"161":1,"164":1,"167":1,"170":1,"171":1,"172":1,"174":1,"176":1,"178":1,"185":1,"186":1,"187":1,"189":2,"190":1}}],["wanted",{"2":{"201":1}}],["wants",{"2":{"85":1,"155":1}}],["want",{"0":{"23":1,"74":1},"2":{"13":1,"18":1,"23":1,"59":1,"64":1,"146":1,"193":2,"195":1,"200":1,"201":1}}],["ways",{"2":{"168":1}}],["way",{"2":{"6":1,"17":1,"18":1,"24":1,"29":1,"57":1,"149":1,"160":1,"165":1,"178":1,"189":2,"195":1}}],["warn",{"2":{"147":2,"178":1}}],["warned",{"2":{"6":1,"189":1}}],["warning",{"2":{"0":1,"5":1,"6":3,"24":1,"59":1,"85":1,"155":1,"177":1,"188":1,"200":1}}],["wong",{"2":{"82":1,"83":1,"197":1}}],["won",{"2":{"23":1,"64":1,"155":1}}],["wouldn",{"2":{"73":1}}],["would",{"0":{"74":1},"2":{"6":3,"23":1,"70":1,"72":1,"73":1,"75":1,"85":4,"147":1,"154":1,"161":2,"193":1,"200":1,"201":1}}],["wound",{"2":{"6":1,"85":1}}],["world",{"0":{"200":1},"2":{"198":1}}],["worrying",{"2":{"24":1}}],["words",{"2":{"3":1,"6":1,"90":1,"118":1,"125":1,"126":1}}],["workflow",{"2":{"105":1,"123":1}}],["workflows",{"2":{"23":1,"25":1,"27":1}}],["works",{"2":{"26":1,"173":1,"175":1}}],["working",{"2":{"3":1,"6":1,"105":1,"123":1,"193":1}}],["work",{"2":{"1":3,"6":2,"9":1,"53":1,"56":2,"63":1,"66":2,"69":2,"79":1,"80":1,"88":1,"116":1,"122":1,"123":1,"146":1,"151":1,"154":1,"155":1,"173":1,"186":1,"200":1}}],["whole",{"2":{"116":1}}],["whose",{"2":{"3":1,"6":1,"105":1}}],["white",{"2":{"58":1}}],["while",{"2":{"53":1,"62":1,"63":1,"64":5,"73":2,"78":1,"84":2,"88":1,"105":1,"116":1,"147":3,"170":1,"183":1,"185":2,"199":1}}],["whichever",{"2":{"6":1,"181":1}}],["which",{"2":{"1":1,"4":2,"5":1,"6":7,"7":1,"11":1,"13":1,"14":1,"17":1,"18":4,"20":1,"23":2,"33":1,"55":1,"56":1,"57":1,"58":2,"59":5,"60":1,"64":11,"66":2,"73":2,"80":1,"85":1,"88":2,"116":3,"123":1,"147":3,"148":1,"149":1,"154":1,"159":2,"160":1,"162":2,"163":1,"166":1,"168":1,"169":1,"174":1,"175":1,"176":1,"177":3,"178":2,"181":1,"183":2,"186":1,"189":4,"196":3,"198":3,"199":6,"201":1}}],["what",{"0":{"22":1,"25":1,"30":1,"52":1,"55":2,"62":1,"65":1,"68":1,"78":2,"87":1,"90":1,"93":1,"96":1,"107":1,"118":1,"121":1,"125":1,"135":1,"152":1},"2":{"13":1,"14":1,"24":1,"62":1,"146":1,"147":1,"161":1,"176":1,"193":1,"200":1}}],["whatever",{"2":{"1":1,"22":1,"151":1,"154":1}}],["whyatt",{"2":{"179":1}}],["why",{"0":{"22":1,"23":1},"2":{"9":1,"17":1,"30":1,"56":1}}],["wheel",{"2":{"17":1}}],["whether",{"2":{"1":4,"4":1,"6":8,"145":1,"146":1,"151":2,"156":2,"161":1,"162":1}}],["when",{"2":{"1":1,"4":2,"5":1,"6":4,"18":1,"20":1,"23":2,"24":1,"56":1,"59":3,"63":1,"64":2,"71":5,"73":6,"76":7,"116":1,"123":1,"147":1,"151":1,"152":3,"154":1,"163":1,"166":1,"171":2,"181":1,"193":1,"194":2,"196":1,"201":1}}],["whereas",{"2":{"159":1}}],["wherever",{"2":{"6":1,"187":1}}],["where",{"2":{"1":2,"4":5,"6":10,"20":1,"31":2,"53":8,"56":12,"57":2,"59":24,"63":8,"64":14,"66":8,"69":5,"70":2,"71":5,"72":3,"73":18,"75":2,"76":9,"79":25,"88":1,"116":9,"147":3,"151":1,"154":18,"155":18,"157":17,"159":2,"160":5,"168":1,"173":1,"176":1,"187":1,"188":1,"190":3,"192":4}}],["widely",{"2":{"196":1}}],["widths",{"2":{"14":1}}],["wiki",{"2":{"116":1,"183":1}}],["wikipedia",{"2":{"116":1,"183":2}}],["wind",{"2":{"4":1,"6":2,"56":1,"88":1}}],["winding",{"0":{"84":1},"2":{"4":2,"6":3,"56":3,"64":7,"84":4,"85":1,"88":1,"147":1}}],["without",{"2":{"1":2,"6":1,"17":1,"24":1,"64":1,"107":1,"122":1,"154":1,"155":1,"157":2,"173":1,"186":1}}],["with",{"0":{"71":1,"73":1,"76":1,"182":1,"183":1,"184":1,"194":1,"195":1},"2":{"1":5,"3":4,"4":7,"6":21,"11":1,"20":1,"22":2,"23":1,"52":1,"53":2,"56":7,"57":4,"58":1,"59":2,"63":1,"64":14,"66":6,"71":8,"72":5,"73":15,"75":1,"76":12,"78":1,"79":2,"97":1,"107":1,"111":1,"116":28,"118":1,"121":2,"122":2,"123":3,"125":1,"126":1,"129":3,"130":2,"131":2,"141":1,"147":7,"149":1,"151":3,"152":1,"154":12,"155":3,"157":4,"159":1,"161":1,"163":1,"168":1,"171":1,"173":1,"175":1,"178":2,"181":2,"183":2,"184":1,"186":1,"189":1,"191":1,"192":4,"193":6,"194":2,"195":2,"196":2,"198":1,"199":1,"200":1}}],["within",{"0":{"44":1,"134":1,"135":1,"138":1,"139":1,"141":1,"142":1,"143":1},"1":{"135":1,"136":1},"2":{"0":2,"3":9,"4":3,"5":1,"6":13,"7":1,"9":1,"31":1,"44":2,"53":2,"56":1,"57":3,"59":1,"63":1,"64":9,"65":2,"66":5,"71":1,"73":2,"75":1,"76":6,"78":1,"79":5,"90":2,"91":3,"96":2,"110":1,"116":9,"121":1,"122":1,"123":9,"134":1,"135":6,"136":11,"137":6,"138":14,"139":15,"140":15,"141":7,"142":4,"143":4,"149":1,"198":1,"199":4,"200":2}}],["will",{"2":{"1":8,"4":7,"5":1,"6":38,"11":1,"18":3,"23":2,"24":1,"53":4,"56":3,"59":2,"63":1,"64":5,"66":1,"69":1,"70":4,"71":4,"72":4,"73":4,"75":4,"76":4,"78":2,"79":4,"85":1,"88":1,"105":1,"146":1,"147":2,"151":3,"152":1,"153":2,"154":4,"155":3,"157":6,"159":2,"163":1,"167":2,"168":1,"170":2,"173":3,"175":2,"177":3,"181":2,"183":1,"185":1,"186":2,"189":1,"193":1,"196":1,"198":2,"200":1,"201":1}}],["wip",{"2":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR238/assets/chunks/@localSearchIndexroot.Dr3-XR6o.js b/previews/PR238/assets/chunks/@localSearchIndexroot.Dr3-XR6o.js deleted file mode 100644 index 3cc6adfbc..000000000 --- a/previews/PR238/assets/chunks/@localSearchIndexroot.Dr3-XR6o.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":202,"nextId":202,"documentIds":{"0":"/GeometryOps.jl/previews/PR238/api#Full-GeometryOps-API-documentation","1":"/GeometryOps.jl/previews/PR238/api#apply-and-associated-functions","2":"/GeometryOps.jl/previews/PR238/api#General-geometry-methods","3":"/GeometryOps.jl/previews/PR238/api#OGC-methods","4":"/GeometryOps.jl/previews/PR238/api#Other-general-methods","5":"/GeometryOps.jl/previews/PR238/api#Barycentric-coordinates","6":"/GeometryOps.jl/previews/PR238/api#Other-methods","7":"/GeometryOps.jl/previews/PR238/call_notes#20th-April,-2024","8":"/GeometryOps.jl/previews/PR238/call_notes#29th-Feb,-2024","9":"/GeometryOps.jl/previews/PR238/call_notes#To-do","10":"/GeometryOps.jl/previews/PR238/call_notes#done","11":"/GeometryOps.jl/previews/PR238/experiments/accurate_accumulators#Accurate-accumulation","12":"/GeometryOps.jl/previews/PR238/experiments/predicates#predicates","13":"/GeometryOps.jl/previews/PR238/experiments/predicates#orient","14":"/GeometryOps.jl/previews/PR238/experiments/predicates#dashboard","15":"/GeometryOps.jl/previews/PR238/experiments/predicates#Testing-robust-vs-regular-predicates","16":"/GeometryOps.jl/previews/PR238/experiments/predicates#incircle","17":"/GeometryOps.jl/previews/PR238/explanations/paradigms#paradigms","18":"/GeometryOps.jl/previews/PR238/explanations/paradigms#apply","19":"/GeometryOps.jl/previews/PR238/explanations/paradigms#applyreduce","20":"/GeometryOps.jl/previews/PR238/explanations/paradigms#fix-and-prepare","21":"/GeometryOps.jl/previews/PR238/explanations/peculiarities#peculiarities","22":"/GeometryOps.jl/previews/PR238/explanations/peculiarities#What-does-apply-return-and-why?","23":"/GeometryOps.jl/previews/PR238/explanations/peculiarities#Why-do-you-want-me-to-provide-a-target-in-set-operations?","24":"/GeometryOps.jl/previews/PR238/explanations/peculiarities#_True-and-_False-(or-BoolsAsTypes)","25":"/GeometryOps.jl/previews/PR238/#what-is-geometryops-jl","26":"/GeometryOps.jl/previews/PR238/#how-to-navigate-the-docs","27":"/GeometryOps.jl/previews/PR238/introduction#introduction","28":"/GeometryOps.jl/previews/PR238/introduction#Main-concepts","29":"/GeometryOps.jl/previews/PR238/introduction#The-apply-paradigm","30":"/GeometryOps.jl/previews/PR238/introduction#What\'s-this-GeoInterface.Wrapper-thing?","31":"/GeometryOps.jl/previews/PR238/source/GeometryOps#geometryops-jl","32":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/segmentize#segmentize","33":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#Simple-overrides","34":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#Polygon-set-operations","35":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#difference","36":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#union","37":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#intersection","38":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#Symmetric-difference","39":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#DE-9IM-boolean-methods","40":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#equals","41":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#disjoint","42":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#touches","43":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#crosses","44":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#within","45":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#contains","46":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#overlaps","47":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#covers","48":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#coveredby","49":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#intersects","50":"/GeometryOps.jl/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides#Convex-hull","51":"/GeometryOps.jl/previews/PR238/source/methods/angles#angles","52":"/GeometryOps.jl/previews/PR238/source/methods/angles#What-is-angles?","53":"/GeometryOps.jl/previews/PR238/source/methods/angles#implementation","54":"/GeometryOps.jl/previews/PR238/source/methods/area#Area-and-signed-area","55":"/GeometryOps.jl/previews/PR238/source/methods/area#What-is-area?-What-is-signed-area?","56":"/GeometryOps.jl/previews/PR238/source/methods/area#implementation","57":"/GeometryOps.jl/previews/PR238/source/methods/barycentric#Barycentric-coordinates","58":"/GeometryOps.jl/previews/PR238/source/methods/barycentric#example","59":"/GeometryOps.jl/previews/PR238/source/methods/barycentric#Barycentric-coordinate-API","60":"/GeometryOps.jl/previews/PR238/source/methods/buffer#buffer","61":"/GeometryOps.jl/previews/PR238/source/methods/centroid#centroid","62":"/GeometryOps.jl/previews/PR238/source/methods/centroid#What-is-the-centroid?","63":"/GeometryOps.jl/previews/PR238/source/methods/centroid#implementation","64":"/GeometryOps.jl/previews/PR238/source/methods/clipping/clipping_processor#Polygon-clipping-helpers","65":"/GeometryOps.jl/previews/PR238/source/methods/clipping/coverage#What-is-coverage?","66":"/GeometryOps.jl/previews/PR238/source/methods/clipping/coverage#implementation","67":"/GeometryOps.jl/previews/PR238/source/methods/clipping/cut#Polygon-cutting","68":"/GeometryOps.jl/previews/PR238/source/methods/clipping/cut#What-is-cut?","69":"/GeometryOps.jl/previews/PR238/source/methods/clipping/cut#implementation","70":"/GeometryOps.jl/previews/PR238/source/methods/clipping/difference#Difference-Polygon-Clipping","71":"/GeometryOps.jl/previews/PR238/source/methods/clipping/difference#Helper-functions-for-Differences-with-Greiner-and-Hormann-Polygon-Clipping","72":"/GeometryOps.jl/previews/PR238/source/methods/clipping/intersection#Geometry-Intersection","73":"/GeometryOps.jl/previews/PR238/source/methods/clipping/intersection#Helper-functions-for-Intersections-with-Greiner-and-Hormann-Polygon-Clipping","74":"/GeometryOps.jl/previews/PR238/source/methods/clipping/predicates#If-we-want-to-inject-adaptivity,-we-would-do-something-like:","75":"/GeometryOps.jl/previews/PR238/source/methods/clipping/union#Union-Polygon-Clipping","76":"/GeometryOps.jl/previews/PR238/source/methods/clipping/union#Helper-functions-for-Unions-with-Greiner-and-Hormann-Polygon-Clipping","77":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#Convex-hull","78":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#example","79":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#Simple-hull","80":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#Convex-hull-of-the-USA","81":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#Investigating-the-winding-order","82":"/GeometryOps.jl/previews/PR238/source/methods/convex_hull#implementation","83":"/GeometryOps.jl/previews/PR238/source/methods/distance#Distance-and-signed-distance","84":"/GeometryOps.jl/previews/PR238/source/methods/distance#What-is-distance?-What-is-signed-distance?","85":"/GeometryOps.jl/previews/PR238/source/methods/distance#implementation","86":"/GeometryOps.jl/previews/PR238/source/methods/equals#equals","87":"/GeometryOps.jl/previews/PR238/source/methods/equals#What-is-equals?","88":"/GeometryOps.jl/previews/PR238/source/methods/equals#implementation","89":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/contains#contains","90":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/contains#What-is-contains?","91":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/contains#implementation","92":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#coveredby","93":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#What-is-coveredby?","94":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#implementation","95":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Convert-features-to-geometries","96":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Points-coveredby-geometries","97":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Lines-coveredby-geometries","98":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Rings-covered-by-geometries","99":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Polygons-covered-by-geometries","100":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Geometries-coveredby-multi-geometry/geometry-collections","101":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/coveredby#Multi-geometry/geometry-collections-coveredby-geometries","102":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/covers#covers","103":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/covers#What-is-covers?","104":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/covers#implementation","105":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/crosses#Crossing-checks","106":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#disjoint","107":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#What-is-disjoint?","108":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#implementation","109":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Convert-features-to-geometries","110":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Point-disjoint-geometries","111":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Lines-disjoint-geometries","112":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Rings-disjoint-geometries","113":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Polygon-disjoint-geometries","114":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Geometries-disjoint-multi-geometry/geometry-collections","115":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/disjoint#Multi-geometry/geometry-collections-coveredby-geometries","116":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/geom_geom_processors#Line-curve-interaction","117":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/intersects#Intersection-checks","118":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/intersects#What-is-intersects?","119":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/intersects#implementation","120":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/overlaps#overlaps","121":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/overlaps#What-is-overlaps?","122":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/overlaps#implementation","123":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/overlaps#Convert-features-to-geometries","124":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#touches","125":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#What-is-touches?","126":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#implementation","127":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Convert-features-to-geometries","128":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Point-touches-geometries","129":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Lines-touching-geometries","130":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Rings-touch-geometries","131":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Polygons-touch-geometries","132":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Geometries-touch-multi-geometry/geometry-collections","133":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/touches#Multi-geometry/geometry-collections-cross-geometries","134":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#within","135":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#What-is-within?","136":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#implementation","137":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Convert-features-to-geometries","138":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Points-within-geometries","139":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Lines-within-geometries","140":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Rings-covered-by-geometries","141":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Polygons-within-geometries","142":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Geometries-within-multi-geometry/geometry-collections","143":"/GeometryOps.jl/previews/PR238/source/methods/geom_relations/within#Multi-geometry/geometry-collections-within-geometries","144":"/GeometryOps.jl/previews/PR238/source/methods/orientation#orientation","145":"/GeometryOps.jl/previews/PR238/source/methods/orientation#isclockwise","146":"/GeometryOps.jl/previews/PR238/source/methods/orientation#isconcave","147":"/GeometryOps.jl/previews/PR238/source/not_implemented_yet#Not-implemented-yet","148":"/GeometryOps.jl/previews/PR238/source/methods/polygonize#Polygonizing-raster-data","149":"/GeometryOps.jl/previews/PR238/source/src/apply#apply","150":"/GeometryOps.jl/previews/PR238/source/src/apply#docstrings","151":"/GeometryOps.jl/previews/PR238/source/src/apply#functions","152":"/GeometryOps.jl/previews/PR238/source/src/apply#What-is-apply?","153":"/GeometryOps.jl/previews/PR238/source/src/apply#embedding","154":"/GeometryOps.jl/previews/PR238/source/src/apply#threading","155":"/GeometryOps.jl/previews/PR238/source/src/applyreduce#applyreduce","156":"/GeometryOps.jl/previews/PR238/source/src/keyword_docs#Keyword-docs","157":"/GeometryOps.jl/previews/PR238/source/src/other_primitives#Other-primitives-(unwrap,-flatten,-etc)","158":"/GeometryOps.jl/previews/PR238/source/transformations/correction/closed_ring#Closed-Rings","159":"/GeometryOps.jl/previews/PR238/source/transformations/correction/closed_ring#example","160":"/GeometryOps.jl/previews/PR238/source/transformations/correction/closed_ring#implementation","161":"/GeometryOps.jl/previews/PR238/source/src/types#types","162":"/GeometryOps.jl/previews/PR238/source/src/types#Manifold","163":"/GeometryOps.jl/previews/PR238/source/src/types#TraitTarget","164":"/GeometryOps.jl/previews/PR238/source/src/types#BoolsAsTypes","165":"/GeometryOps.jl/previews/PR238/source/transformations/correction/geometry_correction#Geometry-Corrections","166":"/GeometryOps.jl/previews/PR238/source/transformations/correction/geometry_correction#interface","167":"/GeometryOps.jl/previews/PR238/source/transformations/correction/geometry_correction#Available-corrections","168":"/GeometryOps.jl/previews/PR238/source/transformations/extent#Extent-embedding","169":"/GeometryOps.jl/previews/PR238/source/transformations/correction/intersecting_polygons#Intersecting-Polygons","170":"/GeometryOps.jl/previews/PR238/source/transformations/correction/intersecting_polygons#example","171":"/GeometryOps.jl/previews/PR238/source/transformations/correction/intersecting_polygons#implementation","172":"/GeometryOps.jl/previews/PR238/source/transformations/flip#Coordinate-flipping","173":"/GeometryOps.jl/previews/PR238/source/transformations/reproject#Geometry-reprojection","174":"/GeometryOps.jl/previews/PR238/source/transformations/reproject#Method-error-handling","175":"/GeometryOps.jl/previews/PR238/source/transformations/segmentize#segmentize","176":"/GeometryOps.jl/previews/PR238/source/transformations/segmentize#examples","177":"/GeometryOps.jl/previews/PR238/source/transformations/segmentize#benchmark","178":"/GeometryOps.jl/previews/PR238/source/transformations/segmentize#implementation","179":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#Geometry-simplification","180":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#examples","181":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#benchmark","182":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#Simplify-with-RadialDistance-Algorithm","183":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#Simplify-with-DouglasPeucker-Algorithm","184":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#Simplify-with-VisvalingamWhyatt-Algorithm","185":"/GeometryOps.jl/previews/PR238/source/transformations/simplify#Shared-utils","186":"/GeometryOps.jl/previews/PR238/source/transformations/transform#Pointwise-transformation","187":"/GeometryOps.jl/previews/PR238/source/transformations/tuples#Tuple-conversion","188":"/GeometryOps.jl/previews/PR238/source/types#types","189":"/GeometryOps.jl/previews/PR238/source/types#GEOS","190":"/GeometryOps.jl/previews/PR238/source/utils#Utility-functions","191":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#Creating-Geometry","192":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#creating-geometry","193":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#plot-geometry","194":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#geom-crs","195":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#attributes","196":"/GeometryOps.jl/previews/PR238/tutorials/creating_geometry#save-geometry","197":"/GeometryOps.jl/previews/PR238/tutorials/geodesic_paths#Geodesic-paths","198":"/GeometryOps.jl/previews/PR238/tutorials/spatial_joins#Spatial-joins","199":"/GeometryOps.jl/previews/PR238/tutorials/spatial_joins#Simple-example","200":"/GeometryOps.jl/previews/PR238/tutorials/spatial_joins#Real-world-example","201":"/GeometryOps.jl/previews/PR238/tutorials/spatial_joins#Enabling-custom-predicates"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,87],"1":[4,4,246],"2":[3,4,1],"3":[2,7,201],"4":[3,7,255],"5":[2,4,81],"6":[2,4,1015],"7":[3,1,55],"8":[3,1,1],"9":[2,3,107],"10":[1,3,17],"11":[2,1,74],"12":[1,1,5],"13":[1,1,128],"14":[1,2,116],"15":[5,2,72],"16":[1,1,1],"17":[1,1,53],"18":[1,1,109],"19":[1,2,35],"20":[3,1,79],"21":[1,1,1],"22":[7,1,71],"23":[13,1,101],"24":[6,1,66],"25":[5,1,72],"26":[5,1,61],"27":[1,1,72],"28":[2,1,1],"29":[3,3,50],"30":[8,3,18],"31":[2,1,146],"32":[1,1,106],"33":[2,1,23],"34":[3,2,1],"35":[1,5,20],"36":[1,5,20],"37":[1,5,20],"38":[2,5,22],"39":[4,2,1],"40":[1,6,13],"41":[1,6,13],"42":[1,6,13],"43":[1,6,13],"44":[1,6,13],"45":[1,6,13],"46":[1,6,13],"47":[1,6,13],"48":[1,6,13],"49":[1,6,13],"50":[2,2,34],"51":[1,1,3],"52":[4,1,57],"53":[1,1,268],"54":[4,1,4],"55":[5,4,100],"56":[1,4,246],"57":[2,1,65],"58":[1,2,211],"59":[3,2,414],"60":[1,1,110],"61":[1,1,6],"62":[5,1,91],"63":[1,1,199],"64":[3,1,610],"65":[4,1,70],"66":[1,1,327],"67":[2,1,3],"68":[4,2,57],"69":[1,2,200],"70":[3,1,214],"71":[10,1,190],"72":[2,1,250],"73":[10,1,480],"74":[11,1,25],"75":[3,1,236],"76":[10,1,284],"77":[2,1,56],"78":[1,2,1],"79":[2,3,32],"80":[5,2,40],"81":[4,2,100],"82":[1,2,166],"83":[4,1,4],"84":[5,4,128],"85":[1,4,260],"86":[1,1,3],"87":[4,1,68],"88":[1,1,265],"89":[1,1,3],"90":[4,1,79],"91":[1,1,79],"92":[1,1,3],"93":[4,1,81],"94":[1,1,128],"95":[4,1,11],"96":[3,1,56],"97":[3,1,46],"98":[4,1,48],"99":[4,1,40],"100":[5,1,40],"101":[5,1,44],"102":[1,1,3],"103":[4,1,67],"104":[1,1,78],"105":[2,1,149],"106":[1,1,3],"107":[4,1,68],"108":[1,1,110],"109":[4,1,10],"110":[3,1,57],"111":[3,1,58],"112":[3,1,47],"113":[3,1,33],"114":[5,1,39],"115":[5,1,44],"116":[3,1,432],"117":[2,1,3],"118":[4,2,80],"119":[1,2,76],"120":[1,1,3],"121":[4,1,82],"122":[1,1,128],"123":[4,1,191],"124":[1,1,3],"125":[4,1,70],"126":[1,1,125],"127":[4,1,11],"128":[3,1,69],"129":[3,1,52],"130":[3,1,61],"131":[3,1,40],"132":[5,1,39],"133":[5,1,42],"134":[1,1,3],"135":[4,1,72],"136":[1,1,129],"137":[4,1,11],"138":[3,1,63],"139":[3,1,53],"140":[4,1,53],"141":[3,1,38],"142":[5,1,39],"143":[5,1,42],"144":[1,1,4],"145":[1,1,21],"146":[1,1,206],"147":[3,1,47],"148":[3,1,511],"149":[1,1,114],"150":[1,1,1],"151":[1,2,152],"152":[4,1,114],"153":[2,1,36],"154":[1,1,490],"155":[1,1,291],"156":[2,1,51],"157":[6,1,217],"158":[2,1,54],"159":[1,2,87],"160":[1,2,83],"161":[1,1,17],"162":[1,1,221],"163":[1,1,74],"164":[1,1,98],"165":[2,1,41],"166":[1,2,109],"167":[2,2,106],"168":[2,1,71],"169":[2,1,77],"170":[1,2,70],"171":[1,2,135],"172":[2,1,56],"173":[2,1,132],"174":[3,2,77],"175":[1,1,76],"176":[1,1,147],"177":[1,1,268],"178":[1,1,221],"179":[2,1,44],"180":[1,2,67],"181":[1,2,391],"182":[4,1,75],"183":[4,1,186],"184":[4,1,85],"185":[2,1,149],"186":[2,1,111],"187":[2,1,58],"188":[1,1,37],"189":[1,1,147],"190":[2,1,136],"191":[2,1,60],"192":[4,2,287],"193":[13,2,280],"194":[9,2,199],"195":[7,2,63],"196":[4,2,140],"197":[2,1,52],"198":[2,1,141],"199":[2,2,137],"200":[3,2,117],"201":[3,2,68]},"averageFieldLength":[2.7277227722772293,1.7227722772277227,101.76237623762373],"storedFields":{"0":{"title":"Full GeometryOps API documentation","titles":[]},"1":{"title":"apply and associated functions","titles":["Full GeometryOps API documentation"]},"2":{"title":"General geometry methods","titles":["Full GeometryOps API documentation"]},"3":{"title":"OGC methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"4":{"title":"Other general methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"5":{"title":"Barycentric coordinates","titles":["Full GeometryOps API documentation"]},"6":{"title":"Other methods","titles":["Full GeometryOps API documentation"]},"7":{"title":"20th April, 2024","titles":[]},"8":{"title":"29th Feb, 2024","titles":[]},"9":{"title":"To do","titles":["29th Feb, 2024"]},"10":{"title":"Done","titles":["29th Feb, 2024"]},"11":{"title":"Accurate accumulation","titles":[]},"12":{"title":"Predicates","titles":[]},"13":{"title":"Orient","titles":["Predicates"]},"14":{"title":"Dashboard","titles":["Predicates","Orient"]},"15":{"title":"Testing robust vs regular predicates","titles":["Predicates","Orient"]},"16":{"title":"Incircle","titles":["Predicates"]},"17":{"title":"Paradigms","titles":[]},"18":{"title":"apply","titles":["Paradigms"]},"19":{"title":"applyreduce","titles":["Paradigms","apply"]},"20":{"title":"fix and prepare","titles":["Paradigms"]},"21":{"title":"Peculiarities","titles":[]},"22":{"title":"What does apply return and why?","titles":["Peculiarities"]},"23":{"title":"Why do you want me to provide a target in set operations?","titles":["Peculiarities"]},"24":{"title":"_True and _False (or BoolsAsTypes)","titles":["Peculiarities"]},"25":{"title":"What is GeometryOps.jl?","titles":[]},"26":{"title":"How to navigate the docs","titles":[]},"27":{"title":"Introduction","titles":[]},"28":{"title":"Main concepts","titles":["Introduction"]},"29":{"title":"The apply paradigm","titles":["Introduction","Main concepts"]},"30":{"title":"What's this GeoInterface.Wrapper thing?","titles":["Introduction","Main concepts"]},"31":{"title":"GeometryOps.jl","titles":[]},"32":{"title":"Segmentize","titles":[]},"33":{"title":"Simple overrides","titles":[]},"34":{"title":"Polygon set operations","titles":["Simple overrides"]},"35":{"title":"Difference","titles":["Simple overrides","Polygon set operations"]},"36":{"title":"Union","titles":["Simple overrides","Polygon set operations"]},"37":{"title":"Intersection","titles":["Simple overrides","Polygon set operations"]},"38":{"title":"Symmetric difference","titles":["Simple overrides","Polygon set operations"]},"39":{"title":"DE-9IM boolean methods","titles":["Simple overrides"]},"40":{"title":"Equals","titles":["Simple overrides","DE-9IM boolean methods"]},"41":{"title":"Disjoint","titles":["Simple overrides","DE-9IM boolean methods"]},"42":{"title":"Touches","titles":["Simple overrides","DE-9IM boolean methods"]},"43":{"title":"Crosses","titles":["Simple overrides","DE-9IM boolean methods"]},"44":{"title":"Within","titles":["Simple overrides","DE-9IM boolean methods"]},"45":{"title":"Contains","titles":["Simple overrides","DE-9IM boolean methods"]},"46":{"title":"Overlaps","titles":["Simple overrides","DE-9IM boolean methods"]},"47":{"title":"Covers","titles":["Simple overrides","DE-9IM boolean methods"]},"48":{"title":"CoveredBy","titles":["Simple overrides","DE-9IM boolean methods"]},"49":{"title":"Intersects","titles":["Simple overrides","DE-9IM boolean methods"]},"50":{"title":"Convex hull","titles":["Simple overrides"]},"51":{"title":"Angles","titles":[]},"52":{"title":"What is angles?","titles":["Angles"]},"53":{"title":"Implementation","titles":["Angles"]},"54":{"title":"Area and signed area","titles":[]},"55":{"title":"What is area? What is signed area?","titles":["Area and signed area"]},"56":{"title":"Implementation","titles":["Area and signed area"]},"57":{"title":"Barycentric coordinates","titles":[]},"58":{"title":"Example","titles":["Barycentric coordinates"]},"59":{"title":"Barycentric-coordinate API","titles":["Barycentric coordinates"]},"60":{"title":"Buffer","titles":[]},"61":{"title":"Centroid","titles":[]},"62":{"title":"What is the centroid?","titles":["Centroid"]},"63":{"title":"Implementation","titles":["Centroid"]},"64":{"title":"Polygon clipping helpers","titles":[]},"65":{"title":"What is coverage?","titles":[]},"66":{"title":"Implementation","titles":[]},"67":{"title":"Polygon cutting","titles":[]},"68":{"title":"What is cut?","titles":["Polygon cutting"]},"69":{"title":"Implementation","titles":["Polygon cutting"]},"70":{"title":"Difference Polygon Clipping","titles":[]},"71":{"title":"Helper functions for Differences with Greiner and Hormann Polygon Clipping","titles":[]},"72":{"title":"Geometry Intersection","titles":[]},"73":{"title":"Helper functions for Intersections with Greiner and Hormann Polygon Clipping","titles":[]},"74":{"title":"If we want to inject adaptivity, we would do something like:","titles":[]},"75":{"title":"Union Polygon Clipping","titles":[]},"76":{"title":"Helper functions for Unions with Greiner and Hormann Polygon Clipping","titles":[]},"77":{"title":"Convex hull","titles":[]},"78":{"title":"Example","titles":["Convex hull"]},"79":{"title":"Simple hull","titles":["Convex hull","Example"]},"80":{"title":"Convex hull of the USA","titles":["Convex hull"]},"81":{"title":"Investigating the winding order","titles":["Convex hull"]},"82":{"title":"Implementation","titles":["Convex hull"]},"83":{"title":"Distance and signed distance","titles":[]},"84":{"title":"What is distance? What is signed distance?","titles":["Distance and signed distance"]},"85":{"title":"Implementation","titles":["Distance and signed distance"]},"86":{"title":"Equals","titles":[]},"87":{"title":"What is equals?","titles":["Equals"]},"88":{"title":"Implementation","titles":["Equals"]},"89":{"title":"Contains","titles":[]},"90":{"title":"What is contains?","titles":["Contains"]},"91":{"title":"Implementation","titles":["Contains"]},"92":{"title":"CoveredBy","titles":[]},"93":{"title":"What is coveredby?","titles":["CoveredBy"]},"94":{"title":"Implementation","titles":["CoveredBy"]},"95":{"title":"Convert features to geometries","titles":[]},"96":{"title":"Points coveredby geometries","titles":[]},"97":{"title":"Lines coveredby geometries","titles":[]},"98":{"title":"Rings covered by geometries","titles":[]},"99":{"title":"Polygons covered by geometries","titles":[]},"100":{"title":"Geometries coveredby multi-geometry/geometry collections","titles":[]},"101":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"102":{"title":"Covers","titles":[]},"103":{"title":"What is covers?","titles":["Covers"]},"104":{"title":"Implementation","titles":["Covers"]},"105":{"title":"Crossing checks","titles":[]},"106":{"title":"Disjoint","titles":[]},"107":{"title":"What is disjoint?","titles":["Disjoint"]},"108":{"title":"Implementation","titles":["Disjoint"]},"109":{"title":"Convert features to geometries","titles":[]},"110":{"title":"Point disjoint geometries","titles":[]},"111":{"title":"Lines disjoint geometries","titles":[]},"112":{"title":"Rings disjoint geometries","titles":[]},"113":{"title":"Polygon disjoint geometries","titles":[]},"114":{"title":"Geometries disjoint multi-geometry/geometry collections","titles":[]},"115":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"116":{"title":"Line-curve interaction","titles":[]},"117":{"title":"Intersection checks","titles":[]},"118":{"title":"What is intersects?","titles":["Intersection checks"]},"119":{"title":"Implementation","titles":["Intersection checks"]},"120":{"title":"Overlaps","titles":[]},"121":{"title":"What is overlaps?","titles":["Overlaps"]},"122":{"title":"Implementation","titles":["Overlaps"]},"123":{"title":"Convert features to geometries","titles":[]},"124":{"title":"Touches","titles":[]},"125":{"title":"What is touches?","titles":["Touches"]},"126":{"title":"Implementation","titles":["Touches"]},"127":{"title":"Convert features to geometries","titles":[]},"128":{"title":"Point touches geometries","titles":[]},"129":{"title":"Lines touching geometries","titles":[]},"130":{"title":"Rings touch geometries","titles":[]},"131":{"title":"Polygons touch geometries","titles":[]},"132":{"title":"Geometries touch multi-geometry/geometry collections","titles":[]},"133":{"title":"Multi-geometry/geometry collections cross geometries","titles":[]},"134":{"title":"Within","titles":[]},"135":{"title":"What is within?","titles":["Within"]},"136":{"title":"Implementation","titles":["Within"]},"137":{"title":"Convert features to geometries","titles":[]},"138":{"title":"Points within geometries","titles":[]},"139":{"title":"Lines within geometries","titles":[]},"140":{"title":"Rings covered by geometries","titles":[]},"141":{"title":"Polygons within geometries","titles":[]},"142":{"title":"Geometries within multi-geometry/geometry collections","titles":[]},"143":{"title":"Multi-geometry/geometry collections within geometries","titles":[]},"144":{"title":"Orientation","titles":[]},"145":{"title":"isclockwise","titles":["Orientation"]},"146":{"title":"isconcave","titles":["Orientation"]},"147":{"title":"Not implemented yet","titles":[]},"148":{"title":"Polygonizing raster data","titles":[]},"149":{"title":"apply","titles":[]},"150":{"title":"Docstrings","titles":["apply"]},"151":{"title":"Functions","titles":["apply","Docstrings"]},"152":{"title":"What is apply?","titles":["apply"]},"153":{"title":"Embedding:","titles":["apply"]},"154":{"title":"Threading","titles":["apply"]},"155":{"title":"applyreduce","titles":[]},"156":{"title":"Keyword docs","titles":[]},"157":{"title":"Other primitives (unwrap, flatten, etc)","titles":[]},"158":{"title":"Closed Rings","titles":[]},"159":{"title":"Example","titles":["Closed Rings"]},"160":{"title":"Implementation","titles":["Closed Rings"]},"161":{"title":"Types","titles":[]},"162":{"title":"Manifold","titles":["Types"]},"163":{"title":"TraitTarget","titles":["Types"]},"164":{"title":"BoolsAsTypes","titles":["Types"]},"165":{"title":"Geometry Corrections","titles":[]},"166":{"title":"Interface","titles":["Geometry Corrections"]},"167":{"title":"Available corrections","titles":["Geometry Corrections"]},"168":{"title":"Extent embedding","titles":[]},"169":{"title":"Intersecting Polygons","titles":[]},"170":{"title":"Example","titles":["Intersecting Polygons"]},"171":{"title":"Implementation","titles":["Intersecting Polygons"]},"172":{"title":"Coordinate flipping","titles":[]},"173":{"title":"Geometry reprojection","titles":[]},"174":{"title":"Method error handling","titles":["Geometry reprojection"]},"175":{"title":"Segmentize","titles":[]},"176":{"title":"Examples","titles":["Segmentize"]},"177":{"title":"Benchmark","titles":["Segmentize"]},"178":{"title":"Implementation","titles":["Segmentize"]},"179":{"title":"Geometry simplification","titles":[]},"180":{"title":"Examples","titles":["Geometry simplification"]},"181":{"title":"Benchmark","titles":["Geometry simplification"]},"182":{"title":"Simplify with RadialDistance Algorithm","titles":[]},"183":{"title":"Simplify with DouglasPeucker Algorithm","titles":[]},"184":{"title":"Simplify with VisvalingamWhyatt Algorithm","titles":[]},"185":{"title":"Shared utils","titles":[]},"186":{"title":"Pointwise transformation","titles":[]},"187":{"title":"Tuple conversion","titles":[]},"188":{"title":"Types","titles":[]},"189":{"title":"GEOS","titles":["Types"]},"190":{"title":"Utility functions","titles":[]},"191":{"title":"Creating Geometry","titles":[]},"192":{"title":"Creating and plotting geometries","titles":["Creating Geometry"]},"193":{"title":"Plot geometries on a map using GeoMakie and coordinate reference system (CRS)","titles":["Creating Geometry"]},"194":{"title":"Create geospatial geometries with embedded coordinate reference system information","titles":["Creating Geometry"]},"195":{"title":"Creating a table with attributes and geometry","titles":["Creating Geometry"]},"196":{"title":"Saving your geospatial data","titles":["Creating Geometry"]},"197":{"title":"Geodesic paths","titles":[]},"198":{"title":"Spatial joins","titles":[]},"199":{"title":"Simple example","titles":["Spatial joins"]},"200":{"title":"Real-world example","titles":["Spatial joins"]},"201":{"title":"Enabling custom predicates","titles":["Spatial joins"]}},"dirtCount":0,"index":[["⋮",{"2":{"193":1}}],["θ",{"2":{"192":7,"193":3,"194":5}}],["☁",{"2":{"192":1}}],["✈",{"2":{"192":1}}],["÷",{"2":{"154":1,"155":1}}],["ϵ",{"2":{"73":5}}],["∘",{"2":{"73":1,"148":2,"166":1,"181":2,"201":2}}],["⊻",{"2":{"64":1,"71":2}}],["≥",{"2":{"64":1,"116":2,"171":1,"183":1}}],["α≈1",{"2":{"73":1}}],["α≈0",{"2":{"73":1}}],["α2",{"2":{"64":4,"73":2}}],["α",{"2":{"64":3,"73":28,"116":7}}],["α1",{"2":{"64":4,"73":2}}],["β2",{"2":{"64":4,"73":2}}],["β",{"2":{"64":4,"73":28,"116":7}}],["β1",{"2":{"64":4,"73":2}}],["≤",{"2":{"64":5,"66":14,"116":6,"183":1,"185":1,"190":4}}],["^",{"2":{"193":1}}],["^3",{"2":{"193":1}}],["^n",{"2":{"146":1}}],["^2",{"2":{"63":2,"85":2}}],["^hormannpresentation",{"2":{"59":2}}],["∑λ",{"2":{"59":2}}],["∑i=2n",{"2":{"6":1}}],["`$",{"2":{"189":1}}],["`equatorial",{"2":{"177":2}}],["`extents",{"2":{"168":1}}],["`inf`",{"2":{"173":1}}],["`inv",{"2":{"162":1}}],["`intersects`",{"2":{"119":1}}],["`intersectingpolygons`",{"2":{"70":1,"72":1,"75":1}}],["`90`",{"2":{"162":1}}],["`libgeos",{"2":{"189":1}}],["`linearring`",{"2":{"178":1}}],["`linestring`",{"2":{"178":1}}],["`linestringtrait`",{"2":{"166":1}}],["`line2`",{"2":{"146":1}}],["`line1`",{"2":{"146":1}}],["`line",{"2":{"72":4}}],["`lat`",{"2":{"162":1}}],["`lon`",{"2":{"162":1}}],["`z`",{"2":{"162":1}}],["``1",{"2":{"162":1}}],["``a``",{"2":{"162":1}}],["``r",{"2":{"162":1}}],["```jldoctest",{"2":{"69":1,"70":1,"72":1,"73":1,"75":1,"88":1,"91":1,"94":1,"104":1,"108":1,"119":1,"122":1,"126":1,"136":1,"146":1,"181":1}}],["```julia",{"2":{"6":2,"59":1,"105":1,"146":1,"154":1,"163":1,"186":2}}],["```math",{"2":{"59":1,"146":1}}],["```",{"2":{"11":1,"59":3,"69":1,"70":1,"72":1,"75":1,"88":1,"91":1,"94":1,"104":1,"108":1,"119":1,"122":1,"126":1,"136":1,"146":3,"148":11,"154":1,"181":1,"186":2,"190":1}}],["`6371008",{"2":{"162":1}}],["`prefilter",{"2":{"181":1}}],["`proj",{"2":{"173":1,"177":2}}],["`planar`",{"2":{"162":1,"178":2}}],["`polgontrait`",{"2":{"154":1}}],["`polygontrait`",{"2":{"154":1,"166":1}}],["`polygonize`",{"2":{"148":2}}],["`polygon`",{"2":{"59":3,"178":1}}],["`polys`",{"2":{"71":1}}],["`poly",{"2":{"71":3,"73":1,"76":1}}],["`pointrait`",{"2":{"181":1}}],["`pointtrait`",{"2":{"157":3,"166":1}}],["`point",{"2":{"116":3}}],["`point`",{"2":{"59":4,"85":1}}],["`point2f`",{"2":{"58":1}}],["`obj`",{"2":{"157":1,"186":1,"187":1}}],["`op`",{"2":{"155":2}}],["`calc",{"2":{"156":1}}],["`crs`",{"2":{"156":1}}],["`components`",{"2":{"157":1}}],["`collect`",{"2":{"155":1}}],["`covers`",{"2":{"94":1,"104":1}}],["`coveredby`",{"2":{"94":1,"104":1}}],["`contains`",{"2":{"91":1,"136":1}}],["`convex",{"2":{"82":2}}],["`+`",{"2":{"155":1}}],["`alg",{"2":{"189":1}}],["`alg`",{"2":{"185":1}}],["`always",{"2":{"173":1}}],["`application",{"2":{"166":1}}],["`apply`",{"2":{"154":1,"163":1}}],["`abstractgeometrytrait`",{"2":{"157":1}}],["`abstractarray`",{"2":{"157":1}}],["`abstractmatrix`",{"2":{"148":1}}],["`union",{"2":{"148":2}}],["`unionintersectingpolygons`",{"2":{"171":1}}],["`unionintersectingpolygons",{"2":{"70":1,"71":2,"72":1,"73":2,"75":1,"76":2}}],["`ys`",{"2":{"148":1}}],["`flattening`",{"2":{"177":1}}],["`flattening",{"2":{"177":1}}],["`flatten`",{"2":{"157":1}}],["`f",{"2":{"154":1}}],["`featurecollectiontrait`",{"2":{"154":1,"157":1}}],["`featurecollection`",{"2":{"148":2}}],["`featuretrait`",{"2":{"154":2,"157":1}}],["`feature`s",{"2":{"148":1}}],["`f`",{"2":{"148":5,"154":3,"155":1,"157":2,"186":2,"189":1}}],["`false`",{"2":{"146":1,"148":1,"156":4,"164":1,"173":1}}],["`fix",{"2":{"70":2,"71":2,"72":2,"73":2,"75":2,"76":2}}],["`douglaspeucker`",{"2":{"181":1}}],["`d`",{"2":{"173":1}}],["`difference`",{"2":{"171":1}}],["`disjoint`",{"2":{"119":1}}],["`delaunaytriangulation",{"2":{"82":1}}],["`within`",{"2":{"91":1,"136":1}}],["`weight`",{"2":{"59":1}}],["`geos`",{"2":{"189":3}}],["`geodesicsegments`",{"2":{"176":1}}],["`geodesic`",{"2":{"162":1,"177":2,"178":2}}],["`geointerface`",{"2":{"166":1}}],["`geointerface",{"2":{"154":1,"157":2,"173":2}}],["`geom`",{"2":{"85":3,"157":1,"178":1}}],["`geometrycollection`",{"2":{"178":1}}],["`geometrycorrection`",{"2":{"160":1,"166":1,"171":2}}],["`geometry`",{"2":{"154":1,"173":2}}],["`geometrybasics",{"2":{"59":3}}],["`geometries`",{"2":{"82":1}}],["`g1`",{"2":{"85":1}}],["`gi",{"2":{"82":1,"148":1}}],["`tuple",{"2":{"190":1}}],["`tuple`s",{"2":{"187":1}}],["`tuple`",{"2":{"148":1,"187":1}}],["`time`",{"2":{"173":1}}],["`transform`",{"2":{"173":1}}],["`true`",{"2":{"94":1,"105":1,"108":2,"126":1,"136":1,"146":2,"148":1,"156":2,"164":1,"173":1}}],["`threaded`",{"2":{"156":1}}],["`threaded==true`",{"2":{"155":1}}],["`tol`",{"2":{"181":2,"182":3,"183":2,"184":3,"185":4}}],["`to",{"2":{"73":1}}],["`target",{"2":{"173":3}}],["`target`",{"2":{"72":1,"154":2,"155":1,"157":1,"163":1}}],["`tables",{"2":{"154":1}}],["`taget`",{"2":{"70":1,"75":1}}],["`method",{"2":{"178":1}}],["`method`",{"2":{"59":3}}],["`max",{"2":{"177":4,"178":3,"189":1}}],["`map`",{"2":{"154":1}}],["`makie",{"2":{"148":1}}],["`multipointtrait`",{"2":{"154":1,"181":1}}],["`multipolygontrait`",{"2":{"154":1}}],["`multipolygon`",{"2":{"148":3,"178":1}}],["`multipolygon",{"2":{"71":3,"73":3,"76":2}}],["`multipoly",{"2":{"71":7,"73":3,"76":3}}],["`minpoints`",{"2":{"148":2}}],["`number`",{"2":{"181":2,"185":3}}],["`namedtuple`",{"2":{"154":1}}],["`nothing`",{"2":{"64":1,"156":1}}],["`next",{"2":{"64":1}}],["`boolsastypes`",{"2":{"164":1}}],["`bool`",{"2":{"148":2}}],["`buffer`",{"2":{"60":1}}],["`barycentric",{"2":{"59":3}}],["`radialdistance`",{"2":{"181":1}}],["`ratio`",{"2":{"181":2,"185":3}}],["`reproject`",{"2":{"174":1}}],["`rebuild`",{"2":{"157":1}}],["`r`",{"2":{"59":1}}],["`rᵢ`",{"2":{"59":1}}],["`svector`",{"2":{"186":3}}],["`simplifyalg`",{"2":{"181":2}}],["`simplify",{"2":{"181":1}}],["`simplify`",{"2":{"181":2}}],["`segmentize`",{"2":{"189":1}}],["`segmentize",{"2":{"178":2}}],["`semimajor",{"2":{"162":1}}],["`source",{"2":{"173":3}}],["`spherical`",{"2":{"162":1,"178":1}}],["`s`",{"2":{"59":1}}],["`sᵢ`",{"2":{"59":2}}],["`s2`",{"2":{"59":1}}],["`s1`",{"2":{"59":1}}],["`hcat`",{"2":{"59":1}}],["`x`",{"2":{"154":1,"164":1}}],["`xs`",{"2":{"148":1}}],["`x1",{"2":{"59":1}}],["`x1`",{"2":{"59":2}}],["`x2`",{"2":{"59":1}}],["`visvalingamwhyatt`",{"2":{"181":1}}],["`vector",{"2":{"173":1}}],["`vector`",{"2":{"148":1,"154":1}}],["`vᵢ`",{"2":{"59":1}}],["`v`",{"2":{"59":1}}],["`values`",{"2":{"59":1,"148":1}}],["`λs`",{"2":{"59":2}}],["`",{"2":{"59":2,"70":1,"71":2,"72":1,"73":3,"75":1,"76":2,"148":3,"154":2,"155":1,"162":1,"166":2,"173":2,"178":1,"181":3,"189":2,"190":1}}],["λ₁",{"2":{"59":2}}],["λn",{"2":{"57":1}}],["λ3",{"2":{"57":1}}],["λ2",{"2":{"57":2}}],["λ1",{"2":{"57":2}}],["λs",{"2":{"5":3,"6":4,"59":27}}],["π",{"2":{"53":1,"181":1}}],["δbay",{"2":{"73":3}}],["δbax",{"2":{"73":3}}],["δby",{"2":{"73":5}}],["δbx",{"2":{"73":5}}],["δb",{"2":{"73":2}}],["δay",{"2":{"73":5}}],["δax",{"2":{"73":5}}],["δa",{"2":{"73":2}}],["δintrs",{"2":{"64":2}}],["δy2",{"2":{"146":2}}],["δy1",{"2":{"146":2}}],["δyl",{"2":{"123":4}}],["δy",{"2":{"53":8,"66":3,"116":7}}],["δys",{"2":{"53":1}}],["δx2",{"2":{"146":2}}],["δx1",{"2":{"146":2}}],["δxl",{"2":{"123":4}}],["δx",{"2":{"53":9,"66":3,"116":7}}],["∈",{"2":{"14":1}}],["~",{"2":{"14":3}}],["$ratio",{"2":{"185":1}}],["$rectangle",{"2":{"177":2}}],["$number",{"2":{"185":1}}],["$name",{"2":{"31":2}}],["$min",{"2":{"185":1}}],["$douglas",{"2":{"181":1,"183":1}}],["$simplify",{"2":{"181":1,"182":1,"184":1}}],["$lg",{"2":{"177":1}}],["$lin",{"2":{"177":2}}],["$geom",{"2":{"181":8}}],["$geo",{"2":{"177":1}}],["$calc",{"2":{"156":1}}],["$crs",{"2":{"156":1,"168":1}}],["$apply",{"2":{"154":1,"172":1,"173":1,"181":1}}],["$tol",{"2":{"185":1}}],["$threaded",{"2":{"156":1}}],["$t",{"2":{"88":1,"154":2,"155":2}}],["$target",{"2":{"71":1,"73":1,"76":1,"157":3}}],["$trait",{"2":{"69":1,"71":2,"73":2,"76":2}}],["$",{"2":{"13":4,"14":1,"59":4,"64":2,"148":3,"166":4,"178":4,"181":12,"189":1}}],["|=",{"2":{"116":4,"123":1}}],["||",{"2":{"53":2,"64":13,"66":8,"69":1,"72":1,"73":5,"75":1,"88":18,"105":2,"116":8,"123":1,"128":1,"148":7,"183":1,"185":3}}],["|",{"2":{"11":4,"116":1}}],["|>",{"2":{"11":8,"13":2,"157":3,"176":1,"177":1,"181":3,"200":2}}],["↩︎",{"2":{"6":1}}],["ᵢᵢᵢ₊₁ᵢᵢ₊₁ᵢᵢ₊₁tᵢ=det",{"2":{"6":1}}],["⋅",{"2":{"6":1,"59":1}}],["qy",{"2":{"13":2,"14":2}}],["qx",{"2":{"13":2,"14":2}}],["q",{"2":{"13":13,"14":12,"64":4}}],["qhull",{"2":{"6":1,"82":1}}],["queue",{"2":{"183":41}}],["questions",{"2":{"73":1}}],["quite",{"2":{"159":1,"200":1}}],["quickhull",{"2":{"6":1,"77":1,"82":2}}],["quick",{"2":{"4":1,"6":1,"59":1,"168":1,"180":1}}],["quality",{"2":{"6":1,"181":1}}],["quantity",{"2":{"6":1,"177":1}}],["quot",{"2":{"1":4,"6":6,"20":2,"64":8,"84":2,"85":2,"88":2,"103":4,"116":10,"151":4,"152":2,"154":2,"155":2,"157":4,"175":6,"192":2,"199":2}}],["zone",{"2":{"193":1}}],["zoom",{"2":{"14":1}}],["zs",{"2":{"148":5}}],["zip",{"2":{"13":1,"14":1,"192":4,"193":1,"194":1}}],["zeros",{"2":{"59":1,"66":1}}],["zero",{"2":{"4":6,"6":8,"56":11,"63":3,"64":4,"66":11,"73":22,"84":1,"85":3,"146":1,"154":1,"183":4}}],["z",{"2":{"4":1,"5":1,"6":2,"59":3,"88":3,"148":3,"162":1,"172":1,"186":1,"187":1}}],["0e6",{"2":{"193":6}}],["0example",{"2":{"6":1}}],["097075198097933",{"2":{"194":1}}],["09707519809793252",{"2":{"194":2}}],["091887951911644",{"2":{"194":3}}],["0999933334666654",{"2":{"192":1}}],["09801605542096",{"2":{"192":1}}],["098016055420953",{"2":{"192":3}}],["09297443860091348",{"2":{"192":4}}],["09",{"2":{"58":1}}],["08506974233813636",{"2":{"194":2}}],["08",{"2":{"58":1}}],["062749678615475",{"2":{"194":1}}],["06274967861547665",{"2":{"194":2}}],["06592462566760626",{"2":{"192":1}}],["0650624499034016",{"2":{"192":4}}],["06",{"2":{"58":1}}],["02017324484778",{"2":{"194":1}}],["020173244847778715",{"2":{"194":2}}],["027886421973952302",{"2":{"192":4}}],["02",{"2":{"58":3}}],["04500741774392",{"2":{"194":1}}],["045007417743918",{"2":{"194":2}}],["049999166670833324",{"2":{"192":1}}],["0438052480035",{"2":{"192":1}}],["043805248003498",{"2":{"192":3}}],["04",{"2":{"58":6}}],["07518688541961",{"2":{"194":1}}],["075186885419612",{"2":{"194":2}}],["071",{"2":{"176":2,"177":2}}],["07",{"2":{"58":6,"176":6,"177":6}}],["009176636029576",{"2":{"194":1}}],["0091766360295773",{"2":{"194":2}}],["003135308800957",{"2":{"194":1}}],["0031353088009582475",{"2":{"194":2}}],["0035114210915891397",{"2":{"192":4}}],["006784125578492062",{"2":{"194":2}}],["0020133807972559925",{"2":{"194":2}}],["00839489109211",{"2":{"194":3}}],["008696",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["005465967083412071",{"2":{"192":4}}],["00111595449914",{"2":{"192":1}}],["001115954499138",{"2":{"192":3}}],["0010075412835199304",{"2":{"192":4}}],["001",{"2":{"181":1}}],["00085222666982",{"2":{"194":3}}],["000577332369005",{"2":{"194":1}}],["0005773323690041465",{"2":{"194":2}}],["000510363870095e6",{"2":{"193":2}}],["00025191811248184703",{"2":{"194":2}}],["000215611503127e6",{"2":{"193":2}}],["0007260527263e6",{"2":{"193":2}}],["000342160541625e6",{"2":{"193":2}}],["000124843834609e6",{"2":{"193":2}}],["000063948817746e6",{"2":{"193":2}}],["000026987852369e6",{"2":{"193":2}}],["000008144045314",{"2":{"194":1}}],["000007998400139e6",{"2":{"193":2}}],["000000999950001e6",{"2":{"193":2}}],["00001e6",{"2":{"193":1}}],["0004397316773170068",{"2":{"192":4}}],["000",{"2":{"181":1,"197":1}}],["00",{"2":{"58":2}}],["053798628882221644",{"2":{"194":2}}],["05877989361332",{"2":{"192":1}}],["058779893613323",{"2":{"192":3}}],["05416726609360478",{"2":{"192":4}}],["05",{"2":{"58":1}}],["052704767595",{"2":{"15":1}}],["037564867762832",{"2":{"194":1}}],["03756486776283019",{"2":{"194":2}}],["031245035570328428",{"2":{"194":2}}],["033518309870985",{"2":{"194":3}}],["03503632062070827",{"2":{"192":4}}],["03",{"2":{"58":4}}],["01458815628695",{"2":{"194":3}}],["016044338630866517",{"2":{"194":2}}],["01592650896568995",{"2":{"192":1}}],["01597247419241532",{"2":{"192":4}}],["01908693278165",{"2":{"192":1}}],["019086932781654",{"2":{"192":3}}],["01098781325325",{"2":{"192":1}}],["010987813253244",{"2":{"192":3}}],["011814947665167774",{"2":{"192":4}}],["01362848005",{"2":{"15":1}}],["01",{"2":{"14":1,"58":1,"176":1,"177":1,"192":1,"193":1,"194":1}}],["0^",{"2":{"13":2,"14":2}}],["0+2",{"2":{"13":2,"14":2}}],["0",{"2":{"3":35,"4":12,"6":190,"11":1,"13":5,"14":8,"15":32,"52":20,"53":3,"55":9,"56":4,"58":155,"59":2,"62":6,"63":6,"64":49,"65":13,"66":5,"68":22,"69":49,"70":42,"72":2,"73":21,"75":46,"76":2,"80":1,"84":20,"85":2,"87":13,"88":18,"90":16,"93":6,"94":6,"103":6,"104":12,"105":9,"107":15,"116":37,"121":13,"122":6,"123":3,"125":12,"126":11,"135":16,"146":21,"148":7,"159":24,"162":1,"170":64,"171":4,"176":16,"177":13,"178":2,"181":11,"183":7,"185":4,"190":2,"192":129,"193":2,"194":46,"199":13}}],[">=",{"2":{"59":6,"105":4,"123":1,"185":1}}],[">geometryops",{"2":{"6":2}}],[">",{"2":{"1":1,"6":6,"11":2,"13":1,"15":2,"50":1,"53":1,"59":1,"64":17,"66":3,"69":5,"70":1,"71":1,"73":2,"75":1,"76":3,"84":1,"88":1,"105":8,"116":10,"123":2,"146":4,"148":12,"157":6,"166":1,"171":3,"178":3,"181":1,"183":12,"185":3,"186":1,"190":1,"200":1}}],["914930257661865",{"2":{"194":1}}],["96875496442967",{"2":{"194":1}}],["961329",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["983955661369134",{"2":{"194":1}}],["9833",{"2":{"15":1}}],["9877550012664",{"2":{"192":1}}],["9840085315131",{"2":{"192":1}}],["98271048511609",{"2":{"192":1}}],["98661575256801",{"2":{"192":1}}],["99321587442151",{"2":{"194":1}}],["99375130197483",{"2":{"192":1}}],["997986619202745",{"2":{"194":1}}],["997750168744936",{"2":{"192":1}}],["997247091122496",{"2":{"192":1}}],["99600053330489",{"2":{"192":1}}],["991002699676024",{"2":{"192":1}}],["990022362600165",{"2":{"192":1}}],["99292997455441",{"2":{"192":1}}],["99533829767195",{"2":{"192":1}}],["99865616402829",{"2":{"192":1}}],["999999967681458e6",{"2":{"193":2}}],["999997707902938e6",{"2":{"193":2}}],["999987539891298e6",{"2":{"193":2}}],["999963474314044e6",{"2":{"193":2}}],["999919535736425e6",{"2":{"193":2}}],["999974634566875",{"2":{"192":1}}],["999849768598615e6",{"2":{"193":2}}],["999748081887518",{"2":{"194":1}}],["999748243174828e6",{"2":{"193":2}}],["999750002083324",{"2":{"192":1}}],["999609061508909e6",{"2":{"193":2}}],["999426363321033e6",{"2":{"193":2}}],["999194331880103e6",{"2":{"193":2}}],["99900003333289",{"2":{"192":1}}],["999565375483215",{"2":{"192":1}}],["97976366505997",{"2":{"192":1}}],["9783069507679",{"2":{"192":1}}],["97",{"2":{"58":1}}],["946201371117777",{"2":{"194":1}}],["94",{"2":{"58":1}}],["92",{"2":{"58":1}}],["9im",{"0":{"39":1},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"116":2,"198":1}}],["95770326033",{"2":{"15":1}}],["95",{"2":{"13":1,"14":1,"197":1}}],["900",{"2":{"177":1}}],["90063612163",{"2":{"11":2}}],["90`",{"2":{"162":1}}],["90",{"2":{"52":9,"58":1}}],["909318372607",{"2":{"11":3}}],["9",{"2":{"1":1,"6":1,"116":2,"146":12,"176":1,"186":1}}],["897070",{"2":{"197":1}}],["873633668827033",{"2":{"194":1}}],["8135804051007",{"2":{"192":1}}],["813580405100698",{"2":{"192":3}}],["88",{"2":{"58":1}}],["86641841658641",{"2":{"192":1}}],["866418416586406",{"2":{"192":3}}],["86",{"2":{"58":1}}],["868447876892",{"2":{"15":2}}],["84",{"2":{"58":1}}],["821068835162155",{"2":{"194":1}}],["82",{"2":{"58":1}}],["800",{"2":{"58":1}}],["80000",{"2":{"15":5}}],["80",{"2":{"58":1}}],["80869813739",{"2":{"15":2}}],["856614689791036e",{"2":{"15":2}}],["83572303404496",{"2":{"6":2,"72":1,"73":1}}],["8",{"2":{"1":3,"6":9,"13":1,"14":1,"70":2,"75":4,"116":1,"148":3,"162":2,"176":1,"186":3,"194":2}}],["karnataka",{"2":{"200":1}}],["kbn",{"2":{"11":2}}],["kinds",{"2":{"23":1}}],["kind",{"2":{"9":1,"148":1,"198":1}}],["k",{"2":{"6":1,"14":6,"59":1,"64":5,"116":5,"192":5,"194":5}}],["kernel",{"2":{"178":4}}],["keepat",{"2":{"75":1,"171":2}}],["keep",{"2":{"64":3,"148":1,"171":14,"176":1,"199":1}}],["keeping",{"2":{"6":1,"154":1,"172":1}}],["keys",{"2":{"148":4,"154":1}}],["key",{"2":{"6":1,"148":4,"154":2,"189":5}}],["keyword",{"0":{"156":1},"2":{"6":8,"23":1,"31":3,"70":1,"72":1,"75":1,"154":1,"156":7,"168":2,"177":2,"189":4,"193":1,"194":1}}],["keywords",{"2":{"1":2,"4":1,"6":10,"31":1,"116":2,"148":1,"154":1,"156":1,"168":1,"172":2,"173":3,"181":8,"182":1,"183":1,"184":1,"185":1,"187":2}}],["known",{"2":{"66":2}}],["know",{"2":{"6":3,"53":2,"64":1,"66":1,"70":1,"72":1,"73":2,"75":1,"76":1,"154":1,"199":1}}],["kwargs",{"2":{"32":2,"60":3,"66":1,"69":1,"70":3,"71":3,"72":4,"73":5,"75":3,"76":5,"166":2,"174":1,"177":1}}],["kwdef",{"2":{"31":1,"64":1,"162":2,"177":1,"182":1,"183":1,"184":1}}],["kw",{"2":{"1":1,"6":10,"116":10,"148":20,"151":1,"154":18,"155":3,"157":2,"172":3,"181":15,"184":1,"186":3,"187":3,"189":6}}],["json",{"2":{"196":3}}],["jstep",{"2":{"88":3}}],["jstart",{"2":{"88":7}}],["joined",{"2":{"199":4}}],["joins",{"0":{"198":1},"1":{"199":1,"200":1,"201":1},"2":{"198":3}}],["joinpath",{"2":{"181":2}}],["join",{"2":{"154":1,"155":1,"198":4,"199":5,"201":1}}],["joining",{"2":{"6":2,"181":1,"198":1}}],["jpn",{"2":{"200":2}}],["jp",{"2":{"88":2}}],["jhole",{"2":{"88":2}}],["jh",{"2":{"76":5}}],["j+1",{"2":{"64":1,"148":1,"185":1}}],["j",{"2":{"64":24,"88":8,"105":9,"116":12,"146":2,"148":8,"185":2}}],["jet",{"2":{"58":1}}],["just",{"2":{"4":1,"6":1,"32":1,"63":1,"64":2,"73":4,"76":1,"81":1,"85":2,"148":1,"152":1,"154":2,"155":1,"161":1,"177":1,"178":1,"198":1}}],["julialand",{"2":{"193":2}}],["julialines",{"2":{"55":1}}],["julialinearsegments",{"2":{"6":1}}],["juliahole",{"2":{"192":1}}],["juliaplot",{"2":{"193":2}}],["juliap1",{"2":{"192":1}}],["juliapoly",{"2":{"193":1}}],["juliapolygon3",{"2":{"193":1}}],["juliapolygon1",{"2":{"192":1}}],["juliapolygonize",{"2":{"6":1}}],["juliapolygon",{"2":{"6":1}}],["juliapoints",{"2":{"199":1}}],["juliapoint",{"2":{"192":1}}],["juliaxoffset",{"2":{"192":3,"194":1}}],["juliax",{"2":{"192":2}}],["juliaxrange",{"2":{"84":1}}],["julia$apply",{"2":{"187":1}}],["julia$threaded",{"2":{"168":1}}],["julia6",{"2":{"181":1}}],["julia```jldoctest",{"2":{"190":1}}],["julia```julia",{"2":{"148":1}}],["julia```",{"2":{"105":1,"163":1}}],["julia1",{"2":{"70":1,"72":1,"73":1,"75":1}}],["julia2",{"2":{"69":1}}],["juliabase",{"2":{"59":1,"85":4,"154":1,"189":1}}],["juliabarycentric",{"2":{"5":3,"6":3}}],["juliafig",{"2":{"192":1,"193":1}}],["juliaflexijoins",{"2":{"201":1}}],["juliaflatten",{"2":{"157":1}}],["juliaflipped",{"2":{"149":1}}],["juliaflip",{"2":{"6":1}}],["juliafalse",{"2":{"146":1}}],["juliafunction",{"2":{"32":1,"35":1,"36":1,"37":1,"38":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"53":2,"59":3,"60":2,"63":1,"64":11,"66":2,"69":1,"71":1,"73":2,"76":1,"82":1,"85":8,"116":6,"123":2,"128":1,"147":1,"155":2,"157":4,"174":1,"177":1,"178":1,"185":2}}],["juliafor",{"2":{"31":1,"154":1,"155":1}}],["juliagi",{"2":{"11":2}}],["juliago",{"2":{"11":1,"52":1,"55":1,"65":1,"87":1,"90":1,"93":1,"103":1,"107":1,"118":1,"121":1,"125":1,"135":1,"198":1}}],["juliageopoly1",{"2":{"194":1}}],["juliageointerface",{"2":{"190":1}}],["juliageometry",{"2":{"82":1}}],["juliageo",{"2":{"6":2,"162":1}}],["juliageodesicsegments",{"2":{"6":1}}],["juliageos",{"2":{"6":1}}],["juliaweighted",{"2":{"6":1}}],["juliawithin",{"2":{"3":1,"6":1}}],["juliaunwrap",{"2":{"157":7}}],["juliaunion",{"2":{"6":1}}],["juliaunionintersectingpolygons",{"2":{"6":1,"167":1}}],["juliausing",{"2":{"6":1,"13":1,"14":1,"58":1,"176":2,"177":1,"180":1,"181":1,"195":1,"198":1}}],["juliascatter",{"2":{"199":1}}],["juliasource",{"2":{"193":2}}],["juliasimplify",{"2":{"6":1,"181":3}}],["juliasigned",{"2":{"4":2,"6":2}}],["juliasegmentize",{"2":{"6":1,"178":1}}],["julias1",{"2":{"6":1}}],["juliavisvalingamwhyatt",{"2":{"6":1}}],["juliaring3",{"2":{"193":1}}],["juliaring1",{"2":{"192":1}}],["juliar",{"2":{"192":2,"193":1,"194":1}}],["juliarebuild",{"2":{"157":1}}],["juliareconstruct",{"2":{"157":1}}],["juliareproject",{"2":{"1":1}}],["juliaradialdistance",{"2":{"6":1}}],["juliamy",{"2":{"201":1}}],["juliamultipoly",{"2":{"181":1}}],["juliamodule",{"2":{"31":1}}],["juliamonotonechainmethod",{"2":{"6":1}}],["juliameanvalue",{"2":{"6":1}}],["juliadf",{"2":{"195":1}}],["juliadestination",{"2":{"193":1}}],["juliadouglaspeucker",{"2":{"6":1}}],["juliadifference",{"2":{"6":1}}],["juliadiffintersectingpolygons",{"2":{"6":1,"167":1}}],["juliadistance",{"2":{"4":1,"6":1}}],["juliadisjoint",{"2":{"3":1,"6":1}}],["juliaexport",{"2":{"51":1,"54":1,"57":1,"61":1,"67":1,"70":1,"72":1,"75":1,"83":1,"86":1,"89":1,"92":1,"102":1,"106":1,"117":1,"120":1,"124":1,"134":1,"144":1,"148":1,"149":1,"155":1,"158":1,"162":1,"165":1,"169":1,"173":1,"175":1,"181":1,"188":1}}],["juliaend",{"2":{"85":1}}],["juliaenforce",{"2":{"6":1}}],["juliaenum",{"2":{"6":2}}],["juliaembed",{"2":{"4":1,"6":1}}],["juliaequals",{"2":{"4":15,"6":15,"64":1}}],["juliaaccuratearithmetic",{"2":{"11":2}}],["juliaabstract",{"2":{"6":3,"166":1,"167":1,"177":1}}],["juliaangles",{"2":{"4":1,"6":1}}],["juliaarea",{"2":{"4":1,"6":1}}],["juliaapplyreduce",{"2":{"1":1,"151":1}}],["juliaapply",{"2":{"1":1,"18":1,"151":1}}],["juliacent",{"2":{"62":1}}],["juliacentroid",{"2":{"4":1,"6":3}}],["juliacut",{"2":{"6":1}}],["juliaclosedring",{"2":{"6":1,"167":1}}],["juliaconst",{"2":{"53":1,"56":1,"59":1,"64":1,"66":2,"85":1,"94":1,"108":1,"122":1,"126":1,"136":1,"156":1}}],["juliaconvex",{"2":{"6":1,"82":1}}],["juliacontains",{"2":{"3":1,"6":1}}],["juliacoverage",{"2":{"6":1}}],["juliacovers",{"2":{"3":1,"6":1}}],["juliacoveredby",{"2":{"3":1,"6":1}}],["juliatraittarget",{"2":{"163":1}}],["juliatransform",{"2":{"1":1,"6":1}}],["juliatrue",{"2":{"88":1,"91":1,"94":1,"104":1,"108":1,"119":1,"122":1,"126":1,"136":1,"146":1}}],["juliatuples",{"2":{"6":1}}],["juliat",{"2":{"6":1}}],["juliatouches",{"2":{"3":1,"6":1}}],["juliaoverlaps",{"2":{"3":8,"6":8,"123":1}}],["juliainnerjoin",{"2":{"200":1}}],["juliaintersection",{"2":{"6":2}}],["juliaintersects",{"2":{"3":1}}],["juliaisconcave",{"2":{"6":1}}],["juliaisclockwise",{"2":{"6":1}}],["juliaimport",{"2":{"1":1,"3":9,"4":1,"6":17,"11":1,"32":1,"52":1,"55":1,"62":1,"65":1,"68":1,"79":1,"80":1,"81":1,"84":1,"87":1,"90":1,"93":1,"103":1,"107":1,"118":1,"121":1,"125":1,"135":1,"151":1,"159":2,"170":2,"176":1,"196":4,"197":1,"199":1,"200":1}}],["julia",{"2":{"3":1,"6":5,"9":1,"15":1,"25":1,"27":1,"31":1,"32":2,"53":4,"56":10,"59":8,"63":19,"64":60,"66":18,"69":10,"70":6,"71":1,"72":5,"73":29,"75":6,"76":4,"77":1,"82":5,"84":1,"85":4,"88":15,"91":1,"95":1,"96":5,"97":1,"98":1,"99":2,"100":1,"101":1,"104":1,"105":3,"109":1,"110":3,"111":1,"112":1,"113":1,"114":1,"115":1,"116":50,"119":1,"123":6,"127":1,"128":3,"129":1,"130":1,"131":1,"132":1,"133":1,"137":1,"138":3,"139":1,"140":1,"141":2,"142":1,"143":1,"146":9,"147":2,"148":40,"154":44,"155":18,"157":11,"160":5,"163":1,"164":1,"166":1,"168":1,"171":3,"172":1,"173":1,"177":1,"178":2,"181":1,"182":2,"183":15,"184":3,"186":1,"187":1,"188":1,"189":4,"190":1,"191":2,"193":2,"196":2,"199":1}}],["julia>",{"2":{"1":5,"6":7,"146":3,"186":7}}],["juliajulia>",{"2":{"1":2,"6":3}}],["jl`",{"2":{"82":1,"173":1,"189":1}}],["jlmethod",{"2":{"6":2}}],["jlobjecttype",{"2":{"6":2}}],["jlbinding",{"2":{"6":2}}],["jldocstring",{"2":{"6":2}}],["jldoctest",{"2":{"6":1}}],["jl",{"0":{"25":1,"31":1},"2":{"1":10,"4":1,"6":15,"10":2,"11":1,"22":2,"25":2,"27":2,"31":42,"32":1,"50":1,"53":1,"56":1,"59":1,"60":3,"63":1,"64":1,"66":1,"69":1,"71":1,"73":1,"74":1,"76":1,"77":3,"82":6,"85":1,"88":1,"91":1,"101":1,"104":1,"105":1,"115":1,"116":1,"119":1,"123":1,"133":1,"143":1,"146":2,"147":1,"148":1,"154":2,"155":1,"156":1,"157":3,"160":1,"162":1,"164":2,"167":1,"168":2,"171":1,"172":1,"173":4,"174":3,"175":1,"177":3,"178":2,"181":2,"185":1,"186":6,"187":2,"189":2,"190":1,"193":1,"198":1}}],["+5000000",{"2":{"193":1}}],["+proj=natearth2",{"2":{"193":2}}],["+=",{"2":{"56":2,"59":11,"63":6,"64":17,"66":10,"69":1,"88":1,"105":1,"116":5,"146":1,"171":2,"183":4,"190":3}}],["+",{"2":{"1":1,"6":1,"13":1,"14":1,"53":4,"56":1,"59":20,"63":10,"64":15,"66":7,"69":1,"73":10,"85":3,"88":2,"105":2,"116":6,"146":6,"148":2,"151":1,"171":3,"178":2,"183":3,"184":2,"185":2,"192":6,"193":1,"194":4}}],["yticklabelsvisible",{"2":{"193":1}}],["york",{"2":{"200":1}}],["yoffset",{"2":{"192":7,"194":2}}],["your",{"0":{"196":1},"2":{"18":1,"60":1,"148":1,"149":1,"174":1,"177":1,"195":1,"196":1,"201":2}}],["you",{"0":{"23":1},"2":{"1":1,"4":1,"5":2,"6":9,"9":1,"11":1,"17":1,"18":5,"23":1,"29":2,"53":1,"56":1,"59":8,"60":1,"63":1,"70":1,"72":1,"75":1,"81":1,"82":1,"149":1,"154":1,"155":1,"159":1,"163":1,"170":1,"174":1,"176":1,"177":1,"186":1,"193":1,"195":2,"196":3,"199":2,"200":3,"201":4}}],["y=y",{"2":{"190":1}}],["yvec",{"2":{"148":4}}],["ybounds",{"2":{"148":4}}],["yhalf",{"2":{"148":2}}],["ylast",{"2":{"85":3}}],["yfirst",{"2":{"85":5}}],["y0",{"2":{"85":5}}],["yw",{"2":{"66":4}}],["ye",{"2":{"66":4}}],["yet",{"0":{"147":1},"2":{"31":1,"59":1,"69":1,"71":1,"73":1,"76":1,"88":1,"147":1,"148":1,"166":2,"200":1}}],["y2",{"2":{"63":2,"66":18,"85":7,"105":10,"116":5,"123":4,"148":5,"178":6,"190":2}}],["y1",{"2":{"63":2,"66":22,"85":7,"105":11,"116":6,"123":5,"148":5,"178":7,"190":2}}],["yind+1",{"2":{"148":1}}],["yind",{"2":{"148":2}}],["yinterior",{"2":{"63":2}}],["yield",{"2":{"73":1,"177":1}}],["yi+yi−1",{"2":{"6":1}}],["ycentroid",{"2":{"63":13}}],["yrange",{"2":{"58":3,"84":3}}],["yautolimits",{"2":{"58":2}}],["yp2",{"2":{"53":4}}],["ys",{"2":{"6":3,"148":30}}],["ymax",{"2":{"6":1,"65":2,"66":48}}],["ymin",{"2":{"6":1,"65":2,"66":49}}],["y",{"2":{"1":2,"4":1,"6":3,"13":9,"14":10,"53":8,"56":2,"58":8,"62":1,"63":10,"64":6,"65":1,"66":8,"71":6,"73":8,"84":2,"85":7,"88":3,"105":21,"116":16,"123":7,"146":10,"149":2,"151":1,"154":1,"172":4,"173":1,"178":2,"185":1,"186":2,"187":2,"190":7,"192":8,"193":2,"194":2,"198":1}}],["75",{"2":{"84":2,"90":1,"107":1,"135":1}}],["78",{"2":{"58":1}}],["749907",{"2":{"197":1}}],["74",{"2":{"58":1}}],["72",{"2":{"58":1}}],["726711609794",{"2":{"15":1}}],["76",{"2":{"58":1}}],["76085",{"2":{"15":1}}],["768946",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["70440582002419",{"2":{"192":1}}],["704405820024185",{"2":{"192":3}}],["704377648755",{"2":{"15":2}}],["700",{"2":{"14":1}}],["700454",{"2":{"6":1,"180":1,"181":1}}],["701141",{"2":{"6":1,"180":1,"181":1}}],["70",{"2":{"6":20,"58":1,"180":20,"181":20,"192":20}}],["738281",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["7",{"2":{"1":5,"6":4,"116":1,"151":1,"154":1,"176":4,"177":4,"186":4,"194":1}}],["65533525026046",{"2":{"192":1}}],["655335250260467",{"2":{"192":3}}],["659942",{"2":{"6":1,"180":1,"181":1}}],["6378137",{"2":{"162":1}}],["6371008",{"2":{"162":1}}],["639343",{"2":{"6":1,"180":1,"181":1}}],["6area",{"2":{"63":2}}],["66",{"2":{"58":1}}],["668869",{"2":{"6":1,"180":1,"181":1}}],["64744840486518",{"2":{"194":3}}],["64",{"2":{"58":1,"176":2,"177":2}}],["646209",{"2":{"6":1,"180":1,"181":1}}],["629",{"2":{"193":1}}],["62",{"2":{"58":1}}],["624923",{"2":{"6":1,"180":1,"181":1}}],["61366192682",{"2":{"15":1}}],["614624",{"2":{"6":1,"180":1,"181":1}}],["605000000000004",{"2":{"176":2}}],["60",{"2":{"58":1,"176":2}}],["60000",{"2":{"15":3}}],["609817",{"2":{"6":1,"180":1,"181":1}}],["603637",{"2":{"6":2,"180":2,"181":2}}],["68",{"2":{"58":1}}],["682601",{"2":{"6":1,"180":1,"181":1}}],["683975",{"2":{"6":1,"180":1,"181":1}}],["69159119078359",{"2":{"194":3}}],["694274",{"2":{"6":1,"180":1,"181":1}}],["697021",{"2":{"6":1,"180":1,"181":1}}],["6",{"2":{"1":12,"3":4,"6":20,"70":3,"75":3,"116":1,"122":4,"151":3,"154":3,"181":1,"186":9,"194":2}}],["5e6",{"2":{"193":2}}],["55715336218991",{"2":{"194":1}}],["557153362189904",{"2":{"194":2}}],["55",{"2":{"192":3}}],["55494217175954",{"2":{"192":4}}],["51695367760999",{"2":{"194":1}}],["516953677609987",{"2":{"194":2}}],["51625e9f63dd625d794d140757f2f4fbde58fea2",{"2":{"6":2}}],["51030066635026",{"2":{"192":4}}],["57",{"2":{"176":4,"177":4}}],["57725",{"2":{"15":2}}],["5x",{"2":{"154":1}}],["563198",{"2":{"73":1}}],["56",{"2":{"58":1}}],["54",{"2":{"58":1,"192":19}}],["50",{"2":{"58":1,"176":4,"177":4,"192":3}}],["500000",{"2":{"193":1}}],["50000",{"2":{"15":1}}],["500",{"2":{"14":1,"193":1}}],["5d",{"2":{"25":1,"27":1,"162":1}}],["52",{"2":{"58":1,"197":1}}],["52521",{"2":{"15":1}}],["52709",{"2":{"15":2}}],["594711",{"2":{"6":1,"180":1,"181":1}}],["590591",{"2":{"6":1,"180":1,"181":1}}],["595397",{"2":{"6":1,"180":1,"181":1}}],["535",{"2":{"176":4}}],["5355",{"2":{"176":2}}],["53333",{"2":{"15":4}}],["53",{"2":{"6":10,"176":2,"190":10}}],["58",{"2":{"58":1}}],["58059",{"2":{"15":2}}],["587158",{"2":{"6":2,"180":2,"181":2}}],["58375366067548",{"2":{"6":2,"72":1,"73":1}}],["584961",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["5",{"2":{"1":29,"3":4,"4":8,"6":82,"13":1,"58":1,"68":5,"69":8,"70":16,"75":18,"84":8,"88":8,"116":1,"122":4,"148":1,"151":2,"154":2,"176":1,"177":1,"186":27,"192":32,"193":25,"201":1}}],["4983491639274692e6",{"2":{"193":2}}],["4986507085647392e6",{"2":{"193":2}}],["497205585568957e6",{"2":{"193":2}}],["4976022389592e6",{"2":{"193":2}}],["4957639801366436e6",{"2":{"193":2}}],["4940253560034204e6",{"2":{"193":2}}],["4946113281484335e6",{"2":{"193":2}}],["491990928929295e6",{"2":{"193":2}}],["4904357734399722e6",{"2":{"193":2}}],["4926709788709967e6",{"2":{"193":2}}],["4962554647802354e6",{"2":{"193":2}}],["499984780817334e6",{"2":{"193":2}}],["4997392479570867e6",{"2":{"193":2}}],["4991939151049731e6",{"2":{"193":2}}],["4994001399837343e6",{"2":{"193":2}}],["4998500087497458e6",{"2":{"193":2}}],["49",{"2":{"148":1}}],["43541888381864",{"2":{"194":3}}],["4326",{"2":{"193":2,"194":3}}],["43787",{"2":{"15":1}}],["439295815226",{"2":{"15":1}}],["434306",{"2":{"6":1,"180":1,"181":1}}],["4896621210021754e6",{"2":{"193":2}}],["489271",{"2":{"6":4,"190":4}}],["4870405593989636e6",{"2":{"193":2}}],["4879072738504685e6",{"2":{"193":2}}],["484003",{"2":{"146":4}}],["482551",{"2":{"146":4}}],["48268",{"2":{"15":1}}],["48",{"2":{"58":1}}],["48001",{"2":{"15":1}}],["45",{"2":{"58":2,"146":12,"192":2}}],["450",{"2":{"13":1}}],["458369",{"2":{"6":2,"180":2,"181":2}}],["42004014766201",{"2":{"192":1}}],["420040147662014",{"2":{"192":3}}],["4219350464667047e",{"2":{"192":4}}],["42",{"2":{"13":1,"14":1,"58":3}}],["426283",{"2":{"6":1,"180":1,"181":1}}],["400",{"2":{"58":3}}],["40000",{"2":{"15":1}}],["40",{"2":{"14":1,"58":3}}],["406224",{"2":{"6":1,"180":1,"181":1}}],["404504",{"2":{"6":1,"180":1,"181":1}}],["41544701408748197",{"2":{"192":1}}],["41",{"2":{"58":1,"194":20}}],["41878",{"2":{"15":1}}],["414248",{"2":{"6":1,"180":1,"181":1}}],["419406",{"2":{"6":1,"180":1,"181":1}}],["4493927459900552",{"2":{"192":1}}],["44121252392",{"2":{"15":1}}],["44",{"2":{"14":1,"58":2}}],["442901",{"2":{"6":1,"180":1,"181":1}}],["446339",{"2":{"6":1,"180":1,"181":1}}],["477985",{"2":{"146":4}}],["47",{"2":{"58":3}}],["473835",{"2":{"6":1,"180":1,"181":1}}],["472117",{"2":{"6":2,"180":2,"181":2}}],["46525251631344455",{"2":{"192":1}}],["465816",{"2":{"6":1,"180":1,"181":1}}],["46",{"2":{"58":3}}],["468107",{"2":{"6":1,"180":1,"181":1}}],["464547",{"2":{"6":6,"190":6}}],["4",{"2":{"1":11,"3":4,"6":12,"9":2,"13":2,"14":1,"52":1,"66":1,"91":1,"104":1,"108":1,"116":2,"136":1,"146":1,"151":3,"154":3,"176":1,"183":1,"186":8,"193":20,"196":2,"197":1}}],["358421",{"2":{"197":1}}],["3585",{"2":{"176":1}}],["35",{"2":{"58":3}}],["354492",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["38042741557976",{"2":{"192":1}}],["380427415579764",{"2":{"192":3}}],["38",{"2":{"58":3}}],["3655999675063154",{"2":{"192":1}}],["36",{"2":{"58":2}}],["360",{"2":{"53":1}}],["36022",{"2":{"15":1}}],["327284472232776",{"2":{"194":3}}],["32610",{"2":{"193":3}}],["32",{"2":{"58":3}}],["377956",{"2":{"197":1}}],["37",{"2":{"58":5}}],["3497142366876638",{"2":{"192":1}}],["34",{"2":{"58":3}}],["31571636123306385",{"2":{"192":1}}],["31",{"2":{"58":2}}],["30151010318639",{"2":{"192":4}}],["30527612515520186",{"2":{"192":4}}],["300",{"2":{"84":1}}],["30",{"2":{"14":2,"58":3,"192":2}}],["3376428491230612",{"2":{"192":4}}],["3390",{"2":{"116":1}}],["33333333333",{"2":{"15":1}}],["333333333336",{"2":{"15":3}}],["33",{"2":{"6":20,"180":20,"181":20}}],["3d",{"2":{"4":1,"6":1,"59":2,"88":1,"157":1,"175":1}}],["3",{"2":{"1":13,"3":4,"5":1,"6":26,"14":2,"59":13,"62":6,"64":1,"70":6,"75":5,"87":1,"91":1,"104":1,"108":1,"116":2,"121":1,"136":1,"148":7,"151":3,"154":3,"162":2,"170":16,"176":4,"181":3,"183":2,"185":1,"186":11,"193":1,"194":1,"199":1}}],["39945867303846",{"2":{"194":3}}],["3995734698458635",{"2":{"192":1}}],["399918",{"2":{"6":2,"180":2,"181":2}}],["394759",{"2":{"6":1,"180":1,"181":1}}],["392466",{"2":{"6":1,"180":1,"181":1}}],["395332",{"2":{"6":1,"180":1,"181":1}}],["39",{"0":{"30":1},"2":{"0":1,"3":1,"4":5,"6":22,"7":1,"9":2,"17":2,"18":1,"19":1,"23":1,"29":1,"32":1,"53":1,"55":1,"56":1,"57":1,"58":3,"59":2,"62":6,"63":3,"64":28,"66":1,"68":1,"69":1,"71":1,"72":4,"73":1,"76":2,"81":2,"85":4,"88":7,"93":1,"103":2,"110":2,"116":19,"122":1,"125":2,"128":2,"148":3,"149":2,"154":5,"155":4,"163":2,"164":3,"167":6,"169":1,"176":6,"177":1,"179":1,"181":2,"189":6,"191":1,"192":6,"193":6,"194":4,"195":4,"196":5,"198":1,"200":1,"201":2}}],["2pi",{"2":{"192":1,"193":1,"194":1}}],["2nd",{"2":{"73":6}}],["2335447787454",{"2":{"194":1}}],["233544778745394",{"2":{"194":2}}],["23",{"2":{"58":3,"116":1}}],["23699059147",{"2":{"15":1}}],["28",{"2":{"58":2}}],["28083",{"2":{"15":2}}],["2658011835867806",{"2":{"192":1}}],["26745668457025",{"2":{"192":1}}],["267456684570245",{"2":{"192":3}}],["26",{"2":{"58":5,"116":2}}],["24989584635339165",{"2":{"192":1}}],["24279488312757858",{"2":{"192":4}}],["24",{"2":{"58":7,"116":1,"194":9}}],["274364",{"2":{"70":1,"72":1,"75":1}}],["274363",{"2":{"70":1,"72":1,"75":1}}],["27",{"2":{"58":2}}],["275543",{"2":{"6":6,"190":6}}],["2d",{"2":{"25":1,"27":1,"162":4,"175":1}}],["2^",{"2":{"14":1}}],["2158594260436434",{"2":{"192":1}}],["215118",{"2":{"6":4,"190":4}}],["21664550952386064",{"2":{"192":4}}],["21",{"2":{"58":4,"116":2,"194":40}}],["21427",{"2":{"11":5}}],["25",{"2":{"58":3,"90":1,"116":1,"135":1,"194":12}}],["258",{"2":{"11":1}}],["257223563`",{"2":{"177":1}}],["257223563",{"2":{"6":2,"162":1,"177":1}}],["295828190107045",{"2":{"194":1}}],["29582819010705",{"2":{"194":2}}],["299820032397223",{"2":{"192":1}}],["29",{"2":{"58":3,"197":1}}],["29th",{"0":{"8":1},"1":{"9":1,"10":1}}],["298",{"2":{"6":2,"162":1,"177":2}}],["20340",{"2":{"196":1}}],["20682326747054",{"2":{"194":1}}],["206823267470536",{"2":{"194":2}}],["20093817218219",{"2":{"192":1}}],["200938172182195",{"2":{"192":3}}],["2018",{"2":{"116":1}}],["2017",{"2":{"6":1,"59":1}}],["20",{"2":{"58":3,"116":2,"192":60,"194":1}}],["2024",{"0":{"7":1,"8":1},"1":{"9":1,"10":1}}],["20th",{"0":{"7":1}}],["22",{"2":{"58":3,"116":1}}],["22168",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["224758",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["2",{"2":{"1":19,"3":9,"5":1,"6":48,"13":1,"14":1,"15":3,"25":2,"27":2,"32":1,"53":3,"56":1,"58":6,"59":32,"62":2,"63":4,"64":10,"65":6,"66":7,"68":1,"69":2,"73":2,"75":1,"79":1,"80":1,"81":3,"82":1,"84":1,"85":3,"88":4,"91":2,"104":2,"105":2,"107":2,"108":3,"116":11,"136":2,"146":2,"148":23,"151":2,"154":4,"155":1,"162":2,"171":1,"178":1,"181":5,"183":7,"184":7,"185":5,"186":18,"190":11,"192":7,"193":6,"194":10,"195":1,"197":1}}],["1st",{"2":{"73":6}}],["198232937815632",{"2":{"194":1}}],["19823293781563178",{"2":{"194":2}}],["1999466709331708",{"2":{"192":1}}],["1998",{"2":{"70":1,"72":1,"75":1}}],["19",{"2":{"58":2,"116":2}}],["11591614996189725",{"2":{"192":1}}],["11966707868197",{"2":{"192":1}}],["119667078681967",{"2":{"192":3}}],["110m",{"2":{"193":2}}],["110",{"2":{"80":1,"193":1}}],["11",{"2":{"15":2,"58":2,"116":1}}],["1145",{"2":{"70":1,"72":1,"75":1}}],["114",{"2":{"7":1}}],["16589608273778408",{"2":{"192":1}}],["165644",{"2":{"146":2}}],["16692537029320365",{"2":{"192":4}}],["166644",{"2":{"146":2}}],["163434",{"2":{"146":2}}],["169356",{"2":{"146":2}}],["164434",{"2":{"146":2}}],["16111",{"2":{"15":1}}],["16",{"2":{"13":1,"14":1,"58":2,"116":2}}],["180",{"2":{"53":1,"146":1,"162":2}}],["18593721105",{"2":{"15":1}}],["18",{"2":{"13":1,"14":1,"58":3,"116":2}}],["13309630561615",{"2":{"194":3}}],["13401805979",{"2":{"15":2}}],["13",{"2":{"6":3,"58":1,"70":1,"75":2,"116":1}}],["10n",{"2":{"193":1}}],["10832215707812454",{"2":{"192":4}}],["10^9",{"2":{"13":1}}],["1000000",{"2":{"193":1}}],["1000",{"2":{"13":2,"176":2,"193":1,"199":2}}],["100",{"2":{"6":2,"14":3,"79":1,"81":1,"148":2,"197":1}}],["10",{"2":{"6":12,"11":1,"55":1,"58":5,"68":4,"69":10,"70":2,"72":1,"75":2,"87":2,"116":3,"121":2,"177":1,"181":4,"192":1}}],["14182952335953",{"2":{"194":1}}],["14182952335952814",{"2":{"194":2}}],["14404531208901e",{"2":{"194":2}}],["1499775010124783",{"2":{"192":1}}],["1464721641710074",{"2":{"192":4}}],["14",{"2":{"3":1,"6":5,"58":2,"72":2,"73":2,"116":1,"118":1,"119":1,"176":2,"177":2}}],["15488729606723",{"2":{"194":3}}],["15",{"2":{"3":1,"6":4,"58":1,"68":1,"69":1,"72":1,"73":1,"116":1,"118":1,"119":1}}],["17893116483784577",{"2":{"194":2}}],["17289902010158",{"2":{"192":1}}],["172899020101585",{"2":{"192":3}}],["170356",{"2":{"146":2}}],["17",{"2":{"3":1,"6":3,"58":3,"72":1,"73":1,"116":2,"118":1,"119":1}}],["125",{"2":{"6":2,"72":1,"73":1}}],["127",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1,"193":1}}],["123",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["12636633117296836",{"2":{"194":2}}],["126",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["12",{"2":{"3":1,"6":3,"58":2,"72":1,"73":1,"116":1,"118":1,"119":1,"200":1}}],["124",{"2":{"3":1,"6":3,"72":1,"73":1,"118":1,"119":1}}],["1",{"2":{"1":8,"3":38,"6":59,"13":1,"14":4,"15":1,"52":4,"53":15,"55":7,"57":2,"58":11,"59":16,"62":4,"63":7,"64":72,"65":9,"66":15,"68":1,"69":10,"71":3,"73":9,"75":4,"76":11,"81":6,"84":7,"85":6,"88":16,"90":2,"91":6,"93":2,"94":2,"103":2,"104":8,"105":12,"107":2,"108":5,"116":38,"122":6,"125":4,"126":5,"128":1,"135":2,"136":6,"146":16,"148":27,"151":2,"154":6,"155":3,"157":1,"159":12,"160":2,"171":9,"177":1,"178":4,"181":8,"183":15,"184":3,"185":15,"186":6,"190":9,"192":8,"193":44,"194":12,"195":1,"199":8,"200":3}}],["nselected",{"2":{"185":3}}],["nmax",{"2":{"185":2}}],["nice",{"2":{"183":1}}],["n+1",{"2":{"159":1}}],["nfeature",{"2":{"154":1,"155":1}}],["nkeys",{"2":{"148":8}}],["nc",{"2":{"116":13}}],["ncoord",{"2":{"88":2}}],["nl",{"2":{"116":11}}],["nhole",{"2":{"64":2,"70":2,"72":2,"75":2,"76":1,"88":2}}],["nbpts",{"2":{"64":2}}],["ngeom",{"2":{"63":1,"154":2,"155":1,"190":1}}],["nt",{"2":{"189":2}}],["ntasks",{"2":{"154":3,"155":3}}],["nthreads",{"2":{"154":2,"155":2}}],["nthe",{"2":{"60":1,"174":1,"177":1}}],["ntuple",{"2":{"59":3,"178":1}}],["n2",{"2":{"59":8,"88":10}}],["n1",{"2":{"59":8,"88":9}}],["np2",{"2":{"105":4}}],["npolygon",{"2":{"71":1,"88":3,"171":2}}],["npoints",{"2":{"53":6,"64":5,"116":3,"177":6,"183":7}}],["npoint",{"2":{"6":1,"53":2,"55":1,"56":1,"66":2,"81":2,"85":1,"88":6,"105":6,"116":6,"128":1,"146":2,"160":1,"177":3,"178":1,"181":14,"185":1,"190":13}}],["npts",{"2":{"64":6,"183":3}}],["np",{"2":{"56":2,"85":5}}],["null",{"2":{"32":1,"177":1}}],["numeric",{"2":{"11":1}}],["numbers",{"2":{"6":1,"7":1,"57":2,"59":1,"177":1}}],["number=6",{"2":{"6":1,"180":1,"181":1}}],["number",{"2":{"6":11,"59":1,"64":2,"69":1,"77":1,"81":1,"84":1,"88":2,"116":2,"175":1,"176":1,"178":1,"181":2,"182":4,"183":7,"184":4,"185":12}}],["n",{"2":{"6":1,"9":1,"57":2,"59":36,"60":2,"64":51,"69":10,"75":4,"76":4,"116":11,"128":2,"146":6,"148":5,"159":1,"171":25,"174":2,"177":2,"178":3,"181":2,"185":7,"190":32}}],["naive",{"2":{"74":1}}],["napts",{"2":{"64":3}}],["navigate",{"0":{"26":1}}],["natearth2",{"2":{"193":1}}],["natural",{"2":{"181":1,"193":2,"198":1}}],["naturalearth",{"2":{"11":2,"80":2,"181":3,"193":1}}],["nature",{"2":{"148":1}}],["native",{"2":{"6":1,"147":1,"189":4,"196":1}}],["nan",{"2":{"9":1}}],["named",{"2":{"154":1}}],["namedtuple",{"2":{"22":2,"154":2,"189":2}}],["name",{"2":{"6":1,"31":2,"181":1,"189":1,"195":1,"196":2,"200":1}}],["namespaced",{"2":{"154":1}}],["names",{"2":{"6":1,"31":3,"154":3,"155":3,"189":1}}],["nodestatus",{"2":{"148":6}}],["nodes",{"2":{"64":1,"148":4}}],["node",{"2":{"64":26,"148":17}}],["north",{"2":{"66":12,"162":1}}],["nor",{"2":{"60":1,"174":1,"177":1}}],["normalized",{"2":{"59":1}}],["normalize",{"2":{"59":1}}],["norm",{"2":{"6":1,"59":22}}],["now",{"2":{"6":1,"13":1,"25":1,"27":1,"55":1,"58":2,"59":4,"60":1,"64":1,"69":1,"76":1,"77":1,"85":1,"146":1,"148":2,"170":1,"175":1,"176":3,"177":1,"181":1,"192":5,"193":6,"194":2,"195":1,"196":3,"199":2}}],["no",{"2":{"6":6,"53":1,"59":2,"64":4,"70":1,"71":1,"72":1,"73":14,"75":1,"88":2,"94":3,"108":3,"116":2,"126":2,"128":1,"130":1,"131":2,"136":2,"138":1,"139":3,"140":3,"141":1,"147":1,"148":2,"149":1,"154":3,"175":1,"177":2,"178":1,"181":1,"189":1,"196":1}}],["nonzero",{"2":{"178":2}}],["none",{"2":{"6":4,"64":1,"69":1,"70":1,"72":1,"75":1,"76":1,"105":4,"107":1}}],["nondimensional",{"2":{"6":1,"177":1}}],["nonintersecting",{"2":{"6":1,"23":1,"167":1,"171":1}}],["non",{"2":{"3":2,"6":2,"22":1,"57":2,"64":15,"70":2,"71":1,"72":1,"73":4,"75":1,"76":2,"84":1,"123":2,"130":1,"152":1,"164":1}}],["note",{"2":{"4":4,"6":11,"19":1,"29":1,"53":1,"56":2,"59":1,"62":2,"63":2,"64":3,"66":1,"69":2,"71":3,"73":5,"76":3,"82":1,"85":1,"88":5,"116":1,"121":1,"122":1,"162":1,"164":1,"173":1,"178":1,"182":1,"183":2,"184":1,"193":2,"194":1}}],["not",{"0":{"147":1},"2":{"1":2,"3":7,"4":1,"6":15,"18":1,"19":1,"22":1,"24":1,"31":1,"53":4,"56":1,"59":4,"60":1,"62":1,"64":18,"69":1,"72":1,"73":7,"76":3,"81":1,"87":2,"88":4,"90":2,"91":1,"93":2,"94":2,"103":1,"104":2,"108":3,"110":5,"111":3,"112":2,"113":2,"116":5,"121":1,"123":1,"126":1,"135":2,"136":2,"138":1,"146":4,"147":1,"148":2,"151":1,"152":1,"153":1,"154":7,"155":4,"157":3,"159":2,"162":2,"163":1,"164":1,"166":2,"170":3,"172":1,"173":1,"174":1,"175":1,"177":2,"178":1,"188":1,"189":2,"193":1,"194":1,"198":1}}],["nothing`",{"2":{"71":2,"73":2,"76":2}}],["nothing",{"2":{"1":34,"4":1,"6":41,"15":3,"64":4,"69":1,"71":2,"72":1,"73":2,"76":2,"88":1,"116":1,"146":9,"148":3,"151":1,"154":3,"155":2,"157":3,"159":24,"166":1,"170":60,"174":1,"178":1,"181":2,"182":6,"183":6,"184":6,"185":1,"186":32,"190":7,"192":252,"193":16,"194":20}}],["ne",{"2":{"193":2}}],["net",{"2":{"166":2}}],["ness",{"2":{"157":1}}],["nesting",{"2":{"152":2}}],["nestedloopfast",{"2":{"201":1}}],["nested",{"2":{"1":2,"4":1,"6":3,"18":1,"53":1,"151":2,"152":2,"154":2,"155":2,"181":1,"187":1}}],["never",{"2":{"152":1,"182":1}}],["neumann",{"2":{"148":1}}],["neither",{"2":{"76":1}}],["neighborhood",{"2":{"148":2}}],["neighbor",{"2":{"64":27}}],["neighboring",{"2":{"6":6,"64":1,"181":1,"182":1,"183":1,"184":2}}],["nearly",{"2":{"196":1}}],["nearest",{"2":{"64":1,"73":2}}],["neatly",{"2":{"17":1}}],["nedge",{"2":{"64":2,"190":13}}],["nextnode",{"2":{"148":27}}],["nextnodes",{"2":{"148":6}}],["next",{"2":{"63":1,"64":81,"66":3,"69":4,"116":14,"148":3,"171":13,"183":5}}],["necessarily",{"2":{"6":1,"146":1,"172":1}}],["necessary",{"2":{"6":1,"152":1,"181":1}}],["newfeature",{"2":{"157":2}}],["newnodes",{"2":{"148":2}}],["new",{"2":{"6":1,"60":1,"64":58,"66":9,"70":3,"71":1,"76":16,"116":2,"148":4,"153":1,"154":21,"155":1,"166":2,"167":1,"169":1,"171":19,"178":10,"182":1,"183":2,"184":1,"194":1,"195":1,"200":1}}],["negative",{"2":{"4":3,"6":3,"55":2,"56":1,"57":2,"84":2,"85":3}}],["needs",{"2":{"63":1}}],["needing",{"2":{"4":1,"6":1,"17":1,"168":1}}],["need",{"2":{"1":1,"3":1,"4":2,"5":1,"6":5,"32":1,"59":2,"62":1,"64":2,"71":1,"81":1,"88":4,"103":1,"104":1,"116":1,"148":2,"149":1,"154":3,"155":1,"168":1,"185":1,"186":1,"193":1,"194":2,"201":2}}],["needed",{"2":{"1":2,"6":4,"53":1,"59":1,"64":4,"66":1,"70":1,"72":1,"75":1,"85":2,"116":5,"148":1,"154":1,"155":1,"166":1,"173":3,"194":1}}],["bx",{"2":{"146":2}}],["b2y",{"2":{"73":4}}],["b2x",{"2":{"73":4}}],["b2",{"2":{"73":47,"85":3,"123":6}}],["b``",{"2":{"71":1}}],["b`",{"2":{"71":3,"73":4,"76":4}}],["bigger",{"2":{"64":1}}],["bit",{"2":{"25":1,"27":1,"185":8,"192":2}}],["b1y",{"2":{"73":7}}],["b1x",{"2":{"73":7}}],["b1",{"2":{"64":8,"73":63,"123":6}}],["breaks",{"2":{"171":1}}],["break",{"2":{"64":3,"66":1,"71":2,"88":4,"116":11,"123":1,"148":6,"171":2}}],["brevity",{"2":{"59":1}}],["broadcasting",{"2":{"6":1,"59":1}}],["broken",{"2":{"3":1,"6":1,"105":1}}],["building",{"2":{"192":1}}],["build",{"2":{"64":13,"69":1,"70":1,"72":1,"75":1,"176":2,"184":1,"185":1}}],["built",{"2":{"17":1,"20":1}}],["buffers",{"2":{"148":1}}],["buffered",{"2":{"60":2}}],["buffering",{"2":{"59":1,"60":1}}],["buffer",{"0":{"60":1},"2":{"31":2,"60":5,"63":2,"64":1,"147":1}}],["but",{"2":{"1":2,"3":4,"4":3,"6":11,"18":1,"22":1,"25":1,"27":1,"32":1,"53":1,"55":1,"56":1,"66":1,"73":2,"76":2,"81":2,"82":2,"88":4,"93":2,"116":1,"121":1,"122":1,"123":3,"125":1,"126":1,"129":2,"130":1,"135":1,"146":1,"147":1,"148":1,"151":2,"152":1,"154":10,"155":3,"157":5,"162":5,"163":1,"172":1,"173":1,"178":2,"181":1,"189":2,"193":2,"194":2,"196":1,"198":1,"199":1,"200":2}}],["black",{"2":{"68":1,"193":1}}],["blue",{"2":{"14":1,"68":1,"87":2,"90":2,"107":2,"121":2,"135":2,"199":2}}],["bloat",{"2":{"194":1}}],["block",{"2":{"6":2,"192":1}}],["blob",{"2":{"6":2,"181":1}}],["balancing",{"2":{"154":1,"155":1}}],["barrier",{"2":{"154":1}}],["barycentric",{"0":{"5":1,"57":1,"59":1},"1":{"58":1,"59":1},"2":{"0":6,"5":10,"6":17,"9":1,"31":1,"57":9,"58":4,"59":52}}],["basic",{"2":{"148":1}}],["base",{"2":{"31":4,"32":1,"59":15,"60":1,"64":2,"148":6,"154":3,"155":3,"162":2,"163":1,"174":1,"177":2,"189":3}}],["based",{"2":{"4":2,"6":2,"19":1,"53":2,"56":2,"58":2,"63":1,"66":1,"85":2,"88":1,"94":1,"108":1,"116":2,"122":1,"126":1,"136":1,"163":1,"196":1,"198":1,"199":1}}],["badge",{"2":{"6":2}}],["backs",{"2":{"69":4}}],["backwards",{"2":{"64":1,"71":1,"73":1,"76":1}}],["backing",{"2":{"64":1}}],["backend",{"2":{"60":2,"189":1}}],["back",{"2":{"6":1,"18":1,"22":1,"23":1,"69":4,"189":1}}],["b",{"2":{"4":7,"6":11,"35":2,"36":2,"37":2,"38":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"64":206,"66":9,"70":26,"71":18,"72":26,"73":77,"74":3,"75":27,"76":39,"88":29,"116":2,"123":9,"195":1}}],["box",{"2":{"65":2,"66":3,"199":1}}],["bounce",{"2":{"64":8,"70":1,"71":1,"72":1,"73":1,"75":1,"76":1}}],["bouncings",{"2":{"64":1}}],["bouncing",{"2":{"64":13,"71":3,"73":4,"76":4}}],["bound",{"2":{"74":1}}],["bounding",{"2":{"64":1,"65":2,"66":3}}],["boundscheck",{"2":{"59":14}}],["bounds",{"2":{"6":1,"148":4}}],["boundaries",{"2":{"3":2,"6":2,"103":2,"107":1,"108":1,"116":2,"118":1,"119":1,"148":1}}],["boundary",{"2":{"3":7,"6":7,"84":1,"90":1,"91":1,"93":1,"94":3,"97":4,"104":2,"105":9,"108":2,"110":1,"111":6,"112":3,"116":18,"125":2,"126":4,"128":3,"129":5,"130":3,"131":3,"135":1,"136":3}}],["bold",{"2":{"60":1,"174":1,"177":1}}],["both",{"2":{"3":5,"6":6,"64":2,"73":4,"75":1,"76":1,"81":2,"84":1,"88":3,"91":1,"105":4,"108":1,"116":2,"122":1,"130":1,"136":1,"176":1,"178":1}}],["booltype",{"2":{"31":1,"154":2,"155":1,"162":1,"164":5,"178":1}}],["booleans",{"2":{"64":1,"116":2}}],["boolean",{"0":{"39":1},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"24":2,"64":1,"71":1,"73":1,"76":1,"157":1,"164":2,"198":1}}],["boolsastypes",{"0":{"24":1,"164":1},"2":{"31":1,"32":1,"162":1,"164":10,"178":3}}],["bools",{"2":{"10":1}}],["bool",{"2":{"3":16,"4":14,"6":39,"32":1,"64":3,"88":17,"91":1,"94":1,"104":2,"105":13,"108":1,"116":2,"119":1,"122":2,"123":7,"126":2,"136":1,"146":7,"148":6,"164":2,"178":3,"190":5}}],["bypred",{"2":{"201":1}}],["by",{"0":{"98":1,"99":1,"140":1},"2":{"1":3,"3":2,"4":8,"6":29,"7":1,"17":1,"18":2,"19":1,"22":1,"24":1,"25":1,"26":1,"27":1,"52":1,"53":6,"55":1,"56":1,"59":4,"60":1,"62":5,"63":4,"64":14,"65":1,"66":6,"68":1,"69":6,"70":1,"72":1,"73":5,"75":4,"76":3,"82":2,"85":5,"88":8,"91":1,"93":1,"94":1,"98":2,"99":2,"100":1,"101":2,"103":1,"115":2,"116":10,"146":2,"148":4,"154":2,"157":7,"162":7,"167":2,"169":1,"171":3,"172":1,"173":2,"174":1,"175":1,"177":3,"178":1,"179":1,"181":1,"182":1,"183":3,"184":1,"186":1,"192":1,"193":1,"194":1,"196":1,"198":5,"199":1,"200":2,"201":1}}],["berlin",{"2":{"200":1}}],["bearing",{"2":{"146":4}}],["beauty",{"2":{"9":1}}],["better",{"2":{"105":1,"154":1,"155":1,"181":1}}],["between",{"2":{"4":4,"6":18,"23":1,"53":2,"59":13,"64":1,"66":18,"70":1,"71":4,"72":1,"73":11,"75":2,"76":4,"85":8,"88":1,"116":4,"123":4,"148":1,"162":2,"177":3,"178":1,"182":2,"183":2,"184":1,"193":1,"198":2,"199":1}}],["been",{"2":{"71":1,"148":1,"149":2,"155":1,"164":1}}],["because",{"2":{"64":1,"82":1,"149":1,"155":1,"188":1}}],["becomes",{"2":{"162":1}}],["become",{"2":{"22":1}}],["being",{"2":{"53":1,"73":1,"116":1,"122":1,"169":1}}],["behind",{"2":{"25":1,"26":1,"27":1,"58":1,"149":1,"155":1}}],["behaviours",{"2":{"32":1}}],["behaviour",{"2":{"6":1,"18":1,"23":1,"181":1}}],["best",{"2":{"19":1,"154":2,"181":1}}],["benchmarking",{"2":{"177":1,"181":1}}],["benchmarkgroup",{"2":{"177":2,"181":3}}],["benchmark",{"0":{"177":1,"181":1},"2":{"177":1,"181":1}}],["benchmarktools",{"2":{"13":1,"177":1,"181":1}}],["benchmarks",{"2":{"9":2}}],["beginning",{"2":{"66":1,"192":1}}],["begin+1",{"2":{"59":5}}],["begin",{"2":{"9":1,"59":7,"154":1,"155":1,"182":1,"196":1}}],["beware",{"2":{"6":1,"18":1,"178":1}}],["before",{"2":{"6":4,"33":1,"59":1,"70":1,"72":1,"73":1,"75":1,"181":1,"193":1}}],["below",{"2":{"6":2,"17":1,"60":1,"166":1,"183":1,"184":1,"185":1,"196":1}}],["be",{"2":{"1":7,"3":3,"4":11,"5":4,"6":59,"7":1,"9":1,"13":2,"20":3,"23":2,"24":1,"25":3,"26":1,"27":3,"32":1,"53":8,"56":7,"57":2,"58":1,"59":10,"60":2,"62":1,"63":3,"64":14,"65":1,"66":2,"69":1,"70":7,"71":4,"72":7,"73":12,"75":6,"76":5,"82":6,"84":2,"85":4,"88":15,"94":6,"103":2,"104":1,"108":6,"116":21,"122":2,"126":6,"136":6,"138":1,"139":1,"140":1,"141":1,"146":2,"148":1,"151":4,"152":2,"153":2,"154":9,"155":1,"156":1,"157":6,"159":1,"160":1,"162":4,"164":1,"165":1,"166":3,"167":4,"168":1,"169":2,"171":2,"173":3,"174":1,"175":1,"177":8,"178":3,"181":10,"183":1,"185":3,"186":1,"189":2,"192":2,"194":1,"198":4}}],["human",{"2":{"196":1}}],["hull`",{"2":{"82":2}}],["hulls",{"2":{"6":1,"77":1,"82":1}}],["hull",{"0":{"50":1,"77":1,"79":1,"80":1},"1":{"78":1,"79":1,"80":1,"81":1,"82":1},"2":{"0":1,"6":8,"31":2,"50":1,"77":2,"79":4,"80":1,"81":10,"82":15}}],["hypot",{"2":{"178":1}}],["h2",{"2":{"116":6}}],["h1",{"2":{"116":11}}],["hm",{"2":{"58":2}}],["h",{"2":{"53":2,"64":2,"76":8}}],["href=",{"2":{"6":2}}],["https",{"2":{"6":2,"70":1,"72":1,"73":1,"75":1,"82":1,"116":2,"162":1,"183":1}}],["high",{"2":{"196":1}}],["highest",{"2":{"194":1}}],["higher",{"2":{"6":1,"82":1}}],["hit",{"2":{"64":1,"154":1,"155":1,"157":3}}],["hits",{"2":{"18":1}}],["hidedecorations",{"2":{"58":2}}],["hinter",{"2":{"31":3,"60":1,"174":1,"177":1}}],["hint",{"2":{"31":3,"60":1,"177":1}}],["hinge=2",{"2":{"72":1}}],["hinge`",{"2":{"72":1}}],["hinge",{"2":{"6":1,"64":1,"73":13,"116":15}}],["hist",{"2":{"13":1}}],["histogram",{"2":{"13":1}}],["hcat",{"2":{"6":1}}],["heavily",{"2":{"154":1}}],["heatmap",{"2":{"13":5,"14":6,"58":2,"84":2,"148":1}}],["help",{"2":{"162":1,"164":1}}],["helpers",{"0":{"64":1},"2":{"105":1,"123":1}}],["helper",{"0":{"71":1,"73":1,"76":1},"2":{"63":1,"64":1,"69":1}}],["helps",{"2":{"30":1}}],["held",{"2":{"1":1,"151":1,"154":1}}],["here",{"2":{"6":2,"9":1,"13":1,"14":1,"20":1,"59":1,"73":1,"82":2,"105":1,"148":2,"154":2,"157":4,"159":1,"162":1,"177":1,"193":2,"198":5,"199":3}}],["hours",{"2":{"200":1}}],["hood",{"2":{"196":1}}],["hook",{"2":{"6":1,"181":1}}],["home",{"2":{"193":1}}],["horizontal",{"2":{"66":1,"73":1,"148":1,"181":1}}],["hormann",{"0":{"71":1,"73":1,"76":1},"2":{"6":2,"59":2,"64":3,"69":2,"70":1,"72":1,"75":1}}],["how",{"0":{"26":1},"2":{"6":1,"26":2,"55":1,"59":1,"64":1,"73":1,"88":1,"148":2,"157":2,"172":1,"181":1,"193":1,"196":1,"198":2,"199":2,"200":1,"201":1}}],["however",{"2":{"3":1,"6":2,"53":1,"59":1,"63":1,"64":1,"73":1,"81":1,"84":1,"88":1,"90":1,"104":1,"169":1}}],["hole",{"2":{"53":1,"56":3,"58":2,"59":9,"63":4,"64":60,"66":3,"70":6,"72":2,"76":15,"85":3,"97":1,"98":1,"99":1,"116":33,"148":5,"160":2,"192":1}}],["holes=",{"2":{"64":1}}],["holes",{"2":{"4":3,"5":1,"6":4,"9":2,"53":2,"55":1,"59":2,"63":1,"64":19,"69":4,"70":2,"72":2,"75":6,"76":29,"85":3,"88":3,"113":1,"116":11,"138":1,"148":17,"160":2,"192":4}}],["holds",{"2":{"64":1,"163":2,"179":1}}],["holding",{"2":{"6":1,"148":1,"154":2}}],["hold",{"2":{"6":1,"148":1,"164":1,"181":1,"196":1}}],["halign",{"2":{"181":1}}],["half",{"2":{"65":2}}],["hail",{"2":{"160":1}}],["handling",{"0":{"174":1},"2":{"149":1}}],["handler",{"2":{"60":1,"174":1}}],["handle",{"2":{"31":1,"146":1,"152":2,"154":1,"193":1}}],["handled",{"2":{"18":1}}],["hao",{"2":{"116":1}}],["had",{"2":{"70":1,"72":1,"88":1,"164":1,"176":1}}],["happens",{"2":{"64":1}}],["happen",{"2":{"24":1,"154":1}}],["have",{"2":{"3":3,"4":9,"6":15,"19":1,"23":1,"33":1,"53":2,"56":3,"59":6,"60":1,"64":4,"73":1,"82":2,"84":1,"85":2,"88":10,"116":5,"121":1,"123":3,"125":1,"126":1,"147":1,"148":1,"149":2,"153":1,"154":1,"155":2,"157":4,"162":2,"164":1,"181":1,"183":1,"189":1,"192":1,"193":1,"198":1,"199":1,"200":3}}],["haskey",{"2":{"154":1,"189":1}}],["hash",{"2":{"148":1}}],["hasn",{"2":{"148":1}}],["hassle",{"2":{"1":1,"6":1,"186":1}}],["has",{"2":{"1":4,"52":1,"55":2,"59":2,"64":2,"71":2,"73":1,"76":1,"84":1,"85":1,"88":11,"128":1,"146":1,"151":4,"154":6,"158":1,"176":2,"185":1,"193":1}}],["xticklabelsvisible",{"2":{"193":1}}],["xticklabelrotation",{"2":{"13":2}}],["xoffset",{"2":{"192":4,"194":1}}],["x=x",{"2":{"190":1}}],["x`",{"2":{"154":1}}],["xvec",{"2":{"148":4}}],["xbounds",{"2":{"148":4}}],["xhalf",{"2":{"148":2}}],["xlast",{"2":{"85":3}}],["xfirst",{"2":{"85":5}}],["x0",{"2":{"85":5}}],["xn",{"2":{"66":4}}],["xind+1",{"2":{"148":1}}],["xind",{"2":{"148":2}}],["xinterior",{"2":{"63":2}}],["xi−xi−1",{"2":{"6":1}}],["xcentroid",{"2":{"63":13}}],["xrange",{"2":{"58":3,"84":2}}],["xautolimits",{"2":{"58":2}}],["xp2",{"2":{"53":5}}],["x26",{"2":{"53":2,"56":6,"59":1,"60":4,"64":58,"66":36,"70":4,"71":4,"73":24,"76":2,"85":3,"88":14,"100":2,"101":2,"105":48,"114":2,"115":2,"116":170,"123":26,"128":2,"132":2,"133":2,"142":2,"143":2,"146":4,"148":12,"154":2,"166":2,"171":6,"174":2,"177":2,"183":10,"184":2,"190":4,"198":4}}],["x2",{"2":{"6":3,"59":4,"63":2,"66":18,"85":8,"105":10,"116":5,"123":4,"148":5,"178":6,"190":2}}],["x1",{"2":{"6":4,"59":3,"63":2,"66":22,"85":8,"105":11,"116":6,"123":5,"148":5,"178":7,"190":2}}],["xs",{"2":{"6":3,"66":4,"148":30,"190":4}}],["xmax",{"2":{"6":1,"65":2,"66":48}}],["xmin",{"2":{"6":1,"65":2,"66":49}}],["x3c",{"2":{"5":1,"6":28,"31":1,"53":4,"56":2,"59":66,"64":17,"66":11,"69":3,"70":1,"72":1,"73":6,"75":1,"84":1,"85":13,"88":2,"105":33,"116":13,"123":10,"146":1,"148":4,"154":3,"155":2,"157":19,"160":2,"162":3,"163":4,"164":4,"167":3,"171":5,"177":2,"182":2,"183":6,"184":3,"185":9,"201":1}}],["xy`",{"2":{"173":1}}],["xy",{"2":{"1":4,"59":1,"173":3}}],["x",{"2":{"1":4,"4":1,"6":3,"7":1,"9":5,"11":6,"13":11,"14":10,"15":4,"50":2,"53":9,"56":2,"58":8,"62":1,"63":10,"64":21,"65":1,"66":8,"69":6,"71":9,"73":18,"76":9,"84":2,"85":7,"88":3,"105":21,"116":16,"123":7,"146":11,"148":2,"149":2,"151":3,"154":5,"155":4,"157":10,"164":5,"166":2,"168":2,"172":4,"173":1,"178":2,"181":2,"183":2,"185":1,"186":2,"187":2,"190":33,"192":6,"193":2,"194":2,"198":1,"200":2}}],["=>",{"2":{"154":2}}],["=float64",{"2":{"63":3,"72":1,"75":1}}],["=false",{"2":{"53":1}}],["===",{"2":{"105":8,"146":4}}],["==",{"2":{"9":1,"19":1,"32":1,"53":4,"56":2,"59":9,"60":2,"63":1,"64":34,"66":30,"71":1,"73":20,"75":2,"76":1,"80":1,"84":1,"88":16,"116":44,"123":2,"146":3,"148":18,"154":2,"160":1,"166":1,"171":1,"174":1,"177":2,"181":1,"185":3}}],["=",{"2":{"1":5,"3":17,"4":7,"5":2,"6":59,"11":1,"13":19,"14":33,"15":18,"31":4,"32":7,"35":2,"36":2,"37":2,"38":2,"50":3,"52":4,"53":56,"55":6,"56":25,"58":35,"59":110,"60":3,"62":6,"63":36,"64":324,"65":6,"66":96,"68":7,"69":29,"70":21,"71":30,"72":18,"73":143,"75":21,"76":78,"79":6,"80":4,"81":14,"82":4,"84":15,"85":52,"87":7,"88":40,"90":7,"91":3,"93":4,"94":23,"95":3,"96":7,"97":14,"98":14,"99":4,"100":2,"101":2,"103":5,"104":3,"105":57,"107":7,"108":18,"109":3,"110":11,"111":17,"112":9,"113":3,"114":2,"115":2,"116":189,"118":3,"119":3,"121":7,"122":22,"123":44,"125":3,"126":22,"127":3,"128":9,"129":14,"130":10,"131":6,"132":2,"133":2,"135":7,"136":22,"137":3,"138":11,"139":14,"140":14,"141":4,"142":2,"143":2,"146":32,"148":110,"149":1,"151":3,"154":40,"155":20,"156":4,"157":39,"159":2,"160":4,"162":3,"163":6,"164":2,"166":9,"168":1,"170":3,"171":30,"174":2,"176":16,"177":21,"178":25,"179":2,"180":5,"181":60,"182":11,"183":49,"184":7,"185":43,"186":2,"187":1,"189":3,"190":42,"192":45,"193":19,"194":13,"195":3,"196":4,"197":7,"199":12,"200":6,"201":2}}],["utm",{"2":{"193":1}}],["utility",{"0":{"190":1},"2":{"59":1,"154":1,"155":1}}],["utils",{"0":{"185":1},"2":{"31":1}}],["u2",{"2":{"116":4}}],["u1",{"2":{"116":4}}],["update",{"2":{"64":6,"148":10}}],["updated",{"2":{"64":6,"157":3}}],["updates",{"2":{"59":1}}],["up",{"2":{"64":2,"73":1,"116":1,"130":1,"152":1,"170":1,"183":2,"192":2}}],["upper",{"2":{"6":1,"148":1,"199":1}}],["uv",{"2":{"59":1}}],["usage",{"2":{"200":1}}],["usable",{"2":{"161":1}}],["usa",{"0":{"80":1},"2":{"80":4,"181":15,"200":3}}],["us",{"2":{"56":1,"82":1,"193":1,"200":1}}],["usually",{"2":{"26":2,"77":1,"154":1,"157":2,"162":1,"196":1}}],["usual",{"2":{"6":1,"160":1,"167":1}}],["usecases",{"2":{"25":1,"27":1}}],["uses",{"2":{"6":3,"77":1,"82":1,"116":1,"161":1,"162":1,"173":1,"177":1,"178":1,"181":1,"196":1}}],["users",{"2":{"31":1,"149":1,"169":1}}],["user",{"2":{"6":12,"23":1,"63":1,"70":3,"72":3,"75":3,"154":1,"182":1,"183":1,"184":1,"198":1}}],["useful",{"2":{"6":10,"59":1,"148":1,"175":1,"178":1,"181":2,"189":1}}],["used",{"2":{"1":1,"5":1,"6":4,"53":1,"56":1,"57":1,"59":1,"63":2,"64":7,"66":1,"69":1,"73":1,"84":1,"85":1,"88":1,"122":1,"148":2,"151":1,"154":1,"155":1,"157":2,"158":1,"162":1,"163":1,"181":1,"183":2,"188":2,"193":1,"196":1,"198":2,"199":1}}],["use",{"2":{"1":2,"4":1,"5":1,"6":9,"11":1,"20":1,"23":1,"26":1,"59":1,"64":1,"76":1,"82":2,"105":2,"123":1,"147":1,"148":1,"151":1,"154":4,"155":3,"156":1,"160":1,"162":2,"172":1,"176":1,"178":2,"181":1,"183":2,"189":3,"192":1,"196":1,"198":2,"201":2}}],["using",{"0":{"193":1},"2":{"1":4,"4":1,"5":3,"6":11,"11":4,"13":4,"14":1,"15":1,"31":6,"32":1,"50":1,"52":1,"53":1,"55":2,"56":2,"58":4,"59":7,"60":3,"62":2,"63":1,"64":5,"65":2,"66":1,"68":2,"69":1,"71":3,"73":4,"74":1,"76":3,"79":1,"80":2,"81":1,"82":2,"84":2,"85":2,"87":2,"88":1,"90":2,"91":1,"93":2,"94":1,"101":1,"103":2,"104":1,"105":1,"107":2,"108":1,"115":1,"116":1,"118":2,"119":1,"121":2,"123":1,"125":2,"126":1,"133":1,"135":2,"136":1,"143":1,"146":1,"147":1,"148":5,"149":2,"151":1,"152":1,"154":4,"155":2,"156":1,"157":1,"160":1,"164":1,"167":1,"168":2,"171":1,"172":1,"173":1,"174":3,"176":1,"177":5,"178":1,"181":3,"183":1,"185":1,"186":4,"187":2,"189":2,"190":1,"191":4,"192":1,"194":1,"195":2,"197":1,"198":1,"199":4,"200":2}}],["until",{"2":{"148":3,"152":1,"183":1,"189":1}}],["unprocessed",{"2":{"64":1}}],["unknown",{"2":{"64":4,"66":15}}],["unknown=3",{"2":{"64":1}}],["unmatched",{"2":{"64":9,"66":26}}],["understand",{"2":{"188":1}}],["under",{"2":{"56":2,"196":1}}],["undergrad",{"2":{"9":1}}],["undef",{"2":{"53":2,"64":1,"182":1,"183":1,"185":2,"190":2}}],["unwrap",{"0":{"157":1},"2":{"31":2,"157":19}}],["unless",{"2":{"22":1,"64":1,"71":2,"73":2,"76":2,"154":1}}],["unlike",{"2":{"18":1,"188":1}}],["unstable",{"2":{"13":1,"154":1,"164":1}}],["unneeded",{"2":{"6":3,"64":1,"70":2,"72":2,"75":2}}],["unnecessary",{"2":{"6":3,"148":1,"182":1,"183":1,"184":1}}],["universal",{"2":{"193":1}}],["united",{"2":{"181":1}}],["unit",{"2":{"162":1}}],["units",{"2":{"6":2,"178":2}}],["unify",{"2":{"25":1,"27":1}}],["unique",{"2":{"6":2,"73":3,"167":2,"171":2}}],["unioning",{"2":{"76":1}}],["unionintersectingpolygons",{"2":{"0":1,"6":8,"70":1,"71":2,"72":1,"73":2,"75":1,"76":2,"167":2,"169":2,"170":1,"171":4}}],["unions",{"0":{"76":1},"2":{"18":1,"163":1}}],["union",{"0":{"36":1,"75":1},"2":{"0":1,"1":2,"3":2,"4":4,"6":18,"11":3,"23":2,"31":1,"32":1,"36":2,"53":2,"56":1,"59":1,"63":4,"64":7,"66":1,"72":2,"75":18,"76":30,"85":1,"88":8,"96":2,"97":4,"98":1,"100":2,"101":1,"110":2,"111":6,"114":2,"115":1,"123":6,"128":2,"129":4,"130":1,"132":2,"133":1,"138":2,"139":4,"140":1,"142":2,"143":1,"146":1,"148":5,"149":1,"151":2,"152":3,"154":3,"155":3,"163":4,"167":1,"169":1,"171":9,"178":5,"181":2,"182":3,"183":3,"184":3,"190":1}}],["unchanged",{"2":{"1":1,"6":1,"151":1,"154":1,"181":1}}],["gdal",{"2":{"196":1}}],["gml",{"2":{"196":1}}],["gpkg",{"2":{"196":3}}],["gadm",{"2":{"200":4}}],["ga",{"2":{"193":3,"197":2}}],["gaps",{"2":{"148":1}}],["global",{"2":{"193":1}}],["globally",{"2":{"155":1,"162":1}}],["gft",{"2":{"191":1,"193":2}}],["gc",{"2":{"166":6}}],["g",{"2":{"53":3,"56":3,"60":1,"63":3,"66":3,"85":6,"152":1,"154":2,"157":4,"162":1,"181":2,"190":2,"196":1}}],["gb",{"2":{"31":1}}],["guarantee",{"2":{"19":1,"30":1}}],["guaranteed",{"2":{"1":1,"53":1,"151":1,"155":1}}],["grows",{"2":{"162":1}}],["grouped",{"2":{"192":1}}],["groups",{"2":{"6":1,"148":1}}],["grouping",{"2":{"1":1,"151":1,"155":3}}],["grand",{"2":{"200":1}}],["grained",{"2":{"176":1}}],["grahamscanmethod",{"2":{"82":1}}],["graphics",{"2":{"6":1,"59":1}}],["great",{"2":{"192":1,"194":1,"196":1}}],["greater",{"2":{"146":1}}],["greiner",{"0":{"71":1,"73":1,"76":1},"2":{"64":3,"69":2,"70":1,"72":1,"75":1}}],["green",{"2":{"14":1,"193":1}}],["grid",{"2":{"6":1,"58":1,"66":4}}],["g2",{"2":{"3":5,"6":5,"91":4,"94":12,"95":6,"96":9,"97":6,"98":6,"99":3,"100":4,"101":2,"104":3,"105":21,"108":10,"109":6,"110":10,"111":8,"112":4,"113":2,"114":4,"115":2,"123":6,"126":10,"127":6,"128":10,"129":6,"130":5,"131":4,"132":4,"133":2,"136":10,"137":6,"138":9,"139":6,"140":6,"141":3,"142":4,"143":2}}],["g1",{"2":{"3":5,"4":1,"6":6,"91":4,"94":12,"95":6,"96":9,"97":6,"98":6,"99":3,"100":2,"101":4,"104":3,"105":21,"108":9,"109":6,"110":10,"111":8,"112":4,"113":2,"114":2,"115":4,"123":6,"126":10,"127":6,"128":9,"129":6,"130":5,"131":4,"132":2,"133":4,"136":10,"137":6,"138":9,"139":6,"140":6,"141":3,"142":2,"143":4}}],["generic",{"2":{"22":1,"178":1}}],["generation",{"2":{"181":2}}],["generated",{"2":{"31":1,"32":1,"50":1,"53":1,"56":1,"59":1,"60":1,"63":1,"64":1,"66":1,"69":1,"71":1,"73":1,"74":1,"76":1,"82":1,"85":1,"88":1,"91":1,"101":1,"104":1,"105":1,"115":1,"116":1,"119":1,"123":1,"133":1,"143":1,"146":1,"147":1,"148":1,"154":1,"155":1,"156":1,"157":1,"160":1,"164":1,"167":1,"168":1,"171":1,"172":1,"174":1,"178":1,"181":1,"185":1,"186":1,"187":1,"189":1,"190":1,"199":1}}],["generate",{"2":{"7":1,"13":2,"181":1,"199":2}}],["generalization",{"2":{"57":1}}],["generalized",{"2":{"6":1,"57":3,"59":1}}],["generalise",{"2":{"6":4,"181":1}}],["generally",{"2":{"6":2,"162":2,"189":3}}],["general",{"0":{"2":1,"4":1},"1":{"3":1,"4":1},"2":{"18":1,"20":1,"25":1,"27":1,"149":1,"155":1,"174":1}}],["getfeature",{"2":{"154":1,"155":1,"157":3,"190":5}}],["getcolumn",{"2":{"154":2,"155":2,"157":1}}],["getgeom",{"2":{"100":1,"101":1,"114":1,"115":1,"123":2,"132":1,"133":1,"142":1,"143":1,"154":3,"155":2,"157":3,"181":3,"190":6}}],["getring",{"2":{"64":1}}],["getindex",{"2":{"59":2}}],["gethole",{"2":{"53":1,"56":1,"63":1,"64":4,"66":1,"69":1,"70":2,"72":2,"76":6,"85":1,"88":2,"116":5,"160":1,"192":1}}],["getexterior",{"2":{"53":1,"56":1,"59":1,"63":1,"64":3,"66":1,"69":1,"70":2,"72":2,"75":3,"76":6,"85":1,"88":2,"116":5,"146":1,"148":1,"160":1,"192":1}}],["getpolygon",{"2":{"71":3,"73":2,"76":2,"88":3}}],["getpoint",{"2":{"52":1,"53":5,"55":2,"56":1,"59":1,"62":1,"63":6,"64":3,"65":2,"66":3,"68":3,"84":1,"85":6,"87":4,"88":13,"90":4,"93":1,"103":1,"105":7,"107":4,"116":28,"118":2,"121":4,"123":2,"125":2,"128":2,"135":4,"146":5,"160":3,"176":4,"178":2,"185":1,"190":3,"192":2}}],["getproperty",{"2":{"13":2,"14":1}}],["get",{"2":{"6":1,"13":1,"32":1,"55":1,"60":1,"64":9,"70":1,"71":1,"72":1,"73":2,"75":2,"82":2,"148":4,"154":3,"155":1,"174":1,"177":3,"181":1,"182":1,"184":1,"185":2,"189":5,"190":1,"192":2,"200":2}}],["geoparquet",{"2":{"196":4}}],["geopoly1",{"2":{"194":1,"195":1}}],["geopoly2",{"2":{"194":1,"195":1}}],["geoaxis",{"2":{"193":4,"197":1}}],["geographic",{"2":{"162":1,"193":1,"196":1}}],["geographiclib",{"2":{"6":1,"177":1}}],["geointeface",{"2":{"152":1}}],["geointerace",{"2":{"22":1}}],["geointerfacemakie",{"2":{"180":1,"199":1,"200":1}}],["geointerface",{"0":{"30":1},"2":{"1":20,"3":9,"4":2,"6":35,"11":1,"13":1,"14":1,"15":1,"22":3,"25":1,"27":1,"30":1,"31":7,"52":1,"53":1,"55":1,"56":1,"59":23,"62":1,"63":1,"64":1,"65":1,"66":1,"68":1,"69":1,"70":1,"72":1,"73":1,"75":1,"79":1,"80":1,"81":1,"84":1,"85":11,"87":1,"88":2,"90":1,"91":2,"93":1,"94":2,"103":1,"104":2,"105":1,"107":1,"108":3,"118":1,"119":2,"121":1,"122":2,"125":1,"126":2,"135":1,"136":2,"146":5,"148":1,"151":3,"152":3,"154":11,"157":5,"159":9,"166":1,"167":1,"168":1,"170":23,"173":2,"176":1,"177":1,"180":1,"181":2,"186":13,"187":1,"190":1,"191":1,"192":122,"193":5,"194":9,"197":1,"199":1,"200":1}}],["geo",{"2":{"148":1,"177":4,"193":2}}],["geotable",{"2":{"29":1}}],["geojson",{"2":{"11":1,"181":2,"191":1,"193":4,"196":3}}],["geodataframes",{"2":{"196":3}}],["geodesy",{"2":{"162":1}}],["geodesic`",{"2":{"177":2}}],["geodesic",{"0":{"197":1},"2":{"6":7,"31":3,"162":6,"176":6,"177":8,"178":3,"197":1}}],["geodesicsegments",{"2":{"0":1,"6":1,"175":1,"176":3,"177":6,"178":1,"197":1}}],["geod",{"2":{"6":2,"177":3}}],["geoformattypes",{"2":{"1":2,"173":2,"191":1,"193":2,"194":8}}],["geomakie",{"0":{"193":1},"2":{"191":2,"193":5,"197":2}}],["geomtype",{"2":{"154":2,"157":1}}],["geoms",{"2":{"50":3,"82":1,"116":1,"154":12,"157":9}}],["geomfromgeos",{"2":{"32":1,"177":1}}],["geom2",{"2":{"3":8,"4":1,"6":9,"85":6,"88":1,"105":6,"108":1,"119":3,"122":4,"123":2,"126":1,"136":2}}],["geom1",{"2":{"3":8,"4":1,"6":9,"85":6,"88":1,"105":4,"108":1,"119":3,"122":4,"123":2,"126":1,"136":2}}],["geometrical",{"2":{"198":1}}],["geometric",{"2":{"25":2,"27":2,"62":1,"162":1}}],["geometries",{"0":{"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"123":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"192":1,"193":1,"194":1},"2":{"1":6,"3":8,"4":14,"6":55,"18":3,"20":1,"22":3,"25":2,"27":2,"29":4,"52":1,"53":3,"56":4,"63":1,"66":2,"69":1,"70":5,"72":5,"73":4,"75":5,"82":6,"84":1,"85":4,"87":1,"88":7,"91":1,"93":1,"94":1,"105":2,"108":2,"116":1,"118":1,"119":1,"121":2,"122":3,"125":2,"126":2,"136":2,"138":1,"149":1,"151":3,"153":2,"154":6,"155":3,"156":1,"157":10,"168":1,"173":2,"175":3,"176":1,"177":4,"178":1,"179":1,"182":1,"183":1,"184":1,"187":1,"190":1,"191":5,"193":1,"194":2,"195":2,"196":1,"198":5,"199":1,"201":1}}],["geometry=",{"2":{"195":1}}],["geometrybasics",{"2":{"31":3,"58":2,"59":10,"82":1,"84":1,"94":1,"126":1,"136":1}}],["geometrycolumns",{"2":{"154":5,"155":2,"157":1}}],["geometrycollections",{"2":{"198":1}}],["geometrycollectiontrait",{"2":{"23":1,"32":1,"100":1,"101":1,"114":1,"115":1,"132":1,"133":1,"142":1,"143":1}}],["geometrycollection",{"2":{"6":1,"23":1,"200":1}}],["geometrycorrections",{"2":{"166":1}}],["geometrycorrection",{"2":{"0":1,"6":11,"160":2,"165":2,"166":13,"167":11,"171":4}}],["geometry",{"0":{"2":1,"72":1,"100":2,"101":2,"114":2,"115":2,"132":2,"133":2,"142":2,"143":2,"165":1,"173":1,"179":1,"191":1,"195":1},"1":{"3":1,"4":1,"166":1,"167":1,"174":1,"180":1,"181":1,"192":1,"193":1,"194":1,"195":1,"196":1},"2":{"1":10,"3":24,"4":12,"6":67,"9":1,"11":2,"18":4,"20":1,"23":3,"29":1,"31":1,"53":7,"56":4,"60":4,"63":3,"65":1,"66":4,"69":4,"80":1,"84":4,"85":6,"88":8,"90":5,"91":2,"93":4,"94":5,"95":4,"96":1,"100":3,"101":4,"103":4,"104":4,"105":3,"107":2,"108":5,"109":4,"110":2,"111":2,"114":3,"115":4,"116":2,"118":2,"122":3,"123":4,"125":3,"126":4,"127":4,"128":2,"132":3,"133":4,"135":4,"136":5,"137":4,"142":3,"143":4,"145":1,"149":4,"151":3,"152":2,"154":28,"155":12,"157":10,"159":1,"160":1,"162":5,"165":2,"166":23,"167":6,"168":1,"172":1,"173":6,"175":3,"176":1,"177":5,"178":10,"181":6,"190":6,"192":1,"193":1,"194":4,"195":2,"196":2,"198":1,"199":7,"200":4,"201":2}}],["geometryopsprojext",{"2":{"173":1,"174":1,"177":1,"178":1}}],["geometryopslibgeosext",{"2":{"60":1}}],["geometryopscore",{"2":{"0":2,"1":2,"31":2,"151":2,"157":4}}],["geometryops",{"0":{"0":1,"25":1,"31":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":104,"1":4,"3":18,"4":9,"5":3,"6":105,"7":2,"11":1,"13":1,"14":1,"15":1,"17":2,"25":1,"26":4,"27":1,"31":1,"32":2,"52":1,"55":1,"58":5,"60":1,"62":1,"65":1,"68":1,"69":1,"70":1,"72":1,"73":1,"75":1,"77":1,"79":1,"80":1,"81":3,"84":1,"87":1,"88":1,"90":1,"91":2,"93":1,"94":2,"103":1,"104":2,"105":2,"107":1,"108":2,"118":1,"119":1,"121":1,"122":1,"125":1,"126":2,"135":1,"136":2,"146":3,"148":2,"151":1,"154":1,"159":1,"161":2,"162":1,"166":1,"167":4,"170":1,"174":1,"176":1,"177":2,"180":1,"181":2,"186":1,"188":1,"189":2,"190":1,"191":1,"192":3,"197":1,"198":1,"199":2,"200":2}}],["geom",{"2":{"1":7,"4":21,"6":41,"18":3,"31":12,"32":10,"35":5,"36":5,"37":5,"38":5,"40":4,"41":4,"42":4,"43":4,"44":4,"45":4,"46":4,"47":4,"48":4,"49":4,"53":25,"56":17,"63":28,"64":16,"66":6,"69":15,"70":8,"71":2,"72":12,"73":10,"75":9,"76":9,"85":28,"88":45,"94":4,"105":1,"108":4,"116":3,"123":1,"126":4,"136":4,"146":3,"148":1,"149":2,"151":4,"154":34,"155":13,"157":52,"171":11,"172":4,"178":24,"181":36,"185":3,"186":7,"187":4,"190":13,"200":6}}],["geospatial",{"0":{"194":1,"196":1},"2":{"191":5,"193":1,"194":3,"196":5}}],["geoscontext",{"2":{"177":1}}],["geosdensify",{"2":{"32":2,"177":3}}],["geos",{"0":{"189":1},"2":{"0":1,"6":6,"32":8,"33":1,"35":1,"36":1,"37":1,"38":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"60":4,"77":1,"81":4,"82":1,"162":1,"179":5,"181":2,"188":1,"189":12}}],["got",{"2":{"185":3}}],["goes",{"2":{"6":2,"146":2}}],["good",{"2":{"6":1,"59":1,"189":2,"194":1}}],["going",{"2":{"4":4,"6":5,"66":2,"81":1,"88":5,"146":1,"148":1,"191":1}}],["go",{"2":{"1":5,"3":17,"4":2,"6":40,"11":9,"13":1,"14":1,"15":6,"18":1,"31":2,"32":5,"35":1,"36":1,"37":1,"38":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":2,"52":1,"55":1,"59":1,"62":2,"65":1,"68":2,"69":2,"70":2,"72":2,"73":2,"75":2,"79":3,"80":2,"81":8,"82":2,"84":6,"87":1,"88":2,"90":2,"91":2,"93":1,"94":2,"103":2,"104":2,"105":1,"107":1,"108":2,"118":1,"119":2,"121":1,"122":2,"125":1,"126":2,"135":2,"136":2,"146":6,"148":2,"149":1,"151":2,"154":2,"157":2,"159":3,"170":3,"176":7,"177":8,"180":2,"181":49,"186":3,"189":1,"190":2,"191":1,"192":3,"194":1,"196":1,"197":3,"198":9,"199":2,"200":5,"201":1}}],["gtrait",{"2":{"85":2}}],["gt",{"2":{"1":1,"6":1,"9":2,"10":1,"11":5,"64":3,"146":3,"151":1}}],["gif",{"2":{"183":1}}],["gives",{"2":{"200":1}}],["give",{"2":{"116":1,"196":1}}],["given",{"2":{"4":7,"6":21,"18":2,"29":1,"52":1,"53":1,"56":2,"63":3,"64":8,"66":3,"69":5,"70":1,"71":2,"72":1,"73":2,"75":1,"76":2,"85":8,"88":4,"90":1,"91":1,"94":1,"103":1,"104":1,"108":1,"116":7,"118":1,"119":1,"126":1,"128":1,"136":1,"149":1,"155":1,"166":4,"167":1,"170":1,"175":2,"177":2,"178":2,"184":1}}],["github",{"2":{"6":2,"82":1,"162":1}}],["gis",{"2":{"5":1,"6":1,"25":1,"27":1,"59":1}}],["gi",{"2":{"1":13,"3":40,"4":31,"6":106,"11":8,"13":15,"14":15,"15":8,"18":2,"31":1,"32":12,"35":3,"36":3,"37":3,"38":3,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":3,"52":3,"53":30,"55":5,"56":21,"58":1,"62":5,"63":38,"64":34,"65":5,"66":17,"68":6,"69":13,"70":19,"71":16,"72":25,"73":24,"75":17,"76":36,"79":1,"80":1,"81":3,"82":4,"84":8,"85":42,"87":7,"88":99,"90":7,"91":3,"93":3,"94":4,"95":6,"96":12,"97":10,"98":7,"99":4,"100":8,"101":6,"103":3,"104":3,"105":21,"107":7,"108":2,"109":3,"110":12,"111":14,"112":4,"113":2,"114":8,"115":6,"116":59,"118":5,"119":3,"121":7,"122":5,"123":56,"125":5,"126":3,"127":6,"128":15,"129":10,"130":7,"131":4,"132":8,"133":6,"135":7,"136":2,"137":6,"138":12,"139":10,"140":7,"141":4,"142":8,"143":6,"146":32,"148":15,"149":4,"151":9,"154":42,"155":25,"157":54,"159":2,"160":10,"163":9,"166":9,"168":1,"170":3,"171":8,"172":5,"176":6,"177":6,"178":13,"180":2,"181":34,"185":4,"186":9,"187":5,"190":55,"191":1,"192":21,"193":2,"194":2,"197":2,"199":5,"200":2}}],["t8vkb",{"2":{"193":1}}],["ty",{"2":{"148":3}}],["typing",{"2":{"60":1,"174":1,"177":1}}],["typically",{"2":{"57":1,"195":1}}],["typemax",{"2":{"85":1,"148":9}}],["typeof",{"2":{"19":1,"59":3,"154":2,"157":1,"163":1,"178":1,"201":1}}],["type=",{"2":{"6":2}}],["type2",{"2":{"6":2,"88":4}}],["type1",{"2":{"6":2,"88":5}}],["types",{"0":{"161":1,"188":1},"1":{"162":1,"163":1,"164":1,"189":1},"2":{"6":4,"23":1,"24":1,"31":1,"59":3,"66":1,"69":1,"116":3,"161":1,"164":1,"181":1,"188":3,"198":1}}],["type",{"2":{"4":11,"5":1,"6":40,"11":1,"22":2,"23":1,"24":2,"30":2,"53":9,"56":11,"58":1,"59":8,"63":8,"64":21,"66":8,"69":6,"70":7,"71":6,"72":8,"73":19,"75":7,"76":5,"85":28,"88":2,"154":5,"157":42,"162":2,"163":3,"164":6,"165":1,"166":5,"167":2,"172":1,"177":1,"178":1,"181":3,"187":1,"189":1,"190":3,"197":1}}],["tx",{"2":{"148":3}}],["tᵢ",{"2":{"59":1}}],["tutorial",{"2":{"191":1,"198":1}}],["tutorials",{"2":{"26":2}}],["tups",{"2":{"160":4}}],["tuplepoint",{"2":{"31":3,"190":1}}],["tuple",{"0":{"187":1},"2":{"4":1,"6":19,"31":2,"59":2,"63":3,"64":5,"66":3,"69":1,"73":31,"116":17,"146":2,"148":5,"154":2,"159":6,"170":13,"176":1,"181":2,"183":1,"185":2,"190":6,"192":99,"199":2}}],["tuples",{"2":{"0":1,"6":2,"31":1,"60":1,"63":1,"64":1,"69":1,"70":3,"71":1,"72":2,"73":1,"75":4,"76":5,"82":2,"160":2,"171":2,"181":2,"187":2,"200":2}}],["turf",{"2":{"146":1}}],["turned",{"2":{"148":1,"154":1}}],["turning",{"2":{"148":8}}],["turn",{"2":{"6":1,"148":1}}],["temporary",{"2":{"64":1}}],["term",{"2":{"56":1}}],["terms",{"2":{"6":1,"59":1}}],["teach",{"2":{"26":1}}],["technically",{"2":{"23":1,"158":1}}],["technique",{"2":{"11":1}}],["tell",{"2":{"18":1,"116":1,"164":1,"201":1}}],["test",{"2":{"64":1,"181":2,"189":1}}],["testing",{"0":{"15":1}}],["tests",{"2":{"9":2}}],["text=",{"2":{"6":2}}],["t2",{"2":{"6":5,"59":47,"95":1,"105":2,"123":1,"127":1,"137":1}}],["t1",{"2":{"6":6,"59":51,"105":2}}],["t=float64",{"2":{"4":1,"6":3,"63":3}}],["two",{"2":{"3":4,"4":10,"6":22,"23":2,"53":2,"55":1,"59":1,"63":1,"64":6,"66":3,"70":2,"72":1,"73":14,"75":4,"76":3,"85":5,"87":3,"88":12,"90":2,"91":1,"93":1,"103":1,"104":1,"105":1,"107":1,"116":2,"118":2,"119":2,"121":4,"122":2,"123":2,"125":3,"126":1,"135":2,"148":3,"166":2,"167":1,"170":2,"171":2,"176":1,"189":1,"192":1,"198":3,"199":3}}],["task",{"2":{"154":3,"155":3}}],["tasks",{"2":{"154":5,"155":5}}],["taskrange",{"2":{"154":5,"155":5}}],["tags",{"2":{"64":4}}],["taget",{"2":{"6":2}}],["taylor",{"2":{"6":1,"59":1}}],["table2",{"2":{"198":4}}],["table1",{"2":{"198":12}}],["tables",{"2":{"22":4,"31":1,"154":6,"155":5,"157":2}}],["table",{"0":{"195":1},"2":{"6":2,"18":1,"29":2,"154":13,"155":4,"178":1,"181":1,"195":1,"196":1,"198":2}}],["taking",{"2":{"6":3,"63":1,"70":1,"71":1,"72":1,"73":1,"75":1,"76":1,"169":1}}],["takes",{"2":{"64":3,"198":1}}],["taken",{"2":{"20":1,"58":1}}],["take",{"2":{"1":1,"6":2,"29":1,"64":3,"70":1,"71":1,"72":1,"73":1,"76":1,"146":2,"148":2,"149":1,"155":1,"173":1}}],["target=gi",{"2":{"64":1}}],["target=nothing",{"2":{"35":1,"36":1,"37":1,"38":1,"70":1,"72":1,"75":1}}],["targets",{"2":{"23":1,"53":2,"56":3,"66":3,"85":3}}],["target",{"0":{"23":1},"2":{"1":14,"6":11,"15":3,"22":2,"23":2,"32":1,"59":1,"63":2,"64":1,"70":5,"71":11,"72":6,"73":10,"75":4,"76":13,"148":1,"149":1,"151":8,"152":5,"153":1,"154":34,"155":33,"157":87,"163":3,"171":2,"173":3,"181":2}}],["tilted",{"2":{"66":1}}],["tie",{"2":{"53":1}}],["timings",{"2":{"13":5}}],["timing",{"2":{"13":2}}],["times",{"2":{"4":1,"6":1,"168":1}}],["time",{"2":{"1":5,"13":3,"24":1,"58":1,"148":1,"162":1,"173":4,"189":1,"192":1,"193":1,"194":2,"199":1,"200":1}}],["title",{"2":{"13":2,"58":2,"81":2,"148":1,"177":1,"181":2}}],["tip",{"2":{"1":1,"5":1,"6":1,"59":1,"173":1,"198":1}}],["tree",{"2":{"198":1}}],["treating",{"2":{"181":1}}],["treated",{"2":{"116":5,"192":1}}],["treats",{"2":{"56":1,"85":1}}],["trials",{"2":{"177":2,"181":2}}],["triangles",{"2":{"57":1}}],["triangle",{"2":{"6":1,"57":4,"184":4,"199":1}}],["triangulation",{"2":{"6":1,"31":1,"82":1}}],["trivially",{"2":{"149":1}}],["try",{"2":{"74":3,"148":1,"152":1,"154":3,"155":3,"157":3,"200":1}}],["tr",{"2":{"56":3}}],["trues",{"2":{"171":3}}],["true",{"0":{"24":1},"2":{"1":5,"3":24,"4":3,"6":39,"31":1,"53":7,"56":1,"58":2,"60":1,"64":30,"66":6,"69":1,"70":1,"71":2,"72":1,"73":1,"75":2,"76":3,"85":4,"88":21,"90":1,"91":1,"93":2,"94":6,"96":1,"97":1,"98":4,"100":1,"101":1,"103":2,"104":1,"105":9,"107":2,"108":2,"110":1,"111":1,"112":3,"114":1,"115":1,"116":78,"118":3,"119":1,"121":2,"122":12,"123":17,"125":2,"126":6,"129":1,"130":1,"132":1,"133":1,"135":2,"136":7,"138":1,"139":1,"140":4,"142":1,"143":1,"146":4,"148":5,"151":2,"154":6,"155":2,"157":1,"162":1,"164":3,"171":1,"174":1,"177":1,"181":1,"198":1,"201":1}}],["traditional",{"2":{"148":1,"162":1}}],["traverse",{"2":{"64":1}}],["traced",{"2":{"64":1}}],["traces",{"2":{"64":1}}],["trace",{"2":{"64":2,"70":1,"72":1,"75":1}}],["track",{"2":{"64":3,"171":2}}],["tracing",{"2":{"6":1,"64":4,"66":1,"71":5,"73":2,"76":2}}],["transverse",{"2":{"193":1}}],["translate",{"2":{"58":2}}],["translation",{"2":{"1":2,"6":2,"181":2,"186":2,"192":3,"194":1}}],["transformations",{"2":{"31":10}}],["transformation",{"0":{"186":1},"2":{"6":1,"148":1,"154":1,"165":1,"173":1,"191":1}}],["transform",{"2":{"0":2,"1":6,"6":3,"15":2,"31":1,"149":1,"173":2,"181":1,"186":4,"192":4,"194":1}}],["trait`",{"2":{"157":1}}],["trait2",{"2":{"85":10,"88":2,"110":2,"111":2,"123":2,"128":2,"130":2,"131":2}}],["trait1",{"2":{"85":12,"88":2,"110":2,"111":2,"123":2,"128":2,"130":2,"131":2}}],["traits",{"2":{"6":1,"18":1,"122":1,"152":2,"163":3,"166":2,"181":2}}],["trait",{"2":{"1":5,"4":2,"6":4,"18":7,"20":1,"22":1,"31":1,"32":1,"53":2,"56":5,"59":6,"63":7,"66":2,"69":3,"70":2,"71":2,"72":6,"73":4,"75":2,"76":2,"85":7,"88":11,"94":3,"105":2,"108":3,"116":4,"122":4,"126":3,"136":3,"146":1,"149":1,"151":5,"152":3,"154":19,"155":9,"157":27,"163":8,"166":9,"167":1,"178":2,"181":2,"190":7,"192":1}}],["traittarget",{"0":{"163":1},"2":{"1":2,"31":2,"32":1,"53":1,"56":1,"63":1,"66":1,"70":2,"71":4,"72":3,"73":4,"75":2,"76":4,"85":1,"149":1,"151":2,"154":6,"155":6,"162":1,"163":20,"178":1,"181":1}}],["thus",{"2":{"53":1,"56":1,"64":3,"71":1,"73":1,"76":1}}],["though",{"2":{"20":1,"159":1}}],["those",{"2":{"6":1,"33":1,"53":1,"64":1,"73":1,"96":1,"138":1,"162":1,"178":1}}],["thing",{"0":{"30":1}}],["things",{"2":{"9":1}}],["this",{"0":{"30":1},"2":{"0":1,"1":1,"3":1,"4":6,"5":1,"6":30,"7":1,"18":1,"23":3,"24":2,"25":2,"27":2,"29":1,"31":1,"32":3,"33":1,"50":1,"52":2,"53":6,"55":2,"56":9,"58":3,"59":11,"60":2,"62":1,"63":4,"64":26,"65":1,"66":4,"68":1,"69":5,"71":1,"73":5,"74":1,"75":1,"76":2,"82":5,"84":4,"85":6,"88":4,"90":1,"91":2,"93":3,"94":3,"101":1,"103":1,"104":2,"105":1,"108":3,"115":1,"116":3,"119":2,"121":1,"122":3,"123":1,"126":3,"133":1,"135":1,"136":3,"143":1,"145":1,"146":3,"147":2,"148":8,"149":2,"152":2,"154":15,"155":7,"156":2,"157":2,"158":3,"160":3,"161":1,"162":4,"163":2,"164":4,"165":1,"166":6,"167":7,"168":2,"169":4,"171":3,"172":2,"173":4,"174":3,"175":3,"176":5,"177":5,"178":5,"179":2,"181":3,"185":9,"186":1,"187":1,"188":3,"189":2,"190":1,"191":1,"192":2,"193":4,"194":3,"195":3,"196":1,"198":3,"199":3,"200":3,"201":1}}],["three",{"2":{"26":1,"57":1,"73":1,"162":1,"178":1}}],["thread",{"2":{"154":3,"155":3}}],["threading",{"0":{"154":1},"2":{"154":5,"155":2,"164":1}}],["threads",{"2":{"1":1,"151":1,"154":5,"155":7}}],["threaded=",{"2":{"154":4,"155":5}}],["threaded=true",{"2":{"154":1}}],["threaded=false",{"2":{"56":1,"63":4,"66":2,"85":8,"154":1,"155":1,"168":1,"181":1}}],["threaded==true",{"2":{"1":1,"151":1,"154":1}}],["threaded",{"2":{"1":3,"4":1,"6":5,"24":1,"31":1,"32":2,"53":2,"56":1,"63":3,"66":3,"85":5,"151":2,"154":25,"155":27,"156":1,"164":2,"168":1,"178":13,"181":1}}],["through",{"2":{"6":4,"53":1,"59":1,"64":3,"66":1,"68":1,"69":2,"82":1,"94":1,"116":5,"136":1,"148":1,"152":1,"154":1,"167":2,"171":2,"183":1,"189":1,"192":1}}],["thrown",{"2":{"152":1}}],["throws",{"2":{"6":1,"189":1}}],["throw",{"2":{"4":1,"6":1,"76":1,"88":1,"148":1,"154":1,"155":1,"157":3}}],["than",{"2":{"1":1,"3":1,"6":10,"11":1,"64":2,"96":1,"105":1,"123":1,"138":1,"146":1,"148":2,"151":1,"153":1,"154":1,"161":1,"167":2,"169":1,"170":1,"171":2,"175":1,"177":2,"178":1,"182":1,"189":2}}],["that",{"2":{"1":1,"3":3,"4":8,"6":40,"9":1,"17":1,"18":4,"19":3,"20":1,"22":3,"25":1,"26":1,"27":1,"53":4,"55":2,"56":4,"59":4,"60":2,"62":2,"63":3,"64":17,"65":3,"66":5,"70":4,"71":5,"72":4,"73":14,"75":3,"76":5,"77":1,"81":3,"82":4,"85":2,"87":1,"88":11,"90":4,"91":1,"93":2,"94":1,"104":1,"107":1,"108":1,"116":3,"118":1,"119":1,"121":2,"122":5,"123":5,"125":2,"126":2,"128":2,"135":3,"136":1,"138":3,"146":1,"148":4,"149":1,"151":1,"154":5,"155":1,"156":1,"157":4,"158":3,"159":2,"160":1,"161":2,"162":6,"163":1,"164":3,"165":3,"166":2,"167":4,"169":2,"170":3,"171":4,"173":1,"175":2,"176":2,"177":3,"178":2,"181":2,"183":1,"185":1,"189":1,"193":4,"194":1,"195":2,"196":3,"198":1,"199":2}}],["theta",{"2":{"162":1}}],["theorem",{"2":{"85":1}}],["themselves",{"2":{"59":1}}],["them",{"2":{"25":1,"27":1,"64":1,"147":2,"148":2,"154":3,"157":2,"159":2,"169":1,"170":1,"181":1,"192":1,"194":1,"196":3}}],["thereof",{"2":{"149":1,"155":1}}],["therefore",{"2":{"84":1,"158":1}}],["there",{"2":{"6":2,"22":1,"53":1,"59":2,"60":1,"64":3,"66":1,"69":2,"71":1,"73":6,"74":1,"76":1,"116":1,"123":2,"147":1,"148":3,"149":1,"154":4,"159":1,"162":1,"163":1,"176":1,"185":1,"189":1,"193":2,"196":3}}],["then",{"2":{"6":5,"18":1,"22":1,"29":1,"53":3,"59":2,"64":6,"66":1,"70":1,"72":2,"73":6,"74":2,"75":2,"76":2,"82":1,"116":1,"148":2,"149":1,"152":1,"154":2,"155":3,"169":1,"177":2,"181":1,"193":1,"198":1,"199":1}}],["their",{"2":{"3":1,"4":1,"6":2,"59":1,"62":2,"76":1,"85":2,"113":1,"122":1,"125":1,"129":1,"130":1,"139":3,"140":3,"149":1,"155":1,"159":1,"168":1,"170":1}}],["they",{"2":{"3":3,"4":11,"6":24,"20":2,"22":1,"23":1,"24":1,"57":1,"63":2,"64":8,"66":2,"70":2,"72":1,"73":6,"75":2,"76":3,"81":1,"87":3,"88":16,"94":1,"107":1,"111":2,"112":1,"113":1,"116":2,"118":1,"121":2,"122":2,"123":2,"128":1,"130":1,"131":1,"139":1,"140":1,"148":6,"154":2,"157":2,"158":1,"167":2,"171":2,"176":1,"185":1,"188":1,"199":1}}],["these",{"2":{"1":2,"6":4,"24":1,"53":1,"59":5,"64":3,"76":1,"87":1,"88":1,"90":1,"94":1,"103":1,"105":2,"107":1,"108":1,"118":1,"121":1,"123":1,"125":2,"126":1,"135":1,"136":1,"146":1,"148":3,"151":1,"152":1,"154":2,"173":1,"177":1,"181":2,"189":1,"196":1,"198":1}}],["the",{"0":{"26":1,"29":1,"62":1,"80":1,"81":1},"2":{"1":28,"3":63,"4":112,"5":12,"6":385,"7":5,"9":3,"10":1,"11":3,"17":5,"18":10,"19":2,"20":4,"22":4,"23":5,"24":3,"25":3,"26":4,"27":3,"29":3,"32":3,"52":1,"53":63,"55":12,"56":43,"57":15,"58":12,"59":71,"60":6,"62":6,"63":25,"64":116,"65":7,"66":47,"68":2,"69":7,"70":27,"71":23,"72":27,"73":82,"74":1,"75":29,"76":70,"77":6,"81":11,"82":16,"84":11,"85":81,"87":5,"88":47,"90":9,"91":11,"93":8,"94":25,"97":8,"98":9,"99":3,"100":3,"101":2,"103":4,"104":11,"105":5,"107":2,"108":21,"110":8,"111":6,"112":4,"114":3,"115":2,"116":123,"118":5,"119":6,"121":5,"122":9,"123":16,"125":5,"126":21,"128":6,"129":10,"130":7,"131":3,"132":3,"133":2,"135":7,"136":24,"138":2,"139":9,"140":9,"141":6,"142":2,"143":2,"145":1,"146":8,"147":1,"148":47,"149":9,"151":14,"152":11,"154":69,"155":23,"156":2,"157":19,"158":5,"159":5,"160":4,"161":1,"162":24,"164":5,"165":2,"166":13,"167":10,"168":1,"169":4,"170":8,"171":6,"172":5,"173":14,"174":2,"175":3,"176":5,"177":26,"178":21,"179":3,"181":18,"182":3,"183":6,"184":3,"185":2,"186":3,"187":1,"188":2,"189":21,"192":10,"193":11,"194":10,"195":2,"196":4,"198":10,"199":17,"200":3}}],["t",{"2":{"0":1,"4":28,"6":54,"9":1,"23":1,"31":8,"32":1,"53":32,"56":41,"59":26,"63":38,"64":74,"66":44,"69":18,"70":12,"71":12,"72":12,"73":156,"75":10,"76":20,"85":87,"88":17,"93":1,"111":1,"116":24,"123":1,"125":1,"129":2,"130":1,"148":14,"154":5,"155":4,"157":3,"162":5,"163":14,"164":2,"167":2,"171":2,"177":3,"178":4,"181":1,"187":7,"189":3,"190":10,"192":4,"200":1}}],["tokyo",{"2":{"200":1}}],["toy",{"2":{"198":1}}],["together",{"2":{"73":1,"76":1,"192":1,"199":1}}],["touching",{"0":{"129":1},"2":{"73":1,"76":1}}],["touch",{"0":{"130":1,"131":1,"132":1},"2":{"64":1,"125":1,"128":2,"130":1,"132":1}}],["touches",{"0":{"42":1,"124":1,"125":1,"128":1},"1":{"125":1,"126":1},"2":{"0":2,"3":3,"6":3,"31":1,"42":2,"124":1,"125":3,"126":11,"127":6,"128":11,"129":15,"130":9,"131":8,"132":3,"133":4,"198":1}}],["totally",{"2":{"75":1}}],["total",{"2":{"56":1,"59":2,"64":2,"66":1}}],["towards",{"2":{"25":1,"27":1}}],["topright",{"2":{"181":1}}],["topologypreserve",{"2":{"179":1}}],["topology",{"2":{"179":1}}],["topological",{"2":{"162":2}}],["top",{"2":{"20":1,"26":1,"64":1,"148":1}}],["took",{"2":{"200":1}}],["tools",{"2":{"17":1}}],["too",{"2":{"6":1,"73":1,"175":1,"178":1}}],["tol^2",{"2":{"182":1,"183":1}}],["tolerances",{"2":{"184":1,"185":29}}],["tolerance",{"2":{"182":1,"183":1,"184":1,"185":17}}],["tol",{"2":{"6":12,"177":2,"181":18,"182":7,"183":15,"184":8,"185":18}}],["todo",{"2":{"3":2,"6":2,"32":1,"64":1,"73":1,"82":2,"105":4,"123":1,"148":1,"154":1,"160":1,"164":1,"181":1}}],["to",{"0":{"9":1,"23":1,"26":1,"74":1,"95":1,"109":1,"123":1,"127":1,"137":1},"2":{"0":2,"1":22,"3":1,"4":33,"5":4,"6":125,"7":2,"9":3,"10":2,"11":2,"13":1,"17":2,"18":9,"19":1,"20":2,"22":3,"23":4,"24":2,"25":3,"26":2,"27":3,"29":4,"30":1,"52":1,"53":8,"55":1,"56":4,"57":4,"58":1,"59":26,"60":2,"62":2,"63":5,"64":32,"65":1,"66":12,"68":1,"69":3,"70":8,"71":4,"72":8,"73":27,"75":7,"76":11,"77":1,"79":1,"80":1,"81":4,"82":6,"84":6,"85":32,"87":2,"88":17,"90":1,"91":1,"93":2,"94":7,"103":3,"104":1,"105":2,"107":1,"108":7,"116":21,"118":2,"119":1,"121":3,"122":1,"123":4,"125":1,"126":7,"128":1,"135":1,"136":7,"146":4,"148":16,"149":4,"151":9,"152":6,"153":1,"154":33,"155":11,"156":7,"157":23,"158":2,"159":3,"162":7,"163":2,"164":6,"165":4,"166":8,"167":5,"168":3,"169":3,"170":1,"171":4,"172":1,"173":4,"174":1,"175":3,"176":3,"177":9,"178":7,"179":1,"181":4,"182":1,"183":15,"184":1,"185":2,"186":4,"187":1,"188":2,"189":9,"190":28,"191":4,"192":6,"193":10,"194":6,"195":7,"196":5,"197":1,"198":7,"199":5,"200":2,"201":8}}],["o",{"2":{"155":24}}],["odd",{"2":{"116":1}}],["own",{"2":{"76":1,"149":2}}],["occur",{"2":{"73":1}}],["occurs",{"2":{"73":1}}],["occupied",{"2":{"55":1}}],["old",{"2":{"64":8,"154":3}}],["ourselves",{"2":{"177":1}}],["our",{"2":{"24":1,"177":1,"192":4,"193":3,"199":1}}],["out=3",{"2":{"116":1}}],["out=4",{"2":{"72":1}}],["out`",{"2":{"72":1,"116":1}}],["out",{"2":{"6":3,"64":12,"66":23,"73":6,"76":4,"82":1,"84":5,"94":4,"105":1,"108":3,"116":102,"122":4,"123":2,"126":4,"136":4,"146":1,"154":1,"178":1,"189":2}}],["outside",{"2":{"3":2,"4":1,"6":3,"64":3,"66":1,"71":2,"73":4,"76":3,"84":2,"85":1,"93":1,"104":1,"107":1,"116":12,"123":3,"141":1}}],["outputs",{"2":{"64":1}}],["output",{"2":{"3":8,"4":1,"6":18,"18":1,"23":1,"69":2,"70":1,"72":1,"73":1,"75":1,"76":2,"88":1,"91":1,"94":1,"104":1,"108":1,"119":1,"122":1,"126":1,"136":1,"146":2,"181":1,"185":1,"190":1}}],["outerjoin",{"2":{"198":1}}],["outermost",{"2":{"154":1}}],["outer",{"2":{"1":1,"151":1,"152":1,"154":2,"199":1}}],["omit",{"2":{"6":1,"177":1}}],["obtain",{"2":{"154":1}}],["obtained",{"2":{"23":1}}],["observable",{"2":{"14":2}}],["obs",{"2":{"14":10}}],["obviously",{"2":{"4":1,"6":1,"168":1}}],["objects",{"2":{"1":4,"4":1,"6":10,"151":4,"152":5,"154":4,"155":1,"157":6,"168":1,"175":1,"181":2,"187":1}}],["object",{"2":{"1":4,"4":1,"5":1,"6":5,"20":1,"59":1,"84":1,"116":4,"151":1,"152":5,"154":1,"157":4,"168":1,"173":3,"177":1,"181":1,"187":1}}],["obj",{"2":{"1":4,"4":1,"6":10,"151":2,"154":1,"155":1,"157":13,"168":1,"172":2,"177":3,"181":3,"186":1,"187":1}}],["others",{"2":{"60":1,"171":1}}],["otherwise",{"2":{"4":2,"6":3,"60":1,"64":1,"71":1,"73":1,"85":2,"148":1,"172":1,"174":1,"177":1,"190":1}}],["other",{"0":{"4":1,"6":1,"157":1},"2":{"3":4,"6":10,"53":1,"64":5,"70":1,"72":1,"73":1,"75":2,"76":3,"77":2,"85":2,"88":2,"90":1,"96":1,"116":8,"118":1,"121":1,"122":1,"123":3,"125":2,"126":2,"129":1,"138":1,"148":1,"152":1,"154":1,"157":2,"163":1,"167":2,"169":1,"171":2,"181":2,"183":2,"188":1,"189":1,"193":1,"198":4,"201":1}}],["ogc",{"0":{"3":1}}],["over=3",{"2":{"72":1}}],["over`",{"2":{"72":1}}],["overflow",{"2":{"69":1}}],["overhead",{"2":{"22":1,"154":1,"155":1}}],["overrides",{"0":{"33":1},"1":{"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1},"2":{"33":1}}],["override",{"2":{"6":1,"59":1}}],["overlapping",{"2":{"64":11,"73":4,"76":6}}],["overlap",{"2":{"3":4,"6":4,"9":1,"64":2,"73":8,"76":2,"94":1,"103":1,"116":2,"121":5,"122":1,"123":5,"136":1,"169":1}}],["overlaps",{"0":{"46":1,"120":1,"121":1},"1":{"121":1,"122":1},"2":{"0":9,"3":5,"6":12,"31":1,"46":2,"73":1,"120":1,"121":3,"122":9,"123":43,"148":1,"198":1}}],["over",{"2":{"1":1,"6":2,"55":2,"56":1,"63":3,"64":5,"66":1,"72":1,"73":11,"76":1,"81":1,"94":1,"105":1,"108":1,"116":15,"122":1,"123":2,"126":1,"136":1,"151":1,"154":9,"155":11,"157":3,"192":3}}],["opposed",{"2":{"197":1}}],["opposite",{"2":{"3":5,"6":5,"64":2,"71":1,"73":2,"76":1,"91":2,"94":1,"104":2,"119":2,"136":1}}],["ops",{"2":{"155":1}}],["operable",{"2":{"162":1}}],["operates",{"2":{"154":1,"155":1,"158":1,"169":1}}],["operate",{"2":{"18":1,"29":1,"155":1}}],["operations",{"0":{"23":1,"34":1},"1":{"35":1,"36":1,"37":1,"38":1},"2":{"23":1,"26":1,"73":1,"76":1,"149":1}}],["operation",{"2":{"6":3,"64":1,"149":1,"155":1,"162":1,"167":2,"171":2,"189":2,"198":1}}],["open",{"2":{"64":1,"159":1,"193":1}}],["open>",{"2":{"6":2}}],["optimisation",{"2":{"116":1}}],["optimise",{"2":{"105":1}}],["optimal",{"2":{"6":1,"82":1}}],["options",{"2":{"14":1,"64":1}}],["optional",{"2":{"4":5,"6":6,"53":1,"56":2,"66":1,"85":2}}],["op",{"2":{"1":3,"19":2,"63":1,"151":3,"155":35}}],["on=2",{"2":{"116":1}}],["on`",{"2":{"116":1}}],["once",{"2":{"105":1,"123":1,"148":1}}],["onto",{"2":{"85":1}}],["ones",{"2":{"170":1}}],["oneunit",{"2":{"59":1}}],["one",{"2":{"1":1,"3":8,"6":13,"23":1,"53":4,"56":2,"58":1,"59":1,"63":1,"64":5,"66":3,"70":1,"71":1,"72":1,"73":32,"75":2,"76":2,"77":1,"84":2,"93":1,"100":1,"105":1,"107":1,"116":18,"121":1,"122":1,"123":16,"125":2,"126":2,"129":3,"130":2,"131":2,"132":1,"133":1,"135":1,"136":1,"142":1,"146":1,"148":5,"154":1,"162":2,"170":1,"173":1,"177":1,"185":1,"186":1,"193":1,"198":1}}],["on",{"0":{"193":1},"2":{"1":2,"4":3,"6":9,"9":1,"18":1,"20":1,"23":2,"25":3,"27":3,"29":2,"32":1,"53":5,"56":3,"58":1,"59":2,"63":3,"64":28,"66":8,"69":1,"70":1,"71":5,"72":1,"73":4,"75":1,"76":2,"82":1,"84":1,"85":3,"88":2,"93":1,"94":7,"96":2,"97":3,"98":3,"99":1,"105":4,"108":6,"110":4,"111":1,"112":1,"116":125,"122":5,"123":8,"126":7,"128":2,"136":7,"138":2,"139":1,"140":1,"148":3,"149":1,"151":2,"154":12,"155":4,"157":2,"158":1,"160":1,"162":4,"164":2,"167":1,"169":1,"175":1,"177":1,"178":1,"183":1,"191":1,"193":3,"194":1,"196":1,"197":1,"198":4,"199":1,"200":2,"201":2}}],["only",{"2":{"0":1,"5":1,"6":10,"23":1,"33":2,"56":2,"58":2,"59":1,"60":1,"63":2,"64":4,"66":3,"69":1,"70":1,"72":1,"73":1,"75":1,"82":3,"85":2,"88":3,"121":3,"122":1,"125":1,"148":2,"154":1,"155":2,"162":2,"170":1,"175":1,"176":1,"178":1,"188":1,"189":2,"194":1,"200":1,"201":1}}],["often",{"2":{"193":1}}],["offers",{"2":{"192":1}}],["offer",{"2":{"177":1}}],["offset",{"2":{"53":8,"88":1}}],["off",{"2":{"4":1,"6":1,"64":4,"88":1,"116":6,"155":1}}],["of",{"0":{"80":1},"2":{"1":7,"3":29,"4":66,"5":5,"6":190,"7":2,"9":4,"17":3,"18":5,"19":1,"20":2,"22":1,"23":2,"24":2,"25":1,"26":1,"27":1,"29":3,"32":2,"52":1,"53":38,"55":5,"56":28,"57":9,"58":1,"59":13,"60":1,"62":3,"63":12,"64":84,"65":5,"66":31,"69":5,"70":12,"71":13,"72":10,"73":48,"75":9,"76":20,"77":5,"81":3,"82":3,"84":6,"85":18,"87":2,"88":19,"90":4,"91":5,"93":6,"94":18,"96":1,"97":5,"98":5,"99":1,"100":2,"101":1,"104":5,"105":1,"107":3,"108":14,"110":1,"111":1,"112":1,"114":2,"115":1,"116":85,"118":1,"119":3,"121":1,"122":4,"123":9,"125":2,"126":15,"128":3,"129":7,"130":5,"131":1,"132":2,"133":1,"135":4,"136":18,"138":3,"139":6,"140":6,"141":4,"142":1,"143":1,"145":2,"146":3,"147":2,"148":19,"149":3,"151":6,"152":5,"153":2,"154":21,"155":7,"157":2,"158":1,"159":1,"162":5,"163":2,"167":2,"169":4,"171":4,"172":3,"173":1,"175":2,"176":2,"177":5,"178":6,"181":8,"183":4,"184":2,"185":1,"187":1,"189":4,"190":2,"192":6,"193":4,"194":2,"195":1,"196":4,"198":4,"199":4,"200":2}}],["org",{"2":{"70":1,"72":1,"75":1,"116":2,"183":1}}],["organise",{"2":{"10":1}}],["orange",{"2":{"68":1,"84":1,"87":2,"90":2,"107":2,"121":2,"135":2}}],["oro",{"2":{"11":2}}],["originate",{"2":{"76":1}}],["originals",{"2":{"22":1}}],["original",{"2":{"6":4,"18":1,"22":1,"64":10,"69":5,"70":1,"72":1,"76":4,"152":1,"154":7,"166":1,"172":2,"178":1,"180":4,"181":1}}],["orient",{"0":{"13":1},"1":{"14":1,"15":1},"2":{"13":7,"14":12,"64":15,"73":53}}],["orientation",{"0":{"144":1},"1":{"145":1,"146":1},"2":{"6":2,"10":1,"31":1,"56":1,"64":10,"66":2,"70":1,"72":2,"73":2,"75":1,"116":16,"145":1,"181":1}}],["ordered",{"2":{"55":1}}],["order",{"0":{"81":1},"2":{"1":4,"3":1,"4":2,"6":5,"53":1,"55":1,"56":2,"59":1,"64":4,"73":1,"76":1,"81":4,"82":1,"85":2,"88":3,"91":1,"94":1,"104":1,"119":1,"151":2,"154":1,"155":1,"173":2,"181":1,"198":1}}],["or",{"0":{"24":1},"2":{"1":11,"3":3,"4":10,"6":46,"18":1,"20":1,"22":1,"23":1,"25":1,"27":1,"29":2,"31":1,"32":1,"53":4,"56":1,"59":1,"60":1,"62":2,"63":4,"64":24,"65":1,"69":1,"70":1,"71":3,"72":2,"73":9,"75":1,"76":2,"77":1,"82":1,"84":2,"85":4,"88":3,"90":1,"94":1,"96":2,"97":1,"98":1,"99":1,"100":1,"101":1,"107":2,"110":2,"111":3,"112":2,"113":1,"114":1,"115":1,"116":26,"118":2,"119":1,"121":1,"122":2,"125":1,"126":1,"132":1,"133":1,"136":1,"138":2,"142":1,"143":1,"145":2,"146":3,"148":7,"149":4,"151":7,"153":1,"154":8,"155":3,"156":2,"157":2,"158":1,"160":1,"162":2,"163":3,"164":1,"166":5,"167":2,"173":2,"174":1,"175":2,"177":2,"178":4,"179":1,"181":3,"183":2,"185":2,"187":1,"190":2,"198":1,"200":2}}],["ecosystem",{"2":{"161":1}}],["effects",{"2":{"154":2,"155":1}}],["efficiently",{"2":{"20":1}}],["efficient",{"2":{"6":1,"59":1,"70":2,"72":2,"75":2,"82":1,"160":1}}],["e2",{"2":{"116":4}}],["e1",{"2":{"116":8}}],["euclid",{"2":{"66":2,"85":11,"116":1,"182":1}}],["euclidean",{"2":{"4":1,"6":1,"59":13,"85":6,"162":6,"178":1}}],["everything",{"2":{"181":1}}],["everywhere",{"2":{"162":1}}],["every",{"2":{"64":1,"88":2,"152":1,"189":1}}],["evenly",{"2":{"199":1}}],["eventually",{"2":{"64":1}}],["even",{"2":{"56":2,"66":1,"73":1,"85":1,"88":1,"149":1,"159":1,"169":1}}],["evaluated",{"2":{"198":1}}],["eval",{"2":{"31":2,"154":1,"155":1}}],["epsg",{"2":{"193":5,"194":8}}],["eps",{"2":{"53":2,"73":14}}],["eponymous",{"2":{"6":1,"177":1}}],["est",{"2":{"200":1}}],["essentially",{"2":{"33":1,"163":1}}],["especially",{"2":{"6":1,"18":1,"23":1,"148":1}}],["eg",{"2":{"32":1}}],["etc",{"0":{"157":1},"2":{"20":2,"55":1,"82":1,"163":1,"196":1}}],["e",{"2":{"9":1,"22":1,"60":1,"148":1,"152":1,"154":2,"162":1,"192":2,"193":1,"196":1}}],["ellipsoid",{"2":{"162":2,"197":1}}],["ellipsoidal",{"2":{"6":1,"178":1}}],["eltype",{"2":{"148":4}}],["elements",{"2":{"100":1,"101":1,"114":1,"115":1,"122":1,"132":1,"133":1,"142":1,"143":1}}],["element",{"2":{"6":6,"52":1,"64":4,"69":2,"70":1,"72":1,"73":1,"75":3,"176":1,"193":1}}],["elsewhere",{"2":{"69":1}}],["elseif",{"2":{"64":5,"66":7,"70":1,"72":1,"73":14,"75":2,"76":1,"105":3,"116":10,"146":1,"148":2,"171":1,"183":2,"185":2}}],["else",{"2":{"3":5,"6":5,"53":1,"59":2,"64":19,"66":9,"69":1,"71":2,"73":9,"75":1,"76":9,"105":2,"116":17,"123":7,"148":20,"154":6,"155":2,"157":2,"160":1,"172":1,"174":1,"181":2,"183":4,"185":2,"186":1,"187":1,"189":1}}],["empty",{"2":{"4":2,"6":6,"53":2,"64":2,"70":1,"72":1,"73":2,"75":1,"148":2}}],["embedding",{"0":{"153":1,"168":1}}],["embedded",{"0":{"194":1},"2":{"148":1,"153":3,"191":1,"194":1}}],["embed",{"2":{"0":2,"4":1,"6":1,"153":1,"168":2}}],["errors",{"2":{"31":1,"73":1,"178":1}}],["error",{"0":{"174":1},"2":{"4":1,"6":4,"7":1,"18":1,"31":6,"32":2,"59":1,"60":4,"64":2,"73":2,"74":1,"88":2,"148":1,"152":1,"166":2,"174":3,"177":5,"185":4,"189":3,"190":1}}],["edgekeys",{"2":{"148":3}}],["edge",{"2":{"3":1,"4":3,"6":4,"20":1,"31":1,"56":1,"62":1,"64":25,"66":13,"70":1,"72":1,"73":6,"75":1,"85":4,"88":1,"96":2,"111":2,"112":1,"116":7,"122":1,"123":16,"138":2,"139":1,"140":1,"148":7,"190":2}}],["edges`",{"2":{"73":1}}],["edges",{"2":{"0":1,"4":2,"6":9,"64":12,"66":8,"71":3,"73":10,"76":3,"85":3,"87":2,"88":1,"90":1,"96":1,"97":3,"98":7,"99":3,"107":1,"110":3,"113":1,"116":3,"123":10,"135":1,"138":1,"148":22,"190":29}}],["earlier",{"2":{"192":3}}],["earth",{"2":{"6":3,"25":1,"27":1,"162":3,"177":2,"178":1,"181":1,"193":2,"198":1}}],["easiest",{"2":{"195":1}}],["easier",{"2":{"164":1,"188":1}}],["easily",{"2":{"149":1}}],["east",{"2":{"66":9}}],["easy",{"2":{"1":1,"6":1,"169":1,"186":1}}],["eachindex",{"2":{"53":1,"146":1,"148":3,"154":1,"155":1,"182":1,"185":1}}],["each",{"2":{"3":2,"4":3,"6":6,"9":1,"18":2,"20":1,"53":4,"56":2,"57":4,"59":1,"64":5,"66":1,"73":3,"85":1,"88":2,"94":1,"108":1,"116":6,"121":1,"123":3,"126":1,"136":1,"146":1,"148":1,"154":1,"169":2,"181":1,"195":1,"196":1,"199":2,"200":2,"201":1}}],["equator",{"2":{"162":1}}],["equatorial",{"2":{"6":6,"177":4}}],["equality",{"2":{"64":1,"73":1,"198":1}}],["equal",{"2":{"3":1,"4":16,"6":18,"53":6,"73":1,"84":1,"85":4,"87":3,"88":22,"96":1,"110":1,"116":15,"121":1,"122":1,"128":2,"138":1,"159":1}}],["equals",{"0":{"40":1,"86":1,"87":1},"1":{"87":1,"88":1},"2":{"0":17,"4":3,"6":19,"31":1,"40":2,"53":2,"64":4,"69":2,"73":8,"85":1,"86":1,"87":2,"88":50,"96":1,"110":1,"116":10,"123":5,"128":3,"138":1,"198":1}}],["equivalent",{"2":{"3":1,"4":4,"6":6,"56":1,"64":1,"73":1,"76":1,"88":5,"94":1,"116":1}}],["enable",{"2":{"201":1}}],["enabled",{"2":{"198":1}}],["enabling",{"0":{"201":1}}],["enclosed",{"2":{"116":1}}],["encode",{"2":{"24":1}}],["encompasses",{"2":{"18":1,"116":1}}],["encounters",{"2":{"18":1}}],["en",{"2":{"116":1,"183":1}}],["envelope",{"2":{"73":2}}],["envelopes",{"2":{"73":2}}],["enough",{"2":{"64":1}}],["entirely",{"2":{"116":1}}],["entire",{"2":{"66":1,"116":4}}],["entry",{"2":{"64":11,"71":3,"73":4,"76":3,"148":1}}],["ent",{"2":{"64":19,"69":2}}],["enter",{"2":{"64":4}}],["ensuring",{"2":{"6":1,"175":1,"178":1}}],["ensure",{"2":{"6":3,"59":1,"70":1,"72":1,"75":1,"154":2,"158":2,"165":1}}],["ensures",{"2":{"6":3,"160":1,"167":3,"171":2}}],["enumerate",{"2":{"13":2,"53":1,"64":10,"66":1,"69":1,"71":1,"76":2,"116":1,"148":2,"171":2,"185":1}}],["enum",{"2":{"6":2,"64":3,"72":3,"116":3}}],["endpt",{"2":{"183":3}}],["endpoints",{"2":{"64":3,"66":1,"71":1,"73":6,"76":1,"85":2,"116":11,"123":2,"125":1}}],["endpoint=3",{"2":{"64":1}}],["endpointtype",{"2":{"64":2}}],["endpoint",{"2":{"3":1,"6":2,"64":27,"72":1,"73":16,"85":2,"93":1,"116":3,"123":2,"181":4,"183":4,"192":1}}],["ending",{"2":{"64":1,"66":1}}],["end",{"2":{"1":1,"9":1,"13":4,"14":3,"31":4,"32":4,"35":1,"36":1,"37":1,"38":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"53":18,"56":8,"59":35,"60":3,"63":10,"64":130,"66":43,"69":9,"70":8,"71":12,"72":5,"73":31,"74":1,"75":6,"76":24,"82":3,"85":19,"88":20,"100":2,"101":2,"105":20,"114":2,"115":2,"116":104,"123":21,"128":1,"132":2,"133":2,"138":1,"142":2,"143":2,"146":9,"147":4,"148":44,"149":1,"151":1,"154":27,"155":17,"157":15,"158":1,"160":5,"162":4,"163":1,"164":4,"166":3,"171":18,"172":4,"173":1,"174":2,"177":8,"178":9,"181":7,"182":6,"183":30,"184":3,"185":27,"186":4,"187":4,"189":4,"190":19}}],["enforce",{"2":{"0":1,"6":2,"32":3,"189":3}}],["exits",{"2":{"64":1}}],["exit",{"2":{"64":32,"69":2,"71":3,"73":3,"76":2}}],["existingnodes",{"2":{"148":3}}],["existing",{"2":{"64":3,"75":1,"148":1,"193":2,"195":1}}],["exists",{"2":{"64":1,"66":1,"73":1}}],["exist",{"2":{"6":1,"64":1,"73":3,"189":1}}],["excluding",{"2":{"113":1,"116":1,"138":2}}],["exclude",{"2":{"105":9}}],["exclusively",{"2":{"130":1}}],["exclusive",{"2":{"66":1,"73":2}}],["exc",{"2":{"60":2,"174":2,"177":2}}],["excellent",{"2":{"23":1}}],["except",{"2":{"18":1,"19":1}}],["excess",{"2":{"5":1,"6":1,"59":1}}],["exp10",{"2":{"177":1,"181":2}}],["expressed",{"2":{"57":2}}],["express",{"2":{"57":1}}],["experimental",{"2":{"31":3}}],["expect",{"2":{"1":1,"118":1,"173":1}}],["explain",{"2":{"26":1}}],["explanations",{"2":{"26":3}}],["explicitly",{"2":{"18":1,"24":1,"53":2,"56":1,"59":1,"60":1,"85":2,"88":1,"174":1,"177":1}}],["expose",{"2":{"77":1}}],["exposes",{"2":{"17":1}}],["export",{"2":{"31":1,"57":1,"162":2,"175":1,"194":1,"196":1}}],["exponential",{"2":{"9":1}}],["ext2",{"2":{"116":3}}],["ext1",{"2":{"116":3}}],["ext",{"2":{"58":15,"64":10,"66":2,"69":3,"70":8,"72":8,"73":18,"75":8,"76":14,"105":7,"116":7}}],["extrema",{"2":{"148":1,"190":1}}],["extreem",{"2":{"53":10}}],["extracts",{"2":{"82":1}}],["extract",{"2":{"82":1,"148":1,"154":1,"155":2,"181":1}}],["extra",{"2":{"6":3,"64":1,"75":1,"175":1,"177":2,"178":1}}],["external",{"2":{"56":1,"116":2}}],["exteriors",{"2":{"9":1,"72":2,"75":2,"148":1}}],["exterior",{"2":{"3":4,"4":2,"6":10,"53":1,"55":1,"56":1,"58":1,"59":36,"63":2,"64":4,"70":2,"75":3,"76":14,"85":1,"88":2,"90":1,"91":1,"94":3,"104":1,"108":2,"116":9,"126":2,"135":1,"136":3,"139":3,"140":3,"146":6,"148":6,"160":3,"165":1,"167":1,"168":1,"192":2}}],["extending",{"2":{"123":1}}],["extended",{"2":{"85":1,"162":2}}],["extensions",{"2":{"77":1,"196":1}}],["extension",{"2":{"1":1,"6":1,"59":1,"60":1,"82":1,"93":1,"147":1,"173":3,"174":2,"177":1,"178":1,"179":1,"196":1}}],["extent`",{"2":{"156":1,"168":1}}],["extent=true",{"2":{"168":1}}],["extent=nothing",{"2":{"157":1}}],["extent=",{"2":{"154":4}}],["extent=false",{"2":{"154":1,"181":1}}],["extent=gi",{"2":{"148":3}}],["extents",{"2":{"4":3,"6":3,"31":5,"66":1,"73":3,"116":5,"123":1,"148":3,"154":2,"168":2,"190":2}}],["extent",{"0":{"168":1},"2":{"0":2,"1":4,"4":3,"6":9,"24":1,"31":3,"32":1,"35":2,"36":2,"37":2,"38":2,"50":1,"58":1,"65":1,"66":1,"73":10,"116":4,"123":2,"148":12,"151":2,"153":4,"154":29,"156":3,"157":2,"164":1,"168":2,"181":1,"190":7}}],["exactly",{"2":{"185":1}}],["exactpredicates",{"2":{"7":1,"13":2,"14":2,"31":1}}],["exact",{"2":{"3":5,"6":5,"7":2,"12":1,"13":1,"64":36,"66":6,"69":7,"70":5,"72":5,"73":7,"74":1,"75":5,"76":7,"91":2,"94":3,"96":1,"97":3,"98":3,"99":1,"104":2,"105":1,"108":2,"110":1,"111":3,"112":2,"113":1,"116":24,"119":2,"122":2,"123":7,"126":2,"128":1,"129":3,"130":1,"131":1,"136":3,"138":1,"139":3,"140":3,"141":1,"148":1,"170":1}}],["examples",{"0":{"176":1,"180":1},"2":{"3":8,"4":1,"6":11,"26":2,"88":1,"91":1,"94":1,"104":1,"105":1,"108":1,"122":1,"126":1,"136":1,"146":2,"190":1}}],["example",{"0":{"58":1,"78":1,"159":1,"170":1,"199":1,"200":1},"1":{"79":1},"2":{"1":3,"3":2,"6":11,"11":1,"20":1,"23":2,"52":1,"55":1,"58":1,"62":1,"63":1,"65":1,"68":1,"69":1,"70":1,"72":1,"73":1,"75":1,"84":1,"87":1,"88":1,"90":1,"93":1,"103":1,"105":1,"107":1,"116":1,"118":1,"119":1,"121":1,"125":1,"135":1,"146":1,"148":8,"149":1,"151":2,"154":2,"159":1,"165":1,"169":1,"170":1,"172":1,"180":1,"181":2,"186":1,"189":1,"199":1,"201":1}}],["either",{"2":{"1":2,"3":1,"6":2,"22":1,"25":1,"27":1,"64":9,"70":1,"72":1,"73":2,"75":1,"76":1,"84":1,"94":1,"116":5,"118":1,"125":1,"126":1,"136":1,"148":1,"151":2,"154":3,"166":1,"198":1}}],["lj",{"2":{"148":2}}],["lrs",{"2":{"181":2}}],["lr",{"2":{"148":3,"154":3}}],["lp",{"2":{"116":2}}],["lstart",{"2":{"116":2}}],["ls",{"2":{"116":12}}],["ll",{"2":{"17":1,"58":1,"176":2,"181":1,"193":1,"195":1}}],["l",{"2":{"14":4,"59":6,"105":2,"116":32}}],["lgeos",{"2":{"181":1}}],["lg",{"2":{"13":1,"14":1,"15":2,"32":5,"33":1,"35":3,"36":3,"37":3,"38":3,"40":3,"41":3,"42":3,"43":3,"44":3,"45":3,"46":3,"47":3,"48":3,"49":3,"50":3,"81":4,"177":9,"181":17}}],["l305",{"2":{"6":1}}],["log10",{"2":{"177":2,"181":4}}],["log",{"2":{"176":2}}],["loudly",{"2":{"154":1}}],["location",{"2":{"64":1,"116":6}}],["locally",{"2":{"162":2}}],["local",{"2":{"53":3,"56":1,"64":4,"71":1,"76":1,"148":1}}],["loose",{"2":{"158":1}}],["lookup",{"2":{"148":1,"154":1}}],["looks",{"2":{"62":1}}],["look",{"2":{"55":2,"148":2,"159":1,"176":1}}],["looping",{"2":{"148":1}}],["loop",{"2":{"53":1,"59":2,"63":3,"64":8,"66":1,"73":1,"76":1,"116":5,"148":3,"183":1}}],["lower",{"2":{"6":1,"7":1,"148":1,"199":1}}],["lon",{"2":{"6":2,"176":1,"177":2}}],["longitude",{"2":{"162":3,"193":2}}],["long",{"2":{"6":1,"73":1,"177":1,"200":1}}],["longer",{"2":{"6":3,"175":1,"177":2,"178":1}}],["lots",{"2":{"193":1}}],["lot",{"2":{"6":1,"23":1,"53":1,"56":1,"63":1,"66":1,"85":1,"88":1,"122":1,"149":1,"176":1,"189":2}}],["load",{"2":{"154":1,"155":1,"181":1,"191":2}}],["loading",{"2":{"60":1,"174":1,"177":1}}],["loads",{"2":{"5":1,"6":1,"59":1}}],["loaded",{"2":{"1":1,"60":3,"173":1,"174":2,"177":2}}],["laptop",{"2":{"200":1}}],["land",{"2":{"193":8}}],["lazily",{"2":{"157":2}}],["layers",{"2":{"152":1}}],["label",{"2":{"14":4,"15":2,"79":2,"81":1,"84":1,"148":3,"176":2,"180":2,"181":2}}],["labels",{"2":{"13":2,"148":1}}],["latitude",{"2":{"162":3,"193":2}}],["later",{"2":{"56":1,"81":1,"148":1}}],["lat",{"2":{"6":3,"176":1,"177":3}}],["larger",{"2":{"64":1,"75":1,"185":1}}],["large",{"2":{"6":8,"59":1,"181":2,"196":1,"200":1}}],["lastindex",{"2":{"185":1}}],["last",{"2":{"4":3,"6":3,"9":1,"53":11,"56":2,"58":2,"64":9,"66":4,"85":7,"88":5,"116":20,"128":1,"148":6,"159":1,"171":2,"183":1}}],["lt",{"2":{"6":6,"73":4,"176":1}}],["len",{"2":{"183":7}}],["length",{"2":{"0":1,"5":1,"6":5,"9":1,"18":1,"59":32,"61":1,"62":1,"63":22,"64":11,"66":1,"69":2,"70":2,"72":1,"73":1,"75":1,"76":1,"116":1,"148":16,"154":2,"155":1,"171":2,"176":1,"182":1,"183":1,"184":1,"185":7}}],["legend",{"2":{"181":4}}],["le",{"2":{"116":10}}],["leaving",{"2":{"159":1}}],["leaf",{"2":{"154":1,"157":3}}],["leading",{"2":{"192":1}}],["lead",{"2":{"73":1,"159":1}}],["least",{"2":{"3":4,"6":4,"64":1,"73":1,"76":2,"116":14,"123":6,"126":1,"129":3,"130":2,"131":2,"132":1,"133":1,"136":1,"142":1,"146":1}}],["leftjoin",{"2":{"198":1}}],["leftover",{"2":{"64":1}}],["left=1",{"2":{"64":1}}],["left",{"2":{"59":1,"64":5,"146":1,"148":2,"183":17,"185":5}}],["lets",{"2":{"56":1}}],["let",{"2":{"55":1,"62":1,"116":1,"148":3,"176":1,"192":6,"193":4,"194":3,"195":2,"196":2,"201":1}}],["levels",{"2":{"148":1,"152":1,"163":1}}],["level",{"2":{"6":1,"7":1,"9":1,"18":2,"20":1,"29":1,"152":1,"154":2,"158":1,"160":1,"166":4,"167":1,"169":1,"171":2,"194":2}}],["less",{"2":{"3":1,"6":7,"53":1,"56":1,"59":1,"63":1,"66":1,"85":1,"88":1,"105":1,"122":1,"148":1,"181":1,"182":1}}],["l289",{"2":{"6":1}}],["l2",{"2":{"3":4,"4":4,"6":8,"87":4,"88":12,"90":8,"104":2,"107":5,"121":4,"125":3,"126":2,"135":8}}],["l195",{"2":{"6":1}}],["l177",{"2":{"6":1}}],["l1",{"2":{"3":6,"4":4,"6":10,"87":4,"88":12,"90":8,"93":4,"94":2,"103":4,"104":2,"107":5,"121":4,"125":3,"126":2,"135":8}}],["li",{"2":{"148":2}}],["lie",{"2":{"73":1}}],["lies",{"2":{"64":3,"162":1,"199":1}}],["limitations",{"2":{"73":1}}],["limits",{"2":{"58":1}}],["limited",{"2":{"6":1,"175":1,"178":1}}],["library",{"2":{"69":1,"196":1}}],["libraries",{"2":{"56":1,"169":1,"196":1}}],["libgeos",{"2":{"6":2,"13":1,"14":1,"15":1,"23":1,"32":2,"56":1,"60":5,"81":1,"147":1,"177":7,"181":4,"189":2}}],["little",{"2":{"26":1}}],["literate",{"2":{"26":1,"31":1,"32":1,"50":1,"53":1,"56":1,"59":1,"60":1,"63":1,"64":1,"66":1,"69":1,"71":1,"73":1,"74":1,"76":1,"82":1,"85":1,"88":1,"91":1,"101":1,"104":1,"105":1,"115":1,"116":1,"119":1,"123":1,"133":1,"143":1,"146":1,"147":1,"148":1,"154":1,"155":1,"156":1,"157":1,"160":1,"164":1,"167":1,"168":1,"171":1,"172":1,"174":1,"178":1,"185":1,"186":1,"187":1,"189":1,"190":1}}],["lift",{"2":{"14":2}}],["lin",{"2":{"177":5}}],["linked",{"2":{"77":1}}],["linrange",{"2":{"13":2,"14":5,"58":2,"84":1,"148":2,"177":1,"181":2}}],["linering",{"2":{"193":1}}],["linewidth",{"2":{"55":1,"192":1}}],["linesegment",{"2":{"146":2,"178":1}}],["lines",{"0":{"97":1,"111":1,"129":1,"139":1},"2":{"3":1,"4":4,"6":5,"64":3,"68":1,"73":9,"79":1,"80":2,"81":2,"84":1,"87":4,"88":4,"90":3,"93":1,"94":1,"103":2,"105":1,"107":3,"116":2,"118":3,"121":4,"122":1,"123":1,"125":4,"135":3,"136":1,"148":3,"179":1,"192":4,"197":2}}],["linestrings",{"2":{"4":2,"6":2,"9":1,"88":2,"145":1,"158":1,"192":1}}],["linestringtrait",{"2":{"3":2,"4":4,"6":7,"11":3,"32":1,"53":1,"63":4,"72":2,"85":2,"88":8,"96":1,"97":4,"98":1,"105":6,"110":1,"111":5,"123":6,"128":1,"129":4,"130":1,"138":1,"139":4,"140":1,"152":1,"163":2,"166":2,"167":1,"178":2}}],["linestring",{"2":{"3":5,"4":6,"6":15,"18":1,"20":1,"53":2,"63":2,"85":4,"87":2,"88":2,"90":2,"91":1,"96":1,"97":3,"104":2,"107":2,"108":1,"110":1,"111":4,"116":2,"121":2,"128":1,"129":3,"130":1,"135":2,"136":1,"138":1,"139":4,"140":1,"146":7,"154":2,"155":2,"190":3,"192":5,"197":1}}],["linetrait",{"2":{"3":2,"4":4,"6":6,"53":1,"64":2,"69":2,"72":2,"85":2,"88":8,"96":1,"97":4,"98":1,"110":1,"111":5,"123":8,"128":1,"129":4,"130":1,"138":1,"139":4,"140":1}}],["line2",{"2":{"3":3,"6":7,"72":2,"73":2,"105":5,"118":3,"119":2,"123":7,"146":5}}],["line1",{"2":{"3":4,"6":8,"72":2,"73":2,"105":5,"118":3,"119":2,"123":9,"146":5}}],["linea",{"2":{"1":1,"6":1,"186":1}}],["linearmap",{"2":{"181":1}}],["linearalgebra",{"2":{"31":1}}],["linear",{"2":{"4":7,"6":10,"9":1,"56":2,"59":1,"62":1,"63":3,"66":1,"73":1,"85":5,"88":8,"98":1,"116":2,"129":1,"130":2,"139":1,"145":1,"154":1,"155":1,"160":3,"162":1,"176":5,"177":3,"178":4}}],["linearr",{"2":{"1":1,"6":1,"186":1}}],["linearrings",{"2":{"9":1,"112":1,"148":6,"158":1,"192":1}}],["linearringtrait",{"2":{"4":4,"6":4,"11":3,"32":1,"53":3,"56":2,"63":4,"64":4,"72":2,"85":2,"88":8,"96":1,"97":1,"98":4,"110":1,"111":2,"112":3,"123":2,"128":1,"129":1,"130":4,"138":1,"139":1,"140":4,"163":2,"166":1,"178":2,"181":1}}],["linearring",{"2":{"1":10,"3":2,"4":1,"6":13,"31":1,"53":2,"63":2,"64":2,"75":2,"76":1,"82":1,"85":1,"96":1,"98":3,"110":1,"111":1,"112":2,"116":2,"123":2,"128":1,"129":1,"130":3,"138":1,"140":4,"146":1,"148":3,"151":2,"154":5,"155":2,"158":1,"159":6,"160":1,"170":13,"181":1,"186":8,"192":24,"193":6,"194":8,"199":2}}],["linearsegments",{"2":{"0":1,"6":1,"175":1,"176":1,"177":3,"178":2}}],["line",{"0":{"116":1},"2":{"0":1,"3":13,"4":9,"6":52,"23":1,"52":2,"53":7,"62":3,"63":10,"64":12,"66":8,"68":6,"69":18,"72":8,"73":67,"76":6,"85":11,"88":5,"91":2,"93":2,"94":1,"96":2,"97":11,"98":8,"103":1,"105":11,"108":2,"110":1,"111":9,"112":4,"116":141,"118":2,"119":2,"121":3,"123":17,"125":2,"126":2,"128":1,"129":10,"130":3,"136":2,"138":2,"139":10,"140":7,"146":6,"148":2,"178":1,"181":1,"182":1,"183":4,"184":1,"190":3,"192":3}}],["lineorientation",{"2":{"0":1,"6":2,"72":2}}],["lists",{"2":{"20":1,"64":3,"123":1}}],["listed",{"2":{"6":1,"53":1,"181":1}}],["list",{"2":{"6":16,"9":1,"53":20,"64":233,"69":20,"70":14,"71":8,"72":13,"73":5,"75":13,"76":1,"200":2}}],["likely",{"2":{"152":1}}],["like",{"0":{"74":1},"2":{"1":2,"6":5,"17":1,"18":2,"19":1,"20":1,"23":1,"24":1,"29":1,"56":1,"58":1,"59":1,"62":1,"66":1,"70":1,"72":1,"75":1,"82":1,"84":1,"85":1,"88":1,"149":2,"151":2,"154":1,"155":2,"163":2,"166":2,"167":1,"175":1,"176":1,"193":2}}],["iah",{"2":{"197":2}}],["image",{"2":{"148":1}}],["impossible",{"2":{"69":1,"121":1}}],["important",{"2":{"176":1}}],["import",{"2":{"1":3,"6":4,"13":2,"14":2,"15":1,"31":9,"52":1,"55":1,"60":1,"62":1,"65":1,"69":1,"70":1,"72":1,"73":1,"75":1,"84":1,"87":1,"88":1,"90":1,"91":1,"93":1,"94":1,"103":1,"104":1,"105":1,"107":1,"108":1,"118":1,"119":1,"121":1,"122":1,"125":1,"126":1,"135":1,"136":1,"146":3,"151":1,"154":2,"155":1,"174":1,"177":2,"180":2,"181":3,"186":2,"190":1,"191":5}}],["implements",{"2":{"32":1,"189":1}}],["implementing",{"2":{"6":1,"181":1}}],["implement",{"2":{"6":1,"17":1,"23":1,"53":1,"56":1,"59":1,"63":1,"66":1,"82":1,"85":1,"88":1,"94":1,"108":1,"122":1,"126":1,"136":1,"149":1,"165":1,"166":3,"167":1}}],["implementation",{"0":{"53":1,"56":1,"63":1,"66":1,"69":1,"82":1,"85":1,"88":1,"91":1,"94":1,"104":1,"108":1,"119":1,"122":1,"126":1,"136":1,"160":1,"171":1,"178":1},"2":{"6":1,"53":3,"56":3,"59":1,"63":3,"66":3,"75":1,"85":3,"88":3,"91":1,"94":2,"104":1,"108":2,"119":1,"122":3,"126":2,"136":2,"147":1,"148":2,"154":1,"155":1,"173":1,"178":1,"181":1,"189":1}}],["implementations",{"2":{"6":1,"94":1,"108":1,"126":1,"136":1,"147":1,"179":1,"189":3}}],["implemented",{"0":{"147":1},"2":{"1":1,"6":2,"31":1,"56":1,"59":3,"69":2,"71":2,"73":2,"76":2,"82":1,"85":2,"147":1,"149":2,"155":1,"166":2,"173":1,"179":1}}],["improvements",{"2":{"9":2,"10":1}}],["improve",{"2":{"4":1,"6":1,"168":1}}],["i=2",{"2":{"146":1}}],["ipoints",{"2":{"116":4}}],["ip",{"2":{"88":2}}],["ipt",{"2":{"64":8}}],["ihole",{"2":{"88":2}}],["ih",{"2":{"76":22}}],["i2",{"2":{"66":2}}],["i1",{"2":{"66":2}}],["ii",{"2":{"64":8}}],["io",{"2":{"60":5,"174":5,"177":5}}],["i+1",{"2":{"59":8,"148":1,"183":2,"185":1}}],["i",{"2":{"9":1,"13":4,"22":1,"53":14,"56":1,"59":16,"64":28,"66":4,"71":2,"75":2,"76":4,"85":2,"88":8,"105":7,"116":28,"146":14,"148":17,"154":8,"155":8,"178":2,"182":3,"183":12,"185":28,"190":2,"192":2,"193":1,"200":3}}],["id",{"2":{"195":1}}],["identical",{"2":{"154":1,"170":1}}],["identity",{"2":{"148":4,"157":2,"168":1}}],["ideal",{"2":{"148":1}}],["idea",{"2":{"6":1,"20":1,"25":1,"27":1,"59":1,"149":1,"155":1}}],["idx`",{"2":{"64":1}}],["idx",{"2":{"53":6,"64":167,"66":9,"69":23,"70":5,"72":5,"75":2,"171":34,"183":51}}],["id=",{"2":{"6":2}}],["ignored",{"2":{"6":1,"148":1}}],["ignore",{"2":{"6":1,"148":2}}],["innerjoin",{"2":{"198":1,"199":1,"200":1}}],["inner",{"2":{"116":6,"154":5}}],["in=1",{"2":{"116":1}}],["in`",{"2":{"116":1}}],["inject",{"0":{"74":1},"2":{"174":1}}],["inaccuracies",{"2":{"73":1}}],["ind",{"2":{"200":2}}],["individual",{"2":{"194":1}}],["indicate",{"2":{"157":1}}],["indicates",{"2":{"20":1}}],["indices",{"2":{"64":4,"154":2,"155":2,"185":16}}],["indeed",{"2":{"159":1}}],["index",{"2":{"59":8,"64":11,"116":1,"154":1,"183":1}}],["inds",{"2":{"148":3}}],["inplace",{"2":{"59":1}}],["inputs",{"2":{"6":1,"64":1,"88":1,"91":1,"104":1,"119":1,"185":1}}],["input",{"2":{"6":11,"53":1,"69":1,"70":1,"72":1,"73":1,"75":1,"148":1,"149":1,"155":1,"177":3,"178":1,"182":1,"183":1,"184":1,"193":1}}],["inbounds",{"2":{"59":16,"85":5,"116":1}}],["inspiration",{"2":{"69":1}}],["inspired",{"2":{"68":1,"69":2}}],["inside",{"2":{"53":3,"62":1,"64":3,"66":1,"70":1,"71":1,"72":1,"73":1,"75":1,"76":2,"84":3,"85":1,"96":1,"116":1,"135":1,"138":1,"148":2}}],["insertion",{"2":{"64":1}}],["insert",{"2":{"53":1,"183":1}}],["instability",{"2":{"24":2}}],["instantiating",{"2":{"20":1}}],["instead",{"2":{"18":1,"24":1,"155":1,"178":1}}],["instructs",{"2":{"6":1,"189":2}}],["inline",{"2":{"32":1,"116":4,"146":1,"154":12,"155":10,"164":2}}],["init=nothing",{"2":{"155":1}}],["init=typemax",{"2":{"85":2}}],["init=zero",{"2":{"56":1,"66":1}}],["initial",{"2":{"73":2,"177":1}}],["initially",{"2":{"64":1}}],["initialize",{"2":{"59":3,"63":2,"64":1,"73":1}}],["init",{"2":{"19":1,"31":1,"53":1,"63":2,"155":30,"177":4}}],["incorrect",{"2":{"158":1,"159":1}}],["increase",{"2":{"64":1,"116":1}}],["increasing",{"2":{"6":1,"181":1}}],["increment",{"2":{"59":5}}],["including",{"2":{"53":1,"64":2,"73":1,"85":1,"96":1,"97":1,"98":1,"99":1,"116":2}}],["include",{"2":{"31":41,"53":1,"64":1,"77":1,"85":2,"164":1,"181":2,"194":2,"195":1}}],["included",{"2":{"6":2,"76":2,"167":2,"171":2,"194":1}}],["includes",{"2":{"4":2,"6":2,"76":1,"85":2,"88":1,"116":1}}],["incircle",{"0":{"16":1}}],["inv",{"2":{"162":3}}],["investigate",{"2":{"148":1}}],["investigating",{"0":{"81":1}}],["inverted",{"2":{"6":1,"82":1}}],["invalid",{"2":{"20":1,"71":2,"159":1,"169":1,"170":1}}],["invoke",{"2":{"20":1}}],["involved",{"2":{"149":1}}],["involve",{"2":{"20":1}}],["involving",{"2":{"6":3,"70":1,"72":1,"75":1}}],["invocation",{"2":{"18":1}}],["ing",{"2":{"1":1,"6":2,"59":1,"186":1}}],["intr",{"2":{"64":28,"66":9,"69":16,"73":8}}],["intr2",{"2":{"64":2,"73":14}}],["intr1",{"2":{"64":3,"73":21,"116":2}}],["intrs",{"2":{"64":10,"73":5}}],["introduction",{"0":{"27":1},"1":{"28":1,"29":1,"30":1}}],["introducing",{"2":{"24":1}}],["introduces",{"2":{"24":1}}],["int",{"2":{"64":6,"76":7,"105":7,"178":1,"181":1,"183":5,"184":1,"185":1}}],["integrate",{"2":{"56":1}}],["integrating",{"2":{"56":1}}],["integrals",{"2":{"55":1}}],["integral",{"2":{"55":1}}],["intended",{"2":{"6":1,"166":2,"167":1}}],["intermediate",{"2":{"66":1}}],["inter2",{"2":{"66":15}}],["inter1",{"2":{"66":23}}],["interpreted",{"2":{"59":1}}],["interpolation",{"2":{"5":1,"6":1,"58":1,"59":2,"175":1}}],["interpolated",{"2":{"5":3,"6":3,"59":17,"175":1}}],["interpolate",{"2":{"0":2,"5":2,"6":4,"57":1,"58":2,"59":25}}],["interest",{"2":{"59":1,"85":1}}],["internal",{"2":{"58":1}}],["internals",{"2":{"24":1}}],["inter",{"2":{"6":3,"64":21,"69":1,"70":1,"72":5,"73":4}}],["interface",{"0":{"166":1},"2":{"6":3,"20":1,"77":1,"82":1,"154":1,"165":1,"166":4,"167":1,"181":1,"193":1}}],["interacted",{"2":{"116":1}}],["interaction",{"0":{"116":1},"2":{"116":2}}],["interactions",{"2":{"64":1,"76":3,"116":15}}],["interactive",{"2":{"13":1,"14":1}}],["interacting",{"2":{"6":1,"72":1,"116":2}}],["interacts",{"2":{"3":1,"6":1,"116":3,"125":1,"126":1,"129":3,"130":1,"131":1}}],["interact",{"2":{"3":2,"6":2,"75":1,"76":1,"107":1,"116":5,"119":1,"125":1,"126":1,"128":1,"129":2,"130":2,"131":1}}],["interior",{"2":{"3":6,"6":7,"53":9,"55":1,"59":7,"63":5,"64":1,"76":18,"90":1,"91":1,"93":1,"94":3,"97":5,"98":1,"99":2,"103":2,"104":1,"105":1,"108":2,"110":2,"111":6,"112":3,"116":15,"125":1,"126":3,"129":1,"130":2,"131":2,"135":1,"136":3,"141":2,"146":2,"160":1,"167":1}}],["interiors",{"2":{"3":6,"6":7,"59":20,"90":1,"91":1,"93":1,"103":1,"104":1,"107":1,"108":1,"113":1,"116":5,"118":1,"119":1,"125":1,"126":1,"128":1,"129":2,"130":1,"135":1,"136":1,"139":3,"140":3}}],["intersectingpolygons",{"2":{"6":3}}],["intersecting",{"0":{"169":1},"1":{"170":1,"171":1},"2":{"6":4,"31":1,"64":2,"76":2,"167":4,"169":1,"171":4}}],["intersections",{"0":{"73":1},"2":{"64":2,"66":2,"71":1,"72":2,"73":1,"76":1,"116":2}}],["intersection",{"0":{"37":1,"72":1,"117":1},"1":{"118":1,"119":1},"2":{"0":2,"3":3,"6":19,"9":1,"15":4,"23":1,"31":1,"37":2,"64":38,"66":6,"69":3,"70":4,"71":4,"72":15,"73":73,"75":2,"76":2,"105":2,"116":6,"118":1,"122":1,"123":4}}],["intersect",{"2":{"3":7,"6":10,"64":4,"66":3,"70":2,"72":1,"73":1,"75":1,"76":5,"90":1,"91":2,"93":1,"94":1,"104":1,"108":1,"111":1,"113":1,"116":4,"118":2,"135":1,"136":2,"139":3,"140":3,"170":1,"171":4}}],["intersects",{"0":{"49":1,"118":1},"2":{"0":2,"3":3,"6":6,"31":1,"49":2,"64":1,"73":2,"76":2,"105":2,"117":1,"118":4,"119":4,"123":4,"141":1,"171":2,"198":1}}],["into",{"2":{"5":1,"6":5,"17":1,"26":1,"53":1,"56":1,"59":1,"63":4,"64":2,"69":1,"70":1,"72":1,"116":1,"148":4,"154":3,"155":2,"156":1,"157":2,"163":1,"171":1,"181":1,"190":2,"192":2,"198":1}}],["int64",{"2":{"1":6,"6":6,"159":6,"182":1,"183":1,"185":1,"186":6,"192":14}}],["influence",{"2":{"162":1}}],["infinity",{"2":{"116":1,"123":1}}],["info",{"2":{"6":2,"175":1}}],["information",{"0":{"194":1},"2":{"6":1,"29":1,"59":1,"64":2,"65":1,"73":1,"82":1,"116":1,"191":1,"194":3,"196":2}}],["inf",{"2":{"1":1,"9":1,"69":2,"182":1,"185":3}}],["in",{"0":{"23":1},"2":{"1":6,"3":3,"4":1,"5":4,"6":45,"7":1,"9":2,"13":6,"14":2,"17":2,"18":4,"20":1,"23":3,"24":2,"25":1,"26":3,"27":1,"29":1,"30":1,"31":2,"32":1,"33":1,"53":7,"55":1,"56":3,"57":2,"59":22,"60":1,"62":2,"63":5,"64":72,"66":31,"69":6,"70":9,"71":3,"72":5,"73":29,"75":11,"76":28,"81":1,"82":3,"84":6,"85":6,"87":1,"88":17,"90":2,"91":1,"94":10,"97":1,"98":1,"99":1,"100":1,"101":1,"104":1,"105":7,"108":9,"110":1,"111":1,"112":1,"114":1,"115":1,"116":135,"118":2,"119":1,"121":1,"122":5,"123":7,"125":1,"126":11,"130":1,"132":1,"133":1,"135":1,"136":10,"139":3,"140":3,"142":1,"143":1,"146":4,"147":3,"148":10,"149":1,"151":2,"152":2,"153":1,"154":8,"155":4,"157":8,"161":1,"162":5,"163":1,"164":1,"165":1,"166":1,"167":2,"168":1,"169":1,"171":7,"172":2,"173":3,"174":1,"175":2,"176":2,"177":14,"178":8,"179":1,"181":5,"182":2,"183":4,"184":1,"185":5,"186":2,"187":1,"188":4,"189":4,"190":8,"191":1,"192":2,"193":6,"196":2,"198":4,"199":3,"200":1,"201":1}}],["itererable",{"2":{"190":1}}],["iter",{"2":{"157":31}}],["iterator",{"2":{"64":4,"72":2,"157":4}}],["iterators",{"2":{"13":1,"59":1,"64":5,"66":3,"72":1,"76":2,"148":1,"154":2,"155":3,"157":8,"171":6,"178":1}}],["iterate",{"2":{"59":2,"152":1,"154":1,"157":4}}],["iteration",{"2":{"56":1}}],["iterabletype",{"2":{"154":5,"155":6}}],["iterable",{"2":{"4":1,"6":2,"18":1,"56":1,"66":1,"82":1,"154":17,"155":15,"157":11,"192":1}}],["iterables",{"2":{"1":2,"22":1,"151":2,"154":1,"155":2,"157":3}}],["ith",{"2":{"64":3,"76":7}}],["itself",{"2":{"66":1,"146":1,"152":1}}],["its",{"2":{"5":1,"6":9,"18":1,"55":1,"59":1,"64":2,"66":4,"76":1,"97":1,"157":2,"165":1,"181":1,"182":1,"183":1,"184":3,"198":1}}],["it",{"2":{"1":4,"4":1,"6":14,"9":1,"18":11,"19":2,"20":1,"22":1,"29":3,"30":1,"52":1,"53":1,"55":2,"56":3,"58":1,"60":1,"63":2,"64":2,"65":1,"66":2,"70":1,"71":1,"72":1,"73":4,"75":1,"76":3,"81":2,"82":2,"85":3,"88":1,"93":2,"96":3,"110":3,"116":14,"121":1,"122":1,"128":2,"138":3,"145":1,"146":2,"148":4,"149":3,"151":1,"152":3,"153":1,"154":8,"155":5,"157":8,"159":1,"160":1,"162":1,"163":2,"164":2,"165":1,"167":1,"169":1,"173":5,"176":2,"177":1,"178":1,"181":1,"183":1,"188":1,"189":7,"193":3,"194":3,"196":3,"200":2,"201":2}}],["iff",{"2":{"154":1}}],["if",{"0":{"74":1},"2":{"1":5,"3":16,"4":19,"5":1,"6":67,"18":1,"22":2,"32":1,"52":1,"53":15,"55":1,"56":6,"59":5,"60":3,"63":1,"64":95,"66":36,"69":8,"70":13,"71":12,"72":9,"73":44,"75":10,"76":22,"82":3,"84":2,"85":8,"87":2,"88":35,"90":1,"91":1,"93":1,"94":2,"96":4,"97":3,"98":3,"99":2,"100":1,"101":1,"103":1,"104":1,"105":9,"107":1,"108":3,"110":5,"111":4,"112":2,"113":2,"114":1,"115":1,"116":132,"118":1,"119":1,"121":4,"122":1,"123":14,"125":1,"126":2,"128":4,"129":3,"130":2,"131":2,"132":1,"133":1,"135":1,"136":2,"138":5,"139":3,"140":3,"141":1,"142":1,"143":1,"146":5,"148":35,"151":3,"152":1,"154":19,"155":6,"157":9,"160":1,"164":1,"166":1,"167":2,"168":1,"169":1,"171":12,"172":1,"173":3,"174":2,"177":6,"178":1,"181":1,"183":12,"185":12,"186":1,"187":1,"189":2,"193":1,"196":1,"199":2,"200":1}}],["isolate",{"2":{"181":1}}],["isodd",{"2":{"69":1}}],["istable",{"2":{"154":1,"155":1,"157":1}}],["isequal",{"2":{"148":1}}],["iseven",{"2":{"116":1}}],["isempty",{"2":{"56":1,"59":4,"66":1,"70":1,"71":2,"72":1,"148":1,"166":1,"183":1}}],["isparallel",{"2":{"116":1,"146":8}}],["is3d",{"2":{"88":1,"157":1,"172":1,"186":1,"187":1,"190":10}}],["issue",{"2":{"64":1}}],["issues",{"2":{"25":1,"27":1}}],["isa",{"2":{"18":1,"59":9,"154":3,"155":1,"178":2,"190":1}}],["isnothing",{"2":{"60":1,"64":9,"69":1,"71":2,"73":2,"76":2,"88":1,"148":1,"174":1,"177":1,"181":1,"182":1,"183":5,"184":1,"185":6}}],["isn",{"2":{"6":1,"56":1,"64":4,"66":1,"69":1,"71":1,"73":3,"76":2,"85":3,"88":1,"93":1,"116":9,"123":1,"181":1,"189":1}}],["isconcave",{"0":{"146":1},"2":{"0":1,"6":2,"81":1,"144":1,"146":3}}],["isclockwise",{"0":{"145":1},"2":{"0":1,"6":2,"66":1,"144":1,"146":5,"148":2}}],["is",{"0":{"25":1,"52":1,"55":2,"62":1,"65":1,"68":1,"84":2,"87":1,"90":1,"93":1,"103":1,"107":1,"118":1,"121":1,"125":1,"135":1,"152":1},"2":{"0":1,"1":10,"3":8,"4":43,"5":1,"6":103,"9":3,"11":1,"13":1,"14":1,"18":3,"19":1,"20":1,"22":3,"23":2,"25":2,"27":2,"52":1,"53":19,"55":7,"56":19,"57":2,"58":2,"59":15,"60":3,"62":2,"63":5,"64":82,"65":3,"66":22,"68":1,"69":2,"70":4,"71":13,"72":4,"73":40,"75":7,"76":20,"77":1,"81":5,"82":4,"84":8,"85":23,"88":13,"90":2,"91":3,"93":4,"94":4,"96":7,"97":3,"98":3,"99":1,"100":1,"101":1,"104":3,"105":3,"107":1,"108":5,"110":9,"111":4,"112":2,"113":1,"114":1,"115":1,"116":91,"119":2,"121":3,"122":2,"123":10,"126":4,"128":2,"135":4,"136":5,"138":8,"139":3,"140":3,"141":1,"142":2,"143":1,"145":2,"146":7,"147":1,"148":11,"149":3,"151":3,"152":3,"153":1,"154":18,"155":4,"157":7,"158":7,"159":2,"160":1,"162":11,"163":1,"164":1,"165":3,"166":2,"167":1,"169":4,"170":1,"171":2,"172":1,"173":7,"174":2,"175":3,"176":3,"177":9,"178":8,"180":1,"181":4,"182":1,"183":2,"184":1,"186":2,"188":1,"189":3,"192":4,"193":5,"194":3,"195":1,"196":3,"198":2,"199":5,"200":2}}],["cpu",{"2":{"200":1}}],["cp",{"2":{"197":1}}],["circumstances",{"2":{"162":2}}],["cy",{"2":{"146":2}}],["cyan",{"2":{"60":1,"174":1,"177":1}}],["cx",{"2":{"146":2}}],["cdot",{"2":{"146":1}}],["cs",{"2":{"116":9}}],["cshape",{"2":{"62":3}}],["cw",{"2":{"66":2}}],["cb",{"2":{"58":1,"81":1,"148":1}}],["cgrad",{"2":{"58":1}}],["cgal",{"2":{"58":1}}],["c",{"2":{"32":1,"56":1,"62":1,"66":4,"69":5,"74":3,"116":24,"177":1}}],["cleaner",{"2":{"82":1}}],["cleanest",{"2":{"82":1}}],["clear",{"2":{"65":1}}],["clearly",{"2":{"52":1,"55":1,"84":1}}],["clamped",{"2":{"73":18}}],["clamp",{"2":{"53":1,"73":1}}],["classified",{"2":{"64":1}}],["classify",{"2":{"64":4}}],["class",{"2":{"6":1,"148":1}}],["class=",{"2":{"6":6}}],["clipping",{"0":{"64":1,"70":1,"71":1,"73":1,"75":1,"76":1},"2":{"6":1,"9":1,"31":8,"64":9,"69":3,"70":1,"72":1,"75":1,"169":1}}],["closure",{"2":{"154":2}}],["closing",{"2":{"53":1}}],["closer",{"2":{"162":1}}],["close",{"2":{"53":5,"64":2,"66":1,"69":1,"73":1,"85":9,"148":1,"159":1,"160":4}}],["closest",{"2":{"4":3,"6":3,"73":2,"84":1,"85":6,"162":1}}],["closed2",{"2":{"88":2}}],["closed1",{"2":{"88":2}}],["closed",{"0":{"158":1},"1":{"159":1,"160":1},"2":{"4":4,"6":11,"9":1,"31":1,"53":6,"56":3,"63":3,"64":1,"66":1,"73":1,"76":3,"88":21,"96":2,"97":5,"98":5,"110":2,"111":5,"112":3,"116":52,"123":6,"129":5,"130":1,"138":3,"139":5,"140":5,"146":1,"148":1,"158":1,"159":1,"160":2,"165":1,"167":1,"192":1}}],["closedring",{"2":{"0":1,"6":1,"158":1,"159":1,"160":4,"165":1,"166":1,"167":1}}],["clockwise",{"2":{"4":1,"6":4,"9":1,"55":1,"56":1,"66":7,"81":1,"145":2,"146":3,"148":1}}],["ceil",{"2":{"178":1}}],["ce",{"2":{"116":11}}],["certainly",{"2":{"73":1}}],["certain",{"2":{"17":1,"18":1,"26":1,"29":1}}],["central",{"2":{"64":1}}],["centroids",{"2":{"62":1,"63":1}}],["centroid",{"0":{"61":1,"62":1},"1":{"62":1,"63":1},"2":{"0":4,"4":2,"6":6,"31":1,"61":3,"62":4,"63":38,"149":1,"155":1,"181":4}}],["cent",{"2":{"62":2}}],["centered",{"2":{"64":1}}],["center",{"2":{"6":1,"62":1,"148":1}}],["cells",{"2":{"148":1}}],["cell",{"2":{"6":4,"65":3,"66":28,"148":2}}],["children",{"2":{"181":1}}],["child",{"2":{"157":9}}],["chunks",{"2":{"154":4,"155":5}}],["chunk",{"2":{"154":6,"155":7}}],["chull",{"2":{"50":2}}],["chose",{"2":{"24":1,"148":1}}],["choose",{"2":{"6":1,"82":1,"148":2}}],["changes",{"2":{"64":1}}],["changed",{"2":{"64":1}}],["change",{"2":{"24":1,"64":1,"81":1}}],["chain=2",{"2":{"64":1}}],["chain=1",{"2":{"64":1}}],["chain",{"2":{"64":66,"71":3,"73":4,"76":4,"81":2}}],["chains",{"2":{"20":1,"64":1}}],["chairmarks",{"2":{"13":1,"177":1,"181":1}}],["checkargs",{"2":{"182":1,"183":1,"184":1,"185":1}}],["checking",{"2":{"88":1,"183":1}}],["checks",{"0":{"105":1,"117":1},"1":{"118":1,"119":1},"2":{"60":1,"64":1,"73":1,"87":1,"90":1,"93":1,"103":1,"107":1,"116":5,"118":1,"121":1,"123":1,"125":1,"135":1,"199":1}}],["check",{"2":{"4":1,"6":1,"7":1,"63":1,"64":8,"66":3,"69":1,"70":1,"73":4,"74":1,"75":1,"88":8,"116":11,"148":5,"154":1,"168":1,"170":1,"176":2,"183":1,"185":1}}],["checked",{"2":{"4":1,"6":1,"64":1,"73":1,"81":1,"116":1,"168":1}}],["c2",{"2":{"6":3,"15":2,"85":3,"88":14,"148":21}}],["c1",{"2":{"6":3,"15":2,"85":4,"88":13,"148":26}}],["ctor",{"2":{"1":1,"6":1,"186":1}}],["categorize",{"2":{"69":1}}],["categorical",{"2":{"58":1}}],["came",{"2":{"69":1}}],["case",{"2":{"53":1,"57":2,"63":1,"64":1,"70":1,"73":2,"76":1,"116":16,"155":1,"178":1,"201":1}}],["cases",{"2":{"6":1,"59":1,"69":2,"116":3,"152":1,"154":1,"155":1,"157":3}}],["cause",{"2":{"18":1,"23":1,"183":1}}],["careful",{"2":{"59":1,"152":1}}],["care",{"2":{"17":1,"154":1,"162":1}}],["carried",{"2":{"6":1,"189":1}}],["cairomakie",{"2":{"13":1,"52":1,"55":1,"58":2,"62":1,"65":1,"68":1,"79":1,"80":1,"81":1,"84":1,"87":1,"90":1,"93":1,"103":1,"107":1,"118":1,"121":1,"125":1,"135":1,"176":1,"177":1,"181":1,"191":1,"197":1,"199":1,"200":1}}],["california",{"2":{"200":1}}],["callable",{"2":{"148":4,"166":1}}],["calls",{"2":{"64":1,"73":1,"76":1,"85":1,"94":1,"108":1,"126":1,"136":1,"152":1,"154":1,"178":1}}],["calling",{"2":{"33":1,"64":2,"154":1}}],["call",{"2":{"18":1,"24":1,"56":1,"63":1,"154":4,"179":1}}],["called",{"2":{"6":2,"63":3,"64":1,"154":1,"160":1,"166":1,"167":1,"189":1,"193":1}}],["calculation",{"2":{"73":1}}],["calculations",{"2":{"6":1,"25":2,"27":2,"73":1,"162":2,"177":1}}],["calculating",{"2":{"4":1,"6":1,"18":1,"64":1,"168":1}}],["calculated",{"2":{"6":1,"62":2,"66":1,"73":2,"85":1,"154":4}}],["calculates",{"2":{"4":2,"6":6,"56":1,"59":2,"66":1,"73":2,"75":1,"85":2,"177":1,"184":1}}],["calculate",{"2":{"1":2,"5":1,"6":5,"11":1,"53":3,"59":3,"63":1,"66":1,"73":1,"116":1,"148":1,"151":1,"154":3,"156":1}}],["calc",{"2":{"1":2,"6":3,"24":1,"31":1,"32":1,"35":2,"36":2,"37":2,"38":2,"50":1,"53":4,"151":1,"153":1,"154":19,"156":1,"164":1,"168":1,"181":2}}],["cache",{"2":{"6":1,"59":1}}],["cant",{"2":{"88":1,"148":1,"190":1}}],["cannot",{"2":{"3":3,"4":2,"6":5,"56":1,"88":1,"96":1,"99":1,"122":2,"126":1,"128":2,"130":1,"141":1}}],["can",{"2":{"1":1,"4":2,"6":14,"7":2,"9":1,"13":1,"14":1,"24":1,"26":1,"31":1,"53":1,"56":1,"57":2,"58":1,"59":3,"60":1,"63":1,"64":3,"66":1,"70":3,"72":3,"73":1,"75":3,"76":1,"81":1,"82":2,"87":1,"88":3,"90":1,"93":1,"105":1,"107":1,"116":23,"118":2,"121":2,"122":2,"123":1,"125":1,"129":1,"130":1,"135":1,"138":1,"139":1,"140":1,"147":1,"148":1,"149":1,"151":1,"153":1,"154":8,"156":1,"157":2,"159":2,"160":1,"162":1,"167":1,"168":1,"169":2,"170":1,"174":1,"176":1,"177":2,"181":2,"189":1,"192":6,"193":1,"194":3,"196":3,"198":3,"199":3}}],["creation",{"2":{"192":1,"194":1}}],["creating",{"0":{"191":1,"192":1,"195":1},"1":{"192":1,"193":1,"194":1,"195":1,"196":1},"2":{"116":1}}],["creates",{"2":{"7":1,"64":3}}],["create",{"0":{"194":1},"2":{"6":2,"13":2,"14":1,"64":1,"69":1,"73":2,"82":1,"148":2,"154":1,"167":2,"169":3,"171":2,"191":2,"192":4,"193":5,"194":3,"195":1,"196":1,"199":1}}],["created",{"2":{"4":2,"6":2,"64":1,"85":3}}],["criteria",{"2":{"94":2,"108":2,"126":2,"136":2,"183":3}}],["cropping",{"2":{"58":2}}],["cross=1",{"2":{"72":1}}],["cross`",{"2":{"72":1}}],["crossings",{"2":{"64":3,"116":1}}],["crossing",{"0":{"105":1},"2":{"6":2,"64":81,"70":1,"71":7,"72":3,"73":7,"75":1,"76":6,"94":1,"105":1,"116":1,"136":1}}],["cross",{"0":{"133":1},"2":{"6":1,"9":1,"53":3,"64":13,"69":14,"70":2,"71":1,"72":2,"73":10,"74":4,"75":2,"76":1,"94":1,"105":2,"108":1,"116":17,"122":1,"123":2,"126":1,"136":1,"146":3}}],["crosses",{"0":{"43":1},"2":{"0":2,"3":2,"6":3,"31":1,"43":2,"64":1,"69":1,"105":26,"116":2,"198":1}}],["crc",{"2":{"6":1,"59":1}}],["crs2",{"2":{"193":2}}],["crs1",{"2":{"193":2,"194":1}}],["crs=nothing",{"2":{"154":1,"168":1,"181":1}}],["crs=gi",{"2":{"154":5,"157":3}}],["crs`",{"2":{"154":1,"173":6}}],["crs",{"0":{"193":1},"2":{"1":16,"4":2,"6":8,"31":1,"32":2,"35":2,"36":2,"37":2,"38":2,"50":2,"82":1,"148":10,"151":2,"153":3,"154":36,"156":2,"157":5,"168":1,"173":7,"181":1,"191":1,"193":13,"194":7,"196":1}}],["customize",{"2":{"154":1,"155":1}}],["custom",{"0":{"201":1},"2":{"6":3,"59":1,"201":2}}],["curr^2",{"2":{"53":2}}],["curr",{"2":{"53":8,"64":116,"69":9,"76":3,"171":26}}],["currentnode",{"2":{"148":8}}],["current",{"2":{"53":1,"59":8,"64":3,"69":2,"71":1,"73":1,"76":6,"148":2,"171":3}}],["currently",{"2":{"5":1,"6":3,"23":1,"59":1,"64":1,"69":1,"71":2,"148":1,"154":1,"162":2}}],["curve",{"0":{"116":1},"2":{"3":1,"4":7,"6":18,"53":6,"56":7,"64":5,"66":3,"72":7,"84":1,"85":22,"88":6,"94":2,"96":4,"97":9,"98":9,"108":1,"110":4,"111":6,"112":3,"116":152,"122":1,"123":10,"126":1,"129":6,"131":3,"136":1,"138":4,"139":6,"140":6}}],["curves",{"2":{"0":1,"3":1,"6":5,"56":3,"66":3,"73":1,"84":1,"85":1,"88":13,"99":1,"116":1,"123":1,"141":1,"181":2}}],["cutpolygon",{"2":{"68":1}}],["cuts",{"2":{"68":1}}],["cutting",{"0":{"67":1},"1":{"68":1,"69":1},"2":{"64":1,"69":2}}],["cut",{"0":{"68":1},"2":{"0":1,"6":6,"31":1,"59":1,"67":1,"68":5,"69":22,"116":1}}],["coastlines",{"2":{"197":1}}],["coarse",{"2":{"6":1,"175":1,"178":1}}],["cos",{"2":{"192":3,"193":1,"194":2}}],["copy",{"2":{"154":1,"166":1,"185":1}}],["coors1",{"2":{"146":2}}],["coors2",{"2":{"146":3}}],["coord",{"2":{"178":6}}],["coords",{"2":{"69":9,"178":8}}],["coordinatetransformations",{"2":{"1":2,"6":2,"181":1,"186":2,"191":1,"192":5,"194":2}}],["coordinate",{"0":{"59":1,"172":1,"193":1,"194":1},"2":{"1":4,"5":5,"6":7,"25":1,"27":1,"58":2,"59":10,"157":1,"173":4,"178":1,"191":3,"193":1}}],["coordinates",{"0":{"5":1,"57":1},"1":{"58":1,"59":1},"2":{"0":4,"1":1,"4":2,"5":7,"6":20,"56":2,"57":8,"59":25,"64":2,"65":1,"69":2,"70":1,"72":1,"75":1,"85":1,"88":2,"149":1,"162":2,"172":2,"173":1,"176":1,"177":3,"193":2}}],["co",{"2":{"116":2}}],["core",{"2":{"161":1}}],["corner",{"2":{"66":4,"148":1}}],["corners",{"2":{"66":1}}],["correspondent",{"2":{"146":1}}],["correspond",{"2":{"64":1}}],["corresponding",{"2":{"53":3,"71":2}}],["corrected",{"2":{"166":1}}],["correctness",{"2":{"158":1,"189":1}}],["correctly",{"2":{"154":1,"176":1}}],["correcting",{"2":{"20":1,"166":1}}],["corrections",{"0":{"165":1,"167":1},"1":{"166":1,"167":1},"2":{"159":1,"166":6,"170":1}}],["correction",{"2":{"6":10,"31":4,"70":1,"71":2,"72":1,"73":2,"75":1,"76":2,"158":1,"160":2,"165":2,"166":8,"167":7,"169":1,"171":2}}],["correct",{"2":{"6":3,"24":1,"53":1,"56":1,"63":1,"64":1,"66":1,"70":1,"72":1,"75":1,"85":1,"88":1,"94":1,"108":1,"122":1,"126":1,"136":1,"158":1,"159":2,"165":1}}],["cov",{"2":{"66":16}}],["cover",{"2":{"96":1,"100":1}}],["covering",{"2":{"6":2,"103":1,"167":2,"171":2}}],["covered",{"0":{"98":1,"99":1,"140":1},"2":{"3":1,"6":1,"71":1,"76":1,"93":1,"94":1,"98":2,"99":2,"100":1,"101":2,"103":1,"115":2,"116":3,"171":1}}],["coveredby",{"0":{"48":1,"92":1,"93":1,"96":1,"97":1,"100":1,"101":1,"115":1},"1":{"93":1,"94":1},"2":{"0":2,"3":4,"6":4,"31":1,"48":2,"64":1,"92":1,"93":3,"94":10,"95":6,"96":13,"97":15,"98":13,"99":5,"100":2,"101":2,"104":3,"198":1}}],["covers",{"0":{"47":1,"102":1,"103":1},"1":{"103":1,"104":1},"2":{"0":2,"3":5,"6":5,"31":1,"47":2,"102":1,"103":4,"104":5,"148":1,"198":1}}],["coverages",{"2":{"6":1,"66":1}}],["coverage",{"0":{"65":1},"2":{"0":1,"6":2,"31":1,"65":3,"66":16}}],["code",{"2":{"7":1,"10":1,"26":5,"59":1,"94":1,"108":1,"116":1,"126":1,"136":1,"146":1,"164":1,"188":1,"200":1}}],["colatitude",{"2":{"162":1}}],["colname",{"2":{"154":3}}],["col",{"2":{"154":2,"155":1}}],["columns",{"2":{"154":2}}],["column",{"2":{"22":1,"154":9,"155":8,"157":2,"195":2,"198":8}}],["colored",{"2":{"199":1}}],["color=",{"2":{"193":2}}],["colors",{"2":{"79":1,"80":1,"197":1,"199":2}}],["colorrange",{"2":{"58":2,"84":1}}],["colorbar",{"2":{"58":1,"81":1,"84":1,"148":1}}],["colormap",{"2":{"14":1,"58":3,"84":1}}],["color",{"2":{"6":1,"55":1,"58":2,"59":1,"60":1,"62":1,"68":3,"79":1,"80":1,"81":2,"84":2,"87":4,"90":4,"93":1,"103":1,"107":4,"121":4,"135":4,"174":1,"177":1,"192":1,"193":1,"197":1,"199":5}}],["collect",{"2":{"11":3,"13":1,"50":1,"52":1,"55":2,"59":1,"62":1,"65":2,"68":2,"82":2,"84":1,"148":3,"154":2,"155":1,"176":4,"190":2}}],["collections",{"0":{"100":1,"101":1,"114":1,"115":1,"132":1,"133":1,"142":1,"143":1},"2":{"1":2,"6":8,"22":1,"151":2,"153":1,"154":2,"155":2,"157":3,"181":2,"196":1}}],["collection",{"2":{"1":1,"4":7,"6":12,"18":2,"29":2,"53":2,"56":3,"66":2,"85":2,"100":2,"101":2,"114":2,"115":2,"132":2,"133":2,"142":2,"143":2,"149":1,"151":1,"154":3,"155":1,"181":1,"187":1,"190":1}}],["collinear",{"2":{"3":1,"6":2,"64":5,"70":2,"72":3,"73":12,"75":2,"121":1,"123":2}}],["come",{"2":{"162":1}}],["commonly",{"2":{"196":1}}],["common",{"2":{"87":1,"156":1,"178":1,"191":1,"193":1,"194":1}}],["commented",{"2":{"146":1}}],["comments",{"2":{"116":1}}],["comment",{"2":{"30":1}}],["combos",{"2":{"71":1,"73":1,"76":1}}],["combination",{"2":{"64":1,"157":2}}],["combines",{"2":{"63":1}}],["combine",{"2":{"63":2,"64":5,"171":1}}],["combined",{"2":{"6":1,"64":4,"76":1,"167":1,"171":2,"192":1}}],["coming",{"2":{"66":1}}],["com",{"2":{"6":2,"73":1,"82":1,"162":1}}],["compilation",{"2":{"164":1}}],["compiled",{"2":{"24":1}}],["compiler",{"2":{"24":1,"154":2,"164":2}}],["complex",{"2":{"149":1,"181":1,"198":1}}],["complexity",{"2":{"149":1}}],["complete",{"2":{"56":1}}],["completely",{"2":{"1":1,"3":4,"6":4,"64":2,"71":1,"76":1,"90":2,"91":1,"94":1,"103":1,"104":1,"116":1,"136":1,"151":1,"154":1,"162":1}}],["components",{"2":{"62":1,"63":2,"155":1,"157":25}}],["component",{"2":{"56":3,"63":11,"66":8,"73":1,"154":2,"157":2}}],["composed",{"2":{"4":4,"6":5,"88":5,"192":2}}],["comprised",{"2":{"6":3,"70":1,"72":1,"75":1}}],["computing",{"2":{"60":1,"77":1}}],["computational",{"2":{"6":1,"59":1}}],["computation",{"2":{"6":6,"59":1,"63":1,"70":1,"72":1,"75":1,"182":2,"183":2,"184":2}}],["computer",{"2":{"6":1,"59":1}}],["computes",{"2":{"6":1,"82":1}}],["compute",{"2":{"4":1,"6":3,"56":1,"59":1,"82":3,"178":1}}],["computed",{"2":{"4":4,"6":5,"53":1,"56":3,"59":3,"66":1,"197":1}}],["compact",{"2":{"200":3}}],["comparisons",{"2":{"198":1}}],["comparing",{"2":{"76":1,"88":1}}],["compares",{"2":{"148":1}}],["compared",{"2":{"88":1}}],["compare",{"2":{"3":1,"4":1,"6":2,"53":1,"76":1,"88":2,"122":1}}],["compatibility",{"2":{"56":1}}],["compatible",{"2":{"1":3,"22":1,"25":1,"27":1,"53":1,"56":1,"59":2,"63":1,"66":1,"85":1,"88":1,"91":1,"94":1,"104":1,"108":1,"119":1,"122":1,"126":1,"136":1,"151":1,"152":1,"154":1,"173":2}}],["couple",{"2":{"195":1}}],["course",{"2":{"153":1}}],["country",{"2":{"200":8}}],["countries",{"2":{"11":1,"80":1,"181":1}}],["counted",{"2":{"73":2}}],["counters",{"2":{"59":8}}],["counterparts",{"2":{"33":1}}],["counter",{"2":{"6":1,"64":7,"116":1,"145":1,"146":1}}],["counterclockwise",{"2":{"4":1,"6":2,"9":1,"55":2,"56":1,"81":1,"82":1}}],["count",{"2":{"64":16,"148":1,"185":1}}],["couldn",{"2":{"9":1,"164":1}}],["could",{"2":{"4":1,"6":1,"56":3,"73":4,"76":1,"77":1,"85":1,"116":2,"162":1,"173":1}}],["conditions",{"2":{"198":4}}],["connected",{"2":{"116":5}}],["connect",{"2":{"66":11}}],["connecting",{"2":{"53":1,"183":1,"192":2}}],["connections",{"2":{"6":2,"167":2,"171":2}}],["contents",{"2":{"154":1,"158":1}}],["context",{"2":{"32":4,"177":4,"193":2}}],["contours",{"2":{"148":1}}],["contour",{"2":{"148":4}}],["continue",{"2":{"56":1,"64":7,"66":1,"71":2,"73":1,"116":1,"154":1,"166":1,"171":3,"185":1,"200":1}}],["contributions",{"2":{"25":1,"27":1}}],["controlled",{"2":{"24":1}}],["control",{"2":{"23":1}}],["containing",{"2":{"65":1,"199":1}}],["contain",{"2":{"3":1,"6":1,"26":1,"76":1,"90":1,"122":1,"192":1}}],["contained",{"2":{"3":1,"6":1,"9":1,"76":4,"91":1,"103":1,"121":1,"122":1,"154":1,"199":1}}],["contains",{"0":{"45":1,"89":1,"90":1},"1":{"90":1,"91":1},"2":{"0":2,"3":4,"6":4,"26":1,"31":1,"33":1,"45":2,"64":1,"76":1,"77":1,"89":1,"90":5,"91":4,"152":1,"170":1,"198":1,"199":1}}],["consistent",{"2":{"64":1,"149":1}}],["consistency",{"2":{"22":1}}],["considered",{"2":{"53":1,"59":1}}],["consider",{"2":{"52":1,"55":1,"62":1,"65":1,"66":3,"68":1,"84":2,"87":1,"90":1,"93":1,"103":1,"107":1,"116":3,"118":1,"121":1,"125":1,"135":1}}],["constprop",{"2":{"105":1}}],["constants",{"2":{"64":1}}],["const",{"2":{"31":4,"64":1,"94":4,"108":3,"122":4,"126":4,"136":4,"156":3,"181":4}}],["constructing",{"2":{"194":1}}],["constructors",{"2":{"163":2}}],["construct",{"2":{"163":1}}],["constructed",{"2":{"1":1,"20":1,"173":1}}],["constrained",{"2":{"6":3,"70":1,"72":1,"75":1}}],["concepts",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"26":1}}],["concieve",{"2":{"9":1}}],["concavehull",{"2":{"147":1}}],["concave",{"2":{"6":1,"53":2,"62":2,"146":2}}],["convention",{"2":{"62":1}}],["convenience",{"2":{"59":1,"189":1}}],["conversely",{"2":{"64":1}}],["conversion",{"0":{"187":1},"2":{"22":1,"33":1}}],["converted",{"2":{"22":1,"59":3}}],["converts",{"2":{"6":1,"190":1}}],["convert",{"0":{"95":1,"109":1,"123":1,"127":1,"137":1},"2":{"6":3,"32":1,"35":2,"36":2,"37":2,"38":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":1,"59":6,"82":1,"84":1,"148":2,"177":1,"181":3,"187":1,"189":1,"190":1}}],["convexity",{"2":{"81":2}}],["convexhull",{"2":{"50":1,"147":1}}],["convex",{"0":{"50":1,"77":1,"80":1},"1":{"78":1,"79":1,"80":1,"81":1,"82":1},"2":{"0":1,"6":7,"31":2,"50":1,"53":3,"77":4,"79":2,"80":1,"81":4,"82":11,"146":1}}],["vw",{"2":{"181":3}}],["von",{"2":{"148":1}}],["v2",{"2":{"116":9}}],["v1",{"2":{"116":9}}],["v`",{"2":{"59":2}}],["vcat",{"2":{"53":1,"59":1,"154":1}}],["vararg",{"2":{"59":1}}],["varying",{"2":{"162":1}}],["vary",{"2":{"53":1}}],["variables",{"2":{"24":1,"59":8,"91":1,"104":1,"119":1}}],["variable",{"2":{"24":1,"71":2}}],["vals",{"2":{"183":9}}],["valign",{"2":{"181":1}}],["validated",{"2":{"71":2,"73":2,"76":2}}],["validate",{"2":{"9":1}}],["valid",{"2":{"1":1,"6":8,"63":1,"70":2,"72":2,"73":3,"75":2,"148":1,"158":3,"159":1,"169":1,"170":1,"185":1,"186":1}}],["val",{"2":{"53":2,"64":2,"73":8,"116":30,"123":4}}],["values=",{"2":{"148":2}}],["values=sort",{"2":{"148":1}}],["values",{"2":{"1":1,"5":3,"6":15,"53":2,"58":3,"59":40,"63":2,"64":5,"66":5,"73":1,"85":2,"116":4,"148":19,"151":1,"154":2,"164":1,"183":2,"185":1}}],["value",{"2":{"0":1,"4":7,"5":2,"6":15,"14":1,"24":1,"32":2,"53":1,"55":2,"56":4,"59":45,"64":5,"66":2,"73":7,"84":1,"85":3,"148":6,"154":2,"183":11,"189":2,"198":1}}],["vs",{"0":{"15":1},"2":{"12":1,"73":2}}],["vᵢ",{"2":{"6":1}}],["v",{"2":{"5":2,"6":6,"14":4,"59":23,"85":8}}],["visvalingam",{"2":{"179":1}}],["visvalingamwhyatt",{"0":{"184":1},"2":{"0":1,"6":3,"181":4,"184":5}}],["visualized",{"2":{"159":1}}],["visualize",{"2":{"118":1,"193":1}}],["visa",{"2":{"64":1}}],["visited",{"2":{"64":4}}],["view",{"2":{"64":2,"82":1,"148":1,"171":1,"183":3,"200":1}}],["viewport",{"2":{"14":1}}],["views",{"2":{"1":1,"64":1,"75":1,"173":1}}],["vincenty",{"2":{"6":1,"178":1}}],["via",{"2":{"6":1,"60":1,"77":1,"147":1,"174":1,"177":1,"189":2}}],["vec",{"2":{"82":2}}],["vect",{"2":{"157":2}}],["vectypes",{"2":{"59":5}}],["vector",{"2":{"1":12,"4":6,"5":1,"6":46,"18":1,"23":1,"29":1,"52":1,"53":10,"59":14,"64":7,"69":6,"70":4,"71":1,"72":2,"73":3,"75":4,"116":1,"123":2,"146":3,"148":4,"149":1,"151":1,"154":4,"155":3,"159":8,"160":1,"170":22,"175":1,"176":1,"178":2,"182":1,"183":4,"184":1,"185":2,"186":10,"190":15,"192":18,"193":6,"194":9}}],["vectors",{"2":{"1":1,"4":2,"6":3,"22":1,"53":4,"59":3,"64":1,"82":1,"85":1,"145":1,"148":1,"151":1,"154":1,"157":2,"181":1}}],["ve",{"2":{"17":1,"178":1}}],["vein",{"2":{"7":1}}],["version",{"2":{"189":1}}],["versa",{"2":{"64":1}}],["vert",{"2":{"185":21}}],["verts",{"2":{"181":2}}],["vertical",{"2":{"58":1,"66":1,"73":1,"148":1}}],["vertices",{"2":{"6":7,"9":1,"57":4,"59":5,"64":1,"69":2,"82":1,"96":1,"98":5,"107":1,"110":3,"113":1,"116":1,"138":1,"159":1,"175":2,"176":1,"177":3,"178":3,"181":1,"184":1}}],["vertex",{"2":{"5":1,"6":2,"53":1,"57":2,"59":2,"64":19,"73":12,"81":1,"96":2,"111":2,"112":1,"116":1,"138":3}}],["very",{"2":{"0":1,"176":1,"200":2}}],["rd",{"2":{"181":3}}],["rdbu",{"2":{"84":1}}],["rhumb",{"2":{"146":2}}],["runner",{"2":{"193":1}}],["running",{"2":{"154":1,"157":2}}],["run",{"2":{"154":5,"155":3,"200":1}}],["runs",{"2":{"73":2,"145":1}}],["rule",{"2":{"64":1}}],["rules",{"2":{"64":1}}],["rightjoin",{"2":{"198":1}}],["right=2",{"2":{"64":1}}],["right",{"2":{"59":1,"64":4,"69":1,"85":1,"146":1,"183":19,"185":5,"192":1}}],["ring4",{"2":{"194":2}}],["ring3",{"2":{"193":1}}],["ring2",{"2":{"123":3,"192":2}}],["ring1",{"2":{"123":3,"192":2}}],["rings",{"0":{"98":1,"112":1,"130":1,"140":1,"158":1},"1":{"159":1,"160":1},"2":{"4":4,"6":6,"9":2,"56":1,"63":1,"64":3,"73":1,"88":7,"145":1,"148":5,"160":1,"167":1,"181":1}}],["ring",{"2":{"4":7,"6":13,"9":1,"31":1,"53":3,"56":2,"59":1,"62":1,"63":4,"64":12,"66":13,"76":3,"85":5,"88":4,"96":1,"97":2,"98":5,"110":1,"112":1,"116":2,"128":1,"129":1,"130":3,"138":1,"139":2,"140":4,"146":3,"148":11,"158":2,"159":1,"160":14,"165":1,"192":1}}],["rtrees",{"2":{"20":1}}],["r+y",{"2":{"13":2,"14":1}}],["r+x",{"2":{"13":2,"14":1}}],["ry",{"2":{"13":3,"14":3}}],["rx",{"2":{"13":3,"14":3}}],["round",{"2":{"181":1,"183":1,"185":1}}],["routines",{"2":{"11":1}}],["row",{"2":{"155":3}}],["rows",{"2":{"155":2}}],["robust",{"0":{"15":1},"2":{"81":1}}],["rotate",{"2":{"66":1}}],["rotation",{"2":{"1":1,"6":1,"186":1}}],["rotations",{"2":{"1":3,"6":3,"186":3}}],["rotmatrix2d",{"2":{"181":1}}],["rotmatrix",{"2":{"1":1,"6":1,"186":1}}],["r",{"2":{"6":1,"9":1,"13":11,"14":12,"32":1,"177":1,"185":2,"192":6,"193":2,"194":4}}],["rᵢ₋₁",{"2":{"59":20}}],["rᵢ∗rᵢ₊₁+sᵢ⋅sᵢ₊₁",{"2":{"6":1}}],["rᵢ₊₁",{"2":{"6":1,"59":29}}],["rᵢ",{"2":{"6":2,"59":49}}],["ramer",{"2":{"183":1}}],["raster",{"0":{"148":1},"2":{"148":4}}],["ray",{"2":{"116":4}}],["raw",{"2":{"18":1}}],["range",{"2":{"13":8,"14":4,"148":3,"154":2,"155":2}}],["ranges",{"2":{"6":1,"148":2}}],["randomly",{"2":{"199":2}}],["random",{"2":{"181":2}}],["randn",{"2":{"79":1}}],["rand",{"2":{"6":1,"81":1,"148":1,"199":2}}],["rather",{"2":{"6":1,"148":1,"170":1}}],["ratio",{"2":{"6":7,"73":1,"177":1,"181":1,"182":4,"183":6,"184":4,"185":11}}],["radii",{"2":{"6":1,"177":1}}],["radius`",{"2":{"177":1}}],["radius",{"2":{"6":6,"59":13,"162":5,"177":4,"178":1}}],["radialdistance",{"0":{"182":1},"2":{"0":1,"6":2,"179":1,"181":4,"182":4}}],["rrayscore",{"2":{"1":1,"6":1,"186":1}}],["rring",{"2":{"1":1,"6":1,"186":1}}],["rewrap",{"2":{"154":2,"157":1}}],["req",{"2":{"116":44}}],["requirement",{"2":{"158":1,"169":1}}],["requirements",{"2":{"116":5}}],["required",{"2":{"82":1,"94":3,"108":3,"126":3,"136":3,"176":1,"191":1}}],["requires",{"2":{"60":1,"88":1,"90":1,"94":2,"97":3,"98":3,"99":1,"108":1,"111":3,"112":2,"113":1,"122":1,"123":4,"126":1,"129":3,"130":1,"131":1,"135":1,"136":1,"139":3,"140":3,"141":1,"174":1,"177":1,"189":1}}],["require",{"2":{"33":1,"82":1,"93":2,"94":6,"108":3,"116":32,"122":3,"126":3,"136":3}}],["requests",{"2":{"25":1,"27":1}}],["reflected",{"2":{"181":3}}],["ref",{"2":{"84":1}}],["refers",{"2":{"162":1}}],["referring",{"2":{"116":1}}],["refer",{"2":{"6":1,"148":1}}],["references",{"2":{"6":1,"59":1}}],["reference",{"0":{"193":1,"194":1},"2":{"0":1,"1":2,"173":2,"191":2,"193":1}}],["reveal",{"2":{"76":1}}],["reveals",{"2":{"76":1}}],["reverse",{"2":{"55":1,"58":1,"59":1,"64":2,"192":2}}],["rev",{"2":{"75":1}}],["render",{"2":{"58":1}}],["rendering",{"2":{"58":3,"59":1}}],["rename",{"2":{"10":1}}],["regardless",{"2":{"73":1,"116":1}}],["regions",{"2":{"71":3,"73":5,"75":1,"76":3,"116":2,"200":1}}],["region",{"2":{"60":2,"73":3,"76":2,"200":1}}],["register",{"2":{"31":3,"59":3}}],["regular",{"0":{"15":1}}],["rebuilding",{"2":{"154":1,"155":1}}],["rebuild",{"2":{"31":2,"152":1,"154":3,"157":11,"178":1,"181":2}}],["rebuilt",{"2":{"1":1,"149":1,"151":1,"154":1,"157":2}}],["readable",{"2":{"196":1}}],["readability",{"2":{"64":1}}],["read",{"2":{"154":1,"193":2}}],["reading",{"2":{"154":1}}],["reads",{"2":{"154":1}}],["reached",{"2":{"154":1,"157":3}}],["reaches",{"2":{"152":1}}],["reach",{"2":{"152":1}}],["reasons",{"2":{"189":1}}],["reason",{"2":{"24":1,"158":1,"164":1,"169":1}}],["real`",{"2":{"177":1,"178":1}}],["reality",{"2":{"81":1}}],["really",{"2":{"56":1,"116":1,"148":1,"164":1}}],["real=1",{"2":{"6":2,"177":2}}],["real=6378137`",{"2":{"177":1}}],["real=6378137",{"2":{"6":2,"177":1}}],["real",{"0":{"200":1},"2":{"5":1,"6":13,"53":1,"59":45,"63":2,"73":1,"177":3,"178":3,"185":5,"198":1}}],["relation",{"2":{"64":2}}],["relations",{"2":{"31":10,"105":1,"123":1}}],["relationship",{"2":{"23":1,"198":2}}],["relative",{"2":{"59":3}}],["relevant",{"2":{"6":1,"10":1,"82":1,"162":2}}],["reducing",{"2":{"155":2}}],["reduced",{"2":{"182":1,"183":1,"184":1}}],["reduces",{"2":{"19":1,"76":1,"155":1}}],["reduce",{"2":{"1":1,"148":1,"151":1,"155":2,"166":1}}],["redundant",{"2":{"64":1}}],["red",{"2":{"14":1,"62":2,"84":1,"93":1,"103":1,"118":1,"192":1,"193":1,"199":2}}],["removal",{"2":{"64":1}}],["removes",{"2":{"64":1,"149":1}}],["removed",{"2":{"64":3,"71":5,"148":1}}],["remove",{"2":{"56":1,"64":33,"66":1,"69":2,"70":5,"72":5,"75":2,"171":2,"182":1,"183":3,"185":4}}],["removing",{"2":{"6":3,"64":1,"71":1,"182":1,"183":1,"184":1}}],["remainingnode",{"2":{"148":3}}],["remaining",{"2":{"64":1,"88":1,"116":2,"183":1}}],["remain",{"2":{"1":1,"6":8,"151":1,"154":1,"181":2}}],["resolution",{"2":{"193":1}}],["resolved",{"2":{"148":1}}],["resembles",{"2":{"162":2}}],["reset",{"2":{"64":1,"154":1}}],["resize",{"2":{"13":1,"14":1,"64":2}}],["resampled",{"2":{"6":1,"178":1}}],["respectively",{"2":{"64":1,"122":1,"157":1,"192":1}}],["respect",{"2":{"6":2,"72":1,"73":1,"82":1,"116":6}}],["rest",{"2":{"6":1,"59":2,"75":1}}],["resulting",{"2":{"69":1,"76":1,"148":1,"199":1}}],["results",{"2":{"3":2,"6":2,"73":1,"105":1,"122":1,"154":1,"155":1,"159":1,"183":25,"192":3}}],["result",{"2":{"1":2,"3":5,"4":5,"6":11,"19":1,"32":3,"53":1,"56":2,"66":1,"73":15,"82":1,"85":2,"91":1,"94":1,"104":1,"119":1,"136":1,"151":2,"154":9,"155":2,"177":3,"185":6}}],["receives",{"2":{"154":1,"155":1}}],["recent",{"2":{"64":1,"71":1,"73":1,"76":1}}],["recalculate",{"2":{"153":1}}],["recursive",{"2":{"152":1}}],["recursively",{"2":{"4":1,"6":1,"152":1,"168":1}}],["rect",{"2":{"52":3,"55":5,"65":3,"84":7}}],["rectangle",{"2":{"52":2,"55":2,"58":2,"65":2,"66":1,"84":2,"176":5,"177":8,"199":2}}],["rectangletrait",{"2":{"32":1}}],["recommended",{"2":{"22":1}}],["reconstructing",{"2":{"181":1}}],["reconstructed",{"2":{"18":1}}],["reconstruct",{"2":{"1":1,"18":1,"31":2,"151":1,"154":2,"155":1,"157":28}}],["replace",{"2":{"64":1,"148":2,"183":1}}],["replaced",{"2":{"22":1}}],["repl",{"2":{"60":1,"174":1,"177":1}}],["repeat",{"2":{"63":1,"64":3,"88":6}}],["repeating",{"2":{"56":1,"76":1}}],["repeated",{"2":{"4":3,"6":3,"9":1,"53":2,"59":1,"64":2,"76":2,"85":2,"88":4,"116":1}}],["represented",{"2":{"162":1,"199":1}}],["represent",{"2":{"17":1,"59":1,"64":4,"88":1,"162":1}}],["representing",{"2":{"6":2,"71":1,"73":1,"76":1,"82":1,"84":1,"88":1,"162":1,"200":1}}],["represents",{"2":{"6":1,"166":2,"167":1}}],["reprojects",{"2":{"173":1}}],["reprojection",{"0":{"173":1},"1":{"174":1}}],["reproject",{"2":{"0":1,"1":4,"31":2,"149":1,"173":6,"174":2}}],["re",{"2":{"1":1,"6":1,"17":1,"82":1,"186":1,"191":1,"193":1}}],["retrievable",{"2":{"1":1,"173":1}}],["returnval",{"2":{"116":9}}],["returntype",{"2":{"19":1}}],["returning",{"2":{"18":1,"60":1,"71":2}}],["return",{"0":{"22":1},"2":{"1":1,"3":17,"4":2,"6":36,"13":3,"14":3,"23":2,"30":1,"32":3,"35":1,"36":1,"37":1,"38":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"53":5,"56":5,"59":20,"60":1,"63":4,"64":36,"66":12,"69":12,"70":5,"71":4,"72":4,"73":18,"75":6,"76":9,"82":2,"85":8,"88":30,"91":1,"94":1,"100":2,"101":2,"104":1,"105":18,"108":2,"114":2,"115":2,"116":71,"118":1,"119":1,"122":2,"123":26,"126":1,"128":2,"132":2,"133":2,"136":1,"142":2,"143":2,"146":10,"148":12,"154":17,"155":3,"157":7,"158":1,"160":4,"166":6,"167":2,"171":2,"172":2,"173":1,"178":4,"181":3,"182":1,"183":5,"184":3,"185":7,"186":2,"187":2,"189":3,"190":8}}],["returned",{"2":{"1":1,"6":10,"22":2,"23":1,"64":3,"69":1,"70":2,"72":2,"73":2,"75":2,"81":1,"82":1,"148":1,"154":1,"157":2,"164":1,"173":1,"181":1}}],["returns",{"2":{"1":1,"3":5,"4":4,"5":3,"6":23,"18":1,"22":2,"53":1,"56":2,"59":6,"63":3,"64":4,"66":6,"69":1,"70":1,"73":1,"75":1,"82":1,"85":8,"87":1,"90":2,"91":1,"94":1,"103":2,"104":1,"107":1,"116":4,"119":1,"123":2,"136":1,"148":2,"151":1,"154":2,"164":1,"178":1,"187":1,"198":1}}],["phi``",{"2":{"162":1}}],["physics",{"2":{"162":1}}],["psa",{"2":{"154":1,"155":1}}],["pb",{"2":{"105":2}}],["p0",{"2":{"85":9}}],["p3",{"2":{"64":8,"184":4}}],["ptm",{"2":{"146":3}}],["ptj",{"2":{"146":5}}],["pti",{"2":{"146":3}}],["ptrait",{"2":{"85":2}}],["pts",{"2":{"64":22,"69":7}}],["pt",{"2":{"64":114,"69":2,"73":26,"116":8,"183":4}}],["pt2",{"2":{"64":14,"73":2}}],["pt1",{"2":{"64":18,"73":2}}],["pn",{"2":{"128":3}}],["pn2",{"2":{"64":4}}],["pn1",{"2":{"64":4}}],["pfirst",{"2":{"56":3}}],["pu",{"2":{"199":2}}],["purpose",{"2":{"154":1}}],["pure",{"2":{"6":1,"82":1,"148":1}}],["purely",{"2":{"6":1,"18":1,"162":1,"177":1}}],["push",{"2":{"64":15,"69":5,"70":2,"72":2,"73":2,"75":4,"76":5,"148":3,"160":1,"178":3,"183":3}}],["pulling",{"2":{"82":1}}],["pull",{"2":{"25":1,"27":1}}],["public",{"2":{"24":1}}],["pick",{"2":{"193":2}}],["piece",{"2":{"64":6,"171":6}}],["pieces",{"2":{"64":12,"69":1,"71":2,"75":4,"116":1,"171":9}}],["pi",{"2":{"13":2}}],["pixels",{"2":{"148":1}}],["pixel",{"2":{"6":2,"148":7}}],["pythagorean",{"2":{"85":1}}],["py",{"2":{"13":2,"14":2}}],["px",{"2":{"13":2,"14":2}}],["peucker",{"2":{"179":2,"181":3,"183":2}}],["peaks",{"2":{"148":2}}],["peculiarities",{"0":{"21":1},"1":{"22":1,"23":1,"24":1}}],["people",{"2":{"9":1}}],["persist",{"2":{"154":1}}],["performed",{"2":{"162":1,"199":1}}],["performs",{"2":{"59":1,"155":1,"178":1}}],["perform",{"2":{"26":1,"58":1,"59":2,"64":1,"149":1,"155":1,"198":3,"199":2,"201":1}}],["performing",{"2":{"6":3,"23":1,"59":1,"70":1,"72":1,"75":1,"199":1}}],["performance",{"2":{"4":1,"6":2,"22":1,"148":1,"168":1,"169":1,"181":1,"196":1}}],["per",{"2":{"5":2,"6":2,"58":1,"59":2,"64":5,"148":1,"154":2,"155":2,"178":1}}],["pl",{"2":{"199":2}}],["plt",{"2":{"192":1}}],["please",{"2":{"64":1}}],["place",{"2":{"73":1,"198":1}}],["placement",{"2":{"64":1}}],["plan",{"2":{"175":1}}],["plane",{"2":{"6":1,"59":1,"162":3,"178":1,"197":1}}],["planar",{"2":{"6":4,"31":2,"162":5,"178":9}}],["plottable",{"2":{"148":1}}],["plotted",{"2":{"62":1}}],["plotting",{"0":{"192":1},"2":{"6":1,"148":1,"175":1,"178":1,"191":1,"192":4,"193":1}}],["plots",{"2":{"58":2}}],["plot",{"0":{"193":1},"2":{"13":1,"58":3,"79":2,"80":1,"81":1,"87":1,"121":1,"148":1,"177":2,"181":4,"191":2,"192":9,"193":5,"194":1,"196":1,"199":1}}],["plus",{"2":{"5":1,"6":1,"59":1}}],["p2y",{"2":{"190":3}}],["p2x",{"2":{"190":3}}],["p2box",{"2":{"58":1}}],["p2",{"2":{"3":2,"4":2,"6":6,"15":12,"53":12,"56":9,"64":18,"66":19,"75":2,"81":1,"85":15,"88":11,"94":2,"103":2,"116":12,"123":2,"146":3,"176":1,"184":4,"190":3,"192":2}}],["p1y",{"2":{"190":3}}],["p1x",{"2":{"190":3}}],["p1",{"2":{"3":3,"4":2,"6":7,"15":12,"53":21,"56":8,"58":4,"64":9,"66":25,"68":1,"75":2,"81":2,"85":15,"88":14,"93":5,"94":3,"103":5,"116":4,"123":2,"128":3,"146":3,"184":4,"190":3,"192":1}}],["practice",{"2":{"194":1}}],["pred",{"2":{"198":5,"199":1,"200":2,"201":1}}],["predicate",{"2":{"7":1,"105":1,"198":6,"199":1,"201":5}}],["predicates",{"0":{"12":1,"15":1,"201":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"7":4,"12":1,"31":1,"64":5,"73":4,"74":3,"116":1,"198":1,"200":1}}],["pretty",{"2":{"173":1}}],["prettytime",{"2":{"13":2}}],["prevent",{"2":{"71":2,"73":2,"76":2}}],["prev^2",{"2":{"53":2}}],["prev",{"2":{"53":14,"64":69,"146":4}}],["previously",{"2":{"176":1}}],["previous",{"2":{"19":1,"53":1,"154":1,"182":3}}],["preparations",{"2":{"20":1}}],["prepared",{"2":{"20":1,"148":2}}],["prepare",{"0":{"20":1},"2":{"17":1,"20":1}}],["precision",{"2":{"11":1}}],["preserve",{"2":{"181":4,"183":3}}],["preserved",{"2":{"154":2}}],["preserving",{"2":{"179":1}}],["presentation",{"2":{"6":1,"59":1}}],["present",{"2":{"6":1,"154":1,"189":1}}],["presence",{"2":{"6":1,"32":1,"189":1}}],["prescribes",{"2":{"20":1}}],["press",{"2":{"6":1,"59":1}}],["pre",{"2":{"6":1,"75":1,"181":1,"183":2}}],["prefilter",{"2":{"6":1,"181":7}}],["protters",{"2":{"154":1,"155":1}}],["progressively",{"2":{"152":1}}],["program",{"2":{"17":1}}],["programming",{"2":{"17":1,"26":1}}],["promote",{"2":{"59":5}}],["property",{"2":{"155":2}}],["properties=gi",{"2":{"157":1}}],["properties=namedtuple",{"2":{"155":1}}],["properties=",{"2":{"148":1}}],["properties",{"2":{"6":1,"154":8,"157":1,"181":1,"185":1}}],["propagated",{"2":{"154":1}}],["propagate",{"2":{"59":16,"85":4}}],["probably",{"2":{"56":1,"154":1}}],["prod",{"2":{"53":4}}],["product",{"2":{"53":1}}],["process",{"2":{"96":3,"97":3,"98":3,"99":1,"105":1,"110":3,"111":3,"112":2,"113":1,"116":11,"123":4,"128":1,"129":3,"130":1,"131":1,"138":3,"139":3,"140":3,"141":1,"154":1,"155":1,"183":1}}],["processed",{"2":{"64":6}}],["processors",{"2":{"31":1,"94":2,"108":2,"126":2,"136":2}}],["processor",{"2":{"31":1}}],["processing",{"2":{"23":1}}],["profile",{"2":{"9":1}}],["providers",{"2":{"159":1,"170":1}}],["provide",{"0":{"23":1},"2":{"6":6,"52":1,"55":1,"57":1,"62":1,"65":1,"68":1,"70":2,"72":2,"75":2,"84":1,"87":1,"90":1,"93":1,"103":1,"107":1,"116":2,"118":1,"121":1,"125":1,"135":1,"148":1,"185":1}}],["provides",{"2":{"6":1,"77":1,"82":1,"193":1}}],["provided",{"2":{"4":1,"6":3,"11":1,"64":1,"85":1,"88":1,"170":1,"177":2,"189":1}}],["projecting",{"2":{"193":1}}],["projections",{"2":{"162":1}}],["projection",{"2":{"85":2,"191":1,"193":1}}],["project",{"2":{"9":1}}],["projects",{"2":{"9":1}}],["proj",{"2":{"1":2,"6":3,"173":2,"174":4,"176":1,"177":6,"191":1}}],["prints",{"2":{"174":1}}],["printstyled",{"2":{"60":1,"174":1,"177":1}}],["println",{"2":{"60":1,"174":1,"177":1,"181":2}}],["print",{"2":{"60":2,"174":2,"177":2}}],["primitives",{"0":{"157":1},"2":{"31":1,"157":1}}],["primitive",{"2":{"29":1}}],["primarily",{"2":{"25":2,"27":2,"163":1}}],["primary",{"2":{"3":2,"6":3,"94":1,"136":1,"181":1}}],["priority",{"2":{"1":1,"173":1}}],["pay",{"2":{"155":1}}],["paper",{"2":{"116":2}}],["pa",{"2":{"105":2}}],["pathof",{"2":{"181":2}}],["paths",{"0":{"197":1},"2":{"164":1,"197":2}}],["path",{"2":{"55":3,"193":2}}],["parquet",{"2":{"196":3}}],["parent",{"2":{"164":1}}],["parse",{"2":{"116":1,"123":1}}],["part",{"2":{"66":2,"76":2,"116":3,"153":1}}],["partition",{"2":{"154":2,"155":2}}],["partialsort",{"2":{"185":1}}],["partial",{"2":{"66":4}}],["partially",{"2":{"64":2,"76":2}}],["particularly",{"2":{"59":1}}],["particular",{"2":{"30":1,"53":1,"148":1,"193":2}}],["parameter",{"2":{"163":3}}],["parameterized",{"2":{"162":1}}],["parameters",{"2":{"157":1,"163":2}}],["parametrized",{"2":{"162":1}}],["params",{"2":{"6":2,"189":10}}],["parallel",{"2":{"116":1,"146":1}}],["paradigm",{"0":{"29":1}}],["paradigms",{"0":{"17":1},"1":{"18":1,"19":1,"20":1},"2":{"17":2,"20":1}}],["parlance",{"2":{"5":1,"6":1,"59":1,"162":1}}],["passes",{"2":{"66":2,"116":1}}],["passed",{"2":{"1":2,"6":5,"82":1,"148":1,"157":4,"173":1,"177":2,"186":1,"189":2,"201":1}}],["passable",{"2":{"59":18}}],["passing",{"2":{"18":1,"154":1,"179":1}}],["pass",{"2":{"5":1,"6":3,"18":1,"59":1,"91":1,"104":1,"116":2,"119":1,"154":1,"164":1,"177":1,"181":1}}],["pairs",{"2":{"73":1,"192":1}}],["pair",{"2":{"3":2,"6":2,"66":1,"123":2,"154":2,"155":1}}],["packages",{"2":{"25":1,"27":1,"77":1,"157":2,"158":1,"188":1,"191":3,"193":1,"196":1}}],["package",{"2":{"1":2,"6":1,"22":1,"25":2,"27":2,"60":1,"77":2,"82":1,"148":1,"173":3,"174":1,"177":1,"193":1,"196":2}}],["page",{"2":{"0":1,"9":1,"26":1,"29":1,"31":1,"32":1,"50":1,"53":1,"56":1,"58":1,"59":1,"60":1,"63":1,"64":1,"66":1,"69":1,"71":1,"73":1,"74":1,"76":1,"82":1,"85":1,"88":1,"91":1,"101":1,"104":1,"105":1,"115":1,"116":1,"119":1,"123":1,"133":1,"143":1,"146":1,"147":1,"148":1,"154":1,"155":1,"156":1,"157":1,"160":1,"164":1,"167":1,"168":1,"171":1,"172":1,"174":1,"178":1,"185":1,"186":1,"187":1,"189":1,"190":1}}],["p",{"2":{"1":5,"6":2,"13":13,"14":12,"15":2,"52":1,"55":1,"62":1,"64":5,"65":1,"66":5,"71":2,"75":2,"79":1,"80":1,"84":3,"87":1,"90":1,"93":1,"103":1,"105":4,"107":1,"116":20,"118":1,"121":1,"125":1,"135":1,"146":4,"148":3,"149":3,"151":3,"154":5,"172":7,"176":1,"180":1,"181":1,"185":3,"186":9,"187":7,"190":11,"198":1,"199":1}}],["poylgon",{"2":{"116":1}}],["potential",{"2":{"66":1}}],["potentially",{"2":{"6":2,"64":1,"167":2,"171":2}}],["post",{"2":{"183":2}}],["possibly",{"2":{"154":1}}],["possiblenodes",{"2":{"148":2}}],["possible",{"2":{"6":3,"70":1,"72":1,"75":1,"148":1,"154":1,"155":1}}],["possibility",{"2":{"152":1}}],["possibilities",{"2":{"73":1}}],["position=",{"2":{"181":1}}],["position",{"2":{"6":1,"146":1,"176":1}}],["positive",{"2":{"4":4,"6":4,"55":3,"56":1,"84":3,"85":3,"178":2,"185":1}}],["poles",{"2":{"162":1}}],["pole",{"2":{"162":2}}],["polgons",{"2":{"148":1}}],["polgontrait",{"2":{"1":1,"151":1}}],["polar",{"2":{"6":1,"177":1}}],["polynodes",{"2":{"64":7,"70":1,"72":1,"75":1}}],["polynode",{"2":{"64":36}}],["polypoints",{"2":{"59":46}}],["poly",{"2":{"6":14,"15":2,"52":1,"55":1,"56":6,"58":2,"59":3,"62":1,"64":107,"65":2,"66":4,"68":4,"69":20,"70":22,"71":12,"72":15,"73":10,"75":19,"76":79,"79":2,"84":1,"85":3,"88":4,"105":10,"116":21,"146":5,"148":5,"171":18,"176":2,"180":2,"181":8,"190":8,"192":2,"199":5}}],["polys",{"2":{"6":2,"64":39,"68":3,"69":10,"70":14,"71":14,"72":9,"73":6,"75":14,"76":28,"171":26}}],["polys1",{"2":{"3":2,"6":2,"123":6}}],["polys2",{"2":{"3":2,"6":2,"123":6}}],["poly2",{"2":{"3":3,"4":2,"6":7,"70":2,"88":2,"116":19,"122":2,"123":8}}],["poly1",{"2":{"3":3,"4":2,"6":7,"70":2,"88":2,"116":14,"122":2,"123":8}}],["polygon3",{"2":{"192":2,"193":1}}],["polygon2",{"2":{"192":6}}],["polygon1",{"2":{"192":4}}],["polygonization",{"2":{"148":1}}],["polygonizing",{"0":{"148":1}}],["polygonized",{"2":{"148":1}}],["polygonize",{"2":{"0":1,"6":6,"9":1,"31":1,"148":31}}],["polygon`",{"2":{"59":3,"82":1}}],["polygons",{"0":{"99":1,"131":1,"141":1,"169":1},"1":{"170":1,"171":1},"2":{"3":3,"4":3,"5":1,"6":17,"9":1,"23":5,"31":1,"56":5,"57":1,"59":2,"62":1,"63":1,"64":14,"66":1,"69":2,"70":9,"71":5,"72":3,"73":8,"75":6,"76":19,"84":1,"85":1,"88":5,"99":1,"122":1,"123":3,"141":1,"146":1,"148":19,"152":1,"159":2,"167":3,"169":2,"170":2,"171":10,"179":1,"181":1,"192":3,"193":1,"199":5,"200":3}}],["polygontrait",{"2":{"1":1,"3":2,"4":6,"6":11,"15":3,"23":1,"32":1,"53":2,"56":3,"59":3,"63":2,"64":2,"66":2,"69":1,"70":5,"71":5,"72":3,"73":5,"75":4,"76":8,"85":2,"88":10,"96":2,"97":1,"98":1,"99":3,"100":1,"105":4,"110":2,"111":2,"112":1,"113":2,"114":1,"123":6,"128":2,"129":1,"130":1,"131":3,"132":1,"138":2,"139":1,"140":1,"141":3,"142":1,"149":1,"151":1,"152":2,"154":2,"155":1,"160":2,"166":2,"167":1,"171":2,"181":2,"190":1}}],["polygon",{"0":{"34":1,"64":1,"67":1,"70":1,"71":1,"73":1,"75":1,"76":1,"113":1},"1":{"35":1,"36":1,"37":1,"38":1,"68":1,"69":1},"2":{"0":1,"1":4,"3":4,"4":21,"5":9,"6":65,"9":2,"11":3,"15":4,"20":1,"23":1,"52":1,"53":5,"55":2,"56":5,"57":5,"58":16,"59":57,"62":2,"63":4,"64":39,"65":3,"66":4,"68":3,"69":10,"70":5,"71":7,"72":5,"73":6,"75":6,"76":34,"77":1,"81":1,"82":3,"84":3,"85":14,"88":12,"94":1,"96":3,"97":3,"98":4,"99":8,"105":1,"110":3,"111":4,"112":4,"113":4,"116":66,"122":3,"123":5,"126":1,"128":3,"129":4,"130":5,"131":7,"136":1,"138":3,"139":4,"140":4,"141":8,"146":5,"148":4,"151":1,"154":1,"158":4,"159":8,"160":5,"165":1,"167":4,"169":3,"170":12,"171":7,"176":1,"177":4,"180":1,"181":9,"186":3,"190":6,"192":12,"193":5,"194":7,"195":2,"199":6}}],["pointwise",{"0":{"186":1},"2":{"173":1}}],["point1",{"2":{"85":4}}],["point`",{"2":{"73":1}}],["pointedgeside",{"2":{"64":1}}],["point₂",{"2":{"63":13}}],["point₁",{"2":{"63":13}}],["point3s",{"2":{"59":10}}],["point3f",{"2":{"58":1}}],["pointrait",{"2":{"6":1}}],["point2f",{"2":{"58":4,"59":2,"79":1,"84":1}}],["point2d",{"2":{"58":1}}],["point2",{"2":{"6":2,"59":5,"81":1,"85":4}}],["pointtrait",{"2":{"1":1,"4":4,"6":6,"18":1,"32":1,"50":1,"53":2,"56":1,"59":3,"66":1,"72":2,"82":1,"85":17,"88":8,"96":6,"100":1,"110":6,"114":1,"128":6,"132":1,"138":6,"142":1,"149":2,"151":1,"152":1,"154":7,"155":4,"157":12,"163":2,"166":2,"167":1,"168":1,"172":2,"181":2,"186":2,"187":2,"190":1}}],["point",{"0":{"110":1,"128":1},"2":{"1":4,"3":10,"4":37,"5":7,"6":82,"9":2,"20":1,"50":1,"53":12,"56":3,"57":3,"58":1,"59":126,"63":6,"64":97,"66":50,"69":13,"71":9,"72":1,"73":71,"76":9,"82":3,"84":17,"85":73,"88":27,"91":3,"93":1,"94":2,"96":8,"105":21,"108":2,"110":10,"116":138,"118":1,"121":2,"122":2,"123":20,"125":1,"126":3,"128":10,"129":1,"131":1,"136":4,"138":11,"146":1,"148":3,"151":1,"154":1,"158":1,"159":2,"167":2,"169":1,"171":2,"173":1,"175":1,"181":2,"182":3,"183":9,"184":1,"186":2,"190":4,"192":111,"193":7,"194":8,"199":2}}],["points2",{"2":{"3":1,"6":1,"123":3}}],["points1",{"2":{"3":1,"6":1,"123":3}}],["points",{"0":{"96":1,"138":1},"2":{"0":1,"1":3,"3":1,"4":11,"5":1,"6":53,"9":3,"13":1,"53":2,"55":3,"56":3,"58":8,"59":32,"63":1,"64":55,"66":5,"69":3,"70":5,"71":1,"72":8,"73":28,"75":4,"76":1,"77":3,"79":4,"81":4,"82":6,"84":2,"85":8,"87":2,"88":13,"90":1,"94":6,"96":3,"97":4,"108":6,"110":1,"111":7,"112":3,"116":10,"122":1,"123":4,"126":5,"128":1,"129":2,"130":4,"131":3,"135":1,"136":5,"138":3,"139":3,"140":3,"141":1,"145":1,"148":3,"154":2,"155":1,"168":2,"173":1,"176":2,"177":2,"181":11,"182":11,"183":26,"184":10,"185":33,"186":2,"187":2,"190":25,"192":8,"193":1,"198":1,"199":11}}],["pointorientation",{"2":{"0":1,"6":2,"116":2}}],["my",{"2":{"200":1,"201":2}}],["m`",{"2":{"162":1}}],["mdk",{"2":{"154":2}}],["moore",{"2":{"148":1}}],["moved",{"2":{"64":1,"173":1}}],["move",{"2":{"63":1,"116":1}}],["mode",{"2":{"201":3}}],["model",{"2":{"162":1,"198":1}}],["modify",{"2":{"192":1}}],["modified",{"2":{"154":1,"155":1}}],["module",{"2":{"173":1,"178":1}}],["modules",{"2":{"6":1,"59":1}}],["mod1",{"2":{"59":5}}],["mod",{"2":{"59":1,"64":1}}],["most",{"2":{"25":1,"27":1,"64":1,"71":1,"73":1,"76":1,"81":1,"116":1,"181":1,"196":2}}],["monotone",{"2":{"20":1,"81":2}}],["monotonechainmethod",{"2":{"0":1,"6":1,"77":1,"81":2,"82":4}}],["moment",{"2":{"6":1,"176":1,"178":1}}],["more",{"2":{"6":3,"7":1,"9":1,"10":1,"11":1,"23":1,"26":1,"29":1,"64":1,"70":1,"72":1,"75":1,"82":1,"116":1,"123":1,"154":2,"155":2,"160":1,"161":1,"162":2,"174":1,"176":1,"178":1,"192":2,"198":1}}],["missing",{"2":{"176":4}}],["missed",{"2":{"148":1}}],["mistakenly",{"2":{"169":1}}],["mid",{"2":{"66":2,"116":3}}],["midpoint",{"2":{"64":2}}],["middle",{"2":{"64":2}}],["mining",{"2":{"200":1}}],["minimal",{"2":{"200":1}}],["minimize",{"2":{"73":1}}],["minimum",{"2":{"4":7,"6":12,"65":1,"66":2,"85":12,"181":1,"182":1,"184":1}}],["mind",{"2":{"176":1,"199":1}}],["minmax",{"2":{"73":4}}],["min",{"2":{"66":1,"73":16,"85":15,"181":1,"183":3,"184":1,"185":28}}],["minus",{"2":{"55":1}}],["minpoints=0",{"2":{"148":1}}],["minpoints",{"2":{"6":2}}],["might",{"2":{"6":3,"25":1,"27":1,"56":1,"70":1,"72":1,"73":1,"75":1,"165":1,"183":1}}],["mixed",{"2":{"6":4,"181":1}}],["m",{"2":{"5":1,"6":1,"15":10,"59":2,"66":6,"146":2,"193":1}}],["mp",{"2":{"105":2}}],["mp1",{"2":{"4":2,"6":2,"88":7}}],["mp2",{"2":{"4":2,"6":2,"88":8}}],["mason",{"2":{"154":1,"155":1}}],["markersize",{"2":{"192":2}}],["marker",{"2":{"192":2}}],["marked",{"2":{"64":6,"71":1,"73":1,"76":1}}],["marking",{"2":{"71":2,"73":2,"76":2}}],["mark",{"2":{"64":2}}],["marks",{"2":{"64":1}}],["mag",{"2":{"53":4}}],["making",{"2":{"64":1,"148":1,"152":1,"170":1,"192":1,"194":2}}],["makie",{"2":{"13":1,"14":1,"52":1,"55":1,"58":3,"62":1,"65":1,"68":4,"79":1,"80":1,"84":1,"87":1,"90":1,"93":1,"103":1,"107":1,"118":1,"121":1,"125":1,"135":1,"148":3,"180":1,"181":1,"197":1}}],["makevalid",{"2":{"181":2}}],["makes",{"2":{"56":1,"64":1,"85":1,"154":1,"159":1,"169":1,"170":1}}],["make",{"2":{"9":1,"25":1,"27":1,"53":1,"64":3,"73":1,"85":1,"122":1,"148":2,"152":1,"160":1,"176":1,"185":1,"188":1,"192":2,"194":1}}],["mainly",{"2":{"59":1,"84":1,"149":1,"155":1}}],["maintain",{"2":{"56":1}}],["main",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"7":1,"26":1,"64":1,"148":1,"154":1,"177":1}}],["manner",{"2":{"198":1}}],["manipulate",{"2":{"196":1}}],["manifolds",{"2":{"162":2}}],["manifold",{"0":{"162":1},"2":{"6":1,"31":2,"162":12,"178":3}}],["manually",{"2":{"158":1}}],["many",{"2":{"4":1,"5":1,"6":2,"23":1,"26":1,"59":1,"64":1,"69":1,"71":1,"73":2,"76":1,"88":1,"159":1,"168":1}}],["mapped",{"2":{"196":1}}],["maptasks`",{"2":{"154":1}}],["maptasks",{"2":{"154":7}}],["mapreducetasks`",{"2":{"155":1}}],["mapreducetasks",{"2":{"155":5}}],["mapreduce",{"2":{"71":1,"148":2,"154":3,"155":7}}],["map",{"0":{"193":1},"2":{"6":1,"13":1,"18":3,"19":1,"29":1,"59":1,"64":1,"73":1,"148":17,"154":11,"155":5,"157":10,"160":1,"162":1,"163":1,"181":1,"191":1,"193":1,"194":1,"196":1}}],["matches",{"2":{"88":1,"148":1}}],["match",{"2":{"88":12,"123":3,"148":1,"154":1,"157":2}}],["matching",{"2":{"3":1,"6":1,"22":1,"88":3,"123":1,"152":2}}],["matlab",{"2":{"68":1}}],["materializer`",{"2":{"154":1}}],["materializer",{"2":{"22":1,"154":1}}],["mathematical",{"2":{"162":1}}],["mathematically",{"2":{"6":1,"146":1,"162":2}}],["mathematics",{"2":{"162":1}}],["mathrm",{"2":{"59":1}}],["math",{"2":{"7":1}}],["matrix",{"2":{"6":1,"14":2,"59":1}}],["maxlog=3",{"2":{"178":1}}],["maximal",{"2":{"73":1}}],["maximum",{"2":{"3":1,"6":4,"14":1,"65":1,"66":4,"105":1,"148":1,"177":1,"178":1,"183":4}}],["max",{"2":{"6":9,"32":9,"53":2,"66":1,"148":1,"154":1,"155":1,"176":5,"177":8,"178":21,"183":36,"185":1,"197":1}}],["made",{"2":{"6":2,"63":1,"64":1,"73":1,"130":1,"152":1,"167":1,"171":1,"184":1}}],["maybe",{"2":{"32":1,"116":4,"154":2,"155":3,"157":2}}],["may",{"2":{"1":1,"6":3,"23":2,"24":1,"59":2,"64":1,"73":1,"81":1,"146":1,"147":1,"151":1,"152":1,"154":4,"162":1,"163":1,"169":1,"170":1,"177":1}}],["mercator",{"2":{"193":1}}],["merge",{"2":{"154":1}}],["measures",{"2":{"162":1}}],["measure",{"2":{"157":1,"175":1}}],["meant",{"2":{"26":1}}],["meaning",{"2":{"3":3,"4":1,"6":4,"24":1,"56":1,"60":1,"123":4,"146":1,"162":1}}],["means",{"2":{"3":1,"6":2,"55":1,"56":1,"60":1,"93":1,"116":3,"121":1,"122":1,"146":1,"152":1,"162":2,"164":2}}],["mean",{"2":{"0":1,"6":5,"17":1,"58":2,"59":5,"155":1,"162":1}}],["meanvalue",{"2":{"0":1,"5":2,"6":3,"57":1,"58":2,"59":15}}],["meets",{"2":{"116":9,"123":1,"183":1}}],["meet",{"2":{"73":3,"93":1,"94":1,"108":1,"116":7,"126":1,"136":1}}],["memory",{"2":{"59":1,"194":1}}],["mesh",{"2":{"58":1}}],["message",{"2":{"6":1,"189":1}}],["me",{"0":{"23":1}}],["mentioned",{"2":{"19":1}}],["mentions",{"2":{"6":1,"189":1}}],["menu",{"2":{"14":3}}],["median",{"2":{"13":4,"155":1}}],["mechanics",{"2":{"6":1,"59":1}}],["metadatakeys",{"2":{"154":1}}],["metadatasupport",{"2":{"154":2}}],["metadata",{"2":{"154":11}}],["met",{"2":{"116":44}}],["meters",{"2":{"6":4,"176":1,"177":4,"193":1}}],["methoderror",{"2":{"31":3}}],["methods",{"0":{"2":1,"3":1,"4":1,"6":1,"39":1},"1":{"3":1,"4":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"1":1,"6":7,"9":1,"25":1,"27":1,"31":27,"59":3,"77":1,"94":1,"108":1,"126":1,"136":1,"148":1,"152":1,"154":1,"157":2,"163":1,"176":1,"181":2,"186":1,"192":1}}],["method",{"0":{"174":1},"2":{"1":1,"4":1,"5":10,"6":30,"24":1,"32":1,"53":1,"56":1,"59":37,"60":2,"63":1,"66":1,"73":1,"76":1,"81":3,"82":2,"85":4,"88":1,"94":2,"108":2,"122":1,"126":2,"136":2,"148":1,"154":1,"155":1,"157":3,"164":1,"173":1,"174":2,"176":2,"177":9,"178":22,"179":2,"189":3,"198":1,"201":1}}],["mutation",{"2":{"195":1}}],["mutlipolygon",{"2":{"4":1,"6":1,"63":1}}],["muladd",{"2":{"59":2}}],["multifloats",{"2":{"13":1,"14":1,"15":1}}],["multifloat",{"2":{"7":1}}],["multilinestringtrait",{"2":{"32":1,"166":1}}],["multilinestring",{"2":{"6":1,"190":2}}],["multi",{"0":{"100":1,"101":1,"114":1,"115":1,"132":1,"133":1,"142":1,"143":1},"2":{"4":2,"6":3,"53":1,"56":1,"66":1,"88":2,"100":1,"101":1,"114":1,"115":1,"132":1,"133":1,"142":1,"143":1}}],["multicurves",{"2":{"56":1,"66":1}}],["multicurve",{"2":{"4":1,"6":1,"56":1}}],["multigeometry",{"2":{"4":2,"6":2,"85":2}}],["multiplication",{"2":{"178":1}}],["multiplied",{"2":{"59":3,"162":1}}],["multiple",{"2":{"4":1,"6":1,"59":1,"116":1,"168":1,"185":1,"192":1,"196":1}}],["multiply",{"2":{"1":1,"6":1,"186":1}}],["multipolys",{"2":{"76":3}}],["multipoly`",{"2":{"70":2,"72":2,"75":2}}],["multipoly",{"2":{"6":9,"15":3,"70":1,"71":27,"72":1,"73":26,"75":1,"76":24,"171":21,"181":9}}],["multipolygon`",{"2":{"148":1}}],["multipolygons",{"2":{"3":1,"4":1,"6":11,"63":1,"70":3,"72":3,"73":3,"75":3,"84":1,"88":1,"122":1,"123":1,"170":1,"192":1,"193":1}}],["multipolygon",{"2":{"3":2,"4":5,"6":17,"56":2,"62":1,"70":1,"71":7,"72":1,"73":5,"75":1,"76":6,"88":4,"123":2,"148":7,"167":2,"169":7,"170":8,"171":2,"181":3,"192":8,"193":1}}],["multipolygontrait",{"2":{"1":1,"3":4,"4":2,"6":6,"23":1,"32":1,"71":4,"73":4,"76":4,"88":6,"100":1,"101":1,"114":1,"115":1,"123":8,"132":1,"133":1,"142":1,"143":1,"151":1,"154":1,"166":1,"171":4}}],["multipoint",{"2":{"4":5,"6":5,"50":1,"56":1,"88":5,"105":6,"154":1,"155":2,"181":1,"192":5}}],["multipoints",{"2":{"3":2,"4":1,"6":3,"56":1,"66":1,"88":2,"123":2,"181":1,"192":1}}],["multipointtrait",{"2":{"1":1,"3":2,"4":4,"6":7,"32":1,"53":2,"56":1,"66":1,"88":8,"100":1,"101":1,"105":4,"114":1,"115":1,"123":4,"132":1,"133":1,"142":1,"143":1,"151":1,"152":1,"166":1,"181":2,"190":1}}],["multithreading",{"2":{"1":2,"4":1,"6":4,"151":1,"156":1}}],["must",{"2":{"1":1,"3":8,"4":2,"5":1,"6":22,"9":1,"53":1,"59":5,"60":1,"64":2,"66":3,"69":1,"73":2,"88":5,"91":2,"94":1,"103":1,"104":1,"108":1,"116":13,"122":1,"125":1,"126":1,"136":2,"148":1,"154":1,"157":2,"165":1,"166":3,"167":1,"173":1,"177":1,"178":1,"181":1,"185":4,"189":1}}],["much",{"2":{"0":1,"6":3,"70":1,"72":1,"75":1}}],["df",{"2":{"195":3,"196":4,"199":10,"200":12}}],["dp",{"2":{"181":3}}],["dy",{"2":{"146":2,"178":3}}],["dy2",{"2":{"146":2}}],["dy1",{"2":{"105":10,"146":2}}],["dyc",{"2":{"105":2}}],["dx",{"2":{"146":2,"178":3}}],["dx2",{"2":{"146":2}}],["dx1",{"2":{"105":10,"146":2}}],["dxc",{"2":{"105":2}}],["drop",{"2":{"76":1,"171":1,"178":1}}],["driven",{"2":{"25":1,"27":1}}],["driving",{"2":{"25":1,"27":1}}],["duplicated",{"2":{"73":2}}],["during",{"2":{"64":1}}],["due",{"2":{"63":1,"64":1,"73":3}}],["date",{"2":{"81":1}}],["datas",{"2":{"201":1}}],["datasets",{"2":{"193":1,"198":1,"199":1}}],["dataset",{"2":{"193":1,"198":1}}],["datainterpolations",{"2":{"175":1}}],["dataapi",{"2":{"31":1,"154":7}}],["dataaspect",{"2":{"13":1,"14":1,"52":1,"55":1,"58":2,"62":1,"65":1,"84":2,"148":2,"176":1,"181":1}}],["dataframes",{"2":{"195":3,"199":2,"200":1}}],["dataframe",{"2":{"29":1,"195":1,"198":1,"199":5,"200":2}}],["data",{"0":{"148":1,"196":1},"2":{"23":1,"25":1,"27":1,"80":1,"148":2,"154":1,"181":10,"191":1,"193":2,"194":2,"195":2,"196":6,"199":1}}],["dashboard",{"0":{"14":1},"2":{"13":1,"14":1}}],["d",{"2":{"1":2,"5":1,"6":1,"59":1,"162":1,"173":1,"183":3}}],["deu",{"2":{"200":2}}],["demonstrates",{"2":{"199":1}}],["densify",{"2":{"177":3}}],["densifying",{"2":{"177":1}}],["densifies",{"2":{"175":1}}],["denoted",{"2":{"116":1}}],["denotes",{"2":{"64":1}}],["debug",{"2":{"166":1}}],["debugging",{"2":{"59":1,"64":1}}],["derivation",{"2":{"73":1}}],["dealing",{"2":{"66":1}}],["delete",{"2":{"105":1,"123":1,"148":1,"183":1}}],["deleteat",{"2":{"64":6,"183":1,"185":2}}],["deltri",{"2":{"82":1}}],["delayed",{"2":{"64":10,"71":2,"73":2,"76":2}}],["delay",{"2":{"64":14,"70":2,"71":2,"72":2,"73":2,"75":2,"76":2}}],["delaunay",{"2":{"6":1,"82":1}}],["delaunaytriangulation",{"2":{"6":1,"31":1,"77":1,"82":6}}],["deprecated",{"2":{"178":1}}],["depend",{"2":{"64":2}}],["depends",{"2":{"64":1,"69":1}}],["depending",{"2":{"1":1,"23":1,"73":1,"151":1,"154":1}}],["depth",{"2":{"59":2}}],["desktop",{"2":{"196":1}}],["dest",{"2":{"193":2}}],["destination",{"2":{"193":5}}],["desired",{"2":{"75":1,"196":1}}],["despite",{"2":{"53":1}}],["describe",{"2":{"17":1}}],["described",{"2":{"6":1,"59":1,"63":1,"64":1}}],["de",{"0":{"39":1},"1":{"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"116":2,"198":1}}],["deconstruct",{"2":{"149":1,"155":1}}],["decomposition",{"2":{"18":1,"149":1}}],["decomposing",{"2":{"18":1}}],["decompose",{"2":{"18":2,"29":1,"59":4,"155":1,"158":1}}],["decrementing",{"2":{"148":1}}],["decrease",{"2":{"63":1}}],["decreasing",{"2":{"6":1,"181":1}}],["decide",{"2":{"81":1,"148":1}}],["decision",{"2":{"24":1}}],["degeneracies",{"2":{"9":1}}],["degenerate",{"2":{"6":1,"59":1,"69":2}}],["degrees",{"2":{"6":1,"52":1,"146":1,"162":1,"177":1}}],["defines",{"2":{"64":1,"149":1,"155":1,"156":1,"157":1,"161":1,"165":1,"188":1}}],["define",{"2":{"58":1,"73":2,"87":1,"148":2,"149":1,"152":1,"154":1,"162":1,"188":1,"201":2}}],["defined",{"2":{"4":1,"5":1,"6":3,"7":1,"22":1,"53":2,"59":1,"65":1,"66":4,"73":4,"85":2,"145":1,"154":1,"162":3,"178":1,"188":1}}],["definitions",{"2":{"189":1}}],["definition",{"2":{"4":4,"6":6,"88":8,"93":1,"162":3,"178":1}}],["default",{"2":{"1":2,"4":5,"6":13,"32":1,"53":1,"56":2,"66":1,"70":1,"71":2,"72":1,"73":5,"75":1,"76":2,"82":1,"85":2,"148":5,"154":5,"157":2,"162":1,"173":2,"181":2}}],["defaults",{"2":{"1":6,"4":2,"6":11,"151":3,"154":1,"156":3}}],["deeper",{"2":{"1":1,"151":1,"153":1,"154":2}}],["detrimental",{"2":{"169":1}}],["detector",{"2":{"81":1}}],["detection",{"2":{"81":1,"148":1}}],["determined",{"2":{"64":1,"66":1}}],["determine",{"2":{"64":10,"66":3,"70":2,"72":2,"73":9,"75":2,"94":1,"108":1,"116":9,"123":1,"126":1,"136":1,"183":3,"198":1}}],["determines",{"2":{"56":1,"64":3,"73":1,"116":10}}],["determinant",{"2":{"6":1,"59":1}}],["detail",{"2":{"26":1}}],["details",{"2":{"6":2,"176":2}}],["details>",{"2":{"6":2}}],["det",{"2":{"0":1,"6":2,"59":4}}],["dirname",{"2":{"181":4}}],["dirty",{"2":{"180":1}}],["directive",{"2":{"154":1}}],["direction",{"2":{"6":1,"64":1,"88":5,"148":3}}],["direct",{"2":{"33":1}}],["directly",{"2":{"6":1,"82":3,"148":1,"177":1}}],["dig",{"2":{"154":1}}],["dict",{"2":{"148":5}}],["didn",{"2":{"76":1,"116":1,"164":1}}],["division",{"2":{"58":1}}],["divided",{"2":{"26":1}}],["ditance",{"2":{"4":1,"6":1,"85":1}}],["dimensional",{"2":{"5":1,"6":3,"55":1,"59":1,"82":2,"162":1}}],["dimensions",{"2":{"3":1,"6":1,"122":1,"123":1}}],["dimension",{"2":{"1":1,"3":4,"6":4,"105":2,"121":1,"122":4,"173":1}}],["discouraged",{"2":{"194":1}}],["discussion",{"2":{"25":1,"27":1,"69":1}}],["distributed",{"2":{"199":2}}],["distinct",{"2":{"73":1,"148":1}}],["dist",{"2":{"73":40,"85":19,"116":2,"177":8,"183":40}}],["distance`",{"2":{"177":3,"178":2,"189":1}}],["distances",{"2":{"73":1,"84":1,"177":1,"182":5}}],["distance",{"0":{"83":2,"84":2},"1":{"84":2,"85":2},"2":{"0":4,"4":26,"6":47,"31":1,"32":9,"59":13,"60":3,"66":3,"73":32,"83":2,"84":17,"85":92,"116":1,"149":1,"155":1,"175":1,"176":5,"177":13,"178":28,"181":1,"182":3,"183":6,"184":1,"197":1,"201":2}}],["disagree",{"2":{"56":1}}],["displacement",{"2":{"162":1}}],["displaying",{"2":{"193":1}}],["display",{"2":{"13":1,"58":1,"193":1}}],["disparate",{"2":{"25":1,"27":1}}],["dispatches",{"2":{"6":1,"53":1,"56":1,"59":1,"63":1,"66":1,"85":1,"88":1,"94":1,"108":1,"122":1,"126":1,"136":1}}],["dispatch",{"2":{"4":1,"6":3,"24":1,"59":1,"88":1,"157":3,"163":1,"189":1}}],["disjoint",{"0":{"41":1,"106":1,"107":1,"110":1,"111":1,"112":1,"113":1,"114":1},"1":{"107":1,"108":1},"2":{"0":2,"3":5,"6":7,"23":1,"31":1,"41":2,"76":2,"106":1,"107":3,"108":11,"109":6,"110":15,"111":18,"112":10,"113":5,"114":4,"115":2,"116":16,"119":3,"167":2,"169":2,"171":7,"198":1}}],["diffs",{"2":{"53":4}}],["diff",{"2":{"6":2,"53":17,"70":5,"71":3,"123":3,"171":8}}],["differs",{"2":{"193":1}}],["differ",{"2":{"4":1,"6":1,"85":1}}],["differently",{"2":{"4":3,"6":4,"53":1,"56":2,"66":1}}],["different",{"2":{"3":1,"4":4,"6":6,"20":1,"23":1,"53":1,"56":4,"64":3,"66":1,"73":2,"81":1,"122":2,"123":1,"148":1,"152":1,"154":1,"169":2,"193":2,"196":1}}],["differences",{"0":{"71":1},"2":{"73":1,"183":1}}],["difference",{"0":{"35":1,"38":1,"70":1},"2":{"0":1,"6":7,"11":1,"23":1,"31":1,"35":2,"38":1,"64":3,"70":12,"71":14,"73":1,"75":1,"76":3,"167":1,"171":1,"177":1}}],["diffintersectingpolygons",{"2":{"0":1,"6":1,"167":1,"171":4}}],["doi",{"2":{"70":2,"72":2,"75":2,"116":1}}],["doing",{"2":{"17":1,"22":1,"154":1,"194":1}}],["dot",{"2":{"53":2,"59":1}}],["download",{"2":{"193":1}}],["down",{"2":{"18":1,"29":1,"59":1,"157":2}}],["doable",{"2":{"9":1}}],["documenter",{"2":{"176":2}}],["documentation",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"26":1,"58":1,"156":1}}],["docstring",{"2":{"176":4}}],["docstrings",{"0":{"150":1},"1":{"151":1},"2":{"7":1,"156":1}}],["docs",{"0":{"26":1,"156":1},"2":{"26":1,"148":1}}],["doc",{"2":{"9":1,"10":1}}],["does",{"0":{"22":1},"2":{"7":1,"19":1,"62":1,"73":2,"90":1,"93":3,"116":1}}],["doesn",{"2":{"4":1,"6":2,"32":1,"56":1,"69":1,"88":1,"177":1,"189":1,"200":1}}],["doublets",{"2":{"200":2}}],["double",{"2":{"184":4}}],["doubled",{"2":{"6":1,"184":1}}],["douglas",{"2":{"179":2,"181":2,"183":1}}],["douglaspeucker",{"0":{"183":1},"2":{"0":1,"6":5,"179":1,"181":5,"183":6}}],["done",{"0":{"10":1},"2":{"13":1,"14":1,"116":2,"148":1,"149":1,"162":1,"169":1,"192":1,"198":1}}],["don",{"2":{"4":2,"6":2,"64":4,"70":1,"76":1,"88":6,"111":1,"116":1,"125":1,"129":1,"148":2,"154":3,"155":2,"189":1}}],["do",{"0":{"9":1,"23":1,"74":1},"2":{"1":1,"6":1,"14":1,"23":1,"31":1,"53":1,"56":2,"59":2,"60":1,"63":1,"66":1,"69":1,"76":3,"85":2,"87":1,"88":1,"103":1,"111":2,"112":1,"113":2,"116":1,"148":4,"149":1,"151":1,"154":5,"155":2,"157":4,"159":1,"160":1,"170":1,"172":2,"174":1,"177":1,"181":1,"186":2,"187":2,"193":2,"194":2,"195":3,"199":1,"200":1}}],["aim",{"2":{"162":1}}],["ay",{"2":{"146":2}}],["azimuth",{"2":{"146":2}}],["automatically",{"2":{"122":1,"154":1,"193":1}}],["a3",{"2":{"80":1}}],["against",{"2":{"88":1,"116":2,"177":1,"181":1}}],["again",{"2":{"73":1,"154":1}}],["a``",{"2":{"71":2}}],["a`",{"2":{"71":7,"73":3,"76":2}}],["away",{"2":{"60":1,"105":1,"201":1}}],["a2y",{"2":{"73":4}}],["a2x",{"2":{"73":4}}],["a2",{"2":{"58":4,"73":54,"81":1,"123":6}}],["a1y",{"2":{"73":7}}],["a1x",{"2":{"73":7}}],["a1",{"2":{"58":2,"64":9,"73":66,"81":1,"123":6}}],["ams",{"2":{"197":2}}],["america",{"2":{"181":1}}],["am",{"2":{"116":1}}],["ambiguity",{"2":{"85":2,"154":1,"155":1,"157":3}}],["amounts",{"2":{"196":1}}],["amount",{"2":{"55":1,"65":1}}],["amp",{"2":{"6":1,"9":1}}],["axes",{"2":{"148":6}}],["ax",{"2":{"13":3,"14":3,"146":2,"192":5}}],["axis`",{"2":{"162":1}}],["axislegend",{"2":{"79":1,"176":1,"180":1}}],["axis",{"2":{"13":2,"14":1,"52":1,"55":1,"58":4,"62":1,"65":1,"81":2,"84":1,"148":2,"162":4,"176":1,"181":1,"197":1}}],["axs",{"2":{"13":2}}],["advised",{"2":{"163":1}}],["advance",{"2":{"63":2}}],["adjust",{"2":{"73":1}}],["adjacent",{"2":{"64":1,"71":1,"73":1,"76":1}}],["adaptivity",{"0":{"74":1}}],["adaptive",{"2":{"7":1,"13":3,"14":2,"74":1}}],["adapted",{"2":{"70":1,"72":1,"75":1,"146":1}}],["administrative",{"2":{"200":1}}],["admin",{"2":{"11":1,"80":1,"181":2}}],["adm0",{"2":{"11":7,"80":4}}],["additional",{"2":{"196":1}}],["additionally",{"2":{"64":3,"88":1}}],["addition",{"2":{"58":1,"76":1}}],["adding",{"2":{"4":1,"6":4,"7":1,"76":2,"148":1,"168":1,"175":1,"177":2,"178":1}}],["added",{"2":{"53":1,"64":6,"66":1,"76":2,"157":2,"171":2,"183":1}}],["add",{"2":{"3":1,"6":1,"7":2,"59":1,"60":1,"64":16,"66":1,"69":4,"70":3,"72":1,"73":2,"75":2,"76":9,"82":1,"105":1,"148":4,"157":1,"164":1,"175":1,"177":1,"183":10,"193":1,"195":2,"198":4}}],["average",{"2":{"57":3,"63":4,"73":1}}],["available",{"0":{"167":1},"2":{"6":2,"31":1,"63":1,"163":1,"166":3,"175":1,"176":1,"178":1,"181":1,"185":1}}],["avoid",{"2":{"5":1,"6":7,"59":1,"70":1,"72":1,"73":1,"75":1,"76":1,"148":2,"154":1,"155":1,"157":3,"178":1,"182":1,"183":1,"184":1,"192":3}}],["a>",{"2":{"6":2}}],["achieve",{"2":{"169":1}}],["across",{"2":{"152":1}}],["acos",{"2":{"53":1}}],["activate",{"2":{"176":1}}],["action",{"2":{"20":2}}],["actions",{"2":{"20":2}}],["actual",{"2":{"10":1,"59":1,"146":1,"160":1,"173":1,"177":1}}],["actually",{"2":{"1":1,"6":1,"9":1,"59":4,"73":1,"76":3,"116":1,"148":1,"186":1,"196":1}}],["access",{"2":{"193":1}}],["accessed",{"2":{"189":1}}],["accepted",{"2":{"162":1}}],["acceptable",{"2":{"116":1}}],["accepts",{"2":{"82":1}}],["accept",{"2":{"6":1,"189":1}}],["according",{"2":{"159":1,"169":1,"170":1,"199":1}}],["accordingly",{"2":{"64":1}}],["account",{"2":{"70":1,"72":1}}],["accurary",{"2":{"73":1}}],["accuratearithmetic",{"2":{"11":2}}],["accurate",{"0":{"11":1},"2":{"11":3,"176":1}}],["accumulators",{"2":{"59":1}}],["accumulator",{"2":{"59":1}}],["accumulate",{"2":{"56":1,"63":3}}],["accumulation",{"0":{"11":1},"2":{"59":1}}],["after",{"2":{"6":8,"53":1,"64":3,"154":1,"155":1,"181":2}}],["ab",{"2":{"64":3,"70":1,"72":1,"73":5,"75":1}}],["able",{"2":{"20":1,"73":1}}],["ability",{"2":{"17":1}}],["about",{"2":{"6":1,"24":2,"30":1,"59":2,"116":1,"154":1,"158":1,"162":1}}],["above",{"2":{"4":1,"6":1,"53":1,"63":1,"64":1,"73":1,"76":1,"166":1}}],["abs",{"2":{"53":1,"56":4,"63":1,"66":2,"105":8,"123":2,"148":1,"184":1,"201":1}}],["absolutely",{"2":{"155":1}}],["absolute",{"2":{"4":1,"6":1,"55":1,"56":2}}],["abstractarray",{"2":{"154":4,"155":2,"157":1,"190":2}}],["abstractarrays",{"2":{"152":1}}],["abstractrange",{"2":{"148":6}}],["abstractmulticurvetrait",{"2":{"100":1,"101":1,"114":1,"115":1,"132":1,"133":1,"142":1,"143":1}}],["abstractmatrix",{"2":{"6":5,"148":13}}],["abstractpolygontrait",{"2":{"85":1}}],["abstractcurvetrait",{"2":{"53":1,"56":1,"66":1,"96":1,"99":1,"100":1,"105":1,"110":1,"114":1,"128":1,"131":1,"132":1,"138":1,"141":1,"142":1,"146":1,"181":2,"190":3}}],["abstractwkbgeomtrait",{"2":{"32":1}}],["abstractfloat",{"2":{"31":1,"53":1,"56":2,"64":1,"66":2,"69":1,"70":1,"72":1,"73":1,"75":1,"85":8}}],["abstract",{"2":{"6":3,"32":1,"59":3,"162":2,"164":3,"165":1,"166":4,"167":1,"181":3}}],["abstractvector",{"2":{"5":1,"6":1,"59":26,"148":8}}],["abstractgeometrytrait`",{"2":{"166":1}}],["abstractgeometrytrait",{"2":{"6":2,"32":1,"56":2,"66":1,"85":1,"101":1,"115":1,"133":1,"143":1,"152":1,"157":1,"166":4,"167":2,"190":5}}],["abstractgeometry",{"2":{"3":4,"6":4,"32":1,"91":2,"104":2}}],["abstracttrait",{"2":{"1":2,"3":2,"6":2,"69":1,"71":2,"73":4,"76":2,"123":4,"149":1,"151":2,"154":1,"155":2,"157":11,"163":3}}],["abstractbarycentriccoordinatemethod",{"2":{"0":1,"5":1,"6":7,"59":18}}],["attribute",{"2":{"196":1}}],["attributed",{"2":{"195":1}}],["attributes",{"0":{"195":1},"2":{"191":1,"195":3}}],["attempt",{"2":{"162":1}}],["attempts",{"2":{"116":1}}],["attach",{"2":{"1":2,"4":1,"6":4,"151":1,"156":1}}],["atomic",{"2":{"7":1}}],["at",{"2":{"3":4,"5":1,"6":6,"9":1,"18":1,"20":1,"24":1,"26":1,"53":2,"55":1,"56":1,"58":1,"59":2,"64":4,"66":2,"73":8,"76":2,"81":1,"116":17,"123":6,"125":1,"126":1,"129":3,"130":2,"131":2,"132":1,"133":1,"136":1,"142":1,"146":1,"152":1,"154":1,"176":1,"178":1,"183":1,"185":1,"193":1,"194":2}}],["arbitrarily",{"2":{"152":1}}],["arbitrary",{"2":{"57":1,"149":1,"155":1,"192":1}}],["around",{"2":{"58":1,"59":2,"69":1,"84":1,"88":1,"148":1,"181":1,"199":1}}],["argmin",{"2":{"185":1}}],["arg",{"2":{"178":1}}],["argtypes",{"2":{"60":2,"174":1,"177":1}}],["args",{"2":{"13":2}}],["argumenterror",{"2":{"76":1,"148":1,"154":1,"155":1,"157":3}}],["argument",{"2":{"4":5,"6":10,"53":1,"56":2,"63":1,"66":1,"70":1,"72":1,"75":1,"85":2,"154":1,"157":1,"189":2,"193":1,"194":1}}],["arguments",{"2":{"1":1,"3":1,"6":5,"64":1,"94":2,"108":1,"126":1,"136":1,"173":1,"177":2,"178":1,"189":1}}],["arithmetic",{"2":{"11":1}}],["archgdal",{"2":{"23":1}}],["arc",{"2":{"6":1,"177":1}}],["array",{"2":{"4":1,"6":2,"56":1,"66":1,"148":5,"154":5,"155":2,"182":1,"185":1}}],["arrays",{"2":{"1":1,"6":1,"22":1,"148":1,"151":1,"155":2}}],["aren",{"2":{"4":3,"6":5,"69":1,"71":1,"73":2,"76":4,"88":3,"167":2,"171":2}}],["are",{"2":{"1":1,"3":3,"4":18,"5":2,"6":45,"9":2,"20":2,"22":3,"24":1,"25":1,"26":2,"27":1,"52":1,"53":8,"55":1,"56":2,"57":6,"59":11,"62":1,"63":3,"64":31,"66":6,"69":3,"70":3,"71":15,"72":2,"73":16,"75":5,"76":9,"81":3,"84":1,"85":1,"87":3,"88":26,"90":1,"94":7,"96":1,"97":3,"98":3,"99":1,"101":1,"107":1,"108":5,"110":1,"111":1,"112":1,"114":1,"115":1,"116":12,"122":1,"123":5,"126":5,"128":1,"130":2,"135":1,"136":5,"138":1,"139":3,"140":3,"141":1,"143":1,"146":1,"147":1,"148":14,"151":1,"152":1,"154":6,"157":4,"158":1,"159":1,"160":1,"161":1,"162":4,"163":1,"166":1,"167":3,"168":1,"169":1,"170":1,"171":2,"176":1,"177":1,"178":1,"181":4,"183":1,"185":2,"187":1,"188":2,"189":1,"192":1,"195":2,"196":2,"197":1,"198":3,"199":6,"200":1,"201":1}}],["area2",{"2":{"63":4}}],["area1",{"2":{"63":4}}],["areas",{"2":{"4":2,"6":2,"56":3,"162":1,"184":2}}],["area",{"0":{"54":2,"55":2},"1":{"55":2,"56":2},"2":{"0":5,"4":15,"6":25,"11":6,"31":1,"54":2,"55":9,"56":61,"61":1,"62":3,"63":49,"65":2,"66":44,"75":2,"76":1,"122":1,"149":1,"155":1,"162":2,"167":2,"171":2,"181":2,"184":4,"193":1}}],["asked",{"2":{"154":1}}],["ask",{"2":{"23":1}}],["aspect",{"2":{"13":1,"14":1,"52":1,"55":1,"58":2,"62":1,"65":1,"84":2,"148":2,"176":1,"181":1}}],["assign",{"2":{"191":1}}],["assigned",{"2":{"64":1,"148":7,"199":1}}],["assets",{"2":{"193":1}}],["assetpath",{"2":{"193":1}}],["assemble",{"2":{"160":1}}],["assert",{"2":{"59":23,"63":1,"64":1,"69":1,"71":1,"73":1,"178":2,"190":1}}],["assume",{"2":{"123":2,"154":3,"155":1,"159":1,"171":1}}],["assumed",{"2":{"56":1,"88":1,"116":1}}],["assumes",{"2":{"6":3,"64":1,"85":1,"177":1,"178":2,"185":1}}],["associativity",{"2":{"19":1}}],["associated",{"0":{"1":1},"2":{"57":2}}],["as",{"2":{"1":8,"3":18,"4":6,"5":1,"6":74,"7":1,"11":2,"13":3,"14":3,"15":3,"17":2,"18":2,"20":1,"22":1,"23":2,"24":1,"25":1,"27":1,"52":2,"53":4,"55":2,"56":3,"57":4,"58":1,"59":4,"60":3,"62":2,"63":1,"64":15,"65":2,"66":5,"68":3,"69":5,"70":8,"71":2,"72":7,"73":8,"75":7,"76":5,"77":1,"79":2,"80":2,"81":3,"82":3,"84":3,"85":1,"87":2,"88":2,"90":2,"91":2,"93":3,"94":3,"103":2,"104":2,"105":2,"107":2,"108":3,"116":7,"118":2,"119":2,"121":2,"122":2,"125":2,"126":3,"128":1,"135":2,"136":3,"146":8,"148":3,"149":3,"151":2,"152":2,"153":2,"154":10,"155":4,"157":4,"159":2,"160":2,"162":4,"163":2,"164":2,"166":1,"167":1,"168":1,"170":2,"173":3,"175":2,"176":2,"177":3,"178":1,"179":2,"180":2,"181":7,"183":2,"186":3,"189":2,"190":2,"191":3,"192":2,"193":1,"194":1,"196":3,"197":3,"198":2,"199":3,"200":2}}],["alone",{"2":{"154":1}}],["along",{"2":{"4":4,"6":5,"64":3,"66":2,"73":4,"88":4,"116":1}}],["although",{"2":{"139":1,"140":1}}],["alternate",{"2":{"64":1}}],["alternative",{"2":{"64":1}}],["already",{"2":{"88":1,"116":2,"154":1,"183":1}}],["almost",{"2":{"73":1}}],["alg=nothing",{"2":{"181":1}}],["alg`",{"2":{"181":1}}],["alg",{"2":{"6":4,"32":2,"181":21,"182":3,"183":8,"184":3,"185":7,"189":9}}],["algorithms",{"2":{"6":3,"77":1,"81":1,"159":1,"178":1,"179":1,"181":4,"183":1,"185":1}}],["algorithm",{"0":{"182":1,"183":1,"184":1},"2":{"6":12,"58":1,"64":2,"66":1,"69":3,"70":1,"72":1,"75":1,"77":1,"82":4,"116":1,"179":1,"181":8,"182":1,"183":3,"184":1,"189":4}}],["allocating",{"2":{"82":1}}],["allocations",{"2":{"5":1,"6":1,"59":1}}],["allocate",{"2":{"82":1}}],["allow=",{"2":{"116":1}}],["allows",{"2":{"11":1,"18":1,"23":1,"24":1,"29":1,"94":2,"96":3,"97":3,"98":3,"99":1,"108":2,"110":3,"111":3,"112":2,"113":1,"122":3,"123":4,"126":1,"129":1,"130":1,"131":1,"136":3,"138":3,"139":3,"140":3,"141":1,"149":1,"179":1,"193":1,"195":1,"198":1}}],["allowed",{"2":{"6":1,"94":3,"108":3,"116":6,"126":5,"128":1,"129":2,"136":3,"181":1}}],["allow",{"2":{"1":1,"6":1,"23":1,"73":1,"94":7,"105":3,"108":7,"116":73,"122":10,"126":10,"136":10,"178":1,"186":1}}],["all",{"2":{"1":3,"3":2,"4":3,"6":12,"9":1,"11":7,"22":1,"25":1,"27":1,"31":2,"53":5,"56":3,"59":1,"64":13,"66":3,"70":1,"71":3,"73":3,"76":5,"77":1,"80":3,"82":1,"84":1,"88":2,"90":1,"97":3,"98":3,"101":1,"114":1,"115":1,"116":7,"123":4,"135":1,"143":1,"146":1,"147":1,"148":3,"151":1,"152":2,"153":1,"154":7,"155":1,"157":2,"160":1,"162":1,"166":1,"168":1,"169":1,"172":1,"181":1,"186":2,"187":1,"188":1,"192":1,"194":1,"196":1,"198":1}}],["always",{"2":{"1":7,"4":6,"6":8,"25":1,"27":1,"55":1,"56":4,"66":2,"81":1,"84":1,"85":1,"88":1,"151":2,"154":3,"155":1,"173":4,"198":1}}],["also",{"2":{"1":2,"6":9,"23":1,"53":1,"56":2,"63":2,"64":3,"66":1,"70":1,"72":1,"73":2,"75":1,"77":1,"81":1,"82":1,"84":1,"85":2,"88":3,"122":1,"148":1,"151":1,"152":1,"154":1,"160":1,"163":1,"167":3,"171":2,"174":1,"175":1,"176":1,"177":1,"179":1,"186":1,"192":2,"195":1}}],["a",{"0":{"23":1,"193":1,"195":1},"2":{"1":13,"3":3,"4":79,"5":1,"6":185,"7":3,"9":1,"11":1,"15":2,"17":1,"18":6,"20":3,"22":3,"23":4,"24":2,"25":2,"27":2,"29":2,"30":2,"32":4,"35":3,"36":3,"37":3,"38":3,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"52":3,"53":22,"55":11,"56":20,"57":13,"58":4,"59":11,"60":2,"62":5,"63":8,"64":281,"65":2,"66":17,"68":3,"69":4,"70":39,"71":30,"72":38,"73":91,"74":3,"75":36,"76":45,"77":3,"79":3,"80":2,"81":1,"82":4,"84":15,"85":27,"87":2,"88":54,"90":2,"93":1,"94":3,"96":5,"97":3,"98":2,"100":2,"101":2,"103":2,"105":1,"107":1,"108":3,"110":4,"111":3,"112":1,"114":2,"115":2,"116":52,"118":2,"121":5,"122":4,"123":10,"125":2,"126":4,"128":4,"129":2,"130":2,"131":1,"132":2,"133":2,"135":1,"136":3,"138":5,"139":2,"140":2,"142":2,"143":2,"145":1,"146":4,"148":79,"149":4,"151":4,"152":4,"154":27,"155":6,"157":7,"158":6,"159":2,"160":2,"162":11,"163":6,"164":6,"165":5,"166":5,"167":9,"168":2,"169":8,"171":6,"172":3,"173":8,"174":3,"175":5,"176":4,"177":8,"178":10,"180":3,"181":5,"184":3,"185":1,"186":2,"187":1,"189":12,"190":2,"191":1,"192":21,"193":12,"194":5,"195":5,"196":11,"197":1,"198":5,"199":8,"200":3,"201":3}}],["apart",{"2":{"171":1}}],["april",{"0":{"7":1}}],["appears",{"2":{"159":1}}],["append",{"2":{"53":1,"64":5,"70":1,"71":2,"73":2,"75":1,"76":5,"171":2}}],["approximately",{"2":{"64":1,"176":1}}],["approach",{"2":{"19":1}}],["appropriately",{"2":{"199":1}}],["appropriate",{"2":{"6":1,"189":2}}],["applies",{"2":{"152":2}}],["applied",{"2":{"6":1,"20":1,"157":4,"165":2,"166":2,"167":1}}],["application",{"2":{"1":1,"6":2,"151":1,"155":1,"160":1,"166":3,"167":1,"171":2,"175":1,"178":1}}],["apply`",{"2":{"154":1}}],["applys",{"2":{"56":1,"66":1}}],["applyreduce",{"0":{"19":1,"155":1},"2":{"0":1,"1":1,"17":1,"19":2,"29":1,"31":2,"53":1,"56":1,"63":2,"66":1,"85":2,"149":1,"151":1,"155":42,"164":1}}],["apply",{"0":{"1":1,"18":1,"22":1,"29":1,"149":1,"152":1},"1":{"19":1,"150":1,"151":1,"152":1,"153":1,"154":1},"2":{"0":1,"1":4,"6":3,"17":1,"18":5,"20":1,"22":1,"24":1,"29":3,"31":3,"32":2,"149":5,"151":3,"152":4,"153":1,"154":55,"155":5,"156":1,"157":3,"162":1,"164":1,"166":4,"167":1,"168":1,"172":3,"173":1,"177":1,"178":1,"181":2,"186":3,"187":2}}],["apis",{"2":{"17":1}}],["api",{"0":{"0":1,"59":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"6":3,"24":1,"59":1,"177":1,"181":1,"189":1}}],["annotation",{"2":{"164":1}}],["annotated",{"2":{"26":1}}],["another",{"2":{"64":2,"73":1,"82":1,"84":1,"90":1,"93":1,"96":1,"98":1,"99":1,"103":1,"107":1,"110":1,"111":1,"112":1,"113":1,"116":1,"118":1,"121":1,"125":1,"128":1,"129":1,"130":1,"131":1,"135":1,"138":1,"139":1,"140":1,"141":1,"148":1,"173":1}}],["anonymous",{"2":{"1":1,"6":1,"186":1}}],["angular",{"2":{"162":1}}],["angels",{"2":{"53":1}}],["angle",{"2":{"53":35,"146":1}}],["angles",{"0":{"51":1,"52":1},"1":{"52":1,"53":1},"2":{"0":2,"4":10,"6":10,"31":1,"51":1,"52":4,"53":42}}],["answers",{"2":{"169":1}}],["answer",{"2":{"6":3,"70":1,"72":1,"73":1,"75":1}}],["an",{"2":{"1":3,"4":11,"5":1,"6":27,"9":1,"13":1,"14":1,"18":1,"20":1,"23":2,"32":1,"52":1,"53":4,"55":1,"56":2,"58":1,"59":3,"60":2,"62":1,"64":15,"65":2,"66":2,"68":1,"69":1,"70":2,"71":5,"72":2,"73":9,"75":2,"76":2,"82":3,"84":2,"85":5,"87":1,"88":1,"90":1,"93":2,"96":2,"103":1,"107":1,"116":13,"118":1,"121":1,"122":1,"125":1,"135":1,"138":2,"139":1,"140":1,"147":1,"148":3,"151":1,"152":1,"153":1,"154":5,"155":2,"157":2,"160":1,"162":1,"168":1,"173":1,"177":1,"186":2,"189":3,"190":1,"192":2,"193":2,"195":1,"197":1,"199":1}}],["anything",{"2":{"58":1,"116":1}}],["any",{"2":{"1":3,"3":1,"4":2,"6":17,"18":1,"24":1,"25":1,"27":1,"29":1,"57":2,"63":1,"64":7,"66":1,"69":1,"71":1,"73":4,"76":1,"85":2,"95":2,"96":1,"99":1,"107":1,"109":2,"110":1,"111":2,"112":1,"113":2,"116":8,"122":1,"123":3,"127":2,"137":2,"141":1,"148":2,"149":2,"151":1,"154":2,"155":2,"157":2,"160":1,"165":1,"166":3,"167":4,"171":4,"173":2,"175":1,"177":1,"178":1,"183":1,"190":1,"198":3,"199":2}}],["and",{"0":{"1":1,"20":1,"22":1,"24":1,"54":1,"71":1,"73":1,"76":1,"83":1,"192":1,"193":1,"195":1},"1":{"55":1,"56":1,"84":1,"85":1},"2":{"0":2,"1":8,"3":11,"4":18,"6":79,"7":1,"9":2,"17":4,"18":4,"20":2,"22":1,"23":2,"24":3,"25":2,"26":5,"27":2,"29":2,"30":1,"31":2,"32":2,"33":1,"53":13,"55":1,"56":7,"57":2,"58":2,"59":20,"60":1,"61":2,"62":1,"63":29,"64":71,"65":2,"66":18,"68":1,"69":4,"70":4,"71":16,"72":4,"73":38,"75":6,"76":15,"81":1,"82":2,"84":2,"85":13,"87":2,"88":13,"90":3,"91":2,"93":2,"94":3,"97":3,"98":4,"99":1,"103":2,"104":2,"105":1,"108":3,"111":3,"112":1,"113":1,"116":36,"118":1,"121":2,"122":3,"126":2,"130":2,"131":2,"135":3,"136":4,"138":2,"139":3,"140":3,"141":1,"146":2,"148":16,"149":6,"151":5,"152":2,"153":3,"154":16,"155":10,"157":3,"158":1,"159":2,"160":1,"161":1,"162":14,"163":1,"164":3,"165":1,"166":4,"167":2,"168":2,"169":1,"172":2,"173":2,"176":1,"177":5,"178":7,"179":2,"180":1,"181":8,"183":8,"184":1,"185":1,"186":1,"189":4,"191":3,"192":9,"193":7,"194":2,"196":5,"198":2,"199":4,"200":2}}],["snapped",{"2":{"148":1}}],["s3",{"2":{"64":3}}],["scratch",{"2":{"196":1}}],["sciences",{"2":{"193":1}}],["scalefactor",{"2":{"177":3}}],["scattered",{"2":{"199":1}}],["scatter",{"2":{"62":1,"84":2,"87":2,"90":2,"93":1,"103":1,"107":2,"121":2,"135":2,"199":1}}],["schema",{"2":{"154":5,"155":1}}],["scheme",{"2":{"63":1}}],["scenario",{"2":{"116":2}}],["scene",{"2":{"14":1}}],["skipmissing",{"2":{"148":1}}],["skipped",{"2":{"148":1}}],["skip",{"2":{"56":1,"116":14,"148":1,"154":1,"185":4}}],["skygering",{"2":{"7":1}}],["square",{"2":{"85":1,"182":1,"183":1}}],["squared",{"2":{"6":2,"66":2,"85":12,"182":2,"183":7}}],["sqrt",{"2":{"53":2,"63":1,"85":3}}],["sgn",{"2":{"53":5}}],["smallest",{"2":{"53":2,"73":1,"77":1}}],["sᵢ₋₁",{"2":{"59":25}}],["sᵢ₊₁",{"2":{"6":2,"59":41}}],["sᵢ",{"2":{"6":4,"59":46}}],["src",{"2":{"6":2}}],["syntax",{"2":{"195":1}}],["sym10100477",{"2":{"116":1}}],["symdifference",{"2":{"38":1,"147":1}}],["symmetric",{"0":{"38":1},"2":{"38":1}}],["symbol=",{"2":{"105":1}}],["symbol",{"2":{"6":1,"189":2}}],["system",{"0":{"193":1,"194":1},"2":{"1":2,"173":2,"191":2,"193":1}}],["switches",{"2":{"73":1,"76":1}}],["switch",{"2":{"64":1,"76":1,"164":1}}],["switching",{"2":{"6":1,"66":1}}],["swap",{"2":{"6":1,"76":1,"85":2,"172":1}}],["swapped",{"2":{"3":1,"6":1,"91":1,"94":1,"104":1,"105":1,"119":1,"123":1}}],["swapping",{"2":{"1":1,"151":1,"154":1}}],["s2",{"2":{"6":4,"59":6,"64":3}}],["s1",{"2":{"6":3,"59":6,"64":3}}],["saving",{"0":{"196":1}}],["saved",{"2":{"88":1}}],["save",{"2":{"53":1,"191":1,"196":3}}],["samples",{"2":{"13":1}}],["sample",{"2":{"13":1}}],["same",{"2":{"3":2,"4":12,"6":22,"18":1,"53":3,"56":1,"64":15,"66":1,"69":1,"70":3,"72":1,"73":1,"75":1,"76":1,"81":1,"84":1,"87":2,"88":30,"116":2,"121":1,"122":4,"123":4,"152":1,"154":5,"157":2,"158":1,"167":2,"170":1,"171":2,"176":1,"192":1,"193":1,"196":1}}],["says",{"2":{"81":1}}],["say",{"2":{"6":1,"59":1,"177":1}}],["spliced",{"2":{"156":1}}],["split",{"2":{"69":1}}],["sp",{"2":{"116":2}}],["specify",{"2":{"157":2,"193":1,"194":1,"198":1}}],["specification",{"2":{"159":1,"166":1,"169":1,"170":1}}],["specifically",{"2":{"6":2,"59":3,"179":1,"198":1}}],["specific",{"2":{"64":1,"94":1,"108":1,"126":1,"136":1,"154":1,"155":1,"157":3,"162":1}}],["specified",{"2":{"3":1,"6":2,"64":1,"71":2,"73":2,"76":2,"123":1,"152":1,"181":1}}],["specialized",{"2":{"25":1,"27":1,"82":1,"154":1}}],["sphere",{"2":{"6":1,"162":3,"178":1}}],["sphericalgeodesics",{"2":{"162":1}}],["spherical",{"2":{"6":1,"31":2,"162":7,"178":1}}],["spatial",{"0":{"198":1},"1":{"199":1,"200":1,"201":1},"2":{"198":6,"199":3,"201":1}}],["spawn",{"2":{"154":3,"155":3}}],["span>",{"2":{"6":2}}],["span",{"2":{"6":2,"199":1}}],["space",{"2":{"6":1,"25":1,"27":1,"53":1,"55":1,"116":1,"162":5,"177":1}}],["slow",{"2":{"200":1}}],["slower",{"2":{"6":1,"189":2}}],["slope2",{"2":{"146":2}}],["slope1",{"2":{"146":2}}],["slidergrid",{"2":{"14":1}}],["sliders",{"2":{"14":3}}],["slightly",{"2":{"4":2,"6":2,"56":2}}],["suite",{"2":{"177":5,"181":13}}],["suggestion",{"2":{"174":1}}],["success",{"2":{"162":1}}],["such",{"2":{"4":1,"6":1,"55":1,"68":1,"77":1,"152":1,"168":1}}],["sun",{"2":{"116":1}}],["surrounds",{"2":{"116":1}}],["sure",{"2":{"9":1,"53":1,"64":2,"85":1,"122":1,"185":1}}],["suppose",{"2":{"200":1,"201":1}}],["supports",{"2":{"58":1,"59":1,"77":1,"154":3,"196":1,"201":2}}],["support",{"2":{"32":1,"60":1,"175":1,"201":1}}],["supported",{"2":{"23":1,"196":1}}],["supertype",{"2":{"6":1,"59":1}}],["sukumar",{"2":{"6":1,"59":1}}],["sum=1",{"2":{"59":1}}],["summary>",{"2":{"6":4}}],["sum",{"2":{"4":2,"6":3,"11":6,"55":1,"56":2,"57":2,"59":8,"66":1,"85":2,"146":5,"185":1,"190":4}}],["sublevel",{"2":{"200":1}}],["subsequent",{"2":{"192":1}}],["substituted",{"2":{"1":1,"151":1,"154":1}}],["subgeom1",{"2":{"157":2}}],["subgeom",{"2":{"157":3}}],["subject",{"2":{"64":1}}],["subtype",{"2":{"154":1}}],["subtypes",{"2":{"6":2,"59":2}}],["subtracted",{"2":{"146":1}}],["subtitle",{"2":{"13":1,"58":2,"177":1,"181":2}}],["sub",{"2":{"4":6,"6":7,"53":1,"56":3,"66":1,"71":6,"73":3,"76":4,"85":2,"100":2,"101":2,"114":2,"115":2,"132":2,"133":2,"142":2,"143":2,"154":3,"169":4,"170":2,"171":4}}],["series",{"2":{"192":1}}],["serve",{"2":{"6":1,"59":1}}],["searchsortedfirst",{"2":{"183":1}}],["semimajor",{"2":{"162":3}}],["seg2",{"2":{"146":2}}],["seg1",{"2":{"146":3}}],["seg",{"2":{"116":23,"123":9}}],["segmentation",{"2":{"176":1}}],["segments",{"2":{"23":1,"31":1,"52":2,"53":1,"62":1,"63":2,"64":3,"66":1,"73":6,"116":18,"177":1,"178":3}}],["segmentization",{"2":{"32":1,"162":1,"175":1}}],["segmentizing",{"2":{"6":3,"176":1,"177":2,"178":1}}],["segmentizemethod",{"2":{"177":3,"178":1}}],["segmentized",{"2":{"176":1}}],["segmentizes",{"2":{"175":1}}],["segmentize",{"0":{"32":1,"175":1},"1":{"176":1,"177":1,"178":1},"2":{"0":1,"6":4,"31":1,"32":9,"60":1,"149":1,"162":1,"175":1,"176":5,"177":11,"178":18,"197":1}}],["segment",{"2":{"4":4,"6":7,"53":1,"63":5,"64":6,"66":3,"68":1,"73":17,"85":2,"105":3,"116":43,"123":3,"146":2,"175":1,"177":2,"178":1}}],["seperate",{"2":{"73":1}}],["separates",{"2":{"116":1}}],["separate",{"2":{"64":1,"148":1,"154":1,"164":1,"196":1,"199":1}}],["separately",{"2":{"59":1,"148":1}}],["sense",{"2":{"56":1,"85":1}}],["several",{"2":{"20":2,"56":1,"158":1,"171":1}}],["select",{"2":{"163":1}}],["selected",{"2":{"148":1}}],["selectednode",{"2":{"148":3}}],["selection",{"2":{"14":1}}],["self",{"2":{"9":2}}],["section",{"2":{"26":1,"116":3,"121":1}}],["sections",{"2":{"10":1,"26":1}}],["seconds=1",{"2":{"177":3,"181":8}}],["secondisleft",{"2":{"148":4}}],["secondisstraight",{"2":{"148":7}}],["secondary",{"2":{"3":3,"6":3,"91":1,"94":1,"136":1}}],["second",{"2":{"3":8,"6":9,"64":1,"73":4,"88":1,"90":2,"91":1,"93":1,"94":1,"97":1,"98":1,"99":1,"104":2,"108":2,"116":2,"126":1,"135":1,"136":1,"139":1,"140":1,"141":2,"183":1,"194":1,"198":1}}],["seem",{"2":{"25":1,"27":1}}],["see",{"2":{"6":4,"7":1,"29":1,"62":1,"82":1,"85":1,"87":1,"90":1,"93":1,"107":1,"116":5,"118":1,"121":1,"125":1,"135":1,"148":2,"159":1,"160":1,"166":1,"167":3,"170":1,"171":2,"176":2,"183":1,"199":2}}],["setup=",{"2":{"94":1,"108":1,"126":1,"136":1}}],["sets",{"2":{"64":1,"81":1}}],["setting",{"2":{"23":1}}],["set",{"0":{"23":1,"34":1},"1":{"35":1,"36":1,"37":1,"38":1},"2":{"3":2,"4":7,"6":19,"23":1,"53":1,"57":2,"59":8,"64":3,"70":2,"72":2,"73":7,"75":2,"77":2,"87":2,"88":10,"94":1,"105":1,"108":1,"116":2,"122":1,"126":1,"136":1,"146":1,"148":1,"154":5,"167":2,"171":2,"183":2,"192":1,"196":1,"199":3}}],["sve",{"2":{"1":1,"6":1,"186":1}}],["svector",{"2":{"1":14,"6":14,"64":5,"70":1,"73":2,"76":6,"116":1,"148":1,"186":13,"192":6,"194":4}}],["solution",{"2":{"116":1}}],["south",{"2":{"66":7,"162":1}}],["source",{"2":{"1":10,"3":18,"4":22,"5":3,"6":83,"26":4,"105":2,"151":2,"157":4,"166":1,"167":4,"173":3,"193":13,"194":1}}],["sort",{"2":{"64":4,"69":2,"73":2,"75":2,"116":1,"148":1,"183":1}}],["sorted",{"2":{"20":1,"64":1,"183":7,"198":1}}],["someone",{"2":{"82":1,"189":1}}],["something",{"0":{"74":1},"2":{"10":1}}],["some",{"2":{"3":1,"6":4,"9":1,"17":1,"59":4,"88":1,"116":3,"123":1,"147":1,"148":1,"149":1,"152":2,"154":2,"155":1,"165":1,"166":2,"167":1,"178":1,"185":1,"188":2,"191":2,"198":1,"201":1}}],["so",{"2":{"1":1,"4":4,"6":9,"9":1,"17":1,"19":1,"25":1,"27":1,"31":1,"58":1,"59":1,"64":1,"65":1,"73":1,"75":2,"76":2,"84":1,"85":1,"87":1,"88":4,"90":1,"107":1,"116":2,"118":1,"135":1,"148":3,"154":8,"157":2,"175":1,"176":1,"177":3,"178":1,"185":1,"186":1,"189":2,"193":1,"194":1}}],["styles",{"2":{"154":1}}],["style",{"2":{"154":7}}],["step",{"2":{"64":7,"70":1,"71":3,"72":1,"73":3,"75":1,"76":3,"148":6,"190":1}}],["storing",{"2":{"196":1}}],["stored",{"2":{"64":2,"199":1}}],["stores",{"2":{"64":1}}],["store",{"2":{"59":1,"196":1}}],["stopping",{"2":{"183":2}}],["stops",{"2":{"152":1}}],["stop",{"2":{"18":2,"105":3,"116":4,"123":3}}],["stay",{"2":{"76":1}}],["stackoverflow",{"2":{"73":1}}],["stack",{"2":{"69":1}}],["states",{"2":{"181":1}}],["state",{"2":{"75":1,"200":9}}],["status",{"2":{"64":31,"71":4,"73":5,"76":4,"148":1}}],["static",{"2":{"164":1}}],["staticarray",{"2":{"59":1}}],["staticarrays",{"2":{"31":1,"64":5,"70":1,"73":2,"76":6,"116":1,"148":1,"186":2}}],["staticarraysco",{"2":{"1":1,"6":1,"186":1}}],["staticarrayscore",{"2":{"1":10,"6":10,"59":1,"186":10,"192":6,"194":4}}],["statica",{"2":{"1":1,"6":1,"186":1}}],["statistics",{"2":{"13":2,"31":1}}],["stability",{"2":{"23":1,"30":1}}],["stable",{"2":{"13":1,"24":1,"178":1}}],["stage",{"2":{"7":1}}],["standardized",{"2":{"116":1}}],["standards",{"2":{"116":1}}],["standard",{"2":{"6":1,"82":1,"162":1}}],["started",{"2":{"64":1}}],["starting",{"2":{"63":2,"64":1,"66":1,"73":1,"171":4}}],["startvalue",{"2":{"14":4}}],["start",{"2":{"6":1,"18":1,"53":7,"59":1,"64":76,"66":17,"71":4,"73":4,"76":5,"88":1,"105":4,"116":44,"123":3,"138":1,"148":2,"158":1,"183":16,"192":1}}],["straightline",{"2":{"148":3}}],["straight",{"2":{"148":6,"155":1}}],["strait",{"2":{"148":1}}],["structs",{"2":{"20":1,"166":1}}],["structures",{"2":{"149":1}}],["structure",{"2":{"6":1,"149":1,"157":2,"172":1}}],["struct",{"2":{"6":2,"59":2,"64":2,"82":1,"160":1,"162":3,"163":3,"164":6,"171":2,"177":2,"182":1,"183":1,"184":1,"189":4}}],["strings",{"2":{"6":1,"63":1,"73":1}}],["string",{"2":{"1":2,"14":1,"62":1,"63":1,"173":2}}],["still",{"2":{"0":1,"56":1,"63":1,"64":3,"93":1,"183":1}}],["shp",{"2":{"196":1}}],["ships",{"2":{"193":1}}],["shifting",{"2":{"194":1}}],["shift",{"2":{"192":3}}],["shewchuck",{"2":{"7":1}}],["short",{"2":{"154":1}}],["shorthand",{"2":{"82":1}}],["show",{"2":{"9":1,"11":1,"13":1,"14":1,"58":1,"193":1,"196":1,"198":2}}],["shoelace",{"2":{"4":1,"6":1,"56":2,"66":1}}],["shouldn",{"2":{"73":1}}],["should",{"2":{"1":1,"4":1,"6":12,"17":1,"18":1,"20":2,"25":1,"27":1,"32":1,"53":3,"56":1,"63":1,"64":3,"65":1,"88":1,"116":4,"148":2,"151":1,"154":2,"157":2,"159":1,"162":1,"164":1,"166":4,"167":2,"178":2,"181":2}}],["sharing",{"2":{"107":1}}],["shares",{"2":{"73":1}}],["share",{"2":{"4":7,"6":8,"87":2,"88":8,"111":2,"112":1,"113":1,"122":1,"131":1}}],["shared",{"0":{"185":1},"2":{"3":1,"6":1,"64":2,"73":2,"123":3}}],["shapes",{"2":{"85":1,"196":7}}],["shape",{"2":{"62":1,"71":1,"73":1,"87":1,"162":1,"170":1,"192":1}}],["shaped",{"2":{"58":1}}],["shapefiles",{"2":{"196":1}}],["shapefile",{"2":{"29":1,"196":4}}],["shallower",{"2":{"1":1,"151":1,"154":1}}],["sites",{"2":{"200":1}}],["sides",{"2":{"64":3,"159":1}}],["side",{"2":{"53":4,"64":26}}],["signals",{"2":{"153":1}}],["sign",{"2":{"13":2,"14":2,"53":7,"56":2,"146":3}}],["signed",{"0":{"54":1,"55":1,"83":1,"84":1},"1":{"55":1,"56":1,"84":1,"85":1},"2":{"0":4,"4":15,"6":18,"11":3,"54":1,"55":5,"56":23,"66":3,"83":1,"84":7,"85":19}}],["six",{"2":{"6":1,"181":1}}],["size=",{"2":{"193":1}}],["sizehint",{"2":{"64":2,"71":1,"178":1}}],["size",{"2":{"6":4,"13":2,"14":5,"58":1,"76":1,"148":2,"154":2,"155":2,"181":1}}],["sin",{"2":{"192":3,"193":1,"194":2}}],["singed",{"2":{"85":1}}],["singular",{"2":{"73":1}}],["singlepoly",{"2":{"181":6}}],["single",{"2":{"4":6,"6":10,"23":1,"53":2,"56":1,"66":1,"88":5,"121":2,"148":2,"155":1,"167":2,"169":1,"171":2,"192":3,"196":1}}],["since",{"2":{"1":1,"6":2,"26":1,"53":1,"56":1,"63":1,"66":2,"75":1,"85":1,"88":1,"116":1,"122":2,"130":1,"154":1,"164":1,"173":1,"189":2,"200":1}}],["simulation",{"2":{"23":1}}],["simultaneously",{"2":{"20":1}}],["simply",{"2":{"7":1,"55":1,"60":1,"64":1,"73":1,"76":1,"91":1,"104":1,"119":1,"148":1,"165":1,"173":1,"174":1,"177":1,"192":1,"195":1}}],["simpler",{"2":{"6":1,"148":1}}],["simple",{"0":{"33":1,"79":1,"199":1},"1":{"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1},"2":{"6":3,"33":1,"59":1,"82":1,"149":3,"162":1,"164":1,"172":1,"173":1,"180":2,"181":2}}],["simplifier",{"2":{"181":4}}],["simplified",{"2":{"23":1,"180":1}}],["simplifies",{"2":{"6":3,"182":1,"183":1,"184":1}}],["simplification",{"0":{"179":1},"1":{"180":1,"181":1},"2":{"6":2,"179":2,"181":3}}],["simplifying",{"2":{"179":1}}],["simplify",{"0":{"182":1,"183":1,"184":1},"2":{"0":1,"6":15,"9":1,"31":1,"64":1,"149":1,"180":1,"181":41,"182":1,"183":2,"184":1}}],["simplifyalgs",{"2":{"185":1}}],["simplifyalg",{"2":{"0":1,"6":8,"181":5,"182":2,"183":2,"184":2}}],["similarly",{"2":{"149":1}}],["similar",{"2":{"1":1,"6":3,"18":1,"25":1,"27":1,"29":1,"60":1,"77":1,"82":1,"148":2,"151":1,"154":1,"177":2,"178":1,"187":1}}],["s",{"0":{"30":1},"2":{"0":1,"3":1,"6":11,"7":1,"9":1,"18":1,"19":1,"29":1,"53":1,"55":1,"56":4,"57":1,"58":2,"59":5,"62":3,"63":3,"64":3,"66":1,"68":1,"71":1,"73":2,"76":3,"81":1,"85":1,"88":1,"103":2,"110":3,"111":4,"112":2,"116":9,"122":1,"125":1,"126":1,"131":1,"148":5,"149":2,"154":2,"155":1,"160":1,"163":2,"164":2,"167":4,"169":1,"171":3,"176":4,"177":1,"178":2,"179":1,"181":2,"185":4,"189":6,"192":6,"193":4,"194":4,"195":2,"196":5,"201":2}}],["fn",{"2":{"196":8}}],["f``",{"2":{"162":1}}],["fc",{"2":{"154":4,"155":5,"157":13,"181":3,"190":14}}],["fj",{"2":{"148":2}}],["f2",{"2":{"64":2}}],["f1",{"2":{"64":2}}],["f64",{"2":{"13":2,"14":2}}],["few",{"2":{"159":1}}],["fetched",{"2":{"148":1}}],["fetch",{"2":{"32":2,"154":1,"155":1}}],["feb",{"0":{"8":1},"1":{"9":1,"10":1}}],["featurecollection",{"2":{"6":2,"11":1,"18":1,"148":4,"154":6,"157":1,"193":2}}],["featurecollectiontrait",{"2":{"1":1,"151":1,"152":1,"154":3,"155":2,"157":10,"190":5}}],["features",{"0":{"95":1,"109":1,"123":1,"127":1,"137":1},"2":{"1":1,"6":2,"11":1,"22":1,"82":1,"148":3,"151":1,"153":1,"154":11,"155":6,"157":2,"193":1}}],["featuretrait",{"2":{"1":2,"95":4,"105":2,"109":4,"123":4,"127":4,"137":4,"151":2,"152":3,"154":3,"155":3,"157":10,"190":5}}],["feature",{"2":{"1":6,"4":1,"6":4,"18":2,"22":1,"56":1,"66":1,"148":2,"149":1,"151":6,"153":1,"154":22,"155":6,"157":22,"181":2,"190":2,"196":1}}],["fra",{"2":{"200":2}}],["frame",{"2":{"195":1}}],["framework",{"2":{"149":4,"155":2}}],["fracs",{"2":{"64":20,"69":1}}],["frac",{"2":{"59":1,"64":2,"73":17,"181":2}}],["fractional",{"2":{"64":1,"73":3}}],["fractions",{"2":{"64":1,"73":4}}],["fraction",{"2":{"6":4,"73":2,"85":1,"181":1}}],["front",{"2":{"53":1}}],["from",{"2":{"1":3,"3":4,"4":16,"6":26,"7":1,"11":1,"20":1,"22":1,"26":1,"31":1,"56":2,"58":1,"59":4,"60":1,"63":1,"64":6,"66":11,"69":1,"70":1,"71":3,"72":1,"73":11,"75":1,"76":6,"82":1,"85":25,"108":2,"110":5,"111":4,"112":2,"113":1,"114":2,"116":6,"122":1,"123":1,"146":2,"148":7,"154":1,"157":6,"162":1,"164":1,"171":1,"173":4,"175":1,"181":1,"182":1,"183":3,"184":1,"190":1,"191":1,"193":5,"196":1,"198":1,"199":1,"201":1}}],["footprint",{"2":{"194":1}}],["foldable",{"2":{"154":2,"155":1}}],["follows",{"2":{"64":2,"94":1,"108":1,"126":1,"136":1,"148":1}}],["followed",{"2":{"26":1}}],["following",{"2":{"6":1,"59":1,"68":1,"157":1,"159":1,"170":1,"181":1,"198":1}}],["focusing",{"2":{"25":1,"27":1}}],["foundational",{"2":{"17":1}}],["found",{"2":{"6":7,"26":1,"66":1,"69":1,"70":2,"72":2,"73":1,"75":2,"88":1,"148":5,"152":3,"154":2,"155":1,"157":5,"178":2}}],["forward",{"2":{"73":1}}],["forwards",{"2":{"64":1,"71":1,"76":1}}],["formats",{"2":{"191":1,"194":1,"196":3}}],["format",{"2":{"69":1,"196":3}}],["form",{"2":{"18":1,"64":3,"73":8,"76":3,"154":1}}],["formed",{"2":{"4":2,"6":3,"52":1,"53":4,"59":1,"64":8,"75":1,"76":1,"183":1}}],["formulae",{"2":{"6":1,"178":1}}],["formula",{"2":{"4":1,"6":1,"56":2,"66":1}}],["force",{"2":{"1":1,"154":3,"173":1,"181":1}}],["for",{"0":{"71":1,"73":1,"76":1},"2":{"0":2,"1":3,"3":1,"4":4,"5":3,"6":46,"7":4,"9":2,"13":5,"14":1,"18":1,"20":1,"22":1,"23":5,"25":3,"26":1,"27":3,"29":1,"31":2,"32":1,"33":1,"53":5,"56":8,"57":1,"58":1,"59":19,"60":3,"63":7,"64":35,"66":11,"69":5,"70":2,"71":3,"72":1,"73":7,"75":1,"76":9,"77":2,"80":1,"82":3,"84":2,"85":7,"88":13,"94":3,"100":1,"101":1,"103":1,"105":6,"108":2,"114":1,"115":1,"116":22,"121":1,"122":2,"123":7,"126":2,"132":1,"133":1,"136":3,"142":1,"143":1,"145":1,"146":5,"147":1,"148":13,"149":3,"151":1,"154":7,"155":1,"157":1,"158":3,"159":2,"162":1,"163":1,"164":2,"165":1,"166":5,"168":1,"169":3,"170":1,"171":5,"173":3,"175":4,"176":7,"177":6,"178":10,"179":4,"181":12,"182":2,"183":2,"184":1,"185":6,"189":5,"190":7,"191":1,"193":4,"194":1,"196":3,"198":2,"200":2,"201":1}}],["fi",{"2":{"148":2}}],["fine",{"2":{"176":1}}],["final",{"2":{"76":1,"166":4,"177":1}}],["finally",{"2":{"58":2,"73":1,"148":1,"154":3,"155":1,"196":1}}],["findmin",{"2":{"185":1}}],["findmax",{"2":{"181":1,"183":1}}],["findall",{"2":{"166":1}}],["finding",{"2":{"73":1}}],["findfirst",{"2":{"64":6,"69":2,"80":1,"181":1}}],["findnext",{"2":{"64":3}}],["findlast",{"2":{"64":2}}],["findprev",{"2":{"64":2}}],["finds",{"2":{"64":1,"66":1}}],["find",{"2":{"53":6,"56":1,"64":12,"66":3,"69":2,"70":4,"72":2,"73":8,"75":1,"85":3,"88":1,"116":7,"148":2,"183":5,"200":1}}],["finish",{"2":{"9":1}}],["fill",{"2":{"64":1,"148":1,"178":3}}],["filled",{"2":{"64":5,"66":3,"84":1,"85":2,"116":16}}],["files",{"2":{"188":1,"196":2}}],["file",{"2":{"26":1,"32":1,"33":1,"64":1,"94":3,"108":3,"126":3,"136":3,"147":1,"148":1,"149":1,"155":1,"156":1,"157":1,"165":1,"173":1,"178":1,"179":1,"188":2,"191":1,"196":2}}],["filters",{"2":{"64":1}}],["filtering",{"2":{"6":1,"181":1}}],["filter",{"2":{"4":1,"6":2,"64":2,"154":2,"155":1,"168":1,"171":2,"181":1}}],["fit",{"2":{"17":1}}],["field",{"2":{"13":2,"64":2}}],["figure",{"2":{"13":1,"14":1,"55":1,"58":2,"81":1,"193":3}}],["fig",{"2":{"13":6,"14":6,"81":5,"192":7,"193":4,"197":2}}],["fix1",{"2":{"154":1,"155":1}}],["fixme",{"2":{"146":1}}],["fix2",{"2":{"32":1,"64":2}}],["fixed",{"2":{"6":3,"70":1,"72":1,"75":1}}],["fix",{"0":{"20":1},"2":{"6":9,"9":3,"15":3,"17":1,"20":1,"70":1,"71":11,"72":1,"73":11,"75":1,"76":10,"81":2,"159":1,"165":1,"166":1,"170":1}}],["firstisright",{"2":{"148":2}}],["firstisleft",{"2":{"148":4}}],["firstisstraight",{"2":{"148":4}}],["firstnode",{"2":{"148":9}}],["first",{"2":{"3":9,"6":10,"53":14,"56":7,"58":1,"59":9,"60":1,"63":1,"64":17,"66":2,"69":1,"70":2,"72":1,"73":5,"75":3,"85":8,"88":4,"90":2,"91":2,"93":1,"94":2,"97":1,"98":1,"99":1,"104":2,"108":3,"116":22,"122":1,"126":2,"128":1,"135":1,"136":2,"139":1,"140":1,"141":2,"146":1,"148":16,"154":3,"155":2,"157":2,"159":1,"178":3,"182":1,"183":2,"190":2,"191":1,"192":1,"193":1,"194":1,"198":1,"199":1}}],["flexijoins",{"2":{"198":2,"199":3,"200":1,"201":5}}],["flexible",{"2":{"154":1,"155":1}}],["flags",{"2":{"64":5}}],["flag",{"2":{"64":12,"69":1}}],["flattened",{"2":{"18":1}}],["flatten",{"0":{"157":1},"2":{"11":3,"13":1,"18":1,"31":2,"50":1,"59":1,"64":2,"66":3,"72":1,"76":1,"82":2,"105":1,"157":33,"171":1}}],["flattening`",{"2":{"162":1}}],["flattening",{"2":{"6":4,"155":1,"162":3,"177":2}}],["flat",{"2":{"6":2,"178":1,"185":2,"190":1}}],["floating",{"2":{"6":1,"64":1,"73":5,"148":2}}],["float",{"2":{"6":3,"70":1,"72":1,"75":1}}],["float64x2",{"2":{"13":6,"14":6,"15":2}}],["float64",{"2":{"1":6,"4":10,"6":30,"13":1,"52":1,"53":3,"56":6,"63":1,"66":4,"69":2,"70":2,"72":1,"73":3,"75":1,"81":1,"85":12,"116":4,"123":2,"146":4,"159":6,"170":26,"176":2,"177":2,"178":1,"182":4,"183":9,"184":2,"185":6,"186":6,"187":1,"190":8,"192":190,"193":7,"194":10}}],["flipping",{"0":{"172":1},"2":{"172":1}}],["flipped",{"2":{"1":2,"151":2,"154":2}}],["flipaxis",{"2":{"58":1}}],["flip",{"2":{"0":1,"6":1,"31":1,"149":2,"154":1,"172":2}}],["fancy",{"2":{"192":1}}],["fancis",{"2":{"6":1,"59":1}}],["fair",{"2":{"176":1}}],["fail",{"2":{"1":1,"6":1,"151":1,"154":2,"155":1,"157":3,"177":1}}],["fallback",{"2":{"154":1}}],["falses",{"2":{"64":2,"69":1,"70":1,"72":1}}],["false",{"0":{"24":1},"2":{"1":29,"3":6,"4":3,"6":50,"31":1,"32":2,"35":1,"36":1,"37":1,"38":1,"50":1,"53":2,"56":1,"58":5,"64":26,"66":5,"69":1,"70":1,"71":3,"73":1,"75":4,"85":2,"87":2,"88":27,"90":2,"94":8,"96":2,"97":4,"98":1,"99":1,"100":1,"101":1,"103":2,"105":11,"108":9,"110":1,"111":4,"114":1,"115":1,"116":39,"122":4,"123":23,"126":8,"128":3,"129":4,"130":1,"132":1,"133":1,"135":1,"136":7,"138":2,"139":4,"140":1,"141":1,"142":1,"143":1,"146":10,"148":5,"151":4,"154":11,"155":7,"157":3,"159":16,"162":1,"164":3,"170":44,"171":4,"178":5,"181":1,"185":2,"186":20,"190":2,"192":242,"193":12,"194":18,"198":1}}],["fashion",{"2":{"55":1}}],["faster",{"2":{"59":1,"154":1}}],["fast",{"2":{"12":1}}],["f",{"2":{"1":12,"6":14,"15":1,"18":3,"19":1,"22":2,"52":1,"55":2,"58":4,"60":1,"62":2,"64":19,"65":2,"68":2,"70":2,"71":2,"72":2,"73":2,"75":2,"76":2,"79":2,"80":2,"84":5,"87":2,"90":2,"93":2,"103":2,"107":2,"116":7,"118":2,"121":2,"125":2,"135":2,"148":30,"151":7,"152":2,"154":61,"155":64,"157":52,"174":1,"176":2,"177":1,"180":2,"181":1,"185":6,"186":6,"189":5,"190":16,"192":6,"194":2,"199":3}}],["fulfilled",{"2":{"183":1}}],["fully",{"2":{"6":1,"64":4,"69":1,"123":4}}],["full",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"66":5,"166":1,"200":4}}],["furthest",{"2":{"148":1}}],["further",{"2":{"62":1,"154":1}}],["furthermore",{"2":{"3":2,"6":5,"64":1,"70":1,"72":1,"75":1,"94":1,"136":1}}],["fun",{"2":{"192":1}}],["fundamental",{"2":{"26":1,"188":1}}],["func",{"2":{"13":5}}],["funcs",{"2":{"13":2,"14":3}}],["functionality",{"2":{"73":1,"172":1,"173":1,"178":1,"189":1}}],["functionalities",{"2":{"64":1}}],["functionally",{"2":{"1":1,"18":1,"29":1,"151":1,"154":1}}],["function",{"2":{"1":4,"4":1,"6":10,"7":2,"9":1,"13":3,"14":2,"18":2,"29":1,"31":1,"32":2,"53":5,"56":3,"59":13,"63":6,"64":18,"66":7,"68":2,"69":4,"70":3,"71":3,"72":2,"73":7,"74":1,"75":2,"76":4,"82":2,"85":6,"87":1,"88":8,"90":1,"93":1,"94":1,"100":1,"101":1,"103":1,"105":5,"107":1,"108":1,"114":1,"115":1,"116":9,"118":1,"121":1,"123":9,"125":1,"126":1,"132":1,"133":1,"135":1,"136":1,"142":1,"143":1,"146":4,"147":3,"148":16,"149":1,"151":2,"152":2,"154":15,"155":11,"157":5,"160":2,"164":1,"166":7,"167":2,"171":2,"172":2,"173":1,"175":2,"177":2,"178":7,"181":3,"182":2,"183":3,"184":2,"185":7,"186":3,"187":1,"189":6,"190":12,"192":1,"198":4,"201":4}}],["functions",{"0":{"1":1,"71":1,"73":1,"76":1,"151":1,"190":1},"2":{"6":1,"9":3,"17":1,"26":1,"29":1,"33":1,"56":1,"59":1,"63":1,"64":2,"66":1,"68":1,"116":1,"147":1,"149":1,"152":1,"166":2,"167":1}}],["future",{"2":{"23":1,"77":1,"85":1,"175":2}}],["wgs84",{"2":{"193":1}}],["wglmakie",{"2":{"14":1}}],["wₜₒₜ",{"2":{"59":8}}],["wᵢ",{"2":{"59":18}}],["wt",{"2":{"59":3}}],["w",{"2":{"13":13,"14":7,"85":4,"148":1}}],["wrong",{"2":{"169":1,"185":1}}],["writing",{"2":{"196":1}}],["written",{"2":{"88":1}}],["writes",{"2":{"154":1}}],["write",{"2":{"7":1,"30":1,"148":1,"154":1,"196":7}}],["wrap",{"2":{"4":1,"6":1,"32":3,"35":1,"36":1,"37":1,"38":1,"50":1,"168":1,"177":1}}],["wrapped",{"2":{"22":1,"148":2,"152":1,"154":1}}],["wrapper",{"0":{"30":1},"2":{"30":1,"53":1,"56":1,"63":1,"66":1,"85":1,"88":1,"94":1,"108":1,"122":1,"126":1,"136":1}}],["wrappers`",{"2":{"157":1}}],["wrappers",{"2":{"1":10,"6":11,"22":1,"146":2,"148":1,"157":1,"159":8,"160":1,"170":22,"176":1,"177":1,"181":1,"186":10,"190":1,"192":121,"193":5,"194":9}}],["wrappergeometry`",{"2":{"173":1}}],["wrappergeometry",{"2":{"1":1}}],["wrapping",{"2":{"1":1,"6":1,"88":1,"173":1,"187":1}}],["web",{"2":{"196":1}}],["west",{"2":{"66":8}}],["were",{"2":{"64":1,"148":1,"199":1}}],["welcome",{"2":{"25":1,"27":1}}],["well",{"2":{"17":1,"64":1,"66":1,"82":1,"164":1,"175":1,"178":1,"179":1}}],["we",{"0":{"74":2},"2":{"7":1,"11":1,"13":1,"17":3,"19":1,"23":3,"24":1,"25":2,"26":1,"27":2,"32":1,"53":1,"55":2,"56":2,"58":4,"59":8,"60":2,"63":1,"64":7,"66":4,"71":8,"72":2,"73":3,"76":1,"77":1,"81":3,"82":2,"85":1,"87":1,"88":5,"90":1,"91":1,"93":1,"94":1,"104":1,"107":1,"108":1,"116":2,"118":3,"119":1,"121":1,"122":2,"125":1,"126":1,"135":1,"136":1,"147":1,"148":21,"152":1,"154":19,"155":6,"157":3,"158":1,"162":6,"164":4,"174":1,"175":2,"176":2,"177":3,"178":1,"181":5,"185":2,"188":1,"189":1,"191":2,"192":4,"193":6,"194":4,"195":1,"196":3,"198":3,"199":7}}],["weighting",{"2":{"62":2,"63":1}}],["weights",{"2":{"57":4}}],["weight",{"2":{"6":5,"59":14,"63":1}}],["weighted",{"2":{"0":1,"6":2,"57":3,"59":4,"63":4}}],["walk",{"2":{"69":1}}],["wall2",{"2":{"66":7}}],["wall1",{"2":{"66":12}}],["walls",{"2":{"66":3}}],["wall",{"2":{"66":69}}],["wachspress",{"2":{"59":1}}],["wasincreasing",{"2":{"148":10}}],["wasn",{"2":{"64":1}}],["was",{"2":{"31":1,"32":1,"50":1,"53":1,"56":1,"58":1,"59":4,"60":1,"63":1,"64":1,"66":1,"69":1,"70":1,"71":3,"72":1,"73":2,"74":1,"75":1,"76":3,"82":1,"85":1,"88":1,"91":1,"101":1,"104":1,"105":1,"115":1,"116":1,"119":1,"123":1,"133":1,"143":1,"146":1,"147":1,"148":1,"152":1,"154":1,"155":1,"156":1,"157":1,"160":1,"164":1,"167":1,"168":1,"171":1,"172":1,"174":1,"176":1,"178":1,"185":1,"186":1,"187":1,"189":2,"190":1}}],["wanted",{"2":{"201":1}}],["wants",{"2":{"82":1,"155":1}}],["want",{"0":{"23":1,"74":1},"2":{"13":1,"18":1,"23":1,"59":1,"64":1,"146":1,"193":2,"195":1,"200":1,"201":1}}],["ways",{"2":{"169":1}}],["way",{"2":{"6":1,"17":1,"18":1,"24":1,"29":1,"57":1,"149":1,"163":1,"165":1,"178":1,"189":2,"195":1}}],["warn",{"2":{"148":2,"178":1}}],["warned",{"2":{"6":1,"189":1}}],["warning",{"2":{"0":1,"5":1,"6":3,"24":1,"59":1,"82":1,"155":1,"177":1,"188":1,"200":1}}],["wong",{"2":{"79":1,"80":1,"197":1}}],["won",{"2":{"23":1,"64":1,"155":1}}],["wouldn",{"2":{"73":1}}],["would",{"0":{"74":1},"2":{"6":3,"23":1,"70":1,"72":1,"73":1,"75":1,"82":4,"148":1,"154":1,"164":2,"193":1,"200":1,"201":1}}],["wound",{"2":{"6":1,"82":1}}],["world",{"0":{"200":1},"2":{"198":1}}],["worrying",{"2":{"24":1}}],["words",{"2":{"3":1,"6":1,"90":1,"118":1,"125":1,"126":1}}],["workflow",{"2":{"105":1,"123":1}}],["workflows",{"2":{"23":1,"25":1,"27":1}}],["works",{"2":{"26":1,"173":1,"175":1}}],["working",{"2":{"3":1,"6":1,"105":1,"193":1}}],["work",{"2":{"1":3,"6":2,"9":1,"53":1,"56":2,"63":1,"66":2,"69":2,"77":1,"85":1,"88":1,"116":1,"122":1,"146":1,"151":1,"154":1,"155":1,"173":1,"186":1,"200":1}}],["whole",{"2":{"116":1}}],["whose",{"2":{"3":1,"6":1,"105":1}}],["white",{"2":{"58":1}}],["while",{"2":{"53":1,"62":1,"63":1,"64":5,"73":2,"81":2,"84":1,"88":1,"105":1,"116":1,"148":3,"171":1,"183":1,"185":2,"199":1}}],["whichever",{"2":{"6":1,"181":1}}],["which",{"2":{"1":1,"4":2,"5":1,"6":7,"7":1,"11":1,"13":1,"14":1,"17":1,"18":4,"20":1,"23":2,"33":1,"55":1,"56":1,"57":1,"58":2,"59":5,"60":1,"64":11,"66":2,"73":2,"77":1,"82":1,"88":2,"116":3,"147":1,"148":3,"149":1,"154":1,"158":2,"159":1,"162":2,"163":1,"166":1,"169":1,"170":1,"174":1,"175":1,"176":1,"177":3,"178":2,"181":1,"183":2,"186":1,"189":4,"196":3,"198":3,"199":6,"201":1}}],["what",{"0":{"22":1,"25":1,"30":1,"52":1,"55":2,"62":1,"65":1,"68":1,"84":2,"87":1,"90":1,"93":1,"103":1,"107":1,"118":1,"121":1,"125":1,"135":1,"152":1},"2":{"13":1,"14":1,"24":1,"62":1,"146":1,"148":1,"164":1,"176":1,"193":1,"200":1}}],["whatever",{"2":{"1":1,"22":1,"151":1,"154":1}}],["whyatt",{"2":{"179":1}}],["why",{"0":{"22":1,"23":1},"2":{"9":1,"17":1,"30":1,"56":1}}],["wheel",{"2":{"17":1}}],["whether",{"2":{"1":4,"4":1,"6":8,"145":1,"146":1,"151":2,"156":2,"158":1,"164":1}}],["when",{"2":{"1":1,"4":2,"5":1,"6":4,"18":1,"20":1,"23":2,"24":1,"56":1,"59":3,"63":1,"64":2,"71":5,"73":6,"76":7,"116":1,"148":1,"151":1,"152":3,"154":1,"159":1,"166":1,"168":2,"181":1,"193":1,"194":2,"196":1,"201":1}}],["whereas",{"2":{"162":1}}],["wherever",{"2":{"6":1,"187":1}}],["where",{"2":{"1":2,"4":5,"6":10,"20":1,"31":2,"53":8,"56":12,"57":2,"59":24,"63":8,"64":14,"66":8,"69":5,"70":2,"71":5,"72":3,"73":18,"75":2,"76":9,"85":25,"88":1,"116":9,"148":3,"151":1,"154":18,"155":18,"157":17,"162":2,"163":5,"169":1,"173":1,"176":1,"187":1,"188":1,"190":3,"192":4}}],["widely",{"2":{"196":1}}],["widths",{"2":{"14":1}}],["wiki",{"2":{"116":1,"183":1}}],["wikipedia",{"2":{"116":1,"183":2}}],["wind",{"2":{"4":1,"6":2,"56":1,"88":1}}],["winding",{"0":{"81":1},"2":{"4":2,"6":3,"56":3,"64":7,"81":4,"82":1,"88":1,"148":1}}],["without",{"2":{"1":2,"6":1,"17":1,"24":1,"64":1,"107":1,"122":1,"154":1,"155":1,"157":2,"173":1,"186":1}}],["with",{"0":{"71":1,"73":1,"76":1,"182":1,"183":1,"184":1,"194":1,"195":1},"2":{"1":5,"3":4,"4":7,"6":21,"11":1,"20":1,"22":2,"23":1,"52":1,"53":2,"56":7,"57":4,"58":1,"59":2,"63":1,"64":14,"66":6,"71":8,"72":5,"73":15,"75":1,"76":12,"84":1,"85":2,"94":1,"107":1,"111":1,"116":28,"118":1,"121":2,"122":2,"123":2,"125":1,"126":1,"129":3,"130":2,"131":2,"141":1,"148":7,"149":1,"151":3,"152":1,"154":12,"155":3,"157":4,"159":1,"162":1,"164":1,"168":1,"169":1,"173":1,"175":1,"178":2,"181":2,"183":2,"184":1,"186":1,"189":1,"191":1,"192":4,"193":6,"194":2,"195":2,"196":2,"198":1,"199":1,"200":1}}],["within",{"0":{"44":1,"134":1,"135":1,"138":1,"139":1,"141":1,"142":1,"143":1},"1":{"135":1,"136":1},"2":{"0":2,"3":9,"4":3,"5":1,"6":13,"7":1,"9":1,"31":1,"44":2,"53":2,"56":1,"57":3,"59":1,"63":1,"64":9,"65":2,"66":5,"71":1,"73":2,"75":1,"76":6,"84":1,"85":5,"90":2,"91":3,"93":2,"110":1,"116":9,"121":1,"122":1,"123":8,"134":1,"135":6,"136":11,"137":6,"138":14,"139":15,"140":15,"141":7,"142":4,"143":4,"149":1,"198":1,"199":4,"200":2}}],["will",{"2":{"1":8,"4":7,"5":1,"6":38,"11":1,"18":3,"23":2,"24":1,"53":4,"56":3,"59":2,"63":1,"64":5,"66":1,"69":1,"70":4,"71":4,"72":4,"73":4,"75":4,"76":4,"82":1,"84":2,"85":4,"88":1,"105":1,"146":1,"148":2,"151":3,"152":1,"153":2,"154":4,"155":3,"157":6,"159":1,"162":2,"167":2,"169":1,"171":2,"173":3,"175":2,"177":3,"181":2,"183":1,"185":1,"186":2,"189":1,"193":1,"196":1,"198":2,"200":1,"201":1}}],["wip",{"2":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR238/assets/chunks/VPLocalSearchBox.CCeSYx2c.js b/previews/PR238/assets/chunks/VPLocalSearchBox.CPPYCYL5.js similarity index 99% rename from previews/PR238/assets/chunks/VPLocalSearchBox.CCeSYx2c.js rename to previews/PR238/assets/chunks/VPLocalSearchBox.CPPYCYL5.js index af81e50fb..348f1abaa 100644 --- a/previews/PR238/assets/chunks/VPLocalSearchBox.CCeSYx2c.js +++ b/previews/PR238/assets/chunks/VPLocalSearchBox.CPPYCYL5.js @@ -1,4 +1,4 @@ -var Ft=Object.defineProperty;var Ot=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Ot(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,p as ie,h as me,aj as tt,ak as Rt,al as At,q as $e,am as Mt,d as Lt,D as xe,an as st,ao as Dt,ap as zt,s as Pt,aq as jt,v as Me,P as he,O as _e,ar as Vt,as as $t,W as Bt,R as Wt,$ as Kt,o as H,b as Jt,j as _,a0 as Ut,k as L,at as qt,au as Gt,av as Ht,c as Z,n as nt,e as Se,C as it,F as rt,a as fe,t as pe,aw as Qt,ax as at,ay as Yt,a9 as Zt,af as Xt,az as es,_ as ts}from"./framework.Bkt_v4A4.js";import{u as ss,c as ns}from"./theme.Beldwsud.js";const is={root:()=>Ct(()=>import("./@localSearchIndexroot.Dr3-XR6o.js"),[])};/*! +var Ft=Object.defineProperty;var Ot=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Ot(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,p as ie,h as me,aj as tt,ak as Rt,al as At,q as $e,am as Mt,d as Lt,D as xe,an as st,ao as Dt,ap as zt,s as Pt,aq as jt,v as Me,P as he,O as _e,ar as Vt,as as $t,W as Bt,R as Wt,$ as Kt,o as H,b as Jt,j as _,a0 as Ut,k as L,at as qt,au as Gt,av as Ht,c as Z,n as nt,e as Se,C as it,F as rt,a as fe,t as pe,aw as Qt,ax as at,ay as Yt,a9 as Zt,af as Xt,az as es,_ as ts}from"./framework.Bkt_v4A4.js";import{u as ss,c as ns}from"./theme.B7VD6roi.js";const is={root:()=>Ct(()=>import("./@localSearchIndexroot.D41mAyhC.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var mt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ne=mt.join(","),gt=typeof Element>"u",ae=gt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Fe=!gt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},Oe=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},rs=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},bt=function(e,t,s){if(Oe(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&ae.call(e,Ne)&&n.unshift(e),n=n.filter(s),n},yt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!Oe(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),l=o.length?o:i.children,c=a(l,!0,s);s.flatten?n.push.apply(n,c):n.push({scopeParent:i,candidates:c})}else{var h=ae.call(i,Ne);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var m=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),f=!Oe(m,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(m&&f){var b=a(m===!0?i.children:m.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},re=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||rs(e))&&!wt(e)?0:e.tabIndex},as=function(e,t){var s=re(e);return s<0&&t&&!wt(e)?0:s},os=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},ls=function(e){return xt(e)&&e.type==="hidden"},cs=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},us=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(ae.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var l=e.parentElement,c=Fe(e);if(l&&!l.shadowRoot&&n(l)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!l&&c!==e.ownerDocument?e=c.host:e=l}e=o}if(ps(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return ot(e);return!1},ms=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s=0)},bs=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,l=as(o,i),c=i?a(n.candidates):o;l===0?i?t.push.apply(t,c):t.push(o):s.push({documentOrder:r,tabIndex:l,item:n,isScope:i,content:c})}),s.sort(os).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},ys=function(e,t){t=t||{};var s;return t.getShadowRoot?s=yt([e],t.includeContainer,{filter:Be.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:gs}):s=bt(e,t.includeContainer,Be.bind(null,t)),bs(s)},ws=function(e,t){t=t||{};var s;return t.getShadowRoot?s=yt([e],t.includeContainer,{filter:Ce.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=bt(e,t.includeContainer,Ce.bind(null,t)),s},oe=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,Ne)===!1?!1:Be(t,e)},xs=mt.concat("iframe").join(","),Le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,xs)===!1?!1:Ce(t,e)};/*! diff --git a/previews/PR238/assets/chunks/theme.Beldwsud.js b/previews/PR238/assets/chunks/theme.B7VD6roi.js similarity index 99% rename from previews/PR238/assets/chunks/theme.Beldwsud.js rename to previews/PR238/assets/chunks/theme.B7VD6roi.js index ee28d42eb..04c849a53 100644 --- a/previews/PR238/assets/chunks/theme.Beldwsud.js +++ b/previews/PR238/assets/chunks/theme.B7VD6roi.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.CCeSYx2c.js","assets/chunks/framework.Bkt_v4A4.js"])))=>i.map(i=>d[i]); -import{d as m,o as a,c as u,r as c,n as I,a as z,t as w,b as g,w as f,e as h,T as de,_ as $,u as Ge,i as je,f as ze,g as pe,h as y,j as v,k as i,l as K,m as re,p as T,q as F,s as Z,v as O,x as ve,y as fe,z as Ke,A as Re,B as R,F as M,C as H,D as Ve,E as x,G as k,H as E,I as Te,J as ee,K as j,L as q,M as We,N as Ne,O as ie,P as he,Q as we,R as te,S as qe,U as Je,V as Ye,W as Ie,X as me,Y as Xe,Z as Qe,$ as Ze,a0 as xe,a1 as Me,a2 as et,a3 as tt,a4 as nt}from"./framework.Bkt_v4A4.js";const st=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),u("span",{class:I(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[z(w(e.text),1)])],2))}}),ot={key:0,class:"VPBackdrop"},at=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),g(de,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",ot)):h("",!0)]),_:1}))}}),rt=$(at,[["__scopeId","data-v-b06cdb19"]]),V=Ge;function it(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function le(o){return/^\//.test(o)?o:`/${o}`}function _e(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(je(o)||o.startsWith("#")||!n.startsWith("http")||!ze(e))return o;const{site:r}=V(),l=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${s}`);return pe(l)}function Y({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:s,theme:n,hash:r}=V(),l=y(()=>{var p,b;return{label:(p=e.value.locales[t.value])==null?void 0:p.label,link:((b=e.value.locales[t.value])==null?void 0:b.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([p,b])=>l.value.label===b.label?[]:{text:b.label,link:lt(b.link||(p==="root"?"/":`/${p}/`),n.value.i18nRouting!==!1&&o,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:l}}function lt(o,e,t,s){return e?o.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const ct={class:"NotFound"},ut={class:"code"},dt={class:"title"},pt={class:"quote"},vt={class:"action"},ft=["href","aria-label"],ht=m({__name:"NotFound",setup(o){const{theme:e}=V(),{currentLang:t}=Y();return(s,n)=>{var r,l,d,p,b;return a(),u("div",ct,[v("p",ut,w(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),v("h1",dt,w(((l=i(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),n[0]||(n[0]=v("div",{class:"divider"},null,-1)),v("blockquote",pt,w(((d=i(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",vt,[v("a",{class:"link",href:i(pe)(i(t).link),"aria-label":((p=i(e).notFound)==null?void 0:p.linkLabel)??"go to home"},w(((b=i(e).notFound)==null?void 0:b.linkText)??"Take me home"),9,ft)])])}}}),mt=$(ht,[["__scopeId","data-v-951cab6c"]]);function Ae(o,e){if(Array.isArray(o))return X(o);if(o==null)return[];e=le(e);const t=Object.keys(o).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(le(n))),s=t?o[t]:[];return Array.isArray(s)?X(s):X(s.items,s.base)}function _t(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function bt(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ce(o,e){return Array.isArray(e)?e.some(t=>ce(o,t)):K(o,e.link)?!0:e.items?ce(o,e.items):!1}function X(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=X(s.items,n)),s})}function U(){const{frontmatter:o,page:e,theme:t}=V(),s=re("(min-width: 960px)"),n=T(!1),r=y(()=>{const C=t.value.sidebar,N=e.value.relativePath;return C?Ae(C,N):[]}),l=T(r.value);F(r,(C,N)=>{JSON.stringify(C)!==JSON.stringify(N)&&(l.value=r.value)});const d=y(()=>o.value.sidebar!==!1&&l.value.length>0&&o.value.layout!=="home"),p=y(()=>b?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),b=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),L=y(()=>d.value&&s.value),_=y(()=>d.value?_t(l.value):[]);function P(){n.value=!0}function S(){n.value=!1}function A(){n.value?S():P()}return{isOpen:n,sidebar:l,sidebarGroups:_,hasSidebar:d,hasAside:b,leftAside:p,isSidebarEnabled:L,open:P,close:S,toggle:A}}function kt(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),O(()=>{window.addEventListener("keyup",s)}),ve(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function gt(o){const{page:e,hash:t}=V(),s=T(!1),n=y(()=>o.value.collapsed!=null),r=y(()=>!!o.value.link),l=T(!1),d=()=>{l.value=K(e.value.relativePath,o.value.link)};F([e,o,t],d),O(d);const p=y(()=>l.value?!0:o.value.items?ce(e.value.relativePath,o.value.items):!1),b=y(()=>!!(o.value.items&&o.value.items.length));Z(()=>{s.value=!!(n.value&&o.value.collapsed)}),fe(()=>{(l.value||p.value)&&(s.value=!1)});function L(){n.value&&(s.value=!s.value)}return{collapsed:s,collapsible:n,isLink:r,isActiveLink:l,hasActiveLink:p,hasChildren:b,toggle:L}}function $t(){const{hasSidebar:o}=U(),e=re("(min-width: 960px)"),t=re("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const ue=[];function Ce(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function be(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:yt(t),link:"#"+t.id,level:s}});return Pt(e,o)}function yt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Pt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return Vt(o,s,n)}function St(o,e){const{isAsideEnabled:t}=$t(),s=it(r,100);let n=null;O(()=>{requestAnimationFrame(r),window.addEventListener("scroll",s)}),Ke(()=>{l(location.hash)}),ve(()=>{window.removeEventListener("scroll",s)});function r(){if(!t.value)return;const d=window.scrollY,p=window.innerHeight,b=document.body.offsetHeight,L=Math.abs(d+p-b)<1,_=ue.map(({element:S,link:A})=>({link:A,top:Lt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!_.length){l(null);return}if(d<1){l(null);return}if(L){l(_[_.length-1].link);return}let P=null;for(const{link:S,top:A}of _){if(A>d+Re()+4)break;P=S}l(P)}function l(d){n&&n.classList.remove("active"),d==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const p=n;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Lt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}function Vt(o,e,t){ue.length=0;const s=[],n=[];return o.forEach(r=>{const l={...r,children:[]};let d=n[n.length-1];for(;d&&d.level>=l.level;)n.pop(),d=n[n.length-1];if(l.element.classList.contains("ignore-header")||d&&"shouldIgnore"in d){n.push({level:l.level,shouldIgnore:!0});return}l.level>t||l.level{const n=R("VPDocOutlineItem",!0);return a(),u("ul",{class:I(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,H(t.headers,({children:r,link:l,title:d})=>(a(),u("li",null,[v("a",{class:"outline-link",href:l,onClick:e,title:d},w(d),9,Tt),r!=null&&r.length?(a(),g(n,{key:0,headers:r},null,8,["headers"])):h("",!0)]))),256))],2)}}}),He=$(Nt,[["__scopeId","data-v-3f927ebe"]]),wt={class:"content"},It={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Mt=m({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=V(),s=Ve([]);x(()=>{s.value=be(e.value.outline??t.value.outline)});const n=T(),r=T();return St(n,r),(l,d)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n},[v("div",wt,[v("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),v("div",It,w(i(Ce)(i(t))),1),k(He,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),At=$(Mt,[["__scopeId","data-v-b38bf2ff"]]),Ct={class:"VPDocAsideCarbonAds"},Ht=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),u("div",Ct,[k(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Bt={class:"VPDocAside"},Et=m({__name:"VPDocAside",setup(o){const{theme:e}=V();return(t,s)=>(a(),u("div",Bt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),k(At),c(t.$slots,"aside-outline-after",{},void 0,!0),s[0]||(s[0]=v("div",{class:"spacer"},null,-1)),c(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),g(Ht,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):h("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Dt=$(Et,[["__scopeId","data-v-6d7b3c46"]]);function Ft(){const{theme:o,page:e}=V();return y(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Ot(){const{page:o,theme:e,frontmatter:t}=V();return y(()=>{var b,L,_,P,S,A,C,N;const s=Ae(e.value.sidebar,o.value.relativePath),n=bt(s),r=Ut(n,B=>B.link.replace(/[?#].*$/,"")),l=r.findIndex(B=>K(o.value.relativePath,B.link)),d=((b=e.value.docFooter)==null?void 0:b.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((_=r[l-1])==null?void 0:_.docFooterText)??((P=r[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=r[l-1])==null?void 0:S.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=r[l+1])==null?void 0:A.docFooterText)??((C=r[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((N=r[l+1])==null?void 0:N.link)}}})}function Ut(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const D=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&Te.test(e.href)||e.target==="_blank");return(n,r)=>(a(),g(E(t.value),{class:I(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?i(_e)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Gt={class:"VPLastUpdated"},jt=["datetime"],zt=m({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:s}=V(),n=y(()=>new Date(t.value.lastUpdated)),r=y(()=>n.value.toISOString()),l=T("");return O(()=>{Z(()=>{var d,p,b;l.value=new Intl.DateTimeFormat((p=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&p.forceLocale?s.value:void 0,((b=e.value.lastUpdated)==null?void 0:b.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(d,p)=>{var b;return a(),u("p",Gt,[z(w(((b=i(e).lastUpdated)==null?void 0:b.text)||i(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:r.value},w(l.value),9,jt)])}}}),Kt=$(zt,[["__scopeId","data-v-475f71b8"]]),Rt={key:0,class:"VPDocFooter"},Wt={key:0,class:"edit-info"},qt={key:0,class:"edit-link"},Jt={key:1,class:"last-updated"},Yt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Xt={class:"pager"},Qt=["innerHTML"],Zt=["innerHTML"],xt={class:"pager"},en=["innerHTML"],tn=["innerHTML"],nn=m({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=V(),n=Ft(),r=Ot(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),d=y(()=>t.value.lastUpdated),p=y(()=>l.value||d.value||r.value.prev||r.value.next);return(b,L)=>{var _,P,S,A;return p.value?(a(),u("footer",Rt,[c(b.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),u("div",Wt,[l.value?(a(),u("div",qt,[k(D,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:f(()=>[L[0]||(L[0]=v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),z(" "+w(i(n).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(a(),u("div",Jt,[k(Kt)])):h("",!0)])):h("",!0),(_=i(r).prev)!=null&&_.link||(P=i(r).next)!=null&&P.link?(a(),u("nav",Yt,[L[1]||(L[1]=v("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),v("div",Xt,[(S=i(r).prev)!=null&&S.link?(a(),g(D,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:f(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,Qt),v("span",{class:"title",innerHTML:i(r).prev.text},null,8,Zt)]}),_:1},8,["href"])):h("",!0)]),v("div",xt,[(A=i(r).next)!=null&&A.link?(a(),g(D,{key:0,class:"pager-link next",href:i(r).next.link},{default:f(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,en),v("span",{class:"title",innerHTML:i(r).next.text},null,8,tn)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),sn=$(nn,[["__scopeId","data-v-4f9813fa"]]),on={class:"container"},an={class:"aside-container"},rn={class:"aside-content"},ln={class:"content"},cn={class:"content-container"},un={class:"main"},dn=m({__name:"VPDoc",setup(o){const{theme:e}=V(),t=ee(),{hasSidebar:s,hasAside:n,leftAside:r}=U(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,p)=>{const b=R("Content");return a(),u("div",{class:I(["VPDoc",{"has-sidebar":i(s),"has-aside":i(n)}])},[c(d.$slots,"doc-top",{},void 0,!0),v("div",on,[i(n)?(a(),u("div",{key:0,class:I(["aside",{"left-aside":i(r)}])},[p[0]||(p[0]=v("div",{class:"aside-curtain"},null,-1)),v("div",an,[v("div",rn,[k(Dt,null,{"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),v("div",ln,[v("div",cn,[c(d.$slots,"doc-before",{},void 0,!0),v("main",un,[k(b,{class:I(["vp-doc",[l.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(sn,null,{"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),pn=$(dn,[["__scopeId","data-v-83890dd9"]]),vn=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Te.test(e.href)),s=y(()=>e.tag||(e.href?"a":"button"));return(n,r)=>(a(),g(E(s.value),{class:I(["VPButton",[n.size,n.theme]]),href:n.href?i(_e)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[z(w(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),fn=$(vn,[["__scopeId","data-v-906d7fb4"]]),hn=["src","alt"],mn=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=R("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",j({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,hn)):(a(),u(M,{key:1},[k(s,j({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(s,j({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),Q=$(mn,[["__scopeId","data-v-35a7d0b8"]]),_n={class:"container"},bn={class:"main"},kn={key:0,class:"name"},gn=["innerHTML"],$n=["innerHTML"],yn=["innerHTML"],Pn={key:0,class:"actions"},Sn={key:0,class:"image"},Ln={class:"image-container"},Vn=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=q("hero-image-slot-exists");return(t,s)=>(a(),u("div",{class:I(["VPHero",{"has-image":t.image||i(e)}])},[v("div",_n,[v("div",bn,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",kn,[v("span",{innerHTML:t.name,class:"clip"},null,8,gn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,$n)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,yn)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Pn,[(a(!0),u(M,null,H(t.actions,n=>(a(),u("div",{key:n.link,class:"action"},[k(fn,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),u("div",Sn,[v("div",Ln,[s[0]||(s[0]=v("div",{class:"image-bg"},null,-1)),c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),g(Q,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),Tn=$(Vn,[["__scopeId","data-v-955009fc"]]),Nn=m({__name:"VPHomeHero",setup(o){const{frontmatter:e}=V();return(t,s)=>i(e).hero?(a(),g(Tn,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),wn={class:"box"},In={key:0,class:"icon"},Mn=["innerHTML"],An=["innerHTML"],Cn=["innerHTML"],Hn={key:4,class:"link-text"},Bn={class:"link-text-value"},En=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),g(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[v("article",wn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",In,[k(Q,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),g(Q,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Mn)):h("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,An),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Cn)):h("",!0),e.linkText?(a(),u("div",Hn,[v("p",Bn,[z(w(e.linkText)+" ",1),t[0]||(t[0]=v("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Dn=$(En,[["__scopeId","data-v-f5e9645b"]]),Fn={key:0,class:"VPFeatures"},On={class:"container"},Un={class:"items"},Gn=m({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),u("div",Fn,[v("div",On,[v("div",Un,[(a(!0),u(M,null,H(s.features,r=>(a(),u("div",{key:r.title,class:I(["item",[t.value]])},[k(Dn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),jn=$(Gn,[["__scopeId","data-v-d0a190d7"]]),zn=m({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=V();return(t,s)=>i(e).features?(a(),g(jn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):h("",!0)}}),Kn=m({__name:"VPHomeContent",setup(o){const{width:e}=We({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),u("div",{class:"vp-doc container",style:Ne(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),Rn=$(Kn,[["__scopeId","data-v-7a48a447"]]),Wn={class:"VPHome"},qn=m({__name:"VPHome",setup(o){const{frontmatter:e}=V();return(t,s)=>{const n=R("Content");return a(),u("div",Wn,[c(t.$slots,"home-hero-before",{},void 0,!0),k(Nn,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),k(zn),c(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),g(Rn,{key:0},{default:f(()=>[k(n)]),_:1})):(a(),g(n,{key:1}))])}}}),Jn=$(qn,[["__scopeId","data-v-cbb6ec48"]]),Yn={},Xn={class:"VPPage"};function Qn(o,e){const t=R("Content");return a(),u("div",Xn,[c(o.$slots,"page-top"),k(t),c(o.$slots,"page-bottom")])}const Zn=$(Yn,[["render",Qn]]),xn=m({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(n,r)=>(a(),u("div",{class:I(["VPContent",{"has-sidebar":i(s),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?c(n.$slots,"not-found",{key:0},()=>[k(mt)],!0):i(t).layout==="page"?(a(),g(Zn,{key:1},{"page-top":f(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),g(Jn,{key:2},{"home-hero-before":f(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),g(E(i(t).layout),{key:3})):(a(),g(pn,{key:4},{"doc-top":f(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),es=$(xn,[["__scopeId","data-v-91765379"]]),ts={class:"container"},ns=["innerHTML"],ss=["innerHTML"],os=m({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(n,r)=>i(e).footer&&i(t).footer!==!1?(a(),u("footer",{key:0,class:I(["VPFooter",{"has-sidebar":i(s)}])},[v("div",ts,[i(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,ns)):h("",!0),i(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,ss)):h("",!0)])],2)):h("",!0)}}),as=$(os,[["__scopeId","data-v-c970a860"]]);function rs(){const{theme:o,frontmatter:e}=V(),t=Ve([]),s=y(()=>t.value.length>0);return x(()=>{t.value=be(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const is={class:"menu-text"},ls={class:"header"},cs={class:"outline"},us=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=V(),s=T(!1),n=T(0),r=T(),l=T();function d(_){var P;(P=r.value)!=null&&P.contains(_.target)||(s.value=!1)}F(s,_=>{if(_){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ie("Escape",()=>{s.value=!1}),x(()=>{s.value=!1});function p(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function b(_){_.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),he(()=>{s.value=!1}))}function L(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(_,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Ne({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[_.headers.length>0?(a(),u("button",{key:0,onClick:p,class:I({open:s.value})},[v("span",is,w(i(Ce)(i(t))),1),P[0]||(P[0]=v("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),u("button",{key:1,onClick:L},w(i(t).returnToTopLabel||"Return to top"),1)),k(de,{name:"flyout"},{default:f(()=>[s.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:b},[v("div",ls,[v("a",{class:"top-link",href:"#",onClick:L},w(i(t).returnToTopLabel||"Return to top"),1)]),v("div",cs,[k(He,{headers:_.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),ds=$(us,[["__scopeId","data-v-bc9dc845"]]),ps={class:"container"},vs=["aria-expanded"],fs={class:"menu-text"},hs=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U(),{headers:n}=rs(),{y:r}=we(),l=T(0);O(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{n.value=be(t.value.outline??e.value.outline)});const d=y(()=>n.value.length===0),p=y(()=>d.value&&!s.value),b=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:d.value,fixed:p.value}));return(L,_)=>i(t).layout!=="home"&&(!p.value||i(r)>=l.value)?(a(),u("div",{key:0,class:I(b.value)},[v("div",ps,[i(s)?(a(),u("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:_[0]||(_[0]=P=>L.$emit("open-menu"))},[_[1]||(_[1]=v("span",{class:"vpi-align-left menu-icon"},null,-1)),v("span",fs,w(i(e).sidebarMenuLabel||"Menu"),1)],8,vs)):h("",!0),k(ds,{headers:i(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),ms=$(hs,[["__scopeId","data-v-070ab83d"]]);function _s(){const o=T(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=ee();return F(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const bs={},ks={class:"VPSwitch",type:"button",role:"switch"},gs={class:"check"},$s={key:0,class:"icon"};function ys(o,e){return a(),u("button",ks,[v("span",gs,[o.$slots.default?(a(),u("span",$s,[c(o.$slots,"default",{},void 0,!0)])):h("",!0)])])}const Ps=$(bs,[["render",ys],["__scopeId","data-v-4a1c76db"]]),Ss=m({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=V(),s=q("toggle-appearance",()=>{e.value=!e.value}),n=T("");return fe(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,l)=>(a(),g(Ps,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(s)},{default:f(()=>l[0]||(l[0]=[v("span",{class:"vpi-sun sun"},null,-1),v("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),ke=$(Ss,[["__scopeId","data-v-e40a8bb6"]]),Ls={key:0,class:"VPNavBarAppearance"},Vs=m({__name:"VPNavBarAppearance",setup(o){const{site:e}=V();return(t,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",Ls,[k(ke)])):h("",!0)}}),Ts=$(Vs,[["__scopeId","data-v-af096f4a"]]),ge=T();let Be=!1,ae=0;function Ns(o){const e=T(!1);if(te){!Be&&ws(),ae++;const t=F(ge,s=>{var n,r,l;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(l=o.onBlur)==null||l.call(o))});ve(()=>{t(),ae--,ae||Is()})}return qe(e)}function ws(){document.addEventListener("focusin",Ee),Be=!0,ge.value=document.activeElement}function Is(){document.removeEventListener("focusin",Ee)}function Ee(){ge.value=document.activeElement}const Ms={class:"VPMenuLink"},As=["innerHTML"],Cs=m({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,s)=>(a(),u("div",Ms,[k(D,{class:I({active:i(K)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,As)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ne=$(Cs,[["__scopeId","data-v-acbfed09"]]),Hs={class:"VPMenuGroup"},Bs={key:0,class:"title"},Es=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),u("div",Hs,[e.text?(a(),u("p",Bs,w(e.text),1)):h("",!0),(a(!0),u(M,null,H(e.items,s=>(a(),u(M,null,["link"in s?(a(),g(ne,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),Ds=$(Es,[["__scopeId","data-v-48c802d0"]]),Fs={class:"VPMenu"},Os={key:0,class:"items"},Us=m({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),u("div",Fs,[e.items?(a(),u("div",Os,[(a(!0),u(M,null,H(e.items,s=>(a(),u(M,{key:JSON.stringify(s)},["link"in s?(a(),g(ne,{key:0,item:s},null,8,["item"])):"component"in s?(a(),g(E(s.component),j({key:1,ref_for:!0},s.props),null,16)):(a(),g(Ds,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),Gs=$(Us,[["__scopeId","data-v-7dd3104a"]]),js=["aria-expanded","aria-label"],zs={key:0,class:"text"},Ks=["innerHTML"],Rs={key:1,class:"vpi-more-horizontal icon"},Ws={class:"menu"},qs=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=T(!1),t=T();Ns({el:t,onBlur:s});function s(){e.value=!1}return(n,r)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=l=>e.value=!0),onMouseleave:r[2]||(r[2]=l=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:r[0]||(r[0]=l=>e.value=!e.value)},[n.button||n.icon?(a(),u("span",zs,[n.icon?(a(),u("span",{key:0,class:I([n.icon,"option-icon"])},null,2)):h("",!0),n.button?(a(),u("span",{key:1,innerHTML:n.button},null,8,Ks)):h("",!0),r[3]||(r[3]=v("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),u("span",Rs))],8,js),v("div",Ws,[k(Gs,{items:n.items},{default:f(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=$(qs,[["__scopeId","data-v-04f5c5e9"]]),Js=["href","aria-label","innerHTML"],Ys=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=T();O(async()=>{var r;await he();const n=(r=t.value)==null?void 0:r.children[0];n instanceof HTMLElement&&n.className.startsWith("vpi-social-")&&(getComputedStyle(n).maskImage||getComputedStyle(n).webkitMaskImage)==="none"&&n.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const s=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,r)=>(a(),u("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:s.value},null,8,Js))}}),Xs=$(Ys,[["__scopeId","data-v-d26d30cb"]]),Qs={class:"VPSocialLinks"},Zs=m({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),u("div",Qs,[(a(!0),u(M,null,H(e.links,({link:s,icon:n,ariaLabel:r})=>(a(),g(Xs,{key:s,icon:n,link:s,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ye=$(Zs,[["__scopeId","data-v-ee7a9424"]]),xs={key:0,class:"group translations"},eo={class:"trans-title"},to={key:1,class:"group"},no={class:"item appearance"},so={class:"label"},oo={class:"appearance-action"},ao={key:2,class:"group"},ro={class:"item social-links"},io=m({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=V(),{localeLinks:s,currentLang:n}=Y({correspondingLink:!0}),r=y(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(l,d)=>r.value?(a(),g($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[i(s).length&&i(n).label?(a(),u("div",xs,[v("p",eo,w(i(n).label),1),(a(!0),u(M,null,H(i(s),p=>(a(),g(ne,{key:p.link,item:p},null,8,["item"]))),128))])):h("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",to,[v("div",no,[v("p",so,w(i(t).darkModeSwitchLabel||"Appearance"),1),v("div",oo,[k(ke)])])])):h("",!0),i(t).socialLinks?(a(),u("div",ao,[v("div",ro,[k(ye,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),lo=$(io,[["__scopeId","data-v-925effce"]]),co=["aria-expanded"],uo=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),u("button",{type:"button",class:I(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},t[1]||(t[1]=[v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)]),10,co))}}),po=$(uo,[["__scopeId","data-v-5dea55bf"]]),vo=["innerHTML"],fo=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,s)=>(a(),g(D,{class:I({VPNavBarMenuLink:!0,active:i(K)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,vo)]),_:1},8,["class","href","target","rel","no-icon"]))}}),ho=$(fo,[["__scopeId","data-v-956ec74c"]]),mo=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=V(),s=r=>"component"in r?!1:"link"in r?K(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(s),n=y(()=>s(e.item));return(r,l)=>(a(),g($e,{class:I({VPNavBarMenuGroup:!0,active:i(K)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||n.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),_o={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},bo=m({__name:"VPNavBarMenu",setup(o){const{theme:e}=V();return(t,s)=>i(e).nav?(a(),u("nav",_o,[s[0]||(s[0]=v("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),u(M,null,H(i(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),g(ho,{key:0,item:n},null,8,["item"])):"component"in n?(a(),g(E(n.component),j({key:1,ref_for:!0},n.props),null,16)):(a(),g(mo,{key:2,item:n},null,8,["item"]))],64))),128))])):h("",!0)}}),ko=$(bo,[["__scopeId","data-v-e6d46098"]]);function go(o){const{localeIndex:e,theme:t}=V();function s(n){var A,C,N;const r=n.split("."),l=(A=t.value.search)==null?void 0:A.options,d=l&&typeof l=="object",p=d&&((N=(C=l.locales)==null?void 0:C[e.value])==null?void 0:N.translations)||null,b=d&&l.translations||null;let L=p,_=b,P=o;const S=r.pop();for(const B of r){let G=null;const W=P==null?void 0:P[B];W&&(G=P=W);const se=_==null?void 0:_[B];se&&(G=_=se);const oe=L==null?void 0:L[B];oe&&(G=L=oe),W||(P=G),se||(_=G),oe||(L=G)}return(L==null?void 0:L[S])??(_==null?void 0:_[S])??(P==null?void 0:P[S])??""}return s}const $o=["aria-label"],yo={class:"DocSearch-Button-Container"},Po={class:"DocSearch-Button-Placeholder"},Pe=m({__name:"VPNavBarSearchButton",setup(o){const t=go({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[v("span",yo,[n[0]||(n[0]=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),v("span",Po,w(i(t)("button.buttonText")),1)]),n[1]||(n[1]=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,$o))}}),So={class:"VPNavBarSearch"},Lo={id:"local-search"},Vo={key:1,id:"docsearch"},To=m({__name:"VPNavBarSearch",setup(o){const e=Je(()=>Ye(()=>import("./VPLocalSearchBox.CCeSYx2c.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=V(),n=T(!1),r=T(!1);O(()=>{});function l(){n.value||(n.value=!0,setTimeout(d,16))}function d(){const _=new Event("keydown");_.key="k",_.metaKey=!0,window.dispatchEvent(_),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function p(_){const P=_.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const b=T(!1);ie("k",_=>{(_.ctrlKey||_.metaKey)&&(_.preventDefault(),b.value=!0)}),ie("/",_=>{p(_)||(_.preventDefault(),b.value=!0)});const L="local";return(_,P)=>{var S;return a(),u("div",So,[i(L)==="local"?(a(),u(M,{key:0},[b.value?(a(),g(i(e),{key:0,onClose:P[0]||(P[0]=A=>b.value=!1)})):h("",!0),v("div",Lo,[k(Pe,{onClick:P[1]||(P[1]=A=>b.value=!0)})])],64)):i(L)==="algolia"?(a(),u(M,{key:1},[n.value?(a(),g(i(t),{key:0,algolia:((S=i(s).search)==null?void 0:S.options)??i(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>r.value=!0)},null,8,["algolia"])):h("",!0),r.value?h("",!0):(a(),u("div",Vo,[k(Pe,{onClick:l})]))],64)):h("",!0)])}}}),No=m({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=V();return(t,s)=>i(e).socialLinks?(a(),g(ye,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),wo=$(No,[["__scopeId","data-v-164c457f"]]),Io=["href","rel","target"],Mo=["innerHTML"],Ao={key:2},Co=m({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=V(),{hasSidebar:s}=U(),{currentLang:n}=Y(),r=y(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),l=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),d=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,b)=>(a(),u("div",{class:I(["VPNavBarTitle",{"has-sidebar":i(s)}])},[v("a",{class:"title",href:r.value??i(_e)(i(n).link),rel:l.value,target:d.value},[c(p.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),g(Q,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):h("",!0),i(t).siteTitle?(a(),u("span",{key:1,innerHTML:i(t).siteTitle},null,8,Mo)):i(t).siteTitle===void 0?(a(),u("span",Ao,w(i(e).title),1)):h("",!0),c(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,Io)],2))}}),Ho=$(Co,[["__scopeId","data-v-0f4f798b"]]),Bo={class:"items"},Eo={class:"title"},Do=m({__name:"VPNavBarTranslations",setup(o){const{theme:e}=V(),{localeLinks:t,currentLang:s}=Y({correspondingLink:!0});return(n,r)=>i(t).length&&i(s).label?(a(),g($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:f(()=>[v("div",Bo,[v("p",Eo,w(i(s).label),1),(a(!0),u(M,null,H(i(t),l=>(a(),g(ne,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),Fo=$(Do,[["__scopeId","data-v-c80d9ad0"]]),Oo={class:"wrapper"},Uo={class:"container"},Go={class:"title"},jo={class:"content"},zo={class:"content-body"},Ko=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=we(),{hasSidebar:s}=U(),{frontmatter:n}=V(),r=T({});return fe(()=>{r.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),u("div",{class:I(["VPNavBar",r.value])},[v("div",Oo,[v("div",Uo,[v("div",Go,[k(Ho,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",jo,[v("div",zo,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(To,{class:"search"}),k(ko,{class:"menu"}),k(Fo,{class:"translations"}),k(Ts,{class:"appearance"}),k(wo,{class:"social-links"}),k(lo,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(po,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=p=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),d[1]||(d[1]=v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1))],2))}}),Ro=$(Ko,[["__scopeId","data-v-822684d1"]]),Wo={key:0,class:"VPNavScreenAppearance"},qo={class:"text"},Jo=m({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=V();return(s,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",Wo,[v("p",qo,w(i(t).darkModeSwitchLabel||"Appearance"),1),k(ke)])):h("",!0)}}),Yo=$(Jo,[["__scopeId","data-v-ffb44008"]]),Xo=["innerHTML"],Qo=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),g(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,Xo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Zo=$(Qo,[["__scopeId","data-v-735512b8"]]),xo=["innerHTML"],ea=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),g(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,xo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),De=$(ea,[["__scopeId","data-v-372ae7c0"]]),ta={class:"VPNavScreenMenuGroupSection"},na={key:0,class:"title"},sa=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),u("div",ta,[e.text?(a(),u("p",na,w(e.text),1)):h("",!0),(a(!0),u(M,null,H(e.items,s=>(a(),g(De,{key:s.text,item:s},null,8,["item"]))),128))]))}}),oa=$(sa,[["__scopeId","data-v-4b8941ac"]]),aa=["aria-controls","aria-expanded"],ra=["innerHTML"],ia=["id"],la={key:0,class:"item"},ca={key:1,class:"item"},ua={key:2,class:"group"},da=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,l)=>(a(),u("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[v("span",{class:"button-text",innerHTML:r.text},null,8,ra),l[0]||(l[0]=v("span",{class:"vpi-plus button-icon"},null,-1))],8,aa),v("div",{id:s.value,class:"items"},[(a(!0),u(M,null,H(r.items,d=>(a(),u(M,{key:JSON.stringify(d)},["link"in d?(a(),u("div",la,[k(De,{item:d},null,8,["item"])])):"component"in d?(a(),u("div",ca,[(a(),g(E(d.component),j({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),u("div",ua,[k(oa,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,ia)],2))}}),pa=$(da,[["__scopeId","data-v-875057a5"]]),va={key:0,class:"VPNavScreenMenu"},fa=m({__name:"VPNavScreenMenu",setup(o){const{theme:e}=V();return(t,s)=>i(e).nav?(a(),u("nav",va,[(a(!0),u(M,null,H(i(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),g(Zo,{key:0,item:n},null,8,["item"])):"component"in n?(a(),g(E(n.component),j({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),g(pa,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),ha=m({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=V();return(t,s)=>i(e).socialLinks?(a(),g(ye,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),ma={class:"list"},_a=m({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),s=T(!1);function n(){s.value=!s.value}return(r,l)=>i(e).length&&i(t).label?(a(),u("div",{key:0,class:I(["VPNavScreenTranslations",{open:s.value}])},[v("button",{class:"title",onClick:n},[l[0]||(l[0]=v("span",{class:"vpi-languages icon lang"},null,-1)),z(" "+w(i(t).label)+" ",1),l[1]||(l[1]=v("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),v("ul",ma,[(a(!0),u(M,null,H(i(e),d=>(a(),u("li",{key:d.link,class:"item"},[k(D,{class:"link",href:d.link},{default:f(()=>[z(w(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),ba=$(_a,[["__scopeId","data-v-362991c2"]]),ka={class:"container"},ga=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=T(null),t=Ie(te?document.body:null);return(s,n)=>(a(),g(de,{name:"fade",onEnter:n[0]||(n[0]=r=>t.value=!0),onAfterLeave:n[1]||(n[1]=r=>t.value=!1)},{default:f(()=>[s.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",ka,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),k(fa,{class:"menu"}),k(ba,{class:"translations"}),k(Yo,{class:"appearance"}),k(ha,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),$a=$(ga,[["__scopeId","data-v-833aabba"]]),ya={key:0,class:"VPNav"},Pa=m({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=_s(),{frontmatter:n}=V(),r=y(()=>n.value.navbar!==!1);return me("close-screen",t),Z(()=>{te&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(l,d)=>r.value?(a(),u("header",ya,[k(Ro,{"is-screen-open":i(e),onToggleScreen:i(s)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k($a,{open:i(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),Sa=$(Pa,[["__scopeId","data-v-f1e365da"]]),La=["role","tabindex"],Va={key:1,class:"items"},Ta=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:r,hasActiveLink:l,hasChildren:d,toggle:p}=gt(y(()=>e.item)),b=y(()=>d.value?"section":"div"),L=y(()=>n.value?"a":"div"),_=y(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>n.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":r.value},{"has-active":l.value}]);function A(N){"key"in N&&N.key!=="Enter"||!e.item.link&&p()}function C(){e.item.link&&p()}return(N,B)=>{const G=R("VPSidebarItem",!0);return a(),g(E(b.value),{class:I(["VPSidebarItem",S.value])},{default:f(()=>[N.item.text?(a(),u("div",j({key:0,class:"item",role:P.value},Qe(N.item.items?{click:A,keydown:A}:{},!0),{tabindex:N.item.items&&0}),[B[1]||(B[1]=v("div",{class:"indicator"},null,-1)),N.item.link?(a(),g(D,{key:0,tag:L.value,class:"link",href:N.item.link,rel:N.item.rel,target:N.item.target},{default:f(()=>[(a(),g(E(_.value),{class:"text",innerHTML:N.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),g(E(_.value),{key:1,class:"text",innerHTML:N.item.text},null,8,["innerHTML"])),N.item.collapsed!=null&&N.item.items&&N.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Xe(C,["enter"]),tabindex:"0"},B[0]||(B[0]=[v("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):h("",!0)],16,La)):h("",!0),N.item.items&&N.item.items.length?(a(),u("div",Va,[N.depth<5?(a(!0),u(M,{key:0},H(N.item.items,W=>(a(),g(G,{key:W.text,item:W,depth:N.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),Na=$(Ta,[["__scopeId","data-v-196b2e5f"]]),wa=m({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=T(!0);let t=null;return O(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Ze(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,n)=>(a(!0),u(M,null,H(s.items,r=>(a(),u("div",{key:r.text,class:I(["group",{"no-transition":e.value}])},[k(Na,{item:r,depth:0},null,8,["item"])],2))),128))}}),Ia=$(wa,[["__scopeId","data-v-9e426adc"]]),Ma={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Aa=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=U(),s=o,n=T(null),r=Ie(te?document.body:null);F([s,n],()=>{var d;s.open?(r.value=!0,(d=n.value)==null||d.focus()):r.value=!1},{immediate:!0,flush:"post"});const l=T(0);return F(e,()=>{l.value+=1},{deep:!0}),(d,p)=>i(t)?(a(),u("aside",{key:0,class:I(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:n,onClick:p[0]||(p[0]=xe(()=>{},["stop"]))},[p[2]||(p[2]=v("div",{class:"curtain"},null,-1)),v("nav",Ma,[p[1]||(p[1]=v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),c(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),g(Ia,{items:i(e),key:l.value},null,8,["items"])),c(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),Ca=$(Aa,[["__scopeId","data-v-18756405"]]),Ha=m({__name:"VPSkipLink",setup(o){const e=ee(),t=T();F(()=>e.path,()=>t.value.focus());function s({target:n}){const r=document.getElementById(decodeURIComponent(n.hash).slice(1));if(r){const l=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",l)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",l),r.focus(),window.scrollTo(0,0)}}return(n,r)=>(a(),u(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),Ba=$(Ha,[["__scopeId","data-v-c3508ec8"]]),Ea=m({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=U(),n=ee();F(()=>n.path,s),kt(e,s);const{frontmatter:r}=V(),l=Me(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(p,b)=>{const L=R("Content");return i(r).layout!==!1?(a(),u("div",{key:0,class:I(["Layout",i(r).pageClass])},[c(p.$slots,"layout-top",{},void 0,!0),k(Ba),k(rt,{class:"backdrop",show:i(e),onClick:i(s)},null,8,["show","onClick"]),k(Sa,null,{"nav-bar-title-before":f(()=>[c(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(ms,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),k(Ca,{open:i(e)},{"sidebar-nav-before":f(()=>[c(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(es,null,{"page-top":f(()=>[c(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(as),c(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),g(L,{key:1}))}}}),Da=$(Ea,[["__scopeId","data-v-a9a9e638"]]),Se={Layout:Da,enhanceApp:({app:o})=>{o.component("Badge",st)}},Fa=o=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...n)=>{const r=s(...n),l=o.value;if(!l)return r;const d=l.offsetTop-e.scrollTop;return await he(),e.scrollTop=l.offsetTop-d,r}}},Fe="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,Oe="vitepress:tabsSharedState",Oa=()=>{const o=J==null?void 0:J.getItem(Oe);if(o)try{return JSON.parse(o)}catch{}return{}},Ua=o=>{J&&J.setItem(Oe,JSON.stringify(o))},Ga=o=>{const e=et({});F(()=>e.content,(t,s)=>{t&&s&&Ua(t)},{deep:!0}),o.provide(Fe,e)},ja=(o,e)=>{const t=q(Fe);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");O(()=>{t.content||(t.content=Oa())});const s=T(),n=y({get(){var p;const l=e.value,d=o.value;if(l){const b=(p=t.content)==null?void 0:p[l];if(b&&d.includes(b))return b}else{const b=s.value;if(b)return b}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):s.value=l}});return{selected:n,select:l=>{n.value=l}}};let Le=0;const za=()=>(Le++,""+Le);function Ka(){const o=Me();return y(()=>{var s;const t=(s=o.default)==null?void 0:s.call(o);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var r;return(r=n.props)==null?void 0:r.label}):[]})}const Ue="vitepress:tabSingleState",Ra=o=>{me(Ue,o)},Wa=()=>{const o=q(Ue);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},qa={class:"plugin-tabs"},Ja=["id","aria-selected","aria-controls","tabindex","onClick"],Ya=m({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=Ka(),{selected:s,select:n}=ja(t,tt(e,"sharedStateKey")),r=T(),{stabilizeScrollPosition:l}=Fa(r),d=l(n),p=T([]),b=_=>{var A;const P=t.value.indexOf(s.value);let S;_.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:_.key==="ArrowRight"&&(S=P(a(),u("div",qa,[v("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:b},[(a(!0),u(M,null,H(i(t),S=>(a(),u("button",{id:`tab-${S}-${i(L)}`,ref_for:!0,ref_key:"buttonRefs",ref:p,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===i(s),"aria-controls":`panel-${S}-${i(L)}`,tabindex:S===i(s)?0:-1,onClick:()=>i(d)(S)},w(S),9,Ja))),128))],544),c(_.$slots,"default")]))}}),Xa=["id","aria-labelledby"],Qa=m({__name:"PluginTabsTab",props:{label:{}},setup(o){const{uid:e,selected:t}=Wa();return(s,n)=>i(t)===s.label?(a(),u("div",{key:0,id:`panel-${s.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${i(e)}`},[c(s.$slots,"default",{},void 0,!0)],8,Xa)):h("",!0)}}),Za=$(Qa,[["__scopeId","data-v-9b0d03d2"]]),xa=o=>{Ga(o),o.component("PluginTabs",Ya),o.component("PluginTabsTab",Za)},tr={extends:Se,Layout(){return nt(Se.Layout,null,{})},enhanceApp({app:o,router:e,siteData:t}){xa(o)}};export{tr as R,go as c,V as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.CPPYCYL5.js","assets/chunks/framework.Bkt_v4A4.js"])))=>i.map(i=>d[i]); +import{d as m,o as a,c as u,r as c,n as I,a as z,t as w,b as g,w as f,e as h,T as de,_ as $,u as Ge,i as je,f as ze,g as pe,h as y,j as v,k as i,l as K,m as re,p as T,q as F,s as Z,v as O,x as ve,y as fe,z as Ke,A as Re,B as R,F as M,C as H,D as Ve,E as x,G as k,H as E,I as Te,J as ee,K as j,L as q,M as We,N as Ne,O as ie,P as he,Q as we,R as te,S as qe,U as Je,V as Ye,W as Ie,X as me,Y as Xe,Z as Qe,$ as Ze,a0 as xe,a1 as Me,a2 as et,a3 as tt,a4 as nt}from"./framework.Bkt_v4A4.js";const st=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),u("span",{class:I(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[z(w(e.text),1)])],2))}}),ot={key:0,class:"VPBackdrop"},at=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),g(de,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",ot)):h("",!0)]),_:1}))}}),rt=$(at,[["__scopeId","data-v-b06cdb19"]]),V=Ge;function it(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function le(o){return/^\//.test(o)?o:`/${o}`}function _e(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(je(o)||o.startsWith("#")||!n.startsWith("http")||!ze(e))return o;const{site:r}=V(),l=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${s}`);return pe(l)}function Y({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:s,theme:n,hash:r}=V(),l=y(()=>{var p,b;return{label:(p=e.value.locales[t.value])==null?void 0:p.label,link:((b=e.value.locales[t.value])==null?void 0:b.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([p,b])=>l.value.label===b.label?[]:{text:b.label,link:lt(b.link||(p==="root"?"/":`/${p}/`),n.value.i18nRouting!==!1&&o,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:l}}function lt(o,e,t,s){return e?o.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const ct={class:"NotFound"},ut={class:"code"},dt={class:"title"},pt={class:"quote"},vt={class:"action"},ft=["href","aria-label"],ht=m({__name:"NotFound",setup(o){const{theme:e}=V(),{currentLang:t}=Y();return(s,n)=>{var r,l,d,p,b;return a(),u("div",ct,[v("p",ut,w(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),v("h1",dt,w(((l=i(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),n[0]||(n[0]=v("div",{class:"divider"},null,-1)),v("blockquote",pt,w(((d=i(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",vt,[v("a",{class:"link",href:i(pe)(i(t).link),"aria-label":((p=i(e).notFound)==null?void 0:p.linkLabel)??"go to home"},w(((b=i(e).notFound)==null?void 0:b.linkText)??"Take me home"),9,ft)])])}}}),mt=$(ht,[["__scopeId","data-v-951cab6c"]]);function Ae(o,e){if(Array.isArray(o))return X(o);if(o==null)return[];e=le(e);const t=Object.keys(o).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(le(n))),s=t?o[t]:[];return Array.isArray(s)?X(s):X(s.items,s.base)}function _t(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function bt(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ce(o,e){return Array.isArray(e)?e.some(t=>ce(o,t)):K(o,e.link)?!0:e.items?ce(o,e.items):!1}function X(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=X(s.items,n)),s})}function U(){const{frontmatter:o,page:e,theme:t}=V(),s=re("(min-width: 960px)"),n=T(!1),r=y(()=>{const C=t.value.sidebar,N=e.value.relativePath;return C?Ae(C,N):[]}),l=T(r.value);F(r,(C,N)=>{JSON.stringify(C)!==JSON.stringify(N)&&(l.value=r.value)});const d=y(()=>o.value.sidebar!==!1&&l.value.length>0&&o.value.layout!=="home"),p=y(()=>b?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),b=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),L=y(()=>d.value&&s.value),_=y(()=>d.value?_t(l.value):[]);function P(){n.value=!0}function S(){n.value=!1}function A(){n.value?S():P()}return{isOpen:n,sidebar:l,sidebarGroups:_,hasSidebar:d,hasAside:b,leftAside:p,isSidebarEnabled:L,open:P,close:S,toggle:A}}function kt(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),O(()=>{window.addEventListener("keyup",s)}),ve(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function gt(o){const{page:e,hash:t}=V(),s=T(!1),n=y(()=>o.value.collapsed!=null),r=y(()=>!!o.value.link),l=T(!1),d=()=>{l.value=K(e.value.relativePath,o.value.link)};F([e,o,t],d),O(d);const p=y(()=>l.value?!0:o.value.items?ce(e.value.relativePath,o.value.items):!1),b=y(()=>!!(o.value.items&&o.value.items.length));Z(()=>{s.value=!!(n.value&&o.value.collapsed)}),fe(()=>{(l.value||p.value)&&(s.value=!1)});function L(){n.value&&(s.value=!s.value)}return{collapsed:s,collapsible:n,isLink:r,isActiveLink:l,hasActiveLink:p,hasChildren:b,toggle:L}}function $t(){const{hasSidebar:o}=U(),e=re("(min-width: 960px)"),t=re("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const ue=[];function Ce(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function be(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:yt(t),link:"#"+t.id,level:s}});return Pt(e,o)}function yt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Pt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return Vt(o,s,n)}function St(o,e){const{isAsideEnabled:t}=$t(),s=it(r,100);let n=null;O(()=>{requestAnimationFrame(r),window.addEventListener("scroll",s)}),Ke(()=>{l(location.hash)}),ve(()=>{window.removeEventListener("scroll",s)});function r(){if(!t.value)return;const d=window.scrollY,p=window.innerHeight,b=document.body.offsetHeight,L=Math.abs(d+p-b)<1,_=ue.map(({element:S,link:A})=>({link:A,top:Lt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!_.length){l(null);return}if(d<1){l(null);return}if(L){l(_[_.length-1].link);return}let P=null;for(const{link:S,top:A}of _){if(A>d+Re()+4)break;P=S}l(P)}function l(d){n&&n.classList.remove("active"),d==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const p=n;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Lt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}function Vt(o,e,t){ue.length=0;const s=[],n=[];return o.forEach(r=>{const l={...r,children:[]};let d=n[n.length-1];for(;d&&d.level>=l.level;)n.pop(),d=n[n.length-1];if(l.element.classList.contains("ignore-header")||d&&"shouldIgnore"in d){n.push({level:l.level,shouldIgnore:!0});return}l.level>t||l.level{const n=R("VPDocOutlineItem",!0);return a(),u("ul",{class:I(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,H(t.headers,({children:r,link:l,title:d})=>(a(),u("li",null,[v("a",{class:"outline-link",href:l,onClick:e,title:d},w(d),9,Tt),r!=null&&r.length?(a(),g(n,{key:0,headers:r},null,8,["headers"])):h("",!0)]))),256))],2)}}}),He=$(Nt,[["__scopeId","data-v-3f927ebe"]]),wt={class:"content"},It={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Mt=m({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=V(),s=Ve([]);x(()=>{s.value=be(e.value.outline??t.value.outline)});const n=T(),r=T();return St(n,r),(l,d)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n},[v("div",wt,[v("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),v("div",It,w(i(Ce)(i(t))),1),k(He,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),At=$(Mt,[["__scopeId","data-v-b38bf2ff"]]),Ct={class:"VPDocAsideCarbonAds"},Ht=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),u("div",Ct,[k(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Bt={class:"VPDocAside"},Et=m({__name:"VPDocAside",setup(o){const{theme:e}=V();return(t,s)=>(a(),u("div",Bt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),k(At),c(t.$slots,"aside-outline-after",{},void 0,!0),s[0]||(s[0]=v("div",{class:"spacer"},null,-1)),c(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),g(Ht,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):h("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Dt=$(Et,[["__scopeId","data-v-6d7b3c46"]]);function Ft(){const{theme:o,page:e}=V();return y(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Ot(){const{page:o,theme:e,frontmatter:t}=V();return y(()=>{var b,L,_,P,S,A,C,N;const s=Ae(e.value.sidebar,o.value.relativePath),n=bt(s),r=Ut(n,B=>B.link.replace(/[?#].*$/,"")),l=r.findIndex(B=>K(o.value.relativePath,B.link)),d=((b=e.value.docFooter)==null?void 0:b.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((_=r[l-1])==null?void 0:_.docFooterText)??((P=r[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=r[l-1])==null?void 0:S.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=r[l+1])==null?void 0:A.docFooterText)??((C=r[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((N=r[l+1])==null?void 0:N.link)}}})}function Ut(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const D=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&Te.test(e.href)||e.target==="_blank");return(n,r)=>(a(),g(E(t.value),{class:I(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?i(_e)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Gt={class:"VPLastUpdated"},jt=["datetime"],zt=m({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:s}=V(),n=y(()=>new Date(t.value.lastUpdated)),r=y(()=>n.value.toISOString()),l=T("");return O(()=>{Z(()=>{var d,p,b;l.value=new Intl.DateTimeFormat((p=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&p.forceLocale?s.value:void 0,((b=e.value.lastUpdated)==null?void 0:b.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(d,p)=>{var b;return a(),u("p",Gt,[z(w(((b=i(e).lastUpdated)==null?void 0:b.text)||i(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:r.value},w(l.value),9,jt)])}}}),Kt=$(zt,[["__scopeId","data-v-475f71b8"]]),Rt={key:0,class:"VPDocFooter"},Wt={key:0,class:"edit-info"},qt={key:0,class:"edit-link"},Jt={key:1,class:"last-updated"},Yt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Xt={class:"pager"},Qt=["innerHTML"],Zt=["innerHTML"],xt={class:"pager"},en=["innerHTML"],tn=["innerHTML"],nn=m({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=V(),n=Ft(),r=Ot(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),d=y(()=>t.value.lastUpdated),p=y(()=>l.value||d.value||r.value.prev||r.value.next);return(b,L)=>{var _,P,S,A;return p.value?(a(),u("footer",Rt,[c(b.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),u("div",Wt,[l.value?(a(),u("div",qt,[k(D,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:f(()=>[L[0]||(L[0]=v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),z(" "+w(i(n).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(a(),u("div",Jt,[k(Kt)])):h("",!0)])):h("",!0),(_=i(r).prev)!=null&&_.link||(P=i(r).next)!=null&&P.link?(a(),u("nav",Yt,[L[1]||(L[1]=v("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),v("div",Xt,[(S=i(r).prev)!=null&&S.link?(a(),g(D,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:f(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,Qt),v("span",{class:"title",innerHTML:i(r).prev.text},null,8,Zt)]}),_:1},8,["href"])):h("",!0)]),v("div",xt,[(A=i(r).next)!=null&&A.link?(a(),g(D,{key:0,class:"pager-link next",href:i(r).next.link},{default:f(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,en),v("span",{class:"title",innerHTML:i(r).next.text},null,8,tn)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),sn=$(nn,[["__scopeId","data-v-4f9813fa"]]),on={class:"container"},an={class:"aside-container"},rn={class:"aside-content"},ln={class:"content"},cn={class:"content-container"},un={class:"main"},dn=m({__name:"VPDoc",setup(o){const{theme:e}=V(),t=ee(),{hasSidebar:s,hasAside:n,leftAside:r}=U(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,p)=>{const b=R("Content");return a(),u("div",{class:I(["VPDoc",{"has-sidebar":i(s),"has-aside":i(n)}])},[c(d.$slots,"doc-top",{},void 0,!0),v("div",on,[i(n)?(a(),u("div",{key:0,class:I(["aside",{"left-aside":i(r)}])},[p[0]||(p[0]=v("div",{class:"aside-curtain"},null,-1)),v("div",an,[v("div",rn,[k(Dt,null,{"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),v("div",ln,[v("div",cn,[c(d.$slots,"doc-before",{},void 0,!0),v("main",un,[k(b,{class:I(["vp-doc",[l.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(sn,null,{"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),pn=$(dn,[["__scopeId","data-v-83890dd9"]]),vn=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Te.test(e.href)),s=y(()=>e.tag||(e.href?"a":"button"));return(n,r)=>(a(),g(E(s.value),{class:I(["VPButton",[n.size,n.theme]]),href:n.href?i(_e)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[z(w(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),fn=$(vn,[["__scopeId","data-v-906d7fb4"]]),hn=["src","alt"],mn=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=R("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",j({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,hn)):(a(),u(M,{key:1},[k(s,j({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(s,j({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),Q=$(mn,[["__scopeId","data-v-35a7d0b8"]]),_n={class:"container"},bn={class:"main"},kn={key:0,class:"name"},gn=["innerHTML"],$n=["innerHTML"],yn=["innerHTML"],Pn={key:0,class:"actions"},Sn={key:0,class:"image"},Ln={class:"image-container"},Vn=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=q("hero-image-slot-exists");return(t,s)=>(a(),u("div",{class:I(["VPHero",{"has-image":t.image||i(e)}])},[v("div",_n,[v("div",bn,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",kn,[v("span",{innerHTML:t.name,class:"clip"},null,8,gn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,$n)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,yn)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Pn,[(a(!0),u(M,null,H(t.actions,n=>(a(),u("div",{key:n.link,class:"action"},[k(fn,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),u("div",Sn,[v("div",Ln,[s[0]||(s[0]=v("div",{class:"image-bg"},null,-1)),c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),g(Q,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),Tn=$(Vn,[["__scopeId","data-v-955009fc"]]),Nn=m({__name:"VPHomeHero",setup(o){const{frontmatter:e}=V();return(t,s)=>i(e).hero?(a(),g(Tn,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),wn={class:"box"},In={key:0,class:"icon"},Mn=["innerHTML"],An=["innerHTML"],Cn=["innerHTML"],Hn={key:4,class:"link-text"},Bn={class:"link-text-value"},En=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),g(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[v("article",wn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",In,[k(Q,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),g(Q,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Mn)):h("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,An),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Cn)):h("",!0),e.linkText?(a(),u("div",Hn,[v("p",Bn,[z(w(e.linkText)+" ",1),t[0]||(t[0]=v("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Dn=$(En,[["__scopeId","data-v-f5e9645b"]]),Fn={key:0,class:"VPFeatures"},On={class:"container"},Un={class:"items"},Gn=m({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),u("div",Fn,[v("div",On,[v("div",Un,[(a(!0),u(M,null,H(s.features,r=>(a(),u("div",{key:r.title,class:I(["item",[t.value]])},[k(Dn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),jn=$(Gn,[["__scopeId","data-v-d0a190d7"]]),zn=m({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=V();return(t,s)=>i(e).features?(a(),g(jn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):h("",!0)}}),Kn=m({__name:"VPHomeContent",setup(o){const{width:e}=We({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),u("div",{class:"vp-doc container",style:Ne(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),Rn=$(Kn,[["__scopeId","data-v-7a48a447"]]),Wn={class:"VPHome"},qn=m({__name:"VPHome",setup(o){const{frontmatter:e}=V();return(t,s)=>{const n=R("Content");return a(),u("div",Wn,[c(t.$slots,"home-hero-before",{},void 0,!0),k(Nn,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),k(zn),c(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),g(Rn,{key:0},{default:f(()=>[k(n)]),_:1})):(a(),g(n,{key:1}))])}}}),Jn=$(qn,[["__scopeId","data-v-cbb6ec48"]]),Yn={},Xn={class:"VPPage"};function Qn(o,e){const t=R("Content");return a(),u("div",Xn,[c(o.$slots,"page-top"),k(t),c(o.$slots,"page-bottom")])}const Zn=$(Yn,[["render",Qn]]),xn=m({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(n,r)=>(a(),u("div",{class:I(["VPContent",{"has-sidebar":i(s),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?c(n.$slots,"not-found",{key:0},()=>[k(mt)],!0):i(t).layout==="page"?(a(),g(Zn,{key:1},{"page-top":f(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),g(Jn,{key:2},{"home-hero-before":f(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),g(E(i(t).layout),{key:3})):(a(),g(pn,{key:4},{"doc-top":f(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),es=$(xn,[["__scopeId","data-v-91765379"]]),ts={class:"container"},ns=["innerHTML"],ss=["innerHTML"],os=m({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(n,r)=>i(e).footer&&i(t).footer!==!1?(a(),u("footer",{key:0,class:I(["VPFooter",{"has-sidebar":i(s)}])},[v("div",ts,[i(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,ns)):h("",!0),i(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,ss)):h("",!0)])],2)):h("",!0)}}),as=$(os,[["__scopeId","data-v-c970a860"]]);function rs(){const{theme:o,frontmatter:e}=V(),t=Ve([]),s=y(()=>t.value.length>0);return x(()=>{t.value=be(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const is={class:"menu-text"},ls={class:"header"},cs={class:"outline"},us=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=V(),s=T(!1),n=T(0),r=T(),l=T();function d(_){var P;(P=r.value)!=null&&P.contains(_.target)||(s.value=!1)}F(s,_=>{if(_){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ie("Escape",()=>{s.value=!1}),x(()=>{s.value=!1});function p(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function b(_){_.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),he(()=>{s.value=!1}))}function L(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(_,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Ne({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[_.headers.length>0?(a(),u("button",{key:0,onClick:p,class:I({open:s.value})},[v("span",is,w(i(Ce)(i(t))),1),P[0]||(P[0]=v("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),u("button",{key:1,onClick:L},w(i(t).returnToTopLabel||"Return to top"),1)),k(de,{name:"flyout"},{default:f(()=>[s.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:b},[v("div",ls,[v("a",{class:"top-link",href:"#",onClick:L},w(i(t).returnToTopLabel||"Return to top"),1)]),v("div",cs,[k(He,{headers:_.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),ds=$(us,[["__scopeId","data-v-bc9dc845"]]),ps={class:"container"},vs=["aria-expanded"],fs={class:"menu-text"},hs=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U(),{headers:n}=rs(),{y:r}=we(),l=T(0);O(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{n.value=be(t.value.outline??e.value.outline)});const d=y(()=>n.value.length===0),p=y(()=>d.value&&!s.value),b=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:d.value,fixed:p.value}));return(L,_)=>i(t).layout!=="home"&&(!p.value||i(r)>=l.value)?(a(),u("div",{key:0,class:I(b.value)},[v("div",ps,[i(s)?(a(),u("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:_[0]||(_[0]=P=>L.$emit("open-menu"))},[_[1]||(_[1]=v("span",{class:"vpi-align-left menu-icon"},null,-1)),v("span",fs,w(i(e).sidebarMenuLabel||"Menu"),1)],8,vs)):h("",!0),k(ds,{headers:i(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),ms=$(hs,[["__scopeId","data-v-070ab83d"]]);function _s(){const o=T(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=ee();return F(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const bs={},ks={class:"VPSwitch",type:"button",role:"switch"},gs={class:"check"},$s={key:0,class:"icon"};function ys(o,e){return a(),u("button",ks,[v("span",gs,[o.$slots.default?(a(),u("span",$s,[c(o.$slots,"default",{},void 0,!0)])):h("",!0)])])}const Ps=$(bs,[["render",ys],["__scopeId","data-v-4a1c76db"]]),Ss=m({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=V(),s=q("toggle-appearance",()=>{e.value=!e.value}),n=T("");return fe(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,l)=>(a(),g(Ps,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(s)},{default:f(()=>l[0]||(l[0]=[v("span",{class:"vpi-sun sun"},null,-1),v("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),ke=$(Ss,[["__scopeId","data-v-e40a8bb6"]]),Ls={key:0,class:"VPNavBarAppearance"},Vs=m({__name:"VPNavBarAppearance",setup(o){const{site:e}=V();return(t,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",Ls,[k(ke)])):h("",!0)}}),Ts=$(Vs,[["__scopeId","data-v-af096f4a"]]),ge=T();let Be=!1,ae=0;function Ns(o){const e=T(!1);if(te){!Be&&ws(),ae++;const t=F(ge,s=>{var n,r,l;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(l=o.onBlur)==null||l.call(o))});ve(()=>{t(),ae--,ae||Is()})}return qe(e)}function ws(){document.addEventListener("focusin",Ee),Be=!0,ge.value=document.activeElement}function Is(){document.removeEventListener("focusin",Ee)}function Ee(){ge.value=document.activeElement}const Ms={class:"VPMenuLink"},As=["innerHTML"],Cs=m({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,s)=>(a(),u("div",Ms,[k(D,{class:I({active:i(K)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,As)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ne=$(Cs,[["__scopeId","data-v-acbfed09"]]),Hs={class:"VPMenuGroup"},Bs={key:0,class:"title"},Es=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),u("div",Hs,[e.text?(a(),u("p",Bs,w(e.text),1)):h("",!0),(a(!0),u(M,null,H(e.items,s=>(a(),u(M,null,["link"in s?(a(),g(ne,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),Ds=$(Es,[["__scopeId","data-v-48c802d0"]]),Fs={class:"VPMenu"},Os={key:0,class:"items"},Us=m({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),u("div",Fs,[e.items?(a(),u("div",Os,[(a(!0),u(M,null,H(e.items,s=>(a(),u(M,{key:JSON.stringify(s)},["link"in s?(a(),g(ne,{key:0,item:s},null,8,["item"])):"component"in s?(a(),g(E(s.component),j({key:1,ref_for:!0},s.props),null,16)):(a(),g(Ds,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),Gs=$(Us,[["__scopeId","data-v-7dd3104a"]]),js=["aria-expanded","aria-label"],zs={key:0,class:"text"},Ks=["innerHTML"],Rs={key:1,class:"vpi-more-horizontal icon"},Ws={class:"menu"},qs=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=T(!1),t=T();Ns({el:t,onBlur:s});function s(){e.value=!1}return(n,r)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=l=>e.value=!0),onMouseleave:r[2]||(r[2]=l=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:r[0]||(r[0]=l=>e.value=!e.value)},[n.button||n.icon?(a(),u("span",zs,[n.icon?(a(),u("span",{key:0,class:I([n.icon,"option-icon"])},null,2)):h("",!0),n.button?(a(),u("span",{key:1,innerHTML:n.button},null,8,Ks)):h("",!0),r[3]||(r[3]=v("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),u("span",Rs))],8,js),v("div",Ws,[k(Gs,{items:n.items},{default:f(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=$(qs,[["__scopeId","data-v-04f5c5e9"]]),Js=["href","aria-label","innerHTML"],Ys=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=T();O(async()=>{var r;await he();const n=(r=t.value)==null?void 0:r.children[0];n instanceof HTMLElement&&n.className.startsWith("vpi-social-")&&(getComputedStyle(n).maskImage||getComputedStyle(n).webkitMaskImage)==="none"&&n.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const s=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,r)=>(a(),u("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:s.value},null,8,Js))}}),Xs=$(Ys,[["__scopeId","data-v-d26d30cb"]]),Qs={class:"VPSocialLinks"},Zs=m({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),u("div",Qs,[(a(!0),u(M,null,H(e.links,({link:s,icon:n,ariaLabel:r})=>(a(),g(Xs,{key:s,icon:n,link:s,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ye=$(Zs,[["__scopeId","data-v-ee7a9424"]]),xs={key:0,class:"group translations"},eo={class:"trans-title"},to={key:1,class:"group"},no={class:"item appearance"},so={class:"label"},oo={class:"appearance-action"},ao={key:2,class:"group"},ro={class:"item social-links"},io=m({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=V(),{localeLinks:s,currentLang:n}=Y({correspondingLink:!0}),r=y(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(l,d)=>r.value?(a(),g($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[i(s).length&&i(n).label?(a(),u("div",xs,[v("p",eo,w(i(n).label),1),(a(!0),u(M,null,H(i(s),p=>(a(),g(ne,{key:p.link,item:p},null,8,["item"]))),128))])):h("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",to,[v("div",no,[v("p",so,w(i(t).darkModeSwitchLabel||"Appearance"),1),v("div",oo,[k(ke)])])])):h("",!0),i(t).socialLinks?(a(),u("div",ao,[v("div",ro,[k(ye,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),lo=$(io,[["__scopeId","data-v-925effce"]]),co=["aria-expanded"],uo=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),u("button",{type:"button",class:I(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},t[1]||(t[1]=[v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)]),10,co))}}),po=$(uo,[["__scopeId","data-v-5dea55bf"]]),vo=["innerHTML"],fo=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,s)=>(a(),g(D,{class:I({VPNavBarMenuLink:!0,active:i(K)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,vo)]),_:1},8,["class","href","target","rel","no-icon"]))}}),ho=$(fo,[["__scopeId","data-v-956ec74c"]]),mo=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=V(),s=r=>"component"in r?!1:"link"in r?K(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(s),n=y(()=>s(e.item));return(r,l)=>(a(),g($e,{class:I({VPNavBarMenuGroup:!0,active:i(K)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||n.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),_o={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},bo=m({__name:"VPNavBarMenu",setup(o){const{theme:e}=V();return(t,s)=>i(e).nav?(a(),u("nav",_o,[s[0]||(s[0]=v("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),u(M,null,H(i(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),g(ho,{key:0,item:n},null,8,["item"])):"component"in n?(a(),g(E(n.component),j({key:1,ref_for:!0},n.props),null,16)):(a(),g(mo,{key:2,item:n},null,8,["item"]))],64))),128))])):h("",!0)}}),ko=$(bo,[["__scopeId","data-v-e6d46098"]]);function go(o){const{localeIndex:e,theme:t}=V();function s(n){var A,C,N;const r=n.split("."),l=(A=t.value.search)==null?void 0:A.options,d=l&&typeof l=="object",p=d&&((N=(C=l.locales)==null?void 0:C[e.value])==null?void 0:N.translations)||null,b=d&&l.translations||null;let L=p,_=b,P=o;const S=r.pop();for(const B of r){let G=null;const W=P==null?void 0:P[B];W&&(G=P=W);const se=_==null?void 0:_[B];se&&(G=_=se);const oe=L==null?void 0:L[B];oe&&(G=L=oe),W||(P=G),se||(_=G),oe||(L=G)}return(L==null?void 0:L[S])??(_==null?void 0:_[S])??(P==null?void 0:P[S])??""}return s}const $o=["aria-label"],yo={class:"DocSearch-Button-Container"},Po={class:"DocSearch-Button-Placeholder"},Pe=m({__name:"VPNavBarSearchButton",setup(o){const t=go({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[v("span",yo,[n[0]||(n[0]=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),v("span",Po,w(i(t)("button.buttonText")),1)]),n[1]||(n[1]=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,$o))}}),So={class:"VPNavBarSearch"},Lo={id:"local-search"},Vo={key:1,id:"docsearch"},To=m({__name:"VPNavBarSearch",setup(o){const e=Je(()=>Ye(()=>import("./VPLocalSearchBox.CPPYCYL5.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=V(),n=T(!1),r=T(!1);O(()=>{});function l(){n.value||(n.value=!0,setTimeout(d,16))}function d(){const _=new Event("keydown");_.key="k",_.metaKey=!0,window.dispatchEvent(_),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function p(_){const P=_.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const b=T(!1);ie("k",_=>{(_.ctrlKey||_.metaKey)&&(_.preventDefault(),b.value=!0)}),ie("/",_=>{p(_)||(_.preventDefault(),b.value=!0)});const L="local";return(_,P)=>{var S;return a(),u("div",So,[i(L)==="local"?(a(),u(M,{key:0},[b.value?(a(),g(i(e),{key:0,onClose:P[0]||(P[0]=A=>b.value=!1)})):h("",!0),v("div",Lo,[k(Pe,{onClick:P[1]||(P[1]=A=>b.value=!0)})])],64)):i(L)==="algolia"?(a(),u(M,{key:1},[n.value?(a(),g(i(t),{key:0,algolia:((S=i(s).search)==null?void 0:S.options)??i(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>r.value=!0)},null,8,["algolia"])):h("",!0),r.value?h("",!0):(a(),u("div",Vo,[k(Pe,{onClick:l})]))],64)):h("",!0)])}}}),No=m({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=V();return(t,s)=>i(e).socialLinks?(a(),g(ye,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),wo=$(No,[["__scopeId","data-v-164c457f"]]),Io=["href","rel","target"],Mo=["innerHTML"],Ao={key:2},Co=m({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=V(),{hasSidebar:s}=U(),{currentLang:n}=Y(),r=y(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),l=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),d=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,b)=>(a(),u("div",{class:I(["VPNavBarTitle",{"has-sidebar":i(s)}])},[v("a",{class:"title",href:r.value??i(_e)(i(n).link),rel:l.value,target:d.value},[c(p.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),g(Q,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):h("",!0),i(t).siteTitle?(a(),u("span",{key:1,innerHTML:i(t).siteTitle},null,8,Mo)):i(t).siteTitle===void 0?(a(),u("span",Ao,w(i(e).title),1)):h("",!0),c(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,Io)],2))}}),Ho=$(Co,[["__scopeId","data-v-0f4f798b"]]),Bo={class:"items"},Eo={class:"title"},Do=m({__name:"VPNavBarTranslations",setup(o){const{theme:e}=V(),{localeLinks:t,currentLang:s}=Y({correspondingLink:!0});return(n,r)=>i(t).length&&i(s).label?(a(),g($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:f(()=>[v("div",Bo,[v("p",Eo,w(i(s).label),1),(a(!0),u(M,null,H(i(t),l=>(a(),g(ne,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),Fo=$(Do,[["__scopeId","data-v-c80d9ad0"]]),Oo={class:"wrapper"},Uo={class:"container"},Go={class:"title"},jo={class:"content"},zo={class:"content-body"},Ko=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=we(),{hasSidebar:s}=U(),{frontmatter:n}=V(),r=T({});return fe(()=>{r.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),u("div",{class:I(["VPNavBar",r.value])},[v("div",Oo,[v("div",Uo,[v("div",Go,[k(Ho,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",jo,[v("div",zo,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(To,{class:"search"}),k(ko,{class:"menu"}),k(Fo,{class:"translations"}),k(Ts,{class:"appearance"}),k(wo,{class:"social-links"}),k(lo,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(po,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=p=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),d[1]||(d[1]=v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1))],2))}}),Ro=$(Ko,[["__scopeId","data-v-822684d1"]]),Wo={key:0,class:"VPNavScreenAppearance"},qo={class:"text"},Jo=m({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=V();return(s,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",Wo,[v("p",qo,w(i(t).darkModeSwitchLabel||"Appearance"),1),k(ke)])):h("",!0)}}),Yo=$(Jo,[["__scopeId","data-v-ffb44008"]]),Xo=["innerHTML"],Qo=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),g(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,Xo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Zo=$(Qo,[["__scopeId","data-v-735512b8"]]),xo=["innerHTML"],ea=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),g(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,xo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),De=$(ea,[["__scopeId","data-v-372ae7c0"]]),ta={class:"VPNavScreenMenuGroupSection"},na={key:0,class:"title"},sa=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),u("div",ta,[e.text?(a(),u("p",na,w(e.text),1)):h("",!0),(a(!0),u(M,null,H(e.items,s=>(a(),g(De,{key:s.text,item:s},null,8,["item"]))),128))]))}}),oa=$(sa,[["__scopeId","data-v-4b8941ac"]]),aa=["aria-controls","aria-expanded"],ra=["innerHTML"],ia=["id"],la={key:0,class:"item"},ca={key:1,class:"item"},ua={key:2,class:"group"},da=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,l)=>(a(),u("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[v("span",{class:"button-text",innerHTML:r.text},null,8,ra),l[0]||(l[0]=v("span",{class:"vpi-plus button-icon"},null,-1))],8,aa),v("div",{id:s.value,class:"items"},[(a(!0),u(M,null,H(r.items,d=>(a(),u(M,{key:JSON.stringify(d)},["link"in d?(a(),u("div",la,[k(De,{item:d},null,8,["item"])])):"component"in d?(a(),u("div",ca,[(a(),g(E(d.component),j({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),u("div",ua,[k(oa,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,ia)],2))}}),pa=$(da,[["__scopeId","data-v-875057a5"]]),va={key:0,class:"VPNavScreenMenu"},fa=m({__name:"VPNavScreenMenu",setup(o){const{theme:e}=V();return(t,s)=>i(e).nav?(a(),u("nav",va,[(a(!0),u(M,null,H(i(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),g(Zo,{key:0,item:n},null,8,["item"])):"component"in n?(a(),g(E(n.component),j({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),g(pa,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),ha=m({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=V();return(t,s)=>i(e).socialLinks?(a(),g(ye,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),ma={class:"list"},_a=m({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),s=T(!1);function n(){s.value=!s.value}return(r,l)=>i(e).length&&i(t).label?(a(),u("div",{key:0,class:I(["VPNavScreenTranslations",{open:s.value}])},[v("button",{class:"title",onClick:n},[l[0]||(l[0]=v("span",{class:"vpi-languages icon lang"},null,-1)),z(" "+w(i(t).label)+" ",1),l[1]||(l[1]=v("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),v("ul",ma,[(a(!0),u(M,null,H(i(e),d=>(a(),u("li",{key:d.link,class:"item"},[k(D,{class:"link",href:d.link},{default:f(()=>[z(w(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),ba=$(_a,[["__scopeId","data-v-362991c2"]]),ka={class:"container"},ga=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=T(null),t=Ie(te?document.body:null);return(s,n)=>(a(),g(de,{name:"fade",onEnter:n[0]||(n[0]=r=>t.value=!0),onAfterLeave:n[1]||(n[1]=r=>t.value=!1)},{default:f(()=>[s.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",ka,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),k(fa,{class:"menu"}),k(ba,{class:"translations"}),k(Yo,{class:"appearance"}),k(ha,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),$a=$(ga,[["__scopeId","data-v-833aabba"]]),ya={key:0,class:"VPNav"},Pa=m({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=_s(),{frontmatter:n}=V(),r=y(()=>n.value.navbar!==!1);return me("close-screen",t),Z(()=>{te&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(l,d)=>r.value?(a(),u("header",ya,[k(Ro,{"is-screen-open":i(e),onToggleScreen:i(s)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k($a,{open:i(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),Sa=$(Pa,[["__scopeId","data-v-f1e365da"]]),La=["role","tabindex"],Va={key:1,class:"items"},Ta=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:r,hasActiveLink:l,hasChildren:d,toggle:p}=gt(y(()=>e.item)),b=y(()=>d.value?"section":"div"),L=y(()=>n.value?"a":"div"),_=y(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>n.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":r.value},{"has-active":l.value}]);function A(N){"key"in N&&N.key!=="Enter"||!e.item.link&&p()}function C(){e.item.link&&p()}return(N,B)=>{const G=R("VPSidebarItem",!0);return a(),g(E(b.value),{class:I(["VPSidebarItem",S.value])},{default:f(()=>[N.item.text?(a(),u("div",j({key:0,class:"item",role:P.value},Qe(N.item.items?{click:A,keydown:A}:{},!0),{tabindex:N.item.items&&0}),[B[1]||(B[1]=v("div",{class:"indicator"},null,-1)),N.item.link?(a(),g(D,{key:0,tag:L.value,class:"link",href:N.item.link,rel:N.item.rel,target:N.item.target},{default:f(()=>[(a(),g(E(_.value),{class:"text",innerHTML:N.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),g(E(_.value),{key:1,class:"text",innerHTML:N.item.text},null,8,["innerHTML"])),N.item.collapsed!=null&&N.item.items&&N.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Xe(C,["enter"]),tabindex:"0"},B[0]||(B[0]=[v("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):h("",!0)],16,La)):h("",!0),N.item.items&&N.item.items.length?(a(),u("div",Va,[N.depth<5?(a(!0),u(M,{key:0},H(N.item.items,W=>(a(),g(G,{key:W.text,item:W,depth:N.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),Na=$(Ta,[["__scopeId","data-v-196b2e5f"]]),wa=m({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=T(!0);let t=null;return O(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Ze(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,n)=>(a(!0),u(M,null,H(s.items,r=>(a(),u("div",{key:r.text,class:I(["group",{"no-transition":e.value}])},[k(Na,{item:r,depth:0},null,8,["item"])],2))),128))}}),Ia=$(wa,[["__scopeId","data-v-9e426adc"]]),Ma={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Aa=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=U(),s=o,n=T(null),r=Ie(te?document.body:null);F([s,n],()=>{var d;s.open?(r.value=!0,(d=n.value)==null||d.focus()):r.value=!1},{immediate:!0,flush:"post"});const l=T(0);return F(e,()=>{l.value+=1},{deep:!0}),(d,p)=>i(t)?(a(),u("aside",{key:0,class:I(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:n,onClick:p[0]||(p[0]=xe(()=>{},["stop"]))},[p[2]||(p[2]=v("div",{class:"curtain"},null,-1)),v("nav",Ma,[p[1]||(p[1]=v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),c(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),g(Ia,{items:i(e),key:l.value},null,8,["items"])),c(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),Ca=$(Aa,[["__scopeId","data-v-18756405"]]),Ha=m({__name:"VPSkipLink",setup(o){const e=ee(),t=T();F(()=>e.path,()=>t.value.focus());function s({target:n}){const r=document.getElementById(decodeURIComponent(n.hash).slice(1));if(r){const l=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",l)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",l),r.focus(),window.scrollTo(0,0)}}return(n,r)=>(a(),u(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),Ba=$(Ha,[["__scopeId","data-v-c3508ec8"]]),Ea=m({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=U(),n=ee();F(()=>n.path,s),kt(e,s);const{frontmatter:r}=V(),l=Me(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(p,b)=>{const L=R("Content");return i(r).layout!==!1?(a(),u("div",{key:0,class:I(["Layout",i(r).pageClass])},[c(p.$slots,"layout-top",{},void 0,!0),k(Ba),k(rt,{class:"backdrop",show:i(e),onClick:i(s)},null,8,["show","onClick"]),k(Sa,null,{"nav-bar-title-before":f(()=>[c(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(ms,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),k(Ca,{open:i(e)},{"sidebar-nav-before":f(()=>[c(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(es,null,{"page-top":f(()=>[c(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(as),c(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),g(L,{key:1}))}}}),Da=$(Ea,[["__scopeId","data-v-a9a9e638"]]),Se={Layout:Da,enhanceApp:({app:o})=>{o.component("Badge",st)}},Fa=o=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...n)=>{const r=s(...n),l=o.value;if(!l)return r;const d=l.offsetTop-e.scrollTop;return await he(),e.scrollTop=l.offsetTop-d,r}}},Fe="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,Oe="vitepress:tabsSharedState",Oa=()=>{const o=J==null?void 0:J.getItem(Oe);if(o)try{return JSON.parse(o)}catch{}return{}},Ua=o=>{J&&J.setItem(Oe,JSON.stringify(o))},Ga=o=>{const e=et({});F(()=>e.content,(t,s)=>{t&&s&&Ua(t)},{deep:!0}),o.provide(Fe,e)},ja=(o,e)=>{const t=q(Fe);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");O(()=>{t.content||(t.content=Oa())});const s=T(),n=y({get(){var p;const l=e.value,d=o.value;if(l){const b=(p=t.content)==null?void 0:p[l];if(b&&d.includes(b))return b}else{const b=s.value;if(b)return b}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):s.value=l}});return{selected:n,select:l=>{n.value=l}}};let Le=0;const za=()=>(Le++,""+Le);function Ka(){const o=Me();return y(()=>{var s;const t=(s=o.default)==null?void 0:s.call(o);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var r;return(r=n.props)==null?void 0:r.label}):[]})}const Ue="vitepress:tabSingleState",Ra=o=>{me(Ue,o)},Wa=()=>{const o=q(Ue);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},qa={class:"plugin-tabs"},Ja=["id","aria-selected","aria-controls","tabindex","onClick"],Ya=m({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=Ka(),{selected:s,select:n}=ja(t,tt(e,"sharedStateKey")),r=T(),{stabilizeScrollPosition:l}=Fa(r),d=l(n),p=T([]),b=_=>{var A;const P=t.value.indexOf(s.value);let S;_.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:_.key==="ArrowRight"&&(S=P(a(),u("div",qa,[v("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:b},[(a(!0),u(M,null,H(i(t),S=>(a(),u("button",{id:`tab-${S}-${i(L)}`,ref_for:!0,ref_key:"buttonRefs",ref:p,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===i(s),"aria-controls":`panel-${S}-${i(L)}`,tabindex:S===i(s)?0:-1,onClick:()=>i(d)(S)},w(S),9,Ja))),128))],544),c(_.$slots,"default")]))}}),Xa=["id","aria-labelledby"],Qa=m({__name:"PluginTabsTab",props:{label:{}},setup(o){const{uid:e,selected:t}=Wa();return(s,n)=>i(t)===s.label?(a(),u("div",{key:0,id:`panel-${s.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${i(e)}`},[c(s.$slots,"default",{},void 0,!0)],8,Xa)):h("",!0)}}),Za=$(Qa,[["__scopeId","data-v-9b0d03d2"]]),xa=o=>{Ga(o),o.component("PluginTabs",Ya),o.component("PluginTabsTab",Za)},tr={extends:Se,Layout(){return nt(Se.Layout,null,{})},enhanceApp({app:o,router:e,siteData:t}){xa(o)}};export{tr as R,go as c,V as u}; diff --git a/previews/PR238/assets/wjkuxmh.DC3TvBOO.png b/previews/PR238/assets/cnioidk.DC3TvBOO.png similarity index 100% rename from previews/PR238/assets/wjkuxmh.DC3TvBOO.png rename to previews/PR238/assets/cnioidk.DC3TvBOO.png diff --git a/previews/PR238/assets/oynuazh.CgiryX2p.png b/previews/PR238/assets/czijwjc.CgiryX2p.png similarity index 100% rename from previews/PR238/assets/oynuazh.CgiryX2p.png rename to previews/PR238/assets/czijwjc.CgiryX2p.png diff --git a/previews/PR238/assets/elpyarh.kYI7eJr8.png b/previews/PR238/assets/elpyarh.kYI7eJr8.png new file mode 100644 index 0000000000000000000000000000000000000000..aea73b2b30142ca545115c6117028814dee46f7a GIT binary patch literal 206611 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

;(sPIcV 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 literal 0 HcmV?d00001 diff --git a/previews/PR238/assets/excqmms.DIwADWhE.png b/previews/PR238/assets/excqmms.DIwADWhE.png new file mode 100644 index 0000000000000000000000000000000000000000..1293483b77d76f1975c2cef9799d3d24a20151e1 GIT binary patch literal 64267 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

<@w742wKr%U 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%0AXK(57;Dpo@w#ARHcYhPRK(iO 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

Exact vs fast predicates

Orient

julia
using CairoMakie
+import{_ as i,c as a,a5 as h,o as k}from"./chunks/framework.Bkt_v4A4.js";const n="/GeometryOps.jl/previews/PR238/assets/uchcjdf.yR5twQOY.png",y=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),p={name:"experiments/predicates.md"};function l(t,s,E,e,r,d){return k(),a("div",null,s[0]||(s[0]=[h(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
 import GeometryOps as GO, GeoInterface as GI, LibGEOS as LG
 import ExactPredicates
 using MultiFloats
diff --git a/previews/PR238/assets/experiments_predicates.md.BPsYqbuf.js b/previews/PR238/assets/experiments_predicates.md.BWVHVMmB.lean.js
similarity index 99%
rename from previews/PR238/assets/experiments_predicates.md.BPsYqbuf.js
rename to previews/PR238/assets/experiments_predicates.md.BWVHVMmB.lean.js
index 426ce4ae7..796546fbb 100644
--- a/previews/PR238/assets/experiments_predicates.md.BPsYqbuf.js
+++ b/previews/PR238/assets/experiments_predicates.md.BWVHVMmB.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a5 as h,o as k}from"./chunks/framework.Bkt_v4A4.js";const n="/GeometryOps.jl/previews/PR238/assets/candwhz.W-r9-vls.png",y=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),p={name:"experiments/predicates.md"};function l(t,s,E,e,r,d){return k(),a("div",null,s[0]||(s[0]=[h(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
+import{_ as i,c as a,a5 as h,o as k}from"./chunks/framework.Bkt_v4A4.js";const n="/GeometryOps.jl/previews/PR238/assets/uchcjdf.yR5twQOY.png",y=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),p={name:"experiments/predicates.md"};function l(t,s,E,e,r,d){return k(),a("div",null,s[0]||(s[0]=[h(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
 import GeometryOps as GO, GeoInterface as GI, LibGEOS as LG
 import ExactPredicates
 using MultiFloats
diff --git a/previews/PR238/assets/heqeujh.D5-bot8v.png b/previews/PR238/assets/fsjmnbb.D5-bot8v.png
similarity index 100%
rename from previews/PR238/assets/heqeujh.D5-bot8v.png
rename to previews/PR238/assets/fsjmnbb.D5-bot8v.png
diff --git a/previews/PR238/assets/zprlmze.DeeQUply.png b/previews/PR238/assets/fsrdwjj.DeeQUply.png
similarity index 100%
rename from previews/PR238/assets/zprlmze.DeeQUply.png
rename to previews/PR238/assets/fsrdwjj.DeeQUply.png
diff --git a/previews/PR238/assets/nclwnzm.CPClNl7F.png b/previews/PR238/assets/gazeekx.CPClNl7F.png
similarity index 100%
rename from previews/PR238/assets/nclwnzm.CPClNl7F.png
rename to previews/PR238/assets/gazeekx.CPClNl7F.png
diff --git a/previews/PR238/assets/cppbtsk._0R9BbFk.png b/previews/PR238/assets/hgskvzv._0R9BbFk.png
similarity index 100%
rename from previews/PR238/assets/cppbtsk._0R9BbFk.png
rename to previews/PR238/assets/hgskvzv._0R9BbFk.png
diff --git a/previews/PR238/assets/osxbqkq.DuBHk1fh.png b/previews/PR238/assets/hlbmezo.DuBHk1fh.png
similarity index 100%
rename from previews/PR238/assets/osxbqkq.DuBHk1fh.png
rename to previews/PR238/assets/hlbmezo.DuBHk1fh.png
diff --git a/previews/PR238/assets/hosrsyx.CvvJ-ORz.png b/previews/PR238/assets/hosrsyx.CvvJ-ORz.png
new file mode 100644
index 0000000000000000000000000000000000000000..de11bf871c6f1e0a6aecd86c9bcd6cf0ded47490
GIT binary patch
literal 64060
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%0AX;ZRNG`=h$RVU|3jdV`HiyUC^UP?Af``{uR6I
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
S3(!P@P*Xmxl&@%V^}hj=42sAA

literal 0
HcmV?d00001

diff --git a/previews/PR238/assets/vxbbynp.Cx40vhB3.png b/previews/PR238/assets/hpptrek.Cx40vhB3.png
similarity index 100%
rename from previews/PR238/assets/vxbbynp.Cx40vhB3.png
rename to previews/PR238/assets/hpptrek.Cx40vhB3.png
diff --git a/previews/PR238/assets/ictcaon.BxyFC9l3.png b/previews/PR238/assets/ictcaon.BxyFC9l3.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c44cc95b59c6b510a4ff2677d2a43b614e0dc25
GIT binary patch
literal 80206
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 LWpbXh;m!X6(DZ|j literal 0 HcmV?d00001 diff --git a/previews/PR238/assets/iefhksx.CHIqn74q.png b/previews/PR238/assets/iefhksx.CHIqn74q.png deleted file mode 100644 index 7dcd96d640ed4bbd9d42e0c8059331e02b1a4a38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65207 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%0ARE=g^-toQ>#f;~Q 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

%SpYXDZa%Zp9XVFLaMW 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 diff --git a/previews/PR238/assets/ixnjtdx.DpDSz3U3.png b/previews/PR238/assets/ixnjtdx.DpDSz3U3.png deleted file mode 100644 index 0426eb0d9ec42acfc2f5c7a60ea9e781b4ab825d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232758 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%0D!J0s_1+gnSokCb}0T}@>M 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

  • hnxDbXsW6|1-T)RK^;fmYyTFUM1bIZhy*lszHg( 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

    Angles

    julia
    export angles

    What is angles?

    Angles are the angles formed by a given geometries line segments, if it has line segments.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/pmzjbup.Dig-DWOQ.png",y=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),k={name:"source/methods/angles.md"};function t(p,s,e,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Angles

    julia
    export angles

    What is angles?

    Angles are the angles formed by a given geometries line segments, if it has line segments.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie, CairoMakie
     
    diff --git a/previews/PR238/assets/source_methods_angles.md.BfBgRbNW.lean.js b/previews/PR238/assets/source_methods_angles.md.Bdl4uNud.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_angles.md.BfBgRbNW.lean.js
    rename to previews/PR238/assets/source_methods_angles.md.Bdl4uNud.lean.js
    index 549b1cc47..027a882df 100644
    --- a/previews/PR238/assets/source_methods_angles.md.BfBgRbNW.lean.js
    +++ b/previews/PR238/assets/source_methods_angles.md.Bdl4uNud.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/adhjkkk.Dig-DWOQ.png",y=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),k={name:"source/methods/angles.md"};function t(p,s,e,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Angles

    julia
    export angles

    What is angles?

    Angles are the angles formed by a given geometries line segments, if it has line segments.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/pmzjbup.Dig-DWOQ.png",y=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),k={name:"source/methods/angles.md"};function t(p,s,e,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Angles

    julia
    export angles

    What is angles?

    Angles are the angles formed by a given geometries line segments, if it has line segments.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie, CairoMakie
     
    diff --git a/previews/PR238/assets/source_methods_area.md.CHWxYYB9.js b/previews/PR238/assets/source_methods_area.md.D2Da__F3.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_area.md.CHWxYYB9.js
    rename to previews/PR238/assets/source_methods_area.md.D2Da__F3.js
    index b40c62dbb..9267ad861 100644
    --- a/previews/PR238/assets/source_methods_area.md.CHWxYYB9.js
    +++ b/previews/PR238/assets/source_methods_area.md.D2Da__F3.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/adhjkkk.Dig-DWOQ.png",e="/GeometryOps.jl/previews/PR238/assets/zzklicr.CULn5saZ.png",y=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),l={name:"source/methods/area.md"};function p(k,s,r,d,g,E){return h(),a("div",null,s[0]||(s[0]=[n(`

    Area and signed area

    julia
    export area, signed_area

    What is area? What is signed area?

    Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/pmzjbup.Dig-DWOQ.png",e="/GeometryOps.jl/previews/PR238/assets/tvzxwdn.CULn5saZ.png",y=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),l={name:"source/methods/area.md"};function p(k,s,r,d,g,E){return h(),a("div",null,s[0]||(s[0]=[n(`

    Area and signed area

    julia
    export area, signed_area

    What is area? What is signed area?

    Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_area.md.CHWxYYB9.lean.js b/previews/PR238/assets/source_methods_area.md.D2Da__F3.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_area.md.CHWxYYB9.lean.js
    rename to previews/PR238/assets/source_methods_area.md.D2Da__F3.lean.js
    index b40c62dbb..9267ad861 100644
    --- a/previews/PR238/assets/source_methods_area.md.CHWxYYB9.lean.js
    +++ b/previews/PR238/assets/source_methods_area.md.D2Da__F3.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/adhjkkk.Dig-DWOQ.png",e="/GeometryOps.jl/previews/PR238/assets/zzklicr.CULn5saZ.png",y=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),l={name:"source/methods/area.md"};function p(k,s,r,d,g,E){return h(),a("div",null,s[0]||(s[0]=[n(`

    Area and signed area

    julia
    export area, signed_area

    What is area? What is signed area?

    Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/pmzjbup.Dig-DWOQ.png",e="/GeometryOps.jl/previews/PR238/assets/tvzxwdn.CULn5saZ.png",y=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),l={name:"source/methods/area.md"};function p(k,s,r,d,g,E){return h(),a("div",null,s[0]||(s[0]=[n(`

    Area and signed area

    julia
    export area, signed_area

    What is area? What is signed area?

    Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_barycentric.md.DmIno-Km.js b/previews/PR238/assets/source_methods_barycentric.md.DnBl0n-K.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_barycentric.md.DmIno-Km.js
    rename to previews/PR238/assets/source_methods_barycentric.md.DnBl0n-K.js
    index 2b7c7a5a7..9a7c8667e 100644
    --- a/previews/PR238/assets/source_methods_barycentric.md.DmIno-Km.js
    +++ b/previews/PR238/assets/source_methods_barycentric.md.DnBl0n-K.js
    @@ -1,4 +1,4 @@
    -import{_ as k,c as n,a5 as t,j as s,a,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/cjoukrz.pAYw0Yqf.png",m=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),p={name:"source/methods/barycentric.md"},e={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.692ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4726 1000","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.876ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 6575.4 1000","aria-hidden":"true"};function C(c,i,B,A,D,u){return h(),n("div",null,[i[14]||(i[14]=t(`

    Barycentric coordinates

    julia
    export barycentric_coordinates, barycentric_coordinates!, barycentric_interpolate
    +import{_ as k,c as n,a5 as t,j as s,a,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/tqgkqbl.pAYw0Yqf.png",m=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),p={name:"source/methods/barycentric.md"},e={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.692ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4726 1000","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.876ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 6575.4 1000","aria-hidden":"true"};function C(c,i,B,A,D,u){return h(),n("div",null,[i[14]||(i[14]=t(`

    Barycentric coordinates

    julia
    export barycentric_coordinates, barycentric_coordinates!, barycentric_interpolate
     export MeanValue

    Generalized barycentric coordinates are a generalization of barycentric coordinates, which are typically used in triangles, to arbitrary polygons.

    They provide a way to express a point within a polygon as a weighted average of the polygon's vertices.

    `,4)),s("p",null,[i[2]||(i[2]=a("In the case of a triangle, barycentric coordinates are a set of three numbers ")),s("mjx-container",e,[(h(),n("svg",E,i[0]||(i[0]=[t('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"3")]),s("mo",{stretchy:"false"},")")])],-1))]),i[3]||(i[3]=a(", each associated with a vertex of the triangle. Any point within the triangle can be expressed as a weighted average of the vertices, where the weights are the barycentric coordinates. The weights sum to 1, and each is non-negative."))]),s("p",null,[i[10]||(i[10]=a("For a polygon with ")),s("mjx-container",r,[(h(),n("svg",d,i[4]||(i[4]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),i[5]||(i[5]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),i[11]||(i[11]=a(" vertices, generalized barycentric coordinates are a set of ")),s("mjx-container",g,[(h(),n("svg",y,i[6]||(i[6]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),i[7]||(i[7]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),i[12]||(i[12]=a(" numbers ")),s("mjx-container",F,[(h(),n("svg",o,i[8]||(i[8]=[t('',1)]))),i[9]||(i[9]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("mo",null,"."),s("mo",null,"."),s("mo",null,"."),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mi",null,"n")]),s("mo",{stretchy:"false"},")")])],-1))]),i[13]||(i[13]=a(", each associated with a vertex of the polygon. Any point within the polygon can be expressed as a weighted average of the vertices, where the weights are the generalized barycentric coordinates."))]),i[15]||(i[15]=t(`

    As with the triangle case, the weights sum to 1, and each is non-negative.

    Example

    This example was taken from this page of CGAL's documentation.

    julia
    using GeometryOps
     using GeometryOps.GeometryBasics
     using Makie
    diff --git a/previews/PR238/assets/source_methods_barycentric.md.DmIno-Km.lean.js b/previews/PR238/assets/source_methods_barycentric.md.DnBl0n-K.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_barycentric.md.DmIno-Km.lean.js
    rename to previews/PR238/assets/source_methods_barycentric.md.DnBl0n-K.lean.js
    index 2b7c7a5a7..9a7c8667e 100644
    --- a/previews/PR238/assets/source_methods_barycentric.md.DmIno-Km.lean.js
    +++ b/previews/PR238/assets/source_methods_barycentric.md.DnBl0n-K.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as k,c as n,a5 as t,j as s,a,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/cjoukrz.pAYw0Yqf.png",m=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),p={name:"source/methods/barycentric.md"},e={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.692ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4726 1000","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.876ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 6575.4 1000","aria-hidden":"true"};function C(c,i,B,A,D,u){return h(),n("div",null,[i[14]||(i[14]=t(`

    Barycentric coordinates

    julia
    export barycentric_coordinates, barycentric_coordinates!, barycentric_interpolate
    +import{_ as k,c as n,a5 as t,j as s,a,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/tqgkqbl.pAYw0Yqf.png",m=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),p={name:"source/methods/barycentric.md"},e={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.692ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4726 1000","aria-hidden":"true"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.876ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 6575.4 1000","aria-hidden":"true"};function C(c,i,B,A,D,u){return h(),n("div",null,[i[14]||(i[14]=t(`

    Barycentric coordinates

    julia
    export barycentric_coordinates, barycentric_coordinates!, barycentric_interpolate
     export MeanValue

    Generalized barycentric coordinates are a generalization of barycentric coordinates, which are typically used in triangles, to arbitrary polygons.

    They provide a way to express a point within a polygon as a weighted average of the polygon's vertices.

    `,4)),s("p",null,[i[2]||(i[2]=a("In the case of a triangle, barycentric coordinates are a set of three numbers ")),s("mjx-container",e,[(h(),n("svg",E,i[0]||(i[0]=[t('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"3")]),s("mo",{stretchy:"false"},")")])],-1))]),i[3]||(i[3]=a(", each associated with a vertex of the triangle. Any point within the triangle can be expressed as a weighted average of the vertices, where the weights are the barycentric coordinates. The weights sum to 1, and each is non-negative."))]),s("p",null,[i[10]||(i[10]=a("For a polygon with ")),s("mjx-container",r,[(h(),n("svg",d,i[4]||(i[4]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),i[5]||(i[5]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),i[11]||(i[11]=a(" vertices, generalized barycentric coordinates are a set of ")),s("mjx-container",g,[(h(),n("svg",y,i[6]||(i[6]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),i[7]||(i[7]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),i[12]||(i[12]=a(" numbers ")),s("mjx-container",F,[(h(),n("svg",o,i[8]||(i[8]=[t('',1)]))),i[9]||(i[9]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("mo",null,"."),s("mo",null,"."),s("mo",null,"."),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mi",null,"n")]),s("mo",{stretchy:"false"},")")])],-1))]),i[13]||(i[13]=a(", each associated with a vertex of the polygon. Any point within the polygon can be expressed as a weighted average of the vertices, where the weights are the generalized barycentric coordinates."))]),i[15]||(i[15]=t(`

    As with the triangle case, the weights sum to 1, and each is non-negative.

    Example

    This example was taken from this page of CGAL's documentation.

    julia
    using GeometryOps
     using GeometryOps.GeometryBasics
     using Makie
    diff --git a/previews/PR238/assets/source_methods_centroid.md.fOzim5wq.js b/previews/PR238/assets/source_methods_centroid.md.BT82gcVg.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_centroid.md.fOzim5wq.js
    rename to previews/PR238/assets/source_methods_centroid.md.BT82gcVg.js
    index fac6350db..8ef69cb1a 100644
    --- a/previews/PR238/assets/source_methods_centroid.md.fOzim5wq.js
    +++ b/previews/PR238/assets/source_methods_centroid.md.BT82gcVg.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/zhayfze.BD0hVfse.png",p="/GeometryOps.jl/previews/PR238/assets/bdbtpgs.DHcwB147.png",o=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),k={name:"source/methods/centroid.md"};function l(e,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Centroid

    julia
    export centroid, centroid_and_length, centroid_and_area

    What is the centroid?

    The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

    Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

    To provide an example, consider this concave polygon in the shape of a 'C':

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/qqpaewv.BD0hVfse.png",p="/GeometryOps.jl/previews/PR238/assets/sqhssgt.DHcwB147.png",o=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),k={name:"source/methods/centroid.md"};function l(e,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Centroid

    julia
    export centroid, centroid_and_length, centroid_and_area

    What is the centroid?

    The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

    Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

    To provide an example, consider this concave polygon in the shape of a 'C':

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_centroid.md.fOzim5wq.lean.js b/previews/PR238/assets/source_methods_centroid.md.BT82gcVg.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_centroid.md.fOzim5wq.lean.js
    rename to previews/PR238/assets/source_methods_centroid.md.BT82gcVg.lean.js
    index fac6350db..8ef69cb1a 100644
    --- a/previews/PR238/assets/source_methods_centroid.md.fOzim5wq.lean.js
    +++ b/previews/PR238/assets/source_methods_centroid.md.BT82gcVg.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/zhayfze.BD0hVfse.png",p="/GeometryOps.jl/previews/PR238/assets/bdbtpgs.DHcwB147.png",o=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),k={name:"source/methods/centroid.md"};function l(e,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Centroid

    julia
    export centroid, centroid_and_length, centroid_and_area

    What is the centroid?

    The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

    Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

    To provide an example, consider this concave polygon in the shape of a 'C':

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/qqpaewv.BD0hVfse.png",p="/GeometryOps.jl/previews/PR238/assets/sqhssgt.DHcwB147.png",o=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),k={name:"source/methods/centroid.md"};function l(e,s,r,E,d,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Centroid

    julia
    export centroid, centroid_and_length, centroid_and_area

    What is the centroid?

    The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

    Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

    To provide an example, consider this concave polygon in the shape of a 'C':

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_clipping_coverage.md.BjYwMAiW.js b/previews/PR238/assets/source_methods_clipping_coverage.md.CJpiLfPD.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_clipping_coverage.md.BjYwMAiW.js
    rename to previews/PR238/assets/source_methods_clipping_coverage.md.CJpiLfPD.js
    index 90c4dc2fd..e51a66c3c 100644
    --- a/previews/PR238/assets/source_methods_clipping_coverage.md.BjYwMAiW.js
    +++ b/previews/PR238/assets/source_methods_clipping_coverage.md.CJpiLfPD.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/emcegmo.Cb0_DiYE.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),k={name:"source/methods/clipping/coverage.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`
    julia
    export coverage

    What is coverage?

    Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordinates of that bounding box, or an Extent containing that information.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/nhetjum.Cb0_DiYE.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),k={name:"source/methods/clipping/coverage.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`
    julia
    export coverage

    What is coverage?

    Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordinates of that bounding box, or an Extent containing that information.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_clipping_coverage.md.BjYwMAiW.lean.js b/previews/PR238/assets/source_methods_clipping_coverage.md.CJpiLfPD.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_clipping_coverage.md.BjYwMAiW.lean.js
    rename to previews/PR238/assets/source_methods_clipping_coverage.md.CJpiLfPD.lean.js
    index 90c4dc2fd..e51a66c3c 100644
    --- a/previews/PR238/assets/source_methods_clipping_coverage.md.BjYwMAiW.lean.js
    +++ b/previews/PR238/assets/source_methods_clipping_coverage.md.CJpiLfPD.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/emcegmo.Cb0_DiYE.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),k={name:"source/methods/clipping/coverage.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`
    julia
    export coverage

    What is coverage?

    Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordinates of that bounding box, or an Extent containing that information.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/nhetjum.Cb0_DiYE.png",y=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),k={name:"source/methods/clipping/coverage.md"};function p(t,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`
    julia
    export coverage

    What is coverage?

    Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordinates of that bounding box, or an Extent containing that information.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_clipping_cut.md.BRN3NaqE.js b/previews/PR238/assets/source_methods_clipping_cut.md.DRYvrHTw.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_clipping_cut.md.BRN3NaqE.js
    rename to previews/PR238/assets/source_methods_clipping_cut.md.DRYvrHTw.js
    index ab16433fc..6b60372d7 100644
    --- a/previews/PR238/assets/source_methods_clipping_cut.md.BRN3NaqE.js
    +++ b/previews/PR238/assets/source_methods_clipping_cut.md.DRYvrHTw.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/lxpynmy.-VpeHhXX.png",y=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),l={name:"source/methods/clipping/cut.md"};function p(k,s,e,r,E,d){return h(),a("div",null,s[0]||(s[0]=[n(`

    Polygon cutting

    julia
    export cut

    What is cut?

    The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

    To provide an example, consider the following polygon and line:

    julia
    import GeoInterface as GI, GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/vnqwpfr.-VpeHhXX.png",y=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),l={name:"source/methods/clipping/cut.md"};function p(k,s,e,r,E,d){return h(),a("div",null,s[0]||(s[0]=[n(`

    Polygon cutting

    julia
    export cut

    What is cut?

    The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

    To provide an example, consider the following polygon and line:

    julia
    import GeoInterface as GI, GeometryOps as GO
     using CairoMakie
     using Makie
     
    diff --git a/previews/PR238/assets/source_methods_clipping_cut.md.BRN3NaqE.lean.js b/previews/PR238/assets/source_methods_clipping_cut.md.DRYvrHTw.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_clipping_cut.md.BRN3NaqE.lean.js
    rename to previews/PR238/assets/source_methods_clipping_cut.md.DRYvrHTw.lean.js
    index ab16433fc..6b60372d7 100644
    --- a/previews/PR238/assets/source_methods_clipping_cut.md.BRN3NaqE.lean.js
    +++ b/previews/PR238/assets/source_methods_clipping_cut.md.DRYvrHTw.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/lxpynmy.-VpeHhXX.png",y=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),l={name:"source/methods/clipping/cut.md"};function p(k,s,e,r,E,d){return h(),a("div",null,s[0]||(s[0]=[n(`

    Polygon cutting

    julia
    export cut

    What is cut?

    The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

    To provide an example, consider the following polygon and line:

    julia
    import GeoInterface as GI, GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/vnqwpfr.-VpeHhXX.png",y=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),l={name:"source/methods/clipping/cut.md"};function p(k,s,e,r,E,d){return h(),a("div",null,s[0]||(s[0]=[n(`

    Polygon cutting

    julia
    export cut

    What is cut?

    The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

    To provide an example, consider the following polygon and line:

    julia
    import GeoInterface as GI, GeometryOps as GO
     using CairoMakie
     using Makie
     
    diff --git a/previews/PR238/assets/source_methods_convex_hull.md.E_Okplhz.js b/previews/PR238/assets/source_methods_convex_hull.md.BrjOWkfq.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_convex_hull.md.E_Okplhz.js
    rename to previews/PR238/assets/source_methods_convex_hull.md.BrjOWkfq.js
    index 810c5a35c..eab3c23fe 100644
    --- a/previews/PR238/assets/source_methods_convex_hull.md.E_Okplhz.js
    +++ b/previews/PR238/assets/source_methods_convex_hull.md.BrjOWkfq.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/odgkqfb.CThyMQae.png",h="/GeometryOps.jl/previews/PR238/assets/uibzdol.mCtKcWOr.png",e="/GeometryOps.jl/previews/PR238/assets/ttsketx.DJUk7VMK.png",c=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),p={name:"source/methods/convex_hull.md"};function k(r,s,o,d,E,g){return l(),a("div",null,s[0]||(s[0]=[n(`

    Convex hull

    The convex hull of a set of points is the smallest convex polygon that contains all the points.

    GeometryOps.jl provides a number of methods for computing the convex hull of a set of points, usually linked to other Julia packages.

    For now, we expose one algorithm, MonotoneChainMethod, which uses the DelaunayTriangulation.jl package. The GEOS() interface also supports convex hulls.

    Future work could include other algorithms, such as Quickhull.jl, or similar, via package extensions.

    Example

    Simple hull

    julia
    import GeometryOps as GO, GeoInterface as GI
    +import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/nguwnkb.CXOHBuIW.png",h="/GeometryOps.jl/previews/PR238/assets/khupcbf.mCtKcWOr.png",e="/GeometryOps.jl/previews/PR238/assets/uavptik.C7FptcSe.png",c=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),p={name:"source/methods/convex_hull.md"};function k(r,s,o,d,E,g){return l(),a("div",null,s[0]||(s[0]=[n(`

    Convex hull

    The convex hull of a set of points is the smallest convex polygon that contains all the points.

    GeometryOps.jl provides a number of methods for computing the convex hull of a set of points, usually linked to other Julia packages.

    For now, we expose one algorithm, MonotoneChainMethod, which uses the DelaunayTriangulation.jl package. The GEOS() interface also supports convex hulls.

    Future work could include other algorithms, such as Quickhull.jl, or similar, via package extensions.

    Example

    Simple hull

    julia
    import GeometryOps as GO, GeoInterface as GI
     using CairoMakie # to plot
     
     points = randn(GO.Point2f, 100)
    diff --git a/previews/PR238/assets/source_methods_convex_hull.md.E_Okplhz.lean.js b/previews/PR238/assets/source_methods_convex_hull.md.BrjOWkfq.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_convex_hull.md.E_Okplhz.lean.js
    rename to previews/PR238/assets/source_methods_convex_hull.md.BrjOWkfq.lean.js
    index 810c5a35c..eab3c23fe 100644
    --- a/previews/PR238/assets/source_methods_convex_hull.md.E_Okplhz.lean.js
    +++ b/previews/PR238/assets/source_methods_convex_hull.md.BrjOWkfq.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/odgkqfb.CThyMQae.png",h="/GeometryOps.jl/previews/PR238/assets/uibzdol.mCtKcWOr.png",e="/GeometryOps.jl/previews/PR238/assets/ttsketx.DJUk7VMK.png",c=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),p={name:"source/methods/convex_hull.md"};function k(r,s,o,d,E,g){return l(),a("div",null,s[0]||(s[0]=[n(`

    Convex hull

    The convex hull of a set of points is the smallest convex polygon that contains all the points.

    GeometryOps.jl provides a number of methods for computing the convex hull of a set of points, usually linked to other Julia packages.

    For now, we expose one algorithm, MonotoneChainMethod, which uses the DelaunayTriangulation.jl package. The GEOS() interface also supports convex hulls.

    Future work could include other algorithms, such as Quickhull.jl, or similar, via package extensions.

    Example

    Simple hull

    julia
    import GeometryOps as GO, GeoInterface as GI
    +import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/nguwnkb.CXOHBuIW.png",h="/GeometryOps.jl/previews/PR238/assets/khupcbf.mCtKcWOr.png",e="/GeometryOps.jl/previews/PR238/assets/uavptik.C7FptcSe.png",c=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),p={name:"source/methods/convex_hull.md"};function k(r,s,o,d,E,g){return l(),a("div",null,s[0]||(s[0]=[n(`

    Convex hull

    The convex hull of a set of points is the smallest convex polygon that contains all the points.

    GeometryOps.jl provides a number of methods for computing the convex hull of a set of points, usually linked to other Julia packages.

    For now, we expose one algorithm, MonotoneChainMethod, which uses the DelaunayTriangulation.jl package. The GEOS() interface also supports convex hulls.

    Future work could include other algorithms, such as Quickhull.jl, or similar, via package extensions.

    Example

    Simple hull

    julia
    import GeometryOps as GO, GeoInterface as GI
     using CairoMakie # to plot
     
     points = randn(GO.Point2f, 100)
    diff --git a/previews/PR238/assets/source_methods_distance.md.BuLlEwp9.js b/previews/PR238/assets/source_methods_distance.md.CVMqDjx5.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_distance.md.BuLlEwp9.js
    rename to previews/PR238/assets/source_methods_distance.md.CVMqDjx5.js
    index 9d41ad17a..bc9c14b5f 100644
    --- a/previews/PR238/assets/source_methods_distance.md.BuLlEwp9.js
    +++ b/previews/PR238/assets/source_methods_distance.md.CVMqDjx5.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/eiqhwxi.DiwGEg2f.png",k="/GeometryOps.jl/previews/PR238/assets/osxbqkq.DuBHk1fh.png",F=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),p={name:"source/methods/distance.md"};function l(e,s,d,E,r,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Distance and signed distance

    julia
    export distance, signed_distance

    What is distance? What is signed distance?

    Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be positive or 0.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/kvtkfdl.DiwGEg2f.png",k="/GeometryOps.jl/previews/PR238/assets/hlbmezo.DuBHk1fh.png",F=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),p={name:"source/methods/distance.md"};function l(e,s,d,E,r,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Distance and signed distance

    julia
    export distance, signed_distance

    What is distance? What is signed distance?

    Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be positive or 0.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_distance.md.BuLlEwp9.lean.js b/previews/PR238/assets/source_methods_distance.md.CVMqDjx5.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_distance.md.BuLlEwp9.lean.js
    rename to previews/PR238/assets/source_methods_distance.md.CVMqDjx5.lean.js
    index 9d41ad17a..bc9c14b5f 100644
    --- a/previews/PR238/assets/source_methods_distance.md.BuLlEwp9.lean.js
    +++ b/previews/PR238/assets/source_methods_distance.md.CVMqDjx5.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/eiqhwxi.DiwGEg2f.png",k="/GeometryOps.jl/previews/PR238/assets/osxbqkq.DuBHk1fh.png",F=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),p={name:"source/methods/distance.md"};function l(e,s,d,E,r,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Distance and signed distance

    julia
    export distance, signed_distance

    What is distance? What is signed distance?

    Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be positive or 0.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/kvtkfdl.DiwGEg2f.png",k="/GeometryOps.jl/previews/PR238/assets/hlbmezo.DuBHk1fh.png",F=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),p={name:"source/methods/distance.md"};function l(e,s,d,E,r,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Distance and signed distance

    julia
    export distance, signed_distance

    What is distance? What is signed distance?

    Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be positive or 0.

    To provide an example, consider this rectangle:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_equals.md.CQYqwJi6.js b/previews/PR238/assets/source_methods_equals.md.CgqJun80.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_equals.md.CQYqwJi6.js
    rename to previews/PR238/assets/source_methods_equals.md.CgqJun80.js
    index bab4b620c..d0dcf9570 100644
    --- a/previews/PR238/assets/source_methods_equals.md.CQYqwJi6.js
    +++ b/previews/PR238/assets/source_methods_equals.md.CgqJun80.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/oynuazh.CgiryX2p.png",F=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),p={name:"source/methods/equals.md"};function h(k,s,e,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

    Equals

    julia
    export equals

    What is equals?

    The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/czijwjc.CgiryX2p.png",F=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),p={name:"source/methods/equals.md"};function h(k,s,e,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

    Equals

    julia
    export equals

    What is equals?

    The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_equals.md.CQYqwJi6.lean.js b/previews/PR238/assets/source_methods_equals.md.CgqJun80.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_equals.md.CQYqwJi6.lean.js
    rename to previews/PR238/assets/source_methods_equals.md.CgqJun80.lean.js
    index bab4b620c..d0dcf9570 100644
    --- a/previews/PR238/assets/source_methods_equals.md.CQYqwJi6.lean.js
    +++ b/previews/PR238/assets/source_methods_equals.md.CgqJun80.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/oynuazh.CgiryX2p.png",F=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),p={name:"source/methods/equals.md"};function h(k,s,e,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

    Equals

    julia
    export equals

    What is equals?

    The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/czijwjc.CgiryX2p.png",F=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),p={name:"source/methods/equals.md"};function h(k,s,e,r,d,g){return l(),a("div",null,s[0]||(s[0]=[n(`

    Equals

    julia
    export equals

    What is equals?

    The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_contains.md.8_K3j1rE.js b/previews/PR238/assets/source_methods_geom_relations_contains.md.CPKJZ7bw.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_contains.md.8_K3j1rE.js
    rename to previews/PR238/assets/source_methods_geom_relations_contains.md.CPKJZ7bw.js
    index 68d544269..5ed61cfd0 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_contains.md.8_K3j1rE.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_contains.md.CPKJZ7bw.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const e="/GeometryOps.jl/previews/PR238/assets/cppbtsk._0R9BbFk.png",E=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/contains.md"};function l(p,s,k,r,o,d){return t(),a("div",null,s[0]||(s[0]=[n(`

    Contains

    julia
    export contains

    What is contains?

    The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const e="/GeometryOps.jl/previews/PR238/assets/hgskvzv._0R9BbFk.png",E=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/contains.md"};function l(p,s,k,r,o,d){return t(),a("div",null,s[0]||(s[0]=[n(`

    Contains

    julia
    export contains

    What is contains?

    The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_contains.md.8_K3j1rE.lean.js b/previews/PR238/assets/source_methods_geom_relations_contains.md.CPKJZ7bw.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_contains.md.8_K3j1rE.lean.js
    rename to previews/PR238/assets/source_methods_geom_relations_contains.md.CPKJZ7bw.lean.js
    index 68d544269..5ed61cfd0 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_contains.md.8_K3j1rE.lean.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_contains.md.CPKJZ7bw.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const e="/GeometryOps.jl/previews/PR238/assets/cppbtsk._0R9BbFk.png",E=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/contains.md"};function l(p,s,k,r,o,d){return t(),a("div",null,s[0]||(s[0]=[n(`

    Contains

    julia
    export contains

    What is contains?

    The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const e="/GeometryOps.jl/previews/PR238/assets/hgskvzv._0R9BbFk.png",E=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/contains.md"};function l(p,s,k,r,o,d){return t(),a("div",null,s[0]||(s[0]=[n(`

    Contains

    julia
    export contains

    What is contains?

    The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_coveredby.md.BmZEzXXT.js b/previews/PR238/assets/source_methods_geom_relations_coveredby.md.Bu438YZs.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_coveredby.md.BmZEzXXT.js
    rename to previews/PR238/assets/source_methods_geom_relations_coveredby.md.Bu438YZs.js
    index 72088c05d..23627ab42 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_coveredby.md.BmZEzXXT.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_coveredby.md.Bu438YZs.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as e}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/wjkuxmh.DC3TvBOO.png",o=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/coveredby.md"};function t(p,s,k,r,E,d){return e(),a("div",null,s[0]||(s[0]=[n(`

    CoveredBy

    julia
    export coveredby

    What is coveredby?

    The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

    To provide an example, consider this point and line:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as e}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/cnioidk.DC3TvBOO.png",o=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/coveredby.md"};function t(p,s,k,r,E,d){return e(),a("div",null,s[0]||(s[0]=[n(`

    CoveredBy

    julia
    export coveredby

    What is coveredby?

    The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

    To provide an example, consider this point and line:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_coveredby.md.BmZEzXXT.lean.js b/previews/PR238/assets/source_methods_geom_relations_coveredby.md.Bu438YZs.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_coveredby.md.BmZEzXXT.lean.js
    rename to previews/PR238/assets/source_methods_geom_relations_coveredby.md.Bu438YZs.lean.js
    index 72088c05d..23627ab42 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_coveredby.md.BmZEzXXT.lean.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_coveredby.md.Bu438YZs.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as e}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/wjkuxmh.DC3TvBOO.png",o=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/coveredby.md"};function t(p,s,k,r,E,d){return e(),a("div",null,s[0]||(s[0]=[n(`

    CoveredBy

    julia
    export coveredby

    What is coveredby?

    The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

    To provide an example, consider this point and line:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as e}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/cnioidk.DC3TvBOO.png",o=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/coveredby.md"};function t(p,s,k,r,E,d){return e(),a("div",null,s[0]||(s[0]=[n(`

    CoveredBy

    julia
    export coveredby

    What is coveredby?

    The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

    To provide an example, consider this point and line:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_covers.md.CgxV2GZS.js b/previews/PR238/assets/source_methods_geom_relations_covers.md.BdZW6XW5.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_covers.md.CgxV2GZS.js
    rename to previews/PR238/assets/source_methods_geom_relations_covers.md.BdZW6XW5.js
    index 5d40cbf4d..a22881841 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_covers.md.CgxV2GZS.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_covers.md.BdZW6XW5.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/wjkuxmh.DC3TvBOO.png",g=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/covers.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

    Covers

    julia
    export covers

    What is covers?

    The covers function checks if a given geometry completely covers another geometry. For this to be true, the "contained" geometry's interior and boundaries must be covered by the "covering" geometry's interior and boundaries. The interiors do not need to overlap.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/cnioidk.DC3TvBOO.png",g=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/covers.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

    Covers

    julia
    export covers

    What is covers?

    The covers function checks if a given geometry completely covers another geometry. For this to be true, the "contained" geometry's interior and boundaries must be covered by the "covering" geometry's interior and boundaries. The interiors do not need to overlap.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_covers.md.CgxV2GZS.lean.js b/previews/PR238/assets/source_methods_geom_relations_covers.md.BdZW6XW5.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_covers.md.CgxV2GZS.lean.js
    rename to previews/PR238/assets/source_methods_geom_relations_covers.md.BdZW6XW5.lean.js
    index 5d40cbf4d..a22881841 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_covers.md.CgxV2GZS.lean.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_covers.md.BdZW6XW5.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/wjkuxmh.DC3TvBOO.png",g=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/covers.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

    Covers

    julia
    export covers

    What is covers?

    The covers function checks if a given geometry completely covers another geometry. For this to be true, the "contained" geometry's interior and boundaries must be covered by the "covering" geometry's interior and boundaries. The interiors do not need to overlap.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/cnioidk.DC3TvBOO.png",g=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/covers.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

    Covers

    julia
    export covers

    What is covers?

    The covers function checks if a given geometry completely covers another geometry. For this to be true, the "contained" geometry's interior and boundaries must be covered by the "covering" geometry's interior and boundaries. The interiors do not need to overlap.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_disjoint.md.B0CCPLEP.js b/previews/PR238/assets/source_methods_geom_relations_disjoint.md.Di-QgxVW.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_disjoint.md.B0CCPLEP.js
    rename to previews/PR238/assets/source_methods_geom_relations_disjoint.md.Di-QgxVW.js
    index 1025e17e7..766672c91 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_disjoint.md.B0CCPLEP.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_disjoint.md.Di-QgxVW.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/euucnpi.C3SxJ3x-.png",o=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/disjoint.md"};function p(k,s,e,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

    Disjoint

    julia
    export disjoint

    What is disjoint?

    The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/nbwwrdy.C3SxJ3x-.png",o=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/disjoint.md"};function p(k,s,e,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

    Disjoint

    julia
    export disjoint

    What is disjoint?

    The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_disjoint.md.B0CCPLEP.lean.js b/previews/PR238/assets/source_methods_geom_relations_disjoint.md.Di-QgxVW.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_disjoint.md.B0CCPLEP.lean.js
    rename to previews/PR238/assets/source_methods_geom_relations_disjoint.md.Di-QgxVW.lean.js
    index 1025e17e7..766672c91 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_disjoint.md.B0CCPLEP.lean.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_disjoint.md.Di-QgxVW.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/euucnpi.C3SxJ3x-.png",o=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/disjoint.md"};function p(k,s,e,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

    Disjoint

    julia
    export disjoint

    What is disjoint?

    The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/nbwwrdy.C3SxJ3x-.png",o=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/disjoint.md"};function p(k,s,e,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

    Disjoint

    julia
    export disjoint

    What is disjoint?

    The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_intersects.md.CHxhFqD_.js b/previews/PR238/assets/source_methods_geom_relations_intersects.md.DW3h6fuT.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_intersects.md.CHxhFqD_.js
    rename to previews/PR238/assets/source_methods_geom_relations_intersects.md.DW3h6fuT.js
    index 8254466e9..da92d4413 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_intersects.md.CHxhFqD_.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_intersects.md.DW3h6fuT.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/zprlmze.DeeQUply.png",g=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/intersects.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

    Intersection checks

    julia
    export intersects

    What is intersects?

    The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/fsrdwjj.DeeQUply.png",g=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/intersects.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

    Intersection checks

    julia
    export intersects

    What is intersects?

    The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_intersects.md.CHxhFqD_.lean.js b/previews/PR238/assets/source_methods_geom_relations_intersects.md.DW3h6fuT.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_intersects.md.CHxhFqD_.lean.js
    rename to previews/PR238/assets/source_methods_geom_relations_intersects.md.DW3h6fuT.lean.js
    index 8254466e9..da92d4413 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_intersects.md.CHxhFqD_.lean.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_intersects.md.DW3h6fuT.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/zprlmze.DeeQUply.png",g=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/intersects.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

    Intersection checks

    julia
    export intersects

    What is intersects?

    The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as e,o as n}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/fsrdwjj.DeeQUply.png",g=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/intersects.md"};function l(h,s,k,r,o,d){return n(),a("div",null,s[0]||(s[0]=[e(`

    Intersection checks

    julia
    export intersects

    What is intersects?

    The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_overlaps.md.CA5EtZc5.js b/previews/PR238/assets/source_methods_geom_relations_overlaps.md.DFiMjrKk.js
    similarity index 86%
    rename from previews/PR238/assets/source_methods_geom_relations_overlaps.md.CA5EtZc5.js
    rename to previews/PR238/assets/source_methods_geom_relations_overlaps.md.DFiMjrKk.js
    index 60651127f..ecbdd2df0 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_overlaps.md.CA5EtZc5.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_overlaps.md.DFiMjrKk.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/oynuazh.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"};function t(k,s,e,r,E,d){return l(),a("div",null,s[0]||(s[0]=[n(`

    Overlaps

    julia
    export overlaps

    What is overlaps?

    The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

    Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is collinear.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/czijwjc.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"};function t(k,s,e,r,E,d){return l(),a("div",null,s[0]||(s[0]=[n(`

    Overlaps

    julia
    export overlaps

    What is overlaps?

    The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

    Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is collinear.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    @@ -88,54 +88,17 @@ import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const h
     outside of the other line, return true. Else false.
     """
     overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line) =
    -    _overlaps((a1, a2), (b1, b2))
    -
    -"""
    -    overlaps(
    -        ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
    -        ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
    -    )::Bool
    -
    -If the curves overlap, meaning that at least one edge of each curve overlaps,
    -return true. Else false.
    -"""
    -function overlaps(
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line1,
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line2,
    -)
    -    return !equals(line1, line2) && _line_curve_process(
    -        line1, line2;
    -        OVERLAPS_CURVE_ALLOWS...,
    -        OVERLAPS_REQUIRES...,
    -        OVERLAPS_EXACT...,
    -        closed_line = false,
    -        closed_curve = false,
    -    )
    -end
    -
    -function overlaps(
    -    ::GI.LinearRingTrait, ring1,
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line2,
    +    _overlaps((a1, a2), (b1, b2))

    The code below is more robust, but fails when a linestring is contained within another linestring. TODO: make this work better, maybe with full de9im support... """ overlaps( ::Union{GI.LineStringTrait, GI.LinearRing}, line1, ::Union{GI.LineStringTrait, GI.LinearRing}, line2, )::Bool

    If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false. """ function overlaps( ::Union{GI.LineStringTrait, GI.LineTrait}, line1, ::Union{GI.LineStringTrait, GI.LineTrait}, line2, ) return !equals(line1, line2) && _line_curve_process( line1, line2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT..., closed_line = false, closed_curve = false, ) end

    function overlaps( ::GI.LinearRingTrait, ring1, ::Union{GI.LineStringTrait, GI.LineTrait}, line2, ) return !equals(ring1, line2) && _line_curve_process( ring1, line2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT..., closed_line = true, closed_curve = false, ) end

    function overlaps( ::Union{GI.LineStringTrait, GI.LineTrait}, line1, ::GI.LinearRingTrait, ring2, ) return !equals(line1, ring2) && _line_curve_process( line1, ring2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT..., closed_line = false, closed_curve = true, ) end This is the old code which was previously working.

    julia
    function overlaps(
    +    ::Union{GI.LineStringTrait, GI.LinearRingTrait}, line1,
    +    ::Union{GI.LineStringTrait, GI.LinearRingTrait}, line2,
     )
    -    return  !equals(ring1, line2) && _line_curve_process(
    -        ring1, line2;
    -        OVERLAPS_CURVE_ALLOWS...,
    -        OVERLAPS_REQUIRES...,
    -        OVERLAPS_EXACT...,
    -        closed_line = true,
    -        closed_curve = false,
    -    )
    -end
    -
    -function overlaps(
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line1,
    -    ::GI.LinearRingTrait, ring2,
    -)
    -    return !equals(line1, ring2) && _line_curve_process(
    -        line1, ring2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT...,
    -        closed_line = false,
    -        closed_curve = true,
    -    )
    +    edges_a, edges_b = map(sort!  to_edges, (line1, line2))
    +    for edge_a in edges_a
    +        for edge_b in edges_b
    +            _overlaps(edge_a, edge_b) && return true
    +        end
    +    end
    +    return false
     end
     
     function overlaps(
    @@ -241,4 +204,4 @@ import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const h
     end

    Returns true if there is at least one intersection between two edges.

    julia
    function _line_intersects(edge_a::Edge, edge_b::Edge)
         seg_val, _, _ = _intersection_point(Float64, edge_a, edge_b; exact = _False())
         return seg_val != line_out
    -end

    This page was generated using Literate.jl.

    `,39)]))}const F=i(p,[["render",t]]);export{y as __pageData,F as default}; +end

    This page was generated using Literate.jl.

    `,44)]))}const o=i(p,[["render",t]]);export{y as __pageData,o as default}; diff --git a/previews/PR238/assets/source_methods_geom_relations_overlaps.md.CA5EtZc5.lean.js b/previews/PR238/assets/source_methods_geom_relations_overlaps.md.DFiMjrKk.lean.js similarity index 86% rename from previews/PR238/assets/source_methods_geom_relations_overlaps.md.CA5EtZc5.lean.js rename to previews/PR238/assets/source_methods_geom_relations_overlaps.md.DFiMjrKk.lean.js index 60651127f..ecbdd2df0 100644 --- a/previews/PR238/assets/source_methods_geom_relations_overlaps.md.CA5EtZc5.lean.js +++ b/previews/PR238/assets/source_methods_geom_relations_overlaps.md.DFiMjrKk.lean.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/oynuazh.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"};function t(k,s,e,r,E,d){return l(),a("div",null,s[0]||(s[0]=[n(`

    Overlaps

    julia
    export overlaps

    What is overlaps?

    The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

    Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is collinear.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/czijwjc.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"};function t(k,s,e,r,E,d){return l(),a("div",null,s[0]||(s[0]=[n(`

    Overlaps

    julia
    export overlaps

    What is overlaps?

    The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

    Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is collinear.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    @@ -88,54 +88,17 @@ import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const h
     outside of the other line, return true. Else false.
     """
     overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line) =
    -    _overlaps((a1, a2), (b1, b2))
    -
    -"""
    -    overlaps(
    -        ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
    -        ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
    -    )::Bool
    -
    -If the curves overlap, meaning that at least one edge of each curve overlaps,
    -return true. Else false.
    -"""
    -function overlaps(
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line1,
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line2,
    -)
    -    return !equals(line1, line2) && _line_curve_process(
    -        line1, line2;
    -        OVERLAPS_CURVE_ALLOWS...,
    -        OVERLAPS_REQUIRES...,
    -        OVERLAPS_EXACT...,
    -        closed_line = false,
    -        closed_curve = false,
    -    )
    -end
    -
    -function overlaps(
    -    ::GI.LinearRingTrait, ring1,
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line2,
    +    _overlaps((a1, a2), (b1, b2))

    The code below is more robust, but fails when a linestring is contained within another linestring. TODO: make this work better, maybe with full de9im support... """ overlaps( ::Union{GI.LineStringTrait, GI.LinearRing}, line1, ::Union{GI.LineStringTrait, GI.LinearRing}, line2, )::Bool

    If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false. """ function overlaps( ::Union{GI.LineStringTrait, GI.LineTrait}, line1, ::Union{GI.LineStringTrait, GI.LineTrait}, line2, ) return !equals(line1, line2) && _line_curve_process( line1, line2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT..., closed_line = false, closed_curve = false, ) end

    function overlaps( ::GI.LinearRingTrait, ring1, ::Union{GI.LineStringTrait, GI.LineTrait}, line2, ) return !equals(ring1, line2) && _line_curve_process( ring1, line2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT..., closed_line = true, closed_curve = false, ) end

    function overlaps( ::Union{GI.LineStringTrait, GI.LineTrait}, line1, ::GI.LinearRingTrait, ring2, ) return !equals(line1, ring2) && _line_curve_process( line1, ring2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT..., closed_line = false, closed_curve = true, ) end This is the old code which was previously working.

    julia
    function overlaps(
    +    ::Union{GI.LineStringTrait, GI.LinearRingTrait}, line1,
    +    ::Union{GI.LineStringTrait, GI.LinearRingTrait}, line2,
     )
    -    return  !equals(ring1, line2) && _line_curve_process(
    -        ring1, line2;
    -        OVERLAPS_CURVE_ALLOWS...,
    -        OVERLAPS_REQUIRES...,
    -        OVERLAPS_EXACT...,
    -        closed_line = true,
    -        closed_curve = false,
    -    )
    -end
    -
    -function overlaps(
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line1,
    -    ::GI.LinearRingTrait, ring2,
    -)
    -    return !equals(line1, ring2) && _line_curve_process(
    -        line1, ring2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT...,
    -        closed_line = false,
    -        closed_curve = true,
    -    )
    +    edges_a, edges_b = map(sort!  to_edges, (line1, line2))
    +    for edge_a in edges_a
    +        for edge_b in edges_b
    +            _overlaps(edge_a, edge_b) && return true
    +        end
    +    end
    +    return false
     end
     
     function overlaps(
    @@ -241,4 +204,4 @@ import{_ as i,c as a,a5 as n,o as l}from"./chunks/framework.Bkt_v4A4.js";const h
     end

    Returns true if there is at least one intersection between two edges.

    julia
    function _line_intersects(edge_a::Edge, edge_b::Edge)
         seg_val, _, _ = _intersection_point(Float64, edge_a, edge_b; exact = _False())
         return seg_val != line_out
    -end

    This page was generated using Literate.jl.

    `,39)]))}const F=i(p,[["render",t]]);export{y as __pageData,F as default}; +end

    This page was generated using Literate.jl.

    `,44)]))}const o=i(p,[["render",t]]);export{y as __pageData,o as default}; diff --git a/previews/PR238/assets/source_methods_geom_relations_touches.md.C-hkkD6y.js b/previews/PR238/assets/source_methods_geom_relations_touches.md.DCOHUOGJ.js similarity index 99% rename from previews/PR238/assets/source_methods_geom_relations_touches.md.C-hkkD6y.js rename to previews/PR238/assets/source_methods_geom_relations_touches.md.DCOHUOGJ.js index 4fae545cd..2738a04dd 100644 --- a/previews/PR238/assets/source_methods_geom_relations_touches.md.C-hkkD6y.js +++ b/previews/PR238/assets/source_methods_geom_relations_touches.md.DCOHUOGJ.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/nefnrcg.BEFUMtlf.png",o=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/touches.md"};function e(p,s,k,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

    Touches

    julia
    export touches

    What is touches?

    The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/ysbkgcq.BEFUMtlf.png",o=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/touches.md"};function e(p,s,k,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

    Touches

    julia
    export touches

    What is touches?

    The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_touches.md.C-hkkD6y.lean.js b/previews/PR238/assets/source_methods_geom_relations_touches.md.DCOHUOGJ.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_touches.md.C-hkkD6y.lean.js
    rename to previews/PR238/assets/source_methods_geom_relations_touches.md.DCOHUOGJ.lean.js
    index 4fae545cd..2738a04dd 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_touches.md.C-hkkD6y.lean.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_touches.md.DCOHUOGJ.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/nefnrcg.BEFUMtlf.png",o=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/touches.md"};function e(p,s,k,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

    Touches

    julia
    export touches

    What is touches?

    The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as t}from"./chunks/framework.Bkt_v4A4.js";const h="/GeometryOps.jl/previews/PR238/assets/ysbkgcq.BEFUMtlf.png",o=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/touches.md"};function e(p,s,k,r,E,g){return t(),a("div",null,s[0]||(s[0]=[n(`

    Touches

    julia
    export touches

    What is touches?

    The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_within.md.OUFUC9ym.js b/previews/PR238/assets/source_methods_geom_relations_within.md.DW6O5MaM.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_within.md.OUFUC9ym.js
    rename to previews/PR238/assets/source_methods_geom_relations_within.md.DW6O5MaM.js
    index 59f3e60d2..22f6911e4 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_within.md.OUFUC9ym.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_within.md.DW6O5MaM.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/cppbtsk._0R9BbFk.png",o=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/within.md"};function e(p,s,k,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Within

    julia
    export within

    What is within?

    The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/hgskvzv._0R9BbFk.png",o=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/within.md"};function e(p,s,k,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Within

    julia
    export within

    What is within?

    The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_methods_geom_relations_within.md.OUFUC9ym.lean.js b/previews/PR238/assets/source_methods_geom_relations_within.md.DW6O5MaM.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_methods_geom_relations_within.md.OUFUC9ym.lean.js
    rename to previews/PR238/assets/source_methods_geom_relations_within.md.DW6O5MaM.lean.js
    index 59f3e60d2..22f6911e4 100644
    --- a/previews/PR238/assets/source_methods_geom_relations_within.md.OUFUC9ym.lean.js
    +++ b/previews/PR238/assets/source_methods_geom_relations_within.md.DW6O5MaM.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/cppbtsk._0R9BbFk.png",o=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/within.md"};function e(p,s,k,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Within

    julia
    export within

    What is within?

    The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/hgskvzv._0R9BbFk.png",o=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/within.md"};function e(p,s,k,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Within

    julia
    export within

    What is within?

    The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

    To provide an example, consider these two lines:

    julia
    import GeometryOps as GO
     import GeoInterface as GI
     using Makie
     using CairoMakie
    diff --git a/previews/PR238/assets/source_not_implemented_yet.md.B4PawMww.js b/previews/PR238/assets/source_not_implemented_yet.md.B4PawMww.js
    deleted file mode 100644
    index d02ec3001..000000000
    --- a/previews/PR238/assets/source_not_implemented_yet.md.B4PawMww.js
    +++ /dev/null
    @@ -1,4 +0,0 @@
    -import{_ as i,c as t,a5 as s,o as a}from"./chunks/framework.Bkt_v4A4.js";const k=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),n={name:"source/not_implemented_yet.md"};function l(p,e,h,o,r,d){return a(),t("div",null,e[0]||(e[0]=[s(`

    Not implemented yet

    All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

    julia
    function symdifference end
    -function buffer end
    -function convexhull end
    -function concavehull end

    This page was generated using Literate.jl.

    `,5)]))}const c=i(n,[["render",l]]);export{k as __pageData,c as default}; diff --git a/previews/PR238/assets/source_not_implemented_yet.md.B4PawMww.lean.js b/previews/PR238/assets/source_not_implemented_yet.md.B4PawMww.lean.js deleted file mode 100644 index d02ec3001..000000000 --- a/previews/PR238/assets/source_not_implemented_yet.md.B4PawMww.lean.js +++ /dev/null @@ -1,4 +0,0 @@ -import{_ as i,c as t,a5 as s,o as a}from"./chunks/framework.Bkt_v4A4.js";const k=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),n={name:"source/not_implemented_yet.md"};function l(p,e,h,o,r,d){return a(),t("div",null,e[0]||(e[0]=[s(`

    Not implemented yet

    All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

    julia
    function symdifference end
    -function buffer end
    -function convexhull end
    -function concavehull end

    This page was generated using Literate.jl.

    `,5)]))}const c=i(n,[["render",l]]);export{k as __pageData,c as default}; diff --git a/previews/PR238/assets/source_not_implemented_yet.md.iNF0IoqE.js b/previews/PR238/assets/source_not_implemented_yet.md.iNF0IoqE.js new file mode 100644 index 000000000..32c5add16 --- /dev/null +++ b/previews/PR238/assets/source_not_implemented_yet.md.iNF0IoqE.js @@ -0,0 +1 @@ +import{_ as t,c as i,a5 as a,o as n}from"./chunks/framework.Bkt_v4A4.js";const c=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),s={name:"source/not_implemented_yet.md"};function l(o,e,r,p,m,d){return n(),i("div",null,e[0]||(e[0]=[a('

    Not implemented yet

    All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

    julia
    function symdifference end

    This page was generated using Literate.jl.

    ',5)]))}const u=t(s,[["render",l]]);export{c as __pageData,u as default}; diff --git a/previews/PR238/assets/source_not_implemented_yet.md.iNF0IoqE.lean.js b/previews/PR238/assets/source_not_implemented_yet.md.iNF0IoqE.lean.js new file mode 100644 index 000000000..32c5add16 --- /dev/null +++ b/previews/PR238/assets/source_not_implemented_yet.md.iNF0IoqE.lean.js @@ -0,0 +1 @@ +import{_ as t,c as i,a5 as a,o as n}from"./chunks/framework.Bkt_v4A4.js";const c=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),s={name:"source/not_implemented_yet.md"};function l(o,e,r,p,m,d){return n(),i("div",null,e[0]||(e[0]=[a('

    Not implemented yet

    All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

    julia
    function symdifference end

    This page was generated using Literate.jl.

    ',5)]))}const u=t(s,[["render",l]]);export{c as __pageData,u as default}; diff --git a/previews/PR238/assets/source_src_apply.md.BuwZgrvB.js b/previews/PR238/assets/source_src_apply.md.wwJRCjFI.js similarity index 99% rename from previews/PR238/assets/source_src_apply.md.BuwZgrvB.js rename to previews/PR238/assets/source_src_apply.md.wwJRCjFI.js index 056e7be71..18bfb3d71 100644 --- a/previews/PR238/assets/source_src_apply.md.BuwZgrvB.js +++ b/previews/PR238/assets/source_src_apply.md.wwJRCjFI.js @@ -5,7 +5,7 @@ import{_ as h,c as l,a5 as a,j as i,a as t,G as n,B as p,o as k}from"./chunks/fr flipped_geom = GO.apply(GI.PointTrait, geom) do p (GI.y(p), GI.x(p)) -end

    source

    `,10))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.applyreduce-source-src-apply",href:"#GeometryOpsCore.applyreduce-source-src-apply"},[i("span",{class:"jlbinding"},"GeometryOpsCore.applyreduce")],-1)),s[4]||(s[4]=t()),n(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a('
    julia
    applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

    Apply function f to all objects with the target trait, and reduce the result with an op like +.

    The order and grouping of application of op is not guaranteed.

    If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

    source

    ',5))]),s[7]||(s[7]=a(`

    What is apply?

    apply applies some function to every geometry matching the Target GeoInterface trait, in some arbitrarily nested object made up of:

    • AbstractArrays (we also try to iterate other non-GeoInteface compatible object)

    • FeatureCollectionTrait objects

    • FeatureTrait objects

    • AbstractGeometryTrait objects

    apply recursively calls itself through these nested layers until it reaches objects with the Target GeoInterface trait. When found apply applies the function f, and stops.

    The outer recursive functions then progressively rebuild the object using GeoInterface objects matching the original traits.

    If PointTrait is found but it is not the Target, an error is thrown. This likely means the object contains a different geometry trait to the target, such as MultiPointTrait when LineStringTrait was specified.

    To handle this possibility it may be necessary to make Target a Union of traits found at the same level of nesting, and define methods of f to handle all cases.

    Be careful making a union across "levels" of nesting, e.g. Union{FeatureTrait,PolygonTrait}, as _apply will just never reach PolygonTrait when all the polygons are wrapped in a FeatureTrait object.

    Embedding:

    extent and crs can be embedded in all geometries, features, and feature collections as part of apply. Geometries deeper than Target will of course not have new extent or crs embedded.

    • calc_extent signals to recalculate an Extent and embed it.

    • crs will be embedded as-is

    Threading

    Threading is used at the outermost level possible - over an array, feature collection, or e.g. a MultiPolygonTrait where each PolygonTrait sub-geometry may be calculated on a different thread.

    Currently, threading defaults to false for all objects, but can be turned on by passing the keyword argument threaded=true to apply.

    julia
    """
    +end

    source

    `,10))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.applyreduce-source-src-apply",href:"#GeometryOpsCore.applyreduce-source-src-apply"},[i("span",{class:"jlbinding"},"GeometryOpsCore.applyreduce")],-1)),s[4]||(s[4]=t()),n(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a('
    julia
    applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

    Apply function f to all objects with the target trait, and reduce the result with an op like +.

    The order and grouping of application of op is not guaranteed.

    If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

    source

    ',5))]),s[7]||(s[7]=a(`

    What is apply?

    apply applies some function to every geometry matching the Target GeoInterface trait, in some arbitrarily nested object made up of:

    • AbstractArrays (we also try to iterate other non-GeoInteface compatible object)

    • FeatureCollectionTrait objects

    • FeatureTrait objects

    • AbstractGeometryTrait objects

    apply recursively calls itself through these nested layers until it reaches objects with the Target GeoInterface trait. When found apply applies the function f, and stops.

    The outer recursive functions then progressively rebuild the object using GeoInterface objects matching the original traits.

    If PointTrait is found but it is not the Target, an error is thrown. This likely means the object contains a different geometry trait to the target, such as MultiPointTrait when LineStringTrait was specified.

    To handle this possibility it may be necessary to make Target a Union of traits found at the same level of nesting, and define methods of f to handle all cases.

    Be careful making a union across "levels" of nesting, e.g. Union{FeatureTrait,PolygonTrait}, as _apply will just never reach PolygonTrait when all the polygons are wrapped in a FeatureTrait object.

    Embedding:

    extent and crs can be embedded in all geometries, features, and feature collections as part of apply. Geometries deeper than Target will of course not have new extent or crs embedded.

    • calc_extent signals to recalculate an Extent and embed it.

    • crs will be embedded as-is

    Threading

    Threading is used at the outermost level possible - over an array, feature collection, or e.g. a MultiPolygonTrait where each PolygonTrait sub-geometry may be calculated on a different thread.

    Currently, threading defaults to false for all objects, but can be turned on by passing the keyword argument threaded=true to apply.

    julia
    """
         apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)
     
     Reconstruct a geometry, feature, feature collection, or nested vectors of
    diff --git a/previews/PR238/assets/source_src_apply.md.BuwZgrvB.lean.js b/previews/PR238/assets/source_src_apply.md.wwJRCjFI.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_src_apply.md.BuwZgrvB.lean.js
    rename to previews/PR238/assets/source_src_apply.md.wwJRCjFI.lean.js
    index 056e7be71..18bfb3d71 100644
    --- a/previews/PR238/assets/source_src_apply.md.BuwZgrvB.lean.js
    +++ b/previews/PR238/assets/source_src_apply.md.wwJRCjFI.lean.js
    @@ -5,7 +5,7 @@ import{_ as h,c as l,a5 as a,j as i,a as t,G as n,B as p,o as k}from"./chunks/fr
     
     flipped_geom = GO.apply(GI.PointTrait, geom) do p
         (GI.y(p), GI.x(p))
    -end

    source

    `,10))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.applyreduce-source-src-apply",href:"#GeometryOpsCore.applyreduce-source-src-apply"},[i("span",{class:"jlbinding"},"GeometryOpsCore.applyreduce")],-1)),s[4]||(s[4]=t()),n(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a('
    julia
    applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

    Apply function f to all objects with the target trait, and reduce the result with an op like +.

    The order and grouping of application of op is not guaranteed.

    If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

    source

    ',5))]),s[7]||(s[7]=a(`

    What is apply?

    apply applies some function to every geometry matching the Target GeoInterface trait, in some arbitrarily nested object made up of:

    • AbstractArrays (we also try to iterate other non-GeoInteface compatible object)

    • FeatureCollectionTrait objects

    • FeatureTrait objects

    • AbstractGeometryTrait objects

    apply recursively calls itself through these nested layers until it reaches objects with the Target GeoInterface trait. When found apply applies the function f, and stops.

    The outer recursive functions then progressively rebuild the object using GeoInterface objects matching the original traits.

    If PointTrait is found but it is not the Target, an error is thrown. This likely means the object contains a different geometry trait to the target, such as MultiPointTrait when LineStringTrait was specified.

    To handle this possibility it may be necessary to make Target a Union of traits found at the same level of nesting, and define methods of f to handle all cases.

    Be careful making a union across "levels" of nesting, e.g. Union{FeatureTrait,PolygonTrait}, as _apply will just never reach PolygonTrait when all the polygons are wrapped in a FeatureTrait object.

    Embedding:

    extent and crs can be embedded in all geometries, features, and feature collections as part of apply. Geometries deeper than Target will of course not have new extent or crs embedded.

    • calc_extent signals to recalculate an Extent and embed it.

    • crs will be embedded as-is

    Threading

    Threading is used at the outermost level possible - over an array, feature collection, or e.g. a MultiPolygonTrait where each PolygonTrait sub-geometry may be calculated on a different thread.

    Currently, threading defaults to false for all objects, but can be turned on by passing the keyword argument threaded=true to apply.

    julia
    """
    +end

    source

    `,10))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.applyreduce-source-src-apply",href:"#GeometryOpsCore.applyreduce-source-src-apply"},[i("span",{class:"jlbinding"},"GeometryOpsCore.applyreduce")],-1)),s[4]||(s[4]=t()),n(e,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a('
    julia
    applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

    Apply function f to all objects with the target trait, and reduce the result with an op like +.

    The order and grouping of application of op is not guaranteed.

    If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

    source

    ',5))]),s[7]||(s[7]=a(`

    What is apply?

    apply applies some function to every geometry matching the Target GeoInterface trait, in some arbitrarily nested object made up of:

    • AbstractArrays (we also try to iterate other non-GeoInteface compatible object)

    • FeatureCollectionTrait objects

    • FeatureTrait objects

    • AbstractGeometryTrait objects

    apply recursively calls itself through these nested layers until it reaches objects with the Target GeoInterface trait. When found apply applies the function f, and stops.

    The outer recursive functions then progressively rebuild the object using GeoInterface objects matching the original traits.

    If PointTrait is found but it is not the Target, an error is thrown. This likely means the object contains a different geometry trait to the target, such as MultiPointTrait when LineStringTrait was specified.

    To handle this possibility it may be necessary to make Target a Union of traits found at the same level of nesting, and define methods of f to handle all cases.

    Be careful making a union across "levels" of nesting, e.g. Union{FeatureTrait,PolygonTrait}, as _apply will just never reach PolygonTrait when all the polygons are wrapped in a FeatureTrait object.

    Embedding:

    extent and crs can be embedded in all geometries, features, and feature collections as part of apply. Geometries deeper than Target will of course not have new extent or crs embedded.

    • calc_extent signals to recalculate an Extent and embed it.

    • crs will be embedded as-is

    Threading

    Threading is used at the outermost level possible - over an array, feature collection, or e.g. a MultiPolygonTrait where each PolygonTrait sub-geometry may be calculated on a different thread.

    Currently, threading defaults to false for all objects, but can be turned on by passing the keyword argument threaded=true to apply.

    julia
    """
         apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)
     
     Reconstruct a geometry, feature, feature collection, or nested vectors of
    diff --git a/previews/PR238/assets/source_src_other_primitives.md.CclyXPRq.js b/previews/PR238/assets/source_src_other_primitives.md.DuzRAPMQ.js
    similarity index 99%
    rename from previews/PR238/assets/source_src_other_primitives.md.CclyXPRq.js
    rename to previews/PR238/assets/source_src_other_primitives.md.DuzRAPMQ.js
    index 5e431d6da..500965cb7 100644
    --- a/previews/PR238/assets/source_src_other_primitives.md.CclyXPRq.js
    +++ b/previews/PR238/assets/source_src_other_primitives.md.DuzRAPMQ.js
    @@ -1,6 +1,6 @@
    -import{_ as e,c as p,j as i,a,G as h,a5 as t,B as l,o as k}from"./chunks/framework.Bkt_v4A4.js";const f=JSON.parse('{"title":"Other primitives (unwrap, flatten, etc)","description":"","frontmatter":{},"headers":[],"relativePath":"source/src/other_primitives.md","filePath":"source/src/other_primitives.md","lastUpdated":null}'),r={name:"source/src/other_primitives.md"},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""};function o(F,s,c,C,u,m){const n=l("Badge");return k(),p("div",null,[s[12]||(s[12]=i("h1",{id:"Other-primitives-(unwrap,-flatten,-etc)",tabindex:"-1"},[a("Other primitives (unwrap, flatten, etc) "),i("a",{class:"header-anchor",href:"#Other-primitives-(unwrap,-flatten,-etc)","aria-label":'Permalink to "Other primitives (unwrap, flatten, etc) {#Other-primitives-(unwrap,-flatten,-etc)}"'},"​")],-1)),s[13]||(s[13]=i("p",null,"This file defines the following primitives:",-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOpsCore.unwrap-source-src-other_primitives",href:"#GeometryOpsCore.unwrap-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.unwrap")],-1)),s[1]||(s[1]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=t(`
    julia
    unwrap(target::Type{<:AbstractTrait}, obj)
    -unwrap(f, target::Type{<:AbstractTrait}, obj)

    Unwrap the object to vectors, down to the target trait.

    If f is passed in it will be applied to the target geometries as they are found.

    source

    `,4))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.flatten-source-src-other_primitives",href:"#GeometryOpsCore.flatten-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.flatten")],-1)),s[4]||(s[4]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=t(`
    julia
    flatten(target::Type{<:GI.AbstractTrait}, obj)
    -flatten(f, target::Type{<:GI.AbstractTrait}, obj)

    Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

    If f is passed in it will be applied to the target geometries.

    source

    `,4))]),i("details",E,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOpsCore.reconstruct-source-src-other_primitives",href:"#GeometryOpsCore.reconstruct-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.reconstruct")],-1)),s[7]||(s[7]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=t('
    julia
    reconstruct(geom, components)

    Reconstruct geom from an iterable of component objects that match its structure.

    All objects in components must have the same GeoInterface.trait.

    Usually used in combination with flatten.

    source

    ',5))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOpsCore.rebuild-source-src-other_primitives",href:"#GeometryOpsCore.rebuild-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.rebuild")],-1)),s[10]||(s[10]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=t('
    julia
    rebuild(geom, child_geoms)

    Rebuild a geometry from child geometries.

    By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

    (Maybe it should go into GeoInterface.jl)

    source

    ',5))]),s[14]||(s[14]=t(`
    julia
    """
    +import{_ as e,c as p,j as i,a,G as h,a5 as t,B as l,o as k}from"./chunks/framework.Bkt_v4A4.js";const B=JSON.parse('{"title":"Other primitives (unwrap, flatten, etc)","description":"","frontmatter":{},"headers":[],"relativePath":"source/src/other_primitives.md","filePath":"source/src/other_primitives.md","lastUpdated":null}'),r={name:"source/src/other_primitives.md"},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""};function o(F,s,c,C,u,m){const n=l("Badge");return k(),p("div",null,[s[12]||(s[12]=i("h1",{id:"Other-primitives-(unwrap,-flatten,-etc)",tabindex:"-1"},[a("Other primitives (unwrap, flatten, etc) "),i("a",{class:"header-anchor",href:"#Other-primitives-(unwrap,-flatten,-etc)","aria-label":'Permalink to "Other primitives (unwrap, flatten, etc) {#Other-primitives-(unwrap,-flatten,-etc)}"'},"​")],-1)),s[13]||(s[13]=i("p",null,"This file defines the following primitives:",-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOpsCore.unwrap-source-src-other_primitives",href:"#GeometryOpsCore.unwrap-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.unwrap")],-1)),s[1]||(s[1]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=t(`
    julia
    unwrap(target::Type{<:AbstractTrait}, obj)
    +unwrap(f, target::Type{<:AbstractTrait}, obj)

    Unwrap the object to vectors, down to the target trait.

    If f is passed in it will be applied to the target geometries as they are found.

    source

    `,4))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.flatten-source-src-other_primitives",href:"#GeometryOpsCore.flatten-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.flatten")],-1)),s[4]||(s[4]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=t(`
    julia
    flatten(target::Type{<:GI.AbstractTrait}, obj)
    +flatten(f, target::Type{<:GI.AbstractTrait}, obj)

    Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

    If f is passed in it will be applied to the target geometries.

    source

    `,4))]),i("details",E,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOpsCore.reconstruct-source-src-other_primitives",href:"#GeometryOpsCore.reconstruct-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.reconstruct")],-1)),s[7]||(s[7]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=t('
    julia
    reconstruct(geom, components)

    Reconstruct geom from an iterable of component objects that match its structure.

    All objects in components must have the same GeoInterface.trait.

    Usually used in combination with flatten.

    source

    ',5))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOpsCore.rebuild-source-src-other_primitives",href:"#GeometryOpsCore.rebuild-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.rebuild")],-1)),s[10]||(s[10]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=t('
    julia
    rebuild(geom, child_geoms)

    Rebuild a geometry from child geometries.

    By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

    (Maybe it should go into GeoInterface.jl)

    source

    ',5))]),s[14]||(s[14]=t(`
    julia
    """
         unwrap(target::Type{<:AbstractTrait}, obj)
         unwrap(f, target::Type{<:AbstractTrait}, obj)
     
    @@ -115,4 +115,4 @@ import{_ as e,c as p,j as i,a,G as h,a5 as t,B as l,o as k}from"./chunks/framewo
         else
             return T{false,false}(child_geoms; crs, extent)
         end
    -end

    This page was generated using Literate.jl.

    `,43))])}const B=e(r,[["render",o]]);export{f as __pageData,B as default}; +end

    This page was generated using Literate.jl.

    `,43))])}const A=e(r,[["render",o]]);export{B as __pageData,A as default}; diff --git a/previews/PR238/assets/source_src_other_primitives.md.CclyXPRq.lean.js b/previews/PR238/assets/source_src_other_primitives.md.DuzRAPMQ.lean.js similarity index 99% rename from previews/PR238/assets/source_src_other_primitives.md.CclyXPRq.lean.js rename to previews/PR238/assets/source_src_other_primitives.md.DuzRAPMQ.lean.js index 5e431d6da..500965cb7 100644 --- a/previews/PR238/assets/source_src_other_primitives.md.CclyXPRq.lean.js +++ b/previews/PR238/assets/source_src_other_primitives.md.DuzRAPMQ.lean.js @@ -1,6 +1,6 @@ -import{_ as e,c as p,j as i,a,G as h,a5 as t,B as l,o as k}from"./chunks/framework.Bkt_v4A4.js";const f=JSON.parse('{"title":"Other primitives (unwrap, flatten, etc)","description":"","frontmatter":{},"headers":[],"relativePath":"source/src/other_primitives.md","filePath":"source/src/other_primitives.md","lastUpdated":null}'),r={name:"source/src/other_primitives.md"},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""};function o(F,s,c,C,u,m){const n=l("Badge");return k(),p("div",null,[s[12]||(s[12]=i("h1",{id:"Other-primitives-(unwrap,-flatten,-etc)",tabindex:"-1"},[a("Other primitives (unwrap, flatten, etc) "),i("a",{class:"header-anchor",href:"#Other-primitives-(unwrap,-flatten,-etc)","aria-label":'Permalink to "Other primitives (unwrap, flatten, etc) {#Other-primitives-(unwrap,-flatten,-etc)}"'},"​")],-1)),s[13]||(s[13]=i("p",null,"This file defines the following primitives:",-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOpsCore.unwrap-source-src-other_primitives",href:"#GeometryOpsCore.unwrap-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.unwrap")],-1)),s[1]||(s[1]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=t(`
    julia
    unwrap(target::Type{<:AbstractTrait}, obj)
    -unwrap(f, target::Type{<:AbstractTrait}, obj)

    Unwrap the object to vectors, down to the target trait.

    If f is passed in it will be applied to the target geometries as they are found.

    source

    `,4))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.flatten-source-src-other_primitives",href:"#GeometryOpsCore.flatten-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.flatten")],-1)),s[4]||(s[4]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=t(`
    julia
    flatten(target::Type{<:GI.AbstractTrait}, obj)
    -flatten(f, target::Type{<:GI.AbstractTrait}, obj)

    Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

    If f is passed in it will be applied to the target geometries.

    source

    `,4))]),i("details",E,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOpsCore.reconstruct-source-src-other_primitives",href:"#GeometryOpsCore.reconstruct-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.reconstruct")],-1)),s[7]||(s[7]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=t('
    julia
    reconstruct(geom, components)

    Reconstruct geom from an iterable of component objects that match its structure.

    All objects in components must have the same GeoInterface.trait.

    Usually used in combination with flatten.

    source

    ',5))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOpsCore.rebuild-source-src-other_primitives",href:"#GeometryOpsCore.rebuild-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.rebuild")],-1)),s[10]||(s[10]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=t('
    julia
    rebuild(geom, child_geoms)

    Rebuild a geometry from child geometries.

    By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

    (Maybe it should go into GeoInterface.jl)

    source

    ',5))]),s[14]||(s[14]=t(`
    julia
    """
    +import{_ as e,c as p,j as i,a,G as h,a5 as t,B as l,o as k}from"./chunks/framework.Bkt_v4A4.js";const B=JSON.parse('{"title":"Other primitives (unwrap, flatten, etc)","description":"","frontmatter":{},"headers":[],"relativePath":"source/src/other_primitives.md","filePath":"source/src/other_primitives.md","lastUpdated":null}'),r={name:"source/src/other_primitives.md"},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""};function o(F,s,c,C,u,m){const n=l("Badge");return k(),p("div",null,[s[12]||(s[12]=i("h1",{id:"Other-primitives-(unwrap,-flatten,-etc)",tabindex:"-1"},[a("Other primitives (unwrap, flatten, etc) "),i("a",{class:"header-anchor",href:"#Other-primitives-(unwrap,-flatten,-etc)","aria-label":'Permalink to "Other primitives (unwrap, flatten, etc) {#Other-primitives-(unwrap,-flatten,-etc)}"'},"​")],-1)),s[13]||(s[13]=i("p",null,"This file defines the following primitives:",-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOpsCore.unwrap-source-src-other_primitives",href:"#GeometryOpsCore.unwrap-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.unwrap")],-1)),s[1]||(s[1]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=t(`
    julia
    unwrap(target::Type{<:AbstractTrait}, obj)
    +unwrap(f, target::Type{<:AbstractTrait}, obj)

    Unwrap the object to vectors, down to the target trait.

    If f is passed in it will be applied to the target geometries as they are found.

    source

    `,4))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOpsCore.flatten-source-src-other_primitives",href:"#GeometryOpsCore.flatten-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.flatten")],-1)),s[4]||(s[4]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=t(`
    julia
    flatten(target::Type{<:GI.AbstractTrait}, obj)
    +flatten(f, target::Type{<:GI.AbstractTrait}, obj)

    Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

    If f is passed in it will be applied to the target geometries.

    source

    `,4))]),i("details",E,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOpsCore.reconstruct-source-src-other_primitives",href:"#GeometryOpsCore.reconstruct-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.reconstruct")],-1)),s[7]||(s[7]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=t('
    julia
    reconstruct(geom, components)

    Reconstruct geom from an iterable of component objects that match its structure.

    All objects in components must have the same GeoInterface.trait.

    Usually used in combination with flatten.

    source

    ',5))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOpsCore.rebuild-source-src-other_primitives",href:"#GeometryOpsCore.rebuild-source-src-other_primitives"},[i("span",{class:"jlbinding"},"GeometryOpsCore.rebuild")],-1)),s[10]||(s[10]=a()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=t('
    julia
    rebuild(geom, child_geoms)

    Rebuild a geometry from child geometries.

    By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

    (Maybe it should go into GeoInterface.jl)

    source

    ',5))]),s[14]||(s[14]=t(`
    julia
    """
         unwrap(target::Type{<:AbstractTrait}, obj)
         unwrap(f, target::Type{<:AbstractTrait}, obj)
     
    @@ -115,4 +115,4 @@ import{_ as e,c as p,j as i,a,G as h,a5 as t,B as l,o as k}from"./chunks/framewo
         else
             return T{false,false}(child_geoms; crs, extent)
         end
    -end

    This page was generated using Literate.jl.

    `,43))])}const B=e(r,[["render",o]]);export{f as __pageData,B as default}; +end

    This page was generated using Literate.jl.

    `,43))])}const A=e(r,[["render",o]]);export{B as __pageData,A as default}; diff --git a/previews/PR238/assets/source_transformations_correction_geometry_correction.md.BUKI5iqX.js b/previews/PR238/assets/source_transformations_correction_geometry_correction.md.rHY_l4Yi.js similarity index 96% rename from previews/PR238/assets/source_transformations_correction_geometry_correction.md.BUKI5iqX.js rename to previews/PR238/assets/source_transformations_correction_geometry_correction.md.rHY_l4Yi.js index 586bb955b..3c873bdc2 100644 --- a/previews/PR238/assets/source_transformations_correction_geometry_correction.md.BUKI5iqX.js +++ b/previews/PR238/assets/source_transformations_correction_geometry_correction.md.rHY_l4Yi.js @@ -1,4 +1,4 @@ -import{_ as r,c as o,a5 as e,j as i,a as t,G as n,B as l,o as p}from"./chunks/framework.Bkt_v4A4.js";const G=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),h={name:"source/transformations/correction/geometry_correction.md"},k={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""};function m(E,s,u,F,f,C){const a=l("Badge");return p(),o("div",null,[s[15]||(s[15]=e('

    Geometry Corrections

    julia
    export fix

    This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

    A geometry correction is a transformation that is applied to a geometry to correct it in some way.

    For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

    Interface

    All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

    See below for the full interface specification.

    ',8)),i("details",k,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction",href:"#GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[1]||(s[1]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=e('
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    ',5))]),s[16]||(s[16]=e(`

    Any geometry correction must implement the interface as given above.

    julia
    """
    +import{_ as r,c as o,a5 as e,j as i,a as t,G as n,B as l,o as p}from"./chunks/framework.Bkt_v4A4.js";const G=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),h={name:"source/transformations/correction/geometry_correction.md"},c={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""};function m(E,s,u,F,b,C){const a=l("Badge");return p(),o("div",null,[s[15]||(s[15]=e('

    Geometry Corrections

    julia
    export fix

    This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

    A geometry correction is a transformation that is applied to a geometry to correct it in some way.

    For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

    Interface

    All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

    See below for the full interface specification.

    ',8)),i("details",c,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction",href:"#GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[1]||(s[1]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=e('
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    ',5))]),s[16]||(s[16]=e(`

    Any geometry correction must implement the interface as given above.

    julia
    """
         abstract type GeometryCorrection
     
     This abstract type represents a geometry correction.
    @@ -28,4 +28,4 @@ import{_ as r,c as o,a5 as e,j as i,a as t,G as n,B as l,o as p}from"./chunks/fr
             final_geometry = apply(net_function, Trait, final_geometry; kwargs...)
         end
         return final_geometry
    -end

    Available corrections

    `,3)),i("details",c,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOps.ClosedRing-source-transformations-correction-geometry_correction",href:"#GeometryOps.ClosedRing-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[4]||(s[4]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[5]||(s[5]=e('
    julia
    ClosedRing() <: GeometryCorrection

    This correction ensures that a polygon's exterior and interior rings are closed.

    It can be called on any geometry correction as usual.

    See also GeometryCorrection.

    source

    ',5))]),i("details",d,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOps.DiffIntersectingPolygons-source-transformations-correction-geometry_correction",href:"#GeometryOps.DiffIntersectingPolygons-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[7]||(s[7]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[8]||(s[8]=e('
    julia
    DiffIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

    source

    ',3))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction-2",href:"#GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction-2"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[10]||(s[10]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[11]||(s[11]=e('
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    ',5))]),i("details",g,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeometryOps.UnionIntersectingPolygons-source-transformations-correction-geometry_correction",href:"#GeometryOps.UnionIntersectingPolygons-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[13]||(s[13]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[14]||(s[14]=e('
    julia
    UnionIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

    See also GeometryCorrection.

    source

    ',4))]),s[17]||(s[17]=i("hr",null,null,-1)),s[18]||(s[18]=i("p",null,[i("em",null,[t("This page was generated using "),i("a",{href:"https://github.com/fredrikekre/Literate.jl",target:"_blank",rel:"noreferrer"},"Literate.jl"),t(".")])],-1))])}const A=r(h,[["render",m]]);export{G as __pageData,A as default}; +end

    Available corrections

    `,3)),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOps.ClosedRing-source-transformations-correction-geometry_correction",href:"#GeometryOps.ClosedRing-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[4]||(s[4]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[5]||(s[5]=e('
    julia
    ClosedRing() <: GeometryCorrection

    This correction ensures that a polygon's exterior and interior rings are closed.

    It can be called on any geometry correction as usual.

    See also GeometryCorrection.

    source

    ',5))]),i("details",d,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOps.DiffIntersectingPolygons-source-transformations-correction-geometry_correction",href:"#GeometryOps.DiffIntersectingPolygons-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[7]||(s[7]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[8]||(s[8]=e('
    julia
    DiffIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

    source

    ',3))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction-2",href:"#GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction-2"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[10]||(s[10]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[11]||(s[11]=e('
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    ',5))]),i("details",g,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeometryOps.UnionIntersectingPolygons-source-transformations-correction-geometry_correction",href:"#GeometryOps.UnionIntersectingPolygons-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[13]||(s[13]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[14]||(s[14]=e('
    julia
    UnionIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

    See also GeometryCorrection.

    source

    ',4))]),s[17]||(s[17]=i("hr",null,null,-1)),s[18]||(s[18]=i("p",null,[i("em",null,[t("This page was generated using "),i("a",{href:"https://github.com/fredrikekre/Literate.jl",target:"_blank",rel:"noreferrer"},"Literate.jl"),t(".")])],-1))])}const A=r(h,[["render",m]]);export{G as __pageData,A as default}; diff --git a/previews/PR238/assets/source_transformations_correction_geometry_correction.md.BUKI5iqX.lean.js b/previews/PR238/assets/source_transformations_correction_geometry_correction.md.rHY_l4Yi.lean.js similarity index 96% rename from previews/PR238/assets/source_transformations_correction_geometry_correction.md.BUKI5iqX.lean.js rename to previews/PR238/assets/source_transformations_correction_geometry_correction.md.rHY_l4Yi.lean.js index 586bb955b..3c873bdc2 100644 --- a/previews/PR238/assets/source_transformations_correction_geometry_correction.md.BUKI5iqX.lean.js +++ b/previews/PR238/assets/source_transformations_correction_geometry_correction.md.rHY_l4Yi.lean.js @@ -1,4 +1,4 @@ -import{_ as r,c as o,a5 as e,j as i,a as t,G as n,B as l,o as p}from"./chunks/framework.Bkt_v4A4.js";const G=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),h={name:"source/transformations/correction/geometry_correction.md"},k={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""};function m(E,s,u,F,f,C){const a=l("Badge");return p(),o("div",null,[s[15]||(s[15]=e('

    Geometry Corrections

    julia
    export fix

    This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

    A geometry correction is a transformation that is applied to a geometry to correct it in some way.

    For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

    Interface

    All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

    See below for the full interface specification.

    ',8)),i("details",k,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction",href:"#GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[1]||(s[1]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=e('
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    ',5))]),s[16]||(s[16]=e(`

    Any geometry correction must implement the interface as given above.

    julia
    """
    +import{_ as r,c as o,a5 as e,j as i,a as t,G as n,B as l,o as p}from"./chunks/framework.Bkt_v4A4.js";const G=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),h={name:"source/transformations/correction/geometry_correction.md"},c={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""};function m(E,s,u,F,b,C){const a=l("Badge");return p(),o("div",null,[s[15]||(s[15]=e('

    Geometry Corrections

    julia
    export fix

    This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

    A geometry correction is a transformation that is applied to a geometry to correct it in some way.

    For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

    Interface

    All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

    See below for the full interface specification.

    ',8)),i("details",c,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction",href:"#GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[1]||(s[1]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=e('
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    ',5))]),s[16]||(s[16]=e(`

    Any geometry correction must implement the interface as given above.

    julia
    """
         abstract type GeometryCorrection
     
     This abstract type represents a geometry correction.
    @@ -28,4 +28,4 @@ import{_ as r,c as o,a5 as e,j as i,a as t,G as n,B as l,o as p}from"./chunks/fr
             final_geometry = apply(net_function, Trait, final_geometry; kwargs...)
         end
         return final_geometry
    -end

    Available corrections

    `,3)),i("details",c,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOps.ClosedRing-source-transformations-correction-geometry_correction",href:"#GeometryOps.ClosedRing-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[4]||(s[4]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[5]||(s[5]=e('
    julia
    ClosedRing() <: GeometryCorrection

    This correction ensures that a polygon's exterior and interior rings are closed.

    It can be called on any geometry correction as usual.

    See also GeometryCorrection.

    source

    ',5))]),i("details",d,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOps.DiffIntersectingPolygons-source-transformations-correction-geometry_correction",href:"#GeometryOps.DiffIntersectingPolygons-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[7]||(s[7]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[8]||(s[8]=e('
    julia
    DiffIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

    source

    ',3))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction-2",href:"#GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction-2"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[10]||(s[10]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[11]||(s[11]=e('
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    ',5))]),i("details",g,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeometryOps.UnionIntersectingPolygons-source-transformations-correction-geometry_correction",href:"#GeometryOps.UnionIntersectingPolygons-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[13]||(s[13]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[14]||(s[14]=e('
    julia
    UnionIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

    See also GeometryCorrection.

    source

    ',4))]),s[17]||(s[17]=i("hr",null,null,-1)),s[18]||(s[18]=i("p",null,[i("em",null,[t("This page was generated using "),i("a",{href:"https://github.com/fredrikekre/Literate.jl",target:"_blank",rel:"noreferrer"},"Literate.jl"),t(".")])],-1))])}const A=r(h,[["render",m]]);export{G as __pageData,A as default}; +end

    Available corrections

    `,3)),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeometryOps.ClosedRing-source-transformations-correction-geometry_correction",href:"#GeometryOps.ClosedRing-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[4]||(s[4]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[5]||(s[5]=e('
    julia
    ClosedRing() <: GeometryCorrection

    This correction ensures that a polygon's exterior and interior rings are closed.

    It can be called on any geometry correction as usual.

    See also GeometryCorrection.

    source

    ',5))]),i("details",d,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeometryOps.DiffIntersectingPolygons-source-transformations-correction-geometry_correction",href:"#GeometryOps.DiffIntersectingPolygons-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[7]||(s[7]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[8]||(s[8]=e('
    julia
    DiffIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

    source

    ',3))]),i("details",y,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction-2",href:"#GeometryOps.GeometryCorrection-source-transformations-correction-geometry_correction-2"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[10]||(s[10]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[11]||(s[11]=e('
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    ',5))]),i("details",g,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeometryOps.UnionIntersectingPolygons-source-transformations-correction-geometry_correction",href:"#GeometryOps.UnionIntersectingPolygons-source-transformations-correction-geometry_correction"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[13]||(s[13]=t()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[14]||(s[14]=e('
    julia
    UnionIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

    See also GeometryCorrection.

    source

    ',4))]),s[17]||(s[17]=i("hr",null,null,-1)),s[18]||(s[18]=i("p",null,[i("em",null,[t("This page was generated using "),i("a",{href:"https://github.com/fredrikekre/Literate.jl",target:"_blank",rel:"noreferrer"},"Literate.jl"),t(".")])],-1))])}const A=r(h,[["render",m]]);export{G as __pageData,A as default}; diff --git a/previews/PR238/assets/source_transformations_segmentize.md.C1u6DChx.js b/previews/PR238/assets/source_transformations_segmentize.md.CoptJFaF.js similarity index 99% rename from previews/PR238/assets/source_transformations_segmentize.md.C1u6DChx.js rename to previews/PR238/assets/source_transformations_segmentize.md.CoptJFaF.js index 7fed0340e..9c724f15d 100644 --- a/previews/PR238/assets/source_transformations_segmentize.md.C1u6DChx.js +++ b/previews/PR238/assets/source_transformations_segmentize.md.CoptJFaF.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/heqeujh.D5-bot8v.png",l="/GeometryOps.jl/previews/PR238/assets/xseqdrd.DP9--zAp.png",o=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),k={name:"source/transformations/segmentize.md"};function e(p,s,r,d,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Segmentize

    julia
    export segmentize
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/fsjmnbb.D5-bot8v.png",l="/GeometryOps.jl/previews/PR238/assets/hosrsyx.CvvJ-ORz.png",o=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),k={name:"source/transformations/segmentize.md"};function e(p,s,r,d,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Segmentize

    julia
    export segmentize
     export LinearSegments, GeodesicSegments

    This function "segmentizes" or "densifies" a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

    Info

    We plan to add interpolated segmentization from DataInterpolations.jl in the future, which will be available to any vector of point-like objects.

    For now, this function only works on 2D geometries.  We will also support 3D geometries, as well as measure interpolation, in the future.

    Examples

    julia
    import GeometryOps as GO, GeoInterface as GI
     rectangle = GI.Wrappers.Polygon([[(0.0, 50.0), (7.071, 57.07), (0, 64.14), (-7.07, 57.07), (0.0, 50.0)]])
     linear = GO.segmentize(rectangle; max_distance = 5)
    diff --git a/previews/PR238/assets/source_transformations_segmentize.md.C1u6DChx.lean.js b/previews/PR238/assets/source_transformations_segmentize.md.CoptJFaF.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_transformations_segmentize.md.C1u6DChx.lean.js
    rename to previews/PR238/assets/source_transformations_segmentize.md.CoptJFaF.lean.js
    index 7fed0340e..9c724f15d 100644
    --- a/previews/PR238/assets/source_transformations_segmentize.md.C1u6DChx.lean.js
    +++ b/previews/PR238/assets/source_transformations_segmentize.md.CoptJFaF.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/heqeujh.D5-bot8v.png",l="/GeometryOps.jl/previews/PR238/assets/xseqdrd.DP9--zAp.png",o=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),k={name:"source/transformations/segmentize.md"};function e(p,s,r,d,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Segmentize

    julia
    export segmentize
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/fsjmnbb.D5-bot8v.png",l="/GeometryOps.jl/previews/PR238/assets/hosrsyx.CvvJ-ORz.png",o=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),k={name:"source/transformations/segmentize.md"};function e(p,s,r,d,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

    Segmentize

    julia
    export segmentize
     export LinearSegments, GeodesicSegments

    This function "segmentizes" or "densifies" a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

    Info

    We plan to add interpolated segmentization from DataInterpolations.jl in the future, which will be available to any vector of point-like objects.

    For now, this function only works on 2D geometries.  We will also support 3D geometries, as well as measure interpolation, in the future.

    Examples

    julia
    import GeometryOps as GO, GeoInterface as GI
     rectangle = GI.Wrappers.Polygon([[(0.0, 50.0), (7.071, 57.07), (0, 64.14), (-7.07, 57.07), (0.0, 50.0)]])
     linear = GO.segmentize(rectangle; max_distance = 5)
    diff --git a/previews/PR238/assets/source_transformations_simplify.md.u8Bjh-r2.js b/previews/PR238/assets/source_transformations_simplify.md.DhlRwMdg.js
    similarity index 99%
    rename from previews/PR238/assets/source_transformations_simplify.md.u8Bjh-r2.js
    rename to previews/PR238/assets/source_transformations_simplify.md.DhlRwMdg.js
    index a8504bb0c..cab2e7850 100644
    --- a/previews/PR238/assets/source_transformations_simplify.md.u8Bjh-r2.js
    +++ b/previews/PR238/assets/source_transformations_simplify.md.DhlRwMdg.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/oblkjlp.Bglvb-jp.png",k="/GeometryOps.jl/previews/PR238/assets/nrirplz.B94PsR1K.png",t="/GeometryOps.jl/previews/PR238/assets/irtqhkl.BDltONk3.png",p="/GeometryOps.jl/previews/PR238/assets/iefhksx.CHIqn74q.png",c=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),e={name:"source/transformations/simplify.md"};function E(r,s,d,g,y,F){return h(),a("div",null,s[0]||(s[0]=[n(`

    Geometry simplification

    This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

    The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

    Examples

    A quick and dirty example is:

    julia
    using Makie, GeoInterfaceMakie
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/aelmmcv.Bglvb-jp.png",k="/GeometryOps.jl/previews/PR238/assets/nzfjycb.B94PsR1K.png",t="/GeometryOps.jl/previews/PR238/assets/ictcaon.BxyFC9l3.png",p="/GeometryOps.jl/previews/PR238/assets/excqmms.DIwADWhE.png",c=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),e={name:"source/transformations/simplify.md"};function E(r,s,d,g,y,F){return h(),a("div",null,s[0]||(s[0]=[n(`

    Geometry simplification

    This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

    The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

    Examples

    A quick and dirty example is:

    julia
    using Makie, GeoInterfaceMakie
     import GeoInterface as GI
     import GeometryOps as GO
     
    diff --git a/previews/PR238/assets/source_transformations_simplify.md.u8Bjh-r2.lean.js b/previews/PR238/assets/source_transformations_simplify.md.DhlRwMdg.lean.js
    similarity index 99%
    rename from previews/PR238/assets/source_transformations_simplify.md.u8Bjh-r2.lean.js
    rename to previews/PR238/assets/source_transformations_simplify.md.DhlRwMdg.lean.js
    index a8504bb0c..cab2e7850 100644
    --- a/previews/PR238/assets/source_transformations_simplify.md.u8Bjh-r2.lean.js
    +++ b/previews/PR238/assets/source_transformations_simplify.md.DhlRwMdg.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/oblkjlp.Bglvb-jp.png",k="/GeometryOps.jl/previews/PR238/assets/nrirplz.B94PsR1K.png",t="/GeometryOps.jl/previews/PR238/assets/irtqhkl.BDltONk3.png",p="/GeometryOps.jl/previews/PR238/assets/iefhksx.CHIqn74q.png",c=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),e={name:"source/transformations/simplify.md"};function E(r,s,d,g,y,F){return h(),a("div",null,s[0]||(s[0]=[n(`

    Geometry simplification

    This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

    The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

    Examples

    A quick and dirty example is:

    julia
    using Makie, GeoInterfaceMakie
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/aelmmcv.Bglvb-jp.png",k="/GeometryOps.jl/previews/PR238/assets/nzfjycb.B94PsR1K.png",t="/GeometryOps.jl/previews/PR238/assets/ictcaon.BxyFC9l3.png",p="/GeometryOps.jl/previews/PR238/assets/excqmms.DIwADWhE.png",c=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),e={name:"source/transformations/simplify.md"};function E(r,s,d,g,y,F){return h(),a("div",null,s[0]||(s[0]=[n(`

    Geometry simplification

    This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

    The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

    Examples

    A quick and dirty example is:

    julia
    using Makie, GeoInterfaceMakie
     import GeoInterface as GI
     import GeometryOps as GO
     
    diff --git a/previews/PR238/assets/bdbtpgs.DHcwB147.png b/previews/PR238/assets/sqhssgt.DHcwB147.png
    similarity index 100%
    rename from previews/PR238/assets/bdbtpgs.DHcwB147.png
    rename to previews/PR238/assets/sqhssgt.DHcwB147.png
    diff --git a/previews/PR238/assets/cjoukrz.pAYw0Yqf.png b/previews/PR238/assets/tqgkqbl.pAYw0Yqf.png
    similarity index 100%
    rename from previews/PR238/assets/cjoukrz.pAYw0Yqf.png
    rename to previews/PR238/assets/tqgkqbl.pAYw0Yqf.png
    diff --git a/previews/PR238/assets/ttsketx.DJUk7VMK.png b/previews/PR238/assets/ttsketx.DJUk7VMK.png
    deleted file mode 100644
    index 04d0133467b01f71bdd04d844da749d84361015a..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 66813
    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≫+N5;H2?{5mr3JRi2GAXM;!RUn*w_m4@)Du#
    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 diff --git a/previews/PR238/assets/tutorials_creating_geometry.md.BNJCwUIY.js b/previews/PR238/assets/tutorials_creating_geometry.md.BbxWhyiL.js similarity index 99% rename from previews/PR238/assets/tutorials_creating_geometry.md.BNJCwUIY.js rename to previews/PR238/assets/tutorials_creating_geometry.md.BbxWhyiL.js index 35327d260..1c3be395f 100644 --- a/previews/PR238/assets/tutorials_creating_geometry.md.BNJCwUIY.js +++ b/previews/PR238/assets/tutorials_creating_geometry.md.BbxWhyiL.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a5 as e,o as t}from"./chunks/framework.Bkt_v4A4.js";const n="/GeometryOps.jl/previews/PR238/assets/csmdloa.Dz86q2IX.png",l="/GeometryOps.jl/previews/PR238/assets/vxbbynp.Cx40vhB3.png",p="/GeometryOps.jl/previews/PR238/assets/ycwztwp.0OJvb21A.png",h="/GeometryOps.jl/previews/PR238/assets/mvjdcjl.DaovVbE6.png",o="/GeometryOps.jl/previews/PR238/assets/brpjlcw.rOsRk89v.png",k="/GeometryOps.jl/previews/PR238/assets/cnhbrub.4wfjCtJV.png",r="/GeometryOps.jl/previews/PR238/assets/cudytks.3sfpQl2i.png",g="/GeometryOps.jl/previews/PR238/assets/dlquluo.Dab1-ETk.png",d="/GeometryOps.jl/previews/PR238/assets/galdzqb.D9AE7i2o.png",E="/GeometryOps.jl/previews/PR238/assets/tsgwqgg.DTKLkKh_.png",c="/GeometryOps.jl/previews/PR238/assets/stlkgfn.0f3Lq4Lw.png",G=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),y={name:"tutorials/creating_geometry.md"};function F(u,s,f,C,m,b){return t(),a("div",null,s[0]||(s[0]=[e(`

    Creating Geometry

    In this tutorial, we're going to:

    1. Create and plot geometries

    2. Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

    3. Create geospatial geometries with embedded coordinate reference system information

    4. Assign attributes to geospatial geometries

    5. Save geospatial geometries to common geospatial file formats

    First, we load some required packages.

    julia
    # Geospatial packages from Julia
    +import{_ as i,c as a,a5 as e,o as t}from"./chunks/framework.Bkt_v4A4.js";const n="/GeometryOps.jl/previews/PR238/assets/uvccsex.Dz86q2IX.png",l="/GeometryOps.jl/previews/PR238/assets/hpptrek.Cx40vhB3.png",p="/GeometryOps.jl/previews/PR238/assets/rnyengw.0OJvb21A.png",h="/GeometryOps.jl/previews/PR238/assets/ioeltbg.DaovVbE6.png",o="/GeometryOps.jl/previews/PR238/assets/lhqicfo.rOsRk89v.png",k="/GeometryOps.jl/previews/PR238/assets/qsuxgwe.4wfjCtJV.png",r="/GeometryOps.jl/previews/PR238/assets/acglfmt.3sfpQl2i.png",g="/GeometryOps.jl/previews/PR238/assets/zsrvzwp.Dab1-ETk.png",d="/GeometryOps.jl/previews/PR238/assets/rfezaag.D9AE7i2o.png",E="/GeometryOps.jl/previews/PR238/assets/mbjwyhn.DTKLkKh_.png",c="/GeometryOps.jl/previews/PR238/assets/jyzhdin.0f3Lq4Lw.png",G=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),y={name:"tutorials/creating_geometry.md"};function F(u,s,f,C,m,b){return t(),a("div",null,s[0]||(s[0]=[e(`

    Creating Geometry

    In this tutorial, we're going to:

    1. Create and plot geometries

    2. Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

    3. Create geospatial geometries with embedded coordinate reference system information

    4. Assign attributes to geospatial geometries

    5. Save geospatial geometries to common geospatial file formats

    First, we load some required packages.

    julia
    # Geospatial packages from Julia
     import GeoInterface as GI
     import GeometryOps as GO
     import GeoFormatTypes as GFT
    @@ -48,7 +48,7 @@ import{_ as i,c as a,a5 as e,o as t}from"./chunks/framework.Bkt_v4A4.js";const n
     f = CoordinateTransformations.Translation(xoffset, yoffset);
     multipolygon = GO.transform(f, multipolygon);
     plot!(multipolygon)
    -fig

    Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

    Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

    In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

    Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

    julia
    source_crs1 = GFT.EPSG(4326)
    GeoFormatTypes.EPSG{1}((4326,))

    Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

    julia
    destination_crs = "+proj=natearth2"
    "+proj=natearth2"

    Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

    julia
    land_path = GeoMakie.assetpath("ne_110m_land.geojson")
    "/home/runner/.julia/packages/GeoMakie/t8Vkb/assets/ne_110m_land.geojson"

    Note

    Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

    Read the land MultiPolygons as a GeoJSON.FeatureCollection.

    julia
    land_geo = GeoJSON.read(land_path)
    FeatureCollection with 127 Features

    We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

    julia
    fig = Figure(size=(1000, 500));
    +fig

    Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

    Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

    In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

    Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

    julia
    source_crs1 = GFT.EPSG(4326)
    GeoFormatTypes.EPSG{1}((4326,))

    Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

    julia
    destination_crs = "+proj=natearth2"
    "+proj=natearth2"

    Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

    julia
    land_path = GeoMakie.assetpath("ne_110m_land.geojson")
    "/home/runner/.julia/packages/GeoMakie/jrNmz/assets/ne_110m_land.geojson"

    Note

    Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

    Read the land MultiPolygons as a GeoJSON.FeatureCollection.

    julia
    land_geo = GeoJSON.read(land_path)
    FeatureCollection with 127 Features

    We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

    julia
    fig = Figure(size=(1000, 500));
     ga = GeoAxis(
         fig[1, 1];
         source = source_crs1,
    diff --git a/previews/PR238/assets/tutorials_creating_geometry.md.BNJCwUIY.lean.js b/previews/PR238/assets/tutorials_creating_geometry.md.BbxWhyiL.lean.js
    similarity index 99%
    rename from previews/PR238/assets/tutorials_creating_geometry.md.BNJCwUIY.lean.js
    rename to previews/PR238/assets/tutorials_creating_geometry.md.BbxWhyiL.lean.js
    index 35327d260..1c3be395f 100644
    --- a/previews/PR238/assets/tutorials_creating_geometry.md.BNJCwUIY.lean.js
    +++ b/previews/PR238/assets/tutorials_creating_geometry.md.BbxWhyiL.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as e,o as t}from"./chunks/framework.Bkt_v4A4.js";const n="/GeometryOps.jl/previews/PR238/assets/csmdloa.Dz86q2IX.png",l="/GeometryOps.jl/previews/PR238/assets/vxbbynp.Cx40vhB3.png",p="/GeometryOps.jl/previews/PR238/assets/ycwztwp.0OJvb21A.png",h="/GeometryOps.jl/previews/PR238/assets/mvjdcjl.DaovVbE6.png",o="/GeometryOps.jl/previews/PR238/assets/brpjlcw.rOsRk89v.png",k="/GeometryOps.jl/previews/PR238/assets/cnhbrub.4wfjCtJV.png",r="/GeometryOps.jl/previews/PR238/assets/cudytks.3sfpQl2i.png",g="/GeometryOps.jl/previews/PR238/assets/dlquluo.Dab1-ETk.png",d="/GeometryOps.jl/previews/PR238/assets/galdzqb.D9AE7i2o.png",E="/GeometryOps.jl/previews/PR238/assets/tsgwqgg.DTKLkKh_.png",c="/GeometryOps.jl/previews/PR238/assets/stlkgfn.0f3Lq4Lw.png",G=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),y={name:"tutorials/creating_geometry.md"};function F(u,s,f,C,m,b){return t(),a("div",null,s[0]||(s[0]=[e(`

    Creating Geometry

    In this tutorial, we're going to:

    1. Create and plot geometries

    2. Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

    3. Create geospatial geometries with embedded coordinate reference system information

    4. Assign attributes to geospatial geometries

    5. Save geospatial geometries to common geospatial file formats

    First, we load some required packages.

    julia
    # Geospatial packages from Julia
    +import{_ as i,c as a,a5 as e,o as t}from"./chunks/framework.Bkt_v4A4.js";const n="/GeometryOps.jl/previews/PR238/assets/uvccsex.Dz86q2IX.png",l="/GeometryOps.jl/previews/PR238/assets/hpptrek.Cx40vhB3.png",p="/GeometryOps.jl/previews/PR238/assets/rnyengw.0OJvb21A.png",h="/GeometryOps.jl/previews/PR238/assets/ioeltbg.DaovVbE6.png",o="/GeometryOps.jl/previews/PR238/assets/lhqicfo.rOsRk89v.png",k="/GeometryOps.jl/previews/PR238/assets/qsuxgwe.4wfjCtJV.png",r="/GeometryOps.jl/previews/PR238/assets/acglfmt.3sfpQl2i.png",g="/GeometryOps.jl/previews/PR238/assets/zsrvzwp.Dab1-ETk.png",d="/GeometryOps.jl/previews/PR238/assets/rfezaag.D9AE7i2o.png",E="/GeometryOps.jl/previews/PR238/assets/mbjwyhn.DTKLkKh_.png",c="/GeometryOps.jl/previews/PR238/assets/jyzhdin.0f3Lq4Lw.png",G=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),y={name:"tutorials/creating_geometry.md"};function F(u,s,f,C,m,b){return t(),a("div",null,s[0]||(s[0]=[e(`

    Creating Geometry

    In this tutorial, we're going to:

    1. Create and plot geometries

    2. Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

    3. Create geospatial geometries with embedded coordinate reference system information

    4. Assign attributes to geospatial geometries

    5. Save geospatial geometries to common geospatial file formats

    First, we load some required packages.

    julia
    # Geospatial packages from Julia
     import GeoInterface as GI
     import GeometryOps as GO
     import GeoFormatTypes as GFT
    @@ -48,7 +48,7 @@ import{_ as i,c as a,a5 as e,o as t}from"./chunks/framework.Bkt_v4A4.js";const n
     f = CoordinateTransformations.Translation(xoffset, yoffset);
     multipolygon = GO.transform(f, multipolygon);
     plot!(multipolygon)
    -fig

    Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

    Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

    In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

    Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

    julia
    source_crs1 = GFT.EPSG(4326)
    GeoFormatTypes.EPSG{1}((4326,))

    Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

    julia
    destination_crs = "+proj=natearth2"
    "+proj=natearth2"

    Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

    julia
    land_path = GeoMakie.assetpath("ne_110m_land.geojson")
    "/home/runner/.julia/packages/GeoMakie/t8Vkb/assets/ne_110m_land.geojson"

    Note

    Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

    Read the land MultiPolygons as a GeoJSON.FeatureCollection.

    julia
    land_geo = GeoJSON.read(land_path)
    FeatureCollection with 127 Features

    We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

    julia
    fig = Figure(size=(1000, 500));
    +fig

    Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

    Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

    In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

    Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

    julia
    source_crs1 = GFT.EPSG(4326)
    GeoFormatTypes.EPSG{1}((4326,))

    Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

    julia
    destination_crs = "+proj=natearth2"
    "+proj=natearth2"

    Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

    julia
    land_path = GeoMakie.assetpath("ne_110m_land.geojson")
    "/home/runner/.julia/packages/GeoMakie/jrNmz/assets/ne_110m_land.geojson"

    Note

    Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

    Read the land MultiPolygons as a GeoJSON.FeatureCollection.

    julia
    land_geo = GeoJSON.read(land_path)
    FeatureCollection with 127 Features

    We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

    julia
    fig = Figure(size=(1000, 500));
     ga = GeoAxis(
         fig[1, 1];
         source = source_crs1,
    diff --git a/previews/PR238/assets/tutorials_geodesic_paths.md.CwDXJw5E.js b/previews/PR238/assets/tutorials_geodesic_paths.md.B0eW2fhm.js
    similarity index 98%
    rename from previews/PR238/assets/tutorials_geodesic_paths.md.CwDXJw5E.js
    rename to previews/PR238/assets/tutorials_geodesic_paths.md.B0eW2fhm.js
    index 734ee3310..4efd2e46a 100644
    --- a/previews/PR238/assets/tutorials_geodesic_paths.md.CwDXJw5E.js
    +++ b/previews/PR238/assets/tutorials_geodesic_paths.md.B0eW2fhm.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/nclwnzm.CPClNl7F.png",o=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),p={name:"tutorials/geodesic_paths.md"};function k(l,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

    Geodesic paths

    Geodesic paths are paths computed on an ellipsoid, as opposed to a plane.

    julia
    import GeometryOps as GO, GeoInterface as GI
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/gazeekx.CPClNl7F.png",o=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),p={name:"tutorials/geodesic_paths.md"};function k(l,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

    Geodesic paths

    Geodesic paths are paths computed on an ellipsoid, as opposed to a plane.

    julia
    import GeometryOps as GO, GeoInterface as GI
     using CairoMakie, GeoMakie
     
     
    diff --git a/previews/PR238/assets/tutorials_geodesic_paths.md.CwDXJw5E.lean.js b/previews/PR238/assets/tutorials_geodesic_paths.md.B0eW2fhm.lean.js
    similarity index 98%
    rename from previews/PR238/assets/tutorials_geodesic_paths.md.CwDXJw5E.lean.js
    rename to previews/PR238/assets/tutorials_geodesic_paths.md.B0eW2fhm.lean.js
    index 734ee3310..4efd2e46a 100644
    --- a/previews/PR238/assets/tutorials_geodesic_paths.md.CwDXJw5E.lean.js
    +++ b/previews/PR238/assets/tutorials_geodesic_paths.md.B0eW2fhm.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/nclwnzm.CPClNl7F.png",o=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),p={name:"tutorials/geodesic_paths.md"};function k(l,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

    Geodesic paths

    Geodesic paths are paths computed on an ellipsoid, as opposed to a plane.

    julia
    import GeometryOps as GO, GeoInterface as GI
    +import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const t="/GeometryOps.jl/previews/PR238/assets/gazeekx.CPClNl7F.png",o=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),p={name:"tutorials/geodesic_paths.md"};function k(l,s,e,E,r,d){return h(),a("div",null,s[0]||(s[0]=[n(`

    Geodesic paths

    Geodesic paths are paths computed on an ellipsoid, as opposed to a plane.

    julia
    import GeometryOps as GO, GeoInterface as GI
     using CairoMakie, GeoMakie
     
     
    diff --git a/previews/PR238/assets/tutorials_spatial_joins.md.Do6MoDbG.js b/previews/PR238/assets/tutorials_spatial_joins.md.B_DJwau_.js
    similarity index 99%
    rename from previews/PR238/assets/tutorials_spatial_joins.md.Do6MoDbG.js
    rename to previews/PR238/assets/tutorials_spatial_joins.md.B_DJwau_.js
    index 217620c01..eea5e0caf 100644
    --- a/previews/PR238/assets/tutorials_spatial_joins.md.Do6MoDbG.js
    +++ b/previews/PR238/assets/tutorials_spatial_joins.md.B_DJwau_.js
    @@ -1,4 +1,4 @@
    -import{_ as l,c as t,j as i,a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const e="/GeometryOps.jl/previews/PR238/assets/eheshmj.3UVIT8DR.png",p="/GeometryOps.jl/previews/PR238/assets/wsfrvqa.DEsobWOp.png",k="/GeometryOps.jl/previews/PR238/assets/ixnjtdx.DpDSz3U3.png",C=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),r={name:"tutorials/spatial_joins.md"},E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"};function o(g,s,y,F,c,u){return h(),t("div",null,[s[12]||(s[12]=i("h1",{id:"Spatial-joins",tabindex:"-1"},[a("Spatial joins "),i("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Spatial joins are ")),s[3]||(s[3]=i("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1)),s[4]||(s[4]=a(" which are based not on equality, but on some predicate ")),i("mjx-container",E,[(h(),t("svg",d,s[0]||(s[0]=[n('',1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"p"),i("mo",{stretchy:"false"},"("),i("mi",null,"x"),i("mo",null,","),i("mi",null,"y"),i("mo",{stretchy:"false"},")")])],-1))]),s[5]||(s[5]=a(", which takes two geometries, and returns a value of either ")),s[6]||(s[6]=i("code",null,"true",-1)),s[7]||(s[7]=a(" or ")),s[8]||(s[8]=i("code",null,"false",-1)),s[9]||(s[9]=a(". For geometries, the ")),s[10]||(s[10]=i("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[i("code",null,"DE-9IM")],-1)),s[11]||(s[11]=a(" spatial relationship model is used to determine the spatial relationship between two geometries."))]),s[13]||(s[13]=n(`

    Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

    In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

    In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner, for any kind of table join operation:

    julia
    using FlexiJoins
    +import{_ as l,c as t,j as i,a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const e="/GeometryOps.jl/previews/PR238/assets/boznahp.3UVIT8DR.png",p="/GeometryOps.jl/previews/PR238/assets/elpyarh.kYI7eJr8.png",k="/GeometryOps.jl/previews/PR238/assets/xrbwfdh.eu_Auql1.png",C=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),r={name:"tutorials/spatial_joins.md"},E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"};function o(g,s,y,F,c,u){return h(),t("div",null,[s[12]||(s[12]=i("h1",{id:"Spatial-joins",tabindex:"-1"},[a("Spatial joins "),i("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Spatial joins are ")),s[3]||(s[3]=i("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1)),s[4]||(s[4]=a(" which are based not on equality, but on some predicate ")),i("mjx-container",E,[(h(),t("svg",d,s[0]||(s[0]=[n('',1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"p"),i("mo",{stretchy:"false"},"("),i("mi",null,"x"),i("mo",null,","),i("mi",null,"y"),i("mo",{stretchy:"false"},")")])],-1))]),s[5]||(s[5]=a(", which takes two geometries, and returns a value of either ")),s[6]||(s[6]=i("code",null,"true",-1)),s[7]||(s[7]=a(" or ")),s[8]||(s[8]=i("code",null,"false",-1)),s[9]||(s[9]=a(". For geometries, the ")),s[10]||(s[10]=i("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[i("code",null,"DE-9IM")],-1)),s[11]||(s[11]=a(" spatial relationship model is used to determine the spatial relationship between two geometries."))]),s[13]||(s[13]=n(`

    Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

    In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

    In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner, for any kind of table join operation:

    julia
    using FlexiJoins
     innerjoin((table1, table1),
         by_pred(:table1_column, predicate_function, :table2_column) # & add other conditions here
     )
    diff --git a/previews/PR238/assets/tutorials_spatial_joins.md.Do6MoDbG.lean.js b/previews/PR238/assets/tutorials_spatial_joins.md.B_DJwau_.lean.js
    similarity index 99%
    rename from previews/PR238/assets/tutorials_spatial_joins.md.Do6MoDbG.lean.js
    rename to previews/PR238/assets/tutorials_spatial_joins.md.B_DJwau_.lean.js
    index 217620c01..eea5e0caf 100644
    --- a/previews/PR238/assets/tutorials_spatial_joins.md.Do6MoDbG.lean.js
    +++ b/previews/PR238/assets/tutorials_spatial_joins.md.B_DJwau_.lean.js
    @@ -1,4 +1,4 @@
    -import{_ as l,c as t,j as i,a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const e="/GeometryOps.jl/previews/PR238/assets/eheshmj.3UVIT8DR.png",p="/GeometryOps.jl/previews/PR238/assets/wsfrvqa.DEsobWOp.png",k="/GeometryOps.jl/previews/PR238/assets/ixnjtdx.DpDSz3U3.png",C=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),r={name:"tutorials/spatial_joins.md"},E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"};function o(g,s,y,F,c,u){return h(),t("div",null,[s[12]||(s[12]=i("h1",{id:"Spatial-joins",tabindex:"-1"},[a("Spatial joins "),i("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Spatial joins are ")),s[3]||(s[3]=i("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1)),s[4]||(s[4]=a(" which are based not on equality, but on some predicate ")),i("mjx-container",E,[(h(),t("svg",d,s[0]||(s[0]=[n('',1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"p"),i("mo",{stretchy:"false"},"("),i("mi",null,"x"),i("mo",null,","),i("mi",null,"y"),i("mo",{stretchy:"false"},")")])],-1))]),s[5]||(s[5]=a(", which takes two geometries, and returns a value of either ")),s[6]||(s[6]=i("code",null,"true",-1)),s[7]||(s[7]=a(" or ")),s[8]||(s[8]=i("code",null,"false",-1)),s[9]||(s[9]=a(". For geometries, the ")),s[10]||(s[10]=i("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[i("code",null,"DE-9IM")],-1)),s[11]||(s[11]=a(" spatial relationship model is used to determine the spatial relationship between two geometries."))]),s[13]||(s[13]=n(`

    Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

    In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

    In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner, for any kind of table join operation:

    julia
    using FlexiJoins
    +import{_ as l,c as t,j as i,a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const e="/GeometryOps.jl/previews/PR238/assets/boznahp.3UVIT8DR.png",p="/GeometryOps.jl/previews/PR238/assets/elpyarh.kYI7eJr8.png",k="/GeometryOps.jl/previews/PR238/assets/xrbwfdh.eu_Auql1.png",C=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),r={name:"tutorials/spatial_joins.md"},E={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"};function o(g,s,y,F,c,u){return h(),t("div",null,[s[12]||(s[12]=i("h1",{id:"Spatial-joins",tabindex:"-1"},[a("Spatial joins "),i("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Spatial joins are ")),s[3]||(s[3]=i("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1)),s[4]||(s[4]=a(" which are based not on equality, but on some predicate ")),i("mjx-container",E,[(h(),t("svg",d,s[0]||(s[0]=[n('',1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mi",null,"p"),i("mo",{stretchy:"false"},"("),i("mi",null,"x"),i("mo",null,","),i("mi",null,"y"),i("mo",{stretchy:"false"},")")])],-1))]),s[5]||(s[5]=a(", which takes two geometries, and returns a value of either ")),s[6]||(s[6]=i("code",null,"true",-1)),s[7]||(s[7]=a(" or ")),s[8]||(s[8]=i("code",null,"false",-1)),s[9]||(s[9]=a(". For geometries, the ")),s[10]||(s[10]=i("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[i("code",null,"DE-9IM")],-1)),s[11]||(s[11]=a(" spatial relationship model is used to determine the spatial relationship between two geometries."))]),s[13]||(s[13]=n(`

    Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

    In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

    In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner, for any kind of table join operation:

    julia
    using FlexiJoins
     innerjoin((table1, table1),
         by_pred(:table1_column, predicate_function, :table2_column) # & add other conditions here
     )
    diff --git a/previews/PR238/assets/zzklicr.CULn5saZ.png b/previews/PR238/assets/tvzxwdn.CULn5saZ.png
    similarity index 100%
    rename from previews/PR238/assets/zzklicr.CULn5saZ.png
    rename to previews/PR238/assets/tvzxwdn.CULn5saZ.png
    diff --git a/previews/PR238/assets/uavptik.C7FptcSe.png b/previews/PR238/assets/uavptik.C7FptcSe.png
    new file mode 100644
    index 0000000000000000000000000000000000000000..baac29938943da379c70d72d6d5f45df7d261b1f
    GIT binary patch
    literal 68726
    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�q{v*Z||MAS?xfE+INc7)70s^pv&Nn_`jv8>5Uxc;gp=f)x-QYQDvhe zBXLrZ#fEL1wk*udRUI8FE2St92@2NxM3xta)0l;nQIUhn&zw2ayut_SzO$O6LBt&- zWoX7Ov&O;EF-V7w&nmEVe%@wAnN`FcX_;0mmRKizEq;E!xV62twGmhd$T~GO_0lNZ zLTd?Oe;_;~CnrsxkscDtYy#D;)~R~BldRb3NB8> zRNquY3amyOAL{qV+Z+S6knv%admZ&w>gv^}!zHYq)NF|_iX4}$;OhYe76?9BM=qjb zlYDf)R*2xrbVFY#^S!G6s5t;vPLwCmkHyc-7I=^o?N} zd+s^o&ejp#jvNz{Kmj03<3=4YxJkL{EpxDL%!^{+^af{d0Fk&i76p>=OAtsJe)arC zaCs7(O)Nn!`KqZB%u8bho))kEQ2U+h z*0@MW42ku6s__lphlQLVg&?(SkpC2=(G zl56599o^79bR!*uA0;7MQdE7=3KXcL<8+c1YNn=v<u7)o8W6%#;xTv`CFhqw34)KowPJ3Bk- z{#m0bgaJ_ZmMvSv#KeFQD;pXzA#Xvr(cvq^z1lK$feTS0#(R5@$=ct#^%bh0_Cpke zk2R97fLC6CAEVU3L7_1iG{kvJKb{-!5i;)+x3RJDKPpyOSg7BUnliE_B!lSlZkldX zY%1Ar)4$D05`=YZuzDoOKq1-Mi^z-ii_;1G?DC0$b^$U)>dxRifSj$Ziq_WFhYv?W zuubRyl~NGcCCJaejGPBH$*P)b3h&n{BEAKlka54LsHk(u0d7zok&1dW+?db+*y(%d z!fqNGr3|gAopij<)JiYGDVkyN=;&w&LWM;|{ZH(LgoLyQc4?s;Kx3Wdo`(YFyKJ2{x$a&fISX)4<8Xv%vfbgjljI(7V@PT>m`f z{PXYsQA7V9`i%duCz%k0#|EHIfWn_Umm{>c+>l6=Y{8TbASyui0yp9|Xdb~sU=M0| zBqbzN@hnipLHuWc*bZ{*+t}Jt(DS!``0&AS3A_TOlZ=$~k*lj5&<~g{c)aDkdzp(9 z5Zb%HfB%jkw1m5Wn?QEL4^15%OEJEXn}ka8+rU4^drBhpO(2hfxZJEZ0ts=L?5pal zrG{<>&Gb?!a2TT57%>SQ5?cSn>?}R6g&v-{VM-K;?=NNTB7koI?TO|T71T>M^bC+s zyKM);aX+O=B?Gb9G6I zA;ZylARAumF^6yOw$Rds`OxuY8?;E0rvsSW8>oc>nE-diZDbE#zI2Jmy&$vkhNmL$ zA`Xxodh+fK05MGgO#*-JV^fwB;BcyaabY|4DJl^xNE^`z5Lf_N3JNv7pu>6X>Of>^ zhhL>+%KW^Loksv_1nj15kN}E`R-hmuic#`cQDYIjLJsq9Kw4KmQdLjz?i&#*~b1=d~q` z3lFT2Qn>VP;Cf?VT1FjNCkc1{%mQS4?dLFVf6I)F^6T4s9-b<8UZbX{RX8Z*0WV+Q zoHqh~eA<>D4htJY0Osvq%mce3_2T=f4TEFdMM-6sLB2TB zQGzWQQ8}5^3v;QW(JZL1ujf2)@F0tGtMk%mPVe{cf#uLMEr%L+iR@*%afFA5$D48o zLD-5@zmbW-H63iAM3#r7;!ER8`tyM%>SDVKfEr!IF6!oHfDotpKIt5oH zB;?LPc`5wViz0FJ!ONE~p)>Cj31nB}Mfey=Z6*l e7Fa9%4`b%;aCA37fK?Adu> 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 literal 0 HcmV?d00001 diff --git a/previews/PR238/assets/csmdloa.Dz86q2IX.png b/previews/PR238/assets/uvccsex.Dz86q2IX.png similarity index 100% rename from previews/PR238/assets/csmdloa.Dz86q2IX.png rename to previews/PR238/assets/uvccsex.Dz86q2IX.png diff --git a/previews/PR238/assets/lxpynmy.-VpeHhXX.png b/previews/PR238/assets/vnqwpfr.-VpeHhXX.png similarity index 100% rename from previews/PR238/assets/lxpynmy.-VpeHhXX.png rename to previews/PR238/assets/vnqwpfr.-VpeHhXX.png diff --git a/previews/PR238/assets/wsfrvqa.DEsobWOp.png b/previews/PR238/assets/wsfrvqa.DEsobWOp.png deleted file mode 100644 index f68459ef5ead14336140cd07fcad924a9fb5d5c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209957 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≥fv6Nx=76K8(L$y)KL|!I& zx0;%pL&4yQ9AWRtOm2=0w3fx3oSbH!S}A<_Vh&15bD@&a^k$zqr!(PCuQTV$N8aC3 zcuN09HWA19rxRdj5>%D5JN-};5fmAG^>1p$FEbq==!>;ygvTDy4UjAh{}YJMR3+Anv?weNNBCAttAsbVw-UA zYC|GaA%=%yC1eoR;_}Kz4r^}L2Tk4&rB{6yO60IyXBzw*91#&g=5yJbNUZ=(y8n2T z>wi*S+99m3p`oFr#Z#ioQNnExHG~$Y?SlN!w6jbwdo^l@_Ss1M(*LIv8p*Pyn+Iwh zcBpiX8y5Ir74Tdq^9!d~=w`2JxKjZ!R?KG>jx|$leV1Md6mefFNY=5x*92HlYm-_9CzF9-iCY*;(k zEhTi+P?LH>OGx!?sTvN+Bl_&o362Mk;#zdpVSRBx{a5w)E(-T$H-#{~x?8aAN6u0} zQZQ1gVoPt4ga4&2D{$_MisiX1h1^LI#v3P9m`Bx-HGkD3z~jn49K(GaktVW(0TN(0 z*4IT6xw~T7^qsy%f4#{HBrh*7nO0LtN5|{=diU_~aIswdYNa;6rA1@JE*gIywwMuX z_}~sIAg1x@tZ*6I1mvKT2g$b5`R4i59%It;2^M#D zzIUqrs->n6bD2VGnCC@;_OJ2kxz|{&lDk8)GH6(5XJ5RyH1~0T>@yuS#R)8g2r7UG zik!!jSA<;rE6$u~gqs5|8T_k8PR!Pcwkp~QXeFz+D&W0QkK?FlGbB7uGf~G3XJJSYW<(fx$2{n`v& z9Y0Sp-rs*i2I76bs6hHdDrQOP>pCXYSLdDj;%=#xNqI4>dYr|{1;~Tr*0=}!NuH*Eus2=0V&bg9eL_Sn1 zo)kTvus?v+>EgjpL_v0*e&zqbA6AOnT3g!juvDZWZYidauuyqpOzv=()MM$qbHa zt;X;tg~rB45VcCJA4ZG;Op)F^-Rr^QA3@*3BpNumz3m)%hf|GFb3S-~mJ&ty2qCfM zeSZ4vwAP*K}1_@#I+gd>PpnI z)=fb2BhOzX16}A=`ea>fp4a1zO4V#!EbGPJ1~8j$ILwI!%R>wgIX3Bi{){RsIPA0v zv<+q-Ey zEvi0kIK)gEueaEdRu7#WA2VXXfz;J^I$QCx*(qtwt-EQg&zmsO{D{9Nn(Q0ljAF3n zD~1+2-S8hK9p;8P(~h!ioI8NlMtDzw%Tg9BB#-Nf!WzouZb&<<`6$aWJg2X`p* zMtKS7q8oH1-Z=BU;JE_Gd61w;{?o7{W6bUY$|@AfVNnnw%v*7r^te8P_&xLRHq`cp zyqeg--E8w;54o$bt)UYt^V0dFsz4W*C&^DYGH(JH-_$IH%;&o3Pd0XEhsOG=n!R+` z^VBGOfwUQ01)iU{6UvLMrbRd?eRl+d;4I<^L;|~sST%W(r{W8(gcppNt=`j6>Y2`~ zv{jWdkcOTH{;^Df7wgUKpS8aS!wuwv0t0Dv+8pl=Cj$&QOG-=aK1eBs>k$u1C6l_Y zUh)eoh0E7Ibsda!%pXNZv5h7ksOQ5X^(T9~tS_0;dedvW6;c^tF!PmkViRu^`BJ7Q z+ZJFpJ{eapx&=C_wRr~WYE~D%)GlT#@h7|Kv>2bo)}T6yLq9}9Ry_t+67#C`p1eHn zm^zpC9Kogkyrf^V?8lQH_%(K*mq6+ajMVrbyeO0E+T>OWnAMn4RmD)m6kIn@V&UT$ z48vtap9MMo$ey0ur;=MKI@*CY9Z>AhkzckF_%RWkA*QH0p5?9B+a#)m__ z=te+?{jF|wr>+M7$_%^EGVR>xW<$9>lKGO8z|wQ{>mP#Y@twRmt$HnpP6=P*%1HC3+(T>TGDY~@Io{5r1(yCm#zrPnJ^m6PEhUam)^nAN$zUqA1dVhak z*7b-Q4)It6@^2tOh*ANLL(8(erVT`yHo8N5EBV%@;^Dqce~-ih$e?##rYysr)f*~J z;(diVGW0Ol!TxEKc`}kX5wh3CiPr9k5!^#koMIIL#{CA1Ig0C)cJ1~0>h*dgC&j|6 z_1W3eSC>S8A7w7Bo>a*J(`Nju<>jZdPBsM4>)-!+4a{eP7Ee4IU$2+x2(oVl@)ZIu z3#b+FA|3zPvXwL&J`lT0a(&n!UNrQci_}99I?WUowlt=5dv>%2O9T5&T&xO?^u`a< z7+E3-=GW^n0Uw_E z7bqieGi4UuV-o2woAB5Js%cWi=<4rrsIf13+Yh%s{@bb^_9VX<$%9Kf7zR>7Uf0HJJwkm%d{qm@U82J5aMeDOx!xIx2*8CWJnw8xxOO5Qs+fiL^q4Y2DYDIAC zSgqnptzk_^vQ`Dm-8l4O7RxYtWBck)wWPa~p+wHd0d|w}``>=VkQ3G2L)+1hAOFV! znC!m=*-RsH!XWkXL~6*GVJPRZR;&&sp>~jrm|rf+k5pxMOF%W5#3H^PY~vg_VKDhR zw(eKxpP?HZ64Ahqyx~RT3V~$PB?s%~6RL5-1%C%JQeiACED)j;kE${p&kdtJs-O0v z(1wPF99CemapDAAU+;Gb@y{OZvWR7}+Ep?1Ws&Xz6GoAq zOIy#XK$;JQ3mM74u9k(FWNR?d;`P`0)U)}4bC}$`QL?+U*+H}AuQk#JP`G%TzvVZ# zc+RaJKPmbtN+jKvPah%c)NBb#M4m_MWQ*~>%w0Iyw_J&5+MJE$;BLB*l11mWWu--0 zP#1(#1)nv#cNbj*INMuH5IF@AaT~HoJ=5g@k}ji?_w(0)_Bb)vVSM+5Zup zqf(__cYuI=z0NuR5T$#i0*g!#abtBw#Hbi?EQ@@YK_W(F8S`rpUadB8My8cijrlc8 zZ+8UT5@e*2CKGioazIeZIx;-a-!xw#-ZE-1HwD7+t1C;)nF_+Ded+s30T1XVh)gINziJ zqsH6$n5pB}wT9%f01~5;*ugR~O?6@y9p!1vv#C9Urfq zl2)va+sTT5?to?`EfT|LKOUcD{6 ztQ{>4R$yozgVTjOpe*y9FGYgGNPnpj20IgZl8|5LAY>b{Kn=P)Ue9~c*64gwA)i_P zH9BOi#R4J~m)qxt+`=Y^M-J0c9+dK{>==Oo{?CNm#tNFfBSB1K(X5}3^UT$&M19a0 zj4@=KbbhU?3cp%+Wf8ZW;K%QnQ$I_mmL1neZhWtW1q=IUo8Tm)MS zUEBnQf>lO!zTVvh$kAZXt3gn|ehVP;F@ZN~!S|Tncl_bR!n#jZ<{mj;t?%S(G@eX< zetuqBTIvr$jB!p^Ml1~cYA;F*ZC%t4s(P9hm*&}gCw_8n_E~ea1g`YTRTlJYt+|ht z`4?FW;le6;lX@VKStZUj8Tye!fX&gSHbRJ3y+?5Uc{6r{61bQtd!(~~<%l3P2(~pb zRn-K<2pjdz=)Z5cZc5dQjz&Z%IM(vf#ujg=@-wajQONhJZ|$0wCJHEoaeyFmhe1d|UE(>iN`-powYI=9c&LX)-^N zo@^mPvH6GWcX0)Ivy$Y!;@NdF_|JbHpFonB&~XOgipRKHT6jc0p@Sif7N$Q3=eW6( zqKq=X5Xh`UlqF78stE8%<#yI!U#)q97k`{D&etRCt~$CC9$^Yv4F3^7F4{_nxnET@ z>l0Wz?x#8!ZP<0{?r)(?e{T&lF*)i>OGw`7;e_~Kyc!q?4pLc}?IZn5OAADTES|~Q zu6iSY6xB9Q_)^IgZ~GPjN| zp4BnEa&B#wjgb+@TO9me2w^p*5!@C{m(&=bfh=#aepvI`? zUK-&7W`Wqwkw|#EpbW3_gFMF0nvNd2ca8FW{7p{K+HuC|PQx{JR{+cld*GU-s>#pF z$_g@onA5d|zqG0fGBz!Z3V&TnnhXULD_NGiQxggM&3F=-rkHLr-n2TZkLp-D35rXr zB;~=`%G|;+#`>f3HnttdvACf5PF@`0z0Ee;H!P>X>!(7Pbo(kRy+5ObFFrKr?uDL@ z#QG%iO2v}Jb_JKahg|OT9jaKTVt03YzEux6kt9AV1uwZIUwT44E%|Q${$i(EH9E6Y z?ZLS#VtI%}D+#mI3}%!P-jXxn?8Bqhgj6jVsRj!Jv)Bnk=|uZ7h_8}ksw}-=Dmvbn zhoCV8qP!z3u&Nd|K;3=ToEa=sx$ID6AQL-uOtVdM> ziz!sKX_$jD4~s7Mnm__#WUjwBilIl~)>ZcvkUHlJyGd#rKR8L3g}6Fu<(PK{XNPg? z18hy{U!+++TD}cKf)GhWq8l7^k+ls-2Un*OIge=#Ml)bgWS1SiDo_sEM9(J~WD6w5 zaPKI>BitJCb&@BO**~^;QN%cEmJTD3nC+G^*rZaV)QEw=ef5G98$w55(1GnZa=Tn^ zw7Nf-KNV9J0`W8+UVm>eJT8I9Ia8cO!=LfwR4hbE#;O&4LBE;PYO|j$+ID7Ak8fKE zdrFJMM`W&>iWLhFi+7q+Kt9Vz2_19Nxb0$_lzM)3LV0pQix6|jU&N!*lMV?Ye)Ka3 zX-fL?Dk`P;AGD=B10FD>PU&B6=caJe-)$1{6cLJzbiM@jVFY2~ zzD#q2g)8yg#N`WI`B8&H~cMv}mXB`P{-QQgUYyBdYd(WWGiNw3YxpO8%gKn6~N zN^RmF@dO2Kd8S=~t{?nru#_d`XUp(nM9nTu*Yq{bjULg2?!po-JRpku2Yt*mwBgG$ ze^l{eN=p|{b}lZD3mPhHGQW4hv9FUBwg;CAf+YU_B|cs~_L$lU<k{R>1O`J0dC4+dL(vvz{|^k+Mwu3D}D*@55Fi0yVs(rwlA zd=}ur&G)C!IStC&!PX|iOhz}NtE`tAmHlbXO3U$8_sCV5ch{LPGIlTiCu|Bh`8i}H555hUhdwin%04e*Blz)v`;9e_9ly1 z9Xg45f@~v519qU!1#*9T$7=$>?BjzX-XxiRBN??!idFFq~myt}zGN(Fhu>abFWb)OL0(>7jxrsh-*R}bd%m45RsL$W&XRK> zc_5~y9%DNkrO0{Ti(uG*0yNnDrgiIYHJ&f_x&~a6MBvLNhhKJ&c`SMRI?}4G8oa`& z-X3zh4h|R&451IYo_d?PXs6y-f##I z1eObqJ`9%nmN95^(D`5gb!Tzs2xyJPMZMbzJ2hsr@R;+CEC${c6%SFXUOIES98Gf5 zObI7fsF1Z$mFsKh-&L;Vr8lXgw6!0(#Rz`R$c6`dEgdYq&|)m9`9T^5W> zozQ0?=2qqr@n)Ysco2i>juZENP=CvuZa>B!E*a)O&tlJXfqpRVSb}Z8a)UW?Ws172 z{T^Q9^p&F9)3?ezY5jgOB9qP9khWqPfKl9m>L;YdtL zvDxm*QYxD@1r%ffm@7Jvk@>(QGtVtpweK`*aId4|3+D&b1=uxj7zNa4XL}!B4oV6N z*3~Mz6H%dV`a@<6s`#v{A>CPA$g@v}Swk5N)C0aMfS(~1|M6;_i*DDiTI-ZSelj`K zb1R+{yfwW>ds5>L7mDiS#PVOoc0QUOJ7Kp=u=@6noqrjbQj8ZfWGmT^@edzhFMR#O z$V!NP_41f!3Rp6&4;lRjs9*Ja2_b{Y@a*edmk5_B3?~;0nw2Dzy>pym0(T4;NM!X(CJo7RIn)C8a?x&wA*b(T z6n7r938UFjva+@`MENi9?BAEQj^WVxX^DbBO{jTa$Y`Fw^S}t!rRdC1QoX)-3*>9I zk{e3>cP(+k2JMYAbZa+TZ#G%2vs-Vp*zJog@5jZ(U3I%9LX5o0=>bmJ(y*Rp;h z0ugJkoHdd_#8FkQxBF*HC@)3l+wW=CYzYdWKFs}AwE4(vh03}ruijsRsT=nO=2D7GeP|~^u5BA603TV2 zc4;TiG!L$(gOK7{0p6?1O<{R<4fK3=9`l#2Jc$?kyhk2y&95Ui6Ps9uHq%&!JN_IzTfk&n=MgTAaC^TeoqqbF^zaG z1pa|Ko|=~+m=6@zLi+s% zx9JA%9C#QQDth{^=e-E1Z@!lu4@;j1qCauO!aWhjCC0s;gB262ewtyhbZ+Y``|C!J@2+Mv-=!babe-OnrKT-ms9p-?# zfwP^|A#iTxKmUS3Mh_9cIyK+N`j766A^vAi#=QF@h_wRNC zyKT%#6C4&kJMmUMDHDvT0ocyNDd}o&ZYgOQYv*nP&cfOaugN+S)S%7TNw>*sO(<}? zEP>mXUkjwd5mXF1Wbge;+2O3;Bn{Q%6M2wYfqIC*1MJ zDQEpiHGY!tBfMP;bFk&?o~-~IS8M?hO%2~OCbiD}s+|SfCU-_y0x_j% zi$EH{ik*$Q@h+Yza||aSa<_c4iv@oNV^EmZx9tInr7VH5Ni^zJ+O6>}2OF&pT-iE} z=8I*jO`~LpxspHuYT6m7ed`tU|_}Fdg>?D-O(3 zfJ_99nuzm6-a9V6v${ASKmI!J08Wojpj9yxd{bT3Z}we*_%OziQiNYj*t1}DVVWl9 zLe8YH%0?~_v8yEj{LZP&(ZFs^uY}gadkR~~KHJMF?xiZFJi#wQwv&-37rF*%TZ7YR zKo6&NX_A3`*5daFErTGJ-w>S{?B~xtqG}@tAXGr{SFam&3n^)C8^|Nt$YPc9Dn#1N zw9Q22&%U+flMhg`oX?vJ+_;emNJZdHmyw2hmTx{XA(SLO@=$j)3EZ0!=~y{`(PZj< z#X~_s;&6o&rkp=c3F%E;qKypiq-mD8G<(TL$9rwhgSe#eh*I&kc$A4AYq4N4Zh3Qn zHgI-jy%K7r0_gzJZ z2DXl+xrJx>>J&zA&$^)DlLxlo zXl0tBI+7Q`T{Ya0!EySzbf~)wjX=N@J2448EH>J;&?oz>tnNNj=9rQZAheSudMcy+ zbZfm(%hoUYo}(Qhhg?8%TMc$=Ngf7tYECR17=Ae@b<7s{lE!$Er8Xk1iZi9+XZQ)S zbi<6bQG*W$X*gEHOkYaLd)qzv@W)GM6Qf>*OzJx<7b*8Hfd9ocQA!)47?Ir2EQT}) z8!`x@oB-7W8ZS6Ru+T&rwSga>)sy8qu*5B7T;uEY2_x~xfg-9iZ%(RE?mSQyqbMqZ zm=q>ek+L}I!q_08s%7>XO*eeVrPHr3fuW38~VLV4=t!L*EJt~`ytMlB`HDy zD-ft`O_O}HAk_K0YPNj8W{Sly0RBX=dnr<<7sJg`0PaSu^%ui2F4UJ|ZUp}3xdinG zr0GRy(p;gz!5n1?IeWf;Zz|G%Pg46^ZCnoHLqd+@vsXUM3hlJy3_|W;T`g2e_t^iyOc`g7gi(E$Im#erEsbA; zvvyvGk>cad9?F{bwa+Oh{``UhNRam z>@^D(Q)}TzR^m@4Vsuo_FRKLOtc~5vcH#yF@ClsdwmP;H)zNKlo^|ot&mz<$`Nwhu zBc>1so{#P+tT)WsXkpWw?SWfq&_dU4pqjs;FSHO%T;m|+3loBfRjBv04xf0gb$K=y zBE-HMfwxj?<3)uejFM78AE;g77(Ct9oXiCqk;Ed=F6i&Vgn)1JpNVi?3beN3v@F8} z^nM3mpdm*waukLzxgG0WI=n`a*Wr1LPIYxastQC&WDcbHE-rSfM1@cxWToOcM!3`o0$d)ulO9dCWz5kR@rvbwASS_r z)FcFNC-8ML!bzEVf5wpM^;3w1#vYROCi-F^7d((}El6yo!9bDd2cPP%r{!+da39ai zy1(rzW#;x)!W^8VW~gXa*QrK~$K*{~(dfqz*fblOQGVD$?gjp-l7qcr78!m1<{RXR z&kwNQR0#iZQTCJlXwn|Gl~J6Vq&U3zjX& zR@Plt)26wZKk&DZ^#m=}L$A&NO#q5Y83wBQyr?S!D1HPEI1<%h<;_CIcL)%nmbFQF z#Y2mcr|dlEOWFfV925!)fy`jsvTNDt*nJ7ngC2sJDND9L0) zC(ceb0~vgNa(}Z!(!ta=piHjM=qW}QhY=Dpbaj(RB9+_0MDsON;Ry>%-QYT!JFOEbxX&1oiEW#noM=__V13lJ@iNR$AzQYbacO@% zJ36&0J84w;1&lW6OqZyvVDWDX(Hid)@`3;25uu*}uh=pG% zBH`q2x{=B_|Dk_Fsf=q@Y>-*K#_(~Y%mG5GD9-BG2!63*kO@5mUB*eyr@S-$ntczb zd|+dDEos;|H@6%AzO1X(=Qp>w^&ORP$`#PXMf7452`aG&$KM-Au>m3Jk~O0PzJ;02 zrNC*j1(=2{h0H!lBG0i?Evs^d0ZXT_p9Yu7156^^8ByI;FV)`MB9QHcGsw9(Cz?R$ zYe_M~XZ+icV=|FpFUN_Kc3yVBQJY9=pN}T( zt=_Qn6!H`;gZG0drO^0;mdR>mf4>k?X9U_iAsjf7yuY17l?ch)s*c=MevPB;FH^;$ z@G1&)cq>tpbj$S`QYEleqn=~#1g!lQ%z(cEO*TK4i-!H-Fxq}`UoVHp)_W*Y2WAqo z{}^aTHp{= zkTSJ=3)~AJ|J@5%`MFyqJ`Ik|1|?dy3T=(~g$>nbrJBXx&4!0lMezEX@>G8dLI%P3 z&8o$vfG52IK#%vPQg>&4;g)F)PgX9on}O-Ubi!P{aIiT1kUBg938q0UWCWXEX9WQT zbZ855i59w-VLuiJq+QG_yId_~-mvh7^w$&w3M{g9I0eVxUChQp zL=5*yu6Jr?Xo`U% z@bgBKA3|KPpwnIa8=*e#eyM3C2ZK10FrK>f|3BNIQ%8O`)9zmBa|x5i&)w_Klp_Y* zh;eAcJecGWBa+(oUlro^^HqU$)X`f#VM#rN$e?xc2<3?x+snc%Y`h5Q?Kd4RX#miKZzT(@jkuWfI#1#s?~ zG&OKIxiSoZ&2a0#JFRBR<3!tihZ!Oh0!VN18-xse0xzo}I3^SCq+Vl>>mEeX4}CDg zB1n0=L-0H4ba1ZU-*|W_!7~!FJxoJ!@I-8e|A_;Gu|ov9N->+&m18=UD$qDo4azA( z3PwdK{yzKwskE|}dWgn)(R(t5(o>}gU;?dyCJtc2xo1BEoElG#&5h}ia^YA(=DJ1` zZeeC|p!16QLNB!;3{+5@6&G9;7jB4@&`~WkE@~C_o}PkO`y)T7(%#(HxRk^(MF)SB zEWl7dY`WF!l~6W%5U%}Z?ow3t{)(I@H_H1AD(zJcSp`()NaiW2K8t;@WkoSgn})be z?&@tls6nem0D;@v0^9A?I^Fa}M+grwKiS&r;bsFfY*kFiy{3W)$+;l9FGDvGm{R(7)qs;Xe~KeV>bPFiwev0mk+I$*bZOz7q(ASeeEqXq6PTK3IC zTL;4;{(wq8#K!+J-4Byx`*of5>-~BK1mRY+?D1q4OCN|{u;U@l$LNukQfudfO>k;o ziLyRObsRyO)#r7#L>nXajXkRe+3B>z$z+iHO+kfN*$)y|)QrJ#fD{y~Yxei)*XC}g zRyhzZipw7FaB>kPPTFcSv7+^FY&o+SIwl?0?&O}kMadR;sc zzFoH5X3bxauE`;Zd!bDxdE}>Lq)e3o)Yu@??Gz?8O8p zm=~{+QI;z0Fm?+THP1(G-p6UZS}}~ltrX^0H|WoTR`3W#Wuqu> z+Z4Nbn7vxJ)g{u?6vFVFyrZ<4nMPN|I%AGA_q{+dVeP|9WB+0F+`m|ZebLkP{XZ5U zVbek^B#V2ygvzJt8O}#;^h<;$u@N#$-bZO^ebI=StTgq(w8zd}Wy61D#SqfUt9xtD zQDiI$@Mi`n&4}g{Lv!oId=jX9pp#uPChVG*DvJz0O>;%~03tKmia3SEDM_)HPH?43%vPQ-n+pt|#X z*zArDp(pMon|Ew+dmixfsS)M@(Pc=2Jg>bt82{zHrv@f=ZXHWKiCgioek9L-i^Z?s zu1oXM*>r^L*y#Dqe_{*^gn;?KB6@_Z6OL9cljE<@U#ayxw z23}L!ov&y`gw;nU2LAJbe@qmgPyaBu{|BJQEX<{u15?>SXy>M5_`pMg~4F zhPQGd?k*#_G<=ih@vEBUY`pPzRip{HzBVj-Z?f`#sT!1nMf{%Y!nm{|a;8=3+E_vU zC!YPm(3A+|9uK_Xw%Nb_Y-Z}?knf(%V-bty#%w=heAl%cO4)4K0z;0i?3*SXy?_bD zS{@?URq|v?0BWA_Iwg#KVsT|XtGfs95}^?|LOg?4XKs*suBly# zQMmii#ID@%yC}SBM}j%)lmx3w{3c>z?gxn-am+=m|67=zb|Pn{ozz2m13*tu4{{*n zs`+JdC%9iqb{@>48W%2dNAeq}4cJD)B#qv&DObM&6wc1u#eK3l7Cx5D1dn;&aF(MP zB|jC>?0nvh4v3P$0J^x@Nti$Pa$2$c!hSf`trWX|v3X!d&e`6vF5j{*8iZPlYKx@k zLA1zwSGKh9Rt9(&19rZi<9<49nai6SuYM2cH?KyB9E{jO972R2fiJ{HU5t0B2CmW^ z_{@jJ39aHWa$Qp)YT+5>HG1-T)5L-LIa@mLN>87ePFiO#Un_d<+e#P|M$g#Jy?|Bm zZybzNK1>pXF3zNDLIJF|-DNy_ZCGFXG=-e!a|u8T<{a){Evb4hX(+F)|8aq3d@+XJ zAG^m3N|m0|%V6sN^{dv<@iMC2Tc#N<#@}`_LizVS)Ny2yuuXul(tKfBfsHGdHdxzE0`! zJ1aba3#ec-+yQac@LL}ud#&xTsLt{E!jIGF?^PL}9=M+~zA@Z2x#J(ZyGPd&;$J)h z?BDq)1DND$;5~q?8n4<*tdzDjlq5@n9L8y0TZFo6KL|)0Hj~+!hBIEkzv|P}!6r#U z54vdt9L+^xYj1gieE$(1u zqaLzKMw}<&G;~FbS9$bXf!?Pv}~r%d(q}q z3wPfjfjYnz2VEP!3~LhkhIY`!8nG0;o~+)~<6j@^@@cL^`U!0`&TOP%qD5ezG(KZTH9AAr=} zUC*Yn%0fe-LH=9wHQPwT_pz3Ob_WyL`wB4l%0>I(E-O6j0-)TXh0UWVU8xmtIa{Z* zwV?;R&sK6`Cx2aTq+`Ym{wjf{;`T}XdeGQ#5f))mdZ{T|xCq|73$I60$?4EXpdfP% zbr(VUkDsIC6i|^&D>heGPs^ZHLkC3-6fu989LP2r&4#H3=;-JGxIV9?zvpT|4*p)N z-6R}I$f4ZGKoRO2yoRO}d^T9+Z+}FSo%rK~_(Ee4O%GQ&kKp(PTC8m@NIZe#YXd00 z6~ubfFnikXgN=4Gwng5~Yu8o`=CX-M@udT+yFzc>i1wBstDY2kVl%C&CgiB%A?SZT zj$Mf4#A4uM_0+B>9w!(r(?vln7k|5*a8?V?k*YMtRN-wKBJ|tPP!6g1i2~`(b_?r| z@`mR6A?f)b&cfF6HIYaB*yMrS+_wdEnP= zdTZTd@$94~`8SqP4{JR|&A4LedSNC*iU?hzK+T~P;ou5O*pE*$h%U|x z2mlD-dTPJ@ASDIRcQbOaXmAq;qht4`rySC~$=}`J<5$X(fAd8uwN%qsSUZTE*tu!?Zfocx zFP z374JyflEWxGL%6}2r-*;-#~c=G3Xx8O1A__$TSLazYB-vxInTy`n8`<9Q3?myc)fR znK`XOuq~Z67`T7$lg!O&{s#f_(+N>0u|L; zn~R6Ahe-Ya4Zl_pS;z#F&qD;^)p|P9Tq%72vv~Dh({OSr`cMyZO8z@e(hCkDAXG9a z)%(PyUlc4HI*tu~UZ3+UaOABoKqEXl-9)F^A6q61Bwjt0Ktj~DR-TkKXwRa--9)8J zst16O7`=~)fCoyycXDEksPnaSrZ444KycoO!7kokxp~81c`lDvGqFF#QTV*Ng!=X| zg5=IGn=aUBP(?rHFZ*Fp*{dRM9I<6PjvhXYN)ZEc=9X3RPXu*_|?){E8Z zejVMM8UQ9u>xh>yVGq6RW?BhmKV$-A;!mJ2in};jX|$0M@}|mBY|~rJzaJZ)VjZTH z$=2gP8~m%~>j?qU=ogO`K!m?tuqSE6qvN&lvNQEPX^F>x`{RJu{OqwZl!GqF`>7Ie z<+PIyi#ZY_?DkZMr>6zp&|%h;iMGhH_?}Lt9sYb`gUsjWsB!ab_bNC% z>N##pWgXs+9|p*Z>=er{F|j1_7t0o((^1)3-cYs58*!o3q-zz>D2C3Att5~UVh8P^ zF#L2qdKn`DjSEc1swIixHe7s872*bro&fC#X~_Ja&4qsZs|)JWFnyKRJ_5ZQau9H9M!+fMyGxb7W=vV%KWF&;beLLa*DYs36S5jgD{rC< z|6N{LsH?9-4VPC*Ot(@}IYjzRfB)uhq z*ERvDpfr`6q_1QqbPETJfs#Fb4lew(9kiy;%|s&OKMjOF{YWsi+9`b*a>7NzecdIW zEsg!UXtb%WYy=v;ug)x;N`8En*f8}nh{&{SjL^@6i?wh&;HM51YB^~?mlb{%js=iz zrvL$dY31|ZE_+%iAUCC0t`!uz7Ng&-IoHDuKHCG6OR2CK+&~!vnAG3B6j|Q4bQ5Sb zadD-*T-eChO6i9Zem5#@+7s5@yt`-5{U*-c9jL47H{G^FfYQN^@f6+5N2hb>`m|9nZZaJ6i3B%f z3J?#ysjQTP*_Z5>OlrkjWQ)w^8@v=9@oc0!2WLUCZL!fIGbWd% z`)~ohBawt?FMto@PQX0I9`Nnu7HyRfZuaV!&&b^v<4$gWA628?5*qwvwt#rw2D`Su z?mhlo!-}Sd;pSYgjVb)emLT0M16$oR^Q)``$t3pbjoh0Z1SnR%OwR@hw|i&eN4wmH zt|^1CD2K_4hGv(^NhVBZR0jMh%w8=YzM30_mB${$6gN*e0DEyqArd?#JvVe@*#JQ@s!2D9Y{co}VBUmPHtCWo@MH{;1ZKV%^dN%X1m zfgT^THqEeMpN$AuUfdOnql7$p0QHXcxN2k@ zseD(WYA4y%RGdQus1y$E`HjY@7n|@9pbn zE(XD;MmD~JRiVAuIJZhHA5AfMgnwa?Zx>oP!?g)RdeF#}gM98hJPcA0zA|K;Pp?%G zqY)L51(U%iDDsRlrl(7=0;NvF7>vx>J+en3{x7QP+E_HIRDip71; zpD_}=0O7yvv8dE;J{wlPR)E#+t1mV|y9(&VBK%)N9{Bc}Kb_UN9k!qdc+_Dc#M%6M zUx2;W+$z~?6Q49ET)E6gnNyEE9bs;H(3fE}@3&A#=`gtJ%#Tsceb&-irP8Aq8r5UZ zXuj5kzo^fv2Cw-kOJr){(qkt@Bz5+QdUe)1A*FDaUUyrdaiDcsOcoA%-O*_&IQZ}*!sY)`~ zk#xs6~zPQKrAu$zpsI7zm$U z2e2~$%+|r^BAMw+(oZE)B4fI!7f=0Mo958}hkza0p3OjhO6%A{{WYwgsE1zF234Qt zWJrH=XEvLCL!d0UJu46UK)$dEI8D{r(?UT8Kgi ziB~j^LqMC)RuxlSHyv@N-jtFT_^D@up4iAk1;>W;z$+~d68h8SQXaAybZ(lIi3dP# zEO$HnKwP^6H26BrV0ycaUv0(&1uVNFQCBYcWF1^}U_qogTFRzgqi@?ijME9Y4CkpeY| z3sCzbb6lG-6D_(BFo<3w)EilOZoiqhxrTXc#f+uuJE+$Q)tGH7f2Iz-#utjFMIF}9zMx-p6 z5)_Zr1Y!b?a_$Z^q)Hf9szxqs;#*1WRtqU|*i^LqYR{^sk)-4M zx0k^xADV$Zz=UOiqVxgWiSZa{b=||lLszj(r^p}O9gGvo_l(`+C?M~qMAGkz!Zzl} z)UJiLlB}AP_sTdXd4==CD2Gkvo`;3P{RDhV1V!s|q<+cUjU;e94ZMbc$oz8z&FN?Z zy3PfGpdvTpmGM~^kEECG=76JAAq@2Iv`1YD4&;cI4;} zc~oyrsitO=fI{X*jaN?E^!zciue?|q zs!uuDsZ{esPu<<2<^x|g z00HaQ`4Y477%&$x>rClgFhm|4yz?V6?CMt$nn9&c{xBGo%6Z0n&*ksA z#?*JFeW2YH589kjpoHg$OmATTYO5yuZI6f?sH)pJh}#UN4?Xy<qs4ChgU8a7i(61i`9i4=byjI)+ND3w`~E?*gD&IKdJ*%)jQSf}#fhNGB9g0zS_;ap<&cQE zJZ4;Lg>V;5u=g5w1&bmUwAvCF&;p4X75JRm_Esq*uqDL8#b6Fg*L+NMi<@`WF-)ji z8MZL|XmTV^81eO$;1r;3BkW}HpED~(;9^*_cP1pAVZ9xU+qw|6wy$1=KgYAa zw}`f>BNlfq2LKe-Whg##(;J0Fr$4;0vAQ7?uqmkE#XbDrB-!Uf}1kR8w zVlT(byBmxd$ji&*CqYyqvCu*VF9Z*ETw_an0=(8Jlr{rBbX zoUIJyXkO7iWFl*EA|jgbF?osc*P`-2UpqZD<5ftKQYa|$vxl}+ZuqJJ-{`fKgu4;0 zEmW$A9AaWQm`OI$z5~;JDpQXK-Gh=lb~rBhoXr~M0x*z-ibmrIr8&OQzhRQgTaMa9 zHwn9oPb?zYAC#IMq~bfK{$e8bO=+tYig0_U3o<$F`7T6|jkTBHJO%U@GCZ1z{5;+b z3h?kM>qUmdd*sMC{Zttvu-gmc7nNH4vV(?nXDWl#K{L6`JzM47>x_lIR)Ue1^lHws z21q^B(ccs5N|laMRTcrkNE;dQ^ius1S@$W#$2tnIOzL6fjR}V&sH|6yb8lLz-(?1rIJ4sL-8d|0e1NdKOg_P8}=!_A27pD+Y=xekXFWD0pKZ|(F-Td#WC zH?;s9CVt9curKLmF`AD%!P_Lz{6d|;9XNQeJkv3kw(p5bTm&@PWfrffKF0Nno zLy_C(`970Fq)f5T?m{ST5tA&&l5+>s4z$=xriBITQ_L6C)|Vo+qwnBKJcKq6do+9> zYKSbqh+I;rnnZXI5n0~dLqkk%bJ6IEb_w6O@p>U&jmZax4xQm8R+5{(eMg;xA1RGYxm;6 z{<$BVBJ~y??Ob|gP2p0)W#70~6uZ&j93D2mm=To`>_*L3r zMRMQm_2F`_x&$>bmT3Ir>teA0rZN%i=^d%(8ER)R5SETx3*^rLkS!!M=KSG-7uWAk z$vi!1xnp9qSN6v3{8#oRy>eNT?)=4VXCUSdfp<=%QKro7{!&PSr&8T{{+t;gGrv$; zrdid(%#a9~)x?2Iv!v^ng7NmEO4h`C5>jm>$KZh3jT)FIJ5sMah{S>2O<*$t9EBdPZ2+V{pfmb+%NnmWS&t-Jh&9tA51xq z1{3|l@g6=F20Gb(eGb21LnZzUX`f-hUdON!#j0ymD{fR+(n0ZRXW2Wq?@MH-f+{iW zsUgO(F#r7EA48+mOX%ZBt=t+RabJ~3$v7`a8iEYBcYH^ec9SY0m1>J%9uelH59j3f2+JunOZ z!$1ugi^x4rjbDw>0OjsRJV9w4&(L~P==Pt&$eyl8m1i5c92FmZrICcnE2>%;Do;(0 zhDxvftXxPu8CejrF210hy>isB>tZ?fA=c3_vBx(TMu`u@Yw9y&bI*_M+xN2kRagx9pIys^Q|Sx7v$5e+`n`iMdAj@AY31J zVK#lfLX#iGyvkAogg`2RoopuAIWc@LGIJPn{0bUPYot^(sn7`|eUtwt!sLY=?0*~Z z?A?m;t45r&4!U9y<(BpTmu;oz9KQ7|tDj%1T-hkoVQ5fMR|N&C zml@~zHpb<%BWHoy4__=k!c&qju}^FGCG5$@QV?Hm1(R$TJE$I(o4EYH;2SOUjsN;!!b>t+~Gbs(UmFzD>wPLu1v=x$FE$GC4}2O`b`j z&rSE;^zi@3>F<~~Wpm&5jC|%FK)@7#+#c+kWZux8*>o~<56o9S1qvkC2u>yg+PGcS zi0_DCC?LdX2kX3D9Hi!2$l3n~NHjeTQ{75(iWZO<^F7>EF?o z<(MPi^u=A6+UMOl(XmjK47H{DtnJcCh_y^SI1^4@Y>uSaZ`3ICXT19`s_m0@l5rL8ubmh0~I~xIv{|JZ$-qX@)7$ z!~WWSXv9=UVVeuq#WUVdsBv&MjmMQztpouH**#KaP)~fwi@~*5fZB{$bs^!7MFtQO&BzXt^%@GRoEsW=u1ZMg@(4N`7 zV8MpN&`{M{X)b6DA(st6*fp;lpF_qH!Pd zD@WI=1sJtlgkzDK(@IE6O_VSkIFfJ&V>RtBzRlmKi~qkC0N&udq{!B-7)8_C*-=mi zjr4mAJFE|(Jai->xK9rHPTeruD3TzVcERwHPQywF6g`YpV)kT$YsHOSL*b6hLFjLa zxG2cPH~C8Ru@;*TLjip@maBi!>Ru)3ld6&@O@d{Ob%u0EQCRqN1NZ0{oIUt~q4q1L zu|GMroy-ZBW9thlI83KN{L2t)QxnlWUEwU{Ejxm{AEB z8|JR+^HIK6SFGSdWSm&5YX!=Fp}LQw;CM_-?*uzfPmV-p)hdhlyS_N%@B8l*Z(FGL zL<7aT;i(Is92M-&CzE^m-1fxfT<=~#p{S=f!k1FrWRjkbjGavfQS2MV#HGs#zRM~a z3;`K(CegR|crU~5ul4*B;u$U!N`h@Py^nnwR~AwXZyU&1MD#!V?Ir*sY0i39esh|7 zLj2q^fG)@vdiLPV3e%W2z$m1;XlckW1#yslw_o;xj3!xJv)6U+2Hv*tdG(Ag*_=$m zS{QSOf&_}ACL1+5p4X{=vkSNT{r(m!dne;u`qj)_i+XDO2O&*G1GZgLb{8g{>g$su z4wXDZtL_YC{VGFXtQ+wGZ7i5r$n6EWiU_g{-w!TNDJ(Y4j1IFKNU##_aNytN;Rcx) zHWauJw zrcAZ;>|z^=;#-B@##o9*w6*BcEKU({Sd~L=HlQOe4lf@$X9`>$ROa zqZZaZqBdAmwzYX0mu~gN@*jf7xGynWIyv$#Ox0>a~Nlqu5(^~6fL}-d=YxI z+G>v^?(_srjDQ9@R8nGy;HcREMvH}dbp?Zy-$F=9NPMyA`SNx`O6I*ZhL~!K5}Sy( zGm9jNh9n@G#5WqjMJL(ZuFOc2@udG&Z(KylhQRh8Shj8^_E8I1tZB?9xQ972${URi zSmM5e22KSpcq|Z8KXBXE?=|RLH0~Azq0Ec`@W9QpFHvqpoytnLXCN&OYui9YDD#RFo*>`;5OuBz?DmaiN}yM7flp79;y`3;))=GRzOMQfzwMP zlF!*dA{V^t$%ri){aMQEX_tmx_p}hg#R8$#>~POG)HT?Eh$vV1rMxxS9AfxQuoqQ`839Q*e0Yd|MC`PO zR1)^jNX(E~ec(~9a=vo;Pykm*?}=4z8I;s%Q@Vk*k*ay(!DQ73&zCRhAuSpcGmW{x zSmqVyUl;MtjZc41UzYnURf_i=R2;b|hB2faH5EifOfxXO5sme76q82=RhIJ4HL<;B zhs@r@?RjCLl{v=2muX>QhoV&7Q^dzb)O_I=`O&YCnSoh-8XtnX-FlCYQxXT>2ur@X zzrDS~Fv!^Rvj0Ti2GsR1!I!JhRid5!x#2wjEr(cVoir&tM0%vr@8wk+a}y%ZPz?N6 zAx6wvSa=pWHaa;~L4zPTof{d~HGX!nkzq$F&PCVsR_nT`E{y9ZWd?!mL+FM7ZB!-b5Z?hU^dbv($-B{o@Tk(wJ1&9+-4X*pYy9>VA zC`VcH-TDFx6&>+-ypo-8(cw?BU#0|k{o%XYe+q7i^?ZYBwa(6Z? zUFn-`)rmceq2Cg}WipH?Xunv4*i!xOW0WDQ{Y7dUw0iBidu8$FGgFpFkqYnZ&3iRN zy%~*G6xbh`g~a+A*|jFdEHhk=SM#eRI+(~QEHe!U5kZllH~1>g$=5@Le?GPMP3?LBSYC1 za^2ftbT{;9S{-3mQI|9Og^|Lr^p}O-v#+04(0Ui^G6uz_`~qV{vp+Cf3`2#9pH2h9 z(h{2hhv??mrHPxv)!U-)FK-tf0yB`x*CagU$3$m&oHf~M#!1faZbOM4v1ET*y8s@D zeR1N^@>Zj9#dQwB8b{}YS4F?_B3sMk!gLv?&$>LMI{Sw1%~&;_=U)?ljeaGuVakU6 zTRs#+jBD@+6xn@n~-k1i*c~$V4RyE$paacTCmwu&GoF>U5Gvc3I(s$y1$g$IT=dQ1n!kJ&YZk zr}7I%ZLnY=)?CbGL<=LTyOc+&Q4O=LDz-gb4pN)N7_^JpZ}+b8?cI2h5Rh>$I5U*h z^OY4$z~faQLN+xF9%XzFr0io&eKmm*X*-8ld8w&NVC;X6myA~1i&6heP|O~4=*eS$ zL|IzdoqSH#eCLj+Cprh?T%YFkT}_K?M>K>y@=ez!jVEa)7GJn@Rc=_Dcd#8j4w{Lo z<`*pRA%vX?re#KkPsP!;T5ZQ93{B}Ze>CK5XQFq$<`tk&_YHXjfqbP%2%Z#ev@P4$ zk&tD#AbWY4q?LED9_&RrD^87lHWUpX?O3T$CNe0(=U;p_1kGQD33mRIU#x^Lg&#P! z#-YaeZmSCJBkPl`$AH4UHju7O8vczs`e1>z_tc~wiCeI$8YWh8bOQ1H$Jsf-#$b_j zxsHmuN^Tj_L1d7y@YpMlgrx;00S>F1_7uce0=+DHl9qoY)j(x`U6JR0szaLINchHy zqnh>=&h6<%qPO$Jj%OhGxp4dlb(CZ zkfju8*xlU7Q%M~Lpdim2Cev!_0T}PK3MeT6?jD+$vC5|DIs1AyZ)$oe2#;YxnnzQ2 z((_^?W}splmMKeE3L2M^skrLVC5IU%rF}1f%Tip}u>Y~va`m3;vEmiGWkk?nx&q~a zzfnel3PYEiq%<|ApO(l+t}`Ev^ZCaw9A#D+dMRtc}HXea_FC_JK;nvehw{`cXU6&8oqfyQqMf9yZWlx^M zS9+xB_w>r40i*0X5{efo5j*j5Z?B-x|3Ku#{fmpBtUngC!`tu)7}}fNsrSJw8s+o9 z1qGf%jxxL>lf>F-Sqo0mF)jgIK|etkBMdiu@(9u#VT2RHOv2f_%H0A!0{927jY~Y7 z90w!w8OHo8rp|6@+2nDElWr1f&(u}n;KE$nqtVBk7IpAq? zh1-==#j~|ry-SMUY_c=J$jaQ^3?cdbp+QzMa?_Fbg?;vT^$R;3a79*x|4q!;;JX=f;M`#i>d)xgPNVjSa5--E*~#1hbXn?S$uB z8vQ(Yn{mK=Jhbj9C%PmnQ>d^tKQPXaNm``+-^Cv!z8+#DZ?*07LAK!pDT(0J@iie* zRFOpfumD-AXgW%j=yuKo6f_1IvghM_n}lQO!2cet-f6RTE>GQP<*g3@?S${UggNEO z)9{iq-iJ6HyV4B@%%@XjY0J>gO!Dm|w~WMg5?Iee+CPnR4tD|Puvly*)0Le# z`2169FIks*(Z4U5gV|W5sw5yLQZkXDCke`+mW<;_j!GyF@nf9KlZ(wifSPjekDDq^ z_`Dazts~w{BG?bc`x~di2?y^wk1S_VwMT=jqo3WnwOO2|Ji2nvMbNS8Ero4<63*>| z2e-<2KAuBGD9gE&AP-3Rkcf*jY*^f6OC-fFs_~xhCrspa7_{Qe(t96rLGdjCDn`y| za}l(zk@;CB@3khi%Q3A!&S7Ca961y*+Sm*$yKE)G93a^v?bSQt>vnBTX*KvesJD65 z4+w|`w3M_zuYL6MV8fwXIZRAMHUWgY{NYADtLjBm>73C?4Pb;S!X^pGXTBCrtD&Tv zeNH&s(}}LRnApdvd+pfY(}gtT)2^Rvow2C<#6st?{h~Px>mQ}AsAz7suOEdD(#!8HyY=7a zS527$DJ6gQE0(N_D_GdGcNHtwUd*NLuRwFQ9g<-~y>DTo7g!bNEu!P(ckX0%Pr*BT zFC9#Y$gyAqb^Lr7iV<9cqVYD3hvc?a`Q@SYrO}Kh2+Wf-O|0B)d*I zXp-S%jAJCg_~BTno9kh(BWZ7(? zZ@+?>59njwtD1dVDB<-xxoBbL%WOUIdB4B{l`he%XQA}>w#X$z$y*J4$$#8E2VjL! zvr+oooK^}^^azwHn^}eWLZsS9uOE%D{dtXJMH2NVA%7ochxzKqm0ZC@Z#;0BWbZ3) zmXT&R@ao;=ElMO~ge>Y6)cHD{IlLX@UrR+F)CC}|S(Z>=nefB`Dh&qpo)F(!aNP4x zPXaIynvhvSx!-f$nYL42zjJEl3ua(Jcv!QOV{~1l-GWvJnY!kpuc57e<&1@tl%^{n}i>IhFm|=^J$&r5>Z{+t&{vwKVm|wbC zLnKu;PT{DQm&G|flW$UOv|0Q_=m8xEK$nQ%ZVRG1Y^5W;@9)oOa5C`d-ZMOS8~Nfx z6$!7v=2tu_X74sQTVRzgE=)+2_IR$!p)o_iRWcm*Z$((>eDs7Lvag-it7*)00g?%! zBcX#xQBn#oHR6GAVu>W29JzV#NwOr_pn!6;;wBvYqL-obI8jz;nH3;D4bL)ief6ol zJ?_wurW{~kM7x^6_T>a>svZ*u{Z#N?9bqxPy+-eWvaT!;Nm3h>gZM{FJ2_wcFPdn3 zwm=!XddktL>3ecnkXhSF>)&1e)c90V-`~2VZx3|zy(v=_^0HsQtLO6YAZ9Hadlr>l zZN0xoEEx6eyL7K>O|aw-n!I%topQDR)b$*t;|LCudb++jgWwM8H}3SD`3pq2baZ?$ zU_0CEXn#>Y%pw?|$+IuY)t?6|pn&ET{;7YwP0+g{#~_2qPnu4&YXs*n*zEDp3X~p8 z|Fl^rD%avWBIPH0L@(#;KY4f=WX2Vv_ArFbS%>iS-8rPLvE@FO!f5$i1Y*sE0BBBp zV<%DalKYf?jF(vRdltZA%yL-BVSy%jj469dER_1Q2 zZ3Nng2VwLK03~U+u&w-Rc{m?PK!HJ^O8U+vK?d{4^>o^?Mcm4vC_lWoR{dkA+j}PP zDys(TFFAmp3hdqx8^C4&jbY>`MOQ>(*y-MWFXFo&z;jPB9iJ=6!|`Bz)&2%N9PeI< zFVj)pbTTo#Q;H$q5j|FKJ3ko!)DhaNh$|Z%o=~=aVW@`K&&OSGR&*4BR<8L(eSsFm}?f6wc+h<$ao-y_&f4dL4ly56MA zURx<+g4X~}+Q()!cA=ksLeUgbbZZ|hl3YyN@n`mK=JcPc@f_e@#aUl9VQCJ9U-Mby zKevK~mR~i3$*XYtY`5mJkUhBr9yf9SM5W7l-X0 zP(f#Yv+hItxeMqtsE?VLl(Jc~=JoW#n}v>=ZzFPT5pNp*lA$ZMf?(r7gL zYwKfFKJNK-;~~BN${e%B46M|ZFQmz4?)|l~E+7G>k(HeR_xsxygZhZ+j9!<%B9qLZ zC?;09Qz};83<-Wk0`^*000_`gW%!NQ0Vz_?XGZHrTj8cMHzwT z*7yCBKIwV12a6$So)R9OQw$jyZ+}$~qn{ZsbGs3h0B`8o!iu~*9}d!IL_r>cettqF zDq`=T={K~gQ799gp%22xpUYI)E?i(jhzmjXb2n(S5Z)ykh)eJw5jDoq5WQ%;gj6yr z$Lc{}xW8LzWcsE$J!v%hX-1}V9Ic`A_9#w7#2Zqs7wB&=;=i#5@-Z-vJjUj}Sb9Al92gpSb!FF-p*gDB-R9KIq zbZEqFUS#yO4IrZUzH4+HG_`;YK# zu*+U;jB|qj9qu_Cpusv%!SJ&IlOWS9M6m}UT3u@fCs2qyqimomY@~Z|Y@24>kVI$Te8rp=&Mp8p`SyI4fv*%&0Z%+ye>n$RIjheGB>E zAbOErnl_7O^56Rcv+|4WKd-FDH@y}Pvf8%yATZo^$A9U_Uf_kclw`72(rH(4XNdJ6 zSOUdw&6eE3u!IL^CWoxy#Tv zDrAgj$Y(IipbTTb-C7=s=vPVdQKnOF;!o5y&KfxA)5lG+j(-9m^A2;knuWne9WacUsAJ9A_@7eUrU8WcThNT{qe=^A82v5ZIkbWPF?} zS&-TiL#>4PfTNL@1Kf5k$r-w_|=X(E#~SICxugB2w%O=pzWALNfJG z&byX0=NGIZ5$sg>1L0Mkl0Er^`82)`>a$F=etd4Kv&8LpRk^W6@F&UJYXClv_0QlS zrl?Z`=ewDG%i0lv8~47rXfuUf=d*WI2)G#dq-mOs>$anS)f2iL2AYe4vqan919VVQ zKy=}LT!YBj>Ij}NY@HFU+Ju@T=ENjO71hQipR2r+BzJ6AEk#RT;EX zGH=<69M7yX+Q}1j!$U&jZU9t2lkfIwU!mU{D zccnOw`qjqw?C*4xYzGN(>=GKjW=?Rd@*&5!Br3VNQ8WtZ2Q6^4QHCRQoY=?yUKZ6S zIvfMKx9oCb%@%-LDnUY^>J;KUGhE;FxE#<+1HZiq!R+}aFr!YH8GD+Q)wx{z%a$Eg zzF22z?auGhAPm%5bZ!D(>8viDsA5gGrMk$pV1Q-l(A#ohQr#eT;5b`ky1VDZU5S+bf{?2 zg7Zp^f&vwBsdVZ%ae6a}IQly6ke1S145E<%%>IhOeK%5yLkR-@2Ut*Q=wa=earUWk zHqn~~v3KdOt8e{(e`-XbqmBPFH}(kxvo3{oe4gE+O6Qj@c^ZaWA&v$-O=Y!++@8#j zn)4p2WIfq3T9-_vynG5;b+K={#OOis^kY2Z#)8)I;PI^oYJ}CTAi`-F6C8(s?d17X z5k&8}8hm{NxT3RDFg|FBtOu)O1A4biK-Y9a6VnQa9}fon1K#bK)b~oY4;V_Q03>&N zCCEJ(hX;lpscyF04sMHd_ks@p8Ir1ur~G>Udbe8!Dx<3`rw~&$HV2w= z^@t&mtL<*c)YP{l5*w`VM*Ux`~q*Phk@ivfBwNHV>C(D@po5p`{m zbecG~Naz8StPWXqS{SJOI6)AX*VoVqNvs9`q+~DosDxvK=1y4EdT;-$H%)(?d*PU zF$8eVM)uY*V;STrGTqx_upm`Jk6z!J< z!ROSa6(j`loo$2;hIvP6=jL1&0R)b;0}GW&e>&5C)jnuA){Pd6rhmASN)pG3^bz|> zKlpOVO!4rOMaoIJYT5Lj<nP||AMT|lyVmk99 zw=43*C>462)26Xn8WFU?#Q-vR(?T3KX$Gbevm!O5>PK~CK!MOlswPZ5S?~w>Kjk02 zz<2Afl+b%0Vzi>CiW|=hFU!?Pyx$LelSo{r&^k_@YzuQ1bhAe{Omi6UV>>Q4&-|NS z34)_(a>)6|+r`#@VAfM_gAzvJd%_aJsX=U@5aXAxPKc9*+rIC-8|w}xJye~SPQeUY zVF(wBzs+8lE&!Lt!=;7+``*Wf104PADWs;<75uPbQw z!sTmrq25xMYqxG9WB{!A3}_=@n#B%-X0Glr;d)0t!$*gR4N}v_Zk-`XBIb=F4*6 z{U@C)2%yApbm%MjR=s^F`XM4mL<1sLVRJES1X&4eZte>@ff@Mj^ES%sMgYf4c$Snz zKIlrB5ctI}?n4OFYH?_ml&*|RSr{pzetgN#>RXAeivFCT0L0t_*e9wIzTLN^afs33PJt@C&+h zEkC&-a9=!spFW<)4FUxv9W6B{B2HE9E1R?66l`+z?F_9C1P4*(Gi&o*DUqs-JJ@gk zlgLE>KEwR$8-kne8sl~+1A*NxPh&yvJAe_6w$QB!e-s{?}1jN&` z+>FpPxQ82bI)}tdoveWy6{G`z_y}Xs&$ze{<_)_nAoe(q%wswjfpl|q4j z7|2!Pfb)4C{WP}s(MEj4jsSYrqjzgt7vLnA65Z%{Bq$iJtl;%{Y=I z{sit~ciJB~!)nc3(O_D;MK_a(^dEi7?L2E|!_iolxujn`mobR}C<;Ht6#sqy*SD(h zjM{T;jU4^^TYGl17*t~5CsS!+hXPf#|Fx0@%ercp{l&f1aFLJo7}e zQy>hdUPtPMk2-^QU<}_LUwJ2?Mn1rptbTm&eLiXo`TLbIGd`z@nfegTlL3Grk(~b_ zA$#KF;W(N_)-*#}3#cP?3-uY@J=4C!0H}tR3?vdl`Q$i}E z7-@Vdpe0klHE{xm$!_TxkAT6szD%Mb0}v{mqE%%n{L_?FlowBe5e;IXWm2Hd`kRm% zD!-g)$i}M_cazHW`>{|JhDok(k%iI#Z!3MZECE#1Ni}JQ>x3TZ{509~AV$FIW{Ztd zC8J^(b+?tefdx3Np3 zWt1{p(FCf2QVQ)<|DK4aa=&2FL_rcn#%dFg9CqG4oizW#C8l?7MK4{hFYdU`a$C7~ zrjW^a7k0?z_yAJ8PR2+5FM3!^vRi9hZvv%$`A?QC8F*zbjKy_M;kL4V)FChzbKV+x zWINm?2Ws@9Q3Ljky*puyfsw!Uk%xTX6WVd`3l^Ux#xJ%!C&|&O3FpTK`}rq-6FMYm zHBL`ENUJhr{z?drVG(edC0!#d8g^N=fFU1Bnc{W#Ux|DUeZ@Y=<)L#eFCf25!ei40 z+R+j*{U+DnGR=^J8%HAFV!e2u({*v`2y3HtQ$z_eb7r{>hd{kEw?g7%<5!EiAF&%^ z{BHWJ_feVZx2Yt>DpU+ckQcGxG9F2gBmsKCX}souS7?OY=LsKMuWosZDw=CG2#9cq z6o;JI&LXf!x?;sJzP(kr9t5dk{KmUzN(WaB1^}blBi9rY#ZujcttZ*Rulix%ye2My zxp82~@V50{BJAYU(i7xtk^t+US~!NNcI;;9SY4^sXq`B{jo>-_1BK|xfy1uX<46?6 z_3mWub7T2x3e{tZAd&XRIp`mYzVO33xR!L<@WH8dzzjVIjCt}zFYCp?>-)*i*O2He zi3e0vKlb2{?nuG4Z`1se;!fVY-d!{wSha$Y$WIL2ipqHMSwo6^aa(&u{(hZ=*w<3Y zvD>H{`ZSoLAKY1+Ytnhwc+dUjGPlBl7SstlOS82IW)ug!G9hg2FS< zsxlR1iwie55HSC1mm{;epK4Y!TteCXp3-w=C-{-hU}98dTY|$`U?Kt}dQ{DNQCCPFM?-RE=j& z0fCH_)M7e@Z{EfiznLg!Kt~x1KQ>XUq8beH=TIbI@^-*zktA@3_@)3#s=X4o7Xgy1 z=meFz&vf{=FREakNG{#TJ*C+e!F*Q&x5!_I;_C;(nqESuy;uWvdx1^gWI61ih2(KK z#`evBaWfg?Uez)3@@Gtm2jOdnzbSTR&_Hx(#}gq-pq?}86ED$81Jf_fw}92eAK2BS z(U3FQx~P3kUS0zb#H2v}8gi2`X;3d|WV^h`NzcV>ewBxfN})p&rZ_;Mwq1*g`e>9G zT|L7GsUy+mlgr^($k58}V^o5%YQ-^htayAb%bKUQ_3W)P8V6*>Zn{&=V&K6@ovIAE zX$crlP)VV(PdwPpIOyziz_5X7S*m9ij~_(FmSb4?wW%WXBMUj(P;8LSUfnSa2!>}G zJny+^ArQXDg$%j=)qY`6GcHz+0)JL~Hc>V%?UIJu*!#NnSzL_i42&JM&w@`0d@$wB zT45`3#THWbZ#@Y3Fj=9$let*1N>=vwvd!8e0~mXgx05^L)UQO-?`=R0?`G8ZBXxIQ zyg?jN^u~s^Tx0%6OPt)f0@_|0!Df<}I7F`uW#z-F#ZVx+4y=HrgrY{c&}RLblFNk_ zjgu=9(cLwZrwN&c6`;#xs=7_I&!TeB3dtAo^kn4eK9qZUOeDY=l7JRhvNI4Q1x2$o(h9EV{)iPYSeKtC4J ztwI42kC}|$cpJdHWg0fFz*@}x4c5}OZ1rEE%PJ)4-lD2q%09O`ZGFyMj!i~pGElJU zB6(MbyVTba|9s5h|D#B#xzYgGu`G;52KZH9??}g z3W9i=1mLHz3|E|t3A{@`W}h=rHq#|)riMyLbsQ-jqD*+OsEnGn{IUVxO^gR6;xXT{ zwNx@D2;6?Yr_1_U7fose%%^5_JeP3>-gRm)%Hf~7`Y6BU_;~j+4z*HfNN4WvVv5+v zD)!3w2>kq{|I3m!4AP4KCLXkBmM`nuyMOe{q9r-hmi@h#pl&EE`{Rs&aa+mufbGGSHu(O4c?E0f-~GfJ^?EM4=Eys!)JYX)iXQw{cD4BuhNA0+^XJ z>I3f<60JfS3Jz}B9)wo!Uv{tDR}Sbz4n;dSMowUX8bN>xtD2|mP~-023zf&Z)ev8% z9R(TN#s3=*YZnjU@wGWu8IFi_$?uK`s%v@bj#O35xnU2)!zQ^(;m6#wQ0t=PD5w1E-tG2<^-(f_3aeOg+T4e3gzm!RpsJD9F!o%N_dr}!`$^X z1nrLUs;Zy>T`GtjxYZ^f%qHp>3^9NPphtBScLcs)&en}Gv}X)sNnpa-{2Jer1gSj` z)Qa$}(bVZ9{Te(quI&bTb-JG+b$HTqN@Nm9Ap4#}r;ipItb z&o9=)>E1YPh}oo5SU;;-?hfV+-eSUpgU5gc;!4%AE`Qh!_;vJ#Y!=mjTI+_Aq5G*8B)7+yCezIM?sxb-JN&SOBUG= z>i+p{H7X{F60*3h8kN~CQNxo*@B0TW5nt0&DG* zARsCGf1#eT4*~CCn9m*ShJ{Klf)eIIxk(!>YM<1f^Mq&zJSrb*3{jmNVOGEHCQDwh zlW+~XQA$$wV{SN72pQ95DQc?yA#t$23#2NiMPf@U5>h9YfS`#btvYaDg##$>K<396 zpT`(QGVv_pb1VJgIwRZRJfp{rEUKea97uC!KYRTVa>qo*8#1)!}7PaC-j5^ zRnv_@RF=-{f3^?jsc`xI+z$$x=eXM8_& zMjfAKb@Ba$77zMPeNV31DdeK;sn~UR#%nb@PYoMoa9byp_CnlEd%=NIqV;Voomb39 z7LADcX_^X9=`PTMP(mLn>%^y1q=izLIA1h(BMkMHRLVYo|@ zlo!cPtysBEOn7u%SUvM_9ejMt@TM;#<}MWHubixgf#nUh3-&ec?qY;(PNt~mHz$1o z00h@?C>BBrvv&Z*?dEXdU|wEcLA#;B?+;&{v{(3xKeo613=~O08YkKpW_N5jJNR<} z(dXpv6nSq5e7cZC?Xwi>rBP2UdBzgs&W#*~XnF-{xMA?Lz)h8J&w!lnNeN{hB<;85 zXF(Z%$g5228!P0taHDA($LmWd*m?yVMynUpse zqwkjYJZq4E5F}vMV|JgHz?&4}p5v4&MV(64r0vTTLEA+Fr;;qybVd>7+Ut=Ey!fnR*l-2a|K)n-tk-bnY;fkQB>8sW{<}WC{ z6K4pE=ev3&;zu=MD3IWXehmioy+_u83-X5b!0MQQPjDvw1(EA1YT-VWwyD9x%$UC1 zfkY~L#SO9ZQ7^f50WCh^6{OuH_AVW)&ieca7YRoH8O`@4V{E4C0?`EcAKjLENnvvH z5&e-&(EFidiA1s#4)u+O*;D;gT#_l=pc*q2Kpyz#5kKV@rXG0CI^GM{##x_Tc{(}~ zK7l_&5B41nQwN*fzg&|PFD@vLWQsHu3C;1<_#dA5geLN1eznM+M+Ic8{if|Gy>i2H z@+0+aETL3Tlza@E`vFv3acUysyZcmwQ~|@BNPBIBZep0mC!c-Aly90on_0*p8LB7) z&9_u6^J;t_e0a%{WRk_p6|Jefta zM;FS!49Tm>K^p<2geh&JFkS?Ck~XawNrO`pW8Q6RuyR3z!;J(4cB1j zvIP?z-~|L&$2`oesggZlG)O}`?t#fqwGvqq!v90mJ4RR9HC>}gI!?#7ZQIt4osMlA z9ox2Tvtt__+jcs}+4u8~Z=An-jQ!_YwQ5z(Ijg2h4%*2P^&13K!M$g_nzQbUIdM|# zMB@HlAra^cdcl>zxyX^5wXiCld{?_Av3mS|t!$xggI}U~m9mtVJLI#Ch zl4{FFt)%0k#yK<_A_ot?>Ra}*YM1A~{!K;20-|0QpGKnYOG6wHni7>4Oz!n?7g4@S zT@F?&lp-+@uF?l{JC8woSa;t+T{bMcp@9oyG6*&(l7-Z1?*QE1IOz&h!zgY6(QB|| zks!MXB8`^mPVQ+Lz@c|-d*a0pANzJHj)L9W@(pK4ffGBT{*u3q_kN6%EGy!74G8|z zv14n-sWq1^ovSQzj0)y&Q)$+>aTuvVbmlCbnO^Nw+c$$yzAn8GZir4MT;wn-W{H1= zjLPgHfhA5anmb6H>!Neg_}Z8FmMiuuTQH}Wub`I}4g+8~i!KCn+r^8Fp*CM7~Dx)0PQL6*gN>;`m-*~TY&`HP; zlbL9XELdW9P!^kpq?e>uLC+32%;q!jGlb@V8buR_9n@~&>c|}|M^y8U2tK(5Yam5J z1PZ21f4tXDe?^-x%8;JOGlAVXIA}rJQ#q$0r!6h`9+af1{+37dx9OQRnI;`FunWLs`D=tN4v!XuY;xJ?MYM{GtPd|A30l7b5m@l|KTZ^SP^+Y%+k zJmVQzVouY82)CySs$ecbmM?}DyhtX|ggF(oKT)5yhV&v?c|xfbXI9@5MX%rv zcrD6K8Vt3Qzt?_b{9XrR&Wr@Cks&Hj{nxuws^Ub8#$D~K*11(sBkb{ra z@lDi3ic#to0Eibo|H{%C!4m1DuEA&di-7$f!&Or#Ljt``-z1fgP91mC9Na0v`tnQ- zk2wgCoX+pxt(OK5?0yL@1V@k9O2o!cU$%Kr4$?hsPRA#3ry_h7qd`r&$>ILKThGx0 zG=ar`PZq|>Q9YA@YoV-9Jz1Uv&zf0;AyZx!kHDZTUia(#dHIv-$7y}Y0)1=*tUR`N zzz~@l_1e4*%ypM?5`zy=_DaKi1QLf|@&o^B-QIA#2@_(&cK3_K4cgQ1U{fF7A*BAu zsU@{Ql2l`Ubc>L_g-opRVlRt%_YiEbp zu~&KIaBM(;>1{JubT|x_82F>{m2RnXxRHb?H9@ZC{{|L_9UVMwV}Ie=+TBnEt%!^t z-TCY+>aiB1cm6L#J2J^b5M)!D8 z{M@`CDKbO9Dsu|*-uB(%f1kg+AzdK5@Cxq*1*!`CyRs1j2dCOXR1ytdrW!9&JEK+$%{Cw8`3|8f_d!k9h zp)o4!6^{-I{1219XSY2^+LTIuedxNbrP5D2-TWbsT|`BJju$#DpqD-MH9QM0F+c0B zrz1~ROzV_IEKq=kW&eL#0B{jm5h)QV_sxUtEV{KuI-SoRLOi^*`6;PX-NaY_UCHWs z3%1OJ>yBs7nYA@h_j{zgAK9bcAu2)!g+zZZ)-gc?U_y|<4Dc8X$`-YBHX4m3g)~>k z4C|s6HlA#1IGZ|$5h?Xizh0stt_imOF25LQfle;M^uskNNU1S@O5B+_>nv7)44Y=WATo%#EXW>vk z%@8}Xbk6_2lEAuzMoH@E*DMf^$Ks8C$%lWJ`+F+Xj5italXOl zv^>9bJ~B>ueT=J^C#Xv?2+S2&8`$MT+L}${FB*<1CuZa zUn6a?^Q+*(3GKH;H-D_pDnJWzXe~gKz-uZc`iniVdj}y^e89gf zuonkBA8pTrJ$8Aq-1)Z(JlLu|kIy@srh^r+vyxpG{DsSA*8~Dy2A`p$p&Ghxk!g8n z(JZ@x1kzWQC>E=0G6^00@aWZ?qwkva&~6bV1ULnTFcK`ZheE`>?_{s{6E4pt%s^?6 z-b~rUT4)lLX&?OAV*JeQ+(dEoj%$tCbK>!RGTjbGEBt~1$JMn-)>cWrK8NZ~7VidO zoq!u1U^Hpi+ouo`G@BsnH0iTFC=Lg2w-9=0a=h}~kX+dbxi)fuALfv7>7^ZCG))v0 z&4UM>mK4iv7{FVniUzW3In)IIVve$NCF|8uQraKOs3n=ikHDuD*J2m#M*twvcbh}t zBorXlOacs5i@x!|`JK>+Y^)F8O8)mbm4b3M*?atQUupPqqoJ(Q3DqL*3^@`AyhROx zmT(NUbfo&{5_+yq$hq>v|Cl8snt_XCRWRM2b`eQ!n+C*@X$Gf&ju+BcwDj19aoqSO zOm8;Tus_g-3kUaGb&OoFPb{kWTCw5wV2?x>PXyGuSJ-Hp&I8>a7{jP9}K z%Nq?~sEh9%O8$6yULb%fG~rUZ>IX~su2*8y6bkTo9r}BjgC_H0@(Un-UA-U9_gaq6 zkMK6_GVsb@nn1z|61KXp1iIUf1VY8S=ttm*m?oB}z>5``Q3kP}1@tiar^evEvlG+Y zCwBk+2>RBE`TI;= zxE2O8cuB9Ds~L%~T!lkA=)RRUDQTY#raV85gZvo|)d4LldS^fq3ztDB$yM^I2jrEV zg9!329FXG{?kQk2L?ecs#S3X#(! z9u@9EEgs3ibEkfOUmpH_ek6lOv5w8^HRH~rWK3gk%jSBva}hy6B1?253-R7Uia))65h-Y^G& zux)WbFFhwb!MGxH6Dx?UAX(Lb#qqMm8xHyfAw|_oOXe8MeLuf;_MBEe5D+i0b;4#V{_1nEEUw{STyo5&ccstbZ(xSMX$wUwVuaMQLB@_y>>)n>&c9gt@h zujRkIe+WLOSR3+_x!-5Ig_rL=b!mZ=vvhp?f+B}du635eInZ$dR991Oco z^Hz?3dRu&F_ZAHk2}|R@0Ar$1A1Vo+$nZJkH&L-ZsGZ>enKVWrOy|(xtyE&-rg}Nc zh$?;U46z5RIN#&1#uDjWoVU3CtoidAQON&I_hCHu8mio_rZ&*Hy?Wx{qp5Oz)NpSM zz;bu}%Y9d|Qg*VPkn+9$k(8U$vU&lY02Xu&{GSAF(AKv7)wBY}l_PxGWDk(xI{fhC z_pswgmP{J2UE9Tbs+l91OX^5C6E@kPV{x|OpiC3H*H*aAJXt_GdAbOG4+)WLc(0<4 zqAEpuR)?dslyh0-(;T`s`{lo}BwEJ{p7jo28#_<{G5DrbLgFNj7Dm9UaUuNAwH!QJ zn1wVQ!{Lx>kbLvzJDTZ(8J9KC;Z67rS0yucI3$avTym)l49rg)DHsgQSX`hnaDEbW zG_cl#d(%80pD?dV!AMuM?pJE6UNspesMTE+^`*MA zFX&T>m3-nWP;QO9TVlsscM1YENzV5n%b1qo)CS}#JnS+Mfv1T%*`U%>Qic$$ofr}H z4w{F6_E}H6^uEI-DsO6udw*WwFc9@&{#U|9rx1;YuSqdR^~l7$_3sG4AWtugRm)AZ zbI?Bz1UFwI#pIDrP=e&SP!gP<0W%PR(4P!zGU!!ZK(BfXq!bwi-`|Q z%tf8toqP62T)7PY+bW;+SveK_wIRN6=%#5*;q|bUD;qtusimElV8c9toG-M1m~WW@ z4~>zH_!AN5f!FN1gqqj#(9KJOeCeG+z?r1tvdCxIo_0&;0M-G8LKv%8LIC6;qm%=Z ziRU!cF1GB#=H-w1A!ey|pge0Bb+fP;q@k<;3g6{)mtaCYUkFlnI>%+#^_xYk(7YlH zLnIN1fW?7_We&Wc2dWtz(XRLZ?w-0PA0OYqvC}{9vakGT&J5zs*vleWbIGQP8e|X! zYr>IZ9>PRyytn;qR1AxvPzvC%(P{E&FfiQ2sC`jUG%WXVq(M_k?J!IHfRqqPu_pQ~ z2OVtcZvPN-#ZIq8z6n7GD?$cnJTjFyFr&_!D6_=T;pkKfyAjz%n{F6*Aqk98(A6Tc ze`+d8jT(Urf)R6(qggMEw|O3BogJ>RHBy0B@O`LqXVJ(5vR!^}t4UXdh8F^O^(;ib z2(&qd(`IavSN@q{<4Y3t;fgpA*cV+?6>bWsniKoj<6HG(1dJ z+{B8qFHQR63^R+DSpa-U4t^d}PC)BPQf!I99yRQ@L@#3U6sv9U>EP3nSp5t&D0Oj@wnSVZY-&8D!9jmONciZWxDduk-L(#@o^EHQ-qZu)M?kKICj}yuuqb&=-@o$PwG-FlLm^sh2 zN4j(Kp~y2km>Xst;^eWDHMCD74kckMH~s}wCi?GB=P`fnvod@t7GTrbjaO#n;EiV} zhvZ8Z0UmXBt{n|6{#WMCi=u-F55x<GxwF5Pb3Dn`^~nV~OwHUv(1l*roR(UU-M%6~~vfO0SZ{lRM4m{ln&et3YV zizlpSTeuN(>MjgErMfpkwTUEpNK(D*cw_P>R*!%i@O)W_lwC92b}i4cn9|M=dS&pG zULX5Ueo6aQg7!N4;R(q%U`t%^s_zZpR367eje^d_|8qqQRbaZjLm1cwsMBtw355qw zIqQ#7^@V{$^kjxUM9p96P3dBYZ;u&R6Gf}s%AiFPGX5hV8mVzSRQJOaB-Tt3Vu%|l zyK+%Lj0T`Elte8ZGVV!c*Qy$giPt;1o`ycu_M#)*(gqTtA>D$m6d!R>ZOy6jrsmK^ zn9v(N;Dt>t-MG*U8C6&$VuYOpTM*_lFvrrV@k4t)(CE=*xFow6t(s>RcK3621~3~rjL^0;^$D>|C18hJEmg2qwR6O{B#T^YF^f&PmDnc z2|-9mz-myDi9NMtp8l`wV8+$5BP{yY6^2<`O1I(__uaSv|5L+$VRLI++13Ij1sMeq zlQPhU=e55^l+D&TucLUQzNg{s{BL&CK`h>foP4lEDOOEkm=k##cb7d(l9vHHvm4K) zMASDpC-logC$RtRv?dYwZ1{Uod|Wq-or z-hjki5lS$EcRA=W6M;9CAU{U#HMK_F%Z&J?ICK*utY+&l3vi5hW5Rwdi}ery3j(r# zHLlDB8+m3iz2=Nk-}TJp=u5V7EFoE!&R?d!w&!DJ&*=POKjwNPUGMA(Mld7RN}r$1U+ zbi{>=#)vxDV`7E4tfk-jcY5wQRS$uVDpT!NDR+lLj5AzP8=;$4$@@Z#wKSs|Igg8$ zLzJ>Yj!t&sTwhxjEP-7Ij_!Px4F%J%E#Tv@tpnW!w`c47)eaAYaeo7q;1LYm_ETXm z(}x>SVfs5QJqi(KIS1H=<^+YJb&ST1$2XVT8Fsq>K2>EYz98|XLt5HSt?Ko=#uDIq z+PME%fPz~*a zL^MyDB}5ES3lmd{4Q1mbQ9UTBov@O>|7SGf%|@)q&P(^vRoaPc>kVu_d7I3=@Dr~! z5U^Z;U4&a&2d4t=>s+%ZDddnE#esmYWY#bp1(|>lyFTs_t+ztnZsDUo`McYxHosS@ zGM%UO-Z=3BX;2-#t-LjDq=faDDbBqkLbIf$wM^TOwXV>Le&kKOC=C`Lrm;5#+FII^ z7cWnam`(iIkNE#<2t!Vfus$37F+E1kW zN!TpR^}4K83%33xygdJ_LoaMJ+AVZ3A(dTl*J$G;bL&9wTODirgIRdkhfxJKY~e=a zi9!3Ohfaf3{K#h?U?wLb{NhSEL%;trpqnD}mBS+t#u~jKaCp7{#q!Msh50@`Ts9s0 z`fd@FrN9S>{pBnbjX0nJv75hYEuuyU5nm{#hqSg7#KP*TNJcx3(vn8sZ#=X=(Ctfg zZrXzY(@)7wN=oISY%@Z6^=QEO_A5N)K#aYE%gG|-$`Du%G6g`B7lDBZkm?rrP}yIr zhy$e5>P1GPR9IjaqCd?KYU+Bu|<juv{ZB_OQbGRGZqHY&=EJW&7U) zL+)vHHR+t@qpjaiRMfI!2qgp(qKQ+adTdQHfDY(x}zt|LgA?0$aB zRfr@Dh?3@`AMqu)MJuQt?c>t#3)6#gE-3z9IHAN%zIWoUxJ`I1%Z^7CJ&W^-R-`RJ z;Y)}vskTD`M0)E43Y_xX%M}ILU5^~wy{W@3E07+X^|Ss?-z~zU;|BS$2tft*l_cM7 zk$eyIsM8|`H&pib^?%~IgHb6wRus7En>;ht?ml`dE@KaR04n zQR2fZLK#c|)pI^1fXdE`OhGRDSF`rcz%58w*BAPxE%qaS!=}9j#s6^*(TSpQ_I;2e z79J0+OMcaMplbRN_$GNlj`WtR3H2#J2Pz8njRw;ux0%eOqhd6aei+nk0RsHW{&cSB zZEZBw7FcPye8^)jnv(RQ1#9NWS!3riSwie7iAwf9bHviXi2hk`D1roS2jN9rLCxbT z>fRK)sWf`RxpLY)mO)EDyU4H`t&3}c@|zp3u5EQa*d*z6T?UW#ErT$+!MlHk{m3sP z{rXbop_sd6l8325%h6RKcm7mIRh)x^TQN0upZ`ITjdmVmbm6v}YxU+wYa-!@VMyGK!oFg(J2 zuiF%2X&XTCJR+trcr8CO<5{O-Env1x-sqKqXcuPSF!cBDo3*MNk4_K$x*S872U+Wb zUYV!&3Ohm7JNPu>}bkKiv1#olTG$C-cM-EcTAR)w8l4(dJd83ZUG^AH$qM1fkp<1TC zXOXG~YAk%dob$m6v+FHY>#0f5@>l#kb>C}bxxBvHFZmb<(Bs<|Fj)aO0*KA73kaj{ z7w}{nGG5KFWq^o7bfX78p$Pf5%Tv!qhDP)6zQg~)DFSABdMlPkFLx(NfISFV5@Ysz zX88h2@Jb(7Ca`FeuwY1Oz8eBkO)P>EG(zlVf-Io+mmfxKfX7Y;Df&Qkq}bjKyWfa` z2Mu@Fiy{dZ;~|vA8D-T8x zhtDr{OZ>*U>5K2HdtHnh^BUI6(G;7%H+_9mcO^z$&z*c$XZ9oZ6OJopbmohh9FK?Dg2hGmqad;?ya)sK+Z}m}nspF-&r=o(17MV9fbK`Ejn> zaD@Wl@J%7U3js`GW`o6Cw7vBcdchc-BwJI@AkSk7@+O zzXrCf6a3s7*+UZz?0Gg*gYe9UK%xzfI89>TpS#$E!0gqtQigPR4X;Cli}dGS?kM16 zw*z>-)|g8jvm1|`>X_U1C75Y*K#)+fTcfG>e5jJu40^b1xJF6~%>W;P&e@(j^BBO~*+%#6XO;=@2CZ#1?jjl#ULSY#@7hnthQ zWO=ixq{i}5G?<84QEg>Xm)*6z?BcF)>jHDgY*j|{>85yfE$EZtk=L>~8;?*#B_%1J zWX^pPSz#YtQ;nUDEFLMlqJLcuMerDMz^@Fd>FdwT;E7uq^7G1E&DQQgDh!cRwybr=_V z)}`*ltS;UZw4T`G6mi_bF5tW|9#tvVY=wgeHE0iN?Hr+WhT7phB(Qlc#zmB1dc4EBwcwQ`b2QZf>O*HbQuE{zR*J7T9>i4M%xw zQ_ccx(1Umv7H181JsXpkcSwF99nWiqJOWoe9@&ewC>Yv2nDR7F`1sQ6^|qtyG%@s= z8A~A^L1-S|%LG#(1|g6qvGAv}ZzPd>jk8jD5u$r78Z+y(K(LoPaHyRrTOjeWX)NA| z6+r!aexrqva(IO&lxS`W!~}8|=_1i75@nH(al({4QHSR2LKNo--c9v!Z_v$49Bq4o zq;YSQ3alqx!mgtDrh!8g!Bp>7iG78_f$o2NC1Fw}?AMD}zSZQqCY*RS`*^MfBpO-(U3vz~pR2)*)l;5p&U_Pm6e`HUJjAS0j z^ZIS6Hr4j5TL|voU|=G-c*-n0?#(9yVBPzTGlGSd6iM?SS=)wlyXvc1Sg*^ScpJ71 zM<>66ee-V~rWX;kJ{xqsaUwXrJDG~}(Pg_hL|1SOOw;VrS6Oh+F}b{QW4~oz7)@;E zFyo-k`?i!VYvrn&ww#mP@!$hl9kl1t-%TC?EWQp8X_h&Byga3BTgxj ze5K^5N71iu3z~>m%-PCi-~}%_JpN%{Wi~>#f&+Vl&I|^57y=xgCSIBy0Tsl+m500S z%(ZF!Atsr>*|!%)r?XyF6Xv-8;mkw>vBv0Ms8Yn8Faq+Aod;+`+_!2<6^9FtDd^Xq zlt<(!z+(9gDMglAz~+F970TN&f8{2W8CBK{gduJS%9cRTQSGDtEQ<$j+rn^TTj1Q} zhIKFa#|ueXZqd>EubZUmD6Wo;v@Ri8p36sE{Pj?|3}7p^M|LYHCGgSqBYUR&+qNi5 z3qPVRf&w68Unllm?)!@{C~YxBUooHv>OTzrB{!*XznbAhCuNvpWh^g2EAzI?*(_>A zBQgSJ99rERT%o13#5fKK+x=ZTIg4N^&y#EAiw;`EPfV)87vpt<_$?;a)7Cr{_Qou! zTgYWSt~jzO9`*OZQaY*}1GMC+>igajuLMOU>jDd(M*dnTMeQax$S7g{q{#Sm16PXV zz#*EcEo4Q@oNaD(cTQzLzT@EXTF=#?&Ilh`SCpQ5r09cXvv&dq+MtEj8TUgVwmLNJ zo5LsZ$1=aoHx4y{JW1P&pCVP@ZI~-qq}IeSPAA$SElO_Yi1*W-4bU`I|q)vNn(R$y_`1K@M^Y#p2bim1&;^f1oX^; zh)g|zvl>*5VW6hLgCs;MEYI!fpB082pxUgl$3l zb|YlrE=fT8AO&?FO^Wnu*0hWdK7_F6i0xPGs4Y|Nawt1za_6AE`AW)l(GRroJ~5iv!SU!M83 zy7*i7dfqaMZ@t}QU6=)1-OOZ^q{eU?+c^~>$zD&5`#RMTWj>71+_Uz*Sn^u7YJTGRURJ}%5ZVpL({4sC3;t@ERJ>9Uw?6J) z)i^}=g2?uROw^ZAzP@W=HzGnL8aZHPx7&e)SQBd?hpJtQzvV^-6qJwzYX$}yS`Gte zs&onJ8>wj@OM;4V8dnq^Y$%fqA zk4-2?Goa*_3_$F8)SEpfN%+0(iB{@yN5z0PukR}TOq>@^BM`%0TvA>SOMrMZ6V z0Rf&+*!?gCCTe*6)6*e1R3i$k4${U{!;~eyhq<7gPbeVkAFAtT=2UO8Tuayy_%2# z3KNnU9|C6m;#qZ#?OFpV5uMFGtHn+w-D_!tp_kilVE-ZcfFU>UIzWFVKbuCdyLovP zB1?+yr**=zW~+d4Lw#m;%FE5lab}Ob=tCziYBz-GyRh67N7b@h2CpdOTp{GY3tH*MhPt0)x0*UuyqoZsSgg_w!Gf%X&e=90c)UBDC2C0U)#5 zqK#NA5UoTXr}ojycc)OCd3@Z6*_u6^5vvV3xlh%wl7Rx4Zk(u20lzk$VpAcT#;=_$ zk0yL#+&txs>i@ngNfdRsi#pR!LPGuQ6y({!2vry#2`9*UHySO-TC@E^3PyXpE95to zFvASI$-GE58c(TM>+$OFYC4-A`1L7ApU{Gltu6FCMJ%oNsvJ6bD}s}&Kpvz1$c0RQ zVDX7^OAiw{7+T1KKNzO-S9Yb3V4@v_ zu<;PX;SZ@jf`9GSlWf92Ph^9F`GdWi$^RXC`%lqY63~IS7mrG57H>Qb;+&a zNIIp1<5fd{ZjC7KDlJ`Q&|NSEGXTw7Uo9l4V&pIWa74*;w6>819mMaotgK;)JCPs1 zHUdKh%Wl||bqS;iWcH6tfyE^G|BA^Q=2bcc%p2TF2JN@$kgc2xoXVTA8U6f!%JrYi z^OyUXvm5K%Y~m1x@xdz!RWkc&p6~h_nOhb8pgmTVS_Da0C66&cAHm9CAmcG-IqJLg zn526H^%g95mHh*djfM-qx*)Do1C3@Zfy4j}HG6t>*AKyUT7Tf#j1aeif5ytTI&aXg zk)w$tBRENZErL@^XDl11s}=&R&iKVy8ovo-w{2Yy^58(i(+=>i>XXzB2F|tLg7(6* z$A0z+qVQ?nm7=AkCd~5k>A<`K6lAB!R$_|kdS6q*;ADjvmlb%OP~4_SW;qvHrY+tc ztYA`hBdHpB#-CM0xItGF6@Vyh$>2LKOg}lYW)?GxFtd0>mhpHdMH``TB3Rq7r^Cbf zYetmoeWvkY{zkwN)Y)~ep+DPdLn&}M+u$s#)D!qGGGKoFKNM(W-=&t}rKo?3Nypl4 zHIHHYU26NoCx$b`}C$lGbJcbqE4S+-SH9#zE(?)P}^q}@zf=NQ9>0N=B zmv(#Jy=T#8_F?jJ2l93KRY??FYr6KMnG`@hrRk@(46>HA0{n0#_`NeGL4_#+lKuHW zB+1(a&|Y!Ja>#zmMrH(}do>u*x7FoJ->l-+fyHxm+A}`t*6*p_<$adNK^(gUK_fm4 zIH=0~IWHtIv9~1tYRJn6G@bsi$?pj0=}o73yUhVz@=XS-ka04@3R+UZjWe3}g1fFB zh&l`VrpDa+5_9q=Ij5W3KqiyOMEUB%yjP>jmh4$Np!|VD7mvcj9}YwTuQ+aJyz9bszE=vsDJ4wJ-&S;iRHSx{NwFdr~^%PrOY#S}&& z^22;TA-|@!(7VJItU4w^jc66Ty$N8*5EKM>5}W&m!+uvBKC7{DyyfBlk~Zyz!mhAv z1HYXypQFBPummwv8y;rKf@K~3;h7QYh~zZ(b8H$t#)=g!2^kn&FDmanp{9TK9gJ_< ze~>@Jsa)36O?idQ3)@$a5w^hpA}w*(IM{dS&Xf)v;Re6Wg3(?SQ$Qr04CB=!r{4Y5 z(oq%;Gqbe6IcUj=M;NRsCNMn=EE_5!uFtuJm!qQy7RWRxtDj(A_jyVU9p33@D8Uj-h%v$Y)~?5 zxQgOgTK%}GY;?_NzHN;?NC@Q@450`aC+-D&7NvXt&VN!Idqg`Plxi;2Bi)!M=^Owh z|Lv3kK53E@$B00YCqd28?dpg7kIwe%Vm->IXD`oe*u2`=XP$;?kZ)UDEoNY6d)>G2 z!==1?eE(O*b<1WB5<_I)lUDHwxN=+kDP|J;84#lQSHy6SfeVB^Zdy9F;&g+fNV)Yc z+L00kj;#{^@hLO+q9n3H#KQhB3}wCWpIZH{H_K`Kz%0SJi8uG47XKcYgmgA^)Yexe z&8BjsU0hY72V-!OFH%532qyFjk^j?x`}T;m%^eZxX{3EA$EW5!`?K_- z7w1cH$+VwB;kD`4+2~S?`+j(W`GfwX^Urc;L+m4G+_KUq7Tbp~#n!;+po$2z_Yu&f zaBNGw$$cJOygeVQ>3N}j=PZ+=RZqYlm98IM$%7gn*bSR2J4&pM?MpxnKjUGu)wkcG zt_*31!Ru{MmA<;zG%HAQb-1%Wz zz0I?Pf9mL_8jHE1Xc(}3QAB88kXH@?n@~trV`#uUO4E@OFhJK;9i#x zg$yTey*PqdwiTp}+K9Ufj^aY!x6(@x-_t=P<99{%tPMDp+qdG4AEpz^soyUKe==Z| ztvAnr5Vi*Rf|blhv~A@zQ(^n%3M+4J5?RWiTt~sM3vh<}Hg1c7fe{ct{s(HH7MKl2Nl#Q>{kvd&}ev_AgL!5Kzooq zMgn>#bZ~s6j_=L5&E-JpIgVzCse`*J`OaAE075jKMBkcwDN0xctm!m!09n?DXwCE24Lc%) zy)7!eMvWV;sbBNW^>rdzPGO%e$)1Acj{B`B=bL)^4p>fz4)8{cL>PRi$q5U0fcP z_uZ9I>Bk>32)jsAZ`M7Q&757gpwV+Ky+?ic<~;qQ(^>*x)|=iDtz#?$&W4<`WVS@* zy8KSf@Z{f8Au)|_e7^+&ac_-;ZXa`&JeefDb4VPWH7dx-Bk`?G=-CvD@}m9?!mR$l z6{-r+L~Py*SI23r1sby@OzJiV+(Pk#y{B#bE|UO?!`(6Ji(~mmPgCOgrhl*6W5aal z?V;*51AKNRGM*`TEMzb`aHNLtKm3q)se}%f3@%XX}7rph*&K9Ip-}F zpvkfXE=3I(`)ug1EZBcF7FfBPd#6nUZS_>95aaj+1#F4J8RPZMb`}4A3{ZXu*A0G| zivFv+lIM{X1Yst|?k_kQB4>;Z$L?G+9oOn-S@XA^pdW-cYj!%iT4TKz{UZ&FEgxFV zFsS~MyLF0;Ru-$VSV1xA``7`i)c#^5CXDKU255y{nQI0aPg__&I>t|6<;r?^-h5C^ zqRkU01}JqMunY+1SH=^vBiae(A!K=Ka`9z**vXR>4GQsD9KWq?QMO43K&l*PR+nEE zA;hafC@0UY)o%bBC`;_N0UAAEkL5n=9;v76c> zqut@w)d5KI&dT4#MR15HesGAB7yy{mhf%-iefVG!9rW8kdKU2AsI+iob|y&7t)+jb zPm93xi6j49@$w{`p~YFYt!gsNi|E-5{x*62+Vbqzm-STZgzO|NY~8q}*Fb!Kw*`t* zW5MCvX66&mgt6jJqroE_WwW2(fnyUuKiB_g@ofCOZqXI5@~{pf2?~^*#1zTy#)zG* zwJ$AS(~t`5{7G37l%p`KSp_M14Npc!?AMwiPx-a}0$NMREK_6W&(zjq-lm5*xHxrb z6YY*ba~&d(45{qni=ad4ptZ-_{$DxEq%q$BnaSu-mZClPUl*0xT0vJn!3N^G6XOYv zye>6rrFKn&1qswne=}d#rC{#lnTHM8p+TfHjGpoCe^K^u&Q=-nJNV<@LK!{A#DMojOeCV zHIPuJuKNQ<+5&km-41sFV)sb_SMa*%(^Zw+%AqlyhnpnpY*yEza<{6mTIdQmHB7w7 zv?sU@C)8S?L_oASTXd*kf#q}3@C-mA6*=+$HWqtCH#nh%n}LOJ2`S0ZF(Ez6T{ zUlZ>LcP{!DVYxPZ5wB_q>@>)Vf>NIox|ttyWuXNo`V)UJG0}_5KyS~EkkQp(BHe=h z55>lULFQ*M{)#e%=;D!FH?uy9RO4>yuEP9OP#f2XVHf@0cj$OJ=LPDk{Qp0izBxFq z|NA>>(4etxqp@vUjT##pr?EGU**Ixz+qTizw$-T5{d|A(%;e9V%-+3kob%F|p18|R zQIKuk`8x-tRMZtKEGWl3J zC%9sm!z1XN*)n7(tv_(;H9dRne{%N^h2D+GD?WDw|9T8m3mFI5&}vb|rHMkk5wGJ= z^uv=auU_=3yK?D&lk%9LwAZQ&qthc-4Mh53))3^|5d+kn+rI%_*sntD zqRI7wJ<8;9|7=4bpL#X7-T$*7_AnM(ZF>CWj_5HY1(YyYbSpx~De=>*C)FEP^@&ETikf+wVp~>2^A9~c36frxgv{>j z$cu8h$;jTv{DQvWe(ZESOCOaApUe(aSngNb`BJ5jOx2f^wP1>pGE zm9k-gq6{4{g(@KsggUQ(O|YCF+4UtHji7kW|IDxG$x3t-l6XXLZOct$r3o}DgJ>-j z*`i2%bV7&D?Ul#<%oNxkrDpf;0)}9e)ng-3(GEiH!QCp)KAMLCM7h6A1vwQ%2v1#8 z0!z-EUC)@A(2prMP<|EH3|;U&W#+86ok_Cq7+xZvKu z5v;=nQhhO2{Hx9$d-segJ?n5%e!P=9%*=X(w5v|dg|%B zA1OaSpY94bNUcqMsfk=@uo}E04uqE|{TLM>82sMX(V#;ZG052pO%^bmI2yt7qK47r znm-r;!D>+kl7(*NOV?eS2j^!085_grg_Ok5QYObBlIa=B9A({wABgpw& zZzf^RFMG$->}KYl>VKw!`@CA*6^02JdvEmR34JnUbZ&QtMqqY$wB?agt$yNZML_dn zm%@`cl6i!~w@}u6Pc82&o*%(-U^7~;Ek%q3W{BX^ltacbe@-Ij`nO}jQ2qLDbY(26 zvpKBtebs6Zit|}b+JB6sT%LyF+#ntb`sdA{Yv0@#0rkPoLE#;pcMT4AH|Tnx;b@k2cugih$$d-SDd^h@>KCK<7PIc3e?!r3{Xeb6uz5V z$7oFN3f5cw)`zu|I@gu>(2gm0o-hE#=*;)+8(&>^oUj}kN8+uv31I&rwah~?!TirW zOyM!Gm!Z_A?8wSLOQCvvVb!z~70khodSrXE1Sca2n8l}=T?r(wyWJ`2jxp#6`w9oc zW{V_?Cos+-jT zi-|qFGg&}Bdz(6Nz}j`yLcou?kcBa%V#n;)^=i1|!U;zz8|X?!zd~<}Mmm&d1o3PO zUBT?^0z+g!;2aSK(t=_}%7Pf4Dpjfg_E5ru``H%0W*b>Tbpr~Zt!aWhE7~iho}0w? zdcTrd$Bu@=AZ(zPu7Z5WBjun{>8j%Asztt zm%ffINC^esT^Ah-=mozPVjzavFdR$>qFjRpGc566dn_EAXKWVbkG%x}iJa&6>65II zA?zyDzC`iXuf-{BBYD1Gw(OuJMz1lKk|F{EdPv2P0d9KhM{${J2|l4*Vd?8^-v*8}s z<9u8u1S8x~bnP-%D-lFSWidNrel`TOW3MZAE}z?jB$QWwtYlNXJE( zcH3&-MbRt%lJL9777s9R7;2UtS+{cU)=$n(!U`sM%n_i>D)ZMg5)dE(DiJ=@uMRvC zObXv85P~$Gu+xLhV7=T;D9mM!YS#wIAZiSUI}g075dR=nMIV-kY0HCtP(JzHeySyl zm0&N7v4Gw##_KRSfPsdFMg6ZGd6Sp#{<~(;B$Y$2{&d(hq`tlua;w3p3lkd%frHm; zQ>Zg{Wj4+Lmn4%ITqO0r7^QOYtBHEb{_SS&1HdS%V#xK{Pd-x^*rB-Od6^Zsguxif&PCVrB|g7{Suj|TyvDNrRYwB{*S zL1@c9qIob;cuu~3!H7Opy=?vy|KRT0onggFM3W>L)eL%DpNTm(oyCO?xLhOt$MB9n z#$e+tp>H`}Ffj(PXcJLm`~(+$ilHV`DNKGfDwL;3&%(}V>B>zv!`pv)`1G4*!v z8LPIRTzFTLlT#VFS9wx$-`v&agbP6JNRb4bRb?^A51J^Ldy6^(2@^}iEQT=#^*2ul zK9wX|nz(fR>U1sC>6oe4e*BM*Gln>Qlsbe#wx%*~IehzPO6z)xC`5})uGJ1~29)p(j$G_YzS z7YPx-;*~{WJ>Fut*1fB7x-4QA*bvE)9lUVbUxAG>3}@lL@uBcLE6TW)y{>(^tJ{)h zmh?f`1d8TJ`Q^imOZn{sgnp%jPp?PYC$P5;XYquC5-<)?R31Z$1@&iUM)}!mW)BzG zUaA8lv7$`>@q=lh6q2(L+LC~i&ryiC6>jSQKq#+IO5T31i})nT*L`qoMyUr##vr3! zHJ6QJ>1Gm3ah=|PLn3zo?!#$Uv(3dT(~ zAA3cKk-C!SvpJW}NVQB_W(Aq~vE(bQ6#R<*h@9JnRlT~~yyU}4$*oa7DVp<*A7HOBI^%Vk z>uR)R^8rK$p-99&-$fXF#$I(gPqs7;o!n*$HEIqkA`2Xpd~FYgA@(2@o)m#K5#iIG zfU6P>32c~o{@u|CR*gEa%m__u3k~FdfiUX)l6gVEU}L)rmaTAg&gIF*q|Wt8$>oEd zj7isE;zsQ7fC-U0@+d#vz?eVmhPB1@M>mY) zxzzkNSr)H&nDTEwLS1FIV{BJv(K;crMUv6CA*UI7zE<%_IbyA`buV~Ox5aPZp?T}N^({@5Z6b1d9zjXGB%@iT4gdO=VbjIgEK^s^a zR3k=9+S99^QI@^3!uE3Yzbb#>()pe9XJv?UI$xAJ>fy~bXMBW&c7fSD6>DXS-qzw4 z;N}uiNyZ|if6(Lqp2W6&-eM+v;gbn`s-6?Ao-_Z&(`Q%}kf^^Ehngn+N87aokRY{i zty+RPLUmBZc!)$A)!qbS1hmFGzU6(oGXHTMks@VcPD#g=KkH4 zAWRj~#38LX-Xyc~2YJCWX@;T77b)42_}zMawzhyfz{fBhiQ~;a`CP2fws@(_~*Img`kqpSBn% zEUY7e^;nD}YK;MyssWMZzW!bOUy2Lk<})B-!2hq5t-0CEmTFI&w4B^=ws){?6BxYk z>C$KHVyF2RAKZTK;QZ;U?3jY8Vl?JwNU7&?(O@Ey#`&%28D5zZXcx^E4g^+Wap}*I(scnK0 zBaUZ${<5)mEzMh=-dHo^)sSIb$JF=zj_+eB^K+)vmWW=O^_&VaI!_aim|WfvZzrM@ zlfx;8&&PxY{OVkbX~+=YPmSCWFpz+!`SQP~sV(n{bji3SjMUZNpt;q|g1 zeRFTo0qqlfW!?KMXkQ~H7Kb78k<(fKCF*o_^}1b}%_*aWp*I-%>p~WOXW^#a>#F?0 z;zp;6N9#qUTC2Uab*WhLE-I-U>E&f&RP~iKDP>}s%ajfq#^W6#oA+TRuZvl?cjZIX z{Gaez|G&RQrH8MYE@{5y_tX7o_<^0VYvNK!5pD#Ntvr12YKIJ{j;ijT*H20zQ}J0q zFYpGw-jqDYR+Gz1;1$uT6;@<0J0D1NWCw0`kw)n2C0BTC8X@|}P=~3@njS*?YTLcn z_f`QQa4MT`=zDLq=vS#W{5NGm19g*wE3ZC5^8(f#Rxsn?#y}?NInG%GbCg_|Iy6IG z__YX(pe77E3u!DtK!VUq3)*-dNQ0%zCRecYn43%~)KvWD3VI*fdxi|1YHhlOwSEsJ z;w?9tzENSyDnVEe`)6Vw<m_6SGwSjXbraYq#k1V`s&1icdQCSNA}{{weSq& znJ~OfS3ALI|Die|_6;?gLbv^&#?N+R&!tD_3BUNa>GKVM2ei2!r3F(+l;o(nD*P7n z`2vAw%6nQu*ht{3C>1D_@8m1~Q1y6dVV@IK%hTNhgT^X7Jirhmz%PDcQzI(fjDVH5 zTT1^%fxbelZsjV;sJB6>fqlRL9{m!0LDozu!sPi)KsS`e&XcLqx`K^Mrerv8-MA_j>Ucs&Q<2K|*@iw*{~ zg{4~{C$C9$TVd4%t|8CPDjUjpc^^HiJvXdp`g|nT0 z7EaW03MYe4h`WU*V40i2d28G)DY?7gT%$z;+0XErM(EQbhoFvV3J2Ak{@TcKXLPe5 z#EviL%f}(AYdNe19nEL)9roe?LH#E^`}N80q~UR{Wx!BbRnNW@Tvs|?|04QsNnTIS ztHIV07f67yd`oMWHK?RrpL+s2@jIVnY_gyySZTMT&Ef8MN6tq@Ns4Uoh=MwOc>W$a zl6quYKrHn0L*(Mqtl{>F&BTf<2`3Sw!~%x1H^_t6;vCmPV^6gK@7jq%P(}19X*R=+ z_Ux(RY}|A2#s=b`ENu8RI<7pfIP+fx*USmX5T+ z4=nH#L2dr$4XKEG<4E!2Q=VU*B^z&1q!k%44ipTh!BbHZSaX!PqYxv>MvBJC#2AZ> zKN>9a@7`AE7Ha$g-hHhW&Dg|8l@ERFLs@lrik)~l zuP#{eHj20}I>gc1?2>G0u^=J40YP()0snBbo;sNhzCff$(H~@q_Low@Q!jL^bPy=f ziHD7ZQ}LlR8-u)rvHPv;)NUTOLiAR(sfDaz^Ly&mQ>koHubgEZ_qGx3tD(bhfAl>R z4>bzy1dfP!79Ck6$cVE*J4vfXMZUhrtYl)NZ10)$#_4DwI4Er}tBfItT1H)2_Udh+ zE>p-RozcdAS3Hi6%Vwr!_M*WYqCB%Cy$G&|={_R?t)h#uHaYMfD=NWI3n$mESXxDq zSEI*9^j~km0csOXB5W*NZXFTuil4n=@^~J8Kgv%JiU^11`2?S(*Uar4z zKaoDsUYwv4&0BITKG`Nf4OMQm^luzlLf2jCN?QD7*LPaRfADMx(&Em2QgMmIC8-Fv z^q}rtN_1^&z-xW5HjicSqV!_>m@B*eREVTL3X zJLal93vtC^RDe%dpcA|{cHK2uRV&S$(SFQIK&=c>*4WbVT!VE1?Qb`2EZndI=F+et zgED`qt*3BOIHtW|0{1)d>H}*rLFN%LH93xB(VNx6Dk_1#*$Zi}sb?G@8@Bss1-`+E z>f!D4Fu~n%@HlaEqWpsazI;hgm&0I~9STAefF95&B6o4Gen|Oj4pRDa&49%NAb8R3 zWm@6|(#QO4nora)atGwoxPq%-I(Kuv=ZnX}6YnzL<>|N`NF&|5;=BCL+IzMz=cMRW zIQY(A)BIF}QTGLybfoss^H0E>H=uuqCyIs%--U-znM#Jv`V-dq9&37kArDa2DIoMz z{v;p(5F)bgjp*G| zMt2o%PMOECNbEXoIg{dLXof>PAt1Ta64mNqA=X3!_L^Gt)5e-=lPrsr#GOD;|5RhvQEWYqmpyKD zgtIEZ*NY%vVJSR>`Q0u%`buwQsj{IP#e#Gar?_P9Y4ZQxH=)x4{Z^WB zeCvgn`}6QH<=C(~3Scq-5@2i^N^s5^uH6uKxzzKC1KB3v`lx1G1b)eKfc{BUNTKzt zYBAnKk(2O>mk<)Uhb4d7_w*-^fgX-HP%W9S=a;uG_#319^J_8NPlqb;ct}f$?I^g& zei~+7c}#Mjm7sUu`=tse^Q^oC_jR9xy(0$T zT_bvq(SrNq2O2So;3;FMpFbPMu^DqbSz>~c@u6#)wOhnKLrjPSBTF2!8k^EoG4%!+ zP&#RL$%wJ(rCk^v^#Mn7j+bt24l{j$9?HzBR{Ye0nvRj>Z^t^}kJLay+aIxe33})? zf?xyO&};GD63p-GzXlKv>t-7+Q}MzjO}ZBzZu09G&}ANzlVmffsEbL;8%%O}WwK$5 z50GBCqCdZxg{P<_q+9=E3t5`AA84+;S7Ykbk0e>6f>9z8SAPB-IK?FL=$_sMb+kY4 zPavZ#J@y{G7kCXv24>GbnLAtJ*1EEGv|h4JR>;Q3?BHQ@&}yNe(s%NMRG!eOsRL;n zhET}wOBwE7I4rvl6BLb#C;zSC%gjPWw`>z+N6zDV@=zLTye{nBz>`{0A;(L{# zr;}miw3n;+Dj^XByGqrmcP{RPXE4jDoR z(ni0Ov8d{NM&NjshD^TSnGp}X^}bPLQ1cPnOf8AtizehX4Ggcw1n=qoio(UGd~`aV*1{@!{QR*gI(&ilFB8k@{DJY6%h!WfOY7T~ zeexG!v--Wva4iF!km>Xa|CS)*3l8`66a!Gdm9;e_Djpv1BLD8E2+n6q)(c!>jyvNP zPPEt}F}l0ok^bLFEUqX6d!~vLokSaEkgtw=*Rv9s|3G8i9gn@2&~xOo5lhOdG`O%_uuvg%43q|ny;u=jHhV|g^{tIk zPCO_qp+vDh3$Qd@rqyj%exFYsMcWoDxc>n>g~C*G55gVw_%?g(b? z?KpB|_yZy?-*2(`&eB4%=FV@nY>*|h_kaRxpJ&iGo;2LZ_kp;f{Z-+U|xda#^ph z@A6!zg`ngM@P9JUNk6b-XcIpH8}WVRClZlHWoS2{I@B_6eE3}f?h*vX`^_KB%Xrpd$~~!D0xpRUcUD%i zqadb_H3zZMjTWa)e!m;lz3(fF|8G~}M={tb9?UzRy162J=<99^LZXN>{Um%}ZC*QI z?hTRdJki->Wv6qMEf?U03j==I%`wji)Q?4-S0!uF>1%2~)h<773-f6>56V6xmW=9+ zN4-d`607rnY{i*raa_;e$$hl7Kdc8oHp!Si^m^x`>Lbab-w}>MlgJjVv-An!&1`u}2hgg`#YV7VH+#u$f5mP^}v6d&+_2(!X zk7teJGM@C)C?>51`>~t&fLv*rBP<{vxf>Z~j3nXTH#pB@?}Bfx_){7`jY=bq?E$M#uK2*p2!|4E;T8B=ch?O7)Ylkj+W zSHF(_7O&qnO$TlIKBT03mP!XVYd>=A@5En;RAvgvccwZv+LYQbuu{Yq*DGg4pbBQ( z4vO2Wj3N+iX)1clniDJkI*QlsxSGj(YUM5LVySmW@nbDyxBv#GJIUpK+kb04=bx`Z z;h%Wbu8-*nL)YK!cRz!Onqr#8sP#B)RW0HyTXgs$UV)K;utZEFlF5sg+-$J@vkE;s zSB-q@HQ(RFj&&!3E@Tm8SH$wXy?q4?vsfN;gQK%}sHVO0e#?bj71!_eOL?cXklsVD zeqli+PmXhlTPcx#qaH75gxHYRiMx1+OtCpRgd)$m-lTN@5w(BOO2V#EES>}JL=We~ zS-x-zGK93hXnON*K_^i#k(cI%&xE^kv3?ED!jtH&@kTylG5Q%o6|nomE>DmuUu$KV z&RVZqpC1VEx$JZUn(f*icCA95Op4?-p~=^S!6rjav`&oFOcj?P)9mI-5wU{_ne5#`ggR5HM*OwcNyi!YnU4n&KyF#+2MB zOcu6P4zPU~$vl+2{IXt;Id_7@0I3QeJ2PXR()4lW6rTBl+`#j4E-d80a}P7gQhaNv z_}@|kpEY6lHil>+Hd574M*sFdM%C~%7mYwjasvU#LFk?CL*JRo-xUGaI8uF)oRl-f z?zD}%IByE*juIEX?!x!Hgfu%ras7Dmeih|}8s=IjY{y(&kv}%0e=m`K@Q?)!xq_Ct zIS=}Rn;W?nAAY)Wja=ECad`#^f#5vKdm+_)Zk`w)&lKEU$oVONYs@GuL~}cT@P2bb zB>b??0K@jlj#?!s;LBrxgB=NXp5b+e?d)FX(CjKf%+s9$Y~ozkr+`c{HJ18nsi24w z;;%?s+M4;xkLqH|I<;FdGv#*`SE$|ml~-}65e3enKN1EyzBT@9sXIUPg!!*nGL<#f z&NxneL%w0fmT^KgH-dDgf(TyGU-;v2MJ*-v+lzJfI4vp$kkYoO0BxpYajj!ft#WbA zm)c81wTUmA*>Hgn+fKR9+8rD9X>{nf`2xL-2Pw!myiZ;zhpJx)E+-!->IjsUw z`d<@6qWJ!01(@~^&_vBcU9Wxl#c49uhszv2#66z|l{ghSV59AeJM|EN-pU8RBt7W~ z-v^Qc7usM>Vl}IF8ro%1X^OFX&;$pSMjEU(ekaAKpD80I0~Um7u~=9=}Uu z849w_J;fD{f0)29#rXWOLs7pqHw(KXWXRQsr^m_DlZX1o7i=Dr8vi_cZH8|+l2o>D z@j2Is`PGKLD!Sj=CX*=ev)Xbt?|J{ISP{-AeYA0BXr!AfIg3%^>tIB%73?)Cj&ux8 z{Ba}_dq@ZC*Qh?{T9|ltDh?N6b`yaRIQ~M-PB+{_zZD^jDZ1b6x5sDL3nw%763N&( z96QGwEkz;Ff}$wo={}I8{WwuOr5w4P36RQ#?dRNH^jU-Dc3t>8)jDo36595W{qe~D zGXE_hwSX21zr1&*4@|a|2aF=b2G&gcG9g~(AKP1^a)n8l>V-P$5{*JBzlZ<77GR8f zb2_69%_|5{vWUV(9MxVG)$3t68Dm!cG<8%kN=94}9DQ^X*J5FeG;_451x~K&;#z5S z){UP@N-+IxCw5iQ$fMlUHDGn3e;}L$=G>I9q*Ais$YYk>S1zyiY@n6DG;AqlvsZ)o z$R0h6(!o|81u3(=8lg+PqUxhlm?)-Ugt!QhPFxD8mG4pF3>#=j*y>ew-{*L(>(YO~ zTS|s+38zT1LX78M>y$lIp(BK8(`@rB{k0tayWNb(xVD<_oL7BP&z_Lb_q-9o4tqUx zPdKGhM@jD|9~r(S8LTy5G+(CqIA~%KBE8Aac{I2yND*y#C_S()U>){0Ganns6czQi zwM+LID)Cd$m{-WD@RY2AN0;J!$qp~zcjxU_?-C5EtJ7^!m=!%8r20g|Q<0cB zc6mVm`AGOEO~cio9*z9rtbk}_DUD2t8sXoD(!Xkb-XdtmS<5?#Vq3J*e7sjHLCe}p z^7<+f##B?=W7ex|&jn!a)qmyys^nNY8d)xkF7W&uZhU`@(O(}g(!*|x&_wh65E}oP z=t{Xa4^_bMXLlP5s^7ga4;dj!;j%uaODg=wa&rG-!%VY%MMEq^!K-m8{_t4){Z3Op zm@tNa$M?U=<@s1#CdB*6j`OK_HmJ{(vI~ zd!#D^R(WKZ&?OwS;9z%I_k$soD8#-#6rWeui2OcvyWmTGGm3FE@)4GiUh_e7xXNz6 zEYIMoTrZkTIi$RMVnFhNijr#m*CNsxbG)0Fd7B<_tb1b$FBGhAVA^HP+Iu4eu_18b z7l`dr`Zn#EYA*{?_X8Q5D?e*iA?*5+T9GM`Jz@4Fu2w=Nr|CDLcdJPbrq$2F7WHWq zWhGs^oHJ#U1>IF9d~{dt~7`F3o?AUfzIW-)88~L)FKLHII)` zSh+wC*^rvpkfh?uW1z?5nlO@f+7dPT2I;$DGW=Xmem%*dtf~*oj%A}$9+;vwnMCIvAyBt)rt)RzC^L10;HCgOdOzl;N3?CR=etp z1S-QudsJY$g^+C#e?p91G6+r>k658Mn65%M5*vy<$$ftwA71{hvRoA6JBNB|P-pT% znP6iG97%-vFqTzKJq~(419Cp6sXUIR6`3jHJc>)OjLG!n?9P$9G<7uq$^AsfZwBd$ zg`fk?ZXEh7Y|*g0VYzrGah*|NFQ}^&TVluP~wGj&h{5GZ{}eP(f{ z5hov4jj21?0pD)RFVp_z+RyoQ$k}|-p+?|sDmoEW5?!S5>l#-Tt)9QYihj$k7!B((cs04c~Sz?AtVC$5* zABvwWNR@*fb#Lq$upS@-dKHc^XF3mpZLUd?_yA<4itZ+@MB^2Y%b?WK!$Dx?0Yi%zAh`{(d$B`86|(9`}=&!iJ@n&|UX)8IdTBpu9% zansE87DO4h5<$JF&ObSXC`NU{#Il3FLD_|$Latkxz@{`l^u0Tt&@0Bf(Q`#$Nfv2# zkc2D(93MBGxKU4C!F`g5_LHfzuwfZ2q%7Z$+#d_4rKOqePm8JvFI*-crV?IaB zLgf0bu~l?+UsLk`EEAh z1~2fk^T~u#fy7kPL1009AmYmiyx3!Sn6>+jE>Y*!@wPY0eSU@iIj3<4g4PBF%yr71 zT&?N&jgEtYktX7@Eyl92>B={>7JBR}vs#JTKZysbdo_ih!Fvv#I$8ZUm<}UjUF=U+ z7WUnLwEx8?v9jyiB-#!eeMu=$65!%<5;uM5s)`{F7Lqwh#3FPzu`}uDcB!AO?I{OR z%wT|;bEURj)|A4}%~zl$r%RrPItt550(#o%QedH(s*ba=VK^*ODuB?@oR_no6OFjq z`4CE_QnF1PFQe)p?Tgl8?A01&srt~hGqrruOi;pJZ3&PDOuPgc{K2s!=kAa@*|tba zMXYq-9M@k<@E`Z3ELwT%>+rbC{dDB$U|m4=2%jrdCO=P|jmag@Qbqu|N1Y6xzE)W zbqD0%a0svVGG#hg12|*m?Gr*^zQ4U9m@X-X_gy~it z4C1#HF1*Oo|*3s=~(Zp8oCeeFqHSu{%sj@Wfk$YD>W$7NLnLp zDC8S|ZTEDkp816s_LXsNlN^(c8(bX4I0{>sqaHA{$=(Y=yY6qVs}^N_`3=!1TU5L3SnfI^kqD7SiM{^ z^uwrn3QX=5ZSQ6LQEYjD;6!okWLY8k7cmTuUgo9DVb>bGl<8B17pt3r6!rW~a_6oF zj%LQ(k+aK~WILZ;>+loqG_-tb4@uU@mwWwcTjLbCc9h}v{9`&>8pK>_mAR7V`VFmdhZD=4wep3&QaS#mH zTCKGxV{oCnqHQewUw$q@J)>D81AxOVZIx^;+X(GqRonaqI@%&f!h69 zg!rhkBirLDO6>E9&(_&e`mK2IKRR9QQi*UZqqWKiJ1F40-HeuUCv@;?Xfb08da5R! zc%&IOqy$t%0d6qvE5~R+A)1{gUtK19=q^YK@_%0?Xau<%R+o@uJXEz9R1e;dX|_>BZ8_)BU)wXhuLio! zudwEtHdqqIaJ0bVfL%gv?d|`94_*}($w^x;n3VUgNa62flzZfXqtUrCgmrOE&3Rp^ zQc11Oyl|1z*`PA%p7$}Lf#dtl)o(LTvc2u@J)as{Xhg9Vd_pL>7tkK0!kW?!0i6T8 z(q#W))!{R{Y(a(zxpcz8+U(s;mwpJdc6I~WV z@`IkrL?I|vt-ke2se8q&#h2XaC+iFHTj^Azm6rgGu-Vq55}fIW31>-hY3{B|VC`X{ zZh8|`^`crJERht)@o_O%n-2;0L7o!#BL6Vj{}%-w*lMkWc2H&Iv+R*O2zfexK1O7V5(KI>s8?79zxR&XG{7wFb-F6Q*E z*FeMi#+j*VOL-}2CQ-AYT>6d4u=mM+mpd?!RjTjNp~5=X&Auclj;wDd3cn)^fO??( z%Bo)~oc%K{uc63vPU;!y-ZKYWS4x&!lb+mv#?YOik+6q(wgWR6%F;UxY1k5ZG@b9p zwV*bwdtSK8{`7;5bs?rAO)MpE&4oY1C+!`pyseUP3~7h$_3JkcCZ9a#V{mfyiT3&pQrX6yCeP*KnM_ zj-3p!ym_F@U*DQn%T;<7I!Fo=R}VxsF1WLJBtcBT1IY5_+Q1Fmf1rvK7I{aP@Kx~( zePp)>!TnVV7LJG8Iy3hja&TI}kS#s3{V4gwJs{7A*X7Wg{958NQmy;Dw|KIF7W!Yt*sf3J=F*K!F05YL zY*8_Y>JYa6Tx1*)rD(fZDZ`!yVm&hemCjhgdZ29Ck=;o&H+e)>2~{W~2p8-p&D&p` zxFWmLQ1=2#OU&E}VG+odXNL6xOfi1R_BmV-&-T0RO?*Q6(oH@c#fiO+VWTyi(ZDD~qcwMQ!&T`wAXc zQgP6qXN?Y)1@a~({+07xo4b`xaa05_OB1>64V;5Wwr&9Ua3tWLV(;!og{Y;ZONrUD z4?<+pHATf$&#hS9X+T{mBF$BcK>4IoJS?k36fak+X+Ipv%_OU2n+gNDLTg-we`N$m<}np}4TqSl*|{f#eD9IaQ6=98fBW5g$2oO*bUb4}z|iQbBy@0I zAldq?4G(W=$2T;jG_fVy|6jE0ac`c!uCPyJGxhH9iQVD#ws8YWw&JkId|E6)5r}Pj z0`4*A=Xq?}e}5N@?qM!AAllL{9rQ8mkQQyE^uU}oCuur>uo{2bS;2Ss#URlv`^Lcr zl)Sbq59vCbFWQwQ4;Fiw^AwqFXsLn2_EqREJo(Vy0nS<~Hq1}aAV;v<9{XO9*s5@BDcJ6EACyTrHTJ4n5*Q!1ABh(j7n|ZzQ<3vA-^1mmRt`yq z!1XniIkpkA$6fVz?_g+>$F-1$irbb!*xBw%nX40x<}eGo`{VEbK#;%24lFLVEEm;E zFQr+U*0Q}Uvm}<%HL{Q~{^?1`BtlqZ96L*5;0I@OpVceu zOCh=&^qMh&dk*Qpdu~=dPf%X#qO+k6h=vUQUxshgM`5J1m5FV1~!uh@DW z5UA0nAUw>SOXD*mlEYOmC|JNsrWLx^2Qm#(Pc%CEsbW$p9trV@Dm*ypK|N(Q`Huth zQLIvCGD>G-;tiN9^B1_=qL*r?C6++78V7&Iq30FJbqx+GmP5FJ*J<$wwX(*}4gxO9 z7POTfw_#Nw*3Eh07qzi-q1{k?#?itUG^{b|K88k(%E5H&iN=IDILAMGwQ~3`^+V4y zoue&e*{vOf?P8Jgkyh$BVd>%P+M+3gHQHW>`s&ZZknX44@fh(>fV zl$hvLcag$I7{leKp?iOUpO-c!VVp^iD(u`Xub5&SSUjyU!ZA<}+Tt(ihZD?|i+sY5 zs}ClwbbT`&j#IM!X?7tsou!lxxAZGc6M%V}9K0qa6S@RM09)uAm@J_iXP28#vq4U1>E3UAF2@#RuStrq8wq#A^5=jxOV=d z!a?1DXM}%~Wuj?kiR>U_{tyr->G(BM&%c5@M`VJM&~m5FQ^+YCIjNVy0j~Q{Nqm8jB3BRkRQFE9jy1O zcS_I)5Ip|%PlT&)LqyQd2BZ5MaYow2zwm)uR+%LbA^Ezd()1!6@4YU|k0fF*#r)y5j5Lvu zo&9+Y&@bwo8)uCTYdjGv=pd1)>%Re_9e_Dq(>i5`4EVx9le&>6F;1S9zUz2}ox_D~ z^P82d=frV`0%J?75n28Y`Jab0N|#NqY4ZIECN)*N;}`3>z0{2c$CfrOG~l9saewjS z`xQd`R;b0Tt2{$A<{jO@vk>#$eGe`tJO2D!vKx;%eo?|xZ6ab1Kqtw1Ic3Y-_$ur% z@b0{bE@fOP7wSo&&nyAeC$sir%Xz+$V% z>P_Rj=&FMBi3Mt{?PUE^#j;~3Yp?`g0cQv1#UJX>FYs;wor`rKTUQ?QuNUzuwY*{a z8dg9daKdT)t#`+?rCd75^Q`u&!8%?ARw~2-M>7)ZAyUplxGaxV$Gg_jzd$9x0ApA9FIqHiMVYW3P6J6wIzfduo%iDYaWM(12mu+4NpB zKZ2`=i^m{9E%tM-F9fUumZ22j5%J4ODRsiTcE`qGanwf*BFLOdXIR`0>g!jV3F1Dx z_KDt`zhto{`_{-n-h9MkjJjpp7xA9mZg{Ot^G>Z}xMtDA(D?ajOUrmih5ogY;|Nv6 z1e0$-GEJ6KSN2t_&}9;9gArd9hIB=IkX{at|7%2N+Tfz%u%-HP=cvNiOK9=Uk9yDR zAGH6JdhpO3)(DEfePc55yz``juht|wmTr#s3ERj66Om#V{~#N5%)@&X`@Z^TwfJcj zmV(gne~@5j!`T3KEhNOvN8poEmW$gErpHw**u~i97bx!f#FgxZA|QtHn~>|uDam;+ zBU~@aJep-?=zAL4xwm%1xOYoJLy+{25MBHn)cSOOO82QXv^X?Zg|Jx#ktSu(Ih)YQl&#!Bc?zM?Z+$MF)_m1T(;N+uR$I{|N0Z2S9z$g` zuEMrg)cPSb999c;x8hG-cbB*PW&|iT0448t_LWs@(B_k*vKV_dWLq?@9r-`o&&ZMr163O7hG?$=4 zzw@sbJnkr~RQqSdBtsHkb0YPZY?(E6?-h1gREu6B%XdXuiHIbI88)<{Z7cgB>|9ip zs`+QqRmnutSH|Wy7eeJDjmH^Auq72ck2);tDF6Wz^?$9yx_n3Xb6u+#wM$Mt?FxwS zW_ft>Tl|Kki=qc5QMNA3Xf0#HyI`bX>h1!~S7fxDsMUkK9o6S?CpSi5!{}Mm3tQBs zuxBBJA{AS;axj3 zh(ZYVh&Eo)BfpT92pr_`}Ts4y{$yRR3zpSRxlTS(m{VO$x~yDO%4! zmEfGk-+lMeneppDD3IIosXYt_9e03%3DIZA#EIa)_syS1?~ zw@cX+R`T^_8X=aCpVhwNMIp*8NcjNT7cxmFc}lBL+%za#A9WAkNKyb^x~=ZbNuPFQ z?1-1GbjkEbV1aCOHpraSch&Cw&(i7dq@B<&XVt_cVbw+3x4v5Bsx%?>%G9}Pk&Tra zbHfTEbrFC>yfwj8pW-HQr^{?TW#ZJ;YF7LrSOSZ_(X-s}Eu$<;xyKDf7TrXB6x?Sn z+vQ1~wc#al>iY05CGh`fy2juy>`#}=_DfuG`dB^6fIZ`*qhsxl$&IruMV?~os6}4F{FNo-5&We%$R@X z#O@!_OD1T{idd(1gmR?C*=zmEG?j<{%ZiPLjfSD)RT{zr1~qp{@i8L~|Mtn_cctyaT~2#*W!-KaIM zKmi0b`Rx8|05{KgYxMkQp?oa#KYkgLUt59`Ua}2HfrxAT>2O{}9=LbA-W&51Rc{l9 z@s;2_!te-UYjH5Y4<)sxClz2VZ@!BMUz~JXeD%kGBaj9g$9abjX=!Nzi;N}g{dDg4 zoOkvSAKgli9a}=CFTt^KR>YIBEAO+$#+Hq2grHg3E7j3i4foD9_x~11h(d7~Z=7-rQISt$f;XL87I z0vGRa;`Y#H9-h9sq)HUeXyKbZg@sY8(eJPFL7Pcy2}{a630LFBH{VUhLK~Ove}m8f zF=V)hP7;0HZV5RA6Bhm93>>=SJ*x&G1|8cYaKy?&jmtk7;b?N_m?G02{+ofWY<`jf z@1To!$E!7~ww3SbCTy3Emyf=erhD`6Dn-x6i*zjOG(h^&K@pBMZO%>E0QY%oe4B3S zftn{R_Nm9eY!rt5oN7AZFu5W5$78|$t#)+*&G<(l7C;`&iF03$)#TFLj6oc8f$oVU zb26EKVOUXo_x9b1#j*We>uq!^VyZhV+bIQ97kfvLLpMzJbl&mySjTN039Q&%IkDOBrh{B zsP!z%Tu{IL@^vbxI0+s1eKMz5zk}LizX$)4bHCbRV>wQN93f?C>uZ|;e4Ebn>e;P1 z!qv68AJuR*ptnn_`eA4!7x}Yg!~%i|p)S_E+sCRsV{nhw=IPLl|7kypZp)C#jmr=> zOtGxvGW~*WaZ7*AQ4Hd3>h2Vgz7VWB);|&bVMHN24UUKb1Z$DWdIYNLD zp86H2*kfYE9gYX#AF{vN#l7D^_M}+vast&jW9fqoMtIpv*;}LKqH}x;`)f6}o-Wy9 z0{DP7+Ka_9D8wFm*bcq&8bPzj8jZk?ET%yE|c-G zCA~=c81XSiE9HXDsk&9mz>3lYquL~2K3rTPlodS`j4!UEo$!W}&;erzR{_~_uFNz# zuCyGQh|;bNJ%lJ)e@t7pX)A*QKAxBP*WwI}T_2!nesjCu|2w-KMpWmtC$Cg!QAiZg zrJOL*sb)jI_g4?Pn-dKzQfWD&$=}52>@!1P$hmwqbS}HG5kZ&#ED)QVf@L;gD1e%6 zVQ9JVA!EKsDr2#7=$>T5$vf{QXq*4JfQS{%psqNAo}t^57$@43s!@%gwHumU!aiyF zc8P8-pYu44(i*u>`wLJ7G3=GG5zbZ={REnVEh~A0+A}l~v$x)2X4qV{5W}{;MY0RV zd++ZZ{=$#A&gojSC}VU)i#lwxD1*%F4ASwil#|0vlH^xs=gL)KR=$hkYg=K>`m1Yv z6FAwHhuPRQ)}leslHa14`6+Xl5+n-f@kzU~m7omr11%TV56aI%*{6$@JTE=ZJjxZhs5Ka5B^w9UpM8$JF8=t!h zRfGNAPRfPSUCR)um(#G$KHjs^L#c>d-f4)(=UUhlFo9u%E#GUTc9oyhthwZ>QS4IE zmg$J_8W@ro39vW+G;xN3@y5eRq^9|8f3wvo;3i*4&&7-{wioBgpBf0(%bt<=a_qH| z=iNgEhjEQe?q(5dpB%0XFyQnK9N0apk*dpJ^Ck_}mgivJ!Nb=CQ26g(tw!vinHWl3 z7#SRpOFueFBHP@X)7fi#=x0zANf15P{b=0@oF#=m&s(;({EoG@rTeEF_{DgnH>SDW zUK)&`(xi-kEDwCjyP?YCeSc{Lqb+rj$r?Dr7^n% zL7AJ6@t*qu_vJ_{e+Ia8@Ava5ECHrEVAkZ1BqoKW)PMFp{`+tklKj7NK>KLlkS+B9 zOw)eKL@nhs#>MaGz9g`qxac50K}KzItHa1l4oOHQN{ZgfsjY_nupJ1di{d_S@OW+T zP<(r1$cEiCIZRB?IYGw-nX_KX45pN8i)Q#s)5*gPK+s;2ZW2xBPc=9)3WHGk*zR`b zJ*=^eBX4Dii0g~eK!Y;(>4#lB0%@bZxgB5WTD*#qR$2-`uwd}v#owHy(D`Se!Y0x( zU{A5;`D~r@?6+HZR=bc!?~G}(rVQ#qT^bv^bGTN)!f92``tO5zc8i&p%tB)MmnfR< zun*XLaR;Q&gAPc1t5}|;uSK#kX4X@F?h0d@B(+1rwU2X483pX*^2WP2eT^8lP)H4~ zKDRRLOsOX+{J;l#0>xfETNjd3DA_vH6s>3xlycsb914q zuI=E{+ST-(;skF!f|2vZ1W8cO_=Az($7#~wGQ*E&tVV>~eP~%=BeUT!qC5G{oj#g# z#qcqCf2PJbxf@0m^(*KDD~*mxIzF9k9m}Il8~NwqH0=9acghS^AP|(nLw}{RD;g1;B>dfWxN85VvC+3LuFh&ETuo z#fFwT>t>vidA0EySMq%Q24-Vmmc!)cT=eYh=QIiwdH! zdn59M%>-?HPT_R7Epk3-C9enJAR@zXeeETbok85dHm>3pCSk((i+$Q+!r2bMF!ugD zY*#Iaa#bX|^k-m)(NA*Ke2Qo&4d0G^51arX8Qu-Ni?46xOIIl#`NO?Ja3U?yDaKyy z+Qv7Q88t@w^5YYGR~_U`QW4f%@$7zJ0wpw##NjWv8k@px;Mdeks3!b>l?DNURJwI# zLN==kFbmHUhq%V=$aLz}T6>U%lP3jGw3q7Ol&|%gfXD)V?(#W%^3KkdhjqG58g$if zm7S1$?N9$y|CZdY`XU*^k+IHOtb5#+G`xt(=oCtqd*wv6JLK zgLBT^=zC;FMA=-7lJ-d`6s=!bXsFzc`@-7pv$}hw?eq5m2@8Ar$7n%(VZ6m+URhdq zbQVUX1Cg78UxDhs+-!&~u1mr?TTFyIIjJ=)B^6lYltc%=!n_~b$%6R^gokKLYA$ zgczsGyuzqfFr{h`oX@xh&X{N!f(Af_&PSFt91kHmPzPp4btYLy^Q>;!)@d7X6 zZtlz(*lz`dgYeS`7K$Z>PQ<#n2iTl1uKbJb2baD&>fZsy;vdeAf}bjFi{-&GsD!h> z2i{O!da#(U#CU9QCwiJ|J1d%dHw#eI=%^thX4S`DCXXLKvg{e-IQ@DVH$DZ4$j*2G zqs9#r&yIRG#U(A>{JSS=D&mJ6wEqt`JlbU4EdZ3oRqk@bX1QYRWPH_@8I2mKfkSK&^(J)MJV z92X7A^X3u{%E>c>V8K{k99XNvGU_4XFTDr>9!kY||4p!v!&+9MUC*4v0PE38$z|Be z^J%enK<2wb@nAcPJjA?ix0i8wEjr7DjtpM*Qe+Y|p6PJ`?p>(i6$vZhx?TeIULCrF zUSo-(S>#bTKH=ny=11nG0YIhY>v0hH=pt z&8OL7W+8P2E?6kd+6a)7c}3U{J{vvIp&VkX^ZS78LgCo3wO}eVzga)?v9S(G^SZgO z6BvZBBi4P&vY^MAj#@ZOUU`|Q)=~c6eu2S{;tjYXEa0_8|Hrhp;?+Al|{LST{JqhI6zv2ILalZXV{e8}KV&#V&3q5!eKbkSFH#0G-E6ds6 zG1F)c^b?E&pgf?+u4Y@CTd%PJuht&FR={5wZZ0z4pu|HA`5%jIz5Zg;hu% znp9sfus63A>L>WARI?@_XVp4iNt8#Py{FAH`qIYIH58ILl3|=v)HjE;IJt&uM4FVY3$+ECeG>%wu{9YFv7fS@5oG9 zdRQ^~f_4@Ct4g1_fm0@61&SMsQKJ+tqW?|YE>L*f8%$-KgR$-9Mlm?3-DBnqYLJW+ zzORRE_CBSY#6tY5l5&d13Icc>H$SgIZN!jtS7+X>6gLTFT`*-ckD6Y;)wy`p1d`bV zS(c?v)Bx%QP>F;(nZ51@7Qkw=no#m+jQHoo=WYWJ!oB~v8N*b8GhEESEc6oH629H^=GKC#LTL12Jrq>;>xJ z3L|Mu_ZTFG=xjlnN4}~Y?8xUv&^K1Y98KG^jCtoq%zZv8m}msA0A3ZyW;%w*r$&>r zhgV1jSmOk>f||d#Cu|?L()ish=ko-qKL@>s{!==jUU`R8#!%5A;pE!}PXakZqvTe(@ECxjLNa-NCS2VGn_$%^EsU8Ns9 z)+o6+z?lozxKwKR0!U7Ml3Cjd8<63eU2F01F}_IB^a>z32#Z|sBmW&yl++w)q*k%# zGQ8%Lv5{Kgj2Bq?z&Z$SSocqL_d(xGVRoZPmtfh?V)BVnIXK0;tP!Y6(ZJl1dN_HxJS$$3=6^R$Z0E8Ol{2c;+P5Do*2+N?s0r|fTzyN zG75RfS}rDxlS^1V9A*w9OB6VmQ6gaK+WkpW`4S61Y#-Y=V9a1ZL=z6NL_)LEcvIA2 zSu@b11W}rtO_9fE_8dKH(F%MKl)36?rp{4kQ zdlrov$#TCkSOijwcVj*A0SD&HrbLX3^DiOaU5_vZ{eL`KF8N|aJ-B~q$ z{xNDSnzO#uzo%5{i`hYh8Irs;PCJ1G6<=lvwI4HnR3 zx(;k!@(v30R@E)HhPl(;-hCTt>F&6A77Q>3QGF{vNUFl>1Z z$iDSSllbzE=zpx#x)@OSN1BsxXbF>`tEbueW_LLmll~%{%_*7De{qDsj#w;D)_;O+ zFjB=yJ4UfhTeBX>z&;1AlQij9Kl}SNQSaK zKh;;rlQ7sh)jpP|!yGpGag3-oc2-)tdrSYPi%y0Jj*pI(yY=kJ?gnOKV*={iK35Ji zg0qnDFuR&q%UAjFHL7d+L$H836Ae>QfYdbH2-|u22JN8WHnVTVZ8YNlT4bJ48-v)v zgI_N%GG1YJQD+On`|&M86Z$eU#Cj3?9_AHQQd05@%|&^Q{kO6|U>c>({CXU3m?9nZ zd;j3mjRwbd0Jfd7Y%_7z9BuNXMt+k^#m2#27#AO`1b?xE&nBZOpBXqd$wh>@OE0#J z@}l?PZY+mUR9{N4hfy^X!{X78^HCL-P0tO2CE-3C!Qa^Sxy6V3f3`=8rql!}ufC9E zL#ZCdbo?H)j@CgL73VLo3m6FS6*aXte&v;oZfb)#cJhcBcI=mad8hylya|)yNzDqG z4-DK3sUJ&}zQuaygy^R>!_gN%6I}mUi>s?16jICS|GBTdg1`1SyxnkS8C2ikQ?S!K z{FgHVEOr7Y8G!gY`K_fAURZQ5GvadgSYzaTw}S&PBXu=4rUWN0CphQ>m@mr1y6rYd z32~zHoAfbC&)61|^kOerSq5^xz6&MCF~qvT$o;wffF0Wq1zZNqma-oeg~7L(He0kS zwEKV8`ELd)s#@ZNEoCjJdY=s{3N=O1aKtsyu$-^-SL9c1hr9lQVs8TFj_&b`5`SO#^>hymLQxpMRV{8a-bocC_R%j%A_K zf284vAJoEWRHX=WE~R!>;GcUH8gAPtaxI-m9=Wr#D_22VhBdo_Mr^H^ zH4dJ>@L!+q%9~qi?IcMBYgRkk2BqRCF@gY_gt>BE001@|kgsVu9*@8&8~wrbNJ8?I z?Zt!VdOew7l=NMa=GC9i(oTXd57(+}VFnr*5@VKXj61Wen1Ezkm%FsMFBZ(oLNta0 z6c&rH#oUJnW)y_5Q0bJ?$?SDwRO=f@#T= zZ&~3Vd>H9OjVbeNd(pT(8G|WIUBko-#u43ic^`SmHH;zZ6Xz~MS+NK%x3#UEd$uOG zzFi?G*{h77J4c<~vGdr^6ei}7y*hEbn@W}0EZ7L_zONV4&7&#<)`t+VMDNYi5CBgdZ(k zU>Ghuo_n6@pq+ayi=B2OFMrxFZ&RDY0;wtYGayGuX3puLQd?9rF&-dwOVOO(~Y1qk~L z_Dav9s4K7*3rRC}uBFxz>os<3Y(orhlT^fX@%NR*re)hG^dfP21~r&`1tXE=lefV~8?7*8 zBZH;0f$)M!`tAKXwNlxT#SO*VEey-%nxCC$Jlw(H^O=RjSBe_wQr4Ayf0xC1TJJ&5#4js;Fk2BaaUq$e zC3ITnQMK4T3LXZV&vg)F64_PPrva!e)@s(hg&5n)U!a$)3d~xkJ|(+KId@}ratTAK zMdQl{nPrg2oLzLXkt_-mV(1sCplS5aK|Cp|2(IDPgZ^BpIM=pGMr)@WJ3!h21H#Ce zF)|Y^)qn97XQgi8{O}ti_qPknr05slS_KUl(n`!MnUU@e4Cj9kqJkz&!ZSB@?{r$f zGfISR!q1x}oHnGa7?K^y@yKKL;+-DP|F@p9%IM#)61)CJqdAnA7d8B}?Uc?1C+#L3 zj~6rxi981J&tc$<`lVMpgS_V^pkY0ZG<3#$dj)^cfXqnsN8y`70S>cDNUtxCjLJY3 zRO~*jrY?R*v=;Rwnq{c5f5C;qi2r+OC$*Qm&7USzG)EO)ko_IG2Vb6a)1(8Mdzuz| zUm*Tv=}6>v6IHX2g-ptA@RmhnjFVB{*R4EPTaLXV@}t|YcfZ+mzm+MJpo2cta!Iv< z@X&i&aOBoz022(@zw?2dw7Q~GkHH$ewyjm(zO8gl0i%mAQ-g9Pt=s&j0A^4D4Gu}) zU=OV;96xh=(+$BEZvE-S3Ncrr-A_FkSgxA+`-@wP*1_*cxiXTSOrA-)RhyDlD7Jwx z)fn=G9Al7p;caaB;u^=8tHJ0Ob_nen!CuVr(1!lV@9v-LO#b#aP1FGbk{ftB?_{Mw zWQpXd`Qfry$0dzHZJPS58Du4YJQyYS-1Efk% z8(KQ35dpvw31KRKV<#}PWPE@0_I$kKI2-YUn-QOZ9yGG1zLn%$iwWKj=ef)W@nJVc zL)9EocsL<#J3O&pJO%>X=~sx>H2p#!8-l_F5r-^~K1 zP4>x&zgvh#65X8au)w<97)W-hg?Z$NB^;?7!Hj>(fujI9Ak{L79XOha@c<; z&_W*yB*JZ}g#(8!DwR8T6W$FygfiuNBLCKxv!fVESGPiC&ev@G0Tj&=t*q_e^)_kT z2+zw3yQ^qQM3r&|_EqMJXePS;`@oPNO=}}hA9IvoYBV-EvU|}?q!mfl8H#3@B+uNR zvzC{FnFrTa#JRGBF!Oat!*{OatDAxPTD48kyBP;Nn4Fm8Zr6%f2U9rF*px%Csgu!;!jG#Ey&Tb} zZc78wb#=h=@kR}@jkGTT=hgo%L1gqxa_a)p;W2$8>IIuS3;tF;raOVFA;4HKs zEmUZYB)X&R7BZaT8Ft7EK=^kf3Z~`*C3-I52kw|_m z>@!(?ht)Vp@Nh%+QGc+gVHAss-^u=6`}AqZz28L6QSn=p)7#Fr^sm}Mvpm-f2?4uy z6tb?aQXzR9B9IeBJGis&=E$aJv8aarTEmHBl-rbs0ro$l<-BIT?Q zjOwK^70t~a@z0;|b0$lc-k=C59ZZ|SNZ|iFS}DjFbXroABXem8}g)tGjtDO7TFA|(Re#5VY2a^>|;|MCFI6w8)dudJ$E+Z_nF6L zoI7}t$$RwC_e1E5!3#QJxK9rAOzi?dN zwC8RtMmjZ5{3YIG!k9)>^5LqL15azChXLVOBUD<^$OLi0_UbKF>e=E@Q*P_Bz$#6* z+`d>}tECw=$1bzBlYE$IX7#ghaBu463ZH%^G^BF*Fods*$zxAy7H&*?|7Egm=}*6k zR?pFAls)?BACH!W^|5by@$NLRjny+c(|#9%_d3`bHTC!60>+Gda_mH)SAF!Ba6S zbMJK0f?rWJglcGAn?fJysi|&~9&5-RYUP&^^P`~Ge5aT9oG7iSZ07Q_l`TD!5SuvC zlWIw+d4#wcV3^yw^43qOi|UFMVpnqHF``>| z021X96%v}8)_K|80s*pqWCtSkNwcX#6(+gdudc3+WDwncLl1bQX!+`xSndy3(r@Et zu0uskGDP`%^rYJ|YkWfM*QR($P(oD-;nd#jUyE)72M4$g$ww$yL6;0Y;Bn)-TFr?FqK zyziJM;d4vHV)F?J*w8845Xl5rwzG zXl`l58oy>9#3 z#cr2DD>2M>NTj^|wUqWT{H=hPtF{#^5@~ z$!IV;hhcKc2P^n%IhXXdo!uyMlS&}P%5+Lx;$>#S?fXWmJ}VTHZcxxWwIWZ=@e;Qgd{T;>h zQ2=d#2UsrJ=rUVI5F62kH)`?yYor27p@Pnmg?$2`N)+#))2x{7Db(&QsrjQa5tKt1 zkFd`kN{B24I|sxzY{atgau8u(g!or`k{e5;mEvEXTH$CMvqZryXy>*ZuxJwz+OQt9 zgtWAd+!?nyS=;tSE=XrGFBpH1ng>rvPqHGKW37otMlS#UO@wz0#LKTY#EKTru)@su z?_w||6VUoLm-6g)al!-ZNWYcIQgXA`0(7+( zS8(azv^Mf6dp7gtFLJif&Qxhn>DZHPg2ii7-RtPnF+7Cafa)y*)EG4e_LJ6p+L}-?fRl&aaiVyY27P{ed2EFO3uY;Qv%G@{fH74xQkSl`#6dzPqjcoLo<^pH2^$V5ETSDO;+2134s>c+%J=HF$ zU{$o^xlKVWmu-4PkG1Ufp4Nx9&P5@Nm;2wj8iOaUgZAm93%|n1IdA+b6USUmW~XFm zZruKofMY$9?y#%quW(+P?4&I3y{anh@xrtT_4foStzC=qcl%azA%Fg_zjK<*rp@7Ed zPF>-Nsis;7`s(Q3r`d@X^R7P}_s_xR7=M=Fpx9F_5XmLJ(+3luIG6Vfu#1wWO0Y9_{q>!O@MRtS`|J z>NhfPO4hR-d6V_~3g51#{0l*Gw#S_cG#RBL;JEusb33oI$;_y+Y$UwPeMmYeI&&EM z70QPR=@DVQPW$pzYx*HVHXP-=kuG~hGf`u*Zdyq^nG~!=Yjaj<0=4L;TEU4I0z&ZG z8^*+W9EVa+T&7*P>#TD!WlOe2XvJ2p#>l=_m?lse&Z36?GKzp>GiqsxfcnQ*!ZYzk z?{gN3Kp7B4AQWe;Ag0y?Tuj}Ea2YV>>3+3&2lLs|BP0e?fjc-p7R@(VxAqvR=NUQ1 zMI^IGyvQ(a_bAtztC2NL#ZBe#lB7{ zCA}Qnlzz!%=Dvuz>G8LC#MC?%vYptVq9A~ZOnTqhQt1ADIan?Mk=2QAbw9%5-4Mzz z3$A--i-l5Wn4?f!j(QdsKsC7dQRg)GE+pxGfs15?=VHb4V^H{^!n$hk{7FxC$~s=h zEB59-B^>+rI648R4Z6AeRvyo9a|_2G>mtOJ%*l~V4!^TS;v$r;(VWiT%7SENp-{ms z8|^ftw6KG#jQLfOd=1)JhvuzNyTq)8LCx2XmmRFn#Z9gPL-wJmISi499MKZdnVHZ$ z%*mSL&65{y*#Z}oS(wp{@*k+>IS)CaqrEqU=Cg%Lk1Mw^uM2tePi9t;$eP4%Hy%pV@(pHT6=_fDfdx|Ar1zngn* zIH*XgX4XwUEXRAyYDKiiy71&hCQi?I>!&XW7He_=>ta}6rtM=Twk?9`(hAP3X?#xn z+GS0lI8Qb8?e0muEdY5ccg#O;@H3Nw6ZW%9OB{hXvtURfSlhVQ%B({`XOUgumcSM( zuhPFm(BOBVt?8`_7LsO2FD{(ssY;>iRdH{!4)>@mU&qp=v!iILfl9b+O!_d&bET3ynnj605r4#BI%XlmQp;nAU zMSN{-0Gmi;&k^XThy2Tr^dCf6c{3lqr38qj+xqTjA3)T!M81JP*>!H|6F_KVR#YMD zpLduMYpZI1=L>~DpDxnqJwCnm9e4Fx|CG1K#JAw(SaGC;Gjev6;&C4hRyj&{qn%nV z88;eHDpHBWqfkFf_-KDzm&u>d*Os+&g+WEN>WR}iyEOP&{>Bo>o^?pD)Sx!3iy7f$ zT_dv^tl~agcfrY#OyO9<+Gh+@7A=}h9u$N5Dizz~@V?G;Pv)!Q*z0eVnjGRRmNRq1 z7LGI4*su`!d?a1|D^e9@QONfD;denE?il~{pU*6~5XS1rOuXL$T2L;RQ_dRN5SO0k zl~0B4fgUhm+9F+?Q~?SMA5Q^xs0;Bjb0*1G(kgRsAMt-1%~g3dFWlezyBX9f@m(J* zIHgM4810m*gz~MsG%OOf9>*d;op+eONV)!_rssG1#w1Mn^bD+9dIo9+K~J?(1%Z;~ z==rx-k1QMQg99uw^5=#_$K_WzpFb~? z%H8vWPGPK|>R%nCitl;#kS5D7ax4x}md!PIe~`O#2INJD>?`dVrDl02}_J`I|Fgv%d0#2_D zM4fw(Zw!Z>c^nEVDs4w}yEol6MxkOY{?J2d7t%exJ6(vGa&FWW+cVZe`vt0G5~Jpj z)#j{OU;fv@VYnB_6=H0vJ=ltuTq=;|7Ah!F`Y?(M2eqAX@k1TQ2k$h-xzDLd!Ci$V ze%5?W-AGk16+okug3L)f_|b|lp!lK@Q7(z&V>?F)PU|3jcM)Su9EI`l1=3HV%bg)m z${X@^L#ysQsih}b2{uFJRILO>I+6cYk94=TP-O~ck$sY%;R`I{U$1!hxDTEKL+Rg*jL7mS;MzqeSNQi zm=W{-zW62BfsotWw;fv9o4T|7Gw5n3eXv8>vqpr-v+@^`v0lXwl0hsff zoDCgb=@I*naPmb(xIeI=_l5B~dI#=Xe0aIPpim`z2(v0HzWK`Gc}NDJ=^w{YVOY*Q24l|sYWq&%g;%Whvz1svWd^Ict1En@Rw5@@ zo-MlpPNzSgZR2EN*Q>;un$m9Xpt% zz4kaF>%QkH&A~LGf6?-r(RfpaxbhnwEucLcGAc_-G-y!3y$HEOj@$eJCEh{0>jGH^ z3iY)4ots4}l?5x@zL$>e&6T@7F@+YA@jD`h{I2gRbO3;iogYOMx}ZG~Lyf&=hU}eL zJZ8;)K_9sd8kL!GCWDXgZ7hazAZ34DKd`D%DFQXIwDqR)QEW56{bt*bfqwO=S=ECk zJR7diiq4XCBa6sIrFh&IfWLIUT}(f)%7sFrPic@R26Uo#a&`Crx-I`C67AEn;ah)3kwYiQ_vy7=<_ zxWvi4B3prJ6nZI$ubn2&*_A%@y>nvge(8AV6EFc!bRq*u1#ione`y^FUw9#HF0&Nh!gJvb23VlRFm2!4Q3PV z^~sEGb0NG&;ezC+oETuQY{y?Q9y&Dl_=}0Qg1KNQ_FuFySO9O^_wrM^Ta)8Jh)|W$ zS>)o@N)Iz1FEq)9UA|PQ?s*&W$S>58`^!%Z~6YRd4R$SiR| z`QAB)*#FzXgW%;uviEy}P&$7^JC}J8qzW14m4+`I=b`a3NU%9*_{PT4ri0Nh%bx+K zt?lnx^d%R4H8c~pjuZ9-PE9v#PnY&pyPKi;5=+sTU*^kbmN`Y{_x$6 zy|@>nLu?uZNuS~Oa1obFS1|Udno1x&HPKBhnR>U@oS)A{#Zl!x}I&D4tC^H+0~5I*DlY4f-yPxf9m6khUmV0OMNk7 z^WnhSLGaXA0^+ zqY16CVQuQHmw8W~eM2Et4qF1PK_xovl>$X+e)IaStM%qQ_OTb%XYTALw)HavP>Z9W zl%0CfJH)ATW?7G9cefv{=zch~j6SbtQbWHX{w`caaOtaI!1kZcEJXX8#bx-CA=&%X z-x=}DiSlCytn~ii=+1Jq6w%=CcJIw|kH;XPE$e4S*pHygX6P;YyaTIh zW!AO9U!3_4gE)ExbmM_{z-#wreSeK5D$e1_LWA1gRw6D4YTViajGuD2mxxsW$S91y zB|wibg$j%H^Z1qX%aFwHhoyCbb>zfJPD2H7WQb~@!2!c4Hdg2#kZC9iOUBHVVECV; z#kp9;x{GUv^99;WhIL^l3#;MViYSL#z3`!vZ)6$vVZ3XUJTHh4Q(B6RDK zJCiLI48mr>SGBepB%tq)V&?n_V-`h9sD-opF=unR%qdm;#iS)6F;)1Q%z<1fvP!TKcgv z{yer7i7S9I?r1pO;vj>BYVy#ZYgUczV4<{B^(?;vEEJLl)aUX*kCNLgNbh6BKb zxjdI-o`J6j?~pHNMU>69QeNF}=sIjRf24O!`U7s|k%EAJikrRFc+90FOczUSXPHPd>jd82_e3jk#y(VeFnS-j&ZlVtvUU4~T{rj)Ig z^XV{Oz)uW^+Y(lTySy3b)D{C!7nQmW4kQ4Lls!2V#=DHh_3)?Y7R>X@irVTdChzLA zN^zOK`z(L37L4iwawuJU`eg}c#|P+vog?QUa5K*(l4Ogh=9u^dN1Qe+^tCt{n!y^; zt&+QN_xr98B%4pU0Ea_i`9fPWhv<&)L(Jb(z7&2=|J%xM|MwuL>IvfCmBrt~z)z^C zt28Cygu9Ecyq;|g(}TovdFYOK=)aZD#u$RWFkaJ@)Mvj=m6W73B9Q+E?%wFOxV+f< zP<;(yQO95M!f7RCY=f^VMfj=$YxTdS+dD{AJ#eC1Qp(PJXs>BPH45}aW1Gow197ps z?WLKoD?YZdJYshBV{&e5nqm|%o;;PZ6T|3P$-!(AXdy4#iLO|jV&hogkRuLt{^6IG z&|t`3L9z4jnn)q#yCV$Gp&k6b*^ntmh~2beZ2byfLRKD|XM87Sx32&x*1otyFLD;USrAV{8eXF5o+zL$yTtAn zn&~CeyG@Ht5Zk{{NFamLEH-fSiDM=mIP={2lHp+6XLk*~62lO~NC+qP{dP13Nj zZQE>YGFE<)zH9`_m)rC~sx$p&+$V zL^WCu{y#2&1NY{D`-17&UBjf9wKc#D!TZVsor$+7n?9E*gi@^(RzdFS^0A^p=QVj* z+`bct+#52s=VNmFB<JF&*E7OHwG zB};9*ioXd+V#P%AaAvePpz;1Cqb@_e@{H9Ojda^GsJF72IZw@Hp|F@4e320zq2IQp zXqtODL?lY=-Mpa}7rn2vXK~JA_|-S(Wh!V9O!q9MSnL%Ojtv8j-OucEd&T;@zNHd2 z9SnUZ%Y+byGH7ls1$EE~g6u-b6QY0k&2k%hAW8`H4+-J@nA+t$+TgZ0XC85E<~w2s zl6J4!1BhzwlFl4_yG^|eTYoPW?_SltFAno`|2Jz%koNOFoAA^$G0tmfDf{f&?WCKd zTzyDuTD5~6S)RA0Lz}~t9I~ydn!K_&Va5Hx7>E5uvP3xxJDN>BAosH9FAdenOGv@{ zn7)i0rR&+Phk(*;-S^hy@&|%fH0i&=+L_VMq7s1%3oa7Th{Qn0nZF7Bsyn-Z4yM6T zSeO`IChj8k5}im>Fb=8Y-c?XdfdzJ99kp!>XKqcjQ^=v<4mWGWrsoQ0_`J!y(B2s}!8qN8X# zA54tz0$c2pbNFkOQA#ZfBR@5Exl)a^^wqyB?%Y|&P#Z9=;X2{3c1*SRmH@`0K0FiY zfNp*B6ZVYdo4|9?%*YUxQ3XmWex7|MRJT&)P&KDl@#OADafpbAZNKpPJH^cT3mmUa z$KQ7H!4=ajgXR_^SCo$#!RurgqINRECvsLA`Dizm=LKYLGvEd1E)!Rr~9e-nOM^S z=(4`n-!n+Il{m&oqn2TkzcV5GJSZ?s^|F0U+gdHEr_~_SCa6sNzsd*P4DeBL_IMf~ z$FKjL$>h=E0Ff#1iIXb}@VELf98k@Ov`fg|hiRHG9`NH>o}f_VrpmIl8zj20 zxXgngY9@|X3ohXLO{W^P5aCfde^`)>8JSGTnZAc88|++f0pJ+{J5eD7wrM@7&GIAX z!cf9}*9R)i_rw@lcVTHeadA`~HXL_a92-eUQ3*p(5SL5|?7_;vVka}Gem*q3Ze5zO5A{A@8i zeLrggzlnkz|Cj7ZuH}7?S>UCXF#Cl!4FE3l10B@T3b84_0sOCAd@RYGU1~5J1?bI+ zp{V3S4zh9Rs6Yo9`ZLakBf82;1`y1EWTL=oYrm>ZX^<+1MHC_$BY(fs;bYqnd0Cx5 zqIY}rX1VD{0>lrib>xxDaQF0r$! zJ?_ji6Bg0;grR-eSBfcBm~~LfyGT{=urX)s#N$x~5xeB41fHu9lD#ZU*jJDmHWo?F zojwzK-5TePI3NEqMjLS<)I%V|@9k1|>XO|D0Cq%Ix8_OR#TSDBnpR}aYYk-3(q|Eu#RtZVfVU`f( zSGG-V4sX=pI-V$6wahTkL)gUtb{uVIh<7qk&!J1x48|{?!#n@kg@lp8a^du6XUDe} zwaePqzuXA2P`gOSdt`&kanB{KhacJ+^Xx{kdTfCfyU`EdZF=z4>d_mI1ACikBum)M zlszTPQ_?x(jyv92wXlc@SJPj|DF7cBgN-OFRvX6%gx`u}&AFjq@~hDrnZG(=ERvJW zxo*z_=0XGrEZCF^k+iXo1Hr~@Q3s>t9Wei-qB10} z%5#lf_CpNaZ#h=>1vHt8#wiyM++lcdYu>{`FR#fT9W7VFPT&Y;Oah!0-z$$M10iQ7 zUCKsWl*!bwtUU<7B4_U3Fly!KvS#E7q=toB5WTX1ro+r#S=ZGaD}cJ`D(kuwjm!vr zp#B7?8+=qC4@&dg1(807lfVBJXUuxhA(Rk`5IAw7 z3jM>6-?dUNV#htLwtdLma-P|U?RX1r;;NM+T!-mD(Wk|*k-LB1fN6P>MQ?(H>tA)% z*Nv#99EdjL?QKmO z*y+~9x`LGWbxmig_Xy!RALZ)?Gg^^_gBNuN_qdtANOmwe6ip~ozF?{S!uAQf&w}`d z(ajCf(%it9n@-{rI;<;9CJd9>EUi1Pn&tj3LsPWKp6Yi?#1Wj%N6d+xXnN^k04}<+ zF2~}QAW58pi78!l6G-lADRl0AC9CN=Sb8mw^Ziga2g%=lt9>p5LctZLb)LOM8V;U+^ipdWaH1>2x; zLu->AyQQ_#B9~NS%KFzsKMNz)^H((w+H|2tRL{ZRZQC*dg6F~&X zO8H5P!&(?|WI-oBsjjC@ulM$DvUQ)Z!E@?Yc8nLDOx5@$hy&VPQ0S~ss;MTu z^iM%kVS}zcYe@OLa^OHtrmK;vySbvdcFPR*X#pV-HtIgvrWGX+qtQvjoeuG*4qBhH zy}or{5gQg5nqkG%E+a86XzC-&h+i}ww7ZZCCR)p=`Z?L;jLQpHoG7iyMB-+$65Lll z!Ii`R_FmgZem`cLWm&4fAqstuJiWOmsBIFEa!EA>Q;;FrbxNXP=7nj z?B?Khnt>S=e*%}J|E-C11l_u>V5*FiToMi`70yme9nVaps#IM;pzg5@PmG_BJo)%J)ZP0=TDF2E0~GF(CK8sS-gW@Z=k zD| z`$IYI35OGYM0j~s)|*eG1P29dp%71> zeYWA?nLRPaxjK(UF9ZSYW}MsY4_cK(FdfUlRK*F?tM%u+WE@P5 zIo^^}8egVJxOd@&AP!oV!2FF7dO4rivJ&A{Fa7-%RtGyBwbkRyC#L~$%EB30PuDF z;fnIy#*lxaF!XmDX=RR_B3x-JhW>r+nmDx#TVdjEI3}{n6~<#Pa7r~2Ap#N%cV}5Z zvcxr;xUWxb1E*g^uvUw36$+c^u{A0%?P`?fJAdvIf3A()tnS;CZ^T2X9_%Mx$3F7- zsb|;naJyj;UR#ol8oE;9!=Ij=Z7T5Ns_|zhTiw+&JHnd}9Ikh5OE#}8jB0(`FBtAc zxK5z6T78`P3JeNptjNn)_=F38JTyb{F^=GT!l;D5Uw%4Gx;g6?!F%|A(ME~=S21{H zdn^|nt-g~_y`CBFaAcRMkTd{XN{%*3+nFOB=Wt_>dYL2;M^KE|{qFh;up|bfzrm*v z;ccF>OH&WS)|Zr3yTs$gs1{cA=@t4^f^MAFLeJQFXW@Dx1((K{MZ-O ziq>$7XXJ~ls`8aCt^?Y8$5)c}U1}VHc4V!>AD3nY$y|UYwrcL?5D;D)b@9PS<7lH# zZe|WP%bH?tWbR035e|dm0Ky%DE_!+&IpS(N=Wfe33Wpl_(L!cU2DP5;{dck=Am45n78Lflr@{uKD|YCK-prl`l8OMN4Ci`hArMP zXBr^?AA1{#lp-<6mRoHKbELNV8jU(YsSzDNwP>$wPXN~z*Kp@oeM@ylbRTjx$ zVqmmxIu?w_FJ~AK7AW8{dqf7ZR7M({jlgc$G?~4xMy}hPlBAUO?;>+=VO(jEgJ@iC zt9WCnSXRH`BbvkKrO;tY41X$VpG*c(hlMOX?WW;E_F@aBPgai=?a0x0J5^5fjzY@s zyX>sM`K*Z}K!JrT?_@cwCt9?fV}mj|T3K=*;Nf=JPypb3Yt_M@lu*G`TX)riO^5IM zvjHT5$>0waGQ}ydPA!J9N(Ccx+!5NSpgL}B0!p>&Ab2UIwU*Q!?0?cCzfx=~TW$}n zOr9<3$*1wa?P3RxVkS=^aRUHWob6y{zCb$CV5RJqMbH&GpJG~nZJijtU}0l5YR;1&*qY)s6=vRNUnRC68mlty&n3!Y|*gi zdMGe!_~ccU$ktc^QgWK5R}^3R|qpmwhrV zQ&ncbp~XD7&V1r{w2nt38Qwf(X9k^f=7ddgd|6%D!B|kRwBdabQomDZ?9ymynX+S! zV+8&PAf*(gkK3|`K+-Hnoy7828jliJU-?-KdjmKc+J>3Iuun>aP%WJ!m}a!Bn_&C?b176HW0VT+?Ec*Ky^B&P@96F!N!l8Tn`NFpN6^tYg4-h zHrXJZ%f8S8{pb}?RK5qX-yOF3BWqade`=SAVO$bSY;%QTzsDT7RSp&+g&hHThms(X3-F4 z@2NA6tsDe)NsBJsF`MoJbL>*1Qs>7X_yR-I4248y#b}+jDhUPt(pKmyF z8LEO^Qd$*PmJ7lo$S4!Hw(VD}l_6+i#H2-%N5q?d~M#b=#R_PpC z8c;a}1{;-AtH!Empl@;AthT$`HPPT4X&WI~j0wh09d!mmep!g$dOD1V z_ybt@vxkeH_Z*e70BEfX#R`s!rv+M z8>yp6;Wwx|d;maHuQ)!!RKfd`U>Hfn7;Z#I24!i!#G$TkwdgP%H}Ey1%HIno>*sZ?_2*TZeE zZX9!|5$PM4`>zewQlWAzJHc*(v<^y{VrpJ8E%1 zZqX?)^BO2@kJ<7JZ9txtE2j@{o%*F0J4d$9_eVi-2cpYvKmIsTN~?zwvtZib?#8)P zUtI_rLjgb>UU7PDs+yLek&Q@3(MTk}?A=#HUP1Y_J%)cW+_)iX7=$7?nrkl5(|7lx z&j5hcmxjY>R8RnFdq%)2^nmPVh1rJD!vn59(t7p*IuSjzgBCigi5jxrle`eE0SXh9(p*SajS|I=4y_oEx{<5aC%N z2Q1Q$!J_rH$Sp5M4h3< zWnsKGqF+De1EmF$SUFeXKykfOj$|3Ods>t)Mz*w|o#A#w<}i)uM#MW`$fkJ#;@8N)pJd83T_1*XYJCS_!w{1s2aXi7+Tv*GfLFnV80imQ#Vu z8vsxbiYP84Xj-IGVF6y-k{tCZC75NmjVHDq!SwrnZN=946Q_?(+(7oQdu73hlA>P5v2yQU)71ZqKL zi}m?V@wEn$bgjx>EKf^lUs{S>loH(qC@bZU!kCp<(@I8Ce zcQB*oa?}f4%-fhKN@t-*H}vmx89E7ZD#xS=-G$<|^Zg2;eJl89gL(8k31o& zi3b6H_1?*gyQW=hsG*g?aND71EF3B$LtVssQ?1VSGmi*XM5A=5UTm@9aKc5y4W`39 zY7GM$*4%WbMU8IDig`P0pwX1~?c4MyuA`roM1=;2u`^oqegvq_i|w*556ZiYWBZ2n zRUtH4d22;NJ43PD_XHjV47K0wVJy-ss!HCC2cwG~QtI_wuxU(D4*Z7%5IDu;JNc~rQ`ZvE1 zXzAm8sZM^7)A?U`{9|D~E?ME=y0BTT%Bu9PnRTo6`qd+Qa`Y z23Z@gEXj#VO1v1fWlp8AeO&jE>v%zGd9#xkx6azCaRC|Uz$^iAq^lA89*N+!V8Nh> zqh!R!kLI64e4Le^$GwJX5Lh5OP`H1f1ea*BO~!+}Qv!SZ(F8|8jrNmRAKr?N_iqG5 zc4IeOu3R6#WmnR`52YxkIaA@z)r*PPV!|8WSNn{=%R$Uvo!T8+(Y)ApRREpQKas>= z0RMqsDi3o_yKa6BR}#r(H>1GCpj5y&F!D3859G>8RiFSp7McZ%&z@s7liGkA|uNTT_? zx%sC^$>;4?jrH6?odxqtj9{7Lq9nFpT1Pi-#_-1Uaw-TwRz=3_-N_nwkr^X7ajj~s zkJpn$qR6pdUc3G1!8!6;Di}6^^X0!C@BQD55%`)zU}`W-^ic~4%;PaZ+u8WPYc=La zuUlZ)pA3v49-EajBfe8xiXdy_fXBe&;;03SL=xl6H-Y;L1VcD)r&<5oH8`Zg!XeYa z=12X=5915zyz*v2)vEz!w(Q)WGwQKt#@8OScgY1Kvd}}nNx*&PqNj0hjM-FA@)F4A z;&hQCDvWeE(@&h-8Vy%S=q_I{yecP)f$sFm4iV&*gH3c383P}FGs@D*m`KjEW|tps z9C8m7jnY29Pm2+@0}pN-uuGc4onc@aqoEwVrEPhK&R4#&qO0K*Pam0%0L8BtITiEl ziQDNuKBHH7uLMFkmofJ>C;g^4Td|Nr$qv}@3L5Tn>QKJ!4E#7|DG(p=g1MoEQvxvH zxsM@ccmWn1Ks&Nn{P58-5lmo9J^P!zWUS-=aRH+1Zo0WiewGihhdF2UIs>`yk?Q-% z84-*dH)4`;QgjQ=IFso*#?w@WRH~6}Sd%cl3p0Q}BX3ysNrBJxsz)V^Igq(PWksH% z80u)rzQ#OLM>NzUeIpeybz}-J6f^pF;|M_`o#FG0&1{3m!3?ZfJ}gIL{tDG92ma7d zQtoyrRXL&fhTF7=&3HGL{12lKcKs2{5@IUco-m?e5n)7!xSb`?{l})u=VWMW=zr%r zh{7MhUR5ya8af>&96U!}*#<^952BCXA+o8K`EUN?+WjAdp`dyeYPXbqTJ$h0QT>yGcbtG{&gMaNz`Lz+$`)#A$UdQv1aj zVnvn3cVJ(lf0dPAU*sYv;|#59YBOtkXLvr`9DqIaC|lUu>Zz%95jj6tXlYODzv5 zJv|UDhh!QgmI&-R2w%8oW0aBdH|}iKg=~?_Il!5b7uCI9^))-;j-pORI?yEcRnE;7 zYoAp)*8KmtdYWf?v~_?20_`dp(0G7hI9;+~MW-HFA)x(Q53Fh)vCbX=bkzg95QUra z-D_j+d<;CoL<=#XdY!)OSC2f=70bL72#<6>57ro8u9%CAA;GCZhMP$=;57BXAe0_< zpIhEsIWIXmkC+$auprJ#4v~}|-K|#L3R?SiT;AE;QIt@dhv+X5okoCuizoM-Xg6A5 z1DlPG4@&!A9(9aG%oV}9J<=_BtBTYvd4JxRTafi5T&*(Mp${A`n5(~AcRBP9dS-zE7n;9-=E z?7)CNWA2?mNNl8(BV1uiH7fN~G8cyE95CgYD2Y2`Y0V+X?-d(s71%7WN3V$)>Gv&d zxk+th4b;VCyVj2&Bu6z>YSWPPVj9xAndp`}dyevH{bsK=mwQo}7e<<#Ml@I*A#zv; z10?nxmzbRiJ=>yHb4%l~N$z~;q6YS(Er+=_HUY>q;9y7ddEQSwiG9;!lnNMBg-9px z4WJc0+hctAd%NRetGc#;zw@xAk9Egq+t`qh#6v>-riQ^@XFkWkXbNxbRC4H}Wok02 zsM4O$u9Cs{8nxPoa)zD!HzA})~z1e-WyIk>+rFh*^I^@zuy)#0rYshaI09|l1;Ml*^pzN(pf zKwJeAoC1P98wJhGuWTp*_HZ|K#0PK-0&TcMsa-s=)WdHg5jzu4hhqOF z{cc#pft+DJv{NX`1Eb$?gpReuel3S4^o5RtEAehSOGph9oAjhWDKdi9S3;aXS7|&F zFk1=2VBvZ$(g%+&;qD|V5Ie2=J?X~G0EAaH^Rli_HYpZeARn+`p_mR|2|BU=MWQY;&rVwX<=?!beQZw1#Pbt+ji zM@!9Zs~V9*lBPxAvGBxTtyI$YWx-Cmoc+osdeI8fb#3Q9wFE~Y=^|+;DIAzPYLpMkkfwq{<|E}p*ZG+cd_!7~A3UdDoUFe^zC9r;&>FVAD zDW1<2OCv`Ie5CQCCr`CdVOCM?!af*3^1<8|Hwyf-&r|eV9Jh^!~ZeqVa?EUULISo&=NUp*2Qam2;_GQiAYo7=^o)q@uqTTvT>N|ZW^K(XskWdnF&>gwT8+rjtg zPv_4*YVC^KN8h4iU8Jdkw|rNtS=w*n^I`5@!9N3RLtR z>uMT%IvsulKbJyALNs)Av`f@kFAhe{Vp_VUFIq6!;Ly3yK7-x!aRu+93f(L%o>}d~9 zbsX){)sD3O5y8&vRY9_x8N6B4E-Yc(g7$VdW-j9B4n;zYC$I*ffgO><1yT_2n7FKL z<@|PW`gXfz_1-0XSuIio-p4C@kLCW|z@;an191BYh%coYJaOKQcU^e-fStdsx*GLe zz@!0Z;lfsj-gU;Kc?MfYqtWV-?5R@O6z<00<@pyxvcPthgiJwo2-}))zEuVQ&lHW_~va+3-g}V({4g~9NOE_;$g;=Qvqq{q9P{FF zrjBiYd0e+*omfxsuRY2mGs5+tL*223`v@#SR=iEw5cw4kiQYud_1_hQXZt3f9eP5- zKp{jt;xjA@Vnbo6eJ97)tky%ZF5M_S__3&2EB?4P9zg5UQBKwE=sI1W#kdvIdb)A}J=JYCq2pKr!IRa6}mb)%wZt4Y#)Ilyr`MLP# zh+st8xd)rWBNR?q_L-MHf8^V~M?MJ0fV(zRg}ipanlU=IYY#X!B5th6I|P@svi^Lj zce@1jzkZ=3f? zc3=8aiL>LSgBhUzJ#u2rY}0w)k3YaED0xB9ig^)Q`?sQL?+!0}I`V;`eT{R4l8*zi zstv<{`oXOY8h<0{n6@5PAc{~bTOSf$ayzKZFWX}fYkKTWp?Mlk*)-mNvQHi3*{AY& zz8ED3m(G&G5)5X6M8&f8a7r}f`dlSwU6X?C!nNN1Tg@OAQXA-ec#<} zZWAmGH-Hb?_{Q<9ERMa``Ud7=UjW@{aE@$nAMBk)(rl4>Kl^l4H>fA>_p3bO(M4sy zSBEoo&e#ys0F;fJ<7vtNt{)i%B4AO_d+9oge@*UWxOL(}Fxk3;d*6{KkrbaFT}?dT zgyY*Yx%|0iva=X*4a|_u^rU#^4&~Y?WPuOiT-B?j7N`2%YN9rAKxN~$ILil3AGS(7x{mk5KIUiQqF(SS% zO&bRV{%mz~X`$0Wgs?~o&BVY-4%Y+X5-sx^M{E4u^)@B3|1pD%^zPWI;W&HP;h<0` zmNwA+bJ>ApcY zll*(k5$U^_)H^5M#bv8?fWG8jI!bKHoY8OnWqC>y%3l+YyIT>gzR2E+zM=)NxHH8a zI_rUR2&lqtLC*%D2@p=STiqmY_sX%I~f^<1B8qIN=+F2tq68IO{bUf`N&@fC)LSjBX%~>2DfKX5yOS+*rZrEBD>u$HZ;g=Vj4UK4 zeBQg!(r`6VKB5mYa$b4)5hupaOoeUSd94NhsI%;qH`Q_Cj_QvaOOfyx>05xTu-}+| z%Cq_{4hic{j8|7opFzTVCwx|^SH=cjUkI5@k0Jh{S-B_rQB>kj^2~RV>*Jqw%=q@` zqrmg71|oO04kASXVV-@v3}DlDImugoIZ>|b*^i;-%xk3D?HQrF%E>AI_|mi#}#xo|8H z&AVz7c+dFn1E_bm@MJD|>Gx^Jw(5b53bKdR&v+dkaelVWxra_RrT5q1E+p08acKr* z#L;de86J*nC}-Y;h)x6E#((CP-ysnndX06k7hAp`-@JU^6;i!TWOd93#~n@3OT!@N zO@^H4mU*YYid$|Uel0Z3-y}6LPh>=SKsfaE@!E#4VaHX-1#LA=&{0cyE(jI$$(OMi z$>sReU_+n%H4$wkoP*l=q?YW-w2tGu!oV!@Hg!A+98B+7(KNlF5PfjxOAR?oecqW~_CO!kq!TEB8B z!}k%D2ldAiWg5;ucHWE!5%RLVE6pPAyPg%2AKJaFu3h0~-_IY0dP;i*H0w7C?<=5o zl0BlYO{j9v&&xzk;})-I(t!SgUT)B3nX9O>veIw1Fx+sUQ7g43;Hr)g{Q(OermW{Q z2%H317|%?ACiMOdVqyn-Z-JO+L6>%SP5%hRt%d+Rve^2;JuwR%j8>7livmLNc@s`% z%&q9*b2T}*68pdS_tL?csJOz&U`7T34r}JT8AyMwR^C#41Mr>J4JZ4mTT?gs2=NY; zI!fYGp$lcZ=EUt7va)PDI9hlO9~HaPS~lqGtA#-etJ zoGW#wLt1f}{$rgPBnfP1WZ!AkKf}N+V+`N=8-r}`9uLgyn0LYQ(P?8nCcPjfm;N!F z3|P(Kgt&btpTzR??p?*+qr_?K!rlqn?FkCVUzw1AmNQv8$XFmz>kamYZ7Iuch_gqB z6k!zv7!m^GH{>TtLrUilKH>_(jc6!vpC!YE#T?ua3*_Dz-Yl#5Y=Tt0{m_^nM(P-X z)G5$bz@vfTl#giG?{gJ^fXKetSxlV{{Z9*)6@@P^a?g@^?~-{3A*?HS(<4n=M9HNK zxke#jYJ$$izQ0M35I)&O*Rd947D(%3z)2F&fF)m_!L>bOgV_5?KZ1O&(FyTr2_rA_ z__qAVfJ;QPmMd;cs0{QS8gFV6P^YpeTdkSLzo7_VQ@Ja5p)8%Js-@Q8my5mXz2x3- za+L{b(7Dr9c>{5&RFd5OHnx>Wi$i;{dk!WNMjl67v1kaR%S;Mdg_t(%hTd)Kda*-6 zb)0(CvDxKWMzNTZ=x!R9-m4PzBW_N(L*b03s2Tflyame|w9a@G0mcu{)u>E|V+I5{ zQNTI8)_JD1ixsvi9^{5!I*|OfuMN9<$b1m>BZR$|C@f-V$D`t>*t-^tLGeP96gRmmW15JAqaZ%_&itylpt?%!oXESj|>@a^yagK0j98YB2 zvB?(?_8z{3IZX_Dk+vsplzEX=uTweOuKQ}}2mBOhk8d;Crm+*L0{_KJ7lC<(uf1cL zs~;x9v!fxH$GDZhsuFpIsHyp+u^Jd6sc0Ghq%kS-tX{URxDwGHgW5urSmqaKX+M^- zlT&3)74bk z7XoSBbxD`0^ExmrOqnmatHl3%(1XOf-~6E+0+?EEvUAW-(Pwp)M1yz=L=Z%nHHE16 zrT08>-F9vAkj<9*PI=dDTY|4|PF#{kYR%t)&-^bd2-tR2-?VpnH#Nb=;lodSHf(6@ z`zC{K-)Il$rY^7EwXZXkISWJ@%%_bsO-lAA!3&1N|4k&@qvt=UO5YFHkPdC2U}0vv z8LBiFuxwuZOC{)RK%OgVDee#8i(8opyxaaEi_~5lH5Mk_Qp#(^x-;Z_`;u^ehNjrF zMD)8!aoWn#GM&%8nghm z92~BX=PQ1Geqf8$x*ZlXq)Q7uR1Y=4{w!wAvaWakmE^&*b+Ay%)t^vw&H=(s1!zd- z26Rmkuo`~#&JZvHSF(xynbwbDO%Hp&c*9r>F61KAa2ELYk?D4*n^cx&9)4~o z#91RFL?}Dqjjtj0CYv;AwQFRC{w8AxA<0-b1M^L@?UqAa+?NPK)aq(MUH{{8%^sXy zv%avj^mqVCh~Htmmut(XVCf7G7Z-R9jFNDcR#xr6cONZbEG*ocClQp4s-mUE z>wG8+M&xtdS1gyQ^Tw`Iv-Ld)%uS8f-N&8VL5}OidgoGjtzcQxC7+i}?P%3|S84Yq zOOSvwX%*+C>F2D`2dg$;gXZmw(Sqf=m-y#r<9kg^@2ulL#sRL_p=GaM(D~Pj`N!wK zXPds(-nguBYt;;k)nvzEMnSuu)lt6e9bP{&)vFmSAcqLi zTlGa9?bCVQa;>ylv}8F7yRD-Qm0#gojC9wHI?w$rGWl*!(E3$OeEx}rxRA3jsY1O5 z%HgCawflKDYWHXXPq{?i_i@D>{CuOs{q6B0@}LuVQJ$WjheW8TsFTpHyc-=?-F!C7 z%wUI-Cq1vmz}8*<)vc0X{84p@{6!f*Et!|&&r$n{zB(;a(rYv7LMUOGTq-0t=OEXp z#Lwj87}#z&e{JhQ?XR~)-=D=0XCFtcANf}KT24Pm4;a1cxd4pdTxO_&EJX6Cr-qY{ z^Im=F;N#)7f$Q7;4zD+skBXBa|I648;OTmicFe>{30rZsSua&*;Xw5{)snJPFHryY zmqIp~ZMG>-&_>7X>hXdH)vs_UVyNKx;ms~@XJ=>db^m`Kc6PQYX^c9pKTGDo9ZVeT z_l9G@Bw}!r6A}zP*GEQsZ$9vk#J4@Wv z%J(HfS9jZ7DABgUFG*@K0)OT0reOE(9~QV>E6?Q2@yL4J^{kN<*dkT9y|N969rMfC zUY%PK_U?85?Ocq8pXf`^!rHI-x^B$e$7<7|BJ(){jFaFV8*4fm~d|1?fptqx^i zg92Yuw|+Z%&4QHz!!)Sfle1$ZoM&{eH^=S=cD76LGQn;Wp`P9le9ECzgJ;1pQCxz}$0NCSv@nD1}5mEZ=Oa_8ji;KT-d)^i{t}!vv(w0|NLdK`1E#I66!=g>HDK^yCXDJ=!%+~;&=$%;75%&h_ zCYdVu;&9X!()SV10IU}y$w=8tApatn3<6#27xj}MKFXIk1PnK*j{7hEQR*IVC6M8J zmb=N^0M0YEnYLZgxq6pPs^VfvSw+@H*TLg`m@A=9EiRkV)nLP?h*TJM>b zlnX3()tD1fk~$#+C28+`r2#BIztVpqJ#J}fDK#a97SpH#ze~?PmUGHk`7Pm-5aCPs zO|SjAnWNMlS`_cTp94x&uknC5s0euCn+mBqX80Zg(r#H4p%|_l3*?-BKtwdTR1tTMflX8J!Ix5L_1w^Pr5f~^f>72`aW1}Zr z*;FQAl)4XR^0GmyY|P@^%;@X9IyOSa<`t+TtavLs+qj3KMbNlMQETU$YZ;gUp0*=T z)kqj?jHqP%1h4GD$8{92e(UW~;ZTsAX7duZwhUlIL}v}-T5(JB^BM%Ajr4S!UQz?DmElNOib7RdOqqKqSq@<Bg}fdWZjW{zlER9Q`2Kj%W8+dU`&w3v>5bFyJgn1^?XYbiN}x7lGXG=-AkPiKw-dsa;vfdXX2EbrCSg4&lYnJ$DH36<33rhgVi zU>y<$>e-hiP%Tyk!}`{^N0!`w|M+%I?%7PdV1x8)%OO(uUc4GfNfveeJnbj-Mo5vS13$|P^TF8AcJ9GU_3H`8L+nTd$FX; z+Sv{Nbrb|d^Ew|I0(&S1UWOld(Bo`(XOU+yf?je;;Un*gL5G7c9kAT-C&mWtOXN?! zzu)AlAErQRg(1bUM05IjK!ge&AO5-Mf$I>$C`heyQozz>z@Z4ehyW5yK|)pV+B9bY z=h*Ixf16q95%bn%=OOR*!t-lL=Jb4%h9z}>r>p7NB$uI=JJR~{zoW=d=uc)bEf!=Sz`fz~vgZ<}!$0I*KKNvfg zc5c($yvwIssh)k!H&aIOI{deg?IZ2;=Clzc+bKI&(t;W4;J;Q)2?+_+ewBo1Jm?Kf zCl}K90=Z0huc`J8xgU%jg^&G`?y{{{%1f~sJiLuqbc@M~&DRUPp}y3f}K$K9U}*V+s;{wz&4D&mgtPDOFQImIcWKx zHn{K>%wXf-jG>60dIC)%g1x;xn5*kz19W5T$x6mIE6s2tp2u(C%og#t@Dwq_2WJLF zNg26quXUyFmh8_{7-U4!aUUl-s&1Ou9hsaYljbU=0IdcLZ~s7$jKpOxPn2&dI_{PT zWAS9CPmN77OdpNt^}E^$k~!`8S*DoJIu#-TI|HZ2+C^)=s!!?FA>VAIb*3M`w(7<* z>VB2N|EccE!`WK5ep*@_*TGe^p`oQ*RYNuE7!qxyhG>%`)KDabnx|GMQmQ@GHsvZx zDS~5asG_aups4w1sH(BXno^RA3L)n2<$mY+{`mgB&vWnkYd_C^_q*4-_FBL7TkGA) zjyX2-ZF0EOkVNWfmx;A+GkLIHqp`_zvNlVvBu{;MKUji;NsKf6B6!gWGON;5^(thU zkwS}kgK1x_ZnnZ^ONCIDtXheGITEVEpP7EHt#}#Xt`U)SM}q=~Uh#>{tzw~GHiKBx z6#Z@Xn|*`6&$!QcS6A1^gG~b{-)F9xN26n64xm>iJFN2D{hiXOsM4eeG%@>5U$aRiA~!BS;y3!ENb*F!`k|M zdDO<7vZyFj#@TJs^Dd1Yb1J3Nes{X@w^g&Kcids^KYOBounUH+L{i8eOg;PLtf z2GVricz&DdNMt;S6cQ4`7U_sr8;2KkGxYHRp+2~qew+NzdbU4H+5ztMJdmTzq{C4T z=g<7m5*Tk6zc^l-g4=1&B+0CPlRI7Dbw17Ia2VmZ^xL4%pXMMQ>>i|B=%;MS6vH*Y z)ph~l&fFB|dNx?RDE4@d|L9W+r6vyK`LkZ16(LHAUV|l$y);~v!KwVw3LhJm_UaYt zFH6hahB^Vb2`sDev4pZ-b{l%e#nOcT_|62KI2yJ=6cENG^`$93JQUVtD(HxG`-9XB zVQ!9&!9!lOj;1m=6$#l$Hm=(=lx&QO>A9|HhC6O^Rb0Fp^x(V|)YQ}r4BowdePerr zyKt~+VWcX3E%dogK&Fc>iP5>fwcLH~+_^XyV%T5tN0-h7|BaC-hyayFKd-Y1J&bXlb`SZ8fqt$>=jZ_6p)JN1N1rEHjOF!?&WMK6fhKu(^ zU-x)+(&;izBUrHn^H~PtAZ5N899v{PO-UJa9l@^Hibih;@0HEY&XYj@`t4PF`u)bn z#(+Amb?xNEp`Qg0yxZAet&N2cYenV)-YvBSvj$Yyy4jQiC&amSVDGiS@~9YI!{vhM zfSF3e2D1p%m}mAo5CL1frR8tkYinzZp|k9<+OACzEcKT+(}d+qmo6c zLQt45Bf;{_-stG)rsn46rly~Sg>ToYqx%e>D{K6aNv6mifx!q?R#vvQN2R0&MuJcD zPYV89mMo;=7BF~k->MYy0h52Tf%k1fwj>b7dvZ-!ES9T_3n+zDqvlX2`uqDg*A_KY zRfR=Fu9%rEt*iu*5swSvZeVgRqP;DzU8{-MTun+!;_-OuTh)zDL$x8`ODgqQSw!G; zrlyo$A5-r(aTLCgN~O;C(f}3^gZr-ntS~b(JEj*jr@#2Fw-Ci-u~O9RrC>0m+lQpE zWyX~>xQcf%>k(>EGz^yTLviX(C8KsozY+M_^B1lQ}3Hm@qKfBg_dAOH#axP=;&y8M1<<; z(}Cd28`ZPPTU%R?VB|j&P-$stpiz;Wn(DQqt*Dp>q^4%0kd~hlT<=K*HS4Ns^O>$ldwW$En7%E~$r2>zN!&-)I& zzP-lY-C1jpJ*`M{di1Psj*%XquBzJW3HKRzrJ|~;s;1V}*(s|VsCf68sttRjsyhL7 zXRUT3HMjAUc`|4+mHhDsujR4CGNX&{H84^Nf!vXgyGJ2EwS>k>C}W>T^11@p{*7wJN&zucU<$0vZnV1S3iBDZcrbaiz@CL*d5S(uln z9$UQ##t)q9HgF9yP*tT*Ovt_8T3?nFR#8*qaySR$L9Gvm+V7QHU{2Tt5Y{A8*|HA~ zjrgb%`!I91b~q_ADr6 zlG{_%9e=tYc=N~Ci?o3>t7wI&JUswe$h)6DeIo8|3?{dmJdxFn+zE%+SNeK+dcG$9 znXG0HJmrAF_DXNEr4a&wNYNnvEN^HS37$8$)IgkTK!ZbhVNsgu>L0cH6?2f++n*fA zA=hWXg-{upTI;6Na~_=%2`~Wew=9k1?(m!;_zxm7=YtwvqW>mn77W@t!jM4+QY@C{ z6XFek9s(|tbk!xD=;`U{=;&C$x?R8SS#b>ll0k@d#^VBM-TWTN4bF@iger~6J3K!> z&r%D@<|onloWRN#umFY~gL*DG;qFtT%-l>Jy}i9T91a9HRggh?W~Tqnh z8G&H2E=BS0-@l)knW?+I2GhUQDWt8GLzsPK%x4%U_5`Z^GAGAnq|(pM&Mq@E6KDgP zFd!;}Z?!%y&}nUNw;$iOdl!1s!(4L>zO}s#deP%czGU)7eZ=NauRP7^f+;hQ*{8BB zYV`1L^PvNve=RTn``fo~xmxyb%gX#DU6A!5i-cAbrC^a{o$IWX+PTm+NQ~TWk-%A5 zTUTZVhJ-|}^qAO`ILtHJG~7<=b&tBVw6xeFeEbtW(CNT|`3@c=m%GEi-uUp3Li6C@ zigf||V%mD>)vM381HsB`h=StWh>zZI5OV41=?B6&9m?9;+5ic3#zS4by|d75)(;Z-``sszpViXiK;3qTD1i78bDQr&!ArMIJ&PpRYq=8 zO?2psyvLqlKIl2te$UT8bXTmY|AClA!`D~4YmN5>41u>r?ks0j`He_PO7@ct z^z_KU@&IWd*2ULmsTc{1T@U~8?^Om)9`~vD=#r+6@9OHh42Lj$en|H8v@1hx#DdhR;2y{L%W zmBF_PPLXg5dV0fjdJ)aXnD1vk6kfX6TL0E}TZrM-52N<7)YMdl9DqlU2I|suJ0EYU zT}~g%)=*Q^R{q`QOcZ4U>7fl3Me@D^#)bq}6nTIKRHxxknl%RP?aKCo>*y?w)mBa0 zk*1q759=NRH^?}4&K<(z&^72EJ`87Ue7!FU0q*vEGcx)?UteE1NCFF3zoFNSTg|WR z%BXnflT1gf7o4-aOpM_60|ZSY9jPkw>Q#d5?b&2xW6-BlK*V8BdHZ{uIgTK&e9AV0 zxOZoc32Wyb0L`<)j|){3{#c=2^=zWMJHtdSg5PQWbAEDr2;hJ2U1{1r1GfGKh%nB~ zS=Tm5D2Rmgw6tq+HrCciZl5LO1uhF2&byI<6hFy42K4Z+nOA~*`SL~7aO*}bXCmy| zanhs3kcQ2Sn9PIVXSI<4_%V>TY~|Jgc;!zFpOv zFF_HXHL2-p<{1q_rElu`6oB$U4zJR01P-cO zK>q8w1NI<$N6tR8>9ok9(Z20$Z{A+j6;BWj-p{5W4WE_6;c&z%|FMB$d*Yq-*@63s zN>{W}FC%t3DFw>Uce`v#34UB()@TlBWRGw{353kBfeS%FE2M739wAoSTqT)wYqIG9*f~M)q9_F>!D{kJc=m8b(e&lO6DI8`&FyPqOSf#`cfIuoL^W(P{BeuDN0-~_drHupy69QOM3h_>ur)Rgwv&wzl!`X~WD@b276~%mN1>WRlIU4_%t->$A%3nVX%>@AtOE z0inUlCnH8H3Jw1?btGzT&a=qF2!-mDZfR|`gT+00vS)CFfdTj}Z>3e*oHC6zju<SI$wW>b+P^z6JpA*m6AVl~ zWMV=lNWsw1Q1luK?4QHP=qQmS6CYnr|L*s2`WFx?HaD@wjfZ*xw&bQon2`B_(BZyV7aY{8_HjWwly@-QfGrctM*NI5^Qw;lF=> zULQ`ocwMKmI7MgwC@IbPfkTw50$g@_{5w6Lii?VXm+Ma#tMx*84F9-c{?A`;;0vR^ zVNgW0x!)hXzud1kSR^JVANErp93RVPvcVB8wAk<8A5Tx`@OoaX)OtQ%q%)a73sKP0 z+N{=@fNxp+pR4$#f@V&V^V{R)!GSSo-b_bU=(Nrm*8ah4az0-Q3kypaE|JS_^Zojq zFOjF$YA}B|nf1A*0RwwJ8N(Ys2p&qhPa6ypA1RB;o~fvhI&U(?dklJGS-K7OAEJ8`wyjwFP~?P5LiPcWSy4wvKR z;dH*)ZoA9*TKWe$%kuPCwYW7DnaKEwCu6So%c) zyh4K(DUHA%6+f9`Y;ehOd{DW3zlBDa=1sTEd@pzz6OCDniXt!Qv#Nn~Zw#&E|6S(qWB=-s8YEsOxoP_K9}$ zF_;Q>ZTFKi(e}+Dh7-uMY`Ft9V622T+^QFprvtc2ZZz$jGzdk=ME-nx|mQlp4ep@-KkcgyyAe7{I zm(=7x!K>(I>(e^fYkfX#zs)bw<%%Xa#qI_}m5lKPOT**pK6-V5zW&GCQ{b24JMd5l zZZD25Hn1gxk$D;^V{;}`!h|Hd-L6oMoK-T!R6IxKLmaK`IfXF-P?N&H7H-3eg&_3M z8Jah*UeU5}bfq#d__$A*LfGl-;_?W(=&t~%x%1Q?L|_yUuNwk8CZ?uq)@(rvN=iyE z-E8JFe&dJ4LAIN1XlJ|-d5bOWpIg6*BKZ|owy9OU`4vLFV!;HoKN$(OPtF?Nr|GxH zsVSQtt{yoj~DnJ6&m#O2#vZnNX<1nX9Es8-()-axggL84+NjmwN8b@E$uvJp0nZ_?R`|fq_$^Q3hdxiaBkkUCPiY;ramQ% z?@4=;!W9Bo9ynzI;mzIMUBss%7qH=b%zkZcEhi^uYinzczBpi!sS86?k?$f;ogyNi z0=mBju|r+7mh)sVQ&wCK*@G7kBlJf%p<8Qcx27<23YNo^r&Q;9r;yJPiPgE7tz9SB z_x^`#o3KYGk9n7?0fI$sAFqpxO_vd`J6CywgWPe{VKEIZUfqp8x;CAl7g3`F4ATP@ z_Z7nPD8pd`BH0^PY}hn)yBM?OSO(q<{qw6%>r?s%TYTeLq~50=Len2) z@`V*%$DPcuq149#@2|X`O2qU#*K!{}`^SJ>;E2YEhygv!nUkVlh>^PNBqGF$r;{6s zRO#1ZtE;PeSJ}%F2@~U<67#qv%qw=Pj7L=ksnd~Uz*uZ!?c;(lt~N+Vpl;?%j!2CY z);x`1!2KdF@Q$)!+76tG6MFy4>{~=I%E;L_%TteQktejq|fn>ohu*R$7Uzc2fk@uCom!v-fOr zjpp+?ZZ#e5sBO4|h2v=UGBgmX_geL_nnGyPjn5T>iq$ zT?9V86g5yF?}nvIg~ccAXZHe_?ELRhPFJ}qg=f{Dq=!}au@KMw?S_4QhfowIaMIIs zQ+ktBE$D;v?b#*Gt(YUMrX$<#s;{3deQZGQ4k^?P6MUnNEMgv)iRM%UM(nxsRYPg8yiw;3?QfOU+iBJ(_a1;CY>~=S?craJZj(50#{H6ACTgLU}zuwms-KR%iE0W0-8@QbduHTKx|~;)VsKz!v_M}ZpgJM-CCI?$8?3Bdy^*$?)$Lv`KjoLJFe`qZ;C9Pr!}7s?n)&`e_Ndz zu~oLO`X1p(q4Jp7C$^_ctXCCDakd3c=xg^^^NM5jJnCLoyd7?1oY#z_nE2St!kccd zaHH{D2k-i6Z`Iy0Obon&fjfX@+md(98 zH*rBC;qxYs$vQJKbqQpd>WNg9VlG@A_z>|GionQ6dkZ2ci*vFX>?iFn?pDKKq<#hC zsCr>f>t{y?++r<8q%ca~^KYD-{IsOpw0E!WsKH$ys@^WHza3DY!c2&hUNN*(Hy>U~ zG}eFQ>1`N3N|BVg`r?ssNT(W(`yhTy6d~^3N(If^;6S<^@Q3@-kJ=aAB^P~@N5oA2 z;jiBAa+&YjlC@*js1+IVDaGblS7fH8{NxE;3O$e7O#lR-ESqsIr(athD|tn&=36qR z8Uk`vEXWXZx=mhOkhkNn^N|u=6?~yVlk&Z|hsMmf zoq5!lidu6N!c0!_%m-3N^qi)8CVyCnEE`Xe0`!=5;5npOv6*EK#GqC$9@>>z?YxR{ z7&V!#vbn@3sY<4(H*-_=n2yGSA2T*mPz)wxM%qg^x-=M{y&XM@S$DYagCr|Z{N&j0 zdD9U>U+3M=>ep3EH-cwB1zs;jKEtghj`hGepNT-x#churE_ZGTTizP_)x7jJp^wYzGn-)`I=AyJ&AsNsbs6FZwB99= zI?LU{k@Q)Wg=)9;^V+p$u_8?r{z9ff1MP;_a|Wh8?~huJ>@Iq$>i{KJ;ZFupcfy4J% znLOdcFQ=Ow!63xg;q$p7>5(VEH)B%<_Ta@Q>SDZbd&-P5)!|OgDVGFWl{b=To4fMCM#7@UYKOw_*<$z7&V1 zqK46ZLd%gnWDdkI9FZke5jxGAqRWOqyS2%AE)Kpgu4OMe^4r^MJ=&74&#EOl4qalc z*OU~?Dv?UV%E_U^;g)T7vCP?&sJ@6|WM`pdsw&%@m4QzN;Ij(2^GkbQ+Fk1nMgBGNVS4dJOB1tiWy=sPXk?ZZB@`G~S*D5B~#nX!KS zG6KA8g>(CM7`}f4UKWfcSaJ=z8BZI$%In>-W6QLgeVA6wC%l}9wE2F+`^qlg7X8>9 zhR&03{Hw!dzZw#!kA!Cd>oJ&=?Ach-)MEQM>#~(WP}I0jLwnZxjOxM6xht;ws7ab1 z+214+H1*}5G`eQTm-t(xRyL+B_Zst_Q_y_Or!pyh(X3>2X7Xob(qErU+HE(D<}W*~ zOv-#b+?cSiDl5E&)MY^Mdhvb0?Om#Ao#>?H&>?_A`IHU; zKU`u%l;t@WracLxy_GN9i|yEG@mdzR-t;GBB5aTPhn(k1C~^Anp(&24qH`-%a2bh8 zqJ{IAZBb-kxN?}G^GQ;C1sk{T_}yi5m_mI7zkCVDTeDfc0ocHZCadcq6E4vLnPlB9 zh9yw%a#{QcVI^9pz`R^%Wz+m(9DNH@{G zF~wnZ2w3%+9@H$6RQI}THMvEgh|%>2j^0lM4L#w*l_jWR_<+Hk(-ACn9(=h$F~S-_ zyFDjVtNf(LYW_I%a*LH;kqtg^gCqEM=k9&@^sW(rtf$4_5AhjLQ**Q19|}d3;KhOg*orvNW7WJK7@Z>jL-mbtb(Is1n2C`7|)|^Xcdj8hQ#iS@jO8@txjs= ziU(H0o5>1TtYxGb+-rkHKA&a*^5)J%jPkeL9sXT%tViv06^CMDC!*6~3aD+IK^!5Z z&J4QzJCuY;3rp+(l%2ufIsxX0K|~{UV7+sNl8Gqfat-FQ0mY}F49WFo`?4_;C29nz zbczfJpZq5}C%tn#|7X1hbr+joy6n*^Bk4Sl_QbmCFk#mJ-gYAybbsF{g)F*d?oN3- z>Gxn)M4!LljI-LHY|LRSU)NG-3GXb|;lEW;W^}zH2p_pjaSjUO-A58|T&j19SM|NB z1{wCxbyF>kfo)i zhez9@rL2t1#YStr0Al`ONx#S>rq6UUU}WIB=g+`k#=FbsP60?>D0BavOYg4 zrCvO20p#L@t|zw`oI;4HE(ZZFkC}nYP5rSHE13`_@QNx`^+cn#-;FuiYX1H&T~U~; z({%vC8FH(PEvYjfdg?wEtx+f>`&#X)Ca@8QHg*w*$7@waJN-us#f3tIyM}AX2ff1E z)@tmpto(@Y0{JcpsEN(r3MxuM5oU`c&7X2#`2t5b$Ahm-*LILx z-17%brhcm%WOJbtm zNkqi6qiV_!Ud6s%WRi4%Pmy<1qcOL#q*zs72I|*}zh_!+xnZ2h#0IfUMGT`{@?g+Z zbfocV`jWDRT0wA3R8Kn_%5pWnSbDw(v-@ktpm9;TsQo%wxF%b0E)RsquVdU|UJUHh z4;hM-Us!KMc0=mlZCpQK`b?VW#X~%=RZaZ&2SvTTlx0r`RjcGMu2X1d)59ypqu6bg z)u)e}y;uq6XbVA+h!F7pUD#^yh$BR_$EC=jO61DQl8vE#m>3Qd0 z`{|nks2xPmmXCUarb4pe61Nk7dOESgI@{8$ZU}mR1+9~LPRy@?;|bM@$({ecJqaJm z_1TGkt;@!E*O)J?=D0`|1s7Z_4S|ZSQ4|Z|D-QE`B?_$lyzC77acrYTuu4^6GkCo2 z9Yl961}IM-it443cGmolw)LBHIjQD=K@r0CBMK35_)8{qcs})pqZlTSZNHR=GRd^X1wEY%JD7a`WB%1km2>kjlByj+p~B_r_Onyk9K zTWE47-M&HamygkmZNmVAmY}>s*LDMibG=RYB(*i#Bun(sQ4HcCzNJ?$5%nA4V z$0&{LBNm3fxs&o`zGQr!&g-->N$TZ-ZrcbW#vP)VxSC^=m2~&2c<-^=EYZddi$N_& zRF_EGis*iXylf@kW zNPpemTob?C-Es|%c&Rto<{4}E@0+nw3@9$g;EwvQXyTIen}}H0@RvSXC!DzewB&~G zBI6)C>4@mQ@nkvuS@}A)FU*cxF6es6PCzwAF5p0NIpr17?pN1^M5JaUIKQRplU6dy zd2E=3ypPg9oQ6Xhlwa81?9ezx>KJtO&1hJ7)QtJz+_%D^U%`v+@qW3S*9>m`ix`?& zBq=%)MnY8fJhJmPl{?hXx`w4J?*0@J4I6o{8FK68PWELzRVIdK880Jkmw$n zI78{FZQA4SU!RQW(}pbMo14S-M$hK^Y)IswPi={sw$o&Tff-x0tax~%z<+fhLEsnn zYT4p&pews2y3F2MlA}CK@!T$lW2v^!>YS@4KKn4S&0_W>MR{MKO;5k}KF2VO(b9{oUwG#j(%r+@gRNx&kOv=UXAP~VMe;Jr`cU@ z=2I#awpX1#+U+*nb{#~@Pq52Tt_yR%EUCpj{*Wo)yHUkYJ7O+ zz1GRyx`b;n3vcu--$S|oq*+8h*n}kvQLAB8K${mhi)kw^r(cxw?n0{Pv1Mk16Op-) zx0mdND-LxlrL_*0gh9DGkvsb3kRs<>V2wEx$rStct+Di6H)OEQ242LoEegf*Hl?7A z8DqrrE9Jv|jX+}g%Wtj<(Cyvb=hF)ERZ`!T!~{)Lv6RIk6;QQWWE~IW6;DlITc}{v zMb_{or2BAUHrDcD59(svx?H=~WIs=pR01*}vKbb9{A$(jlP= z+-Fn7Ds6IM6VYg`C$|>RK;kYvcDpPwsG<>vvkE`OGwqqY)b`c8tZ)KrM9ja}oqd`JX%B8M*g!AiF!@R5QKz^I zA_|{P?8_2?UJQrIdF%vey)J(~p_y8gB(nU`tX`dP{S!L|sS;ytVAHKm3i%-E z<0*4liB+gBcv{aH`^c%gmK~Cg<(Ca4yHa0Mo*L*mXonxHFr;)2W(=JG;2D&=TuM@k z=HrZ;y#+}};JFTleG>Tw%6psObsVA;YB*25onFI75JR4>@%=HPR3~ba9K!A5uQM-7 znk!kTf^&Mw=4ae~ROKrdzfwhlN|q0XGny))fX?g9wSu5GhYUzk1pD>}1Y8%%Q~)lW zWPCeS%>S(g_@l)6;^g?6jX{ES?PY@_vBoBl%2aWV0i`1r2t~B%{E`Z@$R9&(8-zt; zyv7gPyVbPKDct7%h4qbG{rugce)kp9zd#|#JPOA`TB50oTLX7tEy0J*>eCBnwOR@$ z@0JCj-dSA@@Cb=J?z9xD)u$`a@)BlyO%*&|sJzxU93*F3xcO4EAl`pcI@BgvFz8&) zyE{uL1XXK=q)66#9ol%^^&C`UtlwetV$-z%{Kpub{UzK;qjj&hU8DU(513*6!~xt+ z6<8J2gJrizPhH!0y;s>j*Y7S0ip4z~m}E43K#QR3uiPWGIb+(qOy136);T37kqdxA z?ySfBru1HZ6sF8xnCIBTl!9R9@1qCBDCxN<@VsGjM4|&Xip~@h7!ywF5md-zB+%OT z^I_i9%Zsb&WurJ8ycO9iIU3%YEe_+_MsxN=zhflL=VSzw{N&a8aMIKE--W1MlAy;d zR^p$+`$HLM@c{d01&rB1?_)UbM)l-qRML>Ge!0}N~nnnhijt#8mQ(S>b5w!D2m z{S9oaRgWb9O}62p^K~x7Xyf@{V8Q&=%Xt_TsS>-)V)T>ofd;C;X6XV9_GW9sC5VR5 z7zK`RgmMAktd!m$W=InfIxGK6#RL)Y+YWbT;_EYYChNFpkQi3*xaoaRBBt#nYA}8= z^X40+^)ci8iFy)L-i1!YWXz@qVvXO7Vad?M++mKd(=nOzi5z@}Pn7M3Ht&7^a0csg zopq!sv@ZD$C#R>{m{HOzC>SY@S2TQHnlv%C0r?{>q*sMYyrj6FsLT8?&Q=3Owb+kx z*ZOMU_=hTzq!5MR1LRtb7&Xf*rEDGYp@<&jBf@7GvW!+KktVx#8f+9e(SdgngL0K0 z+Nln|(t#Z60^|#YdhTjEZHCH~WKEerHNF4V=NZcR#WAjq^jX1fA|xrcTzBjaHeGm7 z3hjl$X?a$?iKszqcV}%^^QtO#Z!@tG%$j7o5I}(v-1K`+x^n#B)RtM@CYtvJnX{(I z{0(YI7?t-rkPoLWG4tBIT|dPlGC%-!WsWX zh6%lreZ6nz^pdK>s&9TVrnk6^3uGrD!1E_i(=g9`Yl4ri)E@OLD=2|bsts{UfQZn6Z}HbwDVZJ-rjpmI8(Hq-u1 zuXJ~<4;pm%-H`3dy{v^Qz$fXFwNR}`^A9$5YP3%!sV=i>U6l76MRayyLs7UW7ngjD z{zfB5Vyv9I_^vI-MEv{xsl$B^N+VqFRZX%(l)+8tLii_F0l^9-Onp~_&CMKzd6ejkLTEnNb-kmuS5-MI=8nUUXMinC5~2_p ztIr5&yd5Ayx9js+ezvR`K`Twd_VxSCBA~qQr|@4~?`NcFx59R~0am!mM0X>;-n!}1 zxcylyA*>(_mvXragT&m=S2(s0-Xr&sW4h4stydW%VwUA}yPscr zKqu}vs9U>YBc0^IL;Za%3v}5eBVzK*4@MIaxwLAd`XW0_X3=Ze-1(bZ^BNI2Z$3tw zkbce6ZYPB@kZ$ygUHH)_JZ%zwe+rM_8?AoJ!}1_K@UC8d^U|a=VAf(2h8*QjRnh!J zQ0z@|JNXuIy`;`;gOAQY5$`fQ4-QTTv_`+}{mx82Co0WT9{!j~{}OowJ!aO1P6VtV zn;sD7Rs2Q5M&9^pmJ^B`44H~%^@zcasDDmrHz(eI6XE6XcbeSTG?klmLq?dk-&m-9 z8nX_%e=jtv+GsI~Ekv9>X;7|}Vp}UlQ2+E^bpCoZ9VUo4$tRR3OIi-~qfKPyjFgrC zsC!RKhbcej^H6cktj+$&Zb@v(SltOG?~Obe%iSdf$1|7_yTk2WDUv&t$6BF;;d~-S z*nf*2tm8(c5ey8fh$lO7l3v2@=0P2|KM4qTg^osZ>s7KhqD*zb;wzV3H?Dm6L?jHM zCZUx$iYskwinB;&3f zyd}m)Uc{bAMS1-uJMg%Obk)|gkzboVJZbdvSBED$3Y)6247nV0SIo_X#X^CJp9?ft z_5Vzod=kwMFXFVjz%9%%U53H=iRYE0jDrDj_sqm?#V${I?X)AV5NlR}4+pal)AN|b z*X~%vU{0Qh9#RLh0{^?D@6Iz@fWHoqeast_=EZx4wd2Vmwdn z*a{=Yb5x?BI8x=N3vMp&8jrqnG?%}>g|Y~&TzHH}ux*woXw*ms?0<(ft=wZ?K{r~e zy+h><%IS94u%?ZkDR!7TcXV+Kh}U!NFjCR;mBod^96pz(pG_q4<=C~lgU2*zRxuEb zPMd6ywe1KJK0<*J{11qrE4SOi^Z~Ek5Qso>&n>b9>7rNwfM1oWZO)lys10+ZKgTeqqs z*=L2^=KkJB!9;*8%rkt+W91eR?Sv6iow+#|=MNZ46pSa2fid^nA6O8pT+MI7fRdaJC z&Mk#+Y!-I>U!lW(aq?Yro!^$YY3+H}+3bo)pB#QWe5&VA^=(yzo{sMhI;X9eXN~N+ z_|5ZbxvA?q4(e;=76=Bd&~c3+zX5;PCveuL3-{s*DZ~>Je(!OWcdjYCyhTNHKvkQD zi?`Bj%4N@Bp4Sfc z4*5u)Ou00y2x+=m{v1L31#42*oo}`7c!y=X;+$BT&}q4}>1AJ1g6>D9iO~Uh^|}MU_E5Ks>Ucu} zuyNA(t1Y)$U#lfOc`#S6Zg#AjxPpO-PZOPw6;3YW3fn)4 z){9{GNapDgFSSe#9A>;o#fnc%DX+#$V5WP~jT&02F43=OX)D+dq1@uIX)tYVopUH< z-zM)fLkqR99{Y0LP}Z|;_i1xe4R#j5Z86tjQPwEdU@<|}*`R#h7Tuq&7ooxexRAsY zq)ewx+dMgOhgs!Ct1~V`(b{b1`sfN98hyAw8g*!SZxNe)3N^+n3SLk{`bi#+Z+;{6 ziu%gU!Z`F1iP&^GIec}E`Ayzbt9et;rj*1|McA~d`z`h7 zo^xIY$p!X8u>73RJKHkWL2B^Z`?2O;i(1B==sRg6Y`tlohdp@C zjDBIy&PIpK1cQQ@QRp)Dm*g!SO{-god)z_pKH3s0T|(MK2fRS&k`Aso1h?oXgIeP& z_uv@Tn4MVp+Hc5W_ax6uPBY-zqF)D^cC}M%&v)2u>2WzhO3r8FF!fu04@pkfhH`sl zbfZcZmvcc;bi8Qgo29Ab?)xIX+CZ%&bHsu4BzX&Nc*SbXa8JG04j~pP#425yGbR~Y zITlpa^dS=KT3QyP;>;s2o%qqwdv;77bxTSaW!&z*rt*@wQ2Jcj%2mbao4S%XCe8L6 zPur}yc9~C4gb%LaJ#8zTr9Y|;tIX9Pf1=er^O95777F+9O)^pa^|@Ie>={x?4E#pA zlcTqI@Lkojk^EEiRR>(uP^gupjPdrWCoG6UzBPVaeJ;mxGXD84*=btz^J)u}hq{zL z$Pu@bYIj>)ZQeABo%qt>)ce=vqoDaH>So;B`)V&dPWDbwv|*y0bZn>Tg4cL-^anLO zY1Zk}tPRZdU%&#s(C z@9G)5&c$xJ9{(H7!6)NiTe{J@{X$lDGzIkFP`(*A)H>VEVac&PB)uZseuX^54fQ<{ zC=%Sd>zubtN6(Xqap+W(oeZ?H^W!daQ7KhEa)m)17Ym zs2OtOmlZJ=g%Z{YZk(E5QtU4z4YX*+U*Sb*>Xitl4JtW{Wrossi zNsMLG>p=pi5=gjalnT#o6hNPKk+b00`Ch67p>Tl@;sLg1eJ6zIM9ZNtV46>~T9 zX!xCIq!^~sscsyP3Y$TtGxBMBP6xaZij?*L7*uP1qv4%YefmUE@!YEehU;Ey7pn2k zf;9wsI5m<=s7CHzr4mr--}e>;U?&Ifc~OU{dQ~;0=#ip+g_X3OlgBEAL4JPrct!q* zWUX;vbN2ZK6#~LERQ-Azs+a3>`3% z%=Noj?uKocZ2w*e#qJ23xrEG$hvw&e7BFCF>|H{B z8^uHYMs@ZsQ8GC)lN7E{r)5uFD%SBYES9lCCuZGIda}0nfAd1%nnp8$BOL8o{fJ+~ zq#;~{B2cm((#~Cphs&2sS(!q8J;QEEG+S$BFu1h{L2M>Gpe< z(X6LL?Fk7Ca#>t~%$$c_69x*`@)vQ(+l zcdV!DBhw-s(nc;FvPc`9Zp8vED5Cn+M?z-#>cz-2RJCf|^{-CI9_{~tlz5xQ`Ojsh z!$_^Woui8^gt59>|7NV$h{hl?Zg@@(cHYle#>w>|Ij6u-IW#D7{vCRFIZNw_cl z6CjvAIA;E7T3O$t40xE+a~I?HJjH75HFZ_m$1uOfRVHqG1~3vQxq{=Zondm#JzK`^ zmAN|nYBq2M0wHo-e0u&xT%#ED9~Gut&*^f6V!^mW<&9vP0hS)P=|_ZHGt4>m#a4b5 z=irGtK|Wk0VZM;r9i=9PuA<}p#2omh>X1*t$ry)$`&H13%xX2fSb?X0*UesKeB!%4 zb8!^>Dk`l!@&2k6{d<#qf6ez%Phblk4Ad2{kKk9+=zw;|!W_3lqbKI{j>MT=VVJ;? ztUq5>@#8vYN>L-%4yDU6ohPhH?##Ak9kt-xJ#qbUcPA_s0i|JljUS3Ah{NIhE5}ir zt28Q#=k3aOGM$q}H2=(ABR2-zwvjMsjXkNs4)ZJ-IfNg;Q8T@maP?KTE;`RuR!(zx ztTaYhTpzPz&0q0lt#R_LFScv;P}k|UXa@ar2$BbO9`0NZ7iH>M;Pz3s^S0^yy4ipp zXvIt2o9elj@$#mLndhE#q8AtXSe)ejd(p84_oqQ z)WVepnIosMZZp8+-O8UI4FVG`#oq8ZehGkaL!e(&qxdNM@G`RROK{R~?Fx$!xh1B6 zCQywD2JXl@e&#}3@r8Lk!UTi+wn|exK+aX0(|(OS4bar)_~?GZ-L2P3RoA=dWgALd zU>YISV==cJx_OIbNTJWrijt4Q7q3arFlQeW;e)6wZ&7z+x(Yx6MwTw znE_p~OhCaAgD!(1zTm8D$d{LW^j5o7$@X|q%WIsYXX zL;AKQH!id~o!V+iJ^B{`w>l@ZRd@VaYXP+&OInUaHgEE=!}GW%#it9?lPSDo*%tZM zTmL}V`DqoA6vLy{aMRZ~0XE9*KKdl6EVA0W+|x7PWsM4Wxv`hgbN!$wlVKBSTTV+g z6M-m%35v>Kn;~j#T{ha@gX;{7e*ui_ zo)!h<1aewA}+w6W_^PZQ=hwIT2gVsdo*!FpoO*otx2LJM>?l{yOaJ|Qj8sfri zmkkz8>KYc%+E&{oX)<`0nI1+(RNrgX=13s|J;mRSnb;4@h^^21H zc^}zQ_5N!x+G_cpVtMvYyeakZx~Vs5QlAHq5EUeZ2>;MrnEu#m>m^Q1l$OIkwG+4Q z&IxG!VzBP7Hnm*p{oInS({MM5{t-EmOZfFC0#uZ!T>l0l#Sq*t$VN{#?zcl^Ls1y6sCcV$$0M-g5cLvjhVHA_O}{`mkOlNfx)G9<0G5 zpd`X|%6lQR3hUhu_{*7Uz%;#W?MmiW+ktzgMCQwTNOt8G&e454SdX4+_aiu>z^s&- zcS%sTC<<0d=a{uqnY7XAP}A83vn@$ssu;J^s z&rw@hf?Pg)#qs(`j$Po?7E5lsWwVxI67uz`(uF~M9vGMJdWTi=M1Snzl;YwxZ`5=X zl!xRxs9$SD{=DsSTj!|Sd12K##n<=ZY;j7z<9eN?I}`!hDsdtal4jZV^=1$3nb2#U z04%7|tCRUKWm0gavHUh;!6S)ru^`=vG*(1TzLHC32UV)n0q~K$9)*%t8$d8jEhamE zr0>G`N?uu@&!BrD|0(a^%V`t7`-#O#9HFgfg%lw(7mYs(BO4s@E$}||G6ay?sz!^@ zZ=qRH;QjM;nZU%0E=AK^zSUydL*k~T)WTbE{r9gJb(y`%L2mT1k%y(;-PV`S)R@A#!tWKw4bWZOWHotFT99{GzpGW0%8%6kIf$WP$?v+UQ8Vy#61>5^BWx zO1pEq<9gbFc4pGqol|e}aq&RXwyYILFX_uEVUM>P^xvar#szrr1bVptQ~vFT0bi1# zRzU>YOoF7lAv~(8!QJ@>i(4XiUxMuDcaxe~&clL()R}dUy-M8Jjo7y$xI8c!DwMmM z`K@B0TR`O?^T@JqJ)YBvNv2Ovy4JP~*pT%B7-|s5rfe_q~ z>>aD0)jpHNNH*>b5NF>;uc%LYa*HWZIAtxvkqf9y{r#C7pm`^eDdW`H~A($WMh;f(tjuL0Jx;Z&6o6qOUJyYK^@*AsW+!x*L?(UNdPuv zA&a6G{i72?&4bX14hT>5KNoU%#u)h#=UwRNoJAIEVX=EoH_NHu74^nybDm+SHt?*<=m_@gMmNX%UyOz zBKKDg7qcU3&Bi;IHnQsn&$xUUv>{av;y4ZXs8tQxmCN;HiBs}t* z7D`g6#h+gJ1XZ9sByl*HPQFpC%#x9lA~} zl2K5fRo41n4d4Ger@*L>uQ(nn5>nIC)r7o787<0w5TQ~Z)259p^A*u{%RbDn4LW`Y zF-)_1DAl@1IH?_^N5=jDrVjMdZ}y=2j)^CpMtuuzyV)VaA7G%S4!Y$$DxouxdUb3s zH_hyH4POOz$4ZYSF5tB|kksVqBVI>(r1+mi!I}Y=__^AT$VbY^Uk>b7b=Z`Z3m0NX zesKg=SC4I6wSinst;IgBKtS$UQzbeO`ZKGPNvyLFk-Y9BdIvw17|PckI_Hcs``E@X z^DIdzr25*t++yPCERO(3&wct~$gGW$dI7(!(^}5*9%=L7@N62R+^kA9w?%D3@r3Y1 zo_uYSR>A4G)N)U$@p#j%&ziHmng7NRpPLSPDYhxMO~tVjeZ()h08g}^XWp)szI=Oz=~o7LA+lv zAvkl9s@lL^wjcKAwg8h7!jYv|#W43R?P=P3w71)>-*r#=*M){gvKtA_p!6mAXdmwR8H@yh(BY=*(e?3W=)gZpCqS5a*I|Wr=b*YELd8^&0dE|`k=rFtE z*sxPDVo}B?W7G7o@pAF;4M3tqO9|5^vX zcnqjsx?`e$&u=T!X6C<})H$3%siv>KfcV;4a6-z*qMJyWDO0Y5d9_{(l(WT!`sy^| z3@U>@SJv7e$RLa=M)HC=wXJCDCZaG9{p0P8>yi(~jRnTfvTeQKmAiH=DK_Y{`iON+ zisC*Q(O~i(Ox{%DA|m~h8KN*rI~w>A#}mW(S4kBiHGYl*(rz=h?qF+TU-5D+^p9%* zKr!HNpUO{l6Ur}gy{MOS3*$}>`DK9O`~#<%uBg4-6v$kqUCgEUA1ASaRVGqnDvywp zPsWMEj`H}%RjzG^1kLyGIXqmAu5h!qn;+id8Tr5x*LB~|@41|58BZw&!+qFG(ueA~ z>MF6O_m*`WYMHGIz;!ms>c{e#}{*xfrq#X~()YvVqxk;l5> z#|NgErDtp<&4+qR7+ zX`GGI*tTukwr$(?Z{MHq^ZW<9=bV{)?(2HZ46dEzi!k{KsCHV4Z5gyG%FJYYFKO3` z!sl!sY*zLB+kK{^>rr!$jnZ(c+*MSrD|Of1SB4%+g2St`mGyCQFZtW->#_vX?)b`d zg~qg8q%QFa?gINqN-p6%s95&F>Y*zLytl}e`5(mT>1GJ2D69l2y>@-@=z}InD~CT) z+Mp~maQX_mq+9&J;xv@IjFInqPxa+^*KjNQw>WS{vr>XwpAv=C8!(wHI@lC+!^Lcf z1HU=tQvN!ZZ0~Qx^2bfE*4@VN4}rnjcd$v80`u2l6Qxy~q5;Vv;hl}tFxFqR0fSZU zIJf^=_xmY`im$EB*aCj=7| zRg}nrT{aCQt9x>@d-MLp&TFU+-7E3~iZm2EBRHoR(lM`&c&vr^9`>47P+}|G&rm@H zXIEp9r3*Sk?HaE)=}G?F*RfRCT0%KCp$An=OzN%jZ2x7#O9`_c}`%CMJ_TT^^HIf5-+ zRHyLDkRZ$l{NRKBYI*IUo{AaCbN$gwHz#Gr&+G>zt&m3nZ-ah>(IgXp99u1YvyG8x z4UAhp^hvSa|AAV*NP}q>d}6zgxo30N*|b!Gkz9W6ivHD<)$F)f`Wp{Du65TACaRju zg*ECci(3(;b>L@j9B1Gr4;WAyMH#W42NpEjtCdz zPZZesP-bC}c8O8nrT%g>^E3#h720I}a?9WIxg4@xKfk@QOkU90Rp#(0KL#4 zUW7g_B&NP`^6!w*60d02GST|cC#2+-b1l5neIZlqVWWA<(zhZ$+ZkNlqu0H4o=R++xpzhm zfJ9NDmXhP9sm==k59Wt zw7;PyG;^Pj2iGA5SrU5jb^5~@=K7V{sT3NV<@&k5J5Y8|<+dOBE8@gnV*jwU|M9}O zF^31(?yATP;zwK=K@`I~$-XDAVR*jAE(s(4~+PU;qg&2vB!BwD?^3JPqU03G&Rv9!$wn=I>h)nBJCzg4z4$h?)QA@k59?u|ANnu;;kZ_O`oBzaSeweP<* zk@i&t)JJ+93dd;oKJKdW#Vok$_(NQ2s)0z6#0k{dL@^3D6STv0WLZAB2Ui&;=V;8F zrB|TnYR~jiwG|>uw!a#e`eN#Yv}0B>v&`;N_)gT#VP0UJ6xQO^AxIslu_|nwZ0@$WSEsB?K^Vqj4qUp3 zo8-Kh*N0H9aEM=NJV`{!N%Ia}k<>xhpT0W3?%l0fLA0Yw!p-Ij)T*ZE;dL&}g}VkH zUM}1hRrdetm2?oftb`yzx#yjgAxBz2@6AA*t17LpXxGnq*b)j;HgiJi+Fsj)h}##7 zy&xE2327_`fD!`9(A|sm$fbIyPF$?l1UMLbaqw-&g^|kQ0Xdhynb(Su_aX|zYjgZw zGS7>!?km_>2s+T#3tJRNGrm$r4T~ZRupD4V#HluUHE@fd6!h2YG=zs#{yTFqr;J45 zF^{H8Pbcv+nt!`I+K%S~zd?%`kTqnkZh=|={;{;1$LDX<(WOxrUR2UmlX{s~5Q~<0 zR8Xvab2?&m^pMRsv2)h@bn4R7(M~8(8>65wdA-#++yBi`U$CwrVBiv2%1b$2nMw9! z<|H}gupp~SU7@gi#W%Lfs}i_a4(ltF6drbH4_$$YDJRVjccS5WOVL!Lw|;UHXDAD=SbYuS}Mnxw&gN$m=mgYxIuD6%kSj5*4t^3xjmMQU$|7WL6*6 zDGGOCl;{oFHM}`m4do%NhIV_Vyt4Y9=(~43kkgpK=V9rM=&{jO5O-8nJ>&fJTii&? z8y)U!veCL^V!R#C?WU=GLi==>8yWaQaQ36SaXWJcw>x6i`I{GP zie-6)8agUmg?jBo>g~lApC4j~7XpZhVrE?rUTJ2l5SKsz6aX|A z>>435Pj)0$b_A^Q;i>|p*?%bEU)`WJdS=x1HRY@lbt#~wwx|M4o5CB>5i<%1>&?*d zwiNF!ex^ub_=F{ZIL(zZDG32l_@utP+_E@e>rIvwIs?e=>!5i!*r?343csWmzjHAA zZRiyjG2S(bM1-n2lQTAGmRcuyh8~(Cg|JIp#JA*#k16ys!d&lPJ3ZKqvP)kh-?hpe z)as-NuB7tDdSTsNp4xr_Gds7(+@RxjYE4wH>QwW)j3xx9Q5d-ISzEuOW`)AHiRm*oVp zsKVySC%|}yI?<>(7=hE1N zv`bly+jb0*&EY>uQ?j@ZGt4QXfQBNg?gX4v5gqXjkT@nTo}NO5#S=$iC1Anjls#o^ zLGu+?u3U8*iE5>^<91%2J6SY;rZeDZ8|y(H)=7xFCb|;e%Y)$~z$Oh&`t+O9tLShP zjrEozilJ503HTY$>gx-OOa6Vqc>`*(FjzLYOCWV7&8^_{plx_Xfc#3;nerXTu$cX zJpQ^GuEbKohAn9946BUoa_nLb*ui9XmEf}UwBJ(5KB0*`p$#+axMUhqf=e)f7X(<7m6P$+*Q zZeZdPBV>|Inz%jft++CKbI$%4x8+$1{kRYW=&xUy!I&p;^rE-Brm^ZezH&mNpKxCOow@@0`?T%mWXg*VS z3~M^9AjWjIJG+F*`|;h_g@$Gz2pCaaT^-Ns;WGQP6YEGNs+Qr4RW`QToS|98-)%W- zxKpoa>dhrNeTi9OmQu>vKdH8uN+mHDk86 z4RC95pyGhZ-3JZ1`6oi97A%+#HR8onq`T6|r1VK_*TX=%`Ur{Pq2+tp0qGn0Jtdi%>cyu?X(Oxy#+=gzUhAK#PsVmVW{F=*-)^b=3JoRbvM!V z(i4nZ<##ZENHoSCU&r&pcwGp5g(nd}-e*0e*mFNaV5jR{nSu3}JeNpSi-n#-aJAOG zk-EAh+@jEMuOfK}oS5x2!Y=Yms$rl;BHR>QGn0SiGkoAVhtW%Z7@usf(GqQa;P!6< zj6Qw7MtId9FAv6;nR`Yz_yLw$TR~8jAq3{8D64gA^CAnT%D{~%y&u`NR@(Xc!lM3iv7+1=JUzaf16doe4${w&sEI!;^225r#{wexbnYHDpI zipP0`*uEnh^>nsyE+!f2rG6&M#6@Y=Bv!D`^j4ues$o@IPa$tZNB&rcr_b;Y77`%g*O>SCrYK?3SV$WdTXn$rXLuhgvX5Anx^Y;p7l)_uyA>u#}BVIV?GiK36xJx z)AhEj=>k{@iXiHqJk)DnBWsVxw%STc9_%4)hhcG=Dml$TRQD$T2aRqR{a7>>V9VvK zEo9(<-U1sKLPcJ$)tOmD!n6G)_Y8|jqwMbeW*GM)JX0t{NBf_p!CTseht{;rD?@yS z+m9tqwr~zoXf`>tCv_qe8dlgsmzelci6?34EW4KP9YO9D;ml}w~tEZT9{ca}ala?!p_OC7J^Q0k(0 zw~{zh-_JyTZ`ex$UwCwxIf`pk>S@@bQ-<6tKI&uG+pePEp3_(Ber_|>D`w3cM6Cgw z-ic1LwHf&(&10xH@KT0E-4y>iDKh`2-tTUr32VBuKGiWrPe{PLh--vP6sq_O3}C2$ z*=F7Gl2fz`9>k`=!@_=37XU?tY6_F+&5auQn~{s1dw}IbXQjx*G@~}R0-0iW{;-#J zc-9m(6;l;|!06FM94UKUSlghr2Mqz==FJ_VdO_^3VTo9J!_a}hLmAQ8(bQk&hj$Hi zyfZ)FP}2}j?6$}*ScP+PPnUK(=cIL~nd65gR+A|z(O`$e4xch!$M5iy__R51>a*_0 z%plJJ2xq0Urwv6-tsyf9l(>83NDK#(!@n^Lb}Q6_W%WusJfs!qQ`Io+a6gfoG~iX? zTZcm8jxLuUOo;_2O7v91iHDi|VSRdTBaS|)aSJ}qdce+FuqiEvLRTM`F7ysQFZuhI z`>Pc6&^Jof7SX*qvo>P)Uq)K6wHA!uioI$X6>{Muwcx?|TU2FsrnfeSwy9*KOc`lt zr1c?*V5Kxfh<3_9B{)A2FCzSJ{T84C4<^M`a4eAkq=L$E#Y?(R7#pEbHbbeD$-v2y=%mQ}5nW>e0m-Mi z{M*-Tb6Z_i@uewySt6o3+G4(Ms!~LG87l{q(m=ih6s{tYY1w8s$16{usBUh=_JQG~ z9|QIf)a@|3qiCfRu^%yerf>imD_hqWYo7GjGTKJo z-EHoJ&I@v4NgT(3wHGR>=#!#YAQoHsc1!*54XaV%zWkZqewfY;pRI~H{H^@&w*z;h z1?XF=6!`YwZ-3KEl>DRP`U5GQSfBtbv1J*h8|@URJIK-UJ_r=xR!mpePH)EU| zBDmcwE`*tg<4bQll;6)YQ%n>TKLEYGy?zV?7;@>YHW^$IXRKdwn5Jas+OvXn#@7e9 zQU~InS6bsPRX4btyrTvA$diLIBT<{GFs?*8$r<^@A4xPxwg%2z@pFWZ9D?_^Z4c-vO#W+zuNb9!ZQiAdBo{+50Dw{N6pL zf#0@{@(W(8{Ny39t{FOaJw}y;pek2cy{fZ5F+@zlh!RA#EtvW9zJvJ)N9r^@SXVAP zE!I2uj#uo>{L$iY&vkncjI4GwTfC3o>`8cx*8LI>Ocx-b89Tb+X^}W<$4hQL5S#i# zZW83+;BT@XKY&}h1bVj5wirW7EQH)*e!p-xo4TW_nak)z6p|k#dd^t?KFA5kLs(?d zSY@4mVQ51%04tgZq&VF8=$O73c!UwfkBbEWNMVoQ**_y013>F4; zo!Bw1*N*wKs8zWC7yz@J3#?)bW5t2WYm$m&hEZtg%aco!@?uOE92;lUteH;L{z`A; zc9%qgP!1Q}vLp>ry!&d?Cl6)^k|mfw(rhT4&c?$Hb zv#zfqJFA13z1AW#9^qdOAqFJSe#ZCtDx=dnW)rS-5dzLT)kxo8IVX~~gS8GNivI@lLQ4_m~d%UdX{j3HL8|$2>lcRC$?_AO07kZLNA>>R#r3B0e@! zBhRL**HGWLhB#a@SI-6m6XWP17W4%I1Uu;&DQC`UXng&Ez}o5nIv1w&ExN`7T{ZB8 zuftDR{!IPnU8PS)3uDLFtw}*15eek)Gy5rtGF>m}U@Ec4;}CHM-<9k=sE6YBx^ST} zlF5}}DT+H^WIP(z2vM4mv7_1G5eCa-nc zBZvhtUzQw)K~u*!OM?N*p5?zH_r-mcZPszP=zl!6t4X2V~xl7)j*Z)Wj)~PMi|A>9Lj@KB-k9h#{oFP|rMs)uxEp zF#!Offl{B?(je;S|OgrNG; z)6;4Tqd?(F(3`yZX{kR>1~n#=!#UvhvvWWHae1?P!bVBhiV8!=2S7E2d!--4PCRKe?^d zTL)rez<$9mT*~aX&6I*&D7#tGM==ON26x}paz_2+2!{nI9@5dF)bPcCaK972-o!*1 z?|YcpiV*I?ki?yBR5Pp>JAavs(Okqqb#A=A{KwTApgPO(x8$(YE`cSh;)1KT<6)xr z&a2!G-o|mQssU}2^3!dXF`0m#APRqNRFoyh68_jfrgnf=vwyPSL}lMK)WJoH*B5AL zXdpEjhUAO$l!+**y+<%e0O}3*EJo5TM0l{>2ZSovDIHNU%B-&nf*lac4&%?4ghQ*4 zqc|SSQL^T?mkZX<3NM#I%dh_b{Q6?cg8xM|~#;N&7P~MBophF zfrDO2;&2K6;cTmW2o4aLSz}Wc=K_t)C-)@%+Ap0@D&rU4#^z!K2?W$n*p2VGKEy>n z%+PG_r1Tp1eXX6r&ll=?pMzJ=u@kE}m~N5UM1Vg7bPxql6i42Cp=uwtuwjmW&-xFF z&jU8uPR_>T>0Y$h3Y!o`V4HD`Kh0&DlvF5+K;ysvZ%4pSi-HjmxRU+3ewbb|)Id_` zla`-{xrV*2g1RR`b%`8<(sir&ZG5(me^-)A2I2XVBCK1_qHyCkg3zq2=jDKEe?bs`P@d&_FmI^`aL_L)Bl)F6om`@@8RstR9Q4Us5c zU!$(Bt3r>-a^SKN@$u`=0T=TuSmmXk3i`NS)WLk!s~|#()4eTLP$nXP7~Qt;?tYj# zN99{KuTPrd;7s+=POAiO6BT_2(_djlHF?7347C4j+5pBR z3tCna{?n2)@k2&_ZcMZT9?Frb8|u97_nAg4JN2O)^wXYo8!V5=V2=qwS|H1-cJ7s& zzuHa&%f&eTfV7ccEUrrIG})4(>vebc3ClGFe1Z_?{;-P6#J_1|v1mWSc%6~t$-U5O11 z4n(W%>XDLQ#i!-VZZw`MS@^XzTdrj{jfw((hW5VM{o3+oie76^G~IHae%wdibs&;t zS;@vf>R1f*VcuzWjN1(J_$o{@J73(xU(m<@r#w&;H(^$ls#s-@CyH;dqx838U!oNs zXp6NX_BjJKZgfEmP!Lh7Ivi+qjnr-n*XTRkJAe7c{LDD5NS*8Zx6;7mJj@&cm|dHhDdAC<~9pQn1_+ceu;E zuBzK^Cs&CQ`Z8YM|L<-9U8ZqplQY9X<*{lo?#}y<;S@|8*cjXN#G9Z(dS!)|AhOSX z7Uutg0{VY~Akv%jOfoho+;++iS)EJ(gh;bh({Vq|CRAagnP<2jG*<)Lv*%T|yhl7w z8BLjeeGpkn?OWLrf@B{!0M#5L(6A4PktM#PO`8s2mw5lW7S)G51saM+>Sa49aLL^b z_Ly7T1}{1Ik8*ROg^F%K7Rr+{+?Q&aS7@O*j9Tc+4L73N^*?V5O~xMu>klPIlowmF z7}Kmo_x%Sy9y$278^s)a-i3g8`eTgcPIh}oo%vjys-9m#3AJv#>=3U*iupnxh8KSQ zCsUL?`qGp>#NwVLV;TON5IN1UB}zheD90QaKNOgaJ1B!D*G7v$P=xQdoh6O{Qb%Epkj9ykjA0Vo|dG8A8tn>E#sAF#iIRz`LPNUi++2}Ea+Sx5ll9{X#_b#Lu+M`8aylK zE$R%>a;q_Vm%?Tk*r?{Ir_keqb(kMrZ-meA=1f71dEW2B6l=js@QE<-{_5G$<7$X} zI5@yu_I}7X4@UZ=?_1OOw(}v7(ORj!JCjEUxwru~OCS$ovQn@u4-F zgWU5@;I89G{2a6-8FS^3M_bOio!dA>ng4jR;9iuIspM3?CJqS6o<$$gnUqdt5Ogax z!{al1M|zp2W|d<}LGH8~7cay=xyQw&e9a!!F2vIkjA_Ciy#i*hHK{@i$4Fu2oVv`x zpB94w&;(u^RUd71V3;5P*-$(2lNrCS+&+DMy3Y#q%9lKCRljwOU*MH$S~5fxb_LrHdQ8!aO>Sk2mCSor=fHbaQI z4%=5;534x%{{58UZ*xm*t3XRBoZheJpF)`S(VVa5|)80Lzit|r=^6`Cn$?ct5b!D9=w5DEZ zu|cFeZBDC7YiMYRb}qb=)SqY;FP=29ON699wPotQiFVycm8jc87=X4OSpT|6W+Z{? z+i!QmoPZl>0DkbsquO)p$h3|NNLz{VJ!uCki4?)8lz8 z_J~SXq98_9ml;-^jo;x44J?4miKo{r!1(AA63NNUoP`%9{pqJzzhdGkK*%LyL}xi8 zC$7NqoIa;DPl2PU7^@32to>N!H3WloFy6$P4nUmSJ~FDV$+YcRf`P2_-$M<0oW;d3 zEByOq;`nC#g>KQ7xPCxkF<5W8GuXc`p$(y9kCbyRqF$mrjKw|Mdd}6ECISQiiq|xj z+D+|gTmC>+c}VIz$hf34axj^*J}f!!R{R57(b|5ojA3=^O4~abkDbgo$7WlYt#!8F zi`X!%r~h?qS&LS-J2vgIf8@NUdrCy)xfG-$R1+RYQJRQptxme^y8P#!y<}`xfmEEO zvh|@jij$g5kRX&+#L6{zcr9jxq|$IDxadLfE;aVhkrW}l{ciq}I9s!xpBOGAw^sI} z&OM7Qe2(Xau~2i-KhOKZYNkmkWa3w~HlKIf0pA(-M?);#o%IzWaTPB02vtorK+7aP zu)tVeoESv9!+~z! z<5q%g;8~s2sT{fbFuxk}-`)HV=#CMuR~TS~%7Fz(I*wJ=kvCb=6NJCr$w3{$ z>=TbU_Ns(~|6Le0>}V#5Z{H-)0^D4qBAsSLO^ml)=*ZOBaapXpt=?0%skcAi7u)EbmkfV}Xr+o@`uR*R{pWeI;O(raRs;l4X^ZXa;!k*u( zPQC2L7J`wkR*1a~I;BWnR?QuINIQu0N;cp2D_n!S%qy= zR;Ozs>}Nj@D&`2YeqO5@2&~m~wtv8YXxzTQvVau`a3bZh&__3=!o+`x*bo5!Oy2F3 z+8aD}s{O!Fve)#9HS@|p++vJIEvf|&yoe?ELslA6qX*CFg&wvOum{^YD6u8C%BX@{f97;W$eAm9o{iV@K*OO4VYhtlYWR9ADjl5Er{ zcR`y15p)aJ*{FS_hrP?A5s*x!TL4{=cNG2O%(UlF@ zG`7~$&GIq}Re$c9Ek6^tI)}>lGPkb);Jmt8qc6L6V0AK5r;lWDX#1KdM$UbUF;rZ* zaPPa}WLi|RIBW#a&AkYh_u7egb9xwSAX_pN@2M#M&(a6!*MZ$e%?J0J5>+%5VLbh6 z?Cf`f1)&283g%Msk_`!u2fZj$leDLB`^!@DY^d3ygj%_>U0JT>>lZj&M%>sbXbzB= zy83osIY#}ppVjsSz$iJ-*mCr|$H=Sv?k4@J;^EYUUHp!xfRMS<_~*@Lxn&S5#dw1K zN(Si{D!j_r55m?eEmXIp!TCs~LD(f73?}h>`6|vPtj>q?TNm()$r&sl??Js_UE;`7&QCY?Qq#;v5~B+oUGRNN?a^Je);`)ggI zD}mzPRuLnyyB9_fBhjbksQu(=Ks)I%udcO2naOVVAAPV_ z>Z@YOP5s{W7N=UA?dr`33)t`U;A?RoPYGx01YZ1jhwI2KO52GkKagw|IVyW>A-xtb z3ifNwJvH&4hBGtlg*@w}=`wk+ z@3J7F(5@Zt(e!{IPfC1KsHXt%w~)l6D{uN z*s1eLU=~2m_Xy4P2%XYPuh9m{L48pL(R<#dRw}d&p#p2N*iTieEr=3?)4(#7gj|`8 zRM#}EBhlMa*bKg^nL?fTSPanmxTN@@6!$0L)}m@l`rzzVxPK&$1*ON?vIBaGReakM zU!66LKIv^v-ygr6T21HjZ}QM!ptGjTkrPqkZ$?FEOpyL7rXl{(4uw-=4u>Xw5YqZp zbV1#VUM%ybiY}0Ty)8W4iC#P~fuE;9P(mOZ8K_iTJ?%D@oDI$wD=5@|Qp~JyEeajs zYSKc9$mjhkl0t1!zwX6DCLmMqNN)O5_c$-x(&PXoLQ5L%VOeL|F2HrgRHz!+b85KD zhx~5^?AFYXfhn|*%XLse9;p@T7byAe8e2Dacj+(ni#FnTv_lIDhdWtei>D=w33%Q% z%YMq=9n)H0*!F$275Djtq6;@z&UZH*?1a`=`|NQ#j?QqrS) z#ZO@(t3`zZ6$bN*Uy(@wr|jqk>KI!Yb5<0PN%JBF2H;*WbPg|-kEGZS6rM;>!;$R1 z_l?HTV}gL(>6jminIr#|zL@K6>G{#$0NoluU?xS{YaQ}yT{5n+Tc#L0oujteHQ>Ku z5Ug9@sX~|d-VlsnHQT)|r$g2xMsqadGv+%l_^{l?-nVI2QfzW@Y;so*CCPx};LOoD z?>DA9tv6=SB=P8Nif|%NwvZ2-p-FwY#hB)!TuipoM_G*ALk{*LBSO=iZg4yxR zi_fx%u1y7Ykn~;H#Xmh)F9)&SzWyFt#e_*|xU0Y%wb{%lEQUm(kT%Y2ZXVqf*29ovOw{2NJ_e3=V zh(3JWYI@jk8m3=!T%B+{gkd<78oFhxGwCrr{@7|2C@WaUV)Dg2ynF~(lySEb`}_MY zvRU4A63R&#n6buZj}|GR1l_)%hj1sOJFbLeq*mvzcftbG9En~n>zbOra|K?d4ji+zOG zc;1@8ILvg)yWK{#W0V5YsuJE|1>5VF63>95{PE*e_O<$UC!mJmI3ehfg-?nK5f9-C ze|B8wERDPzk6N=%cs{pE6~#(0fc=kn<)|)$2-ks!hkjUUEn481K%%V56P8W%AeL{O zw>{`yj*ZvgO|#?rp?c3zBFW$CED|YYl zR+MfnfeB^r?e=uhF&W#z?0P8s%-S@aLJ&j3oDD&%U87 z*`UoqXvl;F-G%|X_xA>4XetzBN)8n(BO&r_Kz5>id@SRicaZaXe=*9>1|8{(l1XC<3M(;XLsGLx&SRAU* ziJKQB^g_RQ3(bM@YyrLOWWIK7{#Z@!{ncMuOXs za<&{2fFfWkqB`SzzFzNv1M$#85WW>HN)l%vn!!M$t-)6C7?&KVreV-QFfruahv3nU0-v4r(I>hsRmFDVv3ZN{WEB3Em26S|Q2K1w>=6{GdKl7y5H}yvn+bDa5~0ZQ>i4^6a}$kY zki3!qTp|buvsJyE@voI7eqmE{|zRwE+Nz|r?mhQL*4^P3Gvrz84{|l!KfMC zQgHpy6g`D1onTyXVxUC>SsPM+?=3j1aeN>dARws-)1wy3^hVl?2;Cv~j8QX(CY0Sz zAzY^Z-xO(lrNTsSrf;&t`&1F9e8^jtUPFWPEdPW*4IDT1;1RcU5yzx#`ukr$mNUP! zcYbayMwig-^$fN5z_ad=9@K}nq%u6L+M@#uiLmWSu!-uJ{gO3&D}1!LB2DX8G>9oD z)E^=ouHJNsUyg&y_i{vGg1sr6>UAb5f5*1wN1ZAU%AmGqwLK0{WWez!s2?^K9h3(t zeJku~dnW$AZNL?ULD`-c3<%KZjXx1zN7^aswLk4vDoC{~XwJ-wpTF25VRp3>Zs)LQ z&S{%AtR_FN$2#KHOe@O6A9}~4r7=3DTi&_vtwt-?eTQYd5zYtqaTRH_7%F*ia z!(-&{T-2Ez{f1x656hMf&clnNRt@M{*H0Wf=pRgw6Ax7>lQIAU9S4N}dBM;CyQV^y zc4iA~?LOOHda7Sf6u?|Bm^teL%?a~WFj!(*TeU5%rNqxh2$VGoj?u3z@F;mzCb$&+ zcZ2fpfb*Yu{(Jdz^L*CxTKMiXdJ-J2cbJSHH6Q>*bbQA7t9!G6Yo(#+Yy-KF!>XQK z>qNbE9IJ`Hs$*xfO*l2s(d^IP#B9hZ#12UK2VlBY5#zet*Erh{V-LeiJ(w48ZT&@(u>7XunpZ%;y3EGR6{` zd-rfV+O9XtskuCS$VDa|#l6TER*SJ^6yjQ}K$D#m!D0v?g^`OtYToya*gd)*Cyd1- ze;?@n$!tzF_5M4n^`JaU^KO7QhjBXIqpiH^mKv-_qvdekT3~Wfi(SEHmF#Z*kN2pQ zi=&6A4QOqh+%0Z#Z&5%h{_!sm<~KtzBu=QJtSu->v8jc)@GT&kW4bapUi|tfl-BGqF6@ zi6s0qQw?)hWH0d)_D>Fdry;0%f>d1)^Z$zSEOJWT3~T!QR%A6l%CV<8NU~~XbvD`h z8#c=Y?^mTFDkD}z@#w&o*sW~a&D>eJmYP`zg+wVtjPadz46CI?_Mj`KAxu-RIi-EZ!&QEo}AZkfUmH~=Jg4zQzc=w$}4lqxY?TptpQqysBnQH2QsZ`ew;??=gERYd6p&U3N_ z`5lmqJ{+f;BQ23~*Qi_u<(qc)f}!D`x3;;;__!db>n6TgWVCB`d8W**=2SEhDens5 zU;8xgl6RCiYxe86%yHm8Fb6SoG6e~}K&4XI^uNfy)(HKINLT+Q678&-?3szVDLw^G znwr+4`4@k&R2SRNgCR;k<>86!4Oj|)FX?P~k-!Y;llkj;Z^7I@lw%;&WL*MPQ5O2qFdSuvR7szCeD?%HiFDskzyeT&)wj%d-rso=qHB(Sfh>N;{5VVTq9i`x zkH!q<&kq0jtt3SR{6FFfZdQGV&%?TsdK4HHJ5@T}Th6o1U&Yi zU`nDDs?6m6o*u5ghBbj9Km1i0D+`idG}E)cf{@~y7~Y=4YG2uArD*Z!V9QHnhCZs8 zpCrHwji6>^I>yAKx7j}PJf#gMwwOrF7M6)ab2<(^aQJ1~B*ek83KB7R*~#b>(0I=Z zKFcxJy>?xreW72(9aLfzccYH@w0pF^@@`dI_pXE%hd^DEkiX!a-jdg~1kf;F*I>#= zT);2_v@^db0v&E62}G9YpavWS5_(_q+@I&H?sW_Ak{%L+k_G~Zx(Jn&;m^c?0S{$~ zor^$|><9SGWZtfs3MLUgF&|4e>my|Rs)Hl{X9(aA9W?5Y%($j1zV4)VRq7Ab18@RE z+)M#VATFMnUHWXb)fo!4U0?4m!T&P*PtaP}*3y4YkmDj26U~yN$hY|bW(Eh4LEs_B zS(^ps$NzFWU6Ii2F1;=Dcu5s{Nd*9L0ch9qKJNvR<01vT_R9>l4y1h2llKu1o>pMS z@?r}uu&wuVmp1H`gRH>%ziSdkj|sb?ptfbr`8Byzaq0+Pk0#qayHAFcsZeTxqSIS6nCs)fCRz5 zo!J}JTm_JsEt^iopdLj8@7!yzUm~bMU5jZ`g?rdxP$W?>E=0fjrPzLgnBl;+W?e`V zLT(DGFzf$QT?hh46ro?|Gi}@@aC7tp$dmSF#r&NqC(%b5b<0sR8sNuJ2N}8PSoQtE9rw23SB{t z&oP`vav-f{OYyy9zWnrJe!Wxf>YP}n*V>3uG~$=CGWo_&1u*VXFZ&Wm2RDxERHb?kB^ z9e{XF`X1#G^|ROwTn1=qlZ=%70F{^U{7hZ;!2nEdVx!z2r}YpJFt2W%T(8wSH#X+5 z&4XY_QZg+yPwz0&`G}hb-r<99G-;w^nR+%A45g~jNN20~1AGX$&w+p>Qv3_9(GpdP z!*OqB68P6VM{kk>MSDZRjl_|6{-$T9pENaLhv-y~Iz9hC3jl)XDbrQwTpZKK600u- z5~qXyyT=y@6(Zn#6u?f=?q20a-_M=O4W@mv>0!6O{_w_UE!QCh5qV!-dLFITV}|S= zx=pTrt4cP>*?zh77TJT#VaxW4-cLj!ZG^vYPnLz#kutjIv(j|6vk=90j_13zh=VdT zSi~wqpacY#NmD#L2quz)Em?g4W29(-sS_1yUk{BM!U1+)3mq;`DBYSZc|-g|-H*I9 zqUmi$Tf841EDi|I*OjXKdJZBvYDF1-*MdXd4WX4*;#HLl6wug&p$SXc@$tY| zL#wqXd)i1OW6x1TAO}^^#96%gcqH!k^w!sa_w}A!+H=_1``Mj$?~B0lFAIDid%42f zVEEx^_*j}tQ*BxYTrh)i#xk(o;%O0VoeE@wL)EB}!H!w=-IHN(FBvI@vdHkdpv%<# z?rKRj)oYVKEVbG=@S$5q?6_uViK@QiZ&p9|;i>dj!B98<*4sz`*Nyodr zmRQs#zlD*zgrFRdCSMcRsa4)>8X*4EqoTPg{> zSqvkQu;)MhRFQBffR9IR53a>iUQ|(ls<+0xU<0T=|K(`V#3;UTnkf`peXa-Gni-_K zivITI(Dpa)HJtwAJ!#Sd$2K!xy>7Sk;$w9h_p#9FvN)kL@dt8G#sY?3qTsb20ZauunEql9y+YRsBKaZ5AlQ2(Q9yJ=gThM9zXSmur z$!kp_uSav8%W%{EBJcvciFh%Sj;m1&KsoU-iP)qHBX79hHDrBH5qJfTuLHp%$WlQy zIltHC^_yndFPCtc=|rtgNKK4~X}eC%LQJOCLr-sb?-1CkTRgD6j<+`2@sICw=F4T~ zynjr8Np^}}%^#qTG8e?KW)f;eFE2I-U(Jb&IgaoP$f( z=mYJhwOD5Yr)A`t@bab2O!ovc;Pb48=>MbX8`vxDnr3(GiEVRY+qP}nHYT=h+fF97 zZCjIxCO-Rlzw7*gTv=+aQOF8hUGq=|)-EQpG= zuB$aMK%H5>n`Ay!$9BSC0aJ~HI*N5k#zU_zAI27lL;UrluvJn4ub{SE;W2gf+1$D~ zrOy&cz{?tI_vHDZ*(Qo+(p2u#&9UX`#6QPDPcdg1<#ap~sngd-f7H|7pzP)*BFnWB zO0GS5d$Y(~Li62iX`hehZ1$pY%Vzs2BFvS!i>dCTh;gxcz4YCi7k?%V_)GXNT1>O| z`BaLq>UEnrIrIW1f0+niIzma#TO5fqf`Vdgr++eLDoTI7yXQme%l6dj?Wx)2k+dn5nN#0wA`$h_Btz2S`xwixo&JZX%U|H$7 zl?dBfuIJB%aEV)ZsechYYkPFcqk=Vv5w}nnR;)iLFw?frXNoRA0BgF$sQiA#ChB1tWsz~ z0P>)MPLz+U%7)Jrs|{e-G|-PGo-emp&fj&P&b|7hYWxUPmF0hPHs8X*;9{ajtf1TN z>@mAp(Ln{uLCv6vCpSoRDf)+^`<&|k6{EP~zrkssNrw+XJ-30M=t+WFQOjq&3H znuK^TEC?t+6OL_CzB7;PH{S*tO)K4Xz5a;aVhgdyNeiH4 zXsi<(_^knqR>-+L36vhidG$)kf`cm6EA9edgHt7N@|Zyf^CQ#56_lhReuIKs0jVs1=@1JU$>`susip?7I@~&63#z#@Qo8|y0ef7{ zBQmEC#kl9NBXK04Yq&ct{R%1&4TAEXoS#^tG34qEYd`;55wh2&f3$OhDczO*;W+#R)C3e+|KTd@o}7>gPLc~u4MUtv$Z9fc#m3d77KGP@6` zr!}Rc3pn}^jFUeV8Pdx9wP`#ZoUwS{UHqjm!hM5${eRY=wJsE~q zgQiZ+XeFn>MjkrkL}OO$Z1Q*|XU<4~TXNc;y;^6Ht7K&IN$W7bt^N{xo_msP`7Y0w zugIh?r3+l$;=6y>T41gen_qg#T8|=Cs6zM4DeXCRPulg2?MR<*BX>Kb$6EM-y)dS>E$a@@V^KNEx z)F`lqj)NRvsE~`2q{Xj9vRdlmV!?8{|K(hlKgQ#mq)8xz6fwF*oDOWwvUSsGD8M#Y zC~wxbo>zZ1<iquCVV0bRvEUT;83^n0L@2#b8hjD7$>0CYgb zP^YY#=EkM-PP<6L44zUhECtzT)#)b?Dss*ty0_OOk@K$*^ZHj%;e^bMnBJ zb<+K`^-cMNrg8)0);V95a(077xVv6HwoG8wSo*?TY#!B<_KEo$A^hIT|mR6 z&fwNu>ccJmy_#otE@q-d_RimHE-ClZOs7Pd(?ESBTs8lEl73n&x8G)~Q}<#b-p;S$ z-zAhtN|wN-O?i1zRTItV>(R#r@$K>woUq8P3`lAA%cd22{f=VFB>`LrdJF?leJ}^v)-Ih?DjI={Z@D%{>hoMMl~E1nd5Zly z33opE@Pch@NZ~Df3N$zJ@;l$qO-w9)cZfyN4I4ou8HS2!Vv~hljV`fp8Hse+><-`N ziR-}GikS;p%p^ig%qg&A9!Y1Sx!SGTcU7!qzt-1Hul zNMQL^D*mt%$N5wkqSO6v4Bd;acr#xpT1*4vu%N>&SoK@o5oloW@)W_IB0?!Su(=*R z_*RX$*FIZ#iRmsZw>nvBjiOK>a)nyY>#Y@5HYl|gEGHf^KH$Hm^LXz!yw}d-<|p@lOQL{ZuXboxiXX+vfwi{ss?umpIT0cc??WLnUz=B}lGkfe zH=$o)nNq9#PhYx>wIZ_966d!e{=RgDvIvBSaf|w$b#}||iyh`#G zO&EW|3shB`{7)@2%j*z9h#Mijf@ifO;5L&oP1 zX|O3}3AAUSjU6hhZLB+Dw0o_WkW16t3ardNNx&wvX37Y-x^BDQ1 z|6G}ZoEFvbw`AU!mOAR|mUM7h=oSoKW8kb+H*L!h;7$uUG@$;NO-Ni{>;zR1=3v(1 zD9{UhSh7rv<^uk^n!iw?=rfs{U>cz-^QkJ77K)uUo42NWM21{AVaIBuf&uEoFwjyk z=RoXkB8pC@0tv-*$W0%mB<>-b;xNViPM;OHivdR6_hGE$`Qz2&N8c zfveBn|9wY){gdc-;28T7g)Bh=a7z0an`~i%9TOM9qo3qzS*n)3Gl60-dpRuh{a&9f3AHie;yp%L`~!=J(SpV1FyAd{ zN~5+?ib*Ku& zB5zrRC$2sl{g+5e%a1eJKVw!*GO9W{BnJ>5a#i|()r=LMNUx z5`Q?!Bn;9@JS8G>1@<0u1zXuNbbmG&7{>If+x7!klX?DORt2-1*{p9 zqo;6{G2KRYZ-@8@QkDJ{M0eO1Q&>c!2c*^v22Bs%n|TwNtp1|C!msg>oLj=IHu?h} zZ=^`tOz{`kx8wI05&zti+DqjdcgWJvi!L0=OK5QeW#Nbvq@G%F?mwe~rV?a0mYxos z{2=acrq7F8$_S**1C@>z&IjjXFMCOO-)lBWWWv4g?q8+!$Au!@6@@ZHXS&9J!XAHE z#Er96m{fZ4_!%ooqz+Z?wQB#+Ja8$OWu?oYyJtaI!Q8c`>R;6Hac<>M{vR|)|dC|3e?EPCQQ_X@B@<$6Yc*g|}gG+l<5$0GBWq(53= zn2lZbRaB{kRM$79z|3JM@rj^5v&6m2oK5&em$BTJT-hhYJf^9qIYX0u)q!mw z&5mWechn`z6OX?za$vLl^wCz|*^Yn$e%`j)ShpXe6;qSsfC^7;uL-EZ94+6T($Tok zsJvF#W*APu7zlPq3?=9Hphu{}0S_!`*U|dgAR6I?jN|6&>8QI2<^aJ+TLbxD4>NH@ z=h1$}kRSZ5-=Gu!QpNZ7N;58IPVB8!>DfkQ^MPuxO@zI`l0>*Z|6pi8DKpNe=7;mD zZ0MuzmuUJ3Oe-@1giw^ngv83)N(I)qV;_*?hQCf!-jHsJOY%EeJJVWSgp_sLoQ=#l zNJ5FDu0CsO1%JJQ>e}Wo;c0hO0rxKrP?&nYBJXO4D2JTFUMpkE4ML<6{&Ux|&qrPs zOBAqwh@#F_j4~Ef`X8+e7TDX>@4EV}tD0)5|LF-6^|t*!W>1%bZ{&L62g0w~@p`C%i=EA z`8_63Kn=E;8tbV9;Pl>UGGvc$LHox=A9o+;e8S7=Ed9R3x!2<|LP@WTgekSBy9`HF z-%;86!tif@=O+kThQ!istpeOXHI1*TMr=5Ldo;TSeYXTHHU2wAi z>HJ>DgRW``qOId5G|U_+Ga<}yvd?Qo3?%ye(g1HlZse}?H0{aMQJkNMJ(p_q)bQQ?v2< z9qIU;>5{1fxDSXUOEJ?@leKpG*oJS#_`%|yPYu!AQ+wY+vT}eI$HUs%M(cYxfHG32-OD^#hDHnp<+8Q;%dR)9S zXS^dLV|{!v4;e1n=l_oB9K)&jIDuuZ0y7;p0)<9HlWh-A-h7;9FLQrkix{w3 zoe@$6|2GLU(0Mq;_nh@ZwmKvBO>Zjd)zc|4z%`?ipvE*FpkXn4a{sBfUOIgpDN!k0 zGzKq{#U|FSOLHq;Yqqy2voU(@oKSFmTJ+e*Xzquo|R5y{1Cl775IiaIdia-(C5ymKJ)iP0FcFN`Y^}cGo-LTnE3`+$&2Y z0$lRbTKJbzIwJkzO2Hsk03j2QwNwNQGJl15PU`R}e3-gA0efmKw#vlPVhCwJ9k<=A z4s+7l=P=%Sv{%8b2Odcgp<3}C(pnyg+`8d0s9@pB;3VSQ6I>CY z6e^Bp0J|g=T5RK?sQnJMYN80IL4XzGtEj2Sd$;UmnggxI2G1ZrU`7Q`b%e2cnY z_~1AkA;*rJLQmq{!OClREPY}D``S`px}nwWj*ADf0P(8#B0f5zmFYa?G*aNz*X9{+ zo*xH2irD1(9J$>BBK$Qq;s-}P#J6~23wCneAr3&ruzWPhoef`P^Eao! z%O#U7ogN-ahduBpRW?5;?r?-i_b(4O>@th)%Z)p-wIOncT1GAu4U547TT732wYCXF z^as4Ga;$#Hg$=N!^HBvvI&s(nU!mOJ?W2DMg|I~FbJrbpIs;O>z8T+NyW19Xb*%26 zKvjgs{>mhb_kXK+axo*r5;&gcw^ucx(Z7NAyV)x9)TZ}!0HvqnvB?_4oHJY%sqRCz z-g0-kY4iW%V+x7V31Uv4M$>xN;EHf{mPlDjs@-bU-3lyva}>kZN%j{3Imq9-bl=W# zq^v3oy$Xx1l&ZJk$ObO#H?Z}L)&!|`Z=TGRzm)0K&0isF?8ifpJD^>oP zHDqL|uXqh@dQpCJxVt3cbjdJqsr{r=p}vl zOhcl{RTf%s^p+w&`$B2m=eE~J(`IF@!8`Ky&mJBUMF^v8Q~K6kQrT(IN!3*9oA7GD z`SO#ExO8zOONG_oz{A6nJ|UODhdws<@c%EioEJdbjNh!-7$oBhT z&SZNWZg`A@=0^X8_KN8>v$1xhB)^RIJl~P-vuh1u^^qa2|3MyC)Gj- z5G-YP4|k628H&z1hV@<^mu9omzL%T_0%3(l&3?Z`;5K!OV1ytz>^DLTV)c;+R(Ug~ ze;i;r{FWadGCj}1KGuAFHyLmCkXFluboAKhVsV!Y@JK7hQ%yO>bf1kAp@}oW*!MHE z=$quCPN+q`T|CVU$^PNoZ{?o477lkS@GJl{3(A?ttqsV3_!U1c8MT`~;5Lc`y(U47 z(BG;2OWsEMhBI0JUb~q@GrmPTfl};z8qPN9MJ;s?0|NYilDO97z|~w-t|BL^lKQ0Y zAVY)7>JbMxUUo_nF?L-N*nIQ-xf8fVcj*i=wqRiJWxuJt-^8EN`YrF075F@<fZKAjyW8;Vq$B2!y66@s@yCF$FEkZ2ae}tdkkAoV{aNyt?-z z*?IMhyh&9XZ@BXoa3ECgGD?M&HUXcH9wqc62svlwY4_!^ql*&0i?U!;6Db+p&+LBp z=61Pt_6s%@LxQ2TcNre@m${SbKh=QIKQ6z5Z1%6vS z44L@eQ!^upX#RQ@6d0(zy+ZM!O6BGh(Oq|p>s zHKY|fevE&|NAvH3-ZNwZ0K}p9WQJOZC`C{RI;dk}hVJOJ_g9aPZS=1oMrfl5>PAYg zXEUbcINyFbf2a6Z9iBRO>6{en0wUL_QXAQlf!oPntjzwJ)mvTTL&1(udr`&NwzYp4 z-!AZ#bA|XVYA8{I(!L8hJLQy1-FOO(47P{-IrLiZc?!pJP5R!n{LeCKjDs-LMFqN( zJ-!OOCQzEplDlk$^l=+HmZRW|v_L9G{?vn&kd*W95n1iX*4JUJhxpiIYMpo}g$1r^ z11dNyO@-gy!N>uCX=#5(ozf1KrzGKXO|iB7?y2+Ufj2lq51Ez4%xy#J5%~eael9#i zu{EIm@)v;ludGKLPu9<}{Qu7dK(TtWJ$MU=!?995yTKd*>)y{sq`lpS^k$14CCX+U z3hy6|bO2!yv&kL4C#^d+b(`(b{iH@AvM|6;2KSK{^o0jLJ|qv#7Crw11(@Gc7&9fv z6|C1HFTW>9H4O0 zzx21#W)Sg(n>z;0?J2CSgPc;@L7n>&>w8pDxSVs~n7I2ec@GRtW4mFwinHqoTqe}N~aoi41otM%OS=OYtH&tF+pQSTW!vVcA0GcatY?4fvwx@Uo1Kfzw3C;^KBO^ z>^Qovm+~{<_4?(0CEXRmpKx|}Uh53&K=}lwlsMUR)6?YgC1zzFv^Ja7&_8CYs<5KIle2HTl8`7GcfZ+DnUs;vUaddgp~c;jS~Ejx%!!! z{<^K#o{=BfR@1yuqw@ehM-e|-=ztgm1fV<12%1A<6D_KIhbz+UBa8IqE-7RDBRvMZ z=`)b&%ViFFaE8Zmj48pVoJ{OaJBNYZS+;T0`6jTq7k*Lp+coHLEo|4O$7p0?PoYY= z9u)^d+9aXS=y-m2``>9^%-fH<8G&!g+ux(8fca93T(&X?{85Y+MH@oyq~e90R#)v} zmI_T~HBSGk)qlgQD=6ge@k;Jd?g!Dz#ZWcRyC?Qm}StJ1k<&m6s4vTTn0(s1ri! zuD5SGX*G(E9(hiQgoDJ+DDg=}i+t_EiM0Ydyr*Y8cL2j(ki}#9fNTYUa;>7%<37Yw zb7*^3^ML~b5tXYLjGF3dNKS99P9uD43jg<2ltbXvH|bFK1f~MA4^1sMa|F78VqV+c zE#a(v(WhmG#jepy#v9Ya7IvBiWa^3$__;+~b@sX04$0|4d(HmL7FEAbRT3>chc1gd z{363Zt6g+5hil2i2?Z+0tm6P@_gq$v4Q(|`Qby$4pm0`iqhW~kd^1qiMni!zEV}w6 zN`wSkKolyddo;(Qy{M^EE#f4zGFHEGve-;OjLcmMWjdQ`$Q7w1;inuun|nnglmvWR z4t&FmaM1S>@52w#%NT~GKf?H^|70BY`Yc7ZFH29+jtqWS@0gx^;C~{ztdptV%#bB+ zM>j<}udJ4mC}eI=`x!i!3gtNoYx5CIA*_8crt6_5Ph_F)<*@kG`EQ^^m$q0RYt8F^ z?#Kew(~=G+x)@#Oq?um4PN!+lR*k76qTH>AqG26Nynmz;d4vqBlT=EYaElQCxLh8h zo+_Nd%1T!mvF4Swt=T?lBV0aFh($(?m_dO5_MrkkvQxS!l{!Dd6yHeau zvBqPU_*y4iUOwZFt8?%MZe8a>({}c}mS^)O80lh7oUN18leVKtzb!3b79M|a=O$Pj z00*=Zk>NeIx*|{Sr;Pe%IMmq*Nh0l+r-mZ1{UfY;KUDKU&+of!JYFGBHnT`_Ew<2^zFkK|Q9+U~{}KGatZ3tz0;A!?OQ zk*5^NLK%8%;OSPr2St837ix?eWR-Bp3gA&ISWoUA2{P))n!M4+3GQ^A_R2n~e6Kp8 z)wX)Al%L@xn>Qg=gbZioVxsGKM);{vY9sfG7TxJGmI=IoiDZhAzsbf^-(z$Re-B6* zFUH>)WOf5O>&^~XGg3v7_u-s3u}MUBKGdOPZt99le7!X-ymrYYtkxSRx)$rN1QHaVlg3cm^?EVo@#ofo8*|wI6j!|7kO_;|BzuSn}egL zY6+;bwyO|26Pgf;RINjoUn+_{c@w#05r^FHAL5gol(SZ{n>`zf%jF-hwLR+6`$gIA z)sck&D3FRlZu}+Xa9svp|J=G_|Oxe9~xaOvi!nalsYgB zY>9OiZCZZ?v)|JreV;Usghgau$>3H7Rg8jH6)G8pgK)EMRT;`l5r(4JGd?0dnV!q! z!Ze)&@<;$0&IGxMa-S)E4<%LhXQx;|yM-Qe$0s#A)TcP8?MdbX?(TlY;v}G2dhldW zcl_I&{jch+_K#qb%X*yY8G6Yc&*gzYL%WOCT&Ny)Lg*5GFw*~im7Ybl20inJNqp+A zIuW(XF|QMuqA1DDiZr<}@;d;)un8$sVFnO*u86UWrtP5s%GP{`2Z@KTJ~u3Y;u8V22jPFd+EdNUL~@5`|fwn9cOOb;vxKAw@^ zk!5fi4ZAoFdGXHJWk16HV4RBJ^%ZUO>)SS8{IDwf?vuvCD7eEuY7A@}dp%aOQg8bh zptc}=hX1cVr1lTASta_xoz;Pp01nu@Wq$lMsg@j4!@ji^Y(8kfxm!3Z_ zYxt9Je7j(my@8wWMgvR`R2PVy-pGL*e0(aRg4|ZR z6P@L-o8GXEzWDslKgqU9KF@7-)j8Sf)3c12x#E;-X}QH(UZxmF1U1uCIDb~y*4Fk5 z-Dx>^C8}=2@}_ez8r3 zFKV0grE1)iczaircC38a@HCgsbptV1#yMZW^^C;J^<|_(|E5f?Df2n<^h||-UH5A_ zBso+Nhfxtpn1~+eb56{!*X)GeeECH$%zjg+`H=}O7Ss>qa+6~JgGQrbEG2LtF@f!z zzlR3^(ymkTw|>^P{BA0$@;S`!Bd`CF9`F=*_q?Y6oc(K_D{D7ZJigh1OXKA%N6rh+rhn{7X+}7`vedaI;Y*9WY5Y|);(;A z58J)aQbrYjN{zXMBf!kMJIPW)Yl$^nvKoK$%ksH!O^ynhmy%*!ZKh;?Be#|~U+$J? zE%U%%lvS8p^oXllNc59N;Gdj^`{!P^uFCdG2x9tzYhgc|)c)nfpRDB88>LyvGK$@i zN+fl@gAk+$3PB8h_#>nX_T8PVjX+JeAEbpQWq?S8G-B<|`6ydMuMA2ib6}qDQQ(WS zn*XI6pIn3p(|yXFL#b0W3n=nRb6B-2Ac(n#}pAaAFMNfQ2MP6MZK6G^W~f#aTVlswM9VMkUkOEY><6cw$h% zBdrEUeHrAGRleW*^sI=~-H*z@9csdU7C%pALJDz01#=3RcH4=N;(wbL5dKIC7INc@ z_a3>mL&Hw>X=4#5^D(2LFJd`hj~1@}!#UVuMXDUpS%>Blk*y z+Szu)uOLZ99c8j{|9UuSUpWN+o_ySFm$CbdGD^e{>tMwcB&fLWgMVT1+HHt+3)e&m zqrnQ>io{5gCj07b3%Zhpb`2!Ev16khOlV|EkXN@uVyEAAs)c)VFkukv*C5_Vw&Q(b!q=E_QSfs%!_(K78ylMgDv?W-H@m2M+ohzBWk-562%sp7kw=U}cI`x-iLQ!*4M0Rj zq_-3cJ+(+bIAdyMpaLXb2jhC^D8@!A9#6@vF!xJKf!uVrcBA6#JXh|_HgE<*_As@4 z^pgqc^JJTIyU3^I4-HS#H0Iao>0USVp}^Ff1`7UHM-uIlkU|y9(|{3?j$MZYGb#=O zSc|+{s$fxcel+>SX8e-^dZS!UmOn8Q{X;J7j z<*&a=8e+P{u(uuC8+1q(uA=1QMo9UeB0w!IF^sLW$rdh2lMW$*MY-da$ zu4rDDR7LP=)y<-G7ei;dEH&*@k=_e{{M~(=T9zSISUGf|2omVCXzD1frBd8S9&Kzh!7z2*G4z{UYgGi=hB}>q>`7%6r#8VBceE2EVISWie<_{isV1X@UUk86k|CX)=&-kCT70ksnd78xpu>}KnP-GH4H@p4f2ef2b9xu8U^ut z>*26wY`+#4gXB2MIoHItW{rsE%1In)u{#LWnd8KoGc$)Su;(1fvZ5=8=WyDT;<+4v zdIl6=o*tt5vM6yL1nnx@@?Zh+3IdGy*XN8q7UNm4?FeDi+%F$~dC!YH|4;TBRuO1A zprMeUln~1ku0vqqj?GT``3Pr_d)Db%YRzR@C-jtbmTh__i7vbu(n@q1mt4z(ITPpz zJ!bhT&{CXU-5ifkBH&-3J-fE2Fw#<+NWUmS{dGO6#KsM)raX+oHK8SsMv;`JU^3yE zIiGJIPRq3`PH1h3_4rT+9DNVE~Q6#q)lJfOejBv#}=r+NA@L1FL)Bm+L zo3%G5Xc0!L0fMN2Xr=Cv96{E~M@%>8;LS~xvYeC(2};}BT|)dBxjQjPH{3dbY@DV4 z_U5@iSIRRC1G#eSq?=>U|2vu9uNwf^bhk~Vh54a@!O1zh6IwzR9^l!GQ8=R=y6MCI zc6k{-k)F&>7VIDzZ;Y&#u%uj(&6)LGe5lLIM6QH**)D?9408gYQ8$A3({(| zGlBzFS_3?A5PlN88=c2LSeDp9ZTc1lTz4Sb&kdLkYO7v*I6%$xLIGffB}pNHun7E+ z&%BQoJG*evbW~hI52}c34)vmLeO(fdoJ$BaU!H*+vUXr9B|94nTc-JM80}h*G?DCORco=NYYSWdENEFIs zGA3HDuQvL6EDI)~F-v*X2#u{Ws0b{2E|NBcGgoYy{+_j`@$xYD3x$nRfdSaO&IbU{ zOKwrzSWAn+ax0Egrgh!?;m^WdV#&p8`^mkQqht1K>`N@EkBY?fB_4QxY|T0s@0H#sairDb(l(J2`h9 zt?vE-p~t`0!?~8H9 z0PfdGE1-CtqR*@o0g;``p#UvuvXOWH1Hfstxp0?M?^>D7)5S9Fuh14j-`}7CUnAdY zQw>^ZQTj1~lU=CWFF0Mo!7b-Wxz_PsLCgWynt_}bVY&9BXUl->xa&dQJHaVL>YI_=l~vx%D#OzZ%(H30?&^6@MT&~C*E@&t>O6fE#- z?h7C95cA`r8_@H9-5*4d1sOdu4sVO2mvZBoQ6bk7E`JV+cz4!>F)gExo+^M+p#rYY z8H32{?R}kc94p`%Ae|r%_aC|@brnAh|Cwb{zHmrVtx9pXnzzA0u3iPImPP>8oW!C|&8#2;qLgM_4pOjB!`TPrb0u=4!?0|YAU9bapI5Ti6l27L zz3w#Rgu>O3DNq21L1V*N$I^v!wp|FS63>p7r#xaU6F5%2U^$ut%brDzpU*3|<@iHT zYI0lq2z8)rXcAH1>6P0`0YSU=-|NqSR-P{pn~<)L0Ux2nH>Eqb>y?3(W<`=ZM+~2a zmSq!bd7=8gg#cSeMj{Cmyrs@sOmk)AQf1nI&sV^%>6;2`lH_j7wXUJzT-Z_%FRf(p z|N1QS`QHV)T=CI1&hsl{ADJO1|vXmrIy0Cwp?<2sZKA}IMwIpd?}<+gOJnM+<=V~s>v1c>-55t_^!oq z=8v3}voo+H@Sq?=Lj`+X(^6qh{n(ozAB2VCir8R=U_kZ{S_J|Tw@%PN7J#&~u-lG) zgD

    ;lB4G>pb-i7T*4iL2`tI2$uSyY%hSvDdl;9whn(g4+mIzc$Ce_)U8I>s~wm) zU*xc89ZhyWd%^NW)3Pbsq8Q>i=+<@jKmEN)abfa$vE{cBx`=`yMUmum@|U{pW0jHU_G)b1@l^%_NoFM zL}YT`J5QObWx2~N{748 z1#^hnZNnW`?D^irmY+Sm`5-osan5)Q%Sdab@|YF%(2%o5Cd8O6>LOg6$9GPo!fN)^ zMy8Xy0Rn&~^7-tf?sZeOJ!7B!gpf}pL_t<3#$Ke*T!Kc-TOfdkt%oH6Cw07`T{t1+R+bNbdo5 zMwXRk7aj+{S0A%oU&R=f%}*S#2AP2`OF-YgbvU3!IH9n^HWd>v|i4A6IBv z>w5_gms=i$*g&BCAV})fJRSFC{7OY7RJ&nsB$j}l!+7O$Ek)vCc9N8en@s@tmoN~% zNf!Nii7f-_UuhT33dBi-<8F@jC(jndvewsqGVYT#rs~iw9IoQ>Sklpm0fB*n%a0`+kyS^P{<6Y2vLN+ZtNy{J&(PhEsOReK^+}6#I8DmNzZEA}n=EtH-g1ONrnA=-m$Q-Kb8&kl^ zplp+tIi5{>U9gfA4Q9W}vAI%Orp;rf>1BJU#0JbWr~Euzk%N}c6v4mlbxQ}(pDuf) zEz62b+9k^?NQ+u3L&;w?Fmr`6J4qkR?sMV@Cmgpzjc${`#fP}skEH&+I`#kDF)t+^ zyVXFWJ)AS3HFzzB2LQo5>1d`qy~PG?o@uyczo*Wic>yY9$W-Rrv@RTgh$d#Ym7GwF z3lP|&Y`cmQ!Yl$WsI^>|VD0@zx3Fp=?E^89-$T=zT1VAo?-T!PN0i6I7{3G$N?P|H zRq2OxKmSm@LGR~U5=~xaZ4^PP_QS!(R!C7lp2GtXHm1Gn5H($ZG2tFF*0gTj7+!Yw z<5k|Xf^JW40~ugncyBGqW@d4e!fD4uNDmyW+JrSD_g+xMwM#o67913ant_o?>XfaD zLJ6STFBJ%)pCQwG{Gvi*l2@FXrZ%AW-v04`Om9g{iA!HV<$ToWG{rBn%hx70C5Ro$ zxV&7A`Klk_^fX>L8W_;1sh2_V(;yHhKM>C2_sD13!BJ}Q+oqCOlR1kn!wnR7pNvygoV9*+K02zoqqN$yc!9?ufgp`t(?y7*}(hIlS{m!z3xh_ss5L%itUd)h&Q%veC zcDORU3o_^^(V1)~x7(!9X&bdX5)fy0FUiG{#5`_|UJ(*h6zE`Ob^`dvlnokiVUYi7 z76dx&%hU>WmN=UWuuYH+~5Hw{9J<3Ywi(D=_uA$Z?0WV=ZNl)&`bB1b@q_48Nv z{y*dy#J#4Wk332PWbll~SarWW@y9?`rsog3vL!puv}?Zd(J1^nEh*Ery)^#W%x4Ih z%m)mtGx~WWF?n=mV!A0Ae49p3w_S6uOM^veWCG9y(O)+d$bwlFL@jAAEOE5dKT~C|bbus%5Q`t8H z_72DKP|<0YH>PwvK&W7HOZST+o6d4(zR7*;ldGu{*f$3ML25C;)Xy-`+kADEX3yUf z`%I3%H3jT<62*M_)gAeJF9dwY^?#wns^7%A+w;sE>B&O~+mDsH(C2r+e|@%F?Sj#p zD?5dC&TL7B!^=iR|NS#@i7pHIsjgY=-iemW6%09~XAzP9zb^-5kVq1B1dDsg1R({N z;L`Zg&qJ@$rqw0H`%k=`ljR8_U}`SoZ~2W|9(0>zYpYi-C}ynqA@D+Mxgt&BU0= z)Kp_IDYPnD6K;M6hq)^EU|E>37;hTKGR?_jSA{)qDfIkMI>i_un7VS2Ep++03@1bT zNhNGH-Fesj{BtGqPYoJJzjkQmn>Fd-!tRAi`mYwX3})dhcPW!`Cp5S6NZF-bAO7E} z8R*FYd-q1b+1Az?iwTOhnpX}wnjjZ>jQ9)U-;Y)Zp+tHHHwXqdzh?ttzyX1P#HT2S zA(G~qBvKhie5@b!g3Ut^tFvJQ7-(Yw%*l#_2hmtbRjDa#F?IrUaK4cf|bx${i*?XY^N=pcC7mrT{1& z|A_6~hTlJ;Httr8i%0t1l_ekfwtBn5*K09TpUn>)9`D=4$N+{<1hGf+aR=ixNl@^ONzcj2NE$08g?)GTFB`)%ke2=wHMll+duglIx>4F(3Ekz z-f(2Oo2-c?Hr1^h0D9K{PIV45b>>(adVJ!BLgwa=w-}#oclc&yi=o@fIUMGUICAPT z`V`jEeRN}FnqF#xY0*B~MxvL3Sl$0?O4`mlFs}4*3jgq52z@aNebAVPK?oYOk9Ish=(7NJwQ`yt!vRanBStd}@+R=KyE<9e5hJj!YU z7WxLaN8ePIFPu2|xonW4&tWyhMh4ua)+Nb&Zxb8fLq0hKhy?%uDTd*e-F@_XUBA>u z!ZXQo-dLn`%*9EN?-t?WHsMjA2MJ!&;F`mivB1T+=Q5qU?r>LH-*U_Bmd6x0u5NV? zK)?@S3@53;jYDD|$O9bKvZJr-;@cIYzGT6Ol?~g01gJEQ?=gs6?;n0dV7Dy z^gerHe;0LWCY&M%@H2~%TjGHx4P^xqn@h8kD+=t^+{A9k#)INy-fCO{jx#@?dX=v( zjWa62sh;Yxs=8ZCt~TJ2h8v)cCd7|N_UQ<8g+l@tRDuM=pZZe#24f7y55?z%cJrA8LfhCVn%1U7pACsC&uM%ucz@pyuO6ls6y(?# zS>Ji2Jz-q%FgDfDc-*$pHwhEL7(2Avj z#~Y}b_PvoXm=RuZ?y;3McTxoZ!LH3}&|$mRN83Ei;T@yXpGoAqvrP zMI(V_%m#5(@5l}2(RtocS7z~5DUmCIz2;ST(;p0HiFYL&jC!}RDu~cIL&o#_Xp8&} z|Av(Xzo4$O&X@M=7U0tIc8zv-f;{?RE6|XVAcuZg5}IsJ(FKEg5~~V^k1XK-OEvN0gNMPM9%%O zAjxr$an=8irf&?7tZSm}*c02folGXSZQHgcww(zkwr$(CHLhdlbD34eWw z_7J&u;#0WUpav*EFH}c0E|J3|zIxiU}ue;|oO-_D7&7u1M7wX#^29@dM_u zWe))^zytZe!&L{kgvGZ_@*Y=?7wL1Z@`W0*-_Pb2?Ybp>6zzMAPYaz!shY{s!q}ID zvl)uHj>d-%-ZkRTRL5weXd)dbfwlYwYZN!D4&VfLOm99-0AO^Kb<4w|pN@#`_i_ck z|5(X`#(V3AJGODBJ)f^j8490OQ#0|3O? zlL`Sqk{&p)38MD`dcc*FlH$Jys!kCk8gzBjI_q=RE?7hy{Ik)UuH%VjRt95#s?JR3 z=--PlCG`jbPypAoe>f`N^doBr%D?m>EuYs5fgjKL74N>Frn5*A?U48UWVh;OH#{6!zSQ#N+rH7NB=$ zXJ;uWF0))|tA)_87#S}0&j#nc61KT38)O!lplAA4!v#;(dRwOWnom8?-qult`O6#U z{jjm|nQqdw1myTECeKYE`J#XE+iGfyAA$5*w@x4O_Sv^qoO_rT)40pQJpEkz($t|m z?XPr7*vTl1hUQ3om9O-i zH7%8dFA)2c@CAZX60Tp}rQ3}n1~uDbHQ7%0?kSP{Q7Wm782^@*R(9Y!uQ#kv#d0>t zo7P_A3Cp%yHF}K;(o^V^G(~i@e4}C2`fP}Yr)F0@IDtzdp;f`*M`<)~=mY#QPk?>m z7qn`FGX}p{qcdrMVzrw}G)X%|A>X8R)VxR`)qU4}Hz3%w>Qy)m1ZmW+=YO^LHB)f` z0HKS}0HZq93EhMMLMlr5r>*uYW6N~}+~22?A>gjb@UiOCujzy|4b}=G8k6`taBxe> zTwG38F5<^GE84CWV@94VX}m}OhU9waiWAV9>M@f2Zin)=C}T`kXOu%!_9pM9Bq^WQ zyw!$||JW5niLQ8I6Qc#k(*QZMWi`N$y0Py2v#OrjT=Hf z?lbOd={%fDiGcZfkEG*UQ$tS?xT8PDi7u==NjIw&l9DhE(nz3yL!9$0{YCCHa&+0a zRoTXa;e=0A9Np!&KD4Q~kk~J)Wc%&*1d8L=Qi?Snl{WjB)nedOTobK&ERnEvIe=R3 z4yO~dD6B=E07k2CgZToNwDi&>3?b~47v+e4xIeMu)d@kC09bLU0&xaYYy@xp4bS~J zuOw8<(vu9ZK2rJr5fRS!Kw&hYsOrTtOJfO7F-I2YaY=6H$ z&tqWRI@gxBQRWlOfS@5+OWE;riqIbh(@^?`?bUbuBkIFHEfXJ`YzK8?r>-4I-zT;0 z?Ko-tIcr7woQTtTc}{lEb2%I8yaY*%cZiCLtx!vNz};5$_p=8y`26f{-CSI#RG-3g z9FTTY9;T9q1<0@bp`v+$5;L=YE3_N1W_E6^Bm2pp6`ZIBmHe z#`=;lqaQ5J@Px0Fu%Ei29L%$)4|m39n!Sie$<`G z0=*PW*AF+zVd@RB;xW)^u0Fea)*hwz#z7$gqjYhHxF~@n0`fEu}@4Q^D_x(VQ{geBRR*6IYjmXF$G+3TH?cm0LYr@X*Rns;7xb{P-i0|Qwcbz$Hhatjr*7I0OP5T zozPSN6nBrNW2RpR$fviLZNIjZyyO8)z=v+A4Z2}55@+HbX~!k|<2eT$jsDTWWAtr`$b$Ls0T)e{@O6t6PYZgqb;qXHEY z*fUPk6C#3+Q@?)3Yarx{(c;Jr%P8j`8m!`T`*0ePUvHB?$;=`tb;f&%GMc<})3t?& zCXQbpGN!jCLXz0JJMt+gT6}_}w=}EN>Zh60==@pq2KOf*Qrm(Gl9=eb98Fza3-Yuf z#2N!S^)hv3|L}}k+I>82dOxLDdOSu(619LymdBpQ`x3--YkDf^=UBcTuu1P#uL>xv zZvA6E*}dz>h}832YM8+EKc{Da@jSSBtU{LC#%03>5%b)V`p+l0f`xNmTcN(q%fE3dH7--nmaM z3zgb@pUzyc<2^bgrPK883ayo1dmOVovNGH$Fa4ehO4yU-w?%3=T}NB@J!D$ziAX;U z5#-U{hDPK?L7sB>o|c0-g1lC4(2&A$dpnT9_YGmuRx@0J)Wm@^#cMRGS-ppF>#GoQ$xzjE2S~CF&1YC)YjbY*ql=dO=!LH;dF1RY}kj3zwFCe zx&)hTs13dxwgrl|Y8cS!8sdnCroSa9825&3dgY28309k&(UYS!qrTY~x-nzyC2jvS zgS#DbFAuDk;rE)Kr0N>lc7wy?E7o~z3Lo+NVts&PJ~30qo8^!80)f5t#cRfP2j>;( za52jO(fDuf_U=9RtI#)+Y{bEVLuP0jHyG~=R5%3xx5M$X@SgdXC58Xng<$=pXa!0} z0P-fczH?h;Rwd~0g{EXm$(gwVCE>lC zrsHdLuH|CjT;5Tsp6CvpxY-bLMC2uggAKIVuFh3P1SbXpfsCET#-GrUDtf)Z-a z$MITB^x@)2&aRP==rRTzX(W4}%fHbA)qP4b1OoLG${vgW5&{1+4^LzSBqI4)QN%;z z0&YFyTC$Z6ZB;R7#$&cjeYD3LA5WtXdGO)JhXeG_lnf3ld^C2k+Bv&a)u4QGuChkw zvq8h;p8&14glR84l(MVsiirwe4LV4(x_##p_9jxDKWWEXneScSH1b+`UU+pq%3dkd z_vw`gmivVBhY<4k2%u%e|M5==1nfyt>GKmPHYRxIM>XEMng$^E*SdN*kj9|Lmlb80 zpDKCPs+{)Qf2b>&1Y;D#$zlXfm2$FA&gET163dnxast${jIySKXTCHa|K($8j0=rZ z0yIe39&zo`*%p1{BDMCfqt2Yus_u-E#lS#_2Ybof;+m^39n+ah);Vxwx>vVu4-qaG zCSrdj@8iw~QP1#3Q#KpnooVQJOxe{bD2NYDWcywzyY)t#uW!B64M4r4_eJ2s;i7u0#XR?D7_ zHHC!+K<@?x4aRw6w>yENcz{H--**Hjg|aj_6p!PP$QTB3>|u+PJ^p>h-W)b|t;*X4G{XBR z#c5;8uR~=o+KrcCk;~$1(F{t{yNyI(uWv)#B&ugWCZmW>tz#Dj?eJs~!$jjR@`@sg{*e>`6E<1>0WUg5_A8W&U7*Q`K?IFJ}DOD#0Ih&1vs3e&3y?~EL zfyrXYddb~z&I`}qq#@tEo*#S zl`~dw|N43q@q9{?eUW81$|)!sm_)}}Q0@T9_Z~6rFjBRr=%~bYq4>Bl-5S87jSY$? zYVD=$z zP}tF3OXDg}%pXrWV6=J|=evHJAusn?pb+SSKn>$rhCaaS!jx?=2>7)k#> zI@ciBKlH^W0Ul5KWw<=5bl#|6#_bWa>+PiT5sFC&hI(u3$&y*)ywHy|BTLEwMq>8_ zcjD%Fk9h>Q#Ra5?DMp^^R91>#Z>YYkYayD*;2NF6ey9GR^EV$sU*7o0bF$sL#&zK* z#a&bVs$xRc?&ZZLf!CZ9m~t-V1WPgDth|6YsQe}El1povS1))*E0f620wevZCdf0&+?}S;2d|f?A zjkev3B@n(6`3Jc*f|$Q@_r-ez8{l+w@h6|HJbT+qX6Q5r=(yl3q1_AjQy_NVWAKn& zQ_l@E)tmE|{m77tW7PkE;0>}ef8d^=1Q=v-v=C8FZv-w<;Bs}D^dF|_8QQsBaEMYL z62C&PVfWCzu1*)q^M#0YKsE()GxSs9ktKcIjWJA5#`<;xKIBB0oBKm3VRvD}R#XjW zs7`>;Nu@8b;P1HZB>hcNQiPO)0Ip15J&r5qg8Q&?2{-2AR%zrS8GZ`AX6>uP+a7Gj zW45{tONCjX&m{}OCK8kTvTuQ6RO2&z|EyUM+94(4BRrP{2>L)xZA@v5DvoY8G2}(X z00(9Oz|!DYC*D?{!q1)UZVk~XCQk;ftq`(8A;&H=O?TC5$Q^XDnbou=N_^UG`(&G1 zN0j=h0IwiPAs+ucwB)<6|WgFKfW;>CMS!j1hOboBh^i zM$jBp{}-#xWDt1;4`asV0Ye#*1VRAve{pzYiovQn4zI6v9yJ7H^Sp7-8#Nsry81>0 zBHhhhF=v$`)!11zLz_vimnQ#E6)D+<1Z17n95vjm{!29t^u#@Ck%Ohpgkk=87}y>b zdn^ifL{H_a;}sx@gJZHxR#rbn2t$)+*x)PU&i#I*c|F5s5C>W$pMpp>!Pn2r*{5Z{ zF0j1t9le85Lq>TtKJq)5RVAMkOVCOh@gOfLx9yU`OsH3dW;PAln-en)(t` z{_*ON)>r89pC%}@A&gPajgm3=SUX za3R$@-mo`IPtz@3_}2=mry-)yHthl?`|fe`QhdN{;?ub?QX|n(;E+JFLpiokPP&HNm_7`w1sm<(Qa zg9oBgId5*lt5&AWvmvOap>=~}xS5-vv`GPt)_oWAiBJGn7`&~v->^}87bur6Ady0S zn`o8+^C)zV^vdehE>F_ZnON^DQkAVv{RWYU>XQXEImF%?2ETj+zZ>I4kdQDU;je(k zWA{Tcb53Fihg)2c>W+YN@E9!a(WK8lU+{*AH)#o;N;q2;ysmP|EpvbC;@|w{o{m>| zh^2yfl_lo|^_t`fDHN=l3K1E~dreu(7*pE5Go!35n6#mHTj? zwfKkTx|9lZ&9ikR9r`Euwz!= zKwBkU~nO^?y0Bceh&-ATbj-`~5K`ls;p92Ik)YVokvFC|Z8k~AGD zsyz4$7s3e)sN5)uiuckn?H5+C8sXzX#y(sWPg0M}fO|y?f<6RlOw+%rB^?P?n*R3f z?Ysn`Fq_-hXn{9S^yuZzhZYF0Ne-Z!yRBCxpR=f}b!W(1Yd!D6KzHn=e+#r}bXCMu zlDl0LmljWS;KbhrFEmNYb_pCgx&GFa=bn5Z>lr5{AEJ3wZ%CAOqWwk1Zj~hW`ABvd z=+)O>8&0H7Ns4k??az_j;li+CHQ=N+u#esS5jk`xu;tO0@@G!Pc%4s{^j z`G4{kkX3k>WjdyBYu3D$x?$1RWBYEga~%j|@E5;7A9vrug=I3C#b6FLaM)-y8aEk4 z3K#$Es+JFM5z80siM$}d@)8n>q-#VTF1Ja%Ikz|rvve!C#Ff}fl;|Rrz(oa<9GoOr zS_G@pw+tNI_i~!JdhsA&i{`8dHmE;Sl}#Lr2TTNS?~AN}K;Mb}Wl$KInHV?;OCF!C z2cx2E!RXT*eEFAE3b2iQDSosd&M_(Pd8Vy|A?@f>0whCpyUs(mk7jvA^B<;1kPfVq zYf!*ja~-2z8qa3Ip&5T<;{FBpX$;hq9^<{dEvCr7s|TE^!?=edxz&RV%94j=P)zzZ zuZ^W`a=RkhU-mj*Q(gI)u^1SC@VdlJeb{B(rnz1=k z8hZQZS1nk!2kr5HeC}v&6m4o!yY9@o-Y9|wFju1J_OYF zJYCk5lK~>@-z10M*Bm6((jq^#J^-HUe((J-|K9(s=k>KPS}edK3@}y;Y*_{$W0>RJH-6(WG7h@i@dwpUZth+6wmw1?tLPqy1d)VJ{} ztph!qhj5s;P*R{kQh2aExZCu_mW`o%*>t=$2l}X@>CU!okwE zoeXumE4ap^ubf(6(!+bJoIEBh2~XqI;^0n$2(K+@7k03YZM&OXPur2451byL03sumxmk>gV%ZG~APQ zi7?)jYVDSE^9Gmkc-jxAV#5J>wG1RZNgcCkuG8R>$iRwbB_zv1+5?q{s_e(xxF4n< zIHLL@009vy1i;M^&Fd#BM>mWb#Pdl=@DZ(S3jFHx_Q;CAypmUbs_`s`i6AuK29u>5 zix>=0Xohne54Ry!QTsO+K+_eu%Q#iDQg* zD7NS8iJ;D>VYXU0K|0w)791LcbZSJ)13Rn(M@EZMYpi&DToC)lKvS zbuYc(OLXy6;2#cWegX}-uLY%#3T(-8sVz8a2qwVaa7Kh+Afw6=xivaS;3s^p?0N34 zlcJ{W{fuBFp|@ft@YLDnHMh>#6aOQcjjm`@RQphx^8LzbR(zCUSg!C)8Vx)yXt2rX z$zniU(F9n;u7iyqK&8(JJ5W(umVFtp6_`iE>28Vq%;b_PYCoY8h21j%>wx`gD{m@; zoT$ym^*8Ip5_iy?5#9P*-9H~O?u!c^i#wiXyv!C{o6h>t_=A+W!*rl9qs|eEwk@dZ zl_CoudH*r7!@Cqs^_y;oEHhBf_~?t(AP^AG`xQCd;w62j2jls)}|$M zPL{_4+25$7bs++^W{0*%GkC+WJ}9`9Z};bSWtU+A^nzf9xq zwYGB}k0rqe3mTvT3Vb&f?kVTjrRTs>h2hK2$>V5ABI!-eDt6y|iGtk1RPMG&>rr!< zhjf$a>TLJyaRF#SA4qo^x|fyN3~NpL4dQj9w`SO#S0!v%o6}F^PA6X6v8By;VNsrN zij7$dy`PjHM0-`Uwn~y!Qzwkyq`jIsYqkoee^Qof{ZdDergjI)R>FdORLDFcvy5au zf9ESGd$;Rh;dp*X6e~lqe3G@A8hAzyT?{)SjLV~7Z#m_5l zZM2FDSmfoPJ17T2fk1Kbl}rV4e1iGgi*o*9F?f6mctcToi)op|Qa8)Yb2z}P2VAfQ zt2_PVm_m03Ydaos@wXi>I{g{M>tahG;P<@vqAzlF$p)81l)*A$?)Y~4UuQEGaW`ie z#KXZ?HuY=V3ZG&QqIlY8{HBNs{aWmQKueQ~;t39aN=<%o9^>Rn%iq^lTWivfKWu;v zI(lB8A-lNXOeRY8y>NfQMx(OHnzNh` z)~&si{dRem=0Y8}>kxR*IDZ$`*MHSF)TlFb8zxOka0bxep#Mp{Ea4s2rZZwyoP}pC zvaN*GE9;xB_Rk7&Aa)prp<}W?3{kk7RTHtS!|nGnj$N-2lN+t`^gGaLyC~@|o7-VK9I{Tc zKd*O^Y{)>yn(dUfF{-_Mp+sH*+5CC_@_T(1c$>#*7>cpXOd2kr=IasW`D7U`Z`aO{ zzB4tH-d=7<5@6u}O9xc!K~VTGz9!&K&IVV(BS7XLB?&2ccAHWt5RlzzM@2WpO$TJt ztEHu0J(xC+?a|^0#|~I2fv&Y~JY1b0=8DV8H=L@Wj$`c8Z|oXF!2pF8zyfmRh&QKC z2KZgWfrTagl(CWxBsd^RWt){QmK1^21#7iA*^5H`+NjGYE8VecNd6*uBd-UmcyAHp zTZaWypl&ALgNO|J_j3OUYjF=*o9D7SZfnRh*m$-F7RqOMKwR^WnW`Ap`nAbe$=jo? z)!ak$+_iSXsR>bs&9f86bCey1yvK$T6ur~O!|R|%!=ujQlg)|Do*c?+H_XVyl?Nth; zgP<#^91`l(js&^YXi&beSjy(d)vv(oc=br#F(#`Aky^qkbzVPFI1<7>)<5UxDA2dK;;y9Z*VXQh zl51}SIR2DnzopoH(S7;H;L#WrGuQKHZwqRb*=3Q9Haf37rqwt}!AgR&LxxCrxx`#< z7OQ_=Mix@B^h_(7~|(^{2%8MvPaTi@AZ@B5+An&*SI1 z*mKeISxJrVShWvYBtUERM$34lPSMkv8)!J6TnZ^f>tBJ_8AY*M# zL(}}ppxadjDrH385U~Qihwr>YFJq;gAN`MWiN#x*d>S1B0-OatW=fZd=W%({ZJeD7 zo-=JHyYqhV59S1PLZD~EEW=yg!NTMTqA9@Ptj3z2CwM9y1xbO{tO@`qG!~C{8^6WU z)e&c7UAV;pHnp0=oLz|HAtMlV`+yqfOJtyZi&MST2u-&v1j=LJ$3%;5RJ$bV*wOt3 zjb!^IlQF!gXofw@xi@NcJ*zVc_tPJ)x-RB!&zLvy1q(SVZh0kN9oY_w)2^=IE*O6AEr4=ohbjp)24uE zKbS>=QHD7(tg*j1K@QB!ah5}4jpCt7=nSZHJk7hywW5Zi>=sF#7yTnAN`i*O0!U<3 zR4irANlbCJ*gBi{akA_$(E`~dk0nic{61iSa0>#QIwLN zgw#pYlg#XFrfqBaSO7$S-(%597u1^>xayR)T8QPxTf6FpV9G*2yE z-x*A&=uBL^%1PUuT1#q(^V_wS`C)aaRgK%P{=;;Fy)+ivC7`&FG;ZRjdt_rCG9eeA zT0+-%Kvpi_&}*{E?~l9RzeZaZ?;3bw3V{IhYnKfvogFKl77z*pqEEslfi}VvkG7b@ z4LFPEvY2Upb61nUJ|es^0`|lcd7AM!W#|}Iwikr!q2j_7x9)9{I_@S)|1pI^{e0W& zcf(}qx+A7#%Vf7y`V1wwpU!Z+f72a`E(2Q9O%ERJ6W)gZ`E(Vrj7_RIDM0GK}uP1Gj+)DP{NzO$>SqKgXt3>sH(=sn9~WTIt3@5ly+j zF!JoxoMgu4>{lo2dP_G^c)UwTL$#Tc6Zv>eR#SWc^^9L&|E}jy)Cn}oN@L(^sL~N{ z_3O%FXeFYEZgFHce^h(Cm1!o|hnK@cT}Njw{>7)cm4rRE;#dQr+m&C8-3$rL@q`i% z9`t=2?*hqil#fY-?kgc>DXg~#PcJ9nmyH!o)+2P&D2|5dzBH)lR+b~mHN-1`Hrdk|6Yvmu zTDB7HE`!>fIKM`zbC}uP`;3n37w{2qmZ*X1_kU*ywu}S}igRcNB{)sh>_!qvZwUZ_ z!9^$@!E|k2iu|lVgCiIP5_=sD%mU?n*k% z*O8oMc}$flZ(o)>!aiogA^&WDK@onpgX%#6h^S#lTFJ=`WqO$}qPPV=cUEv4PQ8b* zCJXZ^;&K6aVd|_VHD)T!gy@r(a1WCGf6~U}^cALXu?J6*e@xi|Pp6QCPUnC3J=~KB zy+8a|X#Qr-k$TscLr5@;=1t>h;b$ zP+-xcT*sLS95kTR!hzzI3#)b_ySc$6QAS1newduxUG_GO5?TZS5=IE9{hvfek+L61)gI49qD8Oo)~1oYsxTVM zwYZxmCP`Y{#{#=tz+GfKd8Lg%S)XMTD0+NcVk^ViV?Co4obYGB4^=vv5Bqz6{nlm& zJ7OrKKUAY1rDj{}&osm3TW2{Dw;I|OsjUfLEvc@}oa&tjvvA2Vav+%92qZgH=l1M5 z4G$!Z+7$muvtRH&%9(X2iWMi+PZ?S?^blwsea`ZPFXhGj_wN4|65ZGJ^z5;4YL#@Y zk(3;~mIQhL397gyNL>IFu4fz+vGtYhSlFDgm*m<`fivK~JH(?v_BDAgZwiHJgi|hK z-f%@Cd|UW^Z{D+J*SJ<|t)+(5WO97k(YN-w<8X5kj)-#1A5uTJnj;oMT0`TtEh!GN z<=)@OZNIGKdIi_cMe%jC<>Oc`BJ3^u8hu1`uRfPHRS9%{oQU&fWB_g0nJTblbC@v7 ze4k(et2WCa7?%sN-{*Z4`Z$|p5vL!$;jLarw(RD&_Hsmy`+B=m&7D-hFW(R)~J#jBpV5^S$i+Gl3CdB6RlNj@_aIk^^RTTZdOQC6UE0RIA z{x}YEz!MhJ!h~I}M&N*_Hj_a0r}gZ%mn7-EJsVz=dh$ca)iVr*N(`A_#$e`OiQbza z`W>O7oY-@cfes`1##Voclnkly>HFJq9Br7^xVfVz5 zM|U>5Z5w>_y>`J_uwJaqD%Xs%?AA~_%vAr!O-h74a>b|5(HG%&G?#0u-W=bL)5)X| zlaZ!ypCty0Gz348f40U{b?wsZnTUBRH!Tv-W} zSUpbNPQ#XsvQY)K5|KI?mF@Wg=e1N|vZ#c&SWzL})B2DwIm5EWdW-&uK(fags~EhZ zBlIue=}tM`PaCo9(Lc0gXtPHsLaphHhR~=HrQrCVY8oiB zYZnT)-&Uguwq=_*r6c!X>Qs9Cb27z;L(EzKj$KW@T+pKNJER3_p9T3FqT|nP$U77r z14_R;m2&k|xDiH5pF84>DKseFC|~2_k{DFn*W)-SiAb97>rgFQrWkz8BH!NG?f&EK zoJUKcs8y$&XKZkUVsRA`Dxq)zqH+XWcc9H}z&RBL$WI#cw@~51;__c!@_GcsDA$sDH61-{)*COQ z@s9L8dc+Q?a@p*TFPLFnxjGOB?n|Fsi>&2YkW|Ng}ZM>?GDg7qJVC5BV&Bd z*kA|3cvrVx^Yj|6aA{^Es(@cL_e~eZH1%S5qrNOj1JmiB*E)E7?vH<)Wqo0rJf&O- zrgsJkF$N8_-;bQ$Ouens&ta{p=L=A@{NITd&yh5RZDR8Rn5m`H|4O!R(9tE>U*cow z$q4D4MsZT@Tu94m2FTeCkVZOPM#5N&A4WZDO-#);7((*J)5gK-NE&q2ALmoXw$|Sr zdIjc>Q!t&53}xt;0bi#{=$D9~0XMu(Pk{83*IJ^nKBB-G<40PDM9){p9Ttz2vxBw$r?#22oWI|2~kS)?;sG z3!7Hr=MujEBJ2FC#Z-R$@!RJk=Iq5jvYtI4y_eY}tH``VAbIyK#QM21Y+BnzOo^s{ zgY$$^1O{03*XR>L_CGeI#5Q=Q2r?&$gYE9u&>nL^O61kMFRfPXbDjp7~vM$M%@xt1k zAAg3QOxf-##(_q+*i@O>kGLgZUC9?KqV><_yr#D*-K+PaJzKI_;HHy#nCKZLwx_b4 z)=bVNv)zV&h~IH0tPC1jO*|S4+%frG$_&|Dx0Du|^;t6`STjKYr4MpHaFbwP0ZTH6 ztp(oojncGE2X<3!aD}4ckzCDY%Q3JWK zNftp6`^K`<<`gmTJoZ^rwR1-d$M%Eh)cd4VWgFk^mGNxrkIAmb#Yq)!?F+!hu0W4R zQm>r6SiLqxF0h)uM_|8wzyv{nx+(w;h5(9ip1#yjp79vr7u-!CcF_^7&}V9wzDnto zR#V>P>trFNS7T0$B?Zo}N<*KmR+f~9;Nu#&znZ-iM07pv>-Hj5)rV@=yEX)u4j%V)u+gFTc8n&i zs0i4b&e5uXtgiSATut%J3R$#R%ju4z?H?WooX^~XaQL_zdGKpHIS_6)oA-uyY1s>l z4Bx!z##?iinb#vaAegEUj1(ZC;%i0A-AmppSAc32rtU3DrLN%V!qGZ9ZK^J0cA>2s zb@{ThGN`if%MB)y4!8>R62|u3vIhRzQGzm{<-3YvVe_%hQ{yry0NT<7v@}ae zG9;bvs|nUJMKY1;T6<}X-!wVfvNpk!u)ApIJa-b!b*!hO^b0?Opcak#cE5N_1#?SY z_j+ER5MK#ZYxfuFPiw2%T7`m~UzAvT=NJ92)vXAj-VlJc!87;Q_f{u8TuXk!_yGbx;ou1e zAyP{UJH%!zNm5dn8n=2n)5*}6A6G@t3Ltybx^PcgO)f~5BJ@-A5McRTLoK&$mKEQc znb$jnv~Ur9ScKM^<6u{d;2@ZD4uInam%eR*0+5hSKdwF}jzsf9{ z(upnHwR3}3gt`hw-HiQcIbA2_4Ojs}p5fNPBx+U&oRRK^Vk36ylwE4s z7X(sl1eI{uV>$2pIVcqs74Y7&1bnUvxZKam?f2}c)yk`OpF5BDNzdcuI{A>0TtOhg zHgFSEeP(|sl{eRV~ej{q4PZ?45TF`ujJ~XazifJ$_pxs~a5F zHI|i=PK{TUF>9kU2hjV+EomtLarx=u5$89hf9c$W!?SM%!**GG`ONlF^lA@l2KG(x8_NYLP5|954g zk+4gw&&Ty8)!AeVAY=<@^+EKyt+_py)GCSd`)@E4$spm{?t{yALB`C43%o9>B@^#t zZoqz%bb)1c`()CiVrPUvv7&G|(%S;|;kZ+=l^y3bcq&aMQ>SvpetZe6P);egC?V2q zS59wIkjTarUCZNF z4I9Y*g_RLM{f~3vtqN=wkI*F|zzzO`ure1%X8%N_KhqM<<0SZ}Y~LG~WY?JeTmY61izIEERu4ADDXK#FHc`oDCui)|j_-lIK~P4b6)Sr1 zh0_1w4n_K;NbK?av8VdJ6Ya08p34NL+b~0yGDoopkuBSynS)Nh!eV}lQT`*1PhFGFa3u~2)}~s>-e>e5exahhAazL zF16UdqALUett+L}RR|TD4FC_N)OA)$Qz-GakEBpWMfq%E40XRBz{4)9Kp;{;sU>i? z^1UrfpH1ynR^oX2B1B{DzVW?`^$=@~H-5GDMPjmhO!QTF{bY!lDT%VRHM66$F8%bV zBkhX7Jn~t9go-eBx%wK9Vw(1phXshsrxM^Ors86D!XaMqnRDIZPEAH=hXqDH{HXb% z?e}0t@{K3^R`C`3A@*X8WX)}+}Hhy&b zojC=x8*r5%$QvnRj%&M43FR=&h0oh=gDeg2AK#2)T-+?+^9rBXX6}h@) z!_mTG@o=cBoK3S7GA^O--;v&E+nx50ikKm4JZ=UdtZ?hUL_IId3C`2~LI!m&t_3(H zjqws8B*^^67eptcAet-JI7>V^5(i*cQb167`g9%Wk2Rh6m-MxkW>Z;SD z_VYG2?)NZ$YmcD^hd^z#tob0q1uXm<9GZ~nC~*SYX5-WtE{%y1Qqw(``t^?zw{hpp zDQb@xLF?qn=FnBtLYBPA-dwq*k06d4xZ{QvL6o)A7Mya{QO*M!->qGU`n^d<3?Rx~~QtqrpxV<3_rT|35$O2>LEQ#UBnZ_X_))>p6xAS)` zI7p37R5KFx$wGn@7K|9JVSQqr(~sXPYk5a|ZBG{$L2Mi_Rh?8%tf%SQh6SWxzKn8K zWZ>1P7X&j=ikE-XRu~GLkiG9*&I99gN=RtWG4XRhD%BBFg~;|xT;!o75N|vgt6s`0 zap>|s*FMAi>=WLcMgU$wollg?$`sI0FIX})l|V}PSn=gYmS#wR>Fh0i8Kiu%NC&-c)KZnnbBsW&t+4NjBP&ebBp3`d^- zC&7R3F>`D*;{TEhSy5%L&FN?EVD*JcY)jcMTzz2_qR)Q)5d?!0Zk%od* zQ4M%hu3zc<@ll;fU6EQpD5}(zy-#1Wq+Z%(eZ^VcB2#ADM|_|Dm~%GPL5%%-_UZRBmqiKS?#%-_TPOu#GMnp<^Q4S z8`vXjx^_F9*pp=9OzeqmJDJ$FZQHi3iEZ1qZCj_G_q)y?=&N__T~%wXTLPgn{$m}6 zYw2b0?}6G@4;&v(tU3ID{Q9g9-mNNM`OaTnC2K<qowA%NSG&GwcK7RTO$|RxUob#wk35njZT}EVDq@g}wQ9GttQwbhD8kaSkLhug?K)!t*MKPWK~#fOK%iy*w5?!9Ftg#e zHmN=hR)u49ezZy26$Yn~J{P+-`O!N{q!s?~>XMX#XRj4GWQuCH8rF&7ESVV=&5Ie$ z<7W3-zo@ttVMsn-xnq;LG`ySmRK*C#BH(^PCWrU!^!V5CH_dxXkD2Ut#}PqrQTHs( zjW##*(7zm%7@b8MCg3RT2M`v?FRpdX)Gt)a@~P8&4MeQNr-080z~PZp@w_c7kVl`& z>K}WaUK5pNag_Nt@w3td&lH!4Y|ZjHM_HM;xDAKN;5WUaf0qfT$o)_A5PH+mQ2EFH z&nEL$@1U>9RTZk6A6zVcY;I9oQg|h}?+DFKmhkccBsFTP@2<$5xVSme36ZJgj9bp~ zZX+;t6Q59&4ZKLGws6=V{+>6mN$0{4cN68k_rtVBt$zbZ8r}{o`l3gZGB_#AP{l0_ zj2r}s{K0nMKyRr7zzIR+=Yg|2C&r(=_zR!6WJQzc@+=57Vu%H2T6;{~Z+5A50t%k9 zPNm@t4l3R-&=wa;&JCXfucYffLe;jd{to{$dg=W^e&*qlUki87_*N;wN!H zak7Qd|BN9~KD&G7a8kRw^P4WJ=pH9=Apc8f5V71Fm!)hvG!r(ci~sEn@kWPH+x;!o zc0u+yyUFFTOB56)S$RuQEFNG8Q@h-(TOYO2py9I1U^cVI1)|i=^XQHtu2>VJ!&f=l z`rT2cDk%}DDuJ3eJzQ4DRS&E)BfnjNgDrwO4cSkJKZbJCJumz5q~g#)`MF35CHm|4 z@Tlu=9w=U4o%tFeG6}D*0Na04x#WhkJQd z%iC(FBe?!1&p`LI$Jw;I%_tPc)!C+aSF7K3E&nPf7RK$i?ov59aHw5^f8B-ot`RC`=}z7^?^#{`jFP8cYOl8$YZ#2o0Cn{>d-Pmpg*7<>Xuv& zwp^(LT4|O&a)mV%eou<#c4b-{uxu0W-+$)12FLjb5<9C(=Mf9@AhNtyd}^(Tax*#L z<8oib205@>v+H*Yd$bTc-KqZvL{C1Z;MK9GqW%F~_dr-Ok{-`;W2;kI8EfiV$C`h< z-A0loJWkZXU&>sB6X2@^qh{Pr6h_kw!=px6j10!`xx)U}oGcox%YRmZMelJT><$Ro zn{rhXGWcm=Ro*U|O37+uh3$Lt{3$|UmL2ak)Glts@`L>vd$N@q zW$b}m_YOit9NRRcds5tDFNC-g#Tl;&#B~-Tkio%6eUy;mGMARt@F3I0KX`N2ysAw( zmByp=t?;#;Ih0|;Y@)a}E<{B)1TH9bGr!_&1OG|~EdqzW}uHP2Mh{1vuopW6Im?kZm_hgBxMEVpk>eQIcUPMUT>RhtM8vl*;mt zdzP)}r1(&q=8-Mp_q@zS8`rJ%!(NPVJ`BZ#2thg9BHQ8*ztUbb zQyefd(`BFEoervIV{z)&;)*H$2$p~0ummh83)Aq9P*`9!xRqX~Lf+ITnOjCgEVe5d zVF7n{r!f}`cb787z4V=Fm=Aup7tSO`?gEl>sb9gKyNu*VN zMJ}_!iNn3!Y6Oy36_lS>c2G@ynGOle*BVNBQxRo{*=~7Yo%SPQPVb=AN9w$9>dcPG zZF z_cG{5-UlsdI|BOXFUD8Hnb(=xzjxN~KgjY`3-jZyHhVJ@U5iKaeR5`ORwYVpBzmVn z0Lc?r38q+_e1BPY1gBH1X4%5IgJx;3VcKTb(Xr(Z)v>HURAjNt)`UJAHs$Ajt$<}b zpIN?U)5?!cXnoe3PtBZhgrNap9W){4(vo~+vFJB=(0w?X$%G6(d(@1{IF(YpTD3+2 z|G#QX$PpGPby+#pX7L`CU#N)L70Zeo=0Z~arFBmTA@zg&>3Z0eh+k%2&+t6mZ-+bt zNQdD6U87^QFF&Flv)>mn{i=2PuhNB*$eOLTY!A@{oSahfFACdlmd=b6@G3C^&}>7l z0!1oBw5;3Lt&Ci#=a!=fB{k)a-kf6?hvQ&uqn;#)SVS zPi>nXsI2pD+vJA?^w_;Td5qaF2N9I~%dD(0(u{7}zW1I995)f$dY3b4In1w-mJ{u^ zjGi%?Tp4Ly`(dJ`$rUJ4V~z)ckJT|32>6q4G838|t6)0aW&$jKi)TI4Mk3mJDJmqF zwNW^}qP#w4hcByr}I~yQ~kmxL|O_J(8A9|oM!+I+lhf+taLy|mu$VGyyG}byy(yu#n z4Xx7Z!%1)RQRB_1|7eS?dBR4lJ6%te=a+6LyhI4hA%XapU#Wd2J70Z`0~)MLrePx9 z5duy~P(ji>M%sB%nd`1d^28WCy>OF!OlHxyezL%b$HRDRoKUws7LKGt1kG-YR6>aO zIU+@iCdXu%*fl1b{QD!Q+Lm}wCEtZ2bX2p^@wZ|$-jw=hdkJ{=@%n2^Df8(jhnZ8X zjm%7j!^Su!%z9n6P2F4GW`yRz)=Sz$Q1hZchkFkN01&w+ij|F>yVjzKLg{jQ*0oyZ zWxM2sGdil?9)2izMGgQW;qAl{f3YJrnDw1T<7uopZ{>`yj$y%B?@sGeK0_O0ySA8F zSpm_mQKNj{O`Ot^w60q80gz2==D!H}&2Pj}=GAe`;&yv?gknID;}-2R1C%WywOdR7 zVR?p*=qb@^=`yHEa$8dyE5_?mmgl?eLkR`>|5vOp3Ru{4grBBVme6r(TPkchG+Ggx zbDoa6m(MjSWvNSam0xp+JwipEEvKALk9a|XaE?tZre~5wIb?z}zX?WA3@i0a_O8|P z_wJhqcb#zPE;cqktYc=;ub(f)dB$0c9uSx6%|EnJr=Q@P?R=+~*{xPCXaI}0MGg9L zRyJq}BU|vWRn4Z7m#yyanG>rLiI-t{t(*oJvl2C!f+V(@MFl`?oqe)*kvbzc-!5A` zxb4if-&*C*Ma5#So0kU-IJOvFds&lIRokQD*AtS8RjE;8Rd-1}O{?ZC76!UB8O^$1 zk%>Z}qmwV*Y1=1YV(`gDix0IS=(c}luV~-Nz*NY29rgghjc4xyjTV(|U(H&-&}A=e z```!DeDI|_ipCQV?Ng3HloutDR4?VD*=)P*5MZlb1;W>RlnR!#VcE=54BKOg zjisj`tBe-_Y$z0lZm^c!&MF$7Gk5QqQ)zTG>rxum5gvQD>xv!~p-ShX{HOY9GbB%PP5h)vCV{Q|6*O!v+E z|Dh(02mNPBH~%+qXurcYq9(Z<`_{){hB7!iP`yWDs7)8%}&Yxy4Y>xFE5*EW00 zq0js4w`d6oJB~?b>Wa)Ik@@o7n-U>X5{$$z;0yzu&|YMn>F+g6uO}H#_%`{f^j~t3 z+fK6?t%zP4lzq1BK(W-=eQ1pEq8J1UdjODtslWwV? zqBt}3O5WM@%`M%+J5cSacsQsXY@} zF0vDuL@?aU83Hg&sXnO+J85$`vb|o)%MRjz)#kKugym~dH}#T7d=Mk}dNibUHpt(A zY_p9zJ=GX%LieBJN(GfrUUml`t1b>Opx3F>BaW2n*kMgA3q-rfy(#$;80g7+5<-@W zS#p3D_bW&qcSrXl{P1sqI7~Ua=X!;1ZD;*8&yaoj?#2kR>Mb7+*SoXV(~vJqms`1a z#&?D$>r&>stk3aoCyrAe0CH$K*#9a~0Yc;Yq=)e(V>^(ux0^?V$we*eK7BN2(+K}p z%t-6YQw2T2y&M=Xb(oWVxMgcs^&cT4Y!xMx-J4=v?DEfj>t{R#O#bAuvx@^MOz?eL zfogTv>zS0rs2GDuajL{W>r9!!08n5*TWjg55Sdgz|KM` z1k5Ag_iJ=Q(R0jBBqNnWA5PogGg)_ghV$EBP{|dQi_P2iJJ!vbS#0C4Pe_0nQ@F;X zX=s-AuExer&xa8c9gv+(eKNN9UE#@me=3vn(Nka)ke8VM@`(mo(Y% zEBwjU;vg`{*4r2K&{2IXHilU8X2?WPW>>ZU@JoUpeLOh|k^p3%Hi==qd&-2y-SM>l zomnqIxk~r1@sL$l512_e{_EE7twGvS#*(Ir(DI}>{Vk1B4aScJU=Q`xhRQ-}ti-nP zH0>nf*v^jl8aqhWQ6w*!lPR|`9WYxrO9SC^irXNRCA>);^^3LY|7 z?BeHSK#p2zz6%eK24+0R$IiOoHAg4|k7;~d2PW_A^pHMURtz1ndN-)%X8oKkd3#Ds zPd8x&YJTjOPG*u7@k*^bZ?YNMnK(qqFf~L{r!s7c7R3yVcfQ5V)KyTda~}h}_m`Id zw8YtPrWsAqc%RA8Av1h74h%M>%!4M)zB5h!HO;rjoSrQa^zBQ@TATZ!2+;^n0v`z4 zpHDw_&_%hEjG%32o;Ebel&`i(p;X=E)0tX=Uq>iioGAXZ&3^ITMI$Yg-RAa!1nis%ztO~uA5%H|`7IF8 z06V*(AM^8w^Kjc>0EE*Hk9})^<{hlix}iF@b+|=F;?*f4di99qe5>k9X>+m!IcMTR zneJ@(Q)jlvi&z$;C>MUFG>Qw$Cwk>niQOLln+u*_>F?ZP1}LErpkRfgR+ToJumDi=#2ys3n`6mQ?97B;P3Fvdar<9(l*gm>=dNVnX> z{`8AJf33LAMt~xHzymkB-wtzy-E?Qaiw*}MpEpHs*GhSw+ERE8rD0}0Kg;k150MhZ z{BIHrfnTREM7|R;t*8&+#aEO%Lua}}m{2fcrEDsqBN!TK+|}A`icS+dY}UBU^_X<} z@t2?uCI@_Yx1WEkPdl2%0~iJS*BP5MNx@2^#-l`HoN=Z8_n-9%19{mpry68ta2(Hn7&&k$Fah!&6zscnk@o0` zLZ0i5*QAnyT@;OL#bWs^RJCIK?}nqzJ+?~f=-ATD9{QS)8aHkbKxVg98Z#J?qwHY> zhf*IAFZ49-e6<>ZV(4lk3X||Lch@VXqnF0L@-l#;sxI{9#Xn|M!35h1!l=)eZLz%F z{o~x*8u~mfZ66$!R9(FDeA2&0`HYZGdCKGG@BK*c);S(h(pcii)FK5P=UX>+7-3iw z_S@E>#Fslr4`I&^i}PV@T1**y!T~ijfG+i$4kUVeez{;AmZ86Tkt};#LTe{EInuo8 z2hbP^Wjfo=WG%#rnbv)GJ<}=RXIw{qR2SjeXRVUTjrM*6o##IS&FD#n|(6>eyY7ncnH2D^H z1Wl5unZKmog%qz7xO?K2|s5XgPo72)4%Gzm-fY4YSCZQ3O)=pn=Kno&%k@_7Hl+O6HX zf?VOJ`B%9%=WN4hD4Oy)RQ52N+^b#!UTFm!fCrpIs2v}f$nD%SMwyLCTf88e^C|w} zjfQ&3T0*&^7Q)+eWS(Tc;fU*|%6MR6(FC@?!sS~jP!H3+$Kk!{c#%J;TX?`gT~Gw% zyNm|;_r zrOzr(4;a>;b|8GE4XkG3k*;b_h9ODZ$8Z+Q{>-v}Q5H9#3CwacxPssROg3W8HpQKc zI`czKtKt@t#PHxgoUnV8B!6*T-)P@~@gnayP8s`!{(mk&4u)^SsdNzF#+mhX>Jri- zTZ5hQU%~bE?DXiR7`*$B{hM1WBg1-^ca>5)@8g{h=2KCLX3IDr0_XhU%5rYr*Qdsn zeVy03qvC;jjL?R&{t_D@e=Gg|$aM8BctLO1@TW+yV_Jp)$qxe9K!EOs{Spk=nwtA% z-9}3%&$1+Sfe}hPN*fkW8^*)qa=y(10J3c%li~-T@hhwJ`&@IPjzN59C04Q$1tvgl zu5d>>fYz@_WK1zRMJli{8@>jd|A>Y)+K4591a_Xw;={Q*hb=f(BSumVvI&-A*0M;o zkZCwK%J=f3?hzGs-~4UE**W4yw@F?y_?-t;F_FCr@1+SZ(J+G* z|J4m>1?gyg42~RZeRZyo>upEnLdeb_e7v!N3(ZdB-T9&M!^P9*gOMjNqeWe4n)>N$ zo#xj5R8}t@?*dZ#AKKnj2Ir6|K3)XMBV=B=auSG7-i%)394~_}lq@W;sw`TS0{Z@|go&o$4&4`nOXM3F2ShtVkOLla0_)TM|Ga;>)&o0>x#u zw2?uW3K16gWVUuTISDAT?*FzH(+&Ge-|SdEe>Cp!qszTGAhc@IokEQob)Nzsy~9=2WHbG8b=D@B@Xu zn1%b8j{$r~{`W(&xw_@uNznCKNnpnTlU&b18vencEKjNrT%Qp3Q9M)C>1j^THT^f6 zaOqE1IzdXqN$k8pWZU{4XPwJPxjKWs7eFNG%%2}+{P^UwOImNQIjVV5FM-(D&D)^e&zhTxYH~GA(s!MoQ!9MSPolTCAf$k?fu9FL1E~s(Yfl$FySWf7`5b;#D&T$7v1pI|)>cQz z67Rl(aRl-l8cq4Z9mI69T*pGmrw>Z)s}jMKYSWEqB9v5lZ{5j>j5Q8}l(7kFN3S`5 zqw|MND7p~8wF5iXC-9{T=h9y=k#?b=$+S4x)KN5eP@tEu)W~EZ|LSl^FC^1_eHc() z<4(?`Y;;LdcGjOTNZYtpw1-D2caBL0zxNrH&fN!bf)0|T?gp~B8An04>dulh2~6N?Q@XeyknE0T z01$|$GH=VAZBh@2TdupCNia$ZBwFyw8mIZ?Y78i(N(**3v6z1#JqdA*21hv)a9eR0 z;zChk8X~IL_G-nE`5ogab$LwIITBLnJ-vE9)w^FK+7o=W>q1R@@pSv5s z_Y1al>7m_!cDyA1K*i#~&fd`e?Msy&E*F3hqEO8U9r$r~fU1lGY#P>1D~dbbF*9f? zuzzjWgjNy-G%KKCDWs%1|1wl!Aze88xx)SoJA(2# z+b(P-9>>2qVT65T?w?^hhun{};cHyJ7c8R2bppw8%GIoM+UH|81mOIXOVzhrDxY#8 z*}w2Rv}kpx!hm3h+xFMW-W)yY(3}{loe)sA2eps@@VmjjU&e-t(ijw2Ws_9l1P}oA z#3!cjmr^8b*(-g8e;$)^f1$Gb;4Sld?f`WK)A05#48b$ECKJyKG`a41%+!!qIj7MIuP-uGB3$+f)LF|~MKR_x<&k30uQAC1?@Un?`Ft&{So7bs?X zl1_lmhr@&Wljrqd;Wwi2SdHb#mML07W7_P@f1fFdb0@!_nYy=uu-;9D^ZM1P*{tLY z(r@0Vll`Zne~Ko)Z~EE0&(g)bJvbGrwiD-K3k%Ca3uV$SY1X1$Xsw}TkO4G zPG4cL|7#c;6i^eWXaW4kkHh?r`hJ7R@*~Y5-nh)Lg{0kcnZYHlzs%Xd%*3ZQaN9hK zh%2=IO7wnTh(RUQzVJJ9Vcwbk7EW9~gf63cyHSCd>0iIuwyGk9mSBt)b3g)5%H7IO zNyRq0u)2t03etMT<)_3jkUhnSlm&-vc~HJ;G_@GR6^AL?xA09%kXE!gRESE09AL6{ z>FG93$(Gehla{|NL`W_&9^2yYLFWsMblRKg#%h%AEf*NzCacA?=JrmJYSvp9e>o?+ ze+g3rTC6jA#O5Q8fdaTR#kRY|@D(_m(XUq~5_-E!-~*G7(z|`c+w3`}@a5{9r~sus z$cbzSK=nGAOcRp2ipefY|FDMO;ZItqPke0652Lq1LE3Lc*`yS1gJi4C@G&bWH_y$Z z$P3u3uXOK&9HMpXl82F8?&za6Y4r>!uUd&p707usMiq*>dixBouGnkCHbU3NXJ01g zqN2!bUT5)c3!9Nm4S@5D7%MBuUf4_pjmZs)uVh zdi4c&k=8`4tQb9doPP8urEIs+j#IkvP7TYDpuwLgPWo9kPe?3P_b>ZBb|;zSrx#t! zxCPA+E>tuFp30X(i=F$~w7xr}Yqy{NTPr5cvp`!v;kI#58bU5KFhEE$kCH}#z6YMI+abCa4(7$h`7`z8xl%3^ zwXh|)&8Eb#sD+}7EV$o&w+mQ-|DF?m$G8Qu!so)yWrkas==ZHIQbC)`O$qKPSo`~J zp|&1_S^~ny?kcI_`g9K;(qB^9C_{-Ei>O6OB%T*%1vmp{SAtH_p>wGO%g=~GbKdvc zyTtn+l6YZrTOk`3Q()_ej`*?k4L1K#K>vXJcS7@)rkW*jE}wQgsvWlwLkGU|DL|j; zZx^@`9ami8QB+EafnDzyYcDxHwypAmWVAs7Bq$0tHH$hlGrGdy1H%l)i)77%L$kKONGNDPs2`9jXgpojg_XtlQC${VZh(wPg<}}rznJx#_55$Tmbt$7K7_Qh8n0M zt8IO0r%nK1BJa50>Ed9DERI5=H7Hy;92+~4J*RRGsb5`GkfN>@VVZe%qbZQI7j8d@ zhOI|0(zKJ`8zBt?@=Wn`>lq=RVLDWxz)}BK8U)0vxuwoa;2YGLxw0YnD)2R{k+KDeSeFb%!S?X)7aY6L~ z8C)H*)b+>M|DGjS@%MtUcr*Q3Bhf(l?%n; z$sRJie>*i7?i_#thMa<#mby88a~5jyK^=*Ojd1fuExb~RHd|y!e9Ym@7K1lDHVYtt z{8n8KH{mKrP}eta%7e)K8+pQ{gfa4;b=sDwa;tLusHALe&!$%97_;k&ILW_76zsz9 zB1|Fl#1cdrhDYUvgnqQ1cq$uFbW~SO=33i+OMY^~`EUciTJ{I3_N}zadQsw=Y&>U} zvz`Qn2q+b3i!dY<0`pK9U_d1{}{x^2)`dInfX2vmoj5U%ZenD|DMws${KxDY_9G zneehzyqx@=bto-q4L#h|k4|EmrRwZI9w&jC-fps7x0xCrgaSpApsa*1@vs*zORP}& zbZb};nyV+c*bsSnc25te381FeTNIQ@NeIti9jTiy!Me*zTFs5v^#y0i@a|nI6`xqV zfxLytri8wBJi(frsW11NpCV|*0$_IV{)A~YsWt)2>vz7}7R zS|YbZ9h4CX?GLr$b_7FTCTvxpZ0=&n#=+%W{Oe6zpIG=LNgMGOu$3MP-aABc)Fk1?5qk6dvSI#Wn?=v5_H<4Xz#AqNZ#j-I_mroErlTqH$y_WI8^Z)W0kRd^J(;KA*k~rk7 z_Blm+#bjkmb;F{rZ$JVJ-X;I|m1NDv9;GL`>Y%@^zDBZWI>2C7zI+NxVcINd`eXlf zzX1c(Bpr>`<0=u~%TXBlbPFuhg}`9&A}i@8=!Km@=65E7Afh$u4REkKeJOSGm%(N z5?8i=lHSi?;v5AKs%S4NwNR}Fpq-b4kPjAC@La&7HkNcm$2)mN1)lX8%ktYF1w7t3 z^FQr;LCt7HD~QcUB<*=hU@o<9*j@4RN8*lzG1q~S%R^53h|)}|9$Mb?!+YBU^75sNJER7y zj4d-?Ywbrjy3X(5z?ey`Ep>s!o#7;Z{)9&Jl-2_0r7D}B0A>YLNIu}l7}DR=!Mnxe zlHN`|Cg`;_6&h1z%F31S{EBP;i%Y?;%h|MNHU;$l;ph}62#YBQHz;9f9O9R>aK|?iFAPN7DfdQ zex>{-JME8SA2%0F5}QKoXIj?UUIorjXnB9SV<;)*y9eolDKU|yJ>n${z)PJaO&$=7 z&^R@lzy<95wJ;Z$lvSy?VoP<>__K}~<@S(F(NA1Jt1cdpA%>fQ!?TeB+Q%8>JdJTI zh>-bMPhgoM^Wia`LRL2r?LGa@le8OS;J$2r!|QC5{B)%o1M@_(q;3QqiRCEQJJ1aZkDKQaE!`?Wa_wjXT5K#IV*)luenp8WD5YGe!^oKvx#$y(#1{@d$% z21|A=Q16Guvdl^o#mYY_w;8|s7!vMn{RyNnCcb+anszgeVOPFkROYM9Jy8=RC|>{n zh`G>#Kp?u9{Ly%CNBGn0Cn4%SMHEDwM011yGQOS0 z#IE0ru890zo8C``HUi+5Hi&*rkd=zwo7;>5c1Sy7k|oJqaNSc1s~{(XF%p*s?N~06 zC%+O~$93%%X-62t#jpX=-(-lE?;*viDRuR%mx|I?*TNUKF$Ql$COGQMHS9=Q80YsL zY#fC!r=xu3y&(fbqWx_}DN~v%S)JhOG$cq+*es^mOAJBBgDU$MdG|*?E}~nlgtb_W z0%qO;Lyc`NQ5MSEIxykf3UMj?cP%OsbmPzBavdpR>|r7h zA|Jq(Z5-#EtW*4~`&w?Yw?-7yfotKs$Co`<-5qK?NbxC^#T|}9bS3tKPHJj7n%eaOj+%6UQq7UU$hE~#VecwC zqxu>W2e*9_Eb7)Rv%ab6lyi^#vAk`!*0jNg!R!eJI!yu9d;IU3104TPjgg@&Mf}c+ zojNcrOwHt;ie8j-ViwSxd@J;d&y5YEOIpKZu6(BRGmPWE!_IiFRVr`qHhNzbEy|GN ziM>4DF6LaGJk3h(l43S$Y6wu3#`r+8;obBTe)bzfK-V0U5Q*P^pA4bqXyZiob;AKq zS2c!CAQk6s2Kc4_XrHa{;q?+7R>230O#3HU^k?t>4kT%V0rlCG-r-C?z)}Fk>S8Ov zeZSS$y7vttA?afe@iGmyMSKthU{^y#ALdySqB&9_kEKFryeuidIrV_XDRF6BHZuz$ zfXCBR4f>YMb(7dZF~e4MxTeZBu)Mn%&k#PefVfX@rhmsKt1FRf;>Iw^dgk)nS_9Zq{GF65%taFzKw5mE z{ad^^zi;&N{+2axjQr!m7Us7EpAKjk>9WCQ&HnvZ#roB%Hv~WaVlS_>8r_<1(doFJ zta7sP-5xsAdc$59^>%;CFFPewZ3<+GAm}hSyNY&HRlha+C zU)+t-(~ZrwjnvZ3(vw7ulZ({KDDZY@!haBiLfO|pdrfxu=;qe6*N& zx5c)s>2#H}9((+fe#wO23rRCpY$g!7I}E`=n2(gKFD?dB2ln>`TRu}r&C|0hqHfL! zznn?@lKcPMoUMZsRugR}OX2OsdOCrho8N5sb)$N(@w2jA5&5u}t1Q&H;Y1J9u3MPY zdsx5Bg!>_raKBkfnuZWG!$a>;OjW&;9)8H5vzTb7C3BbwF|yF2ge{DY`swKr$4kqj zMDH~HLMv>XDMlYBM8e2p-P^{S?`9BWcV|+)qcu3S99mK74SX&fuBMt;tA6`yB@Vp5 z9+EB=IgOIHoOow@ANaXfe|0lX0v(O`R*ib|=?1TUO%!=9zO>eTOP73hqh*4kaQ@P-?uJ&A=sgYMItX8Rvj1FSdaUUv9pf9SDQi8Trt-Ox7pub}$|5qMLGj-H@xOJxHOQ}i$TTDijJWu*Q13k9 zL<)bti~OP&a)Q`o=wLs)YjN*YtkCo9F4f3VrkLkLn2$56d_+>7Lyl6Ua|>(K0o9|N zml^unb+1P9q$SnXM1a1O=I#Mpkdx-9G!_#~C{p4jjTe-~p5UNsX1 z+KnMAbxniWAO00(=gkt%K6Ag_H#lMOB03(y^yG`Krm2;Le?}7!ba1C<4?G>NEra%| zS@Qnwx^E8B+8;U83E~YB*O9JwjtYFAKcbcQ?m}R!uMrq}i%IF?>DkPS5!_=J+&lj+ zU)ZN2nrtz3vByh_8MR$h_~) zx>JNv<})MAgD+@NgD@woj2cO;iR3Ss|6(hkpQu9ijLBL3+)6 z*&)3iGOxkIX|VA?qS7ZQOI~OZ` z7Uh6%KZ=uam0!@E;6L>{*;4qTBChVr3!54(OqGBSwuMWf$|%|LCcV3W@gj3AWJ81r z8T~1h+w8L{*@6D5N&UWFEzUhB+yEdUFaY$5b4iQEpX|#zIfyow6?^W#-v`p8P(j|F z#*Yx_e^N9yMSb_gGQ_pZdiPN>u$Rz6GaVJsoavc-oG9}p>ivmL z<~!4<&iX|!E^6)>kTkEFrf~G+Wt1x_0^!F7^}pv%Yf<(5roLUcPvK6y{lxzIDQ%m_B1YWsjt~rgZ=t@{?nRvV-XNps*4z`IW=GSd>g54 zexKQr_eUHW6vHX$V&kus;~&3~+g&;3DJ1`2k92=D)p3UdJRAM*yOrY4GNf@}$+td* zZ|^8r+}ux_aIw3rgf+8*Xqbhgf(EV{qm2fvIZ6sxF_Xr5V0uEY7qM9W!M^?T%@sRq zP$>_7oPIxtYrMgeE?Tg4EiOH=rYk0OSXcDtI7s`?5PX0O6B5DGKmn0l5dPfUkAr8g zwiaW(*p`}AcKn|%({7ItmvQG*qnG8XS9 zQM-qq9@_dsJz=+^C^=LP?uz5wl+p(g#-R@$>k?OC+5>rznI%S9&J7A&Cfk;B)!DKnH$$#L;X4 z&)zOsEs1#(Upf`_L=vdYKR(9yn*k!Iw0|*!v<=CUVLYACUdM4PAkpxZ-199;;+gzp z3K~knDWXHKZjPrH>E2bdkX}`zUTn#`v?dPqx&3rl%VOt?%i~)R;x=Axoz-R`XsdiS zj&EQY&}XzdOi3%YxZek-QQAF$Nn42pQP(4LST#mEl6O-#zF)W3Nf13eZF$E?r*#yd zE>E2efl@|mPEyXCKS~dY86Xg$=sUSWvoRO#=L69rQN;@LGrPgzH+jAS29`Z*(C!c0 zi2n4_0@XI5(oxlK@;fCBOY0)v9fRt)gTjY{J|;EcFcj`t!ISik(Wl8@ILp6QH5~(@ zXO66O1K-a>6VX*9SS-V7TGwypgmt+Z&Mo(11KAZY9rsKl&_^2US3$NduV|{RTu-@T zFE_odFBZHD^or1-1{(j1(MT;(QPIdLgW8N;igKz@O>odDVcjA8I%rUJe&npnX|7EV zw#n08b3w<{7qA?wcSnI6ZvG%;cZtuZFaV1LMasl06g#tVbs^riGh!p3I^XWiZ~sos zSt4TE?|AK5lxE;~{-a4%`>xQE{x-_dFT2h3aHINw?$GOrYs{~auib`d+_(YV*?AK6 zQagT^(JE2|bK^!(%X!(VdXIaS!LJu|)%i?caBy1R7pkoJbE37v$0vxAJskqjVmEqq z$MqRp)(CmF5Cmf+zpsF>{I?1ZU4|;&vpxJ+P5MP4*l~MVN^`TunPBoqD;Zz=R(=%h z3w2vaLA2~Kd5qCX`IuNLvTa~-AlpMD(1q@o8n>h?rF`vkY+kW%R7ELZ(5$PRw$sUB z$j*)0h3obbc;^GqBfLGvG`4iA2zQSXJm{RRHjjf2imS1siYF$wpU2s7-V8r?HI5HM zo(-klsVFvQ|H#ls49BA+VphUmAM9vf9Lk$9JKet5NQW z;V`L9h$PB~1l0P^p{8C{&nY2Cg!pFb+p#OD%>F?ZO?|@y`&o@>bj?;s-6lLAb^;YX z@70jC|6mid`(k^M%@>h0)SOb9C~OR~O20ndtvP8c5#ty2K4{|e*w-j)6}}~NyQSHn zQaCQ0C}y3>FmEV6qGoci9zQCG)#0xKyO8s5@NqF}Sn5%MRxNPI$&%YFFrVieg}(FhIjjF50~mSqB)d? zhHoK`LFQr0b^1Xb9Du_`^}eeRUGzook2&gM@lvWJuBxB_2DrJswR>AJKL`#wPi$n5 z+T1bBbH4(mE|Tn*tzOcTO4kUoU|i7U#`vBJUwb8yU2o}}d<_KQ#+YI_f8=<+J@QVG zP2I#oh=pZDXDfxCuHM*q4u8E|cDTJ9^a>_sufy0qAKGWL zZyo#NRV+tSZ>Y;RT7=CKA_~dbRo(Z2GKrz%L^J7iH>l4a>$;X<_u0nT>PL{idhW8H`fPc5Mv)98wSS)nHP+7^xT{gygO&5D3BVWVn~oA zub;a)C0?!{Wac0LO}b5C4F3?2ssQoiIl-32MKft;tY7``5WF2UcPA1yhrM)<=+b^m zbp4Zlv-vGXr`>nRj0ONK56_e!GMFJvf6}yS4PbPK%6i)n-X!U#cPetv)Z$xjQ=EQD zgX7{R427c0A{EClfdoj;V+596b1T-m=JQny4@VFCZl(8!17Fn}*k;>_J+e72i+A}J zaXq>gyJxZC+aC+o9~jUAl^_{xqGc5H_}x)6aFWXB9xiv0h#Sbvsv(+HV_%c|%@D5okpByGM#5x(@l!SY)ci`alpl&g-#{b3TGsmOw5iXMzQ^M-s**2# zkNaqkGZn8U58T|sgf75!dHDjLchT6X9hnby|F<@IzuD=}V#exOP}((UG14OhAaFMx z9gM=yF+^doBKJ|ZP$y{)&=^cl@SyqLfSgN~J}AUZCDMyJrelfTWMGW6F#H1&yW*Y@ zmu%!}KPGdI&ii>p17e0k@KF_G7iHrQ{P#~K*?cZR`ELo`$ z&8Mh!mF#s&lx4N>CQVh>*uSp0yI+RWN6wYwbH!v}h{C%j(|BU z`lYYeW+yN|5xXnbWTI0Od96Oi;LdF41JU|x^AW|<3%A}Y=@qIj`wHARX;-VVQf1Ny zYvxMi*>)Ews}I;vtAD_1Z#BoqTp9SQayT*TpGIn$$GOVdsXsu?@M@ko!1bf%d7)Ii ziS!`Hb3BnB=Y-*rthTKd$f2up`y4)C!U`TAV@!~mg{Rn-MX=6=8w;*KRBKG=zMkw~ z10m|%Dw2q!Uyq*?ax1BIhUA^U@*zbm{vT1_;8xlD#d~VP$u=fiQ4xZ`Tp*6pZgb_XTN9fcdhl&I?0ikSo0J*A7dzD9hwZbM8NyN{sdUCbn*OntUgOyQzeTV$v)LpHaSfjLp+v)AHh(dwziVUemo zBAuBo99V!GC}grEQ2;Su~C9c>UN){xI_S zPbfDIdUDl8Cd|d|?Vn-7nv+hX6TD+U8>kXNqyRs5(M7(VC@sm>Z-BVq^B)!nGZC?^R6mMk)F86Y)1P&d z2SPq@#hH`CCmk*ne_2%Tr2Hd1u{FPn#_iV3(`^q5u*xWt`9^&r_lKKx-+Gen)0ptT zuOLTM)?8QxbrX5P_7ZuyuBl2X6#*0iFKUDeY}4U(1+hWmIH*AeN=Q&CYF0GaCV6PS z)U4C<`e2tMGD4Yi7a9O*2RkujajXAUpbSw21Q%V$%Z>LIND?ri@Q+MX;z!T3pNI3l zPzd8a{Ifz>3)PcaiVYK1e|z$7u`z*yv`@-V7^=FbyQuV|`@XbVx+^sh;1QA9dw|i` zN&&|Sp19A~&v5F+3wY3tui_&W!Sby~9u;Su$qAjOik+RcOwYgUsIH$@Af7H~I^=*) zL0F{=$YgRY-Bpf=1|WYuC`LAOP6Zn1e^8*+)N}k{=%jnT4Kf}OU{Nb51%ZqLvPN34 zUzMYM4zjR6BSqvS<-q#xw@=#t5C^d_<4&&jvO2HKH^G6qGN`wf!vbNN-2<^>^tioM zyje3DDn`bXbvpN4X36JGR$eofP)KU1raaevRCG^w1_*2bt?f`@{M(@MCUrP^!lw3+ zL!%a~>nwE45!RBP(Az14Aastw@*t^nB`sOknPtInNG7|s;Xbqr^E?( z?Tb2l;xDutCop-3V4JY-5Orr8p5bmMW;1ytuHk7VMY26jIoG&F=UZ5ge7gU&~cJD)t(_PQ%+js zZFg?Y272@`iarz#y{=b`z}-t-%VlQQS(u!+lXlcj!9iPm$G_HYd=6g7ZXwU z7>IU?u4DA$VaasMoG?WE=OidJ3pxP6N^h_8H`ZWG);Z~?0ab+XpcL7xm~WAH5<`cg zvYyk$Mq}LycBTid?52$E_s8#2H?@5CgWs7o92ZnC!ov`GbDsk+0`UxVrr8R9ODgn} z_BV*2EDuNPiUA0pjVC=PofyYl{$7CQwsfxYACjX2wbA!{52E%efwe(1ZqO_9PB{GEfWhWw}sJ#CI zVL1;44~D)jNf0|Gr}xaw44op-QdC(SRXYEjTitcp5nurP<`8^-MBp5p!NeoPXHf+> ziOZv#s&g|N_n6vsdD|x_YE?Mvi>Hh0>Dey@TFw~{FnqYjcpN*8iUm_ZG%rmO0_;qN zf|gVw^G*Jd@FSpo7g5P>c=S zzlkd^6tq=}FL5LhU^pF%l1_1Zz^QpnE-vovUa_zrgY312=O72U+8(B~E~#xcYTuc; zn6Y1oe{!Y36A_EHQa7vJbPOGNG4}rMxK)~2G~YfNp2VP6Ds^L2Y3Q3!L-4z7K6W3D zlHKe;_AomYk{}liCF2j*#LH&1FA#pzcOtH4E13Qr-`%R&?SoGN1Pj1j-v{nDN8&8A zzqDQ7($LowE9;_FdFA$8#g-m!3{c~vt~%`F2gK%xguF88g?U-}&;zlq44eW=g z`sx(5W2aY7#%QC(aO0`2#S?UE25*SR1MdF93bHufHxJOZp<@=NnTwIif<}Ir^9g#k z06c1)j}}LdR~f>AlR9I5o6?LTx#W65&JDFvi&5Uy71jR9iYuvUMXB6sEu8Ftn$NI@ ze#K^bR?2Fk8ghBWKc7uHmF5_RALYNDt04~T=X~m;?7og&yDqoGMIKeoDyx$P4qX#o z?6T&R7X=Nu3xiF!Frv%LyeFg_&qMYnXC*`x2A`!E10132YXX1KngPeiSfJnMIM;jm z@1}Qz{ZKv}DH(st>*_hN`^jn4FSI!%PslGGVk<@uQqqc+u6fVGAPK@85rkJBF`e}- z_VnMGd>>6Y)?k*GPX{@pD#jRy8N1_FevCPjQqz}v)P32VW?Km^(7+2yL4d_}JQg@z z>L-cYsSEfA*!aJ4)60*pW6kG=nTQmT^LEH`rnEiJX)y3I@5`bOD?k4Hu6MgYWkH+v=8voTu)}V+;ASH0 z`4fEoCyH0kXcIBAMwhIz;j}G?Hy1|dkMsQZ<;fpaFqi)9q(0(apz#MNT zyW5|qMQ?hL767npyho>pi*b0hU|>wZx%tsK-5)Ya-A0CgA+NRZXIJsBZD4eSGDkkgNY3R3^V$Dg&up%SKM{yL7z9x%d#-w1XQAr?CR zLy7E@P{OlN!t?U9T|aU}ZTp13m5u+9Mz{BYLQjs0k~xT$aeNKY!jC8Zx1GV!GpnkQ z&gDjTSCKBngr+Qk(ClEuP3(NvsmT&UItldVB`VUB+)t51`FiBV!p4K646;f4sg;eq zPGULYa;2|??XvoJl$P0pw8xpnQWW7+>`bKJAO38usWdB>J>uu9WPlw9h>)lgTK$n{ zz$1;zWm|ignH^`Z;vk_pyft59d>R?uU z5LK0}wdE%@f*^*c>t?$e>c4z@$zH9^o8J&mTnlRe7sAu=0kaDs`b|i+2&23HezN$n zU0hEbm-20jI7lE1B=)lYjcYp~;M2=M7yFaWMv6?Naoj8V>fd;u@-fr6nBwl*d; z!*I`1YX1jMqQ~osRDeqEnQ+1{s*_v4ad2m2-}z(u=Q1C9A<#s?1%DmXIU{%p{x`W+xtO zz;^`yXrTjzu{uFT1(6t|q5)QqwOIot5^rr+_5h7_TYmdWlkq?4K{5h(& ziHWMk_U(+WADsifs2Kbomgw6?tI19U&lQFqRwrE(G7mKmZJ=kbdl-uRW!${s{Ecdg zF}#YV<$@HZ)OS@DPuP{Hx(0{p@I2uyRvN01sIOC}u2!iv4!C-C&!pxr3UhQyrWV+U$<1&nLBInYFyV$~w^-kT8KtlRtH~pb+3UF8qunDYEX1 zEV7fpB*W=BL=|;ic)g(Yb&Xx)XZ_jI^40XPhlDOn59c>(ljTiDSJY~Lw5d&88odQ` zhVFEayAhzG=nm#DR02uG?lniEnLL*@-`Fn#e=$v+O~Tod2^S>;CBcS}OY{nxP2A?pC_(Azo?C7IEeQ5jN>_JEk~ReEa}X&iD^pcfPz*Op zv*qUJ&-5e<)9517Xm-ZqT@5}8vxJr6+IT@p(arSctrb(Ol7de>{E*!J{5*N%Oe zjeZfpemEUg@D@X`<5{j_$`k%Qu5-b*6o!a+J&Ynw*5oiTl_x{1u=Nfu8Jz06T3!na zp&MSg>npFWn&6I6UNNA64g(t@E+Y=(Wc`mCVj;nTbdd-MvGDsk$$Z79Jn{Gz@XYv( z0H{T5Xt!0!x%5A#o7q*c)|MT8l(FICP)s2AQlk6t;caC&b~$qT6JK-p!T%=$8b4AO z7Y!Bwz?RUuc79}MI%+cg1HDmnI-+QHMW}G>PqDEOlwu51x~t^fjsl0;5++0ugGQ8h z{SoDHnsqsZlh_tzI2Xr60HdUEF_}UH?=78Sc$PFefM=MkLHexNPIZC&b(^k=6oSq_ zz*Lpbgp_R%h=w%09#z_sxDwqRZTZuYlLu^oiOi*ily%9zjZV!uZH&)1vB_6&H9`B2 z?@anuU(B7F?iFtx`yaE&L2hUhG@y_}DmG=*0ysr9f&JxUS>^BZ&}$A2v6+#Zt)((f zgS0Zb%g|{o8||CsJ6_cBd@0=&Ho&{S4Dt$ddwuz>D*Tqffa7g?Lp!g}+QL%01|5)@ zUIUfL>v9nO0vr8!La_o+O)$2#}fe2EG5R>h~~R0M)1 zFo2mYEsJlCOWjRT2m^w`S9`HXt7o+eX5EQpDpvJ8Bu?T02@3bBlTIb7 z>g6v7&6hneo1ftR$PZT%S##soiC)u4nOKhYWFBl$9)p7ldQh=N$z%X(Mb)8~cIQOsce(wxgk}dz{UU;_ipY}W~g@u;czqNF)h?W%j{`)D_%CXg8O-ikeY1VAD3$glYg{w z-6Z;no~|A|P+S=8J`0*vq$NexYvdbUbq3%c+dhGhKJW$H@0F0}&taIUgU58Ba=Pc1 zi3+F10ji5$ozMSZ2$}d)pNj!oJg_d1w3ySBqt12IXG<;>MIoRSz|~nikfp(t3+Uet zx&VN}w??^3cChYdx}2rO z-fSf6UDv~V)fVK<%KP-CKjmgV>~A$-N}*(R1LZ-8#v)|zA0q)uuYY;b#mIbonbPp7dSDFch$2^5aB!vf-~mv3SCIoJk73ci5Do`Q7BpVQLt6k-4#~EcMO$6egdsRn=$F#e>Y%6Z^0dc~Ty; z&~ely$*h*{qL^eYN28ege}SI<=RB+5PZ72I~g2Lt=o%6-SupI$zR~!%b7c z?fdElau48UIeV)TO=(ZWQh^mC8Fe2vRI{9=R0Dp~@U^QQ(^kfElgHgKn0g5d05Dh1 zB%CGlybe}OwqJp!F_~A||D`wFVHfxK>V8zhxy-9{0WBaO+<(_3zW(p<%2>=xi z^#H?uW5!kQrvqQqteSJwnRI*;%c{kSQp=C}5xG7rOX$o$APMB9 zqW~&i4S%lUhg7_{pyocGB0?Rrw3oblN}8DGpja$4FzRT47k_V$UZllcy_BZ~PN!LG z^gNvhkDonPtF-n3oGiw_H~uQKN5Kx#g(&mD*kq<-IB^XIZ}*Ct;lrs!T<9t&oMIg) zl9YCvdN!}E%nbK3ciMi@Ej%kXNx4~DJU{7akM-x4yjjeSe=KL6|B)kJV}y3Lc>r z@O%o&T!BD5NKlHbMzyac4M?`PPWCt8i*|9gBoR4VUT=$%CHtwX!5D-f+&78SjC-p{HLGWV?v{ z`G5R5Q*S0fJMwfChvv$UbiM42rH3X11GAR!Q9t4&C}IEg4DlC`>4LLqXHIU)W4PS(~G3J z<}e&By;qQ?*X+~Hkmmf_dFkdXq^~BTm6Ew5gsXZ&s(no!E5nMQen^8G0^qkNU-e4i zAFbwx2%yAjyam=Mfl%?DUKxU&wNFH9OjpH3t+`d9aV6GZ(M&#iniX$?ms6+n$2tc4 zCtLOUAH?Rr5`@87eV5I;b5sK#fy>MX=dnrLE%ocxe>Cfa9-rR0)#U@7A3B}zwYhYk zTBAlHmdkN>&{6|KT^~w)cv&1A&WHXm5KuxGGS1Z^_;V!gGLF$#^i$5MG+@y!;>pBP zqDl2&609>YjpwKeQal)x*uCQGBrl~WTuLOoBJYCjqvA(1d!S+xc;B)nV|+uE11-?1 z!3Yczr{InvLi^#~r*!u7M%EZSf^}9{y@7*dZbiQPz%0x+=Kcil^Yhwve2JRq-cQ~s zvzFn{*v;*oEKrSJzxyLx+{*5_zB&Pyf-&B!A zo(LRw+K7-T0g%KH`_eui+beODI-GA8yW{{r&>1_%Xe`CO(yS!RqR-%Hqfx*gE(BIt zXVEG5z9>3s+G-exb`Y6lja~9&?iXsl{2;n?xc$VZ8E8_kPQoIuwlz{0b7J~vUWb*+ zh(n{+dE@6kmS{d2Lez49G}2pf^_BA3o)~mC74ns82(tA)Y=W&}PCmPOa&G1{?Fj=l zxI02sO(|_XmGtQkcDxZh-V^m^N<}3N#1W3(NFBSBm!?}dW-cPNE z2F>XQXlMhc%wc0E=0e}I&}1{KE0NjnfvaN(Sa-^)cPh-umEaUeX5%Fc$z4AMS-hJ5 z6t6ZbrAQ*0v1WPJs0KPG!GE{j-W%Cds4nIi56q37lU{ky^^_3#XThBmc;F;=nGw&| zztHI#Kyq*_3%WR1PZ&`)-1It6#~3vEnpqW7a-JEC;p{_QR#&(h1K1(XfGAOu5L#c#nKQfp;yE&vFZp;Sr_2s#A#qe;5v0UM5m&j&E9Vj%!f zKJmP1lY;T0?3nm<05cxsFMG<|>QSn!W@E3>PiElNCDP^Hj#j~^oV=NcZ%*X>l6~E| zJY(^9?T4=OO;R(1BXIk#1ApeeQLJvl%})3^%^H9Qaq9!4-`j}%`;2MxllS?A=10k2 z-tN<#UI-gsVFasruJNaf%T5}k>_mch90lG7a1KZilAVP|?0vwx;72GMdAE#P=c*=^ zTQy_3plE5c;JO1Lb}*zze>B`6d8ruqft_#|(!Z3*W;8V%=kod1i-eK7+FMpI zSNjid!)nC}zC$<`UK7LKU|Ar(dRR@1I&IwI2f^>|0l1G3z@N8DgbGG%K^TR0+mfe_VG3sjc<_S6lS~CHtccB;XdiJ|@~9)n$Ld zOAY=i8@)lSC*bIUfvb@RIU$*Oz4&~LNH{0cSX0)J-tV#5aY&`O4^yEKlQ9Dk`}MA8 zqhRVe>|AR5nVLfbRh8&@hB)xgT? zbgMdl)tkeo^W#^_?3*E^k7JhGXXQ-!I>!lGd9f~m$|@urUpdX^oGL3-YNbu>ZidtS zZ(;Ql0)Xt73p-OlyPXe6aeeV!OupzQ!F84}?DSz&&gW~n3<3~_quUA7PosHCxyqVOA{UJx$6PE{Ul3?--q zyn^c&&f!Ua!PKh2!V3~)Uiz#&N;Ozp zt!ZQ0KLKfhoQJc=Fwqq6lKvG1E2oo`Pv=8L3A}TFX*M>u1Us z(E3WdzVaPDEW7Mm=mCKK&K@FNrkLlVZmkN=hDft<>qu(z@7@K^7I5ZENJPT7e zNFIhDtLX#&f*}6S?-CubaD~HhQQq${S4X6%1oUzq`yBZCb>+K_?ay8j`iXs3*aPy!C)%*!YvH?`3k6g)5t+6svwcgi zYqw%!q|$dkZ<%UQaLgn* zAx^Yt76uz;{LF#`$kT=+k=7J*Y~jHxNBq`ItHtCd-k~lp-JT4isb1W#N+?+8ZcXqk ziUc7FexQJhAcMbW6fe7C6ReHDH3yzOa&fV%d7ppAc73+3J!dFhFb&LrDp`gl_&4~` z-Opc5p1f*m1}c3AV>{oo?GOk#CFl&AOQhWnRKq#U|0S78gB*=|v7ZJbupuI6`=Z8<4=xU@F${-e4|te>ct zTimSZbvMj@=nRwVL;*6=XP`JgvrW}kgHwiH1>t>4jpJVghh?CipG@KO#tG|k3cHz8 zUOesg?|dua_bIv59Bw5)tC6%!YgACqlE9B}zg9euN(c(z`mg{cx;flp+DoL!45%ob zAGuktoh$AG|0F0H@{`5!+M{dP1?go;e+4(_~w6prpEe{os96>oX z8Riu%aCdL~)1v;b{N3(b&8(}I%Fe7KLhQrqk5PeIhvV2287`|HQ7I$wwV>2As(@#g zcr_hYD!tQLmJJ^r?S-Y9;QLvXVb|S*3PV|MSdxJy*YA1iTpD|dlqaX?HCReL-f-jc zZ%YQ0w?7X`&PPgkXYel9z}(X$>Zo1fZ~PD1c_5k!%@q_xii zv6a>d?o9v_z^+C1K3;UtU=yqQt7^UJy5bO7qePU%ujpWcXwX(5`VykC;k!m$W)1cH zPS1rHa3Oc{4m;maALhUmHyD9ZV$A3x6IQ`HT%pDUJol@d=$OrJQ6vVw7qhaqsRTjQ z*^>mLfh|rlwLlV}< zS2TcMPa(NIK@h;tmEuRrk^aiyT9uN{EnUZJ@2kxFtc?#TMo?w>x-XD&C&9ZjXS#$t zNz)>m_%=(ByFWMeNX-T(3AWGJ-)8<0MFO9u-GE;I^8Qi@Ix1zr`{Fe7IEWd(M;n%3 zlBV5?oCP{S7JN!g|>)a3OmUBpG`U^?DgilQ6v~fC)Dq!NJC_ z^hmQ%K_+>Q{HW4-?0v6+Uy08cF^c=S`z!{hRSlgNdiYxt%cn}c9zii2dZ=}<;jjjhyBXG*aJX2 zi;oBM_mC(dP2~U0V-##j^`4Puk+~x5jpna3E{i+ER8s7h&W{fUv85r~gE&Sz3GZFW z-=dBoq7YOprK>wBT^!ruN-Zm(E);n8dU_>5;E2`5ejb(h&7j1M(L9lWfD8fs#F~*k z_NCo=CTZ53BRGJ`jLZ4uO*F67PKwe%sg%2dAxU#l>pKluy9+!AlOWF#WdF5q(N_*c zgCa!@X(4kV$U`yNQ*!R}zp^2D>rktK&Dp7Xj}zw=&s3Q{efwl$Cfx=4sSRC1 z-Ue?V0D!!2S7!YtesJ{$!KTBFf;FfdX)UQtQJv)Ue+5mHK~Z2 z?PV!rG78c>$I-O0Jxc4E+|K!<#n>_#LaCpL#8+!OjSdQ;<|pT?7}Ah+>N?mE=zU0 zH|+78!0N77C+V;rUG=>|Gm*q%VVL_UEq-J31clZaw4~bVje0cf*viNt06;un>1Q&| z_i);pjS49V?W;e$F)nazS{3fTY}1+#U@()-9m9PkXucKoyxfOo9roEHvzh!X|oP>&2(|{|>duS>)E~ zJfdpIQxNT`4U8ZHXB$qr2ExQoZRav2YbworD;5oPg)eG;G6C!BP$QxtK@IBO`6 zfd9to{;Qvj<8G95Icq)#E9kp4`i{in<*SNLf*dOq71b~qa2~-Y=O@?jJR)*5=mQDg ztoXX4R1jp-VKfBb$GLCRsZUp_t)uwIRP^`OPQWbdyG5k+4~-ko{Yd)BlTNP>N7+Tm zS_uUPFiC~HXN&03Jd6p3FCIf&z9OKNI5YgrjPZB#4PG``$R4SWN~P5VX{6%g^~{2EG@>7Ygt*DuoYX zvm}4s2T>h2{PfAk8fe`}jSw2`6QYz|w0+h#p8Y^oua311P2pPcmFwo`1?zn+O1IcS zF$A)C>(6~x`!9~$3Qk=gp2&Tcd_3x}BALOzR}|^oBb-Os-rFnz32G$RK4c)QAKMLL9A6HPbTOCo3A|ap=%(-% zKtjFEkVDxA*K5>`AS{&4CdETo=ffRayz+hz!-;Dh?Z)=mjbR%?3a+2OA}AjQ_@&%1^UU=N42nv zDmUns6p%3arJ1(MCL~gPBAt`HHqm&H6@2Ct;`|ML^m{hP<`2t&#(!ms7WcI$<&~Bw z%o1z$-p0~t(3LInheKy2Ld}jICoKXEPXrQ;uUD^I;}g@=Q8CRcecwP?Xa75eY*#VZ z_imFn7X@4uhR1Uvt)HQ|c;|O7PEw=-0$|E$b7;R#UtZLGzZ=rh(3j8=^G!>?mKG%y zWpU`XHVhGrEC1M*Nq>Q0o9(8_W>4YpdA#5sN?xUVy@qeDI?5d0OwDA^ONe(p*~|4d zuKyP+$3A}Y-Ht=LGH2qUA0uv?j2XuJr)TR31u;}XW6l$P@FzPUUD$~TXkaWwH% z;t0zIrI(SJ`|?Ke-orSS3hVD)gl9V!~??~Ax4l85%F z8LeUyA-Z4}_qdfU3VO1{&C`^GiJG5*{yw**J{ez{a&753tRW~aq;$1yu>IqBatqG) zoT*sEUvl5lEUJ#W_aAf>V4nRyR6o|@x*X_Nu@$2*TOkjjzBKRRN6zL#jY!^ zuDLsUkAn1d(Cfz6=dS{5Q$QOYc7EoA=%P?6(syO2cc)}}*g6yn2$}5rkU(K;Bc|UR zQ9q+6ZVAejH=u9mrD&(E9z4q0c$_9Fagg-nGC5anyVu}$_|Ub9>Zos#tSbYU1f;jp z;}nd8~RoCUG0qOHhEz&)4AJGG(>KdT|@{T$3^Ol;YI~6m^`aKq6 zuE(!&uRa;DvUB8?-WwtfnpUh!mswxUr$r`dMwAThr?QK-JcRw|{g`>?MK{MtoZHNuGgmEQ z^rB~5{6Z`{ZqAL3Qs`;u^3X02Ag>}NKV4Q6cy!Jltc3~3pGoQE$e}l8f4ooUebH26 z`S-TQzUyXo(^k(K85Os>=WSbRdQ%~tsm}fT??Gj;5#$Z*f^h39B`sR14!5kn)4o~6 z>tdYe7dVD)j+u!5?7Xodg>TzzgzQSw#4*_`o`c3v;!+U*31-AAjjzoGNA+Kjc1btH z5E|WsY{J}Sd%U=EKcg@<>`{F6RQ9=I=u_rD$mjdzUfOi=X4KsgZOv!rAc9P@n3gEW zkJ0x@)86=?U8Pvl*_$0OMobF5J3+bd>-BbhMe9ko;!ozai9|=uX)G&AfQW;Q4}Sk= z4CgP^B-Kznr|C^K>i{#v^mW`?$Uqa3scerbQ4&|nKNbw;$#PA;+$Zkh<`Iq zTpxLmLnXYdhqfYXR!_QRS^o96a(Jh=d>KSY(*Oi&ElO~`h90ARABT^rdMygk!MPfXydZonqHvcIOb?tjxjP+S3&2Fue(k?x=X4_vz zIj`zXPf=61ffjQPeRLzHNBz$uDt<8%Pt7;Pl@?u%kHSMT7Dc*WXfg08J>M?eB}#69 zQu28;UNJ7bRSiWDBqA29fI4q&H7J_)iuKkud-XyFsx#srS1idv1Z*JH9$j?`MCdaZ z;JIh|1!ID9rvpi?PJJjmb(Y9tQI~Vlc!XeMyG&LNAyVz<(bbTkcUB!zf{ZL1^SY5^ z*Xddek&Ep1?oR+uk7R19V=pslq=IflMig#Op0}=SKv6-t2B=oqJ~q6^uDG0|?nHG% zwA{CIc-y?UAeib5CF=_9>_6#u%8F0^=PQ5!_fMmo8!b8V60IAEHQPC>x9hSSfD7^d z8iTzCtA;XYxSh%F4-(X7s7x;J=h{gZdNa>wr8M|bOLB^Uwxn7q7XJ5K4J3e7_ zBZ7xTOV(%|1yjTVQy<1WeDq;(Stt|eF>|u5BreCgkGzE6)&^3laG;X_a90D zcZ(|nW0~)KP+n@sW2BpFMlYkZO=y$+f8Z(+a+tgB=}~j2A+uK2y#z(C!PPc^&*Zbx zx@gAB3&L@$bKyg4&D0adg^(_TW#d~<92Ceix;$&x*zfT`*3c?9IMn1c_qXmtPpf|R zJY~VXpH8AWs=we38W`RTga8o6ZiDO`fRHxBgC7#xth@5nSoc%mQ5Q1qD<^K6)jh`Z z5x*vn)TdGJslIe=?2Vnw?_D;?`Cx~9Rh?>^_HBqu78PE)5bftBc4o~psl=`RX!L3b z5Yb0WX)mu=YKB8Fr4dmC@bHYoVT$>?AtNR(wfCN0^RN7pwflYx2V?!~W_3q?zd*B+#hT7c9wN)gHBDQCFSF7!q zG>(wJ`;Bq3xbd*XLgRV1pm%XhMfn#ld~Vo|_xUBfppAAqiqj`XdVZR3RLo;mINW8> z122HF@QAVSF2-=kVch@04i+fdy|o%&?Sd*(V0-pgpBI43$AyyKlJtKh@NfQZQL(0X zrI->&kjJFiUL6uG4DKPI&QM1fXEWso6Fy_j!dbLi7*evty)>CRDd_O`?z?A-ib``n zrx(PSAo6?vDH{P$VXj&%=hNx=|8aUInR-;D9~RGm;_G@35VG;;V|`fky5&_f(j0rv zw4jo_-0v0eyGr#Pmmy-9S`LxoTENj zpw3ku0_N$-I5HfhmWdg1rPTF&s59$-{GVUW=W;5ELImC7r{sATwaS5BhwCx3>MO9H zX={{{s@&{GmY4yDYsdg3lA9fcnVK(3d&>Waxv@qLCo1wxcKCDzi;ie z`&l#GT4)Ck@FO0pc2Vf~VFc1Ub9w8@=2s}<(~;NI8)GJ@Nv(DuhdBz`ZH>_Uhn^PH zPzB)0>L-pr>0 zC{vNsr^rzBJGf((mzRSsr02E@m}YX2>2N$K`|H#0MZtmu((2O(-s#-k9r%47GK zioP5*bv176a4$@sVU=7if~6Db>CG8yxgWwv2Jc860B*P9kZLN z_n#$VMUJDwVd7+pl$6jR!STNCwb_A zwY#fH%4g-qMPd-7e!K50-5`%xWK4{>Qk;!IW_<2^m#Vv9-p_wEN z8)d%Bnbx)gKXi7AFd`KyS3jF;p{Fp#WNy_Jgv9L(hs|1Lr0i*SMZz&uTa#00!ubER z0O4VgZ5j6TM{_kL(Z^r_U>_(`BMt*K>nG2$^EY!sX<3%<8Bg7T+^&&!*ZM?pn24a7 z7#7;@wJkkZAgX-Kvdx6rsL#=36Z^csOD8=8@B;$?fY-}{Y>v#-teBYTeoZnAhvhL@ zE2_!)6lloL`r|N%sfq1nk#IZ)9G@Tj3oK@SRaqft66i7c-c2^=RHlV&nL(i34pf-v zm@A+*GB2<`{;omuB_j4s1#`I*iQF#rmlgnfbPKV6LutrF)QxtqBN$7NJCGtniiyM zOoJn9h%Z9M&ag#P+e2K&ctZxBxA$}Hd)d1_F?Egb!7n{C13dMmUk3lng!bO9$8Dct zqs)Jz2Cm(uv7nByVk8uMdFXsobdCX&h{qeKX!Yup`(R43Ek6wofTWs%jYq;ZbWqUP zSkU~4zn^H3#1|1XXX2uZzZ$i&iXQ|yeXZ&>l?+YOh1F(s>woonRF_zl-LvMe_)Y5+ ztR`nhjb0O64#9OXViDO!A;#r{1wn`_j~^?hhK5} zzv&t2I;D3mc5!P=^hsVv5yd<(y{HMiiAfL$IOVa{HklFe4IaDf1nF7OP^VQVs3;1< zZfK*gP`DlJ7{TZ$zqw=n?*>P-dJ1FqwLmuI0>DP}Q&=h2du8xWe*;aU%p`aj z^56VcLBUDTCsSiA(t^9)@umaDMvB?xFd!pXuvs-1K<2dN`$M;C^Xa;@){$g>X5zGuUNxI|Dver<&PvCI~$4zz~3>5aMx{eD9NL5Ctv-d znom-%A_%T5yXZ-}epz}6uv?Tv)oE|eQ1QJnV)V}EKy8ylFy!!Yd7JhA{Ny|uzdkAT z_53Rw_v(AUrDt2nit6?!%K2N3Y_jvQrlLoL=g1-t6PjsadOXKd|A(8W<4x^zo7?00 zt5DS=Re6+_k{Ko9mDUsEB{tA~#Q(wzIc&RXlXilK2!etoRqodP&lg`joA)*>X^s(i zP~L)?bin7BNV^8>GdBGC8-h%Y%Q5N8lcS^`%G9HkLpPIp$<);;{8|B$ObG71qP9~e zzir@<##=(A%pzu4|uIAdj!D z)>PNKj*9%MAlEObH}A%m%QlVmKlRIWJ!$>p2&ZX3?3yemTRd2S{sRB`y6R&KB)4CL zS0VyZbWq-X1Z_NdM?mENKZ%0Sbj)GG@X~bd81^T$_QxxI*jKqPu8gHngS|bCvvg@` zZHbjI>oVg)%GB_O{vBmQsj&O!^SC8>>#Izt~EW7jT;@_KIs?Eg;!5M3Q+3 z@IZGvV?m#}T(%+>uQ+ka(W@B&11>k=mXNCd^_d6c4|9Yu;qUrNrZ}&YRg)6~kzdna zpNgBtWnt79k)6v2;&;E6xfp;TEVSP};Qr47Ki#GC-Z^ZRO`f7*)37vMGj+g>%ONgl zUs&!ibMhNATeMh=COZ%~^Z;AMtjL^#b*24eR@r7Z_nuXan+Uj)<3S}tho=p7@ zKZT_$3txbwXdS>H7doh;V{}!WHqn}jfpIdrG97ixS`h0Y77~#+w*4>r;Ci>tX5O&zU8G1fBwZPQ9UIps1mVGjc5=?hfmz9qQE@?RR`Ny6*VPBzfceUN@L!7I_M= z2d69uQg55sLZU!oMGyr514#Y`z$<_W8Uq8`kVWF7nIVjulD5GK1fYvO%~(CRyM3Ed zV#r)25)s>G_3WNHPjbjs4`29tm-F}7b@QU6&tD0yLyyi`Y4v~E95#iY&DCV z?9WZ~E6SH^G-{AfJ3{11j2na5*~PM1Bs8@T`L;qX8$|MEuRwJacMz(nT3STg=s!hc z4TAK72nA;f2qWKZ&Hb);o#|}T_kV=w;^J5~cFEtLI(djS<1a?hStrwZyYK2z`(CkF z;;1HMcJ3>M+V+qoPD@-jEa2KV$4wMH-Q62AM_=w0eb`g{d(tsJ9A}YWJ%v6t!{+Nw zB;*|GJoPDSJ0Gv~8@Kot8Z_;@*$*}-r>jF=wbn*oLDXo1P3-U-+9XIyf;D4UPq(>k z74GtYT{oCT36EF5}(kRQ%eo zWoKqu?MdtUF}($gBsdS}dh~SHEJ<#+KR8&J?oWt4%u;3afrvrEzHTL`Hv4WEYd0w- z2kz}CrShc(PI}j(h^eB$cypq*4D5Z))1n-X=j6(U5>BymV=H6&RlKj5Ed9DDZ=NLT z&pSAL#6IQy@PBCf=HSS?=HH2J+qP|OoNR1uY}>ZYjcs$2jcq5BO*S?*#+~Q=)vcQU zr|NwB^y%&o`bRK3)%2srsagaD%~KXf5idQ?=-SqM|LC<8SFR(=H6@38%mh=h*ZFaG zadJmQ6Z&#rR5ZT_lfx>I zwWzUB8}UOk3$gW_6O3j*)d!-gwxk9XMK0Vg3B$tj~I z99)KUnhzjqxGyh=q0vUlWa$%Gk$36aDN=n@Us+5Tw8NB)q zpw-_uzFO@58E%TC;cYWc>`(i3-&WP21vKWdKG1V}F}I!4XJu$gg8KANdv!zBwQB4B zebTrv5nk^-hz;|n=>wx8;RxzQ`n{i~x6_^^?Pg5pN*>2zXBe4}nw0cJ6P5VCIL_kE z@xKoPJDIURPr!3{Qv^Oy-!6WoS4}FyH{P)A13Y^J>V|r_wFg`BT4!!E?4MtYPKH=6 z!C6$lW&PG;9Yf{U=Y29ysIy5e-&F(0lt3-Uzq|C45{E?qIPu9d`-Y(vcwX@G^DR)f zv>-StS=4q#-r1bafxDa41xVvq)yJ<(e4N9?A4W6-)@q>P{kh;Fcn%{WN;N7 zt5I#K^2Y(U??pp#8D1eq>B*n)JnipUX@w@s1yyP^mtXC-z&5)8k*;(D9_S-W{g->Y zA$f|e!s>?1(H{nEf!>7(fh8Q&5{>D?P9Sl1ua)#m+HK-&MQSWbDknaZkto5uh|PLY z!9Iaq;`b^vzYi*TOFv+0)l#RUA@-7% zWOCnH{0YjF^EsH&~E^*WxuVWv^#yalLsF zbk?NWTUfQ_z%cw>tC@;#?^kPm(Xbe3_wwB`-N*R=q2B56h1G+jl#ac# zbiE;Ca5kbC$ydJ#m_6ofU2Mlrz&4i2rq*hNOTVwNeYBLT@foL2-_J7m>gw9W9v}R< zHs;mpL1}2vXK)gA5-n_Zn3KVKGHWEvbznEKwswa>nD+AS@#^EMqM&eNa3Fc(sT$ly z4sQ`p@!1z&v^@~8mxF|aBnm?fgM`Fx@#{8bBJcH%1MW&4U{SpLfIM%P*#x1Mf$iV> zMd*}z5GN+HDl1Pv%0U>QXwKN7FYK`BS-rY21 zxX3c&r(|v zH|~Zu<=VYFCeLB$?D{MfB%j+Sk{c3iZSUM`hZtLA2orHEAhl`@{9#?1twfSLo`I500OaBo%PG%xTxVk~mJ$Bsf#B z#n>>`TNXdulg7fa@($&p>9(kcU)M6p2(%2V^pb9d8Yg33qx=PCD#e(hYa?Y9^2>85 zXzx(mvp9p9v{IIowE45afdQeqBw{r+@wuD9H}3-9tBMszRM8>UGHF63!i3vH7)E#1 zT~R&1BT<5bgXfCATVSAS%ZfOTW?pZR(l_9>At%!#f+J@uH2cns?*6Qn$*eOvRME#Y z3NU?dqkv@{cgjSUDgu6KBI&RH{HOVi1-hl<_S>d~zBpAvZMm0-Bg+ZcDrihNQ~ner zPN#tXzUd^xy3HKwxKSn3hV47bsc~_*CE26t_Owd01MgcY1}U{d!1L0s78?JHmj5Kv zG3NJMMjmf&Er-@|w9P!w$2H)6n9Kpt37YhDK6>V0-3N~)So@C8<6R9((?<2*IhRRz z)m+hr04}>Eipf~kWlAg%AtzqJUhgd>~-QbFO_qv-o)yi2k(?FW;pK=p?9bkOhiXbhLudzi=>;L+K4c9wu zB*k%3dflJtv4gI^Y03^*hBLcIbWUs)6`3_b$noFT|CTx=|#! z|Dwh@~| zju`8AvqlTXxmD-qT4SAKcY9^_DGMV6N&{BDUo)+(Xv998(;cA3oa97sALS$W=T37X$%toEG5kKdcEL$fhtTr&aH~LZe7{0LQhd` zBr=ljx3M_IlRP>!RMd6I|1zW-UXOAVm&TE%nMTKpHDAoIimwJQA=(696UMf0ZFhD} zMvaOVm>^}y;p}-Oq`@=2r)Cbe#-6S>La!T9uK`DWLfUE{j{<+EG3;hn-q+SZ%0QyT z9lAqFE~bU;d&waJa1RxPqx|wbNwUq^MA}ro;3pII4+`cKlw}s`Cjc~qg`lC!AMZB= zobpXJ-psz$n)98`1-_&#T-gT<-Q}zlF8h77)#T1_2dS_>UiTnVuXTDoqJuU+sdag` z^6d*B+b@hgz0hZ?zUgA4yqwi&qtHylK{6I-J*ajSHWDs1XA4|2fzhgDYJo%k^!A2C zL5_9)Ve|%!ShsT}f+9iA-LomqG#*0uEl2*E{_f29II0sfxc#aAl^S?vLzbH30HY{iJs%mThx^$tTp_z>(l9tZ#4G}2sUqUL(96y}59H&$5y)k6Ws zqlnkdjz6^``TF@0X_vq0^hHQT_T^ix!pI7{Q$ARJg8c-vv5U@bmBixAe7$LA`BxjL zv%&`@gn_3RN>pL8b!>wNR=^JE(w^i+q>A+%XP+G+0i4of>-{?B+z-L^c9f1|cIbYN zF6dxjAly0R@|3Ksm4Ci^ips@BYN@Rnv5-7PGKi!GcJ=pVF}mDIXD}oE`UxUzfz!ZD zwkui#-vv*O1~?%ecU9`O3dMe#ZgxbY7z#cu6r+E=vX^M>+#gj`DsWz=D&X~__H0qv<~?P5i!25GmuVVtW_wBiq89!LXrieQKC;wXLF#C2yfpN zWoE894t!*!rG>dB&E)a~-j3ju&m!Zp?p+yNU}jbjcq4fbP324ycg^uL<{k7Xww%hC zY$y`5X8FM}|0zB;bMBJ->|&CinvV$!Qh@I7pGTOu*kx{y{xDnkW86TjqSBgrdMWOH zL6I!z)_P=G{pZCi_B>%dX{iH0u2Rel(-57p1deCA#jyhy5Y+q-pw2eRV>rCSK>v>r zdWRdOU1rkwVL9M_2P)JiM(Fd|P|lLCaz;ZHKQAA-dFda_fO0$$(Z^uiC?0g=tM%i> zHv#8ppSOsjetf8;`HkPG7#Kpr(Q-}3)?}Ggh>RXhATy*^Y_Oz|(HpDE$apBK)y9`? zDw4MUAQ|GsPzT*W|E1Ziyc#B>W@2iCcp@&RPsC|DI0hTG$tloaGf4w9Zbw8A&&FMf zpyDxH&j<=C5|Dru4{1Mf>yE~tG3@ul1MFQ~%-Br@stRzov*1fZ?iv<8cp<0;vu$z996UkOp z!+SiGgAYdp6fMw3t4RmZQQ#wi&lozSJ(S>(KVB+WFFb`*WIzDaG4V@A#2_Gn7bMpM z#u**4$&M+~&)`>k?((sBQ#pm(;L zAdHmKYU*mIhhSx|=eobg^;iiu1OUinF(T%3DU~bB;j-1Vu%Iq*#)tZI-Z1bvO5oTk zGW7@5S~qBD)usvkQXBd4Lf9lQi}QJG&bz{qi;%CXfx(oNo?T(>-nVKjK7xiOM}LdU zwc}fx3m%+CyI$@2pKXqiCmSi>Rn#)ZOQ}GT(G;#2MS=&PpHT7SLd8-wyH}GaQjVf! z;YT^&+o6Jy3)CJ9&2hwNr(}=wwikL%5_%vhlpD}ALbs`(`uyoAOt+4C5rV-1q(S7U z`Xgvw+{@V=arC{e-e0o0%bH!zk3JX5dU5;^c>Ic8q4EpQbia&??ub5$Uq^B>LYQt5 z?j8~D+D+M&o^y~~wguWWq&+1rj-V#*r?+$=`{qIOK&!K>a6EuMF^UWWxxI)F=P_9IUG+cX&UqQ3k zvHo}%Gej6W?;`L3FC5_cz$%_<=$C5##Mft<*O9h9gA_PJ)b$j8Croye`eIVz7zoj^i{DaF+WL(C3n+%*SVO9dJ6K@gbJg-Y-g*iQWZ9)0cTDWDKy0HSso0>ss zV@$L=eZ)flKV8P{FWiWq$4WuS2;%ul*L|KHs$A<)nXT;R6$!`IV7ncUJD?kHa;o+O- z6bhj&ddE3|zln}2jR;K4U2iIamI=Fxan1bwu9jQ0Z&^NqLB4TA-sj;6-0(af%=ER3 z#ztmLSmFi}WTO(}C}`L3vc6U*JyRg&Y>;#lZ>4fcyFVf6S0oCxfq-!`e%hjTAH)r1 zvx(ESON5L>9~MqT#x6@&zP%wxLepE?hGpKSsdx#ev)0T;a~k+z3Uh6WHbl2HP4HJK z>vb7(PQ9wl+UVk>%}HtUw(m9@$E>BE(ukk?re-C)At@LyIN2hiZ-a-L zoOv4go(gmlEMbvJMOYvJJpK!p-_0slO`n;EkM9K(7Bk!yw2X{)?=pqL$}0iY_Hg$m zlzo&6A3KumSa{idM(4kLJnq@*f7k$i-4xNw^VtxIR|rzoa4N)9bJcKHQFtIBd}Jk2$>@g=eUXj24Ymx?cEeZLPrqO!!M?}e#-c8n zfyr5g3!myLicNo0%MyjZ7J-s~?f1?SubIB=f|_<8Jl~-o^j?0(AIpK>JvvbJP=w{} z?F|5EX=zznQe>ltLL>19e)^f1ki`@yZEU}eLW)~jTH;2m)#+s>C#xD55aHtDVqdDrxo&GPfhE4+ z&_(B`p74OngV7j*Whevuc$64QDzO(77a|FffOAx~lNva9$Q2?PES#>YrY1Cim1-S7 zks*EZ_0^{&rYT!mta8QXujZl$8Md~_tEY?kF9tO%#wzcF#_+@5$F=N1H&)upX{%jtXuZ>VoM*p%cS3S5B$N{ zXA9uhCxAqicsipcxbF2z|DpFIaE@l#d?OMWx&4$khP93)5*-u3Y`k7MuI|}@+yw&$ zK*d?}y&C6n(7Y+q{x{QMQud^m@nhy}C6Uch$=IkcL4naioe>vHPhVX}OFx*L7P!S! zq|8z>+uR!O`+f1#CNQr|jpkw}Bcd4e#(Mmqe*FE9P!!lve*z3CQX<8XN(bR6*tCayd^k;Ro60MsgssQ#oArZ24 zB+r*J1?DOl?7FwO=P`+;`cf$vF(BzxzzG&RfLHB!Byh6N1OV`~B>L1$uZ&1>)@LoL z4EPN*u2u!dAQ{nZr*+T0_Gz*lKU|4!O-G3A(c=UN>dtFh$)1X7o!t(@MXe zbs<0W2aEjyi&yU7UHaW^t>p^&nJh+?;Lu04VlmAg0`sWKNjvS%JREU!9&LR;zoKP) zA^oBwg(kqw?ryJU`CIO~=JUzqwRc3!d9I8aZ>Tn7 zhPuY7EG7Es>6bsviGy1#iDSrBs9YI1VBTs}Eg~n8p{dv(UntDM!NGE_;1W0xcz;VJ zpAknQ(%;$Xwb5)oC-jup;W<~YY@l8v;)P7lP-=UKi9SPm^BqNbz9LLFsrN^OhVOg~ zfi$+qVr0llVYMb><}0tr;Q(Gq@wnxqUIrrdw8!fog^^me9jd~ah*AqOzzAwLG+Rq& z{a`za^moWKZ}3d>U98|wD!A-rrsd}_F?Er|&Av$5e<)t%Kgfoc6S6hGOndD=jrGXQ zjC%%%eV$JHOoQFo5}rQ0(7a8*<};e_1!>)`sQhdrjGS1$#K`s~E=D5)u#?l-xkC^| z0!}rqg>n^FzS2~)w=-#Uxz078|DFDuU*TD=Wv7cJS=WNN#`6*A9+=#Z**UfJf{P=Ru>)orXE2hNA zu&|5uCbR8MXZGxiHKRa-cDw9sF_k5(iNV0n--dlY*@d!WY`BQf5IUsB@Q`)bG)7lA zC13J^*@#u7PdHFUhF(_qkxj>-l0oAfNLHQtDvvHwd$>#2o+JMgh?53>CA_ zO*w!^xkep~Mp)2}lw%&EMEV=gAYRbliDLNy9nH?WRqxNQT`%|&n?rgsW)7jPjg1VY zXp`B!Ow=Y?oSqJt>SAGRj)Pa>uD2DKyN@w0jd0Gs6oq24kliz93R#Q;{wgPj7>;kz z02`u|f7(A+i#gf-J|n6tQ5P$Xv2oy#pd8~|oQ!o&6*!drjRRF8(75PP&TNHehcGh- zL^$7{cOSi0e(%C35c8X{XDi5MC#96DkG=Qj+RS$} zp|KNzJY$GZch_R9J7jnR`%P!qGc@fVE{F!eB!FK1{u*=3Kqcyl5sL_S&2Pk|KzSeg zUPWqa__=0r1p<#-Gs|N-kNgO%Bx8NxmpbuW_i^ek#Ig~Mhx9_^)OPyCb9$Ua-oQ%M zbL`#=3QteZM8iH<6f&{n|C%VxMr}qw(2yjnN{iXNx`H(asKYN;iYF3S1won3&FlhO z&78RoBU&(F*3{LZtJ{ADI^=piB_eYU@&$u$eMu)=ry13yp^ei#c(dp~K4@a<3+{jX zy;c>A@;U@BFVsUx3MWxIj2#}TUGh^n*5>eGqv+9I0Ulc~g&{)Md;TI$cNcz(;=1-% z%G2uMc=TTMrDAW3slK-GA*oXLF~)u@Ne;%n+?N>D68gT z3k*=^XpMia`^zuDFr0>Msx0;sh<~U5-m^6Rw;YA)_HaQ8jSLGW0eWW+G*$or5}^vp z(3;2^lnD2Ja0mf;7)dQ(ERl^I?;MDJ#(kG z4!U*q<=K&&gi0>|`oXci%`}U5bj!%2fUX_BvJWH@XXc z<_H&3@QP@+e+R{;PCM5!<{}uE;NV_AQ!uz3;A-rmq-krg+a0e_yMyx;uUNdQHfwi7>6 zShD}xj<_|!#$S}Y-EP@_=`R7heq$ma{fJrY=@^?2dqz$5JdkTLIMjz@_VkfSTGC;L zcTJE3>Gs1vxE#=Y`u?0;C=$NIUlXU2AB*foWTfKx{$eDvTA?CcFJ0H5m0@B;Qbbe&#l z(?*6W1YZx)GIUkfG;L-85~EL~{!)3==@@UQHRR6^e=9)H_IHg(k)v|5=|4oBl-_($ zYY7vPdSNeL?eiJ1rBy$Gywe2%vRxKjn5+3|fvF&64}f(q-T8R@FWE6lYO{`g_%vdgh3qKzpuj24|Vd>IkZnFH(B(pJ^ zklSe9OC-t*_gLacMVP9`yL*nFP8fid-^Vn8c9?!Wy>2&kRp|=E9z9N1fq=FLgGRH5 zJqt;%NR^4BV%7Awd#g$wA8aUAFSIei6|($)dxL?(pX9P`3V95Vo47V4+|wS9fIM-R%XB`X#x&HVLz{zyF*q) zqh7Ctm6dM>!_q)wD=X#AAjWzQ!Y*oTSu|>h$%&y=g2nIWp#7Wt%tEQ2>3z?PNI}%$ zqRy&uzN&AJS>@r+SHSdN#tz8UF0;|+i%Rk*&2S&@bjPgmq@3$LFp|G@;St5=2Fm%H zf0vSmRlcHFY}O=={t~5L(WtLu!(o_3O6$HS0t3Lz8VmXYf&yntSSpNxo->JcE5-;9 z;zyI|)qOzxZrQJi4A7hzFsSmpys&~HgZ25r(!-ial{(p#5c6wK7$btpmsiIhCwSwb zOWF!O&gvI&{PF}++Of&jI^JfK$(~^~9t2bLg$Vsbgy-~&-P9iX!4}wVO3ql#nw5uR z#e&o2%AFVC?OEGMq5ly@wUw)!MDcdstJ3~SXM)m`j<_}p(`F;r>z_KBNEfi@CnwEo z)QU0^A1^K`b-1%?*2sNL(+hUc)IGXjkBIa{($v&+dwUxI5czme%T+s`D`a6|fdMGw za8A6F%F4Lf3Cj_JM5;5Kw1Xw zBe*u^vqn+1v2E?0eGA7OJ%4TOmO9U4HefnmSK1wF$T2OWzcQaTe!taONSo z#%C5;MI0{e(Rsnw#DN2L@n>RvWnqmeMlwhvJXTH13?R&n3QYh>r~Jx4es5lA4P!AGTU|5wv=ic6V$Yyic?`hS%1w6Swlxxtn7AvKIqE&ESu=QFE|bGT25)gnx0g9SN| z$F;UBbF-VZz5Nn3GTflUnVgN*1SsLSg67L&492*Iolazcy}iNE3MHXa0|x9^97b&r zs~ipvkHbP?N*^mp1aWhaihs>Oc%eRtZXJ<00+SOV;oh% zWP^y;RRd2XOFx(Dm(g-58g67Uhc^>q?@$v1Hg4HX%3f{>IUq+$q%1*=>wCwPeXM4mv3`M5#<#9vu#xF(F;Wc#V%r)YGSi3Ft2izihREr!j1 z`p(pvN{}{q$l8IPTkh2?rU8UqUp zOP${R>1xO6ytQSiLizaU2prIEx3RxBj~UqM`*al-7dJUMDVs_?GBze7C549=k(ZaZ zysVBXMMOyGalN|()i5Le0PS`M!p|E=cZSc)Y>^4Q__VnFY8swKbj(@ST6MoGKf&UKRL_xf!GY6K@pHa!p70aD76gA!ROW#@_~SSBHqMv zsjLYiiyH8GIWV8{54Zmf%4?ts>V0L(q>`fmhCd(w>oih_N1Er|b+@iGs7jN&v6Cy9 z%y2GI39i{W*1#t{8D|T+gWrw-e5-irv}BQOvBvDGJVvtR*)O3q5Yj77Ro@`pc=l33 z)L6u4&nM~E?ELA&z}KfQD6~QIY~g_S=i7rZfpmMpli_|Bf5LVkCf$BPXf zhwX35%8m-cc0WL^N{{FDIbIqQEc1B{oYmT|9zcJU#h+yi%_z#Gg4JmLkYNUfYcu*x_O8u$HDsi(juZT~W8SLCw1wYR zd}`!R*hKTKkyrd_4)j5t2Ns&Nv)cLhwenV|RH!%QJqMeB9mT^lkUuMP6#9TYg#p{oViczQE&??RAo8o0 zW5SG_Z6G~xW$jPPO1*>7x;v1l)8kI=q8`bM5exJ6ay?nq)zGYEOF9MTC|$1qjg4Le z<8^MUmR!vdi5QRV*gf~!To9qOZYRSFLyN4C;9hI^{i)-H^*lLXt$w~ak_m|&oFacW zFmtAi{@_5!&tFzM`43SAhNcRn5CW+1e^BTDb3QE~tsj6Pfhw-v7uuk|B1*l4>PfPL zP;%noUbQo>=J$y9_#C@7kt)7{b2ZuSC&q#AHu;!-WjN<>aqiEo)^3l~L-)9d`y==} zi(Q{SDZy)En%^t(z*a>1Bd_o}rJoy~1jWMkVPyaBN0g4zqVM+yY%d2enDKE6 z2t_Wh=3G^30s22R97aAD}HSj~k;lLy4!|My`GgiV)4?37E)i4wjfV#!Nc_GVTaF%tOSpAJlh5Lh;h#l=7Y#<9+1PIZ>=T(s-hojT(h z=f~4%VzU;QULE(-lJmLCDp2UdYd@Wu z>}I}lAkt?Jw2VA_ch;1Q>Kxu34eBV3&wWZjUBMnjb?^NPb!J`RmQDK{IDY&rl#H4R zK(yTx_$h2pVD<{?mN&ZZP{G7xKv^3sSavrc-RA=}LUCO5d`n&%3^DZYaXL-_8x8Ei zDCnuSPQN&o-g*(q(M&wTWGIs>?LZirtJ6@O1Tm|N*X06L51Br9TT)Ib1e8%kX7-%h z@Xtl9Vwhm0GM@-C&)c57uIo}RcJ^Smx+Ee667L3h_$k-XC3J2qV`g$!HqTabB2A-k zDRhKd)Sf5=9rJ#*E*K1eNsp9YiC{TvfA!S_f-V=LSCKvtyu90wfGk#9)Z1nCwcc^x@g@i$GM<08rZe(ggy zA@3JDEgHX#9*LAA$lsn8sN%-0f?%!c1qW*l=S6Qwa@ss!GQ|0 zrk+7i(`cLRQw3W*uM#L?HL22GQPi?Tw{s@XX5ZPSk?HY~>~h!fSkX(xFHJ|x?#NAf3<0k zx&Z^&OExdH_aPWwbA;FqxdGj}jV^WRQ?q8xntiyU#>UEp+Xu@kVWf2N`lFkjAL92G zS|yQG5xKUxvZC{f|BD;G`a+BF;c?6|>D5(K`L|p6P>G6$QDfW--N7#qfqapTdhzD( z6{}1tuUONGdB2ncNqV^i9VCb@wdN6gewwyygTuUZYU6C3TjbPxbpo8@F2avvW66tz zj;!qXDrOuQlh#l)x8oCDoJbw~JFGN0`5O+AXC?hoJfw1jHO9ar>!&7l!RyYl4t(*` zW}60^6Hmb^tRRVgpSL=@K3mvhXzhpt%FukZfC=>+?5Ef+=vNKl%gRL8#ufkNgtKOf zulB{kov2&a_iv>j?ELGw<091M+;63DV0l_E3JCUzse+1sX~C@xBD1Wi7so@2%@u9g zLt~)2G5GYT(z~2SH>m&0qd~xrs=g*-+3rUge!6VVKt!mxLHQEbd+74pX1wjx*$=lh zk9<-U$+5@=wTE6^ZgyI*!SrF0_Y4eTsEuCnx>~X4bRoFiP)j$^PuRjk?a3L98H|*f z2FD_F0zZPx6A1%87flu{;_MyYf{Q8}!FmpLX_nUg4bM)(tYw#~Wob=Ee`zpx`##ba zV%dh z0j(@8O8@5r!%cWKR+`e&|0-h>6mg@_|EH{k@lL ztde+^Q6-Kzs-`SgH@Ht*a)mmQzLQq_nq2=?_gLt!OPk3#*hIctPI(TL3VRVQp`ZD| zXsESBx3EN;DhS5^3qdX>R_<-qO}u3gVR0NJE5SBHid*gXVSjyzTPFOfi6uNu2akL| zMmVpOH1ryJe)LWW2)Yyg_~5tXo}_T`=Q1M*vcY_wg1f@`SaahGF@lQX{Fbj zKMIep^SMP4#B#8TZ8j!{K3-hc0&lOi1;VEU6>W+CM?SU8FLS)%1^a$pj}*tP)pfNY zS<9e zV5h?Jg{v$%Frem+a`xYj!pzLhH=eKhcaL4II5u0R?88x{+%TKB*dhwlqM58b>Yf0e zVGyCCEk9p>E)}HC&-|mFctAlRSe|<)QiZ(S>dx<0{lSOAYF|M88ult>Z%Fa^vL-Mk zJir$?5;`~F@%*ut#?x^7TJnhZXIbX0uSkUrj9b}1uqbq`9R-Mkf zg=H)6HQn~OS}#Ka0?6B%6d)@prrxC>Xix8UBqLnR*(|)e+Nk9Zp1#7f5+U}09S9-P z8Ec!&<_-x{?8(`2ziqfXwiRyQo5O8+UTAu+lLnRfvN1x>0qs#7k8ek5r!tW9543Rk zw;r)1m>UDHZnw3(Q>9TELHpf;&w+-F9gIE_w22Z9Px&m&d;$b6J_rs&nqu6~QloE0x4l_qvrYhylS=&Cvw7}$FxoR+hflSJ?X2ieD zVJv&n!{JEyXiGedL6YPdtB^v8mgKX!K|#Mj>(hF@lZ*axT^gOYRb%0lgkN(4BAhr6YZ@okqpsCVDrwqQ8yzP&L0{#uaACDZQ?r4o zYJu(4$;z>Nrlj*fe#Co7?_fsTp?RD6)7=9+RQS}XP?2)0j9MR_qB#2a94iNiaO)pI zvzHeUGzUU?yg8S1c@F-aHbV|cFSdWA_kzbtUB z^YrJ#V^ep|CwYp!_;+_N96)R!)YdLZC571?z_fess{U#JJfNB6LQg?qGX2Z5yshd7 z0UC~G>!0&iArTZmua*sMu`*x+0TI_5mf&E#9kLoq>Nu=4rT4>StToIVrN?!9D!GZo z=Zu}AI}>U0dSBn`NEmxTSpgm-1z+71#!6+i%EcW&`_|Zp|N2Cl?LK zqHEj}OH6X=`PO$3_Hzuel#dKociZy(>ft}(3@9Xlft!?aXpnxcl5Q`Ym$GSe8rOV9 zCWCs@{k!d_U}n-trlzcUhj`^A zH={vr6KmcrbWwaj)w5PU*@n2bS8Vd+i-ny?d|8O_8PhvLNv(Q;!$T*m?@ZacI}Aa> zoK);=;Fcv$_kVXMaO~cT{ayLEvVGoG_~2NOub-JNg1@b+_zirkQEAS97J~q1{>`hMQirHivu?Af5g?Mzr=FcX zV;&*Wa*Z>za6&hAeH?gZ@F?KED~u(~YLnIXL>l-F95nis1=_U~$r|hQJw}=}4@FYC zLu4yRZ2O#3$Cpw?HW}qGsHJD0>jTlpj3@fzAJM}wsPTe`ZT~@(sA5Pm0FTZePA-&7 zhx92Nxg?inUcar}9ye0hG@_aGwb~q7N^|{5KS67nI&O=m?FsA<^?P6e4%u0DNs5(; zJl?2LmJbVxlrEG}XV#n@F+E^u;`U`CQy(+yEVa!5nZMjPU&a%U?5|$Jkk|V`7G<{8 zQi=U9CMq7?-eb!%dt&|~FG;_-GSwnw&8376LSF>ircZPrL)e9%DSc=?4$~{LrbI~O zh2J5F<%JaJcN_mx$@W$JK!XqO{;}}&s)3Cwl*?@;Idu2bqk@4BqIn^l;*tHAG?N0a zCj&lLNa>saAe|t9H0{q0>#0#?l5k{$vE8au)%ze{HrL<#8sgaN+CjY z6P-k1N1C&BRf;AzXu8!im|*qyfHZ zV10XKMwKa%b`o4l=V>k896O znl_uuZ3+C*ow+kSTlry8B+oU-LpzAcR$!lw>Gg9B65~Hmrlj(G&Nqn+;uct3+u8jv z>))pW$(H?Y{1t#EW^gjz1{YcpKP5j9H75H_8ZmuL35xO3&>x4r{VVOqf9oC59Sh{Y z7#Kfa(v*0<*g;?>`;K4(ZN#~S50>rbq>CHY@t#<1WRX5!ACxR;@YL`hBatyvpfn;(T9nRrCnmb1j z2lt?fCl>H zfBl;yI_??h!!Q0EUUa)It*B}3)toYGlwpP%j=N@rMMNqR6H%P_%n8bd?)W5^Y3T9S z4hC7R)jbXVgeHil?amB%{|=HsW$ad>#Y^K9xUcjovN&tZ=D*L63ul#Rq^)Q=e0Ufe zMtH_TUrB+p+{Sqpr;yj?{xo##^yVj0QueH4CL?$tm$7sn51Pjrx^;7y_2_%I*G?jCa{ za3R5+mmfn1;xU7}x|Ec5bBSl5PP*pWYDuKGXub>xslnC0;rwiY_Z4dt#*=UluxL_i z?gK3=H{PT?J3_>C6sO40xiw&TqPDAq-kSfs7B5@f-EMN6PgjHUsmn%qQ^zSI=1qOr z^a22)A;%QIfn%iLD|>JGq=4XN6V0Ekt>{vy36Zu=k|gg{=KL@hSy4XRb4x>XJHmk! z<>l+e^0=AI09z;%4XOM@?4GQ;XH~dg=wVV&hY3@ek~NzdR*x7NB?MXqRYo999jknW zmX0BfP7iZ^xaXAKcZe9*AIAxXg>A++C%p17t@t=N1;%f$k=M+Kqjwm0hh8Io$2T|9 z9&sBATA;pE(b>LkeWZ+IAH;<2#*%av1qY9PF((-vdI0{et-ma{m#}iXzyVi9ocnL1 z=z~W&*m?#D&oE~N#@#H!XJ=SPOBbFoZmpME(mVQNar{y7#q*^C8)Y03_o_ucbTV|e zxP6mwMWb%R6c82Yv{2}#T=r+Kh<}XT#SHC_Pu-a$+dE$ z*UzNEp!59Fh;Y+QLF5a^)7sV!2R)x?#}Nv77HjFc;ltmOn7DxmurW5=0V9qT&;-GN z|B3Hn>6vnJ_3IaFpNFlE2xMvqpD#1b*jwHs8M`krt-qyL(%6q(WEw**Fn?_~TsNUJMy`wqrG*xJIXme$>W2L2m9EPY5V zpOqHrP5=B&HVwMq^X^Va%ox8W0$)5%X*e6LIJ(V+e6JiVve#0}@(NGeioRkF>n;n{3NCEne2Lq#G5 zk9)VPunAODH=h4H7=EF8A}d0Ib0Ls&ME4o@{}J_#(Q$rXxD(q=W81dTB#mu0wr$(C z8aK9WtFdiccl!I^yY7eiG;7v+=ggdQ_I|V-6@r!3UZ5DX7%*dWl4Wzq^xlZh_VG7^ z^`752c)IwqS)Uvga5N|tj<8xOML#KL?yq}xy z0Od2#5wcN^#~fo$c_@S1*hC)g{`;|b=VjIU6N#7f!#NQVEZ8AJ!4%%2 zS(NQe!@sUVJl6}@0$4a|iy0TodULo>(Wp+y9PIx(Aq(d3Rb4MlPsqo#naKQrba&%U zZ_baX-OJU%IlZ2iq)l;`v}BqjeQ8+*TZR21yrQ|;o4_>ke2Ts>S=10Ncw1y)dhc-s z>t8v)L_d)foZ&+LVGIpT+dqt;#v5J|x$y?=jBRNG%bx%TM~_WqBx}O6h_Ii~T7e}o=y@PwY0A;ghz%XfgQ#~$HHGo0;ihbk zcfU7&wVjhW3R78&+}ej@cV$$N1&>V z{`bj&a$1$^y&@6;WGC~&tOG;LPjdLfOH+N;vQRE;QIobX%AhW8h^tu5BVe2ES2b0~ zIO6ps|MuWmMp^Mt&A?*YKTCaO#2eN#yFyG_hjcqX6}7-q=h;eHhM7M*>JRb}I!J0? zNqg5H5e;%uLfZz8&o$QO$%gtg*20s{K@w3Hl~Z{L-Eq_%$ptMu zB_A?Iw+vegV^1(8twz1e!q6m;ytg>KH-E4}SDPhFB;dBwIG`u`V8C}c?-ZqHNj#`F@y%gvnE-{klw=|0lo=FzWDP?0>6kIu=B9h@gsy_ z+MaZ`XaA@KHs2;6$zWJ6My8E-C%w0Y!vf?j;sTtavNzTvwJ&%mldXoyMxIIrhF!Uu za%*%)-hJ>qe))x61&PHf+pS1eem836; z|K!g;b0d}U#c-tlCQ`55gdU#%XJF>Akq2II9w&xS|AeCt>gWYv&21^K6ofkDk85`r zWppOlc6vxNhDV(_hU4R5MDN(vnD4;H7Gg?djyNE=Eav3z}@z_eAkXmc(^HM zo@1yPL(G)qyi>*0UT1~HqYE6I9gpP|fF#`HeG-wAXa zA}}$}*?X(_-R*OrPb07ss`SFvIAjYo>&)_RKSZac2}#5vlLf;zo5jlECn1op1sUx7jtk zZmP&1a@sdOqk9;U3_29aDT2@ijxHzzq6lG^k&fW8N$PeM0>$a~t8{)!$lNs%;JQA2 z4tFL~26(WkjT!z_3WQ{^KwsVQF)M6U>Ov7IgV&jhDCWU+{!GGK^vxPI^MkHk!~DIu zeeXsEEFy@I=|8XwG}7IcSb#!Y*?qi)Ch&kp=L2ze5IQphYPr_vsJa48L}O7{8%6cN z`B8EmsC)fv4UE({E5iE0 zqWY-YoCFME@+_I;o2U~GC72E~jcHr~`#SLI)eFQ%#1;M>%PA-a3J|2VuC`kV;8^y@ zM+5+XeG!u7%a6s3dX8ka2k30bS13g>G5Zlx?Q{X1QlN7+9|mRY%1jzhY*7^<+`)Q5 zD*UR$Xlb*Ly^_t;R9{et~uVxJ03ZpRGPxp z3o!$fNG(n7xJ#hLW5p^(kRh7N%c{Wu0CK!kn!w41rM0dP3IxV91XLTS@?xuZ#Wx@X zDq36Rktt9zHxL81!uX=2;e_l$W0z@nodt>+HEhc6_(IG&U+f=^2I)uv4{3p?s9T+{ zKxj)r4X{3_&BeLcIHFY@)cH3B!is%wZUjR~_S0kx;GfrEkoYF+Ne`iCd0w}BT0l~w zO<;0k^y{DSbO$UU5h^-jFtO`kw{QFb7M5z7#ZYP3;T*$%Hguy32vqL>V7b35IpU*L z2*WY6D%R7>mG@}2fhR0sVuBzF(wxC3d0f0%;i!IO@YKKm6Cf;pG+E!)amoUhI=-u! zxh*Mpeg9wFl%=0R&AGGxFIb1el!iRf*n*yM1bm!+^Qc#no*;M;fG`t|8>?7F@avA| z>(f(X@v$H^z5MpvN@%8s1==v)7d(-tzG@xD6uB5-Iw0VLseO+6n$gh!_vN(P;(bUSc0 z1ey;GYO~Q56Pz#vvR-VnImWW~!sLms_gVW@+)$>b5MoH^z^GVd8c7TN1-B$o;Ldpt zjC~D-P-hefsDc!l^*qs-JAbPY4X9DS&+`MJ0>j$y%naNv3;nMX?l0(1M8gw&vS?ah zAxtDhRkJSVmSCx>0{Q_C`}11Ib0tU&89h0kTd_1iXxK(_x=GWU3Elb70X+_LKYozZ zlXLDq?ef#k13HZ_drhiLk4v_7Hk*zAx^4cs$rCR1RxT=1$eY=O|K3?I65mLD?h2#e zI&?L1mWU4>x`IH>k_zM#E+FJ^=Igs{!RQFH* z;D2B|k(DQPeYJeH)YRs>wVfkqkII4d%}Q?fLNI-UgoW5E43~^(c|WckC=}=&!c{GU z*-I>r8R8-cFtLDwKUdSx-wffRggr8YK#I`e*EoIC8?eHG-3u*&AIRJ?6Trs))@ts` zI!G3$iv$Cn6A1ad#v0aKLW0U}gvWj1bk$Vfk`hD=U&$?8;^Xj&EAJ)Vjg4Ix8}5Px zchzQ&$~zD2hk*ua%VYFnw=5G?WZ~oI-{fSEtC=ALe={E``;I5D#AJ&E{tBDvjb5{2IkpKZ3M!(_85~8G8>Ul)-6ic)7ArDGFqDEO$!US2V?Q|iuH9mDXN+= zibBSegoGn;2z6JRXIW23Zt?b4d`G&M#>+475J&G*cf76wTX$LlFm-a6Po3lCSt-@Y zKHagR#2H@Yp|RNKgaAr_A{lktIT zjYa$M>TKSs0V9h57kt!h0Ol=_i@tKb{Oe>Pt!uNsdOBRz>u^~k?KhGKk>M~oook83 zAC6c0^-NpuP7vln4<;^LXhaZK+q~tL=L$fLAuAf6o`BIq+uPZNK>Bi6j3ox#U&(9=tB%4j1~^@1>E=#GBPrp( z2yH0t`jt`w0AcwL(5c<8@O*QzV1Sw9?K}6|1j%eogfZCB2u(+jl(2-ly}09w%45l) zR5>CZ8YjHJNd$JobH~=0EMG!@2lX1Vr<n)&7y*@IG$nK^|a|Tlvu|@^H9Dq+m#^&B=`#USPI`anqVg-b1O9&G#Gch2ZMp z*{FVUX(qHC!5V=qnL9me%m7Lh%5XFXk2NgUH$(@)CDGxrBulPXM!j|fU#hQ{3HJXk z5hmnH>O`_XN@^`qHfq=7GanN&#z@$k9|*uK@t6?0g;No5%>DL~+t=-5)T0R31RAh* z-VREa;y1C6l@U2ihY^I#Y?+We8rl!uh4xbWqd+M)K?dUNwFDYJqTW_{Ia|_+p`vbd zq{6ZLU+Sz-k#J)^<~?k3$Y_JqC;_fAXn?rC9D6e>+-U^Og9AkJ9xFLF=jdo%HA(^| zn-R{;gIHVIGi>I5<`%1uxnR#Lg`RSMUq5P^~eW&U-=-N*4)#u*r=G zE+{Ft`vi!>17bEAVLlRUGi~Erl~iTl_TC%{8+V#y7ly1C!N2~_Klrv61VA~etc|b= z4lV{;ZyRpANgOfAm@a+)gu`PFD#nqN$zx0C?!-9wIyQ=^iQeHWaC>5dV^X+iwS^O^ zf#5Rd);S{^!1yKEyS$P4_PiAaoh6?(+qA2Ckz(ETiT{{}!9!=fs5*W#v--Kly@cco2P!RewX@#OYth4-$(Z4%|Zw*?1R@UcH@c{`#7o-|2j zg|j=onn^UU_686p^r=rkBRjdVczzrOB>1ifE|IW62?Jm*o%g@4`$P%4-E-el7&4~Z zc{RQc^!nDw1c}HMv1+c&o=;9D1gCrB+7W4;kcdPV6-J-#Pd_Sw#Z**n?>1cnKN|Zml(B>7(h%ETXvPckJBLkLO`Wyb&$3`Vig1o4K+m3?_W6 zdt1hG&%n=YB(SeolwT@VIoIQJ`Rz^)PmKQih);K(btT0a8+cpdrY-#Yt|6`KCE+4J z0)bSEBh26sFj7iT&2#AOUj_kjVj)iVuIJCyiDk25S)7K4_39)HHBYaajKz8%pnDup zESvrKwuFU;M^&L)Yu1xu;-A+VC|%_C;?9V9oIC0F^QKL&o3zmQEIq%nbU`)X+D5gD z?EM_7i8rM?8UD}o2_~cL5 zbkF0G+cw(_?Lq{4O*7nzzsZFMip_NApk3+eU< zU+XUsd_e$#t31U~YliO2HpfD$vN*g9Ht&eL0_@=V2uB`t8)n-tCuJrC@WALFN?;9Qp%h~!oF5lb?rhl*Q^0WvaIJJBu zMpm~+nH;9SDVS=$mA7u-aOjPL74AMp1{XxGDgN7#CG3i2ec9>Zv}aUnteXY#1h@oe^XKoT|j%nwJx1tI$O%VV1@At zxZVEK0uanmLvCp!e|U|c9DAx%`k^b&T3bw6$AR@=SS_MWmtjZ`zQ!3~cC^Wo)3e-` zBGaAR8(g0B0|2nVs@6a@?|JZOWYpmA!Y{U1u;}M|sk*C2c@V4jiz8Gjk53`Q=jqa3 z*vbm({)gD!90X|D8%u!6xyS)75x2z-RIisLqZsKw_i` zf4EbiD`2EJ3fN0N^jueT#k|1zP9R&Pxqj)OZ4t$MIkMQzoTt@{`71w1Sm8P5F()Gd_t-j?O)E&X zgrP$-ue3B^!J^0Hu24jT_)j<9MOliV!1;>NLu^?p8H zW8o7Ho$uTnZP@!M0EFp8k693$I3NLH684(K)(>xFa&k_}hL@LNkv}Hl9&+piR2 z3%Ie+hD8I16|R{umP4s&Tqbkr{nAZu{2~L4C4X=x1!ZGjiK#KRieAjvH*sYAXHAIv zv_8Fg-+j_yN^prCd`H36eR%^C96)+V8Z$G zN7?Tb&-c^zd^)KVg0-%U-h()Wq5kTF&_cvwjrKF;-(VYOEvm4itK1e38^$sZ#q&-Y zUAsSLUH8U5OU7j1lZ%xyTfeIyuyb*T4u_^U_sR-NW_^ki!whBA>m0IkJKvx+WppB4 zXsaPnMS#fRhQ2t(b8O0y5C97MpaR?T8JpL-Fy6H-53i6vtE}+TjSUe8fs?<9Fj}L?FX7go1 zh4%65;N^IwwK>ByUP3SeF1T3L$0Nhld;0ca`8UJ0^_mdomDA>N{$*5LCXee>QwV7E zjm9Dhek1QkzH;ny(vE%ZD8di86zJW=(BUpF-&b&rcze{I)x_INNe?40sA zyo~gw1eVxZ-6tMZ(*)()+#M8A`wT_urgRP8y~!K88k9_=N+;fzS-(2hehsfk5AAL1 zg9EECPEN{FqZIdu5otJ!-Aa#?Q~?F&bBu!x<~Cj7;1S4>Olp^cokidWu#4SO1%|z7 z)Q}o5yCx+>3EX7mG#;v%K55&!^3CtIoGEj zB`;lE)v|0R&p(i?ZIB$h%x)uj8*NgedJH@c)SWB*yF$~WegxC1&9-w(fJx!7K)Jd` zM(^d4yJtn^(I3K%K~SfQvCOcf@U!?(;LReTQmR~9z3W&^tN!ITC!c>BItQ7@ASx8p zxTK4Q=y}%37hH8N?>*i<-kiW?(K_Fy|?NT1}L~p8h5^LaAr75LQfQF zvgVpwbGC3{!ia>RWL;?PWPz8xT@4FpSJJ;$=R53V9kID?q4W2Z;i%%_Kc}1A$nB>| z_kx6r1kXPdv!rGlW>GMSxy;3a%XBlwG0$Y60N@^T-#e*ZERfKcieX@+=~fh^T<6{( zuyx&{4#o-Mu-}^nA4kbU;)enug-10uEroYX&qDHQqCk{b20f3BkEf(T!G)CZ3Tm~{ zPGM9g%OwPOE+N{nG%RXJyLspS$bo@|-R=|UgTwZ%Uxdmp>Qj6M44tLk4I!Cdh(|?b zv+CaPMVqsm)!Pe4%ubA~tuzm1j^MCH=-Td+XQTxAq>2w3MXxkHo?fMzX)JYQSWS5Xjy-^mYNF6vq|x7ORT|y=yC|F7=^4=x0zEL_6d79waVmEjfFaTtAm0@(K zVe3vFrEH!tw?Ki5rQ7^UQaHlw4KfUGjNzHCs9w#2rM}mov)Zs07jls zsuA(VCnW+8V+zr24{in%W>n7b#B}BvU2vJfE z(F<5j*#O5?-ASX@dW)E$=O97Ptt;NHoV!5Dg&(14EWoJZK(Yu@YW#LbWUpufAjMs& z@Z)&8pONSxc;!UVe5||sf#FkO@{ZW2X48xd3z$&pDEF}c_c%=5kg4G{Jbc?F=Eah$ zOysZiT>toBKccKeq@D9#n@^2!rLIT&A6Yu3nyi&ie|~dOVI3KklyL;&`!*p?&M%bz zm4w1c0(@?DdFKSI>EeO~1mA7ce~s(s>xiR=jX5EcgL;2Kyo8eqK6l$j2?zWFJy+qm z7en!|`Te`t);<-CBKRxoH;(92L`z)D*oj>EWP@oOHNskKq*N6X{BBi`R9!u@OTuYo z372x6J;(OE918zn79tvUC{^0UL3$QVDp{T6cvcW;Rm740)@>!pKY27VY@2KdQJ656 zLHBr4ar^fboKljXm&H};ZZ!4*@B0Ko$-&ym(sG2G_79d)649QgL@aIDJ3A5fUf_aB zC9mj`K)WKc088V2wSaI2jf_qvu|@mEyQ4^M;|Q~HK?lP z0vL%osJ!NrM4)@HCjxT<46a{YguY-)J&5-14Tdh5dpBL9cy*E|GhCN2o$xwkPq;BP zx*5M4jU!qW-DF2`KAA+hPWUL>-67o{<&LO!av>!$#0vtT*jdzkNKwBTUKk?*fZKPv zn`X0nHvjHt4Ht4S?1>2J!T)7P z0B5j41BlF0gN8!KDdAI8!@1pFCrsz18wN>GVb*2NsJHY8W>lBHto-%dmRHeB_r5sn zT@2tbWlJ}{)P0Vf1MTcSNz_;7v7n%i1Ry{H9y`Z9y$dI-v*JcnK_YT`=In+eay&$w zPAP6(+q2ob2jK1-?7?=|9~P0*t&X{$c$Xc4 z6D{hS%4?J$(K>U@zCb`Vrxe8QKkEKaDp?P^WP^8cVBHb869`vQ3fc)k;&MTRc z{_5-)y4YZ0-GXgJS>l=C4qBO%_X%HSq=)}VG!^C^; zo4a7@87oS9NzegsKo4V!7c3e6NuTY#alHo~*L#V?{4X0%Ix5rLv7`w}M*N{xGj7vf z<$Z_vKfe{#l)=Fp?=SO|0s_eybw3~PVydhno!=(hhST{TuN@k9CawEYcpcBarPf;O z>Y0lELxd`DIK1cnEcnW%F(2!51`C+llU&_1$N_yStKIDnP1r5TFoG-5TBg%2HtLf{ zTH70qh!)b{T0F1|nSux_w{kH*dNYxGB~o;x>hro<6s!NvEXVlI3Xy1D|EBfX)%4cc zogDv=BSKD!XQwfL5mqC9m2u~ePH20EsddobPZjTtB*n$LicPF}d|M zLm!dt+6kOe@OW?_){iX{|FXLV6I=YqtEiw@$mzw}_Nq(cf)MY;XCwJsceG-KqZW$I z`ag7G)AyZOazSMe9Au_a!7$!5H+sNZ324G<$!L5KK{DTpsOAQxx(ok-mXo2Yqgs+e zbu5brLe$lt&rvK$C{IrA@%(}k?h=bb(17=CN&*B}D3hRTBfHdH0Aq}DrRlA19s4+r z;Dt`gJ&FK+tD>C1CZ(dN0UlGQN!4SU&UA8&2_ zd~0c{YGH{T4tounv>>!QwWykTN-$0m{Y4eIWzy?6)-t*(tW^N3jUqrHLJm*l5JGyRZ@t0m=yh z%hB8L+>0JgWjm#0>2f13W&og)t}hOZCkpr=e$6dKcH^?mA6nM8$RV%$ho1m?H%0eesw#R)BF$px*+SoJW>&r zF9q0^5fXpi-8j2C?_p0C_Xl*fK`xp&S<->7^}xt$=x*Jd;*<#x#FWzPP?6DAGS@V+ zKg|7nyft3(>4pb{WwGl19P-$M0hJKfT8im7FA>0NIHV@}@%KB1$yV-_ztHwjH;03& zwYm4J``|g(*uOb zW-})IH6a5$lqsj5Cy*x+V|+kACfGTxLs1> zB^P)85(n>*u#Fn1l?IhU7-v+rV?w^AMn@W|0sd3++lU*K|AdX?Bi+Kl``6Dj9qSsh z0@m+_+2I;Z>(C#f838@Rk=NIvP_BrQM7jQ@LPDXxs~W^gl$qSKdPV@AN3#ep;K^Kg zi!g(EYUPb!=T2L*L4un}sw>e@I8~}Ct__IhNE*n`_ zg={3_Bq~Q(+ko$XdSp7k2YQu^PKGRaY8WB4^^5w1D$a>(T{pd7^Rc>1&O0v$S^e|} zO9-bwGB7U~lI9HwuYjrY7<%MgydA$?5v=-6Svh_R^0n&vFca|Zvw)mLy?hTFD#UiV z+oXxGNmZGQ|H6DYC4+ygIK>Q0LSyc+K7I#P8u==(s=WBP1fhF@CmyWa_X|!8%5&Ol zMqp+wL@8~!NBCq81|T12J^>ceZ&P>^9}nW)|be z$Xz`o?uTgwAmx*=bAYZ%Q5^lor|A!TYsj&HMO^x@dT8QX4AMRbAPL)T)RS35MF6Cl zB;~6gm<-JI$P_7dSpie28YniNSko}J5ZSGgwBPR45!`Q}!DK~n?;&zH)laqb3H$kl zVrvg)Mj1Ho+s*4Nds=5&83Wn~ZQ=&q;`dAGkjG`c$7J>l!Qch!&{`}!Bl2#n|5u9(nbCE5|V~m zUeB}5=gNwU`W~VX8qx0hIJY~+6{!d7#A31u_c&4P-WxVf&hP(GLw|l_jJjGE5NB*= z>Vu;u*==f-dA@Xqv5ziRsNDxd=s(QYwYb%0bJ|+?(LsP&;LuYi_itcl1nkxqW^ev)2Fyq;x>M`3&RHByl!@TOXRS7ZRISk#xQ*FX2aC>~1$Z~Cjd z)#myh)2JG?9{T4Zx5y~>!Z*v0(EP}^3tq^)nvdsNLp~fBA^kPCF>D2$<+FMZGBvkK zd#yYwKPj5rNXWj-(4+MAvPr|kFEzz{`|dVO@QPXiKS=lD4e(=7qvyy|Wp2~)N| z+Gs0w(BkK5Sh=lF-nHy!$I!Y%HmHnF7XW_WzgP2;Q$4S&#M^Z8%cIB%P)iH+ zvt0yDAmC!);8>mhp=#jvemRw);^W?MW!Z6YnOs8%+8}UjWp5u1=oy)`46f?{O^^pD zQI1e<^+2IQR(k*X>u(FR_<#WR|9;1bVfT_3jRr$^U%nXL7@Zz(;i4y7^#O`7u>OZK zqLKYLetLtuC1e~PxnU2Nm5)e}C^k3waMR#rnB2`7d|TqCTQggS8jSsRq2=hyF6840 zb65F`u7LTbKoFX+PjHK)Zh=qr`B-GXp8&^oF+u0s+S22xLCXhDeEH@sosNnOLnHF8 zj8^;4TIj$IKn|s7+ECCp1G604ahD9F0pJV)+ZvG-sOm+qaoPVZ7w3n}<7J zMy^G%=&NThS-PcpwXnIA9vbT3)A83W$jHs##o``aV4}tB9gSMB+T+HJ(W|sYUfdFA z57Cm}6+SIhHEYlR>~)u5D+Ojh!(8g}+0mMRIM9e)%Kb2>TW+K&ZhYL#$IbhASU&h! zpOC_5dBw|`FVD{OfwUI$lW`p>{pce+o3HWUO0RZ-?^G<^9vukd9tr%1Q!?f!WpYLEM=d;=93 z$12LYLEb4-c8rf8$zZ}?;8+?HSV8Qc^RdyY+sQv7jV z3;Uf7PZ+dUE|&q#cL%^xS)yXQhRTf`o6GiV8dtdE0C;kii|42^_?WeHcYR|fUz99F zg{e-}!<9UHSYQ3#S%WiMU-?Vw(0M`DdC+@$;^yj20D~f)Ws0lsUqt z_B7|OH1!OWJ(M$<&Rzc?KnG~0ED_{LN7zBXDZ6f)_Fmw8bLIi-K_2~ifmZBcPEWEB z3I|Yc9%*r8SdMgYB9SR)HA)>df?b|WXC;agB7S6}w^YU%a4IB83pJ+gixCb;;hoU9 ztuYq)nH)lPMfvJU^+5buCUSqu-78)VuPB{?^*ND})A`%dHm}Dc?6MRIo{cvBV0p!m zaR6if%}&#gQC^F=$5;@&ba2)^X$6)B0O*9<>Hwj3fP~ANEHFZB51RI8yje*Pepw>1 zjHYn`=?`!AIsuem9vtyooLPj6DyTRO=go83tr+&b&;NO-TwH35Ivq@YTK#`o06dX3 z0#vKg2?o3`Kem7J#;155aIAm=-Mh8_! zuN4fXOe_$f;`|xWoxr?7CIV3&o8!g3;jSD=uob$!!m=7JIR$XVlq( zlPqXG?m?L!t8X%UnwX{)fh}?}0rVus{bE)Ayqe1XD_* zx#P;SYVUV*;m-qp&tvAN*`(&J+b0}(w{qq3k*}L5)2U>?rZ!B!Fta~(JtNF+s_N2l z&R~+OKh!5!K@%s@nG_S$zHdgM3QK>TvDTCjHgFAY_A1=$h;+j8Fpo`pFASfpt%?>r zae(Kmv?O!w2sCnj!CY_hb8@DIMKSA+cTw2e57}~%M;U`M7bn4oH&_NKr6<4*a}AB> z9>bV+?`KWL|H48Zw#Z8Rd(4fh_M%>3%`M{Ptg4(Ez6*FiFwK-UM(_Z;eSIs>v8cfj z75ThCerxv~1o*kb!S_VD;t8|U*Zk95f%D(B1pKPHoqyQAAwmHG%L*3Q1G%fbV->wU z4xNMK9JlN5_0MUsH(s0qOEu+9#7a+KVdv+2sO@Oxfb?z}7MSrQBvDIQ{F&Mn|9He< zxN5<(NG?v7sqW-_9^y(*@IKYXLHZeAfyFi1|z+EK;AaZ%>(u1lqE8&x;8K3v&24q97ZD5KWE)g$^Up!x2E~ zU<};YIO_Sw3)@GFVUOpz$aGyZ$?-a(7k%76+}4lF^O z!i*lz98l7bE58yX0-!V@hX5#bg^B^2>bpJ!Z2OFI&wt7i>M63M#or^${#>Ug%484r zw&wQyx2Sn>&}U01(6oCe;NU5TfzIIN=43SnTxiHM^XTLu^8i4zg-V7=Qch607|@pB zNVjD7k1mtK=rkL7Pp7EVKjX%1V=vB2b3BATI#EOa(Mb6N;=hs%!bZIy@wMn_KUTWN z-}8FII}ON-0SM();M%TM@s0F^sp`R{%qglRK>$}1N0sY;wqwvY?h+Fb-fLp6*!4a> zPq^2rsBI**KT>quL1ralcbQ;e>AdImF5g^M%O?eIBZ5;)rdb5N1+K7(xjw=N%OYQ0 zb||M97(C5?Y?pH+#9qnqJ*dp3=04N=0wYt}RxKJB@87cfs(snYA=|@wU!t{R8b8H3 zXvK#n36qw$EppW4)4GdDoSRqiQ%D8?Qf@NLNqAh;#CUj7%{<5xt~t8Ib; ztw2Yh`&II(f777Bhvq|Xr>0yEm&)B^$a-VgwF|_p6ir?u=gLQdU8Bs-wJtUB2 z@HUwev=avgM3- zH~>(z8skp&1OkOfBnFfWK*Cs`q4fHz9O||MTu-&G#$7YbY;Hz~N5@&L^=!8X1SA25 zj}&qGdY{P3N$4Z@0I^i{+s(-#bE7_W+t+QUG`pR8o#)5Oq~nXTzu4Hkr?*%!ZD;m# z&e*adRA!XcpHEI3G~;5SQK!do;J!`mzzcRjp)k&?L&otQ*%{fmQ=OKf)k{QA2kZnW z6CWoaV7u;+Jd>wf$Vp&VW|7eeL=Sw6y&3bp^X~TMY17O01VbHN%5`VsnuN5Cy-u>< zWx!juaMTgAApaeM{VZ)_z*ySr$=~6%e{>w_dk^pT$L=AKPCYFH8w}90dxG+Q#z7Bj z|D=H#P)CvwsM;}r16!S^SXM?~u}H0q-3t2G!k{wevJW8&#>I&>J=K7s0F8J%Ja=QF zjf{#uFiA3K)F>1}d>}MBOt+eovkCN{*yekG9x8rV6K7P=nc!;cV2uedM{xdWDfRfb zZku8%@*G=nC`&O?aVXs93)@ejM#)9LTkORn?sDgvm!$3m=+GLu2Phwuq45q8)6(OUT}7p3;tLiDG+PYxyuF@zI_iJ&iZtZipEFxBu?!$}a+QEb zonar??D+ROTqw<}VPa_HZ`sHosMoJdoL@TE2xN#;+dEfcAD?Ka3|PD4Y6t-)%%CE) zRs7W08qA54d7F1aML(F46rIC{vgQE=Ckg#ChL4~1Mi>@ zp>Kghos7%mLklpB&MBIutTo^Bqth-_RZ>vg>#(;@7<2PrU(AyleQ$4jPjNYFBD&Gq z-F`Ryhw@D22^0FYnxD6tA6k_f3EM@K-Uqar4b_Y)!kQmvCLn43c96blu>M7piLin{5p6-ym z7)LkyS7d<$Xs|7``fwyC*9KA!VAGC2wTfpw3z=O*_0vj ztLUWqR5@>W_~N+FMG2Fl!ioipEq+Vq*o&=ip~#UfnSNo(_F?ODquyX$RhJOgRDy!Ib7?I7Zy?z#anIQn8>~NWqY0 z3i@E2m*lOWX(w-88xspd>I`phxw3GUen)7csi+X`mknBwSB?)Fsj;cYIY;{HPm7wz zvLn5uHk5RA@fy3_&Y6aZjz^fgI!Q$Ma$o4$ZAdMH1I)HP8bqU!a^EBfe19mpBUn7~ zl?y=uJosyJcrk5-PfrAB>j=m!Y*uS@Ur&7651q{MeZX-UDWGlLLxX}fRGms%%S1YE z3V#=Se(bJTyd1|s>iliJUx8D~^_>`N%pe1DTa0ZDsxxDiFr*PTzJz>jfcx3EHXbaY^Dq8Bnz2@C>~kmYnf)(wAhJj_`Cv= zB~rM_cYD@0^(WKu{M1)g>!OiEs=_U^4QfhPhRfq{UW!Gr>f}OspjP?()F(8ZPKIw$ zUP+N|IMx55=^MBsYuac#wylZnWMbRSB$-$fV`AI3ZQGvMwr$(V?f1L)uGN2_`qVkK zYd;%xau>ed`{JW6*B@ZwOurK9LA$n))m+x+DtHSoU-dGqTFlTWWHVgZoWsi+gt^BJ z4(%h-3o8~h58r{4<y($O#7E&5I8Vv~Yg4}3q&96J@B zmEMzzPbj#KJ$2ppS{JbC3X-tYV>a)JH#Ibg)X9r3UvHxCr)*Lnf}+ZHjkQE4R*HF! ztnt(FDzNAY$XjJZcf={ZolZD&+8V6Zn{}xY@2V`c`QO|j0dQ8W@n5pq??Z?EHfU4d zbH{0nPlzVf+PljIbg-D!KF_8WA#LS_c>-S4IoSvL(?hm|szW>P0Ki z|Ab`0Y#>()hYEYYsg`Q(aop~46Pny4c@NLX+0967k$z;HNV@5{zW}5dFMdUX=ATeb z#dkhW)G7vSPDuYvPtyNL?5Y?+FFck*F0f*L^!bFSg%LiCV~i~CmB;3edbnY(HB~w8 z0Z|evg-{|>HQ9huP}^=jVl?|{#9n=8^1Q7Z&t5apv$*`-)vj+oXO&RRDr3M@`4H$4 zp_M2drGvH`Dk{8IanF6ko9J=Mt*s(5a|%B-)tMR!WVUFz2biviNn1K&aR8iH5`~k^T45?CTY#G5+e*|7Wc2OvxQL%+-Y(9+~A?kS{rnZmP)BV|0gNl8c&3d$WW z;+UdewYn5Zy2u@wrht=&hkQDX`=1azq^qL`L3vtnJ0w6G84*Od*}?Q1Nw&3p&4HdB zQXIKXQobnuQYQloYFPe%jDo3#;%epVV}57%kCR5^kPx!Lc+(-Ig#Zq&@T41vk3k#* zZw4~7cp~WC)^im!7zdTrK!cnBDH34?1w#Qo^U`GljDUFqe<~4bb!fm&>4C=DIh)!- zTYeiOH1wRt?`>*m5I{jn*UZDx<=1IMmgDx5nZ_9%Hi;CH5M9W;nw2d26Io)=UsF~OjtTsge0a@+k3Em7 zMD+7~bY@JrS{?ylX7AX|%D{E7I{fO{d4o44`9J8yDLzu8%;t2GnL3aPXzzksF>}00 z56BN6$Jalx_hAG3`;O0fMXmM8j?$!%>t<%$SN~g^X&e)7uy-i;5ijuc;r13RKBDidt>cAeL*14$bw8kgCkY`wnuIhi_N=24!LkvrIrlkw7>6I;!?ax1z{KvTUNrgrZ zxst0k%~tA1^ZzMbMoL(*bT|Q{!z;nI2TH!v7DV=Y1%%R2Mu}~^=C+++P;!-XkQau6 z<>T_2f!(Qs`Uhjrro!^y=&K@i<5ZF3DnDdAZ>d>c`B%%ixLG2$G)1DCw5Cu9FKJCJkRdde#%_a{CezaO3R)}pVoOS{z`HwVjWuVh8^FX&yOZa$YTo)um41QRDiPL zr;pabmIZ2hv3dUF@0Bo4*fIo#nQH{YLL&hu&_^N4ie?}~?t5b7qP~I9D(bU!i==Gf zLVub;!h(RiA_DQM=VSA_o1+?Ni39+oS)$<2Ma8)p$+k zf@wQYe=>9v)$U(#&erEOFu&%1faav31ujl)?e2%95Q*v^tcAR**gRZ@^v==De|-_x z)bo12bB}%I!;lWeRIT2I?aY(z)7<5G>u_snbl#Q4kTbZVvkiH~j&@}pKc8kNW_M4X z3E!u1nxl&id;isYZ}(CU4lp9UN~poc$ItY;Us6je-)dzS`B^y4UmW67{^(r1;yf4O zQ{V|leU4v)P8;8Uu|j}1OaWgHB*1Pmv*rlBC?1y?WpNVQp=3QRaFg?};Vr~B4iYDN zCRPrje29R)%Xc4H&LgE;Zjp!SW7i-m$XC#%Abq zo6Xr#3{l7|;Sv-{QA+-4#((pZ)ec%>UrGKWe1!1^`_FO{$ZDw&q%|l+>xCfuJ1an8 z7tmq?)EmpUhaDuO@ju-k=0(^4VW7+AXmWS?Be+ zgCcPX{tKL;${pSk%1|gdRUmnt*eF;CuZN+ny)l`f4-Ra7UOSOW_BoiZFpbGSK{@FL$ z=5|-$EiYR8>y*^OaA$2D-U!kDC*3YcZfc6SJ!9b{1^s{j)4w!$HUL$AMftxW^FS8} zZr@z>My%gz(EZVgY~{-~OP1+ZpZ_Wf8~5CAhI-y4up*KtYFCkboFaZrJVupIY+AHS8O5Ufi-VI*twSgxO5%DluNf@Gz=jtAekVpP8!qLj5n zmP%E%O{G;2TA?UhpSyX8l1HvLsAfY4$S@<$FMlvCx!ed?B0N@g_jLdvS!22XM?KZN z!RV6Rr?C7%@1>W;&CKIkVnvCiv~9VIl>^RM257%upJh7ak0c-RiHQA#MaSuf-Vj;oG96LD#=f8MN7W@9)UVkwo64HA^VQ zU$`_GKLNe~q;gU)oy=0Fnj8k5rf3_700Bg+>nQUS>W1AC7I zdmjFy5JbO8aQB|;LkCaVMy*k=L*CpR5@5E;_Y$_hpFad|?8e~vv{|KPYrT%6s~3J7 z581q)x|{-Uth}zAsIu2>s-+ndPg%f&EB?Js)N$uBMN3Qhpz;Sybc5lpPrvvIIi34( z|NN@qK&qfbAH2sLqGz#pOQa z0f*kr08Ub{|F;_f#eFZ(;6&hnj7`yFo;Vmf1UeBrRLDqNOgS(YPx@InS&0dfnP&;= zh6H3(6i`6sc#_wBfROSbG(0?zfbEk9*@L(boi~(ocCt)4OYSOBV|z*mRf?;abE`S1 zShiLjipKdd)(X`xgs_%5b0UaLV7AW8*Y%nW<#M1$9s5Vev=KP4Osu{F8ijwE$O})s z^7lry`R#XZyBWQ_m|DBh-mw?SS47??R* zgs^&WKobAV#+99zf(w>R;*t9&b#vZR*x3Vq-=?@^ z&2mRu$6!oE6qE9}BeXfsT~ZD++X_&K7ZUvgq^`q?vtXEtgFa4_S?Q}0FPafkz>x8- znNXUg7-%t`;_^9M&OP8l(&Vmpy7AIR0X){UtU^&LEMN6x;I3D6zcJ_Uq^F3300aT5 zXUv)pHJ{b^ib(_5aYALyujP=s7z(vxn1@P=<+da~i8y~FYrid2b7S9~maL;*;6?MUpkn^*h|RNn6XlO=eF zuJ7$`?}*z`1*+wt3=$|vc`mdT6&aqNd{%5_0brl*JFP$s%+X}xa1Sv53mN$!z;0#i z?rmTrqST~7;WLz%+39a)peKLH3J+Cf-bAEa1sKP{H^X_~#hy|Jzw{Mx0+Dav&tLwe zJghZ(IkmU+kuCBYg_ou52hQX5y4I3j)~v@>7~)xTS&H!P!_$b^dx)#=YA8k%W;ZQt zSh`VJ@h^(`RVhGKFymE-M>QvBe>hNIQT{V`eHElm_d_s?hZ)vty!EnkSy62DDz^0EQG z!_G;zj&EvIf6x7Z|C9ws6}@mz7GZr9*CYS{6NICV=pA9Fj4kqtZyY-Io0y5@)inl( zZ6z#c$L2O_y|kcgaScdC7F!wHF+cLU}sbZTfp_ z9FX)k*ifcB@F|xNh*OfsHRp3V-fYmc1b)fz0HXR|Aa!FLIe*;l+{yblFwA=RXe%mx ze_DV>frLatOv^bOaINhmlrECiR4a{CM145oh(34`;!qKesE|&G^;l_&c^vCB*$H3= zPH2#Y-89K~e+=j!)hRrB_@E~qD6(100z|-}5CkM|Hxd>OYIpaL9rg`9qL6c~MZ)M7 zn_1v2RpY$7q??@^^S85AoZurI(ci_wmo8VZC@t8X*biG6W%7kZtg|*ljDFBJvxK=9 z)p>9)0ZrKYSHPKLx3AKP`(>)v`g(vsf4sevjd)bVwXkCgLg0(x&mTmyFeo?*U8yhQ zv;1X+S%nJOS#JkmSw1N~pEBX%1}3FpSPD(k9_ZsLvwH*2*Jez%1;-uf9JOdcKgIC~<1-m+n zN$>rpqYbUxDug`6kpfR)6{C5&>9c{}K(mm;|E~qW(fselHv-$@A!_xiPH|)oJw5!M zNii|k^-*{dbW|sZv)+cS{v3jA_eh>>+nG~n55Wx8^|H#>z)f()s<7+4WluVtR+RRuuk|-A1wEr9*>=KHb|AxhL_Nw9o=m zzw?TvN|rc1T2~6BzyP@gA|z%gv1RDCdK?#3Satsn4BQpwTiI#-0{%%37grewSME(J z6|{czUz?BTNHme1L}4vnOcT93D`QS{V&La~KXrtrYh~3VgUnb@GmmlIE0=6k1mdd3 zntS7y3#q$5tfNM=0-#qXon#Fg%P3qCQ0%_2l)&>W4Kv-qc!<0G77rsvCd9fEF@C+; z>P-Js#{t>*Ni{^65i3ZL10Y1F2%nss9SyIU*FFKt_12DF9YA zw|XMuZwm@x4p~?1N%gk%9+l|b0>G}qA)gC z_X+!tb~^WaAeWG&Q;J8MVR--Y+1r+ti5-0DCMLDKCLp-}H4ww1Hm|wp>{@1`9JXA# z%>J(`R187}SDNX?kf+L%+`<;30mjjoAG`>Sw8em)50*|g*2nkI67cdT$C@LV$+k)n z59SwVS;Eks&Baz+)vRJhGtzjzi{^zn`TXQ0(uR#!0Ol3wC{aD8T_r}~hmQQG;f%B` z#eN@moW6aafeH)YC{%i=AH})jirDNx$IAdd;6;^0bEU@7%XGm%#+SHUk(w-B<&>0R z)i5h3z0`Kq)1;TcvPX#j{6=EZqnScHJrS?Vb8NP@?aF7|_Yw+#BMh`Af`h=OCr)n5 zVeQWo`EQ`%SH+gn^F@ETSW+jO$Z4spCA<)&H*IHwWlsi5pEh@PDj_8kCKoZdFKl;( z^uM6~9fD9*G#sP??BtN|EWxo_ryOWK zpLDe@6&&Bukl%~~qZ8A^y5Ifiz$EaYw=Aia>L=cjg)+2z#?f#Go9;FWZfbj?eHY-^ zB0RphNatlRa`N#cQFMK9q^zNyzH2~dBYZHDg&n)_JKAFDpL4%%=}&#nav zN5=w6SrO(FmFmx5+Ukcb_x=3ovD3!~jCvTI$0EV<^WS~2>OIUADO#KvlfLhdD@+hP z0|#=2;qmD+9T-Q9NZs~`Zf-xs#fFa^UTUVm^mUJWL<*9C76Qos-kaKZy`r_+;83b} zF>zul0m?^?-`jD<0Cuf7F`17e##<;xjW#=5)H8sftt1h<7F%%wFdJlNdajZje4-ACI62uR-+u@w#|XnjCK^qP4^RgHDkQaktN;#%IXibad6&1MTNOP4C^ zCW~K+|NL47f0NX!I}1N;zC&T6#BZR)BVXLV$}skHc=SO(dwK6ikf5tO{jEHEHNQ9! z3^CL1Ka{RI%bIM@uD=xj!TD50Y}0vj*|x!uAUK|@B1LGU&#*~^nfz4UN77Mx+*L_{ zF+Gb{Yb{G(%tFbJlFUw7{XBmkSyv6^qk1;+KsX0~U$QIU&?4<<>rG`zgPIMBv^brvF8QYYAU}OZL#K8CSphQOPqzzsws~`>K{_tp-NDgBU)JT zO_Srtm=f+-fB~IiTP5${HBVnZ$p26-yjY#Tcs_^T-EUq-D09CXP8G&El(6CiG*g=0 z+>)cJjXy?6MYBIzoHx;I*ccJE)i%jpT<#+~j1$H7Lcj_`2O?7iTd!0ObH8_p0b3q4 zD66_*^-edbS~d))vP4d_O?idv3PrmeSP_10P*={u{pPsS7>7krF$p`8w|fxCOtDb4 zREv-D%y>Ac@M&W-L-TqX^4;>M3~BcWSg(t?>ybBG#~pPi=(FP>qabRaXk#h`UbKQD z$s!Z*st~SB23)yAELM+eb#b;-qh&uQ0>OI6UUz6WfNK_u(+P+GC~zi&2~vR}&5(w{sk zOPTp!*QbQSA2Wq(R`E5Q55IKw^nKAwEyk9CM0)$krEhjlEFykIGzZ1T2;Ypnd@%s9 zy0!#K5+uP=*TZ6C=WcdMYj!p4u*nY}^s??v9xhY%L!fRrs*)wqTgEKe?28g8IY^Ro zWa>gz%aqHyZ^o65_gMKa<;dWz9qutH$c7cNMh>~54kHH;FW3Z-FvXB>@8R5vQ^KWT zaK^?5Sg4?ZaWoLb;KH$_SWai+>YLRjcL?;4QswwKdTE++>!Y7iq#<*-j2GwZ^pjL_t|+s|-XRu56l zi|kGhQK^65Cf-66O4M;!DOs;nUpO&LN-)23IV#h9)vMPmW0O(PXd)C|J98HyoV)z4 z|D$3o>O;W%%{#nQ9)Wc1A#gvFg$JYT^v++D|AGj0s~-OFCWhX@+pHO^Yb#m$&)miM ztSLoaM>Z$(&ni95-L&a$n~0}giuz6P}-<(Q( zd;wi|u?C&3PBV8)QSq@*yU=mjfOW~GoQfw+-flx_9CNl8^GVeao~quuy~B6S$J`#k z91k*9v--Mfmy|Teb!K=u{&nHdO;8C>)vBDpImAcrX)ea6yw|I%n@B^iob=7uRqguJXAo1rHt6d801-zCetc8RWWz6wfjF@M2X zY@AJ#c~4Lu>U!WOFCRWN{{q5}0p8^Axvf6XKuLWMefy zdGfA~k*-hbO+C{Crzl{_bF6@yGVXeU2o*i@u+h-1jljTnD&yz2VcAD9E7J@JfUKE< zQ|k6kMcxa|i*kA=W}!#PsyXh_26B(7_jI6U*^tJ4*tqlMA*voO?~-%=1_WSXc;p%Y zVL_A_1{(bJIR=yhtY@s1Icf^lA_@Pa`vC;~sIUzJf3Rp(#-@=zxU*E>Ce_s_P%C~% zO-RmMlVr4TbdE*Hk?D*1jvulXQRmn)yE9@%v6#HS(OlE-eyT6GO)JnoJnnk+tk;yZ z`~Vq&mtekYdtKdg1GY4@2&`&q5 zAad5b+)7)&OSJBrh3Dr=RD&&`CF8%I_%1_`%yhaTpmnZ+UD{5Vw0+-Cax%7MzKA_T zN76-01`v6vl6g46KON2bJuh#q4o36%`Md>>tZJ-K)N(pyMDnHICRH9%BAV`#M<|N6 zl913{b}F<3BB_7jYOlNuCWAfTsWPp!lHM&|Yzf$^(iFMf736ia?CR#o?1cSAwtIG5 zj2ltq)pLUN3&eO?*6KT+*6UxhaZ0MHp!#X6@XY|{ zk(Gq~L+}RO1u5m@;oTngiv`0M1U!x3+86HJ|LKr{bu6K5S-NKhp}Et%H;MHJvKgg` zF1L@IrVd=AX5i%5+ZCEh^XX4dl=HT^UA{E|5*2WSo zLQ@o;(nP;j0dcpt6B7S{Q2Gpm>clBc@z56*n93gILm=sq8JFHdg;2j6Vx>YiT6Adi4EjNeJpY&(Fs%x=YIz%xa)&DJcj;4G5?8-5K! zcOo>M*2GW|9A=tnGyIKFyo)^5y{arNhp!Dcn{!S{ZqBUgg}jCvH7F9tT{9aBj8tVi73yf) zrw8)s1_du*lYAN~@FiY1AB3RPZoU+e7+}YpPn}Ja= zkhi}a{`!b%esY?nyN~&+)zz0a9}^A(eXs@jKX|l1A6pT^q#Y90k&AR%>C!vdQ z4&)E*bxbY9z#09yKb_d|4MSP`R7EN#u~d(yJ{;;0A?Br8J?LJIXHy<_&jX>6ik+f6un07XS;-&zOr@lNg zCPmC73Defi!<4PPoU2SK6d3gVYzRH)EI*Me4p5L6Ed0x-z2nHRO`NQ_{jdK%Y5WJ| zS$?nKENOGM!`=Mns2fyPWBJuS$L8mHwkL&)=Nh19Tg=jl0Esa;GB1h^LAzRNAAB#? zl&`?YvaKwT3^KMkZF;YIn7La(-qa=hWR6VPtXk?h&+}+&T=wDm7)H zYSV0m(JM~QW!6On*x9u@)^ka#wSK|+f`$Ny2qJ&EOGlgAu@B-g@Z?be)rzXD>=DkN zR9{ILEDkY3YQQi8-@=Q)z8(i4qR)V(%H-tZ7+F7&=~O@BU?{sy!A)rqyIsXWIzaRc zYNlWz{y1qJ9!k4$=()mU|2X7o#X^Dkb4qy=wGb8my`$p4V33?;3DtP@GFLq~$U4zK zXtW`DzLhRta@5V);4rn1B{P;}O#q#CfrE+vV-l`Tm;F}_$-;hllQON9m9lYf17ple zSHLXgYcXXU+z&4`CiX=d4qQ$vLlr*rYBfC5%e_9#33qJY^$gM(#UG%|u;_uv&`Qm8 zc3$2|c03@cS`EfY{5(r;!Yor_#mDXP)0ba_5Pt&c+PfxKH`x^UI)p3yEQNJm?th}N%1Ausg~Q)}`7-}o`AC`rfcuT&!9 z4NVsu&dyo@bN{LwJqKC<2{hxD-x9pv2bQltGAJ=@hS1u3_INX4AcO?=TJw4sOJEs- zR2*a4A^yp3XjwzC$wxa~K;kT$tHYp*O#{Q|uSW{5sy^NZ|G$~;s&j0 zS!-6alK17v3qx|l4>_NNO=hZFDnTX3XS?>GbXg|b~%QB97{Vy>7y zU~v}D{&5VG`Gcz|$cR)_^xEvj7YN;DF_d{f$^?l)gor_Cc}Y13%Tf%IiTe(ORtzqa zE_=zdnqch$8xGmKe}8W^UkTy15S!@j9!xZ^?0DA-N`}6V70HdKypOKEcbAi^j2+QS zkNrUI)dJ{Fj{fQf~@uRi|{d4hVf`cp|W`~BHJ zDy0CO?a|3om&0kQ>2w-Y`@~(aZ0@uNN#9pf94tt*^xy4%0QFzK;Nk0c&F* zLg<8B{pqrs#|7~)qNVkiCaLF#O3Du>2=|0(T8VCFoQ(WvL`TsuHvUmJPgDRvGSQtP zO0=Zj?h^(C;Da^(O+Dw_7!Lsa*g9#IU282As$e9@nHu{>qzs-+sKasjGl9u_;rtdT z`^%JD%8V%Mef1L`uuYmOk@@n7rQu1~ez`zYNO>?FRng0!{Zo22!xj@f2rpGOa5@Gj zqu1#;miH#-Vi7&P;}}^c(|H$bhx$!_{S>JO|98BE*tO@MYVcvj<0+{q!nIA^+xwh$ zrQa47OE%_$2P3P`iN``)!|(P;*Vi7I{#u2s<`Bhb=n>dhNz00SB5{_=ob~Q4%NE z8{gibUe`Piag$q4n@J}_{xA$j7w1Dag;$yRY^Aq4ea+RU>Ln_%n<*FVisj$L?};K* zskS!Ef>TBrlgLwo8M?Xdw_<6#gjiugjkW1*>&!{o{-^=Pi?KGA+d~#nivCnt6XTbg z3sFcT=!-CT%*)G5pzn2hJ*K&d1J{jln$+8!GRfQf4y|+cw3m_JmjBLEReJ1*4YOt* zB~}vs7uNV9fnhn?xBvy+%s^uvaY(I*=I7Q_9Iz77g zYBW}Hrq-aep4E)O$svIcZyWYMPbsJ3;m6)m^EjT_&b3a_8ja+_QLzv0DfnigPipG? z8fb9D?X~T=CyOs`t#q7kM#C07Q6VI_IfKMeS1(Caa=mX2Cc65;aD}H=@!zLWQP#o+ zlnnLkm@qRd9^*`4MW%t}(dWm0h8j?^4{K4%o^_IKW`|cSs9fA=_d%id*XGB z3~lV&*_0^d%*?gHduTAbB1#$*M}zZ)Sfs`d%`$pc`L0@xmA+BF>{PqtJ-5EF!hhp+ zvfdou%DksLj1tW7$-E0SE{mih7Q2eJ`DA0yR~wVfq-(LotFn32xo4^-_oqwJ?891@ zOKZr(Qp{BWs7C|*lcAn^v2yrYhJxuz`{s2of)yx5@=xed8j9@RHL!ZTQqH;YV-r_3(n%x;VD*hU2+p4Y^kRwA6u;>RPgW||a+mwEB zty80eaTACJ#S=;%*W##c6~o*YU9S{-Ib^h6hFdCF3p)Se;}qeu^taOyD&AFSAex=9 zhCzZc&I)e7=StnBQ+iK&m{$N{(h;Yca(ZnN!aF?~c!eR2)d5H)a8s$HJ05YVUVsc&US3ImbAXP^~8t@WbMZojxc2AXd zdI|0!_fk`$!e$AdXM1(cZ_b>E-=CX(G)>$foqKS8nW%q#`q0%f4Bpbt_^yV=4{@66 zw**5cMMkXbh{7r+*-aXZXTmo1y&2idpDw4J=1e%t4vgmOg7}6YrE~QL4M%|B=yp&V z1^iw|ZfJI*h4WHsfNWQ|!sl7DZi0!@zwH8Nn~o(p1i@Gk~xBQm$8^FcGr$ z|CZ}l&%J0lE>)WEVgsu(7k#zM-UQ3R(D+rG%%tbO0>(-4xG6hP|4o1b?qdSL*?1I_Y_~hTSl6OLqtwS1=k~yScI*kKO=heSNX%?cyy<<* z-lyu2s_s;5KBF%|VxPOP=@dt1SZ-rtVBNR(_EC6Hlx9K~k%V5(N?<4M$FvL(gbWSD zg0!%sz>smvd-@Fz4q69j?Sb}#2esrlR}7M}R&!qY+({Fvu5M#oU1jZddDc|W=&d)U zgm=5vN6eTp&8@gs{46!LpZsm)(hJ4b6&*=Oi+j6;H>$PulXa>PuUdQInJC;~@vw#A zK(EuYSe2}gk+NT`hNIQzD^7`RMNC#iY_?kf%A0f@rQOWAAOg#KW0T5k!Ul{3dVu*h ziwT#FhX7p+dHY>_)tV0(y0C}y#DoUi9?9V&Ui){13h(`VO)$0j)9+}h=Bhn9R~?e7 zpL2%8Hz~GW5kk1-G^dDRyOEpFCf*mYg0+Qz@z&_SJf+{Jsk>^!!f}x)IlMeco;J|2 zD1)6eG55t!BHYKjwq!xTaN!Gzw;l&)PahyUe4<{DpP7mZ&!NMKu=-H5vc0%jl5KBw zswA%&w$0G}~sE`j?xmvg-e2DAsu+fmYkDM(Xa5 z|5#jGIu@Zrfr>RPl%?j+kSVGREoK^wK!}8E1qWvXEuTub?U1X9lrh^>yq8{>1W5NC z`0TpKH^j?3r}AtUbq?Qs_1;mvMF(9~d8r2B@yYzM>f`9t2VljMae&IRUk{Xhgh>sc z$LD)qpwL!mloXOt({-#|~SII(bqSYE)HEq~b?+-*d(+oZp+@ z-L;PmR%oY;?LsLxr^#Az#J$Abm>UpERH1=VgZ9NWkMFisG79fa2{{+jpZ8iSaTxp` zjl)WtEY{80Xk@Yyv+${r?HnZa0-7j|dVGhwdzzR!~Nnf9#hIN7+XU z(>U3q1dG3J3&x4%X-wKs1$s4=rW zPAFW#od@ygHPll~M4AZPhdWLqQWT$kMhR)Gnd&JQN&Gg$*3Wi%mTsgkE{cf$n3Whg znXdd>@VkG##JVQ^>9^{km_Tk%m4}X>F~iFR@LYsJM%64Xz1b}h;4MDij(W6CJC06= zF*#{^)ceNnJQ9<+IuJF(>l?JbQ91tz{&apce2~d!Pw^2! zuv-3uez*wYO`w~P>uB~Oh;`&IJoP{~uvR%lZ1VK2Me11=8hp?7e~Zij_<%3xrd*U8 zD$+aRV$XGU>ujkbIM4rG`WzS8<4UOFoj97cN?9a1kA*PT+PtY zx{$YAT8nUDA&bpRkaUB?{0|%%whG8;dU!rfrL*%p8Y0FR-U6kJDhbTlfUvUR>8a9ZGgaqev30jE z=@a6&d=~5K9CSwXi&ZAPYl z4@1uAk8E~dLLz8zP`?k3|8CuN9K4L057@hpq!i;2D9O&Z^CD$;m+oEepHLQ3ZM1+E z!iN}8!RKESSs_shXTx}0o@yXW38%dbKjq}BP_vxQ)z=H#mz&457~4TEnk8wWc1Co6 z@=CPYzl_ez)h{mUf)$Djte<}- zK@CozE!i&HXNa#yn=)4m_GzD#+gx9{5q4D`IU^6)ldf6DgXQo^S8+X=BBl;C>k7m8 z^dj-{*MH^3W4kk09=9{{x4bp_Z$Y4bz(<7xPGx*>&(Q|N^n~1!YKuHBuRC!o>9NLx zv@s48w&!E8CT+Z)vL&FK?M(zH6; z>y+A$jY&}IkZv=QKwd9eg)0r)I_zrjSAY(XW)y_T(WYm>N>MMcU@NPlKb|mPy;Y|a zU|=eM1c9Ey_xtoso#sv!qcq*Cp7>d2qyn6c9Dh1TIz7f`wCac$g?{+2v~iKvqe1>% z1W{@{O~@o6)#CuyFNi=qv@U{8<~NOaS3YFfz`p8Hi$#|70rGkr48P3&*q5X67`qmh zq{vme5Fv*K{5OncF`G!=VYdWTEJbKpYm~(eyB2}+js0tn-_1p_*p%j_I1?}Ms#Jdp zA$%P{C`tVfAs<^fY*dD%aoo|#)DAWE_{&+?6x1?`{qwE#<;Fl%?Hs<5(<1h)2p?nn zx(dV}IH*DOf4I;c_lRK_VdZZtViJn|TmS>+0PeqIAWl!UX4=vSDv)?gyGHJ;$?gI< zLEcXy0HT4Qo^u^b#Ykp^(NkGKQo@k<%D;H6={_83a6l|`X0QfneNwCYSNn-7N<$k; zuVPXN7Av{iz=<)cp+Wa&kGP7F#Ab+IVKPSX2M;MM*hpI`dQOmoziYDVkRTEAFck1; zHIB72j5YEPJ~LWxgM0bZXDbqYT>mtm+GcX1xQ_xx$Zr%FTLmu`NB-!@1&7ScvQ?Gu zahGA^HO}28Z9>fYE^ge1ts6|3JwC#Ds}O!Kf_x{@U@2iD+4wH84e*$-F}HKB>HNOE zI7LGNou027$4q3j3AHFYeUAqr&Pr>eqGcJ`JLDqjBc+@$6_vtX`gn%Xf))m21kW4} zD|?2!ZGMX)z%vMWI0}AFpk>_PQUww0)x&syUHBvOy32lX*2z)I&@-shz#`|Q{)-*7 zcHz$9Zm{T2#qtmt_sl`@l)Rj!3RIZv9l{NMVz?djK{m+O7jW(4aS;=X$j*65s9B4n z`3d!esK-90?feOb8V{9h38mJ;2_m>2%FE?=twf%$I#Re?M0A&tuUTj+Z|VhX zfQ(><>E_Z)Eao(-GblmRLeSM|Gl!a;LP66f_2z+3>H2ef#1OsrF zJ;aZoY<$bL3?9LO-{}E>j~U#Mi;U$98#_=|($T5zLFzeK&EU|^C_UCBm0d3z-)2$` z6O!3!)BvGT|G_b>{+2EpmyFADW$VnK|8ZKN@Ad%RANK;3nAkw67x>$hNR)QEot9`d zRe)+)nuTx2jF!-GG@LO~an1YkQZQvP^H(=1JDP6wEK{Cc6Ea}=AaP~pC9J5NoYgN+ zdSRvs0xov{Je%Vcrq_?J7?j~Iq(ot=d9aEgc~3{+02oxJ<4Qw*?CgnIYu-el{&Rry z`?yTDL8aL9pzlL3=J4a%yMum|ic(;e@x?)J`hZuaM2ePvp_*I$W+EaDDT>8CS-fEW z93eW_gcunL{Qs{1YOC}FR~~*|XWm*uD3HFU^_x@pZG2i#X&i(KSoVA3p2NA?SCZN< zQpvkQ#2xqqWrGY8f%wBr^X{L31>kS7WjmzvmD_T>g$8YTZ});KTkKL5S}1Nu%#EmA zr$5DH8tLnN_PCp2{%k`k{F+ZMh{EWRuQMofvk;T%nN$?T@%6Qo#FA==SWR+ z3gqh`g_tv;l{HGz^?Q_09hKsoFqGiHfp*M~-Pf0XrW9zuhyS^2l!`w6Q7k1%#19I9Ku#%RUFd=!^rps0WR2benfk`C7RLnqh z$E^mn8{P%W+ngyS`fjs}Ah|^%z|NSu0BmGgF9Wh~kmr4nv-X;gbEe2nA@dtrkCI|S zK~keJtWUi)-fLfh+wLq}``0C;V6L3)(Lbtz7k+%8egj+LXEJ6=hm{Yb&Yb)4Ow#;G z&i0Y1EdJ{lKDSqH4kT=lG);1cJr|-zM=0@2(=AomHld2z!CO%|HcqrfR0Tao*nxJn zgO0Vsiiag|;MdKJz7YG_e{9OTIZt7{Vp4=Wg4|CL+=dK&(9@s1Xw_a5#y|}Y21!cD zGAF&9qJAO@+hwgT9+|ek!BPSPGOEE!HhJ>`YOWR;B!0$cV0SZIr<~>Z*#{^t=lIC}w3% zbZV+8_v-a<*OvTOd??sg`yVvys>2bv?I@1QSGK(GemOm2z0b^c-SFwPIzo#{nf7{J zh>@7#KkN<&-5~JUi(c_!qFk0fn`q*678;sKZpQ=&_G4{h1Hl6k0Pe#iMa1h9h`}YtZ6+y8FoDwfA`)HhzZ#>)p!3= zC?FX{f!AZ0%`4ule93t)13y%MZz4FHN(}~n3Rc#9IS2dFCQ^ycHMHR)dNmpM2EfJ5 z0Zh-0YiQ@?y?9BFQ38bUG(8ve=ZZ==PW-*~4;O!h!fS*BJ*xM_=|`j*m!yO7+wO~x zmC8<`dh&3t)^-$C%w7|UV{$%A|D+^IC#5)lqw74x)F^K_6%O&`8cY;MQc@^U1*GNM zX@ClUB&tGcm9P^Y5t!FIOy~=q5_U|4zLT9OxUAWC3 zS32|}!ecn|!q=rbr;#Vp82=AV=Nue)*M0jACeFl|*tYG7F|lpiwl%SB+qP{@Y}>b= z_gA+n{a?DPy83+2*?aBJTF3iJ{jSt4f4n^MLe1rgi!CBRG(K5K)N9KOpw?h{dm2th z?z?0lxnPhKHSHDlCjv}O6aMIuGwycc>d(Vd0=i<&;dUpCjZW7qdtNbRWy697^{;#= z6aIB3%9fAV{mOC}(GsB{7llwUcT-Zbc1;f1;^yM;`XgumhiVhr?ppuv0n?Njv=D2r z0l|kr;Xb2TS%jHMs;?1g=`>%FD0Axm3R5W*4>Ps`4qQ&~H%cgA@{QBfMm$+{rkdmH zWV^LFw#vhKIvdercT|M#Yy7a6NJr`6TM?h0S4fGso(J-qn#=v8S-I_g#`4paxWzfh ze-qmOUV{;X;EaX=0D#^M5_GSfXrUg}SrL}8MNsgMG)dOCO_;Wi;Vn*4xcD8rwRVWA zblP<8qMe8s5zyAG=;Yn$Jf7Q5qa8MjmCeO&BOWSQ7}7-grfMvn&k6p3oNk6Ug|OPW zlUtoQtty^3XNoaN`f#E;IsGzIH=5>$3e5NbZGs8k+CVRK-K* zX039Q`l64UTnR%DkEzh9tTms{fD#3R2Pf8Gh-}~O$w$(n!&Xa7631Q>=5J10|fohmEB+$bCpJdHsU=4oR&Hhf3RJ7NHUonC0^i^Vl#vL-|z1cyNw_{3DkGDrR) zq*xj1w<%3WpQ<8i@EwIOl6B@NTHxbJ+-0Ifd#BV@a9GMs1cN{k5hGX_X|+=e z!jr7z`+am)_Ll`MZ!N006`6&GFWt20Pyhh%bF7A9FDCARN?l@m#&q}mi8*DMz#wh6 zx8hYrW;*myO^h_xIW6aM@a-}AsugeR2?qUpqjej1AYs2mR(iPN-;ml1J_e>hCI^s= zxV5nEjn-$~A6fkgRGZ`#s?QMP)8M`-d}>N}LA$ zD4fi&Z))eM{%W67jofQs#_vG@{JR|JI=!;(o&@=g=)<%*6CeQi->JG9P)IQhvPn=* zNVnRrQo18Y2@;|BcikmAFyHS$&lr&f=I+33h5Y?mL@zQe|15poKaat`EX33AAH#MJC70jIbpnf_M|5Aq2lch`y$;4cMgw4}M%i*Cm=tfXI$z6@c zV|Cfto%<<@hG+7m&gxf|Hj}=^Q>B>r=;h_;o4umYldr*%f+_Hudi^(A0r|gb8TPMG z8k}!i``nszlw4+_o=GLW4DCxpKO=mRa{0Y8_GAo(r9N>ev`94b-@3?v1IAN~n1rkB z8J$yHA&q(tt6HhiD_#nS56%c9?{6H*5EkW7S(wSEC_(@VJ|D~%S`a!)N*2l6-vQPP z=9(EywDp;Zh^#grrUa90ZKrm1{cQ(dBp2}_DU|~#PjYfYY^n!KRrG0hRzt~{Pu1Vx zWPxOAZ<*p8mwRi}>BA;LLi!MIBZVW!+q_nkhU-E181#iond~0%T(Bf8JgZ-9Fb~7bPEb-E7q1{M?@0GC^VnBEVkxoT;2my8 z^v)y>8kgvow>&C*Y4&b*}4yeK0nukm6+^5CGr7VV;Bp} zI?Ii!)ti5DAZ=#rsMXx$-U`WSK$!;TdwRSR;kh{HtssSZvaNLS-w-Ts*FOOor~|hD zbePZmih;eJZxZVBOptK^AdcfKOzE&f&OVpvVrW(5I3|VUozK9qd|UTdeTBuX1Iy-& zgW$OmGeqm%mx7LlA(itokjdKFw~%F%A@6ehohkziwT#SlA`OOKy~32B5?ITu8qP2jP2XnUTRERIi@s9 z-Y1Ijy3%9qe0}l+q_FeqKTODE#GL<4Ud=hJ7<~Z=+|a#zU-1DJ&)!)dcziM~Ul`NY4D9yQ=m> zitBmB^VnYQ<&~N7ir`8OTY-{AZyzf?x3IC0;ThTh0i=U=xl+52!YHv3blxTc!;N`D*WZe#Isb*C4{p8gUZR)x$P$w?$U3N%eSsWN-c31D~^|k7i`4KW6=B1&b zabJlpAU(4{uJ)XcILZt0-vKSJ;zeOW$*5BnJpLwb=m3cE>F|%% zz~BIf->wj#@eDNWZCDqt|Acl=3m+@!S{*uFy^$%*Pu-WDcNmQ3@?T!Qnn^W493Z>p zid%$A7f!8j2gnjA&y#xy%}P()XB8=taNf&yy}FGqxy0y{g9WZ6{s&#lZ`hP_?CO&N zk``LLXg6DD@w#{q;m@vPDQuVG8ZCmR1Pu*=BBK@u4XmS$aBurN4>d{(&*d+-BN%X3w+E?z%Ks$tp0pKXD2c8!>t7aLnP#FLmwXCx1LV6mV9~Z zyb|J!&jpgG%X~*BJCXfa`ubC$NI`}uAq-V*51EZo^?t>teN8=UdVd7&LlnJW>6F!S z8xHLkJ_2`sd7<7wXqs)8#pu_A!JM+WJ6gUHC{2cS+n>>VpErfzCSN;d}~mdslyq%{`gL+oqiU%u!xs%>w{* z0Iy#xrjh6T;RVZi_}1ho@_|meL*LnqJc%Gn1oHX&18}-tZdW38XY*+7wF3eLr-AMt zb!h?LtHiRWBc2WKKzF187PZ{f8{ufd%-kcDQV~&y-A94}%B5PH zM??GEVUuwuA2IuyM$^CE?2o7B%p};iY-Meq3g>Tn`4#$BS71u53{LFX?x{XA-t9em zONL3dpFmAQLeA*tR^k2NX`;Qld7Vjh?w?XBIxW?vNO7lhIis+pt)-a{Czg>1xt{=n zf&(M>Q(@pL7_8hSutYo>dH8YP|9xrWa0^F*f)@1XT*dCgJ6Y9vM1&;5TLZKp9XKt+wzC*8K=eZf0NiDJcsSJ@9xQKX>DIys?%IaUydn2d)*%e;!6M|uY4;A_i5F)%f^|b= zIY(9w&q4x5_R}T|57LOCSB@XO06>Z3@7`N*!VrUC%NE#(?^EZ@ApKKS*`;m|u&w&B zfdS(`%Mku>i2qyah>Wa+GS*ixPQ= zE2T4GUUBKnlmAH8e)^~w4O?IG=s7EH8CiO##Hg_YfP?sVh?dG2fRFcY!KPEKkvxj* z1JkoV7K%oCbgVVeluAI*P;}ZWakS{Jn~&nfJ!LM1i9Va>zL?E=e>@v9t!k=utCjP$mJ-eM|@}vXO0Ot%!pd{I(M|!WnGP~U9`UE+Z|66(WC%Q{%dR%#>%fqKGQ*3U$}215v{e(HeK0b zwE}e8jQ*?^^jP|hMj*U@)svRhkNz$g1Sp&ib#UDg&OfY};lz5%!Be494UI3|4ws*H zq7h9WwTv%Yg-Jx6yqAB6cWA7Es|7QVM@#9<$ofP*Qz$oK@dp&IEixh-E2Op(_AU%;I)I*LX#K))we?T;yuJ;E;74OcSx6J#r>qGJNo!2f72GG=BnjG{!pWpX%ye=Oj1u|IL z-{vK<*=JSf6f`$uUG)f8gufg7$H{0v&+Cs(@ zLPUdP@h+j5#WOQgkv7;fKh9ECeSMx!5?yc?6Gk!e6?l$$cmvc1&K`T@V5Kz+o&53M zOH4W2*MIc%bpWaRn;rpI;snZqbeq&zL4eEsCR$IZ*oLVDVi?+gb4$X(QjW7&5C`YL zhP2c&g!Se&sLMh8wUW4X5hUE6(q0yh0K_EbX;n%w(LMf~s;#owNEtqqQtYf1-z86- ziX8rBBO5pn0Dyr<8NhL+$2GKKEBpO!SU~?nQnR#%pZN7em>b~%ABrfi@~$h3SSnIT zrjd}kuSee-jN=^JWmVTPn|MBOoO@CF)z2zi+r`iT7e=H2RkEO~kJ z7_VWfebV1RZFe1^etM@#@%QlT!8mL?J6(>Chx{@znW?P-1(`+=f>7VRDsixaCj0N1HjOcm49X=z`JOLAGJ$J zNCWQ0rgG--5(K>9p9ELQc2lj}E`-QY*Yp_?!TQSn{Dc6Wn=jkDX z`Q@CK5Ke~cHY4p9tL5fCGXrcN07#LCd!*F!lCV>7MK=k~tz`$F?N-u;#vdWdB~SQx zH=yq_h%?XWIl&sgZ{Al_r?m%S8`w&^KZ;VYEBV)1Zp0mDZ|U6=d~H|*aFEP|MoACPmhJ>&9Pk@+Sni=?|C`>_}fxF z<9&DsOMSonp5NIxTrY)G=yZJbr@`@wHY7;@*E?UgPZ1XX;yUILPYJQQ0&5_k@_q$O zMK{)6$-;VGmp>IcHy2`v{aw0?irc8A;gEqh|BKVG+6UHGL)x#gs-a!2x;O6;C2jj&<s3&RD7yggjdUmUfeh@hwJzvg6r%>~Y$H~k}QQT!g|vQ49rmg&~*f3B0rXCht? z@4sA(v?~vf@NuGlL;Ay;7|UDaX^?nZ=#LUP%hz7vcx?)W_2YGq_G(3JDD;bD%$5_3 z7aAaNuP|&{uA6qXZV44#AUKCuE`5HX)S&iR%E1McoYOpAFsn8u`8*3xE~g({lTmuG z1gWIP6X0K(`oIXQ>qTnVSEp`kG9DzP_5Rk70&LaFH->VgWgXK81=2j|U(EOf_5VQT)pk_8EBzEa6ABl~ct8i%ZPOwy3g?BhvqcZmyZyJZ zn9y7uqNwTpgb2w^;33rqKmaK^m4jXNkqV+lATd#;d1$U&OjEfv<>l-a3ZD*mA)5-sz!AZPvDe~!v zZaB8R4Mz!U%=SMWHENzFmuB797gdR}&cHO4v8%8~O#YbuftlCS8qDt?2d5epah)Y8 z17kSnjh1fWNU737QAR$ZrHTwK*r|={nrlXn`o6sF`)a#ctDqxo;G1nC8H;MP|45oI z76Y(^6=E8|Q$(30hoM8$UiyA;w3<@p??ML<7;vQw72TTf;f>zcErX7JyQIW>-PWv4 z-rh7s5?EE*R(yV(A5i}Q1x=up2fuw_wFy5;kB5={ms;LLUVKzM6ws&!@Y7nBFr9x< ziYS}Qs;-tj@x+d7_DXaq$~`6vjuD}p%uIdTV{T@%T0DIS#`no`zw_hwM=GO&sdDP8 zS2AD&23zb)D@kgo=cT23s9v9RK$cplyj$7Ri6*6d%;@k6z#F7D2Nv&fon5*(Dj%t)@^PEin=W&+o)9?RFSnq8~Ls`DNyGd4!=kS)3Lm ziW+V{$ltQ}uC~eHzv#(beW*D;yyceql*bxoaFw;VynW{C6XnM~+cD^n0+cRYbLJ;i z##BfPH}ZI^8w-i-KC#o>IsjW*uwhZG`bJDVv`<9*d~=OEdXN*O_HUnC-=qrg6Ng+S zJq?{tqWe_~L%B_8apHx3e!#J;pI^^wFK3HO$G<&^0(yPG>6iIj!YFC{*yfsCk?0d} zI%4@GeRzl53_ZXLMR?I#V?N?g)6apJjc+~S@MgcjXm#T4jS1Q_^U%8>)SF0P*U#~QsspV z2?lzjf}fXQA=`zT66`=*?>^JJY1eP%Jy@_6A1r=ELK>#hb!v{vDI-Q5`f1qW+H(t0 zC2bLgd}6yAktlIy#;@B4IWb3sYxcLl2`XsseIe<7m!cgHeF9C$W2GS!JyYhgZBpX8N?1S|L}YpdSLx$-yJoeCxB1-)r( z<`_#J(4PX;d$#Gtm8~gmJnxRwSN3W9cn}Jy<@VZCi?Dt9{&@cPK?f#;_5v^I+vJbJ7v{c8Ry6)a_t>v;j7=HJt@MmmB3Xu1wZz z)1h&Qa`Zw2&cG>#|NhTIApHC@k~+hHfQed3$~@&4y;TPDnDqjicBz2)t_vtK#3;p* zBIgC)?sV3_yeLmGpa(mEY6cM+7Ktsnr&+d!{NQ;tI41hLlTLrV&`I)X5(iA^WJat4 zWu+^hrL8`w6${vs*nBf@Zx$__68o-O9%&WpY&;#ZgWHN^PGV$JMa(e0{SDexYI$&` zr_aEq(t5i>c%I(QW;Yqd=3er8FD*%_c%FW~7vE)p7EMEj_&U6D&RybCi)Oc%+{!@w`$RLXKVOOOAF){9&X0ID8B)%57?=MK>`HH z0+WZZvohG2qL56@w5QoPfdB@U;eiJX)nLx|!EBPP*2M2ET~U0xXcY9Hlhe-NfJKPl zjeH48O72~!_sB6_Un9QPwX?yhDC{(Cr?8hKc&M@yU)To2=$7)N?4IP(!C&UgogbZ& zRZTVyz|*0mN?YZ|v;18bk|@Kn{S2YV=_zUOqE>xj?=$N8R2}15$`o3Zt=(-&_A}>S zo_uS(6`SzQSwlNUcDss;BIV!NH5wl{{w?SotEsuL@{Sm6;tmgZqi1^P9atb6wPWlE zl3JluE)RA#te@5*hB)cD2eb(~K8PvgY{e~%87ipI;EWpJK=!;k22D)JT&l3NyZxT= z9B+3;&FTlfn^PA&%r|-cN4SW6*T28Tc}TgKODo(IY&gfU?M35!6_r5Dm>_$ids z`FOW$I|!|?alh{xh2Y2+!51P5GoA3)zAA@_li@IOk7v)QhtcHJOKHewk4SR%vqA(2 zK!YjCV%9ahNQKz)!j#%l-Gp~8g9GQC?m$CVw#qWfwBZM zC1+F4^R7FWnm%4Y6#sLb2?2o`!<#|lmRHq_>jsj010Kj=-JE_U?nBOdHs)ElD&8$z zN%`0(J1>+Vh8h2l5uw@bvwFIMDFLR9;-%otDP~&A`TBEJ?HX&!Dj{R0`V7n78;bX55SKg! zOZt!aSgo%9#0YrQa;C6jb~Q{~lEIt%62)H{yj$hP}gt`{NCm&g(eLA`F~67h3_FwdUr~(IOktk2u3y@Q)7FG7m9erb zjGL2%g(0NnJ?BMiU4L}sCUo-X6H$N)HA1TSpUJxmzN%ALc&6AjN#v>{md?bKF`8fow%Zi4^s; z$ggNfq=Lt7tq!Fhd|z&Aipp|T4wNJ@4QAb!qO4eld#4jV+$|=LmG#vevACb7PUESC zr1#RiED4B(>&y(GGe7vw`|XDw^82ISMR~pp7Z7P8o$X4MB!NuqjbCqo@&v4?kp;IW<>_>uL`=-fxO|Q%h|NN5lTyI@1&~-STC<4+U2s7^-2Z zaJ#)?bN`;gF@uf1yEYTSH$)4RQbi~t=wk5NiHVnCC1Xhp-_g;ovlknUV^=`XUENv} z1_B$rI8k^O)MJzgUwRv(U)P8NfA8oIZBHXTd?TCf6g7p?zbWAap#Zf?;))A$?1_g` zPgi(9@CiVrQ6-m}i221n?#03`s_`A#GzmT~9Czyo*Q@hIWx>}lJFG4VQKtIPq5YA1 zV0-dn!@E6H?(P&t;^OqI2(?6^p`adu1WCQ$`MAwNawg-qc_oFcggn@L$UQCYUj6{- zO=91thm`_}usz4kGxRCi(MJ3K4p{({`*9Vhua?|d7aX-GWLA!1R;KlWjylV3g0{|% z7v9|(B&97q0xKABzH0a2BnoipPwfI;~Z-oH?-> zKt^_Uq_MWLa_xO0Y)y-<4)g1IfEPI&2N3tD>9HhL(Kq}$Pd9-V>)i*925dE!Fs zLWv=pD2evo07ks@k6?}+wq8zm*@ewzZjwv0vrn4dM{1+P(^-eezb;<)uXVNqdc)6txqi!%~yq!@2!(4OjBxapxlH&fP*XpOHJCB8Gz+i^X-K@&_`ma-4#PId8 zf|RQ=wig`L$BE1iJOXG}pBJ6-%} zjV^85-ThDn`8OSPDb5KY$;rWfdo%0`11RW%U||$8A|^^2GM`gDJAEXPxiO(6)0l$I zHMKfJ3YU97X6v6QvfXU--R%7)8nMNQt~-GKx_TSxmYs!UDVsALd0f|9&YOo7lVQyNeQDF` zKx%JZICniVh@h|v@GyLB0Ah64 zH9Ao48ixTO093W9?=SGxHrajk9f8p9`qHX0X3UK%H8-CGB2Km?2k8Q~meSPgx>TYD0U?Z;!9-{GntXB)UGU$7`E zhxnv$o$8y42>!QMA*3|(hEAuCVXwF93M$hazvpSjuGmvU;(()#F{;Kca}C*W=qZc7 zvoW#jhDis~7SyRlk)nR{zcI1lK~SefD46FTIalWGTXPEX6&EQCRvbR@f)Y5q(RQ4m z7p+0At|;T`$wDel7eN!nXm7N7h~hz)qEh}#yj`CZJ-R>@n&+C3;W{rSc!o>w@w@S) z-)3J>kISMVBC|HiaiAOq33IM_X#eQy-_tI)O!Q?-B(*Yc7YX_T-{21as%2tJ(1C;T zQ2V91^Uy#Hcf?D~4qhvhISicOIvWV&t~*DDl|MLmD*-qmh`)W@=&o~yQiQCGoC$C< z?=$Hj^_{qXjwR#q=zd;Yp%L+5r!8T{H~Pw#^@{58x#f6g9Fs26@V_-4Z5(F%6jKcZ zBbo6$SuUK_B=@;*l|LZ4Q20v`{dBc82Q7bZ+PYmb9eT_B*9P(()%#mY&wbl3Zl8HA zsV^ZDgE#&pw8g^?P^V_nX8117${`@&>Al-=eb2XT6ZAWS-R9~i@GoShAYYFkOpk9O zB=HEKS4tqFwkmPN0IsfiKD&g13nhk)0J@N8GlG5qT$pk-P`nS9N2e!8r)Hhbr_xWm z_+sUKf`4J@me$%|bFa!b_qbjmJ=65e!NIu%poBm{_iL|3YVuKJpbo$L%srHLO}M{6 z&4^z=p11jX7Evb@{x-<2TE*YAoL`M`hOBx>aYrx=szIs1Amg!e_=Tnw=s&ZjrrOU^^nRj8Wf4YiS{QqV;^c_-f z7DGfxuFV`t3iT5oN$;Lumtj-CG{6-9_FCl5pcO1*Dk@t$q-x%=Gw5re?N zhj-stX^Kinz8%zWhCA(d2&;l?INoX32X-F$-P_9cR{iYvsqa^b6K5i3Aq1p{0w~SG z!vZb-RE1z$WRQ9j!CEG#kMFm!(aHo{jArZfhQ-~kjq~XXLS4mQVv1u`ICjUA$oYWdL^o>B|v;ZK6#C+35 zdRuNn_5WgAK2CUrS8e?GgLt>d?WbR!U?{LBqPgG% z+IZYz7*lsLh*!W)mDH}kAG0b7pQqQXh2wqF<@I)S0_miP#p|W-tdrK+g%UTGj91-P zmxmrDKTaH$k)(2eY~C|1Y7K_vKAn1$!vrIPz@MSdkoK@wqEpZN(f21XE>DTmV}#ZV z{Mc&u9{=?7_*s7nE`+Fc?MVaC*z)Ic83B4;7|PM5MJM%m?@>l8$}Um zWj7va*4*{cDFY`d15OPztq%$AmRraz=%>c^#>(wh_zkvuG7Kd^Kr%1sRmO-mHN^st zHUJ6=N>E%t4;+;WoTAQ9kg05JLFi}J)$2Jp>{ZXZUBWAv-utt)`qYgp<8-&V44O+& zd67w`d-0`bWQ+e$P3!27Gfy9`u(H$^;H|(w?o0>x8;N2eq#IVZ9qZ7R8nghFsNywLfmL$NG@OQuOl7x-i;Wa@HPXg8gE`6 zoR@;jOlvyP&CFP3DI|Hd_fRXa*K5Do)%yP|fY-GbQ}D(9_0jzmR+8k_@>*nXSQQw1 zh$N3cN-7d!fHJ+TfL^u$A~*mun7vk`%EruWYTRIbb#*lHrseoOBEr8kRwR!=_Uh(h zEb2u79iX?&LrOH@rURYY|E-q<9eED)cwl_zx%(hXeO=+HtxO}Tjt{BUOuX>=$wKz| z9B_s&(?FQ_N&2^f7_w&>k-lHPoE%e}{j^DsKJm{qyGcR(&vM%B zDs0(IM(5|-)Sbr!FSj;$)PwPNy`pt0t zQePG8i6IjTo~-*j8u7Lh1sZ+NuX%-NKC+j`nt7DwB)LdPw+C{V+SbMaHG% z#bP0RO>~TIzBmOX&zs{(Q)Dx8UvE4c^+tv{!U!*OXkYGOXBT(%2iEu@DYh$iomoRu zTgBT-!xOutRgl-Or0t`N9}0>F#pGt^Z2m&p&WhIaD};hiR1+(_vzYDy#y(+$*r@iL+u+?{_19uF_AYpk0U z_VQER1y*@w4XGG z5%dbbIP*NW7_iGVLfUS6jrC-?A=1U(XoB{$*35aQACh7CWNL_Lj$Ct20flx`gx|*^ zxZ!V4t4{l|VNvUCc8@-y6r;0`uMS&T3-W$R?s~YK53h}a=%Zn+4a2p8%_KSZETj~r z6Kqn5-ftg0r@?CYMncV@U%KDv9%tAOYvs5+pRqWz?nCXfbKAl?O%8tu;lM(21ClZd zr>e?&e1e%I-V({@Rd_82m5cB{bk|?;=SB{yS1~Qq({V5b|8Y7pVs947>Bc>sDW(Q6 zIL;hXs{7_oI$jpBLN_QpYL?>>FwAcPLlnpjHtaIBtsrCXJAU-Do_D^`V%13I+$yc# z{U~S>^**_{=u%dxK$WWe;=(R2f`0=5pXA+~E5hKq%lwlr5z62TVo^2<(N|j}4)b|%bJ?e`cDPD?Tux>MZ0Wh}Sb02ovL-AT?{ z=7h&oeN0MN{Anu-$+o+ZQALZeL{?w(h|`XLh=`a!kqCih*wKiTKv~`X2V%8O{*~?o zY(^jC!EQGOYW2fX^j>Iz3?^RUsJ=+VW$WxlVAX=GHrn{cA73@_{F_-9HBNtTIT;}6 zq=v#+ze51cRyx4?LuJL}2;rlnpa`}Bfdc>t5yz>9*4%Dtx#g_)DUc?;I>0v07R<+w zs`fOsP21oF0mlq*5JEx4zrMe7X1ux#5emr7kX;oGt`xX9g1V#AqL@ms%=9yf{k<=bf*^urrUo{{; z=6Y(TrXlVazRPfA4Hl-fkg{}^&suElqMHPd-a3BgWb3Ux+7>^@HT7-6N)a|;9@*YX z{7g4CD61%NN;h$6eZRPc_G%$^;*~;6&vO5TkKYN(VXIXBVf@*D&RVlkzGuvudV;qySi)WG9I z6u|FQXV?AYB3(^)%jx~YxMG+qM2V((Pdrel-$VxQbnf_cfA7?=-z`@Z`ACMgD;=+T zC_@B3K3&&q2s*T`JPCU{h4kxMQTraBHFR*!K3XnL41WNb_o|9S-mBkvRAUjED#;;Z z|73e3gfA-UnEQ=iPFMH)avXwl!>16kzIyQ6vE0&sj!*Yz43DEFvXp=y3XyT59{^iQ zN=u#eDYI@<|2DEe;w&z%&3x58#4SI}FKU+JPcC;?Pq2F|7LJI_+cEdmbIKdgElh3( z+@Jj3X2GT5)O8u|_Z@0%+4Z@R1QSwtjR^_cgobDFmh?fq_cf0H8Yt+AKicqbwgNsTeyo{Rqne;TKK>%7cGD6lQjpv$ z&W#<*h@0F^WkBiRqeAlbOB8~Y9C-YCotaXZ0}^!UiETd>N^s=LQGXF~?i z@beIf7OuMrBb}reKKxEVB4+c(qW<&WO`ftPk}K61oelo9D-D1#!YdoGi?5L*e=u%& z2wj=fcmpQxG(j7Fj)C)IdU*)c7qK~vN!6Z??8+i_9?;zBp&8FJhlNe;oMLn{L?4=9 zn%k2v8YrfG-OlaWwaV0IcHJJ8^=~X2eEb}@**YRczvJZ${KIy*+g~YZ zx#<`^o_ie$=7+t@tvkW=k`csjaB$Jk6Jc=%onKRYL8NF^bKy^R{2D}NgVJ9y#$;Ap zv7wW9UkI*$SS^I!!?tI(cV{V9*DLEKnx9y?JU9)2|5l9ADo5vs^kcYq-cs}T0$G|? zS1PI#P%T@yjClgn6;VCyT+=#WCUn^85RNtSvLj*LXO9k?*bMaA_DvaMahI)ED5KK7 zpB{WejyCO3!&%!#*xbae&i()<4h1?r+66+ginPD2-j~fx_4$tEQxC;^vKPQ1&Z?gc z=%!C=F16}C5rPAZu0Dwl$A9rOIM=tLhw``7FFQ`0irPn?$4o7!v(dDtS?zXobbW3; zWVn0HZPA*oHt@e4-5{8Uo0e|1FM-MSkR6)1^Lnnhh{Z!lAb=7- zHcfR^Wf@^Dt!#U$KpvJ9dI0cR{wg2s`WVwd0q*DKMT1S5;0p0ZQrgVGT z^3m=!!F`7&M5FayGOa|L);Gi{5r;j%9;};Dt-Sent)4YX43CGRm->bG`AwbzHS!S;~8EaqV~NV09!lang|K*Gz`MmAdV{*JP%{DUSKh_@Ea zj(d^UqVuJd7kGAmeEfI-v1)r653W4;vEck6KZ)9e6@u!P!LlCdx!}u{(R={SYeRxQ z;pXXTp#&@uHNyp3JzMT>$d%5rj{UD}1V10C+~w$p#^+fVXQs9UV>8kTWm>q;eBTDD zI%H&vK>;Kz5IYeo$SnQ|s2GeI(IB8gU7iSd;@?+^wmKm|*#tm9u1L)z46M2TF64`v z!XE)ZiB)|#&OM)0@%2~!^)a;&JTAz|g&{1sNqmh-QL0%maMK`>kh~2AQ=^S%^kg@b z(ZE_)2QaY4MhkMc;a>8NH=XB;Hty#2o+VnEMsjHkZ0~Tr>=F?$XofvgfPm1U7tbf1 zW&6fB`dPRg(r&f+uAoP-F3?D?ZdsY*S2cqGSX`(?kefnzr_#$DMGm`^I}f|MvPiL5 zNYZFGYJX4ZGmc}kx@zD<@HMzH|L6hk)Wdxl-X%owj^u^lRUQ(CqtvJ2l;xZViRfFX zn--#|lCY+sxhHW-6Y{J!#&wuu87eHxye{VsY(;I*3T3D+Pnjp-18*>IKiuCgwMvxA zHMl+W!RuTPhE5(I_C2sWNZFOVQT*OT5OqFZ&KI@d;CWCt^0fdDNI}8m^u=Z{67YLl zTTYi+D*cs z`{h!Q{cy{cwq0o~DT3x;{_C_LJ#_L=qo~RY!p~GhC|rbSe_c)NYh*D%vWRZAlfCF; zy>?$;Ch6uXI_*Bi+-gbB9@nz~o-iKe%bND2anBqeaMg}m$L=s!;}DVNXStVAA$J}i z{oG2#J$@Wm(D~*-jt2E^3VdH`+lKZ1ODdxRc3NQ6OhX|1akQ}fWCa1}U4vL@38kI6 z(D?-rkg4dbR+c3c-ra`tY(Dym_9ztu0QN4y81VQ7s*tTsajcwa*?Btz3-}kpx{-4ZU zYwq1=pU>H6aQ-+30U7GgAO!>JmwSKq_BRoQj-U)uYO}e_Q5o_qsUpl&$Kg1Gly9@5 zz~|PGe_@%G!qn=-Bsx$;zQgy)2pz*HMhFH5Tf|!vXL&d>3`gh(Yw|dI6_r*O7xQZF zu^HIEHi7$vsD@>8P$dB%mryx^SEO%0c3)Ff$kT9R`HdC5qaBL7V|#P1?ki!Ip|G*u z>?{k+hQG1Nl>>E4;qfspP38?rpO;)o9Wh4&C+{01kk6j`#W42XHIN?^nzi?6KoO}G zi#d?~1YS>vIM~uQVlG?=l7Xk2K0ExZ^Nt4;WW5(e|2hH);2oOYjh+^Xp-g7d zOneOd6FxVFGYrZcZZvJlCXfimC)4Mb5+#3Yadc&}P4qUQdY%i8`z_n^6CirC618aT z`<$nL7mID76wk{8i@LxP^2e{&=pxX`noe`(~!ewO2R(}k3}?FS`+S#0jvFTIJ~^_bMFX)SA5wd3p)U~ zr2e;rC(pnh%++^e7fJ~RIL=xQkCFADVznPjXhB_rSRt_`-JiH)O;AxQ_a-Yng ziH(nwe@R`Zf$n@tI@U-EuK0P)8Sd-0;)p5!lZ-hZQSPL$_Z};9Zt7Eh|5?qNr=+QZ zu>|jz1}zPz;}ZXIguXb~5#+q;%VzNOr zfai#=ROcs7G6smL?71&#c%|zV#6H&!5?HOWZ6JKO)@O+=pt}%rY%)g-jW!W=Oa>0K z`28}L{X7gjBctI}r;B_s5#Q+B?8{Jx#o$ZuJ-|qkvd!mVUuseSE>nCIn_}cbozWwx zcNTff(F!s{Tb4?digF728_Ha#!G2*tfT6AM%Z4>dQoEb*d~oqn?Fkj8A1M(pS@h$X zgu+~V!ZJ)ze}1FO+w`ogK*+WU6?2(pW4UNiE7`wS=3ms*a~2f+NNko6&m4N|dj2~B6Cq9~FnN3d@h>IdQjw>4qohH~O^4f z$97{af>tEJ;q`G@?(vlw*Z%w}i}DW}(l=2hQQ=ZsoATah)(*|` zw1Uy<`6Or$hT?hXk||!yE-5JnxkF!aa@3Z_IAXjb-9JxA;9ujHnZ7IRZ`_Va>THsw zC%6LGa54r;Y`^uY<-d&QMD?P?cyG)Va?#V-&TH9mKtZUvH6m;q#LM^3<}rzh1StRn z_c9^fhhuc~TS)eQk)5(&==*#=GzW?AxmC><5OgU}nsqh|7PQEgRM656``9t|`5^x5 zZ~$2ZIWnK_@j1Q##N1sj7Fzk;t0#jyXhf+4hbycF8xC;pM?RZY;ITZcuHxl*XY(Ka zVt&dck1=ivT3$Q}lVZP$*=~v%WKLNI7od~PLWaj=kX8X^EoQuOBflxw*g4RS`3G{z z$EL)1IJMPRNY5-+G%*xSNVT{+gL2c@e9C;FlSKFX#wX9#ZYMYU7!#(UN~wyP;=f{6 z%cx{47hlrS4w(9pA;(C6RRH^8iOSm+6>*W}UD?hjUIp8Ylm(QfRp_SvAySHO4avUL z&&)aE%_8C19|kDH$cOP-Ua^>$WzVeCrbbGlXAKSW$&>P)HuYQ3nLmc*xM6?35lWQ0 zl)Md=r|j^DmI4h2!WjZ<@|T@;cGKv&Z5C457D6^Sn~UF&MwavB(Xv%>>{Exokg$eG zT1)%V7qj4_8XY*?AX`+Y5k8lecTkO zhvKQnQ!bkcWW7$%ijWiF!OX!*mdJ;(Cqq`K0?Q8c7G`FuziAYqlA4^Hn5eo#TqRM$ z6}oNoQrpRgOwJS>S$wBUC5s71#RV6cdYQoh&{KeR}6MdBhH;6(yP3x}_DwBuPsTy_cG)|=3s z%6cOPo?su-dH5FRM|($Q;Xz5#2=FB*-+fMmyc}yjk_0?qn5C9&;0TN`arpVt{BFIX zW19y`9d1f0-RZ^v)A;ukr)t*PM@R6N0-xW?8IMl)xLQxTpnMef#@$65-CXXYV1&8@ zXH=D0*0&Z%bAd!*paw0h^&jB)*y7mva>RbrnbD8yK6=b%3=4z;h{3RNfr7b3i=HK? z*c~X@&x-B}h5Qd!iDEgBdVbyx>^IU_kj|e$Qb#U1O&FH| z*$p9gB_faO$44+oNXUlO$_)(teeZUh!4D_@-^piZu>$nEuTHHX@Dks$3u}CDZ0{c? z`pg}vfd4!TnaipX{&YDH5xP#FMG#TAu=EKVax;PsxWNb)0I;Z5k?HK%FpU@<(fw;_ zu-ficMx75M9GLv2qpn4Q@i1RS>(l=cg;sNJb?miA`I*>aygqRTURfsSi77>ATv?@w zW!a$g^{KiZ0_DFG0^5}J)8T;2Mw<@3M@bWi*M-xz+H5Q2n2_U5*Tahw$DJqMY)_iB zbhi;@j$n{sBK|XX40vzU15O$~P=9W3Cf{TY=AO9yp$O?QM@unGcMXR@i`QGz->xK1 z5d4inN0chrzpHJb#<{-lX-dw0ss=&vT?!S3Y+&IBwQQ{M8bDucq5@ z8O`~N?$ffRzKzS)Zf;L}^Z;lIc6Dew>{k$w+%kBLT?dO~tUmrsFb|!~#{GE&nFzb; z}dcJ_ti^*9vtxO##-vunbqK3MdXMNDV{yBv`iL%Xo~j0 zY}f;_KE|=YbGR+j{7VvfP#{F!f^yN-186%JQWT&1xOLSvn{7Hg!rN5|VFdw3DA;jL z{rAUGc$T}1W=Svr3VT@CJOZ7VxJZ7s-(9~wW8PR`VOqT*g?7>-6$eYHpTO7jdWOU3o7hd_S@x(JwI7i*JLmtcUe|D3A%C6*^c2X% zzh1m3!Rm<#BsQ9{ed32+)o$JhLRhzPJ&`~ZmI@&$I@>1Z=18%CpApTj&2d}UA6Mc@ zTj|w&eG7ljXyW@zR8F_mAIA73Aya)jCc|z*je{e?I*`M-a|f#-M^^VXxVeEk>Gf%08g@i-k_VZ?4)t}+|&RDj6=jx~z+2xDw#{cAVOROurPYf0S zL}6$Ec1};zWQKY&Y3YdmR@=I9uzn`tl{tYxRh+-*i|q%bu!NrxXoZISf5nLYLu=bRT2pJS|mdK>4i=LkakD3%!WN2%3#`cue z#~(VG4olbMCuVN$adY{4%=C7}_b+M}Sk2JtnV_cMuDGeCOWnc|nSWfh!c_5y+Nw1# z>HCJBmR72i+a)hTXRMF9q-Uj6w2b;<=C%UuLyQG!wHyayrrVJ==g%5@k||LI=ELREn+#Wn`~kv=Ui_S5EE)sBbIifRw=fM?#b z4KQepNbZCxmhJbgosV_X-|b$ZMB=dUg)f*pyD9BUE|#l7bk!JVYb_B3Nb)=lpz*99 zcqqf`R=n(9SS|m(sxE(e{MNjT$g?=OxAN;vp;~r?dwrIF!_0X@(P7V~+z=>A375C% znkrW z#zuH^V%za5E;fgPdC4)G$Djpe-y=8osgc9tVV7P91S$zl2Fh=LzR!4(RD-$Happ&B zXFA+3=P6O;#eonq_nwTi;MFPbSDVSpQ9o<%ukweIeMGD7*Ui&{fc%q}Ly#edm>xm^ z|Ic+bM!2YWHtM*6K@7(G<2HRu>E*ITmj7b`%uaZnZ8N+lwKO(4bnr*gtN48|EVZmA z2#*ys;O008v}`{D{q~u0D6f1U6f29S`F!ujhtqFl<{a+BNM)@Ye*eyi9X023@H3G> z7#LrM;O}I(R?6n>>8&q-Cr=oRp-;YH;(ue>(?ZqIb#9v3{S_u=o<$z0{@Zv5j{5tm zn3oW8K}sxFP&B|RY8M#Jw+(PZ+Tn+J!j=;ElHWeEEfaCYJ+V3r4rO*IrKMmY@_o}D z^O$$8Ns_>^11XB%Gq}d%AeuFSZVVNn6K$x&@>fblghL6=O8{j#W{~E-2@#V`#X!wy zwFw})vmO{r$ND>(9d+&d^!7GkpwEvS?ct-OH4_Q@@zeg9KPG&=mH4C9XJb$wtK93+ zjXKMxtYZ5w-UA{6NPyzMYNqd5urLq76x>RwMZ$8LJrKK1fl~MYGf-i6wA?c3jqCjA zZ?i{>%w~zH8RqL{_)pP9SJ z=TI#@nm?2R4c#O~PHKMRyKSdPU~X!dQJ;w0COJ^9*rGsujP7b# z-9b7XwP3qPGEdL^QmOKDHiUW1F-A+v{Q1hPqbG*~y}%keH_Tz6Rgc^$IROA-9v!A{ zBhPmL$HV37&L_>=VzfHMK~TnTW+k4zr>DKR14lT0Uo3}Z;t^e&RNFo{Yc4I$5*bOh zlLN72blH|JJr&vbii6v$61sSr)DSjuKlk zzJMC`Bo|Kdl#b-!rQm9qmwO8PX%z^RhD$FUuT@X!QQ+>0dsk>`$6mZ4cA`-pX_d_l zU?ltajZp{yEA~-PLE$2G_b^5L3?4^OBO)wdTmW}Dm$Smu*ae;t#1LHb9{+I-fBW0l z9^Bxm@u~805v@MwmXDpYoW7h@g$UN~M6bHyTg4v2=~=C~JVJM060z4J*>FU#o9mXA z8*MAQ0V%ZM)hUkNfzg#c@PIg=Fr@f!uHkrvE|q_& zf)Gf%KE>j2g7kev_i#LxB$-j=uR zh7!U+M98H5p&E19fh*Yv+qDj9bP8AbjXKggv8GC*>prq#M=lo#Y>RKxrq+5X4~gp| z;%t~!P5vOjNE?k66JUfk1u&4|JIBZQKCw1YUv40(KjE{R*d75$a0YfTKqbZnGz%Iq z3kY{s_c4tp5PrtUu`5!c09*2J5FY8oDoJf$84C&eK!CPqo7Z#w-PMkIboQ$v$=}~# z;-Bl(_q zq4SBDe0G(eg$@T#dJ)eD=3E?PnYa?o1J%MnwHxbeu`ocg%bR*XV_pQYIaFrhTC5AM zVuB)tyv76CM`NWhx08@Bfk?SJ8|ylDUk(p@O&2a`*4qnJ&4^ZIcI6U9Wp=ip_IrVX znnK#`G?lG67B$564nI~m9SbNZC`<4^ta2YLo6Pj~eYXlBRJaMPM$@KI>9b5x4GCqx zhG#(Y;IdR3gs9rq8l2gVObxiY9^oz=iwsAEC7|K2BwO$!YzO*-e+7 zB54H262JHQVi^zE4|Q zcy1&Nptf0gNK9l}?l_9p;{Jhn*TaOeH2#M>*0B0eIPkqk0>bzewTyKq^+OGlHeNN$ zlZx-D>4`sBA~rHLxAEaI_r6mVGr`0Y{POUKgAi%y+*1@JO|+0f#|!N|%{C(iaum`w zZOLJXFD{1198ztsseVdji3`Wafyc+LjZgQkkM)(B^!NxI99IyR@Fy6zr0zE1lPOF7 zj6ewVo=Kr~X{AGfvitMSL(j09r3X!T$F(eeP$J^PDF#k`HUW0mgUT)2Ez*jN z2e_^(rlaLId%$*NZ=3R7%d*hy=M(3jl^cga#*mL8rXtpAAjTs|N@+KKek!h$&+y)_ zv{AJp3P{Aj-G4Z$czoQa3O5ubPN48V_<(PsyIh2?)#-Dog-=ELJ+?qs;7*z}$fkQt zzsjbfE%o+8rh-04Fhz6T8;lPwQ;l4C=hPHoH0+pC>`w?W6Xe~}byV5JkDevsx!egu zV9^(}pCw;92I}Q3Dr$}ZD_XwjplqC>LTmbu*&i0c8BTPW{k3UyoKE{p(te*X(_CX?@%3E7jI08h13_LSM*t z5wLM!LzI&I9;uadY(}q@6w8dvIWiXh%t!`2niNnfjyvE_N z#3|-Qq>2g$!#(?~BVOU)FV)&q?jBUy#Z8csb?U8t!LeK8INvT#A#NFmSh+kAu-jbS zVC`^Ui1GUCW%9o9>zxr_vuW>^Pd+ zF4xNIu*lWPVK#ftznRPb1s5P;P#4#r6%*At(b(+jJRyJEe?oZ+z5h{34}MzWEV2i- zRCC}!3)GYcJ5yaDaa$lAA1&PSNJty&=DXUSZikkzLv|xwW$WCO^7tmzF|(TV+Jg=417Y zwcqdrj3~M(?rNu&WZR7vgC!yj#(SKg^m3%iJjWB7cWFF)Fhy9$S z^}Wok<(ZleHIf^uabllKk~8;fB0?q)A}%WP0S-lZTNHX)BlOiBEA7qPg4IkV5;Pe{ z%Vl&KJuYv5(l77!jGfG$xf1@g$F)5sos6wSj7^!b7g$rl+ii+-0^gb6dMo9c4SoEq zLhhS9-uaL0Cn$RZ*pFA|+}81) z+V!>-j=~voJmV9vdeNXYzFaZ$tHH)4ZG17is{W|+V#l;L#4hXd=s28~z8KPKm!US* zf&mi-HIsLA8cJ$NXQWYOXXEE6Q1EOBB}E^=Mc^SOCFYMREE?^Qp#0St5Z8gTq_XPL zvEO6%zzXHPqa1DJ;19$OqxQ{}a&jWMWr`=Bk;>Rso2X+Vb}r*t+$srBHd_mU1<&ePzuplE#s0As!y!(nZ_B`tv=RZkb_$Vv!Yr+mc~YI%QOe{*#xI zAF}NV@9Jgh6=YQ9Ur}2NMCw)|E+WnsiBLXd>m-t-vL0sDsnn;Q5k58-(Z;`Csf@20 z%BGDt?-6)!5!SAPiM4bsenXUoof0j{yim5=Ba! z*LGDKw{{BJmm>{8%~?#ZUwBLnY-vmY{=GsQITFDui=I-*uEjHqQwK0TE90OrczY3> zK2MElEp^4-oj6;yCGr|9yzLThXWO+gxF_X7gev!qWpdYURUYswAIzL+RT5TC`w4vCt5d6W)VIr`xTQrQRvzqy9P>wQctv|(igz0f4P7`8sawFU$ z0W8_u+Se>Q94L9S(HJ}e18Dk0fJ9sczQhIh&!MX3Kniq;vU~07?lVaIa34-bM*kt2 zk-p55b18bpXu^ptXG*rG{*ir`Cgz6}5-h;ZLhy6klXNX4NbbdQx-$2cV%b8IY71$X za46b1&rFcxwXdl8i>%BxX6#n;mL76SIVeV zDGydM_CNjvfj~L^UlX_Q13DVSIEHAp4hMRvW!&$x1~V?KH=&IMM$;9LF z08XPBm>=V!AQ$l|yVyX(Js`m8a{aZp28a!HWq{WJVho9@%}5W!V*2Q-J7@f7Mg(1I$p4Mh`EjQT-~s%5!|9;0&9!BLKR>Pi{rr9f z(QE`Iv5mPVg5|O;l_(J5AU>+-9)Uh&#rL@KErAftf~1r9vKUpG|2bjW#{*C4*8cnA z#GEhmG^BEvWarJ{4)kw-a9na5-gcs`3fCDLQvi}I10&E|QI zUOa%H(e4_mG=Ayw2in4#*NC1ja`|A7Ib{p>n%!|y=?foH*3|6{TqNS~zKjU47u{@e zWg;sG#P8DhLO=+k?0iSdwB-93HM*->&f?(}aPH~)V6U9(n0!@}w8%Yn&KI#4cL2LB z)YTtRH^H6+22{f_g^KVoh0*-p1Q!UFAKlz8if^$qgF|+tBrQz8J{>zl6f3>~auMQu<${*VN9xq`r_jH$!93a}^>zOcGGv^<5YDqE#2s_HBm2#eQdBc5Gg&1_c4# zwG*DLq)}7=K+fN;OWvEu{>5HjKUFc9xwxQMI4U0px{oFgXQ^WwhS~Cuds~GCZ*z!v z%cpt;GHxxo`6p(kmQ@Pw+e?Yxkxu@K-_Kh&NNv&#VDi>#Y;}NDG7YqV2wqGhL((m_i5>;#g+(=r}%H+J` z!V-%flm@4^%#ZcJw$l^5G<4Gl?MT|%w~TR(q0w8sh$Oaov*{Qhfe=?BwHXw**@5FE z-2^fJ&Efof%X763>M@c;n6gFnz}Rui8-n%a>dC%#v|K%74R^)Cpo zx$JLr7DzluEf{dV(qBy)->UWTbsSk@6T;axpwm;ie?6)X9IMmA013bnS^&NTz~T0c z&NAuITp?sVbeZ-vyULleLXve4f#Ro+7YZcSdL%3~g~jCR4@t!G6uz;d-%aU|lq%tc zlJXr8;duw{kp=m?Dfow}S4nvf)>n<}s4$gRD3YAG7so2fGwU>G7~vkSxai}gOmiTW z_-P2$B?WLhEUUZ9donG6`MB4$`BN3Exfc}FXZ&*#uC#QP^~ zBYr=9V|KQj(c&s?Y4VH%<<+a*kWorQ5XqZ(sm3-P*DBuP^M=5GrUf^E zWF$=BUgvFGcyR#S9{~VRX%f+xEcxZA45d^r*&sI2(4M5Awunh*e zyW2>Z%}oI3?pU)!h)R!M)b}cfi`J<{1Lu+%Y_hr99w)Ywn>f-wgzM16F9y_O_?h9j>~YTL==Q;bDs1lm#>I#YLDm zR|8OKCpC3h-#SWA?zDJ~Cm=0E8Kh*5udbl}$jYB&qsD*Uab?^RuW!-gND|0K8`7FA zmJq?Mr0EBy{YKJ?%)=BOZ5QsywG^5F$exikvw zfTiV`irrfL(mb;}IH&}0%DMLmvPQpSugAK9DnI0xwVsrD-FJphsgP@rk@LFRYLA;H zPH*_`Npy7%ujND7VNbOEsJ|;nNF6=x`FV6Tn15fOVvkw4n3e`ovsQlyOOAGvIEH+2 zBL3PgC;A>St$bBESZ2I?3|)X;ux04dLkTB3(Ez5w&&j9b6-)Hh)MQ#hrw`}_Zf`oA z<6vb^A&7_WhlGf&$=t$d!_f&M$)|6v5~ns1KR4s6d1;eodgVU-T{Z7l`GJq7#l?2$5N z;|rjh3$SSSM}$kE1EbT~;_oy43fsTx!#bCQdvk~5;MLi*>X zh8QNyHKwoLF#jpj9+s_?Pl?Np1Z~RKJJF-U1z*D@TafkU3#=6iD(ErTPdkx z^`sVX)Bq4Icgt zB^VGcHed4fCkf@4#P^fj(n8OA$li8)t+~6Cnfix3PGLlUxq~CYYwFB8$MYsAj&{S= z1Q{VF#J|VLKXT1=vC8_95)28#bh{-`erXFa5D6F*L|5G&tSzUosORXDq2Jux!0tgq z{m;kE$DJvoW9Z(iwGV4HpZPvL6HHN@?#U!F%H=_Y)f7tIeQ!1R&_nuxJ~lG8X1)+Zj?;d*t%_+r$Jkx{Umo*6_E#71ssmGK5mb! zQMKK|$2_y$p^HH9NeL{cl;RZ`v0_uEM%S$O`UvtlmXZD`@^;Hg<=_HG*%iSrhGr`$ zzMx3q=_&jn$#H!}ZVLvCpBNb~vE-4Kk^(17J83Z>r?6_B!CJ3vOtL-Be-o$Ouh3VP z_hY$jO(eDNRu;vzWHdHm4f%Dz^caQ@B~{1Gm!PcI!-i-KDOUoCR&{s; zBO2sVH#-!co3tc0?I#nqP|D8#4YRE54XyHy`>Q)ZgTzW@Xs7Z-yHSdEe2BZduZc#F_p>_6w#4y*B$ zRIi~LaG}yT8_YlEJ*j)?^KNGt`f);3G!cP;^0jecqEsmYF?hPT<=-H~GqPteFtQ!b zh#T?~H;2_{PWbHfE+CbRhWkl-^BS<6;R*hj*V-y* z8{tZZE|<=zH#j(2d_FEo-^c@`ihi@(UaU0s<>`w+>rg~S+H3^(D9Dzn9DXL-#U-6C zElDWTbX2)lf$ZAFPT$`Sz743Uv)+3@8UL9Cl}`c%02!0W&i-7AV_6xfVJSst`csgut@ly@+vPP>^)QbUn1Zr3D zVp_K2Z$fjL7j30T&LWq5-r+qL0Uf~#hz)5V&2bIsxgD6bVXXA*CUA8x03cINZ{uez zJMQJBJ49bEE66zZkDdWwFh*IoXqO51`oy!s=PXY4P-mbLmltDK&=}8G? zFL9P23Oj2=DpU&wHt7Z#Qrapyo^8v|&^HpMz4+z(t11x@PnJ*Rs0`vYbmpViJu^k zR{#`YOFhiBx{!qJFnzkyk#Ve0K-7RH&>S~ST^>rUqT}(nllo<%srjR;QQo4j?h*P% z&giUGqD+Qpy^%~p`HTupt?2XpP*qxO&NxBQjFO=p>n-}|FB|yp#)jdB%&hO`CA<3H zF;Dt9f8>BlaA&2zZs7jiz>QOwTP8VJtN);-d#|k~PLTYyu6CRm+4R2eqTu`>2<^s^ z;6p-9_P5Q0$Ws&D@s-J29{@lXzF;CTWIjDboDhb#%x9_VZfrh7$70^z|34N$QC{LN z!GH3gRU#WI>GK!U5PdEIfF$)fjY9a>YqW0u)m(=_ZYSEo2B6J6F_!Ms%MSaI{_S%B zMl`Rf9zs#!(Qo!^6LJ7D3KrNzJAsSoWp$>IU6`kzc7UNj9QwH>jMb|$cIV4?-g%p* zs2x9x9BIm1W;W=Bn6+Pankgq})ws|B(s($J5ZEiBZQY_ldbH+fD-Q16n!Tc>1s|8m zo5>g!%`Zc)d%bY7aqTBRuNMvlfcm_lxoH$l3=}-9v!B)XuE~k%Yf!p*f@FpPPTA^O zOYP&!fg@5#k=|ZS;d2Ms*-y(d*8u=x0m7BEncRtH>OkB#{o`G0tLN7eHaYUTLl;`+R0>5w1T@ zXhbdYJcQj+cka=9atO?2LCbyk$w~!;q2HJ2!)2UqoOV|&=*WHy2MV2=edcuC!A0et z_5aPfT-`KjIPH4cdNUKb4rfIc>I>Bcfj|@eoga9KA_Q@vA%u!7WO>R*lytu}ZWn*) z(@ijo6u+5f3oV&?j4_ef_Vk^7wDT$Z4nK6!&qxgA_hb}X1Y>jzfWucL#u7GMfd=Z_ zTI=-fvG&EyTaNd2o!9sE!pyh%dfls3g&6?o7vjUg|M~HpyEe@Q5DcYIAlNKizAd4L z3Hjbv;sP!yf&w^$Fm$tS2?@pLD!{V2%#!k7Mrr-p> z%7mkiqfJ*uI$%vHdU_TmCOTXV3(inO!%&A^<0c{w*xfrhxrD>_fO^n$KeEF&G>9@J zUm-FwkU_9xFWmnk;S_ZSxr*T+3M{htXzt5Glnuu|fU#Rg^#19w^M^>;V|zt^E?=$T zqeihB)jE#0gaK<=fjw5md#nwv5aWg@Kn-CBtkZ9xI0YM*+;Oln|I)shari1-o%6*N zpZ7cFu9vzRTNF%e_XoxBb_mQ$<+eSmjqlJ++ORM}Cw8ZO*vk<-8AGRDa?LCXLE4#M zq9-*Pcw0mM1CI9@N;0a}X*elGp?m&$y6JumY{>V7kGG5GGdK8toN>GEyU`JS2>Sd2%Zx3AhP4Ei?oQZGZeSgIQG?!FL=BOT#5; zk(z6$sn?D+d?6Mw#h=NJ6QX5ZCCVMDi^2rJN#=ie)Rthj}K`ZYHr zsDE#^ztt;4@3|`H5(5GwuKHsomA0NoWsDg_u|5-?e$`PVnW?bZTYk$|0&#@IW2@|x zf;h75v^K3??5|97XXIPlVN|4wlUgz-dr1;md|=E$jFSNLgMi|rCc{FygUo`g;cVbw z{EEgCWVt(UYRs7EXV8E!$Ky;_aWK9AfeRPLmPCWtncQtBefv7t9&_617=3VLOEG$5 zB0eeU)G%+}HV=XeKI_)K@wA4}bm~A2MZIzFo!^oEbcMBG3F*;EbYY7_6$Xu~ zcDRkN(l=wasa<8E^fOG+Sm34>P!2$0Wv;HU#QF(IjepqT*E(H2Gv=y8;cf(>kpESQ zRJv->4NsHm8JG(S^QRI#Fak|9qua^>lNTQYonYeOXT|G@sE#DJuS&K?N}1~ZS{RD@ zMEbj`Ch2eiISPW6!!sN~lp@0%POCn&xe*~h(RT8XuUO|G1Ad;9va-75agDst2H z)gk@o?t05f!_sL`MTgH*7{TGk_1%efTLEIz8BqSl^2L?rt!9}DvESAr`SZ*>iGdRV zdIctMg1gEUD7{|895^$J*hnmoj+TWuOUG8_tBkOsJtX{#wdJPR>14c?K}aLjnF0Q<*Vv-j8?h~vmjHIGh#1;X68st zYOdr5N7do6K1-4n?*iV?&s>_ziS3K%@iEwnZw$J1*3|_ge}rMGmT7wJUO)-_TA;P? zzYUQFK?}o0N&d(SZt0q~9jgW3*`AOe1e98Xy(#Vbzhnl0_;%B{YR#6V_-s&r!!=`fc7cAj{ z@Z|b(yI)x6A@uby-)l_~@bc~Xz#u4ebuHp;@QnvvI)^#e7%0kFHB`Bi8}w#Xar&R4 z#Fidvzgnw7hL8K;ihZ1-J}gsGFl^xm;{HF4o8y1zjFoNYkT+8GKr&A;U<>xXb8 z#w@fsmPXyKj(^A3{n;XCL4m^KCEekscYSeUPhF|t0O{b8-c(a!{~MBZ493a8U*Gd6 z{$bMFOO65@OaN=lnhD^)P(J)1ui z>32?NV%2KlLMv2-m7?)``xzPxS%ATNWx~zQP3s@DhTaHG06+tR#ql@)B&$o`+E8bf zusB*U0AQx4W~OYc)VDZ`@zIX6I}vH=tWGBI#c1L`O8spJ)$r)c>Q8T~Qm0GsdVCQ* z6;!C*hwY2#v45@P*AQA@AN0#)^Z*EoS6(aLAUk6(hUug3^i0k+wHksIJ66hm&Zcq4 z-klZBn#n>nrm!1E$>~YiN(Ak>Vi;qQolqj3{PQ;tR)QB&u{%YI!HQ>9em&n6dG_=v{qvOnps*+xLoQ z!8z37;GwbL@G|KNl|1@FSiK$N+9VXLuZarNZ#Q@^&B#0;Jqj&Og}9X+92%V*WE8zB zXlv#^2i%kz9W`+wk^ z=6MshPwVs{hTXUz6_XM zCA}4ki$y~N8TM2{;BoR+Zyi*q2Yt=z8!F(4@FH(M3JMr0o0OHrfjYRHN})#>xik~= zb()@3xW%>0QH7SqeqKBt7r=YcI?Y*>U*}%?viWYjxmY-dxIB$xA@WVmc_VQ|0Rv$e zPXmAV<)-2Ka9pn6Z7nl!|9uT*Kv0kwH!_0|Xr7uX^#PsZe@*wfT)tVZ5*1MsM=VyW z>RZp#_SrL3l{e3M46JRh40zq@kTfoI7m@sVI2of`gFQ&>_iaXF{m9XsK$m>!L8vTb zQMA&$9k84Gw~L|ViBCkzsmyptR`?0ZRV}L%#R3e0AnG9S> zZ!bUf7=OuEytpl|;AIZpQgCWapdXN@gM-nWnWt@-t|q`E&+;fLn_};f`OO!uzgCLZw&yzirHozS#&9i zSJ~CNMl29SVKrN;3fD)2kDR7ByJ+J`*1o8x6~LF;9|&BYJ-Y27u8c@iuY~`we_R>_ z&XHJd;2zJT00xi{1%0bi-KkT}!ut@(6hh%%9Nf&dy)aEQ0p8R>B!xPB3HT+dp5;>2 zm*VYhc>{J|c1_8@d^e-BI$R&Vt_N;xm#&34DY|cGbb*?@G|o^=e$kvU?`I>38IGk&bG zK)2TO&fI$@v!gbo0`+LjBR^B0O_lsEFnsRltJ|#T^NM}#p^;kNeK&04K|5Y;deI3t zy@sPT_`9<4^(k>uib--fcRO%=-5m0()PMJi#52KY9R<|6b&XGydPo^U6x08+O3 zngF*FYuP8eQ0JY|{!X}RiruSyrYWq}k2zicRCc%NeI?s07=SX_bt;}qY4U-)rMp0Z z5Tk|=gYt8SMBs_XN=CsF-3ktl&>GSfW7Y4yFyjbU1yWCc=(t3)BYV-QF%2eVAhMKh zZof}U`w7amkV(D&a2ZWa>aC6Q`{>;8B*)5p_!|i|=G61wiUXXUw~v-#Gdf(CV;BED zoK?e%a9svWC-%cVv+LVG*doc|1&T&TXPU$*A5$e48{<|(iPG`iFZ$&E32N4lp7~5>9^!0R}-u7DPoh|#FK%8qw51F`WA}Zs?z)R5SU*RQ2rg6s6Kv|)Mz@C zK-Yx-2u++QyZ6l7xu?(6aepEGrq&Rt$7}k1IV#W3j*`okvVIJ~m9I9ai>>JS;abFGWy(Z!j> zIx^0fI6|2$p5n^!?YX&K&33IIHo)3QYUL&ZAKQQzG@!Mlq33+qnTbQ$Se&bmU7PdK z&RfMkjWzT>wnuh$rz}GuKDj|3&CelBkv!c*%9%#vY+(l~Pau1*@J}vv#m4w55e2`X zT2K(Gr;BV~YUI&(khgb^Hu#5GNY|5Bj}eb+(OXJ3&h*~L^awu4)L{g9v$ zq)bG8cj#j~Pv)u9$0s=@s`m5CthwohF@=i556)e7gqR8Ur9 zDLW<;SP>Hb~3_i-*KSBv^%8r|OSww192PottMT0D6Llwp zO{tWkYh|?-*Cm6%!gfN;bMX>N>5_P5o!DF_Tx=!u3%#sDf~5X@T&P0&@@KRcDYky$ zS=4pzc`*F5Z0B!D35Az2>-A&D+8O{$0aMmT$K;OM`)CsoIwD#z#e=Ulp*>*32C|AN-j(l z_^h~Tcakd8;sgx4@kQuHOtotZebLi`Q3b1O;Dm0>4-xe{YCeQkZGTOy*V^2{-n!5) zD9KavG%0`)MuwODRv%-1VW#(NFTRALYICY#)B@Agu>*`3oD9th zmxqykklD1(4;EGqc*NikZ%(K_XB;Nd##R*8p&|rc6IcTZv00$`TL+*H9!3jZ$~SV< z3=38;t;MjlEZ1zX8J9D+5sj+7vYxePF%&FLzwd0+ZG14t%lj1sB7odw06J=_7+#wk z?8msG=Z_2~>@%f<0)jDSsqBt(KQQO>H35{e`684(v<;8KuF1h{c=es;?6&*Nap*eo z|H9aO-+V6kjd8X`BZ$OZ7m_I$K{$DLWv@}cSYeSf=6U8k`gSGRdA?}Yr;G(Pm2ChR zEK&K1L1t#)=>fjKwU6hfIOz+{)3Aqeylu@%r>HB~ywe*Vq~pG12ptr^izGjUrR9L_ z#FxVnH65CXb+cMuMz>r%|rX+<0^nM^NoYV840`=L@(8*V(VEeVp?scRFe^#r2L1M;uH5 zQ8H~^*UQG&Dg;t*_sS*{4>2Xf)Xq(aHUb}4y61?IfzCw6{scdY!7ZusFEOAD<=dfK zUH3XO*aI!dO4XQC5=(w;Udz%zkfMwR5@by*#(D5(F7|cUvFY)-bfz+^QNN@d$&4Nv zhRLy<-t4L9jSTUKY&H}nZjlJ@1IJ(2=hQ?3XY0%)DlNd2tW6JA}Q5w*LCY_2j_4Cuya9g!eiq7Ax$kr9v+leVa zgke>4)vT+XDMu9nF@IO_v6KIK!^03l-#uvi9mYX+rE*b?p5JlXT08&n+0oE;>zp*o zk`MNfpz{2EoP`u!1B)l}y)h3s_X;J>(KBG&<0-uB0h#a4AHx!vNpS zNhqi0rq*(Ka`O|I@O-0ZrXD*pDNc1-NDE@YA%7EMx$Cp>)<)j>-fH2 zV_(r81RD%jeK^isU%{mb4f~SQnnXm#bN}gfcxWhp5@@n+!&|&Cr4OYZ&eN#A6KE( z9pny`p&}uOJ6FoQ`4$s0?mFIQ$Yk!y8t3H_=RQtS4wDw;W`o_C!9#UYws<&lxV1%^ z*K;BUwL{HmhuOK)0|3_|_`hq(Opb$1wUmoyJ^7u8cV0pqJUn)3>W8;*NaoXYHz&hk zWLOQ!bUuSzi~nGvj0Tkx%Ib8x)~Sa3G5Y=QT7(vMV-qUX$5iwUBi#EWKB?hB#^ZbI zjJ_vNpX?xyl2Kx7|+2tfr*m{ z<-NB!yjr&UeBC(e{v*`?=5m?79K^K-04Qa7*BG8;v~^q0oLW+m_=Q?i+#o<}@lk%W zv7C12l(b78->ninC9#G1v{Rg#1)#%*nwN%0^;GLK zM;cGl$CU@tALkvr`?)p{?Zcu6I8k*&>l2?`32oN3thGP%TiEVbM|46&bVen#kSEjj zG0(KoZAm)H>K~kWoQQ9cn{Obm>dfdkDENsyzP+ zeYuZ8N=oTqJq-OpwBCO7T-x?w1J$@Jkbmlc&f)3&-Zyf@{;d;!dSkrS;>mmS?TQO2 zn%AhR(TTG2vn(JAs5(=qnZ59D{#yHEi#7@}DnrxZ_R5}a6?58o*dA1w8FUe1lZ2&e zS9dGh#sz?vKF3eJncb=N6U&aM$glMI5oK=p*R1a5=*NMuXRV{z#TYLk10>f zayMaFzkcqjltg?5CjkyB^8>sZd&FX&lJ0cjyx7c*^P%%CPOdc$>(tuDEo|)nr3}7+ znV+GkhDYQ}Yxkm5iWkqeIjqB=Jzr(R-hfkUUtKx4W}6VS_eQ2Ufuc%zM7^jiM$-E& za}=fd?+`Ti8C9=r5TS2R(}oKGCn{;Y6-Ak5 zkxxqV{{BrQoOwYWsEH32{0>Kx91+_R<@bi&2~kn~KjJ>PFu@+jm`>h1O_pk|q^bgq z#`_*QZiQ`0`=AUT;5!Vxil0PdK6$1)X-xDDHA3HVxmc!pA}utzBO)7PYUK#$(PQ~s zoTQMIbPiM~?k6u+pu%AGa9*ixpC`!AlnJ!MxP;F7-qyW2qLE`0YGToG&fU+gWI-5w zU2z@9X^Up57UjE*Zay_d5HKRuX$kb-IDlK9MfA)E87^TsA%`46{uS-7cQc^#XQswA z5)S&P;MMA7rlh|y;Q1TV*?;91waG6Ddzi*}J_+ha#^iQFouF6B0fjpYu~eDzb-B{} zts0o0K-Y%YRG=FwbFLat2|-+kw!wg$w)NpSzzj#eJf1nPsPhXSuTo4qC4FAqlJbfr zSctfGX#&jBdfK(TK<=dvjygY@;x~lWTA$_ZZbQRj49UGx|AV7t8>|1GLN#nKWqtZ% zLw^5{1?fBMK5SqfRUNX7!$*DQ7nJJi`8S4g7`<-nI`DiDsg6+B@EP3&4h@!C|7+aX zEyC4Dx8A&xIZn#eQLNj=_bfb!nm}Vwl%h&IR#P?aB&BwBlX-U~tAa zoG&7qN%nqZXBuLDZz*^PT)`f|igU)R2XoUIL)J}nac2=!$qAE3Vxa-lR4%`}{5@(} zH7~Tku)5aUT_gekA4JRX~2f>7z_vEHy%|Cj}zD~+3*V+R0|$6W|SlEv1`xN_u> zH?`Z^Ih;c_RV*hYRH);9I8zOKBX#2oKJ}Aeojma>l&F8Um}}y2!L(GX(@eIBsFqbz z;77%Zlma0(3DR$D6qQ-*43yt5rd5<4=<5`S@)gK+Hoc`y3jdzHfVoMbpyEQ`PhJh~ z*(tuc6lA@Vzn-?vhBdJK> zU1_mt=rS)V-ag2;~gfJu0 z#0L_&r~s_NISN6bs&mfsFwKgyecON@xFHw^Oh!f+DP~dJtBov3wqY9Ta1s4D)1 z51=cjxx|J%CZ(cDZD8@&u&mt+1DwA;6Ac7AG_cSLlOCQU43F6w9eWmtNWNP?eml!D z@~UR^1I|7qjtvLf!y{ZnHeZk3Eyl|>t)Jsqj?XdnQ$>b>7%F~)mI+n!e`jl0 zD{2f~&?)%1i#Q{DHUlZ8z@H4dL`=-gDg)8twdVD^7aQRC($ByUwcaqLT34%&$@6A^ zJRBk+#o7hU>j<}c#%-d*ncB+PIXX9+88FAAcdwR3kxXX#xuTQx!}HB*xP95NwmJPQ zNA%0iTNqA(5*nl)9XUVSsb8W=Yf$1+KRwKydX15Zg+4}t_2 zdw#`s`ZLt_*aY|WYe8*Z#1kcH>gL)>i)(s(da)!y234uF<64QL#ce)uzMKg81#wEo z*#PJ+!3Mv%L+;xLB{gzFD9>VJV~c_QC$S2;)j#*3w3a+P>Z_muO8HCQO&kz;Cdtr- z*;;^aIVnVpeGX(I&y4vizb>ZhfCXdrYtoCnWMbW|TvdoRVIkXL*LHh;12d%SU|*M| zea{i4+CB>R*_``Fv}?O*rdHJmugfCILz#_fXQ~wSAev3jSUOT5DgXT9dAE*=v2DXE%BLbE%?z~ipf+; zdp>XrX!xXrLlM@X2qhTn!hEpQC=&bRR7J)(Qp+&2BwkFvch~+bRRB}(xlufLSpG|SL|cjNicoL+fD22jpx1&&cM)P%GW`_N_Q8B zm7qHP)1$n+e(QauSO#55cKTLQWwbb3v)r;^c6k{J*flNoLu7yn&%V6cxQ|zUsoWf7($s|%SRNL z1@MR4|7(P?(+jY-+6B9p4S&-8wU0{zBava6-F0wRFwIwIP+e%^7pqfKeP z5~buP20&(9s&8nusfquy>34|wy^ zLOfC2KY$s1*YTf3X5akSO3!sK&lyCgPF9%4ugyy&WRBlK0ZX$ap+Ks_6E)!G78L2L7r2K=h_0cK+UyDUVhxwv0^A zXelIb()7EEc{dUa?0qbzJCt57;^)R=vPF$Of$M%PRev~{2aUzO!ahqX8D%|(H)EUe zF)wt5e`oba7#^Bt*2>yj;3Paf=y1;rB%LujSbqvMc^T3sagS0IJs!*KT=@_z`B?hv zq@8`AMsye)5(zaxM^rCd8;$dAGx_otKLT*fdQVY1#)Ge#3b86cCmRi{20bY@pOMR#Twqqrx*QRJTM&+o6 zX&8Rr>1kiqc&FEk#!J8|K zdBUcXS;UGO-|DFP1IM5M5X`5EwmmvSuk6ftHDp(dY&yTKCT+7(QKs=eG zo%!*IC{g{1?cReF1ByUC!uUMWzMc{%Ls8evzx1%}<-~p~povSCOl@`X+n}$%fg_Qi z#s$*s#X~syyO_oa*(`AKy{mfu7jTGU>9vOW<@yXqRAG`b0t!aw&mv!w2K%!nQbKVA z$I?y+5RRMSX^Z}MulJ36Ts-mlX7U*H56X*9m}=efOBtpr#xxF~rL6hSn$wq&3V$di z_A_JhICQ+A3d#YJ#Q}~E3mfWjsh?q7R!)_F%p}8r2#5vn<7SQ|YLi!AXB9~jdl4!D zjnemhfumaS6zBLA=Y$%0XUY`RqdD6&_K`0YMqXG>E@mBxr+G^A5)LfyK2?4vq|h%} zd;$*bBl;}_Ly{Ok0X4LYUI@CUzpN{J>g9Z`XzTfpw>u`+?mcU7)=jLrhE?uvsj_u3 z2ACn!f9V$^iv7b&mVLzbp6&eYGG`qS&%b|x2#`xW#W%LC*@TO=T(*?^j(oxk5lkUr zM3O85lGfdTuj7{$2=gSL%|VjTfA?cxK*f?pY7$0&a2QhVFdjZ+HSn_8e7;ORBCZ{{ zlw19lwi}hTT#G!gUYBEy%E9Rf<1KgaSrzMy*IOV(J|L;yw0lbZ{=1#NyF6FDooy2a zngoT}hdDj(Jy*ch&fz{)HrC5&ka(pmf9N=lJ!<->goJ zKvdo>%|8dYP{;S}1Fq1uAbiZ5hSU*7`ifN{Rm0dn^%qX7CMhI<=;>(ud%y-Xh~0}C z*P7x~NHK?>hc5LkteQu8&krug<%on1f_~zNpc2L+lKV0qu()vypfvXRNu1Q1IkV1# zUysS>iyX^oS}32>?pF^Vuy>z7^eZfw3>Ez)7X}&%riq8N|E#Gt1q(TZ8d+AMbU)pX zs!}1H4&N()#}WUVYHz7{x5LUS%iHP7%pvU7UPdc*fR#qgVWT4D&>JnzpbLg_N&}1z47nB5( z6Pte{@N#cW=)aD11J1&&j8OrA<$-%ug^KxLR^YtB$3IX?H!TGb{K%K*{JDX)-|m)c zvfV~zM8BXaf>e|RkqN55tUb)M6h0lQUpzl^TSaKqH%+XMy6{KoT!#7&t}X7y3pY9e zF~#j%5Cf2@>nnOoFE>#g$q^F;r_Dkt$O9Yi1?`tx<0s7+`OeyKM zZ|KH_k)ep`BBQm=1z&cb0ltAv1<(BW+tom#qlf@Y|J z-oSLxD$h@dQSH-31@M)jI2@WZF8=aERz~Jc7acwoj*O8;Y73&PYBWYwWy%FASo-Qr zzy81jVx74hf0%>ENx0u_7={h9zl-ZuP8@!EbA62_8ypTr`iSfvfYCU_hFsiS zXXaeenQvvtzdnr5LKb5hcq{e()R#2b{9{!MxBGyL*(XRXUuC76sPr|AQQu~P7AIgJ zgnxVQq|5eWaHC{(NzQP2425g5A`|{>4TYIK7}t*EVSVe+n4KQV{lHZyJF`AR3a(_N z8GF&{CxoC|Z`h`0c3qtTHdE%Tx#gub&s(vVQ|Y8aH@y7sW(SNR%AtxBVT!Z!?x;u! zGWz%Z^uOohc2X}RqE%t)pL0<0>~y#*)ppMHv}?7)p8?Io&7*P15<$4xk_Kn*yxMAu z8IBitLV&Z=mEa)iEWW9>=tw_1HDA4edRCzG2a6020-)Fdt5BgyPvfeuEBT|Laxsn$ z+!GUK#ETQt5vtmkK$w870t&)UK81NNK*`GCFG4~qNuQ{?yc;M)9w3Nxi)0#vTNlFz z8bf)$(KcVM)_HAK=g9JP4V}PApI~3iQHSxAkVy4N#z|b^n(yp+`TOeZ>Nx0{L)=9i zPC8#*94E7@ix1!n6tYbbI~99vZ^qwP+%kZ*L42i6q)o)~%IvhKHJp$n27FH0#}yRz z42}v~YjV9|OeYw~1AjxItHGV$)BVVLy3DGE2VRzklGSiD%G}?lT3v5X5)-Vj0*sZy zyde{!VKxc#%t*&)5iS7O^Wb>m$+I?eb^So zvp;Rq$wqZZbEO^^10xYSEVZ>hXbNCjl9@T}eIwu{BqsWbU*{O@H7=d_xa%u3_eulj4!nv!Y0yVxILBfES zSSz#FRPQW})d9uh4@wr^lqsF5EC4HXx!&+q_gn$+UmF!>d@VL_e{_mvuZD88|1}wy zG(FH-LT3;udg1S|@HZ(|8fA1a1SmLMbBm6=&@!Lg+ckcTZ+1>rdOTk9zep%E)mNe8 zf6%Dc8-Anx3b)l3+b+RuOp4~4kWKH*@&Ycd@z*znX4=1wUI{e#0}0S$$r}a&GbsN> zWh4I$8NN3W?_=;{&Mmx=&$S~`8f`;J7hZD<8%FIlX#m*5wuqtmU=2@4ds#&nC27pU z287-(6H}W^Y&48ZhvsCq1oK;1XR0ngJYg77NtnYs5%y_aQnkd{kQP`H^O2Pe17~}M z1$@=$8rUfw*Tf{B|G~LzY9)wWf4Uw=_YtHY-Y8`(kC#6M5pB004ouf0Q?a-Yxjgpj z903MXUc86c;xIc*hgDME-a@e1Wwbc&DDOn$@?3zo^3bqxRkvnnH7;hJMSk8+!WSdeqZ}ROrWd9Kk4(iZRj_0TOEjLdI7`H`I zh_f-zJqu7e<&ao|$1ha+skXv0vjnkYhgpTV*;Un_T0)_b!mKFDvw#h(j6wggxREiu z39gRCg(_8Jm8kbf)b!ZTu0AwD9Q3%-kqpL*+t8oHI-kTTZWH^xEjBP(8R6HT%VP~l zhNP@T)7@!TPP_R=j9-t1hp@4B#FQM=&ktC~Uq8Kze4e2GBWe+Y6TCSUPY>9la7uCE zwjMPWuoZvOV^czd07h|>A10(HI&Gs=HARmQLd{G(y_6j#$5rgh)NKJr&5E;Q6C<+T{4MMRtZ(G-iV<+ve-u>S+K z6l23UoJa2Kk$#RZs0Cmr$SVZeoOZBMt9dJWsL2o^bk;12)<=mbYS<0T3LE|=4hj1) z-O(C>b=&LBLqM58EA;vPP5&DQHsqEM((dMx)5kncu7Z%TWhHQ@#vN;x;@?&EzkIbr zB@seGr_U{mQ?APb|NAF&lMPxkxp^A_ES0~5ggpk#m6;`6b6*tLY=g|c3KApFlX zrEOf9s;h2GtJSxR&L(3keb58=%A&z6Op7gaB~cH{t4q8ut)mpJoui41H!pXf5Cuvl zM@L&C8)FC`S9=4LiuGt%B3A11`LY!u^#KWu0SSU#f>MPRdcN``DDblq0RjHOa~i1% zA_Zx#fzQ8wVejA)-(80#PVhIvNB@|f;1U7<|UOFzlf z#W_t-3@NTx{1xZCMJfdyqW7a9&^8**^rTY)NKF3+Lt;w+pA`%Q8j9RTYpC7Ed8v^{ zRGU|hMv*C{NMCTLf?=N~b8aI3I9F%CH+A_7#PSf1O96Ho0N}vBJUMPJ1}6>-IKAKn zU9*hsr{Ys4|Cr+BTlbHwxY_<&z)iifTh#qa91Stboje`Y6%e)J45fm z$}qfQ8GHSBe4}bWKN;qhgeko+LIB7Bi&z4@vgt>=>fC-jA0pCDK&}E+z!z5lPpHFT z55{4e=R768Ta2Tkog@YX(>E!R?xb=00j^DaQQxmh5sCqhp(- z`}z8QMK`hm4pxQjobg1jpx@rkhoM}txb2a1;)TcB>)-Y^cuvUz?^os9LPFbonJ+7# zp%e)R22o0`sf!>DJ!=yCdWsprTRj|cH3B=-YpW%?w7oQ!#*TEl(J%ZMVh!vF*d>wz zAqM2E_ReP;fSWe<9Q%6H^h>c6Z0#W%;J%*5w-GUh6GlQ6hbG5eDh|lDR%P|7WUyiX7gYdpTJ#4;{hasdM}& zj|cfd_0{60fz)-L~9UrH5|E{eu`h!XCf9G8-3Qs>k-CX zFiu+NkAgHr_m|f1>B+mfUmz5aL)!m4^%g)=WhfBTQgN-wKc~(?jY{s(0CYvfZ=Y4k z>gvR_W1`3365{$`T!;QArU74!Ou5VLp9x@slvvpL^J8CtXgd?JOR?dr^M)Q-M8y8) zwHPS(!Do|SN$DKl^cyPi(hqbbMrfsv}MbK>W4b&t+b z|6t%dRoy(^rDgO>WIyW)EM7))q=R=D7d~+Z1;l=SLZwLgD^RFCXTCrZ`+i4D_P*)7 z>#`cz+t-zlex2S^p_dcx{B~4bPw=bc3^qv$Lpicbmze-94B7jHyf?ji&e)(4B#19A zto-PNu}pXb z3w%8y!Viz&$qELx3=^Lpv;f~w39)EAjR#*vRq_N{*e97s&p?{Ew|5{mH zv}an2%UR0VB1ROS_@m;11xp8a@rDRR)y9{%k5ztMIn=hDh&YswsuApNSQN!M)SH4~ z#v1NDw%cyWNM)#iv?F}wNYW?2wRd?e)0Kh@Nd$K~BVA{$anCFtqVg-)2J#n?UIO;kUwg(e6IgiWE#F$cW)t7!W3+2w#gUB?0W& zd}onnUn~&D?1F``O;X*SaRdM+@351FIh$JLCQ4kFI!rWjhV0*1a~?!cn>7 z0~Z@wl%`~z`a`1fmMlkka3+lnzqp|s^VD9V{jLbX0X5Dwm>sp0?QMdJI{JMl%E+Ti zSZc|fl5{qir^1coG~}oSBDb!6o8J)$Vr)7c13r+Hl5qgOrj%m@el9ss7OFy-QR(cv zKFE+m_y1WvPvD?ow=y(Ws!>v8peFFh7&0yVqrcxxF0fgt(51rpK54#RWxF0+VD{kA zkbZSNR5(S%p4~EFbFji&^(I>*eVQ>=`gl2$9d4~ThDy}bPs)MkTt=$ zcvS<76GU^_4@*4acava|y1{ENa?UJ)h4oe=>_v3xdkCic%Qyfa4En$qacOs}u)ldJ z^Paq>SA7FKH&kNCj)ND8&wzGY17sV1rwqR%81qMrZW<3vH}%AXS$`$nDmax10|3BW zsz4V_Z?SO;l3o@gHZ$zM%XPw&kC)%}1PX_)Z3C)e7nS29=y=o=BO=en z)FMhTz%#34?_fEheaN~HQk*nduha=&aoJMcjFjH>$>!v(>-=`ML( z2OgY%0*|DFPr6zn$3v4k3{>16Sh|fLl@E!X5RZ@<{&98pk~UWd$uxk79x*kCn;#d} zPar)`R9GX3cs_$;?V`_oKP4-L%%|U!i6E<%_!bAB3c&AgEgk=z%tL-pW%n7|mH*X5OX=gDqnB5I5A_@bN z5APP6Xiu^<3P=p~CKw`{n#28oULSQ8*1>z3Td{iB+aZUsLT<*_WQ+iCr)nPG`V|jH(}n9Vr+SWva}1ey&Gz zADfGc63RD?mHwHO*Ork;;&;D79wr20U-6=#ikaS}_+hl7EG`erakk#F#@#nHRx5X! zi%#VWD-BlS8B}hM@%31dee9`tjFP>9@A`|HqzAv*H93aXi+$J{1M-vBD6b0npB-Bx zzG}*qkv2%USz4bL!BW$8$3itz&>%8ofl?w7KvG0dB_k1~o5A5ux^PsQrL_uyWhX=*a@R9K1xU$GF=gjY|l?A z;1_GiJ$z~Z&tN{r(ae7QiYCWc9_Xo$LOHiC{mtk{W?nj4W# ztX$+hg$+FF$07V$4$2#x_!IyM=mMo>z(L&sns!`?0@WD}j+>VjPu%wTk#%|ggPE*A zBCCNmIiQD{*#2I3L&!_t*B+EjfYIsBalxG2LZ87bXu1>iamU-gjZhU9uj{qcic#Y& zSv6^qc@x;FbVk^^J9T0!e}-(VJGFW5*=OIh14l4)Hb`IjgT2Mf3?~jFE4~Ka>pLij z{NK)U(`CyhP}YlW4|AEt%MJHp2P9z%w1nj!kY`_3h~{uTC7YoRVxKB+&u}Aq+xkBZ zEvoJ)9Fr_LR8=DvM3D-#p5>GU(p#KR2?T@9hZ49omFf9nHZIhV!kR#t@c zjo$i|xO%thV@wyX>^IYD5jtt=&n+xFH?;(n=1$YVVyaRHH45HZRV$m?!|X3xK^CZ| zW1De#`tVe&@<}EJ3h1A*^cImGa8kqxe`4`x69QW)iews8xH{urq5Q*t@27b4d)56+ z$K|^Acq)qIf-j~r0yZ0L=f_V}wBEF54dYg$+Jm=h#XTHU6EA;W6Ox~dYk}s-ru*kN z%H}z0b!(_*NZ}k%vj%5u7d&%Ecwd~;!+DVa!wYgSeMEZyQtd$wMV=A~?eSGCKkwnj z8qcdcuo}EBH8nH#tXzz@hmy_eZGtx@I0#^e;k?<>JBoFLrW=f_h7v~fO zxGFT>pP=EUx)GpkVt&S#828xckp#xZgvldgav6V6Y3phsmppJyy zy@ITHC?sZY{eE%Y`42-|6;rQ_%jQgyW4iqNO-&+%e;Gf$mP^aPos32&m3(3P+F=!a zH?uV^xElz-Da4_>3y56!%i+UJWm63Guj3PY;rP>}S(ch4Z$z38?ws&dsS>xJx=wih z=092kn?M)jCzN$OMV9sBP{InFxSxtxVt8MW%sUG?t~CxxrztBl@*jH{TRb>Tth^Z? z$72=0N9qWAS^%y>k3D+a5c88i@2 z0e^uIdpTLSt=d_5f)3en{WbW$%gk}3Z1~MYL!Gf=)4Q^@ww|>a{PHqbk}N*LLBQT9 zJo*j)k1G69mFZwSB@GSEps*)wz~#5?IFZZ}<@=iwJ#77MJ@5?Y%`!2NKEZQ*`9EZX zqu$(ve}9Q3Na_Jt|F$#?*XA$(5dLSyr|JTz#zmq}ZV>O8H~oQ{J?MWenWNjGQi&b% z04j9W?kRJ*M-921HT94gXpSlp+K=S!1VSyA!!}l3*|d3V39U*wYDNk~2!v7r%M?M_ zjWKM8)YMretV-FJJxy5M%ixp=EW$~i-e`b zQqrrBYW=?1XcE>Lpx71urF1__y~F|R$`CA!d^@NO8ksbC_n8>{xRV&~LaxBY5nd#9h^!_eb0sSRSK>yt@{snr{36L5?Xikz4ek|vGy zOV!630?QF#mi4K>`6`=>$&Lh--(s4oAR(yeBA&ZVRFXa=Vns#MtYG+?EjN%na3l{5 z*a4YMnU@mV5eoj}f&gA4k;n1VBUq(`S^#DT@6SmGW1t`7;6EpCNM>k3m5am7A8+q4 z=TL%->btA2LHKVB26%s*cb9kRZa+JJ1u3GmJgaZz4YV};oBiSv;0 zN{TML%ijG;ypU?rE?AVrYLm;h;Qmr8KCh-%0o;vv4F8@U-`wWxqQqJ$oSX$$I-7xz z%>YY~(1(3+G(Xj6-B)T{h7(xPB5=0Mpze{x_Z8`V%}q7wxX`<2+n#FrDnjf`(`{(g&H1oY2O(WoFXjUiO;j0E} zt0Jma3XdR-o!3sGxuo{A!o2HtF(namQjM6NkR~hu2O2D09^F+9DENG_=2Su=l>-34 zhC4Si|Dz%&v`Wa3uq-rsS*|1pdU;iK(R~E!<04nx>>9TlNwZXwG}{XsaU=^uk9ZSk zr&LjAv#yukMbR4ACCPM7&b7#w?@J>37AP&Y#5tuTlHY?sRBZNEQ)5vZtzj&hHaCPw z=E~5DluB+Ej&+9ICt;24XmswxtAG$InYWO}V5GjD?^e^BfYMoI9Iaz2M_Ci}0_H&h zh3Mr*RpGc?pS|<L7?^DW^mXc#60*i9$O$=JC-8dQmSK*2`zRsDCA4YB=$3e{gvWk>n( zmeCcC(Y`fvjJ6~UO+`T583YMQ+F*tJ7HVp&*OT=($}iJk!g zaFi}ww_3}u25eIJeMfVEddAe?wzUX@4X#JTH$BiHXaxoN+upqL_EeqDRE7L_>ExUq zZh{977tE$F0(U4Me*4BV{!8!EhS#ZO}*G%?!)(|?OB#^?!R(ycbtiN zlTp9Z&mfdbXgyCv-`?nOOWoF(T(U zOK)gwVNYrPs)t>>Ui+!NvGZDxFSsU#oc`d4kKrRXW?n&RM4$B8o>AXmpH;_}6jN&)$HM~*DrFGbIH`4pk8MJ^CflxJ)X znzBRu{XGEt2x7H$7h3C`b%qBceb^Q_cVNojvA^KF7S4dGsD+q7pi- zmKb^qz7FI>Vkze& z)h%p{>(3~Uoz4KQDr`LD6opYoE-9E}vL0_&x3`LxSBGReOPa|SFaxH-<&^|B8)q${ zkqwnOzO18SnH2rpzpLAe~t63oyhgo8LjjM=4IFmT7l7F?$OcV z$bNcND~fW)@1e`N%$>o_Y?2jY^0BGv;QiP?HdAtzILGiMLGfj0~#`u|~1$ z)(GiT>y%0@#AFj9yaFJD8*)ljsm%XD4OIVzb&)K}4?91{df>Q|kP&l>-~bAjSl_A# zXRVj6*tMp!5b+)mrYIGaO@GL{-um4f{Bl~hKcD47{<~ikKurz3$F`}as)Rk42VBV+ zV!djnqZ-Q&O42dSBd2&Z zPzM8E4O10KWw~F8dNX4O9mNbiTPa_F1QiI72--hur*0ILW3UFVMiT`1+1dPK>myTR zkV;p?RY3qmJNlUm+YGsOg0~~nw^djYW3-ZBco2i&kN2=C*(nBt06+s@%gRl?3o9>e zKbl!O>*Fs&1~cj(e4sj>1;y#KnBl3ahkWp>ytHg83>goPcB)hO-&}y)*_4|1$yldO zyJd`g&fA8@8oD4=B0K^t_Ms!`YJy|K16u)BkG3`dFtW6iiD9+Q)tm#pwGaeM&OaqD zv|{4rDn4^e(o=I0HUy$g>ki05*#8~!z=#FxOG_N* zPg+oU#ov_vmhiq3ZJoWhYAW-FM=C^t#=Ggpd^S=H1DqAR;L%#oZ#b-qHJK%*RO+d> zyt#cjbkj@)t3G$Kw?aVyGrj^{@6h@_wx>Icz6t&D14|e}5GVq($@6k)TwxSps(U$+ zq^!BUjoJw0$`@=%Pp^|6#X>6}Yo;Iy$N#fL*VF&W0>VDQfn()^{!P~81W4~2VbsKq zpx$GdmQf{w!bGSrKpvsj|M{kQH<_%^*@^P&=HmI%$^f)<|EBVW7^tzVt)3_gv-V4T zofjwKJv^vAzI(6xbp~V;FfZ5IJWL4CBprRa&N6<4tLf4r05HH8|F%6%=%mz`@cH>J zd;H2(P|70D=J9fr zDc{R_kyS1p(C2wu<2WOvKC@Qy*endRZN<%&7NVV*?2c#GL5N0PQps|DXYp9eCsi9j zO?8l^9-9LJ&O4AQl%fRTF`qf12zzT{U8pjbo+Nf|5SA)jUkye zadn;h!y-1o$E6-q^_F-*Zw1B zmZo8Sg>bXM{Ffe)^2`0W--QIdC2+LY{n}M<_cLrzozc-}$tuZ$KCmcG&+ZaMNY`25 zxyh?G5#*4$tgjxVS20Yl@ZUKtZh~@LGIx&^Hb$27r z+>d?iO+Lr%CLT88xu>(tR6S{Tfj|r)m6CC^bs64!*gBevm-GneOZomENX6BUMxE^{ zN@dZA=b+6g@^Xe=SexpwKUmv*2^(C}>yI1ssOyQt*~W3rQ_}1l$8+bYkht~yyiMhU z+$c_==J*INz%eqkL}FLeotAj8wR?zx^5zbLNa^BeuRrXDT_dcUnU)<`0z@1xgHi$O zn*It9{Tm*L;O4Gth~}kqu4f;|Pmjlpw_hvVS3MMC?9tsT=J8dISHSsnvI36^Mxl9B z{!}f8j|sNcS+Ki3A>4tB%fQLf0vq=wQM> z^k9HQ-_mdXv7eKW7%Ce~Z`8i+2Cv}BMUfP^GTn~sk7v_AEfdz;(+3Ex=>Oh#71?kw zg_&`GzuZBS2715KpVI+}rBJ1Py6I3vYsK#*;1(Q+uO0@&)t1=1GSt29|a;=a)XV>>r<<-0rf9e@DTyIWuG_L?@$b+ublGYmj@s@zx5Ir^)ax`i&MVI1JxF0>EQ^iR`*uTlmwrFK-cg)R3N;>>AxWK!f(LrZ07 zTO}k{m}qkpK31U1m-x5|2XeVFdjSdWi6di816V(x4KSt~K z5KK%UaG#q%Yd#`C1>1Q~t3P;ulN#+VmVf}Ycqm@8KqE6w&<8DiIyzldPR+-<4 z^>q1%D9Ho^&vzI0@{je!_47R`ejRiMw!Vk$GiDy~jSmem_{m8qalq&a5gRgKX5sIq z=i$-zoXm2_%N(!ea@I@4E~YH5ourjpKujzYKbYq{3<7@?@hZ`#%qchAd)m?|UR!kPK&+ zjj5Ef22LB^CGc=qr-o<`KT}@p}#8 zxs&-=Gd7*OA4G-Lu9uFt#G|?#!ZmKCqx@_gT>C#XeREW$@AvizQ%$yQ+nzjevfX6c z=2Vld$*#$^YqD+IuJ`$Tf9qZAtabiA&w1{B?|tnHf;U3-hg~{Tku1+WdRf@mD-H~i z&?Yc;nYow}kNyir*)K+kw5+OF)qR&jscVFel!+ZAMWd-dn}(|JXr$9prJRit5)7;1(kKW%;wGHghd z*PSF3=lRvV84$z6gLAWF2V+xGkql8EUF^7aesG>Xh#MEGB+z0E9j;T_x#yR`=TbP% zpf;J~?*CiFVftiByBD+E`?oigyl1^+=yI@^x?pqjEHYVFY*6tt5O<8#w@ttmt-Bjr zKtlvbc_cX3wZG6q^0&V~AI1|j?m6NRAE%W;HV!WwW=TkUIXO7XSYGz~2>_vE4aa4d z7dsNkX5B;XRJuWXT5cy9VbCOli7jM9Z)3#Y%NA(9!n%R(die zT&!%2MOnMyL1Q?SQPHF(J`qkH?Vu`torUl8O~^aSVWyHL3j%78`k5&S@X0)a;BPIa zCf|YNx0#OY3my?BGJ@~$W4*}yLvrfbI{!?h}n% zSem#J+AAZ2x8c6_7Vd%G;bwL(QULzvG@4d4kL%szZKQ9@1pRQ$LH#aqNsz@l8Y)h` zbyaC;Znm9CKV(Pc6$`(y>89HuTEG42;t^j8H(mCRdi0g%6;TlMt(YG+-Qq||oJ_uA ztKicgi$%tvPS^RmW5e0q&AFqu2*R7&$r0D2?zUArWYm!>@D?B*LVaj@($W$2m79-B zfT5OF@>~-ofc@$OZvxj5Rm&Mt>J!cPtuqz~V)V!G2?0&~j&{{U8_Md5cN`?_x|U^>H_ahIQrR`=(?~Yn)Z>-tRbELh&u#t( z(r|){I#ZXMjxj#_(95m&Avm5Jyaz8(q=VrQfp5~aTgD|y4nI$XSX0#&{wYxfA9TZN zBSA~ju_xgB0rfO(s7p%gN+)PJNbeg;fXWeW>g~Zpvo7BKOxYgMNz(P1XJSY`fdtG> zp^XIQ2TDQ}p0fVdRkJ@*Q-Q>IVE1sC^m*t(QidAq^YId=IOEO#q>ldQrV8yAgjtn^2)>%ECIPD;j+cE+zO;o~)HW(^Rt<9mMG>!z1V#@BT7>6j~gtmc+5pH<)bB?z?BY=s_~uI!(z6z zW29@1M20`;5`1p4mQ;K$9)KcT5v-XRLKJZJ!<{jZ7ZBaPxZ&MeI)lW1*$$OeKS-!GTxqy z>Dnr?a}O^`uyKV9j`_m z1BA(uVdP}7NyG%aQYh$iln=Id?t3ufb)blrcMfFG5HxS*v9N?ei*LPSjW5|71-<^# z@=G5Q=N(j9wuLjerxB<%-E;6**w~z08&GOSuwg@KHk&i;Kg%JSMDNc)AsY=I8C@s{ zps7wL^&x1!O6Ym&A@t@iVV$q(n04nDVo^0)C229faiTx8Wt#k{475_yGpxKZITwT- zsrSQ#-m2bFOH>|~#knfAu2gz|J)6@??uDMrMa^U0JR+V#IV2R3%LR6)Vd$1o{;R`SoZ_4`_uuHt>hbC@Rv?`zl`R$tgR zLBTbOn8-&TlT9HdHf1s5eg0d=-U`KtwQjP6k+!y%0;RN;kdgkCU|?<0>LpNquFBbX z@Ggl|=>06}KEbdeItz}2n6pb{)n%LX*@uMY#w0m0O*XRmv6JE>IbEY>bv!5N^lj~C z*&Tg{9oC*2xA?20%6xC@^z5wu$M~~rOL8*W}IH$X)u$(jyn?K`=TKlK&iuhRtQjGK!I`>EB>rB(`#`Fs-uMu0Ld%&+HSe z(>ux_thkt4`m<>r+lO-(=<*#3G;HtAC8Yk8`c;e?eKBz!!2y~EKHbZoFH8Ol$hrQ} z(}I~x-GFrOCm}axev2Yi87W^OdAP~N78G5r{t*#caXl@=SoyE_YZv-ntXNpb>6lw z_GPE@)28hG$k?rVWCM3`eqP<{sk|hgMxOgwmq2kA^Fw;fAzRLgzC$LJ9B9E8C@N{0E{$29E zMmmhuM{BAXZ?eVNn0Y!2wkFeCSSR(~aS4%xu3Er_CZmvvFxgS*KFZjG<^*Aswb-?^ zx51Chl+iSQIMbEp?f#ba8gIyD?1t+uNS9$i^XE6OM$*uIn-z?z=x>~1Y)czUP$MKVl5{dM_YZiEFtj7|`)Vq?Pu>RR z!|+$vNVjVIEt5WGZv7oPPi^dkyxSE#Y&Z)l1wyT8+WNCQR}*;5m`-v<3yqtZ#AS4$ zXBQVxAPo)T>h__;qCwYDDFWG;|IYAK(Y_wTw; zOPYX*f}t`M1xD-G^z9Xa@U7(Lh;`WHvM4z70Q z%%hs&<=RhksDMeJuW5u>H`0zgOW8pDcnBvw#}DvwOV|r?bJ|$KA75J-d~kg5|PDW@umJRMVg7Qr6$xqJ_)gtj}r8BS9qBfaL< zvA5p(3)Vq9SDf;VXs@Rv)bx2sqVGa^dLCoH@xyT$W5Ir{raIq#R(`UBZ%$8edzd7= z%dRWG)fyQjoc!IVi+}0ZuXhx;Di18Cuf?~X;W7wfd;XbB{`*ybl=x&FB`KbDiOoIV zO-<1w@#(_=y3E+u@5;rHhO=a4jLn`_jOj=DxKNBaLYPexLT*V2Z3&neeoYS>@z=}l z)r^&oq2s{M=L`~v>eaHC~-}EDi`Zh5sv)#wzYB ziUQ}91`OPo%fujmqkdsDQ-i#FMswgUJ>SqR>issatWwJTu*&2p7fn_aV#RmH>-dn}Or zVn^Wg4%H#dCcYpK0%51-&4ft_-g@oWnMs&90NS;!E6I`lmGdje;8*f-?Viqu{FSO3O30A&o3OMDP=DPN8BbgOey4 zvUtRwHuS>9NL#sI|B|N4_8sxmyt8~8NwHHNlR;?dFoJE^oSt`tqC*rn5lGd>5ZzY3Q%)Mfk+*5nwG-?%@!2tzErGY&EgZ(udtg|`|rGpULK`t#3KKBLhXRkxVl&z67e7Wfg9!N4O@AmSJ ztZ!}`?{Q~F=W~ES=$NF4!}N6Q`hrB!V7vn>sQ2ttsIVc41S|q53zB?XRaldwIhj>Su106QV#jOE@o%)YauDQku?+v#$sl$ZT$uI%3ppq$Esj2o%@#yT zeG#c+@eNST(WOLGnzeJoBkvz~*FHPTFCZBh4kJSgqZ%)?uvE0BZ*P$Z4VOhvMa_W8^>5@EzX_i`CSCFJ-FlMrVmJa zF6p?drI)r})k;|lWrEM>gbG}o`!Btn64{2jQ>p)VqG?%*fc6pdbn(uvbV>z&S(MFH zuSt59<<`!0a5T1Sm&ZkJ%TRipWaIw+=w;HZ?o^7iYTyl9*hIi$oh*tp=9*0iOm75HnD z^49Y5@F5(PHWf**q}o+VZe4bcid6p*DilkZ$%hbPg2k{mz0sQO;!pDf$X6UVP%N`# zq2k)w9Lg)|ZIk)!1dq$aeI0emE@!WK}X%(fy+iAo^yeqpvAWytS%U z5$He2K=UQq0kei%KeO~)13TpIzH&RXH@oes6Y7ItGgYb zWzzgKGV|;0^f8AoYRgc(mvx*Di6#(0sW}Sb>3ARhwi~$w>j6=a5Mh~MqGV_~5bTjd zOPqc>{t79ozxMd`TNF#wl&+zby)f}+r)cE}vK;BJ=Y!kKjO9^i?PLLHA%n$Py0A}0 z-3{b5|En)z9WP;=2?O1!Vg`IbNlG9vRG_=)9TF7xTYhM~0-3Yaox}XP((eR~k7{!P zb`W2Re;4bt+Wd&M+L%QI)2R-LW@hERxwa@HMF61BqW0Xbd^`nmjW%9x?id|?X>uhy z=T&<0A{r3!uC(;saZs7W-fy3CSE9>d-`x&sjIYvQv*5(m+$6$W?0_TGWQ3fpAIrz1 zooX9(h?rwfq}^bsyI^yE2#4@XRx5*bCRlhTPLfV%u*+*+(O;nRg%-5i4B($+K5f!# za7&%TC;*a!%0-Ei_f+l*e=72=+9PAv)^q-jhF>5CEBl3?b;!X!U7574FlpD}H7*~d zF%1(HklQpeP*yQPh7=uNcumM1ggjFs_YUA~a|%W4J2`iWf(=JdALv0xO3e?gk_CmEup4 zeY2l+tSsGq^k1zO{)O3Z4iSdl@cuT15FnU*!a2m64Xvb$owK_!qz9=|ad#I%v)REH zft+T~rPH_5D5QY6PU0E$CM&s0#d{i-3aX|482Mt?v$gp;u3rvCsMwe8K=pS5$BRb78k{YH2s>RIlSnEgu_qw?cG6M$}D@xLP0Z+Q*UbJB}!q z^8S140`Ci)OAG9Sa}fUx^OQ_MNoflBI=N~u@jUF^YhC#}70_l6Z>dy87M4|beB`JW z(_UVhs$~0SK(Iirf{>K0d))m_LZ9Rh&$9(>?&jq*sx0myOgMvH+2HoQayLyT{#x{`#tGuuF?wKKl78Sqpg{8cId0a1&V6Z5(0yk_s(Aa1?B zt%M^;60Wc}gwLfAc3~_Dt?w~_{P0r~O#oqH-+sq_^WmXme05%J$^jmpN83%qf(Du6 zdw4cpiWWB=$*Wz1+37z5Z?5)&YOjWdhq=Q2kySnrVpvndeK^v9+FL$};qpIzxT58z z;w0@j692LL-+wp%PH4U+Lw?a=L>l+~FtCAeztgnrzk^{G$g2yQU7iC2WD$+mb?gKl zI3aQ0akIKDC`YX9dPC7$|-a6Zo{9USr37HmzSz^C9C!e?F^b*3vRF zgN~ey^%ZROP_!xV@S&jp^lwg}d$d6h0U?s9rV`164xqRk`rhq|e&j&#uKRx4z z11oL7(GE2ye94G=^(#xjkxsr|A=xB1^Gx~m)S{x$da~C9zvi=SXWeU!)(l%ELN>CyfkKJ&lrIxW;^9HJH?Tcj zyd+WD{A87Rta_rkcE1%=-pZ(kJfxY$CZePd?ckq3u;m8eJ4RQMYMk(b44FyLL?M!- zO}kn}IzQ50(vt(S1!;pWcJ{G_?g>^M-0`jENk3|NcyI;+LtlkyDYUd&2O)=!N4Ntf zu{hi71akK`!gtAA*jaY9zMuNU1hpZQm~^b23c(PD-6GwC^FG5{^d?#a<3oZbG*Xb> z{DY@Hs*lp|n!<1t|9g}n-KhUX;QUhT+q_DPV(mdFOyim{J{UOl!TnMy{*mJ=tY!h; zPcqK%rzUC$4_A*`Tj;ai+=((OR(SA^YFSnkQFV2FFuL@(m>8HZFXNEI0iAl@QuA;K{SCKmz>WjAx&ri8MEe*^!=KsG zIJSHcHVr$6=Z$=haj8iVEcj&#mCrleYlGRnuReTM?riD2+C+9%^p#=qH^D2gbSMQ6 z$DcbbXzAds$CQ?la?H#{kpJtyajwa^9uU|qUA_uZd^zGH*}D!si}3-joxA|hNZX1h zb~X@tt*#LEFJ%)^;6807lX;bi@?#$Ql=gQ6gt@YEaOppPgv>42AVcJv9|erhP9_7*>&sRw~MO& zFM&QoRY^l&Y7Pq2|F`Y|@!CjkK^IG#&uJBb33S!%*$=g@s>#LrChwQKhI86|4*BR< zUagyF>o+-#v(JpZ`wJLcSCs?d|WU7VH(|8NcXE=5z&rEva{Sd~ln!x#~AN zq;lW}?4cA@`vG+0($6mJG4;Eju|X6^!YK+p6cm*E5tkI3xaxaecUi~xOE#LP-Ks)U zB0ZDDQEA|<+T6UgsB#Nd8G(82ER{QPss^Z=(%vO2BJ#4r`17&R__v_1wE-N6!bT{( zIj3O-Z%@TzUUoy66i8+O-ki~s-9JZnhfsY;g+;8lVHuhUAyxTF=K&re1|M}7t8s%p+}JBQgQ#C#UJq7*uRB0b!lJl0Wc;?l+=P>YHinLACk!E=d8NO2Av_g^P_Vf(H|P0D0u z8-`5$%1puz+MSy4K)Rk>7u>e9TA%#9AFu0Rl(iT9G1dm=Vh|u;y9P-9fg3YA2t!sz z<6-fSKP@LoBSA!IOq zbJobFjzLFE%by6MO_{--p6Iu1T9bz3yB@38-*$v$0* z-2GxbuJhB~`rAyn!trYnXM6PJQ#7v)9LyuwHsCMP0|u5R;+Pw&6U%sfa#H?A7p54Eu=Wj|nq9Rlo7NfOX0_()J3f71Q1{Q^RL2+tBS)~~UJoEQ#ux@1 zBy}C^-9$XdDb3fRy7O)#xzLFOXW|Z?u2MUM-QM<10hskOdyVk8w zyDYDXr34TNm4j2c`JyL^p3D%7Fa7bdm@4FFO4B4`^11GEA-g8yECG=W zEX8Co6YF{m!50P8{i^#LigCvGv-H3=Ub5qZ3-YUYA?=^cvZv3r(9ocEBYjG->{u^1 z?rh5`gdJ(JfBZb`$zq{;7&+Er$npskfL+^qz$5WbP(mO@x=@<94tLblkPEO@R~((K z{;z4q*Vj}!g*(lL2EmwDfsd;q`2t@Qr3_u~{XSlGq#XsbrRRLEE@!@*T3M~K*=8C~ z2QEjxLQ&rlstH?ut;TOIPWLE2G$e@rxTwU}lrHml^@&&M<={L;g82#%z-DFJa2?@o zENst^&z7-@C+ZX#kh?YcR%wYWEG}Ae^cnXb(6F6lgpd@7%-$y*VM)XO{33YWDZf=! zSiW~lyI581^ohyQ+m`?XW&1K_`-W?~8Ox96vYoYcl@m7YJ*E-7P)k1O?a98Mk^oC> z(ElDDtV$g)pGJHYeH+PcSLlRMe^f1tf>dyJH~PI{Hc;32CB2SDP8gI@Yr;XdqJQ{` z8W9}4@6>(6gBsx+%Vfd~|E5~8t!UJ69Q~UiW4=faquKnVDtLya%5`=Yw8a&ozF z794ydAOL|fD=WQ3p8h6T4Gw5q0`HSKD$4#6%5rI6f}Do?9ncENw0nJ@)dVMZdww}G zPywZ9Nx(cqPAZ!32k>uo}`7D>4h>0J6lq=J zlWBT=VBguH#2La%vV5d7kX`J4=G?-(#;tbZWxLkv1|cRaG?|PU^}6r3U%cIw?^4%F zmLoXL#{sxZ1^|O~2lC}eYP z<{<5<3250s0k}Qs;L-%%-oJgltMlSkH=?Oft=9;AD2Kqsap?NqZZGv7*3=%e^p6J6GW;eAK{MV+FVEyx%x z@NLeeN#_z+A~W&mKRhzL9^i&bbr<3^H9w~^W}ag0@JuVuBJw~!AFR!9i{vz}6xcB? zVVP!>0oXF~KI>;fjw@95+_UQFE&_+`#)z6qE(DOmCOzQr#SNPCAklgQ2m82ub@(N4 z607mePP_e=F0vw{%y7Hnisz<+$B;IJPhrxQehM=0oGS64Fa`#IB(hL~{U6WAV*f4Z z6{hyX&(pVGxBrCiPR^osNdHW`O}H%>OpddJn4Lre)ra=gHv4ZyAomng;dF#vb`M+L z?r|%59`*IcwfuD>QV{OEZ0+dEyy+t+DdFY*B`jsfPGf%EILsuMEt&`yU}g^eXQBvk zz-WSPP5l>D_mM>JteP4Elkl%x%-kP3jW%|@`Ko3Tq`o2t2=a;&&ux778~z1Y_&OCb z1m583^TTA({sHo&O988jsmg?bdOzLhw{Js!wh2X-4J+ZZpxk8gRQ|X)-|G+gdfCn% zLYu><vtEUu&(I^()DI>KPbIE$h7W8elQKZOmX3Meph4@DO8k=UF?^8 z3iRU#HJ1B5bIi+*VzU}Nihr@{~X%oR?U{Iu6PFP4}6!-zq`l_AD- zR%&;%xApffpA_(Vr z4?o|?P|n(CnuS0Gap~hNbq+}NFE08+s5Tflk_Yb-;YXGIQxo_NflRj_W5Sx&upM%p zlVp1Z?eYnc`~9GD6c#i^K~hm_9Yym!4omIPynnR2HF_<#ooPZEm#(V%pI( zBmbw3l&K?QP9Gpq?SChkVd)ct2-UpmEpB(hS56BZ?uwc>!+98r3KkqJ=jsk0_z3DR z4dF2V#BG@^y+9KvpB8Om7exf`o_mRlm)~4eU$kotQ+ja$^4>p#e-z*c-Xz?7385$u z{2gTpYH5D@7vAuf9Sj7Vr&BH5{e{g71`goeA)5cYu#A^3K;ns3G@I> zkco*pYH329;9+z?F5Q2xR{&&u^EZe+?IjX+(gN=|MTQ6z8Li&<20S``Z?I`i1Ec|`yNr^Z zIhaDN3-3qdgnO&?DOGcAO|}fV3ZS_*W*4RTHq?Mw1JP2k-l@RHfdAfmd5-r^4BURg zI#WkO(_}P~z6NGxo6pXdt@=&7KGP9Qp+eQTr>hl$Yq^aPbI3HRm}ud)Y`c;|+VD}+ zY%LTk%*>Q%s^g?m!EYUUTG7N}JmPgdenh~$Z1;k8#S#sdTt;Y;jw62Q)pUK!l#tSy znEB++>ZN#cYgaJ%FNCOUW^mnj^d+8SuF-V!-$ZMiqNWN!N#O`d!di3M=$KdikIMWX zEo<5DgS+|Tp1IKaM_TGk{aQ>+sX&O8q#hdIoy%}s{NPt$fwgshSEp`z!bQ_cQK^N8 zYz%)vHWZcpif}#^+Oz|kAmRKFI*+;1-d00hhrZA4;=p_2IATA1TEfVN*N=Vw$6a-o zgoixmFP2c;uhH_x0ge16Y)Jcix2$Z_=gUA~ERS;)Zpp3U!L zqhn~4c<=vn0ouL;d7Ywcj5&4WAJ0@0Zw`e@X+7Jb>=9D4KV1K&S2=jNjlvz4!m8|; zC^cMSiJ{UA+d9tT_|>t(=OrTno)QI0B| zl+akybn4A=W<}XTQKraAhbDy%UNXgub}SN zGx{GP@$U)$lN1kPOqhhASP+OYxL{gFL`44dAYxHrYASNe4Z47H5i}7h;5z zpCRNyL;uNMr4iou`yOf}we3p*-{55gihLXMN)1VP=%aXNdLQhKfA)GI{SE55C9NulhrJ+UNO9t>F{ zZ3%euUz?Cd@NuPD?W5msl*2`FevBl)x*lG<^6zX6-wQz6r?2fnQ9B>3+8q!I6nZ8F zQYvRijZY?R8A^l%bTM@gvA=}!o^ZAb+B-Lv0#J#?VhJlOh}z)+4%Rt^kT2GkBP281 za&bX8PP#SvAFof)ddh@Cs<*buQ_*WUi@dHJ$bYaF7p_28ho4-*^UcH4rBK<4L6m-L zDhf{kT$U(jC_Qi!2K&>9a)65hYA~^THCvh)C*A>Nr5{an&TSdNEa-9c#34)&>Dc=1 zP>go#Q&uj!iQjM>RV>$)(5~dDZkENP={zx;TY3UjInOM_PD3s~w`^mYiGSnAX7ahA zZgg4kTHA$_Yp2_1LXbRTtD0=IfC*|Gz}RkAm2s>agR~*w#{a!-a*4J*Hq#kAveBdD z`ZoIy4~Lj+Jue@JDdC=l!Q)$QuEGR7OJ4NA-caJ(9{9ZVk8fhCwlk%-XN%dY_}fXu z8MZyfOL?XQrkE(;RiE&FhS6>?K}`RI94To}P3vXzxHoLg^}4Kot|iP$^3+W4o|&qf zUhZ!?Dm0C?9ThQDcMy~b4YlO`Q!1W(prB1^#gQ67dA#Y)ZpYs=-z2bO!?q`KCa~?y z9wjn5iG7M{5z6Lc=xCO7|O#t+!~ z97hqo9+sPyhpMxhZ3CO&lvw3bwO!7AA%_7?8JbhBcZ#YeqEY}mo`H!EOI^QE6x0z$ zy6ia{dmj?L4v9uLyl+3z&U!S#~Mc)l>67Lwzjb6vK4fF*+2YxfYsP) zZI2BsQQoH$hi-X7fH76hr?=Y)QPST36w zHg;t$rg(uw5D9TFw67ff0GjNt$^!=`_S4l*Va(zTrzh?4-nPmb|GU&8U! z?VWArbOhdBx@vfztEvEWkIGU|?=~>Fyr30@Fq(v&C`^_Xwv4@Rg{AK$lG4?Ns#VGA zekk?MI0vySJiZWQS^o;Gq%=NQ zw@;$E#|wkbGP?G@yoA*C)u;dK26bJ{P4;Lutr77?+$$f6PqPIs3L0Bi$cX+?_$%47 z%7-6A$c}Xv!#!_gO+&7{-j0i(ZgRpe@ublD=(@ z^WTVM#EO{$RDa8`ARsXQZPJ9zZzOO zrMz|6&|i=RehiWd(mgxMC?0He`m}ari=qX#fKkN*$EfUO{|OcpcN*i`O=&(j(y4)9| zyovy{_A;!6AqMQ*b6`IZ+d?5s+k0-P6=N2XofTA=)hToeKrPpoT?5+{rF0dj4|k~W z@D)C5-u!1^Abj1P?%PnA_?p=g!du|zCmlNL|=(;}K$(0`WFcFa1TfaBRAE0FaR(Cg1Mf_*} zr6=MVZF)Q)Aou_N9|BW}{%Ro;QJr@P&lDbZ4ON%TRloWhjH7J_sHx!ZFNz_CvV>EX$J8zzFLE(EpRxekr*+-I zU*u7nS#DNSMn-w8LwjY_^TcVaAX5-Or1#GC7U9}?aC^qL%_bzV?PZgR2=$j@qvME) z^F8%)1H_72rnQzclI(ST=94U1juqOs;+K&<+eNFK4o5x*-urGESn zNDNefN|hBYQquI20sLFdB!Mm}31MA3njs@cdlv&^>Z<2MisIS?+Lp?^3U#9+^W|x0rd^wXt zqY7)-9G^lxUbrezRPUesae+D!AbKOfohe z8Vg-|xA?|)Hq7e~k(w1j;lz)wAl(j76hPf#6H(=pWEV^J8N!AJw0?5~Sf zxGvpfm=@FhM=C*EyJm(Ky`Eq_|D4WXmkxx`M115TM;aLn zMahWj0a$sNV0F=PfmKC!l0=pEw~!ZqmPmwl!S%?PA3~aJw(pio-i+}VKzY;9^kr{- z;{G@D`MKkzZ$XtA0D`49U=QcE%e5T^y^BDs_(wv!+~cVU`JMi=z+-W5NP_b?#Wa&q z9*En>{wOMwxQ>lAG~K~C63pJ`$Hu<;pU9KYAK)Xo!Nrb|GpI&{Edu!Qhf~!)A$7C% zM;p}yV#^+XQ?=<(*ddkD36Mau9DF^b?p{r z*K?^!y4&~bI~bxv##W2I^hF~x35(|p0g$BFy|_ePiJw_1_)ijbm7UtU?kCFNw8fdX zPM%SvjWsKJ2pT^V$hyD{pRC_nj)QA6=!24mCd~0o{r!P`yA`h17Hc=zD<^`#0}MaC z_^j`!2HC#HipE}TnaL&rXjI34od>?Zx9`g@E;3Kri{0oi7CF8HGk-_$6_YXuKbE#m z8r~`PgF6LzLPVV15*%NQKDcER<5{8ZDW+_6EO!DiQwoE7!Dp*DVPY=p>ifhcB_|?O zhkvN5b0TI7qG>6cKU`HVD&%5OPQ-Y6v`moJ1M*PF{~&FNFV$749RI=U7(Fcgxxb&e6x<8&jwfI&^Lyu7ajw2dsPV76EtZYbSSamUkEGTpXfZ|xw z{tbt3tj=!M__*c8W5xxj;HzoF{6;sWqzXRw%&1r{Lei=MUui?2bQ+G#f?(7cYGU8r zb1Y42P?b$p_`?VAaWEpLeY)PawX{tImgtBTPpoxXuFpya*r?ItE8p2a{-xe!q}7&r ziEaGpA5J|xMPntSwM3U8{l#$8Nt7eYAzJBRv=;fM#&N8s|ASY;O(rY2tPQ!d*7kFiFY1Z?QiWa|3&W$_oE90-Y7*<aKI0{Vpfwb}a~F?{5$1Ns90tXDaWKdzJGYxinK}5<_}Zo4 zR7T6P?+`W&b^cHlY;hKTjB;i7>tu8=xW1ej%)z5c=3v68>!n*za6gQ$Vso-2bQ_eI z>PVr=Ph~oZ*|58}Hu{zSVIdmri z*~<#w#Lq`ybtz_`HKuA%kn8)Bi??_-_D?Tb4q3o(E*3HGNc zkK^+R`GY2SV*vFs9D5G&-hGMdm>CkC@klrCy@dQ1z#HkUyW4;gn8C z*6v3KE8+XI`0%&CQkJKnr$_SOkxkv-@8{ZP6kpZMXg3^>M9gG z?0#gpeJfxB{izE=`*?L@j{B;~C0)B5K$}frQz`H<^jPlc2*10omvVm{cjR-~s{jFE zT+#F2hJpZx9_YY~-pLBdq`Iksqh(izG2k$SOxK6)-yg)-VG$+`$=yi}?<0?>@|oxv zjr2e|a$XpJWG5iit?6b<~ElU47k50ivvw3?IAXXSJ@}z4864qJJ=SaF0@XqA; z@>h+4*50Wo`+Y;*LNafBSSOTwbVrG) zrMqn2{_3-k-xbbQJpbHVnzu$D($HB{$U{ct>;}P~y>)bygl%gW zVf~$JBKAc>dnocSzg9U1wcyP=3m~dkDum3VquYHBe@+p~#o)nT_BFsF884`Cy~UKB zj?fo`bwP01mZfVfWOt;(co{ltdfLqUxLr<{u>%x{|C+~k0K?jVgsEp#EtN!h|F*kU}T5H~n zua25nv*~E~g!Lw_smCR1iiP(E-D`?9l z=+Lq?G+DN!^?sbT7r8@}E*U>AtSBJ1ctz*jtL@0h%&x5NIL&JqA)<^>oPJ{M=Z4(- zbCbiX5Z9x?iq<=E;3MRD4c`Z3kC#XbhxKeb)BxOX9~&aCd&yeaGMcmO2CIKFX-8op z0YiAKZ&wg1gN8`Q>U5F>UBu14kDLt|>vS4bV)SfSMCx)AgH(#p{xgz}mFL|s%MR=1t+kqT+Xx|$4!(jg-j|&!xbi(8YErq{ zyc%AYbdLN-g|96B@Any{iJfJ+wudiVC2^=7X6KgeUR2*-#iYpNVIW1I`h=fX+MWDr zp*cSMz(GcE3FUMt?!AH;*nFN|FCH13lBFeLN+zfa=aI|j4BK9tcyfy6zHzHj5Bb># zr(*TMzOZZQ zZ=_ePtXAt$=@ymQj(zu9c$LoFz&88>hFZi+vl!HR&!p}p<_LBIvYf6$H~pJr38e=c*EC<8-wl$zkQZ3<)V`V?EsM^ppgh?-e#f zm0C5Z`?kxi*S&y13x*82ZqlV?t)+#f;B|ZIHyUs*~mp?OqF0?cBl-{;rtA&w;nZ8V< zg!LeB951%Y7{u-j<7!TU_Tw4a?Rl(&8CbRVH)YQ|#0(o6Q8a(iy5?5nM{GtCR&-of zAIfz)TwmrbV>C86f&vH)<^}cjcZ1P*Ha0dA5)vdNB)13SWC;y=_ArovV<}82DJgJ} z;F6L7HMQ2T|0<(M=?#}_+lMDM(1 z+#DkRuez@aiZl53BoH7%2u{#J0t63E7$ibSaJS&@?lMdW5;O#YyE_c-gaE0bV1t|-~?>W(9Jx_ew zr@I85O$bv%R*4CGj-)|B67d|ilHx>VZTQg3^vyEIq4C61Wt-G$os*|WmV&mq+mm@E z+o)?p$AYcBI$Ap$#yJ~qt?$omFwrP#>a$j4|JYr*h&$*FwgcUs#do{K+wLX|kD-sp5;<|zt%l$a5yueDLH}P-C zj({d}8~(J8*WCHSvcp@PLtF!_kEn4{#m+tx2J_rYp-K# z`!uQ6XCNOD>k48|SeqK>Og$1MtnNoPo|y3EWJ7(o548b$^H2MbLyPHwZDqx- zf`wTdz!Bp8>927-8T9i(BN-q6a2m8GO{wNK>885Muk?LoJX1Ttd(KSB(#_X$x>WW* z?Hh31JZxX!VNS7YHyLV*>*-v*+hYup!gE>==KQ1qAB9!*7gzPC?3-Kc)#_-{QLN&U zVC7IDY>`JJ5%M_vtmzw=1^_6R>ZRH#9a{LzXCv?#yRxB)PtGUo<7b%N`S+BojNF_* zl1`qv91`Xy-TG8-JVUs0ipqTqc=k#A;{&`l*1%P2o!yp2#oJjV6HR5*%Q~l8R3C@1 zrcD0mn!mcJbSRP1ZU}N(ip;jSGR(hS=fixwieX{$ib_fJrM#|AR>hRLxgv;3*&9Ys z_bZZcy@Rhf6i_f#Adw&+>7V#}5hzNdUSTS4Z_kPHr=^94gQK*ruCAh@A}hFO??ZjIdD-fj$75M;&T4eko<#GMx> z5}n3yC#Yc-!!V>X140s6gLCg$=2mh3&RhhBN$~PxDKnk(mo;@9WWF(n@M0A$+F~&8 z8}^Wr9_p8dm>H8ULkRZ5Jmco@pRR6V)JQlbU)obhn8s;~=K> zp=gvz6-nGk+oLeNzrBG+Sdpjc3ij)c(&@fGrD()F8(8;-DS~(4u1-{u(&KSZ$0-4E zv~TZ;%V^t6N8QM&kgh(4zR~Mn7*am>nW!@pXX6CwHF;)?SGTKmf>dLp;Xm0=29<`S z`AUD9duk?7@(Qu3^qufbn8aWiEpQGtJkN_R=}wHVpQ0QoX^{`HLj^XFnEml;*OH~} zT%A)#7^Gv#7Uk>e>Z*FV@v~>oinQvhQc-G+rC#C{sh5k<|B8!^H8eE5yu1XW4zFvu zEf}HQ=)TnAN64%qc=Q+F;I=-5G3rF6E_v=dXHCm^tL+StqGLn?IT_~Qk5qRNQ)HO0 zftP~U!$OJQ;Q=X*cT6CHc4(FYP00R{#MSmh0Eh>PBF3M1n-vN*8)>)uHC5qIV#!;o zvV-=(C-$u+%*h}(`l+Y^Uxmkt0vQO@rU}n{#VD&L???P-m7BD!gW2$luS%nNd@f7g z*~k2zCzdR0r`WIivXlSn_kQ!`F6Cd{eLQAlQDqZ3P!;M*&ZK%>iX!nbHvSml$@RuQ6YDro&+ncDa zf_?Mjd;+?WVpMhVic^#FDzpa&46(737;g0~+h~|&tP!o z!NAMoMu{gWCRB@8rk8h>iw?+Ke}8@Ne3+8?Xkjkv&X~5*fo|McclIDYrY-?&tVQF3 zX|VDQIobyefcmfCQauu|T?8&kdiwRwaN3&h!B|AWXHzCAjd#~Oetv${)^qV39~zBg zzCqwOrInRVmyp(fX{n+#w>KvP-rn9|Yca9OV}~E7G1Ly-=EWAKPi~fBRX#u?aE}R( z^ZmT8HiNHkKx5L8s#6-S{y24!%`>E{0-kB;Zy&Dc*c0K2QsOH&kO{k?)6ilFll8E= zuj=E0cwrrErhXzd7TQm(Jrs`;%eK0|=6hec&~+Moxc1@&2T$xA^UoFAAG@)*m=4x! z{4f}cgxi@jrlVJfrKcTiw9wSbgcH>o-yV~c^4oNRK(_w-M<@Y0H)^V$ru*QQtVm+A z=eDAT=G8vTD;&;|b<%-He+%)|b5%ssfGh7sN-~qh#LveH0vvW?RWC_sB8nK&zr4Wp zQm4}oaruDm`RAuxqQfaN_jG4SqF(Km!2NjE=y3sY*i5;9cf^;gBlg=b1wxV7(fn6K z^RCJxtvmurUyg=%)^$8Z2jxx^C|iCcJScy6iIN?MyK~j?z%_AzI7qd~KaiUcJNqSD zQ`Dh=Eqj9;*SZ3`#7*aL)Mkay7kU^E3{c~ir-BIbp@EO{N z0|5QB(-II7@$&G1WMj+8w=ac{kJW1J*MMNB!|Ph>iNVEh0gUefN<(AgMqfgXXJWH1 zi$;~@{oQR`T-@B;91+p4BW5C8S^JEf8mvXzC5W|*fRpg@`9b%X9LP%L@^nA+kC_cM ztqX;42+`b|o2rGjbF*{3rlucOJ)+GbuGO21DEO!d#UKSKu6m9XAs=tf2cCDydI<~n z|eum9ub*T*-TAJx0*UhM0fneq{T2cB;iRTx@Hhpl4=ge${P{68-$1 zU%U{l6L0lifgGiFpo!?;Emg{hMs9=d=sx_lokgl3Mh^&763VKRU|g z!#bZ<4*@8@G@;WsfBNw(o2?da5Ewy<`L9L*E_?F_xxJ{Fa75AQx%P_}0$)L9a@fy^ zA>zr(g{`c=ELouLuwT=es3A?8EQa&^^=@UEjB3HIotqykwgGbjE6K$rWNaXWCNYsnTp#;4auPe>*YvMky z1XphT-A*T29ufWF$@%imR3jZ)kD1Dz>npvh7+K0UWJ3M8%xzm|b(_TFl&-h3Dvq0VPP>z{&xyEE=$&CSw0Lu18m z87pmXI)BV&tS!xCr|jV`CX$Wq>+!*^1J;Dd2$Y3k^upX{5HFa=?Z5$Mj3+eR6tAyT z&){3~^$^uYXw#PCv<;#kEl|AB~?;;l-27Gt5^LSR91$(8Q4*Ipb~ zGGC8%ZQU3aDd*u`W@eg8BdP7&#KI&CzB?_Vs<=5rO9$r?^YrNXrlJO485^u1YD_v| zbYrc0Mg6NY70xm?F`Fh1E*uUoH*m4Dvm+rPiDA>?jFTem(IFusB8rZQ3I1%D8TZ)C zpyS7wDL4HuM(E5Jz(L; zXC%kewhXKGGpA23`)4}8OXj3WiJ%QC2j;Lfe~U)cZy(U6ZwX!(Sh_~8PP(#li-r+| z4+Um~;OmGu2-ct87%57J&R5%XZX(1S#D@GnpTl$SrlqAt>~d(ZBSM*Y=j~`uC3sZbD6V3XhN%=yDYcMNV_TPn zs;#{r_%tV2jb%_Qewuf$=Zlu|%v7A?N=`N%r+p(CBRD@=A3QhS z!cNeBykdC&ecXbX!U`$;q(Vzsx#)s*CPB!wXQtw78pYYpME!y%8CTt&{;2P(I2>gi zICE2OVSZst+uR&`>IDu2LB0OOBc=Sd{pgKLof)Sg)YYvP@;Nc;bZVh6vMcUvPM0}n zh^zluXFv`SQZjD|Um>5`vD*DZL);m|euHka<2*a7Wa^#uzojEo#H12b&HUl@%&LiZLf7lU;kr+DH1 z{?ie7C&by>gjGIvVL@aRH(JlsU$3mTISfq^JQ^yg36 z%Ik{F$WAx6&Yu^gOw&YAyzX=`{fWkAk3x-;?l(RC<=;8u@~GN!l@6_((y6Rw&{9Km zxYN-ns2C$@hD|F<(`-9PLd6>A2W=``to~&7dlfr7AXg597qnie7_Q%a=M1AHzGt@5 z9gZ#bdNV%fxd+w#TpD^t_{>1xg28D{gzS6X#bKFx_V~z5V`~%hz~y6-f_v7Z1Gt5k zh(cDv2Jv&&(91U29WC;UaMk1(2AX7VEyw&cn4fHXh0Wi?fEX{K#r`A_HYB>veOr4o z7ris0|5KpwTvlHzz4Z0y*e!GhzTlqKH$vSSYIFaagL`oJo1{ON)e|!R&dzCZ1A%cV z3sNmh*`|iI_5H8EE8y>2YF(BS{FAz`>~*3)%gre#ePIUBxy!A%+} zlk@aR-41k=g8mhE#rkaEEpswir9}bfg1G3m6I%!UEF}K=;E1-R@ScBq=>&5f`|89( z<%v?gdx+b%jyvX?dm_dhq`RrFC#>5&F2Sdj_QMD0ou-e7+eQ1>4WjD6yyhpXd*i3o zfTgF9#Pyl_6`ln`9~EYrchuO^!NXhMl9BQ&`S3UAIZZ0CJHPCP+0kmmz^M38u<`TZ z(nRH)r_C*#h^*Ap=I-X+61uQH?QqybeJ&DG(HAB%%L24N96As2`83*4+>?$441*_u1r*-7?z z*T-~p?k{g27!g(bh@9Uli#Oj=Ol7k5fLae_7qA_phG;>3M0Ko<>CXcPX3Llzscws{ zxpSd$719o_T`U3Wxdv-X;K-9)S0x6RVw-$mq)%MbfT7wiM_@FS2MZ$|INBNPnI(Z2!U55yNI-zHO`CVZ9fd)yfU>L!3JWei4{CN}M!Y z!e%;}aq|0SVD(4`W}NpYJUq~@XB}E5j#42o7iGeC3cq8NL?^8jxV6#V-Zc(^Tetb~ zc@c+O*rl&`QPXy?z%$Deh72ds0^4ULJE|-ZcdKx%lM^g!YyaHMk~PU+=`DMAn!kN8 zq`cUr-8}cUl|wuKrczO?Y}@jqQt#v7;!@LGU0p>*MG3iAXnvBMdZoWPn8wC7Zk+ZI z9o@~tLseOsF+r`uc59e!t-WcfweNuIsUxw^vOzw3qVVB~^aIE}56eN>xFM6vg)oGt zf2Y8aZr$F7lb-Emlh%mT-hl!?C5twzZl6jLp9 zxZJN4U?hqxL32llpQ0$q7?f373MjRia$}&Q6A}=xsFmo>R9W@O?#`RJq3 z*Zr)zirE4ic9ZIKd`4uUf3C4S$t+sFME8>ct>NucZ`$v*Zf^VqBopQR%Im~uSdX!k zrtD2?Yiluls5_|@#VDN7{r11%0&*@GyF1MhAq=O0I`7Um)^EA0t4}G)3enNfiiN~- zto#@X8!J#{|59N(l>U*=#;aao+#pOSd)A~zzb&Y)&W4Xg286iylc*xJ=epR@-%dE$ z&sPVI_W{w{+uQUqiI-!lI<+-5y@_wQ z-n_YL@p}q^oyuEV7Z()l{DvXFNRfnwga|sUhXkx{Y+ye0tmiyC-pjMJyYY_kn+<$Xd7mNYo1n`MuDQTCsBp&ZDe4wuWo1Rasgo>TE{sjq^6yUk;7L_@`2Jrj$B0V(ugxX!#`)JO1-%8g%>F-rJ#v2P z8H#{t#t?r!xWxeFtxMaZ{~lIkyCLVB`e$!rR6u=a9Gu02106ZJ#oa2DP0Glwr=BgS zrWs$qer;)K`SuMJSSu#g==rVxdG&udqyPN#zr{dd(DnVlx;j}d&S)qm-F!Z?`OJW@gspb*rzhFDNLuJ1>Kx<*Oy|48>egK_MbM92XxS z9~XD%2gJtGQqb$h^}h+p&@eM4C1pAATb zfpzbqEG{kG*B!--hKfor9UmDH5%KdU4h~L<^<14swY8H%`2&8*4(PLtA#er7ro|LP zis!J~9_FHG0-ud`gX>YTR{iu*Iim6Wi=3RCrY0ctlWeItycaKObeq2|FYDLy;pKzv z8{Ir!>se_JWoBh1#BJ1G$oLdiR#sM^iV!~Tq;+$18xTfXYB1#?5GkBS62`{a$Fd?K zP0P#6K|w*pI-Wn{A`sQG4i6mZ&d$!@m#vWL zi}C`MqU*T>uN=Yiv$ICK6)^*Yl^+yP!0p^uJ8}J==n-p{ybq=Hx?CC_RwzlkI z^5qLy$+$RR%hJ;Tk4RT{x49(UfXIDA1cqv%n%(X7S$cYUFfltYwE{Z9jI}-XDrI1g zQOLW%P}+itqcBB~Qv>61Bfo16QR>RT8XEOPYt`7MQHa!gTv*dRYwzet5p*l7si`R` zIaF=B1}4wyDvQqV*?ucO^Ei|!v-rrfVM%r#k>sSLxpEU(+&B^V?>>NbNC*lEeKcI} zjl=Ls1NykMw54TXz(WiSUT*HmrZbQqz?KAfl!UZ2Au!MH`_1UTvaJHY0@zrO!)8o? zu_YAO>A0;$)#n?|*4WYD;o&JLDUIG-{*o1Dq#+Gm2Mgz_D{b6m!wl zd5e4X{E?oktLp|g{##=E!^LJ|ZC7d`p~m9kVi=F-NgrRgXr@WBTXx&%V5P-GP(YXA zbg99oj)W&TkJ1D@F7^q-F)3aDw6$fmt?vo)pQS6h(@2{ZoB$i@rRGbT>buohDyDQRE6 z{JX0T0yY7SgA)XN8RXNPvktMGPn-bTkfT)F7K&Qovzf2ZmNham>iAF3HSTBTA3pd5 zc-|a!00m86ULJ_2klwzOgFdV^&#iw`$?{i2ts#%U)yz?3__zxd(XYF)&I z2f&H>tfo(od)N;EHT?PdK)S=n$4BJmur)Q63Rk_!s}V-}EEV~`2f65so*N9D$H#w$ zIS0G#Y;0_pqc+dnRaGba{r!I^p{8n-Naj$}g#XuLEDID-#Ft9*v+c3Awl<)^Nbo;Q zwU^j1XxzYMl=mp~$>FV}2Q#J8{IW?d^^)tQ6620*q z`SA!|(3R)y*@RWz!?zPA2$|NpY)Jt=zUm*NXp6~dnq~m%DKc|5b?A-~v$ZYB$;rvk z@b|#>#@S9E*#ZT{8EJI9u8eld0i53L1Jnf#1OqRxiYQ=rrwaq+-1l*T>@6i3+k zHg~eydK_?cHQe7JjR%ZPOqiduNHe3S@`A2Ed}uvd>Ci|~7Jw9U>k>Z%yr59MTy*sS ze(wQ9Pq5-lwGA;)igDJi2aM?e)uebHiw7$LwN8$*H(6+g?HR_RCOG}a$H(*Fl=E1O zzp@~xE^*k9!QEPDf{$P+qcFuJCKj^L<)3l^>Ep5wSQHJXNk2J51=a;QDz(x^AVacT zw69rds*bVoIyk&kG_t~1h9@iEu_+`Z|2-DJj~w;&mjiHVMGag1p8<9+-OQ|PGIPp^16FTrYz*Ild&Ckz+#djQ)e6aWk>=zRg6COT(pVymu!>$N2 zK5PC%^ar-N=jiW$bva%hE{$__@sRdipY1@K#^j#PvBR$<%ONs1=K2-u-`a?Olo2g{ulwzP0bwD&PXGV_ literal 0 HcmV?d00001 diff --git a/previews/PR238/assets/xseqdrd.DP9--zAp.png b/previews/PR238/assets/xseqdrd.DP9--zAp.png deleted file mode 100644 index f68bc819e4b57cd6415b77e9bfb0f6931a6152f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65470 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%0DsW%gcDK>NLpcB}_8uD^m(=YE}` zs>1Ta+KIl5ym|8)kMfS7jS@CN$0RQXg2;6Y+hi^635tTEd)3oiATmX}1fk4!PuXRT zod2e;9Ozd-q&GGMJv}}1N>aBjGBVObz6(L`E~igZxG^wN`S|&vZvB0b>(1_^q$I=$ zAlD!bg{t+5EwM0;i15=hGgndjUniQs5=&pZ4wDKT*9-=0D-aHtet%92uF1e2Ip0Jd}!Qw7_HU zE=vAqrVV!QV@!E{8F^O7wL&6HZ5gT4h&g~*)A#;<&xJXUMBNWi-NKKyDEley-d(!O zAlUVhW2^A4UAqJXGE<2tts>GDH$(@AhOVZ5i%F=ftAh+DjM&{7_TZYG)~PHuHSRlv zBVT>@XWIG%-*!O%a<>&Q!i1mJcBs0riP}htjxp1qcK4DCxmIO$J(`-wZL9+ zMg9K{ry%hMAg{9Mwi+K3BN$|lbwaQ?s(RekcFg*J9qZ%*>g=7&BcsxuOW74fb>>^s|Nl`NJt>b>&bWQ*fIRS0)k$% zhI|Xj4zx{`-xZ#tsiPBq=@KIo)8(sI$v7>oWjCsjAz%Z#U!li{u|^-jkd@fERb?4> z@4i8J{PysBe|#bcgUPr_2nI2(T2+pV8&}kRAD=mdOd#Bmm!rp@U)4v6Y!Ed)gQT>h z_8Q_g8~G_i6%Z{(WbEp`e!3I32B=051-bJ5o}M$%f*TpUnq!OmI;fSyNlLz4iHyYV zjk8#v+X)E?=8*D+Zj!;FL+>3In-3dIOiuQ(;!5CoN`Tx=a5%z2_NeJPCbcZUCxBI# z2yjb~_sF62;DE3^$<<-f7Kr?_H`n9Gk;sb|FKS%ll5_n=-i8!*ttGM;utSM6&Y(Vg zgvUe}aaSiH`o@iB!~z|AzTr;R)Yy3S(xpKd3mKskB zF^h)Q)*>tzVkTecR5gT?a|t3}^zGYt_>taTlIVaSz!R5HVNns05f~syBE5pBtOw*m zR;*qR_=CKulO0q?AG`ecQjG^mQuHn?EiJ{DSeCnQ0`)4_IKOdOSy>r8->xIK<{^!a z3o1YloTjiDh?_2)Tv}W}Wc>5z&)>g)gU1IciS44Ir(lQ>hhzGcl$09Ie?fUFV1xL$ zxa@aBbaZqmftK@`vKJQ@Z`hcqJByq<6BV*X6b_E93{Rmbg`nw`e;UjVne@kp;D!gM z2}Pu{Ha4kR88;)aW5k4o%RNWq|AyGOH^cvM?m87~H-TR%d5u{Bi8^}psH*BSNJEKr zQ-~}RZGzZM^?sW|Nli)l0!>O(+|w?B!_}_7a^=cZRP;GpF{ueVM6p4$;o@o#Ln$;M zH4W9UBTUpq&_xf%?yMd@_6Wfy2o7X_O{ZWfGy`r(tg9x2xDzG7bwR(ANz^?N)rj5N zQFQXee0vvU7_r1=>dqa-I*cy3j9XUtw4VE%XL8SKrh8wauI%|a_l}WM2z{~eCs^ho z3g?hei#_CY;?3!&3&j-FD@w@8l>sR09rV?Vb56tPg#&% zOWfu-fyA~huKJ$X6o~+5&;@Z4xR8K=K-;s2qNexB6QiZA{RdQ;Z)0PXm^nN&bV!&t z?&O8V!RUYrmEq3$?%lf+P4ONOpdb~wK%E1s^0ZHv6sBlwY=p~M1DPdgHi?Nj;rOpu zu>#?=GjJgofTjq@oL#wgtukc13K9b@HDzZ5k$*`V5 z6iBkUVhZ3HuY`q>{TQ(6;tsUoAVNo1ml4;f>p?+5z(;ItZK0{zgBOx-ad&?ts<14@ z%Eeu66;ai7UvZzkWE@z0eeC==0Ki6~BU(K|aH#;+*5ER^DL)_};K>uk$zK=f8NU4j znAdo*|KMj-P(xj7@~o$)ClIf1kx6^be^T7CVFRo+3ybc-gR-m;jq{$+VU+M+JU3aY zxKC)L79%nrd&-A?2@}HgVDxsDdo(EeeXUvHEtZv>+)Xw#O`yD1#yh|Lh4 z0BA(u&3;I;zE%8%tNE*6h!PL49PcQ(hdUeX5+Ke_Mf-s@cPOd24&lZob$!Ez4Gj%i zSOSN#fiGW<=FTE$-R1aRlTpI;n`T2@UY@A;oEI)@CFj2qU))U%R}y+WrRC-5%MNtL z5|SPWU}S!BAVq^9BfhT=roE39+w|w`tn78Kp_XmDyef>;d1=!YdufU|aCn~!s zTs`+EX-7WSwjtujsb->r|N5;Ch{xacFSeXfXOysc#`rftcB=jjGL+Fo-`{8uC+FDV zJ^K^oJ#NM%#2@tdTm<~*x#tfww%tGj5?;qSj-J$TW9wR16(?tL?-&k?pAD9`* zC@MaYbl||g;?%avcgzK@xqbWg5~W;Eb09^<7XekfySTg^a(7+Yv}senU=j1o%#3qu zPAdfIL?ZtR>B$@M@Fc(7;w!p+`w*nElo1x-=p)0xy>8vM4rW*l0L0BPc>yTwE;VRXqD6rM2&h@waW)qJ3!VO%G7G|F=Ssprc6Yc-`*Pw#pWZ4PP z+--67SN`5A&g084yHD|jU}K`M#5P%3FO>EJC_GR$pt!8c`$5(k3<`$AALR(a6vTgr z3vKtSS@$KmApN1ud|UwVjaFGNDsU<&e4?V-i^5lu!Oo1{Y+-2V4*UWTXSW9@Zc`II zEn(4Pw|e`}jeWxEoWey*QOLw8VqW%Mp@Fj`MqJ37=Oa0@0HsY`9i1ZWQaDz?Pn`(q zKn&#zs%vNf6kr+-!I+}! z+~q^g&I;cW3)&=vpKkG2`20WJo$FJSWf;caCgorpHrE*nXp#Yzvc(1^a1^vwBsO6S zfn^qq;b;T~8ifPlLI^ZulZONa#mH7vz!(eMU4gPG8xkwP7BK`IV97yj7=&_Rk$x|I z=~I6|`(?i^Jg57z-MzK>4Gg@sGJa;^Q0odri`SE5=)DS;1Xy4H~ei4yaG3 z$LPhJQy)|+QK-k%gZX!TJxcWYzc^-ICE)){UaRBH+fIr%+sL#_3WM@ndeQ7KA@9%`i z*gCqVY7iMti&JFRO=uxg#hRZjk@V}cKjk=BQX9WbJccbf0ycTKefsdkbge0ajN@Cf zuHbfla*K=0Q86{i(lqCFo_{IpI-*xE^q26jSH*se$PMFE+;;p&e}XMuUJNTz0%^d%OM@LZ-T zW)MmwY1%?^V|Vv8#6C}?Aw7cFq6RG%EJ1hE8Y#bHiBKe+#WAVty2-!pK2{4ug640t_&2E@0HTBCp zn?f9&oG!X=N9ea06`MDkZ}U>iRVq!Hk5Ss8J+s^c>HdR%mOff^J+dl8`}iAzQ2#o( zEIsshdOD(}mVZyY34qFW;Y&4Ncb8uIvx=;p6G~-M~OQJE?MnmxM?3S!JcA znn7O+_1lS|Z#GdQg|CtnsWpmT>^-{j`J)bkO3c7Q^xDqiu5P0sOe94<`QP^nL?5K0 zj9$tIV%0Id>vDIwAY|=}3FRV<@Zx8NRPm~fuwwCN|A*h>3y)m*{*O0x9nv6ioXRb# KkS`R8#eW0vR^jFV diff --git a/previews/PR238/assets/nefnrcg.BEFUMtlf.png b/previews/PR238/assets/ysbkgcq.BEFUMtlf.png similarity index 100% rename from previews/PR238/assets/nefnrcg.BEFUMtlf.png rename to previews/PR238/assets/ysbkgcq.BEFUMtlf.png diff --git a/previews/PR238/assets/dlquluo.Dab1-ETk.png b/previews/PR238/assets/zsrvzwp.Dab1-ETk.png similarity index 100% rename from previews/PR238/assets/dlquluo.Dab1-ETk.png rename to previews/PR238/assets/zsrvzwp.Dab1-ETk.png diff --git a/previews/PR238/call_notes.html b/previews/PR238/call_notes.html index f3de00f33..3d60e2f54 100644 --- a/previews/PR238/call_notes.html +++ b/previews/PR238/call_notes.html @@ -9,9 +9,9 @@ - + - + @@ -19,7 +19,7 @@

    Skip to content

    20th April, 2024

    See GeometryOps#114.

    • [ ] Exact predicates can be defined for lower-level, more atomic predicates within GeometryOps.

    • [ ] Add Shewchuck's adaptive math as a stage for exact predicates.

    • [x] @skygering to write docstrings for the predicates

    29th Feb, 2024

    To do

    • [ ] Finish clipping degeneracies

    • [ ] Fix cross & overlap functions

    • [x] Benchmarks to show why things you couldn't concieve of in R are doable in Julia

    • [x] profile functions for exponential improvements

    • [ ] A list of projects people can work on...the beauty here is that each function is kind of self-contained so it's an undergrad level project

    • [ ] Doc improvements

      • more

      • benchmarks page

    • Methods to validate and fix geometry

      • [ ] Polygons and LinearRings:

        • [ ] self-intersection

        • [ ] holes are actually within the polygon

        • [ ] Polygon exteriors must be counterclockwise, holes clockwise.

        • [ ] length of all rings > 4

        • [ ] repeated last point

      • [ ] LineStrings: NaN/Inf points

      • [x] Fix linear rings at some point to make sure the ring is closed, i.e., points[end] == points[begin]

    • Tests

      • [x] Simplify functions

      • [x] Polygonize

      • Barycentric tests for n_vertices > 4

    Done

    • Rename bools.jl to something more relevant to the actual code -> orientation.jl

    • Doc improvements:

      • organise sections
    - + \ No newline at end of file diff --git a/previews/PR238/experiments/accurate_accumulators.html b/previews/PR238/experiments/accurate_accumulators.html index 15dd96a30..68155a656 100644 --- a/previews/PR238/experiments/accurate_accumulators.html +++ b/previews/PR238/experiments/accurate_accumulators.html @@ -9,9 +9,9 @@ - + - + @@ -24,7 +24,7 @@ using NaturalEarth all_adm0 = naturalearth("admin_0_countries", 10)
    FeatureCollection with 258 Features
    julia
    GO.area(all_adm0)
    21427.909318372607
    julia
    AccurateArithmetic.sum_oro(GO.area.(all_adm0.geometry))
    21427.909318372607
    julia
    AccurateArithmetic.sum_kbn(GO.area.(all_adm0.geometry))
    21427.909318372607
    julia
    GI.Polygon.(GO.flatten(Union{GI.LineStringTrait, GI.LinearRingTrait}, all_adm0) |> collect .|> x -> [x]) .|> GO.signed_area |> sum
    -21427.90063612163
    julia
    GI.Polygon.(GO.flatten(Union{GI.LineStringTrait, GI.LinearRingTrait}, all_adm0) |> collect .|> x -> [x]) .|> GO.signed_area |> sum_oro
    -21427.90063612163

    @example accurate GI.Polygon.(GO.flatten(Union{GI.LineStringTrait, GI.LinearRingTrait}, all_adm0) |> collect .|> x -> [x]) .|> GO.signed_area |> sum_kbn ```

    - + \ No newline at end of file diff --git a/previews/PR238/experiments/predicates.html b/previews/PR238/experiments/predicates.html index fa07e854b..78f98d3c2 100644 --- a/previews/PR238/experiments/predicates.html +++ b/previews/PR238/experiments/predicates.html @@ -9,11 +9,11 @@ - + - + - + @@ -59,7 +59,7 @@ display(fig) end resize!(fig, 1000, 450) -fig

    Dashboard

    julia
    using WGLMakie
    +fig

    Dashboard

    julia
    using WGLMakie
     import GeometryOps as GO, GeoInterface as GI, LibGEOS as LG
     import ExactPredicates
     using MultiFloats
    @@ -116,7 +116,7 @@
     
     GO.intersection(p1_m, p2_m; target = GI.PolygonTrait(), fix_multipoly = nothing)
     LG.intersection(p1_m, p2_m)

    Incircle

    - + \ No newline at end of file diff --git a/previews/PR238/explanations/crs.html b/previews/PR238/explanations/crs.html index 37d276f24..35945748a 100644 --- a/previews/PR238/explanations/crs.html +++ b/previews/PR238/explanations/crs.html @@ -9,9 +9,9 @@ - + - + @@ -19,7 +19,7 @@
    Skip to content
    - + \ No newline at end of file diff --git a/previews/PR238/explanations/paradigms.html b/previews/PR238/explanations/paradigms.html index 415bbb066..f28e8eec1 100644 --- a/previews/PR238/explanations/paradigms.html +++ b/previews/PR238/explanations/paradigms.html @@ -9,9 +9,9 @@ - + - + @@ -19,7 +19,7 @@
    Skip to content

    Paradigms

    GeometryOps exposes functions like apply and applyreduce, as well as the fix and prepare APIs, that represent paradigms of programming, by which we mean the ability to program in a certain way, and in so doing, fit neatly into the tools we've built without needing to re-implement the wheel.

    Below, we'll describe some of the foundational paradigms of GeometryOps, and why you should care!

    apply

    The apply function allows you to decompose a given collection of geometries down to a certain level, operate on it, and reconstruct it back to the same nested form as the original. In general, its invocation is:

    julia
    apply(f, trait::Trait, geom)

    Functionally, it's similar to map in the way you apply it to geometries - except that you tell it at which level it should stop, by passing a trait to it.

    apply will start by decomposing the geometry, feature, featurecollection, iterable, or table that you pass to it, and stop when it encounters a geometry for which GI.trait(geom) isa Trait. This encompasses unions of traits especially, but beware that any geometry which is not explicitly handled, and hits GI.PointTrait, will cause an error.

    apply is unlike map in that it returns reconstructed geometries, instead of the raw output of the function. If you want a purely map-like behaviour, like calculating the length of each linestring in your feature collection, then call GO.flatten(f, trait, geom), which will decompose each geometry to the given trait and apply f to it, returning the decomposition as a flattened vector.

    applyreduce

    applyreduce is like the previous map-based approach that we mentioned, except that it reduces the result of f by op. Note that applyreduce does not guarantee associativity, so it's best to have typeof(init) == returntype(op).

    fix and prepare

    The fix and prepare paradigms are different from apply, though they are built on top of it. They involve the use of structs as "actions", where a constructed object indicates an action that should be taken. A trait like interface prescribes the level (polygon, linestring, point, etc) at which each action should be applied.

    In general, the idea here is to be able to invoke several actions efficiently and simultaneously, for example when correcting invalid geometries, or instantiating a Prepared geometry with several preparations (sorted edge lists, rtrees, monotone chains, etc.)

    - + \ No newline at end of file diff --git a/previews/PR238/explanations/peculiarities.html b/previews/PR238/explanations/peculiarities.html index 3a22e9648..a94f76921 100644 --- a/previews/PR238/explanations/peculiarities.html +++ b/previews/PR238/explanations/peculiarities.html @@ -9,9 +9,9 @@ - + - + @@ -19,7 +19,7 @@
    Skip to content

    Peculiarities

    What does apply return and why?

    apply returns the target geometries returned by f, whatever type/package they are from, but geometries, features or feature collections that wrapped the target are replaced with GeoInterace.jl wrappers with matching GeoInterface.trait to the originals. All non-geointerface iterables become Arrays. Tables.jl compatible tables are converted either back to the original type if a Tables.materializer is defined, and if not then returned as generic NamedTuple column tables (i.e., a NamedTuple of vectors).

    It is recommended for consistency that f returns GeoInterface geometries unless there is a performance/conversion overhead to doing that.

    Why do you want me to provide a target in set operations?

    In polygon set operations like intersection, difference, and union, many different geometry types may be obtained - depending on the relationship between the polygons. For example, when performing an union on two nonintersecting polygons, one would technically have two disjoint polygons as an output.

    We use the target keyword to allow the user to control which kinds of geometry they want back. For example, setting target to PolygonTrait will cause a vector of polygons to be returned (this is the only currently supported behaviour). In future, we may implement MultiPolygonTrait or GeometryCollectionTrait targets which will return a single geometry, as LibGEOS and ArchGDAL do.

    This also allows for a lot more type stability - when you ask for polygons, we won't return a geometrycollection with line segments. Especially in simulation workflows, this is excellent for simplified data processing.

    _True and _False (or BoolsAsTypes)

    Warning

    These are internals and explicitly not public API, meaning they may change at any time!

    When dispatch can be controlled by the value of a boolean variable, this introduces type instability. Instead of introducing type instability, we chose to encode our boolean decision variables, like threaded and calc_extent in apply, as types. This allows the compiler to reason about what will happen, and call the correct compiled method, in a stable way without worrying about

    - + \ No newline at end of file diff --git a/previews/PR238/explanations/winding_order.html b/previews/PR238/explanations/winding_order.html index 08906a4c8..9922bb9bf 100644 --- a/previews/PR238/explanations/winding_order.html +++ b/previews/PR238/explanations/winding_order.html @@ -9,9 +9,9 @@ - + - + @@ -19,7 +19,7 @@
    Skip to content
    - + \ No newline at end of file diff --git a/previews/PR238/hashmap.json b/previews/PR238/hashmap.json index b89deba54..ad66f331c 100644 --- a/previews/PR238/hashmap.json +++ b/previews/PR238/hashmap.json @@ -1 +1 @@ -{"api.md":"DdY_rhMa","call_notes.md":"CZYzRScp","experiments_accurate_accumulators.md":"H3kD-25E","experiments_predicates.md":"BPsYqbuf","explanations_crs.md":"Ctml61Qd","explanations_paradigms.md":"DkPIL054","explanations_peculiarities.md":"DtmuLEfQ","explanations_winding_order.md":"BCV6Vx9n","index.md":"6N8PVUi8","introduction.md":"Dir6e8FN","source_geometryops.md":"CtlRivwg","source_geometryopsflexijoinsext_geometryopsflexijoinsext.md":"YRmDqACv","source_geometryopslibgeosext_buffer.md":"BDF_KQhS","source_geometryopslibgeosext_geometryopslibgeosext.md":"jM_bCSt_","source_geometryopslibgeosext_segmentize.md":"BBdLlIMm","source_geometryopslibgeosext_simple_overrides.md":"BTtvOOuG","source_geometryopslibgeosext_simplify.md":"M4ChEP0m","source_geometryopsprojext_geometryopsprojext.md":"4KNUOvjO","source_geometryopsprojext_reproject.md":"BShQKR8_","source_geometryopsprojext_segmentize.md":"C_Q7J2k4","source_methods_angles.md":"BfBgRbNW","source_methods_area.md":"CHWxYYB9","source_methods_barycentric.md":"DmIno-Km","source_methods_buffer.md":"C-qu0nRz","source_methods_centroid.md":"fOzim5wq","source_methods_clipping_clipping_processor.md":"BXDN_cR-","source_methods_clipping_coverage.md":"BjYwMAiW","source_methods_clipping_cut.md":"BRN3NaqE","source_methods_clipping_difference.md":"B1XFBYBb","source_methods_clipping_intersection.md":"CdnmkV__","source_methods_clipping_predicates.md":"CG3PufHF","source_methods_clipping_union.md":"DolRDOJj","source_methods_convex_hull.md":"E_Okplhz","source_methods_distance.md":"BuLlEwp9","source_methods_equals.md":"CQYqwJi6","source_methods_geom_relations_contains.md":"8_K3j1rE","source_methods_geom_relations_coveredby.md":"BmZEzXXT","source_methods_geom_relations_covers.md":"CgxV2GZS","source_methods_geom_relations_crosses.md":"BhuZwJ5f","source_methods_geom_relations_disjoint.md":"B0CCPLEP","source_methods_geom_relations_geom_geom_processors.md":"C8Zm9b2T","source_methods_geom_relations_intersects.md":"CHxhFqD_","source_methods_geom_relations_overlaps.md":"CA5EtZc5","source_methods_geom_relations_touches.md":"C-hkkD6y","source_methods_geom_relations_within.md":"OUFUC9ym","source_methods_orientation.md":"DvGVRF6R","source_methods_polygonize.md":"BzLgJtTO","source_not_implemented_yet.md":"B4PawMww","source_primitives.md":"D9mwFvpu","source_src_apply.md":"BuwZgrvB","source_src_applyreduce.md":"DDipwjWr","source_src_geometry_utils.md":"DOJhF63H","source_src_geometryopscore.md":"DBjiw_CI","source_src_keyword_docs.md":"DlrCsBn0","source_src_other_primitives.md":"CclyXPRq","source_src_types.md":"kz12tirj","source_transformations_correction_closed_ring.md":"CNTnhJIe","source_transformations_correction_geometry_correction.md":"BUKI5iqX","source_transformations_correction_intersecting_polygons.md":"DCqVV_6g","source_transformations_extent.md":"DPz0Uuif","source_transformations_flip.md":"BvTk-_FA","source_transformations_reproject.md":"C3a1DK2F","source_transformations_segmentize.md":"C1u6DChx","source_transformations_simplify.md":"u8Bjh-r2","source_transformations_transform.md":"dJKOzL4L","source_transformations_tuples.md":"05dDiqsL","source_types.md":"vrXKilD5","source_utils.md":"lJ4kXZxI","tutorials_creating_geometry.md":"BNJCwUIY","tutorials_geodesic_paths.md":"CwDXJw5E","tutorials_spatial_joins.md":"Do6MoDbG"} +{"api.md":"608Eto75","call_notes.md":"CZYzRScp","experiments_accurate_accumulators.md":"H3kD-25E","experiments_predicates.md":"BWVHVMmB","explanations_crs.md":"Ctml61Qd","explanations_paradigms.md":"DkPIL054","explanations_peculiarities.md":"DtmuLEfQ","explanations_winding_order.md":"BCV6Vx9n","index.md":"6N8PVUi8","introduction.md":"Dir6e8FN","source_geometryops.md":"CtlRivwg","source_geometryopsflexijoinsext_geometryopsflexijoinsext.md":"YRmDqACv","source_geometryopslibgeosext_buffer.md":"BDF_KQhS","source_geometryopslibgeosext_geometryopslibgeosext.md":"jM_bCSt_","source_geometryopslibgeosext_segmentize.md":"BBdLlIMm","source_geometryopslibgeosext_simple_overrides.md":"BTtvOOuG","source_geometryopslibgeosext_simplify.md":"M4ChEP0m","source_geometryopsprojext_geometryopsprojext.md":"4KNUOvjO","source_geometryopsprojext_reproject.md":"BShQKR8_","source_geometryopsprojext_segmentize.md":"C_Q7J2k4","source_methods_angles.md":"Bdl4uNud","source_methods_area.md":"D2Da__F3","source_methods_barycentric.md":"DnBl0n-K","source_methods_buffer.md":"C-qu0nRz","source_methods_centroid.md":"BT82gcVg","source_methods_clipping_clipping_processor.md":"BXDN_cR-","source_methods_clipping_coverage.md":"CJpiLfPD","source_methods_clipping_cut.md":"DRYvrHTw","source_methods_clipping_difference.md":"B1XFBYBb","source_methods_clipping_intersection.md":"CdnmkV__","source_methods_clipping_predicates.md":"CG3PufHF","source_methods_clipping_union.md":"DolRDOJj","source_methods_convex_hull.md":"BrjOWkfq","source_methods_distance.md":"CVMqDjx5","source_methods_equals.md":"CgqJun80","source_methods_geom_relations_contains.md":"CPKJZ7bw","source_methods_geom_relations_coveredby.md":"Bu438YZs","source_methods_geom_relations_covers.md":"BdZW6XW5","source_methods_geom_relations_crosses.md":"BhuZwJ5f","source_methods_geom_relations_disjoint.md":"Di-QgxVW","source_methods_geom_relations_geom_geom_processors.md":"C8Zm9b2T","source_methods_geom_relations_intersects.md":"DW3h6fuT","source_methods_geom_relations_overlaps.md":"DFiMjrKk","source_methods_geom_relations_touches.md":"DCOHUOGJ","source_methods_geom_relations_within.md":"DW6O5MaM","source_methods_orientation.md":"DvGVRF6R","source_methods_polygonize.md":"BzLgJtTO","source_not_implemented_yet.md":"iNF0IoqE","source_primitives.md":"D9mwFvpu","source_src_apply.md":"wwJRCjFI","source_src_applyreduce.md":"DDipwjWr","source_src_geometry_utils.md":"DOJhF63H","source_src_geometryopscore.md":"DBjiw_CI","source_src_keyword_docs.md":"DlrCsBn0","source_src_other_primitives.md":"DuzRAPMQ","source_src_types.md":"kz12tirj","source_transformations_correction_closed_ring.md":"CNTnhJIe","source_transformations_correction_geometry_correction.md":"rHY_l4Yi","source_transformations_correction_intersecting_polygons.md":"DCqVV_6g","source_transformations_extent.md":"DPz0Uuif","source_transformations_flip.md":"BvTk-_FA","source_transformations_reproject.md":"C3a1DK2F","source_transformations_segmentize.md":"CoptJFaF","source_transformations_simplify.md":"DhlRwMdg","source_transformations_transform.md":"dJKOzL4L","source_transformations_tuples.md":"05dDiqsL","source_types.md":"vrXKilD5","source_utils.md":"lJ4kXZxI","tutorials_creating_geometry.md":"BbxWhyiL","tutorials_geodesic_paths.md":"B0eW2fhm","tutorials_spatial_joins.md":"B_DJwau_"} diff --git a/previews/PR238/index.html b/previews/PR238/index.html index 781f33d03..817692256 100644 --- a/previews/PR238/index.html +++ b/previews/PR238/index.html @@ -9,9 +9,9 @@ - + - + @@ -19,7 +19,7 @@
    Skip to content

    GeometryOps.jl

    Blazing fast geometry operations in pure Julia

    GeometryOps

    What is GeometryOps.jl?

    GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

    The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

    Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

    We welcome contributions, either as pull requests or discussion on issues!

    How to navigate the docs

    GeometryOps' docs are divided into three main sections: tutorials, explanations and source code.
    Documentation and examples for many functions can be found in the source code section, since we use literate programming in GeometryOps.

    • Tutorials are meant to teach the fundamental concepts behind GeometryOps, and how to perform certain operations.
    • Explanations usually contain little code, and explain in more detail how GeometryOps works.
    • Source code usually contains explanations and examples at the top of the page, followed by annotated source code from that file.
    - + \ No newline at end of file diff --git a/previews/PR238/introduction.html b/previews/PR238/introduction.html index e2e22c9b0..75937f81f 100644 --- a/previews/PR238/introduction.html +++ b/previews/PR238/introduction.html @@ -9,9 +9,9 @@ - + - + @@ -19,7 +19,7 @@
    Skip to content

    Introduction

    GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

    The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

    Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

    We welcome contributions, either as pull requests or discussion on issues!

    Main concepts

    The apply paradigm

    Note

    See the Primitive Functions page for more information on this.

    The apply function allows you to decompose a given collection of geometries down to a certain level, and then operate on it.

    Functionally, it's similar to map in the way you apply it to geometries.

    apply and applyreduce take any geometry, vector of geometries, collection of geometries, or table (like Shapefile.Table, DataFrame, or GeoTable)!

    What's this GeoInterface.Wrapper thing?

    Write a comment about GeoInterface.Wrapper and why it helps in type stability to guarantee a particular return type.

    - + \ No newline at end of file diff --git a/previews/PR238/source/GeometryOps.html b/previews/PR238/source/GeometryOps.html index 71fc2ffb6..9c78424b4 100644 --- a/previews/PR238/source/GeometryOps.html +++ b/previews/PR238/source/GeometryOps.html @@ -9,9 +9,9 @@ - + - + @@ -103,7 +103,7 @@ end end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/GeometryOpsFlexiJoinsExt/GeometryOpsFlexiJoinsExt.html b/previews/PR238/source/GeometryOpsFlexiJoinsExt/GeometryOpsFlexiJoinsExt.html index bf5dbc447..cc82440fb 100644 --- a/previews/PR238/source/GeometryOpsFlexiJoinsExt/GeometryOpsFlexiJoinsExt.html +++ b/previews/PR238/source/GeometryOpsFlexiJoinsExt/GeometryOpsFlexiJoinsExt.html @@ -9,9 +9,9 @@ - + - + @@ -34,7 +34,7 @@ FlexiJoins.swap_sides(::typeof(GO.within)) = GO.contains FlexiJoins.swap_sides(::typeof(GO.coveredby)) = GO.covers FlexiJoins.swap_sides(::typeof(GO.covers)) = GO.coveredby

    That's a wrap, folks!

    julia
    end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/GeometryOpsLibGEOSExt/GeometryOpsLibGEOSExt.html b/previews/PR238/source/GeometryOpsLibGEOSExt/GeometryOpsLibGEOSExt.html index f644f44cb..e2a2d026d 100644 --- a/previews/PR238/source/GeometryOpsLibGEOSExt/GeometryOpsLibGEOSExt.html +++ b/previews/PR238/source/GeometryOpsLibGEOSExt/GeometryOpsLibGEOSExt.html @@ -9,9 +9,9 @@ - + - + @@ -49,7 +49,7 @@ include("simple_overrides.jl") end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/GeometryOpsLibGEOSExt/buffer.html b/previews/PR238/source/GeometryOpsLibGEOSExt/buffer.html index 8a77f3edb..31669d40c 100644 --- a/previews/PR238/source/GeometryOpsLibGEOSExt/buffer.html +++ b/previews/PR238/source/GeometryOpsLibGEOSExt/buffer.html @@ -9,9 +9,9 @@ - + - + @@ -49,7 +49,7 @@ return _wrap(newgeom; crs = GI.crs(geom), calc_extent) end end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/GeometryOpsLibGEOSExt/segmentize.html b/previews/PR238/source/GeometryOpsLibGEOSExt/segmentize.html index c4b6aa356..a82cc4616 100644 --- a/previews/PR238/source/GeometryOpsLibGEOSExt/segmentize.html +++ b/previews/PR238/source/GeometryOpsLibGEOSExt/segmentize.html @@ -9,9 +9,9 @@ - + - + @@ -39,7 +39,7 @@ threaded ) end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides.html b/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides.html index 3e9f0c3fa..8ff94a716 100644 --- a/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides.html +++ b/previews/PR238/source/GeometryOpsLibGEOSExt/simple_overrides.html @@ -9,9 +9,9 @@ - + - + @@ -64,7 +64,7 @@ calc_extent = false ) end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/GeometryOpsLibGEOSExt/simplify.html b/previews/PR238/source/GeometryOpsLibGEOSExt/simplify.html index 5658e90a3..246fa1674 100644 --- a/previews/PR238/source/GeometryOpsLibGEOSExt/simplify.html +++ b/previews/PR238/source/GeometryOpsLibGEOSExt/simplify.html @@ -9,9 +9,9 @@ - + - + @@ -47,7 +47,7 @@ kw... ) end

    This page was generated using Literate.jl.

    {)Z*@iO3H-Bg6 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 F{|8!&9+Ut8 diff --git a/previews/PR238/assets/stlkgfn.0f3Lq4Lw.png b/previews/PR238/assets/jyzhdin.0f3Lq4Lw.png similarity index 100% rename from previews/PR238/assets/stlkgfn.0f3Lq4Lw.png rename to previews/PR238/assets/jyzhdin.0f3Lq4Lw.png diff --git a/previews/PR238/assets/uibzdol.mCtKcWOr.png b/previews/PR238/assets/khupcbf.mCtKcWOr.png similarity index 100% rename from previews/PR238/assets/uibzdol.mCtKcWOr.png rename to previews/PR238/assets/khupcbf.mCtKcWOr.png diff --git a/previews/PR238/assets/eiqhwxi.DiwGEg2f.png b/previews/PR238/assets/kvtkfdl.DiwGEg2f.png similarity index 100% rename from previews/PR238/assets/eiqhwxi.DiwGEg2f.png rename to previews/PR238/assets/kvtkfdl.DiwGEg2f.png diff --git a/previews/PR238/assets/brpjlcw.rOsRk89v.png b/previews/PR238/assets/lhqicfo.rOsRk89v.png similarity index 100% rename from previews/PR238/assets/brpjlcw.rOsRk89v.png rename to previews/PR238/assets/lhqicfo.rOsRk89v.png diff --git a/previews/PR238/assets/tsgwqgg.DTKLkKh_.png b/previews/PR238/assets/mbjwyhn.DTKLkKh_.png similarity index 100% rename from previews/PR238/assets/tsgwqgg.DTKLkKh_.png rename to previews/PR238/assets/mbjwyhn.DTKLkKh_.png diff --git a/previews/PR238/assets/euucnpi.C3SxJ3x-.png b/previews/PR238/assets/nbwwrdy.C3SxJ3x-.png similarity index 100% rename from previews/PR238/assets/euucnpi.C3SxJ3x-.png rename to previews/PR238/assets/nbwwrdy.C3SxJ3x-.png diff --git a/previews/PR238/assets/nguwnkb.CXOHBuIW.png b/previews/PR238/assets/nguwnkb.CXOHBuIW.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4d5426d4d3846a95b335483c6177134077515a GIT binary patch literal 76165 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�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 YMf~hKR{Y#9`1nYPKM^YsdG7On09v+Gt^fc4 diff --git a/previews/PR238/assets/adhjkkk.Dig-DWOQ.png b/previews/PR238/assets/pmzjbup.Dig-DWOQ.png similarity index 100% rename from previews/PR238/assets/adhjkkk.Dig-DWOQ.png rename to previews/PR238/assets/pmzjbup.Dig-DWOQ.png diff --git a/previews/PR238/assets/zhayfze.BD0hVfse.png b/previews/PR238/assets/qqpaewv.BD0hVfse.png similarity index 100% rename from previews/PR238/assets/zhayfze.BD0hVfse.png rename to previews/PR238/assets/qqpaewv.BD0hVfse.png diff --git a/previews/PR238/assets/cnhbrub.4wfjCtJV.png b/previews/PR238/assets/qsuxgwe.4wfjCtJV.png similarity index 100% rename from previews/PR238/assets/cnhbrub.4wfjCtJV.png rename to previews/PR238/assets/qsuxgwe.4wfjCtJV.png diff --git a/previews/PR238/assets/galdzqb.D9AE7i2o.png b/previews/PR238/assets/rfezaag.D9AE7i2o.png similarity index 100% rename from previews/PR238/assets/galdzqb.D9AE7i2o.png rename to previews/PR238/assets/rfezaag.D9AE7i2o.png diff --git a/previews/PR238/assets/ycwztwp.0OJvb21A.png b/previews/PR238/assets/rnyengw.0OJvb21A.png similarity index 100% rename from previews/PR238/assets/ycwztwp.0OJvb21A.png rename to previews/PR238/assets/rnyengw.0OJvb21A.png diff --git a/previews/PR238/assets/source_methods_angles.md.BfBgRbNW.js b/previews/PR238/assets/source_methods_angles.md.Bdl4uNud.js similarity index 99% rename from previews/PR238/assets/source_methods_angles.md.BfBgRbNW.js rename to previews/PR238/assets/source_methods_angles.md.Bdl4uNud.js index 549b1cc47..027a882df 100644 --- a/previews/PR238/assets/source_methods_angles.md.BfBgRbNW.js +++ b/previews/PR238/assets/source_methods_angles.md.Bdl4uNud.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a5 as n,o as h}from"./chunks/framework.Bkt_v4A4.js";const l="/GeometryOps.jl/previews/PR238/assets/adhjkkk.Dig-DWOQ.png",y=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),k={name:"source/methods/angles.md"};function t(p,s,e,r,E,g){return h(),a("div",null,s[0]||(s[0]=[n(`

  • - + \ No newline at end of file diff --git a/previews/PR238/source/GeometryOpsProjExt/GeometryOpsProjExt.html b/previews/PR238/source/GeometryOpsProjExt/GeometryOpsProjExt.html index a27073866..adb13e06b 100644 --- a/previews/PR238/source/GeometryOpsProjExt/GeometryOpsProjExt.html +++ b/previews/PR238/source/GeometryOpsProjExt/GeometryOpsProjExt.html @@ -9,9 +9,9 @@ - + - + @@ -26,7 +26,7 @@ include("segmentize.jl") end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/GeometryOpsProjExt/reproject.html b/previews/PR238/source/GeometryOpsProjExt/reproject.html index b7697a570..559731da7 100644 --- a/previews/PR238/source/GeometryOpsProjExt/reproject.html +++ b/previews/PR238/source/GeometryOpsProjExt/reproject.html @@ -9,9 +9,9 @@ - + - + @@ -62,7 +62,7 @@ end end end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/GeometryOpsProjExt/segmentize.html b/previews/PR238/source/GeometryOpsProjExt/segmentize.html index 21c7d897b..4679a181b 100644 --- a/previews/PR238/source/GeometryOpsProjExt/segmentize.html +++ b/previews/PR238/source/GeometryOpsProjExt/segmentize.html @@ -9,9 +9,9 @@ - + - + @@ -49,7 +49,7 @@ end

    End the line with the original coordinate, to avoid any multiplication errors.

    julia
        push!(new_coords, (x2, y2))
         return nothing
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/angles.html b/previews/PR238/source/methods/angles.html index 86d86b4a1..a766c6750 100644 --- a/previews/PR238/source/methods/angles.html +++ b/previews/PR238/source/methods/angles.html @@ -9,11 +9,11 @@ - + - + - + @@ -23,7 +23,7 @@ using Makie, CairoMakie rect = GI.Polygon([[(0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0), (0.0, 0.0)]]) -f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

    This is clearly a rectangle, with angles of 90 degrees.

    julia
    GO.angles(rect)  # [90, 90, 90, 90]
    4-element Vector{Float64}:
    +f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

    This is clearly a rectangle, with angles of 90 degrees.

    julia
    GO.angles(rect)  # [90, 90, 90, 90]
    4-element Vector{Float64}:
      90.0
      90.0
      90.0
    @@ -142,7 +142,7 @@
         angle = real(acos(val) * 180 / π)
         return angle * (cross_prod < 0 ? -1 : 1)
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/area.html b/previews/PR238/source/methods/area.html index 8900fd098..65b45d628 100644 --- a/previews/PR238/source/methods/area.html +++ b/previews/PR238/source/methods/area.html @@ -9,11 +9,11 @@ - + - + - + @@ -24,10 +24,10 @@ using CairoMakie rect = GI.Polygon([[(0,0), (0,1), (1,1), (1,0), (0, 0)]]) -f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

    This is clearly a rectangle, etc. But now let's look at how the points look:

    julia
    lines!(
    +f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

    This is clearly a rectangle, etc. But now let's look at how the points look:

    julia
    lines!(
         collect(GI.getpoint(rect));
         color = 1:GI.npoint(rect), linewidth = 10.0)
    -f

    The points are ordered in a counterclockwise fashion, which means that the signed area is negative. If we reverse the order of the points, we get a positive area.

    julia
    GO.signed_area(rect)  # -1.0
    -1.0

    Implementation

    This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Note that area and signed area are zero for all points and curves, even if the curves are closed like with a linear ring. Also note that signed area really only makes sense for polygons, given with a multipolygon can have several polygons each with a different orientation and thus the absolute value of the signed area might not be the area. This is why signed area is only implemented for polygons.

    Targets for applys functions

    julia
    const _AREA_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()
    +f

    The points are ordered in a counterclockwise fashion, which means that the signed area is negative. If we reverse the order of the points, we get a positive area.

    julia
    GO.signed_area(rect)  # -1.0
    -1.0

    Implementation

    This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Note that area and signed area are zero for all points and curves, even if the curves are closed like with a linear ring. Also note that signed area really only makes sense for polygons, given with a multipolygon can have several polygons each with a different orientation and thus the absolute value of the signed area might not be the area. This is why signed area is only implemented for polygons.

    Targets for applys functions

    julia
    const _AREA_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()
     
     """
         area(geom, [T = Float64])::T
    @@ -105,7 +105,7 @@
         area += _area_component(p1, p2)
         return T(area / 2)
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/barycentric.html b/previews/PR238/source/methods/barycentric.html index 7bb342600..f2d4fbc64 100644 --- a/previews/PR238/source/methods/barycentric.html +++ b/previews/PR238/source/methods/barycentric.html @@ -9,11 +9,11 @@ - + - + - + @@ -85,7 +85,7 @@ # and render! hm = heatmap!(a2, xrange, yrange, mean_values; colormap = p1.colormap, colorrange = p1.plots[1].colorrange[], xautolimits = false, yautolimits = false) translate!(hm, 0, 0, -1) # translate the heatmap behind the cropping polygon! -f # finally, display the figure

    Barycentric-coordinate API

    In some cases, we actually want barycentric interpolation, and have no interest in the coordinates themselves.

    However, the coordinates can be useful for debugging, and when performing 3D rendering, multiple barycentric values (depth, uv) are needed for depth buffering.

    julia
    const _VecTypes = Union{Tuple{Vararg{T, N}}, GeometryBasics.StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where {N, T}
    +f # finally, display the figure

    Barycentric-coordinate API

    In some cases, we actually want barycentric interpolation, and have no interest in the coordinates themselves.

    However, the coordinates can be useful for debugging, and when performing 3D rendering, multiple barycentric values (depth, uv) are needed for depth buffering.

    julia
    const _VecTypes = Union{Tuple{Vararg{T, N}}, GeometryBasics.StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where {N, T}
     
     """
         abstract type AbstractBarycentricCoordinateMethod
    @@ -433,7 +433,7 @@
     
     struct Wachspress <: AbstractBarycentricCoordinateMethod
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/buffer.html b/previews/PR238/source/methods/buffer.html index ba4347b98..3ee55775f 100644 --- a/previews/PR238/source/methods/buffer.html +++ b/previews/PR238/source/methods/buffer.html @@ -9,9 +9,9 @@ - + - + @@ -29,7 +29,7 @@ println(io, " in your REPL, \nor otherwise loading LibGEOS.jl via using or import.") end end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/centroid.html b/previews/PR238/source/methods/centroid.html index 2136e7b4f..f78e74fbb 100644 --- a/previews/PR238/source/methods/centroid.html +++ b/previews/PR238/source/methods/centroid.html @@ -9,11 +9,11 @@ - + - + - + @@ -24,9 +24,9 @@ using CairoMakie cshape = GI.Polygon([[(0,0), (0,3), (3,3), (3,2), (1,2), (1,1), (3,1), (3,0), (0,0)]]) -f, a, p = poly(collect(GI.getpoint(cshape)); axis = (; aspect = DataAspect()))

    Let's see what the centroid looks like (plotted in red):

    julia
    cent = GO.centroid(cshape)
    +f, a, p = poly(collect(GI.getpoint(cshape)); axis = (; aspect = DataAspect()))

    Let's see what the centroid looks like (plotted in red):

    julia
    cent = GO.centroid(cshape)
     scatter!(GI.x(cent), GI.y(cent), color = :red)
    -f

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Note that if you call centroid on a LineString or LinearRing, the centroid_and_length function will be called due to the weighting scheme described above, while centroid_and_area is called for polygons and multipolygons. However, centroid_and_area can still be called on a LineString or LinearRing when they are closed, for example as the interior hole of a polygon.

    The helper functions centroid_and_length and centroid_and_area are made available just in case the user also needs the area or length to decrease repeat computation.

    julia
    """
    +f

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Note that if you call centroid on a LineString or LinearRing, the centroid_and_length function will be called due to the weighting scheme described above, while centroid_and_area is called for polygons and multipolygons. However, centroid_and_area can still be called on a LineString or LinearRing when they are closed, for example as the interior hole of a polygon.

    The helper functions centroid_and_length and centroid_and_area are made available just in case the user also needs the area or length to decrease repeat computation.

    julia
    """
         centroid(geom, [T=Float64])::Tuple{T, T}
     
     Returns the centroid of a given line segment, linear ring, polygon, or
    @@ -111,7 +111,7 @@
         y = (y1 * area1 + y2 * area2) / area
         return (x, y), area
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/clipping/clipping_processor.html b/previews/PR238/source/methods/clipping/clipping_processor.html index bc16530b4..a6f6281be 100644 --- a/previews/PR238/source/methods/clipping/clipping_processor.html +++ b/previews/PR238/source/methods/clipping/clipping_processor.html @@ -9,9 +9,9 @@ - + - + @@ -526,7 +526,7 @@ end return end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/clipping/coverage.html b/previews/PR238/source/methods/clipping/coverage.html index abfe9cb7a..22df00d38 100644 --- a/previews/PR238/source/methods/clipping/coverage.html +++ b/previews/PR238/source/methods/clipping/coverage.html @@ -9,11 +9,11 @@ - + - + - + @@ -28,7 +28,7 @@ xmin, xmax, ymin, ymax = 0, 2, 0, 2 f, a, p = poly(collect(GI.getpoint(cell)); axis = (; aspect = DataAspect())) poly!(collect(GI.getpoint(rect))) -f

    It is clear that half of the polygon is within the cell, so the coverage should be 1.0, half of the area of the rectangle.

    julia
    GO.coverage(rect, xmin, xmax, ymin, ymax)
    1.0

    Implementation

    This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Note that the coverage is zero for all points and curves, even if the curves are closed like with a linear ring.

    Targets for applys functions

    julia
    const _COVERAGE_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()

    Wall types for coverage

    julia
    const UNKNOWN, NORTH, EAST, SOUTH, WEST = 0:4
    +f

    It is clear that half of the polygon is within the cell, so the coverage should be 1.0, half of the area of the rectangle.

    julia
    GO.coverage(rect, xmin, xmax, ymin, ymax)
    1.0

    Implementation

    This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Note that the coverage is zero for all points and curves, even if the curves are closed like with a linear ring.

    Targets for applys functions

    julia
    const _COVERAGE_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()

    Wall types for coverage

    julia
    const UNKNOWN, NORTH, EAST, SOUTH, WEST = 0:4
     
     """
         coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T
    @@ -241,7 +241,7 @@
         y_wall = (wall == NORTH || wall == WEST) ? ymax : ymin
         return x1 * y_wall - x_wall * y1
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/clipping/cut.html b/previews/PR238/source/methods/clipping/cut.html index 2259163fa..f5ea33af4 100644 --- a/previews/PR238/source/methods/clipping/cut.html +++ b/previews/PR238/source/methods/clipping/cut.html @@ -9,11 +9,11 @@ - + - + - + @@ -29,7 +29,7 @@ f, a, p1 = Makie.poly(collect(GI.getpoint(cut_polys[1])); color = (:blue, 0.5)) Makie.poly!(collect(GI.getpoint(cut_polys[2])); color = (:orange, 0.5)) Makie.lines!(GI.getpoint(line); color = :black) -f

    Implementation

    This function depends on polygon clipping helper function and is inspired by the Greiner-Hormann clipping algorithm used elsewhere in this library. The inspiration came from this Stack Overflow discussion.

    julia
    """
    +f

    Implementation

    This function depends on polygon clipping helper function and is inspired by the Greiner-Hormann clipping algorithm used elsewhere in this library. The inspiration came from this Stack Overflow discussion.

    julia
    """
         cut(geom, line, [T::Type])
     
     Return given geom cut by given line as a list of geometries of the same type as the input
    @@ -105,7 +105,7 @@
         end
         return return_coords
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/clipping/difference.html b/previews/PR238/source/methods/clipping/difference.html index 267bae818..3a2824524 100644 --- a/previews/PR238/source/methods/clipping/difference.html +++ b/previews/PR238/source/methods/clipping/difference.html @@ -9,9 +9,9 @@ - + - + @@ -184,7 +184,7 @@ ) return nothing end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/clipping/intersection.html b/previews/PR238/source/methods/clipping/intersection.html index 1a444ecc5..18b4d655a 100644 --- a/previews/PR238/source/methods/clipping/intersection.html +++ b/previews/PR238/source/methods/clipping/intersection.html @@ -9,9 +9,9 @@ - + - + @@ -401,7 +401,7 @@ α, β = _clamped_frac(distance(min_pt, a2, T), a_dist, eps(T)), one(T) - eps(T) end

    Return point with smallest distance

    julia
        return _tuple_point(min_pt, T), α, β
     end

    Return value of x/y clamped between ϵ and 1 - ϵ

    julia
    _clamped_frac(x::T, y::T, ϵ = zero(T)) where T = clamp(x / y, ϵ, one(T) - ϵ)

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/clipping/predicates.html b/previews/PR238/source/methods/clipping/predicates.html index 174a77358..8551c1b57 100644 --- a/previews/PR238/source/methods/clipping/predicates.html +++ b/previews/PR238/source/methods/clipping/predicates.html @@ -9,9 +9,9 @@ - + - + @@ -62,7 +62,7 @@ end import .Predicates

    If we want to inject adaptivity, we would do something like:

    function cross(a, b, c) # try Predicates._cross_naive(a, b, c) # check the error bound there # then try Predicates._cross_adaptive(a, b, c) # then try Predicates._cross_exact end


    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/clipping/union.html b/previews/PR238/source/methods/clipping/union.html index cd8bb09a3..486715712 100644 --- a/previews/PR238/source/methods/clipping/union.html +++ b/previews/PR238/source/methods/clipping/union.html @@ -9,9 +9,9 @@ - + - + @@ -269,7 +269,7 @@ throw(ArgumentError("Union between $trait_a and $trait_b with target $Target isn't implemented yet.")) return nothing end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/convex_hull.html b/previews/PR238/source/methods/convex_hull.html index d66d0a39f..b94af834c 100644 --- a/previews/PR238/source/methods/convex_hull.html +++ b/previews/PR238/source/methods/convex_hull.html @@ -9,11 +9,11 @@ - + - + - + @@ -26,7 +26,7 @@ hull_poly = GO.convex_hull(points) lines!(a, hull_poly; label = "Convex hull", color = Makie.wong_colors()[2]) axislegend(a) -f

    Convex hull of the USA

    julia
    import GeometryOps as GO, GeoInterface as GI
    +f

    Convex hull of the USA

    julia
    import GeometryOps as GO, GeoInterface as GI
     using CairoMakie # to plot
     using NaturalEarth # for data
     
    @@ -34,7 +34,7 @@
     usa = all_adm0.geometry[findfirst(==("USA"), all_adm0.ADM0_A3)]
     f, a, p = lines(usa)
     lines!(a, GO.convex_hull(usa); color = Makie.wong_colors()[2])
    -f

    Investigating the winding order

    The winding order of the monotone chain method is counterclockwise, while the winding order of the GEOS method is clockwise.

    GeometryOps' convexity detection says that the GEOS hull is convex, while the monotone chain method hull is not. However, they are both going over the same points (we checked), it's just that the winding order is different.

    In reality, both sets are convex, but we need to fix the GeometryOps convexity detector (isconcave)!

    We may also decide at a later date to change the returned winding order of the polygon, but most algorithms are robust to that, and you can always fix it...

    julia
    import GeoInterface as GI, GeometryOps as GO, LibGEOS as LG
    +f

    Investigating the winding order

    The winding order of the monotone chain method is counterclockwise, while the winding order of the GEOS method is clockwise.

    GeometryOps' convexity detection says that the GEOS hull is convex, while the monotone chain method hull is not. However, they are both going over the same points (we checked), it's just that the winding order is different.

    In reality, both sets are convex, but we need to fix the GeometryOps convexity detector (isconcave)!

    We may also decide at a later date to change the returned winding order of the polygon, but most algorithms are robust to that, and you can always fix it...

    julia
    import GeoInterface as GI, GeometryOps as GO, LibGEOS as LG
     using CairoMakie # to plot
     
     points = rand(Point2{Float64}, 100)
    @@ -45,7 +45,7 @@
     a1, p1 = lines(fig[1, 1], go_hull; color = 1:GI.npoint(go_hull), axis = (; title = "MonotoneChainMethod()"))
     a2, p2 = lines(fig[2, 1], lg_hull; color = 1:GI.npoint(lg_hull), axis = (; title = "GEOS()"))
     cb = Colorbar(fig[1:2, 2], p1; label = "Vertex number")
    -fig

    Implementation

    julia
    """
    +fig

    Implementation

    julia
    """
         convex_hull([method], geometries)
     
     Compute the convex hull of the points in `geometries`.
    @@ -75,7 +75,7 @@
     struct MonotoneChainMethod end

    GrahamScanMethod, etc. can be implemented in GO as well, if someone wants to. If we add an extension on Quickhull.jl, then that would be another algorithm.

    julia
    convex_hull(geometries) = convex_hull(MonotoneChainMethod(), geometries)

    TODO: have this respect the CRS by pulling it out of geometries.

    julia
    function convex_hull(::MonotoneChainMethod, geometries)

    Extract all points as tuples. We have to collect and allocate here, because DelaunayTriangulation only accepts vectors of point-like geoms.

    Cleanest would be to use the iterable from GO.flatten directly, but that would require us to implement the convex hull algorithm directly.

    TODO: create a specialized method that extracts only the information required, GeometryBasics points can be passed through directly.

    julia
        points = collect(flatten(tuples, GI.PointTrait, geometries))

    Compute the convex hull using DelTri (shorthand for DelaunayTriangulation.jl).

    julia
        hull = DelaunayTriangulation.convex_hull(points)

    Convert the result to a GI.Polygon and return it. View would be more efficient here, but re-allocating is cleaner.

    julia
        point_vec = DelaunayTriangulation.get_points(hull)[DelaunayTriangulation.get_vertices(hull)]
         return GI.Polygon([GI.LinearRing(point_vec)])
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/distance.html b/previews/PR238/source/methods/distance.html index 07a79fd19..c779e7383 100644 --- a/previews/PR238/source/methods/distance.html +++ b/previews/PR238/source/methods/distance.html @@ -9,11 +9,11 @@ - + - + - + @@ -29,13 +29,13 @@ f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect())) scatter!(GI.x(point_in), GI.y(point_in); color = :red) scatter!(GI.x(point_out), GI.y(point_out); color = :orange) -f

    This is clearly a rectangle with one point inside and one point outside. The points are both an equal distance to the polygon. The distance to point_in is negative while the distance to point_out is positive.

    julia
    (
    +f

    This is clearly a rectangle with one point inside and one point outside. The points are both an equal distance to the polygon. The distance to point_in is negative while the distance to point_out is positive.

    julia
    (
     GO.distance(point_in, rect),  # == 0
     GO.signed_distance(point_in, rect),  # < 0
     GO.signed_distance(point_out, rect)  # > 0
     )
    (0.0, -0.5, 0.5)

    Consider also a heatmap of signed distances around this object:

    julia
    xrange = yrange = LinRange(-0.5, 1.5, 300)
     f, a, p = heatmap(xrange, yrange, GO.signed_distance.(Point2f.(xrange, yrange'), Ref(rect)); colormap = :RdBu, colorrange = (-0.75, 0.75))
    -a.aspect = DataAspect(); Colorbar(f[1, 2], p, label = "Signed distance"); lines!(a, GI.convert(GO.GeometryBasics, rect)); f

    Implementation

    This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Distance and signed distance are only implemented for points to other geometries right now. This could be extended to include distance from other geometries in the future.

    The distance calculated is the Euclidean distance using the Pythagorean theorem. Also note that singed_distance only makes sense for "filled-in" shapes, like polygons, so it isn't implemented for curves.

    julia
    const _DISTANCE_TARGETS = TraitTarget{Union{GI.AbstractPolygonTrait,GI.LineStringTrait,GI.LinearRingTrait,GI.LineTrait,GI.PointTrait}}()
    +a.aspect = DataAspect(); Colorbar(f[1, 2], p, label = "Signed distance"); lines!(a, GI.convert(GO.GeometryBasics, rect)); f

    Implementation

    This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Distance and signed distance are only implemented for points to other geometries right now. This could be extended to include distance from other geometries in the future.

    The distance calculated is the Euclidean distance using the Pythagorean theorem. Also note that singed_distance only makes sense for "filled-in" shapes, like polygons, so it isn't implemented for curves.

    julia
    const _DISTANCE_TARGETS = TraitTarget{Union{GI.AbstractPolygonTrait,GI.LineStringTrait,GI.LinearRingTrait,GI.LineTrait,GI.PointTrait}}()
     
     """
         distance(point, geom, ::Type{T} = Float64)::T
    @@ -199,7 +199,7 @@
         end
         return min_dist
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/equals.html b/previews/PR238/source/methods/equals.html index de46c490a..350399ce4 100644 --- a/previews/PR238/source/methods/equals.html +++ b/previews/PR238/source/methods/equals.html @@ -9,11 +9,11 @@ - + - + - + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

    We can see that the two lines do not share a common set of points and edges in the plot, so they are not equal:

    julia
    GO.equals(l1, l2)  # returns false
    false

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Note that while we need the same set of points and edges, they don't need to be provided in the same order for polygons. For for example, we need the same set points for two multipoints to be equal, but they don't have to be saved in the same order. The winding order also doesn't have to be the same to represent the same geometry. This requires checking every point against every other point in the two geometries we are comparing. Also, some geometries must be "closed" like polygons and linear rings. These will be assumed to be closed, even if they don't have a repeated last point explicitly written in the coordinates. Additionally, geometries and multi-geometries can be equal if the multi-geometry only includes that single geometry.

    julia
    """
    +f

    We can see that the two lines do not share a common set of points and edges in the plot, so they are not equal:

    julia
    GO.equals(l1, l2)  # returns false
    false

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Note that while we need the same set of points and edges, they don't need to be provided in the same order for polygons. For for example, we need the same set points for two multipoints to be equal, but they don't have to be saved in the same order. The winding order also doesn't have to be the same to represent the same geometry. This requires checking every point against every other point in the two geometries we are comparing. Also, some geometries must be "closed" like polygons and linear rings. These will be assumed to be closed, even if they don't have a repeated last point explicitly written in the coordinates. Additionally, geometries and multi-geometries can be equal if the multi-geometry only includes that single geometry.

    julia
    """
         equals(geom1, geom2)::Bool
     
     Compare two Geometries return true if they are the same geometry.
    @@ -283,7 +283,7 @@
         end
         return true
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/geom_relations/contains.html b/previews/PR238/source/methods/geom_relations/contains.html index 5d48057e4..578bef32e 100644 --- a/previews/PR238/source/methods/geom_relations/contains.html +++ b/previews/PR238/source/methods/geom_relations/contains.html @@ -9,11 +9,11 @@ - + - + - + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

    We can see that all of the points and edges of l2 are within l1, so l1 contains l2. However, l2 does not contain l1.

    julia
    GO.contains(l1, l2)  # returns true
    +f

    We can see that all of the points and edges of l2 are within l1, so l1 contains l2. However, l2 does not contain l1.

    julia
    GO.contains(l1, l2)  # returns true
     GO.contains(l2, l1)  # returns false
    false

    Implementation

    This is the GeoInterface-compatible implementation.

    Given that contains is the exact opposite of within, we simply pass the two inputs variables, swapped in order, to within.

    julia
    """
         contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool
     
    @@ -51,7 +51,7 @@
     ```
     """
     contains(g1, g2) = GeometryOps.within(g2, g1)

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/geom_relations/coveredby.html b/previews/PR238/source/methods/geom_relations/coveredby.html index 3e04e875d..0a714080e 100644 --- a/previews/PR238/source/methods/geom_relations/coveredby.html +++ b/previews/PR238/source/methods/geom_relations/coveredby.html @@ -9,11 +9,11 @@ - + - + - + @@ -27,7 +27,7 @@ l1 = GI.Line([p1, (1.0, 1.0)]) f, a, p = lines(GI.getpoint(l1)) scatter!(p1, color = :red) -f

    As we can see, p1 is on the endpoint of l1. This means it is not within, but it does meet the definition of coveredby.

    julia
    GO.coveredby(p1, l1)  # true
    true

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

    Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the coveredby function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

    The code for the specific implementations is in the geom_geom_processors file.

    julia
    const COVEREDBY_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
    +f

    As we can see, p1 is on the endpoint of l1. This means it is not within, but it does meet the definition of coveredby.

    julia
    GO.coveredby(p1, l1)  # true
    true

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

    Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the coveredby function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

    The code for the specific implementations is in the geom_geom_processors file.

    julia
    const COVEREDBY_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
     const COVEREDBY_CURVE_ALLOWS = (over_allow = true, cross_allow = true, on_allow = true, out_allow = false)
     const COVEREDBY_CURVE_REQUIRES = (in_require = false, on_require = false, out_require = false)
     const COVEREDBY_POLYGON_REQUIRES = (in_require = true, on_require = false, out_require = false,)
    @@ -201,7 +201,7 @@
         end
         return true
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/geom_relations/covers.html b/previews/PR238/source/methods/geom_relations/covers.html index 4d03d2e3f..b60144636 100644 --- a/previews/PR238/source/methods/geom_relations/covers.html +++ b/previews/PR238/source/methods/geom_relations/covers.html @@ -9,11 +9,11 @@ - + - + - + @@ -29,7 +29,7 @@ f, a, p = lines(GI.getpoint(l1)) scatter!(p1, color = :red) -f

    julia
    GO.covers(l1, p1)  # returns true
    +f

    julia
    GO.covers(l1, p1)  # returns true
     GO.covers(p1, l1)  # returns false
    false

    Implementation

    This is the GeoInterface-compatible implementation.

    Given that covers is the exact opposite of coveredby, we simply pass the two inputs variables, swapped in order, to coveredby.

    julia
    """
         covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool
     
    @@ -51,7 +51,7 @@
     ```
     """
     covers(g1, g2)::Bool = GeometryOps.coveredby(g2, g1)

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/geom_relations/crosses.html b/previews/PR238/source/methods/geom_relations/crosses.html index 9d09b43d7..ee9389706 100644 --- a/previews/PR238/source/methods/geom_relations/crosses.html +++ b/previews/PR238/source/methods/geom_relations/crosses.html @@ -9,9 +9,9 @@ - + - + @@ -138,7 +138,7 @@ end return false end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/geom_relations/disjoint.html b/previews/PR238/source/methods/geom_relations/disjoint.html index 9eb7fe212..611a29d08 100644 --- a/previews/PR238/source/methods/geom_relations/disjoint.html +++ b/previews/PR238/source/methods/geom_relations/disjoint.html @@ -9,11 +9,11 @@ - + - + - + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

    We can see that none of the edges or vertices of l1 interact with l2 so they are disjoint.

    julia
    GO.disjoint(l1, l2)  # returns true
    true

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

    Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the disjoint function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are not allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

    The code for the specific implementations is in the geom_geom_processors file.

    julia
    const DISJOINT_ALLOWS = (in_allow = false, on_allow = false, out_allow = true)
    +f

    We can see that none of the edges or vertices of l1 interact with l2 so they are disjoint.

    julia
    GO.disjoint(l1, l2)  # returns true
    true

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

    Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the disjoint function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are not allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

    The code for the specific implementations is in the geom_geom_processors file.

    julia
    const DISJOINT_ALLOWS = (in_allow = false, on_allow = false, out_allow = true)
     const DISJOINT_CURVE_ALLOWS = (over_allow = false, cross_allow = false, on_allow = false, out_allow = true)
     const DISJOINT_REQUIRES = (in_require = false, on_require = false, out_require = false)
     const DISJOINT_EXACT = (exact = _False(),)
    @@ -196,7 +196,7 @@
         end
         return true
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/geom_relations/geom_geom_processors.html b/previews/PR238/source/methods/geom_relations/geom_geom_processors.html index 53a019d16..a456b2d44 100644 --- a/previews/PR238/source/methods/geom_relations/geom_geom_processors.html +++ b/previews/PR238/source/methods/geom_relations/geom_geom_processors.html @@ -9,9 +9,9 @@ - + - + @@ -455,7 +455,7 @@ end return skip, returnval end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/geom_relations/intersects.html b/previews/PR238/source/methods/geom_relations/intersects.html index 6161b9589..6ccbd722c 100644 --- a/previews/PR238/source/methods/geom_relations/intersects.html +++ b/previews/PR238/source/methods/geom_relations/intersects.html @@ -9,11 +9,11 @@ - + - + - + @@ -27,7 +27,7 @@ line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)]) f, a, p = lines(GI.getpoint(line1)) lines!(GI.getpoint(line2)) -f

    We can see that they intersect, so we expect intersects to return true, and we can visualize the intersection point in red.

    julia
    GO.intersects(line1, line2)  # true
    true

    Implementation

    This is the GeoInterface-compatible implementation.

    Given that intersects is the exact opposite of disjoint, we simply pass the two inputs variables, swapped in order, to disjoint.

    julia
    """
    +f

    We can see that they intersect, so we expect intersects to return true, and we can visualize the intersection point in red.

    julia
    GO.intersects(line1, line2)  # true
    true

    Implementation

    This is the GeoInterface-compatible implementation.

    Given that intersects is the exact opposite of disjoint, we simply pass the two inputs variables, swapped in order, to disjoint.

    julia
    """
         intersects(geom1, geom2)::Bool
     
     Return true if the interiors or boundaries of the two geometries interact.
    @@ -45,7 +45,7 @@
     ```
     """
     intersects(geom1, geom2) = !disjoint(geom1, geom2)

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/geom_relations/overlaps.html b/previews/PR238/source/methods/geom_relations/overlaps.html index ae88be084..8aeebe245 100644 --- a/previews/PR238/source/methods/geom_relations/overlaps.html +++ b/previews/PR238/source/methods/geom_relations/overlaps.html @@ -9,11 +9,11 @@ - + - + - + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

    We can see that the two lines overlap in the plot:

    julia
    GO.overlaps(l1, l2)  # true
    true

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Note that that since only elements of the same dimension can overlap, any two geometries with traits that are of different dimensions automatically can return false.

    For geometries with the same trait dimension, we must make sure that they share a point, an edge, or area for points, lines, and polygons/multipolygons respectively, without being contained.

    julia
    const OVERLAPS_POINT_ALLOWS = (in_allow = true, on_allow = true, out_allow = true)
    +f

    We can see that the two lines overlap in the plot:

    julia
    GO.overlaps(l1, l2)  # true
    true

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

    Note that that since only elements of the same dimension can overlap, any two geometries with traits that are of different dimensions automatically can return false.

    For geometries with the same trait dimension, we must make sure that they share a point, an edge, or area for points, lines, and polygons/multipolygons respectively, without being contained.

    julia
    const OVERLAPS_POINT_ALLOWS = (in_allow = true, on_allow = true, out_allow = true)
     const OVERLAPS_CURVE_ALLOWS = (over_allow = true, cross_allow = true, on_allow = true, out_allow = true)
     const OVERLAPS_POLYGON_ALLOWS = (in_allow = true, on_allow = true, out_allow = true)
     const OVERLAPS_REQUIRES = (in_require = true, on_require = false, out_require = false)
    @@ -108,54 +108,17 @@
     outside of the other line, return true. Else false.
     """
     overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line) =
    -    _overlaps((a1, a2), (b1, b2))
    -
    -"""
    -    overlaps(
    -        ::Union{GI.LineStringTrait, GI.LinearRing}, line1,
    -        ::Union{GI.LineStringTrait, GI.LinearRing}, line2,
    -    )::Bool
    -
    -If the curves overlap, meaning that at least one edge of each curve overlaps,
    -return true. Else false.
    -"""
    -function overlaps(
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line1,
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line2,
    -)
    -    return !equals(line1, line2) && _line_curve_process(
    -        line1, line2;
    -        OVERLAPS_CURVE_ALLOWS...,
    -        OVERLAPS_REQUIRES...,
    -        OVERLAPS_EXACT...,
    -        closed_line = false,
    -        closed_curve = false,
    -    )
    -end
    -
    -function overlaps(
    -    ::GI.LinearRingTrait, ring1,
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line2,
    +    _overlaps((a1, a2), (b1, b2))

    The code below is more robust, but fails when a linestring is contained within another linestring. TODO: make this work better, maybe with full de9im support... """ overlaps( ::Union{GI.LineStringTrait, GI.LinearRing}, line1, ::Union{GI.LineStringTrait, GI.LinearRing}, line2, )::Bool

    If the curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false. """ function overlaps( ::Union{GI.LineStringTrait, GI.LineTrait}, line1, ::Union{GI.LineStringTrait, GI.LineTrait}, line2, ) return !equals(line1, line2) && _line_curve_process( line1, line2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT..., closed_line = false, closed_curve = false, ) end

    function overlaps( ::GI.LinearRingTrait, ring1, ::Union{GI.LineStringTrait, GI.LineTrait}, line2, ) return !equals(ring1, line2) && _line_curve_process( ring1, line2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT..., closed_line = true, closed_curve = false, ) end

    function overlaps( ::Union{GI.LineStringTrait, GI.LineTrait}, line1, ::GI.LinearRingTrait, ring2, ) return !equals(line1, ring2) && _line_curve_process( line1, ring2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT..., closed_line = false, closed_curve = true, ) end This is the old code which was previously working.

    julia
    function overlaps(
    +    ::Union{GI.LineStringTrait, GI.LinearRingTrait}, line1,
    +    ::Union{GI.LineStringTrait, GI.LinearRingTrait}, line2,
     )
    -    return  !equals(ring1, line2) && _line_curve_process(
    -        ring1, line2;
    -        OVERLAPS_CURVE_ALLOWS...,
    -        OVERLAPS_REQUIRES...,
    -        OVERLAPS_EXACT...,
    -        closed_line = true,
    -        closed_curve = false,
    -    )
    -end
    -
    -function overlaps(
    -    ::Union{GI.LineStringTrait, GI.LineTrait}, line1,
    -    ::GI.LinearRingTrait, ring2,
    -)
    -    return !equals(line1, ring2) && _line_curve_process(
    -        line1, ring2; OVERLAPS_CURVE_ALLOWS..., OVERLAPS_REQUIRES..., OVERLAPS_EXACT...,
    -        closed_line = false,
    -        closed_curve = true,
    -    )
    +    edges_a, edges_b = map(sort!  to_edges, (line1, line2))
    +    for edge_a in edges_a
    +        for edge_b in edges_b
    +            _overlaps(edge_a, edge_b) && return true
    +        end
    +    end
    +    return false
     end
     
     function overlaps(
    @@ -262,7 +225,7 @@
         seg_val, _, _ = _intersection_point(Float64, edge_a, edge_b; exact = _False())
         return seg_val != line_out
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/geom_relations/touches.html b/previews/PR238/source/methods/geom_relations/touches.html index 28531670f..4af2ab135 100644 --- a/previews/PR238/source/methods/geom_relations/touches.html +++ b/previews/PR238/source/methods/geom_relations/touches.html @@ -9,11 +9,11 @@ - + - + - + @@ -28,7 +28,7 @@ f, a, p = lines(GI.getpoint(l1)) lines!(GI.getpoint(l2)) -f

    We can see that these two lines touch only at their endpoints.

    julia
    GO.touches(l1, l2)  # true
    true

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

    Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the touches function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - at least one point of g1 is required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

    The code for the specific implementations is in the geom_geom_processors file.

    julia
    const TOUCHES_POINT_ALLOWED = (in_allow = false, on_allow = true, out_allow = false)
    +f

    We can see that these two lines touch only at their endpoints.

    julia
    GO.touches(l1, l2)  # true
    true

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

    Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the touches function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - at least one point of g1 is required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

    The code for the specific implementations is in the geom_geom_processors file.

    julia
    const TOUCHES_POINT_ALLOWED = (in_allow = false, on_allow = true, out_allow = false)
     const TOUCHES_CURVE_ALLOWED = (over_allow = false, cross_allow = false, on_allow = true, out_allow = true)
     const TOUCHES_POLYGON_ALLOWS = (in_allow = false, on_allow = true, out_allow = true)
     const TOUCHES_REQUIRES = (in_require = false, on_require = true, out_require = false)
    @@ -192,7 +192,7 @@
         end
         return true
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/geom_relations/within.html b/previews/PR238/source/methods/geom_relations/within.html index 2ca85ac1b..acf04dcef 100644 --- a/previews/PR238/source/methods/geom_relations/within.html +++ b/previews/PR238/source/methods/geom_relations/within.html @@ -9,11 +9,11 @@ - + - + - + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

    We can see that all of the points and edges of l2 are within l1, so l2 is within l1, but l1 is not within l2

    julia
    GO.within(l1, l2)  # false
    +f

    We can see that all of the points and edges of l2 are within l1, so l2 is within l1, but l1 is not within l2

    julia
    GO.within(l1, l2)  # false
     GO.within(l2, l1)  # true
    true

    Implementation

    This is the GeoInterface-compatible implementation.

    First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

    Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the within function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - at least one point of g1 is required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

    The code for the specific implementations is in the geom_geom_processors file.

    julia
    const WITHIN_POINT_ALLOWS = (in_allow = true, on_allow = false, out_allow = false)
     const WITHIN_CURVE_ALLOWS = (over_allow = true, cross_allow = true, on_allow = true, out_allow = false)
     const WITHIN_POLYGON_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
    @@ -211,7 +211,7 @@
         end
         return true
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/orientation.html b/previews/PR238/source/methods/orientation.html index d9ba7c65f..5ee21c751 100644 --- a/previews/PR238/source/methods/orientation.html +++ b/previews/PR238/source/methods/orientation.html @@ -9,9 +9,9 @@ - + - + @@ -118,7 +118,7 @@ _isparallel(bx - ax, by - ay, dx - cx, dy - cy) _isparallel(Δx1, Δy1, Δx2, Δy2) = (Δx1 * Δy2 == Δy1 * Δx2)

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/methods/polygonize.html b/previews/PR238/source/methods/polygonize.html index 954c85b56..1c8a327f8 100644 --- a/previews/PR238/source/methods/polygonize.html +++ b/previews/PR238/source/methods/polygonize.html @@ -9,9 +9,9 @@ - + - + @@ -307,7 +307,7 @@ end return edges end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/not_implemented_yet.html b/previews/PR238/source/not_implemented_yet.html index e3ebaca5d..288c3e654 100644 --- a/previews/PR238/source/not_implemented_yet.html +++ b/previews/PR238/source/not_implemented_yet.html @@ -9,20 +9,17 @@ - + - + - + -
    Skip to content

    Not implemented yet

    All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

    julia
    function symdifference end
    -function buffer end
    -function convexhull end
    -function concavehull end

    This page was generated using Literate.jl.

    - +
    Skip to content

    Not implemented yet

    All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

    julia
    function symdifference end

    This page was generated using Literate.jl.

    + \ No newline at end of file diff --git a/previews/PR238/source/primitives.html b/previews/PR238/source/primitives.html index 88d992f8f..fc9de58de 100644 --- a/previews/PR238/source/primitives.html +++ b/previews/PR238/source/primitives.html @@ -9,9 +9,9 @@ - + - + @@ -19,7 +19,7 @@
    Skip to content
    - + \ No newline at end of file diff --git a/previews/PR238/source/src/GeometryOpsCore.html b/previews/PR238/source/src/GeometryOpsCore.html index a71a46f71..361f8899e 100644 --- a/previews/PR238/source/src/GeometryOpsCore.html +++ b/previews/PR238/source/src/GeometryOpsCore.html @@ -9,9 +9,9 @@ - + - + @@ -43,7 +43,7 @@ include("geometry_utils.jl") end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/src/apply.html b/previews/PR238/source/src/apply.html index f44379017..b04d5205d 100644 --- a/previews/PR238/source/src/apply.html +++ b/previews/PR238/source/src/apply.html @@ -9,11 +9,11 @@ - + - + - + @@ -27,7 +27,7 @@ flipped_geom = GO.apply(GI.PointTrait, geom) do p (GI.y(p), GI.x(p)) -end

    source

    GeometryOpsCore.applyreduce Function
    julia
    applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

    Apply function f to all objects with the target trait, and reduce the result with an op like +.

    The order and grouping of application of op is not guaranteed.

    If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

    source

    What is apply?

    apply applies some function to every geometry matching the Target GeoInterface trait, in some arbitrarily nested object made up of:

    • AbstractArrays (we also try to iterate other non-GeoInteface compatible object)

    • FeatureCollectionTrait objects

    • FeatureTrait objects

    • AbstractGeometryTrait objects

    apply recursively calls itself through these nested layers until it reaches objects with the Target GeoInterface trait. When found apply applies the function f, and stops.

    The outer recursive functions then progressively rebuild the object using GeoInterface objects matching the original traits.

    If PointTrait is found but it is not the Target, an error is thrown. This likely means the object contains a different geometry trait to the target, such as MultiPointTrait when LineStringTrait was specified.

    To handle this possibility it may be necessary to make Target a Union of traits found at the same level of nesting, and define methods of f to handle all cases.

    Be careful making a union across "levels" of nesting, e.g. Union{FeatureTrait,PolygonTrait}, as _apply will just never reach PolygonTrait when all the polygons are wrapped in a FeatureTrait object.

    Embedding:

    extent and crs can be embedded in all geometries, features, and feature collections as part of apply. Geometries deeper than Target will of course not have new extent or crs embedded.

    • calc_extent signals to recalculate an Extent and embed it.

    • crs will be embedded as-is

    Threading

    Threading is used at the outermost level possible - over an array, feature collection, or e.g. a MultiPolygonTrait where each PolygonTrait sub-geometry may be calculated on a different thread.

    Currently, threading defaults to false for all objects, but can be turned on by passing the keyword argument threaded=true to apply.

    julia
    """
    +end

    source

    GeometryOpsCore.applyreduce Function
    julia
    applyreduce(f, op, target::Union{TraitTarget, GI.AbstractTrait}, obj; threaded)

    Apply function f to all objects with the target trait, and reduce the result with an op like +.

    The order and grouping of application of op is not guaranteed.

    If threaded==true threads will be used over arrays and iterables, feature collections and nested geometries.

    source

    What is apply?

    apply applies some function to every geometry matching the Target GeoInterface trait, in some arbitrarily nested object made up of:

    • AbstractArrays (we also try to iterate other non-GeoInteface compatible object)

    • FeatureCollectionTrait objects

    • FeatureTrait objects

    • AbstractGeometryTrait objects

    apply recursively calls itself through these nested layers until it reaches objects with the Target GeoInterface trait. When found apply applies the function f, and stops.

    The outer recursive functions then progressively rebuild the object using GeoInterface objects matching the original traits.

    If PointTrait is found but it is not the Target, an error is thrown. This likely means the object contains a different geometry trait to the target, such as MultiPointTrait when LineStringTrait was specified.

    To handle this possibility it may be necessary to make Target a Union of traits found at the same level of nesting, and define methods of f to handle all cases.

    Be careful making a union across "levels" of nesting, e.g. Union{FeatureTrait,PolygonTrait}, as _apply will just never reach PolygonTrait when all the polygons are wrapped in a FeatureTrait object.

    Embedding:

    extent and crs can be embedded in all geometries, features, and feature collections as part of apply. Geometries deeper than Target will of course not have new extent or crs embedded.

    • calc_extent signals to recalculate an Extent and embed it.

    • crs will be embedded as-is

    Threading

    Threading is used at the outermost level possible - over an array, feature collection, or e.g. a MultiPolygonTrait where each PolygonTrait sub-geometry may be calculated on a different thread.

    Currently, threading defaults to false for all objects, but can be turned on by passing the keyword argument threaded=true to apply.

    julia
    """
         apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)
     
     Reconstruct a geometry, feature, feature collection, or nested vectors of
    @@ -164,7 +164,7 @@
     end

    Here we use the compiler directive @assume_effects :foldable to force the compiler to lookup through the closure. This alone makes e.g. flip 2.5x faster!

    julia
    Base.@assume_effects :foldable @inline function _maptasks(f::F, taskrange, threaded::_False)::Vector where F
         map(f, taskrange)
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/src/applyreduce.html b/previews/PR238/source/src/applyreduce.html index 8d6fd7da5..03d4e18f0 100644 --- a/previews/PR238/source/src/applyreduce.html +++ b/previews/PR238/source/src/applyreduce.html @@ -9,9 +9,9 @@ - + - + @@ -90,7 +90,7 @@ Base.@assume_effects :foldable function _mapreducetasks(f::F, op, taskrange, threaded::_False; init) where F mapreduce(f, op, taskrange; init) end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/src/geometry_utils.html b/previews/PR238/source/src/geometry_utils.html index e389d4a9a..29642291a 100644 --- a/previews/PR238/source/src/geometry_utils.html +++ b/previews/PR238/source/src/geometry_utils.html @@ -9,9 +9,9 @@ - + - + @@ -20,7 +20,7 @@
    Skip to content
    julia
    _linearring(geom::GI.LineString) = GI.LinearRing(parent(geom); extent=geom.extent, crs=geom.crs)
     _linearring(geom::GI.LinearRing) = geom

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/src/keyword_docs.html b/previews/PR238/source/src/keyword_docs.html index 66d23e7d6..d92c97993 100644 --- a/previews/PR238/source/src/keyword_docs.html +++ b/previews/PR238/source/src/keyword_docs.html @@ -9,9 +9,9 @@ - + - + @@ -27,7 +27,7 @@ $CRS_KEYWORD $CALC_EXTENT_KEYWORD """

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/src/other_primitives.html b/previews/PR238/source/src/other_primitives.html index bd904e836..1fcede6df 100644 --- a/previews/PR238/source/src/other_primitives.html +++ b/previews/PR238/source/src/other_primitives.html @@ -9,18 +9,18 @@ - + - + - +
    Skip to content

    Other primitives (unwrap, flatten, etc)

    This file defines the following primitives:

    GeometryOpsCore.unwrap Function
    julia
    unwrap(target::Type{<:AbstractTrait}, obj)
    -unwrap(f, target::Type{<:AbstractTrait}, obj)

    Unwrap the object to vectors, down to the target trait.

    If f is passed in it will be applied to the target geometries as they are found.

    source

    GeometryOpsCore.flatten Function
    julia
    flatten(target::Type{<:GI.AbstractTrait}, obj)
    -flatten(f, target::Type{<:GI.AbstractTrait}, obj)

    Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

    If f is passed in it will be applied to the target geometries.

    source

    GeometryOpsCore.reconstruct Function
    julia
    reconstruct(geom, components)

    Reconstruct geom from an iterable of component objects that match its structure.

    All objects in components must have the same GeoInterface.trait.

    Usually used in combination with flatten.

    source

    GeometryOpsCore.rebuild Function
    julia
    rebuild(geom, child_geoms)

    Rebuild a geometry from child geometries.

    By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

    (Maybe it should go into GeoInterface.jl)

    source

    julia
    """
    +unwrap(f, target::Type{<:AbstractTrait}, obj)

    Unwrap the object to vectors, down to the target trait.

    If f is passed in it will be applied to the target geometries as they are found.

    source

    GeometryOpsCore.flatten Function
    julia
    flatten(target::Type{<:GI.AbstractTrait}, obj)
    +flatten(f, target::Type{<:GI.AbstractTrait}, obj)

    Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

    If f is passed in it will be applied to the target geometries.

    source

    GeometryOpsCore.reconstruct Function
    julia
    reconstruct(geom, components)

    Reconstruct geom from an iterable of component objects that match its structure.

    All objects in components must have the same GeoInterface.trait.

    Usually used in combination with flatten.

    source

    GeometryOpsCore.rebuild Function
    julia
    rebuild(geom, child_geoms)

    Rebuild a geometry from child geometries.

    By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

    (Maybe it should go into GeoInterface.jl)

    source

    julia
    """
         unwrap(target::Type{<:AbstractTrait}, obj)
         unwrap(f, target::Type{<:AbstractTrait}, obj)
     
    @@ -136,7 +136,7 @@
             return T{false,false}(child_geoms; crs, extent)
         end
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/src/types.html b/previews/PR238/source/src/types.html index 19a6d7902..94099e86e 100644 --- a/previews/PR238/source/src/types.html +++ b/previews/PR238/source/src/types.html @@ -9,9 +9,9 @@ - + - + @@ -129,7 +129,7 @@ @inline _booltype(x::Bool)::BoolsAsTypes = x ? _True() : _False() @inline _booltype(x::BoolsAsTypes)::BoolsAsTypes = x

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/transformations/correction/closed_ring.html b/previews/PR238/source/transformations/correction/closed_ring.html index 9b8471888..fabcac5c5 100644 --- a/previews/PR238/source/transformations/correction/closed_ring.html +++ b/previews/PR238/source/transformations/correction/closed_ring.html @@ -9,9 +9,9 @@ - + - + @@ -48,7 +48,7 @@ else

    Assemble the ring as a vector

    julia
            tups = tuples.(GI.getpoint(ring))

    Close the ring

    julia
            push!(tups, tups[1])

    Return an actual ring

    julia
            return GI.LinearRing(tups)
         end
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/transformations/correction/geometry_correction.html b/previews/PR238/source/transformations/correction/geometry_correction.html index 27c660f0a..ba375be44 100644 --- a/previews/PR238/source/transformations/correction/geometry_correction.html +++ b/previews/PR238/source/transformations/correction/geometry_correction.html @@ -9,16 +9,16 @@ - + - + - + -
    Skip to content

    Geometry Corrections

    julia
    export fix

    This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

    A geometry correction is a transformation that is applied to a geometry to correct it in some way.

    For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

    Interface

    All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

    See below for the full interface specification.

    GeometryOps.GeometryCorrection Type
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    Any geometry correction must implement the interface as given above.

    julia
    """
    +    
    Skip to content

    Geometry Corrections

    julia
    export fix

    This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

    A geometry correction is a transformation that is applied to a geometry to correct it in some way.

    For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

    Interface

    All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

    See below for the full interface specification.

    GeometryOps.GeometryCorrection Type
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    Any geometry correction must implement the interface as given above.

    julia
    """
         abstract type GeometryCorrection
     
     This abstract type represents a geometry correction.
    @@ -48,8 +48,8 @@
             final_geometry = apply(net_function, Trait, final_geometry; kwargs...)
         end
         return final_geometry
    -end

    Available corrections

    GeometryOps.ClosedRing Type
    julia
    ClosedRing() <: GeometryCorrection

    This correction ensures that a polygon's exterior and interior rings are closed.

    It can be called on any geometry correction as usual.

    See also GeometryCorrection.

    source

    GeometryOps.DiffIntersectingPolygons Type
    julia
    DiffIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

    source

    GeometryOps.GeometryCorrection Type
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    GeometryOps.UnionIntersectingPolygons Type
    julia
    UnionIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

    See also GeometryCorrection.

    source


    This page was generated using Literate.jl.

    - +end

    Available corrections

    GeometryOps.ClosedRing Type
    julia
    ClosedRing() <: GeometryCorrection

    This correction ensures that a polygon's exterior and interior rings are closed.

    It can be called on any geometry correction as usual.

    See also GeometryCorrection.

    source

    GeometryOps.DiffIntersectingPolygons Type
    julia
    DiffIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

    source

    GeometryOps.GeometryCorrection Type
    julia
    abstract type GeometryCorrection

    This abstract type represents a geometry correction.

    Interface

    Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

    source

    GeometryOps.UnionIntersectingPolygons Type
    julia
    UnionIntersectingPolygons() <: GeometryCorrection

    This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

    See also GeometryCorrection.

    source


    This page was generated using Literate.jl.

    + \ No newline at end of file diff --git a/previews/PR238/source/transformations/correction/intersecting_polygons.html b/previews/PR238/source/transformations/correction/intersecting_polygons.html index df5be1acb..762bed852 100644 --- a/previews/PR238/source/transformations/correction/intersecting_polygons.html +++ b/previews/PR238/source/transformations/correction/intersecting_polygons.html @@ -9,9 +9,9 @@ - + - + @@ -115,7 +115,7 @@ end return diff_multipoly end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/transformations/extent.html b/previews/PR238/source/transformations/extent.html index 82348b17c..a8ce767c1 100644 --- a/previews/PR238/source/transformations/extent.html +++ b/previews/PR238/source/transformations/extent.html @@ -9,9 +9,9 @@ - + - + @@ -31,7 +31,7 @@ """ embed_extent(x; threaded=false, crs=nothing) = apply(identity, GI.PointTrait(), x; calc_extent=true, threaded, crs)

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/transformations/flip.html b/previews/PR238/source/transformations/flip.html index 260fd6216..9c753bb6d 100644 --- a/previews/PR238/source/transformations/flip.html +++ b/previews/PR238/source/transformations/flip.html @@ -9,9 +9,9 @@ - + - + @@ -40,7 +40,7 @@ end end end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/transformations/reproject.html b/previews/PR238/source/transformations/reproject.html index c04cdadc4..e5bc5ee2d 100644 --- a/previews/PR238/source/transformations/reproject.html +++ b/previews/PR238/source/transformations/reproject.html @@ -9,9 +9,9 @@ - + - + @@ -59,7 +59,7 @@ nothing end end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/transformations/segmentize.html b/previews/PR238/source/transformations/segmentize.html index 2985cf28f..f838d2cb2 100644 --- a/previews/PR238/source/transformations/segmentize.html +++ b/previews/PR238/source/transformations/segmentize.html @@ -9,11 +9,11 @@ - + - + - + @@ -39,7 +39,7 @@ f, a, p = poly(collect(GI.getpoint(linear)); label = "Linear", axis = (; aspect = DataAspect())) p2 = poly!(collect(GI.getpoint(geodesic)); label = "Geodesic") axislegend(a; position = :lt) -f

    There are two methods available for segmentizing geometries at the moment:

    Missing docstring.

    Missing docstring for LinearSegments. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GeodesicSegments. Check Documenter's build log for details.

    Benchmark

    We benchmark our method against LibGEOS's GEOSDensify method, which is a similar method for densifying geometries.

    julia
    using BenchmarkTools: BenchmarkGroup
    +f

    There are two methods available for segmentizing geometries at the moment:

    Missing docstring.

    Missing docstring for LinearSegments. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for GeodesicSegments. Check Documenter's build log for details.

    Benchmark

    We benchmark our method against LibGEOS's GEOSDensify method, which is a similar method for densifying geometries.

    julia
    using BenchmarkTools: BenchmarkGroup
     using Chairmarks: @be
     using Main: plot_trials
     using CairoMakie
    @@ -77,7 +77,7 @@
     
     end
     
    -plot_trials(segmentize_suite)

    julia
    abstract type SegmentizeMethod end
    +plot_trials(segmentize_suite)

    julia
    abstract type SegmentizeMethod end
     """
         LinearSegments(; max_distance::Real)
     
    @@ -179,7 +179,7 @@
         end

    End the line with the original coordinate, to avoid any multiplication errors.

    julia
        push!(new_coords, (x2, y2))
         return nothing
     end

    Note

    The _fill_linear_kernel definition for GeodesicSegments is in the GeometryOpsProjExt extension module, in the segmentize.jl file.


    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/transformations/simplify.html b/previews/PR238/source/transformations/simplify.html index 1a0b2012b..3894a9863 100644 --- a/previews/PR238/source/transformations/simplify.html +++ b/previews/PR238/source/transformations/simplify.html @@ -9,11 +9,11 @@ - + - + - + @@ -29,7 +29,7 @@ f, a, p = poly(original; label = "Original") poly!(simple; label = "Simplified") axislegend(a) -f

    Benchmark

    We benchmark these methods against LibGEOS's simplify implementation, which uses the Douglas-Peucker algorithm.

    julia
    using BenchmarkTools, Chairmarks, GeoJSON, CairoMakie
    +f

    Benchmark

    We benchmark these methods against LibGEOS's simplify implementation, which uses the Douglas-Peucker algorithm.

    julia
    using BenchmarkTools, Chairmarks, GeoJSON, CairoMakie
     import GeometryOps as GO, LibGEOS as LG, GeoInterface as GI
     using CoordinateTransformations
     using NaturalEarth
    @@ -42,7 +42,7 @@
     usa_poly = GI.getgeom(usa_multipoly, findmax(GO.area.(GI.getgeom(usa_multipoly)))[2]) # isolate the poly with the most area
     usa_centroid = GO.centroid(usa_poly)
     usa_reflected = GO.transform(Translation(usa_centroid...)  LinearMap(Makie.rotmatrix2d(π))  Translation((-).(usa_centroid)...), usa_poly)
    -f, a, p = plot(usa_poly; label = "Original", axis = (; aspect = DataAspect()))#; plot!(usa_reflected; label = "Reflected")

    This is the complex polygon we'll be benchmarking.

    julia
    simplify_suite = BenchmarkGroup(["Simplify"])
    +f, a, p = plot(usa_poly; label = "Original", axis = (; aspect = DataAspect()))#; plot!(usa_reflected; label = "Reflected")

    This is the complex polygon we'll be benchmarking.

    julia
    simplify_suite = BenchmarkGroup(["Simplify"])
     singlepoly_suite = BenchmarkGroup(["Polygon", "title:Polygon simplify", "subtitle:Random blob"])
     
     include(joinpath(dirname(dirname(pathof(GO))), "test", "data", "polygon_generation.jl"))
    @@ -56,7 +56,7 @@
         singlepoly_suite["LibGEOS"][GI.npoint(geom)] = @be LG.simplify($geom_lg, 0.1) seconds=1
     end
     
    -plot_trials(singlepoly_suite; legend_position=(1, 1, TopRight()), legend_valign = -2, legend_halign = 1.2, legend_orientation = :horizontal)

    julia
    multipoly_suite = BenchmarkGroup(["MultiPolygon", "title:Multipolygon simplify", "subtitle:USA multipolygon"])
    +plot_trials(singlepoly_suite; legend_position=(1, 1, TopRight()), legend_valign = -2, legend_halign = 1.2, legend_orientation = :horizontal)

    julia
    multipoly_suite = BenchmarkGroup(["MultiPolygon", "title:Multipolygon simplify", "subtitle:USA multipolygon"])
     
     for frac in exp10.(LinRange(log10(0.3), log10(1), 6)) # TODO: this example isn't the best.  How can we get this better?
         geom = GO.simplify(usa_multipoly; ratio = frac)
    @@ -75,7 +75,7 @@
         # GO-VW : $(GI.npoint( GO.simplify((GO.VisvalingamWhyatt(; tol = _tol)), geom_go)))
         println()
     end
    -plot_trials(multipoly_suite)

    julia
    export simplify, VisvalingamWhyatt, DouglasPeucker, RadialDistance
    +plot_trials(multipoly_suite)

    julia
    export simplify, VisvalingamWhyatt, DouglasPeucker, RadialDistance
     
     const _SIMPLIFY_TARGET = TraitTarget{Union{GI.PolygonTrait, GI.AbstractCurveTrait, GI.MultiPointTrait, GI.PointTrait}}()
     const MIN_POINTS = 3
    @@ -508,7 +508,7 @@
         end
         return nothing
     end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/transformations/transform.html b/previews/PR238/source/transformations/transform.html index 560f8387f..216cc7548 100644 --- a/previews/PR238/source/transformations/transform.html +++ b/previews/PR238/source/transformations/transform.html @@ -9,9 +9,9 @@ - + - + @@ -73,7 +73,7 @@ end end end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/transformations/tuples.html b/previews/PR238/source/transformations/tuples.html index d0dba7edd..03392593c 100644 --- a/previews/PR238/source/transformations/tuples.html +++ b/previews/PR238/source/transformations/tuples.html @@ -9,9 +9,9 @@ - + - + @@ -37,7 +37,7 @@ end end end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/types.html b/previews/PR238/source/types.html index 3f2b3c2b8..4dfeb8343 100644 --- a/previews/PR238/source/types.html +++ b/previews/PR238/source/types.html @@ -9,9 +9,9 @@ - + - + @@ -56,7 +56,7 @@ error("$(f) requires a `$(kw)` keyword argument to the `GEOS` algorithm, which was not provided.") end end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/source/utils.html b/previews/PR238/source/utils.html index ae15f2c92..9e0c9bb44 100644 --- a/previews/PR238/source/utils.html +++ b/previews/PR238/source/utils.html @@ -9,9 +9,9 @@ - + - + @@ -138,7 +138,7 @@ (x1, x2), (y1, y2) = extent.X, extent.Y return x1 ≤ GI.x(p) ≤ x2 && y1 ≤ GI.y(p) ≤ y2 end

    This page was generated using Literate.jl.

    - + \ No newline at end of file diff --git a/previews/PR238/tutorials/creating_geometry.html b/previews/PR238/tutorials/creating_geometry.html index d5fd3c149..24702dc85 100644 --- a/previews/PR238/tutorials/creating_geometry.html +++ b/previews/PR238/tutorials/creating_geometry.html @@ -9,11 +9,11 @@ - + - + - + @@ -28,37 +28,37 @@ import Proj # Plotting using CairoMakie -using GeoMakie

    Creating and plotting geometries

    Let's start by making a single Point.

    julia
    point = GI.Point(0, 0)
    GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((0, 0), nothing)

    Now, let's plot our point.

    julia
    fig, ax, plt = plot(point)

    Let's create a set of points, and have a bit more fun with plotting.

    julia
    x = [-5, 0, 5, 0];
    +using GeoMakie

    Creating and plotting geometries

    Let's start by making a single Point.

    julia
    point = GI.Point(0, 0)
    GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((0, 0), nothing)

    Now, let's plot our point.

    julia
    fig, ax, plt = plot(point)

    Let's create a set of points, and have a bit more fun with plotting.

    julia
    x = [-5, 0, 5, 0];
     y = [0, -5, 0, 5];
     points = GI.Point.(zip(x,y));
     plot!(ax, points; marker = '✈', markersize = 30)
    -fig

    Points can be combined into a single MultiPoint geometry.

    julia
    x = [-5, -5, 5, 5];
    +fig

    Points can be combined into a single MultiPoint geometry.

    julia
    x = [-5, -5, 5, 5];
     y = [-5, 5, 5, -5];
     multipoint = GI.MultiPoint(GI.Point.(zip(x, y)));
     plot!(ax, multipoint; marker = '☁', markersize = 30)
    -fig

    Let's create a LineString connecting two points.

    julia
    p1 = GI.Point.(-5, 0);
    +fig

    Let's create a LineString connecting two points.

    julia
    p1 = GI.Point.(-5, 0);
     p2 = GI.Point.(5, 0);
     line = GI.LineString([p1,p2])
     plot!(ax, line; color = :red)
    -fig

    Now, let's create a line connecting multiple points (i.e. a LineString). This time we get a bit more fancy with point creation.

    julia
    r = 2;
    +fig

    Now, let's create a line connecting multiple points (i.e. a LineString). This time we get a bit more fancy with point creation.

    julia
    r = 2;
     k = 10;
     ϴ = 0:0.01:2pi;
     x = r .* (k + 1) .* cos.(ϴ) .- r .* cos.((k + 1) .* ϴ);
     y = r .* (k + 1) .* sin.(ϴ) .- r .* sin.((k + 1) .* ϴ);
     lines = GI.LineString(GI.Point.(zip(x,y)));
     plot!(ax, lines; linewidth = 5)
    -fig

    We can also create a single LinearRing trait, the building block of a polygon. A LinearRing is simply a LineString with the same beginning and endpoint, i.e., an arbitrary closed shape composed of point pairs.

    A LinearRing is composed of a series of points.

    julia
    ring1 = GI.LinearRing(GI.getpoint(lines));
    GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)

    Now, let's make the LinearRing into a Polygon.

    julia
    polygon1 = GI.Polygon([ring1]);
    GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)], nothing, nothing)

    Now, we can use GeometryOps and CoordinateTransformations to shift polygon1 up, to avoid plotting over our earlier results. This is done through the GeometryOps.transform function.

    julia
    xoffset = 0.;
    +fig

    We can also create a single LinearRing trait, the building block of a polygon. A LinearRing is simply a LineString with the same beginning and endpoint, i.e., an arbitrary closed shape composed of point pairs.

    A LinearRing is composed of a series of points.

    julia
    ring1 = GI.LinearRing(GI.getpoint(lines));
    GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)

    Now, let's make the LinearRing into a Polygon.

    julia
    polygon1 = GI.Polygon([ring1]);
    GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)], nothing, nothing)

    Now, we can use GeometryOps and CoordinateTransformations to shift polygon1 up, to avoid plotting over our earlier results. This is done through the GeometryOps.transform function.

    julia
    xoffset = 0.;
     yoffset = 50.;
     f = CoordinateTransformations.Translation(xoffset, yoffset);
     polygon1 = GO.transform(f, polygon1);
     plot!(polygon1)
    -fig

    Polygons can contain "holes". The first LinearRing in a polygon is the exterior, and all subsequent LinearRings are treated as holes in the leading LinearRing.

    GeoInterface offers the GI.getexterior(poly) and GI.gethole(poly) methods to get the exterior ring and an iterable of holes, respectively.

    julia
    hole = GI.LinearRing(GI.getpoint(multipoint))
    +fig

    Polygons can contain "holes". The first LinearRing in a polygon is the exterior, and all subsequent LinearRings are treated as holes in the leading LinearRing.

    GeoInterface offers the GI.getexterior(poly) and GI.gethole(poly) methods to get the exterior ring and an iterable of holes, respectively.

    julia
    hole = GI.LinearRing(GI.getpoint(multipoint))
     polygon2 = GI.Polygon([ring1, hole])
    GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, T, Nothing, Nothing} where T}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, T, Nothing, Nothing} where T[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((-5, -5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((-5, 5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((5, 5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((5, -5), nothing)], nothing, nothing)], nothing, nothing)

    Shift polygon2 to the right, to avoid plotting over our earlier results.

    julia
    xoffset = 50.;
     yoffset = 0.;
     f = CoordinateTransformations.Translation(xoffset, yoffset);
     polygon2 = GO.transform(f, polygon2);
     plot!(polygon2)
    -fig

    Polygons can also be grouped together as a MultiPolygon.

    julia
    r = 5;
    +fig

    Polygons can also be grouped together as a MultiPolygon.

    julia
    r = 5;
     x = cos.(reverse(ϴ)) .* r .+ xoffset;
     y = sin.(reverse(ϴ)) .* r .+ yoffset;
     ring2 =  GI.LinearRing(GI.Point.(zip(x,y)));
    @@ -68,7 +68,7 @@
     f = CoordinateTransformations.Translation(xoffset, yoffset);
     multipolygon = GO.transform(f, multipolygon);
     plot!(multipolygon)
    -fig

    Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

    Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

    In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

    Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

    julia
    source_crs1 = GFT.EPSG(4326)
    GeoFormatTypes.EPSG{1}((4326,))

    Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

    julia
    destination_crs = "+proj=natearth2"
    "+proj=natearth2"

    Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

    julia
    land_path = GeoMakie.assetpath("ne_110m_land.geojson")
    "/home/runner/.julia/packages/GeoMakie/t8Vkb/assets/ne_110m_land.geojson"

    Note

    Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

    Read the land MultiPolygons as a GeoJSON.FeatureCollection.

    julia
    land_geo = GeoJSON.read(land_path)
    FeatureCollection with 127 Features

    We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

    julia
    fig = Figure(size=(1000, 500));
    +fig

    Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

    Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

    In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

    Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

    julia
    source_crs1 = GFT.EPSG(4326)
    GeoFormatTypes.EPSG{1}((4326,))

    Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

    julia
    destination_crs = "+proj=natearth2"
    "+proj=natearth2"

    Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

    julia
    land_path = GeoMakie.assetpath("ne_110m_land.geojson")
    "/home/runner/.julia/packages/GeoMakie/jrNmz/assets/ne_110m_land.geojson"

    Note

    Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

    Read the land MultiPolygons as a GeoJSON.FeatureCollection.

    julia
    land_geo = GeoJSON.read(land_path)
    FeatureCollection with 127 Features

    We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

    julia
    fig = Figure(size=(1000, 500));
     ga = GeoAxis(
         fig[1, 1];
         source = source_crs1,
    @@ -76,8 +76,8 @@
         xticklabelsvisible = false,
         yticklabelsvisible = false,
     );

    Plot land for context.

    julia
    poly!(ga, land_geo, color=:black)
    -fig

    Now let's plot a Polygon like before, but this time with a CRS that differs from our source data

    julia
    plot!(multipolygon; color = :green)
    -fig

    But what if we want to plot geometries with a different source CRS on the same figure?

    To show how to do this let's create a geometry with coordinates in UTM (Universal Transverse Mercator) zone 10N EPSG:32610.

    julia
    source_crs2 = GFT.EPSG(32610)
    GeoFormatTypes.EPSG{1}((32610,))

    Create a polygon (we're working in meters now, not latitude and longitude)

    julia
    r = 1000000;
    +fig

    Now let's plot a Polygon like before, but this time with a CRS that differs from our source data

    julia
    plot!(multipolygon; color = :green)
    +fig

    But what if we want to plot geometries with a different source CRS on the same figure?

    To show how to do this let's create a geometry with coordinates in UTM (Universal Transverse Mercator) zone 10N EPSG:32610.

    julia
    source_crs2 = GFT.EPSG(32610)
    GeoFormatTypes.EPSG{1}((32610,))

    Create a polygon (we're working in meters now, not latitude and longitude)

    julia
    r = 1000000;
     ϴ = 0:0.01:2pi;
     x = r .* cos.(ϴ).^3 .+ 500000;
     y = r .* sin.(ϴ) .^ 3 .+5000000;
    629-element Vector{Float64}:
    @@ -87,7 +87,7 @@
     
      5.0e6
      5.0e6

    Now create a LinearRing from Points

    julia
    ring3 = GI.LinearRing(Point.(zip(x, y)))
    GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[1.5e6, 5.0e6], [1.4998500087497458e6, 5.000000999950001e6], [1.4994001399837343e6, 5.000007998400139e6], [1.4986507085647392e6, 5.000026987852369e6], [1.4976022389592e6, 5.000063948817746e6], [1.4962554647802354e6, 5.000124843834609e6], [1.4946113281484335e6, 5.000215611503127e6], [1.4926709788709967e6, 5.000342160541625e6], [1.4904357734399722e6, 5.000510363870095e6], [1.4879072738504685e6, 5.0007260527263e6]  …  [1.4870405593989636e6, 4.999194331880103e6], [1.4896621210021754e6, 4.999426363321033e6], [1.491990928929295e6, 4.999609061508909e6], [1.4940253560034204e6, 4.999748243174828e6], [1.4957639801366436e6, 4.999849768598615e6], [1.497205585568957e6, 4.999919535736425e6], [1.4983491639274692e6, 4.999963474314044e6], [1.4991939151049731e6, 4.999987539891298e6], [1.4997392479570867e6, 4.999997707902938e6], [1.499984780817334e6, 4.999999967681458e6]], nothing, nothing)

    Now create a Polygon from the LineRing

    julia
    polygon3 = GI.Polygon([ring3])
    GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[1.5e6, 5.0e6], [1.4998500087497458e6, 5.000000999950001e6], [1.4994001399837343e6, 5.000007998400139e6], [1.4986507085647392e6, 5.000026987852369e6], [1.4976022389592e6, 5.000063948817746e6], [1.4962554647802354e6, 5.000124843834609e6], [1.4946113281484335e6, 5.000215611503127e6], [1.4926709788709967e6, 5.000342160541625e6], [1.4904357734399722e6, 5.000510363870095e6], [1.4879072738504685e6, 5.0007260527263e6]  …  [1.4870405593989636e6, 4.999194331880103e6], [1.4896621210021754e6, 4.999426363321033e6], [1.491990928929295e6, 4.999609061508909e6], [1.4940253560034204e6, 4.999748243174828e6], [1.4957639801366436e6, 4.999849768598615e6], [1.497205585568957e6, 4.999919535736425e6], [1.4983491639274692e6, 4.999963474314044e6], [1.4991939151049731e6, 4.999987539891298e6], [1.4997392479570867e6, 4.999997707902938e6], [1.499984780817334e6, 4.999999967681458e6]], nothing, nothing)], nothing, nothing)

    Now plot on the existing GeoAxis.

    Note

    The keyword argument source is used to specify the source CRS of that particular plot, when plotting on an existing GeoAxis.

    julia
    plot!(ga,polygon3; color=:red, source = source_crs2)
    -fig

    Create geospatial geometries with embedded coordinate reference system information

    Great, we can make geometries and plot them on a map... now let's export the data to common geospatial data formats. To do this we now need to create geometries with embedded CRS information, making it a geospatial geometry. All that's needed is to include ; crs = crs as a keyword argument when constructing the geometry.

    Let's do this for a new Polygon

    julia
    r = 3;
    +fig

    Create geospatial geometries with embedded coordinate reference system information

    Great, we can make geometries and plot them on a map... now let's export the data to common geospatial data formats. To do this we now need to create geometries with embedded CRS information, making it a geospatial geometry. All that's needed is to include ; crs = crs as a keyword argument when constructing the geometry.

    Let's do this for a new Polygon

    julia
    r = 3;
     k = 7;
     ϴ = 0:0.01:2pi;
     x = r .* (k + 1) .* cos.(ϴ) .- r .* cos.((k + 1) .* ϴ);
    @@ -107,7 +107,7 @@
     GeoParquet.write(fn, df, (:geometry,))
    "shapes.parquet"

    Finally, if there's no Julia-native package that can write data to your desired format (e.g. .gpkg, .gml, etc), you can use GeoDataFrames. This package uses the GDAL library under the hood which supports writing to nearly all geospatial formats.

    julia
    import GeoDataFrames
     fn = "shapes.gpkg"
     GeoDataFrames.write(fn, df)
    "shapes.gpkg"

    And there we go, you can now create mapped geometries from scratch, manipulate them, plot them on a map, and save them in multiple geospatial data formats.

    - + \ No newline at end of file diff --git a/previews/PR238/tutorials/geodesic_paths.html b/previews/PR238/tutorials/geodesic_paths.html index 536b333fe..25a3f7e01 100644 --- a/previews/PR238/tutorials/geodesic_paths.html +++ b/previews/PR238/tutorials/geodesic_paths.html @@ -9,11 +9,11 @@ - + - + - + @@ -28,8 +28,8 @@ fig, ga, _cp = lines(GeoMakie.coastlines(); axis = (; type = GeoAxis)) lines!(ga, GO.segmentize(GO.GeodesicSegments(; max_distance = 100_000), GI.LineString([IAH, AMS])); color = Makie.wong_colors()[2]) -fig

    - +fig

    + \ No newline at end of file diff --git a/previews/PR238/tutorials/spatial_joins.html b/previews/PR238/tutorials/spatial_joins.html index 870236a07..af6e60717 100644 --- a/previews/PR238/tutorials/spatial_joins.html +++ b/previews/PR238/tutorials/spatial_joins.html @@ -9,11 +9,11 @@ - + - + - + @@ -38,14 +38,14 @@ pl = GI.Polygon([GI.LinearRing([(0, 0), (1, 0), (1, 1), (0, 0)])]) pu = GI.Polygon([GI.LinearRing([(0, 0), (0, 1), (1, 1), (0, 0)])]) poly_df = DataFrame(geometry = [pl, pu], color = [:red, :blue]) -f, a, p = poly(poly_df.geometry; color = tuple.(poly_df.color, 0.3))

    Here, the upper polygon is blue, and the lower polygon is red. Keep this in mind!

    Now, we generate the points.

    julia
    points = tuple.(rand(1000), rand(1000))
    +f, a, p = poly(poly_df.geometry; color = tuple.(poly_df.color, 0.3))

    Here, the upper polygon is blue, and the lower polygon is red. Keep this in mind!

    Now, we generate the points.

    julia
    points = tuple.(rand(1000), rand(1000))
     points_df = DataFrame(geometry = points)
     scatter!(points_df.geometry)
    -f

    You can see that they are evenly distributed around the box. But how do we know which points are in which polygons?

    We have to join the two dataframes based on which polygon (if any) each point lies within.

    Now, we can perform the "spatial join" using FlexiJoins. We are performing an outer join here

    julia
    @time joined_df = FlexiJoins.innerjoin(
    +f

    You can see that they are evenly distributed around the box. But how do we know which points are in which polygons?

    We have to join the two dataframes based on which polygon (if any) each point lies within.

    Now, we can perform the "spatial join" using FlexiJoins. We are performing an outer join here

    julia
    @time joined_df = FlexiJoins.innerjoin(
         (points_df, poly_df),
         by_pred(:geometry, GO.within, :geometry)
     )
    julia
    scatter!(a, joined_df.geometry; color = joined_df.color)
    -f

    Here, you can see that the colors were assigned appropriately to the scattered points!

    Real-world example

    Suppose I have a list of polygons representing administrative regions (or mining sites, or what have you), and I have a list of polygons for each country. I want to find the country each region is in.

    julia
    import GeoInterface as GI, GeometryOps as GO
    +f

    Here, you can see that the colors were assigned appropriately to the scattered points!

    Real-world example

    Suppose I have a list of polygons representing administrative regions (or mining sites, or what have you), and I have a list of polygons for each country. I want to find the country each region is in.

    julia
    import GeoInterface as GI, GeometryOps as GO
     using FlexiJoins, DataFrames, GADM # GADM gives us country and sublevel geometry
     
     using CairoMakie, GeoInterfaceMakie
    @@ -70,7 +70,7 @@
         ::FlexiJoins.ByPred{typeof(my_predicate_function)}, 
         datas
     ) = true

    This will enable FlexiJoins to support your custom function, when it's passed to by_pred(:geometry, my_predicate_function, :geometry).

    - + \ No newline at end of file