From 183c723ed958a90248b59942dbb98ec1ff968944 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Sat, 15 Feb 2025 16:46:06 +0000 Subject: [PATCH] build based on ad7303e --- previews/PR259/404.html | 4 +- previews/PR259/api.html | 138 +++++++------- ...hyfu.Dig-DWOQ.png => ajrqdho.Dig-DWOQ.png} | Bin ...pbur.Dab1-ETk.png => akxuysk.Dab1-ETk.png} | Bin ...{api.md.BjOA8ThU.js => api.md.2CTl0mwp.js} | 130 +++++++------- previews/PR259/assets/api.md.2CTl0mwp.lean.js | 1 + previews/PR259/assets/api.md.BjOA8ThU.lean.js | 1 - .../{app.BAFNewYe.js => app.CV4eLTiM.js} | 2 +- ...ufqt.DiwGEg2f.png => cbphmub.DiwGEg2f.png} | Bin .../chunks/@localSearchIndexroot.XO-ieOtj.js | 1 + .../chunks/@localSearchIndexroot.gPJ_HSsN.js | 1 - ...qCziHd.js => VPLocalSearchBox.3EF4bsHS.js} | 2 +- .../{theme.B_n0Ru8S.js => theme.C_XeUbhC.js} | 4 +- previews/PR259/assets/damgmke.CeGTh3mf.png | Bin 58745 -> 0 bytes ...yyat.CgiryX2p.png => drsvfbl.CgiryX2p.png} | Bin previews/PR259/assets/ehpuvwt.CSAMkaNh.png | Bin 209339 -> 0 bytes ... => experiments_predicates.md.CwpeGtcZ.js} | 2 +- ...xperiments_predicates.md.CwpeGtcZ.lean.js} | 2 +- ...ldqg.D5-bot8v.png => fytoaiu.D5-bot8v.png} | Bin ...xgdd.pAYw0Yqf.png => gafzfvd.pAYw0Yqf.png} | Bin ...chxq.DaovVbE6.png => gahyaod.DaovVbE6.png} | Bin previews/PR259/assets/gektpcp.BaImpRtB.png | Bin 64223 -> 0 bytes previews/PR259/assets/hbovccs.Ooo070yi.png | Bin 0 -> 204956 bytes previews/PR259/assets/hemmjkf.DxSgu1w0.png | Bin 64245 -> 0 bytes previews/PR259/assets/hkdryle.Bv9yzSwF.png | Bin 65239 -> 0 bytes previews/PR259/assets/ifidzel.CuQ6xaOg.png | Bin 0 -> 75452 bytes ...bygz.niLCt72m.png => irpmxop.niLCt72m.png} | Bin ...iclx.3UVIT8DR.png => izbsurh.3UVIT8DR.png} | Bin ...hubg.DC3TvBOO.png => jbxzeyr.DC3TvBOO.png} | Bin ...twla.DuRAWgH5.png => jfdzwod.DuRAWgH5.png} | Bin ...scox.Bglvb-jp.png => jgenehz.Bglvb-jp.png} | Bin ...fueu.DI6pFDzZ.png => julymcg.DI6pFDzZ.png} | Bin previews/PR259/assets/kmmnlnv.BJ-fni57.png | Bin 0 -> 66927 bytes ...pngj.Dz86q2IX.png => kxdvzuc.Dz86q2IX.png} | Bin ...tybr._0R9BbFk.png => locpohl._0R9BbFk.png} | Bin previews/PR259/assets/lratuul.dWQJO9xl.png | Bin 80041 -> 0 bytes previews/PR259/assets/ltpuwqf.BJOgYTTM.png | Bin 0 -> 79898 bytes previews/PR259/assets/lvdeuyz.ClUWLGb5.png | Bin 70133 -> 0 bytes previews/PR259/assets/lwksvhj.Cb9ft44q.png | Bin 0 -> 226019 bytes previews/PR259/assets/lxudkwo.ClxMIRwN.png | Bin 231498 -> 0 bytes ...ctxq.3sfpQl2i.png => mvxalhg.3sfpQl2i.png} | Bin ...tsic.BEFUMtlf.png => nomkzrh.BEFUMtlf.png} | Bin ...pvdh.DHcwB147.png => nplnzhx.DHcwB147.png} | Bin ...wtio.DeeQUply.png => opjywme.DeeQUply.png} | Bin ...omjb.CULn5saZ.png => pbslvov.CULn5saZ.png} | Bin previews/PR259/assets/pevsyum.BQvae1s1.png | Bin 0 -> 64812 bytes ...hgnp.C3SxJ3x-.png => piftqdk.C3SxJ3x-.png} | Bin ...bchc.BD0hVfse.png => pjrencp.BD0hVfse.png} | Bin ...embu.CSlwc-Vp.png => pzxxmit.CSlwc-Vp.png} | Bin ...s => source_methods_angles.md.QSMePFXJ.js} | 2 +- ...source_methods_angles.md.QSMePFXJ.lean.js} | 2 +- ....js => source_methods_area.md.ZZGCMhJb.js} | 2 +- ...> source_methods_area.md.ZZGCMhJb.lean.js} | 2 +- ...source_methods_barycentric.md.SwJFTLbx.js} | 2 +- ...e_methods_barycentric.md.SwJFTLbx.lean.js} | 2 +- ...=> source_methods_centroid.md.DLnq527K.js} | 6 +- ...urce_methods_centroid.md.DLnq527K.lean.js} | 2 +- ...lipping_clipping_processor.md.CVJUFgvw.js} | 163 ++++++++++++----- ...ng_clipping_processor.md.CVJUFgvw.lean.js} | 2 +- ..._methods_clipping_coverage.md.7AzAfHEY.js} | 2 +- ...ods_clipping_coverage.md.7AzAfHEY.lean.js} | 2 +- ...e_methods_clipping_cut.md.BZkVBeDi.lean.js | 1 - ...ource_methods_clipping_cut.md.s0ApEmIZ.js} | 26 +-- ...e_methods_clipping_cut.md.s0ApEmIZ.lean.js | 1 + ...ds_clipping_difference.md.BOSoRQpu.lean.js | 1 - ...ethods_clipping_difference.md.DEXW95_U.js} | 58 +++--- ...ds_clipping_difference.md.DEXW95_U.lean.js | 1 + ...hods_clipping_intersection.md.Bigo6bS9.js} | 68 ++++--- ...clipping_intersection.md.Bigo6bS9.lean.js} | 2 +- ...rce_methods_clipping_union.md.D30VBadw.js} | 121 +++++++++---- ...ethods_clipping_union.md.D30VBadw.lean.js} | 2 +- ...source_methods_convex_hull.md.DsezimTp.js} | 6 +- ...e_methods_convex_hull.md.DsezimTp.lean.js} | 2 +- ...=> source_methods_distance.md.CS0zsiKS.js} | 2 +- ...urce_methods_distance.md.CS0zsiKS.lean.js} | 2 +- ...s => source_methods_equals.md.D83aqY81.js} | 2 +- ...source_methods_equals.md.D83aqY81.lean.js} | 2 +- ...ds_geom_relations_contains.md.CgzN2dAX.js} | 2 +- ...om_relations_contains.md.CgzN2dAX.lean.js} | 2 +- ...s_geom_relations_coveredby.md.sX_y8V1r.js} | 2 +- ...m_relations_coveredby.md.sX_y8V1r.lean.js} | 2 +- ...hods_geom_relations_covers.md.Qct8xDi5.js} | 2 +- ...geom_relations_covers.md.Qct8xDi5.lean.js} | 2 +- ...ds_geom_relations_disjoint.md.B3kUZtEp.js} | 2 +- ...om_relations_disjoint.md.B3kUZtEp.lean.js} | 2 +- ..._geom_relations_intersects.md.B3WWAOpP.js} | 2 +- ..._relations_intersects.md.B3WWAOpP.lean.js} | 2 +- ...ds_geom_relations_overlaps.md.DE3_JRNZ.js} | 2 +- ...om_relations_overlaps.md.DE3_JRNZ.lean.js} | 2 +- ...ods_geom_relations_touches.md.CVRi9dgb.js} | 2 +- ...eom_relations_touches.md.CVRi9dgb.lean.js} | 2 +- ...hods_geom_relations_within.md.TxMgBL2-.js} | 2 +- ...geom_relations_within.md.TxMgBL2-.lean.js} | 2 +- ...lZR.js => source_src_apply.md.Kbhd3sJW.js} | 2 +- ...s => source_src_apply.md.Kbhd3sJW.lean.js} | 0 ...ource_src_other_primitives.md.PuhCqAkV.js} | 4 +- ..._src_other_primitives.md.PuhCqAkV.lean.js} | 0 ...ection_geometry_correction.md.Dl_s_MAo.js} | 4 +- ...n_geometry_correction.md.Dl_s_MAo.lean.js} | 2 +- ...tion_intersecting_polygons.md.Kc5GxVrF.js} | 8 +- ...intersecting_polygons.md.Kc5GxVrF.lean.js} | 2 +- ...transformations_segmentize.md.cTDQnynI.js} | 2 +- ...formations_segmentize.md.cTDQnynI.lean.js} | 2 +- ...e_transformations_simplify.md.7t6xu-a1.js} | 2 +- ...nsformations_simplify.md.7t6xu-a1.lean.js} | 2 +- ... source_utils_STRDualQuery.md.BtZT1ewz.js} | 6 +- ...ce_utils_STRDualQuery.md.BtZT1ewz.lean.js} | 2 +- ...axpf.Cb0_DiYE.png => tdtjlfv.Cb0_DiYE.png} | Bin ...utorials_creating_geometry.md.KKAr36jr.js} | 2 +- ...ials_creating_geometry.md.KKAr36jr.lean.js | 1 + ...ials_creating_geometry.md.cmMoMkYm.lean.js | 1 - ...> tutorials_geodesic_paths.md.DVzoewbj.js} | 2 +- ...orials_geodesic_paths.md.DVzoewbj.lean.js} | 2 +- ...=> tutorials_spatial_joins.md.C5qn5hXN.js} | 2 +- ...torials_spatial_joins.md.C5qn5hXN.lean.js} | 2 +- ...yqzz.0OJvb21A.png => udwcilo.0OJvb21A.png} | Bin ...eprn.B9NpLJr_.png => wgdatcw.B9NpLJr_.png} | Bin ...sirk.B94PsR1K.png => wnsinzo.B94PsR1K.png} | Bin ...drmb.Cx40vhB3.png => wtrbvkh.Cx40vhB3.png} | Bin previews/PR259/assets/xikmlzv.D2HA1hzZ.png | Bin 0 -> 63890 bytes ...dddx.CG4dr3Lx.png => xnnvwmq.CG4dr3Lx.png} | Bin previews/PR259/assets/xzplnml.-VpeHhXX.png | Bin 12067 -> 0 bytes ...jrlj.mCtKcWOr.png => ykfdwsk.mCtKcWOr.png} | Bin previews/PR259/assets/ywvqbqr.CTgutbHQ.png | Bin 0 -> 58855 bytes ...srqb.C4--srcf.png => zhgkkba.C4--srcf.png} | Bin previews/PR259/call_notes.html | 6 +- .../experiments/accurate_accumulators.html | 6 +- previews/PR259/experiments/predicates.html | 10 +- previews/PR259/explanations/crs.html | 6 +- previews/PR259/explanations/manifolds.html | 6 +- previews/PR259/explanations/paradigms.html | 6 +- .../PR259/explanations/peculiarities.html | 6 +- .../PR259/explanations/winding_order.html | 6 +- previews/PR259/hashmap.json | 2 +- previews/PR259/index.html | 6 +- previews/PR259/introduction.html | 6 +- previews/PR259/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/PR259/source/methods/angles.html | 10 +- previews/PR259/source/methods/area.html | 12 +- .../PR259/source/methods/barycentric.html | 10 +- previews/PR259/source/methods/buffer.html | 6 +- previews/PR259/source/methods/centroid.html | 12 +- .../methods/clipping/clipping_processor.html | 169 +++++++++++++----- .../source/methods/clipping/coverage.html | 10 +- .../PR259/source/methods/clipping/cut.html | 32 ++-- .../source/methods/clipping/difference.html | 62 +++---- .../source/methods/clipping/intersection.html | 74 ++++---- .../source/methods/clipping/predicates.html | 6 +- .../PR259/source/methods/clipping/union.html | 123 +++++++++---- .../PR259/source/methods/convex_hull.html | 14 +- previews/PR259/source/methods/distance.html | 12 +- previews/PR259/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 | 10 +- .../methods/geom_relations/touches.html | 10 +- .../source/methods/geom_relations/within.html | 10 +- .../PR259/source/methods/orientation.html | 6 +- previews/PR259/source/methods/polygonize.html | 6 +- .../PR259/source/not_implemented_yet.html | 6 +- previews/PR259/source/primitives.html | 6 +- .../PR259/source/src/GeometryOpsCore.html | 6 +- previews/PR259/source/src/apply.html | 10 +- previews/PR259/source/src/applyreduce.html | 6 +- previews/PR259/source/src/geometry_utils.html | 6 +- previews/PR259/source/src/keyword_docs.html | 6 +- .../PR259/source/src/other_primitives.html | 12 +- .../PR259/source/src/types/algorithm.html | 6 +- .../PR259/source/src/types/booltypes.html | 6 +- .../PR259/source/src/types/exceptions.html | 6 +- previews/PR259/source/src/types/manifold.html | 6 +- .../PR259/source/src/types/operation.html | 6 +- .../PR259/source/src/types/traittarget.html | 6 +- .../correction/closed_ring.html | 6 +- .../correction/geometry_correction.html | 12 +- .../correction/intersecting_polygons.html | 12 +- .../PR259/source/transformations/extent.html | 6 +- .../PR259/source/transformations/flip.html | 6 +- .../source/transformations/forcedims.html | 6 +- .../source/transformations/reproject.html | 6 +- .../source/transformations/segmentize.html | 12 +- .../source/transformations/simplify.html | 16 +- .../source/transformations/transform.html | 6 +- .../PR259/source/transformations/tuples.html | 6 +- previews/PR259/source/types.html | 6 +- .../PR259/source/utils/LoopStateMachine.html | 6 +- previews/PR259/source/utils/STRDualQuery.html | 12 +- previews/PR259/source/utils/utils.html | 6 +- .../PR259/tutorials/creating_geometry.html | 30 ++-- previews/PR259/tutorials/geodesic_paths.html | 10 +- previews/PR259/tutorials/spatial_joins.html | 14 +- 205 files changed, 1098 insertions(+), 822 deletions(-) rename previews/PR259/assets/{xllhyfu.Dig-DWOQ.png => ajrqdho.Dig-DWOQ.png} (100%) rename previews/PR259/assets/{mdypbur.Dab1-ETk.png => akxuysk.Dab1-ETk.png} (100%) rename previews/PR259/assets/{api.md.BjOA8ThU.js => api.md.2CTl0mwp.js} (80%) create mode 100644 previews/PR259/assets/api.md.2CTl0mwp.lean.js delete mode 100644 previews/PR259/assets/api.md.BjOA8ThU.lean.js rename previews/PR259/assets/{app.BAFNewYe.js => app.CV4eLTiM.js} (95%) rename previews/PR259/assets/{ykjufqt.DiwGEg2f.png => cbphmub.DiwGEg2f.png} (100%) create mode 100644 previews/PR259/assets/chunks/@localSearchIndexroot.XO-ieOtj.js delete mode 100644 previews/PR259/assets/chunks/@localSearchIndexroot.gPJ_HSsN.js rename previews/PR259/assets/chunks/{VPLocalSearchBox.CnqCziHd.js => VPLocalSearchBox.3EF4bsHS.js} (99%) rename previews/PR259/assets/chunks/{theme.B_n0Ru8S.js => theme.C_XeUbhC.js} (99%) delete mode 100644 previews/PR259/assets/damgmke.CeGTh3mf.png rename previews/PR259/assets/{peeyyat.CgiryX2p.png => drsvfbl.CgiryX2p.png} (100%) delete mode 100644 previews/PR259/assets/ehpuvwt.CSAMkaNh.png rename previews/PR259/assets/{experiments_predicates.md.CLK_u2-Y.js => experiments_predicates.md.CwpeGtcZ.js} (99%) rename previews/PR259/assets/{experiments_predicates.md.CLK_u2-Y.lean.js => experiments_predicates.md.CwpeGtcZ.lean.js} (74%) rename previews/PR259/assets/{oryldqg.D5-bot8v.png => fytoaiu.D5-bot8v.png} (100%) rename previews/PR259/assets/{bnpxgdd.pAYw0Yqf.png => gafzfvd.pAYw0Yqf.png} (100%) rename previews/PR259/assets/{lpkchxq.DaovVbE6.png => gahyaod.DaovVbE6.png} (100%) delete mode 100644 previews/PR259/assets/gektpcp.BaImpRtB.png create mode 100644 previews/PR259/assets/hbovccs.Ooo070yi.png delete mode 100644 previews/PR259/assets/hemmjkf.DxSgu1w0.png delete mode 100644 previews/PR259/assets/hkdryle.Bv9yzSwF.png create mode 100644 previews/PR259/assets/ifidzel.CuQ6xaOg.png rename previews/PR259/assets/{opybygz.niLCt72m.png => irpmxop.niLCt72m.png} (100%) rename previews/PR259/assets/{orziclx.3UVIT8DR.png => izbsurh.3UVIT8DR.png} (100%) rename previews/PR259/assets/{fpshubg.DC3TvBOO.png => jbxzeyr.DC3TvBOO.png} (100%) rename previews/PR259/assets/{czstwla.DuRAWgH5.png => jfdzwod.DuRAWgH5.png} (100%) rename previews/PR259/assets/{zmkscox.Bglvb-jp.png => jgenehz.Bglvb-jp.png} (100%) rename previews/PR259/assets/{tyqfueu.DI6pFDzZ.png => julymcg.DI6pFDzZ.png} (100%) create mode 100644 previews/PR259/assets/kmmnlnv.BJ-fni57.png rename previews/PR259/assets/{gndpngj.Dz86q2IX.png => kxdvzuc.Dz86q2IX.png} (100%) rename previews/PR259/assets/{djftybr._0R9BbFk.png => locpohl._0R9BbFk.png} (100%) delete mode 100644 previews/PR259/assets/lratuul.dWQJO9xl.png create mode 100644 previews/PR259/assets/ltpuwqf.BJOgYTTM.png delete mode 100644 previews/PR259/assets/lvdeuyz.ClUWLGb5.png create mode 100644 previews/PR259/assets/lwksvhj.Cb9ft44q.png delete mode 100644 previews/PR259/assets/lxudkwo.ClxMIRwN.png rename previews/PR259/assets/{rifctxq.3sfpQl2i.png => mvxalhg.3sfpQl2i.png} (100%) rename previews/PR259/assets/{dbytsic.BEFUMtlf.png => nomkzrh.BEFUMtlf.png} (100%) rename previews/PR259/assets/{rknpvdh.DHcwB147.png => nplnzhx.DHcwB147.png} (100%) rename previews/PR259/assets/{jquwtio.DeeQUply.png => opjywme.DeeQUply.png} (100%) rename previews/PR259/assets/{wzhomjb.CULn5saZ.png => pbslvov.CULn5saZ.png} (100%) create mode 100644 previews/PR259/assets/pevsyum.BQvae1s1.png rename previews/PR259/assets/{liwhgnp.C3SxJ3x-.png => piftqdk.C3SxJ3x-.png} (100%) rename previews/PR259/assets/{lrsbchc.BD0hVfse.png => pjrencp.BD0hVfse.png} (100%) rename previews/PR259/assets/{ofcembu.CSlwc-Vp.png => pzxxmit.CSlwc-Vp.png} (100%) rename previews/PR259/assets/{source_methods_angles.md.BrEpcqfH.js => source_methods_angles.md.QSMePFXJ.js} (99%) rename previews/PR259/assets/{source_methods_angles.md.BrEpcqfH.lean.js => source_methods_angles.md.QSMePFXJ.lean.js} (87%) rename previews/PR259/assets/{source_methods_area.md.Dah0srf2.js => source_methods_area.md.ZZGCMhJb.js} (99%) rename previews/PR259/assets/{source_methods_area.md.Dah0srf2.lean.js => source_methods_area.md.ZZGCMhJb.lean.js} (77%) rename previews/PR259/assets/{source_methods_barycentric.md.FNhm1rob.js => source_methods_barycentric.md.SwJFTLbx.js} (99%) rename previews/PR259/assets/{source_methods_barycentric.md.FNhm1rob.lean.js => source_methods_barycentric.md.SwJFTLbx.lean.js} (99%) rename previews/PR259/assets/{source_methods_centroid.md.Dm0OZPBY.js => source_methods_centroid.md.DLnq527K.js} (99%) rename previews/PR259/assets/{source_methods_centroid.md.Dm0OZPBY.lean.js => source_methods_centroid.md.DLnq527K.lean.js} (56%) rename previews/PR259/assets/{source_methods_clipping_clipping_processor.md.ChDFCqHs.js => source_methods_clipping_clipping_processor.md.CVJUFgvw.js} (81%) rename previews/PR259/assets/{source_methods_clipping_clipping_processor.md.ChDFCqHs.lean.js => source_methods_clipping_clipping_processor.md.CVJUFgvw.lean.js} (75%) rename previews/PR259/assets/{source_methods_clipping_coverage.md.I3CmYQZR.js => source_methods_clipping_coverage.md.7AzAfHEY.js} (99%) rename previews/PR259/assets/{source_methods_clipping_coverage.md.I3CmYQZR.lean.js => source_methods_clipping_coverage.md.7AzAfHEY.lean.js} (87%) delete mode 100644 previews/PR259/assets/source_methods_clipping_cut.md.BZkVBeDi.lean.js rename previews/PR259/assets/{source_methods_clipping_cut.md.BZkVBeDi.js => source_methods_clipping_cut.md.s0ApEmIZ.js} (73%) create mode 100644 previews/PR259/assets/source_methods_clipping_cut.md.s0ApEmIZ.lean.js delete mode 100644 previews/PR259/assets/source_methods_clipping_difference.md.BOSoRQpu.lean.js rename previews/PR259/assets/{source_methods_clipping_difference.md.BOSoRQpu.js => source_methods_clipping_difference.md.DEXW95_U.js} (74%) create mode 100644 previews/PR259/assets/source_methods_clipping_difference.md.DEXW95_U.lean.js rename previews/PR259/assets/{source_methods_clipping_intersection.md.CLIavVgq.js => source_methods_clipping_intersection.md.Bigo6bS9.js} (85%) rename previews/PR259/assets/{source_methods_clipping_intersection.md.CLIavVgq.lean.js => source_methods_clipping_intersection.md.Bigo6bS9.lean.js} (87%) rename previews/PR259/assets/{source_methods_clipping_union.md.cKYnnZNN.js => source_methods_clipping_union.md.D30VBadw.js} (69%) rename previews/PR259/assets/{source_methods_clipping_union.md.cKYnnZNN.lean.js => source_methods_clipping_union.md.D30VBadw.lean.js} (59%) rename previews/PR259/assets/{source_methods_convex_hull.md.C85szPKf.js => source_methods_convex_hull.md.DsezimTp.js} (99%) rename previews/PR259/assets/{source_methods_convex_hull.md.C85szPKf.lean.js => source_methods_convex_hull.md.DsezimTp.lean.js} (60%) rename previews/PR259/assets/{source_methods_distance.md.BiREGcW9.js => source_methods_distance.md.CS0zsiKS.js} (99%) rename previews/PR259/assets/{source_methods_distance.md.BiREGcW9.lean.js => source_methods_distance.md.CS0zsiKS.lean.js} (78%) rename previews/PR259/assets/{source_methods_equals.md.C0JGt2AW.js => source_methods_equals.md.D83aqY81.js} (99%) rename previews/PR259/assets/{source_methods_equals.md.C0JGt2AW.lean.js => source_methods_equals.md.D83aqY81.lean.js} (87%) rename previews/PR259/assets/{source_methods_geom_relations_contains.md.VIlx77Qk.js => source_methods_geom_relations_contains.md.CgzN2dAX.js} (99%) rename previews/PR259/assets/{source_methods_geom_relations_contains.md.VIlx77Qk.lean.js => source_methods_geom_relations_contains.md.CgzN2dAX.lean.js} (88%) rename previews/PR259/assets/{source_methods_geom_relations_coveredby.md.CLu86Dst.js => source_methods_geom_relations_coveredby.md.sX_y8V1r.js} (99%) rename previews/PR259/assets/{source_methods_geom_relations_coveredby.md.CLu86Dst.lean.js => source_methods_geom_relations_coveredby.md.sX_y8V1r.lean.js} (88%) rename previews/PR259/assets/{source_methods_geom_relations_covers.md.5TIFrjW7.js => source_methods_geom_relations_covers.md.Qct8xDi5.js} (99%) rename previews/PR259/assets/{source_methods_geom_relations_covers.md.5TIFrjW7.lean.js => source_methods_geom_relations_covers.md.Qct8xDi5.lean.js} (88%) rename previews/PR259/assets/{source_methods_geom_relations_disjoint.md.QOuhVB9O.js => source_methods_geom_relations_disjoint.md.B3kUZtEp.js} (99%) rename previews/PR259/assets/{source_methods_geom_relations_disjoint.md.QOuhVB9O.lean.js => source_methods_geom_relations_disjoint.md.B3kUZtEp.lean.js} (88%) rename previews/PR259/assets/{source_methods_geom_relations_intersects.md.WNMjFrcC.js => source_methods_geom_relations_intersects.md.B3WWAOpP.js} (99%) rename previews/PR259/assets/{source_methods_geom_relations_intersects.md.WNMjFrcC.lean.js => source_methods_geom_relations_intersects.md.B3WWAOpP.lean.js} (88%) rename previews/PR259/assets/{source_methods_geom_relations_overlaps.md.0TWszI_z.js => source_methods_geom_relations_overlaps.md.DE3_JRNZ.js} (99%) rename previews/PR259/assets/{source_methods_geom_relations_overlaps.md.0TWszI_z.lean.js => source_methods_geom_relations_overlaps.md.DE3_JRNZ.lean.js} (88%) rename previews/PR259/assets/{source_methods_geom_relations_touches.md.CWU5CXuI.js => source_methods_geom_relations_touches.md.CVRi9dgb.js} (99%) rename previews/PR259/assets/{source_methods_geom_relations_touches.md.CWU5CXuI.lean.js => source_methods_geom_relations_touches.md.CVRi9dgb.lean.js} (88%) rename previews/PR259/assets/{source_methods_geom_relations_within.md.Bg8YPm-m.js => source_methods_geom_relations_within.md.TxMgBL2-.js} (99%) rename previews/PR259/assets/{source_methods_geom_relations_within.md.Bg8YPm-m.lean.js => source_methods_geom_relations_within.md.TxMgBL2-.lean.js} (88%) rename previews/PR259/assets/{source_src_apply.md.CVvCElZR.js => source_src_apply.md.Kbhd3sJW.js} (99%) rename previews/PR259/assets/{source_src_apply.md.CVvCElZR.lean.js => source_src_apply.md.Kbhd3sJW.lean.js} (100%) rename previews/PR259/assets/{source_src_other_primitives.md.dtBRK5Cf.js => source_src_other_primitives.md.PuhCqAkV.js} (99%) rename previews/PR259/assets/{source_src_other_primitives.md.dtBRK5Cf.lean.js => source_src_other_primitives.md.PuhCqAkV.lean.js} (100%) rename previews/PR259/assets/{source_transformations_correction_geometry_correction.md.CJuqib7t.js => source_transformations_correction_geometry_correction.md.Dl_s_MAo.js} (76%) rename previews/PR259/assets/{source_transformations_correction_geometry_correction.md.CJuqib7t.lean.js => source_transformations_correction_geometry_correction.md.Dl_s_MAo.lean.js} (85%) rename previews/PR259/assets/{source_transformations_correction_intersecting_polygons.md.D3Q-1by7.js => source_transformations_correction_intersecting_polygons.md.Kc5GxVrF.js} (93%) rename previews/PR259/assets/{source_transformations_correction_intersecting_polygons.md.D3Q-1by7.lean.js => source_transformations_correction_intersecting_polygons.md.Kc5GxVrF.lean.js} (65%) rename previews/PR259/assets/{source_transformations_segmentize.md.BSWtZ6uM.js => source_transformations_segmentize.md.cTDQnynI.js} (99%) rename previews/PR259/assets/{source_transformations_segmentize.md.BSWtZ6uM.lean.js => source_transformations_segmentize.md.cTDQnynI.lean.js} (68%) rename previews/PR259/assets/{source_transformations_simplify.md.CGLyBXhr.js => source_transformations_simplify.md.7t6xu-a1.js} (99%) rename previews/PR259/assets/{source_transformations_simplify.md.CGLyBXhr.lean.js => source_transformations_simplify.md.7t6xu-a1.lean.js} (56%) rename previews/PR259/assets/{source_utils_STRDualQuery.md.CdYCwv_Y.js => source_utils_STRDualQuery.md.BtZT1ewz.js} (93%) rename previews/PR259/assets/{source_utils_STRDualQuery.md.CdYCwv_Y.lean.js => source_utils_STRDualQuery.md.BtZT1ewz.lean.js} (72%) rename previews/PR259/assets/{mzfaxpf.Cb0_DiYE.png => tdtjlfv.Cb0_DiYE.png} (100%) rename previews/PR259/assets/{tutorials_creating_geometry.md.cmMoMkYm.js => tutorials_creating_geometry.md.KKAr36jr.js} (99%) create mode 100644 previews/PR259/assets/tutorials_creating_geometry.md.KKAr36jr.lean.js delete mode 100644 previews/PR259/assets/tutorials_creating_geometry.md.cmMoMkYm.lean.js rename previews/PR259/assets/{tutorials_geodesic_paths.md.Bi6AfT8k.js => tutorials_geodesic_paths.md.DVzoewbj.js} (97%) rename previews/PR259/assets/{tutorials_geodesic_paths.md.Bi6AfT8k.lean.js => tutorials_geodesic_paths.md.DVzoewbj.lean.js} (75%) rename previews/PR259/assets/{tutorials_spatial_joins.md.BhkCpzpU.js => tutorials_spatial_joins.md.C5qn5hXN.js} (99%) rename previews/PR259/assets/{tutorials_spatial_joins.md.BhkCpzpU.lean.js => tutorials_spatial_joins.md.C5qn5hXN.lean.js} (92%) rename previews/PR259/assets/{hfcyqzz.0OJvb21A.png => udwcilo.0OJvb21A.png} (100%) rename previews/PR259/assets/{twfeprn.B9NpLJr_.png => wgdatcw.B9NpLJr_.png} (100%) rename previews/PR259/assets/{cxxsirk.B94PsR1K.png => wnsinzo.B94PsR1K.png} (100%) rename previews/PR259/assets/{eszdrmb.Cx40vhB3.png => wtrbvkh.Cx40vhB3.png} (100%) create mode 100644 previews/PR259/assets/xikmlzv.D2HA1hzZ.png rename previews/PR259/assets/{vwpdddx.CG4dr3Lx.png => xnnvwmq.CG4dr3Lx.png} (100%) delete mode 100644 previews/PR259/assets/xzplnml.-VpeHhXX.png rename previews/PR259/assets/{rmhjrlj.mCtKcWOr.png => ykfdwsk.mCtKcWOr.png} (100%) create mode 100644 previews/PR259/assets/ywvqbqr.CTgutbHQ.png rename previews/PR259/assets/{fhasrqb.C4--srcf.png => zhgkkba.C4--srcf.png} (100%) diff --git a/previews/PR259/404.html b/previews/PR259/404.html index 0e2fffd25..bc67cdf6f 100644 --- a/previews/PR259/404.html +++ b/previews/PR259/404.html @@ -9,7 +9,7 @@ - + @@ -19,7 +19,7 @@
- + \ No newline at end of file diff --git a/previews/PR259/api.html b/previews/PR259/api.html index 2ad88c159..1ec2d5ff9 100644 --- a/previews/PR259/api.html +++ b/previews/PR259/api.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,16 +21,16 @@ -
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
 
@@ -49,147 +49,147 @@
 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(
+)::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 curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

julia
overlaps(
     trait_a::GI.PolygonTrait, poly_a,
     trait_b::GI.PolygonTrait, poly_b,
-)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source

julia
overlaps(
+)::Bool

If the two polygons intersect with one another, but are not equal, 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.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS Constant

The number of vertices past which we should use a STRtree for edge intersection checking.

source

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.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS Constant

The number of vertices past which we should use a STRtree for edge intersection checking.

source

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.FosterHormannClipping Type
julia
FosterHormannClipping{M <: Manifold, A <: Union{Nothing, Accelerator}} <: GeometryOpsCore.Algorithm{M}

A type that represents the Foster-Hormann clipping algorithm.

Arguments

  • manifold::M: The manifold on which the algorithm operates.

  • accelerator::A: The accelerator to use for the algorithm. Can be nothing for automatic choice, or a custom accelerator.

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.IntersectionAccelerator Type
julia
abstract type IntersectionAccelerator

The abstract supertype for all intersection accelerator types.

The idea is that these speed up the edge-edge intersection checking process, perhaps at the cost of memory.

The naive case is NestedLoop, which is just a nested loop, running in O(n*m) time.

Then we have SingleSTRtree, which is a single STRtree, running in O(n*log(m)) time.

Then we have DoubleSTRtree, which is am simultaneous double-tree traversal of two STRtrees.

Finally, we have AutoAccelerator, which is an automatic accelerator that chooses the best accelerator based on the size of the input polygons. This gets materialized in build_a_list for now.

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.TracingHitEveryPointError Type
julia
TracingHitEveryPointError{T1, T2} <: Exception

An error that is thrown when the clipping tracing algorithm hits every point in a polygon. This is a bug in the algorithm, and should be reported.

The polygons are contained in the exception object, accessible by try-catch or as err in the REPL.

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)])
@@ -199,7 +199,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]]])
@@ -208,32 +208,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.eachedge Method
julia
eachedge(geom, [::Type{T}])

Decompose a geometry into a list of edges. Currently only works for LineString and LinearRing.

Returns some iterator, which yields tuples of points. Each tuple is an edge.

It goes (p1, p2), (p2, p3), (p3, p4), ... etc.

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.eachedge Method
julia
eachedge(geom, [::Type{T}])

Decompose a geometry into a list of edges. Currently only works for LineString and LinearRing.

Returns some iterator, which yields tuples of points. Each tuple is an edge.

It goes (p1, p2), (p2, p3), (p3, p4), ... etc.

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.forcexy Method
julia
forcexy(geom)

Force the geometry to be 2D. Works on any geometry, vector of geometries, feature collection, or table!

source

GeometryOps.forcexyz Function
julia
forcexyz(geom, z = 0)

Force the geometry to be 3D. Works on any geometry, vector of geometries, feature collection, or table!

The z parameter is the default z value - if a point has no z value, it will be set to this value. If it does, then the z value will be kept.

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.forcexy Method
julia
forcexy(geom)

Force the geometry to be 2D. Works on any geometry, vector of geometries, feature collection, or table!

source

GeometryOps.forcexyz Function
julia
forcexyz(geom, z = 0)

Force the geometry to be 3D. Works on any geometry, vector of geometries, feature collection, or table!

The z parameter is the default z value - if a point has no z value, it will be set to this value. If it does, then the z value will be kept.

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)])
@@ -242,7 +242,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**
@@ -250,7 +250,7 @@
 1-element Vector{Tuple{Float64, Float64}}:  (125.58375366067548, -14.83572303404496)
 
 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/81f70fd20ba2e9992e2c192c14b6558784249217/src/methods/clipping/intersection.jl#L177-L195)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/ad7303e2994d2cf37eed678d2200c9419134cb62/src/methods/clipping/intersection.jl#L190-L208)
 
 </details>
 
@@ -267,57 +267,57 @@
 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(
+)::Bool

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

source

GeometryOps.overlaps Method
julia
overlaps(
     trait_a::GI.PolygonTrait, poly_a,
     trait_b::GI.PolygonTrait, poly_b,
-)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source

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

If the two polygons intersect with one another, but are not equal, return true. 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

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
 
 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}([(-2.275543, 53.464547),  (3)  , (-2.275543, 53.464547)])

source

GeometryOps.polygonize Method
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
+GeoInterface.Wrappers.LineString{false, false}([(-2.275543, 53.464547),  (3)  , (-2.275543, 53.464547)])

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
 
@@ -347,9 +347,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/81f70fd20ba2e9992e2c192c14b6558784249217/src/methods/barycentric.jl#L289-L305)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/ad7303e2994d2cf37eed678d2200c9419134cb62/src/methods/barycentric.jl#L289-L305)
 
 </details>
 
@@ -359,14 +359,14 @@
 
 
 ```julia
-to_edgelist(geom, [::Type{T}])

Convert a geometry into a vector of GI.Line objects with attached extents.

source

GeometryOps.to_edges Method
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_edgelist(geom, [::Type{T}])

Convert a geometry into a vector of GI.Line objects with attached extents.

source

GeometryOps.to_edges Method
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
 
 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
 
@@ -385,7 +385,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)]])
@@ -394,15 +394,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/PR259/assets/xllhyfu.Dig-DWOQ.png b/previews/PR259/assets/ajrqdho.Dig-DWOQ.png similarity index 100% rename from previews/PR259/assets/xllhyfu.Dig-DWOQ.png rename to previews/PR259/assets/ajrqdho.Dig-DWOQ.png diff --git a/previews/PR259/assets/mdypbur.Dab1-ETk.png b/previews/PR259/assets/akxuysk.Dab1-ETk.png similarity index 100% rename from previews/PR259/assets/mdypbur.Dab1-ETk.png rename to previews/PR259/assets/akxuysk.Dab1-ETk.png diff --git a/previews/PR259/assets/api.md.BjOA8ThU.js b/previews/PR259/assets/api.md.2CTl0mwp.js similarity index 80% rename from previews/PR259/assets/api.md.BjOA8ThU.js rename to previews/PR259/assets/api.md.2CTl0mwp.js index 6c6cc4bde..40070d761 100644 --- a/previews/PR259/assets/api.md.BjOA8ThU.js +++ b/previews/PR259/assets/api.md.2CTl0mwp.js @@ -1,13 +1,13 @@ -import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}from"./chunks/framework.mcBEtuSi.js";const fi=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:""},T={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},_={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:""},I={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},$={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:""},Ts={class:"jldocstring custom-block",open:""},bs={class:"jldocstring custom-block",open:""},fs={class:"jldocstring custom-block",open:""},As={class:"jldocstring custom-block",open:""},Gs={class:"jldocstring custom-block",open:""},_s={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:""},Is={class:"jldocstring custom-block",open:""},xs={class:"jldocstring custom-block",open:""},Qs={class:"jldocstring custom-block",open:""},Ss={class:"jldocstring custom-block",open:""},ws={class:"jldocstring custom-block",open:""},Ps={class:"jldocstring custom-block",open:""},Ls={class:"jldocstring custom-block",open:""},Vs={class:"jldocstring custom-block",open:""},Rs={class:"jldocstring custom-block",open:""},Ms={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"}},Ns={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"},Js={class:"jldocstring custom-block",open:""},Us={class:"jldocstring custom-block",open:""},Hs={class:"jldocstring custom-block",open:""},zs={class:"jldocstring custom-block",open:""},Ws={class:"jldocstring custom-block",open:""},Zs={class:"jldocstring custom-block",open:""},Ks={class:"jldocstring custom-block",open:""},Xs={class:"jldocstring custom-block",open:""},Ys={class:"jldocstring custom-block",open:""},$s={class:"jldocstring custom-block",open:""},si={class:"jldocstring custom-block",open:""},ii={class:"jldocstring custom-block",open:""},ai={class:"jldocstring custom-block",open:""},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:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},hi={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"},ki={class:"jldocstring custom-block",open:""},ri={class:"jldocstring custom-block",open:""},oi={class:"jldocstring custom-block",open:""},di={class:"jldocstring custom-block",open:""},gi={class:"jldocstring custom-block",open:""},yi={class:"jldocstring custom-block",open:""},Ei={class:"jldocstring custom-block",open:""};function ci(ui,s,mi,Fi,Ci,Ti){const t=k("Badge");return p(),l("div",null,[s[334]||(s[334]=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 r,c as l,o as p,az as a,j as i,a as e,G as n}from"./chunks/framework.mcBEtuSi.js";const _i=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),o={name:"api.md"},k={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:""},T={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},_={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:""},I={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},$={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:""},rs={class:"jldocstring custom-block",open:""},os={class:"jldocstring custom-block",open:""},ks={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:""},Ts={class:"jldocstring custom-block",open:""},bs={class:"jldocstring custom-block",open:""},fs={class:"jldocstring custom-block",open:""},As={class:"jldocstring custom-block",open:""},Gs={class:"jldocstring custom-block",open:""},_s={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:""},Is={class:"jldocstring custom-block",open:""},xs={class:"jldocstring custom-block",open:""},Qs={class:"jldocstring custom-block",open:""},Ss={class:"jldocstring custom-block",open:""},ws={class:"jldocstring custom-block",open:""},Ps={class:"jldocstring custom-block",open:""},Ls={class:"jldocstring custom-block",open:""},Vs={class:"jldocstring custom-block",open:""},Rs={class:"jldocstring custom-block",open:""},Ms={class:"jldocstring custom-block",open:""},qs={class:"jldocstring custom-block",open:""},Ns={class:"jldocstring custom-block",open:""},Hs={class:"jldocstring custom-block",open:""},Js={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},Us={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"},zs={class:"jldocstring custom-block",open:""},Ws={class:"jldocstring custom-block",open:""},Zs={class:"jldocstring custom-block",open:""},Ks={class:"jldocstring custom-block",open:""},Xs={class:"jldocstring custom-block",open:""},Ys={class:"jldocstring custom-block",open:""},$s={class:"jldocstring custom-block",open:""},si={class:"jldocstring custom-block",open:""},ii={class:"jldocstring custom-block",open:""},ai={class:"jldocstring custom-block",open:""},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:""},ri={class:"jldocstring custom-block",open:""},oi={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ki={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"},di={class:"jldocstring custom-block",open:""},gi={class:"jldocstring custom-block",open:""},yi={class:"jldocstring custom-block",open:""},Ei={class:"jldocstring custom-block",open:""},ci={class:"jldocstring custom-block",open:""},ui={class:"jldocstring custom-block",open:""},mi={class:"jldocstring custom-block",open:""};function Fi(Ci,s,Ti,bi,fi,Ai){const t=r("Badge");return p(),l("div",null,[s[343]||(s[343]=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",k,[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,147 +26,147 @@ import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}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[335]||(s[335]=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[336]||(s[336]=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[344]||(s[344]=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[345]||(s[345]=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",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
 
 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",T,[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",T,[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(
+)::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 curves overlap, meaning that at least one edge of each curve overlaps, return true. Else false.

source

julia
overlaps(
     trait_a::GI.PolygonTrait, poly_a,
     trait_b::GI.PolygonTrait, poly_b,
-)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source

julia
overlaps(
+)::Bool

If the two polygons intersect with one another, but are not equal, 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

`,29))]),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

`,29))]),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
 
 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",f,[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",f,[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[337]||(s[337]=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",A,[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[346]||(s[346]=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",A,[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",G,[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",_,[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",v,[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",j,[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",G,[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",_,[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",v,[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",j,[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",B,[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",B,[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",O,[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",O,[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",D,[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[338]||(s[338]=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",I,[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",x,[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",Q,[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[339]||(s[339]=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",S,[i("summary",null,[s[72]||(s[72]=i("a",{id:"GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS",href:"#GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS")],-1)),s[73]||(s[73]=e()),n(t,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[74]||(s[74]=i("p",null,"The number of vertices past which we should use a STRtree for edge intersection checking.",-1)),s[75]||(s[75]=i("p",null,[i("a",{href:"https://github.com/JuliaGeo/GeometryOps.jl/blob/81f70fd20ba2e9992e2c192c14b6558784249217/src/methods/clipping/clipping_processor.jl#L80",target:"_blank",rel:"noreferrer"},"source")],-1))]),i("details",w,[i("summary",null,[s[76]||(s[76]=i("a",{id:"GeometryOps.AbstractBarycentricCoordinateMethod",href:"#GeometryOps.AbstractBarycentricCoordinateMethod"},[i("span",{class:"jlbinding"},"GeometryOps.AbstractBarycentricCoordinateMethod")],-1)),s[77]||(s[77]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[78]||(s[78]=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",P,[i("summary",null,[s[79]||(s[79]=i("a",{id:"GeometryOps.ClosedRing",href:"#GeometryOps.ClosedRing"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[80]||(s[80]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[81]||(s[81]=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",L,[i("summary",null,[s[82]||(s[82]=i("a",{id:"GeometryOps.DiffIntersectingPolygons",href:"#GeometryOps.DiffIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[83]||(s[83]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[84]||(s[84]=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",V,[i("summary",null,[s[85]||(s[85]=i("a",{id:"GeometryOps.DouglasPeucker",href:"#GeometryOps.DouglasPeucker"},[i("span",{class:"jlbinding"},"GeometryOps.DouglasPeucker")],-1)),s[86]||(s[86]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[87]||(s[87]=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",D,[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[347]||(s[347]=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",I,[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",x,[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",Q,[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[348]||(s[348]=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",S,[i("summary",null,[s[72]||(s[72]=i("a",{id:"GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS",href:"#GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS")],-1)),s[73]||(s[73]=e()),n(t,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[74]||(s[74]=i("p",null,"The number of vertices past which we should use a STRtree for edge intersection checking.",-1)),s[75]||(s[75]=i("p",null,[i("a",{href:"https://github.com/JuliaGeo/GeometryOps.jl/blob/ad7303e2994d2cf37eed678d2200c9419134cb62/src/methods/clipping/clipping_processor.jl#L165",target:"_blank",rel:"noreferrer"},"source")],-1))]),i("details",w,[i("summary",null,[s[76]||(s[76]=i("a",{id:"GeometryOps.AbstractBarycentricCoordinateMethod",href:"#GeometryOps.AbstractBarycentricCoordinateMethod"},[i("span",{class:"jlbinding"},"GeometryOps.AbstractBarycentricCoordinateMethod")],-1)),s[77]||(s[77]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[78]||(s[78]=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",P,[i("summary",null,[s[79]||(s[79]=i("a",{id:"GeometryOps.ClosedRing",href:"#GeometryOps.ClosedRing"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[80]||(s[80]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[81]||(s[81]=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",L,[i("summary",null,[s[82]||(s[82]=i("a",{id:"GeometryOps.DiffIntersectingPolygons",href:"#GeometryOps.DiffIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[83]||(s[83]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[84]||(s[84]=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",V,[i("summary",null,[s[85]||(s[85]=i("a",{id:"GeometryOps.DouglasPeucker",href:"#GeometryOps.DouglasPeucker"},[i("span",{class:"jlbinding"},"GeometryOps.DouglasPeucker")],-1)),s[86]||(s[86]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[87]||(s[87]=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[88]||(s[88]=i("a",{id:"GeometryOps.GEOS",href:"#GeometryOps.GEOS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOS")],-1)),s[89]||(s[89]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[90]||(s[90]=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",M,[i("summary",null,[s[91]||(s[91]=i("a",{id:"GeometryOps.GeodesicSegments",href:"#GeometryOps.GeodesicSegments"},[i("span",{class:"jlbinding"},"GeometryOps.GeodesicSegments")],-1)),s[92]||(s[92]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[93]||(s[93]=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",q,[i("summary",null,[s[94]||(s[94]=i("a",{id:"GeometryOps.GeometryCorrection",href:"#GeometryOps.GeometryCorrection"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[95]||(s[95]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[96]||(s[96]=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",N,[i("summary",null,[s[97]||(s[97]=i("a",{id:"GeometryOps.LineOrientation",href:"#GeometryOps.LineOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.LineOrientation")],-1)),s[98]||(s[98]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[99]||(s[99]=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",J,[i("summary",null,[s[100]||(s[100]=i("a",{id:"GeometryOps.LinearSegments",href:"#GeometryOps.LinearSegments"},[i("span",{class:"jlbinding"},"GeometryOps.LinearSegments")],-1)),s[101]||(s[101]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[102]||(s[102]=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[103]||(s[103]=i("a",{id:"GeometryOps.MeanValue",href:"#GeometryOps.MeanValue"},[i("span",{class:"jlbinding"},"GeometryOps.MeanValue")],-1)),s[104]||(s[104]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[105]||(s[105]=a('
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source

',4))]),i("details",H,[i("summary",null,[s[106]||(s[106]=i("a",{id:"GeometryOps.MonotoneChainMethod",href:"#GeometryOps.MonotoneChainMethod"},[i("span",{class:"jlbinding"},"GeometryOps.MonotoneChainMethod")],-1)),s[107]||(s[107]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[108]||(s[108]=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[109]||(s[109]=i("a",{id:"GeometryOps.PointOrientation",href:"#GeometryOps.PointOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.PointOrientation")],-1)),s[110]||(s[110]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[111]||(s[111]=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[112]||(s[112]=i("a",{id:"GeometryOps.RadialDistance",href:"#GeometryOps.RadialDistance"},[i("span",{class:"jlbinding"},"GeometryOps.RadialDistance")],-1)),s[113]||(s[113]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[114]||(s[114]=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[115]||(s[115]=i("a",{id:"GeometryOps.SimplifyAlg",href:"#GeometryOps.SimplifyAlg"},[i("span",{class:"jlbinding"},"GeometryOps.SimplifyAlg")],-1)),s[116]||(s[116]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[117]||(s[117]=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",K,[i("summary",null,[s[118]||(s[118]=i("a",{id:"GeometryOps.UnionIntersectingPolygons",href:"#GeometryOps.UnionIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[119]||(s[119]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[120]||(s[120]=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",X,[i("summary",null,[s[121]||(s[121]=i("a",{id:"GeometryOps.VisvalingamWhyatt",href:"#GeometryOps.VisvalingamWhyatt"},[i("span",{class:"jlbinding"},"GeometryOps.VisvalingamWhyatt")],-1)),s[122]||(s[122]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[123]||(s[123]=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[88]||(s[88]=i("a",{id:"GeometryOps.FosterHormannClipping",href:"#GeometryOps.FosterHormannClipping"},[i("span",{class:"jlbinding"},"GeometryOps.FosterHormannClipping")],-1)),s[89]||(s[89]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[90]||(s[90]=a('
julia
FosterHormannClipping{M <: Manifold, A <: Union{Nothing, Accelerator}} <: GeometryOpsCore.Algorithm{M}

A type that represents the Foster-Hormann clipping algorithm.

Arguments

  • manifold::M: The manifold on which the algorithm operates.

  • accelerator::A: The accelerator to use for the algorithm. Can be nothing for automatic choice, or a custom accelerator.

source

',5))]),i("details",M,[i("summary",null,[s[91]||(s[91]=i("a",{id:"GeometryOps.GEOS",href:"#GeometryOps.GEOS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOS")],-1)),s[92]||(s[92]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[93]||(s[93]=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",q,[i("summary",null,[s[94]||(s[94]=i("a",{id:"GeometryOps.GeodesicSegments",href:"#GeometryOps.GeodesicSegments"},[i("span",{class:"jlbinding"},"GeometryOps.GeodesicSegments")],-1)),s[95]||(s[95]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[96]||(s[96]=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",N,[i("summary",null,[s[97]||(s[97]=i("a",{id:"GeometryOps.GeometryCorrection",href:"#GeometryOps.GeometryCorrection"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[98]||(s[98]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[99]||(s[99]=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",H,[i("summary",null,[s[100]||(s[100]=i("a",{id:"GeometryOps.IntersectionAccelerator",href:"#GeometryOps.IntersectionAccelerator"},[i("span",{class:"jlbinding"},"GeometryOps.IntersectionAccelerator")],-1)),s[101]||(s[101]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[102]||(s[102]=a('
julia
abstract type IntersectionAccelerator

The abstract supertype for all intersection accelerator types.

The idea is that these speed up the edge-edge intersection checking process, perhaps at the cost of memory.

The naive case is NestedLoop, which is just a nested loop, running in O(n*m) time.

Then we have SingleSTRtree, which is a single STRtree, running in O(n*log(m)) time.

Then we have DoubleSTRtree, which is am simultaneous double-tree traversal of two STRtrees.

Finally, we have AutoAccelerator, which is an automatic accelerator that chooses the best accelerator based on the size of the input polygons. This gets materialized in build_a_list for now.

source

',8))]),i("details",J,[i("summary",null,[s[103]||(s[103]=i("a",{id:"GeometryOps.LineOrientation",href:"#GeometryOps.LineOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.LineOrientation")],-1)),s[104]||(s[104]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[105]||(s[105]=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[106]||(s[106]=i("a",{id:"GeometryOps.LinearSegments",href:"#GeometryOps.LinearSegments"},[i("span",{class:"jlbinding"},"GeometryOps.LinearSegments")],-1)),s[107]||(s[107]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[108]||(s[108]=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",z,[i("summary",null,[s[109]||(s[109]=i("a",{id:"GeometryOps.MeanValue",href:"#GeometryOps.MeanValue"},[i("span",{class:"jlbinding"},"GeometryOps.MeanValue")],-1)),s[110]||(s[110]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[111]||(s[111]=a('
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source

',4))]),i("details",W,[i("summary",null,[s[112]||(s[112]=i("a",{id:"GeometryOps.MonotoneChainMethod",href:"#GeometryOps.MonotoneChainMethod"},[i("span",{class:"jlbinding"},"GeometryOps.MonotoneChainMethod")],-1)),s[113]||(s[113]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[114]||(s[114]=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[115]||(s[115]=i("a",{id:"GeometryOps.PointOrientation",href:"#GeometryOps.PointOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.PointOrientation")],-1)),s[116]||(s[116]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[117]||(s[117]=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",K,[i("summary",null,[s[118]||(s[118]=i("a",{id:"GeometryOps.RadialDistance",href:"#GeometryOps.RadialDistance"},[i("span",{class:"jlbinding"},"GeometryOps.RadialDistance")],-1)),s[119]||(s[119]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[120]||(s[120]=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",X,[i("summary",null,[s[121]||(s[121]=i("a",{id:"GeometryOps.SimplifyAlg",href:"#GeometryOps.SimplifyAlg"},[i("span",{class:"jlbinding"},"GeometryOps.SimplifyAlg")],-1)),s[122]||(s[122]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[123]||(s[123]=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",Y,[i("summary",null,[s[124]||(s[124]=i("a",{id:"GeometryOps.TracingHitEveryPointError",href:"#GeometryOps.TracingHitEveryPointError"},[i("span",{class:"jlbinding"},"GeometryOps.TracingHitEveryPointError")],-1)),s[125]||(s[125]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[126]||(s[126]=a('
julia
TracingHitEveryPointError{T1, T2} <: Exception

An error that is thrown when the clipping tracing algorithm hits every point in a polygon. This is a bug in the algorithm, and should be reported.

The polygons are contained in the exception object, accessible by try-catch or as err in the REPL.

source

',4))]),i("details",$,[i("summary",null,[s[127]||(s[127]=i("a",{id:"GeometryOps.UnionIntersectingPolygons",href:"#GeometryOps.UnionIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[128]||(s[128]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[129]||(s[129]=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",ss,[i("summary",null,[s[130]||(s[130]=i("a",{id:"GeometryOps.VisvalingamWhyatt",href:"#GeometryOps.VisvalingamWhyatt"},[i("span",{class:"jlbinding"},"GeometryOps.VisvalingamWhyatt")],-1)),s[131]||(s[131]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[132]||(s[132]=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",Y,[i("summary",null,[s[124]||(s[124]=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[125]||(s[125]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[126]||(s[126]=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[127]||(s[127]=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[128]||(s[128]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[129]||(s[129]=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",ss,[i("summary",null,[s[130]||(s[130]=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[131]||(s[131]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[132]||(s[132]=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",is,[i("summary",null,[s[133]||(s[133]=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[134]||(s[134]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[135]||(s[135]=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",as,[i("summary",null,[s[136]||(s[136]=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[137]||(s[137]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[138]||(s[138]=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",es,[i("summary",null,[s[139]||(s[139]=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[140]||(s[140]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[141]||(s[141]=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",is,[i("summary",null,[s[133]||(s[133]=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[134]||(s[134]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[135]||(s[135]=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",ts,[i("summary",null,[s[142]||(s[142]=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[143]||(s[143]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[144]||(s[144]=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",as,[i("summary",null,[s[136]||(s[136]=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[137]||(s[137]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[138]||(s[138]=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",es,[i("summary",null,[s[139]||(s[139]=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[140]||(s[140]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[141]||(s[141]=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",ts,[i("summary",null,[s[142]||(s[142]=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[143]||(s[143]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[144]||(s[144]=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",ns,[i("summary",null,[s[145]||(s[145]=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[146]||(s[146]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[147]||(s[147]=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",ls,[i("summary",null,[s[148]||(s[148]=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[149]||(s[149]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[150]||(s[150]=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",ps,[i("summary",null,[s[151]||(s[151]=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[152]||(s[152]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[153]||(s[153]=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",hs,[i("summary",null,[s[154]||(s[154]=i("a",{id:"GeometryOps.contains-Tuple{Any, Any}",href:"#GeometryOps.contains-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[155]||(s[155]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=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",ns,[i("summary",null,[s[145]||(s[145]=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[146]||(s[146]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[147]||(s[147]=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",ls,[i("summary",null,[s[148]||(s[148]=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[149]||(s[149]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[150]||(s[150]=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",ps,[i("summary",null,[s[151]||(s[151]=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[152]||(s[152]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[153]||(s[153]=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",hs,[i("summary",null,[s[154]||(s[154]=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[155]||(s[155]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=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",rs,[i("summary",null,[s[157]||(s[157]=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[158]||(s[158]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[159]||(s[159]=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",os,[i("summary",null,[s[160]||(s[160]=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[161]||(s[161]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[162]||(s[162]=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",ks,[i("summary",null,[s[163]||(s[163]=i("a",{id:"GeometryOps.contains-Tuple{Any, Any}",href:"#GeometryOps.contains-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[164]||(s[164]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[165]||(s[165]=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",ks,[i("summary",null,[s[157]||(s[157]=i("a",{id:"GeometryOps.convex_hull",href:"#GeometryOps.convex_hull"},[i("span",{class:"jlbinding"},"GeometryOps.convex_hull")],-1)),s[158]||(s[158]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[159]||(s[159]=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",rs,[i("summary",null,[s[160]||(s[160]=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[161]||(s[161]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[162]||(s[162]=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",os,[i("summary",null,[s[163]||(s[163]=i("a",{id:"GeometryOps.coveredby-Tuple{Any, Any}",href:"#GeometryOps.coveredby-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[164]||(s[164]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[165]||(s[165]=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",ds,[i("summary",null,[s[166]||(s[166]=i("a",{id:"GeometryOps.convex_hull",href:"#GeometryOps.convex_hull"},[i("span",{class:"jlbinding"},"GeometryOps.convex_hull")],-1)),s[167]||(s[167]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[168]||(s[168]=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",gs,[i("summary",null,[s[169]||(s[169]=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[170]||(s[170]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[171]||(s[171]=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",ys,[i("summary",null,[s[172]||(s[172]=i("a",{id:"GeometryOps.coveredby-Tuple{Any, Any}",href:"#GeometryOps.coveredby-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[173]||(s[173]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[174]||(s[174]=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",ds,[i("summary",null,[s[166]||(s[166]=i("a",{id:"GeometryOps.covers-Tuple{Any, Any}",href:"#GeometryOps.covers-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[167]||(s[167]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[168]||(s[168]=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",Es,[i("summary",null,[s[175]||(s[175]=i("a",{id:"GeometryOps.covers-Tuple{Any, Any}",href:"#GeometryOps.covers-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[176]||(s[176]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[177]||(s[177]=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",gs,[i("summary",null,[s[169]||(s[169]=i("a",{id:"GeometryOps.crosses-Tuple{Any, Any}",href:"#GeometryOps.crosses-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[170]||(s[170]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[171]||(s[171]=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",ys,[i("summary",null,[s[172]||(s[172]=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[173]||(s[173]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[174]||(s[174]=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",cs,[i("summary",null,[s[178]||(s[178]=i("a",{id:"GeometryOps.crosses-Tuple{Any, Any}",href:"#GeometryOps.crosses-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[179]||(s[179]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[180]||(s[180]=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",us,[i("summary",null,[s[181]||(s[181]=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[182]||(s[182]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[183]||(s[183]=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)])
@@ -176,7 +176,7 @@ import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}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",Es,[i("summary",null,[s[175]||(s[175]=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[176]||(s[176]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[177]||(s[177]=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",ms,[i("summary",null,[s[184]||(s[184]=i("a",{id:"GeometryOps.difference-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.difference-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.difference")],-1)),s[185]||(s[185]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[186]||(s[186]=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]]])
@@ -185,32 +185,32 @@ import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}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",cs,[i("summary",null,[s[178]||(s[178]=i("a",{id:"GeometryOps.disjoint-Tuple{Any, Any}",href:"#GeometryOps.disjoint-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[179]||(s[179]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[180]||(s[180]=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",Fs,[i("summary",null,[s[187]||(s[187]=i("a",{id:"GeometryOps.disjoint-Tuple{Any, Any}",href:"#GeometryOps.disjoint-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[188]||(s[188]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[189]||(s[189]=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",us,[i("summary",null,[s[181]||(s[181]=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[182]||(s[182]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[183]||(s[183]=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",ms,[i("summary",null,[s[184]||(s[184]=i("a",{id:"GeometryOps.eachedge-Tuple{Any}",href:"#GeometryOps.eachedge-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.eachedge")],-1)),s[185]||(s[185]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[186]||(s[186]=a('
julia
eachedge(geom, [::Type{T}])

Decompose a geometry into a list of edges. Currently only works for LineString and LinearRing.

Returns some iterator, which yields tuples of points. Each tuple is an edge.

It goes (p1, p2), (p2, p3), (p3, p4), ... etc.

source

',5))]),i("details",Fs,[i("summary",null,[s[187]||(s[187]=i("a",{id:"GeometryOps.embed_extent-Tuple{Any}",href:"#GeometryOps.embed_extent-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[188]||(s[188]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[189]||(s[189]=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",Cs,[i("summary",null,[s[190]||(s[190]=i("a",{id:"GeometryOps.enforce-Tuple{GEOS, Symbol, Any}",href:"#GeometryOps.enforce-Tuple{GEOS, Symbol, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.enforce")],-1)),s[191]||(s[191]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[192]||(s[192]=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",Ts,[i("summary",null,[s[193]||(s[193]=i("a",{id:"GeometryOps.equals-NTuple{4, Any}",href:"#GeometryOps.equals-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[194]||(s[194]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[195]||(s[195]=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[196]||(s[196]=i("a",{id:"GeometryOps.equals-Tuple{Any, Any}",href:"#GeometryOps.equals-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[197]||(s[197]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[198]||(s[198]=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[190]||(s[190]=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[191]||(s[191]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[192]||(s[192]=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",Ts,[i("summary",null,[s[193]||(s[193]=i("a",{id:"GeometryOps.eachedge-Tuple{Any}",href:"#GeometryOps.eachedge-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.eachedge")],-1)),s[194]||(s[194]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[195]||(s[195]=a('
julia
eachedge(geom, [::Type{T}])

Decompose a geometry into a list of edges. Currently only works for LineString and LinearRing.

Returns some iterator, which yields tuples of points. Each tuple is an edge.

It goes (p1, p2), (p2, p3), (p3, p4), ... etc.

source

',5))]),i("details",bs,[i("summary",null,[s[196]||(s[196]=i("a",{id:"GeometryOps.embed_extent-Tuple{Any}",href:"#GeometryOps.embed_extent-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[197]||(s[197]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[198]||(s[198]=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",fs,[i("summary",null,[s[199]||(s[199]=i("a",{id:"GeometryOps.enforce-Tuple{GEOS, Symbol, Any}",href:"#GeometryOps.enforce-Tuple{GEOS, Symbol, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.enforce")],-1)),s[200]||(s[200]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[201]||(s[201]=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",As,[i("summary",null,[s[202]||(s[202]=i("a",{id:"GeometryOps.equals-NTuple{4, Any}",href:"#GeometryOps.equals-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[203]||(s[203]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[204]||(s[204]=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",Gs,[i("summary",null,[s[205]||(s[205]=i("a",{id:"GeometryOps.equals-Tuple{Any, Any}",href:"#GeometryOps.equals-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[206]||(s[206]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[207]||(s[207]=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[199]||(s[199]=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[200]||(s[200]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[201]||(s[201]=a(`
julia
equals(
+true

source

`,5))]),i("details",_s,[i("summary",null,[s[208]||(s[208]=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[209]||(s[209]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[210]||(s[210]=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",As,[i("summary",null,[s[202]||(s[202]=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[203]||(s[203]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[204]||(s[204]=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",vs,[i("summary",null,[s[211]||(s[211]=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[212]||(s[212]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[213]||(s[213]=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",Gs,[i("summary",null,[s[205]||(s[205]=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[206]||(s[206]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[207]||(s[207]=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",_s,[i("summary",null,[s[208]||(s[208]=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[209]||(s[209]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[210]||(s[210]=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",vs,[i("summary",null,[s[211]||(s[211]=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[212]||(s[212]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[213]||(s[213]=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",js,[i("summary",null,[s[214]||(s[214]=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[215]||(s[215]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[216]||(s[216]=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",Bs,[i("summary",null,[s[217]||(s[217]=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[218]||(s[218]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[219]||(s[219]=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",Os,[i("summary",null,[s[220]||(s[220]=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[221]||(s[221]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[222]||(s[222]=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",Ds,[i("summary",null,[s[223]||(s[223]=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[224]||(s[224]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[225]||(s[225]=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",Is,[i("summary",null,[s[226]||(s[226]=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[227]||(s[227]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[228]||(s[228]=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",xs,[i("summary",null,[s[229]||(s[229]=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[230]||(s[230]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[231]||(s[231]=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",js,[i("summary",null,[s[214]||(s[214]=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[215]||(s[215]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[216]||(s[216]=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",Bs,[i("summary",null,[s[217]||(s[217]=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[218]||(s[218]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[219]||(s[219]=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",Os,[i("summary",null,[s[220]||(s[220]=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[221]||(s[221]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[222]||(s[222]=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",Ds,[i("summary",null,[s[223]||(s[223]=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[224]||(s[224]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[225]||(s[225]=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",Is,[i("summary",null,[s[226]||(s[226]=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[227]||(s[227]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[228]||(s[228]=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",xs,[i("summary",null,[s[229]||(s[229]=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[230]||(s[230]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[231]||(s[231]=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",Qs,[i("summary",null,[s[232]||(s[232]=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[233]||(s[233]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[234]||(s[234]=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",Ss,[i("summary",null,[s[235]||(s[235]=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[236]||(s[236]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[237]||(s[237]=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",ws,[i("summary",null,[s[238]||(s[238]=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[239]||(s[239]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[240]||(s[240]=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",Qs,[i("summary",null,[s[232]||(s[232]=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[233]||(s[233]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[234]||(s[234]=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",Ps,[i("summary",null,[s[241]||(s[241]=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[242]||(s[242]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[243]||(s[243]=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",Ss,[i("summary",null,[s[235]||(s[235]=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[236]||(s[236]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[237]||(s[237]=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",ws,[i("summary",null,[s[238]||(s[238]=i("a",{id:"GeometryOps.flip-Tuple{Any}",href:"#GeometryOps.flip-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.flip")],-1)),s[239]||(s[239]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[240]||(s[240]=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",Ps,[i("summary",null,[s[241]||(s[241]=i("a",{id:"GeometryOps.forcexy-Tuple{Any}",href:"#GeometryOps.forcexy-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.forcexy")],-1)),s[242]||(s[242]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[243]||(s[243]=a('
julia
forcexy(geom)

Force the geometry to be 2D. Works on any geometry, vector of geometries, feature collection, or table!

source

',3))]),i("details",Ls,[i("summary",null,[s[244]||(s[244]=i("a",{id:"GeometryOps.forcexyz",href:"#GeometryOps.forcexyz"},[i("span",{class:"jlbinding"},"GeometryOps.forcexyz")],-1)),s[245]||(s[245]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[246]||(s[246]=a('
julia
forcexyz(geom, z = 0)

Force the geometry to be 3D. Works on any geometry, vector of geometries, feature collection, or table!

The z parameter is the default z value - if a point has no z value, it will be set to this value. If it does, then the z value will be kept.

source

',4))]),i("details",Vs,[i("summary",null,[s[247]||(s[247]=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[248]||(s[248]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[249]||(s[249]=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",Ls,[i("summary",null,[s[244]||(s[244]=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[245]||(s[245]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[246]||(s[246]=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",Vs,[i("summary",null,[s[247]||(s[247]=i("a",{id:"GeometryOps.flip-Tuple{Any}",href:"#GeometryOps.flip-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.flip")],-1)),s[248]||(s[248]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[249]||(s[249]=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",Rs,[i("summary",null,[s[250]||(s[250]=i("a",{id:"GeometryOps.forcexy-Tuple{Any}",href:"#GeometryOps.forcexy-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.forcexy")],-1)),s[251]||(s[251]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[252]||(s[252]=a('
julia
forcexy(geom)

Force the geometry to be 2D. Works on any geometry, vector of geometries, feature collection, or table!

source

',3))]),i("details",Ms,[i("summary",null,[s[253]||(s[253]=i("a",{id:"GeometryOps.forcexyz",href:"#GeometryOps.forcexyz"},[i("span",{class:"jlbinding"},"GeometryOps.forcexyz")],-1)),s[254]||(s[254]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[255]||(s[255]=a('
julia
forcexyz(geom, z = 0)

Force the geometry to be 3D. Works on any geometry, vector of geometries, feature collection, or table!

The z parameter is the default z value - if a point has no z value, it will be set to this value. If it does, then the z value will be kept.

source

',4))]),i("details",qs,[i("summary",null,[s[256]||(s[256]=i("a",{id:"GeometryOps.intersection-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.intersection-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.intersection")],-1)),s[257]||(s[257]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[258]||(s[258]=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)])
@@ -219,7 +219,7 @@ import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}from"./chunks/fr
 
 # output
 1-element Vector{Vector{Float64}}:
- [125.58375366067548, -14.83572303404496]

source

`,5))]),i("details",Rs,[i("summary",null,[s[250]||(s[250]=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[251]||(s[251]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[252]||(s[252]=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",Ns,[i("summary",null,[s[259]||(s[259]=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[260]||(s[260]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[261]||(s[261]=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**
@@ -227,7 +227,7 @@ import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}from"./chunks/fr
 1-element Vector{Tuple{Float64, Float64}}:  (125.58375366067548, -14.83572303404496)
 
 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/81f70fd20ba2e9992e2c192c14b6558784249217/src/methods/clipping/intersection.jl#L177-L195)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/ad7303e2994d2cf37eed678d2200c9419134cb62/src/methods/clipping/intersection.jl#L190-L208)
 
 </details>
 
@@ -244,57 +244,57 @@ import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}from"./chunks/fr
 GO.intersects(line1, line2)
 
 # output
-true

source

`,9))]),i("details",Ms,[i("summary",null,[s[253]||(s[253]=i("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isclockwise")],-1)),s[254]||(s[254]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[257]||(s[257]=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",Ns,s[255]||(s[255]=[a('',1)]))),s[256]||(s[256]=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[258]||(s[258]=a(`

Example

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

source

`,9))]),i("details",Hs,[i("summary",null,[s[262]||(s[262]=i("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isclockwise")],-1)),s[263]||(s[263]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[266]||(s[266]=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",Js,[(p(),l("svg",Us,s[264]||(s[264]=[a('',1)]))),s[265]||(s[265]=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[267]||(s[267]=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",Js,[i("summary",null,[s[259]||(s[259]=i("a",{id:"GeometryOps.isconcave-Tuple{Any}",href:"#GeometryOps.isconcave-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isconcave")],-1)),s[260]||(s[260]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[261]||(s[261]=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",zs,[i("summary",null,[s[268]||(s[268]=i("a",{id:"GeometryOps.isconcave-Tuple{Any}",href:"#GeometryOps.isconcave-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isconcave")],-1)),s[269]||(s[269]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[270]||(s[270]=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",Us,[i("summary",null,[s[262]||(s[262]=i("a",{id:"GeometryOps.overlaps-Tuple{Any, Any}",href:"#GeometryOps.overlaps-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[263]||(s[263]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[264]||(s[264]=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",Ws,[i("summary",null,[s[271]||(s[271]=i("a",{id:"GeometryOps.overlaps-Tuple{Any, Any}",href:"#GeometryOps.overlaps-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[272]||(s[272]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[273]||(s[273]=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",Hs,[i("summary",null,[s[265]||(s[265]=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[266]||(s[266]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[267]||(s[267]=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",zs,[i("summary",null,[s[268]||(s[268]=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[269]||(s[269]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[270]||(s[270]=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",Ws,[i("summary",null,[s[271]||(s[271]=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[272]||(s[272]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[273]||(s[273]=a(`
julia
overlaps(
+true

source

`,5))]),i("details",Zs,[i("summary",null,[s[274]||(s[274]=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[275]||(s[275]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[276]||(s[276]=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",Ks,[i("summary",null,[s[277]||(s[277]=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[278]||(s[278]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[279]||(s[279]=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",Xs,[i("summary",null,[s[280]||(s[280]=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[281]||(s[281]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[282]||(s[282]=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",Zs,[i("summary",null,[s[274]||(s[274]=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[275]||(s[275]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[276]||(s[276]=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",Ys,[i("summary",null,[s[283]||(s[283]=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[284]||(s[284]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[285]||(s[285]=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",Ks,[i("summary",null,[s[277]||(s[277]=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[278]||(s[278]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[279]||(s[279]=a(`
julia
overlaps(
+)::Bool

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

source

`,3))]),i("details",$s,[i("summary",null,[s[286]||(s[286]=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[287]||(s[287]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[288]||(s[288]=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",Xs,[i("summary",null,[s[280]||(s[280]=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[281]||(s[281]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[282]||(s[282]=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",si,[i("summary",null,[s[289]||(s[289]=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[290]||(s[290]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[291]||(s[291]=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",Ys,[i("summary",null,[s[283]||(s[283]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[284]||(s[284]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[285]||(s[285]=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",ii,[i("summary",null,[s[292]||(s[292]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[293]||(s[293]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[294]||(s[294]=a(`
julia
overlaps(
     trait_a::GI.PolygonTrait, poly_a,
     trait_b::GI.PolygonTrait, poly_b,
-)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source

`,3))]),i("details",$s,[i("summary",null,[s[286]||(s[286]=i("a",{id:"GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any}",href:"#GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[287]||(s[287]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[288]||(s[288]=a(`
julia
overlaps(
+)::Bool

If the two polygons intersect with one another, but are not equal, return true. Else false.

source

`,3))]),i("details",ai,[i("summary",null,[s[295]||(s[295]=i("a",{id:"GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any}",href:"#GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[296]||(s[296]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[297]||(s[297]=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",si,[i("summary",null,[s[289]||(s[289]=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[290]||(s[290]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[291]||(s[291]=a(`
julia
polygon_to_line(poly::Polygon)

Converts a Polygon to LineString or MultiLineString

Examples

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

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

source

`,3))]),i("details",ei,[i("summary",null,[s[298]||(s[298]=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[299]||(s[299]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[300]||(s[300]=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}([(-2.275543, 53.464547),  (3)  , (-2.275543, 53.464547)])

source

`,5))]),i("details",ii,[i("summary",null,[s[292]||(s[292]=i("a",{id:"GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}",href:"#GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}"},[i("span",{class:"jlbinding"},"GeometryOps.polygonize")],-1)),s[293]||(s[293]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[294]||(s[294]=a(`
julia
polygonize(A::AbstractMatrix{Bool}; kw...)
+GeoInterface.Wrappers.LineString{false, false}([(-2.275543, 53.464547),  (3)  , (-2.275543, 53.464547)])

source

`,5))]),i("details",ti,[i("summary",null,[s[301]||(s[301]=i("a",{id:"GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}",href:"#GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}"},[i("span",{class:"jlbinding"},"GeometryOps.polygonize")],-1)),s[302]||(s[302]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[303]||(s[303]=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",ai,[i("summary",null,[s[295]||(s[295]=i("a",{id:"GeometryOps.segmentize-Tuple{Any}",href:"#GeometryOps.segmentize-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.segmentize")],-1)),s[296]||(s[296]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[297]||(s[297]=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",ei,[i("summary",null,[s[298]||(s[298]=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[299]||(s[299]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[300]||(s[300]=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",ni,[i("summary",null,[s[304]||(s[304]=i("a",{id:"GeometryOps.segmentize-Tuple{Any}",href:"#GeometryOps.segmentize-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.segmentize")],-1)),s[305]||(s[305]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[306]||(s[306]=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",li,[i("summary",null,[s[307]||(s[307]=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[308]||(s[308]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[309]||(s[309]=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",ti,[i("summary",null,[s[301]||(s[301]=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[302]||(s[302]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[303]||(s[303]=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",ni,[i("summary",null,[s[304]||(s[304]=i("a",{id:"GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}",href:"#GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.simplify")],-1)),s[305]||(s[305]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[306]||(s[306]=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",pi,[i("summary",null,[s[310]||(s[310]=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[311]||(s[311]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[312]||(s[312]=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",hi,[i("summary",null,[s[313]||(s[313]=i("a",{id:"GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}",href:"#GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.simplify")],-1)),s[314]||(s[314]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[315]||(s[315]=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
 
@@ -324,9 +324,9 @@ import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}from"./chunks/fr
 GI.npoint(simple)
 
 # output
-6

source

`,14))]),i("details",li,[i("summary",null,[s[307]||(s[307]=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[308]||(s[308]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[311]||(s[311]=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",pi,[(p(),l("svg",hi,s[309]||(s[309]=[a('',1)]))),s[310]||(s[310]=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[312]||(s[312]=a(`

+6

source

`,14))]),i("details",ri,[i("summary",null,[s[316]||(s[316]=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[317]||(s[317]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[320]||(s[320]=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",oi,[(p(),l("svg",ki,s[318]||(s[318]=[a('',1)]))),s[319]||(s[319]=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[321]||(s[321]=a(`

 
-[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/81f70fd20ba2e9992e2c192c14b6558784249217/src/methods/barycentric.jl#L289-L305)
+[source](https://github.com/JuliaGeo/GeometryOps.jl/blob/ad7303e2994d2cf37eed678d2200c9419134cb62/src/methods/barycentric.jl#L289-L305)
 
 </details>
 
@@ -336,14 +336,14 @@ import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}from"./chunks/fr
 
 
 \`\`\`julia
-to_edgelist(geom, [::Type{T}])

Convert a geometry into a vector of GI.Line objects with attached extents.

source

`,3))]),i("details",ki,[i("summary",null,[s[313]||(s[313]=i("a",{id:"GeometryOps.to_edges-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.to_edges-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.to_edges")],-1)),s[314]||(s[314]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[315]||(s[315]=a('
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",ri,[i("summary",null,[s[316]||(s[316]=i("a",{id:"GeometryOps.touches-Tuple{Any, Any}",href:"#GeometryOps.touches-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[317]||(s[317]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[318]||(s[318]=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_edgelist(geom, [::Type{T}])

Convert a geometry into a vector of GI.Line objects with attached extents.

source

`,3))]),i("details",di,[i("summary",null,[s[322]||(s[322]=i("a",{id:"GeometryOps.to_edges-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.to_edges-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.to_edges")],-1)),s[323]||(s[323]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[324]||(s[324]=a('
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",gi,[i("summary",null,[s[325]||(s[325]=i("a",{id:"GeometryOps.touches-Tuple{Any, Any}",href:"#GeometryOps.touches-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[326]||(s[326]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[327]||(s[327]=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",oi,[i("summary",null,[s[319]||(s[319]=i("a",{id:"GeometryOps.transform-Tuple{Any, Any}",href:"#GeometryOps.transform-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[320]||(s[320]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[321]||(s[321]=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",yi,[i("summary",null,[s[328]||(s[328]=i("a",{id:"GeometryOps.transform-Tuple{Any, Any}",href:"#GeometryOps.transform-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[329]||(s[329]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[330]||(s[330]=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
 
@@ -362,7 +362,7 @@ import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}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",di,[i("summary",null,[s[322]||(s[322]=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[323]||(s[323]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[324]||(s[324]=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",gi,[i("summary",null,[s[325]||(s[325]=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[326]||(s[326]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[327]||(s[327]=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",Ei,[i("summary",null,[s[331]||(s[331]=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[332]||(s[332]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[333]||(s[333]=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",ci,[i("summary",null,[s[334]||(s[334]=i("a",{id:"GeometryOps.union-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.union-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.union")],-1)),s[335]||(s[335]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[336]||(s[336]=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)]])
@@ -371,11 +371,11 @@ import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}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",yi,[i("summary",null,[s[328]||(s[328]=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[329]||(s[329]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[330]||(s[330]=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",Ei,[i("summary",null,[s[331]||(s[331]=i("a",{id:"GeometryOps.within-Tuple{Any, Any}",href:"#GeometryOps.within-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[332]||(s[332]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[333]||(s[333]=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",ui,[i("summary",null,[s[337]||(s[337]=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[338]||(s[338]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[339]||(s[339]=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",mi,[i("summary",null,[s[340]||(s[340]=i("a",{id:"GeometryOps.within-Tuple{Any, Any}",href:"#GeometryOps.within-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[341]||(s[341]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[342]||(s[342]=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[340]||(s[340]=a('
  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

',2))])}const Ai=h(r,[["render",ci]]);export{fi as __pageData,Ai as default}; +true

source

`,6))]),s[349]||(s[349]=a('
  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

',2))])}const vi=h(o,[["render",Fi]]);export{_i as __pageData,vi as default}; diff --git a/previews/PR259/assets/api.md.2CTl0mwp.lean.js b/previews/PR259/assets/api.md.2CTl0mwp.lean.js new file mode 100644 index 000000000..52338fcfb --- /dev/null +++ b/previews/PR259/assets/api.md.2CTl0mwp.lean.js @@ -0,0 +1 @@ +import{_ as h,C as r,c as l,o as p,az as a,j as i,a as e,G as n}from"./chunks/framework.mcBEtuSi.js";const _i=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),o={name:"api.md"},k={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:""},T={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},_={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:""},I={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},$={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:""},rs={class:"jldocstring custom-block",open:""},os={class:"jldocstring custom-block",open:""},ks={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:""},Ts={class:"jldocstring custom-block",open:""},bs={class:"jldocstring custom-block",open:""},fs={class:"jldocstring custom-block",open:""},As={class:"jldocstring custom-block",open:""},Gs={class:"jldocstring custom-block",open:""},_s={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:""},Is={class:"jldocstring custom-block",open:""},xs={class:"jldocstring custom-block",open:""},Qs={class:"jldocstring custom-block",open:""},Ss={class:"jldocstring custom-block",open:""},ws={class:"jldocstring custom-block",open:""},Ps={class:"jldocstring custom-block",open:""},Ls={class:"jldocstring custom-block",open:""},Vs={class:"jldocstring custom-block",open:""},Rs={class:"jldocstring custom-block",open:""},Ms={class:"jldocstring custom-block",open:""},qs={class:"jldocstring custom-block",open:""},Ns={class:"jldocstring custom-block",open:""},Hs={class:"jldocstring custom-block",open:""},Js={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},Us={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"},zs={class:"jldocstring custom-block",open:""},Ws={class:"jldocstring custom-block",open:""},Zs={class:"jldocstring custom-block",open:""},Ks={class:"jldocstring custom-block",open:""},Xs={class:"jldocstring custom-block",open:""},Ys={class:"jldocstring custom-block",open:""},$s={class:"jldocstring custom-block",open:""},si={class:"jldocstring custom-block",open:""},ii={class:"jldocstring custom-block",open:""},ai={class:"jldocstring custom-block",open:""},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:""},ri={class:"jldocstring custom-block",open:""},oi={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},ki={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"},di={class:"jldocstring custom-block",open:""},gi={class:"jldocstring custom-block",open:""},yi={class:"jldocstring custom-block",open:""},Ei={class:"jldocstring custom-block",open:""},ci={class:"jldocstring custom-block",open:""},ui={class:"jldocstring custom-block",open:""},mi={class:"jldocstring custom-block",open:""};function Fi(Ci,s,Ti,bi,fi,Ai){const t=r("Badge");return p(),l("div",null,[s[343]||(s[343]=a("",5)),i("details",k,[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("",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("",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("",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("",9))]),s[344]||(s[344]=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[345]||(s[345]=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("",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("",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("",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("",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("",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("",6))]),i("details",T,[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("",29))]),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("",5))]),i("details",f,[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("",6))]),s[346]||(s[346]=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",A,[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("",47))]),i("details",G,[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("",3))]),i("details",_,[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("",5))]),i("details",v,[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("",4))]),i("details",j,[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("",5))]),i("details",B,[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("",5))]),i("details",O,[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("",5))]),i("details",D,[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("",6))]),s[347]||(s[347]=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",I,[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("",3))]),i("details",x,[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("",5))]),i("details",Q,[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("",5))]),s[348]||(s[348]=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",S,[i("summary",null,[s[72]||(s[72]=i("a",{id:"GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS",href:"#GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS")],-1)),s[73]||(s[73]=e()),n(t,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[74]||(s[74]=i("p",null,"The number of vertices past which we should use a STRtree for edge intersection checking.",-1)),s[75]||(s[75]=i("p",null,[i("a",{href:"https://github.com/JuliaGeo/GeometryOps.jl/blob/ad7303e2994d2cf37eed678d2200c9419134cb62/src/methods/clipping/clipping_processor.jl#L165",target:"_blank",rel:"noreferrer"},"source")],-1))]),i("details",w,[i("summary",null,[s[76]||(s[76]=i("a",{id:"GeometryOps.AbstractBarycentricCoordinateMethod",href:"#GeometryOps.AbstractBarycentricCoordinateMethod"},[i("span",{class:"jlbinding"},"GeometryOps.AbstractBarycentricCoordinateMethod")],-1)),s[77]||(s[77]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[78]||(s[78]=a("",7))]),i("details",P,[i("summary",null,[s[79]||(s[79]=i("a",{id:"GeometryOps.ClosedRing",href:"#GeometryOps.ClosedRing"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[80]||(s[80]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[81]||(s[81]=a("",5))]),i("details",L,[i("summary",null,[s[82]||(s[82]=i("a",{id:"GeometryOps.DiffIntersectingPolygons",href:"#GeometryOps.DiffIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[83]||(s[83]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[84]||(s[84]=a("",3))]),i("details",V,[i("summary",null,[s[85]||(s[85]=i("a",{id:"GeometryOps.DouglasPeucker",href:"#GeometryOps.DouglasPeucker"},[i("span",{class:"jlbinding"},"GeometryOps.DouglasPeucker")],-1)),s[86]||(s[86]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[87]||(s[87]=a("",6))]),i("details",R,[i("summary",null,[s[88]||(s[88]=i("a",{id:"GeometryOps.FosterHormannClipping",href:"#GeometryOps.FosterHormannClipping"},[i("span",{class:"jlbinding"},"GeometryOps.FosterHormannClipping")],-1)),s[89]||(s[89]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[90]||(s[90]=a("",5))]),i("details",M,[i("summary",null,[s[91]||(s[91]=i("a",{id:"GeometryOps.GEOS",href:"#GeometryOps.GEOS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOS")],-1)),s[92]||(s[92]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[93]||(s[93]=a("",5))]),i("details",q,[i("summary",null,[s[94]||(s[94]=i("a",{id:"GeometryOps.GeodesicSegments",href:"#GeometryOps.GeodesicSegments"},[i("span",{class:"jlbinding"},"GeometryOps.GeodesicSegments")],-1)),s[95]||(s[95]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[96]||(s[96]=a("",8))]),i("details",N,[i("summary",null,[s[97]||(s[97]=i("a",{id:"GeometryOps.GeometryCorrection",href:"#GeometryOps.GeometryCorrection"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[98]||(s[98]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[99]||(s[99]=a("",5))]),i("details",H,[i("summary",null,[s[100]||(s[100]=i("a",{id:"GeometryOps.IntersectionAccelerator",href:"#GeometryOps.IntersectionAccelerator"},[i("span",{class:"jlbinding"},"GeometryOps.IntersectionAccelerator")],-1)),s[101]||(s[101]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[102]||(s[102]=a("",8))]),i("details",J,[i("summary",null,[s[103]||(s[103]=i("a",{id:"GeometryOps.LineOrientation",href:"#GeometryOps.LineOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.LineOrientation")],-1)),s[104]||(s[104]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[105]||(s[105]=a("",3))]),i("details",U,[i("summary",null,[s[106]||(s[106]=i("a",{id:"GeometryOps.LinearSegments",href:"#GeometryOps.LinearSegments"},[i("span",{class:"jlbinding"},"GeometryOps.LinearSegments")],-1)),s[107]||(s[107]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[108]||(s[108]=a("",4))]),i("details",z,[i("summary",null,[s[109]||(s[109]=i("a",{id:"GeometryOps.MeanValue",href:"#GeometryOps.MeanValue"},[i("span",{class:"jlbinding"},"GeometryOps.MeanValue")],-1)),s[110]||(s[110]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[111]||(s[111]=a("",4))]),i("details",W,[i("summary",null,[s[112]||(s[112]=i("a",{id:"GeometryOps.MonotoneChainMethod",href:"#GeometryOps.MonotoneChainMethod"},[i("span",{class:"jlbinding"},"GeometryOps.MonotoneChainMethod")],-1)),s[113]||(s[113]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[114]||(s[114]=a("",5))]),i("details",Z,[i("summary",null,[s[115]||(s[115]=i("a",{id:"GeometryOps.PointOrientation",href:"#GeometryOps.PointOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.PointOrientation")],-1)),s[116]||(s[116]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[117]||(s[117]=a("",3))]),i("details",K,[i("summary",null,[s[118]||(s[118]=i("a",{id:"GeometryOps.RadialDistance",href:"#GeometryOps.RadialDistance"},[i("span",{class:"jlbinding"},"GeometryOps.RadialDistance")],-1)),s[119]||(s[119]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[120]||(s[120]=a("",6))]),i("details",X,[i("summary",null,[s[121]||(s[121]=i("a",{id:"GeometryOps.SimplifyAlg",href:"#GeometryOps.SimplifyAlg"},[i("span",{class:"jlbinding"},"GeometryOps.SimplifyAlg")],-1)),s[122]||(s[122]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[123]||(s[123]=a("",6))]),i("details",Y,[i("summary",null,[s[124]||(s[124]=i("a",{id:"GeometryOps.TracingHitEveryPointError",href:"#GeometryOps.TracingHitEveryPointError"},[i("span",{class:"jlbinding"},"GeometryOps.TracingHitEveryPointError")],-1)),s[125]||(s[125]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[126]||(s[126]=a("",4))]),i("details",$,[i("summary",null,[s[127]||(s[127]=i("a",{id:"GeometryOps.UnionIntersectingPolygons",href:"#GeometryOps.UnionIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[128]||(s[128]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[129]||(s[129]=a("",4))]),i("details",ss,[i("summary",null,[s[130]||(s[130]=i("a",{id:"GeometryOps.VisvalingamWhyatt",href:"#GeometryOps.VisvalingamWhyatt"},[i("span",{class:"jlbinding"},"GeometryOps.VisvalingamWhyatt")],-1)),s[131]||(s[131]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[132]||(s[132]=a("",6))]),i("details",is,[i("summary",null,[s[133]||(s[133]=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[134]||(s[134]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[135]||(s[135]=a("",5))]),i("details",as,[i("summary",null,[s[136]||(s[136]=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[137]||(s[137]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[138]||(s[138]=a("",3))]),i("details",es,[i("summary",null,[s[139]||(s[139]=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[140]||(s[140]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[141]||(s[141]=a("",5))]),i("details",ts,[i("summary",null,[s[142]||(s[142]=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[143]||(s[143]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[144]||(s[144]=a("",5))]),i("details",ns,[i("summary",null,[s[145]||(s[145]=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[146]||(s[146]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[147]||(s[147]=a("",5))]),i("details",ls,[i("summary",null,[s[148]||(s[148]=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[149]||(s[149]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[150]||(s[150]=a("",3))]),i("details",ps,[i("summary",null,[s[151]||(s[151]=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[152]||(s[152]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[153]||(s[153]=a("",5))]),i("details",hs,[i("summary",null,[s[154]||(s[154]=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[155]||(s[155]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=a("",3))]),i("details",rs,[i("summary",null,[s[157]||(s[157]=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[158]||(s[158]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[159]||(s[159]=a("",3))]),i("details",os,[i("summary",null,[s[160]||(s[160]=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[161]||(s[161]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[162]||(s[162]=a("",3))]),i("details",ks,[i("summary",null,[s[163]||(s[163]=i("a",{id:"GeometryOps.contains-Tuple{Any, Any}",href:"#GeometryOps.contains-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[164]||(s[164]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[165]||(s[165]=a("",6))]),i("details",ds,[i("summary",null,[s[166]||(s[166]=i("a",{id:"GeometryOps.convex_hull",href:"#GeometryOps.convex_hull"},[i("span",{class:"jlbinding"},"GeometryOps.convex_hull")],-1)),s[167]||(s[167]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[168]||(s[168]=a("",5))]),i("details",gs,[i("summary",null,[s[169]||(s[169]=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[170]||(s[170]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[171]||(s[171]=a("",5))]),i("details",ys,[i("summary",null,[s[172]||(s[172]=i("a",{id:"GeometryOps.coveredby-Tuple{Any, Any}",href:"#GeometryOps.coveredby-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[173]||(s[173]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[174]||(s[174]=a("",6))]),i("details",Es,[i("summary",null,[s[175]||(s[175]=i("a",{id:"GeometryOps.covers-Tuple{Any, Any}",href:"#GeometryOps.covers-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[176]||(s[176]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[177]||(s[177]=a("",6))]),i("details",cs,[i("summary",null,[s[178]||(s[178]=i("a",{id:"GeometryOps.crosses-Tuple{Any, Any}",href:"#GeometryOps.crosses-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[179]||(s[179]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[180]||(s[180]=a("",6))]),i("details",us,[i("summary",null,[s[181]||(s[181]=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[182]||(s[182]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[183]||(s[183]=a("",6))]),i("details",ms,[i("summary",null,[s[184]||(s[184]=i("a",{id:"GeometryOps.difference-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.difference-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.difference")],-1)),s[185]||(s[185]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[186]||(s[186]=a("",5))]),i("details",Fs,[i("summary",null,[s[187]||(s[187]=i("a",{id:"GeometryOps.disjoint-Tuple{Any, Any}",href:"#GeometryOps.disjoint-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[188]||(s[188]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[189]||(s[189]=a("",6))]),i("details",Cs,[i("summary",null,[s[190]||(s[190]=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[191]||(s[191]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[192]||(s[192]=a("",5))]),i("details",Ts,[i("summary",null,[s[193]||(s[193]=i("a",{id:"GeometryOps.eachedge-Tuple{Any}",href:"#GeometryOps.eachedge-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.eachedge")],-1)),s[194]||(s[194]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[195]||(s[195]=a("",5))]),i("details",bs,[i("summary",null,[s[196]||(s[196]=i("a",{id:"GeometryOps.embed_extent-Tuple{Any}",href:"#GeometryOps.embed_extent-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[197]||(s[197]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[198]||(s[198]=a("",6))]),i("details",fs,[i("summary",null,[s[199]||(s[199]=i("a",{id:"GeometryOps.enforce-Tuple{GEOS, Symbol, Any}",href:"#GeometryOps.enforce-Tuple{GEOS, Symbol, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.enforce")],-1)),s[200]||(s[200]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[201]||(s[201]=a("",4))]),i("details",As,[i("summary",null,[s[202]||(s[202]=i("a",{id:"GeometryOps.equals-NTuple{4, Any}",href:"#GeometryOps.equals-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[203]||(s[203]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[204]||(s[204]=a("",3))]),i("details",Gs,[i("summary",null,[s[205]||(s[205]=i("a",{id:"GeometryOps.equals-Tuple{Any, Any}",href:"#GeometryOps.equals-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[206]||(s[206]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[207]||(s[207]=a("",5))]),i("details",_s,[i("summary",null,[s[208]||(s[208]=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[209]||(s[209]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[210]||(s[210]=a("",3))]),i("details",vs,[i("summary",null,[s[211]||(s[211]=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[212]||(s[212]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[213]||(s[213]=a("",3))]),i("details",js,[i("summary",null,[s[214]||(s[214]=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[215]||(s[215]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[216]||(s[216]=a("",3))]),i("details",Bs,[i("summary",null,[s[217]||(s[217]=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[218]||(s[218]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[219]||(s[219]=a("",3))]),i("details",Os,[i("summary",null,[s[220]||(s[220]=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[221]||(s[221]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[222]||(s[222]=a("",3))]),i("details",Ds,[i("summary",null,[s[223]||(s[223]=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[224]||(s[224]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[225]||(s[225]=a("",3))]),i("details",Is,[i("summary",null,[s[226]||(s[226]=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[227]||(s[227]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[228]||(s[228]=a("",3))]),i("details",xs,[i("summary",null,[s[229]||(s[229]=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[230]||(s[230]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[231]||(s[231]=a("",3))]),i("details",Qs,[i("summary",null,[s[232]||(s[232]=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[233]||(s[233]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[234]||(s[234]=a("",3))]),i("details",Ss,[i("summary",null,[s[235]||(s[235]=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[236]||(s[236]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[237]||(s[237]=a("",3))]),i("details",ws,[i("summary",null,[s[238]||(s[238]=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[239]||(s[239]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[240]||(s[240]=a("",3))]),i("details",Ps,[i("summary",null,[s[241]||(s[241]=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[242]||(s[242]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[243]||(s[243]=a("",3))]),i("details",Ls,[i("summary",null,[s[244]||(s[244]=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[245]||(s[245]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[246]||(s[246]=a("",3))]),i("details",Vs,[i("summary",null,[s[247]||(s[247]=i("a",{id:"GeometryOps.flip-Tuple{Any}",href:"#GeometryOps.flip-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.flip")],-1)),s[248]||(s[248]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[249]||(s[249]=a("",5))]),i("details",Rs,[i("summary",null,[s[250]||(s[250]=i("a",{id:"GeometryOps.forcexy-Tuple{Any}",href:"#GeometryOps.forcexy-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.forcexy")],-1)),s[251]||(s[251]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[252]||(s[252]=a("",3))]),i("details",Ms,[i("summary",null,[s[253]||(s[253]=i("a",{id:"GeometryOps.forcexyz",href:"#GeometryOps.forcexyz"},[i("span",{class:"jlbinding"},"GeometryOps.forcexyz")],-1)),s[254]||(s[254]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[255]||(s[255]=a("",4))]),i("details",qs,[i("summary",null,[s[256]||(s[256]=i("a",{id:"GeometryOps.intersection-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.intersection-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.intersection")],-1)),s[257]||(s[257]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[258]||(s[258]=a("",5))]),i("details",Ns,[i("summary",null,[s[259]||(s[259]=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[260]||(s[260]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[261]||(s[261]=a("",9))]),i("details",Hs,[i("summary",null,[s[262]||(s[262]=i("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isclockwise")],-1)),s[263]||(s[263]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[266]||(s[266]=a("",2)),i("mjx-container",Js,[(p(),l("svg",Us,s[264]||(s[264]=[a("",1)]))),s[265]||(s[265]=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[267]||(s[267]=a("",3))]),i("details",zs,[i("summary",null,[s[268]||(s[268]=i("a",{id:"GeometryOps.isconcave-Tuple{Any}",href:"#GeometryOps.isconcave-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isconcave")],-1)),s[269]||(s[269]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[270]||(s[270]=a("",5))]),i("details",Ws,[i("summary",null,[s[271]||(s[271]=i("a",{id:"GeometryOps.overlaps-Tuple{Any, Any}",href:"#GeometryOps.overlaps-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[272]||(s[272]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[273]||(s[273]=a("",5))]),i("details",Zs,[i("summary",null,[s[274]||(s[274]=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[275]||(s[275]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[276]||(s[276]=a("",3))]),i("details",Ks,[i("summary",null,[s[277]||(s[277]=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[278]||(s[278]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[279]||(s[279]=a("",3))]),i("details",Xs,[i("summary",null,[s[280]||(s[280]=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[281]||(s[281]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[282]||(s[282]=a("",3))]),i("details",Ys,[i("summary",null,[s[283]||(s[283]=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[284]||(s[284]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[285]||(s[285]=a("",3))]),i("details",$s,[i("summary",null,[s[286]||(s[286]=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[287]||(s[287]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[288]||(s[288]=a("",3))]),i("details",si,[i("summary",null,[s[289]||(s[289]=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[290]||(s[290]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[291]||(s[291]=a("",3))]),i("details",ii,[i("summary",null,[s[292]||(s[292]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[293]||(s[293]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[294]||(s[294]=a("",3))]),i("details",ai,[i("summary",null,[s[295]||(s[295]=i("a",{id:"GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any}",href:"#GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[296]||(s[296]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[297]||(s[297]=a("",3))]),i("details",ei,[i("summary",null,[s[298]||(s[298]=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[299]||(s[299]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[300]||(s[300]=a("",5))]),i("details",ti,[i("summary",null,[s[301]||(s[301]=i("a",{id:"GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}",href:"#GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}"},[i("span",{class:"jlbinding"},"GeometryOps.polygonize")],-1)),s[302]||(s[302]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[303]||(s[303]=a("",10))]),i("details",ni,[i("summary",null,[s[304]||(s[304]=i("a",{id:"GeometryOps.segmentize-Tuple{Any}",href:"#GeometryOps.segmentize-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.segmentize")],-1)),s[305]||(s[305]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[306]||(s[306]=a("",6))]),i("details",li,[i("summary",null,[s[307]||(s[307]=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[308]||(s[308]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[309]||(s[309]=a("",5))]),i("details",pi,[i("summary",null,[s[310]||(s[310]=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[311]||(s[311]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[312]||(s[312]=a("",4))]),i("details",hi,[i("summary",null,[s[313]||(s[313]=i("a",{id:"GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}",href:"#GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.simplify")],-1)),s[314]||(s[314]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[315]||(s[315]=a("",14))]),i("details",ri,[i("summary",null,[s[316]||(s[316]=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[317]||(s[317]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[320]||(s[320]=a("",3)),i("mjx-container",oi,[(p(),l("svg",ki,s[318]||(s[318]=[a("",1)]))),s[319]||(s[319]=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[321]||(s[321]=a("",3))]),i("details",di,[i("summary",null,[s[322]||(s[322]=i("a",{id:"GeometryOps.to_edges-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.to_edges-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.to_edges")],-1)),s[323]||(s[323]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[324]||(s[324]=a("",3))]),i("details",gi,[i("summary",null,[s[325]||(s[325]=i("a",{id:"GeometryOps.touches-Tuple{Any, Any}",href:"#GeometryOps.touches-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[326]||(s[326]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[327]||(s[327]=a("",5))]),i("details",yi,[i("summary",null,[s[328]||(s[328]=i("a",{id:"GeometryOps.transform-Tuple{Any, Any}",href:"#GeometryOps.transform-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[329]||(s[329]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[330]||(s[330]=a("",9))]),i("details",Ei,[i("summary",null,[s[331]||(s[331]=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[332]||(s[332]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[333]||(s[333]=a("",6))]),i("details",ci,[i("summary",null,[s[334]||(s[334]=i("a",{id:"GeometryOps.union-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat",href:"#GeometryOps.union-Union{Tuple{T}, Tuple{GeometryOps.FosterHormannClipping, Any, Any}, Tuple{GeometryOps.FosterHormannClipping, Any, Any, Type{T}}} where T<:AbstractFloat"},[i("span",{class:"jlbinding"},"GeometryOps.union")],-1)),s[335]||(s[335]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[336]||(s[336]=a("",6))]),i("details",ui,[i("summary",null,[s[337]||(s[337]=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[338]||(s[338]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[339]||(s[339]=a("",5))]),i("details",mi,[i("summary",null,[s[340]||(s[340]=i("a",{id:"GeometryOps.within-Tuple{Any, Any}",href:"#GeometryOps.within-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[341]||(s[341]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[342]||(s[342]=a("",6))]),s[349]||(s[349]=a("",2))])}const vi=h(o,[["render",Fi]]);export{_i as __pageData,vi as default}; diff --git a/previews/PR259/assets/api.md.BjOA8ThU.lean.js b/previews/PR259/assets/api.md.BjOA8ThU.lean.js deleted file mode 100644 index 1ffa5af55..000000000 --- a/previews/PR259/assets/api.md.BjOA8ThU.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as h,C as k,c as l,o as p,az as a,j as i,a as e,G as n}from"./chunks/framework.mcBEtuSi.js";const fi=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:""},T={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},_={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:""},I={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},$={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:""},Ts={class:"jldocstring custom-block",open:""},bs={class:"jldocstring custom-block",open:""},fs={class:"jldocstring custom-block",open:""},As={class:"jldocstring custom-block",open:""},Gs={class:"jldocstring custom-block",open:""},_s={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:""},Is={class:"jldocstring custom-block",open:""},xs={class:"jldocstring custom-block",open:""},Qs={class:"jldocstring custom-block",open:""},Ss={class:"jldocstring custom-block",open:""},ws={class:"jldocstring custom-block",open:""},Ps={class:"jldocstring custom-block",open:""},Ls={class:"jldocstring custom-block",open:""},Vs={class:"jldocstring custom-block",open:""},Rs={class:"jldocstring custom-block",open:""},Ms={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"}},Ns={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"},Js={class:"jldocstring custom-block",open:""},Us={class:"jldocstring custom-block",open:""},Hs={class:"jldocstring custom-block",open:""},zs={class:"jldocstring custom-block",open:""},Ws={class:"jldocstring custom-block",open:""},Zs={class:"jldocstring custom-block",open:""},Ks={class:"jldocstring custom-block",open:""},Xs={class:"jldocstring custom-block",open:""},Ys={class:"jldocstring custom-block",open:""},$s={class:"jldocstring custom-block",open:""},si={class:"jldocstring custom-block",open:""},ii={class:"jldocstring custom-block",open:""},ai={class:"jldocstring custom-block",open:""},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:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},hi={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"},ki={class:"jldocstring custom-block",open:""},ri={class:"jldocstring custom-block",open:""},oi={class:"jldocstring custom-block",open:""},di={class:"jldocstring custom-block",open:""},gi={class:"jldocstring custom-block",open:""},yi={class:"jldocstring custom-block",open:""},Ei={class:"jldocstring custom-block",open:""};function ci(ui,s,mi,Fi,Ci,Ti){const t=k("Badge");return p(),l("div",null,[s[334]||(s[334]=a("",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("",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("",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("",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("",9))]),s[335]||(s[335]=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[336]||(s[336]=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("",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("",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("",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("",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("",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("",6))]),i("details",T,[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("",29))]),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("",5))]),i("details",f,[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("",6))]),s[337]||(s[337]=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",A,[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("",47))]),i("details",G,[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("",3))]),i("details",_,[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("",5))]),i("details",v,[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("",4))]),i("details",j,[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("",5))]),i("details",B,[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("",5))]),i("details",O,[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("",5))]),i("details",D,[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("",6))]),s[338]||(s[338]=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",I,[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("",3))]),i("details",x,[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("",5))]),i("details",Q,[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("",5))]),s[339]||(s[339]=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",S,[i("summary",null,[s[72]||(s[72]=i("a",{id:"GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS",href:"#GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS")],-1)),s[73]||(s[73]=e()),n(t,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[74]||(s[74]=i("p",null,"The number of vertices past which we should use a STRtree for edge intersection checking.",-1)),s[75]||(s[75]=i("p",null,[i("a",{href:"https://github.com/JuliaGeo/GeometryOps.jl/blob/81f70fd20ba2e9992e2c192c14b6558784249217/src/methods/clipping/clipping_processor.jl#L80",target:"_blank",rel:"noreferrer"},"source")],-1))]),i("details",w,[i("summary",null,[s[76]||(s[76]=i("a",{id:"GeometryOps.AbstractBarycentricCoordinateMethod",href:"#GeometryOps.AbstractBarycentricCoordinateMethod"},[i("span",{class:"jlbinding"},"GeometryOps.AbstractBarycentricCoordinateMethod")],-1)),s[77]||(s[77]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[78]||(s[78]=a("",7))]),i("details",P,[i("summary",null,[s[79]||(s[79]=i("a",{id:"GeometryOps.ClosedRing",href:"#GeometryOps.ClosedRing"},[i("span",{class:"jlbinding"},"GeometryOps.ClosedRing")],-1)),s[80]||(s[80]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[81]||(s[81]=a("",5))]),i("details",L,[i("summary",null,[s[82]||(s[82]=i("a",{id:"GeometryOps.DiffIntersectingPolygons",href:"#GeometryOps.DiffIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.DiffIntersectingPolygons")],-1)),s[83]||(s[83]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[84]||(s[84]=a("",3))]),i("details",V,[i("summary",null,[s[85]||(s[85]=i("a",{id:"GeometryOps.DouglasPeucker",href:"#GeometryOps.DouglasPeucker"},[i("span",{class:"jlbinding"},"GeometryOps.DouglasPeucker")],-1)),s[86]||(s[86]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[87]||(s[87]=a("",6))]),i("details",R,[i("summary",null,[s[88]||(s[88]=i("a",{id:"GeometryOps.GEOS",href:"#GeometryOps.GEOS"},[i("span",{class:"jlbinding"},"GeometryOps.GEOS")],-1)),s[89]||(s[89]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[90]||(s[90]=a("",5))]),i("details",M,[i("summary",null,[s[91]||(s[91]=i("a",{id:"GeometryOps.GeodesicSegments",href:"#GeometryOps.GeodesicSegments"},[i("span",{class:"jlbinding"},"GeometryOps.GeodesicSegments")],-1)),s[92]||(s[92]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[93]||(s[93]=a("",8))]),i("details",q,[i("summary",null,[s[94]||(s[94]=i("a",{id:"GeometryOps.GeometryCorrection",href:"#GeometryOps.GeometryCorrection"},[i("span",{class:"jlbinding"},"GeometryOps.GeometryCorrection")],-1)),s[95]||(s[95]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[96]||(s[96]=a("",5))]),i("details",N,[i("summary",null,[s[97]||(s[97]=i("a",{id:"GeometryOps.LineOrientation",href:"#GeometryOps.LineOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.LineOrientation")],-1)),s[98]||(s[98]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[99]||(s[99]=a("",3))]),i("details",J,[i("summary",null,[s[100]||(s[100]=i("a",{id:"GeometryOps.LinearSegments",href:"#GeometryOps.LinearSegments"},[i("span",{class:"jlbinding"},"GeometryOps.LinearSegments")],-1)),s[101]||(s[101]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[102]||(s[102]=a("",4))]),i("details",U,[i("summary",null,[s[103]||(s[103]=i("a",{id:"GeometryOps.MeanValue",href:"#GeometryOps.MeanValue"},[i("span",{class:"jlbinding"},"GeometryOps.MeanValue")],-1)),s[104]||(s[104]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[105]||(s[105]=a("",4))]),i("details",H,[i("summary",null,[s[106]||(s[106]=i("a",{id:"GeometryOps.MonotoneChainMethod",href:"#GeometryOps.MonotoneChainMethod"},[i("span",{class:"jlbinding"},"GeometryOps.MonotoneChainMethod")],-1)),s[107]||(s[107]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[108]||(s[108]=a("",5))]),i("details",z,[i("summary",null,[s[109]||(s[109]=i("a",{id:"GeometryOps.PointOrientation",href:"#GeometryOps.PointOrientation"},[i("span",{class:"jlbinding"},"GeometryOps.PointOrientation")],-1)),s[110]||(s[110]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[111]||(s[111]=a("",3))]),i("details",W,[i("summary",null,[s[112]||(s[112]=i("a",{id:"GeometryOps.RadialDistance",href:"#GeometryOps.RadialDistance"},[i("span",{class:"jlbinding"},"GeometryOps.RadialDistance")],-1)),s[113]||(s[113]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[114]||(s[114]=a("",6))]),i("details",Z,[i("summary",null,[s[115]||(s[115]=i("a",{id:"GeometryOps.SimplifyAlg",href:"#GeometryOps.SimplifyAlg"},[i("span",{class:"jlbinding"},"GeometryOps.SimplifyAlg")],-1)),s[116]||(s[116]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[117]||(s[117]=a("",6))]),i("details",K,[i("summary",null,[s[118]||(s[118]=i("a",{id:"GeometryOps.UnionIntersectingPolygons",href:"#GeometryOps.UnionIntersectingPolygons"},[i("span",{class:"jlbinding"},"GeometryOps.UnionIntersectingPolygons")],-1)),s[119]||(s[119]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[120]||(s[120]=a("",4))]),i("details",X,[i("summary",null,[s[121]||(s[121]=i("a",{id:"GeometryOps.VisvalingamWhyatt",href:"#GeometryOps.VisvalingamWhyatt"},[i("span",{class:"jlbinding"},"GeometryOps.VisvalingamWhyatt")],-1)),s[122]||(s[122]=e()),n(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[123]||(s[123]=a("",6))]),i("details",Y,[i("summary",null,[s[124]||(s[124]=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[125]||(s[125]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[126]||(s[126]=a("",5))]),i("details",$,[i("summary",null,[s[127]||(s[127]=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[128]||(s[128]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[129]||(s[129]=a("",3))]),i("details",ss,[i("summary",null,[s[130]||(s[130]=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[131]||(s[131]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[132]||(s[132]=a("",5))]),i("details",is,[i("summary",null,[s[133]||(s[133]=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[134]||(s[134]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[135]||(s[135]=a("",5))]),i("details",as,[i("summary",null,[s[136]||(s[136]=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[137]||(s[137]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[138]||(s[138]=a("",5))]),i("details",es,[i("summary",null,[s[139]||(s[139]=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[140]||(s[140]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[141]||(s[141]=a("",3))]),i("details",ts,[i("summary",null,[s[142]||(s[142]=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[143]||(s[143]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[144]||(s[144]=a("",5))]),i("details",ns,[i("summary",null,[s[145]||(s[145]=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[146]||(s[146]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[147]||(s[147]=a("",3))]),i("details",ls,[i("summary",null,[s[148]||(s[148]=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[149]||(s[149]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[150]||(s[150]=a("",3))]),i("details",ps,[i("summary",null,[s[151]||(s[151]=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[152]||(s[152]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[153]||(s[153]=a("",3))]),i("details",hs,[i("summary",null,[s[154]||(s[154]=i("a",{id:"GeometryOps.contains-Tuple{Any, Any}",href:"#GeometryOps.contains-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.contains")],-1)),s[155]||(s[155]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=a("",6))]),i("details",ks,[i("summary",null,[s[157]||(s[157]=i("a",{id:"GeometryOps.convex_hull",href:"#GeometryOps.convex_hull"},[i("span",{class:"jlbinding"},"GeometryOps.convex_hull")],-1)),s[158]||(s[158]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[159]||(s[159]=a("",5))]),i("details",rs,[i("summary",null,[s[160]||(s[160]=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[161]||(s[161]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[162]||(s[162]=a("",5))]),i("details",os,[i("summary",null,[s[163]||(s[163]=i("a",{id:"GeometryOps.coveredby-Tuple{Any, Any}",href:"#GeometryOps.coveredby-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.coveredby")],-1)),s[164]||(s[164]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[165]||(s[165]=a("",6))]),i("details",ds,[i("summary",null,[s[166]||(s[166]=i("a",{id:"GeometryOps.covers-Tuple{Any, Any}",href:"#GeometryOps.covers-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.covers")],-1)),s[167]||(s[167]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[168]||(s[168]=a("",6))]),i("details",gs,[i("summary",null,[s[169]||(s[169]=i("a",{id:"GeometryOps.crosses-Tuple{Any, Any}",href:"#GeometryOps.crosses-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.crosses")],-1)),s[170]||(s[170]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[171]||(s[171]=a("",6))]),i("details",ys,[i("summary",null,[s[172]||(s[172]=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[173]||(s[173]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[174]||(s[174]=a("",6))]),i("details",Es,[i("summary",null,[s[175]||(s[175]=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[176]||(s[176]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[177]||(s[177]=a("",5))]),i("details",cs,[i("summary",null,[s[178]||(s[178]=i("a",{id:"GeometryOps.disjoint-Tuple{Any, Any}",href:"#GeometryOps.disjoint-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.disjoint")],-1)),s[179]||(s[179]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[180]||(s[180]=a("",6))]),i("details",us,[i("summary",null,[s[181]||(s[181]=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[182]||(s[182]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[183]||(s[183]=a("",5))]),i("details",ms,[i("summary",null,[s[184]||(s[184]=i("a",{id:"GeometryOps.eachedge-Tuple{Any}",href:"#GeometryOps.eachedge-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.eachedge")],-1)),s[185]||(s[185]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[186]||(s[186]=a("",5))]),i("details",Fs,[i("summary",null,[s[187]||(s[187]=i("a",{id:"GeometryOps.embed_extent-Tuple{Any}",href:"#GeometryOps.embed_extent-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.embed_extent")],-1)),s[188]||(s[188]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[189]||(s[189]=a("",6))]),i("details",Cs,[i("summary",null,[s[190]||(s[190]=i("a",{id:"GeometryOps.enforce-Tuple{GEOS, Symbol, Any}",href:"#GeometryOps.enforce-Tuple{GEOS, Symbol, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.enforce")],-1)),s[191]||(s[191]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[192]||(s[192]=a("",4))]),i("details",Ts,[i("summary",null,[s[193]||(s[193]=i("a",{id:"GeometryOps.equals-NTuple{4, Any}",href:"#GeometryOps.equals-NTuple{4, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[194]||(s[194]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[195]||(s[195]=a("",3))]),i("details",bs,[i("summary",null,[s[196]||(s[196]=i("a",{id:"GeometryOps.equals-Tuple{Any, Any}",href:"#GeometryOps.equals-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.equals")],-1)),s[197]||(s[197]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[198]||(s[198]=a("",5))]),i("details",fs,[i("summary",null,[s[199]||(s[199]=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[200]||(s[200]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[201]||(s[201]=a("",3))]),i("details",As,[i("summary",null,[s[202]||(s[202]=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[203]||(s[203]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[204]||(s[204]=a("",3))]),i("details",Gs,[i("summary",null,[s[205]||(s[205]=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[206]||(s[206]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[207]||(s[207]=a("",3))]),i("details",_s,[i("summary",null,[s[208]||(s[208]=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[209]||(s[209]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[210]||(s[210]=a("",3))]),i("details",vs,[i("summary",null,[s[211]||(s[211]=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[212]||(s[212]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[213]||(s[213]=a("",3))]),i("details",js,[i("summary",null,[s[214]||(s[214]=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[215]||(s[215]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[216]||(s[216]=a("",3))]),i("details",Bs,[i("summary",null,[s[217]||(s[217]=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[218]||(s[218]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[219]||(s[219]=a("",3))]),i("details",Os,[i("summary",null,[s[220]||(s[220]=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[221]||(s[221]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[222]||(s[222]=a("",3))]),i("details",Ds,[i("summary",null,[s[223]||(s[223]=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[224]||(s[224]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[225]||(s[225]=a("",3))]),i("details",Is,[i("summary",null,[s[226]||(s[226]=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[227]||(s[227]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[228]||(s[228]=a("",3))]),i("details",xs,[i("summary",null,[s[229]||(s[229]=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[230]||(s[230]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[231]||(s[231]=a("",3))]),i("details",Qs,[i("summary",null,[s[232]||(s[232]=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[233]||(s[233]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[234]||(s[234]=a("",3))]),i("details",Ss,[i("summary",null,[s[235]||(s[235]=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[236]||(s[236]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[237]||(s[237]=a("",3))]),i("details",ws,[i("summary",null,[s[238]||(s[238]=i("a",{id:"GeometryOps.flip-Tuple{Any}",href:"#GeometryOps.flip-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.flip")],-1)),s[239]||(s[239]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[240]||(s[240]=a("",5))]),i("details",Ps,[i("summary",null,[s[241]||(s[241]=i("a",{id:"GeometryOps.forcexy-Tuple{Any}",href:"#GeometryOps.forcexy-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.forcexy")],-1)),s[242]||(s[242]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[243]||(s[243]=a("",3))]),i("details",Ls,[i("summary",null,[s[244]||(s[244]=i("a",{id:"GeometryOps.forcexyz",href:"#GeometryOps.forcexyz"},[i("span",{class:"jlbinding"},"GeometryOps.forcexyz")],-1)),s[245]||(s[245]=e()),n(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[246]||(s[246]=a("",4))]),i("details",Vs,[i("summary",null,[s[247]||(s[247]=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[248]||(s[248]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[249]||(s[249]=a("",5))]),i("details",Rs,[i("summary",null,[s[250]||(s[250]=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[251]||(s[251]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[252]||(s[252]=a("",9))]),i("details",Ms,[i("summary",null,[s[253]||(s[253]=i("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isclockwise")],-1)),s[254]||(s[254]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[257]||(s[257]=a("",2)),i("mjx-container",qs,[(p(),l("svg",Ns,s[255]||(s[255]=[a("",1)]))),s[256]||(s[256]=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[258]||(s[258]=a("",3))]),i("details",Js,[i("summary",null,[s[259]||(s[259]=i("a",{id:"GeometryOps.isconcave-Tuple{Any}",href:"#GeometryOps.isconcave-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.isconcave")],-1)),s[260]||(s[260]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[261]||(s[261]=a("",5))]),i("details",Us,[i("summary",null,[s[262]||(s[262]=i("a",{id:"GeometryOps.overlaps-Tuple{Any, Any}",href:"#GeometryOps.overlaps-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[263]||(s[263]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[264]||(s[264]=a("",5))]),i("details",Hs,[i("summary",null,[s[265]||(s[265]=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[266]||(s[266]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[267]||(s[267]=a("",3))]),i("details",zs,[i("summary",null,[s[268]||(s[268]=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[269]||(s[269]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[270]||(s[270]=a("",3))]),i("details",Ws,[i("summary",null,[s[271]||(s[271]=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[272]||(s[272]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[273]||(s[273]=a("",3))]),i("details",Zs,[i("summary",null,[s[274]||(s[274]=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[275]||(s[275]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[276]||(s[276]=a("",3))]),i("details",Ks,[i("summary",null,[s[277]||(s[277]=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[278]||(s[278]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[279]||(s[279]=a("",3))]),i("details",Xs,[i("summary",null,[s[280]||(s[280]=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[281]||(s[281]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[282]||(s[282]=a("",3))]),i("details",Ys,[i("summary",null,[s[283]||(s[283]=i("a",{id:"GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}",href:"#GeometryOps.overlaps-Tuple{GeoInterface.PolygonTrait, Any, GeoInterface.PolygonTrait, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[284]||(s[284]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[285]||(s[285]=a("",3))]),i("details",$s,[i("summary",null,[s[286]||(s[286]=i("a",{id:"GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any}",href:"#GeometryOps.overlaps-Tuple{Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any, Union{GeoInterface.LineStringTrait, GeoInterface.Wrappers.LinearRing}, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.overlaps")],-1)),s[287]||(s[287]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[288]||(s[288]=a("",3))]),i("details",si,[i("summary",null,[s[289]||(s[289]=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[290]||(s[290]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[291]||(s[291]=a("",5))]),i("details",ii,[i("summary",null,[s[292]||(s[292]=i("a",{id:"GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}",href:"#GeometryOps.polygonize-Tuple{AbstractMatrix{Bool}}"},[i("span",{class:"jlbinding"},"GeometryOps.polygonize")],-1)),s[293]||(s[293]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[294]||(s[294]=a("",10))]),i("details",ai,[i("summary",null,[s[295]||(s[295]=i("a",{id:"GeometryOps.segmentize-Tuple{Any}",href:"#GeometryOps.segmentize-Tuple{Any}"},[i("span",{class:"jlbinding"},"GeometryOps.segmentize")],-1)),s[296]||(s[296]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[297]||(s[297]=a("",6))]),i("details",ei,[i("summary",null,[s[298]||(s[298]=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[299]||(s[299]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[300]||(s[300]=a("",5))]),i("details",ti,[i("summary",null,[s[301]||(s[301]=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[302]||(s[302]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[303]||(s[303]=a("",4))]),i("details",ni,[i("summary",null,[s[304]||(s[304]=i("a",{id:"GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}",href:"#GeometryOps.simplify-Tuple{GeometryOps.SimplifyAlg, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.simplify")],-1)),s[305]||(s[305]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[306]||(s[306]=a("",14))]),i("details",li,[i("summary",null,[s[307]||(s[307]=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[308]||(s[308]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[311]||(s[311]=a("",3)),i("mjx-container",pi,[(p(),l("svg",hi,s[309]||(s[309]=[a("",1)]))),s[310]||(s[310]=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[312]||(s[312]=a("",3))]),i("details",ki,[i("summary",null,[s[313]||(s[313]=i("a",{id:"GeometryOps.to_edges-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T",href:"#GeometryOps.to_edges-Union{Tuple{Any}, Tuple{T}, Tuple{Any, Type{T}}} where T"},[i("span",{class:"jlbinding"},"GeometryOps.to_edges")],-1)),s[314]||(s[314]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[315]||(s[315]=a("",3))]),i("details",ri,[i("summary",null,[s[316]||(s[316]=i("a",{id:"GeometryOps.touches-Tuple{Any, Any}",href:"#GeometryOps.touches-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.touches")],-1)),s[317]||(s[317]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[318]||(s[318]=a("",5))]),i("details",oi,[i("summary",null,[s[319]||(s[319]=i("a",{id:"GeometryOps.transform-Tuple{Any, Any}",href:"#GeometryOps.transform-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.transform")],-1)),s[320]||(s[320]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[321]||(s[321]=a("",9))]),i("details",di,[i("summary",null,[s[322]||(s[322]=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[323]||(s[323]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[324]||(s[324]=a("",6))]),i("details",gi,[i("summary",null,[s[325]||(s[325]=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[326]||(s[326]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[327]||(s[327]=a("",6))]),i("details",yi,[i("summary",null,[s[328]||(s[328]=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[329]||(s[329]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[330]||(s[330]=a("",5))]),i("details",Ei,[i("summary",null,[s[331]||(s[331]=i("a",{id:"GeometryOps.within-Tuple{Any, Any}",href:"#GeometryOps.within-Tuple{Any, Any}"},[i("span",{class:"jlbinding"},"GeometryOps.within")],-1)),s[332]||(s[332]=e()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[333]||(s[333]=a("",6))]),s[340]||(s[340]=a("",2))])}const Ai=h(r,[["render",ci]]);export{fi as __pageData,Ai as default}; diff --git a/previews/PR259/assets/app.BAFNewYe.js b/previews/PR259/assets/app.CV4eLTiM.js similarity index 95% rename from previews/PR259/assets/app.BAFNewYe.js rename to previews/PR259/assets/app.CV4eLTiM.js index eb402d394..9dcea661b 100644 --- a/previews/PR259/assets/app.BAFNewYe.js +++ b/previews/PR259/assets/app.CV4eLTiM.js @@ -1 +1 @@ -import{T as p}from"./chunks/theme.B_n0Ru8S.js";import{R as s,am as i,an as u,ao as c,ap as l,aq as f,ar as d,as as m,at as h,au as g,av as A,d as v,u as y,v as w,s as C,aw as P,ax as R,ay as T,al as b}from"./chunks/framework.mcBEtuSi.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),E=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return w(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&P(),R(),T(),n.setup&&n.setup(),()=>b(n.Layout)}});async function S(){globalThis.__VITEPRESS__=!0;const e=D(),a=x();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function x(){return A(E)}function D(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&S().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{S as createApp}; +import{T as p}from"./chunks/theme.C_XeUbhC.js";import{R as s,am as i,an as u,ao as c,ap as l,aq as f,ar as d,as as m,at as h,au as g,av as A,d as v,u as y,v as w,s as C,aw as P,ax as R,ay as T,al as b}from"./chunks/framework.mcBEtuSi.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),E=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return w(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&P(),R(),T(),n.setup&&n.setup(),()=>b(n.Layout)}});async function S(){globalThis.__VITEPRESS__=!0;const e=D(),a=x();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function x(){return A(E)}function D(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&S().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{S as createApp}; diff --git a/previews/PR259/assets/ykjufqt.DiwGEg2f.png b/previews/PR259/assets/cbphmub.DiwGEg2f.png similarity index 100% rename from previews/PR259/assets/ykjufqt.DiwGEg2f.png rename to previews/PR259/assets/cbphmub.DiwGEg2f.png diff --git a/previews/PR259/assets/chunks/@localSearchIndexroot.XO-ieOtj.js b/previews/PR259/assets/chunks/@localSearchIndexroot.XO-ieOtj.js new file mode 100644 index 000000000..19beb6794 --- /dev/null +++ b/previews/PR259/assets/chunks/@localSearchIndexroot.XO-ieOtj.js @@ -0,0 +1 @@ +const e='{"documentCount":210,"nextId":210,"documentIds":{"0":"/GeometryOps.jl/previews/PR259/api#Full-GeometryOps-API-documentation","1":"/GeometryOps.jl/previews/PR259/api#apply-and-associated-functions","2":"/GeometryOps.jl/previews/PR259/api#General-geometry-methods","3":"/GeometryOps.jl/previews/PR259/api#OGC-methods","4":"/GeometryOps.jl/previews/PR259/api#Other-general-methods","5":"/GeometryOps.jl/previews/PR259/api#Barycentric-coordinates","6":"/GeometryOps.jl/previews/PR259/api#Other-methods","7":"/GeometryOps.jl/previews/PR259/call_notes#20th-April,-2024","8":"/GeometryOps.jl/previews/PR259/call_notes#29th-Feb,-2024","9":"/GeometryOps.jl/previews/PR259/call_notes#To-do","10":"/GeometryOps.jl/previews/PR259/call_notes#done","11":"/GeometryOps.jl/previews/PR259/experiments/accurate_accumulators#Accurate-accumulation","12":"/GeometryOps.jl/previews/PR259/experiments/predicates#predicates","13":"/GeometryOps.jl/previews/PR259/experiments/predicates#orient","14":"/GeometryOps.jl/previews/PR259/experiments/predicates#dashboard","15":"/GeometryOps.jl/previews/PR259/experiments/predicates#Testing-robust-vs-regular-predicates","16":"/GeometryOps.jl/previews/PR259/experiments/predicates#incircle","17":"/GeometryOps.jl/previews/PR259/explanations/manifolds#manifolds","18":"/GeometryOps.jl/previews/PR259/explanations/manifolds#What-manifolds-are-available?","19":"/GeometryOps.jl/previews/PR259/explanations/manifolds#Why-this-is-needed","20":"/GeometryOps.jl/previews/PR259/explanations/manifolds#How-this-is-done","21":"/GeometryOps.jl/previews/PR259/explanations/manifolds#Algorithms-and-manifolds","22":"/GeometryOps.jl/previews/PR259/explanations/paradigms#paradigms","23":"/GeometryOps.jl/previews/PR259/explanations/paradigms#apply","24":"/GeometryOps.jl/previews/PR259/explanations/paradigms#applyreduce","25":"/GeometryOps.jl/previews/PR259/explanations/paradigms#fix-and-prepare","26":"/GeometryOps.jl/previews/PR259/explanations/peculiarities#peculiarities","27":"/GeometryOps.jl/previews/PR259/explanations/peculiarities#What-does-apply-return-and-why?","28":"/GeometryOps.jl/previews/PR259/explanations/peculiarities#Why-do-you-want-me-to-provide-a-target-in-set-operations?","29":"/GeometryOps.jl/previews/PR259/explanations/peculiarities#_True-and-_False-(or-BoolsAsTypes)","30":"/GeometryOps.jl/previews/PR259/#what-is-geometryops-jl","31":"/GeometryOps.jl/previews/PR259/#how-to-navigate-the-docs","32":"/GeometryOps.jl/previews/PR259/introduction#introduction","33":"/GeometryOps.jl/previews/PR259/introduction#Main-concepts","34":"/GeometryOps.jl/previews/PR259/introduction#The-apply-paradigm","35":"/GeometryOps.jl/previews/PR259/introduction#What\'s-this-GeoInterface.Wrapper-thing?","36":"/GeometryOps.jl/previews/PR259/source/GeometryOps#geometryops-jl","37":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/segmentize#segmentize","38":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#Simple-overrides","39":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#Polygon-set-operations","40":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#difference","41":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#union","42":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#intersection","43":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#Symmetric-difference","44":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#DE-9IM-boolean-methods","45":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#equals","46":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#disjoint","47":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#touches","48":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#crosses","49":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#within","50":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#contains","51":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#overlaps","52":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#covers","53":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#coveredby","54":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#intersects","55":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#Convex-hull","56":"/GeometryOps.jl/previews/PR259/source/methods/angles#angles","57":"/GeometryOps.jl/previews/PR259/source/methods/angles#What-is-angles?","58":"/GeometryOps.jl/previews/PR259/source/methods/angles#implementation","59":"/GeometryOps.jl/previews/PR259/source/methods/area#Area-and-signed-area","60":"/GeometryOps.jl/previews/PR259/source/methods/area#What-is-area?-What-is-signed-area?","61":"/GeometryOps.jl/previews/PR259/source/methods/area#implementation","62":"/GeometryOps.jl/previews/PR259/source/methods/barycentric#Barycentric-coordinates","63":"/GeometryOps.jl/previews/PR259/source/methods/barycentric#example","64":"/GeometryOps.jl/previews/PR259/source/methods/barycentric#Barycentric-coordinate-API","65":"/GeometryOps.jl/previews/PR259/source/methods/buffer#buffer","66":"/GeometryOps.jl/previews/PR259/source/methods/centroid#centroid","67":"/GeometryOps.jl/previews/PR259/source/methods/centroid#What-is-the-centroid?","68":"/GeometryOps.jl/previews/PR259/source/methods/centroid#implementation","69":"/GeometryOps.jl/previews/PR259/source/methods/clipping/clipping_processor#Polygon-clipping-helpers","70":"/GeometryOps.jl/previews/PR259/source/methods/clipping/coverage#What-is-coverage?","71":"/GeometryOps.jl/previews/PR259/source/methods/clipping/coverage#implementation","72":"/GeometryOps.jl/previews/PR259/source/methods/clipping/cut#Polygon-cutting","73":"/GeometryOps.jl/previews/PR259/source/methods/clipping/cut#What-is-cut?","74":"/GeometryOps.jl/previews/PR259/source/methods/clipping/cut#implementation","75":"/GeometryOps.jl/previews/PR259/source/methods/clipping/difference#Difference-Polygon-Clipping","76":"/GeometryOps.jl/previews/PR259/source/methods/clipping/difference#Helper-functions-for-Differences-with-Greiner-and-Hormann-Polygon-Clipping","77":"/GeometryOps.jl/previews/PR259/source/methods/clipping/intersection#Geometry-Intersection","78":"/GeometryOps.jl/previews/PR259/source/methods/clipping/intersection#Helper-functions-for-Intersections-with-Greiner-and-Hormann-Polygon-Clipping","79":"/GeometryOps.jl/previews/PR259/source/methods/clipping/predicates#If-we-want-to-inject-adaptivity,-we-would-do-something-like:","80":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#Convex-hull","81":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#example","82":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#Simple-hull","83":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#Convex-hull-of-the-USA","84":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#Investigating-the-winding-order","85":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#implementation","86":"/GeometryOps.jl/previews/PR259/source/methods/clipping/union#Union-Polygon-Clipping","87":"/GeometryOps.jl/previews/PR259/source/methods/clipping/union#Helper-functions-for-Unions-with-Greiner-and-Hormann-Polygon-Clipping","88":"/GeometryOps.jl/previews/PR259/source/methods/equals#equals","89":"/GeometryOps.jl/previews/PR259/source/methods/equals#What-is-equals?","90":"/GeometryOps.jl/previews/PR259/source/methods/equals#implementation","91":"/GeometryOps.jl/previews/PR259/source/methods/distance#Distance-and-signed-distance","92":"/GeometryOps.jl/previews/PR259/source/methods/distance#What-is-distance?-What-is-signed-distance?","93":"/GeometryOps.jl/previews/PR259/source/methods/distance#implementation","94":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/contains#contains","95":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/contains#What-is-contains?","96":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/contains#implementation","97":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#coveredby","98":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#What-is-coveredby?","99":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#implementation","100":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Convert-features-to-geometries","101":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Points-coveredby-geometries","102":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Lines-coveredby-geometries","103":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Rings-covered-by-geometries","104":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Polygons-covered-by-geometries","105":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Geometries-coveredby-multi-geometry/geometry-collections","106":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Multi-geometry/geometry-collections-coveredby-geometries","107":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/covers#covers","108":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/covers#What-is-covers?","109":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/covers#implementation","110":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/crosses#Crossing-checks","111":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#disjoint","112":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#What-is-disjoint?","113":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#implementation","114":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Convert-features-to-geometries","115":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Point-disjoint-geometries","116":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Lines-disjoint-geometries","117":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Rings-disjoint-geometries","118":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Polygon-disjoint-geometries","119":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Geometries-disjoint-multi-geometry/geometry-collections","120":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Multi-geometry/geometry-collections-coveredby-geometries","121":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/geom_geom_processors#Line-curve-interaction","122":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/overlaps#overlaps","123":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/overlaps#What-is-overlaps?","124":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/overlaps#implementation","125":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/intersects#Intersection-checks","126":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/intersects#What-is-intersects?","127":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/intersects#implementation","128":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#within","129":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#What-is-within?","130":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#implementation","131":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Convert-features-to-geometries","132":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Points-within-geometries","133":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Lines-within-geometries","134":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Rings-covered-by-geometries","135":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Polygons-within-geometries","136":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Geometries-within-multi-geometry/geometry-collections","137":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Multi-geometry/geometry-collections-within-geometries","138":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#touches","139":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#What-is-touches?","140":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#implementation","141":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Convert-features-to-geometries","142":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Point-touches-geometries","143":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Lines-touching-geometries","144":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Rings-touch-geometries","145":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Polygons-touch-geometries","146":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Geometries-touch-multi-geometry/geometry-collections","147":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Multi-geometry/geometry-collections-cross-geometries","148":"/GeometryOps.jl/previews/PR259/source/methods/orientation#orientation","149":"/GeometryOps.jl/previews/PR259/source/methods/orientation#isclockwise","150":"/GeometryOps.jl/previews/PR259/source/methods/orientation#isconcave","151":"/GeometryOps.jl/previews/PR259/source/methods/polygonize#Polygonizing-raster-data","152":"/GeometryOps.jl/previews/PR259/source/not_implemented_yet#Not-implemented-yet","153":"/GeometryOps.jl/previews/PR259/source/src/apply#apply","154":"/GeometryOps.jl/previews/PR259/source/src/apply#docstrings","155":"/GeometryOps.jl/previews/PR259/source/src/apply#functions","156":"/GeometryOps.jl/previews/PR259/source/src/apply#What-is-apply?","157":"/GeometryOps.jl/previews/PR259/source/src/apply#embedding","158":"/GeometryOps.jl/previews/PR259/source/src/apply#threading","159":"/GeometryOps.jl/previews/PR259/source/src/applyreduce#applyreduce","160":"/GeometryOps.jl/previews/PR259/source/src/keyword_docs#Keyword-docs","161":"/GeometryOps.jl/previews/PR259/source/src/other_primitives#Other-primitives-(unwrap,-flatten,-etc)","162":"/GeometryOps.jl/previews/PR259/source/src/types/algorithm#Algorithms","163":"/GeometryOps.jl/previews/PR259/source/src/types/booltypes#BoolsAsTypes","164":"/GeometryOps.jl/previews/PR259/source/src/types/exceptions#Errors-and-exceptions","165":"/GeometryOps.jl/previews/PR259/source/src/types/operation#operations","166":"/GeometryOps.jl/previews/PR259/source/src/types/manifold#Manifolds","167":"/GeometryOps.jl/previews/PR259/source/src/types/traittarget#TraitTarget","168":"/GeometryOps.jl/previews/PR259/source/transformations/correction/closed_ring#Closed-Rings","169":"/GeometryOps.jl/previews/PR259/source/transformations/correction/closed_ring#example","170":"/GeometryOps.jl/previews/PR259/source/transformations/correction/closed_ring#implementation","171":"/GeometryOps.jl/previews/PR259/source/transformations/correction/geometry_correction#Geometry-Corrections","172":"/GeometryOps.jl/previews/PR259/source/transformations/correction/geometry_correction#interface","173":"/GeometryOps.jl/previews/PR259/source/transformations/correction/geometry_correction#Available-corrections","174":"/GeometryOps.jl/previews/PR259/source/transformations/correction/intersecting_polygons#Intersecting-Polygons","175":"/GeometryOps.jl/previews/PR259/source/transformations/correction/intersecting_polygons#example","176":"/GeometryOps.jl/previews/PR259/source/transformations/correction/intersecting_polygons#implementation","177":"/GeometryOps.jl/previews/PR259/source/transformations/extent#Extent-embedding","178":"/GeometryOps.jl/previews/PR259/source/transformations/flip#Coordinate-flipping","179":"/GeometryOps.jl/previews/PR259/source/transformations/forcedims#Force-dimensions-(xy,-xyz)","180":"/GeometryOps.jl/previews/PR259/source/transformations/reproject#Geometry-reprojection","181":"/GeometryOps.jl/previews/PR259/source/transformations/reproject#Method-error-handling","182":"/GeometryOps.jl/previews/PR259/source/transformations/segmentize#segmentize","183":"/GeometryOps.jl/previews/PR259/source/transformations/segmentize#examples","184":"/GeometryOps.jl/previews/PR259/source/transformations/segmentize#benchmark","185":"/GeometryOps.jl/previews/PR259/source/transformations/segmentize#implementation","186":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#Geometry-simplification","187":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#examples","188":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#benchmark","189":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#Simplify-with-RadialDistance-Algorithm","190":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#Simplify-with-DouglasPeucker-Algorithm","191":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#Simplify-with-VisvalingamWhyatt-Algorithm","192":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#Shared-utils","193":"/GeometryOps.jl/previews/PR259/source/transformations/transform#Pointwise-transformation","194":"/GeometryOps.jl/previews/PR259/source/transformations/tuples#Tuple-conversion","195":"/GeometryOps.jl/previews/PR259/source/types#types","196":"/GeometryOps.jl/previews/PR259/source/types#GEOS","197":"/GeometryOps.jl/previews/PR259/source/utils/utils#Utility-functions","198":"/GeometryOps.jl/previews/PR259/source/utils/utils#eachedge,-to_edgelist","199":"/GeometryOps.jl/previews/PR259/tutorials/geodesic_paths#Geodesic-paths","200":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#Creating-Geometry","201":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#creating-geometry","202":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#plot-geometry","203":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#geom-crs","204":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#attributes","205":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#save-geometry","206":"/GeometryOps.jl/previews/PR259/tutorials/spatial_joins#Spatial-joins","207":"/GeometryOps.jl/previews/PR259/tutorials/spatial_joins#Simple-example","208":"/GeometryOps.jl/previews/PR259/tutorials/spatial_joins#Real-world-example","209":"/GeometryOps.jl/previews/PR259/tutorials/spatial_joins#Enabling-custom-predicates"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,99],"1":[4,4,246],"2":[3,4,1],"3":[2,7,205],"4":[3,7,255],"5":[2,4,81],"6":[2,4,1110],"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,35],"18":[5,1,95],"19":[4,1,48],"20":[4,1,119],"21":[3,1,36],"22":[1,1,53],"23":[1,1,109],"24":[1,2,35],"25":[3,1,79],"26":[1,1,1],"27":[7,1,71],"28":[13,1,101],"29":[6,1,66],"30":[5,1,72],"31":[5,1,61],"32":[1,1,72],"33":[2,1,1],"34":[3,3,50],"35":[8,3,18],"36":[2,1,190],"37":[1,1,106],"38":[2,1,23],"39":[3,2,1],"40":[1,5,20],"41":[1,5,20],"42":[1,5,20],"43":[2,5,22],"44":[4,2,1],"45":[1,6,13],"46":[1,6,13],"47":[1,6,13],"48":[1,6,13],"49":[1,6,13],"50":[1,6,13],"51":[1,6,13],"52":[1,6,13],"53":[1,6,13],"54":[1,6,13],"55":[2,2,34],"56":[1,1,3],"57":[4,1,57],"58":[1,1,268],"59":[4,1,4],"60":[5,4,100],"61":[1,4,246],"62":[2,1,65],"63":[1,2,211],"64":[3,2,414],"65":[1,1,110],"66":[1,1,6],"67":[5,1,91],"68":[1,1,199],"69":[3,1,877],"70":[4,1,70],"71":[1,1,327],"72":[2,1,3],"73":[4,2,57],"74":[1,2,200],"75":[3,1,229],"76":[10,1,196],"77":[2,1,267],"78":[10,1,496],"79":[11,1,25],"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":[3,1,253],"87":[10,1,292],"88":[1,1,3],"89":[4,1,68],"90":[1,1,265],"91":[4,1,4],"92":[5,4,128],"93":[1,4,260],"94":[1,1,10],"95":[4,1,79],"96":[1,1,79],"97":[1,1,3],"98":[4,1,81],"99":[1,1,128],"100":[4,1,11],"101":[3,1,56],"102":[3,1,46],"103":[4,1,48],"104":[4,1,40],"105":[5,1,40],"106":[5,1,44],"107":[1,1,3],"108":[4,1,67],"109":[1,1,78],"110":[2,1,149],"111":[1,1,3],"112":[4,1,68],"113":[1,1,110],"114":[4,1,10],"115":[3,1,57],"116":[3,1,58],"117":[3,1,47],"118":[3,1,33],"119":[5,1,39],"120":[5,1,44],"121":[3,1,432],"122":[1,1,3],"123":[4,1,82],"124":[1,1,244],"125":[2,1,3],"126":[4,2,80],"127":[1,2,76],"128":[1,1,3],"129":[4,1,72],"130":[1,1,129],"131":[4,1,11],"132":[3,1,63],"133":[3,1,53],"134":[4,1,53],"135":[3,1,38],"136":[5,1,39],"137":[5,1,42],"138":[1,1,3],"139":[4,1,70],"140":[1,1,125],"141":[4,1,11],"142":[3,1,69],"143":[3,1,52],"144":[3,1,61],"145":[3,1,40],"146":[5,1,39],"147":[5,1,42],"148":[1,1,4],"149":[1,1,21],"150":[1,1,206],"151":[3,1,513],"152":[3,1,43],"153":[1,1,114],"154":[1,1,1],"155":[1,2,152],"156":[4,1,114],"157":[2,1,36],"158":[1,1,503],"159":[1,1,290],"160":[2,1,51],"161":[6,1,218],"162":[1,1,152],"163":[1,1,105],"164":[3,1,111],"165":[1,1,166],"166":[1,1,283],"167":[1,1,80],"168":[2,1,54],"169":[1,2,83],"170":[1,2,83],"171":[2,1,41],"172":[1,2,109],"173":[2,2,106],"174":[2,1,77],"175":[1,2,66],"176":[1,2,135],"177":[2,1,71],"178":[2,1,56],"179":[5,1,74],"180":[2,1,132],"181":[3,2,77],"182":[1,1,76],"183":[1,1,147],"184":[1,1,268],"185":[1,1,221],"186":[2,1,44],"187":[1,2,67],"188":[1,2,391],"189":[4,1,75],"190":[4,1,186],"191":[4,1,85],"192":[2,1,149],"193":[2,1,111],"194":[2,1,58],"195":[1,1,37],"196":[1,1,147],"197":[2,1,129],"198":[3,1,118],"199":[2,1,52],"200":[2,1,60],"201":[4,2,191],"202":[13,2,241],"203":[9,2,130],"204":[7,2,63],"205":[4,2,140],"206":[2,1,141],"207":[2,2,137],"208":[3,2,117],"209":[3,2,68]},"averageFieldLength":[2.7428571428571407,1.6952380952380952,103.77619047619051],"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":"Manifolds","titles":[]},"18":{"title":"What manifolds are available?","titles":["Manifolds"]},"19":{"title":"Why this is needed","titles":["Manifolds"]},"20":{"title":"How this is done","titles":["Manifolds"]},"21":{"title":"Algorithms and manifolds","titles":["Manifolds"]},"22":{"title":"Paradigms","titles":[]},"23":{"title":"apply","titles":["Paradigms"]},"24":{"title":"applyreduce","titles":["Paradigms","apply"]},"25":{"title":"fix and prepare","titles":["Paradigms"]},"26":{"title":"Peculiarities","titles":[]},"27":{"title":"What does apply return and why?","titles":["Peculiarities"]},"28":{"title":"Why do you want me to provide a target in set operations?","titles":["Peculiarities"]},"29":{"title":"_True and _False (or BoolsAsTypes)","titles":["Peculiarities"]},"30":{"title":"What is GeometryOps.jl?","titles":[]},"31":{"title":"How to navigate the docs","titles":[]},"32":{"title":"Introduction","titles":[]},"33":{"title":"Main concepts","titles":["Introduction"]},"34":{"title":"The apply paradigm","titles":["Introduction","Main concepts"]},"35":{"title":"What's this GeoInterface.Wrapper thing?","titles":["Introduction","Main concepts"]},"36":{"title":"GeometryOps.jl","titles":[]},"37":{"title":"Segmentize","titles":[]},"38":{"title":"Simple overrides","titles":[]},"39":{"title":"Polygon set operations","titles":["Simple overrides"]},"40":{"title":"Difference","titles":["Simple overrides","Polygon set operations"]},"41":{"title":"Union","titles":["Simple overrides","Polygon set operations"]},"42":{"title":"Intersection","titles":["Simple overrides","Polygon set operations"]},"43":{"title":"Symmetric difference","titles":["Simple overrides","Polygon set operations"]},"44":{"title":"DE-9IM boolean methods","titles":["Simple overrides"]},"45":{"title":"Equals","titles":["Simple overrides","DE-9IM boolean methods"]},"46":{"title":"Disjoint","titles":["Simple overrides","DE-9IM boolean methods"]},"47":{"title":"Touches","titles":["Simple overrides","DE-9IM boolean methods"]},"48":{"title":"Crosses","titles":["Simple overrides","DE-9IM boolean methods"]},"49":{"title":"Within","titles":["Simple overrides","DE-9IM boolean methods"]},"50":{"title":"Contains","titles":["Simple overrides","DE-9IM boolean methods"]},"51":{"title":"Overlaps","titles":["Simple overrides","DE-9IM boolean methods"]},"52":{"title":"Covers","titles":["Simple overrides","DE-9IM boolean methods"]},"53":{"title":"CoveredBy","titles":["Simple overrides","DE-9IM boolean methods"]},"54":{"title":"Intersects","titles":["Simple overrides","DE-9IM boolean methods"]},"55":{"title":"Convex hull","titles":["Simple overrides"]},"56":{"title":"Angles","titles":[]},"57":{"title":"What is angles?","titles":["Angles"]},"58":{"title":"Implementation","titles":["Angles"]},"59":{"title":"Area and signed area","titles":[]},"60":{"title":"What is area? What is signed area?","titles":["Area and signed area"]},"61":{"title":"Implementation","titles":["Area and signed area"]},"62":{"title":"Barycentric coordinates","titles":[]},"63":{"title":"Example","titles":["Barycentric coordinates"]},"64":{"title":"Barycentric-coordinate API","titles":["Barycentric coordinates"]},"65":{"title":"Buffer","titles":[]},"66":{"title":"Centroid","titles":[]},"67":{"title":"What is the centroid?","titles":["Centroid"]},"68":{"title":"Implementation","titles":["Centroid"]},"69":{"title":"Polygon clipping helpers","titles":[]},"70":{"title":"What is coverage?","titles":[]},"71":{"title":"Implementation","titles":[]},"72":{"title":"Polygon cutting","titles":[]},"73":{"title":"What is cut?","titles":["Polygon cutting"]},"74":{"title":"Implementation","titles":["Polygon cutting"]},"75":{"title":"Difference Polygon Clipping","titles":[]},"76":{"title":"Helper functions for Differences with Greiner and Hormann Polygon Clipping","titles":[]},"77":{"title":"Geometry Intersection","titles":[]},"78":{"title":"Helper functions for Intersections with Greiner and Hormann Polygon Clipping","titles":[]},"79":{"title":"If we want to inject adaptivity, we would do something like:","titles":[]},"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":"Union Polygon Clipping","titles":[]},"87":{"title":"Helper functions for Unions with Greiner and Hormann Polygon Clipping","titles":[]},"88":{"title":"Equals","titles":[]},"89":{"title":"What is equals?","titles":["Equals"]},"90":{"title":"Implementation","titles":["Equals"]},"91":{"title":"Distance and signed distance","titles":[]},"92":{"title":"What is distance? What is signed distance?","titles":["Distance and signed distance"]},"93":{"title":"Implementation","titles":["Distance and signed distance"]},"94":{"title":"Contains","titles":[]},"95":{"title":"What is contains?","titles":["Contains"]},"96":{"title":"Implementation","titles":["Contains"]},"97":{"title":"CoveredBy","titles":[]},"98":{"title":"What is coveredby?","titles":["CoveredBy"]},"99":{"title":"Implementation","titles":["CoveredBy"]},"100":{"title":"Convert features to geometries","titles":[]},"101":{"title":"Points coveredby geometries","titles":[]},"102":{"title":"Lines coveredby geometries","titles":[]},"103":{"title":"Rings covered by geometries","titles":[]},"104":{"title":"Polygons covered by geometries","titles":[]},"105":{"title":"Geometries coveredby multi-geometry/geometry collections","titles":[]},"106":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"107":{"title":"Covers","titles":[]},"108":{"title":"What is covers?","titles":["Covers"]},"109":{"title":"Implementation","titles":["Covers"]},"110":{"title":"Crossing checks","titles":[]},"111":{"title":"Disjoint","titles":[]},"112":{"title":"What is disjoint?","titles":["Disjoint"]},"113":{"title":"Implementation","titles":["Disjoint"]},"114":{"title":"Convert features to geometries","titles":[]},"115":{"title":"Point disjoint geometries","titles":[]},"116":{"title":"Lines disjoint geometries","titles":[]},"117":{"title":"Rings disjoint geometries","titles":[]},"118":{"title":"Polygon disjoint geometries","titles":[]},"119":{"title":"Geometries disjoint multi-geometry/geometry collections","titles":[]},"120":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"121":{"title":"Line-curve interaction","titles":[]},"122":{"title":"Overlaps","titles":[]},"123":{"title":"What is overlaps?","titles":["Overlaps"]},"124":{"title":"Implementation","titles":["Overlaps"]},"125":{"title":"Intersection checks","titles":[]},"126":{"title":"What is intersects?","titles":["Intersection checks"]},"127":{"title":"Implementation","titles":["Intersection checks"]},"128":{"title":"Within","titles":[]},"129":{"title":"What is within?","titles":["Within"]},"130":{"title":"Implementation","titles":["Within"]},"131":{"title":"Convert features to geometries","titles":[]},"132":{"title":"Points within geometries","titles":[]},"133":{"title":"Lines within geometries","titles":[]},"134":{"title":"Rings covered by geometries","titles":[]},"135":{"title":"Polygons within geometries","titles":[]},"136":{"title":"Geometries within multi-geometry/geometry collections","titles":[]},"137":{"title":"Multi-geometry/geometry collections within geometries","titles":[]},"138":{"title":"Touches","titles":[]},"139":{"title":"What is touches?","titles":["Touches"]},"140":{"title":"Implementation","titles":["Touches"]},"141":{"title":"Convert features to geometries","titles":[]},"142":{"title":"Point touches geometries","titles":[]},"143":{"title":"Lines touching geometries","titles":[]},"144":{"title":"Rings touch geometries","titles":[]},"145":{"title":"Polygons touch geometries","titles":[]},"146":{"title":"Geometries touch multi-geometry/geometry collections","titles":[]},"147":{"title":"Multi-geometry/geometry collections cross geometries","titles":[]},"148":{"title":"Orientation","titles":[]},"149":{"title":"isclockwise","titles":["Orientation"]},"150":{"title":"isconcave","titles":["Orientation"]},"151":{"title":"Polygonizing raster data","titles":[]},"152":{"title":"Not implemented yet","titles":[]},"153":{"title":"apply","titles":[]},"154":{"title":"Docstrings","titles":["apply"]},"155":{"title":"Functions","titles":["apply","Docstrings"]},"156":{"title":"What is apply?","titles":["apply"]},"157":{"title":"Embedding:","titles":["apply"]},"158":{"title":"Threading","titles":["apply"]},"159":{"title":"applyreduce","titles":[]},"160":{"title":"Keyword docs","titles":[]},"161":{"title":"Other primitives (unwrap, flatten, etc)","titles":[]},"162":{"title":"Algorithms","titles":[]},"163":{"title":"BoolsAsTypes","titles":[]},"164":{"title":"Errors and exceptions","titles":[]},"165":{"title":"Operations","titles":[]},"166":{"title":"Manifolds","titles":[]},"167":{"title":"TraitTarget","titles":[]},"168":{"title":"Closed Rings","titles":[]},"169":{"title":"Example","titles":["Closed Rings"]},"170":{"title":"Implementation","titles":["Closed Rings"]},"171":{"title":"Geometry Corrections","titles":[]},"172":{"title":"Interface","titles":["Geometry Corrections"]},"173":{"title":"Available corrections","titles":["Geometry Corrections"]},"174":{"title":"Intersecting Polygons","titles":[]},"175":{"title":"Example","titles":["Intersecting Polygons"]},"176":{"title":"Implementation","titles":["Intersecting Polygons"]},"177":{"title":"Extent embedding","titles":[]},"178":{"title":"Coordinate flipping","titles":[]},"179":{"title":"Force dimensions (xy, xyz)","titles":[]},"180":{"title":"Geometry reprojection","titles":[]},"181":{"title":"Method error handling","titles":["Geometry reprojection"]},"182":{"title":"Segmentize","titles":[]},"183":{"title":"Examples","titles":["Segmentize"]},"184":{"title":"Benchmark","titles":["Segmentize"]},"185":{"title":"Implementation","titles":["Segmentize"]},"186":{"title":"Geometry simplification","titles":[]},"187":{"title":"Examples","titles":["Geometry simplification"]},"188":{"title":"Benchmark","titles":["Geometry simplification"]},"189":{"title":"Simplify with RadialDistance Algorithm","titles":[]},"190":{"title":"Simplify with DouglasPeucker Algorithm","titles":[]},"191":{"title":"Simplify with VisvalingamWhyatt Algorithm","titles":[]},"192":{"title":"Shared utils","titles":[]},"193":{"title":"Pointwise transformation","titles":[]},"194":{"title":"Tuple conversion","titles":[]},"195":{"title":"Types","titles":[]},"196":{"title":"GEOS","titles":["Types"]},"197":{"title":"Utility functions","titles":[]},"198":{"title":"eachedge, to_edgelist","titles":[]},"199":{"title":"Geodesic paths","titles":[]},"200":{"title":"Creating Geometry","titles":[]},"201":{"title":"Creating and plotting geometries","titles":["Creating Geometry"]},"202":{"title":"Plot geometries on a map using GeoMakie and coordinate reference system (CRS)","titles":["Creating Geometry"]},"203":{"title":"Create geospatial geometries with embedded coordinate reference system information","titles":["Creating Geometry"]},"204":{"title":"Creating a table with attributes and geometry","titles":["Creating Geometry"]},"205":{"title":"Saving your geospatial data","titles":["Creating Geometry"]},"206":{"title":"Spatial joins","titles":[]},"207":{"title":"Simple example","titles":["Spatial joins"]},"208":{"title":"Real-world example","titles":["Spatial joins"]},"209":{"title":"Enabling custom predicates","titles":["Spatial joins"]}},"dirtCount":0,"index":[["⋮",{"2":{"202":1}}],["θ",{"2":{"201":7,"202":3,"203":5}}],["☁",{"2":{"201":1}}],["✈",{"2":{"201":1}}],["÷",{"2":{"158":2,"159":2}}],["ϵ",{"2":{"78":5}}],["∘",{"2":{"78":1,"124":2,"151":2,"172":1,"188":2,"209":2}}],["⊻",{"2":{"69":1,"76":2}}],["≥",{"2":{"69":1,"121":2,"176":1,"190":1}}],["α≈1",{"2":{"78":1}}],["α≈0",{"2":{"78":1}}],["α2",{"2":{"69":4,"78":2}}],["α",{"2":{"69":3,"78":28,"121":7}}],["α1",{"2":{"69":4,"78":2}}],["β2",{"2":{"69":4,"78":2}}],["β",{"2":{"69":4,"78":28,"121":7}}],["β1",{"2":{"69":4,"78":2}}],["≤",{"2":{"69":5,"71":14,"121":6,"190":1,"192":1,"197":4}}],["^",{"2":{"202":1}}],["^3",{"2":{"202":1}}],["^n",{"2":{"150":1}}],["^2",{"2":{"68":2,"93":2}}],["^hormannpresentation",{"2":{"64":2}}],["∑λ",{"2":{"64":2}}],["∑i=2n",{"2":{"6":1}}],["`$",{"2":{"196":1}}],["`$a",{"2":{"164":1}}],["`equatorial",{"2":{"184":2}}],["`extents",{"2":{"177":1}}],["`err`",{"2":{"69":2}}],["`inf`",{"2":{"180":1}}],["`inv",{"2":{"166":1}}],["`intersects`",{"2":{"127":1}}],["`intersectingpolygons`",{"2":{"75":1,"77":1,"86":1}}],["`90`",{"2":{"166":1}}],["`libgeos",{"2":{"196":1}}],["`linearring`",{"2":{"185":1}}],["`linestring`",{"2":{"185":1}}],["`linestringtrait`",{"2":{"172":1}}],["`line2`",{"2":{"150":1}}],["`line1`",{"2":{"150":1}}],["`line",{"2":{"77":4}}],["`lat`",{"2":{"166":1}}],["`lon`",{"2":{"166":1}}],["`z`",{"2":{"166":1,"179":1}}],["``1",{"2":{"166":1}}],["``a``",{"2":{"166":1}}],["``r",{"2":{"166":1}}],["```jldoctest",{"2":{"74":1,"75":1,"77":1,"78":1,"86":1,"90":1,"96":1,"99":1,"109":1,"113":1,"124":1,"127":1,"130":1,"140":1,"150":1,"188":1}}],["```julia",{"2":{"6":2,"64":1,"69":1,"110":1,"150":1,"158":1,"167":1,"193":2}}],["```math",{"2":{"64":1,"150":1}}],["```",{"2":{"11":1,"64":3,"69":1,"74":1,"75":1,"77":1,"86":1,"90":1,"96":1,"99":1,"109":1,"113":1,"124":1,"127":1,"130":1,"140":1,"150":3,"151":11,"158":1,"188":1,"193":2,"197":1}}],["`prefilter",{"2":{"188":1}}],["`proj",{"2":{"180":1,"184":2}}],["`planar`",{"2":{"166":1,"185":2}}],["`polgontrait`",{"2":{"158":1}}],["`polygontrait`",{"2":{"158":1,"172":1}}],["`polygonize`",{"2":{"151":2}}],["`polygon`",{"2":{"64":3,"185":1}}],["`polys`",{"2":{"76":1}}],["`poly",{"2":{"76":3,"78":1,"87":1}}],["`pointrait`",{"2":{"188":1}}],["`pointtrait`",{"2":{"161":3,"172":1}}],["`point",{"2":{"121":3}}],["`point`",{"2":{"64":4,"93":1}}],["`point2f`",{"2":{"63":1}}],["`obj`",{"2":{"161":1,"193":1,"194":1}}],["`op`",{"2":{"159":2}}],["`calc",{"2":{"160":1}}],["`crs`",{"2":{"160":1}}],["`components`",{"2":{"161":1}}],["`collect`",{"2":{"159":1}}],["`covers`",{"2":{"99":1,"109":1}}],["`coveredby`",{"2":{"99":1,"109":1}}],["`contains`",{"2":{"96":1,"130":1}}],["`convex",{"2":{"85":2}}],["`+`",{"2":{"159":1}}],["`union",{"2":{"151":2}}],["`unionintersectingpolygons`",{"2":{"176":1}}],["`unionintersectingpolygons",{"2":{"75":1,"76":2,"77":1,"78":2,"86":1,"87":2}}],["`ys`",{"2":{"151":1}}],["`flattening`",{"2":{"184":1}}],["`flattening",{"2":{"184":1}}],["`flatten`",{"2":{"161":1}}],["`f",{"2":{"158":1}}],["`featurecollectiontrait`",{"2":{"158":1,"161":1}}],["`featurecollection`",{"2":{"151":2}}],["`featuretrait`",{"2":{"158":2,"161":1}}],["`feature`s",{"2":{"151":1}}],["`f`",{"2":{"151":5,"158":3,"159":1,"161":2,"193":2,"196":1}}],["`false`",{"2":{"150":1,"151":1,"160":4,"163":1,"180":1}}],["`fix",{"2":{"75":2,"76":2,"77":2,"78":2,"86":2,"87":2}}],["`within`",{"2":{"96":1,"130":1}}],["`weight`",{"2":{"64":1}}],["`douglaspeucker`",{"2":{"188":1}}],["`doublestrtree`",{"2":{"69":1}}],["`d`",{"2":{"180":1}}],["`difference`",{"2":{"176":1}}],["`disjoint`",{"2":{"127":1}}],["`delaunaytriangulation",{"2":{"85":1}}],["`geos`",{"2":{"196":3}}],["`geodesicsegments`",{"2":{"183":1}}],["`geodesic`",{"2":{"166":1,"184":2,"185":2}}],["`geointerface`",{"2":{"172":1}}],["`geointerface",{"2":{"158":1,"161":2,"180":2}}],["`geom`",{"2":{"93":3,"161":1,"185":1}}],["`geometrycollection`",{"2":{"185":1}}],["`geometrycorrection`",{"2":{"170":1,"172":1,"176":2}}],["`geometry`",{"2":{"158":1,"180":2}}],["`geometrybasics",{"2":{"64":3}}],["`geometries`",{"2":{"85":1}}],["`g1`",{"2":{"93":1}}],["`gi",{"2":{"85":1,"151":1,"198":1}}],["`tuple",{"2":{"197":1}}],["`tuple`s",{"2":{"194":1}}],["`tuple`",{"2":{"151":1,"194":1}}],["`time`",{"2":{"180":1}}],["`transform`",{"2":{"180":1}}],["`true`",{"2":{"99":1,"110":1,"113":2,"130":1,"140":1,"150":2,"151":1,"160":2,"163":1,"180":1}}],["`threaded`",{"2":{"160":1}}],["`threaded==true`",{"2":{"159":1}}],["`tol`",{"2":{"188":2,"189":3,"190":2,"191":3,"192":4}}],["`to",{"2":{"78":1}}],["`target",{"2":{"180":3}}],["`target`",{"2":{"77":1,"158":2,"159":1,"161":1,"167":1}}],["`tables",{"2":{"158":1}}],["`taget`",{"2":{"75":1,"86":1}}],["`number`",{"2":{"188":2,"192":3}}],["`namedtuple`",{"2":{"158":1}}],["`next",{"2":{"69":1}}],["`nestedloop`",{"2":{"69":1}}],["`nothing`",{"2":{"69":2,"160":1}}],["`alg",{"2":{"196":1}}],["`alg`",{"2":{"192":1}}],["`algorithm`",{"2":{"164":1}}],["`always",{"2":{"180":1}}],["`application",{"2":{"172":1}}],["`apply`",{"2":{"158":1,"167":1}}],["`automanifold`",{"2":{"166":1}}],["`autoaccelerator`",{"2":{"69":1}}],["`abstractgeometrytrait`",{"2":{"161":1}}],["`abstractarray`",{"2":{"161":1}}],["`abstractmatrix`",{"2":{"151":1}}],["`accelerator",{"2":{"69":1}}],["`method",{"2":{"185":1}}],["`method`",{"2":{"64":3}}],["`multipointtrait`",{"2":{"158":1,"188":1}}],["`multipolygontrait`",{"2":{"158":1}}],["`multipolygon`",{"2":{"151":3,"185":1}}],["`multipolygon",{"2":{"76":3,"78":3,"87":2}}],["`multipoly",{"2":{"76":7,"78":3,"87":3}}],["`minpoints`",{"2":{"151":2}}],["`max",{"2":{"184":4,"185":3,"196":1}}],["`map`",{"2":{"158":1}}],["`makie",{"2":{"151":1}}],["`manifold",{"2":{"69":1}}],["`boolsastypes`",{"2":{"163":1}}],["`bool`",{"2":{"151":2}}],["`buffer`",{"2":{"65":1}}],["`barycentric",{"2":{"64":3}}],["`radialdistance`",{"2":{"188":1}}],["`ratio`",{"2":{"188":2,"192":3}}],["`reproject`",{"2":{"181":1}}],["`rebuild`",{"2":{"161":1}}],["`r`",{"2":{"64":1}}],["`rᵢ`",{"2":{"64":1}}],["`svector`",{"2":{"193":3}}],["`simplifyalg`",{"2":{"188":2}}],["`simplify",{"2":{"188":1}}],["`simplify`",{"2":{"188":2}}],["`singlemanifoldalgorithm`",{"2":{"164":1}}],["`singlestrtree`",{"2":{"69":1}}],["`segmentize`",{"2":{"196":1}}],["`segmentize",{"2":{"185":2}}],["`semimajor",{"2":{"166":1}}],["`source",{"2":{"180":3}}],["`spherical`",{"2":{"166":1,"185":1}}],["`s`",{"2":{"64":1}}],["`sᵢ`",{"2":{"64":2}}],["`s2`",{"2":{"64":1}}],["`s1`",{"2":{"64":1}}],["`hcat`",{"2":{"64":1}}],["`x`",{"2":{"158":1,"163":1}}],["`xs`",{"2":{"151":1}}],["`x1",{"2":{"64":1}}],["`x1`",{"2":{"64":2}}],["`x2`",{"2":{"64":1}}],["`visvalingamwhyatt`",{"2":{"188":1}}],["`vector",{"2":{"180":1}}],["`vector`",{"2":{"151":1,"158":1}}],["`vᵢ`",{"2":{"64":1}}],["`v`",{"2":{"64":1}}],["`values`",{"2":{"64":1,"151":1}}],["`λs`",{"2":{"64":2}}],["`",{"2":{"64":2,"75":1,"76":2,"77":1,"78":3,"86":1,"87":2,"151":3,"158":2,"159":1,"164":1,"166":1,"172":2,"180":2,"185":1,"188":3,"196":2,"197":1,"198":2}}],["λ₁",{"2":{"64":2}}],["λn",{"2":{"62":1}}],["λ3",{"2":{"62":1}}],["λ2",{"2":{"62":2}}],["λ1",{"2":{"62":2}}],["λs",{"2":{"5":3,"6":4,"64":27}}],["π",{"2":{"58":1,"188":1}}],["δbay",{"2":{"78":3}}],["δbax",{"2":{"78":3}}],["δby",{"2":{"78":5}}],["δbx",{"2":{"78":5}}],["δb",{"2":{"78":2}}],["δay",{"2":{"78":5}}],["δax",{"2":{"78":5}}],["δa",{"2":{"78":2}}],["δintrs",{"2":{"69":2}}],["δy2",{"2":{"150":2}}],["δy1",{"2":{"150":2}}],["δyl",{"2":{"124":4}}],["δy",{"2":{"58":8,"71":3,"121":7}}],["δys",{"2":{"58":1}}],["δx2",{"2":{"150":2}}],["δx1",{"2":{"150":2}}],["δxl",{"2":{"124":4}}],["δx",{"2":{"58":9,"71":3,"121":7}}],["∈",{"2":{"14":1}}],["~",{"2":{"14":3}}],["$ratio",{"2":{"192":1}}],["$rectangle",{"2":{"184":2}}],["$number",{"2":{"192":1}}],["$name",{"2":{"36":2}}],["$min",{"2":{"192":1}}],["$simplify",{"2":{"188":1,"189":1,"191":1}}],["$lg",{"2":{"184":1}}],["$lin",{"2":{"184":2}}],["$geom",{"2":{"188":8}}],["$geo",{"2":{"184":1}}],["$douglas",{"2":{"188":1,"190":1}}],["$d",{"2":{"164":1}}],["$calc",{"2":{"160":1}}],["$crs",{"2":{"160":1,"177":1}}],["$apply",{"2":{"158":1,"178":1,"180":1,"188":1}}],["$alg",{"2":{"76":1,"78":1}}],["$tol",{"2":{"192":1}}],["$threaded",{"2":{"160":1}}],["$t",{"2":{"90":1,"158":2,"159":2}}],["$target",{"2":{"76":1,"78":1,"87":1,"161":3}}],["$trait",{"2":{"74":1,"76":2,"78":2,"87":2}}],["$",{"2":{"13":4,"14":1,"64":4,"151":3,"172":4,"185":4,"188":12,"196":1}}],["|=",{"2":{"121":4,"124":1}}],["||",{"2":{"58":2,"69":11,"71":8,"74":1,"77":1,"78":5,"86":1,"90":18,"110":2,"121":8,"124":1,"142":1,"151":7,"190":1,"192":3}}],["|",{"2":{"11":4,"121":1}}],["|>",{"2":{"11":8,"13":2,"161":3,"183":1,"184":1,"188":3,"208":2}}],["↩︎",{"2":{"6":1}}],["ᵢᵢᵢ₊₁ᵢᵢ₊₁ᵢᵢ₊₁tᵢ=det",{"2":{"6":1}}],["⋅",{"2":{"6":1,"64":1}}],["qy",{"2":{"13":2,"14":2}}],["qx",{"2":{"13":2,"14":2}}],["q",{"2":{"13":13,"14":12,"69":4}}],["qhull",{"2":{"6":1,"85":1}}],["queue",{"2":{"190":41}}],["questions",{"2":{"78":1}}],["query",{"2":{"69":4}}],["queries",{"2":{"36":1}}],["quite",{"2":{"69":1,"169":1,"208":1}}],["quickly",{"2":{"20":1}}],["quickhull",{"2":{"6":1,"80":1,"85":2}}],["quick",{"2":{"4":1,"6":1,"64":1,"177":1,"187":1}}],["quality",{"2":{"6":1,"188":1}}],["quantity",{"2":{"6":1,"184":1}}],["quot",{"2":{"1":4,"6":6,"25":2,"69":14,"90":2,"92":2,"93":2,"108":4,"121":10,"155":4,"156":2,"158":2,"159":2,"182":6,"201":2,"207":2}}],["zone",{"2":{"202":1}}],["zoom",{"2":{"14":1}}],["zs",{"2":{"151":5}}],["zip",{"2":{"13":1,"14":1,"201":4,"202":1,"203":1}}],["zeros",{"2":{"64":1,"71":1}}],["zero",{"2":{"4":6,"6":8,"61":11,"68":3,"69":4,"71":11,"78":22,"92":1,"93":3,"150":1,"158":1,"190":4}}],["z",{"2":{"4":1,"5":1,"6":7,"64":3,"90":3,"151":3,"166":1,"178":1,"179":9,"193":1,"194":1}}],["0e6",{"2":{"202":6}}],["0example",{"2":{"6":1}}],["09",{"2":{"63":1}}],["08",{"2":{"63":1}}],["06",{"2":{"63":1}}],["02",{"2":{"63":3}}],["04",{"2":{"63":6}}],["071",{"2":{"183":2,"184":2}}],["07",{"2":{"63":6,"183":6,"184":6}}],["00111595449914",{"2":{"201":1}}],["001115954499138",{"2":{"201":3}}],["001",{"2":{"188":1}}],["000008144045314",{"2":{"203":1}}],["00001e6",{"2":{"202":1}}],["00085222666982",{"2":{"203":3}}],["000",{"2":{"188":1,"199":1}}],["00",{"2":{"63":2}}],["008696",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1}}],["05",{"2":{"63":1}}],["052704767595",{"2":{"15":1}}],["03",{"2":{"63":4}}],["01592650896568995",{"2":{"201":1}}],["01362848005",{"2":{"15":1}}],["01",{"2":{"14":1,"63":1,"183":1,"184":1,"201":1,"202":1,"203":1}}],["0^",{"2":{"13":2,"14":2}}],["0+2",{"2":{"13":2,"14":2}}],["0",{"2":{"3":35,"4":12,"6":191,"11":1,"13":5,"14":8,"15":32,"57":20,"58":3,"60":9,"61":4,"63":155,"64":2,"67":6,"68":6,"69":50,"70":13,"71":5,"73":22,"74":49,"75":42,"77":2,"78":21,"83":1,"86":46,"87":2,"89":13,"90":18,"92":20,"93":2,"95":16,"98":6,"99":6,"108":6,"109":12,"110":9,"112":15,"121":37,"123":13,"124":9,"129":16,"139":12,"140":11,"150":21,"151":7,"165":2,"166":1,"169":15,"175":32,"176":4,"179":2,"183":16,"184":13,"185":2,"188":11,"190":7,"192":4,"197":2,"201":35,"202":2,"203":10,"207":13}}],[">=",{"2":{"64":6,"69":1,"110":4,"124":1,"192":1}}],[">geometryops",{"2":{"6":2}}],[">",{"2":{"1":1,"6":6,"11":2,"13":1,"15":2,"55":1,"58":1,"64":1,"69":19,"71":3,"74":5,"75":1,"76":1,"78":2,"86":1,"87":3,"90":1,"92":1,"110":8,"121":10,"124":2,"150":4,"151":12,"161":6,"172":1,"176":3,"185":3,"188":1,"190":12,"192":3,"193":1,"197":1,"208":1}}],["999999967681458e6",{"2":{"202":2}}],["999974634566875",{"2":{"201":1}}],["97",{"2":{"63":1}}],["94",{"2":{"63":1}}],["92",{"2":{"63":1}}],["9im",{"0":{"44":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"121":2,"206":1}}],["9833",{"2":{"15":1}}],["95770326033",{"2":{"15":1}}],["95",{"2":{"13":1,"14":1,"199":1}}],["900",{"2":{"184":1}}],["90063612163",{"2":{"11":2}}],["90`",{"2":{"166":1}}],["90",{"2":{"57":9,"63":1}}],["909318372607",{"2":{"11":3}}],["961329",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1}}],["9",{"2":{"1":1,"6":1,"121":2,"150":12,"183":1,"193":1}}],["897070",{"2":{"199":1}}],["88",{"2":{"63":1}}],["86",{"2":{"63":1}}],["868447876892",{"2":{"15":2}}],["84",{"2":{"63":1}}],["82",{"2":{"63":1}}],["800",{"2":{"63":1}}],["80000",{"2":{"15":5}}],["80",{"2":{"63":1}}],["80869813739",{"2":{"15":2}}],["856614689791036e",{"2":{"15":2}}],["83572303404496",{"2":{"6":2,"77":1,"78":1}}],["8",{"2":{"1":3,"6":9,"13":1,"14":1,"75":2,"86":4,"121":1,"151":3,"166":1,"183":1,"193":3,"203":2}}],["karnataka",{"2":{"208":1}}],["kbn",{"2":{"11":2}}],["kinds",{"2":{"28":1,"164":1}}],["kind",{"2":{"9":1,"69":1,"151":1,"206":1}}],["k",{"2":{"6":1,"14":6,"64":1,"69":5,"121":5,"201":5,"203":5}}],["kernel",{"2":{"185":4}}],["keepat",{"2":{"86":1,"176":2}}],["keep",{"2":{"69":3,"151":1,"176":14,"183":1,"207":1}}],["keeping",{"2":{"6":1,"158":1,"178":1}}],["kept",{"2":{"6":1,"179":1}}],["keys",{"2":{"151":4,"158":1}}],["key",{"2":{"6":1,"151":4,"158":2,"196":5}}],["keyword",{"0":{"160":1},"2":{"6":8,"28":1,"36":3,"75":1,"77":1,"86":1,"158":1,"160":7,"177":2,"184":2,"196":4,"202":1,"203":1}}],["keywords",{"2":{"1":2,"4":1,"6":10,"36":1,"121":2,"151":1,"158":1,"160":1,"177":1,"178":2,"180":3,"188":8,"189":1,"190":1,"191":1,"192":1,"194":2}}],["known",{"2":{"20":1,"71":2}}],["know",{"2":{"6":3,"58":2,"69":3,"71":1,"75":1,"77":1,"78":2,"86":1,"87":1,"158":1,"207":1}}],["kw2",{"2":{"162":4}}],["kw1",{"2":{"162":4}}],["kwargs",{"2":{"37":2,"65":3,"71":1,"74":1,"75":7,"76":3,"77":8,"78":5,"86":7,"87":12,"162":8,"164":1,"172":2,"181":1,"184":1}}],["kwdef",{"2":{"36":1,"69":1,"166":2,"184":1,"189":1,"190":1,"191":1}}],["kw",{"2":{"1":1,"6":10,"121":10,"151":20,"155":1,"158":18,"159":3,"161":2,"178":3,"188":15,"191":1,"193":3,"194":3,"196":6}}],["json",{"2":{"205":3}}],["jstep",{"2":{"90":3}}],["jstart",{"2":{"90":7}}],["joined",{"2":{"207":4}}],["joins",{"0":{"206":1},"1":{"207":1,"208":1,"209":1},"2":{"206":3}}],["joinpath",{"2":{"188":2}}],["join",{"2":{"158":2,"159":2,"206":4,"207":5,"209":1}}],["joining",{"2":{"6":2,"188":1,"206":1}}],["jpn",{"2":{"208":2}}],["jp",{"2":{"90":2}}],["jhole",{"2":{"90":2}}],["jh",{"2":{"87":5}}],["j+1",{"2":{"69":1,"151":1,"192":1}}],["j",{"2":{"69":32,"90":8,"110":9,"121":12,"150":2,"151":8,"192":2}}],["jet",{"2":{"63":1}}],["just",{"2":{"4":1,"6":2,"37":1,"68":1,"69":7,"78":4,"84":1,"87":1,"93":2,"151":1,"156":1,"158":2,"159":1,"162":1,"184":1,"185":1,"206":1}}],["julialand",{"2":{"202":2}}],["julialines",{"2":{"60":1}}],["julialinearsegments",{"2":{"6":1}}],["juliahole",{"2":{"201":1}}],["juliaplot",{"2":{"202":2}}],["juliap1",{"2":{"201":1}}],["juliapoly",{"2":{"202":1}}],["juliapolygon3",{"2":{"202":1}}],["juliapolygon1",{"2":{"201":1}}],["juliapolygonize",{"2":{"6":1}}],["juliapolygon",{"2":{"6":1}}],["juliapoints",{"2":{"207":1}}],["juliapoint",{"2":{"201":1}}],["juliaxoffset",{"2":{"201":3,"203":1}}],["juliax",{"2":{"201":2}}],["juliaxrange",{"2":{"92":1}}],["julia$apply",{"2":{"194":1}}],["julia$threaded",{"2":{"177":1}}],["julia6",{"2":{"188":1}}],["julia```jldoctest",{"2":{"197":1}}],["julia```julia",{"2":{"151":1}}],["julia```",{"2":{"110":1,"167":1}}],["julia1",{"2":{"75":1,"77":1,"78":1,"86":1}}],["julia2",{"2":{"74":1}}],["juliabase",{"2":{"64":1,"93":4,"196":1}}],["juliabarycentric",{"2":{"5":3,"6":3}}],["juliagi",{"2":{"11":2}}],["juliago",{"2":{"11":1,"57":1,"60":1,"70":1,"89":1,"95":1,"98":1,"108":1,"112":1,"123":1,"126":1,"129":1,"139":1,"206":1}}],["juliageopoly1",{"2":{"203":1}}],["juliageometry",{"2":{"85":1}}],["juliageointerface",{"2":{"69":1,"197":1}}],["juliageo",{"2":{"6":2,"20":1,"166":1}}],["juliageodesicsegments",{"2":{"6":1}}],["juliageos",{"2":{"6":1}}],["juliaweighted",{"2":{"6":1}}],["juliawithin",{"2":{"3":1,"6":1}}],["juliaunwrap",{"2":{"161":7}}],["juliaunion",{"2":{"6":1,"165":1}}],["juliaunionintersectingpolygons",{"2":{"6":1,"173":1}}],["juliausing",{"2":{"6":1,"13":1,"14":1,"63":1,"183":2,"184":1,"187":1,"188":1,"204":1,"206":1}}],["juliafig",{"2":{"201":1,"202":1}}],["juliaflexijoins",{"2":{"209":1}}],["juliaflatten",{"2":{"161":1}}],["juliaflipped",{"2":{"153":1}}],["juliaflip",{"2":{"6":1}}],["juliafalse",{"2":{"150":1}}],["juliafunction",{"2":{"37":1,"40":1,"41":1,"42":1,"43":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"58":2,"64":3,"65":2,"68":1,"69":12,"71":2,"74":1,"76":1,"77":2,"78":2,"85":1,"86":2,"87":2,"93":8,"121":6,"124":2,"142":1,"152":1,"159":2,"161":4,"162":1,"181":1,"184":1,"185":1,"192":2,"198":1}}],["juliafor",{"2":{"36":1,"158":1,"159":1}}],["juliaforcexyz",{"2":{"6":1}}],["juliaforcexy",{"2":{"6":1}}],["juliafosterhormannclipping",{"2":{"6":1,"69":1}}],["juliascatter",{"2":{"207":1}}],["juliasource",{"2":{"202":2}}],["juliastruct",{"2":{"162":1,"163":1,"165":1,"166":1}}],["juliasimplify",{"2":{"6":1,"188":3}}],["juliasigned",{"2":{"4":2,"6":2}}],["juliasegmentize",{"2":{"6":1,"185":1}}],["julias1",{"2":{"6":1}}],["juliavisvalingamwhyatt",{"2":{"6":1}}],["juliaring3",{"2":{"202":1}}],["juliaring1",{"2":{"201":1}}],["juliar",{"2":{"201":2,"202":1,"203":1}}],["juliarebuild",{"2":{"161":1}}],["juliareconstruct",{"2":{"161":1}}],["juliareproject",{"2":{"1":1}}],["juliaradialdistance",{"2":{"6":1}}],["juliamy",{"2":{"209":1}}],["juliamultipoly",{"2":{"188":1}}],["juliamodule",{"2":{"36":1}}],["juliamonotonechainmethod",{"2":{"6":1}}],["juliameanvalue",{"2":{"6":1}}],["juliadf",{"2":{"204":1}}],["juliadestination",{"2":{"202":1}}],["juliadouglaspeucker",{"2":{"6":1}}],["juliadifference",{"2":{"6":1,"75":2}}],["juliadiffintersectingpolygons",{"2":{"6":1,"173":1}}],["juliadistance",{"2":{"4":1,"6":1}}],["juliadisjoint",{"2":{"3":1,"6":1}}],["juliaexport",{"2":{"56":1,"59":1,"62":1,"66":1,"72":1,"75":1,"77":1,"86":1,"88":1,"91":1,"97":1,"107":1,"111":1,"122":1,"125":1,"128":1,"138":1,"148":1,"151":1,"153":1,"159":1,"163":1,"166":1,"167":1,"168":1,"171":1,"174":1,"179":1,"180":1,"182":1,"188":1,"195":1}}],["juliaend",{"2":{"69":1,"93":1}}],["juliaenforce",{"2":{"6":1}}],["juliaenum",{"2":{"6":2}}],["juliaeachedge",{"2":{"6":1}}],["juliaembed",{"2":{"4":1,"6":1}}],["juliaequals",{"2":{"4":15,"6":15,"69":1}}],["juliaarclength",{"2":{"165":1}}],["juliaarea",{"2":{"4":1,"6":1}}],["juliaaccuratearithmetic",{"2":{"11":2}}],["juliaabstract",{"2":{"6":4,"162":1,"165":1,"166":1,"172":1,"173":1,"184":1}}],["juliaangles",{"2":{"4":1,"6":1}}],["juliaapplyreduce",{"2":{"1":1,"155":1}}],["juliaapply",{"2":{"1":1,"23":1,"155":1}}],["juliacent",{"2":{"67":1}}],["juliacentroid",{"2":{"4":1,"6":3}}],["juliacut",{"2":{"6":1}}],["juliaclosedring",{"2":{"6":1,"173":1}}],["juliaconst",{"2":{"58":1,"61":1,"64":1,"69":1,"71":2,"93":1,"99":1,"113":1,"130":1,"140":1,"160":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}}],["juliatrue",{"2":{"90":1,"96":1,"99":1,"109":1,"113":1,"124":1,"127":1,"130":1,"140":1,"150":1}}],["juliatraittarget",{"2":{"167":1}}],["juliatracinghiteverypointerror",{"2":{"6":1}}],["juliatransform",{"2":{"1":1,"6":1}}],["juliatuples",{"2":{"6":1}}],["juliato",{"2":{"6":1}}],["juliatouches",{"2":{"3":1,"6":1}}],["juliat",{"2":{"6":1}}],["juliaoverlaps",{"2":{"3":9,"6":9}}],["juliainnerjoin",{"2":{"208":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,"37":1,"57":1,"60":1,"67":1,"70":1,"82":1,"83":1,"84":1,"89":1,"92":1,"95":1,"98":1,"108":1,"112":1,"123":1,"126":1,"129":1,"139":1,"155":1,"169":2,"175":1,"183":1,"199":1,"205":4,"207":1,"208":1}}],["julia",{"2":{"3":1,"6":5,"9":1,"15":1,"30":1,"32":1,"36":1,"37":2,"58":4,"61":10,"64":8,"68":19,"69":78,"71":18,"74":10,"75":6,"76":1,"77":5,"78":30,"80":1,"85":5,"86":6,"87":4,"90":15,"92":1,"93":4,"96":1,"100":1,"101":5,"102":1,"103":1,"104":2,"105":1,"106":1,"109":1,"110":3,"114":1,"115":3,"116":1,"117":1,"118":1,"119":1,"120":1,"121":50,"124":7,"127":1,"131":1,"132":3,"133":1,"134":1,"135":2,"136":1,"137":1,"141":1,"142":3,"143":1,"144":1,"145":1,"146":1,"147":1,"150":9,"151":40,"152":2,"158":52,"159":24,"161":11,"162":2,"164":1,"170":5,"172":1,"176":3,"177":1,"178":1,"180":1,"184":1,"185":2,"188":1,"189":2,"190":15,"191":3,"193":1,"194":1,"195":1,"196":4,"197":1,"198":1,"200":2,"202":2,"205":2,"207":1}}],["julia>",{"2":{"1":5,"6":7,"150":3,"193":7}}],["juliajulia>",{"2":{"1":2,"6":3}}],["jl`",{"2":{"85":1,"180":1,"196":1}}],["jlmethod",{"2":{"6":2}}],["jlobjecttype",{"2":{"6":2}}],["jlbinding",{"2":{"6":2}}],["jldocstring",{"2":{"6":2}}],["jldoctest",{"2":{"6":1}}],["jl",{"0":{"30":1,"36":1},"2":{"1":10,"4":1,"6":15,"10":2,"11":1,"18":2,"20":1,"27":2,"30":2,"32":2,"36":46,"37":1,"55":1,"58":1,"61":1,"64":1,"65":3,"68":1,"69":3,"71":1,"74":1,"76":1,"78":1,"79":1,"80":3,"85":6,"87":1,"90":1,"93":1,"96":1,"106":1,"109":1,"110":1,"120":1,"121":1,"124":1,"127":1,"137":1,"147":1,"150":2,"151":1,"152":1,"158":2,"159":1,"160":1,"161":3,"162":1,"163":2,"164":1,"165":1,"166":2,"167":1,"170":1,"173":1,"176":1,"177":2,"178":1,"179":1,"180":4,"181":3,"182":1,"184":3,"185":2,"188":2,"192":1,"193":6,"194":2,"196":2,"198":1,"202":1,"206":1}}],["+5000000",{"2":{"202":1}}],["+proj=natearth2",{"2":{"202":2}}],["+=",{"2":{"61":2,"64":11,"68":6,"69":17,"71":10,"74":1,"90":1,"110":1,"121":5,"150":1,"176":2,"190":4,"197":3}}],["+f",{"2":{"18":1}}],["+a",{"2":{"18":1}}],["+",{"2":{"1":1,"6":1,"13":1,"14":1,"58":4,"61":1,"64":20,"68":10,"69":17,"71":7,"74":1,"78":10,"90":2,"93":3,"110":2,"121":6,"150":6,"151":2,"155":1,"176":3,"185":2,"190":3,"191":2,"192":2,"201":6,"202":1,"203":4}}],["yticklabelsvisible",{"2":{"202":1}}],["york",{"2":{"208":1}}],["yoffset",{"2":{"201":7,"203":2}}],["your",{"0":{"205":1},"2":{"23":1,"65":1,"151":1,"153":1,"166":1,"181":1,"184":1,"204":1,"205":1,"209":2}}],["you",{"0":{"28":1},"2":{"1":1,"4":1,"5":2,"6":9,"9":1,"11":1,"20":1,"22":1,"23":5,"28":1,"34":2,"58":1,"61":1,"64":8,"65":1,"68":1,"69":1,"75":1,"77":1,"84":1,"85":1,"86":1,"153":1,"158":1,"159":1,"164":1,"165":3,"166":1,"167":1,"169":1,"175":1,"181":1,"183":1,"184":1,"193":1,"202":1,"204":2,"205":3,"207":2,"208":3,"209":4}}],["y=y",{"2":{"197":1}}],["yvec",{"2":{"151":4}}],["ybounds",{"2":{"151":4}}],["yhalf",{"2":{"151":2}}],["ylast",{"2":{"93":3}}],["yfirst",{"2":{"93":5}}],["y0",{"2":{"93":5}}],["yw",{"2":{"71":4}}],["ye",{"2":{"71":4}}],["yet",{"0":{"152":1},"2":{"36":2,"64":1,"74":1,"76":1,"78":1,"87":1,"90":1,"151":1,"152":1,"172":2,"208":1}}],["y2",{"2":{"68":2,"71":18,"93":7,"110":10,"121":5,"124":4,"151":5,"185":6,"197":2}}],["y1",{"2":{"68":2,"71":22,"93":7,"110":11,"121":6,"124":5,"151":5,"185":7,"197":2}}],["ycentroid",{"2":{"68":13}}],["yrange",{"2":{"63":3,"92":3}}],["yautolimits",{"2":{"63":2}}],["yp2",{"2":{"58":4}}],["ys",{"2":{"6":3,"151":30}}],["yind+1",{"2":{"151":1}}],["yind",{"2":{"151":2}}],["yinterior",{"2":{"68":2}}],["yield",{"2":{"78":1,"184":1}}],["yields",{"2":{"6":1,"19":1,"198":1}}],["yi+yi−1",{"2":{"6":1}}],["ymax",{"2":{"6":1,"70":2,"71":48}}],["ymin",{"2":{"6":1,"70":2,"71":49}}],["y",{"2":{"1":2,"4":1,"6":3,"13":9,"14":10,"58":8,"61":2,"63":8,"67":1,"68":10,"69":5,"70":1,"71":8,"76":6,"78":8,"90":3,"92":2,"93":7,"110":21,"121":16,"124":7,"150":10,"153":2,"155":1,"158":1,"178":4,"179":4,"180":1,"185":2,"192":1,"193":2,"194":2,"197":7,"201":8,"202":2,"203":2,"206":1}}],["75",{"2":{"69":1,"92":2,"95":1,"112":1,"129":1}}],["78",{"2":{"63":1}}],["749907",{"2":{"199":1}}],["74",{"2":{"63":1}}],["72",{"2":{"63":1}}],["726711609794",{"2":{"15":1}}],["76",{"2":{"63":1}}],["76085",{"2":{"15":1}}],["768946",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1}}],["704377648755",{"2":{"15":2}}],["700",{"2":{"14":1}}],["700454",{"2":{"6":1,"187":1,"188":1}}],["701141",{"2":{"6":1,"187":1,"188":1}}],["70",{"2":{"6":20,"63":1,"187":20,"188":20,"201":2}}],["738281",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1}}],["7",{"2":{"1":5,"6":4,"121":1,"155":1,"158":1,"183":4,"184":4,"193":4,"203":1}}],["6378137",{"2":{"166":1}}],["6371008",{"2":{"166":1}}],["639343",{"2":{"6":1,"187":1,"188":1}}],["6area",{"2":{"68":2}}],["66",{"2":{"63":1}}],["668869",{"2":{"6":1,"187":1,"188":1}}],["64",{"2":{"63":1,"183":2,"184":2}}],["646209",{"2":{"6":1,"187":1,"188":1}}],["629",{"2":{"202":1}}],["627",{"2":{"201":5,"202":2,"203":3}}],["62",{"2":{"63":1}}],["624923",{"2":{"6":1,"187":1,"188":1}}],["61366192682",{"2":{"15":1}}],["614624",{"2":{"6":1,"187":1,"188":1}}],["605000000000004",{"2":{"183":2}}],["60",{"2":{"63":1,"183":2}}],["60000",{"2":{"15":3}}],["609817",{"2":{"6":1,"187":1,"188":1}}],["603637",{"2":{"6":2,"187":2,"188":2}}],["68",{"2":{"63":1}}],["682601",{"2":{"6":1,"187":1,"188":1}}],["683975",{"2":{"6":1,"187":1,"188":1}}],["694274",{"2":{"6":1,"187":1,"188":1}}],["697021",{"2":{"6":1,"187":1,"188":1}}],["659942",{"2":{"6":1,"187":1,"188":1}}],["6",{"2":{"1":12,"3":4,"6":20,"75":3,"86":3,"121":1,"124":4,"155":3,"158":3,"188":1,"193":9,"203":2}}],["5e6",{"2":{"202":2}}],["55",{"2":{"201":2}}],["57",{"2":{"183":4,"184":4}}],["57725",{"2":{"15":2}}],["5x",{"2":{"158":1}}],["563198",{"2":{"78":1}}],["56",{"2":{"63":1}}],["54",{"2":{"63":1,"201":1}}],["50",{"2":{"63":1,"183":4,"184":4,"201":3}}],["500000",{"2":{"202":1}}],["50000",{"2":{"15":1}}],["500",{"2":{"14":1,"202":1}}],["5d",{"2":{"30":1,"32":1,"166":1}}],["52",{"2":{"63":1,"199":1}}],["52521",{"2":{"15":1}}],["52709",{"2":{"15":2}}],["594711",{"2":{"6":1,"187":1,"188":1}}],["590591",{"2":{"6":1,"187":1,"188":1}}],["595397",{"2":{"6":1,"187":1,"188":1}}],["535",{"2":{"183":4}}],["5355",{"2":{"183":2}}],["53333",{"2":{"15":4}}],["53",{"2":{"6":7,"183":2,"197":7}}],["58",{"2":{"63":1}}],["58059",{"2":{"15":2}}],["587158",{"2":{"6":2,"187":2,"188":2}}],["58375366067548",{"2":{"6":2,"77":1,"78":1}}],["584961",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1}}],["5",{"2":{"1":29,"3":4,"4":8,"6":82,"13":1,"63":1,"73":5,"74":8,"75":16,"86":18,"90":8,"92":8,"121":1,"124":4,"151":1,"155":2,"158":2,"183":1,"184":1,"193":27,"201":26,"202":7,"209":1}}],["499984780817334e6",{"2":{"202":2}}],["49",{"2":{"151":1}}],["4326",{"2":{"202":2,"203":3}}],["43787",{"2":{"15":1}}],["439295815226",{"2":{"15":1}}],["434306",{"2":{"6":1,"187":1,"188":1}}],["484003",{"2":{"150":4}}],["482551",{"2":{"150":4}}],["48268",{"2":{"15":1}}],["48",{"2":{"63":1}}],["48001",{"2":{"15":1}}],["489271",{"2":{"6":2,"197":2}}],["45",{"2":{"63":2,"150":12,"201":1}}],["450",{"2":{"13":1}}],["458369",{"2":{"6":2,"187":2,"188":2}}],["4219350464667047e",{"2":{"201":4}}],["42",{"2":{"13":1,"14":1,"63":3}}],["426283",{"2":{"6":1,"187":1,"188":1}}],["400",{"2":{"63":3}}],["40000",{"2":{"15":1}}],["40",{"2":{"14":1,"63":3}}],["406224",{"2":{"6":1,"187":1,"188":1}}],["404504",{"2":{"6":1,"187":1,"188":1}}],["41",{"2":{"63":1,"203":2}}],["41878",{"2":{"15":1}}],["414248",{"2":{"6":1,"187":1,"188":1}}],["419406",{"2":{"6":1,"187":1,"188":1}}],["44121252392",{"2":{"15":1}}],["44",{"2":{"14":1,"63":2}}],["442901",{"2":{"6":1,"187":1,"188":1}}],["446339",{"2":{"6":1,"187":1,"188":1}}],["477985",{"2":{"150":4}}],["47",{"2":{"63":3}}],["473835",{"2":{"6":1,"187":1,"188":1}}],["472117",{"2":{"6":2,"187":2,"188":2}}],["46",{"2":{"63":3}}],["468107",{"2":{"6":1,"187":1,"188":1}}],["465816",{"2":{"6":1,"187":1,"188":1}}],["464547",{"2":{"6":5,"197":5}}],["4",{"2":{"1":11,"3":4,"6":12,"9":2,"13":2,"14":1,"57":1,"71":1,"96":1,"109":1,"113":1,"121":2,"130":1,"150":1,"155":3,"158":3,"183":1,"190":1,"193":8,"199":1,"202":2,"205":2}}],["358421",{"2":{"199":1}}],["3585",{"2":{"183":1}}],["35",{"2":{"63":3}}],["354492",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1}}],["38",{"2":{"63":3}}],["36",{"2":{"63":2}}],["360",{"2":{"58":1}}],["36022",{"2":{"15":1}}],["32610",{"2":{"202":3}}],["32",{"2":{"63":3}}],["377956",{"2":{"199":1}}],["37",{"2":{"63":5}}],["34",{"2":{"63":3}}],["31",{"2":{"63":2}}],["300",{"2":{"92":1}}],["30",{"2":{"14":2,"63":3,"201":2}}],["3390",{"2":{"121":1}}],["33333333333",{"2":{"15":1}}],["333333333336",{"2":{"15":3}}],["33",{"2":{"6":20,"187":20,"188":20}}],["3d",{"2":{"4":1,"6":2,"64":2,"69":2,"90":1,"161":1,"179":2,"182":1}}],["3",{"2":{"1":13,"3":4,"5":1,"6":27,"14":2,"64":13,"67":6,"69":1,"75":6,"86":5,"89":1,"96":1,"109":1,"113":1,"121":2,"123":1,"130":1,"151":7,"155":3,"158":3,"166":2,"169":1,"175":6,"183":4,"188":3,"190":2,"192":1,"193":11,"197":1,"202":1,"203":1,"207":1}}],["394759",{"2":{"6":1,"187":1,"188":1}}],["392466",{"2":{"6":1,"187":1,"188":1}}],["395332",{"2":{"6":1,"187":1,"188":1}}],["399918",{"2":{"6":2,"187":2,"188":2}}],["39",{"0":{"35":1},"2":{"0":1,"3":1,"4":5,"6":22,"7":1,"9":2,"18":1,"20":5,"21":2,"22":2,"23":1,"24":1,"28":1,"34":1,"37":1,"58":1,"60":1,"61":1,"62":1,"63":3,"64":2,"67":6,"68":3,"69":39,"71":1,"73":1,"74":1,"76":1,"77":4,"78":1,"84":2,"87":2,"90":7,"93":4,"98":1,"108":2,"115":2,"121":19,"124":1,"139":2,"142":2,"151":3,"153":2,"158":6,"159":4,"162":2,"163":3,"165":1,"166":1,"167":2,"173":6,"174":1,"179":1,"183":6,"184":1,"186":1,"188":2,"196":6,"200":1,"201":6,"202":6,"203":4,"204":4,"205":5,"206":1,"208":1,"209":2}}],["2pi",{"2":{"201":1,"202":1,"203":1}}],["2nd",{"2":{"78":6}}],["23",{"2":{"63":3,"121":1}}],["23699059147",{"2":{"15":1}}],["28",{"2":{"63":2}}],["28083",{"2":{"15":2}}],["26",{"2":{"63":5,"121":2}}],["24",{"2":{"63":7,"121":1}}],["274364",{"2":{"75":1,"77":1,"86":1}}],["274363",{"2":{"75":1,"77":1,"86":1}}],["27",{"2":{"63":2}}],["275543",{"2":{"6":5,"197":5}}],["2^",{"2":{"14":1}}],["21",{"2":{"63":4,"121":2,"203":4}}],["21427",{"2":{"11":5}}],["215118",{"2":{"6":2,"197":2}}],["25",{"2":{"63":3,"95":1,"121":1,"129":1,"203":3}}],["258",{"2":{"11":1}}],["257223563`",{"2":{"184":1}}],["257223563",{"2":{"6":2,"166":1,"184":1}}],["29",{"2":{"63":3,"199":1}}],["29th",{"0":{"8":1},"1":{"9":1,"10":1}}],["298",{"2":{"6":2,"166":1,"184":2}}],["20340",{"2":{"205":1}}],["2018",{"2":{"121":1}}],["2017",{"2":{"6":1,"64":1}}],["20",{"2":{"63":3,"121":2,"201":6,"203":1}}],["2024",{"0":{"7":1,"8":1},"1":{"9":1,"10":1}}],["20th",{"0":{"7":1}}],["2d",{"2":{"6":1,"30":1,"32":1,"161":1,"166":4,"179":2,"182":1}}],["22",{"2":{"63":3,"121":1}}],["22168",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1}}],["224758",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1}}],["2",{"2":{"1":19,"3":9,"5":1,"6":45,"13":1,"14":1,"15":3,"18":1,"30":2,"32":2,"37":1,"58":3,"61":1,"63":6,"64":32,"67":2,"68":4,"69":13,"70":6,"71":7,"73":1,"74":2,"78":2,"82":1,"83":1,"84":3,"85":1,"86":1,"90":4,"92":1,"93":3,"96":2,"109":2,"110":2,"112":2,"113":3,"121":11,"130":2,"150":2,"151":23,"155":2,"158":5,"159":2,"166":2,"169":1,"176":1,"185":1,"188":5,"190":7,"191":7,"192":5,"193":18,"197":8,"198":2,"199":1,"201":3,"204":1}}],["1st",{"2":{"78":6}}],["1998",{"2":{"75":1,"77":1,"86":1}}],["19",{"2":{"63":2,"121":2}}],["110m",{"2":{"202":2}}],["110",{"2":{"83":1,"202":1}}],["1116",{"2":{"19":1}}],["11",{"2":{"15":2,"63":2,"121":1,"158":1}}],["1145",{"2":{"75":1,"77":1,"86":1}}],["114",{"2":{"7":1}}],["165644",{"2":{"150":2}}],["163434",{"2":{"150":2}}],["169356",{"2":{"150":2}}],["166644",{"2":{"150":2}}],["164434",{"2":{"150":2}}],["16111",{"2":{"15":1}}],["16",{"2":{"13":1,"14":1,"63":2,"121":2}}],["180",{"2":{"58":1,"150":1,"166":2}}],["18593721105",{"2":{"15":1}}],["18",{"2":{"13":1,"14":1,"63":3,"121":2}}],["13401805979",{"2":{"15":2}}],["13",{"2":{"6":3,"63":1,"75":1,"86":2,"121":1}}],["10n",{"2":{"202":1}}],["10^9",{"2":{"13":1}}],["1000000",{"2":{"202":1}}],["1000",{"2":{"13":2,"183":2,"202":1,"207":2}}],["100",{"2":{"6":2,"14":3,"82":1,"84":1,"151":2,"199":1}}],["10",{"2":{"6":12,"11":1,"60":1,"63":5,"69":1,"73":4,"74":10,"75":2,"77":1,"86":2,"89":2,"121":3,"123":2,"184":1,"188":4,"201":1}}],["14404531208901e",{"2":{"203":2}}],["14",{"2":{"3":1,"6":5,"63":2,"77":2,"78":2,"121":1,"126":1,"127":1,"183":2,"184":2}}],["15",{"2":{"3":1,"6":4,"63":1,"73":1,"74":1,"77":1,"78":1,"121":1,"126":1,"127":1}}],["170356",{"2":{"150":2}}],["17",{"2":{"3":1,"6":3,"63":3,"77":1,"78":1,"121":2,"126":1,"127":1}}],["125",{"2":{"6":2,"77":1,"78":1}}],["127",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1,"202":1}}],["123",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1}}],["126",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1}}],["12",{"2":{"3":1,"6":3,"63":2,"77":1,"78":1,"121":1,"126":1,"127":1,"208":1}}],["124",{"2":{"3":1,"6":3,"77":1,"78":1,"126":1,"127":1}}],["1",{"2":{"1":8,"3":38,"6":59,"13":1,"14":4,"15":1,"57":4,"58":15,"60":7,"62":2,"63":11,"64":16,"67":4,"68":7,"69":72,"70":9,"71":15,"73":1,"74":10,"76":3,"78":9,"84":6,"86":4,"87":11,"90":16,"92":7,"93":6,"95":2,"96":6,"98":2,"99":2,"108":2,"109":8,"110":12,"112":2,"113":5,"121":38,"124":6,"129":2,"130":6,"139":4,"140":5,"142":1,"150":16,"151":27,"155":2,"158":8,"159":4,"161":1,"162":1,"169":5,"170":2,"176":9,"184":1,"185":4,"188":8,"190":15,"191":3,"192":15,"193":6,"197":9,"198":2,"201":8,"202":6,"203":4,"204":1,"207":8,"208":3}}],["bx",{"2":{"150":2}}],["b``",{"2":{"76":1}}],["b`",{"2":{"76":3,"78":4,"87":4}}],["bigger",{"2":{"69":1}}],["bit",{"2":{"30":1,"32":1,"192":8,"201":2}}],["b2y",{"2":{"78":4}}],["b2x",{"2":{"78":4}}],["b2",{"2":{"69":2,"78":49,"93":3,"124":6}}],["b2t",{"2":{"69":9}}],["b1y",{"2":{"78":7}}],["b1x",{"2":{"78":7}}],["b1",{"2":{"69":10,"78":65,"124":6}}],["b1t",{"2":{"69":9}}],["breaks",{"2":{"176":1}}],["break",{"2":{"69":3,"71":1,"76":2,"90":4,"121":11,"124":1,"151":6,"176":2}}],["brevity",{"2":{"64":1}}],["broadcasting",{"2":{"6":1,"64":1}}],["broken",{"2":{"3":1,"6":1,"110":1}}],["black",{"2":{"73":1,"202":1}}],["blue",{"2":{"14":1,"73":1,"89":2,"95":2,"112":2,"123":2,"129":2,"164":1,"207":2}}],["bloat",{"2":{"203":1}}],["block",{"2":{"6":2,"201":1}}],["blob",{"2":{"6":2,"188":1}}],["buffers",{"2":{"151":1}}],["buffered",{"2":{"65":2}}],["buffering",{"2":{"64":1,"65":1,"69":1}}],["buffer",{"0":{"65":1},"2":{"36":2,"65":5,"68":2,"69":1}}],["built",{"2":{"22":1,"25":1}}],["building",{"2":{"201":1}}],["build",{"2":{"6":1,"69":14,"74":1,"75":1,"77":1,"86":1,"183":2,"191":1,"192":1}}],["bug",{"2":{"6":1,"69":1}}],["but",{"2":{"1":2,"3":5,"4":3,"6":12,"18":1,"20":1,"21":1,"23":1,"27":1,"30":1,"32":1,"36":1,"37":1,"58":1,"60":1,"61":1,"69":5,"71":1,"75":1,"77":1,"78":2,"84":2,"85":2,"86":1,"87":2,"90":4,"98":2,"121":1,"123":1,"124":5,"129":1,"139":1,"140":1,"143":2,"144":1,"150":1,"151":1,"152":1,"155":2,"156":1,"158":12,"159":4,"161":5,"162":1,"164":1,"165":1,"166":7,"167":1,"178":1,"180":1,"185":2,"188":1,"196":2,"202":2,"203":2,"205":1,"206":1,"207":1,"208":2}}],["balancing",{"2":{"158":2,"159":2}}],["barrier",{"2":{"158":1}}],["barycentric",{"0":{"5":1,"62":1,"64":1},"1":{"63":1,"64":1},"2":{"0":6,"5":10,"6":17,"9":1,"36":1,"62":9,"63":4,"64":52}}],["basic",{"2":{"151":1}}],["base",{"2":{"36":4,"37":1,"64":15,"65":1,"69":4,"94":1,"151":6,"158":3,"159":2,"164":2,"166":2,"167":1,"181":1,"184":2,"196":3}}],["based",{"2":{"4":2,"6":3,"24":1,"58":2,"61":2,"63":2,"68":1,"69":1,"71":1,"90":1,"93":2,"99":1,"113":1,"121":2,"124":1,"130":1,"140":1,"167":1,"205":1,"206":1,"207":1}}],["badge",{"2":{"6":2}}],["backs",{"2":{"74":4}}],["backwards",{"2":{"69":1,"76":1,"78":1,"87":1}}],["backing",{"2":{"69":1}}],["backend",{"2":{"36":1,"65":2,"196":1}}],["back",{"2":{"6":1,"20":1,"23":1,"27":1,"28":1,"74":4,"196":1}}],["b",{"2":{"3":2,"4":7,"6":13,"40":2,"41":2,"42":2,"43":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"69":249,"71":9,"75":30,"76":18,"77":30,"78":82,"79":3,"86":31,"87":49,"90":29,"121":2,"124":22,"204":1}}],["box",{"2":{"70":2,"71":3,"207":1}}],["bounce",{"2":{"69":8,"75":1,"76":1,"77":1,"78":1,"86":1,"87":1}}],["bouncings",{"2":{"69":1}}],["bouncing",{"2":{"69":13,"76":3,"78":4,"87":4}}],["bound",{"2":{"79":1}}],["bounding",{"2":{"69":1,"70":2,"71":3}}],["boundscheck",{"2":{"64":14}}],["bounds",{"2":{"6":1,"151":4}}],["boundaries",{"2":{"3":2,"6":2,"108":2,"112":1,"113":1,"121":2,"126":1,"127":1,"151":1}}],["boundary",{"2":{"3":7,"6":7,"92":1,"95":1,"96":1,"98":1,"99":3,"102":4,"109":2,"110":9,"113":2,"115":1,"116":6,"117":3,"121":18,"129":1,"130":3,"139":2,"140":4,"142":3,"143":5,"144":3,"145":3}}],["bold",{"2":{"65":1,"164":3,"181":1,"184":1}}],["both",{"2":{"3":5,"6":6,"69":3,"78":4,"84":2,"86":1,"87":1,"90":3,"92":1,"96":1,"110":4,"113":1,"121":2,"124":1,"130":1,"144":1,"183":1,"185":1}}],["booltype",{"2":{"36":1,"158":2,"159":1,"163":6,"185":1}}],["booleans",{"2":{"69":1,"121":2}}],["boolean",{"0":{"44":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"29":2,"69":1,"76":1,"78":1,"87":1,"163":2,"206":1}}],["boolsastypes",{"0":{"29":1,"163":1},"2":{"36":1,"37":1,"163":12,"185":3}}],["bools",{"2":{"10":1}}],["bool",{"2":{"3":17,"4":14,"6":40,"37":1,"69":4,"90":17,"96":1,"99":1,"109":2,"110":13,"113":1,"121":2,"124":10,"127":1,"130":1,"140":2,"150":7,"151":6,"163":2,"185":3,"197":5}}],["bypred",{"2":{"209":1}}],["by",{"0":{"103":1,"104":1,"134":1},"2":{"1":3,"3":2,"4":8,"6":30,"7":1,"22":1,"23":2,"24":1,"27":1,"29":1,"30":1,"31":1,"32":1,"57":1,"58":6,"60":1,"61":1,"64":4,"65":1,"67":5,"68":4,"69":18,"70":1,"71":6,"73":1,"74":6,"75":1,"77":1,"78":5,"85":2,"86":4,"87":3,"90":8,"93":5,"96":1,"98":1,"99":1,"103":2,"104":2,"105":1,"106":2,"108":1,"120":2,"121":10,"150":2,"151":4,"158":2,"161":7,"166":8,"173":2,"174":1,"176":3,"178":1,"179":1,"180":2,"181":1,"182":1,"184":3,"185":1,"186":1,"188":1,"189":1,"190":3,"191":1,"193":1,"201":1,"202":1,"203":1,"205":1,"206":5,"207":1,"208":2,"209":1}}],["berlin",{"2":{"208":1}}],["bessel",{"2":{"162":1}}],["best",{"2":{"6":1,"24":1,"69":1,"77":1,"86":1,"158":2,"165":1,"166":2,"188":1}}],["bearing",{"2":{"150":4}}],["beauty",{"2":{"9":1}}],["been",{"2":{"76":1,"151":1,"153":2,"159":1,"163":1}}],["bedge",{"2":{"69":3}}],["because",{"2":{"69":3,"85":1,"153":1,"159":1,"166":1,"195":1}}],["becomes",{"2":{"69":1,"166":1}}],["become",{"2":{"27":1}}],["being",{"2":{"58":1,"78":1,"121":1,"124":1,"174":1}}],["behind",{"2":{"30":1,"31":1,"32":1,"63":1,"153":1,"159":1}}],["behaviours",{"2":{"37":1}}],["behaviour",{"2":{"6":1,"23":1,"28":1,"188":1}}],["better",{"2":{"20":1,"110":1,"158":2,"159":2,"188":1}}],["between",{"2":{"4":4,"6":18,"28":1,"58":2,"64":13,"69":2,"71":18,"75":1,"76":4,"77":1,"78":11,"86":2,"87":4,"90":1,"93":8,"121":4,"124":4,"151":1,"166":2,"184":3,"185":1,"189":2,"190":2,"191":1,"202":1,"206":2,"207":1}}],["benchmarking",{"2":{"184":1,"188":1}}],["benchmarkgroup",{"2":{"184":2,"188":3}}],["benchmark",{"0":{"184":1,"188":1},"2":{"184":1,"188":1}}],["benchmarktools",{"2":{"13":1,"184":1,"188":1}}],["benchmarks",{"2":{"9":2}}],["beginning",{"2":{"71":1,"201":1}}],["begin+1",{"2":{"64":5}}],["begin",{"2":{"9":1,"64":7,"158":2,"159":2,"189":1,"205":1}}],["beware",{"2":{"6":1,"23":1,"185":1}}],["before",{"2":{"6":4,"38":1,"64":1,"75":1,"77":1,"78":1,"86":1,"188":1,"202":1}}],["below",{"2":{"6":2,"22":1,"65":1,"172":1,"190":1,"191":1,"192":1,"205":1}}],["be",{"2":{"1":7,"3":3,"4":11,"5":4,"6":65,"7":1,"9":1,"13":2,"18":1,"19":1,"20":1,"25":3,"28":2,"29":1,"30":3,"31":1,"32":3,"36":1,"37":1,"58":8,"61":7,"62":2,"63":1,"64":10,"65":2,"67":1,"68":3,"69":18,"70":1,"71":2,"74":1,"75":7,"76":4,"77":7,"78":12,"85":6,"86":6,"87":5,"90":15,"92":2,"93":4,"99":6,"108":2,"109":1,"113":6,"121":21,"124":2,"130":6,"132":1,"133":1,"134":1,"135":1,"140":6,"150":2,"151":1,"155":4,"156":2,"157":2,"158":9,"159":1,"160":1,"161":6,"162":4,"163":1,"165":3,"166":9,"169":1,"170":1,"171":1,"172":3,"173":4,"174":2,"176":2,"177":1,"179":5,"180":3,"181":1,"182":1,"184":8,"185":3,"188":10,"190":1,"192":3,"193":1,"196":2,"201":2,"203":1,"206":4}}],["hypot",{"2":{"185":1}}],["h2",{"2":{"121":6}}],["h1",{"2":{"121":11}}],["hm",{"2":{"63":2}}],["h",{"2":{"58":2,"69":2,"87":8}}],["human",{"2":{"205":1}}],["huilier",{"2":{"21":1}}],["hull`",{"2":{"85":2}}],["hulls",{"2":{"6":1,"80":1,"85":1}}],["hull",{"0":{"55":1,"80":1,"82":1,"83":1},"1":{"81":1,"82":1,"83":1,"84":1,"85":1},"2":{"0":1,"6":8,"36":2,"55":1,"80":2,"82":4,"83":1,"84":10,"85":15}}],["href=",{"2":{"6":2}}],["https",{"2":{"6":2,"75":1,"77":1,"78":1,"85":1,"86":1,"121":2,"166":1,"190":1}}],["hcat",{"2":{"6":1}}],["high",{"2":{"205":1}}],["highest",{"2":{"203":1}}],["higher",{"2":{"6":1,"85":1}}],["hit",{"2":{"69":1,"158":1,"159":1,"161":3}}],["hits",{"2":{"6":1,"23":1,"69":2}}],["hidedecorations",{"2":{"63":2}}],["hinter",{"2":{"36":3,"65":1,"181":1,"184":1}}],["hint",{"2":{"36":3,"65":1,"184":1}}],["hinge=2",{"2":{"77":1}}],["hinge`",{"2":{"77":1}}],["hinge",{"2":{"6":1,"69":1,"78":13,"121":15}}],["hist",{"2":{"13":1}}],["histogram",{"2":{"13":1}}],["heavily",{"2":{"158":1}}],["heatmap",{"2":{"13":5,"14":6,"63":2,"92":2,"151":1}}],["hello",{"2":{"162":1}}],["help",{"2":{"69":1,"163":1,"166":1}}],["helpers",{"0":{"69":1},"2":{"69":1,"110":1,"124":1}}],["helper",{"0":{"76":1,"78":1,"87":1},"2":{"68":1,"69":1,"74":1}}],["helps",{"2":{"35":1}}],["held",{"2":{"1":1,"155":1,"158":1}}],["here",{"2":{"6":2,"9":1,"13":1,"14":1,"18":1,"25":1,"64":1,"78":2,"85":2,"110":1,"151":2,"158":2,"161":3,"165":2,"166":1,"169":1,"184":1,"202":2,"206":5,"207":3}}],["hours",{"2":{"208":1}}],["hood",{"2":{"205":1}}],["hook",{"2":{"6":1,"188":1}}],["home",{"2":{"202":1}}],["horizontal",{"2":{"71":1,"78":1,"151":1,"188":1}}],["hormann",{"0":{"76":1,"78":1,"87":1},"2":{"6":3,"64":2,"69":5,"74":2,"75":1,"77":1,"86":1}}],["how",{"0":{"20":1,"31":1},"2":{"6":1,"18":1,"31":2,"60":1,"64":1,"69":1,"78":1,"90":1,"151":2,"161":2,"178":1,"188":1,"202":1,"205":1,"206":2,"207":2,"208":1,"209":1}}],["however",{"2":{"3":1,"6":2,"21":1,"58":1,"64":1,"68":1,"69":1,"78":1,"84":1,"90":1,"92":1,"95":1,"109":1,"174":1}}],["hole",{"2":{"58":1,"61":3,"63":2,"64":9,"68":4,"69":60,"71":3,"75":6,"77":2,"87":15,"93":3,"102":1,"103":1,"104":1,"121":33,"151":5,"170":2,"201":1}}],["holes=",{"2":{"69":1}}],["holes",{"2":{"4":3,"5":1,"6":4,"9":2,"58":2,"60":1,"64":2,"68":1,"69":19,"74":4,"75":2,"77":2,"86":6,"87":29,"90":3,"93":3,"118":1,"121":11,"132":1,"151":17,"170":2,"201":4}}],["holds",{"2":{"69":1,"167":2,"186":1}}],["holding",{"2":{"6":1,"151":1,"158":2}}],["hold",{"2":{"6":1,"151":1,"163":1,"188":1,"205":1}}],["halign",{"2":{"188":1}}],["half",{"2":{"70":2}}],["hail",{"2":{"170":1}}],["handling",{"0":{"181":1},"2":{"153":1}}],["handler",{"2":{"65":1,"181":1}}],["handle",{"2":{"36":1,"150":1,"156":2,"158":1,"202":1}}],["handled",{"2":{"23":1}}],["hao",{"2":{"121":1}}],["had",{"2":{"75":1,"77":1,"90":1,"163":1,"183":1}}],["happens",{"2":{"69":1}}],["happened",{"2":{"69":1}}],["happen",{"2":{"29":1,"158":1}}],["have",{"2":{"3":3,"4":9,"6":18,"24":1,"28":1,"38":1,"58":2,"61":3,"64":6,"65":1,"69":9,"77":1,"78":1,"85":2,"86":1,"90":10,"92":1,"93":2,"121":5,"123":1,"124":3,"139":1,"140":1,"151":1,"152":1,"153":2,"157":1,"158":2,"159":3,"161":5,"162":3,"163":1,"164":1,"165":2,"166":2,"188":1,"190":1,"196":1,"201":1,"202":1,"206":1,"207":1,"208":3}}],["hasm",{"2":{"161":2}}],["hasz",{"2":{"161":2}}],["haskey",{"2":{"158":1,"196":1}}],["hash",{"2":{"151":1}}],["hasn",{"2":{"151":1}}],["hassle",{"2":{"1":1,"6":1,"193":1}}],["has",{"2":{"1":4,"6":1,"18":1,"57":1,"60":2,"64":2,"69":2,"76":2,"78":1,"87":1,"90":11,"92":1,"93":1,"142":1,"150":1,"155":4,"158":6,"162":1,"168":1,"179":1,"183":2,"192":1,"202":1}}],["xticklabelsvisible",{"2":{"202":1}}],["xticklabelrotation",{"2":{"13":2}}],["xoffset",{"2":{"201":4,"203":1}}],["x=x",{"2":{"197":1}}],["xplusoneoperation",{"2":{"165":1}}],["xp2",{"2":{"58":5}}],["x`",{"2":{"158":1}}],["xvec",{"2":{"151":4}}],["xbounds",{"2":{"151":4}}],["xhalf",{"2":{"151":2}}],["xlast",{"2":{"93":3}}],["xfirst",{"2":{"93":5}}],["x0",{"2":{"93":5}}],["xn",{"2":{"71":4}}],["xind+1",{"2":{"151":1}}],["xind",{"2":{"151":2}}],["xinterior",{"2":{"68":2}}],["xi−xi−1",{"2":{"6":1}}],["xcentroid",{"2":{"68":13}}],["xrange",{"2":{"63":3,"92":2}}],["xautolimits",{"2":{"63":2}}],["x26",{"2":{"58":2,"61":6,"64":1,"65":4,"69":72,"71":36,"75":4,"76":4,"78":24,"87":2,"90":14,"93":3,"105":2,"106":2,"110":48,"119":2,"120":2,"121":170,"124":22,"136":2,"137":2,"142":2,"146":2,"147":2,"150":4,"151":12,"158":2,"172":2,"176":6,"181":2,"184":2,"190":10,"191":2,"197":4,"206":4}}],["x2",{"2":{"6":3,"64":4,"68":2,"71":18,"93":8,"110":10,"121":5,"124":4,"151":5,"185":6,"197":2}}],["x1",{"2":{"6":4,"64":3,"68":2,"71":22,"93":8,"110":11,"121":6,"124":5,"151":5,"185":7,"197":2}}],["xs",{"2":{"6":3,"71":4,"151":30,"197":4}}],["xmax",{"2":{"6":1,"70":2,"71":48}}],["xmin",{"2":{"6":1,"70":2,"71":49}}],["x3c",{"2":{"5":1,"6":32,"36":1,"58":4,"61":2,"64":66,"69":32,"71":11,"74":3,"75":1,"77":3,"78":12,"86":3,"90":2,"92":1,"93":13,"110":33,"121":13,"124":10,"150":1,"151":4,"158":3,"159":2,"161":19,"162":14,"163":5,"164":2,"165":4,"166":6,"167":4,"170":2,"173":3,"176":5,"184":2,"189":2,"190":6,"191":3,"192":9,"198":1,"209":1}}],["xy`",{"2":{"180":1}}],["xyz",{"0":{"179":1}}],["xy",{"0":{"179":1},"2":{"1":4,"64":1,"180":3}}],["x",{"2":{"1":4,"4":1,"6":3,"7":1,"9":5,"11":6,"13":11,"14":10,"15":4,"55":2,"58":9,"61":2,"63":8,"67":1,"68":10,"69":20,"70":1,"71":8,"74":6,"76":9,"78":18,"87":9,"90":3,"92":2,"93":7,"110":21,"121":16,"124":7,"150":11,"151":2,"153":2,"155":3,"158":5,"159":4,"161":10,"162":1,"163":5,"165":1,"172":2,"177":2,"178":4,"179":5,"180":1,"185":2,"188":2,"190":2,"192":1,"193":2,"194":2,"197":33,"201":6,"202":2,"203":2,"206":1,"208":2}}],["=>",{"2":{"158":2}}],["=todo",{"2":{"69":8,"75":1,"87":6}}],["=float64",{"2":{"68":3,"77":3,"86":3}}],["=false",{"2":{"58":1}}],["===",{"2":{"110":8,"150":4}}],["==",{"2":{"9":1,"24":1,"37":1,"58":4,"61":2,"64":9,"65":2,"68":1,"69":40,"71":30,"76":1,"78":20,"83":1,"86":2,"87":1,"90":16,"92":1,"121":44,"124":2,"150":3,"151":18,"158":2,"170":1,"172":1,"176":1,"181":1,"184":2,"188":1,"192":3}}],["=",{"2":{"1":5,"3":17,"4":7,"5":2,"6":60,"11":1,"13":19,"14":33,"15":18,"36":4,"37":7,"40":2,"41":2,"42":2,"43":2,"55":3,"57":4,"58":56,"60":6,"61":25,"63":35,"64":110,"65":3,"67":6,"68":36,"69":369,"70":6,"71":96,"73":7,"74":29,"75":25,"76":30,"77":18,"78":146,"82":6,"83":4,"84":14,"85":4,"86":21,"87":85,"89":7,"90":40,"92":15,"93":52,"95":7,"96":3,"98":4,"99":23,"100":3,"101":7,"102":14,"103":14,"104":4,"105":2,"106":2,"108":5,"109":3,"110":57,"112":7,"113":18,"114":3,"115":11,"116":17,"117":9,"118":3,"119":2,"120":2,"121":189,"123":7,"124":40,"126":3,"127":3,"129":7,"130":22,"131":3,"132":11,"133":14,"134":14,"135":4,"136":2,"137":2,"139":3,"140":22,"141":3,"142":9,"143":14,"144":10,"145":6,"146":2,"147":2,"150":32,"151":110,"153":1,"155":3,"158":45,"159":25,"160":4,"161":41,"162":6,"163":2,"164":7,"165":3,"166":3,"167":6,"169":2,"170":4,"172":9,"175":3,"176":30,"177":1,"179":4,"181":2,"183":16,"184":21,"185":25,"186":2,"187":5,"188":60,"189":11,"190":49,"191":7,"192":43,"193":2,"194":1,"196":3,"197":42,"198":9,"199":7,"201":45,"202":19,"203":16,"204":3,"205":4,"207":12,"208":6,"209":2}}],["utm",{"2":{"202":1}}],["utility",{"0":{"197":1},"2":{"36":1,"64":1,"158":1,"159":1}}],["utils",{"0":{"192":1},"2":{"36":5}}],["u2",{"2":{"121":4}}],["u1",{"2":{"121":4}}],["uv",{"2":{"64":1}}],["update",{"2":{"69":6,"151":10}}],["updated",{"2":{"69":6,"161":3}}],["updates",{"2":{"64":1}}],["upper",{"2":{"6":1,"151":1,"207":1}}],["up",{"2":{"6":1,"69":3,"78":1,"121":1,"144":1,"156":1,"175":1,"190":2,"201":2}}],["us",{"2":{"61":1,"85":1,"202":1,"208":1}}],["usage",{"2":{"208":1}}],["usa",{"0":{"83":1},"2":{"19":1,"83":4,"188":15,"208":3}}],["usually",{"2":{"18":1,"31":2,"80":1,"158":1,"161":2,"166":1,"205":1}}],["usual",{"2":{"6":1,"170":1,"173":1}}],["usecases",{"2":{"30":1,"32":1}}],["uses",{"2":{"6":3,"20":1,"80":1,"85":1,"121":1,"166":1,"180":1,"184":1,"185":1,"188":1,"205":1}}],["users",{"2":{"36":1,"153":1,"174":1}}],["user",{"2":{"6":12,"28":1,"68":1,"69":1,"75":3,"77":3,"86":3,"158":1,"165":1,"189":1,"190":1,"191":1,"206":1}}],["useful",{"2":{"6":10,"64":1,"69":1,"151":1,"182":1,"185":1,"188":2,"196":1}}],["used",{"2":{"1":1,"5":1,"6":4,"20":2,"58":1,"61":1,"62":1,"64":1,"68":2,"69":7,"71":1,"74":1,"78":1,"90":1,"92":1,"93":1,"124":1,"151":2,"155":1,"158":2,"159":1,"161":2,"162":1,"166":3,"167":1,"168":1,"188":1,"190":2,"195":2,"198":1,"202":1,"205":1,"206":2,"207":1}}],["use",{"2":{"1":2,"4":1,"5":1,"6":11,"11":1,"18":1,"20":3,"25":1,"28":1,"31":1,"64":1,"69":4,"85":2,"87":1,"110":2,"124":1,"151":1,"152":1,"155":1,"158":4,"159":3,"160":1,"164":1,"165":1,"166":2,"170":1,"178":1,"183":1,"185":2,"188":1,"190":2,"196":3,"201":1,"205":1,"206":2,"209":2}}],["using",{"0":{"202":1},"2":{"1":4,"4":1,"5":3,"6":11,"11":4,"13":4,"14":1,"15":1,"20":1,"36":7,"37":1,"55":1,"57":1,"58":1,"60":2,"61":2,"63":4,"64":7,"65":3,"67":2,"68":1,"69":5,"70":2,"71":1,"73":2,"74":1,"76":3,"78":4,"79":1,"82":1,"83":2,"84":1,"85":2,"87":3,"89":2,"90":1,"92":2,"93":2,"95":2,"96":1,"98":2,"99":1,"106":1,"108":2,"109":1,"110":1,"112":2,"113":1,"120":1,"121":1,"123":2,"124":1,"126":2,"127":1,"129":2,"130":1,"137":1,"139":2,"140":1,"147":1,"150":1,"151":6,"152":1,"153":2,"155":1,"156":1,"158":4,"159":2,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":2,"167":1,"170":1,"173":1,"176":1,"177":2,"178":1,"179":1,"180":1,"181":3,"183":1,"184":5,"185":1,"188":3,"190":1,"192":1,"193":4,"194":2,"196":2,"198":1,"199":1,"200":4,"201":1,"203":1,"204":2,"206":1,"207":4,"208":2}}],["until",{"2":{"77":1,"86":1,"151":3,"156":1,"190":1,"196":1}}],["unprocessed",{"2":{"69":1}}],["unknown",{"2":{"69":4,"71":15}}],["unknown=3",{"2":{"69":1}}],["unmatched",{"2":{"69":9,"71":26}}],["undef",{"2":{"58":2,"69":1,"189":1,"190":1,"192":2,"197":2}}],["underspecified",{"2":{"165":1}}],["understand",{"2":{"69":1,"195":1}}],["under",{"2":{"17":1,"61":2,"205":1}}],["undergrad",{"2":{"9":1}}],["unwrap",{"0":{"161":1},"2":{"36":2,"161":19}}],["unless",{"2":{"27":1,"69":1,"76":2,"78":2,"87":2,"158":1,"166":1}}],["unlike",{"2":{"23":1,"195":1}}],["unstable",{"2":{"13":1,"158":1,"163":1}}],["unneeded",{"2":{"6":3,"69":1,"75":2,"77":2,"86":2}}],["unnecessary",{"2":{"6":3,"151":1,"189":1,"190":1,"191":1}}],["universal",{"2":{"202":1}}],["unify",{"2":{"30":1,"32":1}}],["united",{"2":{"188":1}}],["unit",{"2":{"18":1,"166":1}}],["units",{"2":{"6":2,"185":2}}],["unique",{"2":{"6":2,"78":3,"173":2,"176":2}}],["unioning",{"2":{"87":1}}],["unionintersectingpolygons",{"2":{"0":1,"6":8,"75":1,"76":2,"77":1,"78":2,"86":1,"87":6,"173":2,"174":2,"175":1,"176":4}}],["unions",{"0":{"87":1},"2":{"23":1,"167":1}}],["union",{"0":{"41":1,"86":1},"2":{"0":1,"1":2,"3":2,"4":4,"6":19,"11":3,"28":2,"36":1,"37":1,"41":2,"58":2,"61":1,"64":1,"68":4,"69":12,"71":1,"77":2,"86":22,"87":37,"90":8,"93":1,"101":2,"102":4,"103":1,"105":2,"106":1,"115":2,"116":6,"119":2,"120":1,"124":4,"132":2,"133":4,"134":1,"136":2,"137":1,"142":2,"143":4,"144":1,"146":2,"147":1,"150":1,"151":5,"153":1,"155":2,"156":3,"158":3,"159":3,"167":4,"173":1,"174":1,"176":9,"185":5,"188":2,"189":3,"190":3,"191":3,"197":1}}],["unchanged",{"2":{"1":1,"6":1,"155":1,"158":1,"188":1}}],["gdal",{"2":{"205":1}}],["gml",{"2":{"205":1}}],["gpkg",{"2":{"205":3}}],["global",{"2":{"202":1}}],["globally",{"2":{"159":1,"166":1}}],["gft",{"2":{"200":1,"202":2}}],["gadm",{"2":{"208":4}}],["ga",{"2":{"199":2,"202":3}}],["gaps",{"2":{"151":1}}],["gc",{"2":{"172":6}}],["gb",{"2":{"36":1}}],["guarantee",{"2":{"24":1,"35":1}}],["guaranteed",{"2":{"1":1,"58":1,"155":1,"159":1}}],["g",{"2":{"18":1,"58":3,"61":3,"65":1,"68":3,"69":2,"71":3,"93":6,"156":1,"158":2,"161":4,"162":1,"164":1,"165":1,"166":1,"188":2,"197":2,"205":1}}],["grows",{"2":{"166":1}}],["ground",{"2":{"69":1}}],["grouped",{"2":{"201":1}}],["groups",{"2":{"6":1,"151":1}}],["grouping",{"2":{"1":1,"155":1,"159":3}}],["grand",{"2":{"208":1}}],["grained",{"2":{"183":1}}],["grahamscanmethod",{"2":{"85":1}}],["graph",{"2":{"69":1}}],["graphics",{"2":{"6":1,"64":1}}],["great",{"2":{"201":1,"203":1,"205":1}}],["greater",{"2":{"150":1}}],["greatly",{"2":{"69":1}}],["greiner",{"0":{"76":1,"78":1,"87":1},"2":{"69":3,"74":2,"75":1,"77":1,"86":1}}],["green",{"2":{"14":1,"164":1,"202":1}}],["grid",{"2":{"6":1,"63":1,"71":4}}],["g2",{"2":{"3":5,"6":5,"96":4,"99":12,"100":6,"101":9,"102":6,"103":6,"104":3,"105":4,"106":2,"109":3,"110":21,"113":10,"114":6,"115":10,"116":8,"117":4,"118":2,"119":4,"120":2,"130":10,"131":6,"132":9,"133":6,"134":6,"135":3,"136":4,"137":2,"140":10,"141":6,"142":10,"143":6,"144":5,"145":4,"146":4,"147":2}}],["g1",{"2":{"3":5,"4":1,"6":6,"96":4,"99":12,"100":6,"101":9,"102":6,"103":6,"104":3,"105":2,"106":4,"109":3,"110":21,"113":9,"114":6,"115":10,"116":8,"117":4,"118":2,"119":2,"120":4,"130":10,"131":6,"132":9,"133":6,"134":6,"135":3,"136":2,"137":4,"140":10,"141":6,"142":9,"143":6,"144":5,"145":4,"146":2,"147":4}}],["generic",{"2":{"27":1,"185":1}}],["generation",{"2":{"188":2}}],["generated",{"2":{"36":1,"37":1,"55":1,"58":1,"61":1,"64":1,"65":1,"68":1,"69":1,"71":1,"74":1,"76":1,"78":1,"79":1,"85":1,"87":1,"90":1,"93":1,"96":1,"106":1,"109":1,"110":1,"120":1,"121":1,"124":1,"127":1,"137":1,"147":1,"150":1,"151":1,"152":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"170":1,"173":1,"176":1,"177":1,"178":1,"179":1,"181":1,"185":1,"188":1,"192":1,"193":1,"194":1,"196":1,"198":1,"207":1}}],["generate",{"2":{"7":1,"13":2,"188":1,"207":2}}],["generalization",{"2":{"62":1}}],["generalized",{"2":{"6":1,"62":3,"64":1}}],["generalise",{"2":{"6":4,"188":1}}],["generally",{"2":{"6":2,"166":2,"196":3}}],["general",{"0":{"2":1,"4":1},"1":{"3":1,"4":1},"2":{"20":1,"23":1,"25":1,"30":1,"32":1,"36":1,"153":1,"159":1,"181":1}}],["getfeature",{"2":{"158":1,"159":1,"161":3,"197":5}}],["getcolumn",{"2":{"158":2,"159":2,"161":1}}],["getcoord",{"2":{"69":1}}],["getgeom",{"2":{"105":1,"106":1,"119":1,"120":1,"124":2,"136":1,"137":1,"146":1,"147":1,"158":3,"159":2,"161":3,"188":3,"197":6}}],["getring",{"2":{"69":1}}],["getindex",{"2":{"64":2}}],["gethole",{"2":{"58":1,"61":1,"68":1,"69":4,"71":1,"74":1,"75":2,"77":2,"87":6,"90":2,"93":1,"121":5,"170":1,"201":1}}],["getexterior",{"2":{"58":1,"61":1,"64":1,"68":1,"69":3,"71":1,"74":1,"75":2,"77":2,"86":3,"87":6,"90":2,"93":1,"121":5,"150":1,"151":1,"170":1,"201":1}}],["getpolygon",{"2":{"76":3,"78":2,"87":2,"90":3}}],["getpoint",{"2":{"57":1,"58":5,"60":2,"61":1,"64":1,"67":1,"68":6,"69":2,"70":2,"71":3,"73":3,"89":4,"90":13,"92":1,"93":6,"95":4,"98":1,"108":1,"110":7,"112":4,"121":28,"123":4,"124":2,"126":2,"129":4,"139":2,"142":2,"150":5,"170":3,"183":4,"185":2,"192":1,"197":3,"198":2,"201":2}}],["getproperty",{"2":{"13":2,"14":1}}],["get",{"2":{"6":1,"13":1,"37":1,"60":1,"65":1,"69":10,"75":1,"76":1,"77":1,"78":2,"85":2,"86":2,"151":4,"158":3,"159":1,"181":1,"184":3,"188":1,"189":1,"191":1,"192":2,"196":5,"197":1,"201":2,"208":2}}],["gets",{"2":{"6":1,"69":1,"166":1}}],["geoparquet",{"2":{"205":4}}],["geopoly1",{"2":{"203":1,"204":1}}],["geopoly2",{"2":{"203":1,"204":1}}],["geoaxis",{"2":{"199":1,"202":4}}],["geointeface",{"2":{"156":1}}],["geointerace",{"2":{"27":1}}],["geointerfacemakie",{"2":{"151":1,"187":1,"207":1,"208":1}}],["geointerface",{"0":{"35":1},"2":{"1":20,"3":9,"4":2,"6":35,"11":1,"13":1,"14":1,"15":1,"20":1,"27":3,"30":1,"32":1,"35":1,"36":7,"57":1,"58":1,"60":1,"61":1,"64":23,"67":1,"68":1,"69":2,"70":1,"71":1,"73":1,"74":1,"75":1,"77":1,"78":1,"82":1,"83":1,"84":1,"86":1,"89":1,"90":2,"92":1,"93":11,"95":1,"96":2,"98":1,"99":2,"108":1,"109":2,"110":1,"112":1,"113":3,"123":1,"124":2,"126":1,"127":2,"129":1,"130":2,"139":1,"140":2,"150":5,"151":1,"155":3,"156":3,"158":11,"161":5,"169":5,"172":1,"173":1,"175":6,"177":1,"180":2,"183":1,"184":1,"187":1,"188":2,"193":13,"194":1,"197":1,"199":1,"200":1,"201":13,"202":3,"203":5,"207":1,"208":1}}],["geo",{"2":{"151":1,"184":4,"202":2}}],["geotable",{"2":{"34":1}}],["geographic",{"2":{"17":2,"20":4,"166":3,"202":1,"205":1}}],["geographiclib",{"2":{"6":1,"184":1}}],["geojson",{"2":{"11":1,"166":3,"188":2,"200":1,"202":4,"205":3}}],["geodesy",{"2":{"166":1}}],["geodesic`",{"2":{"184":2}}],["geodesic",{"0":{"199":1},"2":{"6":7,"18":3,"36":3,"69":3,"162":2,"165":2,"166":7,"183":6,"184":8,"185":3,"199":1}}],["geodesicsegments",{"2":{"0":1,"6":1,"182":1,"183":3,"184":6,"185":1,"199":1}}],["geodataframes",{"2":{"20":1,"205":3}}],["geod",{"2":{"6":2,"184":3}}],["geoformattypes",{"2":{"1":2,"20":1,"180":2,"200":1}}],["geomakie",{"0":{"202":1},"2":{"199":2,"200":2,"202":5}}],["geomtype",{"2":{"158":2,"161":1}}],["geomtrait",{"2":{"69":2}}],["geoms",{"2":{"55":3,"69":1,"85":1,"121":1,"158":12,"161":10,"165":7}}],["geomfromgeos",{"2":{"37":1,"184":1}}],["geom2",{"2":{"3":8,"4":1,"6":9,"90":1,"93":6,"110":6,"113":1,"124":6,"127":3,"130":2,"140":1,"165":1}}],["geom1",{"2":{"3":8,"4":1,"6":9,"90":1,"93":6,"110":4,"113":1,"124":6,"127":3,"130":2,"140":1,"165":1}}],["geometrical",{"2":{"206":1}}],["geometric",{"2":{"30":2,"32":2,"67":1,"166":1}}],["geometries",{"0":{"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"201":1,"202":1,"203":1},"2":{"1":6,"3":8,"4":14,"6":57,"23":3,"25":1,"27":3,"30":2,"32":2,"34":4,"57":1,"58":3,"61":4,"68":1,"69":1,"71":2,"74":1,"75":5,"77":5,"78":4,"85":6,"86":5,"89":1,"90":7,"92":1,"93":4,"96":1,"98":1,"99":1,"110":2,"113":2,"121":1,"123":2,"124":3,"126":1,"127":1,"130":2,"132":1,"139":2,"140":2,"153":1,"155":3,"157":2,"158":6,"159":3,"160":1,"161":10,"165":1,"166":2,"177":1,"179":3,"180":2,"182":3,"183":1,"184":4,"185":1,"186":1,"189":1,"190":1,"191":1,"194":1,"197":1,"198":1,"200":5,"202":1,"203":2,"204":2,"205":1,"206":5,"207":1,"209":1}}],["geometry=",{"2":{"204":1}}],["geometrybasics",{"2":{"36":3,"63":2,"64":10,"85":1,"92":1,"99":1,"130":1,"140":1}}],["geometrycolumns",{"2":{"158":5,"159":2,"161":1}}],["geometrycollections",{"2":{"206":1}}],["geometrycollectiontrait",{"2":{"28":1,"37":1,"105":1,"106":1,"119":1,"120":1,"136":1,"137":1,"146":1,"147":1}}],["geometrycollection",{"2":{"6":1,"28":1,"208":1}}],["geometrycorrections",{"2":{"172":1}}],["geometrycorrection",{"2":{"0":1,"6":11,"170":2,"171":2,"172":13,"173":11,"176":4}}],["geometry",{"0":{"2":1,"77":1,"105":2,"106":2,"119":2,"120":2,"136":2,"137":2,"146":2,"147":2,"171":1,"180":1,"186":1,"200":1,"204":1},"1":{"3":1,"4":1,"172":1,"173":1,"181":1,"187":1,"188":1,"201":1,"202":1,"203":1,"204":1,"205":1},"2":{"1":10,"3":24,"4":12,"6":73,"9":1,"11":2,"17":1,"18":2,"20":7,"21":1,"23":4,"25":1,"28":3,"34":1,"36":1,"58":7,"61":4,"65":4,"68":3,"70":1,"71":4,"74":4,"83":1,"90":8,"92":4,"93":6,"95":5,"96":2,"98":4,"99":5,"100":4,"101":1,"105":3,"106":4,"108":4,"109":4,"110":3,"112":2,"113":5,"114":4,"115":2,"116":2,"119":3,"120":4,"121":2,"124":3,"126":2,"129":4,"130":5,"131":4,"136":3,"137":4,"139":3,"140":4,"141":4,"142":2,"146":3,"147":4,"149":1,"153":4,"155":3,"156":2,"158":28,"159":12,"161":11,"165":3,"166":8,"169":1,"170":1,"171":2,"172":23,"173":6,"177":1,"178":1,"179":6,"180":6,"182":3,"183":1,"184":5,"185":10,"188":6,"197":6,"198":2,"201":1,"202":1,"203":4,"204":2,"205":2,"206":1,"207":7,"208":4,"209":2}}],["geometryopsprojext",{"2":{"180":1,"181":1,"184":1,"185":1}}],["geometryopslibgeosext",{"2":{"65":1}}],["geometryopscore",{"2":{"0":2,"1":2,"6":1,"36":3,"69":2,"76":1,"78":1,"87":1,"155":2,"161":4}}],["geometryops",{"0":{"0":1,"30":1,"36":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":114,"1":4,"3":18,"4":9,"5":3,"6":115,"7":2,"11":1,"13":1,"14":1,"15":1,"18":1,"20":4,"22":2,"30":1,"31":4,"32":1,"36":1,"37":2,"57":1,"60":1,"63":5,"65":1,"67":1,"69":5,"70":1,"73":1,"74":1,"75":1,"77":1,"78":1,"80":1,"82":1,"83":1,"84":3,"86":1,"89":1,"90":1,"92":1,"95":1,"96":2,"98":1,"99":2,"108":1,"109":2,"110":2,"112":1,"113":2,"123":1,"124":1,"126":1,"127":1,"129":1,"130":2,"139":1,"140":2,"150":3,"151":2,"155":1,"158":1,"165":2,"166":3,"169":1,"172":1,"173":4,"175":1,"181":1,"183":1,"184":2,"187":1,"188":2,"193":1,"195":1,"196":2,"197":1,"199":1,"200":1,"201":3,"206":1,"207":2,"208":2}}],["geom",{"2":{"1":7,"4":21,"6":45,"23":3,"36":12,"37":10,"40":5,"41":5,"42":5,"43":5,"45":4,"46":4,"47":4,"48":4,"49":4,"50":4,"51":4,"52":4,"53":4,"54":4,"58":25,"61":17,"68":28,"69":21,"71":6,"74":15,"75":16,"76":2,"77":20,"78":20,"86":17,"87":9,"90":45,"93":28,"99":4,"110":1,"113":4,"121":3,"124":1,"130":4,"140":4,"150":3,"151":1,"153":2,"155":4,"158":34,"159":13,"161":51,"165":1,"176":11,"178":4,"179":7,"185":24,"188":36,"192":3,"193":7,"194":4,"197":13,"198":17,"208":6}}],["geospatial",{"0":{"203":1,"205":1},"2":{"200":5,"202":1,"203":3,"205":5}}],["geoscontext",{"2":{"184":1}}],["geosdensify",{"2":{"37":2,"184":3}}],["geos",{"0":{"196":1},"2":{"0":1,"6":6,"36":1,"37":8,"38":1,"40":1,"41":1,"42":1,"43":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"65":4,"80":1,"84":4,"85":1,"162":2,"165":1,"166":1,"186":5,"188":2,"195":1,"196":12}}],["got",{"2":{"192":3}}],["good",{"2":{"6":1,"64":1,"196":2,"203":1}}],["goes",{"2":{"6":3,"150":2,"165":1,"198":1}}],["going",{"2":{"4":4,"6":5,"71":2,"84":1,"90":5,"150":1,"151":1,"165":1,"200":1}}],["go",{"2":{"1":5,"3":17,"4":2,"6":40,"11":9,"13":1,"14":1,"15":6,"23":1,"36":2,"37":5,"40":1,"41":1,"42":1,"43":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":2,"57":1,"60":1,"64":1,"67":2,"70":1,"73":2,"74":2,"75":2,"77":2,"78":2,"82":3,"83":2,"84":8,"85":2,"86":2,"89":1,"90":2,"92":6,"95":2,"96":2,"98":1,"99":2,"108":2,"109":2,"110":1,"112":1,"113":2,"123":1,"124":2,"126":1,"127":2,"129":2,"130":2,"139":1,"140":2,"150":6,"151":2,"153":1,"155":2,"158":2,"161":2,"165":2,"169":3,"175":3,"183":7,"184":8,"187":2,"188":49,"193":3,"196":1,"197":2,"199":3,"200":1,"201":3,"203":1,"205":1,"206":9,"207":2,"208":5,"209":1}}],["gtrait",{"2":{"93":2}}],["gt",{"2":{"1":1,"6":1,"9":2,"10":1,"11":5,"69":3,"150":3,"155":1}}],["gif",{"2":{"190":1}}],["gives",{"2":{"208":1}}],["give",{"2":{"121":1,"205":1}}],["given",{"2":{"4":7,"6":21,"18":1,"20":1,"23":2,"34":1,"57":1,"58":1,"61":2,"68":3,"69":8,"71":3,"74":5,"75":1,"76":2,"77":1,"78":2,"86":1,"87":2,"90":4,"93":8,"95":1,"96":1,"99":1,"108":1,"109":1,"113":1,"121":7,"126":1,"127":1,"130":1,"140":1,"142":1,"153":1,"159":1,"172":4,"173":1,"175":1,"182":2,"184":2,"185":2,"191":1}}],["github",{"2":{"6":2,"85":1,"166":1}}],["gis",{"2":{"5":1,"6":1,"19":1,"30":1,"32":1,"64":1}}],["gi",{"2":{"1":13,"3":42,"4":31,"6":109,"11":8,"13":15,"14":15,"15":8,"23":2,"36":1,"37":12,"40":3,"41":3,"42":3,"43":3,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"55":3,"57":3,"58":30,"60":5,"61":21,"63":1,"67":5,"68":38,"69":57,"70":5,"71":17,"73":6,"74":13,"75":19,"76":16,"77":25,"78":26,"82":1,"83":1,"84":3,"85":4,"86":17,"87":54,"89":7,"90":99,"92":8,"93":42,"95":7,"96":3,"98":3,"99":4,"100":6,"101":12,"102":10,"103":7,"104":4,"105":8,"106":6,"108":3,"109":3,"110":21,"112":7,"113":2,"114":3,"115":12,"116":14,"117":4,"118":2,"119":8,"120":6,"121":59,"123":7,"124":51,"126":5,"127":3,"129":7,"130":2,"131":6,"132":12,"133":10,"134":7,"135":4,"136":8,"137":6,"139":5,"140":3,"141":6,"142":15,"143":10,"144":7,"145":4,"146":8,"147":6,"150":32,"151":15,"153":4,"155":9,"158":42,"159":25,"161":55,"167":9,"169":2,"170":10,"172":9,"175":3,"176":8,"177":1,"178":5,"179":8,"183":6,"184":6,"185":13,"187":2,"188":34,"192":4,"193":9,"194":5,"197":55,"198":10,"199":2,"200":1,"201":21,"202":2,"203":2,"207":5,"208":2}}],["lhuilier",{"2":{"162":1,"165":1}}],["lj",{"2":{"151":2}}],["lrs",{"2":{"188":2}}],["lr",{"2":{"151":3,"158":3}}],["lp",{"2":{"121":2}}],["lstart",{"2":{"121":2}}],["ls",{"2":{"121":12}}],["ll",{"2":{"22":1,"63":1,"183":2,"188":1,"202":1,"204":1}}],["l",{"2":{"14":4,"21":1,"64":6,"69":5,"110":2,"121":32,"198":6}}],["lgeos",{"2":{"188":1}}],["lg",{"2":{"13":1,"14":1,"15":2,"37":5,"38":1,"40":3,"41":3,"42":3,"43":3,"45":3,"46":3,"47":3,"48":3,"49":3,"50":3,"51":3,"52":3,"53":3,"54":3,"55":3,"84":4,"184":9,"188":17}}],["l305",{"2":{"6":1}}],["lowest",{"2":{"165":1}}],["lower",{"2":{"6":1,"7":1,"151":1,"207":1}}],["loudly",{"2":{"158":1}}],["location",{"2":{"69":1,"121":6}}],["local",{"2":{"58":3,"61":1,"69":5,"76":1,"87":1,"151":1}}],["locally",{"2":{"17":2,"166":2}}],["loose",{"2":{"168":1}}],["lookup",{"2":{"151":1,"158":1}}],["looks",{"2":{"67":1}}],["look",{"2":{"60":2,"151":2,"165":2,"169":1,"183":1}}],["looping",{"2":{"151":1}}],["loopstatemachine",{"2":{"36":1,"69":3}}],["loop",{"2":{"6":1,"36":1,"58":1,"64":2,"68":3,"69":13,"71":1,"78":1,"87":1,"121":5,"151":3,"190":1}}],["log10",{"2":{"184":2,"188":4}}],["log",{"2":{"6":1,"69":1,"183":2}}],["lon",{"2":{"6":2,"183":1,"184":2}}],["longitude",{"2":{"19":1,"166":3,"202":2}}],["long",{"2":{"6":1,"19":1,"78":1,"184":1,"208":1}}],["longer",{"2":{"6":3,"182":1,"184":2,"185":1}}],["lots",{"2":{"202":1}}],["lot",{"2":{"6":1,"28":1,"58":1,"61":1,"68":1,"71":1,"90":1,"93":1,"124":1,"153":1,"183":1,"196":2}}],["loading",{"2":{"65":1,"181":1,"184":1}}],["load",{"2":{"20":1,"158":2,"159":2,"188":1,"200":2}}],["loads",{"2":{"5":1,"6":1,"64":1}}],["loaded",{"2":{"1":1,"65":3,"180":1,"181":2,"184":2}}],["laptop",{"2":{"208":1}}],["land",{"2":{"202":8}}],["lazily",{"2":{"161":2}}],["layers",{"2":{"156":1}}],["label",{"2":{"14":4,"15":2,"82":2,"84":1,"92":1,"151":3,"183":2,"187":2,"188":2}}],["labels",{"2":{"13":2,"151":1}}],["later",{"2":{"61":1,"84":1,"151":1,"166":1}}],["latitude",{"2":{"19":1,"166":3,"202":2}}],["lat",{"2":{"6":3,"19":1,"183":1,"184":3}}],["larger",{"2":{"69":1,"86":1,"192":1}}],["large",{"2":{"6":8,"64":1,"69":1,"188":2,"205":1,"208":1}}],["lastindex",{"2":{"192":1}}],["last",{"2":{"4":3,"6":3,"9":1,"58":11,"61":2,"63":2,"69":15,"71":4,"90":5,"93":7,"121":20,"142":1,"151":6,"169":1,"176":2,"190":1}}],["lt",{"2":{"6":6,"78":4,"162":1,"165":2,"183":1}}],["len",{"2":{"190":7}}],["length",{"2":{"0":1,"5":1,"6":5,"9":1,"23":1,"64":32,"66":1,"67":1,"68":22,"69":11,"71":1,"74":2,"75":2,"77":1,"78":1,"86":1,"87":1,"121":1,"151":16,"158":3,"159":2,"176":2,"183":1,"189":1,"190":1,"191":1,"192":7}}],["legend",{"2":{"188":4}}],["le",{"2":{"121":10}}],["leaving",{"2":{"169":1}}],["leaf",{"2":{"158":1,"161":3}}],["leading",{"2":{"201":1}}],["lead",{"2":{"78":1,"169":1}}],["least",{"2":{"3":4,"6":4,"69":1,"78":1,"87":2,"121":14,"124":6,"130":1,"136":1,"140":1,"143":3,"144":2,"145":2,"146":1,"147":1,"150":1,"158":1}}],["leftjoin",{"2":{"206":1}}],["leftover",{"2":{"69":1}}],["left=1",{"2":{"69":1}}],["left",{"2":{"64":1,"69":5,"150":1,"151":2,"190":17,"192":5}}],["lets",{"2":{"61":1}}],["let",{"2":{"60":1,"67":1,"69":1,"121":1,"151":3,"183":1,"201":6,"202":4,"203":3,"204":2,"205":2,"209":1}}],["levels",{"2":{"151":1,"156":1,"167":1}}],["level",{"2":{"6":1,"7":1,"9":1,"23":2,"25":1,"34":1,"156":1,"158":2,"165":2,"168":1,"170":1,"172":4,"173":1,"174":1,"176":2,"203":2}}],["less",{"2":{"3":1,"6":7,"58":1,"61":1,"64":1,"68":1,"69":1,"71":1,"90":1,"93":1,"110":1,"124":1,"151":1,"165":1,"188":1,"189":1}}],["l289",{"2":{"6":1}}],["l208",{"2":{"6":1}}],["l2",{"2":{"3":4,"4":4,"6":8,"89":4,"90":12,"95":8,"109":2,"112":5,"123":4,"129":8,"139":3,"140":2}}],["l190",{"2":{"6":1}}],["l1",{"2":{"3":6,"4":4,"6":10,"69":2,"89":4,"90":12,"95":8,"98":4,"99":2,"108":4,"109":2,"112":5,"123":4,"129":8,"139":3,"140":2,"198":2}}],["li",{"2":{"151":2}}],["lie",{"2":{"78":1}}],["lies",{"2":{"69":3,"166":1,"207":1}}],["limitations",{"2":{"78":1}}],["limits",{"2":{"63":1}}],["limited",{"2":{"6":1,"182":1,"185":1}}],["library",{"2":{"74":1,"205":1}}],["libraries",{"2":{"61":1,"174":1,"205":1}}],["libgeos",{"2":{"6":2,"13":1,"14":1,"15":1,"28":1,"37":2,"61":1,"65":5,"84":1,"152":1,"184":7,"188":4,"196":2}}],["little",{"2":{"31":1}}],["literate",{"2":{"31":1,"36":1,"37":1,"55":1,"58":1,"61":1,"64":1,"65":1,"68":1,"69":1,"71":1,"74":1,"76":1,"78":1,"79":1,"85":1,"87":1,"90":1,"93":1,"96":1,"106":1,"109":1,"110":1,"120":1,"121":1,"124":1,"127":1,"137":1,"147":1,"150":1,"151":1,"152":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"170":1,"173":1,"176":1,"177":1,"178":1,"179":1,"181":1,"185":1,"192":1,"193":1,"194":1,"196":1,"198":1}}],["live",{"2":{"19":1,"166":1}}],["lift",{"2":{"14":2}}],["lin",{"2":{"184":5}}],["linked",{"2":{"80":1}}],["linrange",{"2":{"13":2,"14":5,"63":2,"92":1,"151":2,"184":1,"188":2}}],["linering",{"2":{"202":1}}],["lineedge",{"2":{"198":4}}],["line`",{"2":{"198":1}}],["linewidth",{"2":{"60":1,"201":1}}],["linesegment",{"2":{"150":2,"185":1}}],["lines",{"0":{"102":1,"116":1,"133":1,"143":1},"2":{"3":1,"4":4,"6":5,"69":3,"73":1,"78":9,"82":1,"83":2,"84":2,"89":4,"90":4,"92":1,"95":3,"98":1,"99":1,"108":2,"110":1,"112":3,"121":2,"123":4,"124":2,"126":3,"129":3,"130":1,"139":4,"151":3,"186":1,"199":2,"201":4}}],["linestrings",{"2":{"4":2,"6":2,"9":1,"90":2,"149":1,"168":1,"201":1}}],["linestringtrait",{"2":{"3":2,"4":4,"6":7,"11":3,"37":1,"58":1,"68":4,"77":2,"90":8,"93":2,"101":1,"102":4,"103":1,"110":6,"115":1,"116":5,"124":4,"132":1,"133":4,"134":1,"142":1,"143":4,"144":1,"156":1,"167":2,"172":2,"173":1,"185":2}}],["linestring",{"2":{"3":5,"4":6,"6":16,"23":1,"25":1,"58":2,"68":2,"89":2,"90":2,"93":4,"95":2,"96":1,"101":1,"102":3,"109":2,"112":2,"113":1,"115":1,"116":4,"121":2,"123":2,"129":2,"130":1,"132":1,"133":4,"134":1,"142":1,"143":3,"144":1,"150":7,"158":2,"159":2,"197":3,"198":2,"199":1,"201":5}}],["linetrait",{"2":{"3":2,"4":4,"6":6,"58":1,"69":2,"74":2,"77":2,"90":8,"93":2,"101":1,"102":4,"103":1,"115":1,"116":5,"124":4,"132":1,"133":4,"134":1,"142":1,"143":4,"144":1}}],["line2",{"2":{"3":3,"6":7,"77":2,"78":2,"110":5,"124":3,"126":3,"127":2,"150":5}}],["line1",{"2":{"3":4,"6":8,"77":2,"78":2,"110":5,"124":5,"126":3,"127":2,"150":5}}],["linea",{"2":{"1":1,"6":1,"193":1}}],["linearmap",{"2":{"188":1}}],["linearalgebra",{"2":{"36":1}}],["linear",{"2":{"4":7,"6":10,"9":1,"61":2,"64":1,"67":1,"68":3,"71":1,"78":1,"90":8,"93":5,"103":1,"121":2,"133":1,"143":1,"144":2,"149":1,"158":1,"159":1,"166":1,"170":3,"183":5,"184":3,"185":4,"198":1}}],["linearr",{"2":{"1":1,"6":1,"193":1}}],["linearrings",{"2":{"9":1,"117":1,"151":6,"168":1,"201":1}}],["linearringtrait",{"2":{"4":4,"6":4,"11":3,"37":1,"58":3,"61":2,"68":4,"69":4,"77":2,"90":8,"93":2,"101":1,"102":1,"103":4,"115":1,"116":2,"117":3,"132":1,"133":1,"134":4,"142":1,"143":1,"144":4,"167":2,"172":1,"185":2,"188":1}}],["linearring",{"2":{"1":10,"3":2,"4":1,"6":14,"36":1,"58":2,"68":2,"69":2,"85":1,"86":2,"87":1,"93":1,"101":1,"103":3,"115":1,"116":1,"117":2,"121":2,"124":4,"132":1,"134":4,"142":1,"143":1,"144":3,"150":1,"151":3,"155":2,"158":5,"159":2,"168":1,"169":2,"170":1,"175":2,"188":1,"193":8,"198":2,"201":16,"202":4,"203":4,"207":2}}],["linearsegments",{"2":{"0":1,"6":1,"182":1,"183":1,"184":3,"185":2}}],["line",{"0":{"121":1},"2":{"0":1,"3":13,"4":9,"6":53,"18":1,"28":1,"57":2,"58":7,"67":3,"68":10,"69":17,"71":8,"73":6,"74":18,"77":8,"78":67,"87":6,"90":5,"93":11,"96":2,"98":2,"99":1,"101":2,"102":11,"103":8,"108":1,"110":11,"113":2,"115":1,"116":9,"117":4,"121":141,"123":3,"124":12,"126":2,"127":2,"130":2,"132":2,"133":10,"134":7,"139":2,"140":2,"142":1,"143":10,"144":3,"150":6,"151":2,"185":1,"188":1,"189":1,"190":4,"191":1,"197":3,"198":2,"201":3}}],["lineorientation",{"2":{"0":1,"6":2,"77":2}}],["lists",{"2":{"25":1,"69":5,"124":1,"198":1}}],["listed",{"2":{"6":1,"58":1,"188":1}}],["list",{"2":{"6":18,"9":1,"58":20,"69":246,"74":20,"75":14,"76":8,"77":13,"78":5,"86":13,"87":1,"198":1,"208":2}}],["likely",{"2":{"156":1}}],["like",{"0":{"79":1},"2":{"1":2,"6":5,"22":1,"23":2,"24":1,"25":1,"28":1,"29":1,"34":1,"36":1,"61":1,"63":1,"64":1,"67":1,"69":1,"71":1,"75":1,"77":1,"85":1,"86":1,"90":1,"92":1,"93":1,"153":2,"155":2,"158":1,"159":2,"162":3,"165":3,"167":2,"172":2,"173":1,"182":1,"183":1,"202":2}}],["cpu",{"2":{"208":1}}],["cp",{"2":{"199":1}}],["circumstances",{"2":{"166":2}}],["cy",{"2":{"150":2}}],["cyan",{"2":{"65":1,"181":1,"184":1}}],["cx",{"2":{"150":2}}],["cdot",{"2":{"150":1}}],["cs",{"2":{"121":9}}],["cshape",{"2":{"67":3}}],["cw",{"2":{"71":2}}],["cb",{"2":{"63":1,"84":1,"151":1}}],["cgrad",{"2":{"63":1}}],["cgal",{"2":{"63":1}}],["c",{"2":{"37":1,"61":1,"67":1,"71":4,"74":5,"79":3,"121":24,"184":1}}],["ceil",{"2":{"185":1}}],["ce",{"2":{"121":11}}],["certainly",{"2":{"78":1}}],["certain",{"2":{"22":1,"23":1,"31":1,"34":1,"164":1}}],["central",{"2":{"69":1}}],["centroids",{"2":{"67":1,"68":1}}],["centroid",{"0":{"66":1,"67":1},"1":{"67":1,"68":1},"2":{"0":4,"4":2,"6":6,"36":1,"66":3,"67":4,"68":38,"153":1,"159":1,"188":4}}],["cent",{"2":{"67":2}}],["centered",{"2":{"69":1}}],["center",{"2":{"6":1,"67":1,"151":1}}],["cells",{"2":{"151":1}}],["cell",{"2":{"6":4,"70":3,"71":28,"151":2}}],["c2",{"2":{"6":3,"15":2,"90":14,"93":3,"151":21}}],["c1",{"2":{"6":3,"15":2,"90":13,"93":4,"151":26}}],["children",{"2":{"188":1}}],["child",{"2":{"161":11}}],["chunks",{"2":{"158":8,"159":9}}],["chunk",{"2":{"158":12,"159":13}}],["chull",{"2":{"55":2}}],["changes",{"2":{"69":1}}],["changed",{"2":{"69":1,"161":1}}],["change",{"2":{"29":1,"69":3,"84":1}}],["chain=2",{"2":{"69":1}}],["chain=1",{"2":{"69":1}}],["chain",{"2":{"69":66,"76":3,"78":4,"84":2,"87":4}}],["chains",{"2":{"25":1,"69":1}}],["chairmarks",{"2":{"13":1,"184":1,"188":1}}],["cheap",{"2":{"20":1}}],["checkargs",{"2":{"189":1,"190":1,"191":1,"192":1}}],["checks",{"0":{"110":1,"125":1},"1":{"126":1,"127":1},"2":{"20":1,"65":1,"69":1,"78":1,"89":1,"95":1,"98":1,"108":1,"112":1,"121":5,"123":1,"124":1,"126":1,"129":1,"139":1,"207":1}}],["checking",{"2":{"6":2,"69":3,"90":1,"190":1}}],["check",{"2":{"4":1,"6":1,"7":1,"68":1,"69":9,"71":3,"74":1,"75":1,"78":4,"79":1,"86":1,"90":8,"121":11,"151":5,"158":1,"161":1,"175":1,"177":1,"183":2,"190":1,"192":1}}],["checked",{"2":{"4":1,"6":1,"69":1,"78":1,"84":1,"121":1,"177":1}}],["chose",{"2":{"29":1,"151":1}}],["choose",{"2":{"6":1,"85":1,"151":2}}],["chooses",{"2":{"6":1,"69":1}}],["choice",{"2":{"6":1,"21":1,"69":1}}],["cleaner",{"2":{"85":1}}],["cleanest",{"2":{"85":1}}],["clear",{"2":{"70":1}}],["clearly",{"2":{"57":1,"60":1,"92":1}}],["clamped",{"2":{"78":18}}],["clamp",{"2":{"58":1,"78":1}}],["classified",{"2":{"69":1}}],["classify",{"2":{"69":4}}],["classical",{"2":{"19":1}}],["class",{"2":{"6":1,"151":1}}],["class=",{"2":{"6":6}}],["clipping",{"0":{"69":1,"75":1,"76":1,"78":1,"86":1,"87":1},"2":{"6":3,"9":1,"36":8,"69":13,"74":3,"75":1,"77":1,"86":1,"174":1}}],["closure",{"2":{"158":2}}],["closing",{"2":{"58":1}}],["closer",{"2":{"166":1}}],["close",{"2":{"58":5,"69":2,"71":1,"74":1,"78":1,"93":9,"151":1,"169":1,"170":4}}],["closest",{"2":{"4":3,"6":3,"78":2,"92":1,"93":6,"166":1}}],["closed2",{"2":{"90":2}}],["closed1",{"2":{"90":2}}],["closed",{"0":{"168":1},"1":{"169":1,"170":1},"2":{"4":4,"6":11,"9":1,"36":1,"58":6,"61":3,"68":3,"69":1,"71":1,"78":1,"87":3,"90":21,"101":2,"102":5,"103":5,"115":2,"116":5,"117":3,"121":52,"132":3,"133":5,"134":5,"143":5,"144":1,"150":1,"151":1,"168":1,"169":1,"170":2,"171":1,"173":1,"201":1}}],["closedring",{"2":{"0":1,"6":1,"168":1,"169":1,"170":4,"171":1,"172":1,"173":1}}],["clockwise",{"2":{"4":1,"6":4,"9":1,"60":1,"61":1,"71":7,"84":1,"149":2,"150":3,"151":1}}],["ctor",{"2":{"1":1,"6":1,"193":1}}],["came",{"2":{"74":1}}],["caused",{"2":{"158":1}}],["cause",{"2":{"23":1,"28":1,"190":1}}],["carrying",{"2":{"162":1}}],["carry",{"2":{"162":1,"166":1}}],["carried",{"2":{"6":1,"196":1}}],["careful",{"2":{"64":1,"156":1}}],["care",{"2":{"22":1,"158":1,"166":1}}],["cartesian",{"2":{"18":1,"20":2}}],["categorize",{"2":{"74":1}}],["categorical",{"2":{"63":1}}],["category",{"2":{"17":1}}],["catches",{"2":{"162":1}}],["catch",{"2":{"6":1,"69":2,"164":1}}],["cairomakie",{"2":{"13":1,"57":1,"60":1,"63":2,"67":1,"70":1,"73":1,"82":1,"83":1,"84":1,"89":1,"92":1,"95":1,"98":1,"108":1,"112":1,"123":1,"126":1,"129":1,"139":1,"151":1,"183":1,"184":1,"188":1,"199":1,"200":1,"207":1,"208":1}}],["cases",{"2":{"6":1,"64":1,"74":2,"121":3,"156":1,"158":1,"159":1,"161":3}}],["case",{"2":{"6":1,"58":1,"62":2,"68":1,"69":4,"75":1,"78":2,"87":1,"121":16,"159":1,"162":3,"185":1,"209":1}}],["california",{"2":{"208":1}}],["callable",{"2":{"151":4,"165":1,"172":1}}],["calls",{"2":{"69":1,"78":1,"87":1,"93":1,"99":1,"113":1,"130":1,"140":1,"156":1,"158":1,"185":1}}],["calling",{"2":{"38":1,"69":3,"158":1}}],["call",{"2":{"23":1,"29":1,"61":1,"68":1,"69":2,"158":4,"186":1}}],["called",{"2":{"6":2,"68":3,"69":1,"158":1,"164":3,"170":1,"172":1,"173":1,"196":1,"202":1}}],["calculation",{"2":{"78":1}}],["calculations",{"2":{"6":1,"20":1,"30":2,"32":2,"78":1,"166":2,"184":1}}],["calculating",{"2":{"4":1,"6":1,"23":1,"69":1,"177":1}}],["calculated",{"2":{"6":1,"67":2,"71":1,"78":2,"93":1,"158":4}}],["calculates",{"2":{"4":2,"6":6,"61":1,"64":2,"71":1,"78":2,"86":1,"93":2,"184":1,"191":1}}],["calculate",{"2":{"1":2,"5":1,"6":5,"11":1,"58":3,"64":3,"68":1,"71":1,"78":1,"121":1,"151":1,"155":1,"158":3,"160":1}}],["calc",{"2":{"1":2,"6":3,"29":1,"36":1,"37":1,"40":2,"41":2,"42":2,"43":2,"55":1,"58":4,"155":1,"157":1,"158":19,"160":1,"163":1,"177":1,"188":2}}],["caches",{"2":{"20":1}}],["cache",{"2":{"6":1,"64":1}}],["cant",{"2":{"90":1,"151":1,"197":1}}],["candidates",{"2":{"69":2}}],["cannot",{"2":{"3":3,"4":2,"6":5,"61":1,"90":1,"101":1,"104":1,"124":2,"135":1,"140":1,"142":2,"144":1}}],["can",{"2":{"1":1,"4":2,"6":15,"7":2,"9":1,"13":1,"14":1,"18":2,"21":1,"29":1,"31":1,"36":2,"58":1,"61":1,"62":2,"63":1,"64":3,"65":1,"68":1,"69":9,"71":1,"75":3,"77":3,"78":1,"84":1,"85":2,"86":3,"87":1,"89":1,"90":3,"95":1,"98":1,"110":1,"112":1,"121":23,"123":2,"124":3,"126":2,"129":1,"132":1,"133":1,"134":1,"139":1,"143":1,"144":1,"151":1,"152":1,"153":1,"155":1,"157":1,"158":9,"160":1,"161":2,"162":1,"164":2,"165":3,"166":3,"169":2,"170":1,"173":1,"174":2,"175":1,"177":1,"181":1,"183":1,"184":2,"188":2,"196":1,"201":6,"202":1,"203":3,"205":3,"206":3,"207":3}}],["creation",{"2":{"201":1,"203":1}}],["creating",{"0":{"200":1,"201":1,"204":1},"1":{"201":1,"202":1,"203":1,"204":1,"205":1},"2":{"121":1}}],["creates",{"2":{"7":1,"69":3}}],["create",{"0":{"203":1},"2":{"6":2,"13":2,"14":1,"69":1,"74":1,"78":2,"85":1,"151":2,"158":1,"164":1,"173":2,"174":3,"176":2,"200":2,"201":4,"202":5,"203":3,"204":1,"205":1,"207":1}}],["created",{"2":{"4":2,"6":2,"69":1,"93":3}}],["criteria",{"2":{"99":2,"113":2,"130":2,"140":2,"190":3}}],["cropping",{"2":{"63":2}}],["cross=1",{"2":{"77":1}}],["cross`",{"2":{"77":1}}],["crossings",{"2":{"69":3,"121":1}}],["crossing",{"0":{"110":1},"2":{"6":2,"69":81,"75":1,"76":7,"77":3,"78":7,"86":1,"87":6,"99":1,"110":1,"121":1,"130":1}}],["cross",{"0":{"147":1},"2":{"6":1,"9":1,"58":3,"69":13,"74":14,"75":2,"76":1,"77":2,"78":10,"79":4,"86":2,"87":1,"99":1,"110":2,"113":1,"121":17,"124":2,"130":1,"140":1,"150":3}}],["crosses",{"0":{"48":1},"2":{"0":2,"3":2,"6":3,"36":1,"48":2,"69":1,"74":1,"110":26,"121":2,"206":1}}],["crc",{"2":{"6":1,"64":1}}],["crs2",{"2":{"202":2}}],["crs1",{"2":{"202":2,"203":1}}],["crs=nothing",{"2":{"158":1,"177":1,"188":1}}],["crs=gi",{"2":{"158":5,"161":3}}],["crs`",{"2":{"158":1,"180":6}}],["crstrait",{"2":{"20":3}}],["crs",{"0":{"202":1},"2":{"1":16,"4":2,"6":8,"20":4,"36":1,"37":2,"40":2,"41":2,"42":2,"43":2,"55":2,"69":1,"85":1,"151":10,"155":2,"157":3,"158":36,"160":2,"161":4,"166":1,"177":1,"180":7,"188":1,"200":1,"202":13,"203":10,"205":1}}],["customize",{"2":{"158":2,"159":2}}],["custom",{"0":{"209":1},"2":{"6":4,"64":1,"69":1,"164":1,"209":2}}],["curr^2",{"2":{"58":2}}],["curr",{"2":{"58":8,"69":116,"74":9,"87":3,"176":26}}],["currentnode",{"2":{"151":8}}],["current",{"2":{"58":1,"64":8,"69":3,"74":2,"76":1,"78":1,"87":6,"151":2,"176":3}}],["currently",{"2":{"5":1,"6":4,"28":1,"64":1,"69":2,"74":1,"76":2,"151":1,"158":1,"166":2,"198":2}}],["curvature",{"2":{"18":1}}],["curve",{"0":{"121":1},"2":{"3":1,"4":7,"6":18,"58":6,"61":7,"69":5,"71":3,"77":7,"90":6,"92":1,"93":22,"99":2,"101":4,"102":9,"103":9,"113":1,"115":4,"116":6,"117":3,"121":152,"124":1,"130":1,"132":4,"133":6,"134":6,"140":1,"143":6,"145":3}}],["curves",{"2":{"0":1,"3":1,"6":5,"61":3,"71":3,"78":1,"90":13,"92":1,"93":1,"104":1,"121":1,"124":1,"135":1,"188":2}}],["cutpolygon",{"2":{"73":1}}],["cuts",{"2":{"73":1}}],["cutting",{"0":{"72":1},"1":{"73":1,"74":1},"2":{"69":1,"74":2}}],["cut",{"0":{"73":1},"2":{"0":1,"6":6,"36":1,"64":1,"72":1,"73":5,"74":22,"121":1}}],["cos",{"2":{"201":3,"202":1,"203":2}}],["cost",{"2":{"6":1,"69":1}}],["coastlines",{"2":{"199":1}}],["coarse",{"2":{"6":1,"182":1,"185":1}}],["copy",{"2":{"158":1,"172":1,"192":1}}],["coors1",{"2":{"150":2}}],["coors2",{"2":{"150":3}}],["coord",{"2":{"185":6}}],["coords",{"2":{"74":9,"185":8}}],["coordinatetransformations",{"2":{"1":2,"6":2,"188":1,"193":2,"200":1,"201":5,"203":2}}],["coordinate",{"0":{"64":1,"178":1,"202":1,"203":1},"2":{"1":4,"5":5,"6":7,"20":5,"30":1,"32":1,"63":2,"64":10,"180":4,"185":1,"200":3,"202":1}}],["coordinates",{"0":{"5":1,"62":1},"1":{"63":1,"64":1},"2":{"0":4,"1":1,"4":2,"5":7,"6":20,"19":2,"61":2,"62":8,"64":25,"69":2,"70":1,"74":2,"75":1,"77":1,"86":1,"90":2,"93":1,"153":1,"166":2,"178":2,"180":1,"183":1,"184":3,"202":2}}],["co",{"2":{"121":2}}],["corner",{"2":{"71":4,"151":1}}],["corners",{"2":{"71":1}}],["correspondent",{"2":{"150":1}}],["correspond",{"2":{"69":1}}],["corresponding",{"2":{"58":3,"76":2}}],["corrected",{"2":{"172":1}}],["correctness",{"2":{"168":1,"196":1}}],["correcting",{"2":{"25":1,"172":1}}],["corrections",{"0":{"171":1,"173":1},"1":{"172":1,"173":1},"2":{"169":1,"172":6,"175":1}}],["correction",{"2":{"6":10,"36":4,"75":1,"76":2,"77":1,"78":2,"86":1,"87":2,"168":1,"170":2,"171":2,"172":8,"173":7,"174":1,"176":2}}],["correctly",{"2":{"20":1,"158":1,"183":1}}],["correct",{"2":{"6":3,"20":1,"29":1,"58":1,"61":1,"68":1,"69":1,"71":1,"75":1,"77":1,"86":1,"90":1,"93":1,"99":1,"113":1,"124":1,"130":1,"140":1,"168":1,"169":2,"171":1}}],["cov",{"2":{"71":16}}],["cover",{"2":{"101":1,"105":1}}],["covering",{"2":{"6":2,"108":1,"173":2,"176":2}}],["covered",{"0":{"103":1,"104":1,"134":1},"2":{"3":1,"6":1,"76":1,"87":1,"98":1,"99":1,"103":2,"104":2,"105":1,"106":2,"108":1,"120":2,"121":3,"176":1}}],["coveredby",{"0":{"53":1,"97":1,"98":1,"101":1,"102":1,"105":1,"106":1,"120":1},"1":{"98":1,"99":1},"2":{"0":2,"3":4,"6":4,"36":1,"53":2,"69":1,"97":1,"98":3,"99":10,"100":6,"101":13,"102":15,"103":13,"104":5,"105":2,"106":2,"109":3,"206":1}}],["covers",{"0":{"52":1,"107":1,"108":1},"1":{"108":1,"109":1},"2":{"0":2,"3":5,"6":5,"36":1,"52":2,"107":1,"108":4,"109":5,"151":1,"206":1}}],["coverages",{"2":{"6":1,"71":1}}],["coverage",{"0":{"70":1},"2":{"0":1,"6":2,"36":1,"69":1,"70":3,"71":16}}],["code",{"2":{"7":1,"10":1,"31":5,"64":1,"99":1,"113":1,"121":1,"130":1,"140":1,"150":1,"163":1,"195":1,"208":1}}],["colatitude",{"2":{"166":1}}],["colname",{"2":{"158":3}}],["col",{"2":{"158":2,"159":1}}],["columns",{"2":{"158":2}}],["column",{"2":{"27":1,"158":9,"159":8,"161":2,"204":2,"206":8}}],["colored",{"2":{"207":1}}],["color=",{"2":{"202":2}}],["colors",{"2":{"82":1,"83":1,"199":1,"207":2}}],["colorrange",{"2":{"63":2,"92":1}}],["colorbar",{"2":{"63":1,"84":1,"92":1,"151":1}}],["colormap",{"2":{"14":1,"63":3,"92":1}}],["color",{"2":{"6":1,"60":1,"63":2,"64":1,"65":1,"67":1,"73":3,"82":1,"83":1,"84":2,"89":4,"92":2,"95":4,"98":1,"108":1,"112":4,"123":4,"129":4,"164":3,"181":1,"184":1,"199":1,"201":1,"202":1,"207":5}}],["collect",{"2":{"11":3,"13":1,"55":1,"57":1,"60":2,"64":1,"67":1,"70":2,"73":2,"85":2,"92":1,"151":3,"158":2,"159":1,"183":4,"197":2}}],["collections",{"0":{"105":1,"106":1,"119":1,"120":1,"136":1,"137":1,"146":1,"147":1},"2":{"1":2,"6":8,"27":1,"155":2,"157":1,"158":2,"159":2,"161":3,"188":2,"205":1}}],["collection",{"2":{"1":1,"4":7,"6":14,"23":2,"34":2,"58":2,"61":3,"71":2,"93":2,"105":2,"106":2,"119":2,"120":2,"136":2,"137":2,"146":2,"147":2,"153":1,"155":1,"158":3,"159":1,"179":3,"188":1,"194":1,"197":1}}],["collinear",{"2":{"3":1,"6":2,"69":5,"75":2,"77":3,"78":12,"86":2,"123":1,"124":2}}],["come",{"2":{"166":1}}],["commonly",{"2":{"205":1}}],["common",{"2":{"89":1,"160":1,"185":1,"200":1,"202":1,"203":1}}],["commented",{"2":{"150":1}}],["comments",{"2":{"121":1}}],["comment",{"2":{"35":1}}],["combos",{"2":{"76":1,"78":1,"87":1}}],["combination",{"2":{"69":1,"161":2}}],["combines",{"2":{"68":1}}],["combine",{"2":{"68":2,"69":5,"176":1}}],["combined",{"2":{"6":1,"69":4,"87":1,"173":1,"176":2,"201":1}}],["coming",{"2":{"71":1}}],["com",{"2":{"6":2,"78":1,"85":1,"166":1}}],["compilation",{"2":{"163":1}}],["compiled",{"2":{"29":1}}],["compiler",{"2":{"29":1,"158":2,"163":2}}],["components",{"2":{"67":1,"68":2,"159":1,"161":25}}],["component",{"2":{"61":3,"68":11,"71":8,"78":1,"158":2,"161":2}}],["composed",{"2":{"4":4,"6":5,"90":5,"201":2}}],["complexity",{"2":{"153":1}}],["complex",{"2":{"69":1,"153":1,"188":1,"206":1}}],["complete",{"2":{"61":1}}],["completely",{"2":{"1":1,"3":4,"6":4,"69":2,"76":1,"87":1,"95":2,"96":1,"99":1,"108":1,"109":1,"121":1,"130":1,"155":1,"158":1,"166":1}}],["complementary",{"2":{"20":1}}],["comprised",{"2":{"6":3,"75":1,"77":1,"86":1}}],["computing",{"2":{"19":1,"65":1,"80":1}}],["computational",{"2":{"6":1,"64":1}}],["computation",{"2":{"6":6,"64":1,"68":1,"75":1,"77":1,"86":1,"189":2,"190":2,"191":2}}],["computer",{"2":{"6":1,"64":1}}],["computes",{"2":{"6":1,"85":1}}],["compute",{"2":{"4":1,"6":3,"61":1,"64":1,"85":3,"185":1}}],["computed",{"2":{"4":4,"6":5,"58":1,"61":3,"64":3,"71":1,"199":1}}],["compact",{"2":{"208":3}}],["comparisons",{"2":{"206":1}}],["comparing",{"2":{"87":1,"90":1}}],["compares",{"2":{"151":1}}],["compared",{"2":{"90":1}}],["compare",{"2":{"3":1,"4":1,"6":2,"58":1,"87":1,"90":2,"124":1}}],["compatibility",{"2":{"61":1}}],["compatible",{"2":{"1":3,"27":1,"30":1,"32":1,"58":1,"61":1,"64":2,"68":1,"71":1,"90":1,"93":1,"96":1,"99":1,"109":1,"113":1,"124":1,"127":1,"130":1,"140":1,"155":1,"156":1,"158":1,"164":1,"180":2}}],["couple",{"2":{"204":1}}],["course",{"2":{"157":1}}],["country",{"2":{"208":8}}],["countries",{"2":{"11":1,"83":1,"188":1}}],["counted",{"2":{"78":2}}],["counters",{"2":{"64":8}}],["counterparts",{"2":{"38":1}}],["counter",{"2":{"6":1,"69":8,"121":1,"149":1,"150":1}}],["counterclockwise",{"2":{"4":1,"6":2,"9":1,"60":2,"61":1,"84":1,"85":1}}],["count",{"2":{"69":16,"151":1,"192":1}}],["couldn",{"2":{"9":1,"163":1}}],["could",{"2":{"4":1,"6":1,"61":3,"78":4,"80":1,"87":1,"93":1,"121":2,"166":1,"180":1}}],["conditions",{"2":{"206":4}}],["conflict",{"2":{"94":1}}],["connected",{"2":{"121":5}}],["connect",{"2":{"71":11}}],["connecting",{"2":{"58":1,"190":1,"201":2}}],["connections",{"2":{"6":2,"173":2,"176":2}}],["contents",{"2":{"158":1,"168":1}}],["context",{"2":{"37":4,"184":4,"202":2}}],["contours",{"2":{"151":1}}],["contour",{"2":{"151":4}}],["continue",{"2":{"61":1,"69":11,"71":1,"76":2,"78":1,"121":1,"158":1,"172":1,"176":3,"192":1,"208":1}}],["contributions",{"2":{"30":1,"32":1}}],["controlled",{"2":{"29":1}}],["control",{"2":{"28":1}}],["containing",{"2":{"70":1,"207":1}}],["contain",{"2":{"3":1,"6":1,"31":1,"87":1,"95":1,"124":1,"165":1,"201":1}}],["contained",{"2":{"3":1,"6":2,"9":1,"69":3,"87":4,"96":1,"108":1,"123":1,"124":1,"158":1,"207":1}}],["contains",{"0":{"50":1,"94":1,"95":1},"1":{"95":1,"96":1},"2":{"0":2,"3":4,"6":4,"31":1,"36":1,"38":1,"50":2,"69":1,"80":1,"87":1,"94":1,"95":5,"96":4,"156":1,"175":1,"206":1,"207":1}}],["consistent",{"2":{"69":1,"153":1}}],["consistency",{"2":{"27":1}}],["considered",{"2":{"58":1,"64":1}}],["consider",{"2":{"57":1,"60":1,"67":1,"70":1,"71":3,"73":1,"89":1,"92":2,"95":1,"98":1,"108":1,"112":1,"121":3,"123":1,"126":1,"129":1,"139":1}}],["constprop",{"2":{"110":1}}],["constants",{"2":{"69":1}}],["const",{"2":{"36":4,"69":2,"99":4,"113":3,"130":4,"140":4,"160":3,"188":4}}],["constructors",{"2":{"167":2}}],["construct",{"2":{"69":1,"167":1}}],["constructing",{"2":{"69":2,"164":1,"203":1}}],["construction",{"2":{"69":1}}],["constructed",{"2":{"1":1,"25":1,"180":1}}],["constrained",{"2":{"6":3,"75":1,"77":1,"86":1}}],["conceptual",{"2":{"165":1}}],["concepts",{"0":{"33":1},"1":{"34":1,"35":1},"2":{"31":1}}],["concieve",{"2":{"9":1}}],["concave",{"2":{"6":1,"58":2,"67":2,"150":2}}],["convention",{"2":{"67":1}}],["convenience",{"2":{"64":1,"69":1,"196":1}}],["convenient",{"2":{"18":1}}],["conversely",{"2":{"69":1}}],["conversions",{"2":{"161":1}}],["conversion",{"0":{"194":1},"2":{"27":1,"38":1}}],["converted",{"2":{"20":1,"27":1,"64":3}}],["converts",{"2":{"6":1,"197":1}}],["convert",{"0":{"100":1,"114":1,"131":1,"141":1},"2":{"6":4,"37":1,"40":2,"41":2,"42":2,"43":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"55":1,"64":6,"85":1,"92":1,"151":2,"179":1,"184":1,"188":3,"194":1,"196":1,"197":1,"198":1}}],["convexity",{"2":{"84":2}}],["convexhull",{"2":{"55":1}}],["convex",{"0":{"55":1,"80":1,"83":1},"1":{"81":1,"82":1,"83":1,"84":1,"85":1},"2":{"0":1,"6":7,"36":2,"55":1,"58":3,"80":4,"82":2,"83":1,"84":4,"85":11,"150":1}}],["ericsson",{"2":{"162":1,"165":1}}],["err",{"2":{"6":1}}],["errors",{"0":{"164":1},"2":{"36":1,"78":1,"164":2,"185":1}}],["error",{"0":{"181":1},"2":{"4":1,"6":5,"7":1,"23":1,"36":6,"37":2,"64":1,"65":4,"69":5,"78":2,"79":1,"90":2,"151":1,"156":1,"164":2,"172":2,"181":3,"184":5,"192":4,"196":3,"197":1}}],["effect",{"2":{"158":1}}],["effects",{"2":{"158":1}}],["efficiently",{"2":{"25":1}}],["efficient",{"2":{"6":1,"64":1,"75":2,"77":2,"85":1,"86":2,"170":1}}],["e2",{"2":{"121":4}}],["e1",{"2":{"121":8}}],["euclid",{"2":{"71":2,"93":11,"121":1,"189":1}}],["euclidean",{"2":{"4":1,"6":1,"17":1,"64":13,"93":6,"166":6,"185":1}}],["epsg",{"2":{"202":5,"203":3}}],["eps",{"2":{"58":2,"78":14}}],["eponymous",{"2":{"6":1,"184":1}}],["est",{"2":{"208":1}}],["essentially",{"2":{"38":1,"167":1}}],["especially",{"2":{"6":1,"23":1,"28":1,"151":1}}],["eg",{"2":{"37":1,"162":1}}],["ever",{"2":{"69":1,"165":1}}],["everything",{"2":{"188":1}}],["everywhere",{"2":{"166":1}}],["every",{"2":{"6":1,"69":3,"90":2,"156":1,"196":1}}],["evenly",{"2":{"207":1}}],["eventually",{"2":{"69":1}}],["even",{"2":{"61":2,"69":1,"71":1,"78":1,"90":1,"93":1,"153":1,"169":1,"174":1}}],["evaluated",{"2":{"206":1}}],["eval",{"2":{"36":2,"158":1,"159":1}}],["ecosystem",{"2":{"20":1}}],["e",{"2":{"9":1,"17":1,"18":1,"27":1,"65":1,"69":7,"151":1,"156":1,"158":2,"162":1,"164":4,"165":1,"166":1,"198":3,"201":2,"202":1,"205":1}}],["etc",{"0":{"161":1},"2":{"6":1,"25":2,"36":1,"60":1,"85":1,"167":1,"198":1,"205":1}}],["eltype",{"2":{"151":4}}],["ellipsoidparametrization",{"2":{"166":3}}],["ellipsoid",{"2":{"17":1,"18":4,"19":1,"20":1,"21":1,"166":3,"199":1}}],["ellipsoidal",{"2":{"6":1,"185":1}}],["elements",{"2":{"105":1,"106":1,"119":1,"120":1,"124":1,"136":1,"137":1,"146":1,"147":1}}],["element",{"2":{"6":6,"57":1,"69":4,"74":2,"75":1,"77":1,"78":1,"86":3,"183":1,"202":1}}],["elsewhere",{"2":{"74":1}}],["elseif",{"2":{"69":8,"71":7,"75":1,"77":1,"78":14,"86":2,"87":1,"110":3,"121":10,"150":1,"151":2,"176":1,"190":2,"192":2}}],["else",{"2":{"3":6,"6":6,"20":1,"58":1,"64":2,"69":22,"71":9,"74":1,"76":2,"78":9,"86":1,"87":10,"110":2,"121":17,"124":8,"151":20,"158":6,"159":2,"161":1,"170":1,"178":1,"181":1,"188":2,"190":4,"192":2,"193":1,"194":1,"196":1}}],["empty",{"2":{"4":2,"6":6,"58":2,"69":2,"75":1,"77":1,"78":2,"86":1,"151":2}}],["embedding",{"0":{"157":1,"177":1}}],["embedded",{"0":{"203":1},"2":{"151":1,"157":3,"200":1,"203":1}}],["embed",{"2":{"0":2,"4":1,"6":1,"157":1,"177":2}}],["equator",{"2":{"166":1}}],["equatorial",{"2":{"6":6,"184":4}}],["equality",{"2":{"69":1,"78":1,"206":1}}],["equal",{"2":{"3":2,"4":16,"6":19,"58":6,"78":1,"89":3,"90":22,"92":1,"93":4,"101":1,"115":1,"121":15,"123":1,"124":2,"132":1,"142":2,"169":1}}],["equals",{"0":{"45":1,"88":1,"89":1},"1":{"89":1,"90":1},"2":{"0":17,"4":3,"6":19,"36":1,"45":2,"58":2,"69":5,"74":2,"78":8,"88":1,"89":2,"90":50,"93":1,"101":1,"115":1,"121":10,"124":2,"132":1,"142":3,"206":1}}],["equivalent",{"2":{"3":1,"4":4,"6":6,"18":1,"61":1,"69":3,"78":1,"87":1,"90":5,"99":1,"121":1}}],["earlier",{"2":{"201":3}}],["earth",{"2":{"6":3,"18":2,"30":1,"32":1,"166":2,"184":2,"185":1,"188":1,"202":2,"206":1}}],["easiest",{"2":{"204":1}}],["easier",{"2":{"163":1,"164":1,"195":1}}],["easily",{"2":{"153":1}}],["east",{"2":{"71":9}}],["easy",{"2":{"1":1,"6":1,"174":1,"193":1}}],["eachindex",{"2":{"58":1,"150":1,"151":3,"158":1,"159":1,"189":1,"192":1}}],["each",{"2":{"3":2,"4":3,"6":7,"9":1,"23":2,"25":1,"58":4,"61":2,"62":4,"64":1,"69":38,"71":1,"78":3,"90":2,"93":1,"99":1,"113":1,"121":6,"123":1,"124":3,"130":1,"140":1,"150":1,"151":1,"158":1,"174":2,"188":1,"198":1,"204":1,"205":1,"207":2,"208":2,"209":1}}],["eachedge",{"0":{"198":1},"2":{"0":1,"6":1,"69":5,"198":8}}],["enable",{"2":{"209":1}}],["enabled",{"2":{"206":1}}],["enabling",{"0":{"209":1}}],["enclosed",{"2":{"121":1}}],["encode",{"2":{"29":1}}],["encompasses",{"2":{"23":1,"121":1}}],["encounters",{"2":{"23":1}}],["en",{"2":{"121":1,"190":1}}],["envelope",{"2":{"78":2}}],["envelopes",{"2":{"78":2}}],["enough",{"2":{"69":2}}],["entirely",{"2":{"121":1}}],["entire",{"2":{"71":1,"121":4,"165":1}}],["entry",{"2":{"69":11,"76":3,"78":4,"87":3,"151":1}}],["ent",{"2":{"69":19,"74":2}}],["enter",{"2":{"69":4}}],["ensuring",{"2":{"6":1,"182":1,"185":1}}],["ensure",{"2":{"6":3,"64":1,"75":1,"77":1,"86":1,"158":2,"168":2,"171":1}}],["ensures",{"2":{"6":3,"170":1,"173":3,"176":2}}],["enumerate",{"2":{"13":2,"58":1,"69":11,"71":1,"74":1,"76":1,"87":2,"121":1,"151":2,"176":2,"192":1,"198":1}}],["enum",{"2":{"6":2,"69":3,"77":3,"121":3}}],["endpt",{"2":{"190":3}}],["endpoints",{"2":{"69":3,"71":1,"76":1,"78":6,"87":1,"93":2,"121":11,"124":2,"139":1}}],["endpoint=3",{"2":{"69":1}}],["endpointtype",{"2":{"69":2}}],["endpoint",{"2":{"3":1,"6":2,"69":27,"77":1,"78":16,"93":2,"98":1,"121":3,"124":2,"188":4,"190":4,"201":1}}],["ending",{"2":{"69":1,"71":1}}],["end",{"2":{"1":1,"9":1,"13":4,"14":3,"36":4,"37":4,"40":1,"41":1,"42":1,"43":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"58":18,"61":8,"64":35,"65":3,"68":10,"69":156,"71":43,"74":9,"75":8,"76":12,"77":7,"78":33,"79":1,"85":3,"86":8,"87":29,"90":20,"93":19,"105":2,"106":2,"110":20,"119":2,"120":2,"121":104,"124":21,"132":1,"136":2,"137":2,"142":1,"146":2,"147":2,"150":9,"151":44,"152":1,"153":1,"155":1,"158":30,"159":20,"161":14,"162":9,"163":5,"164":3,"165":4,"166":8,"167":1,"168":1,"170":5,"172":3,"176":18,"178":4,"179":4,"180":1,"181":2,"184":8,"185":9,"188":7,"189":6,"190":30,"191":3,"192":27,"193":4,"194":4,"196":4,"197":19,"198":6}}],["enforce",{"2":{"0":1,"6":2,"37":3,"196":3}}],["executed",{"2":{"166":1}}],["exits",{"2":{"69":1}}],["exit",{"2":{"69":32,"74":2,"76":3,"78":3,"87":2}}],["existingnodes",{"2":{"151":3}}],["existing",{"2":{"69":3,"86":1,"151":1,"202":2,"204":1}}],["exists",{"2":{"69":1,"71":1,"78":1}}],["exist",{"2":{"6":1,"69":1,"78":3,"196":1}}],["excluding",{"2":{"118":1,"121":1,"132":2}}],["exclude",{"2":{"110":9}}],["exclusively",{"2":{"144":1}}],["exclusive",{"2":{"71":1,"78":2}}],["exc",{"2":{"65":2,"181":2,"184":2}}],["excellent",{"2":{"28":1}}],["except",{"2":{"23":1,"24":1}}],["exceptions",{"0":{"164":1}}],["exception",{"2":{"6":2,"69":4,"164":2}}],["excess",{"2":{"5":1,"6":1,"64":1}}],["exp10",{"2":{"184":1,"188":2}}],["expressed",{"2":{"62":2}}],["express",{"2":{"62":1}}],["experiment",{"2":{"163":1}}],["experimental",{"2":{"36":3}}],["expect",{"2":{"1":1,"126":1,"180":1}}],["explain",{"2":{"31":1,"69":1}}],["explanations",{"2":{"31":3}}],["explicitly",{"2":{"23":1,"29":1,"58":2,"61":1,"64":1,"65":1,"90":1,"93":2,"164":1,"166":1,"181":1,"184":1}}],["expose",{"2":{"80":1}}],["exposes",{"2":{"22":1}}],["export",{"2":{"36":1,"62":1,"94":1,"163":1,"182":1,"203":1,"205":1}}],["exponential",{"2":{"9":1}}],["ext2",{"2":{"121":3}}],["ext1",{"2":{"121":3}}],["ext",{"2":{"63":15,"69":20,"71":2,"74":3,"75":8,"77":8,"78":18,"86":8,"87":14,"110":7,"121":7,"198":2}}],["extrema",{"2":{"151":1,"197":1}}],["extremely",{"2":{"69":1}}],["extreem",{"2":{"58":10}}],["extract",{"2":{"85":1,"151":1,"158":1,"159":2,"165":1,"188":1}}],["extracted",{"2":{"20":1}}],["extracts",{"2":{"20":1,"85":1}}],["extra",{"2":{"6":3,"69":1,"86":1,"164":3,"182":1,"184":2,"185":1}}],["external",{"2":{"61":1,"121":2}}],["exteriors",{"2":{"9":1,"77":2,"86":2,"151":1}}],["exterior",{"2":{"3":4,"4":2,"6":10,"58":1,"60":1,"61":1,"63":1,"64":36,"68":2,"69":4,"75":2,"86":3,"87":14,"90":2,"93":1,"95":1,"96":1,"99":3,"109":1,"113":2,"121":9,"129":1,"130":3,"133":3,"134":3,"140":2,"150":6,"151":6,"170":3,"171":1,"173":1,"177":1,"201":2}}],["extending",{"2":{"124":1}}],["extended",{"2":{"93":1,"166":2}}],["extensions",{"2":{"36":1,"80":1,"205":1}}],["extension",{"2":{"1":1,"6":1,"64":1,"65":1,"85":1,"98":1,"152":1,"180":3,"181":2,"184":1,"185":1,"186":1,"205":1}}],["extent`",{"2":{"160":1,"177":1}}],["extent=e",{"2":{"198":1}}],["extent=ext",{"2":{"69":1}}],["extent=true",{"2":{"177":1}}],["extent=nothing",{"2":{"161":1}}],["extent=",{"2":{"158":4}}],["extent=false",{"2":{"158":1,"188":1}}],["extent=gi",{"2":{"151":3}}],["extents",{"2":{"4":3,"6":4,"36":5,"69":5,"71":1,"78":3,"121":5,"124":1,"151":3,"158":2,"177":2,"197":2,"198":3}}],["extent",{"0":{"177":1},"2":{"0":2,"1":4,"4":3,"6":9,"29":1,"36":3,"37":1,"40":2,"41":2,"42":2,"43":2,"55":1,"63":1,"69":10,"70":1,"71":1,"78":10,"121":4,"124":2,"151":12,"155":2,"157":4,"158":29,"160":3,"161":1,"163":1,"177":2,"188":1,"197":7,"198":3}}],["exactly",{"2":{"192":1}}],["exactpredicates",{"2":{"7":1,"13":2,"14":2,"36":1}}],["exact",{"2":{"3":5,"6":5,"7":2,"12":1,"13":1,"69":38,"71":6,"74":7,"75":5,"77":5,"78":9,"79":1,"86":5,"87":7,"96":2,"99":3,"101":1,"102":3,"103":3,"104":1,"109":2,"110":1,"113":2,"115":1,"116":3,"117":2,"118":1,"121":24,"124":3,"127":2,"130":3,"132":1,"133":3,"134":3,"135":1,"140":2,"142":1,"143":3,"144":1,"145":1,"151":1,"165":1,"175":1}}],["exampleimport",{"2":{"73":1,"175":1}}],["examples",{"0":{"183":1,"187":1},"2":{"3":8,"4":1,"6":11,"31":2,"90":1,"96":1,"99":1,"109":1,"110":1,"113":1,"124":1,"130":1,"140":1,"150":2,"197":1}}],["example",{"0":{"63":1,"81":1,"169":1,"175":1,"207":1,"208":1},"1":{"82":1},"2":{"1":3,"3":2,"6":11,"11":1,"19":1,"21":1,"25":1,"28":2,"57":1,"60":1,"63":1,"67":1,"68":1,"70":1,"73":1,"74":1,"75":1,"77":1,"78":1,"86":1,"89":1,"90":1,"92":1,"95":1,"98":1,"108":1,"110":1,"112":1,"121":1,"123":1,"126":1,"127":1,"129":1,"139":1,"150":1,"151":8,"153":1,"155":2,"158":2,"162":2,"164":1,"165":1,"166":1,"169":1,"171":1,"174":1,"175":1,"178":1,"187":1,"188":2,"193":1,"196":1,"207":1,"209":1}}],["either",{"2":{"1":2,"3":1,"6":2,"20":1,"21":1,"27":1,"30":1,"32":1,"69":10,"75":1,"77":1,"78":2,"86":1,"87":1,"92":1,"99":1,"121":5,"126":1,"130":1,"139":1,"140":1,"151":1,"155":2,"158":3,"162":1,"172":1,"206":1}}],["edgekeys",{"2":{"151":3}}],["edge",{"2":{"3":1,"4":3,"6":8,"25":1,"36":2,"61":1,"67":1,"69":36,"71":13,"75":1,"77":1,"78":8,"86":1,"90":1,"93":4,"101":2,"116":2,"117":1,"121":7,"124":21,"132":2,"133":1,"134":1,"151":7,"197":2,"198":1}}],["edges`",{"2":{"78":1}}],["edges",{"2":{"0":1,"4":2,"6":8,"69":31,"71":8,"76":3,"78":10,"87":3,"89":2,"90":1,"93":3,"95":1,"101":1,"102":3,"103":7,"104":3,"112":1,"115":3,"118":1,"121":3,"124":20,"129":1,"132":1,"151":22,"197":29,"198":8}}],["edgelist",{"0":{"198":1},"2":{"0":1,"6":4,"69":3,"198":3}}],["edgeintersect",{"2":{"0":1,"6":1,"69":5}}],["vw",{"2":{"188":3}}],["von",{"2":{"151":1}}],["v2",{"2":{"121":9}}],["v1",{"2":{"121":9}}],["v`",{"2":{"64":2}}],["vcat",{"2":{"58":1,"64":1,"158":2}}],["vararg",{"2":{"64":1}}],["varying",{"2":{"166":1}}],["vary",{"2":{"58":1}}],["variables",{"2":{"29":1,"64":8,"96":1,"109":1,"127":1}}],["variable",{"2":{"29":1,"76":2}}],["vals",{"2":{"190":9}}],["valign",{"2":{"188":1}}],["validated",{"2":{"76":2,"78":2,"87":2}}],["validate",{"2":{"9":1}}],["valid",{"2":{"1":1,"6":8,"68":1,"75":2,"77":2,"78":3,"86":2,"151":1,"168":3,"169":1,"174":1,"175":1,"192":1,"193":1}}],["val",{"2":{"58":2,"69":2,"78":8,"121":30,"124":4}}],["values=",{"2":{"151":2}}],["values=sort",{"2":{"151":1}}],["values",{"2":{"1":1,"5":3,"6":15,"18":2,"58":2,"63":3,"64":40,"68":2,"69":5,"71":5,"78":1,"93":2,"121":4,"151":19,"155":1,"158":2,"163":1,"190":2,"192":1}}],["value",{"2":{"0":1,"4":7,"5":2,"6":19,"14":1,"29":1,"36":1,"37":2,"58":1,"60":2,"61":4,"64":45,"69":5,"71":2,"78":7,"92":1,"93":3,"151":6,"158":2,"179":4,"190":11,"196":2,"206":1}}],["vs",{"0":{"15":1},"2":{"12":1,"78":2}}],["vᵢ",{"2":{"6":1}}],["v",{"2":{"5":2,"6":6,"14":4,"64":23,"93":8}}],["visvalingam",{"2":{"186":1}}],["visvalingamwhyatt",{"0":{"191":1},"2":{"0":1,"6":3,"188":4,"191":5}}],["visualized",{"2":{"169":1}}],["visualize",{"2":{"126":1,"202":1}}],["visa",{"2":{"69":1}}],["visited",{"2":{"69":4}}],["view",{"2":{"69":2,"85":1,"151":1,"176":1,"190":3,"208":1}}],["viewport",{"2":{"14":1}}],["views",{"2":{"1":1,"69":1,"86":1,"180":1}}],["vincenty",{"2":{"6":1,"185":1}}],["via",{"2":{"6":1,"36":1,"65":1,"80":1,"152":1,"166":1,"181":1,"184":1,"196":2}}],["vec",{"2":{"85":2}}],["vect",{"2":{"161":2}}],["vectypes",{"2":{"64":5}}],["vector",{"2":{"1":12,"4":6,"5":1,"6":48,"23":1,"28":1,"34":1,"57":1,"58":10,"64":14,"69":14,"74":6,"75":4,"76":1,"77":2,"78":3,"86":4,"121":1,"124":2,"150":3,"151":4,"153":1,"155":1,"158":6,"159":4,"170":1,"179":3,"182":1,"183":1,"185":2,"189":1,"190":4,"191":1,"192":2,"193":10,"197":14,"198":1,"202":1}}],["vectors",{"2":{"1":1,"4":2,"6":3,"27":1,"58":4,"64":3,"69":1,"85":1,"93":1,"149":1,"151":1,"155":1,"158":1,"161":2,"188":1}}],["ve",{"2":{"20":1,"22":1,"69":2,"158":1,"185":1}}],["vein",{"2":{"7":1}}],["version",{"2":{"196":1}}],["versa",{"2":{"69":1}}],["vert",{"2":{"192":21}}],["verts",{"2":{"188":2}}],["vertical",{"2":{"63":1,"71":1,"78":1,"151":1}}],["vertices",{"2":{"6":8,"9":1,"62":4,"64":5,"69":4,"74":2,"85":1,"101":1,"103":5,"112":1,"115":3,"118":1,"121":1,"132":1,"169":1,"182":2,"183":1,"184":3,"185":3,"188":1,"191":1}}],["vertex",{"2":{"5":1,"6":2,"58":1,"62":2,"64":2,"69":20,"78":12,"84":1,"101":2,"116":2,"117":1,"121":1,"132":3}}],["very",{"2":{"0":1,"183":1,"208":2}}],["ty",{"2":{"151":3}}],["typing",{"2":{"65":1,"181":1,"184":1}}],["typically",{"2":{"62":1,"204":1}}],["typemax",{"2":{"93":1,"151":9}}],["typeof",{"2":{"24":1,"64":3,"158":2,"161":1,"162":1,"167":1,"179":1,"185":1,"198":1,"209":1}}],["type=",{"2":{"6":2}}],["type2",{"2":{"6":2,"90":4}}],["type1",{"2":{"6":2,"90":5}}],["types",{"0":{"195":1},"1":{"196":1},"2":{"6":5,"18":1,"28":1,"29":1,"36":2,"64":3,"69":1,"71":1,"74":1,"121":3,"163":1,"164":2,"188":1,"195":3,"206":1}}],["type",{"2":{"4":11,"5":1,"6":44,"11":1,"20":4,"27":2,"28":1,"29":2,"35":2,"58":9,"61":11,"63":1,"64":8,"68":8,"69":29,"71":8,"74":6,"75":9,"76":6,"77":10,"78":22,"86":9,"87":9,"90":2,"93":28,"158":5,"161":41,"162":7,"163":6,"165":2,"166":3,"167":3,"171":1,"172":5,"173":2,"178":1,"184":1,"185":1,"188":3,"194":1,"196":1,"197":3,"198":7,"199":1}}],["tx",{"2":{"151":3}}],["tᵢ",{"2":{"64":1}}],["tutorial",{"2":{"200":1,"206":1}}],["tutorials",{"2":{"31":2}}],["tups",{"2":{"170":4}}],["tuplepoint",{"2":{"36":3,"197":1}}],["tuple",{"0":{"194":1},"2":{"4":1,"6":17,"36":2,"64":2,"68":3,"69":4,"71":3,"74":1,"78":31,"121":17,"150":2,"151":5,"158":2,"183":1,"188":2,"190":1,"192":2,"197":5,"198":3,"207":2}}],["tuples",{"2":{"0":1,"6":3,"36":1,"65":1,"68":1,"69":1,"74":1,"75":3,"76":1,"77":2,"78":1,"85":2,"86":4,"87":5,"170":2,"176":2,"188":2,"194":2,"198":1,"208":2}}],["turf",{"2":{"150":1}}],["turned",{"2":{"151":1,"158":1}}],["turning",{"2":{"151":8}}],["turn",{"2":{"6":1,"151":1}}],["text",{"2":{"164":3}}],["text=",{"2":{"6":2}}],["temporary",{"2":{"69":1}}],["term",{"2":{"61":1}}],["terms",{"2":{"6":1,"64":1}}],["teach",{"2":{"31":1}}],["technically",{"2":{"28":1,"168":1}}],["technique",{"2":{"11":1}}],["tell",{"2":{"23":1,"36":1,"121":1,"158":1,"163":1,"209":1}}],["test",{"2":{"69":1,"188":2,"196":1}}],["testing",{"0":{"15":1}}],["tests",{"2":{"9":2}}],["t2",{"2":{"6":6,"64":47,"69":5,"100":1,"110":2,"131":1,"141":1}}],["t1",{"2":{"6":7,"64":51,"69":5,"110":2}}],["t=float64",{"2":{"4":1,"6":3,"68":3}}],["two",{"2":{"3":5,"4":10,"6":24,"28":2,"58":2,"60":1,"64":1,"68":1,"69":7,"71":3,"75":2,"77":1,"78":14,"86":4,"87":3,"89":3,"90":12,"93":5,"95":2,"96":1,"98":1,"108":1,"109":1,"110":1,"112":1,"121":2,"123":4,"124":5,"126":2,"127":2,"129":2,"139":3,"140":1,"151":3,"165":1,"172":2,"173":1,"175":2,"176":2,"183":1,"196":1,"201":1,"206":3,"207":3}}],["task",{"2":{"158":6,"159":6}}],["tasks",{"2":{"158":10,"159":10}}],["taskrange",{"2":{"158":8,"159":8}}],["tags",{"2":{"69":4}}],["taget",{"2":{"6":2}}],["taylor",{"2":{"6":1,"64":1}}],["table2",{"2":{"206":4}}],["table1",{"2":{"206":12}}],["tables",{"2":{"27":4,"36":1,"158":6,"159":5,"161":2}}],["table",{"0":{"204":1},"2":{"6":4,"20":1,"23":1,"34":2,"158":13,"159":4,"179":3,"185":1,"188":1,"204":1,"205":1,"206":2}}],["taking",{"2":{"6":3,"68":1,"75":1,"76":1,"77":1,"78":1,"86":1,"87":1,"174":1}}],["takes",{"2":{"69":3,"206":1}}],["taken",{"2":{"25":1,"63":1}}],["take",{"2":{"1":1,"6":2,"34":1,"69":3,"75":1,"76":1,"77":1,"78":1,"87":1,"150":2,"151":2,"153":1,"159":1,"180":1}}],["target=gi",{"2":{"69":1}}],["target=nothing",{"2":{"40":1,"41":1,"42":1,"43":1,"75":3,"77":3,"86":3}}],["targets",{"2":{"28":1,"58":2,"61":3,"71":3,"93":3}}],["target",{"0":{"28":1},"2":{"1":14,"6":11,"15":3,"27":2,"28":2,"37":1,"64":1,"68":2,"69":1,"75":8,"76":12,"77":8,"78":11,"86":6,"87":20,"151":1,"153":1,"155":8,"156":5,"157":1,"158":34,"159":33,"161":87,"165":1,"167":3,"176":2,"180":3,"188":2}}],["tilted",{"2":{"71":1}}],["tie",{"2":{"58":1}}],["timings",{"2":{"13":5}}],["timing",{"2":{"13":2}}],["times",{"2":{"4":1,"6":1,"177":1}}],["time",{"2":{"1":5,"6":2,"13":3,"29":1,"63":1,"69":2,"151":1,"166":1,"180":4,"196":1,"201":1,"202":1,"203":2,"207":1,"208":1}}],["title",{"2":{"13":2,"63":2,"84":2,"151":1,"184":1,"188":2}}],["tip",{"2":{"1":1,"5":1,"6":1,"64":1,"180":1,"206":1}}],["trials",{"2":{"184":2,"188":2}}],["triangles",{"2":{"62":1}}],["triangle",{"2":{"6":1,"62":4,"165":1,"191":4,"207":1}}],["triangulation",{"2":{"6":1,"36":1,"85":1}}],["trivially",{"2":{"153":1}}],["tr",{"2":{"61":3}}],["treating",{"2":{"188":1}}],["treats",{"2":{"61":1,"93":1}}],["treated",{"2":{"18":1,"19":2,"121":5,"201":1}}],["tree",{"2":{"6":1,"36":1,"69":12,"206":1}}],["try",{"2":{"6":1,"69":2,"79":3,"151":1,"156":1,"158":3,"159":3,"161":3,"208":1}}],["trues",{"2":{"176":3}}],["truebutstable",{"2":{"158":1,"159":1,"163":2}}],["true",{"0":{"29":1},"2":{"1":5,"3":25,"4":3,"6":40,"36":1,"58":7,"61":1,"63":2,"65":1,"69":31,"71":6,"74":1,"75":1,"76":2,"77":1,"78":1,"86":2,"87":3,"90":21,"93":4,"95":1,"96":1,"98":2,"99":6,"101":1,"102":1,"103":4,"105":1,"106":1,"108":2,"109":1,"110":9,"112":2,"113":2,"115":1,"116":1,"117":3,"119":1,"120":1,"121":78,"123":2,"124":18,"126":3,"127":1,"129":2,"130":7,"132":1,"133":1,"134":4,"136":1,"137":1,"139":2,"140":6,"143":1,"144":1,"146":1,"147":1,"150":4,"151":5,"155":2,"158":6,"159":2,"163":4,"164":3,"176":1,"181":1,"184":1,"188":1,"206":1,"209":1}}],["traditional",{"2":{"151":1,"166":1}}],["traverse",{"2":{"69":1}}],["traversal",{"2":{"6":1,"36":1,"69":5}}],["traced",{"2":{"69":1}}],["traces",{"2":{"69":1}}],["trace",{"2":{"69":2,"75":1,"77":1,"86":1}}],["track",{"2":{"69":4,"176":2}}],["tracing",{"2":{"6":2,"69":7,"71":1,"76":5,"78":2,"87":2}}],["tracinghiteverypointerror",{"2":{"0":1,"6":1,"69":5}}],["transverse",{"2":{"202":1}}],["transactions",{"2":{"69":1}}],["translate",{"2":{"63":2}}],["translation",{"2":{"1":2,"6":2,"188":2,"193":2,"201":3,"203":1}}],["transformations",{"2":{"36":11}}],["transformation",{"0":{"193":1},"2":{"6":1,"151":1,"158":1,"171":1,"180":1,"200":1}}],["transform",{"2":{"0":2,"1":6,"6":3,"15":2,"36":1,"153":1,"180":2,"188":1,"193":4,"201":4,"203":1}}],["trait`",{"2":{"161":1}}],["trait2",{"2":{"90":2,"93":10,"115":2,"116":2,"124":2,"142":2,"144":2,"145":2}}],["trait1",{"2":{"90":2,"93":12,"115":2,"116":2,"124":2,"142":2,"144":2,"145":2}}],["traits",{"2":{"6":1,"23":1,"124":1,"156":2,"167":3,"172":2,"188":2}}],["trait",{"2":{"1":5,"3":2,"4":2,"6":6,"23":7,"25":1,"27":1,"36":1,"37":1,"58":2,"61":5,"64":6,"68":7,"71":2,"74":3,"75":2,"76":2,"77":6,"78":6,"86":2,"87":6,"90":11,"93":7,"99":3,"110":2,"113":3,"121":4,"124":10,"130":3,"140":3,"150":1,"153":1,"155":5,"156":3,"158":19,"159":9,"161":27,"165":2,"167":8,"172":9,"173":1,"185":2,"188":2,"197":7,"198":3,"201":1}}],["traittarget",{"0":{"167":1},"2":{"1":2,"36":2,"37":1,"58":1,"61":1,"68":1,"71":1,"75":2,"76":4,"77":3,"78":4,"86":2,"87":9,"93":1,"153":1,"155":2,"158":6,"159":6,"165":1,"167":21,"185":1,"188":1}}],["thus",{"2":{"58":1,"61":1,"69":3,"76":1,"78":1,"87":1}}],["though",{"2":{"25":1,"169":1}}],["those",{"2":{"6":1,"38":1,"58":1,"69":3,"78":1,"101":1,"132":1,"165":1,"166":1,"185":1}}],["thing",{"0":{"35":1},"2":{"69":1,"165":1}}],["things",{"2":{"9":1}}],["this",{"0":{"19":1,"20":1,"35":1},"2":{"0":1,"1":1,"3":1,"4":6,"5":1,"6":33,"7":1,"17":1,"19":1,"20":6,"23":1,"28":3,"29":2,"30":2,"32":2,"34":1,"36":1,"37":3,"38":1,"55":1,"57":2,"58":6,"60":2,"61":9,"63":3,"64":11,"65":2,"67":1,"68":4,"69":49,"70":1,"71":4,"73":1,"74":5,"76":1,"78":6,"79":1,"85":5,"86":1,"87":3,"90":4,"92":4,"93":6,"95":1,"96":2,"98":3,"99":3,"106":1,"108":1,"109":2,"110":1,"113":3,"120":1,"121":3,"123":1,"124":4,"127":2,"129":1,"130":3,"137":1,"140":3,"147":1,"149":1,"150":3,"151":8,"152":2,"153":2,"156":2,"158":17,"159":9,"160":2,"161":3,"162":5,"163":4,"164":5,"165":2,"166":9,"167":3,"168":3,"170":3,"171":1,"172":6,"173":7,"174":4,"176":3,"177":2,"178":2,"179":2,"180":4,"181":3,"182":3,"183":5,"184":5,"185":5,"186":2,"188":3,"192":9,"193":1,"194":1,"195":3,"196":2,"198":2,"200":1,"201":2,"202":4,"203":3,"204":3,"205":1,"206":3,"207":3,"208":3,"209":1}}],["three",{"2":{"18":1,"20":1,"31":1,"62":1,"78":1,"166":1,"185":1}}],["thread",{"2":{"158":5,"159":5}}],["threading",{"0":{"158":1},"2":{"158":5,"159":2,"163":1}}],["threads",{"2":{"1":1,"155":1,"158":5,"159":8}}],["threaded=",{"2":{"158":4,"159":5}}],["threaded=true",{"2":{"158":1}}],["threaded=false",{"2":{"61":1,"68":4,"71":2,"93":8,"158":1,"159":1,"177":1,"188":1}}],["threaded==true",{"2":{"1":1,"155":1,"158":1}}],["threaded",{"2":{"1":3,"4":1,"6":5,"29":1,"36":1,"37":2,"58":2,"61":1,"68":3,"71":3,"93":5,"155":2,"158":26,"159":28,"160":1,"163":2,"165":2,"177":1,"185":13,"188":1}}],["through",{"2":{"6":4,"58":1,"64":1,"69":3,"71":1,"73":1,"74":2,"85":1,"99":1,"121":5,"130":1,"151":1,"156":1,"158":1,"173":2,"176":2,"190":1,"196":1,"201":1}}],["throws",{"2":{"6":1,"196":1}}],["thrown",{"2":{"6":1,"69":1,"156":1,"164":1}}],["throw",{"2":{"4":1,"6":1,"69":1,"87":1,"90":1,"151":1,"158":1,"159":1,"161":3,"162":2}}],["than",{"2":{"1":1,"3":1,"6":10,"11":1,"69":4,"101":1,"110":1,"124":1,"132":1,"150":1,"151":2,"155":1,"157":1,"158":1,"173":2,"174":1,"175":1,"176":2,"182":1,"184":2,"185":1,"189":1,"196":2}}],["that",{"2":{"1":1,"3":3,"4":8,"6":44,"9":1,"17":2,"18":2,"19":1,"20":2,"22":1,"23":4,"24":3,"25":1,"27":3,"30":1,"31":1,"32":1,"36":2,"58":4,"60":2,"61":4,"64":4,"65":2,"67":2,"68":3,"69":28,"70":3,"71":5,"75":4,"76":5,"77":4,"78":14,"80":1,"84":3,"85":4,"86":3,"87":5,"89":1,"90":11,"93":2,"95":4,"96":1,"98":2,"99":1,"109":1,"112":1,"113":1,"121":3,"123":2,"124":10,"126":1,"127":1,"129":3,"130":1,"132":3,"139":2,"140":2,"142":2,"150":1,"151":4,"153":1,"155":1,"158":5,"159":1,"160":1,"161":5,"162":2,"163":3,"164":3,"165":3,"166":8,"167":1,"168":3,"169":2,"170":1,"171":3,"172":2,"173":4,"174":2,"175":3,"176":4,"180":1,"182":2,"183":2,"184":3,"185":2,"188":2,"190":1,"192":1,"196":1,"202":4,"203":1,"204":2,"205":3,"206":1,"207":2}}],["thewgs84",{"2":{"166":1}}],["theta",{"2":{"166":1}}],["theorem",{"2":{"93":1}}],["themselves",{"2":{"64":1}}],["them",{"2":{"30":1,"32":1,"69":1,"151":2,"152":2,"158":3,"161":2,"164":1,"169":2,"174":1,"175":1,"188":1,"201":1,"203":1,"205":3}}],["thereof",{"2":{"153":1,"159":1}}],["therefore",{"2":{"92":1,"168":1}}],["there",{"2":{"6":2,"20":1,"27":1,"58":1,"64":2,"65":1,"69":3,"71":1,"74":2,"76":1,"78":6,"79":1,"87":1,"121":1,"124":2,"151":3,"152":1,"153":1,"158":4,"166":1,"167":1,"169":1,"183":1,"192":1,"196":1,"202":2,"205":3}}],["then",{"2":{"6":8,"20":1,"23":1,"27":1,"34":1,"58":3,"64":2,"69":11,"71":1,"75":1,"77":2,"78":6,"79":2,"85":1,"86":2,"87":2,"121":1,"151":2,"153":1,"156":1,"158":2,"159":3,"162":1,"165":1,"174":1,"179":1,"184":2,"188":1,"202":1,"206":1,"207":1}}],["their",{"2":{"3":1,"4":1,"6":2,"64":1,"67":2,"87":1,"93":2,"118":1,"124":1,"133":3,"134":3,"139":1,"143":1,"144":1,"153":1,"159":1,"169":1,"175":1,"177":1}}],["they",{"2":{"3":3,"4":11,"6":24,"19":1,"25":2,"27":1,"28":1,"29":1,"36":1,"62":1,"68":2,"69":10,"71":2,"75":2,"77":1,"78":6,"84":1,"86":2,"87":3,"89":3,"90":16,"99":1,"112":1,"116":2,"117":1,"118":1,"121":2,"123":2,"124":4,"126":1,"133":1,"134":1,"142":1,"144":1,"145":1,"151":6,"158":2,"161":2,"165":1,"168":1,"173":2,"176":2,"179":2,"183":1,"192":1,"195":1,"198":1,"207":1}}],["these",{"2":{"1":2,"6":5,"17":1,"29":1,"58":1,"64":5,"69":4,"87":1,"89":1,"90":1,"95":1,"99":1,"108":1,"110":2,"112":1,"113":1,"123":1,"124":1,"126":1,"129":1,"130":1,"139":2,"140":1,"150":1,"151":3,"155":1,"156":1,"158":2,"179":1,"180":1,"184":1,"188":2,"196":1,"198":1,"205":1,"206":1}}],["the",{"0":{"31":1,"34":1,"67":1,"83":1,"84":1},"2":{"1":28,"3":64,"4":112,"5":12,"6":410,"7":5,"9":3,"10":1,"11":3,"17":3,"18":19,"19":5,"20":17,"21":6,"22":5,"23":10,"24":2,"25":4,"27":4,"28":5,"29":3,"30":3,"31":4,"32":3,"34":3,"36":3,"37":3,"57":1,"58":63,"60":12,"61":43,"62":15,"63":12,"64":71,"65":6,"67":6,"68":25,"69":170,"70":7,"71":47,"73":2,"74":7,"75":27,"76":23,"77":27,"78":82,"79":1,"80":6,"84":11,"85":16,"86":29,"87":72,"89":5,"90":47,"92":11,"93":81,"95":9,"96":11,"98":8,"99":25,"102":8,"103":9,"104":3,"105":3,"106":2,"108":4,"109":11,"110":5,"112":2,"113":21,"115":8,"116":6,"117":4,"119":3,"120":2,"121":123,"123":5,"124":26,"126":5,"127":6,"129":7,"130":24,"132":2,"133":9,"134":9,"135":6,"136":2,"137":2,"139":5,"140":21,"142":6,"143":10,"144":7,"145":3,"146":3,"147":2,"149":1,"150":8,"151":47,"152":1,"153":9,"155":14,"156":11,"158":73,"159":27,"160":2,"161":20,"162":9,"163":5,"164":2,"165":6,"166":34,"168":5,"169":5,"170":4,"171":2,"172":13,"173":10,"174":4,"175":8,"176":6,"177":1,"178":5,"179":6,"180":14,"181":2,"182":3,"183":5,"184":26,"185":21,"186":3,"188":18,"189":3,"190":6,"191":3,"192":2,"193":3,"194":1,"195":2,"196":21,"201":10,"202":11,"203":10,"204":2,"205":4,"206":10,"207":17,"208":3}}],["t",{"2":{"0":1,"4":28,"6":56,"9":1,"28":1,"36":8,"37":1,"58":32,"61":41,"64":26,"68":38,"69":100,"71":44,"74":18,"75":18,"76":12,"77":16,"78":165,"86":15,"87":29,"90":17,"93":87,"98":1,"116":1,"121":24,"124":1,"139":1,"143":2,"144":1,"151":14,"158":5,"159":4,"161":2,"162":3,"163":2,"166":12,"167":14,"173":2,"176":2,"184":3,"185":4,"188":1,"194":7,"196":3,"197":10,"198":20,"208":1}}],["tokyo",{"2":{"208":1}}],["toy",{"2":{"206":1}}],["together",{"2":{"78":1,"87":1,"201":1,"207":1}}],["touching",{"0":{"143":1},"2":{"78":1,"87":1}}],["touch",{"0":{"144":1,"145":1,"146":1},"2":{"69":1,"139":1,"142":2,"144":1,"146":1}}],["touches",{"0":{"47":1,"138":1,"139":1,"142":1},"1":{"139":1,"140":1},"2":{"0":2,"3":3,"6":3,"36":1,"47":2,"138":1,"139":3,"140":11,"141":6,"142":11,"143":15,"144":9,"145":8,"146":3,"147":4,"206":1}}],["totally",{"2":{"86":1}}],["total",{"2":{"61":1,"64":2,"69":2,"71":1}}],["towards",{"2":{"30":1,"32":1}}],["topright",{"2":{"188":1}}],["topologypreserve",{"2":{"186":1}}],["topology",{"2":{"186":1}}],["topological",{"2":{"166":2}}],["top",{"2":{"25":1,"31":1,"69":1,"151":1}}],["took",{"2":{"208":1}}],["tools",{"2":{"22":1}}],["too",{"2":{"6":1,"78":1,"165":1,"182":1,"185":1}}],["tol^2",{"2":{"189":1,"190":1}}],["tolerances",{"2":{"191":1,"192":29}}],["tolerance",{"2":{"189":1,"190":1,"191":1,"192":17}}],["told",{"2":{"166":1}}],["tol",{"2":{"6":12,"184":2,"188":18,"189":7,"190":15,"191":8,"192":18}}],["todo",{"2":{"3":2,"6":2,"37":1,"69":10,"78":3,"85":2,"110":4,"124":1,"151":1,"158":1,"162":1,"163":1,"170":1,"188":1,"198":1}}],["to",{"0":{"9":1,"28":1,"31":1,"79":1,"100":1,"114":1,"131":1,"141":1,"198":1},"2":{"0":3,"1":22,"3":1,"4":33,"5":4,"6":130,"7":2,"9":3,"10":2,"11":2,"13":1,"17":1,"18":4,"19":1,"20":14,"21":2,"22":2,"23":9,"24":1,"25":2,"27":3,"28":4,"29":2,"30":3,"31":2,"32":3,"34":4,"35":1,"36":2,"57":1,"58":8,"60":1,"61":4,"62":4,"63":1,"64":26,"65":2,"67":2,"68":5,"69":47,"70":1,"71":12,"73":1,"74":3,"75":8,"76":4,"77":8,"78":27,"80":1,"82":1,"83":1,"84":4,"85":6,"86":7,"87":11,"89":2,"90":17,"92":6,"93":32,"94":1,"95":1,"96":1,"98":2,"99":7,"108":3,"109":1,"110":2,"112":1,"113":7,"121":21,"123":3,"124":7,"126":2,"127":1,"129":1,"130":7,"139":1,"140":7,"142":1,"150":4,"151":16,"153":4,"155":9,"156":6,"157":1,"158":36,"159":12,"160":7,"161":24,"162":2,"163":6,"164":2,"165":6,"166":9,"167":2,"168":2,"169":3,"171":4,"172":8,"173":5,"174":3,"175":1,"176":4,"177":3,"178":1,"179":4,"180":4,"181":1,"182":3,"183":3,"184":9,"185":7,"186":1,"188":4,"189":1,"190":15,"191":1,"192":2,"193":4,"194":1,"195":2,"196":9,"197":28,"198":4,"199":1,"200":4,"201":6,"202":10,"203":6,"204":7,"205":5,"206":7,"207":5,"208":2,"209":8}}],["rd",{"2":{"188":3}}],["rdbu",{"2":{"92":1}}],["rhumb",{"2":{"150":2}}],["rule",{"2":{"69":1}}],["rules",{"2":{"69":1}}],["runner",{"2":{"202":1}}],["running",{"2":{"6":2,"69":3,"158":1,"161":2}}],["runtime",{"2":{"158":1}}],["runs",{"2":{"78":2,"149":1}}],["run",{"2":{"36":1,"69":1,"158":5,"159":3,"165":1,"208":1}}],["rightjoin",{"2":{"206":1}}],["right=2",{"2":{"69":1}}],["right",{"2":{"64":1,"69":4,"74":1,"93":1,"150":1,"190":19,"192":5,"201":1}}],["ring4",{"2":{"203":2}}],["ring3",{"2":{"202":1}}],["ring2",{"2":{"201":2}}],["ring1",{"2":{"201":2}}],["rings",{"0":{"103":1,"117":1,"134":1,"144":1,"168":1},"1":{"169":1,"170":1},"2":{"4":4,"6":6,"9":2,"61":1,"68":1,"69":3,"78":1,"90":7,"149":1,"151":5,"170":1,"173":1,"188":1,"198":1}}],["ring",{"2":{"4":7,"6":13,"9":1,"36":1,"58":3,"61":2,"64":1,"67":1,"68":4,"69":12,"71":13,"87":3,"90":4,"93":5,"101":1,"102":2,"103":5,"115":1,"117":1,"121":2,"132":1,"133":2,"134":4,"142":1,"143":1,"144":3,"150":3,"151":11,"168":2,"169":1,"170":14,"171":1,"201":1}}],["rtrees",{"2":{"25":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":{"188":1,"190":1,"192":1}}],["routines",{"2":{"11":1}}],["row",{"2":{"159":3}}],["rows",{"2":{"159":2}}],["robust",{"0":{"15":1},"2":{"84":1}}],["rotate",{"2":{"71":1}}],["rotation",{"2":{"1":1,"6":1,"193":1}}],["rotations",{"2":{"1":3,"6":3,"193":3}}],["rotmatrix2d",{"2":{"188":1}}],["rotmatrix",{"2":{"1":1,"6":1,"193":1}}],["r",{"2":{"6":1,"9":1,"13":11,"14":12,"37":1,"184":1,"192":2,"201":6,"202":2,"203":4}}],["rᵢ₋₁",{"2":{"64":20}}],["rᵢ∗rᵢ₊₁+sᵢ⋅sᵢ₊₁",{"2":{"6":1}}],["rᵢ₊₁",{"2":{"6":1,"64":29}}],["rᵢ",{"2":{"6":2,"64":49}}],["ramer",{"2":{"190":1}}],["raster",{"0":{"151":1},"2":{"151":4}}],["ray",{"2":{"121":4}}],["raw",{"2":{"23":1}}],["range",{"2":{"13":8,"14":4,"151":3,"158":3,"159":3}}],["ranges",{"2":{"6":1,"151":2}}],["randomly",{"2":{"207":2}}],["random",{"2":{"188":2}}],["randn",{"2":{"82":1}}],["rand",{"2":{"6":1,"84":1,"151":1,"207":2}}],["rather",{"2":{"6":1,"151":1,"175":1}}],["ratio",{"2":{"6":7,"78":1,"184":1,"188":1,"189":4,"190":6,"191":4,"192":11}}],["radii",{"2":{"6":1,"184":1}}],["radius`",{"2":{"184":1}}],["radius",{"2":{"6":6,"18":2,"64":13,"166":4,"184":4,"185":1}}],["radialdistance",{"0":{"189":1},"2":{"0":1,"6":2,"186":1,"188":4,"189":4}}],["rrayscore",{"2":{"1":1,"6":1,"193":1}}],["rring",{"2":{"1":1,"6":1,"193":1}}],["rewrap",{"2":{"158":2,"161":1}}],["req",{"2":{"121":44}}],["requirement",{"2":{"168":1,"174":1}}],["requirements",{"2":{"121":5}}],["required",{"2":{"85":1,"99":3,"113":3,"130":3,"140":3,"183":1,"200":1}}],["requires",{"2":{"65":1,"90":1,"95":1,"99":2,"102":3,"103":3,"104":1,"113":1,"116":3,"117":2,"118":1,"129":1,"130":1,"133":3,"134":3,"135":1,"140":1,"143":3,"144":1,"145":1,"181":1,"184":1,"196":1}}],["require",{"2":{"38":1,"85":1,"98":2,"99":6,"113":3,"121":32,"130":3,"140":3}}],["requests",{"2":{"30":1,"32":1}}],["reflected",{"2":{"188":3}}],["ref",{"2":{"92":1}}],["refers",{"2":{"166":1}}],["referring",{"2":{"121":1}}],["refer",{"2":{"6":1,"151":1}}],["references",{"2":{"6":1,"64":1}}],["reference",{"0":{"202":1,"203":1},"2":{"0":1,"1":2,"20":1,"180":2,"200":2,"202":1}}],["reveal",{"2":{"87":1}}],["reveals",{"2":{"87":1}}],["reverse",{"2":{"60":1,"63":1,"64":1,"69":2,"201":2}}],["rev",{"2":{"86":1}}],["render",{"2":{"63":1}}],["rendering",{"2":{"63":3,"64":1}}],["rename",{"2":{"10":1}}],["regardless",{"2":{"78":1,"121":1}}],["regridding",{"2":{"69":1}}],["regions",{"2":{"76":3,"78":5,"86":1,"87":3,"121":2,"208":1}}],["region",{"2":{"65":2,"78":3,"87":2,"208":1}}],["register",{"2":{"36":3,"64":3}}],["regular",{"0":{"15":1}}],["rebuilding",{"2":{"158":1,"159":1}}],["rebuild",{"2":{"36":2,"156":1,"158":3,"161":11,"185":1,"188":2}}],["rebuilt",{"2":{"1":1,"153":1,"155":1,"158":1,"161":2}}],["readable",{"2":{"205":1}}],["readability",{"2":{"69":1}}],["read",{"2":{"158":1,"202":2}}],["reading",{"2":{"158":1}}],["reads",{"2":{"158":1}}],["reached",{"2":{"158":1,"161":3}}],["reaches",{"2":{"156":1}}],["reach",{"2":{"156":1}}],["reasons",{"2":{"196":1}}],["reason",{"2":{"29":1,"163":1,"168":1,"174":1}}],["real`",{"2":{"184":1,"185":1}}],["reality",{"2":{"84":1}}],["really",{"2":{"61":1,"121":1,"151":1,"163":1}}],["real=1",{"2":{"6":2,"184":2}}],["real=6378137`",{"2":{"184":1}}],["real=6378137",{"2":{"6":2,"184":1}}],["real",{"0":{"208":1},"2":{"5":1,"6":13,"58":1,"64":45,"68":2,"78":1,"184":3,"185":3,"192":5,"206":1}}],["relateng",{"2":{"165":1}}],["related",{"2":{"20":1}}],["relation",{"2":{"69":2}}],["relations",{"2":{"36":10,"110":1,"124":1}}],["relationship",{"2":{"28":1,"206":2}}],["relative",{"2":{"64":3}}],["relevant",{"2":{"6":1,"10":1,"17":1,"85":1,"166":2}}],["reducing",{"2":{"159":2}}],["reduced",{"2":{"189":1,"190":1,"191":1}}],["reduces",{"2":{"24":1,"69":1,"87":1,"159":1}}],["reduce",{"2":{"1":1,"151":1,"155":1,"159":2,"172":1}}],["redundant",{"2":{"69":1}}],["red",{"2":{"14":1,"67":2,"92":1,"98":1,"108":1,"126":1,"164":1,"201":1,"202":1,"207":2}}],["removal",{"2":{"69":1}}],["removes",{"2":{"69":1,"153":1}}],["removed",{"2":{"69":3,"76":5,"151":1,"158":1}}],["remove",{"2":{"61":1,"69":33,"71":1,"74":2,"75":5,"77":5,"86":2,"176":2,"189":1,"190":3,"192":4}}],["removing",{"2":{"6":3,"69":1,"76":1,"189":1,"190":1,"191":1}}],["remainingnode",{"2":{"151":3}}],["remaining",{"2":{"69":1,"90":1,"121":2,"190":1}}],["remain",{"2":{"1":1,"6":8,"155":1,"158":1,"188":2}}],["resolution",{"2":{"202":1}}],["resolves",{"2":{"166":1}}],["resolved",{"2":{"151":1,"166":1}}],["resembles",{"2":{"166":2}}],["reset",{"2":{"69":1,"158":1}}],["res",{"2":{"87":3}}],["reside",{"2":{"69":1}}],["resize",{"2":{"13":1,"14":1,"69":2}}],["resampled",{"2":{"6":1,"185":1}}],["respectively",{"2":{"69":1,"124":1,"201":1}}],["respect",{"2":{"6":2,"77":1,"78":1,"85":1,"121":6}}],["restrictive",{"2":{"162":1}}],["rest",{"2":{"6":1,"64":2,"86":1}}],["resulting",{"2":{"74":1,"87":1,"151":1,"207":1}}],["results",{"2":{"3":2,"6":2,"20":1,"78":1,"110":1,"124":1,"158":2,"159":2,"169":1,"190":25,"201":3}}],["result",{"2":{"1":2,"3":5,"4":5,"6":11,"19":1,"24":1,"37":3,"58":1,"61":2,"71":1,"78":15,"85":1,"93":2,"96":1,"99":1,"109":1,"127":1,"130":1,"155":2,"158":9,"159":2,"184":3,"192":6}}],["receives",{"2":{"158":1,"159":1}}],["recent",{"2":{"69":1,"76":1,"78":1,"87":1}}],["recalculate",{"2":{"157":1}}],["recursive",{"2":{"156":1}}],["recursively",{"2":{"4":1,"6":1,"156":1,"177":1}}],["rect",{"2":{"57":3,"60":5,"70":3,"92":7}}],["rectangle",{"2":{"57":2,"60":2,"63":2,"70":2,"71":1,"92":2,"183":5,"184":8,"207":2}}],["rectangletrait",{"2":{"37":1}}],["recommended",{"2":{"27":1}}],["reconstructing",{"2":{"188":1}}],["reconstructed",{"2":{"23":1}}],["reconstruct",{"2":{"1":1,"23":1,"36":2,"155":1,"158":2,"159":1,"161":28}}],["repeat",{"2":{"68":1,"69":2,"90":6}}],["repeating",{"2":{"61":1,"87":1}}],["repeated",{"2":{"4":3,"6":3,"9":1,"58":2,"64":1,"69":2,"87":2,"90":4,"93":2,"121":1}}],["replace",{"2":{"69":1,"151":2,"190":1}}],["replaced",{"2":{"27":1}}],["repl",{"2":{"6":1,"65":1,"69":2,"181":1,"184":1}}],["reported",{"2":{"6":1,"69":1}}],["represented",{"2":{"166":1,"207":1}}],["represent",{"2":{"22":1,"64":1,"69":4,"90":1,"166":1}}],["representations",{"2":{"18":1}}],["representing",{"2":{"6":2,"76":1,"78":1,"85":1,"87":1,"90":1,"92":1,"166":1,"208":1}}],["represents",{"2":{"6":2,"69":1,"166":1,"172":2,"173":1}}],["reprojects",{"2":{"180":1}}],["reprojection",{"0":{"180":1},"1":{"181":1}}],["reproject",{"2":{"0":1,"1":4,"36":2,"153":1,"180":6,"181":2}}],["re",{"2":{"1":1,"6":1,"22":1,"69":5,"85":1,"179":1,"193":1,"200":1,"202":1}}],["retrievable",{"2":{"1":1,"180":1}}],["returnval",{"2":{"121":9}}],["returntype",{"2":{"24":1}}],["returning",{"2":{"23":1,"65":1,"76":2}}],["return",{"0":{"27":1},"2":{"1":1,"3":18,"4":2,"6":37,"13":3,"14":3,"28":2,"35":1,"36":1,"37":3,"40":1,"41":1,"42":1,"43":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"58":5,"61":5,"64":20,"65":1,"68":4,"69":42,"71":12,"74":12,"75":5,"76":4,"77":6,"78":20,"85":2,"86":8,"87":13,"90":30,"93":8,"96":1,"99":1,"105":2,"106":2,"109":1,"110":18,"113":2,"119":2,"120":2,"121":71,"124":28,"126":1,"127":1,"130":1,"136":2,"137":2,"140":1,"142":2,"146":2,"147":2,"150":10,"151":12,"158":18,"159":4,"161":6,"162":2,"165":2,"168":1,"170":4,"172":6,"173":2,"176":2,"178":2,"179":2,"180":1,"185":4,"188":3,"189":1,"190":5,"191":3,"192":7,"193":2,"194":2,"196":3,"197":8,"198":3}}],["returned",{"2":{"1":1,"6":10,"27":2,"28":1,"69":3,"74":1,"75":2,"77":2,"78":2,"84":1,"85":1,"86":2,"151":1,"158":1,"161":2,"163":1,"180":1,"188":1}}],["returns",{"2":{"1":1,"3":5,"4":4,"5":3,"6":24,"20":1,"23":1,"27":2,"58":1,"61":2,"64":6,"68":3,"69":4,"71":6,"74":1,"75":1,"78":1,"85":1,"86":1,"89":1,"93":8,"95":2,"96":1,"99":1,"108":2,"109":1,"112":1,"121":4,"124":2,"127":1,"130":1,"151":2,"155":1,"158":2,"163":1,"185":1,"194":1,"198":1,"206":1}}],["ps",{"2":{"198":6}}],["psa",{"2":{"158":1,"159":1}}],["phi``",{"2":{"166":1}}],["physics",{"2":{"166":1}}],["pb",{"2":{"110":2}}],["p0",{"2":{"93":9}}],["ptm",{"2":{"150":3}}],["ptj",{"2":{"150":5}}],["pti",{"2":{"150":3}}],["ptrait",{"2":{"93":2}}],["pts",{"2":{"69":22,"74":7}}],["pt2",{"2":{"69":10,"78":2}}],["pt1",{"2":{"69":13,"78":2}}],["pt",{"2":{"69":117,"74":2,"78":26,"121":8,"190":4}}],["pn",{"2":{"142":3}}],["pn2",{"2":{"69":6}}],["pn1",{"2":{"69":6}}],["pfirst",{"2":{"61":3}}],["pu",{"2":{"207":2}}],["purpose",{"2":{"158":1}}],["pure",{"2":{"6":1,"85":1,"151":1}}],["purely",{"2":{"6":1,"23":1,"166":1,"184":1}}],["push",{"2":{"69":15,"74":5,"75":2,"77":2,"78":2,"86":4,"87":5,"151":3,"170":1,"185":3,"190":3,"198":2}}],["pulling",{"2":{"85":1}}],["pull",{"2":{"30":1,"32":1}}],["public",{"2":{"29":1}}],["pick",{"2":{"202":2}}],["piece",{"2":{"69":6,"176":6}}],["pieces",{"2":{"69":12,"74":1,"76":2,"86":4,"121":1,"176":9}}],["pi",{"2":{"13":2}}],["pixels",{"2":{"151":1}}],["pixel",{"2":{"6":2,"151":7}}],["pythagorean",{"2":{"93":1}}],["py",{"2":{"13":2,"14":2}}],["px",{"2":{"13":2,"14":2}}],["peucker",{"2":{"186":2,"188":3,"190":2}}],["peaks",{"2":{"151":2}}],["peculiarities",{"0":{"26":1},"1":{"27":1,"28":1,"29":1}}],["people",{"2":{"9":1}}],["persist",{"2":{"158":1}}],["perfectly",{"2":{"18":1}}],["performs",{"2":{"64":1,"159":1,"185":1}}],["performed",{"2":{"21":1,"166":1,"207":1}}],["perform",{"2":{"20":2,"31":1,"63":1,"64":2,"69":2,"153":1,"159":1,"162":2,"206":3,"207":2,"209":1}}],["performing",{"2":{"6":3,"28":1,"64":1,"75":1,"77":1,"86":1,"207":1}}],["performance",{"2":{"4":1,"6":2,"27":1,"151":1,"174":1,"177":1,"188":1,"205":1}}],["perhaps",{"2":{"6":1,"69":1}}],["per",{"2":{"5":2,"6":2,"63":1,"64":2,"69":5,"151":1,"158":4,"159":4,"185":1}}],["pl",{"2":{"207":2}}],["plt",{"2":{"201":1}}],["please",{"2":{"69":1}}],["place",{"2":{"78":1,"206":1}}],["placement",{"2":{"69":1}}],["plainly",{"2":{"19":1}}],["plan",{"2":{"182":1}}],["plane",{"2":{"6":1,"19":1,"21":1,"64":1,"166":3,"185":1,"199":1}}],["planar",{"2":{"6":4,"18":2,"19":1,"20":1,"36":2,"69":3,"75":1,"77":2,"78":2,"86":2,"162":4,"165":1,"166":7,"185":9}}],["plottable",{"2":{"151":1}}],["plotted",{"2":{"67":1}}],["plotting",{"0":{"201":1},"2":{"6":1,"151":1,"182":1,"185":1,"200":1,"201":4,"202":1}}],["plots",{"2":{"63":2}}],["plot",{"0":{"202":1},"2":{"13":1,"63":3,"82":2,"83":1,"84":1,"89":1,"123":1,"151":1,"184":2,"188":4,"200":2,"201":9,"202":5,"203":1,"205":1,"207":1}}],["plus",{"2":{"5":1,"6":1,"64":1}}],["p4",{"2":{"6":1,"198":1}}],["p3",{"2":{"6":2,"69":8,"191":4,"198":2}}],["p2y",{"2":{"197":3}}],["p2x",{"2":{"197":3}}],["p2box",{"2":{"63":1}}],["p2",{"2":{"3":2,"4":2,"6":8,"15":12,"58":12,"61":9,"69":13,"71":19,"84":1,"86":2,"90":11,"93":15,"99":2,"108":2,"121":12,"124":2,"150":3,"183":1,"191":4,"197":3,"198":2,"201":2}}],["p1y",{"2":{"197":3}}],["p1x",{"2":{"197":3}}],["p1",{"2":{"3":3,"4":2,"6":8,"15":12,"58":21,"61":8,"63":4,"69":9,"71":25,"73":1,"84":2,"86":2,"90":14,"93":15,"98":5,"99":3,"108":5,"121":4,"124":2,"142":3,"150":3,"191":4,"197":3,"198":1,"201":1}}],["practice",{"2":{"203":1}}],["pred",{"2":{"206":5,"207":1,"208":2,"209":1}}],["predicate",{"2":{"7":1,"110":1,"206":6,"207":1,"209":5}}],["predicates",{"0":{"12":1,"15":1,"209":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"7":4,"12":1,"36":1,"69":5,"78":4,"79":3,"121":1,"206":1,"208":1}}],["precise",{"2":{"165":2}}],["precision",{"2":{"11":1}}],["precalculated",{"2":{"69":2}}],["pretty",{"2":{"179":1,"180":1}}],["prettytime",{"2":{"13":2}}],["pretend",{"2":{"69":1}}],["prevent",{"2":{"76":2,"78":2,"87":2}}],["prev^2",{"2":{"58":2}}],["prev",{"2":{"58":14,"69":70,"150":4}}],["previously",{"2":{"183":1}}],["previous",{"2":{"24":1,"58":1,"158":1,"189":3}}],["preparations",{"2":{"25":1}}],["prepared",{"2":{"25":1,"151":2}}],["preparedcrs",{"2":{"20":4}}],["prepare",{"0":{"25":1},"2":{"22":1,"25":1}}],["preserve",{"2":{"188":4,"190":3}}],["preserved",{"2":{"158":2}}],["preserving",{"2":{"186":1}}],["presentation",{"2":{"6":1,"64":1}}],["present",{"2":{"6":1,"158":1,"196":1}}],["presence",{"2":{"6":1,"37":1,"196":1}}],["prescribes",{"2":{"25":1}}],["press",{"2":{"6":1,"64":1}}],["pre",{"2":{"6":1,"86":1,"188":1,"190":2}}],["prefilter",{"2":{"6":1,"188":7}}],["protters",{"2":{"158":1,"159":1}}],["progressively",{"2":{"156":1}}],["program",{"2":{"22":1}}],["programming",{"2":{"22":1,"31":1}}],["promote",{"2":{"64":5}}],["property",{"2":{"159":2}}],["properties=gi",{"2":{"161":1}}],["properties=namedtuple",{"2":{"159":1}}],["properties=",{"2":{"151":1}}],["properties",{"2":{"6":1,"158":8,"161":1,"188":1,"192":1}}],["propagated",{"2":{"158":1}}],["propagate",{"2":{"64":16,"93":4}}],["probably",{"2":{"61":1,"158":1}}],["problem",{"2":{"19":1}}],["prod",{"2":{"58":4}}],["product",{"2":{"58":1}}],["profile",{"2":{"9":1}}],["providers",{"2":{"169":1,"175":1}}],["provide",{"0":{"28":1},"2":{"6":6,"57":1,"60":1,"62":1,"67":1,"70":1,"73":1,"75":2,"77":2,"86":2,"89":1,"92":1,"95":1,"98":1,"108":1,"112":1,"121":2,"123":1,"126":1,"129":1,"139":1,"151":1,"192":1}}],["provides",{"2":{"6":1,"80":1,"85":1,"202":1}}],["provided",{"2":{"4":1,"6":3,"11":1,"69":1,"75":1,"77":1,"86":1,"90":1,"93":1,"175":1,"184":2,"196":1}}],["processed",{"2":{"69":7}}],["processloopaction",{"2":{"69":3}}],["processors",{"2":{"36":1,"99":2,"113":2,"130":2,"140":2}}],["processor",{"2":{"36":1}}],["processing",{"2":{"18":1,"28":1,"69":1}}],["process",{"2":{"6":1,"69":2,"101":3,"102":3,"103":3,"104":1,"110":1,"115":3,"116":3,"117":2,"118":1,"121":11,"132":3,"133":3,"134":3,"135":1,"142":1,"143":3,"144":1,"145":1,"158":2,"159":2,"190":1}}],["projecting",{"2":{"202":1}}],["projection",{"2":{"20":1,"93":2,"200":1,"202":1}}],["projections",{"2":{"17":1,"18":1,"166":1}}],["project",{"2":{"9":1}}],["projects",{"2":{"9":1}}],["proj",{"2":{"1":2,"6":3,"18":2,"20":1,"36":1,"162":2,"165":2,"180":2,"181":4,"183":1,"184":6,"200":1}}],["prints",{"2":{"181":1}}],["printstyled",{"2":{"65":1,"164":3,"181":1,"184":1}}],["println",{"2":{"65":1,"69":9,"164":1,"181":1,"184":1,"188":2}}],["print",{"2":{"65":2,"164":6,"181":2,"184":2}}],["primitives",{"0":{"161":1},"2":{"36":1,"161":1}}],["primitive",{"2":{"34":1}}],["primarily",{"2":{"30":2,"32":2,"167":1}}],["primary",{"2":{"3":2,"6":3,"99":1,"130":1,"188":1}}],["priority",{"2":{"1":1,"180":1}}],["pay",{"2":{"159":1}}],["paper",{"2":{"121":2}}],["pa",{"2":{"110":2}}],["pathof",{"2":{"188":2}}],["paths",{"0":{"199":1},"2":{"163":1,"199":2}}],["path",{"2":{"18":1,"60":3,"202":2}}],["parquet",{"2":{"205":3}}],["parent",{"2":{"163":1}}],["parse",{"2":{"121":1,"124":1}}],["parsed",{"2":{"20":1}}],["part",{"2":{"71":2,"87":2,"121":3,"157":1}}],["partition",{"2":{"158":4,"159":4}}],["partialsort",{"2":{"192":1}}],["partial",{"2":{"71":4}}],["partially",{"2":{"69":2,"87":2}}],["particularly",{"2":{"64":1}}],["particular",{"2":{"35":1,"58":1,"151":1,"202":2}}],["parallel",{"2":{"121":1,"150":1}}],["paradigm",{"0":{"34":1}}],["paradigms",{"0":{"22":1},"1":{"23":1,"24":1,"25":1},"2":{"22":2,"25":1}}],["parametrization",{"2":{"166":1}}],["parametrized",{"2":{"166":1}}],["parameterized",{"2":{"166":1}}],["parameters",{"2":{"18":1,"20":1,"166":1,"167":2}}],["parameter",{"2":{"6":1,"162":1,"167":3,"179":1}}],["params",{"2":{"6":2,"196":10}}],["parlance",{"2":{"5":1,"6":1,"64":1,"166":1}}],["past",{"2":{"6":1,"69":1}}],["passes",{"2":{"71":2,"121":1}}],["passed",{"2":{"1":2,"6":5,"85":1,"151":1,"161":4,"180":1,"184":2,"193":1,"196":2,"209":1}}],["passable",{"2":{"64":18}}],["passing",{"2":{"23":1,"69":1,"158":1,"186":1}}],["pass",{"2":{"5":1,"6":3,"23":1,"64":1,"69":2,"96":1,"109":1,"121":2,"127":1,"158":1,"163":1,"166":1,"184":1,"188":1}}],["pairs",{"2":{"69":1,"78":1,"201":1}}],["pair",{"2":{"3":2,"6":2,"69":4,"71":1,"124":2,"158":2,"159":1}}],["packages",{"2":{"30":1,"32":1,"80":1,"161":2,"168":1,"195":1,"200":3,"202":1,"205":1}}],["package",{"2":{"1":2,"6":1,"27":1,"30":2,"32":2,"65":1,"80":2,"85":1,"151":1,"180":3,"181":1,"184":1,"202":1,"205":2}}],["page",{"2":{"0":1,"9":1,"31":1,"34":1,"36":1,"37":1,"55":1,"58":1,"61":1,"63":1,"64":1,"65":1,"68":1,"69":1,"71":1,"74":1,"76":1,"78":1,"79":1,"85":1,"87":1,"90":1,"93":1,"96":1,"106":1,"109":1,"110":1,"120":1,"121":1,"124":1,"127":1,"137":1,"147":1,"150":1,"151":1,"152":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"170":1,"173":1,"176":1,"177":1,"178":1,"179":1,"181":1,"185":1,"192":1,"193":1,"194":1,"196":1,"198":1}}],["p",{"2":{"1":5,"6":2,"13":13,"14":12,"15":2,"57":1,"60":1,"67":1,"69":9,"70":1,"71":5,"76":2,"82":1,"83":1,"86":2,"89":1,"92":3,"95":1,"98":1,"108":1,"110":4,"112":1,"121":20,"123":1,"126":1,"129":1,"139":1,"150":4,"151":3,"153":3,"155":3,"158":5,"178":7,"183":1,"187":1,"188":1,"192":3,"193":9,"194":7,"197":11,"206":1,"207":1}}],["poylgon",{"2":{"121":1}}],["potential",{"2":{"71":1}}],["potentially",{"2":{"6":2,"69":4,"173":2,"176":2}}],["post",{"2":{"190":2}}],["postprocess",{"2":{"69":1}}],["possibly",{"2":{"158":1}}],["possiblenodes",{"2":{"151":2}}],["possible",{"2":{"6":3,"20":1,"75":1,"77":1,"86":1,"151":1,"158":1,"159":1}}],["possibility",{"2":{"156":1}}],["possibilities",{"2":{"78":1}}],["position=",{"2":{"188":1}}],["position",{"2":{"6":1,"150":1,"183":1}}],["positive",{"2":{"4":4,"6":4,"60":3,"61":1,"92":3,"93":3,"185":2,"192":1}}],["poles",{"2":{"166":1}}],["pole",{"2":{"166":2}}],["polgons",{"2":{"151":1}}],["polgontrait",{"2":{"1":1,"155":1}}],["polar",{"2":{"6":1,"184":1}}],["polynodes",{"2":{"69":8,"75":1,"77":1,"86":1}}],["polynode",{"2":{"69":46}}],["polypoints",{"2":{"64":46}}],["polys",{"2":{"6":2,"69":39,"73":3,"74":10,"75":14,"76":14,"77":9,"78":6,"86":14,"87":28,"176":26}}],["polys1",{"2":{"3":2,"6":2,"124":6}}],["polys2",{"2":{"3":2,"6":2,"124":6}}],["poly",{"2":{"3":2,"6":16,"15":2,"57":1,"60":1,"61":6,"63":2,"64":3,"67":1,"69":145,"70":2,"71":4,"73":4,"74":20,"75":22,"76":12,"77":15,"78":10,"82":2,"86":19,"87":87,"90":4,"92":1,"93":3,"110":10,"121":21,"124":8,"150":5,"151":5,"176":18,"183":2,"187":2,"188":8,"197":8,"201":2,"207":5}}],["poly2",{"2":{"3":3,"4":2,"6":7,"75":2,"90":2,"121":19,"124":7}}],["poly1",{"2":{"3":3,"4":2,"6":7,"75":2,"90":2,"121":14,"124":7}}],["polygon3",{"2":{"201":2,"202":1}}],["polygon2",{"2":{"201":6}}],["polygon1",{"2":{"201":4}}],["polygonization",{"2":{"151":1}}],["polygonizing",{"0":{"151":1}}],["polygonized",{"2":{"151":1}}],["polygonize",{"2":{"0":1,"6":6,"9":1,"36":1,"151":31}}],["polygon`",{"2":{"64":3,"85":1}}],["polygons",{"0":{"104":1,"135":1,"145":1,"174":1},"1":{"175":1,"176":1},"2":{"3":4,"4":3,"5":1,"6":20,"9":1,"28":5,"36":1,"61":5,"62":1,"64":2,"67":1,"68":1,"69":20,"71":1,"74":2,"75":9,"76":5,"77":3,"78":8,"86":6,"87":19,"90":5,"92":1,"93":1,"104":1,"124":5,"135":1,"150":1,"151":19,"156":1,"169":2,"173":3,"174":2,"175":2,"176":10,"186":1,"188":1,"201":3,"202":1,"207":5,"208":3}}],["polygontrait",{"2":{"1":1,"3":4,"4":6,"6":13,"15":3,"28":1,"37":1,"58":2,"61":3,"64":3,"68":2,"69":2,"71":2,"74":1,"75":5,"76":5,"77":3,"78":5,"86":4,"87":14,"90":10,"93":2,"101":2,"102":1,"103":1,"104":3,"105":1,"110":4,"115":2,"116":2,"117":1,"118":2,"119":1,"124":8,"132":2,"133":1,"134":1,"135":3,"136":1,"142":2,"143":1,"144":1,"145":3,"146":1,"153":1,"155":1,"156":2,"158":2,"159":1,"170":2,"172":2,"173":1,"176":2,"188":2,"197":1}}],["polygon",{"0":{"39":1,"69":1,"72":1,"75":1,"76":1,"78":1,"86":1,"87":1,"118":1},"1":{"40":1,"41":1,"42":1,"43":1,"73":1,"74":1},"2":{"0":1,"1":4,"3":4,"4":21,"5":9,"6":66,"9":2,"11":3,"15":4,"21":1,"25":1,"28":1,"57":1,"58":5,"60":2,"61":5,"62":5,"63":16,"64":57,"67":2,"68":4,"69":45,"70":3,"71":4,"73":3,"74":10,"75":5,"76":7,"77":5,"78":6,"80":1,"84":1,"85":3,"86":6,"87":34,"90":12,"92":3,"93":14,"99":1,"101":3,"102":3,"103":4,"104":8,"110":1,"115":3,"116":4,"117":4,"118":4,"121":66,"124":4,"130":1,"132":3,"133":4,"134":4,"135":8,"140":1,"142":3,"143":4,"144":5,"145":7,"150":5,"151":4,"155":1,"158":1,"165":1,"168":4,"169":8,"170":5,"171":1,"173":4,"174":3,"175":7,"176":7,"183":1,"184":4,"187":1,"188":9,"193":3,"197":6,"201":10,"202":5,"203":7,"204":2,"207":6}}],["pointwise",{"0":{"193":1},"2":{"180":1}}],["point1",{"2":{"93":4}}],["point`",{"2":{"78":1}}],["pointedgeside",{"2":{"69":1}}],["point₂",{"2":{"68":13}}],["point₁",{"2":{"68":13}}],["point3s",{"2":{"64":10}}],["point3f",{"2":{"63":1}}],["pointrait",{"2":{"6":1}}],["point2f",{"2":{"63":4,"64":2,"82":1,"92":1}}],["point2d",{"2":{"63":1}}],["point2",{"2":{"6":2,"64":5,"84":1,"93":4}}],["pointtrait",{"2":{"1":1,"4":4,"6":6,"23":1,"37":1,"55":1,"58":2,"61":1,"64":3,"69":4,"71":1,"77":2,"85":1,"90":8,"93":17,"101":6,"105":1,"115":6,"119":1,"132":6,"136":1,"142":6,"146":1,"153":2,"155":1,"156":1,"158":7,"159":4,"161":12,"167":2,"172":2,"173":1,"177":1,"178":2,"179":2,"188":2,"193":2,"194":2,"197":1}}],["point",{"0":{"115":1,"142":1},"2":{"1":4,"3":10,"4":37,"5":7,"6":84,"9":2,"18":1,"25":1,"55":1,"58":12,"61":3,"62":3,"63":1,"64":126,"68":6,"69":104,"71":50,"74":13,"76":9,"77":1,"78":73,"85":3,"87":9,"90":27,"92":17,"93":73,"96":3,"98":1,"99":2,"101":8,"110":21,"113":2,"115":10,"121":138,"123":2,"124":21,"126":1,"130":4,"132":11,"139":1,"140":3,"142":10,"143":1,"145":1,"150":1,"151":3,"155":1,"158":1,"168":1,"169":2,"173":2,"174":1,"176":2,"179":8,"180":1,"182":1,"188":2,"189":3,"190":9,"191":1,"193":2,"197":4,"198":1,"201":23,"202":1,"203":2,"207":2}}],["points2",{"2":{"3":1,"6":1,"124":3}}],["points1",{"2":{"3":1,"6":1,"124":3}}],["points",{"0":{"101":1,"132":1},"2":{"0":1,"1":3,"3":1,"4":11,"5":1,"6":54,"9":3,"13":1,"18":2,"58":2,"60":3,"61":3,"63":8,"64":32,"68":1,"69":54,"71":5,"74":3,"75":5,"76":1,"77":8,"78":32,"80":3,"82":4,"84":4,"85":6,"86":4,"87":1,"89":2,"90":13,"92":2,"93":8,"95":1,"99":6,"101":3,"102":4,"113":6,"115":1,"116":7,"117":3,"121":10,"124":5,"129":1,"130":5,"132":3,"133":3,"134":3,"135":1,"140":5,"142":1,"143":2,"144":4,"145":3,"149":1,"151":3,"158":2,"159":1,"165":2,"177":2,"180":1,"183":2,"184":2,"188":11,"189":11,"190":26,"191":10,"192":33,"193":2,"194":2,"197":25,"198":1,"201":8,"202":1,"206":1,"207":11}}],["pointorientation",{"2":{"0":1,"6":2,"121":2}}],["my",{"2":{"163":1,"208":1,"209":2}}],["myindependentalgorithm",{"2":{"162":3}}],["myexternalarbitrarypackagealgorithm",{"2":{"162":1}}],["mdk",{"2":{"158":2}}],["m`",{"2":{"69":1}}],["moore",{"2":{"151":1}}],["move",{"2":{"68":1,"121":1}}],["moved",{"2":{"36":1,"69":1,"180":1}}],["mode",{"2":{"209":3}}],["model",{"2":{"166":1,"206":1}}],["modify",{"2":{"201":1}}],["modified",{"2":{"158":1,"159":1}}],["module",{"2":{"69":1,"180":1,"185":1}}],["modules",{"2":{"6":1,"64":1}}],["mod1",{"2":{"64":5}}],["mod",{"2":{"64":1,"69":1}}],["monotone",{"2":{"25":1,"84":2}}],["monotonechainmethod",{"2":{"0":1,"6":1,"80":1,"84":2,"85":4}}],["most",{"2":{"18":1,"30":1,"32":1,"69":1,"76":1,"78":1,"84":1,"87":1,"121":1,"188":1,"205":2}}],["moment",{"2":{"6":1,"183":1,"185":1}}],["more",{"2":{"6":3,"7":1,"9":1,"10":1,"11":1,"20":1,"28":1,"31":1,"34":1,"36":1,"69":1,"75":1,"77":1,"85":1,"86":1,"121":1,"124":1,"158":4,"159":4,"165":1,"166":2,"170":1,"181":1,"183":1,"185":1,"201":2,"206":1}}],["missing",{"2":{"183":4}}],["missed",{"2":{"151":1}}],["mistakenly",{"2":{"174":1}}],["mid",{"2":{"71":2,"121":3}}],["midpoint",{"2":{"69":2}}],["middle",{"2":{"69":3}}],["mining",{"2":{"208":1}}],["minimal",{"2":{"208":1}}],["minimize",{"2":{"78":1}}],["minimum",{"2":{"4":7,"6":12,"70":1,"71":2,"93":12,"188":1,"189":1,"191":1}}],["mind",{"2":{"183":1,"207":1}}],["minmax",{"2":{"78":4}}],["min",{"2":{"71":1,"78":16,"93":15,"188":1,"190":3,"191":1,"192":28}}],["minus",{"2":{"60":1}}],["minpoints=0",{"2":{"151":1}}],["minpoints",{"2":{"6":2}}],["might",{"2":{"6":3,"30":1,"32":1,"36":1,"61":1,"75":1,"77":1,"78":1,"86":1,"171":1,"190":1}}],["mixed",{"2":{"6":4,"188":1}}],["m",{"2":{"5":1,"6":6,"15":10,"64":2,"69":33,"71":6,"75":2,"77":2,"78":10,"86":2,"150":2,"162":29,"165":4,"202":1}}],["mp",{"2":{"110":2}}],["mp1",{"2":{"4":2,"6":2,"90":7}}],["mp2",{"2":{"4":2,"6":2,"90":8}}],["mason",{"2":{"158":1,"159":1}}],["markersize",{"2":{"201":2}}],["marker",{"2":{"201":2}}],["marked",{"2":{"69":6,"76":1,"78":1,"87":1}}],["marking",{"2":{"76":2,"78":2,"87":2}}],["mark",{"2":{"69":2}}],["marks",{"2":{"69":1}}],["mag",{"2":{"58":4}}],["making",{"2":{"69":1,"151":1,"156":1,"175":1,"201":1,"203":2}}],["makie",{"2":{"13":1,"14":1,"57":1,"60":1,"63":3,"67":1,"70":1,"73":4,"82":1,"83":1,"89":1,"92":1,"95":1,"98":1,"108":1,"112":1,"123":1,"126":1,"129":1,"139":1,"151":3,"187":1,"188":1,"199":1}}],["makevalid",{"2":{"188":2}}],["makes",{"2":{"61":1,"69":1,"93":1,"158":1,"164":1,"169":1,"174":1,"175":1}}],["make",{"2":{"9":1,"30":1,"32":1,"58":1,"69":5,"78":1,"93":1,"124":1,"151":2,"156":1,"170":1,"183":1,"192":1,"195":1,"198":1,"201":2,"203":1}}],["mainly",{"2":{"64":1,"92":1,"153":1,"159":1,"164":1}}],["maintain",{"2":{"61":1}}],["main",{"0":{"33":1},"1":{"34":1,"35":1},"2":{"7":1,"31":1,"69":1,"151":1,"158":1,"184":1}}],["mapped",{"2":{"205":1}}],["maptasks`",{"2":{"158":1}}],["maptasks",{"2":{"158":8}}],["mapreducetasks`",{"2":{"159":1}}],["mapreducetasks",{"2":{"159":6}}],["mapreduce",{"2":{"76":1,"151":2,"158":4,"159":9}}],["map",{"0":{"202":1},"2":{"6":1,"13":1,"23":3,"24":1,"34":1,"64":1,"69":1,"78":1,"124":2,"151":17,"158":15,"159":8,"161":10,"166":1,"167":1,"170":1,"188":1,"200":1,"202":1,"203":1,"205":1}}],["materialization",{"2":{"162":1}}],["materialize",{"2":{"69":1}}],["materializer`",{"2":{"158":1}}],["materializer",{"2":{"27":1,"158":1}}],["materialized",{"2":{"6":1,"69":1,"165":2}}],["matches",{"2":{"90":1,"151":1}}],["match",{"2":{"90":12,"124":3,"151":1,"158":1,"161":2,"162":1}}],["matching",{"2":{"3":1,"6":1,"27":1,"90":3,"124":1,"156":2}}],["matlab",{"2":{"73":1}}],["mathematical",{"2":{"166":1}}],["mathematically",{"2":{"6":1,"17":1,"150":1,"166":2}}],["mathematics",{"2":{"166":1}}],["mathrm",{"2":{"64":1}}],["math",{"2":{"7":1}}],["matrix",{"2":{"6":1,"14":2,"64":1,"69":1}}],["maxlog=3",{"2":{"185":1}}],["maximal",{"2":{"78":1}}],["maximum",{"2":{"3":1,"6":4,"14":1,"70":1,"71":4,"110":1,"151":1,"184":1,"185":1,"190":4}}],["max",{"2":{"6":9,"37":9,"58":2,"69":1,"71":1,"151":1,"158":2,"159":2,"183":5,"184":8,"185":21,"190":36,"192":1,"199":1}}],["manner",{"2":{"206":1}}],["manipulate",{"2":{"205":1}}],["manifoldindependentalgorithm",{"2":{"162":3}}],["manifold=",{"2":{"69":6,"87":4}}],["manifolds",{"0":{"17":1,"18":1,"21":1,"166":1},"1":{"18":1,"19":1,"20":1,"21":1},"2":{"69":1,"162":2,"166":4}}],["manifold",{"2":{"6":4,"17":1,"18":2,"20":5,"21":1,"36":2,"69":22,"75":3,"77":6,"78":10,"86":5,"87":1,"162":19,"164":4,"165":6,"166":19,"185":3}}],["manually",{"2":{"168":1}}],["many",{"2":{"4":1,"5":1,"6":2,"28":1,"31":1,"64":1,"69":1,"74":1,"76":1,"78":2,"87":1,"90":1,"162":1,"169":1,"177":1}}],["made",{"2":{"6":2,"68":1,"69":1,"78":1,"144":1,"156":1,"173":1,"176":1,"191":1}}],["maybe",{"2":{"37":1,"69":14,"121":4,"158":2,"159":3,"161":2,"162":1}}],["may",{"2":{"1":1,"6":3,"28":2,"29":1,"64":2,"69":3,"78":1,"84":1,"150":1,"152":1,"155":1,"156":1,"158":4,"161":1,"162":5,"165":3,"166":2,"167":1,"174":1,"175":1,"184":1}}],["measure",{"2":{"182":1}}],["measures",{"2":{"166":1}}],["meant",{"2":{"31":1}}],["meaning",{"2":{"3":3,"4":1,"6":4,"29":1,"61":1,"65":1,"124":4,"150":1,"166":1}}],["means",{"2":{"3":1,"6":2,"60":1,"61":1,"65":1,"98":1,"121":3,"123":1,"124":1,"150":1,"156":1,"163":2,"166":2}}],["mean",{"2":{"0":1,"6":5,"22":1,"63":2,"64":5,"159":1,"166":1}}],["meanvalue",{"2":{"0":1,"5":2,"6":3,"62":1,"63":2,"64":15}}],["mercator",{"2":{"202":1}}],["merge",{"2":{"158":1}}],["merit",{"2":{"69":1}}],["meets",{"2":{"121":9,"124":1,"190":1}}],["meet",{"2":{"78":3,"98":1,"99":1,"113":1,"121":7,"130":1,"140":1}}],["mesh",{"2":{"63":1}}],["message",{"2":{"6":1,"196":1}}],["me",{"0":{"28":1}}],["mentioned",{"2":{"24":1}}],["mentions",{"2":{"6":1,"196":1}}],["menu",{"2":{"14":3}}],["median",{"2":{"13":4,"159":1}}],["mechanics",{"2":{"6":1,"64":1}}],["memory",{"2":{"6":1,"64":1,"69":1,"203":1}}],["metadatakeys",{"2":{"158":1}}],["metadatasupport",{"2":{"158":2}}],["metadata",{"2":{"158":11}}],["met",{"2":{"121":44}}],["meters",{"2":{"6":4,"183":1,"184":4,"202":1}}],["methoderror",{"2":{"36":3}}],["methods",{"0":{"2":1,"3":1,"4":1,"6":1,"44":1},"1":{"3":1,"4":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"1":1,"6":7,"9":1,"30":1,"32":1,"36":27,"64":3,"80":1,"99":1,"113":1,"130":1,"140":1,"151":1,"156":1,"158":1,"161":2,"162":1,"164":1,"167":1,"183":1,"188":2,"193":1,"201":1}}],["method",{"0":{"181":1},"2":{"1":1,"4":1,"5":10,"6":30,"20":1,"29":1,"37":1,"58":1,"61":1,"64":37,"65":2,"68":1,"69":1,"71":1,"78":1,"84":3,"85":2,"87":1,"90":1,"93":4,"99":2,"113":2,"124":1,"130":2,"140":2,"151":1,"158":1,"159":1,"161":3,"163":1,"180":1,"181":2,"183":2,"184":9,"185":22,"186":2,"196":3,"206":1,"209":1}}],["mutation",{"2":{"204":1}}],["mutlipolygon",{"2":{"4":1,"6":1,"68":1}}],["muladd",{"2":{"64":2}}],["multifloats",{"2":{"13":1,"14":1,"15":1}}],["multifloat",{"2":{"7":1}}],["multilinestringtrait",{"2":{"37":1,"172":1}}],["multilinestring",{"2":{"6":1,"197":2}}],["multi",{"0":{"105":1,"106":1,"119":1,"120":1,"136":1,"137":1,"146":1,"147":1},"2":{"4":2,"6":3,"58":1,"61":1,"71":1,"90":2,"105":1,"106":1,"119":1,"120":1,"136":1,"137":1,"146":1,"147":1}}],["multicurves",{"2":{"61":1,"71":1}}],["multicurve",{"2":{"4":1,"6":1,"61":1}}],["multigeometry",{"2":{"4":2,"6":2,"93":2}}],["multiplication",{"2":{"185":1}}],["multiplied",{"2":{"64":3,"166":1}}],["multiple",{"2":{"4":1,"6":1,"64":1,"121":1,"177":1,"192":1,"201":1,"205":1}}],["multiply",{"2":{"1":1,"6":1,"193":1}}],["multipolys",{"2":{"87":3}}],["multipoly`",{"2":{"75":2,"77":2,"86":2}}],["multipoly",{"2":{"6":9,"15":3,"75":1,"76":27,"77":1,"78":26,"86":1,"87":39,"176":21,"188":9}}],["multipolygon`",{"2":{"151":1}}],["multipolygons",{"2":{"3":1,"4":1,"6":11,"68":1,"75":3,"77":3,"78":3,"86":3,"90":1,"92":1,"124":2,"175":1,"201":1,"202":1}}],["multipolygon",{"2":{"3":2,"4":5,"6":17,"61":2,"67":1,"75":1,"76":7,"77":1,"78":5,"86":1,"87":10,"90":4,"124":2,"151":7,"173":2,"174":7,"175":7,"176":2,"188":3,"201":8,"202":1}}],["multipolygontrait",{"2":{"1":1,"3":4,"4":2,"6":6,"28":1,"37":1,"76":4,"78":4,"87":12,"90":6,"105":1,"106":1,"119":1,"120":1,"124":8,"136":1,"137":1,"146":1,"147":1,"155":1,"158":1,"172":1,"176":4}}],["multipoint",{"2":{"4":5,"6":5,"55":1,"61":1,"90":5,"110":6,"158":1,"159":2,"188":1,"201":5}}],["multipoints",{"2":{"3":2,"4":1,"6":3,"61":1,"71":1,"90":2,"124":2,"188":1,"201":1}}],["multipointtrait",{"2":{"1":1,"3":2,"4":4,"6":7,"37":1,"58":2,"61":1,"71":1,"90":8,"105":1,"106":1,"110":4,"119":1,"120":1,"124":4,"136":1,"137":1,"146":1,"147":1,"155":1,"156":1,"172":1,"188":2,"197":1}}],["multithreading",{"2":{"1":2,"4":1,"6":4,"155":1,"160":1}}],["must",{"2":{"1":1,"3":8,"4":2,"5":1,"6":22,"9":1,"19":1,"58":1,"64":5,"65":1,"69":2,"71":3,"74":1,"78":2,"90":5,"96":2,"99":1,"108":1,"109":1,"113":1,"121":13,"124":1,"130":2,"139":1,"140":1,"151":1,"158":1,"161":2,"171":1,"172":3,"173":1,"180":1,"184":1,"185":1,"188":1,"192":4,"196":1}}],["much",{"2":{"0":1,"6":3,"75":1,"77":1,"86":1}}],["iah",{"2":{"199":2}}],["image",{"2":{"151":1}}],["impossible",{"2":{"74":1,"123":1}}],["important",{"2":{"183":1}}],["import",{"2":{"1":3,"6":4,"13":2,"14":2,"15":1,"36":10,"57":1,"60":1,"65":1,"67":1,"70":1,"74":1,"75":1,"77":1,"78":1,"86":1,"89":1,"90":1,"92":1,"95":1,"96":1,"98":1,"99":1,"108":1,"109":1,"110":1,"112":1,"113":1,"123":1,"124":1,"126":1,"127":1,"129":1,"130":1,"139":1,"140":1,"150":3,"155":1,"158":2,"159":1,"181":1,"184":2,"187":2,"188":3,"193":2,"197":1,"200":5}}],["implements",{"2":{"37":1,"196":1}}],["implementing",{"2":{"6":1,"188":1}}],["implement",{"2":{"6":1,"22":1,"28":1,"58":1,"61":1,"64":1,"68":1,"71":1,"85":1,"90":1,"93":1,"99":1,"113":1,"124":1,"130":1,"140":1,"153":1,"165":1,"171":1,"172":3,"173":1}}],["implementation",{"0":{"58":1,"61":1,"68":1,"71":1,"74":1,"85":1,"90":1,"93":1,"96":1,"99":1,"109":1,"113":1,"124":1,"127":1,"130":1,"140":1,"170":1,"176":1,"185":1},"2":{"6":1,"58":3,"61":3,"64":1,"68":3,"71":3,"86":1,"90":3,"93":3,"96":1,"99":2,"109":1,"113":2,"124":3,"127":1,"130":2,"140":2,"151":2,"152":1,"158":1,"159":1,"180":1,"185":1,"188":1,"196":1,"198":1}}],["implementations",{"2":{"6":1,"36":1,"99":1,"113":1,"130":1,"140":1,"152":1,"186":1,"196":3}}],["implemented",{"0":{"152":1},"2":{"1":1,"6":2,"36":2,"61":1,"64":3,"74":2,"76":2,"78":2,"85":1,"87":2,"93":2,"152":1,"153":2,"159":1,"172":2,"179":1,"180":1,"186":1}}],["improvements",{"2":{"9":2,"10":1}}],["improve",{"2":{"4":1,"6":1,"177":1}}],["i=2",{"2":{"150":1}}],["ipoints",{"2":{"121":4}}],["ip",{"2":{"90":2}}],["ipt",{"2":{"69":8}}],["ihole",{"2":{"90":2}}],["ih",{"2":{"87":22}}],["i2",{"2":{"71":2}}],["i1",{"2":{"71":2}}],["ii",{"2":{"69":8}}],["io",{"2":{"65":5,"69":10,"164":12,"181":5,"184":5}}],["i+1",{"2":{"64":8,"151":1,"190":2,"192":1,"198":1}}],["i",{"2":{"9":1,"13":4,"17":1,"27":1,"58":14,"61":1,"64":16,"69":48,"71":4,"76":2,"86":2,"87":4,"90":8,"93":2,"110":7,"121":28,"150":14,"151":17,"158":8,"159":8,"164":6,"185":2,"189":3,"190":12,"192":28,"197":2,"198":4,"201":2,"202":1,"208":3}}],["ignored",{"2":{"6":1,"151":1}}],["ignore",{"2":{"6":1,"151":2}}],["id",{"2":{"204":1}}],["identical",{"2":{"158":1,"175":1}}],["identity",{"2":{"151":4,"161":2,"177":1}}],["ideal",{"2":{"20":1,"151":1}}],["idea",{"2":{"6":2,"18":1,"25":1,"30":1,"32":1,"64":1,"69":1,"153":1,"159":1}}],["idx`",{"2":{"69":1}}],["idxs",{"2":{"69":2}}],["idx",{"2":{"58":6,"69":191,"71":9,"74":23,"75":5,"77":5,"86":2,"176":34,"190":51}}],["id=",{"2":{"6":2}}],["innerjoin",{"2":{"206":1,"207":1,"208":1}}],["inner",{"2":{"121":6,"158":5}}],["in=1",{"2":{"121":1}}],["in`",{"2":{"121":1}}],["inject",{"0":{"79":1},"2":{"181":1}}],["inaccuracies",{"2":{"78":1}}],["ind",{"2":{"208":2}}],["individual",{"2":{"203":1}}],["indicate",{"2":{"166":1}}],["indicates",{"2":{"25":1}}],["indication",{"2":{"165":1}}],["indices",{"2":{"69":15,"158":3,"159":3,"192":16,"198":3}}],["indeed",{"2":{"169":1}}],["index",{"2":{"64":8,"69":14,"121":1,"158":1,"190":1}}],["inds",{"2":{"151":3}}],["inplace",{"2":{"64":1}}],["inputmanifold",{"2":{"164":2}}],["inputs",{"2":{"6":1,"69":1,"90":1,"96":1,"109":1,"127":1,"192":1}}],["input",{"2":{"6":12,"58":1,"69":1,"74":1,"75":1,"77":1,"78":1,"86":1,"151":1,"153":1,"159":1,"165":1,"166":1,"184":3,"185":1,"189":1,"190":1,"191":1,"202":1}}],["inbounds",{"2":{"64":16,"93":5,"121":1}}],["inspiration",{"2":{"74":1}}],["inspired",{"2":{"73":1,"74":2}}],["inside",{"2":{"58":3,"67":1,"69":3,"71":1,"75":1,"76":1,"77":1,"78":1,"86":1,"87":2,"92":3,"93":1,"101":1,"121":1,"129":1,"132":1,"151":2}}],["insertion",{"2":{"69":1}}],["insert",{"2":{"58":1,"190":1}}],["instability",{"2":{"29":2}}],["instantiating",{"2":{"25":1}}],["instead",{"2":{"23":1,"29":1,"159":1,"185":1}}],["instructs",{"2":{"6":1,"196":2}}],["inline",{"2":{"37":1,"121":4,"150":1,"158":13,"159":11,"163":2}}],["init=nothing",{"2":{"159":1}}],["init=typemax",{"2":{"93":2}}],["init=zero",{"2":{"61":1,"71":1}}],["initial",{"2":{"78":2,"184":1}}],["initially",{"2":{"69":1}}],["initialize",{"2":{"64":3,"68":2,"69":1,"78":1}}],["init",{"2":{"24":1,"36":1,"58":1,"68":2,"159":33,"165":2,"184":4}}],["incorrect",{"2":{"168":1,"169":1}}],["increase",{"2":{"69":1,"121":1}}],["increasing",{"2":{"6":1,"188":1}}],["increment",{"2":{"64":5}}],["including",{"2":{"58":1,"69":2,"78":1,"93":1,"101":1,"102":1,"103":1,"104":1,"121":2}}],["include",{"2":{"36":44,"58":1,"69":1,"80":1,"93":2,"163":1,"188":2,"203":2,"204":1}}],["included",{"2":{"6":2,"87":2,"173":2,"176":2,"203":1}}],["includes",{"2":{"4":2,"6":2,"87":1,"90":1,"93":2,"121":1}}],["incircle",{"0":{"16":1}}],["investigate",{"2":{"151":1}}],["investigating",{"0":{"84":1}}],["inverted",{"2":{"6":1,"85":1}}],["invalid",{"2":{"25":1,"76":2,"169":1,"174":1,"175":1}}],["invoke",{"2":{"25":1}}],["involved",{"2":{"153":1}}],["involve",{"2":{"25":1}}],["involving",{"2":{"6":3,"75":1,"77":1,"86":1}}],["invocation",{"2":{"23":1}}],["inv",{"2":{"18":1,"166":5}}],["ing",{"2":{"1":1,"6":2,"64":1,"193":1}}],["intr",{"2":{"69":28,"71":9,"74":16,"78":8}}],["intr2",{"2":{"69":2,"78":14}}],["intr1",{"2":{"69":3,"78":21,"121":2}}],["intrs",{"2":{"69":10,"78":5}}],["introduction",{"0":{"32":1},"1":{"33":1,"34":1,"35":1}}],["introducing",{"2":{"29":1}}],["introduces",{"2":{"29":1}}],["introduced",{"2":{"20":1}}],["int",{"2":{"69":11,"87":7,"110":7,"162":2,"165":1,"185":1,"188":1,"190":5,"191":1,"192":1,"198":1}}],["integrate",{"2":{"61":1}}],["integrating",{"2":{"61":1}}],["integrals",{"2":{"60":1}}],["integral",{"2":{"60":1}}],["intended",{"2":{"6":1,"19":1,"172":2,"173":1}}],["intermediate",{"2":{"71":1}}],["inter2",{"2":{"71":15}}],["inter1",{"2":{"71":23}}],["interpret",{"2":{"166":1}}],["interpreted",{"2":{"64":1}}],["interpolation",{"2":{"5":1,"6":1,"63":1,"64":2,"182":1}}],["interpolated",{"2":{"5":3,"6":3,"64":17,"182":1}}],["interpolate",{"2":{"0":2,"5":2,"6":4,"62":1,"63":2,"64":25}}],["interest",{"2":{"64":1,"93":1}}],["internal",{"2":{"63":1}}],["internals",{"2":{"29":1}}],["inter",{"2":{"6":3,"69":21,"74":1,"75":1,"77":5,"78":4}}],["interface",{"0":{"172":1},"2":{"6":3,"25":1,"80":1,"85":1,"158":1,"171":1,"172":4,"173":1,"188":1,"202":1}}],["interacted",{"2":{"121":1}}],["interaction",{"0":{"121":1},"2":{"121":2}}],["interactions",{"2":{"69":1,"87":3,"121":15}}],["interactive",{"2":{"13":1,"14":1}}],["interacting",{"2":{"6":1,"77":1,"121":2}}],["interacts",{"2":{"3":1,"6":1,"121":3,"139":1,"140":1,"143":3,"144":1,"145":1}}],["interact",{"2":{"3":2,"6":2,"86":1,"87":1,"112":1,"121":5,"127":1,"139":1,"140":1,"142":1,"143":2,"144":2,"145":1}}],["interior",{"2":{"3":6,"6":7,"58":9,"60":1,"64":7,"68":5,"69":1,"87":18,"95":1,"96":1,"98":1,"99":3,"102":5,"103":1,"104":2,"108":2,"109":1,"110":1,"113":2,"115":2,"116":6,"117":3,"121":15,"129":1,"130":3,"135":2,"139":1,"140":3,"143":1,"144":2,"145":2,"150":2,"170":1,"173":1}}],["interiors",{"2":{"3":6,"6":7,"64":20,"95":1,"96":1,"98":1,"108":1,"109":1,"112":1,"113":1,"118":1,"121":5,"126":1,"127":1,"129":1,"130":1,"133":3,"134":3,"139":1,"140":1,"142":1,"143":2,"144":1}}],["intersectingpolygons",{"2":{"6":3}}],["intersecting",{"0":{"174":1},"1":{"175":1,"176":1},"2":{"6":4,"36":1,"69":6,"87":2,"173":4,"174":1,"176":4}}],["intersections",{"0":{"78":1},"2":{"69":1,"71":2,"76":1,"77":2,"78":1,"87":1,"121":2}}],["intersection",{"0":{"42":1,"77":1,"125":1},"1":{"126":1,"127":1},"2":{"0":2,"3":3,"6":22,"9":1,"15":4,"28":1,"36":2,"42":2,"69":41,"71":6,"74":3,"75":4,"76":4,"77":19,"78":80,"86":2,"87":2,"110":2,"121":6,"124":5,"126":1,"165":2}}],["intersectionaccelerator",{"2":{"0":1,"6":2,"69":11,"78":2}}],["intersect",{"2":{"3":8,"6":11,"69":16,"71":3,"75":2,"77":1,"78":1,"86":1,"87":5,"95":1,"96":2,"98":1,"99":1,"109":1,"113":1,"116":1,"118":1,"121":4,"124":1,"126":2,"129":1,"130":2,"133":3,"134":3,"175":1,"176":4}}],["intersects",{"0":{"54":1,"126":1},"2":{"0":2,"3":3,"6":6,"36":1,"54":2,"69":3,"78":2,"87":2,"110":2,"124":5,"125":1,"126":4,"127":4,"135":1,"176":2,"198":1,"206":1}}],["into",{"2":{"5":1,"6":7,"20":1,"22":1,"31":1,"58":1,"61":1,"64":1,"68":4,"69":2,"74":1,"75":1,"77":1,"121":1,"151":4,"158":5,"159":4,"160":1,"161":2,"167":1,"176":1,"188":1,"197":2,"198":3,"201":2,"206":1}}],["int64",{"2":{"1":6,"6":6,"189":1,"190":1,"192":1,"193":6}}],["influence",{"2":{"166":1}}],["inference",{"2":{"158":1}}],["infinity",{"2":{"121":1,"124":1}}],["info",{"2":{"6":2,"166":1,"182":1}}],["information",{"0":{"203":1},"2":{"6":1,"34":1,"64":1,"69":2,"70":1,"78":1,"85":1,"121":1,"200":1,"203":3,"205":2}}],["inf",{"2":{"1":1,"9":1,"74":2,"189":1,"192":3}}],["in",{"0":{"28":1},"2":{"1":6,"3":3,"4":1,"5":4,"6":52,"7":1,"9":2,"13":6,"14":2,"18":1,"19":2,"20":3,"22":2,"23":4,"25":1,"28":3,"29":2,"30":1,"31":3,"32":1,"34":1,"35":1,"36":4,"37":1,"38":1,"58":7,"60":1,"61":3,"62":2,"64":22,"65":1,"67":2,"68":5,"69":114,"71":31,"74":6,"75":9,"76":3,"77":5,"78":29,"84":1,"85":3,"86":11,"87":28,"89":1,"90":17,"92":6,"93":6,"95":2,"96":1,"99":10,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"110":7,"113":9,"115":1,"116":1,"117":1,"119":1,"120":1,"121":135,"123":1,"124":11,"126":2,"127":1,"129":1,"130":10,"133":3,"134":3,"136":1,"137":1,"139":1,"140":11,"144":1,"146":1,"147":1,"150":4,"151":10,"152":3,"153":1,"155":2,"156":2,"157":1,"158":9,"159":4,"161":8,"162":2,"163":1,"164":1,"165":4,"166":6,"167":1,"171":1,"172":1,"173":2,"174":1,"176":7,"177":1,"178":2,"180":3,"181":1,"182":2,"183":2,"184":14,"185":8,"186":1,"188":5,"189":2,"190":4,"191":1,"192":5,"193":2,"194":1,"195":4,"196":4,"197":8,"198":7,"200":1,"201":2,"202":6,"205":2,"206":4,"207":3,"208":1,"209":1}}],["itererable",{"2":{"197":1}}],["iter",{"2":{"161":31}}],["iterating",{"2":{"69":1}}],["iteration",{"2":{"61":1,"69":1}}],["iterate",{"2":{"64":2,"69":1,"156":1,"158":1,"161":4}}],["iterators",{"2":{"13":1,"64":1,"69":5,"71":3,"77":1,"87":2,"151":1,"158":3,"159":4,"161":8,"176":6,"185":1}}],["iterator",{"2":{"6":1,"69":4,"77":2,"161":4,"198":1}}],["iterabletype",{"2":{"158":5,"159":6}}],["iterable",{"2":{"4":1,"6":2,"23":1,"61":1,"71":1,"85":1,"158":17,"159":15,"161":11,"201":1}}],["iterables",{"2":{"1":2,"27":1,"155":2,"158":1,"159":2,"161":3}}],["ith",{"2":{"69":3,"87":7}}],["itself",{"2":{"71":1,"150":1,"156":1}}],["its",{"2":{"5":1,"6":9,"20":2,"23":1,"60":1,"64":1,"69":2,"71":4,"87":1,"102":1,"161":2,"171":1,"188":1,"189":1,"190":1,"191":3,"206":1}}],["it",{"2":{"1":4,"4":1,"6":17,"9":1,"20":4,"23":11,"24":2,"25":1,"27":1,"34":3,"35":1,"57":1,"58":1,"60":2,"61":3,"63":1,"65":1,"68":2,"69":2,"70":1,"71":2,"75":1,"76":1,"77":1,"78":4,"84":2,"85":2,"86":1,"87":3,"90":1,"93":3,"98":2,"101":3,"115":3,"121":14,"123":1,"124":1,"132":3,"142":2,"149":1,"150":2,"151":4,"153":3,"155":1,"156":3,"157":1,"158":10,"159":5,"161":9,"162":4,"163":2,"164":4,"165":1,"166":4,"167":2,"169":1,"170":1,"171":1,"173":1,"174":1,"179":2,"180":5,"183":2,"184":1,"185":1,"188":1,"190":1,"195":1,"196":7,"198":1,"202":3,"203":3,"205":3,"208":2,"209":2}}],["iff",{"2":{"158":1}}],["if",{"0":{"79":1},"2":{"1":5,"3":17,"4":19,"5":1,"6":70,"20":3,"23":1,"27":2,"37":1,"57":1,"58":15,"60":1,"61":6,"64":5,"65":3,"68":1,"69":105,"71":36,"74":8,"75":14,"76":12,"77":11,"78":44,"85":3,"86":12,"87":23,"89":2,"90":35,"92":2,"93":8,"95":1,"96":1,"98":1,"99":2,"101":4,"102":3,"103":3,"104":2,"105":1,"106":1,"108":1,"109":1,"110":9,"112":1,"113":3,"115":5,"116":4,"117":2,"118":2,"119":1,"120":1,"121":132,"123":4,"124":16,"126":1,"127":1,"129":1,"130":2,"132":5,"133":3,"134":3,"135":1,"136":1,"137":1,"139":1,"140":2,"142":4,"143":3,"144":2,"145":2,"146":1,"147":1,"150":5,"151":35,"155":3,"156":1,"158":19,"159":6,"161":8,"163":1,"164":1,"165":3,"170":1,"172":1,"173":2,"174":1,"176":12,"177":1,"178":1,"179":2,"180":3,"181":2,"184":6,"185":1,"188":1,"190":12,"192":12,"193":1,"194":1,"196":2,"198":1,"202":1,"205":1,"207":2,"208":1}}],["isolate",{"2":{"188":1}}],["isodd",{"2":{"74":1}}],["ismeasured",{"2":{"161":1}}],["istable",{"2":{"158":1,"159":1,"161":1}}],["isequal",{"2":{"151":1}}],["iseven",{"2":{"121":1}}],["isempty",{"2":{"61":1,"64":4,"71":1,"75":1,"76":2,"77":1,"151":1,"164":1,"172":1,"190":1}}],["isparallel",{"2":{"121":1,"150":8}}],["is3d",{"2":{"90":1,"161":1,"178":1,"179":1,"193":1,"194":1,"197":10}}],["issue",{"2":{"69":1,"164":1}}],["issues",{"2":{"30":1,"32":1}}],["isgeometry",{"2":{"69":1}}],["isa",{"2":{"23":1,"64":9,"69":5,"158":3,"159":1,"185":2,"197":1}}],["isnothing",{"2":{"65":1,"69":13,"74":1,"76":2,"78":2,"87":3,"90":1,"151":1,"181":1,"184":1,"188":1,"189":1,"190":5,"191":1,"192":6}}],["isn",{"2":{"6":1,"61":1,"69":4,"71":1,"74":1,"76":1,"78":3,"87":2,"90":1,"93":3,"98":1,"121":9,"124":1,"188":1,"196":1}}],["isconcave",{"0":{"150":1},"2":{"0":1,"6":2,"84":1,"148":1,"150":3}}],["isclockwise",{"0":{"149":1},"2":{"0":1,"6":2,"71":1,"148":1,"150":5,"151":2}}],["is",{"0":{"19":1,"20":1,"30":1,"57":1,"60":2,"67":1,"70":1,"73":1,"89":1,"92":2,"95":1,"98":1,"108":1,"112":1,"123":1,"126":1,"129":1,"139":1,"156":1},"2":{"0":1,"1":10,"3":8,"4":43,"5":1,"6":113,"9":3,"11":1,"13":1,"14":1,"17":2,"18":4,"19":3,"20":12,"21":3,"23":3,"24":1,"25":1,"27":3,"28":2,"30":2,"32":2,"57":1,"58":19,"60":7,"61":19,"62":2,"63":2,"64":15,"65":3,"67":2,"68":5,"69":100,"70":3,"71":22,"73":1,"74":2,"75":4,"76":13,"77":4,"78":40,"80":1,"84":5,"85":4,"86":7,"87":21,"90":13,"92":8,"93":23,"95":2,"96":3,"98":4,"99":4,"101":7,"102":3,"103":3,"104":1,"105":1,"106":1,"109":3,"110":3,"112":1,"113":5,"115":9,"116":4,"117":2,"118":1,"119":1,"120":1,"121":91,"123":3,"124":12,"127":2,"129":4,"130":5,"132":8,"133":3,"134":3,"135":1,"136":2,"137":1,"140":4,"142":2,"149":2,"150":7,"151":11,"152":1,"153":3,"155":3,"156":3,"157":1,"158":18,"159":4,"161":7,"162":2,"163":1,"164":3,"166":13,"167":1,"168":7,"169":2,"170":1,"171":3,"172":2,"173":1,"174":4,"175":1,"176":2,"178":1,"179":1,"180":7,"181":2,"182":3,"183":3,"184":9,"185":8,"187":1,"188":4,"189":1,"190":2,"191":1,"193":2,"195":1,"196":3,"198":1,"201":4,"202":5,"203":3,"204":1,"205":3,"206":2,"207":5,"208":2}}],["df",{"2":{"204":3,"205":4,"207":10,"208":12}}],["dp",{"2":{"188":3}}],["dd",{"2":{"162":1}}],["dy",{"2":{"150":2,"185":3}}],["dy2",{"2":{"150":2}}],["dy1",{"2":{"110":10,"150":2}}],["dyc",{"2":{"110":2}}],["dx",{"2":{"150":2,"185":3}}],["dx2",{"2":{"150":2}}],["dx1",{"2":{"110":10,"150":2}}],["dxc",{"2":{"110":2}}],["drop",{"2":{"87":1,"176":1,"185":1}}],["driven",{"2":{"30":1,"32":1}}],["driving",{"2":{"30":1,"32":1}}],["duplicated",{"2":{"78":2}}],["during",{"2":{"69":1}}],["due",{"2":{"68":1,"69":1,"78":3}}],["dual",{"2":{"36":1,"69":4}}],["date",{"2":{"84":1}}],["datas",{"2":{"209":1}}],["datasets",{"2":{"202":1,"206":1,"207":1}}],["dataset",{"2":{"202":1,"206":1}}],["datainterpolations",{"2":{"182":1}}],["dataapi",{"2":{"36":1,"158":7}}],["dataaspect",{"2":{"13":1,"14":1,"57":1,"60":1,"63":2,"67":1,"70":1,"92":2,"151":2,"183":1,"188":1}}],["dataframes",{"2":{"204":3,"207":2,"208":1}}],["dataframe",{"2":{"34":1,"204":1,"206":1,"207":5,"208":2}}],["data",{"0":{"151":1,"205":1},"2":{"28":1,"30":1,"32":1,"83":1,"151":2,"158":1,"165":2,"188":10,"200":1,"202":2,"203":2,"204":2,"205":6,"207":1}}],["dashboard",{"0":{"14":1},"2":{"13":1,"14":1}}],["d",{"2":{"1":2,"5":1,"6":1,"64":1,"164":6,"166":1,"180":1,"190":3}}],["deu",{"2":{"208":2}}],["demonstrates",{"2":{"207":1}}],["densify",{"2":{"184":3}}],["densifying",{"2":{"184":1}}],["densifies",{"2":{"182":1}}],["denoted",{"2":{"121":1}}],["denotes",{"2":{"69":1}}],["debug",{"2":{"172":1}}],["debugging",{"2":{"64":1,"69":1}}],["derivation",{"2":{"78":1}}],["dealing",{"2":{"71":1}}],["delete",{"2":{"110":1,"124":1,"151":1,"190":1}}],["deleteat",{"2":{"69":6,"190":1,"192":2}}],["deltri",{"2":{"85":1}}],["delayed",{"2":{"69":10,"76":2,"78":2,"87":2}}],["delay",{"2":{"69":14,"75":2,"76":2,"77":2,"78":2,"86":2,"87":2}}],["delaunay",{"2":{"6":1,"85":1}}],["delaunaytriangulation",{"2":{"6":1,"36":1,"80":1,"85":6}}],["deprecated",{"2":{"185":1}}],["deprecate",{"2":{"78":1}}],["depth",{"2":{"64":2}}],["depends",{"2":{"69":1,"74":1}}],["depend",{"2":{"21":1,"69":2}}],["depending",{"2":{"1":1,"20":1,"28":1,"78":1,"155":1,"158":1,"166":1}}],["desktop",{"2":{"205":1}}],["dest",{"2":{"202":2}}],["destination",{"2":{"202":5}}],["designed",{"2":{"162":1,"164":1}}],["desiredmanifold",{"2":{"164":2}}],["desired",{"2":{"86":1,"205":1}}],["despite",{"2":{"58":1}}],["describe",{"2":{"18":1,"22":1}}],["describes",{"2":{"18":3,"162":1}}],["described",{"2":{"6":1,"64":1,"68":1,"69":1}}],["description",{"2":{"17":1}}],["de",{"0":{"44":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"121":2,"206":1}}],["deconstruct",{"2":{"153":1,"159":1}}],["decomposition",{"2":{"23":1,"153":1}}],["decomposing",{"2":{"23":1}}],["decompose",{"2":{"6":1,"23":2,"34":1,"64":4,"159":1,"165":1,"168":1,"198":2}}],["decrementing",{"2":{"151":1}}],["decrease",{"2":{"68":1}}],["decreasing",{"2":{"6":1,"188":1}}],["decide",{"2":{"84":1,"151":1}}],["decision",{"2":{"29":1}}],["degeneracies",{"2":{"9":1}}],["degenerate",{"2":{"6":1,"64":1,"74":2}}],["degrees",{"2":{"6":1,"57":1,"150":1,"166":1,"184":1}}],["define",{"2":{"21":1,"63":1,"69":2,"78":2,"89":1,"151":2,"153":1,"156":1,"158":1,"166":1,"195":1,"209":2}}],["defines",{"2":{"20":1,"69":2,"153":1,"159":1,"160":1,"161":1,"171":1,"195":1}}],["defined",{"2":{"4":1,"5":1,"6":3,"7":1,"27":1,"58":2,"64":1,"69":1,"70":1,"71":4,"78":4,"93":2,"149":1,"158":1,"166":3,"185":1,"195":1}}],["definitions",{"2":{"75":1,"77":1,"86":1,"196":1}}],["definition",{"2":{"4":4,"6":6,"90":8,"98":1,"166":3,"185":1}}],["default",{"2":{"1":2,"4":5,"6":14,"18":1,"37":1,"58":1,"61":2,"71":1,"75":1,"76":2,"77":1,"78":5,"85":1,"86":1,"87":2,"93":2,"151":5,"158":5,"161":2,"166":2,"179":1,"180":2,"188":2}}],["defaults",{"2":{"1":6,"4":2,"6":11,"20":1,"155":3,"158":1,"160":3}}],["deeper",{"2":{"1":1,"155":1,"157":1,"158":2}}],["detrimental",{"2":{"174":1}}],["detector",{"2":{"84":1}}],["detection",{"2":{"84":1,"151":1}}],["determined",{"2":{"69":1,"71":1}}],["determines",{"2":{"61":1,"69":3,"78":1,"121":10}}],["determine",{"2":{"20":3,"69":10,"71":3,"75":2,"77":2,"78":9,"86":2,"99":1,"113":1,"121":9,"124":1,"130":1,"140":1,"190":3,"206":1}}],["determinant",{"2":{"6":1,"20":1,"64":1}}],["detail",{"2":{"31":1}}],["details",{"2":{"6":2,"183":2}}],["details>",{"2":{"6":2}}],["det",{"2":{"0":1,"6":2,"64":4}}],["dirname",{"2":{"188":4}}],["dirty",{"2":{"187":1}}],["directive",{"2":{"158":1}}],["direction",{"2":{"6":1,"69":1,"90":5,"151":3}}],["direct",{"2":{"38":1}}],["directly",{"2":{"6":1,"85":3,"151":1,"184":1}}],["dig",{"2":{"158":1}}],["dict",{"2":{"151":5}}],["didn",{"2":{"87":1,"121":1,"163":1}}],["division",{"2":{"63":1}}],["divided",{"2":{"31":1}}],["ditance",{"2":{"4":1,"6":1,"93":1}}],["dimensionality",{"2":{"161":1}}],["dimensional",{"2":{"5":1,"6":3,"18":1,"60":1,"64":1,"85":2,"166":1}}],["dimensions",{"0":{"179":1},"2":{"3":1,"6":1,"124":2}}],["dimension",{"2":{"1":1,"3":4,"6":4,"110":2,"123":1,"124":4,"180":1,"198":1}}],["discouraged",{"2":{"203":1}}],["discussion",{"2":{"30":1,"32":1,"74":1}}],["distributed",{"2":{"207":2}}],["distinct",{"2":{"78":1,"151":1}}],["dist",{"2":{"78":40,"93":19,"121":2,"184":8,"190":40}}],["distance`",{"2":{"184":3,"185":2,"196":1}}],["distances",{"2":{"78":1,"92":1,"184":1,"189":5}}],["distance",{"0":{"91":2,"92":2},"1":{"92":2,"93":2},"2":{"0":4,"4":26,"6":47,"36":1,"37":9,"64":13,"65":3,"71":3,"78":32,"91":2,"92":17,"93":92,"121":1,"153":1,"159":1,"182":1,"183":5,"184":13,"185":28,"188":1,"189":3,"190":6,"191":1,"199":1,"209":2}}],["disagree",{"2":{"61":1}}],["displacement",{"2":{"166":1}}],["displaying",{"2":{"202":1}}],["display",{"2":{"13":1,"63":1,"202":1}}],["disparate",{"2":{"30":1,"32":1}}],["dispatches",{"2":{"6":1,"58":1,"61":1,"64":1,"68":1,"71":1,"90":1,"93":1,"99":1,"113":1,"124":1,"130":1,"140":1}}],["dispatch",{"2":{"4":1,"6":3,"29":1,"64":1,"69":1,"90":1,"161":3,"167":1,"196":1}}],["disjoint",{"0":{"46":1,"111":1,"112":1,"115":1,"116":1,"117":1,"118":1,"119":1},"1":{"112":1,"113":1},"2":{"0":2,"3":5,"6":7,"28":1,"36":1,"46":2,"87":2,"111":1,"112":3,"113":11,"114":6,"115":15,"116":18,"117":10,"118":5,"119":4,"120":2,"121":16,"127":3,"173":2,"174":2,"176":7,"206":1}}],["diffs",{"2":{"58":4}}],["diff",{"2":{"6":2,"58":17,"75":5,"76":3,"124":3,"176":8}}],["differs",{"2":{"202":1}}],["differ",{"2":{"4":1,"6":1,"93":1}}],["differently",{"2":{"4":3,"6":4,"58":1,"61":2,"71":1}}],["different",{"2":{"3":1,"4":4,"6":6,"25":1,"28":1,"58":1,"61":4,"69":3,"71":1,"78":2,"84":1,"124":3,"151":1,"156":1,"158":1,"174":2,"202":2,"205":1}}],["differences",{"0":{"76":1},"2":{"78":1,"190":1}}],["difference",{"0":{"40":1,"43":1,"75":1},"2":{"0":1,"6":7,"11":1,"28":1,"36":1,"40":2,"43":1,"69":3,"75":14,"76":14,"78":1,"86":1,"87":3,"173":1,"176":1,"184":1}}],["diffintersectingpolygons",{"2":{"0":1,"6":1,"173":1,"176":4}}],["doi",{"2":{"75":2,"77":2,"86":2,"121":1}}],["doing",{"2":{"22":1,"27":1,"69":2,"158":1,"203":1}}],["domain",{"2":{"69":1,"166":1}}],["dot",{"2":{"58":2,"64":1}}],["download",{"2":{"202":1}}],["down",{"2":{"23":1,"34":1,"64":1,"161":2}}],["doable",{"2":{"9":1}}],["documenter",{"2":{"183":2}}],["documentation",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"31":1,"63":1,"160":1}}],["docstring",{"2":{"183":4}}],["docstrings",{"0":{"154":1},"1":{"155":1},"2":{"7":1,"160":1}}],["docs",{"0":{"31":1,"160":1},"2":{"31":1,"151":1}}],["doc",{"2":{"9":1,"10":1}}],["does",{"0":{"27":1},"2":{"6":1,"7":1,"24":1,"67":1,"78":2,"95":1,"98":3,"121":1,"165":1,"166":2,"179":1}}],["doesn",{"2":{"4":1,"6":2,"37":1,"61":1,"74":1,"90":1,"162":1,"184":1,"196":1,"208":1}}],["douglas",{"2":{"186":2,"188":2,"190":1}}],["douglaspeucker",{"0":{"190":1},"2":{"0":1,"6":5,"186":1,"188":5,"190":6}}],["doublets",{"2":{"208":2}}],["doubled",{"2":{"6":1,"191":1}}],["double",{"2":{"6":1,"69":2,"191":4}}],["doublestrtree",{"2":{"6":1,"69":3}}],["done",{"0":{"10":1,"20":1},"2":{"13":1,"14":1,"69":3,"121":2,"151":1,"153":1,"162":1,"166":1,"174":1,"201":1,"206":1}}],["don",{"2":{"4":2,"6":2,"69":5,"75":1,"87":1,"90":6,"116":1,"121":1,"139":1,"143":1,"151":2,"158":3,"159":2,"196":1}}],["do",{"0":{"9":1,"28":1,"79":1},"2":{"1":1,"6":1,"14":1,"28":1,"36":2,"58":1,"61":2,"64":2,"65":1,"68":1,"69":3,"71":1,"74":1,"87":3,"89":1,"90":1,"93":2,"94":1,"108":1,"116":2,"117":1,"118":2,"121":1,"151":4,"153":1,"155":1,"158":6,"159":3,"161":4,"165":3,"169":1,"170":1,"175":1,"178":2,"179":2,"181":1,"184":1,"188":1,"193":2,"194":2,"202":2,"203":2,"204":3,"207":1,"208":1}}],["aim",{"2":{"166":1}}],["agnostic",{"2":{"162":1}}],["against",{"2":{"90":1,"121":2,"184":1,"188":1}}],["again",{"2":{"78":1,"158":1}}],["ay",{"2":{"150":2}}],["azimuth",{"2":{"150":2}}],["a3",{"2":{"83":1}}],["aedge",{"2":{"69":5}}],["aware",{"2":{"69":3}}],["away",{"2":{"65":1,"110":1,"209":1}}],["a``",{"2":{"76":2}}],["a`",{"2":{"69":1,"76":7,"78":3,"87":2}}],["a2y",{"2":{"78":4}}],["a2x",{"2":{"78":4}}],["a2t",{"2":{"69":10}}],["a2",{"2":{"63":4,"69":4,"78":56,"84":1,"124":6}}],["a1y",{"2":{"78":7}}],["a1x",{"2":{"78":7}}],["a1t",{"2":{"69":16}}],["a1",{"2":{"63":2,"69":15,"78":68,"84":1,"124":6}}],["axes",{"2":{"151":6}}],["ax",{"2":{"13":3,"14":3,"150":2,"201":5}}],["axis`",{"2":{"166":1}}],["axislegend",{"2":{"82":1,"183":1,"187":1}}],["axis",{"2":{"13":2,"14":1,"18":1,"57":1,"60":1,"63":4,"67":1,"70":1,"84":2,"92":1,"151":2,"166":7,"183":1,"188":1,"199":1}}],["axs",{"2":{"13":2}}],["average",{"2":{"62":3,"68":4,"78":1}}],["available",{"0":{"18":1,"173":1},"2":{"6":2,"36":1,"68":1,"167":1,"172":3,"182":1,"183":1,"185":1,"188":1,"192":1}}],["avoid",{"2":{"5":1,"6":7,"20":1,"64":1,"75":1,"77":1,"78":1,"86":1,"87":1,"94":1,"151":2,"158":1,"159":1,"161":3,"185":1,"189":1,"190":1,"191":1,"201":3}}],["a>",{"2":{"6":2}}],["advised",{"2":{"167":1}}],["advance",{"2":{"68":2}}],["adjust",{"2":{"78":1}}],["adjacent",{"2":{"69":1,"76":1,"78":1,"87":1}}],["adjacency",{"2":{"69":1}}],["adaptivity",{"0":{"79":1}}],["adaptive",{"2":{"7":1,"13":3,"14":2,"79":1}}],["adapted",{"2":{"75":1,"77":1,"86":1,"150":1}}],["administrative",{"2":{"208":1}}],["admin",{"2":{"11":1,"83":1,"188":2}}],["adm0",{"2":{"11":7,"83":4}}],["ad7303e2994d2cf37eed678d2200c9419134cb62",{"2":{"6":2}}],["additional",{"2":{"205":1}}],["additionally",{"2":{"69":3,"90":1}}],["addition",{"2":{"63":1,"87":1}}],["adding",{"2":{"4":1,"6":4,"7":1,"87":2,"151":1,"177":1,"182":1,"184":2,"185":1}}],["added",{"2":{"58":1,"69":6,"71":1,"87":2,"161":2,"176":2,"190":1}}],["add",{"2":{"3":1,"6":1,"7":2,"64":1,"65":1,"69":16,"71":1,"74":4,"75":3,"77":1,"78":3,"85":1,"86":2,"87":9,"110":1,"151":4,"161":1,"162":1,"163":1,"165":1,"182":1,"184":1,"190":10,"202":1,"204":2,"206":4}}],["automanifold",{"2":{"162":3,"166":4}}],["automatically",{"2":{"124":1,"158":1,"166":2,"202":1}}],["automatic",{"2":{"6":2,"69":2}}],["autoalgorithm",{"2":{"162":5}}],["autoaccelerator",{"2":{"6":1,"69":6}}],["ams",{"2":{"199":2}}],["america",{"2":{"188":1}}],["ambiguity",{"2":{"93":2,"158":1,"159":1,"161":3}}],["amounts",{"2":{"205":1}}],["amount",{"2":{"60":1,"70":1}}],["amp",{"2":{"6":1,"9":1,"69":2}}],["am",{"2":{"6":1,"69":1,"121":1}}],["achieve",{"2":{"174":1}}],["across",{"2":{"156":1}}],["acos",{"2":{"58":1}}],["activate",{"2":{"183":1}}],["action",{"2":{"25":2}}],["actions",{"2":{"25":2}}],["actual",{"2":{"10":1,"64":1,"150":1,"170":1,"180":1,"184":1}}],["actually",{"2":{"1":1,"6":1,"9":1,"64":4,"78":1,"87":3,"121":1,"151":1,"193":1,"205":1}}],["according",{"2":{"169":1,"174":1,"175":1,"207":1}}],["accordingly",{"2":{"69":1}}],["account",{"2":{"75":1,"77":1}}],["accomodate",{"2":{"69":2}}],["accurary",{"2":{"78":1}}],["accuratearithmetic",{"2":{"11":2}}],["accurate",{"0":{"11":1},"2":{"11":3,"183":1}}],["accumulators",{"2":{"64":1}}],["accumulator",{"2":{"64":1}}],["accumulate",{"2":{"61":1,"68":3}}],["accumulation",{"0":{"11":1},"2":{"64":1}}],["access",{"2":{"202":1}}],["accessed",{"2":{"196":1}}],["accessible",{"2":{"6":1,"69":2,"162":1,"166":1}}],["acceleration",{"2":{"78":1}}],["accelerated",{"2":{"69":1}}],["accelerator",{"2":{"6":7,"69":28,"77":1,"78":2}}],["accepted",{"2":{"166":1}}],["acceptable",{"2":{"121":1}}],["accepts",{"2":{"85":1}}],["accept",{"2":{"6":1,"196":1}}],["after",{"2":{"6":8,"58":1,"69":14,"158":1,"159":1,"188":2}}],["ab",{"2":{"69":3,"75":1,"77":1,"78":5,"86":1}}],["able",{"2":{"25":1,"78":1}}],["ability",{"2":{"22":1}}],["about",{"2":{"6":1,"29":2,"35":1,"64":2,"121":1,"158":1,"166":2,"168":1}}],["above",{"2":{"4":1,"6":1,"58":1,"68":1,"69":2,"78":1,"87":2,"172":1}}],["abs",{"2":{"58":1,"61":4,"68":1,"71":2,"110":8,"124":2,"151":1,"191":1,"209":1}}],["absolutely",{"2":{"159":1}}],["absolute",{"2":{"4":1,"6":1,"60":1,"61":2}}],["abstractarray",{"2":{"158":4,"159":2,"161":1,"197":2}}],["abstractarrays",{"2":{"156":1}}],["abstractrange",{"2":{"151":6}}],["abstractmulticurvetrait",{"2":{"105":1,"106":1,"119":1,"120":1,"136":1,"137":1,"146":1,"147":1}}],["abstractmatrix",{"2":{"6":5,"151":13}}],["abstractpolygontrait",{"2":{"93":1}}],["abstractcurvetrait",{"2":{"58":1,"61":1,"71":1,"101":1,"104":1,"105":1,"110":1,"115":1,"119":1,"132":1,"135":1,"136":1,"142":1,"145":1,"146":1,"150":1,"188":2,"197":3,"198":1}}],["abstractwkbgeomtrait",{"2":{"37":1}}],["abstractfloat",{"2":{"36":1,"58":1,"61":2,"69":1,"71":2,"74":1,"75":1,"77":3,"78":3,"86":3,"93":8}}],["abstractgeodesic",{"2":{"18":1}}],["abstractgeometrytrait`",{"2":{"172":1}}],["abstractgeometrytrait",{"2":{"6":2,"37":1,"61":2,"71":1,"93":1,"106":1,"120":1,"137":1,"147":1,"156":1,"161":1,"172":4,"173":2,"197":5}}],["abstractgeometry",{"2":{"3":4,"6":4,"37":1,"96":2,"109":2}}],["abstract",{"2":{"6":4,"37":1,"64":3,"69":3,"162":2,"163":3,"165":1,"166":2,"171":1,"172":4,"173":1,"188":3}}],["abstractvector",{"2":{"5":1,"6":1,"64":26,"151":8}}],["abstracttrait",{"2":{"1":2,"3":2,"6":2,"74":1,"76":2,"78":4,"87":2,"124":4,"153":1,"155":2,"158":1,"159":2,"161":11,"167":3}}],["abstractbarycentriccoordinatemethod",{"2":{"0":1,"5":1,"6":7,"64":18}}],["attribute",{"2":{"205":1}}],["attributed",{"2":{"204":1}}],["attributes",{"0":{"204":1},"2":{"200":1,"204":3}}],["attempt",{"2":{"166":1}}],["attempts",{"2":{"121":1}}],["attached",{"2":{"6":1,"198":1}}],["attach",{"2":{"1":2,"4":1,"6":4,"155":1,"160":1}}],["atomic",{"2":{"7":1}}],["at",{"2":{"3":4,"5":1,"6":7,"9":1,"23":1,"25":1,"29":1,"31":1,"58":2,"60":1,"61":1,"63":1,"64":2,"69":6,"71":2,"78":8,"84":1,"87":2,"121":17,"124":6,"130":1,"136":1,"139":1,"140":1,"143":3,"144":2,"145":2,"146":1,"147":1,"150":1,"156":1,"158":2,"165":1,"183":1,"185":1,"190":1,"192":1,"202":1,"203":2}}],["arbitrarily",{"2":{"156":1}}],["arbitrary",{"2":{"62":1,"153":1,"159":1,"201":1}}],["around",{"2":{"63":1,"64":2,"74":1,"90":1,"92":1,"151":1,"162":2,"166":1,"188":1,"207":1}}],["argmin",{"2":{"192":1}}],["arg",{"2":{"185":1}}],["argtypes",{"2":{"65":2,"181":1,"184":1}}],["args",{"2":{"13":2,"162":1}}],["argumenterror",{"2":{"87":1,"151":1,"158":1,"159":1,"161":3}}],["argument",{"2":{"4":5,"6":10,"58":1,"61":2,"68":1,"71":1,"75":1,"77":1,"86":1,"93":2,"158":1,"161":1,"165":1,"196":2,"202":1,"203":1}}],["arguments",{"2":{"1":1,"3":1,"6":6,"69":2,"99":2,"113":1,"130":1,"140":1,"180":1,"184":2,"185":1,"196":1}}],["arithmetic",{"2":{"11":1}}],["arclength",{"2":{"162":1,"165":5,"166":1}}],["archgdal",{"2":{"28":1}}],["arc",{"2":{"6":1,"184":1}}],["array",{"2":{"4":1,"6":2,"61":1,"71":1,"151":5,"158":5,"159":2,"189":1,"192":1}}],["arrays",{"2":{"1":1,"6":1,"27":1,"151":1,"155":1,"159":2}}],["aren",{"2":{"4":3,"6":5,"74":1,"76":1,"78":2,"87":4,"90":3,"173":2,"176":2}}],["are",{"0":{"18":1},"2":{"1":1,"3":4,"4":18,"5":2,"6":47,"9":2,"17":2,"18":2,"19":1,"25":2,"27":3,"29":1,"30":1,"31":2,"32":1,"36":1,"57":1,"58":8,"60":1,"61":2,"62":6,"64":11,"67":1,"68":3,"69":34,"71":6,"74":3,"75":3,"76":15,"77":2,"78":16,"84":3,"86":5,"87":9,"89":3,"90":26,"92":1,"93":1,"95":1,"99":7,"101":1,"102":3,"103":3,"104":1,"106":1,"112":1,"113":5,"115":1,"116":1,"117":1,"119":1,"120":1,"121":12,"124":7,"129":1,"130":5,"132":1,"133":3,"134":3,"135":1,"137":1,"140":5,"142":1,"144":2,"150":1,"151":14,"152":1,"155":1,"156":1,"158":6,"161":4,"162":1,"165":3,"166":4,"167":1,"168":1,"169":1,"170":1,"172":1,"173":3,"174":1,"175":1,"176":2,"177":1,"183":1,"184":1,"185":1,"188":4,"190":1,"192":2,"194":1,"195":2,"196":1,"198":1,"199":1,"201":1,"204":2,"205":2,"206":3,"207":6,"208":1,"209":1}}],["area2",{"2":{"68":4}}],["area1",{"2":{"68":4}}],["areas",{"2":{"4":2,"6":2,"61":3,"166":1,"191":2}}],["area",{"0":{"59":2,"60":2},"1":{"60":2,"61":2},"2":{"0":5,"4":15,"6":25,"11":6,"19":1,"21":1,"36":1,"59":2,"60":9,"61":61,"66":1,"67":3,"68":49,"69":1,"70":2,"71":44,"86":2,"87":1,"124":1,"153":1,"159":1,"162":2,"165":5,"166":2,"173":2,"176":2,"188":2,"191":4,"202":1}}],["asked",{"2":{"158":1}}],["ask",{"2":{"28":1}}],["aspect",{"2":{"13":1,"14":1,"57":1,"60":1,"63":2,"67":1,"70":1,"92":2,"151":2,"183":1,"188":1}}],["assign",{"2":{"200":1}}],["assigned",{"2":{"69":1,"151":7,"207":1}}],["assets",{"2":{"202":1}}],["assetpath",{"2":{"202":1}}],["assemble",{"2":{"170":1}}],["assert",{"2":{"64":23,"68":1,"74":1,"76":1,"78":1,"185":2,"197":1}}],["associativity",{"2":{"24":1}}],["associated",{"0":{"1":1},"2":{"62":2,"162":1}}],["assume",{"2":{"75":1,"77":2,"86":2,"124":2,"158":2,"169":1,"176":1}}],["assumed",{"2":{"20":1,"61":1,"90":1,"121":1}}],["assumes",{"2":{"6":3,"69":1,"93":1,"184":1,"185":2,"192":1}}],["as",{"2":{"1":8,"3":18,"4":6,"5":1,"6":75,"7":1,"11":2,"13":3,"14":3,"15":3,"18":1,"19":2,"20":1,"22":2,"23":2,"25":1,"27":1,"28":2,"29":1,"30":1,"32":1,"57":2,"58":4,"60":2,"61":3,"62":4,"63":1,"64":4,"65":3,"67":2,"68":1,"69":21,"70":2,"71":5,"73":3,"74":5,"75":8,"76":2,"77":7,"78":8,"80":1,"82":2,"83":2,"84":3,"85":3,"86":7,"87":5,"89":2,"90":2,"92":3,"93":1,"95":2,"96":2,"98":3,"99":3,"108":2,"109":2,"110":2,"112":2,"113":3,"121":7,"123":2,"124":2,"126":2,"127":2,"129":2,"130":3,"139":2,"140":3,"142":1,"150":8,"151":3,"153":3,"155":2,"156":2,"157":2,"158":12,"159":5,"161":4,"162":2,"163":2,"166":4,"167":2,"169":2,"170":2,"172":1,"173":1,"175":2,"177":1,"180":3,"182":2,"183":2,"184":3,"185":1,"186":2,"187":2,"188":7,"190":2,"193":3,"196":2,"197":2,"199":3,"200":3,"201":2,"202":1,"203":1,"205":3,"206":2,"207":3,"208":2}}],["alone",{"2":{"158":1}}],["along",{"2":{"4":4,"6":5,"69":3,"71":2,"78":4,"90":4,"121":1}}],["although",{"2":{"133":1,"134":1}}],["alternate",{"2":{"69":1}}],["alternative",{"2":{"69":1}}],["already",{"2":{"90":1,"121":2,"158":1,"162":1,"165":1,"190":1}}],["almost",{"2":{"78":1}}],["alg`",{"2":{"188":1}}],["alg=nothing",{"2":{"188":1}}],["alg=",{"2":{"69":1,"75":1}}],["alg",{"2":{"6":4,"37":2,"69":33,"75":8,"76":8,"77":11,"78":10,"86":8,"87":26,"162":6,"165":11,"188":21,"189":3,"190":8,"191":3,"192":7,"196":9}}],["algorithms",{"0":{"21":1,"162":1},"2":{"6":3,"21":1,"80":1,"84":1,"162":1,"169":1,"185":1,"186":1,"188":4,"190":1,"192":1}}],["algorithm",{"0":{"189":1,"190":1,"191":1},"2":{"6":18,"21":2,"36":1,"63":1,"69":12,"71":1,"74":3,"75":2,"76":2,"77":2,"78":2,"80":1,"85":4,"86":2,"87":1,"121":1,"162":11,"164":4,"165":5,"186":1,"188":8,"189":1,"190":3,"191":1,"196":4}}],["allocating",{"2":{"85":1}}],["allocations",{"2":{"5":1,"6":1,"64":1}}],["allocate",{"2":{"85":1}}],["allow=",{"2":{"121":1}}],["allowing",{"2":{"69":1}}],["allows",{"2":{"11":1,"20":2,"23":1,"28":1,"29":1,"34":1,"99":2,"101":3,"102":3,"103":3,"104":1,"113":2,"115":3,"116":3,"117":2,"118":1,"130":3,"132":3,"133":3,"134":3,"135":1,"140":1,"143":1,"144":1,"145":1,"153":1,"186":1,"202":1,"204":1,"206":1}}],["allowed",{"2":{"6":1,"99":3,"113":3,"121":6,"130":3,"140":5,"142":1,"143":2,"188":1}}],["allow",{"2":{"1":1,"6":1,"28":1,"69":1,"78":1,"99":7,"110":3,"113":7,"121":73,"130":10,"140":10,"185":1,"193":1}}],["all",{"2":{"1":3,"3":2,"4":3,"6":13,"9":1,"11":7,"17":2,"27":1,"30":1,"32":1,"36":2,"58":5,"61":3,"64":1,"69":16,"71":3,"75":1,"76":3,"78":3,"80":1,"83":3,"85":1,"87":5,"90":2,"92":1,"95":1,"102":3,"103":3,"106":1,"119":1,"120":1,"121":7,"124":4,"129":1,"137":1,"150":1,"151":3,"152":1,"155":1,"156":2,"157":1,"158":7,"159":1,"161":2,"166":1,"170":1,"172":1,"174":1,"177":1,"178":1,"188":1,"193":2,"194":1,"195":1,"201":1,"203":1,"205":1,"206":1}}],["always",{"2":{"1":7,"4":6,"6":8,"30":1,"32":1,"60":1,"61":4,"71":2,"84":1,"90":1,"92":1,"93":1,"155":2,"158":3,"159":1,"162":1,"165":1,"180":4,"206":1}}],["also",{"2":{"1":2,"6":9,"18":1,"21":1,"28":1,"58":1,"61":2,"68":2,"69":5,"71":1,"75":1,"77":1,"78":2,"80":1,"84":1,"85":1,"86":1,"90":3,"92":1,"93":2,"124":1,"151":1,"155":1,"156":1,"158":1,"165":1,"167":1,"170":1,"173":3,"176":2,"181":1,"182":1,"183":1,"184":1,"186":1,"193":1,"201":2,"204":1}}],["a",{"0":{"28":1,"202":1,"204":1},"2":{"1":13,"3":5,"4":79,"5":1,"6":202,"7":3,"9":1,"11":1,"15":2,"17":2,"18":5,"19":1,"20":11,"21":1,"22":1,"23":6,"25":3,"27":3,"28":4,"29":2,"30":2,"32":2,"34":2,"35":2,"37":4,"40":3,"41":3,"42":3,"43":3,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"57":3,"58":22,"60":11,"61":20,"62":13,"63":4,"64":11,"65":2,"67":5,"68":8,"69":406,"70":2,"71":17,"73":3,"74":4,"75":43,"76":30,"77":42,"78":102,"79":3,"80":3,"82":3,"83":2,"84":1,"85":4,"86":40,"87":55,"89":2,"90":54,"92":15,"93":27,"95":2,"98":1,"99":3,"101":5,"102":3,"103":2,"105":2,"106":2,"108":2,"110":1,"112":1,"113":3,"115":4,"116":3,"117":1,"119":2,"120":2,"121":52,"123":5,"124":27,"126":2,"129":1,"130":3,"132":5,"133":2,"134":2,"136":2,"137":2,"139":2,"140":4,"142":4,"143":2,"144":2,"145":1,"146":2,"147":2,"149":1,"150":4,"151":79,"153":4,"155":4,"156":4,"158":29,"159":8,"161":7,"162":5,"163":6,"164":8,"165":4,"166":14,"167":6,"168":6,"169":2,"170":2,"171":5,"172":5,"173":9,"174":8,"176":6,"177":2,"178":3,"179":1,"180":8,"181":3,"182":5,"183":4,"184":8,"185":10,"187":3,"188":5,"191":3,"192":1,"193":2,"194":1,"196":12,"197":2,"198":4,"199":1,"200":1,"201":17,"202":12,"203":5,"204":5,"205":11,"206":5,"207":8,"208":3,"209":3}}],["apart",{"2":{"176":1}}],["april",{"0":{"7":1}}],["appears",{"2":{"169":1}}],["append",{"2":{"58":1,"69":5,"75":1,"76":2,"78":2,"86":1,"87":5,"176":2}}],["approximately",{"2":{"69":1,"183":1}}],["approach",{"2":{"24":1}}],["appropriately",{"2":{"207":1}}],["appropriate",{"2":{"6":1,"196":2}}],["applies",{"2":{"156":2}}],["applied",{"2":{"6":1,"25":1,"161":4,"166":1,"171":2,"172":2,"173":1}}],["applicable",{"2":{"21":2,"69":1}}],["application",{"2":{"1":1,"6":2,"155":1,"159":1,"170":1,"172":3,"173":1,"176":2,"182":1,"185":1}}],["apply`",{"2":{"158":1}}],["applys",{"2":{"61":1,"71":1}}],["applyreduce",{"0":{"24":1,"159":1},"2":{"0":1,"1":1,"22":1,"24":2,"34":1,"36":2,"58":1,"61":1,"68":2,"71":1,"93":2,"153":1,"155":1,"159":42,"163":1,"165":1}}],["apply",{"0":{"1":1,"23":1,"27":1,"34":1,"153":1,"156":1},"1":{"24":1,"154":1,"155":1,"156":1,"157":1,"158":1},"2":{"0":1,"1":4,"6":3,"22":1,"23":5,"25":1,"27":1,"29":1,"34":3,"36":3,"37":2,"153":5,"155":3,"156":4,"157":1,"158":55,"159":5,"160":1,"161":3,"163":1,"165":1,"166":1,"172":4,"173":1,"177":1,"178":3,"179":3,"180":1,"184":1,"185":1,"188":2,"193":3,"194":2}}],["apis",{"2":{"22":1}}],["api",{"0":{"0":1,"64":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"6":3,"29":1,"64":1,"184":1,"188":1,"196":1}}],["antipodal",{"2":{"165":2}}],["annotation",{"2":{"163":1}}],["annotated",{"2":{"31":1}}],["angular",{"2":{"166":1}}],["angels",{"2":{"58":1}}],["angle",{"2":{"58":35,"150":1}}],["angles",{"0":{"56":1,"57":1},"1":{"57":1,"58":1},"2":{"0":2,"4":10,"6":10,"36":1,"56":1,"57":4,"58":42}}],["answers",{"2":{"174":1}}],["answer",{"2":{"6":3,"75":1,"77":1,"78":1,"86":1}}],["another",{"2":{"3":1,"6":1,"18":1,"69":2,"78":1,"85":1,"92":1,"95":1,"98":1,"101":1,"103":1,"104":1,"108":1,"112":1,"115":1,"116":1,"117":1,"118":1,"121":1,"123":1,"124":1,"126":1,"129":1,"132":1,"133":1,"134":1,"135":1,"139":1,"142":1,"143":1,"144":1,"145":1,"151":1,"180":1}}],["anonymous",{"2":{"1":1,"6":1,"193":1}}],["an",{"2":{"1":3,"4":11,"5":1,"6":30,"9":1,"13":1,"14":1,"18":1,"23":1,"25":1,"28":2,"37":1,"57":1,"58":4,"60":1,"61":2,"63":1,"64":3,"65":2,"67":1,"69":22,"70":2,"71":2,"73":1,"74":1,"75":2,"76":5,"77":2,"78":9,"85":3,"86":2,"87":2,"89":1,"90":1,"92":2,"93":5,"95":1,"98":2,"101":2,"108":1,"112":1,"121":13,"123":1,"124":1,"126":1,"129":1,"132":2,"133":1,"134":1,"139":1,"151":3,"152":1,"155":1,"156":1,"157":1,"158":5,"159":2,"161":2,"162":3,"164":1,"166":2,"170":1,"177":1,"180":1,"184":1,"193":2,"196":3,"197":1,"198":1,"199":1,"201":2,"202":2,"204":1,"207":1}}],["anything",{"2":{"20":1,"63":1,"121":1,"166":1}}],["any",{"2":{"1":3,"3":1,"4":2,"6":17,"23":1,"29":1,"30":1,"32":1,"34":1,"62":2,"68":1,"69":11,"71":1,"74":1,"76":1,"78":4,"87":1,"93":2,"100":2,"101":1,"104":1,"112":1,"114":2,"115":1,"116":2,"117":1,"118":2,"121":8,"124":2,"131":2,"135":1,"141":2,"151":2,"153":2,"155":1,"158":2,"159":2,"161":2,"165":1,"166":1,"170":1,"171":1,"172":3,"173":4,"176":4,"179":3,"180":2,"182":1,"184":1,"185":1,"190":1,"197":1,"206":3,"207":2}}],["and",{"0":{"1":1,"21":1,"25":1,"27":1,"29":1,"59":1,"76":1,"78":1,"87":1,"91":1,"164":1,"201":1,"202":1,"204":1},"1":{"60":1,"61":1,"92":1,"93":1},"2":{"0":2,"1":8,"3":11,"4":18,"6":81,"7":1,"9":2,"17":3,"18":5,"19":2,"20":7,"22":4,"23":4,"25":2,"27":1,"28":2,"29":3,"30":2,"31":5,"32":2,"34":2,"35":1,"36":2,"37":2,"38":1,"58":13,"60":1,"61":7,"62":2,"63":2,"64":20,"65":1,"66":2,"67":1,"68":29,"69":81,"70":2,"71":18,"73":1,"74":4,"75":4,"76":17,"77":4,"78":39,"84":1,"85":2,"86":6,"87":15,"89":2,"90":13,"92":2,"93":13,"95":3,"96":2,"98":2,"99":3,"102":3,"103":4,"104":1,"108":2,"109":2,"110":1,"113":3,"116":3,"117":1,"118":1,"121":36,"123":2,"124":3,"126":1,"129":3,"130":4,"132":2,"133":3,"134":3,"135":1,"140":2,"144":2,"145":2,"150":2,"151":16,"153":6,"155":5,"156":2,"157":3,"158":16,"159":10,"161":2,"162":3,"163":3,"164":1,"165":2,"166":14,"167":1,"168":1,"169":2,"170":1,"171":1,"172":4,"173":2,"174":1,"177":2,"178":2,"180":2,"183":1,"184":5,"185":7,"186":2,"187":1,"188":8,"190":8,"191":1,"192":1,"193":1,"196":4,"198":2,"200":3,"201":9,"202":7,"203":2,"205":5,"206":2,"207":4,"208":2}}],["nselected",{"2":{"192":3}}],["nmax",{"2":{"192":2}}],["n+1",{"2":{"169":1}}],["nfeature",{"2":{"158":1,"159":1}}],["nkeys",{"2":{"151":8}}],["nc",{"2":{"121":13}}],["ncoord",{"2":{"69":1,"90":2}}],["nl",{"2":{"121":11}}],["nhole",{"2":{"69":2,"75":2,"77":2,"86":2,"87":1,"90":2}}],["nbpts",{"2":{"69":2}}],["nb",{"2":{"69":3}}],["nice",{"2":{"69":1,"164":1,"190":1}}],["ngeom",{"2":{"68":1,"158":2,"159":1,"197":1}}],["nt",{"2":{"196":2}}],["ntasks",{"2":{"158":5,"159":5}}],["nthreads",{"2":{"158":3,"159":3}}],["nthe",{"2":{"65":1,"181":1,"184":1}}],["ntuple",{"2":{"64":3,"185":1,"198":1}}],["n2",{"2":{"64":8,"90":10}}],["n1",{"2":{"64":8,"90":9}}],["np2",{"2":{"110":4}}],["npolygon",{"2":{"76":1,"90":3,"176":2}}],["npoints",{"2":{"58":6,"69":5,"121":3,"184":6,"190":7}}],["npoint",{"2":{"6":1,"58":2,"60":1,"61":1,"69":4,"71":2,"84":2,"90":6,"93":1,"110":6,"121":6,"142":1,"150":2,"170":1,"184":3,"185":1,"188":14,"192":1,"197":13,"198":1}}],["npts",{"2":{"69":6,"190":3}}],["np",{"2":{"61":2,"93":5}}],["null",{"2":{"37":1,"184":1}}],["numeric",{"2":{"11":1}}],["numbers",{"2":{"6":1,"7":1,"62":2,"64":1,"184":1}}],["number=6",{"2":{"6":1,"187":1,"188":1}}],["number",{"2":{"6":12,"64":1,"69":3,"74":1,"80":1,"84":1,"90":2,"92":1,"121":2,"182":1,"183":1,"185":1,"188":2,"189":4,"190":7,"191":4,"192":12}}],["numverts",{"2":{"0":1,"6":1,"69":5}}],["n",{"2":{"6":3,"9":1,"62":2,"64":36,"65":2,"69":53,"74":10,"86":4,"87":4,"121":11,"142":2,"150":6,"151":5,"164":4,"169":1,"176":25,"181":2,"184":2,"185":3,"188":2,"192":7,"197":32}}],["napts",{"2":{"69":3}}],["na",{"2":{"69":3}}],["navigate",{"0":{"31":1}}],["natearth2",{"2":{"202":1}}],["natural",{"2":{"188":1,"202":2,"206":1}}],["naturalearth",{"2":{"11":2,"83":2,"188":3,"202":1}}],["nature",{"2":{"20":2,"151":1,"166":1}}],["native",{"2":{"6":1,"152":1,"196":4,"205":1}}],["nan",{"2":{"9":1}}],["named",{"2":{"158":1}}],["namedtuple",{"2":{"27":2,"158":2,"196":2}}],["name",{"2":{"6":1,"18":1,"36":2,"188":1,"196":1,"204":1,"205":2,"208":1}}],["namespaced",{"2":{"158":1}}],["names",{"2":{"6":1,"36":3,"158":3,"159":3,"196":1}}],["naive",{"2":{"6":1,"69":1,"79":1}}],["ne",{"2":{"202":2}}],["net",{"2":{"172":2}}],["nesting",{"2":{"156":2}}],["nestedloopfast",{"2":{"209":1}}],["nestedloop",{"2":{"6":1,"69":5}}],["nested",{"2":{"1":2,"4":1,"6":4,"23":1,"58":1,"69":3,"155":2,"156":2,"158":2,"159":2,"188":1,"194":1}}],["neumann",{"2":{"151":1}}],["neither",{"2":{"87":1}}],["neighborhood",{"2":{"151":2}}],["neighbor",{"2":{"69":27}}],["neighboring",{"2":{"6":6,"69":1,"188":1,"189":1,"190":1,"191":2}}],["nearly",{"2":{"205":1}}],["nearest",{"2":{"69":1,"78":2}}],["neatly",{"2":{"22":1}}],["nedge",{"2":{"69":2,"197":13}}],["never",{"2":{"69":1,"156":1,"189":1}}],["nextnode",{"2":{"151":27}}],["nextnodes",{"2":{"151":6}}],["next",{"2":{"68":1,"69":81,"71":3,"74":4,"121":14,"151":3,"176":13,"190":5}}],["necessarily",{"2":{"6":1,"150":1,"178":1}}],["necessary",{"2":{"6":1,"156":1,"162":1,"188":1}}],["newfeature",{"2":{"161":2}}],["newnodes",{"2":{"151":2}}],["new",{"2":{"6":1,"65":1,"69":58,"71":9,"75":3,"76":1,"87":16,"121":2,"151":4,"157":1,"158":22,"159":2,"172":2,"173":1,"174":1,"176":19,"185":10,"189":1,"190":2,"191":1,"203":1,"204":1,"208":1}}],["negative",{"2":{"4":3,"6":3,"60":2,"61":1,"62":2,"92":2,"93":3}}],["needs",{"2":{"18":1,"68":1,"69":1,"165":1}}],["needing",{"2":{"4":1,"6":1,"22":1,"177":1}}],["need",{"2":{"1":1,"3":1,"4":2,"5":1,"6":5,"18":1,"37":1,"64":2,"67":1,"69":4,"76":1,"84":1,"90":4,"108":1,"109":1,"121":1,"151":2,"153":1,"158":3,"159":1,"165":1,"177":1,"192":1,"193":1,"202":1,"203":2,"209":2}}],["needed",{"0":{"19":1},"2":{"1":2,"6":4,"58":1,"64":1,"69":4,"71":1,"75":1,"77":1,"86":1,"93":2,"121":5,"151":1,"158":2,"159":2,"172":1,"180":3,"203":1}}],["nomanifold",{"2":{"162":1}}],["noalgorithm",{"2":{"162":3,"165":2}}],["nodestatus",{"2":{"151":6}}],["nodes",{"2":{"69":1,"151":4}}],["node",{"2":{"69":26,"151":17}}],["north",{"2":{"71":12,"166":1}}],["nor",{"2":{"65":1,"166":1,"181":1,"184":1}}],["normalized",{"2":{"64":1}}],["normalize",{"2":{"64":1}}],["norm",{"2":{"6":1,"64":22}}],["now",{"2":{"6":2,"13":1,"30":1,"32":1,"60":1,"63":2,"64":4,"65":1,"69":6,"74":1,"80":1,"87":1,"93":1,"150":1,"151":2,"166":1,"175":1,"182":1,"183":3,"184":1,"188":1,"201":5,"202":6,"203":2,"204":1,"205":3,"207":2}}],["nonzero",{"2":{"185":2}}],["nonsensical",{"2":{"19":1}}],["none",{"2":{"6":4,"69":1,"74":1,"75":1,"77":1,"86":1,"87":1,"110":4,"112":1}}],["nondimensional",{"2":{"6":1,"184":1}}],["nonintersecting",{"2":{"6":1,"28":1,"173":1,"176":1}}],["non",{"2":{"3":2,"6":2,"27":1,"62":2,"69":15,"75":2,"76":1,"77":1,"78":4,"86":1,"87":2,"92":1,"124":2,"144":1,"156":1,"163":1}}],["note",{"2":{"4":4,"6":11,"24":1,"34":1,"58":1,"61":2,"64":1,"67":2,"68":2,"69":3,"71":1,"74":2,"76":3,"78":5,"85":1,"87":3,"90":5,"93":1,"121":1,"123":1,"124":1,"161":1,"163":1,"166":1,"180":1,"185":1,"189":1,"190":2,"191":1,"202":2,"203":1}}],["not",{"0":{"152":1},"2":{"1":2,"3":8,"4":1,"6":16,"21":1,"23":1,"24":1,"27":1,"29":1,"36":2,"58":4,"61":1,"64":4,"65":1,"67":1,"69":18,"74":1,"77":1,"78":7,"84":1,"87":3,"89":2,"90":4,"94":1,"95":2,"96":1,"98":2,"99":2,"108":1,"109":2,"113":3,"115":5,"116":3,"117":2,"118":2,"121":5,"123":1,"124":2,"129":2,"130":2,"132":1,"140":1,"150":4,"151":2,"152":1,"155":1,"156":1,"157":1,"158":7,"159":4,"161":3,"162":2,"163":1,"164":1,"165":2,"166":4,"167":1,"169":2,"172":2,"175":3,"178":1,"180":1,"181":1,"182":1,"184":2,"185":1,"195":1,"196":2,"202":1,"203":1,"206":1}}],["nothing`",{"2":{"76":2,"78":2,"87":2}}],["nothing",{"2":{"1":34,"4":1,"6":39,"15":3,"69":16,"74":1,"76":2,"77":1,"78":2,"87":2,"90":1,"121":1,"150":9,"151":3,"155":1,"158":3,"159":2,"161":3,"172":1,"181":1,"185":1,"188":2,"189":6,"190":6,"191":6,"192":1,"193":32,"197":3}}],["no",{"2":{"0":1,"6":8,"58":1,"64":2,"69":9,"75":2,"76":1,"77":3,"78":14,"86":3,"90":2,"99":3,"113":3,"121":2,"130":2,"132":1,"133":3,"134":3,"135":1,"140":2,"142":1,"144":1,"145":2,"151":2,"152":1,"153":1,"158":4,"179":1,"182":1,"184":2,"185":1,"188":1,"196":1,"205":1}}],["odd",{"2":{"121":1}}],["own",{"2":{"87":1,"153":2}}],["occur",{"2":{"78":1}}],["occurs",{"2":{"78":1}}],["occupied",{"2":{"60":1}}],["old",{"2":{"69":9,"158":3}}],["ourselves",{"2":{"184":1}}],["our",{"2":{"29":1,"184":1,"201":4,"202":3,"207":1}}],["out=3",{"2":{"121":1}}],["out=4",{"2":{"77":1}}],["out`",{"2":{"77":1,"121":1}}],["out",{"2":{"6":3,"69":12,"71":23,"78":6,"85":1,"87":4,"92":5,"99":4,"110":1,"113":3,"121":102,"124":2,"130":4,"140":4,"150":1,"158":1,"185":1,"196":2,"198":3}}],["outside",{"2":{"3":2,"4":1,"6":3,"69":3,"71":1,"76":2,"78":4,"87":3,"92":2,"93":1,"98":1,"109":1,"112":1,"121":12,"124":3,"135":1}}],["outputs",{"2":{"69":1}}],["output",{"2":{"3":8,"4":1,"6":18,"23":1,"28":1,"74":2,"75":1,"77":1,"78":1,"86":1,"87":2,"90":1,"96":1,"99":1,"109":1,"113":1,"124":1,"127":1,"130":1,"140":1,"150":2,"188":1,"192":1,"197":1}}],["outerjoin",{"2":{"206":1}}],["outermost",{"2":{"158":1}}],["outer",{"2":{"1":1,"155":1,"156":1,"158":2,"207":1}}],["o",{"2":{"6":2,"69":2,"159":24}}],["omit",{"2":{"6":1,"184":1}}],["obtain",{"2":{"158":1}}],["obtained",{"2":{"28":1}}],["observable",{"2":{"14":2}}],["obs",{"2":{"14":10}}],["obviously",{"2":{"4":1,"6":1,"177":1}}],["objects",{"2":{"1":4,"4":1,"6":11,"69":1,"155":4,"156":5,"158":4,"159":1,"161":6,"177":1,"182":1,"188":2,"194":1,"198":1}}],["object",{"2":{"1":4,"4":1,"5":1,"6":6,"25":1,"64":1,"69":3,"92":1,"121":4,"155":1,"156":5,"158":1,"161":4,"177":1,"180":3,"184":1,"188":1,"194":1}}],["obj",{"2":{"1":4,"4":1,"6":10,"155":2,"158":1,"159":1,"161":13,"177":1,"178":2,"184":3,"188":3,"193":1,"194":1}}],["others",{"2":{"65":1,"176":1}}],["otherwise",{"2":{"4":2,"6":3,"65":1,"69":1,"76":1,"78":1,"93":2,"151":1,"166":1,"178":1,"181":1,"184":1,"197":1}}],["other",{"0":{"4":1,"6":1,"161":1},"2":{"3":4,"6":10,"58":1,"69":5,"75":1,"77":1,"78":1,"80":2,"86":2,"87":3,"90":2,"93":2,"95":1,"101":1,"121":8,"123":1,"124":4,"126":1,"132":1,"139":2,"140":2,"143":1,"151":1,"156":1,"158":1,"161":2,"167":1,"173":2,"174":1,"176":2,"188":2,"190":2,"195":1,"196":1,"202":1,"206":4,"209":1}}],["ogc",{"0":{"3":1}}],["overloads",{"2":{"165":1}}],["overlapping",{"2":{"69":14,"78":4,"87":6}}],["overlap",{"2":{"3":4,"6":4,"9":1,"69":4,"78":8,"87":2,"99":1,"108":1,"121":2,"123":5,"124":6,"130":1,"174":1}}],["overlaps",{"0":{"51":1,"122":1,"123":1},"1":{"123":1,"124":1},"2":{"0":10,"3":5,"6":13,"36":1,"51":2,"78":1,"122":1,"123":3,"124":30,"151":1,"206":1}}],["over=3",{"2":{"77":1}}],["over`",{"2":{"77":1}}],["overflow",{"2":{"74":1}}],["overhead",{"2":{"27":1,"69":1,"158":2,"159":2}}],["overrides",{"0":{"38":1},"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,"51":1,"52":1,"53":1,"54":1,"55":1},"2":{"38":1}}],["override",{"2":{"6":1,"64":1}}],["over",{"2":{"1":1,"6":2,"36":1,"60":2,"61":1,"68":3,"69":8,"71":1,"77":1,"78":11,"84":1,"87":1,"99":1,"110":1,"113":1,"121":15,"124":2,"130":1,"140":1,"155":1,"158":11,"159":13,"161":3,"201":3}}],["opposed",{"2":{"199":1}}],["opposite",{"2":{"3":5,"6":5,"69":2,"76":1,"78":2,"87":2,"96":2,"99":1,"109":2,"127":2,"130":1}}],["ops",{"2":{"159":1}}],["operable",{"2":{"166":1}}],["operate",{"2":{"23":1,"34":1,"159":1}}],["operates",{"2":{"6":1,"69":1,"158":1,"159":1,"168":1,"174":1}}],["operations",{"0":{"28":1,"39":1,"165":1},"1":{"40":1,"41":1,"42":1,"43":1},"2":{"20":1,"28":1,"31":1,"78":1,"87":1,"153":1,"165":4}}],["operation",{"2":{"6":3,"21":1,"69":1,"153":1,"159":1,"162":2,"165":5,"166":4,"173":2,"176":2,"196":2,"206":1}}],["open",{"2":{"69":1,"169":1,"202":1}}],["open>",{"2":{"6":2}}],["options",{"2":{"14":1,"69":1}}],["optional",{"2":{"4":5,"6":6,"58":1,"61":2,"71":1,"93":2}}],["optimisation",{"2":{"121":1}}],["optimise",{"2":{"110":1}}],["optimize",{"2":{"0":1,"6":1,"69":6}}],["optimal",{"2":{"6":1,"85":1}}],["op",{"2":{"1":3,"24":2,"68":1,"155":3,"159":38,"165":2}}],["on=2",{"2":{"121":1}}],["on`",{"2":{"121":1}}],["onto",{"2":{"93":1}}],["once",{"2":{"69":1,"110":1,"124":1,"151":1}}],["ones",{"2":{"175":1}}],["oneunit",{"2":{"64":1}}],["one",{"2":{"1":1,"3":9,"6":14,"18":2,"28":1,"58":4,"61":2,"63":1,"64":1,"68":1,"69":5,"71":3,"75":1,"76":1,"77":1,"78":32,"80":1,"86":2,"87":2,"92":2,"98":1,"105":1,"110":1,"112":1,"121":18,"123":1,"124":18,"129":1,"130":1,"136":1,"139":2,"140":2,"143":3,"144":2,"145":2,"146":1,"147":1,"150":1,"151":5,"158":1,"162":1,"166":2,"175":1,"180":1,"184":1,"192":1,"193":1,"202":1,"206":1}}],["on",{"0":{"202":1},"2":{"1":2,"4":3,"6":13,"9":1,"18":2,"19":2,"20":2,"21":2,"23":1,"25":1,"28":2,"30":3,"32":3,"34":2,"37":1,"58":5,"61":3,"63":1,"64":2,"68":3,"69":55,"71":8,"74":1,"75":1,"76":5,"77":1,"78":4,"85":1,"86":1,"87":2,"90":2,"92":1,"93":3,"98":1,"99":7,"101":2,"102":3,"103":3,"104":1,"110":4,"113":6,"115":4,"116":1,"117":1,"121":125,"124":9,"130":7,"132":2,"133":1,"134":1,"140":7,"142":2,"151":3,"153":1,"155":2,"158":13,"159":4,"161":2,"162":2,"163":2,"165":3,"166":7,"168":1,"170":1,"173":1,"174":1,"179":3,"182":1,"184":1,"185":1,"190":1,"198":1,"199":1,"200":1,"202":3,"203":1,"205":1,"206":4,"207":1,"208":2,"209":2}}],["only",{"2":{"0":1,"5":1,"6":11,"28":1,"38":2,"61":2,"63":2,"64":1,"65":1,"68":2,"69":7,"71":3,"74":1,"75":1,"77":1,"78":1,"85":3,"86":1,"90":3,"93":2,"123":3,"124":1,"139":1,"151":2,"158":1,"159":2,"162":2,"164":1,"165":1,"166":3,"175":1,"182":1,"183":1,"185":1,"195":1,"196":2,"198":2,"203":1,"208":1,"209":1}}],["often",{"2":{"19":1,"202":1}}],["offers",{"2":{"201":1}}],["offer",{"2":{"184":1}}],["offset",{"2":{"58":8,"90":1}}],["off",{"2":{"4":1,"6":1,"69":4,"90":1,"121":6,"159":1}}],["of",{"0":{"83":1},"2":{"1":7,"3":29,"4":66,"5":5,"6":199,"7":2,"9":4,"17":3,"18":6,"19":2,"20":4,"21":2,"22":3,"23":5,"24":1,"25":2,"27":1,"28":2,"29":2,"30":1,"31":1,"32":1,"34":3,"37":2,"57":1,"58":38,"60":5,"61":28,"62":9,"63":1,"64":13,"65":1,"67":3,"68":12,"69":101,"70":5,"71":31,"74":5,"75":12,"76":13,"77":10,"78":48,"80":5,"84":3,"85":3,"86":9,"87":21,"89":2,"90":19,"92":6,"93":18,"95":4,"96":5,"98":6,"99":18,"101":1,"102":5,"103":5,"104":1,"105":2,"106":1,"109":5,"110":1,"112":3,"113":14,"115":1,"116":1,"117":1,"119":2,"120":1,"121":85,"123":1,"124":13,"126":1,"127":3,"129":4,"130":18,"132":3,"133":6,"134":6,"135":4,"136":1,"137":1,"139":2,"140":15,"142":3,"143":7,"144":5,"145":1,"146":2,"147":1,"149":2,"150":3,"151":19,"152":2,"153":3,"155":6,"156":5,"157":2,"158":21,"159":7,"161":3,"162":1,"164":1,"166":6,"167":2,"168":1,"169":1,"173":2,"174":4,"176":4,"178":3,"179":3,"180":1,"182":2,"183":2,"184":5,"185":6,"188":8,"190":4,"191":2,"192":1,"194":1,"196":4,"197":2,"198":4,"201":6,"202":4,"203":2,"204":1,"205":4,"206":4,"207":4,"208":2}}],["org",{"2":{"75":1,"77":1,"86":1,"121":2,"190":1}}],["organise",{"2":{"10":1}}],["orange",{"2":{"73":1,"89":2,"92":1,"95":2,"112":2,"123":2,"129":2}}],["oro",{"2":{"11":2}}],["originate",{"2":{"87":1}}],["originals",{"2":{"27":1}}],["original",{"2":{"6":4,"23":1,"27":1,"69":10,"74":5,"75":1,"77":1,"87":4,"156":1,"158":7,"172":1,"178":2,"185":1,"187":4,"188":1}}],["orig",{"2":{"69":15}}],["orient",{"0":{"13":1},"1":{"14":1,"15":1},"2":{"13":7,"14":12,"69":15,"78":53}}],["orientation",{"0":{"148":1},"1":{"149":1,"150":1},"2":{"6":2,"10":1,"36":1,"61":1,"69":10,"71":2,"75":1,"77":2,"78":2,"86":1,"121":16,"149":1,"188":1}}],["ordered",{"2":{"60":1}}],["order",{"0":{"84":1},"2":{"1":4,"3":1,"4":2,"6":5,"20":1,"58":1,"60":1,"61":2,"64":1,"69":10,"78":1,"84":4,"85":1,"87":1,"90":3,"93":2,"96":1,"99":1,"109":1,"127":1,"155":2,"158":1,"159":1,"180":2,"188":1,"206":1}}],["or",{"0":{"29":1},"2":{"1":11,"3":3,"4":10,"6":50,"20":3,"21":1,"23":1,"25":1,"27":1,"28":1,"30":1,"32":1,"34":2,"36":2,"37":1,"58":4,"61":1,"64":1,"65":1,"67":2,"68":4,"69":29,"70":1,"74":1,"75":1,"76":3,"77":2,"78":9,"80":1,"85":1,"86":1,"87":2,"90":3,"92":2,"93":4,"95":1,"99":1,"101":2,"102":1,"103":1,"104":1,"105":1,"106":1,"112":2,"115":2,"116":3,"117":2,"118":1,"119":1,"120":1,"121":26,"123":1,"124":2,"126":2,"127":1,"130":1,"132":2,"136":1,"137":1,"139":1,"140":1,"146":1,"147":1,"149":2,"150":3,"151":7,"153":4,"155":7,"157":1,"158":8,"159":3,"160":2,"161":2,"162":5,"163":1,"165":4,"166":5,"167":3,"168":1,"170":1,"172":5,"173":2,"179":4,"180":2,"181":1,"182":2,"184":2,"185":4,"186":1,"188":3,"190":2,"192":2,"194":1,"197":2,"206":1,"208":2}}],["sd1xa",{"2":{"202":1}}],["snapped",{"2":{"151":1}}],["s3",{"2":{"69":3}}],["scratch",{"2":{"205":1}}],["sciences",{"2":{"202":1}}],["scalefactor",{"2":{"184":3}}],["scattered",{"2":{"207":1}}],["scatter",{"2":{"67":1,"89":2,"92":2,"95":2,"98":1,"108":1,"112":2,"123":2,"129":2,"207":1}}],["schema",{"2":{"158":5,"159":1}}],["scheme",{"2":{"68":1}}],["scenario",{"2":{"121":2}}],["scene",{"2":{"14":1}}],["skipmissing",{"2":{"151":1}}],["skipped",{"2":{"69":1,"151":1}}],["skip",{"2":{"61":1,"69":1,"121":14,"151":1,"158":1,"162":1,"192":4}}],["skygering",{"2":{"7":1}}],["square",{"2":{"93":1,"189":1,"190":1}}],["squared",{"2":{"6":2,"71":2,"93":12,"189":2,"190":7}}],["sqrt",{"2":{"58":2,"68":1,"93":3}}],["sgn",{"2":{"58":5}}],["smallest",{"2":{"58":2,"78":1,"80":1}}],["sᵢ₋₁",{"2":{"64":25}}],["sᵢ₊₁",{"2":{"6":2,"64":41}}],["sᵢ",{"2":{"6":4,"64":46}}],["src",{"2":{"6":2}}],["syntax",{"2":{"204":1}}],["sym10100477",{"2":{"121":1}}],["symdifference",{"2":{"43":1,"152":1}}],["symmetric",{"0":{"43":1},"2":{"43":1}}],["symbol=",{"2":{"110":1}}],["symbol",{"2":{"6":1,"196":2}}],["systems",{"2":{"20":2}}],["system",{"0":{"202":1,"203":1},"2":{"1":2,"20":4,"180":2,"200":2,"202":1}}],["switches",{"2":{"78":1,"87":1}}],["switch",{"2":{"69":1,"87":1,"163":1}}],["switching",{"2":{"6":1,"71":1}}],["swap",{"2":{"6":1,"87":1,"93":2,"178":1}}],["swapped",{"2":{"3":1,"6":1,"96":1,"99":1,"109":1,"110":1,"124":1,"127":1}}],["swapping",{"2":{"1":1,"155":1,"158":1}}],["s2",{"2":{"6":4,"64":6,"69":4}}],["s1",{"2":{"6":3,"64":6,"69":3}}],["saving",{"0":{"205":1}}],["saved",{"2":{"90":1}}],["save",{"2":{"58":1,"200":1,"205":3}}],["samples",{"2":{"13":1}}],["sample",{"2":{"13":1}}],["same",{"2":{"3":2,"4":12,"6":22,"23":1,"58":3,"61":1,"69":16,"71":1,"74":1,"75":3,"77":1,"78":1,"84":1,"86":1,"87":1,"89":2,"90":30,"92":1,"121":2,"123":1,"124":8,"156":1,"158":5,"161":2,"168":1,"173":2,"175":1,"176":2,"183":1,"201":1,"202":1,"205":1}}],["says",{"2":{"84":1,"166":1}}],["say",{"2":{"6":1,"64":1,"184":1}}],["spliced",{"2":{"160":1}}],["split",{"2":{"74":1}}],["sp",{"2":{"121":2}}],["sphere",{"2":{"6":1,"17":1,"18":4,"19":1,"21":1,"69":1,"166":3,"185":1}}],["sphericalgeodesics",{"2":{"18":1,"166":1}}],["spherical",{"2":{"6":1,"18":2,"36":2,"69":5,"162":1,"166":8,"185":1}}],["spatial",{"0":{"206":1},"1":{"207":1,"208":1,"209":1},"2":{"206":6,"207":3,"209":1}}],["spawn",{"2":{"158":5,"159":5}}],["sparse",{"2":{"69":1}}],["span>",{"2":{"6":2}}],["span",{"2":{"6":2,"207":1}}],["spaces",{"2":{"17":1}}],["space",{"2":{"6":1,"17":2,"18":1,"30":1,"32":1,"58":1,"60":1,"121":1,"166":7,"184":1}}],["spec",{"2":{"166":1}}],["specify",{"2":{"161":2,"164":1,"202":1,"203":1,"206":1}}],["specific",{"2":{"69":1,"99":1,"113":1,"130":1,"140":1,"158":1,"159":1,"161":3,"164":1,"166":2}}],["specification",{"2":{"18":1,"165":1,"169":1,"172":1,"174":1,"175":1}}],["specifically",{"2":{"6":2,"64":3,"69":1,"163":1,"166":1,"186":1,"206":1}}],["specified",{"2":{"3":1,"6":2,"69":1,"76":2,"78":2,"87":2,"124":1,"156":1,"162":1,"166":1,"188":1}}],["special",{"2":{"69":1,"166":2}}],["specialized",{"2":{"30":1,"32":1,"85":1,"158":1}}],["speed",{"2":{"6":1,"69":1}}],["slow",{"2":{"208":1}}],["slower",{"2":{"6":1,"196":2}}],["slope2",{"2":{"150":2}}],["slope1",{"2":{"150":2}}],["slidergrid",{"2":{"14":1}}],["sliders",{"2":{"14":3}}],["slightly",{"2":{"4":2,"6":2,"61":2}}],["suite",{"2":{"184":5,"188":13}}],["suitable",{"2":{"69":1}}],["suggestion",{"2":{"181":1}}],["suggests",{"2":{"18":1}}],["success",{"2":{"166":1}}],["successful",{"2":{"162":1}}],["such",{"2":{"4":1,"6":1,"19":1,"60":1,"73":1,"80":1,"156":1,"177":1}}],["sun",{"2":{"121":1}}],["suppose",{"2":{"208":1,"209":1}}],["supports",{"2":{"63":1,"64":1,"80":1,"158":3,"205":1,"209":2}}],["support",{"2":{"37":1,"65":1,"69":1,"182":1,"209":1}}],["supported",{"2":{"28":1,"205":1}}],["supertype",{"2":{"6":2,"64":1,"69":1}}],["surrounds",{"2":{"121":1}}],["surface",{"2":{"17":1,"18":2,"20":1}}],["sure",{"2":{"9":1,"58":1,"69":2,"93":1,"124":1,"192":1}}],["sukumar",{"2":{"6":1,"64":1}}],["sum=1",{"2":{"64":1}}],["summary>",{"2":{"6":4}}],["sum",{"2":{"4":2,"6":3,"11":6,"60":1,"61":2,"62":2,"64":8,"71":1,"93":2,"150":5,"192":1,"197":4}}],["sublevel",{"2":{"208":1}}],["subsequent",{"2":{"201":1}}],["substantially",{"2":{"164":1}}],["substituted",{"2":{"1":1,"155":1,"158":1}}],["subgeom1",{"2":{"161":2}}],["subgeom",{"2":{"161":3}}],["subject",{"2":{"69":1}}],["subtype",{"2":{"158":1}}],["subtypes",{"2":{"6":2,"64":2}}],["subtracted",{"2":{"150":1}}],["subtitle",{"2":{"13":1,"63":2,"184":1,"188":2}}],["sub",{"2":{"4":6,"6":7,"58":1,"61":3,"71":1,"76":6,"78":3,"87":4,"93":2,"105":2,"106":2,"119":2,"120":2,"136":2,"137":2,"146":2,"147":2,"158":3,"174":4,"175":2,"176":4}}],["series",{"2":{"201":1}}],["serve",{"2":{"6":1,"64":1}}],["searchsortedfirst",{"2":{"190":1}}],["semiminor",{"2":{"166":1}}],["semimajoraxisinvflattening",{"2":{"166":1}}],["semimajor",{"2":{"18":1,"166":5}}],["seg2",{"2":{"150":2}}],["seg1",{"2":{"150":3}}],["seg",{"2":{"121":23,"124":9}}],["segmentation",{"2":{"183":1}}],["segments",{"2":{"28":1,"36":1,"57":2,"58":1,"67":1,"68":2,"69":3,"71":1,"78":6,"121":18,"184":1,"185":3}}],["segmentization",{"2":{"37":1,"166":1,"182":1}}],["segmentizing",{"2":{"6":3,"183":1,"184":2,"185":1}}],["segmentizemethod",{"2":{"184":3,"185":1}}],["segmentized",{"2":{"183":1}}],["segmentizes",{"2":{"182":1}}],["segmentize",{"0":{"37":1,"182":1},"1":{"183":1,"184":1,"185":1},"2":{"0":1,"6":4,"36":1,"37":9,"65":1,"153":1,"166":1,"182":1,"183":5,"184":11,"185":18,"199":1}}],["segment",{"2":{"4":4,"6":7,"58":1,"68":5,"69":6,"71":3,"73":1,"78":17,"93":2,"110":3,"121":43,"124":3,"150":2,"182":1,"184":2,"185":1}}],["seperate",{"2":{"78":1}}],["separates",{"2":{"121":1}}],["separate",{"2":{"69":1,"151":1,"158":1,"163":1,"205":1,"207":1}}],["separately",{"2":{"64":1,"151":1}}],["sense",{"2":{"61":1,"93":1}}],["several",{"2":{"25":2,"61":1,"168":1,"176":1}}],["select",{"2":{"167":1}}],["selects",{"2":{"166":2}}],["selected",{"2":{"151":1}}],["selectednode",{"2":{"151":3}}],["selection",{"2":{"14":1}}],["self",{"2":{"9":2}}],["section",{"2":{"31":1,"121":3,"123":1}}],["sections",{"2":{"10":1,"31":1}}],["seconds=1",{"2":{"184":3,"188":8}}],["secondisleft",{"2":{"151":4}}],["secondisstraight",{"2":{"151":7}}],["secondary",{"2":{"3":3,"6":3,"96":1,"99":1,"130":1}}],["second",{"2":{"3":8,"6":9,"69":1,"78":4,"90":1,"95":2,"96":1,"98":1,"99":1,"102":1,"103":1,"104":1,"109":2,"113":2,"121":2,"129":1,"130":1,"133":1,"134":1,"135":2,"140":1,"190":1,"203":1,"206":1}}],["seem",{"2":{"30":1,"32":1}}],["sees",{"2":{"20":1}}],["see",{"2":{"6":4,"7":1,"20":1,"34":1,"67":1,"85":1,"89":1,"93":1,"95":1,"98":1,"112":1,"121":5,"123":1,"126":1,"129":1,"139":1,"151":2,"165":1,"169":1,"170":1,"172":1,"173":3,"175":1,"176":2,"183":2,"190":1,"207":2}}],["setup=",{"2":{"99":1,"113":1,"130":1,"140":1}}],["sets",{"2":{"69":1,"84":1}}],["setting",{"2":{"28":1}}],["set",{"0":{"28":1,"39":1},"1":{"40":1,"41":1,"42":1,"43":1},"2":{"3":2,"4":7,"6":20,"28":1,"58":1,"62":2,"64":8,"69":3,"75":2,"77":2,"78":7,"80":2,"86":2,"89":2,"90":10,"99":1,"110":1,"113":1,"121":2,"124":1,"130":1,"140":1,"150":1,"151":1,"158":5,"165":1,"173":2,"176":2,"179":1,"190":2,"201":1,"205":1,"207":3}}],["sve",{"2":{"1":1,"6":1,"193":1}}],["svector",{"2":{"1":14,"6":14,"69":7,"75":1,"78":2,"87":6,"121":1,"151":1,"193":13,"198":1}}],["solution",{"2":{"121":1}}],["solve",{"2":{"19":1}}],["south",{"2":{"71":7,"166":1}}],["source",{"2":{"1":10,"3":19,"4":22,"5":3,"6":92,"31":4,"110":2,"155":2,"161":4,"172":1,"173":4,"180":3,"202":13,"203":1}}],["sort",{"2":{"69":5,"74":2,"78":2,"86":2,"121":1,"124":2,"151":1,"190":1}}],["sorttilerecursivetree",{"2":{"36":3,"69":2}}],["sorted",{"2":{"25":1,"69":2,"190":7,"206":1}}],["sometimes",{"2":{"165":1}}],["something",{"0":{"79":1},"2":{"10":1,"36":1}}],["someone",{"2":{"85":1,"196":1}}],["some",{"2":{"3":1,"6":5,"9":1,"17":1,"22":1,"64":4,"69":1,"90":1,"121":3,"124":1,"151":1,"152":1,"153":1,"156":2,"158":2,"159":1,"162":1,"165":2,"171":1,"172":2,"173":1,"185":1,"192":1,"195":2,"198":1,"200":2,"206":1,"209":1}}],["so",{"2":{"1":1,"4":4,"6":9,"9":1,"22":1,"24":1,"30":1,"32":1,"36":1,"63":1,"64":1,"69":4,"70":1,"78":1,"86":2,"87":2,"89":1,"90":4,"92":1,"93":1,"95":1,"112":1,"121":2,"126":1,"129":1,"151":3,"158":10,"161":2,"165":1,"182":1,"183":1,"184":3,"185":1,"192":1,"193":1,"196":2,"202":1,"203":1}}],["styles",{"2":{"158":1}}],["style",{"2":{"158":7}}],["step",{"2":{"69":7,"75":1,"76":3,"77":1,"78":3,"86":1,"87":3,"151":6,"197":1}}],["storing",{"2":{"205":1}}],["stored",{"2":{"69":2,"165":1,"207":1}}],["stores",{"2":{"69":2}}],["store",{"2":{"64":1,"205":1}}],["stopping",{"2":{"190":2}}],["stops",{"2":{"156":1}}],["stop",{"2":{"23":2,"110":3,"121":4,"124":3}}],["stubs",{"2":{"36":1}}],["stay",{"2":{"87":1}}],["stackoverflow",{"2":{"78":1}}],["stack",{"2":{"74":1}}],["states",{"2":{"188":1}}],["state",{"2":{"86":1,"208":9}}],["status",{"2":{"69":31,"76":4,"78":5,"87":4,"151":1}}],["static",{"2":{"162":1,"163":1}}],["staticarray",{"2":{"64":1}}],["staticarrays",{"2":{"36":1,"69":5,"75":1,"78":2,"87":6,"121":1,"151":1,"193":2}}],["staticarraysco",{"2":{"1":1,"6":1,"193":1}}],["staticarrayscore",{"2":{"1":10,"6":10,"64":1,"193":10}}],["statica",{"2":{"1":1,"6":1,"193":1}}],["statistics",{"2":{"13":2,"36":1}}],["stability",{"2":{"28":1,"35":1}}],["stabletasks",{"2":{"158":1,"159":1,"163":1}}],["stable",{"2":{"13":1,"29":1,"185":1}}],["stage",{"2":{"7":1}}],["standardized",{"2":{"121":1}}],["standards",{"2":{"121":1}}],["standard",{"2":{"6":1,"85":1,"166":1}}],["started",{"2":{"69":1}}],["starting",{"2":{"68":2,"69":1,"71":1,"78":1,"176":4}}],["startvalue",{"2":{"14":4}}],["start",{"2":{"6":1,"23":1,"58":7,"64":1,"69":78,"71":17,"76":4,"78":4,"87":5,"90":1,"110":4,"121":44,"124":3,"132":1,"151":2,"168":1,"190":16,"201":1}}],["strait",{"2":{"151":1}}],["straightline",{"2":{"151":3}}],["straight",{"2":{"18":1,"151":6,"159":1}}],["strdualquery",{"2":{"36":1,"69":2}}],["structs",{"2":{"25":1,"165":1,"172":1}}],["structures",{"2":{"153":1}}],["structure",{"2":{"6":1,"153":1,"161":2,"178":1}}],["struct",{"2":{"6":2,"20":1,"64":2,"69":8,"85":1,"162":4,"163":6,"164":1,"165":1,"166":5,"167":3,"170":1,"176":2,"184":2,"189":1,"190":1,"191":1,"196":4}}],["strtrees",{"2":{"6":1,"36":1,"69":5}}],["strtree",{"2":{"6":2,"36":1,"69":9}}],["strings",{"2":{"6":1,"68":1,"78":1}}],["string",{"2":{"1":2,"14":1,"67":1,"68":1,"162":2,"164":1,"180":2}}],["still",{"2":{"0":1,"61":1,"68":1,"69":3,"98":1,"190":1}}],["shp",{"2":{"205":1}}],["ships",{"2":{"202":1}}],["shifting",{"2":{"203":1}}],["shift",{"2":{"201":3}}],["shewchuck",{"2":{"7":1}}],["short",{"2":{"158":1}}],["shorthand",{"2":{"85":1}}],["shortest",{"2":{"18":1}}],["showerror",{"2":{"69":1,"164":1}}],["show",{"2":{"9":1,"11":1,"13":1,"14":1,"63":1,"164":2,"202":1,"205":1,"206":2}}],["shoelace",{"2":{"4":1,"6":1,"61":2,"71":1}}],["shouldn",{"2":{"78":1}}],["should",{"2":{"1":1,"4":1,"6":14,"22":1,"23":1,"25":2,"30":1,"32":1,"37":1,"58":3,"61":1,"68":1,"69":7,"70":1,"90":1,"121":4,"151":2,"155":1,"158":2,"161":2,"162":1,"163":1,"166":3,"169":1,"172":4,"173":2,"185":2,"188":2}}],["sharing",{"2":{"112":1}}],["shares",{"2":{"78":1}}],["share",{"2":{"4":7,"6":8,"89":2,"90":8,"116":2,"117":1,"118":1,"124":1,"145":1}}],["shared",{"0":{"192":1},"2":{"3":1,"6":1,"69":2,"78":2,"124":3}}],["shapes",{"2":{"93":1,"205":7}}],["shaped",{"2":{"63":1}}],["shapefiles",{"2":{"205":1}}],["shapefile",{"2":{"34":1,"205":4}}],["shape",{"2":{"18":1,"67":1,"76":1,"78":1,"89":1,"166":1,"175":1,"201":1}}],["shallower",{"2":{"1":1,"155":1,"158":1}}],["sites",{"2":{"208":1}}],["sides",{"2":{"69":3,"169":1}}],["side",{"2":{"58":4,"69":26}}],["signals",{"2":{"157":1}}],["sign",{"2":{"13":2,"14":2,"58":7,"61":2,"150":3}}],["signed",{"0":{"59":1,"60":1,"91":1,"92":1},"1":{"60":1,"61":1,"92":1,"93":1},"2":{"0":4,"4":15,"6":18,"11":3,"59":1,"60":5,"61":23,"71":3,"91":1,"92":7,"93":19}}],["six",{"2":{"6":1,"188":1}}],["size=",{"2":{"202":1}}],["sizehint",{"2":{"69":2,"76":1,"185":1}}],["size",{"2":{"6":5,"13":2,"14":5,"63":1,"69":1,"87":1,"151":2,"158":4,"159":4,"188":1}}],["sin",{"2":{"201":3,"202":1,"203":2}}],["singed",{"2":{"93":1}}],["singular",{"2":{"78":1}}],["singlepoly",{"2":{"188":6}}],["singleton",{"2":{"165":1}}],["singlemanifoldalgorithm",{"2":{"162":3}}],["singlestrtree",{"2":{"6":1,"69":3}}],["single",{"2":{"4":6,"6":11,"28":1,"58":2,"61":1,"69":1,"71":1,"90":5,"123":2,"151":2,"159":1,"173":2,"174":1,"176":2,"201":3,"205":1}}],["since",{"2":{"1":1,"6":2,"31":1,"58":1,"61":1,"68":1,"69":2,"71":2,"86":1,"90":1,"93":1,"121":1,"124":2,"144":1,"158":1,"161":1,"163":1,"165":1,"180":1,"196":2,"208":1}}],["simulation",{"2":{"28":1}}],["simultaneously",{"2":{"25":1}}],["simultaneous",{"2":{"6":1,"69":1}}],["simply",{"2":{"7":1,"60":1,"65":1,"69":1,"78":1,"87":1,"96":1,"109":1,"127":1,"151":1,"171":1,"179":1,"180":1,"181":1,"184":1,"201":1,"204":1}}],["simpler",{"2":{"6":1,"151":1}}],["simple",{"0":{"38":1,"82":1,"207":1},"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,"51":1,"52":1,"53":1,"54":1,"55":1},"2":{"6":3,"38":1,"64":1,"69":1,"85":1,"153":3,"163":1,"166":1,"178":1,"180":1,"187":2,"188":2}}],["simplifier",{"2":{"188":4}}],["simplified",{"2":{"28":1,"187":1}}],["simplifies",{"2":{"6":3,"189":1,"190":1,"191":1}}],["simplification",{"0":{"186":1},"1":{"187":1,"188":1},"2":{"6":2,"162":1,"186":2,"188":3}}],["simplifying",{"2":{"186":1}}],["simplify",{"0":{"189":1,"190":1,"191":1},"2":{"0":1,"6":15,"9":1,"36":1,"69":1,"153":1,"187":1,"188":41,"189":1,"190":2,"191":1}}],["simplifyalgs",{"2":{"192":1}}],["simplifyalg",{"2":{"0":1,"6":8,"188":5,"189":2,"190":2,"191":2}}],["similarly",{"2":{"153":1}}],["similar",{"2":{"1":1,"6":3,"18":1,"23":1,"30":1,"32":1,"34":1,"65":1,"80":1,"85":1,"151":2,"155":1,"158":1,"184":2,"185":1,"194":1}}],["s",{"0":{"35":1},"2":{"0":1,"3":1,"6":11,"7":1,"9":1,"18":1,"20":4,"21":1,"23":1,"24":1,"34":1,"58":1,"60":1,"61":4,"62":1,"63":2,"64":5,"67":3,"68":3,"69":4,"71":1,"73":1,"76":1,"78":2,"84":1,"87":3,"90":1,"93":1,"108":2,"115":3,"116":4,"117":2,"121":9,"124":1,"139":1,"140":1,"145":1,"151":5,"153":2,"158":2,"159":1,"162":1,"163":2,"164":1,"165":1,"166":1,"167":2,"170":1,"173":4,"174":1,"176":3,"183":4,"184":1,"185":2,"186":1,"188":2,"192":4,"196":6,"201":6,"202":4,"203":4,"204":2,"205":5,"209":2}}],["fn",{"2":{"205":8}}],["f``",{"2":{"166":1}}],["fc",{"2":{"158":4,"159":5,"161":13,"188":3,"197":14}}],["fj",{"2":{"151":2}}],["f2",{"2":{"69":2}}],["f1",{"2":{"69":2}}],["f64",{"2":{"13":2,"14":2}}],["few",{"2":{"69":1,"164":1,"169":1}}],["fetched",{"2":{"151":1}}],["fetch",{"2":{"37":2,"158":2,"159":2}}],["feb",{"0":{"8":1},"1":{"9":1,"10":1}}],["featurecollection",{"2":{"6":2,"11":1,"23":1,"151":4,"158":6,"161":1,"202":2}}],["featurecollectiontrait",{"2":{"1":1,"155":1,"156":1,"158":3,"159":2,"161":10,"197":5}}],["features",{"0":{"100":1,"114":1,"131":1,"141":1},"2":{"1":1,"6":2,"11":1,"27":1,"85":1,"151":3,"155":1,"157":1,"158":11,"159":6,"161":2,"202":1}}],["featuretrait",{"2":{"1":2,"100":4,"110":2,"114":4,"131":4,"141":4,"155":2,"156":3,"158":3,"159":3,"161":10,"197":5}}],["feature",{"2":{"1":6,"4":1,"6":6,"23":2,"27":1,"61":1,"71":1,"151":2,"153":1,"155":6,"157":1,"158":22,"159":6,"161":22,"179":3,"188":2,"197":2,"205":1}}],["fra",{"2":{"208":2}}],["frame",{"2":{"204":1}}],["framework",{"2":{"153":4,"159":2}}],["fracs",{"2":{"69":20,"74":1}}],["frac",{"2":{"64":1,"69":2,"78":17,"188":2}}],["fractional",{"2":{"69":1,"78":3}}],["fractions",{"2":{"69":1,"78":4}}],["fraction",{"2":{"6":4,"78":2,"93":1,"188":1}}],["front",{"2":{"58":1}}],["from",{"2":{"1":3,"3":4,"4":16,"6":26,"7":1,"11":1,"18":2,"20":1,"25":1,"27":1,"31":1,"36":2,"61":2,"63":1,"64":4,"65":1,"68":1,"69":7,"71":11,"74":1,"75":1,"76":3,"77":1,"78":11,"85":1,"86":1,"87":6,"93":25,"113":2,"115":5,"116":4,"117":2,"118":1,"119":2,"121":6,"124":2,"150":2,"151":7,"158":1,"161":6,"162":1,"163":1,"166":2,"176":1,"180":4,"182":1,"188":1,"189":1,"190":3,"191":1,"197":1,"200":1,"202":5,"205":1,"206":1,"207":1,"209":1}}],["fi",{"2":{"69":4,"151":2}}],["fill",{"2":{"69":1,"151":1,"185":3}}],["filled",{"2":{"69":5,"71":3,"92":1,"93":2,"121":16}}],["files",{"2":{"195":1,"205":2}}],["file",{"2":{"31":1,"37":1,"38":1,"69":2,"99":3,"113":3,"130":3,"140":3,"151":1,"152":1,"153":1,"159":1,"160":1,"161":1,"164":1,"171":1,"180":1,"185":1,"186":1,"195":2,"200":1,"205":2}}],["filters",{"2":{"69":1}}],["filtering",{"2":{"6":1,"188":1}}],["filter",{"2":{"4":1,"6":2,"69":2,"158":2,"159":1,"176":2,"177":1,"188":1}}],["fit",{"2":{"22":1}}],["field",{"2":{"13":2,"69":2,"162":1}}],["figure",{"2":{"13":1,"14":1,"60":1,"63":2,"84":1,"202":3}}],["fig",{"2":{"13":6,"14":6,"84":5,"199":2,"201":7,"202":4}}],["fine",{"2":{"183":1}}],["final",{"2":{"87":1,"172":4,"184":1}}],["finally",{"2":{"6":1,"63":2,"69":2,"78":1,"151":1,"158":4,"159":2,"205":1}}],["findmin",{"2":{"192":1}}],["findmax",{"2":{"188":1,"190":1}}],["findall",{"2":{"172":1}}],["finding",{"2":{"78":1}}],["findfirst",{"2":{"69":6,"74":2,"83":1,"188":1}}],["findnext",{"2":{"69":3}}],["findlast",{"2":{"69":2}}],["findprev",{"2":{"69":2}}],["finds",{"2":{"69":1,"71":1}}],["find",{"2":{"58":6,"61":1,"69":13,"71":3,"74":2,"75":4,"77":2,"78":8,"86":1,"90":1,"93":3,"121":7,"151":2,"190":5,"208":1}}],["finish",{"2":{"9":1}}],["fix1",{"2":{"158":1,"159":1}}],["fixme",{"2":{"150":1}}],["fixes",{"2":{"69":1}}],["fixed",{"2":{"6":3,"75":1,"77":1,"86":1,"162":1}}],["fix2",{"2":{"37":1,"69":2}}],["fix",{"0":{"25":1},"2":{"6":9,"9":3,"15":3,"22":1,"25":1,"75":1,"76":11,"77":1,"78":11,"84":2,"86":1,"87":17,"164":1,"169":1,"171":1,"172":1,"175":1}}],["firstisright",{"2":{"151":2}}],["firstisleft",{"2":{"151":4}}],["firstisstraight",{"2":{"151":4}}],["firstnode",{"2":{"151":9}}],["first",{"2":{"3":9,"6":10,"20":1,"58":14,"61":7,"63":1,"64":9,"65":1,"68":1,"69":18,"71":2,"74":1,"75":2,"77":1,"78":5,"86":3,"90":4,"93":8,"95":2,"96":2,"98":1,"99":2,"102":1,"103":1,"104":1,"109":2,"113":3,"121":22,"124":1,"129":1,"130":2,"133":1,"134":1,"135":2,"140":2,"142":1,"150":1,"151":16,"158":3,"159":2,"161":5,"169":1,"185":3,"189":1,"190":2,"197":2,"198":1,"200":1,"201":1,"202":1,"203":1,"206":1,"207":1}}],["flexijoins",{"2":{"206":2,"207":3,"208":1,"209":5}}],["flexible",{"2":{"158":1,"159":1,"198":1}}],["flow",{"2":{"20":1}}],["floating",{"2":{"6":1,"69":1,"78":5,"151":2}}],["float",{"2":{"6":3,"75":1,"77":1,"86":1}}],["float64x2",{"2":{"13":6,"14":6,"15":2}}],["float64",{"2":{"1":6,"4":10,"6":28,"13":1,"57":1,"58":3,"61":6,"68":1,"69":2,"71":4,"74":2,"75":4,"77":1,"78":5,"84":1,"86":1,"93":12,"121":4,"124":2,"150":4,"183":2,"184":2,"185":1,"189":4,"190":9,"191":2,"192":6,"193":6,"194":1,"197":6,"198":1,"202":1}}],["flag",{"2":{"69":14,"74":1}}],["flags",{"2":{"18":1,"69":5}}],["flattened",{"2":{"18":1,"23":1}}],["flatten",{"0":{"161":1},"2":{"11":3,"13":1,"23":1,"36":2,"55":1,"64":1,"69":2,"71":3,"77":1,"85":2,"87":1,"110":1,"161":33,"176":1}}],["flattening`",{"2":{"166":1}}],["flattening",{"2":{"6":4,"18":1,"159":1,"166":5,"184":2}}],["flat",{"2":{"6":2,"17":1,"185":1,"192":2,"197":1}}],["flipping",{"0":{"178":1},"2":{"178":1}}],["flipped",{"2":{"1":2,"155":2,"158":2}}],["flipaxis",{"2":{"63":1}}],["flip",{"2":{"0":1,"6":1,"36":1,"153":2,"158":1,"178":2}}],["fancy",{"2":{"201":1}}],["fancis",{"2":{"6":1,"64":1}}],["fair",{"2":{"183":1}}],["fail",{"2":{"1":1,"6":1,"155":1,"158":3,"159":1,"161":4,"184":1}}],["far",{"2":{"158":1,"165":1}}],["faafter",{"2":{"69":4}}],["fa",{"2":{"69":4}}],["fashion",{"2":{"60":1}}],["faster",{"2":{"64":1,"69":1,"158":1}}],["fast",{"2":{"12":1}}],["fact",{"2":{"19":1}}],["fallback",{"2":{"69":1,"75":1,"77":1,"86":1,"158":1}}],["falls",{"2":{"20":1}}],["fall",{"2":{"17":1}}],["falses",{"2":{"69":2,"74":1,"75":1,"77":1}}],["false",{"0":{"29":1},"2":{"1":29,"3":7,"4":3,"6":51,"36":1,"37":2,"40":1,"41":1,"42":1,"43":1,"55":1,"58":2,"61":1,"63":5,"69":26,"71":5,"74":1,"75":1,"76":3,"78":1,"86":4,"89":2,"90":27,"93":2,"95":2,"99":8,"101":2,"102":4,"103":1,"104":1,"105":1,"106":1,"108":2,"110":11,"113":9,"115":1,"116":4,"119":1,"120":1,"121":39,"124":22,"129":1,"130":7,"132":2,"133":4,"134":1,"135":1,"136":1,"137":1,"140":8,"142":3,"143":4,"144":1,"146":1,"147":1,"150":10,"151":5,"155":4,"158":11,"159":7,"163":4,"165":1,"169":4,"175":2,"176":4,"185":5,"188":1,"192":2,"193":20,"197":2,"201":10,"202":6,"203":6,"206":1}}],["f",{"2":{"1":12,"6":14,"15":1,"23":3,"24":1,"27":2,"57":1,"60":2,"63":4,"65":1,"67":2,"69":42,"70":2,"73":2,"75":2,"76":2,"77":2,"78":2,"82":2,"83":2,"86":2,"87":2,"89":2,"92":5,"95":2,"98":2,"108":2,"112":2,"121":7,"123":2,"126":2,"129":2,"139":2,"151":30,"155":7,"156":2,"158":66,"159":69,"161":52,"181":1,"183":2,"184":1,"187":2,"188":1,"192":6,"193":6,"196":5,"197":16,"201":6,"203":2,"207":3}}],["fulfilled",{"2":{"190":1}}],["fullellipsoidparametrization",{"2":{"166":1}}],["fully",{"2":{"6":1,"69":4,"74":1,"124":4,"165":1}}],["full",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"71":5,"166":1,"172":1,"208":4}}],["furthest",{"2":{"151":1}}],["further",{"2":{"67":1,"158":1}}],["furthermore",{"2":{"3":2,"6":5,"69":1,"75":1,"77":1,"86":1,"99":1,"130":1}}],["fun",{"2":{"201":1}}],["fundamental",{"2":{"31":1,"195":1}}],["func",{"2":{"13":5}}],["funcs",{"2":{"13":2,"14":3}}],["functionality",{"2":{"78":1,"178":1,"180":1,"185":1,"196":1}}],["functionalities",{"2":{"69":1}}],["functionally",{"2":{"1":1,"23":1,"34":1,"155":1,"158":1}}],["function",{"2":{"1":4,"4":1,"6":10,"7":2,"9":1,"13":3,"14":2,"23":2,"34":1,"36":1,"37":2,"58":5,"61":3,"64":13,"68":6,"69":23,"71":7,"73":2,"74":4,"75":3,"76":3,"77":2,"78":9,"79":1,"85":2,"86":2,"87":7,"89":1,"90":8,"93":6,"95":1,"98":1,"99":1,"105":1,"106":1,"108":1,"110":5,"112":1,"113":1,"119":1,"120":1,"121":9,"123":1,"124":7,"126":1,"129":1,"130":1,"136":1,"137":1,"139":1,"140":1,"146":1,"147":1,"150":4,"151":16,"153":1,"155":2,"156":2,"158":16,"159":12,"161":5,"162":1,"163":1,"164":1,"165":1,"170":2,"172":7,"173":2,"176":2,"178":2,"179":2,"180":1,"182":2,"184":2,"185":7,"188":3,"189":2,"190":3,"191":2,"192":7,"193":3,"194":1,"196":6,"197":12,"198":3,"201":1,"206":4,"209":4}}],["functions",{"0":{"1":1,"76":1,"78":1,"87":1,"155":1,"197":1},"2":{"6":1,"9":3,"22":1,"31":1,"34":1,"36":3,"38":1,"61":1,"64":1,"68":1,"69":2,"71":1,"73":1,"121":1,"152":1,"153":1,"156":1,"172":2,"173":1,"179":1,"198":1}}],["future",{"2":{"28":1,"80":1,"93":1,"182":2}}],["footprint",{"2":{"203":1}}],["foldable",{"2":{"158":1}}],["folder",{"2":{"69":1}}],["follows",{"2":{"69":2,"99":1,"113":1,"130":1,"140":1,"151":1}}],["followed",{"2":{"31":1}}],["following",{"2":{"6":1,"64":1,"73":1,"161":1,"169":1,"175":1,"188":1,"206":1}}],["focusing",{"2":{"30":1,"32":1}}],["foundational",{"2":{"22":1}}],["found",{"2":{"6":7,"31":1,"71":1,"74":1,"75":2,"77":2,"78":1,"86":2,"90":1,"151":5,"156":3,"158":2,"159":1,"161":5,"185":2}}],["foster",{"2":{"6":1,"69":2,"165":1}}],["fosterhormannclipping",{"2":{"0":1,"6":1,"69":22,"75":5,"76":3,"77":6,"78":5,"86":5,"87":9}}],["forward",{"2":{"78":1}}],["forwards",{"2":{"69":1,"76":1,"87":1}}],["foreach",{"2":{"69":4}}],["formats",{"2":{"200":1,"203":1,"205":3}}],["format",{"2":{"74":1,"162":1,"205":3}}],["form",{"2":{"23":1,"69":3,"78":8,"87":3,"158":1}}],["formed",{"2":{"4":2,"6":3,"57":1,"58":4,"64":1,"69":8,"86":1,"87":1,"190":1}}],["formulae",{"2":{"6":1,"185":1}}],["formula",{"2":{"4":1,"6":1,"61":2,"71":1}}],["forcedims",{"2":{"36":1}}],["force",{"0":{"179":1},"2":{"1":1,"6":2,"158":3,"179":3,"180":1,"188":1}}],["forcexyz",{"2":{"0":1,"6":1,"179":3}}],["forcexy",{"2":{"0":1,"6":1,"179":3}}],["for",{"0":{"76":1,"78":1,"87":1},"2":{"0":2,"1":3,"3":1,"4":4,"5":3,"6":52,"7":4,"9":2,"13":5,"14":1,"18":3,"19":1,"20":2,"21":2,"23":1,"25":1,"27":1,"28":5,"30":3,"31":1,"32":3,"34":1,"36":5,"37":1,"38":1,"58":5,"61":8,"62":1,"63":1,"64":19,"65":3,"68":7,"69":56,"71":11,"74":5,"75":2,"76":3,"77":1,"78":7,"80":2,"83":1,"85":3,"86":1,"87":9,"90":13,"92":2,"93":7,"99":3,"105":1,"106":1,"108":1,"110":6,"113":2,"119":1,"120":1,"121":22,"123":1,"124":11,"130":3,"136":1,"137":1,"140":2,"146":1,"147":1,"149":1,"150":5,"151":13,"152":1,"153":3,"155":1,"158":7,"159":1,"161":1,"162":5,"163":3,"164":4,"165":2,"166":5,"167":1,"168":3,"169":2,"171":1,"172":5,"174":3,"175":1,"176":5,"177":1,"180":3,"182":4,"183":7,"184":6,"185":10,"186":4,"188":12,"189":2,"190":2,"191":1,"192":6,"196":5,"197":7,"198":5,"200":1,"202":4,"203":1,"205":3,"206":2,"208":2,"209":1}}],["wₜₒₜ",{"2":{"64":8}}],["wᵢ",{"2":{"64":18}}],["wt",{"2":{"64":3}}],["wgs84",{"2":{"18":1,"166":3,"202":1}}],["wglmakie",{"2":{"14":1}}],["w",{"2":{"13":13,"14":7,"93":4,"151":1}}],["wrong",{"2":{"174":1,"192":1}}],["wrongmanifolderror",{"2":{"164":1}}],["wrongmanifoldexception",{"2":{"162":2,"164":4}}],["writing",{"2":{"205":1}}],["written",{"2":{"90":1}}],["writes",{"2":{"158":1}}],["write",{"2":{"7":1,"35":1,"151":1,"158":1,"205":7}}],["wrap",{"2":{"4":1,"6":1,"18":1,"37":3,"40":1,"41":1,"42":1,"43":1,"55":1,"177":1,"184":1}}],["wrapped",{"2":{"27":1,"151":2,"156":1,"158":1}}],["wrapper",{"0":{"35":1},"2":{"35":1,"58":1,"61":1,"68":1,"71":1,"90":1,"93":1,"99":1,"113":1,"124":1,"130":1,"140":1}}],["wrappers`",{"2":{"161":1}}],["wrappers",{"2":{"1":10,"6":11,"27":1,"150":2,"151":1,"161":1,"169":4,"170":1,"175":5,"183":1,"184":1,"188":1,"193":10,"197":1,"201":12,"202":3,"203":5}}],["wrappergeometry`",{"2":{"180":1}}],["wrappergeometry",{"2":{"1":1}}],["wrapping",{"2":{"1":1,"6":1,"90":1,"180":1,"194":1}}],["walk",{"2":{"74":1}}],["wall2",{"2":{"71":7}}],["wall1",{"2":{"71":12}}],["walls",{"2":{"71":3}}],["wall",{"2":{"71":69}}],["wachspress",{"2":{"64":1}}],["wasincreasing",{"2":{"151":10}}],["wasn",{"2":{"69":1}}],["was",{"2":{"36":1,"37":1,"55":1,"58":1,"61":1,"63":1,"64":4,"65":1,"68":1,"69":1,"71":1,"74":1,"75":1,"76":3,"77":1,"78":2,"79":1,"85":1,"86":1,"87":3,"90":1,"93":1,"96":1,"106":1,"109":1,"110":1,"120":1,"121":1,"124":1,"127":1,"137":1,"147":1,"150":1,"151":1,"152":1,"156":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":3,"165":1,"166":1,"167":1,"170":1,"173":1,"176":1,"177":1,"178":1,"179":1,"181":1,"183":1,"185":1,"192":1,"193":1,"194":1,"196":2,"198":1}}],["wanted",{"2":{"209":1}}],["wants",{"2":{"85":1,"159":1}}],["want",{"0":{"28":1,"79":1},"2":{"13":1,"23":1,"28":1,"36":1,"64":1,"69":2,"150":1,"202":2,"204":1,"208":1,"209":1}}],["ways",{"2":{"162":1,"174":1}}],["way",{"2":{"6":1,"20":1,"22":1,"23":1,"29":1,"34":1,"62":1,"69":1,"153":1,"167":1,"171":1,"185":1,"196":2,"204":1}}],["warn",{"2":{"151":2,"185":1}}],["warned",{"2":{"6":1,"196":1}}],["warning",{"2":{"0":1,"5":1,"6":3,"29":1,"64":1,"85":1,"159":1,"184":1,"195":1,"208":1}}],["wonky",{"2":{"165":2}}],["wong",{"2":{"82":1,"83":1,"199":1}}],["won",{"2":{"28":1,"69":1,"159":1}}],["wouldn",{"2":{"78":1}}],["would",{"0":{"79":1},"2":{"6":3,"28":1,"69":1,"75":1,"77":1,"78":1,"85":4,"86":1,"151":1,"158":1,"163":2,"202":1,"208":1,"209":1}}],["wound",{"2":{"6":1,"85":1}}],["world",{"0":{"208":1},"2":{"206":1}}],["worrying",{"2":{"29":1}}],["words",{"2":{"3":1,"6":1,"95":1,"126":1,"139":1,"140":1}}],["workflow",{"2":{"110":1,"124":1}}],["workflows",{"2":{"28":1,"30":1,"32":1}}],["works",{"2":{"6":3,"20":1,"31":1,"162":2,"179":2,"180":1,"182":1,"198":1}}],["working",{"2":{"3":1,"6":1,"110":1,"202":1}}],["work",{"2":{"1":3,"6":2,"9":1,"58":1,"61":2,"68":1,"69":1,"71":2,"74":2,"80":1,"90":1,"93":1,"121":1,"124":1,"150":1,"155":1,"158":1,"159":1,"179":1,"180":1,"193":1,"198":1,"208":1}}],["web",{"2":{"205":1}}],["west",{"2":{"71":8}}],["were",{"2":{"69":1,"151":1,"207":1}}],["welcome",{"2":{"30":1,"32":1}}],["well",{"2":{"22":1,"69":2,"71":1,"85":1,"163":1,"182":1,"185":1,"186":1}}],["weighting",{"2":{"67":2,"68":1}}],["weights",{"2":{"62":4}}],["weight",{"2":{"6":5,"64":14,"68":1}}],["weighted",{"2":{"0":1,"6":2,"62":3,"64":4,"68":4}}],["we",{"0":{"79":2},"2":{"6":4,"7":1,"11":1,"13":1,"18":1,"20":1,"22":3,"24":1,"28":3,"29":1,"30":2,"31":1,"32":2,"36":1,"37":1,"58":1,"60":2,"61":2,"63":4,"64":8,"65":2,"68":1,"69":31,"71":4,"76":8,"77":3,"78":3,"80":1,"84":3,"85":2,"86":1,"87":1,"89":1,"90":5,"93":1,"95":1,"96":1,"98":1,"99":1,"109":1,"112":1,"113":1,"121":2,"123":1,"124":2,"126":3,"127":1,"129":1,"130":1,"139":1,"140":1,"151":21,"152":1,"156":1,"158":23,"159":8,"161":3,"162":1,"163":4,"164":2,"165":6,"166":6,"168":1,"181":1,"182":2,"183":2,"184":3,"185":1,"188":5,"192":2,"195":1,"196":1,"200":2,"201":4,"202":6,"203":4,"204":1,"205":3,"206":3,"207":7}}],["whole",{"2":{"121":1}}],["whose",{"2":{"3":1,"6":1,"110":1}}],["white",{"2":{"63":1}}],["while",{"2":{"58":1,"67":1,"68":1,"69":5,"78":2,"84":2,"90":1,"92":1,"110":1,"121":1,"151":3,"176":1,"190":1,"192":2,"207":1}}],["whichever",{"2":{"6":1,"188":1}}],["which",{"2":{"1":1,"4":2,"5":1,"6":14,"7":1,"11":1,"13":1,"14":1,"19":1,"20":3,"22":1,"23":4,"25":1,"28":2,"38":1,"60":1,"61":1,"62":1,"63":2,"64":5,"65":1,"69":17,"71":2,"78":2,"80":1,"85":1,"90":2,"121":3,"151":3,"152":1,"153":1,"158":1,"165":1,"166":3,"167":1,"168":2,"169":1,"172":1,"174":1,"175":1,"181":1,"182":1,"183":1,"184":3,"185":2,"188":1,"190":2,"193":1,"196":4,"198":1,"205":3,"206":3,"207":6,"209":1}}],["what",{"0":{"18":1,"27":1,"30":1,"35":1,"57":1,"60":2,"67":1,"70":1,"73":1,"89":1,"92":2,"95":1,"98":1,"108":1,"112":1,"123":1,"126":1,"129":1,"139":1,"156":1},"2":{"13":1,"14":1,"20":1,"21":1,"29":1,"67":1,"69":1,"150":1,"151":1,"163":1,"165":1,"183":1,"202":1,"208":1}}],["whatever",{"2":{"1":1,"27":1,"155":1,"158":1}}],["whyatt",{"2":{"186":1}}],["why",{"0":{"19":1,"27":1,"28":1},"2":{"9":1,"22":1,"35":1,"61":1,"69":1}}],["wheel",{"2":{"22":1}}],["whether",{"2":{"1":4,"4":1,"6":8,"149":1,"150":1,"155":2,"160":2,"163":1,"165":1,"168":1}}],["when",{"2":{"1":1,"4":2,"5":1,"6":5,"19":1,"20":2,"23":1,"25":1,"28":2,"29":1,"61":1,"64":3,"68":1,"69":4,"76":5,"78":6,"87":7,"121":1,"151":1,"155":1,"156":3,"158":1,"164":2,"165":1,"166":2,"169":1,"172":1,"177":2,"188":1,"202":1,"203":2,"205":1,"209":1}}],["whereas",{"2":{"166":1}}],["wherever",{"2":{"6":1,"194":1}}],["where",{"2":{"1":2,"4":5,"6":10,"25":1,"36":2,"58":8,"61":12,"62":2,"64":24,"68":8,"69":26,"71":8,"74":5,"75":4,"76":5,"77":5,"78":21,"86":4,"87":13,"90":1,"93":25,"121":9,"151":3,"155":1,"158":20,"159":20,"161":17,"162":3,"164":2,"165":1,"166":2,"167":5,"174":1,"180":1,"183":1,"194":1,"195":1,"197":3,"198":5}}],["widely",{"2":{"205":1}}],["widths",{"2":{"14":1}}],["wiki",{"2":{"121":1,"190":1}}],["wikipedia",{"2":{"121":1,"190":2}}],["wind",{"2":{"4":1,"6":2,"61":1,"90":1}}],["winding",{"0":{"84":1},"2":{"4":2,"6":3,"61":3,"69":7,"84":4,"85":1,"90":1,"151":1}}],["without",{"2":{"1":2,"6":1,"22":1,"29":1,"69":2,"112":1,"124":1,"158":1,"159":1,"161":3,"180":1,"193":1}}],["with",{"0":{"76":1,"78":1,"87":1,"189":1,"190":1,"191":1,"203":1,"204":1},"2":{"1":5,"3":5,"4":7,"6":23,"11":1,"25":1,"27":2,"28":1,"57":1,"58":2,"61":7,"62":4,"63":1,"64":2,"68":1,"69":17,"71":6,"75":1,"76":8,"77":6,"78":15,"86":2,"87":12,"92":1,"93":2,"94":1,"99":1,"112":1,"116":1,"121":28,"123":2,"124":5,"126":1,"135":1,"139":1,"140":1,"143":3,"144":2,"145":2,"151":7,"153":1,"155":3,"156":1,"158":12,"159":3,"161":4,"162":2,"163":1,"164":3,"166":1,"169":1,"174":1,"177":1,"180":1,"182":1,"185":2,"188":2,"190":2,"191":1,"193":1,"196":1,"198":1,"200":1,"201":4,"202":6,"203":2,"204":2,"205":2,"206":1,"207":1,"208":1}}],["within",{"0":{"49":1,"128":1,"129":1,"132":1,"133":1,"135":1,"136":1,"137":1},"1":{"129":1,"130":1},"2":{"0":2,"3":9,"4":3,"5":1,"6":13,"7":1,"9":1,"36":1,"49":2,"58":2,"61":1,"62":3,"64":1,"68":1,"69":11,"70":2,"71":5,"76":1,"78":2,"86":1,"87":6,"92":1,"93":5,"95":2,"96":3,"98":2,"115":1,"121":9,"123":1,"124":9,"128":1,"129":6,"130":11,"131":6,"132":14,"133":15,"134":15,"135":7,"136":4,"137":4,"153":1,"206":1,"207":4,"208":2}}],["will",{"2":{"1":8,"4":7,"5":1,"6":40,"11":1,"23":3,"28":2,"29":1,"58":4,"61":3,"64":2,"68":1,"69":8,"71":1,"74":1,"75":4,"76":4,"77":4,"78":4,"85":1,"86":4,"87":4,"90":1,"92":2,"93":4,"110":1,"150":1,"151":2,"155":3,"156":1,"157":2,"158":4,"159":3,"161":7,"165":1,"166":4,"169":1,"173":2,"174":1,"176":2,"179":2,"180":3,"182":2,"184":3,"188":2,"190":1,"192":1,"193":2,"196":1,"202":1,"205":1,"206":2,"208":1,"209":1}}],["wip",{"2":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR259/assets/chunks/@localSearchIndexroot.gPJ_HSsN.js b/previews/PR259/assets/chunks/@localSearchIndexroot.gPJ_HSsN.js deleted file mode 100644 index ed46d3490..000000000 --- a/previews/PR259/assets/chunks/@localSearchIndexroot.gPJ_HSsN.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":210,"nextId":210,"documentIds":{"0":"/GeometryOps.jl/previews/PR259/api#Full-GeometryOps-API-documentation","1":"/GeometryOps.jl/previews/PR259/api#apply-and-associated-functions","2":"/GeometryOps.jl/previews/PR259/api#General-geometry-methods","3":"/GeometryOps.jl/previews/PR259/api#OGC-methods","4":"/GeometryOps.jl/previews/PR259/api#Other-general-methods","5":"/GeometryOps.jl/previews/PR259/api#Barycentric-coordinates","6":"/GeometryOps.jl/previews/PR259/api#Other-methods","7":"/GeometryOps.jl/previews/PR259/call_notes#20th-April,-2024","8":"/GeometryOps.jl/previews/PR259/call_notes#29th-Feb,-2024","9":"/GeometryOps.jl/previews/PR259/call_notes#To-do","10":"/GeometryOps.jl/previews/PR259/call_notes#done","11":"/GeometryOps.jl/previews/PR259/experiments/accurate_accumulators#Accurate-accumulation","12":"/GeometryOps.jl/previews/PR259/experiments/predicates#predicates","13":"/GeometryOps.jl/previews/PR259/experiments/predicates#orient","14":"/GeometryOps.jl/previews/PR259/experiments/predicates#dashboard","15":"/GeometryOps.jl/previews/PR259/experiments/predicates#Testing-robust-vs-regular-predicates","16":"/GeometryOps.jl/previews/PR259/experiments/predicates#incircle","17":"/GeometryOps.jl/previews/PR259/explanations/manifolds#manifolds","18":"/GeometryOps.jl/previews/PR259/explanations/manifolds#What-manifolds-are-available?","19":"/GeometryOps.jl/previews/PR259/explanations/manifolds#Why-this-is-needed","20":"/GeometryOps.jl/previews/PR259/explanations/manifolds#How-this-is-done","21":"/GeometryOps.jl/previews/PR259/explanations/manifolds#Algorithms-and-manifolds","22":"/GeometryOps.jl/previews/PR259/explanations/paradigms#paradigms","23":"/GeometryOps.jl/previews/PR259/explanations/paradigms#apply","24":"/GeometryOps.jl/previews/PR259/explanations/paradigms#applyreduce","25":"/GeometryOps.jl/previews/PR259/explanations/paradigms#fix-and-prepare","26":"/GeometryOps.jl/previews/PR259/explanations/peculiarities#peculiarities","27":"/GeometryOps.jl/previews/PR259/explanations/peculiarities#What-does-apply-return-and-why?","28":"/GeometryOps.jl/previews/PR259/explanations/peculiarities#Why-do-you-want-me-to-provide-a-target-in-set-operations?","29":"/GeometryOps.jl/previews/PR259/explanations/peculiarities#_True-and-_False-(or-BoolsAsTypes)","30":"/GeometryOps.jl/previews/PR259/#what-is-geometryops-jl","31":"/GeometryOps.jl/previews/PR259/#how-to-navigate-the-docs","32":"/GeometryOps.jl/previews/PR259/introduction#introduction","33":"/GeometryOps.jl/previews/PR259/introduction#Main-concepts","34":"/GeometryOps.jl/previews/PR259/introduction#The-apply-paradigm","35":"/GeometryOps.jl/previews/PR259/introduction#What\'s-this-GeoInterface.Wrapper-thing?","36":"/GeometryOps.jl/previews/PR259/source/GeometryOps#geometryops-jl","37":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/segmentize#segmentize","38":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#Simple-overrides","39":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#Polygon-set-operations","40":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#difference","41":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#union","42":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#intersection","43":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#Symmetric-difference","44":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#DE-9IM-boolean-methods","45":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#equals","46":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#disjoint","47":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#touches","48":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#crosses","49":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#within","50":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#contains","51":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#overlaps","52":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#covers","53":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#coveredby","54":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#intersects","55":"/GeometryOps.jl/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides#Convex-hull","56":"/GeometryOps.jl/previews/PR259/source/methods/area#Area-and-signed-area","57":"/GeometryOps.jl/previews/PR259/source/methods/area#What-is-area?-What-is-signed-area?","58":"/GeometryOps.jl/previews/PR259/source/methods/area#implementation","59":"/GeometryOps.jl/previews/PR259/source/methods/angles#angles","60":"/GeometryOps.jl/previews/PR259/source/methods/angles#What-is-angles?","61":"/GeometryOps.jl/previews/PR259/source/methods/angles#implementation","62":"/GeometryOps.jl/previews/PR259/source/methods/buffer#buffer","63":"/GeometryOps.jl/previews/PR259/source/methods/centroid#centroid","64":"/GeometryOps.jl/previews/PR259/source/methods/centroid#What-is-the-centroid?","65":"/GeometryOps.jl/previews/PR259/source/methods/centroid#implementation","66":"/GeometryOps.jl/previews/PR259/source/methods/barycentric#Barycentric-coordinates","67":"/GeometryOps.jl/previews/PR259/source/methods/barycentric#example","68":"/GeometryOps.jl/previews/PR259/source/methods/barycentric#Barycentric-coordinate-API","69":"/GeometryOps.jl/previews/PR259/source/methods/clipping/coverage#What-is-coverage?","70":"/GeometryOps.jl/previews/PR259/source/methods/clipping/coverage#implementation","71":"/GeometryOps.jl/previews/PR259/source/methods/clipping/cut#Polygon-cutting","72":"/GeometryOps.jl/previews/PR259/source/methods/clipping/cut#What-is-cut?","73":"/GeometryOps.jl/previews/PR259/source/methods/clipping/cut#implementation","74":"/GeometryOps.jl/previews/PR259/source/methods/clipping/difference#Difference-Polygon-Clipping","75":"/GeometryOps.jl/previews/PR259/source/methods/clipping/difference#Helper-functions-for-Differences-with-Greiner-and-Hormann-Polygon-Clipping","76":"/GeometryOps.jl/previews/PR259/source/methods/clipping/clipping_processor#Polygon-clipping-helpers","77":"/GeometryOps.jl/previews/PR259/source/methods/clipping/predicates#If-we-want-to-inject-adaptivity,-we-would-do-something-like:","78":"/GeometryOps.jl/previews/PR259/source/methods/clipping/intersection#Geometry-Intersection","79":"/GeometryOps.jl/previews/PR259/source/methods/clipping/intersection#Helper-functions-for-Intersections-with-Greiner-and-Hormann-Polygon-Clipping","80":"/GeometryOps.jl/previews/PR259/source/methods/clipping/union#Union-Polygon-Clipping","81":"/GeometryOps.jl/previews/PR259/source/methods/clipping/union#Helper-functions-for-Unions-with-Greiner-and-Hormann-Polygon-Clipping","82":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#Convex-hull","83":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#example","84":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#Simple-hull","85":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#Convex-hull-of-the-USA","86":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#Investigating-the-winding-order","87":"/GeometryOps.jl/previews/PR259/source/methods/convex_hull#implementation","88":"/GeometryOps.jl/previews/PR259/source/methods/distance#Distance-and-signed-distance","89":"/GeometryOps.jl/previews/PR259/source/methods/distance#What-is-distance?-What-is-signed-distance?","90":"/GeometryOps.jl/previews/PR259/source/methods/distance#implementation","91":"/GeometryOps.jl/previews/PR259/source/methods/equals#equals","92":"/GeometryOps.jl/previews/PR259/source/methods/equals#What-is-equals?","93":"/GeometryOps.jl/previews/PR259/source/methods/equals#implementation","94":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/contains#contains","95":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/contains#What-is-contains?","96":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/contains#implementation","97":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#coveredby","98":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#What-is-coveredby?","99":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#implementation","100":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Convert-features-to-geometries","101":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Points-coveredby-geometries","102":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Lines-coveredby-geometries","103":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Rings-covered-by-geometries","104":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Polygons-covered-by-geometries","105":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Geometries-coveredby-multi-geometry/geometry-collections","106":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/coveredby#Multi-geometry/geometry-collections-coveredby-geometries","107":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/covers#covers","108":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/covers#What-is-covers?","109":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/covers#implementation","110":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/crosses#Crossing-checks","111":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#disjoint","112":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#What-is-disjoint?","113":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#implementation","114":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Convert-features-to-geometries","115":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Point-disjoint-geometries","116":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Lines-disjoint-geometries","117":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Rings-disjoint-geometries","118":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Polygon-disjoint-geometries","119":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Geometries-disjoint-multi-geometry/geometry-collections","120":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/disjoint#Multi-geometry/geometry-collections-coveredby-geometries","121":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/intersects#Intersection-checks","122":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/intersects#What-is-intersects?","123":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/intersects#implementation","124":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/geom_geom_processors#Line-curve-interaction","125":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/overlaps#overlaps","126":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/overlaps#What-is-overlaps?","127":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/overlaps#implementation","128":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#touches","129":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#What-is-touches?","130":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#implementation","131":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Convert-features-to-geometries","132":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Point-touches-geometries","133":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Lines-touching-geometries","134":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Rings-touch-geometries","135":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Polygons-touch-geometries","136":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Geometries-touch-multi-geometry/geometry-collections","137":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/touches#Multi-geometry/geometry-collections-cross-geometries","138":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#within","139":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#What-is-within?","140":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#implementation","141":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Convert-features-to-geometries","142":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Points-within-geometries","143":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Lines-within-geometries","144":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Rings-covered-by-geometries","145":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Polygons-within-geometries","146":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Geometries-within-multi-geometry/geometry-collections","147":"/GeometryOps.jl/previews/PR259/source/methods/geom_relations/within#Multi-geometry/geometry-collections-within-geometries","148":"/GeometryOps.jl/previews/PR259/source/methods/orientation#orientation","149":"/GeometryOps.jl/previews/PR259/source/methods/orientation#isclockwise","150":"/GeometryOps.jl/previews/PR259/source/methods/orientation#isconcave","151":"/GeometryOps.jl/previews/PR259/source/not_implemented_yet#Not-implemented-yet","152":"/GeometryOps.jl/previews/PR259/source/methods/polygonize#Polygonizing-raster-data","153":"/GeometryOps.jl/previews/PR259/source/src/apply#apply","154":"/GeometryOps.jl/previews/PR259/source/src/apply#docstrings","155":"/GeometryOps.jl/previews/PR259/source/src/apply#functions","156":"/GeometryOps.jl/previews/PR259/source/src/apply#What-is-apply?","157":"/GeometryOps.jl/previews/PR259/source/src/apply#embedding","158":"/GeometryOps.jl/previews/PR259/source/src/apply#threading","159":"/GeometryOps.jl/previews/PR259/source/src/applyreduce#applyreduce","160":"/GeometryOps.jl/previews/PR259/source/src/keyword_docs#Keyword-docs","161":"/GeometryOps.jl/previews/PR259/source/src/other_primitives#Other-primitives-(unwrap,-flatten,-etc)","162":"/GeometryOps.jl/previews/PR259/source/src/types/algorithm#Algorithms","163":"/GeometryOps.jl/previews/PR259/source/src/types/booltypes#BoolsAsTypes","164":"/GeometryOps.jl/previews/PR259/source/src/types/manifold#Manifolds","165":"/GeometryOps.jl/previews/PR259/source/src/types/exceptions#Errors-and-exceptions","166":"/GeometryOps.jl/previews/PR259/source/src/types/operation#operations","167":"/GeometryOps.jl/previews/PR259/source/src/types/traittarget#TraitTarget","168":"/GeometryOps.jl/previews/PR259/source/transformations/correction/closed_ring#Closed-Rings","169":"/GeometryOps.jl/previews/PR259/source/transformations/correction/closed_ring#example","170":"/GeometryOps.jl/previews/PR259/source/transformations/correction/closed_ring#implementation","171":"/GeometryOps.jl/previews/PR259/source/transformations/correction/geometry_correction#Geometry-Corrections","172":"/GeometryOps.jl/previews/PR259/source/transformations/correction/geometry_correction#interface","173":"/GeometryOps.jl/previews/PR259/source/transformations/correction/geometry_correction#Available-corrections","174":"/GeometryOps.jl/previews/PR259/source/transformations/correction/intersecting_polygons#Intersecting-Polygons","175":"/GeometryOps.jl/previews/PR259/source/transformations/correction/intersecting_polygons#example","176":"/GeometryOps.jl/previews/PR259/source/transformations/correction/intersecting_polygons#implementation","177":"/GeometryOps.jl/previews/PR259/source/transformations/extent#Extent-embedding","178":"/GeometryOps.jl/previews/PR259/source/transformations/flip#Coordinate-flipping","179":"/GeometryOps.jl/previews/PR259/source/transformations/forcedims#Force-dimensions-(xy,-xyz)","180":"/GeometryOps.jl/previews/PR259/source/transformations/reproject#Geometry-reprojection","181":"/GeometryOps.jl/previews/PR259/source/transformations/reproject#Method-error-handling","182":"/GeometryOps.jl/previews/PR259/source/transformations/segmentize#segmentize","183":"/GeometryOps.jl/previews/PR259/source/transformations/segmentize#examples","184":"/GeometryOps.jl/previews/PR259/source/transformations/segmentize#benchmark","185":"/GeometryOps.jl/previews/PR259/source/transformations/segmentize#implementation","186":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#Geometry-simplification","187":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#examples","188":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#benchmark","189":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#Simplify-with-RadialDistance-Algorithm","190":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#Simplify-with-DouglasPeucker-Algorithm","191":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#Simplify-with-VisvalingamWhyatt-Algorithm","192":"/GeometryOps.jl/previews/PR259/source/transformations/simplify#Shared-utils","193":"/GeometryOps.jl/previews/PR259/source/transformations/transform#Pointwise-transformation","194":"/GeometryOps.jl/previews/PR259/source/transformations/tuples#Tuple-conversion","195":"/GeometryOps.jl/previews/PR259/source/types#types","196":"/GeometryOps.jl/previews/PR259/source/types#GEOS","197":"/GeometryOps.jl/previews/PR259/source/utils/utils#Utility-functions","198":"/GeometryOps.jl/previews/PR259/source/utils/utils#eachedge,-to_edgelist","199":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#Creating-Geometry","200":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#creating-geometry","201":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#plot-geometry","202":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#geom-crs","203":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#attributes","204":"/GeometryOps.jl/previews/PR259/tutorials/creating_geometry#save-geometry","205":"/GeometryOps.jl/previews/PR259/tutorials/geodesic_paths#Geodesic-paths","206":"/GeometryOps.jl/previews/PR259/tutorials/spatial_joins#Spatial-joins","207":"/GeometryOps.jl/previews/PR259/tutorials/spatial_joins#Simple-example","208":"/GeometryOps.jl/previews/PR259/tutorials/spatial_joins#Real-world-example","209":"/GeometryOps.jl/previews/PR259/tutorials/spatial_joins#Enabling-custom-predicates"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,96],"1":[4,4,246],"2":[3,4,1],"3":[2,7,205],"4":[3,7,255],"5":[2,4,81],"6":[2,4,1050],"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,35],"18":[5,1,95],"19":[4,1,48],"20":[4,1,119],"21":[3,1,36],"22":[1,1,53],"23":[1,1,109],"24":[1,2,35],"25":[3,1,79],"26":[1,1,1],"27":[7,1,71],"28":[13,1,101],"29":[6,1,66],"30":[5,1,72],"31":[5,1,61],"32":[1,1,72],"33":[2,1,1],"34":[3,3,50],"35":[8,3,18],"36":[2,1,190],"37":[1,1,106],"38":[2,1,23],"39":[3,2,1],"40":[1,5,20],"41":[1,5,20],"42":[1,5,20],"43":[2,5,22],"44":[4,2,1],"45":[1,6,13],"46":[1,6,13],"47":[1,6,13],"48":[1,6,13],"49":[1,6,13],"50":[1,6,13],"51":[1,6,13],"52":[1,6,13],"53":[1,6,13],"54":[1,6,13],"55":[2,2,34],"56":[4,1,4],"57":[5,4,100],"58":[1,4,246],"59":[1,1,3],"60":[4,1,57],"61":[1,1,268],"62":[1,1,110],"63":[1,1,6],"64":[5,1,91],"65":[1,1,199],"66":[2,1,65],"67":[1,2,211],"68":[3,2,414],"69":[4,1,70],"70":[1,1,327],"71":[2,1,3],"72":[4,2,57],"73":[1,2,200],"74":[3,1,214],"75":[10,1,190],"76":[3,1,769],"77":[11,1,25],"78":[2,1,250],"79":[10,1,480],"80":[3,1,236],"81":[10,1,284],"82":[2,1,56],"83":[1,2,1],"84":[2,3,32],"85":[5,2,40],"86":[4,2,100],"87":[1,2,166],"88":[4,1,4],"89":[5,4,128],"90":[1,4,260],"91":[1,1,3],"92":[4,1,68],"93":[1,1,265],"94":[1,1,10],"95":[4,1,79],"96":[1,1,79],"97":[1,1,3],"98":[4,1,81],"99":[1,1,128],"100":[4,1,11],"101":[3,1,56],"102":[3,1,46],"103":[4,1,48],"104":[4,1,40],"105":[5,1,40],"106":[5,1,44],"107":[1,1,3],"108":[4,1,67],"109":[1,1,78],"110":[2,1,149],"111":[1,1,3],"112":[4,1,68],"113":[1,1,110],"114":[4,1,10],"115":[3,1,57],"116":[3,1,58],"117":[3,1,47],"118":[3,1,33],"119":[5,1,39],"120":[5,1,44],"121":[2,1,3],"122":[4,2,80],"123":[1,2,76],"124":[3,1,432],"125":[1,1,3],"126":[4,1,82],"127":[1,1,244],"128":[1,1,3],"129":[4,1,70],"130":[1,1,125],"131":[4,1,11],"132":[3,1,69],"133":[3,1,52],"134":[3,1,61],"135":[3,1,40],"136":[5,1,39],"137":[5,1,42],"138":[1,1,3],"139":[4,1,72],"140":[1,1,129],"141":[4,1,11],"142":[3,1,63],"143":[3,1,53],"144":[4,1,53],"145":[3,1,38],"146":[5,1,39],"147":[5,1,42],"148":[1,1,4],"149":[1,1,21],"150":[1,1,206],"151":[3,1,43],"152":[3,1,513],"153":[1,1,114],"154":[1,1,1],"155":[1,2,152],"156":[4,1,114],"157":[2,1,36],"158":[1,1,503],"159":[1,1,290],"160":[2,1,51],"161":[6,1,218],"162":[1,1,152],"163":[1,1,105],"164":[1,1,283],"165":[3,1,111],"166":[1,1,166],"167":[1,1,80],"168":[2,1,54],"169":[1,2,83],"170":[1,2,83],"171":[2,1,41],"172":[1,2,109],"173":[2,2,106],"174":[2,1,77],"175":[1,2,65],"176":[1,2,135],"177":[2,1,71],"178":[2,1,56],"179":[5,1,74],"180":[2,1,132],"181":[3,2,77],"182":[1,1,76],"183":[1,1,147],"184":[1,1,268],"185":[1,1,221],"186":[2,1,44],"187":[1,2,67],"188":[1,2,391],"189":[4,1,75],"190":[4,1,186],"191":[4,1,85],"192":[2,1,149],"193":[2,1,111],"194":[2,1,58],"195":[1,1,37],"196":[1,1,147],"197":[2,1,129],"198":[3,1,118],"199":[2,1,60],"200":[4,2,191],"201":[13,2,241],"202":[9,2,130],"203":[7,2,63],"204":[4,2,140],"205":[2,1,52],"206":[2,1,141],"207":[2,2,137],"208":[3,2,117],"209":[3,2,68]},"averageFieldLength":[2.7428571428571438,1.6952380952380954,102.5809523809524],"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":"Manifolds","titles":[]},"18":{"title":"What manifolds are available?","titles":["Manifolds"]},"19":{"title":"Why this is needed","titles":["Manifolds"]},"20":{"title":"How this is done","titles":["Manifolds"]},"21":{"title":"Algorithms and manifolds","titles":["Manifolds"]},"22":{"title":"Paradigms","titles":[]},"23":{"title":"apply","titles":["Paradigms"]},"24":{"title":"applyreduce","titles":["Paradigms","apply"]},"25":{"title":"fix and prepare","titles":["Paradigms"]},"26":{"title":"Peculiarities","titles":[]},"27":{"title":"What does apply return and why?","titles":["Peculiarities"]},"28":{"title":"Why do you want me to provide a target in set operations?","titles":["Peculiarities"]},"29":{"title":"_True and _False (or BoolsAsTypes)","titles":["Peculiarities"]},"30":{"title":"What is GeometryOps.jl?","titles":[]},"31":{"title":"How to navigate the docs","titles":[]},"32":{"title":"Introduction","titles":[]},"33":{"title":"Main concepts","titles":["Introduction"]},"34":{"title":"The apply paradigm","titles":["Introduction","Main concepts"]},"35":{"title":"What's this GeoInterface.Wrapper thing?","titles":["Introduction","Main concepts"]},"36":{"title":"GeometryOps.jl","titles":[]},"37":{"title":"Segmentize","titles":[]},"38":{"title":"Simple overrides","titles":[]},"39":{"title":"Polygon set operations","titles":["Simple overrides"]},"40":{"title":"Difference","titles":["Simple overrides","Polygon set operations"]},"41":{"title":"Union","titles":["Simple overrides","Polygon set operations"]},"42":{"title":"Intersection","titles":["Simple overrides","Polygon set operations"]},"43":{"title":"Symmetric difference","titles":["Simple overrides","Polygon set operations"]},"44":{"title":"DE-9IM boolean methods","titles":["Simple overrides"]},"45":{"title":"Equals","titles":["Simple overrides","DE-9IM boolean methods"]},"46":{"title":"Disjoint","titles":["Simple overrides","DE-9IM boolean methods"]},"47":{"title":"Touches","titles":["Simple overrides","DE-9IM boolean methods"]},"48":{"title":"Crosses","titles":["Simple overrides","DE-9IM boolean methods"]},"49":{"title":"Within","titles":["Simple overrides","DE-9IM boolean methods"]},"50":{"title":"Contains","titles":["Simple overrides","DE-9IM boolean methods"]},"51":{"title":"Overlaps","titles":["Simple overrides","DE-9IM boolean methods"]},"52":{"title":"Covers","titles":["Simple overrides","DE-9IM boolean methods"]},"53":{"title":"CoveredBy","titles":["Simple overrides","DE-9IM boolean methods"]},"54":{"title":"Intersects","titles":["Simple overrides","DE-9IM boolean methods"]},"55":{"title":"Convex hull","titles":["Simple overrides"]},"56":{"title":"Area and signed area","titles":[]},"57":{"title":"What is area? What is signed area?","titles":["Area and signed area"]},"58":{"title":"Implementation","titles":["Area and signed area"]},"59":{"title":"Angles","titles":[]},"60":{"title":"What is angles?","titles":["Angles"]},"61":{"title":"Implementation","titles":["Angles"]},"62":{"title":"Buffer","titles":[]},"63":{"title":"Centroid","titles":[]},"64":{"title":"What is the centroid?","titles":["Centroid"]},"65":{"title":"Implementation","titles":["Centroid"]},"66":{"title":"Barycentric coordinates","titles":[]},"67":{"title":"Example","titles":["Barycentric coordinates"]},"68":{"title":"Barycentric-coordinate API","titles":["Barycentric coordinates"]},"69":{"title":"What is coverage?","titles":[]},"70":{"title":"Implementation","titles":[]},"71":{"title":"Polygon cutting","titles":[]},"72":{"title":"What is cut?","titles":["Polygon cutting"]},"73":{"title":"Implementation","titles":["Polygon cutting"]},"74":{"title":"Difference Polygon Clipping","titles":[]},"75":{"title":"Helper functions for Differences with Greiner and Hormann Polygon Clipping","titles":[]},"76":{"title":"Polygon clipping helpers","titles":[]},"77":{"title":"If we want to inject adaptivity, we would do something like:","titles":[]},"78":{"title":"Geometry Intersection","titles":[]},"79":{"title":"Helper functions for Intersections with Greiner and Hormann Polygon Clipping","titles":[]},"80":{"title":"Union Polygon Clipping","titles":[]},"81":{"title":"Helper functions for Unions with Greiner and Hormann Polygon Clipping","titles":[]},"82":{"title":"Convex hull","titles":[]},"83":{"title":"Example","titles":["Convex hull"]},"84":{"title":"Simple hull","titles":["Convex hull","Example"]},"85":{"title":"Convex hull of the USA","titles":["Convex hull"]},"86":{"title":"Investigating the winding order","titles":["Convex hull"]},"87":{"title":"Implementation","titles":["Convex hull"]},"88":{"title":"Distance and signed distance","titles":[]},"89":{"title":"What is distance? What is signed distance?","titles":["Distance and signed distance"]},"90":{"title":"Implementation","titles":["Distance and signed distance"]},"91":{"title":"Equals","titles":[]},"92":{"title":"What is equals?","titles":["Equals"]},"93":{"title":"Implementation","titles":["Equals"]},"94":{"title":"Contains","titles":[]},"95":{"title":"What is contains?","titles":["Contains"]},"96":{"title":"Implementation","titles":["Contains"]},"97":{"title":"CoveredBy","titles":[]},"98":{"title":"What is coveredby?","titles":["CoveredBy"]},"99":{"title":"Implementation","titles":["CoveredBy"]},"100":{"title":"Convert features to geometries","titles":[]},"101":{"title":"Points coveredby geometries","titles":[]},"102":{"title":"Lines coveredby geometries","titles":[]},"103":{"title":"Rings covered by geometries","titles":[]},"104":{"title":"Polygons covered by geometries","titles":[]},"105":{"title":"Geometries coveredby multi-geometry/geometry collections","titles":[]},"106":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"107":{"title":"Covers","titles":[]},"108":{"title":"What is covers?","titles":["Covers"]},"109":{"title":"Implementation","titles":["Covers"]},"110":{"title":"Crossing checks","titles":[]},"111":{"title":"Disjoint","titles":[]},"112":{"title":"What is disjoint?","titles":["Disjoint"]},"113":{"title":"Implementation","titles":["Disjoint"]},"114":{"title":"Convert features to geometries","titles":[]},"115":{"title":"Point disjoint geometries","titles":[]},"116":{"title":"Lines disjoint geometries","titles":[]},"117":{"title":"Rings disjoint geometries","titles":[]},"118":{"title":"Polygon disjoint geometries","titles":[]},"119":{"title":"Geometries disjoint multi-geometry/geometry collections","titles":[]},"120":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"121":{"title":"Intersection checks","titles":[]},"122":{"title":"What is intersects?","titles":["Intersection checks"]},"123":{"title":"Implementation","titles":["Intersection checks"]},"124":{"title":"Line-curve interaction","titles":[]},"125":{"title":"Overlaps","titles":[]},"126":{"title":"What is overlaps?","titles":["Overlaps"]},"127":{"title":"Implementation","titles":["Overlaps"]},"128":{"title":"Touches","titles":[]},"129":{"title":"What is touches?","titles":["Touches"]},"130":{"title":"Implementation","titles":["Touches"]},"131":{"title":"Convert features to geometries","titles":[]},"132":{"title":"Point touches geometries","titles":[]},"133":{"title":"Lines touching geometries","titles":[]},"134":{"title":"Rings touch geometries","titles":[]},"135":{"title":"Polygons touch geometries","titles":[]},"136":{"title":"Geometries touch multi-geometry/geometry collections","titles":[]},"137":{"title":"Multi-geometry/geometry collections cross geometries","titles":[]},"138":{"title":"Within","titles":[]},"139":{"title":"What is within?","titles":["Within"]},"140":{"title":"Implementation","titles":["Within"]},"141":{"title":"Convert features to geometries","titles":[]},"142":{"title":"Points within geometries","titles":[]},"143":{"title":"Lines within geometries","titles":[]},"144":{"title":"Rings covered by geometries","titles":[]},"145":{"title":"Polygons within geometries","titles":[]},"146":{"title":"Geometries within multi-geometry/geometry collections","titles":[]},"147":{"title":"Multi-geometry/geometry collections within geometries","titles":[]},"148":{"title":"Orientation","titles":[]},"149":{"title":"isclockwise","titles":["Orientation"]},"150":{"title":"isconcave","titles":["Orientation"]},"151":{"title":"Not implemented yet","titles":[]},"152":{"title":"Polygonizing raster data","titles":[]},"153":{"title":"apply","titles":[]},"154":{"title":"Docstrings","titles":["apply"]},"155":{"title":"Functions","titles":["apply","Docstrings"]},"156":{"title":"What is apply?","titles":["apply"]},"157":{"title":"Embedding:","titles":["apply"]},"158":{"title":"Threading","titles":["apply"]},"159":{"title":"applyreduce","titles":[]},"160":{"title":"Keyword docs","titles":[]},"161":{"title":"Other primitives (unwrap, flatten, etc)","titles":[]},"162":{"title":"Algorithms","titles":[]},"163":{"title":"BoolsAsTypes","titles":[]},"164":{"title":"Manifolds","titles":[]},"165":{"title":"Errors and exceptions","titles":[]},"166":{"title":"Operations","titles":[]},"167":{"title":"TraitTarget","titles":[]},"168":{"title":"Closed Rings","titles":[]},"169":{"title":"Example","titles":["Closed Rings"]},"170":{"title":"Implementation","titles":["Closed Rings"]},"171":{"title":"Geometry Corrections","titles":[]},"172":{"title":"Interface","titles":["Geometry Corrections"]},"173":{"title":"Available corrections","titles":["Geometry Corrections"]},"174":{"title":"Intersecting Polygons","titles":[]},"175":{"title":"Example","titles":["Intersecting Polygons"]},"176":{"title":"Implementation","titles":["Intersecting Polygons"]},"177":{"title":"Extent embedding","titles":[]},"178":{"title":"Coordinate flipping","titles":[]},"179":{"title":"Force dimensions (xy, xyz)","titles":[]},"180":{"title":"Geometry reprojection","titles":[]},"181":{"title":"Method error handling","titles":["Geometry reprojection"]},"182":{"title":"Segmentize","titles":[]},"183":{"title":"Examples","titles":["Segmentize"]},"184":{"title":"Benchmark","titles":["Segmentize"]},"185":{"title":"Implementation","titles":["Segmentize"]},"186":{"title":"Geometry simplification","titles":[]},"187":{"title":"Examples","titles":["Geometry simplification"]},"188":{"title":"Benchmark","titles":["Geometry simplification"]},"189":{"title":"Simplify with RadialDistance Algorithm","titles":[]},"190":{"title":"Simplify with DouglasPeucker Algorithm","titles":[]},"191":{"title":"Simplify with VisvalingamWhyatt Algorithm","titles":[]},"192":{"title":"Shared utils","titles":[]},"193":{"title":"Pointwise transformation","titles":[]},"194":{"title":"Tuple conversion","titles":[]},"195":{"title":"Types","titles":[]},"196":{"title":"GEOS","titles":["Types"]},"197":{"title":"Utility functions","titles":[]},"198":{"title":"eachedge, to_edgelist","titles":[]},"199":{"title":"Creating Geometry","titles":[]},"200":{"title":"Creating and plotting geometries","titles":["Creating Geometry"]},"201":{"title":"Plot geometries on a map using GeoMakie and coordinate reference system (CRS)","titles":["Creating Geometry"]},"202":{"title":"Create geospatial geometries with embedded coordinate reference system information","titles":["Creating Geometry"]},"203":{"title":"Creating a table with attributes and geometry","titles":["Creating Geometry"]},"204":{"title":"Saving your geospatial data","titles":["Creating Geometry"]},"205":{"title":"Geodesic paths","titles":[]},"206":{"title":"Spatial joins","titles":[]},"207":{"title":"Simple example","titles":["Spatial joins"]},"208":{"title":"Real-world example","titles":["Spatial joins"]},"209":{"title":"Enabling custom predicates","titles":["Spatial joins"]}},"dirtCount":0,"index":[["⋮",{"2":{"201":1}}],["θ",{"2":{"200":7,"201":3,"202":5}}],["☁",{"2":{"200":1}}],["✈",{"2":{"200":1}}],["÷",{"2":{"158":2,"159":2}}],["ϵ",{"2":{"79":5}}],["∘",{"2":{"79":1,"127":2,"152":2,"172":1,"188":2,"209":2}}],["≥",{"2":{"76":1,"124":2,"176":1,"190":1}}],["α≈1",{"2":{"79":1}}],["α≈0",{"2":{"79":1}}],["α2",{"2":{"76":4,"79":2}}],["α",{"2":{"76":3,"79":28,"124":7}}],["α1",{"2":{"76":4,"79":2}}],["β2",{"2":{"76":4,"79":2}}],["β",{"2":{"76":4,"79":28,"124":7}}],["β1",{"2":{"76":4,"79":2}}],["⊻",{"2":{"75":2,"76":1}}],["≤",{"2":{"70":14,"76":5,"124":6,"190":1,"192":1,"197":4}}],["∑λ",{"2":{"68":2}}],["∑i=2n",{"2":{"6":1}}],["^",{"2":{"201":1}}],["^3",{"2":{"201":1}}],["^n",{"2":{"150":1}}],["^hormannpresentation",{"2":{"68":2}}],["^2",{"2":{"65":2,"90":2}}],["λ₁",{"2":{"68":2}}],["λn",{"2":{"66":1}}],["λ3",{"2":{"66":1}}],["λ2",{"2":{"66":2}}],["λ1",{"2":{"66":2}}],["λs",{"2":{"5":3,"6":4,"68":27}}],["`$",{"2":{"196":1}}],["`$a",{"2":{"165":1}}],["`equatorial",{"2":{"184":2}}],["`extents",{"2":{"177":1}}],["`inf`",{"2":{"180":1}}],["`inv",{"2":{"164":1}}],["`intersects`",{"2":{"123":1}}],["`intersectingpolygons`",{"2":{"74":1,"78":1,"80":1}}],["`90`",{"2":{"164":1}}],["`libgeos",{"2":{"196":1}}],["`linearring`",{"2":{"185":1}}],["`linestring`",{"2":{"185":1}}],["`linestringtrait`",{"2":{"172":1}}],["`line2`",{"2":{"150":1}}],["`line1`",{"2":{"150":1}}],["`line",{"2":{"78":4}}],["`lat`",{"2":{"164":1}}],["`lon`",{"2":{"164":1}}],["`z`",{"2":{"164":1,"179":1}}],["``1",{"2":{"164":1}}],["``a``",{"2":{"164":1}}],["``r",{"2":{"164":1}}],["```jldoctest",{"2":{"73":1,"74":1,"78":1,"79":1,"80":1,"93":1,"96":1,"99":1,"109":1,"113":1,"123":1,"127":1,"130":1,"140":1,"150":1,"188":1}}],["```julia",{"2":{"6":2,"68":1,"76":1,"110":1,"150":1,"158":1,"167":1,"193":2}}],["```math",{"2":{"68":1,"150":1}}],["```",{"2":{"11":1,"68":3,"73":1,"74":1,"76":1,"78":1,"80":1,"93":1,"96":1,"99":1,"109":1,"113":1,"123":1,"127":1,"130":1,"140":1,"150":3,"152":11,"158":1,"188":1,"193":2,"197":1}}],["`prefilter",{"2":{"188":1}}],["`proj",{"2":{"180":1,"184":2}}],["`planar`",{"2":{"164":1,"185":2}}],["`polgontrait`",{"2":{"158":1}}],["`polygontrait`",{"2":{"158":1,"172":1}}],["`polygonize`",{"2":{"152":2}}],["`polygon`",{"2":{"68":3,"185":1}}],["`polys`",{"2":{"75":1}}],["`poly",{"2":{"75":3,"79":1,"81":1}}],["`pointrait`",{"2":{"188":1}}],["`pointtrait`",{"2":{"161":3,"172":1}}],["`point",{"2":{"124":3}}],["`point`",{"2":{"68":4,"90":1}}],["`point2f`",{"2":{"67":1}}],["`obj`",{"2":{"161":1,"193":1,"194":1}}],["`op`",{"2":{"159":2}}],["`calc",{"2":{"160":1}}],["`crs`",{"2":{"160":1}}],["`components`",{"2":{"161":1}}],["`collect`",{"2":{"159":1}}],["`covers`",{"2":{"99":1,"109":1}}],["`coveredby`",{"2":{"99":1,"109":1}}],["`contains`",{"2":{"96":1,"140":1}}],["`convex",{"2":{"87":2}}],["`+`",{"2":{"159":1}}],["`alg",{"2":{"196":1}}],["`alg`",{"2":{"192":1}}],["`algorithm`",{"2":{"165":1}}],["`always",{"2":{"180":1}}],["`application",{"2":{"172":1}}],["`apply`",{"2":{"158":1,"167":1}}],["`automanifold`",{"2":{"164":1}}],["`abstractgeometrytrait`",{"2":{"161":1}}],["`abstractarray`",{"2":{"161":1}}],["`abstractmatrix`",{"2":{"152":1}}],["`union",{"2":{"152":2}}],["`unionintersectingpolygons`",{"2":{"176":1}}],["`unionintersectingpolygons",{"2":{"74":1,"75":2,"78":1,"79":2,"80":1,"81":2}}],["`ys`",{"2":{"152":1}}],["`flattening`",{"2":{"184":1}}],["`flattening",{"2":{"184":1}}],["`flatten`",{"2":{"161":1}}],["`f",{"2":{"158":1}}],["`featurecollectiontrait`",{"2":{"158":1,"161":1}}],["`featurecollection`",{"2":{"152":2}}],["`featuretrait`",{"2":{"158":2,"161":1}}],["`feature`s",{"2":{"152":1}}],["`f`",{"2":{"152":5,"158":3,"159":1,"161":2,"193":2,"196":1}}],["`false`",{"2":{"150":1,"152":1,"160":4,"163":1,"180":1}}],["`fix",{"2":{"74":2,"75":2,"78":2,"79":2,"80":2,"81":2}}],["`douglaspeucker`",{"2":{"188":1}}],["`d`",{"2":{"180":1}}],["`difference`",{"2":{"176":1}}],["`disjoint`",{"2":{"123":1}}],["`delaunaytriangulation",{"2":{"87":1}}],["`within`",{"2":{"96":1,"140":1}}],["`weight`",{"2":{"68":1}}],["`geos`",{"2":{"196":3}}],["`geodesicsegments`",{"2":{"183":1}}],["`geodesic`",{"2":{"164":1,"184":2,"185":2}}],["`geointerface`",{"2":{"172":1}}],["`geointerface",{"2":{"158":1,"161":2,"180":2}}],["`geom`",{"2":{"90":3,"161":1,"185":1}}],["`geometrycollection`",{"2":{"185":1}}],["`geometrycorrection`",{"2":{"170":1,"172":1,"176":2}}],["`geometry`",{"2":{"158":1,"180":2}}],["`geometrybasics",{"2":{"68":3}}],["`geometries`",{"2":{"87":1}}],["`g1`",{"2":{"90":1}}],["`gi",{"2":{"87":1,"152":1,"198":1}}],["`tuple",{"2":{"197":1}}],["`tuple`s",{"2":{"194":1}}],["`tuple`",{"2":{"152":1,"194":1}}],["`time`",{"2":{"180":1}}],["`transform`",{"2":{"180":1}}],["`true`",{"2":{"99":1,"110":1,"113":2,"130":1,"140":1,"150":2,"152":1,"160":2,"163":1,"180":1}}],["`threaded`",{"2":{"160":1}}],["`threaded==true`",{"2":{"159":1}}],["`tol`",{"2":{"188":2,"189":3,"190":2,"191":3,"192":4}}],["`to",{"2":{"79":1}}],["`target",{"2":{"180":3}}],["`target`",{"2":{"78":1,"158":2,"159":1,"161":1,"167":1}}],["`tables",{"2":{"158":1}}],["`taget`",{"2":{"74":1,"80":1}}],["`number`",{"2":{"188":2,"192":3}}],["`namedtuple`",{"2":{"158":1}}],["`nothing`",{"2":{"76":1,"160":1}}],["`next",{"2":{"76":1}}],["`method",{"2":{"185":1}}],["`method`",{"2":{"68":3}}],["`max",{"2":{"184":4,"185":3,"196":1}}],["`map`",{"2":{"158":1}}],["`makie",{"2":{"152":1}}],["`multipointtrait`",{"2":{"158":1,"188":1}}],["`multipolygontrait`",{"2":{"158":1}}],["`multipolygon`",{"2":{"152":3,"185":1}}],["`multipolygon",{"2":{"75":3,"79":3,"81":2}}],["`multipoly",{"2":{"75":7,"79":3,"81":3}}],["`minpoints`",{"2":{"152":2}}],["`radialdistance`",{"2":{"188":1}}],["`ratio`",{"2":{"188":2,"192":3}}],["`reproject`",{"2":{"181":1}}],["`rebuild`",{"2":{"161":1}}],["`r`",{"2":{"68":1}}],["`rᵢ`",{"2":{"68":1}}],["`svector`",{"2":{"193":3}}],["`simplifyalg`",{"2":{"188":2}}],["`simplify",{"2":{"188":1}}],["`simplify`",{"2":{"188":2}}],["`singlemanifoldalgorithm`",{"2":{"165":1}}],["`segmentize`",{"2":{"196":1}}],["`segmentize",{"2":{"185":2}}],["`semimajor",{"2":{"164":1}}],["`source",{"2":{"180":3}}],["`spherical`",{"2":{"164":1,"185":1}}],["`s`",{"2":{"68":1}}],["`sᵢ`",{"2":{"68":2}}],["`s2`",{"2":{"68":1}}],["`s1`",{"2":{"68":1}}],["`hcat`",{"2":{"68":1}}],["`x`",{"2":{"158":1,"163":1}}],["`xs`",{"2":{"152":1}}],["`x1",{"2":{"68":1}}],["`x1`",{"2":{"68":2}}],["`x2`",{"2":{"68":1}}],["`visvalingamwhyatt`",{"2":{"188":1}}],["`vector",{"2":{"180":1}}],["`vector`",{"2":{"152":1,"158":1}}],["`vᵢ`",{"2":{"68":1}}],["`v`",{"2":{"68":1}}],["`values`",{"2":{"68":1,"152":1}}],["`λs`",{"2":{"68":2}}],["`",{"2":{"68":2,"74":1,"75":2,"78":1,"79":3,"80":1,"81":2,"152":3,"158":2,"159":1,"164":1,"165":1,"172":2,"180":2,"185":1,"188":3,"196":2,"197":1,"198":2}}],["`boolsastypes`",{"2":{"163":1}}],["`bool`",{"2":{"152":2}}],["`barycentric",{"2":{"68":3}}],["`buffer`",{"2":{"62":1}}],["π",{"2":{"61":1,"188":1}}],["δbay",{"2":{"79":3}}],["δbax",{"2":{"79":3}}],["δby",{"2":{"79":5}}],["δbx",{"2":{"79":5}}],["δb",{"2":{"79":2}}],["δay",{"2":{"79":5}}],["δax",{"2":{"79":5}}],["δa",{"2":{"79":2}}],["δintrs",{"2":{"76":2}}],["δy2",{"2":{"150":2}}],["δy1",{"2":{"150":2}}],["δyl",{"2":{"127":4}}],["δy",{"2":{"61":8,"70":3,"124":7}}],["δys",{"2":{"61":1}}],["δx2",{"2":{"150":2}}],["δx1",{"2":{"150":2}}],["δxl",{"2":{"127":4}}],["δx",{"2":{"61":9,"70":3,"124":7}}],["∈",{"2":{"14":1}}],["~",{"2":{"14":3}}],["$ratio",{"2":{"192":1}}],["$rectangle",{"2":{"184":2}}],["$number",{"2":{"192":1}}],["$name",{"2":{"36":2}}],["$min",{"2":{"192":1}}],["$simplify",{"2":{"188":1,"189":1,"191":1}}],["$lg",{"2":{"184":1}}],["$lin",{"2":{"184":2}}],["$geom",{"2":{"188":8}}],["$geo",{"2":{"184":1}}],["$douglas",{"2":{"188":1,"190":1}}],["$d",{"2":{"165":1}}],["$calc",{"2":{"160":1}}],["$crs",{"2":{"160":1,"177":1}}],["$apply",{"2":{"158":1,"178":1,"180":1,"188":1}}],["$tol",{"2":{"192":1}}],["$threaded",{"2":{"160":1}}],["$t",{"2":{"93":1,"158":2,"159":2}}],["$target",{"2":{"75":1,"79":1,"81":1,"161":3}}],["$trait",{"2":{"73":1,"75":2,"79":2,"81":2}}],["$",{"2":{"13":4,"14":1,"68":4,"76":2,"152":3,"172":4,"185":4,"188":12,"196":1}}],["|=",{"2":{"124":4,"127":1}}],["||",{"2":{"61":2,"70":8,"73":1,"76":11,"78":1,"79":5,"80":1,"93":18,"110":2,"124":8,"127":1,"132":1,"152":7,"190":1,"192":3}}],["|",{"2":{"11":4,"124":1}}],["|>",{"2":{"11":8,"13":2,"161":3,"183":1,"184":1,"188":3,"208":2}}],["↩︎",{"2":{"6":1}}],["ᵢᵢᵢ₊₁ᵢᵢ₊₁ᵢᵢ₊₁tᵢ=det",{"2":{"6":1}}],["⋅",{"2":{"6":1,"68":1}}],["qy",{"2":{"13":2,"14":2}}],["qx",{"2":{"13":2,"14":2}}],["q",{"2":{"13":13,"14":12,"76":4}}],["qhull",{"2":{"6":1,"87":1}}],["queue",{"2":{"190":41}}],["questions",{"2":{"79":1}}],["query",{"2":{"76":4}}],["queries",{"2":{"36":1}}],["quite",{"2":{"76":1,"169":1,"208":1}}],["quickly",{"2":{"20":1}}],["quickhull",{"2":{"6":1,"82":1,"87":2}}],["quick",{"2":{"4":1,"6":1,"68":1,"177":1,"187":1}}],["quality",{"2":{"6":1,"188":1}}],["quantity",{"2":{"6":1,"184":1}}],["quot",{"2":{"1":4,"6":6,"25":2,"76":12,"89":2,"90":2,"93":2,"108":4,"124":10,"155":4,"156":2,"158":2,"159":2,"182":6,"200":2,"207":2}}],["zone",{"2":{"201":1}}],["zoom",{"2":{"14":1}}],["zs",{"2":{"152":5}}],["zip",{"2":{"13":1,"14":1,"200":4,"201":1,"202":1}}],["zeros",{"2":{"68":1,"70":1}}],["zero",{"2":{"4":6,"6":8,"58":11,"65":3,"70":11,"76":4,"79":22,"89":1,"90":3,"150":1,"158":1,"190":4}}],["z",{"2":{"4":1,"5":1,"6":7,"68":3,"93":3,"152":3,"164":1,"178":1,"179":9,"193":1,"194":1}}],["0e6",{"2":{"201":6}}],["0example",{"2":{"6":1}}],["09",{"2":{"67":1}}],["08",{"2":{"67":1}}],["06",{"2":{"67":1}}],["02",{"2":{"67":3}}],["04",{"2":{"67":6}}],["071",{"2":{"183":2,"184":2}}],["07",{"2":{"67":6,"183":6,"184":6}}],["00111595449914",{"2":{"200":1}}],["001115954499138",{"2":{"200":3}}],["001",{"2":{"188":1}}],["000008144045314",{"2":{"202":1}}],["00001e6",{"2":{"201":1}}],["00085222666982",{"2":{"202":3}}],["000",{"2":{"188":1,"205":1}}],["00",{"2":{"67":2}}],["008696",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1}}],["05",{"2":{"67":1}}],["052704767595",{"2":{"15":1}}],["03",{"2":{"67":4}}],["01592650896568995",{"2":{"200":1}}],["01362848005",{"2":{"15":1}}],["01",{"2":{"14":1,"67":1,"183":1,"184":1,"200":1,"201":1,"202":1}}],["0^",{"2":{"13":2,"14":2}}],["0+2",{"2":{"13":2,"14":2}}],["0",{"2":{"3":35,"4":12,"6":191,"11":1,"13":5,"14":8,"15":32,"57":9,"58":4,"60":20,"61":3,"64":6,"65":6,"67":155,"68":2,"69":13,"70":5,"72":22,"73":49,"74":42,"76":50,"78":2,"79":21,"80":46,"81":2,"85":1,"89":20,"90":2,"92":13,"93":18,"95":16,"98":6,"99":6,"108":6,"109":12,"110":9,"112":15,"124":37,"126":13,"127":9,"129":12,"130":11,"139":16,"150":21,"152":7,"164":1,"166":2,"169":15,"175":40,"176":4,"179":2,"183":16,"184":13,"185":2,"188":11,"190":7,"192":4,"197":2,"200":35,"201":2,"202":10,"207":13}}],[">=",{"2":{"68":6,"76":2,"110":4,"127":1,"192":1}}],[">geometryops",{"2":{"6":2}}],[">",{"2":{"1":1,"6":6,"11":2,"13":1,"15":2,"55":1,"61":1,"68":1,"70":3,"73":5,"74":1,"75":1,"76":19,"79":2,"80":1,"81":3,"89":1,"93":1,"110":8,"124":10,"127":2,"150":4,"152":12,"161":6,"172":1,"176":3,"185":3,"188":1,"190":12,"192":3,"193":1,"197":1,"208":1}}],["999999967681458e6",{"2":{"201":2}}],["999974634566875",{"2":{"200":1}}],["97",{"2":{"67":1}}],["94",{"2":{"67":1}}],["92",{"2":{"67":1}}],["9im",{"0":{"44":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"124":2,"206":1}}],["9833",{"2":{"15":1}}],["95770326033",{"2":{"15":1}}],["95",{"2":{"13":1,"14":1,"205":1}}],["900",{"2":{"184":1}}],["90063612163",{"2":{"11":2}}],["90`",{"2":{"164":1}}],["90",{"2":{"60":9,"67":1}}],["909318372607",{"2":{"11":3}}],["961329",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1}}],["9",{"2":{"1":1,"6":1,"124":2,"150":12,"183":1,"193":1}}],["897070",{"2":{"205":1}}],["88",{"2":{"67":1}}],["86",{"2":{"67":1}}],["868447876892",{"2":{"15":2}}],["84",{"2":{"67":1}}],["82",{"2":{"67":1}}],["800",{"2":{"67":1}}],["80000",{"2":{"15":5}}],["80",{"2":{"67":1}}],["80869813739",{"2":{"15":2}}],["856614689791036e",{"2":{"15":2}}],["81f70fd20ba2e9992e2c192c14b6558784249217",{"2":{"6":2}}],["83572303404496",{"2":{"6":2,"78":1,"79":1}}],["8",{"2":{"1":3,"6":9,"13":1,"14":1,"74":2,"80":4,"124":1,"152":3,"164":1,"183":1,"193":3,"202":2}}],["karnataka",{"2":{"208":1}}],["kbn",{"2":{"11":2}}],["kinds",{"2":{"28":1,"165":1}}],["kind",{"2":{"9":1,"76":1,"152":1,"206":1}}],["k",{"2":{"6":1,"14":6,"68":1,"76":5,"124":5,"200":5,"202":5}}],["kernel",{"2":{"185":4}}],["keepat",{"2":{"80":1,"176":2}}],["keep",{"2":{"76":3,"152":1,"176":14,"183":1,"207":1}}],["keeping",{"2":{"6":1,"158":1,"178":1}}],["kept",{"2":{"6":1,"179":1}}],["keys",{"2":{"152":4,"158":1}}],["key",{"2":{"6":1,"152":4,"158":2,"196":5}}],["keyword",{"0":{"160":1},"2":{"6":8,"28":1,"36":3,"74":1,"78":1,"80":1,"158":1,"160":7,"177":2,"184":2,"196":4,"201":1,"202":1}}],["keywords",{"2":{"1":2,"4":1,"6":10,"36":1,"124":2,"152":1,"158":1,"160":1,"177":1,"178":2,"180":3,"188":8,"189":1,"190":1,"191":1,"192":1,"194":2}}],["known",{"2":{"20":1,"70":2}}],["know",{"2":{"6":3,"61":2,"70":1,"74":1,"76":3,"78":1,"79":2,"80":1,"81":1,"158":1,"207":1}}],["kw2",{"2":{"162":4}}],["kw1",{"2":{"162":4}}],["kwargs",{"2":{"37":2,"62":3,"70":1,"73":1,"74":3,"75":3,"78":4,"79":5,"80":3,"81":5,"162":8,"165":1,"172":2,"181":1,"184":1}}],["kwdef",{"2":{"36":1,"76":1,"164":2,"184":1,"189":1,"190":1,"191":1}}],["kw",{"2":{"1":1,"6":10,"124":10,"152":20,"155":1,"158":18,"159":3,"161":2,"178":3,"188":15,"191":1,"193":3,"194":3,"196":6}}],["json",{"2":{"204":3}}],["jstep",{"2":{"93":3}}],["jstart",{"2":{"93":7}}],["joined",{"2":{"207":4}}],["joins",{"0":{"206":1},"1":{"207":1,"208":1,"209":1},"2":{"206":3}}],["joinpath",{"2":{"188":2}}],["join",{"2":{"158":2,"159":2,"206":4,"207":5,"209":1}}],["joining",{"2":{"6":2,"188":1,"206":1}}],["jpn",{"2":{"208":2}}],["jp",{"2":{"93":2}}],["jhole",{"2":{"93":2}}],["jh",{"2":{"81":5}}],["j+1",{"2":{"76":1,"152":1,"192":1}}],["j",{"2":{"76":32,"93":8,"110":9,"124":12,"150":2,"152":8,"192":2}}],["jet",{"2":{"67":1}}],["just",{"2":{"4":1,"6":1,"37":1,"65":1,"76":5,"79":4,"81":1,"86":1,"90":2,"152":1,"156":1,"158":2,"159":1,"162":1,"184":1,"185":1,"206":1}}],["julialand",{"2":{"201":2}}],["julialines",{"2":{"57":1}}],["julialinearsegments",{"2":{"6":1}}],["juliahole",{"2":{"200":1}}],["juliaplot",{"2":{"201":2}}],["juliap1",{"2":{"200":1}}],["juliapoly",{"2":{"201":1}}],["juliapolygon3",{"2":{"201":1}}],["juliapolygon1",{"2":{"200":1}}],["juliapolygonize",{"2":{"6":1}}],["juliapolygon",{"2":{"6":1}}],["juliapoints",{"2":{"207":1}}],["juliapoint",{"2":{"200":1}}],["juliaxoffset",{"2":{"200":3,"202":1}}],["juliax",{"2":{"200":2}}],["juliaxrange",{"2":{"89":1}}],["julia$apply",{"2":{"194":1}}],["julia$threaded",{"2":{"177":1}}],["julia6",{"2":{"188":1}}],["julia```jldoctest",{"2":{"197":1}}],["julia```julia",{"2":{"152":1}}],["julia```",{"2":{"110":1,"167":1}}],["julia1",{"2":{"74":1,"78":1,"79":1,"80":1}}],["julia2",{"2":{"73":1}}],["juliabase",{"2":{"68":1,"90":4,"196":1}}],["juliabarycentric",{"2":{"5":3,"6":3}}],["juliagi",{"2":{"11":2}}],["juliago",{"2":{"11":1,"57":1,"60":1,"69":1,"92":1,"95":1,"98":1,"108":1,"112":1,"122":1,"126":1,"129":1,"139":1,"206":1}}],["juliageopoly1",{"2":{"202":1}}],["juliageometry",{"2":{"87":1}}],["juliageointerface",{"2":{"76":1,"197":1}}],["juliageo",{"2":{"6":2,"20":1,"164":1}}],["juliageodesicsegments",{"2":{"6":1}}],["juliageos",{"2":{"6":1}}],["juliaweighted",{"2":{"6":1}}],["juliawithin",{"2":{"3":1,"6":1}}],["juliaunwrap",{"2":{"161":7}}],["juliaunion",{"2":{"6":1,"166":1}}],["juliaunionintersectingpolygons",{"2":{"6":1,"173":1}}],["juliausing",{"2":{"6":1,"13":1,"14":1,"67":1,"183":2,"184":1,"187":1,"188":1,"203":1,"206":1}}],["juliafig",{"2":{"200":1,"201":1}}],["juliaflexijoins",{"2":{"209":1}}],["juliaflatten",{"2":{"161":1}}],["juliaflipped",{"2":{"153":1}}],["juliaflip",{"2":{"6":1}}],["juliafalse",{"2":{"150":1}}],["juliafunction",{"2":{"37":1,"40":1,"41":1,"42":1,"43":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"61":2,"62":2,"65":1,"68":3,"70":2,"73":1,"75":1,"76":11,"79":2,"81":1,"87":1,"90":8,"124":6,"127":2,"132":1,"151":1,"159":2,"161":4,"162":1,"181":1,"184":1,"185":1,"192":2,"198":1}}],["juliafor",{"2":{"36":1,"158":1,"159":1}}],["juliaforcexyz",{"2":{"6":1}}],["juliaforcexy",{"2":{"6":1}}],["juliascatter",{"2":{"207":1}}],["juliasource",{"2":{"201":2}}],["juliastruct",{"2":{"162":1,"163":1,"164":1,"166":1}}],["juliasimplify",{"2":{"6":1,"188":3}}],["juliasigned",{"2":{"4":2,"6":2}}],["juliasegmentize",{"2":{"6":1,"185":1}}],["julias1",{"2":{"6":1}}],["juliavisvalingamwhyatt",{"2":{"6":1}}],["juliaring3",{"2":{"201":1}}],["juliaring1",{"2":{"200":1}}],["juliar",{"2":{"200":2,"201":1,"202":1}}],["juliarebuild",{"2":{"161":1}}],["juliareconstruct",{"2":{"161":1}}],["juliareproject",{"2":{"1":1}}],["juliaradialdistance",{"2":{"6":1}}],["juliamy",{"2":{"209":1}}],["juliamultipoly",{"2":{"188":1}}],["juliamodule",{"2":{"36":1}}],["juliamonotonechainmethod",{"2":{"6":1}}],["juliameanvalue",{"2":{"6":1}}],["juliadf",{"2":{"203":1}}],["juliadestination",{"2":{"201":1}}],["juliadouglaspeucker",{"2":{"6":1}}],["juliadifference",{"2":{"6":1}}],["juliadiffintersectingpolygons",{"2":{"6":1,"173":1}}],["juliadistance",{"2":{"4":1,"6":1}}],["juliadisjoint",{"2":{"3":1,"6":1}}],["juliaexport",{"2":{"56":1,"59":1,"63":1,"66":1,"71":1,"74":1,"78":1,"80":1,"88":1,"91":1,"97":1,"107":1,"111":1,"121":1,"125":1,"128":1,"138":1,"148":1,"152":1,"153":1,"159":1,"163":1,"164":1,"167":1,"168":1,"171":1,"174":1,"179":1,"180":1,"182":1,"188":1,"195":1}}],["juliaend",{"2":{"90":1}}],["juliaenforce",{"2":{"6":1}}],["juliaenum",{"2":{"6":2}}],["juliaeachedge",{"2":{"6":1}}],["juliaembed",{"2":{"4":1,"6":1}}],["juliaequals",{"2":{"4":15,"6":15,"76":1}}],["juliaarclength",{"2":{"166":1}}],["juliaarea",{"2":{"4":1,"6":1}}],["juliaaccuratearithmetic",{"2":{"11":2}}],["juliaabstract",{"2":{"6":3,"162":1,"164":1,"166":1,"172":1,"173":1,"184":1}}],["juliaangles",{"2":{"4":1,"6":1}}],["juliaapplyreduce",{"2":{"1":1,"155":1}}],["juliaapply",{"2":{"1":1,"23":1,"155":1}}],["juliacent",{"2":{"64":1}}],["juliacentroid",{"2":{"4":1,"6":3}}],["juliacut",{"2":{"6":1}}],["juliaclosedring",{"2":{"6":1,"173":1}}],["juliaconst",{"2":{"58":1,"61":1,"68":1,"70":2,"76":1,"90":1,"99":1,"113":1,"130":1,"140":1,"160":1}}],["juliaconvex",{"2":{"6":1,"87":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":{"167":1}}],["juliatransform",{"2":{"1":1,"6":1}}],["juliatrue",{"2":{"93":1,"96":1,"99":1,"109":1,"113":1,"123":1,"127":1,"130":1,"140":1,"150":1}}],["juliatuples",{"2":{"6":1}}],["juliato",{"2":{"6":1}}],["juliatouches",{"2":{"3":1,"6":1}}],["juliat",{"2":{"6":1}}],["juliaoverlaps",{"2":{"3":9,"6":9}}],["juliainnerjoin",{"2":{"208":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,"37":1,"57":1,"60":1,"64":1,"69":1,"72":1,"84":1,"85":1,"86":1,"89":1,"92":1,"95":1,"98":1,"108":1,"112":1,"122":1,"126":1,"129":1,"139":1,"155":1,"169":2,"175":2,"183":1,"204":4,"205":1,"207":1,"208":1}}],["julia",{"2":{"3":1,"6":5,"9":1,"15":1,"30":1,"32":1,"36":1,"37":2,"58":10,"61":4,"65":19,"68":8,"70":18,"73":10,"74":6,"75":1,"76":74,"78":5,"79":29,"80":6,"81":4,"82":1,"87":5,"89":1,"90":4,"93":15,"96":1,"100":1,"101":5,"102":1,"103":1,"104":2,"105":1,"106":1,"109":1,"110":3,"114":1,"115":3,"116":1,"117":1,"118":1,"119":1,"120":1,"123":1,"124":50,"127":7,"131":1,"132":3,"133":1,"134":1,"135":1,"136":1,"137":1,"141":1,"142":3,"143":1,"144":1,"145":2,"146":1,"147":1,"150":9,"151":2,"152":40,"158":52,"159":24,"161":11,"162":2,"165":1,"170":5,"172":1,"176":3,"177":1,"178":1,"180":1,"184":1,"185":2,"188":1,"189":2,"190":15,"191":3,"193":1,"194":1,"195":1,"196":4,"197":1,"198":1,"199":2,"201":2,"204":2,"207":1}}],["julia>",{"2":{"1":5,"6":7,"150":3,"193":7}}],["juliajulia>",{"2":{"1":2,"6":3}}],["jl`",{"2":{"87":1,"180":1,"196":1}}],["jlmethod",{"2":{"6":2}}],["jlobjecttype",{"2":{"6":2}}],["jlbinding",{"2":{"6":2}}],["jldocstring",{"2":{"6":2}}],["jldoctest",{"2":{"6":1}}],["jl",{"0":{"30":1,"36":1},"2":{"1":10,"4":1,"6":15,"10":2,"11":1,"18":2,"20":1,"27":2,"30":2,"32":2,"36":46,"37":1,"55":1,"58":1,"61":1,"62":3,"65":1,"68":1,"70":1,"73":1,"75":1,"76":3,"77":1,"79":1,"81":1,"82":3,"87":6,"90":1,"93":1,"96":1,"106":1,"109":1,"110":1,"120":1,"123":1,"124":1,"127":1,"137":1,"147":1,"150":2,"151":1,"152":1,"158":2,"159":1,"160":1,"161":3,"162":1,"163":2,"164":2,"165":1,"166":1,"167":1,"170":1,"173":1,"176":1,"177":2,"178":1,"179":1,"180":4,"181":3,"182":1,"184":3,"185":2,"188":2,"192":1,"193":6,"194":2,"196":2,"198":1,"201":1,"206":1}}],["+5000000",{"2":{"201":1}}],["+proj=natearth2",{"2":{"201":2}}],["+=",{"2":{"58":2,"65":6,"68":11,"70":10,"73":1,"76":17,"93":1,"110":1,"124":5,"150":1,"176":2,"190":4,"197":3}}],["+f",{"2":{"18":1}}],["+a",{"2":{"18":1}}],["+",{"2":{"1":1,"6":1,"13":1,"14":1,"58":1,"61":4,"65":10,"68":20,"70":7,"73":1,"76":17,"79":10,"90":3,"93":2,"110":2,"124":6,"150":6,"152":2,"155":1,"176":3,"185":2,"190":3,"191":2,"192":2,"200":6,"201":1,"202":4}}],["yticklabelsvisible",{"2":{"201":1}}],["york",{"2":{"208":1}}],["yoffset",{"2":{"200":7,"202":2}}],["your",{"0":{"204":1},"2":{"23":1,"62":1,"152":1,"153":1,"164":1,"181":1,"184":1,"203":1,"204":1,"209":2}}],["you",{"0":{"28":1},"2":{"1":1,"4":1,"5":2,"6":9,"9":1,"11":1,"20":1,"22":1,"23":5,"28":1,"34":2,"58":1,"61":1,"62":1,"65":1,"68":8,"74":1,"76":1,"78":1,"80":1,"86":1,"87":1,"153":1,"158":1,"159":1,"164":1,"165":1,"166":3,"167":1,"169":1,"175":1,"181":1,"183":1,"184":1,"193":1,"201":1,"203":2,"204":3,"207":2,"208":3,"209":4}}],["y=y",{"2":{"197":1}}],["yvec",{"2":{"152":4}}],["ybounds",{"2":{"152":4}}],["yhalf",{"2":{"152":2}}],["ylast",{"2":{"90":3}}],["yfirst",{"2":{"90":5}}],["y0",{"2":{"90":5}}],["yw",{"2":{"70":4}}],["ye",{"2":{"70":4}}],["yet",{"0":{"151":1},"2":{"36":2,"68":1,"73":1,"75":1,"79":1,"81":1,"93":1,"151":1,"152":1,"172":2,"208":1}}],["yrange",{"2":{"67":3,"89":3}}],["yautolimits",{"2":{"67":2}}],["y2",{"2":{"65":2,"70":18,"90":7,"110":10,"124":5,"127":4,"152":5,"185":6,"197":2}}],["y1",{"2":{"65":2,"70":22,"90":7,"110":11,"124":6,"127":5,"152":5,"185":7,"197":2}}],["ycentroid",{"2":{"65":13}}],["yp2",{"2":{"61":4}}],["ys",{"2":{"6":3,"152":30}}],["yind+1",{"2":{"152":1}}],["yind",{"2":{"152":2}}],["yinterior",{"2":{"65":2}}],["yield",{"2":{"79":1,"184":1}}],["yields",{"2":{"6":1,"19":1,"198":1}}],["yi+yi−1",{"2":{"6":1}}],["ymax",{"2":{"6":1,"69":2,"70":48}}],["ymin",{"2":{"6":1,"69":2,"70":49}}],["y",{"2":{"1":2,"4":1,"6":3,"13":9,"14":10,"58":2,"61":8,"64":1,"65":10,"67":8,"69":1,"70":8,"75":6,"76":5,"79":8,"89":2,"90":7,"93":3,"110":21,"124":16,"127":7,"150":10,"153":2,"155":1,"158":1,"178":4,"179":4,"180":1,"185":2,"192":1,"193":2,"194":2,"197":7,"200":8,"201":2,"202":2,"206":1}}],["75",{"2":{"76":1,"89":2,"95":1,"112":1,"139":1}}],["78",{"2":{"67":1}}],["749907",{"2":{"205":1}}],["74",{"2":{"67":1}}],["72",{"2":{"67":1}}],["726711609794",{"2":{"15":1}}],["76",{"2":{"67":1}}],["76085",{"2":{"15":1}}],["768946",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1}}],["704377648755",{"2":{"15":2}}],["700",{"2":{"14":1}}],["700454",{"2":{"6":1,"187":1,"188":1}}],["701141",{"2":{"6":1,"187":1,"188":1}}],["70",{"2":{"6":20,"67":1,"187":20,"188":20,"200":2}}],["738281",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1}}],["7",{"2":{"1":5,"6":4,"124":1,"155":1,"158":1,"183":4,"184":4,"193":4,"202":1}}],["6378137",{"2":{"164":1}}],["6371008",{"2":{"164":1}}],["639343",{"2":{"6":1,"187":1,"188":1}}],["66",{"2":{"67":1}}],["668869",{"2":{"6":1,"187":1,"188":1}}],["64",{"2":{"67":1,"183":2,"184":2}}],["646209",{"2":{"6":1,"187":1,"188":1}}],["629",{"2":{"201":1}}],["627",{"2":{"200":5,"201":2,"202":3}}],["62",{"2":{"67":1}}],["624923",{"2":{"6":1,"187":1,"188":1}}],["6area",{"2":{"65":2}}],["61366192682",{"2":{"15":1}}],["614624",{"2":{"6":1,"187":1,"188":1}}],["605000000000004",{"2":{"183":2}}],["60",{"2":{"67":1,"183":2}}],["60000",{"2":{"15":3}}],["609817",{"2":{"6":1,"187":1,"188":1}}],["603637",{"2":{"6":2,"187":2,"188":2}}],["68",{"2":{"67":1}}],["682601",{"2":{"6":1,"187":1,"188":1}}],["683975",{"2":{"6":1,"187":1,"188":1}}],["694274",{"2":{"6":1,"187":1,"188":1}}],["697021",{"2":{"6":1,"187":1,"188":1}}],["659942",{"2":{"6":1,"187":1,"188":1}}],["6",{"2":{"1":12,"3":4,"6":20,"74":3,"80":3,"124":1,"127":4,"155":3,"158":3,"188":1,"193":9,"202":2}}],["5e6",{"2":{"201":2}}],["55",{"2":{"200":2}}],["57",{"2":{"183":4,"184":4}}],["57725",{"2":{"15":2}}],["5x",{"2":{"158":1}}],["563198",{"2":{"79":1}}],["56",{"2":{"67":1}}],["54",{"2":{"67":1,"200":1}}],["50",{"2":{"67":1,"183":4,"184":4,"200":3}}],["500000",{"2":{"201":1}}],["50000",{"2":{"15":1}}],["500",{"2":{"14":1,"201":1}}],["5d",{"2":{"30":1,"32":1,"164":1}}],["52",{"2":{"67":1,"205":1}}],["52521",{"2":{"15":1}}],["52709",{"2":{"15":2}}],["594711",{"2":{"6":1,"187":1,"188":1}}],["590591",{"2":{"6":1,"187":1,"188":1}}],["595397",{"2":{"6":1,"187":1,"188":1}}],["535",{"2":{"183":4}}],["5355",{"2":{"183":2}}],["53333",{"2":{"15":4}}],["53",{"2":{"6":7,"183":2,"197":7}}],["58",{"2":{"67":1}}],["58059",{"2":{"15":2}}],["587158",{"2":{"6":2,"187":2,"188":2}}],["58375366067548",{"2":{"6":2,"78":1,"79":1}}],["584961",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1}}],["5",{"2":{"1":29,"3":4,"4":8,"6":82,"13":1,"67":1,"72":5,"73":8,"74":16,"80":18,"89":8,"93":8,"124":1,"127":4,"152":1,"155":2,"158":2,"183":1,"184":1,"193":27,"200":26,"201":7,"209":1}}],["499984780817334e6",{"2":{"201":2}}],["49",{"2":{"152":1}}],["4326",{"2":{"201":2,"202":3}}],["43787",{"2":{"15":1}}],["439295815226",{"2":{"15":1}}],["434306",{"2":{"6":1,"187":1,"188":1}}],["484003",{"2":{"150":4}}],["482551",{"2":{"150":4}}],["48268",{"2":{"15":1}}],["48",{"2":{"67":1}}],["48001",{"2":{"15":1}}],["489271",{"2":{"6":2,"197":2}}],["45",{"2":{"67":2,"150":12,"200":1}}],["450",{"2":{"13":1}}],["458369",{"2":{"6":2,"187":2,"188":2}}],["4219350464667047e",{"2":{"200":4}}],["42",{"2":{"13":1,"14":1,"67":3}}],["426283",{"2":{"6":1,"187":1,"188":1}}],["400",{"2":{"67":3}}],["40000",{"2":{"15":1}}],["40",{"2":{"14":1,"67":3}}],["406224",{"2":{"6":1,"187":1,"188":1}}],["404504",{"2":{"6":1,"187":1,"188":1}}],["41",{"2":{"67":1,"202":2}}],["41878",{"2":{"15":1}}],["414248",{"2":{"6":1,"187":1,"188":1}}],["419406",{"2":{"6":1,"187":1,"188":1}}],["44121252392",{"2":{"15":1}}],["44",{"2":{"14":1,"67":2}}],["442901",{"2":{"6":1,"187":1,"188":1}}],["446339",{"2":{"6":1,"187":1,"188":1}}],["477985",{"2":{"150":4}}],["47",{"2":{"67":3}}],["473835",{"2":{"6":1,"187":1,"188":1}}],["472117",{"2":{"6":2,"187":2,"188":2}}],["46",{"2":{"67":3}}],["468107",{"2":{"6":1,"187":1,"188":1}}],["465816",{"2":{"6":1,"187":1,"188":1}}],["464547",{"2":{"6":5,"197":5}}],["4",{"2":{"1":11,"3":4,"6":12,"9":2,"13":2,"14":1,"60":1,"70":1,"96":1,"109":1,"113":1,"124":2,"140":1,"150":1,"155":3,"158":3,"183":1,"190":1,"193":8,"201":2,"204":2,"205":1}}],["358421",{"2":{"205":1}}],["3585",{"2":{"183":1}}],["35",{"2":{"67":3}}],["354492",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1}}],["38",{"2":{"67":3}}],["36",{"2":{"67":2}}],["360",{"2":{"61":1}}],["36022",{"2":{"15":1}}],["32610",{"2":{"201":3}}],["32",{"2":{"67":3}}],["377956",{"2":{"205":1}}],["37",{"2":{"67":5}}],["34",{"2":{"67":3}}],["31",{"2":{"67":2}}],["300",{"2":{"89":1}}],["30",{"2":{"14":2,"67":3,"200":2}}],["3390",{"2":{"124":1}}],["33333333333",{"2":{"15":1}}],["333333333336",{"2":{"15":3}}],["33",{"2":{"6":20,"187":20,"188":20}}],["3d",{"2":{"4":1,"6":2,"68":2,"76":2,"93":1,"161":1,"179":2,"182":1}}],["3",{"2":{"1":13,"3":4,"5":1,"6":27,"14":2,"64":6,"68":13,"74":6,"76":1,"80":5,"92":1,"96":1,"109":1,"113":1,"124":2,"126":1,"140":1,"152":7,"155":3,"158":3,"164":2,"169":1,"175":7,"183":4,"188":3,"190":2,"192":1,"193":11,"197":1,"201":1,"202":1,"207":1}}],["394759",{"2":{"6":1,"187":1,"188":1}}],["392466",{"2":{"6":1,"187":1,"188":1}}],["395332",{"2":{"6":1,"187":1,"188":1}}],["399918",{"2":{"6":2,"187":2,"188":2}}],["39",{"0":{"35":1},"2":{"0":1,"3":1,"4":5,"6":22,"7":1,"9":2,"18":1,"20":5,"21":2,"22":2,"23":1,"24":1,"28":1,"34":1,"37":1,"57":1,"58":1,"61":1,"64":6,"65":3,"66":1,"67":3,"68":2,"70":1,"72":1,"73":1,"75":1,"76":37,"78":4,"79":1,"81":2,"86":2,"90":4,"93":7,"98":1,"108":2,"115":2,"124":19,"127":1,"129":2,"132":2,"152":3,"153":2,"158":6,"159":4,"162":2,"163":3,"164":1,"166":1,"167":2,"173":6,"174":1,"179":1,"183":6,"184":1,"186":1,"188":2,"196":6,"199":1,"200":6,"201":6,"202":4,"203":4,"204":5,"206":1,"208":1,"209":2}}],["2pi",{"2":{"200":1,"201":1,"202":1}}],["2nd",{"2":{"79":6}}],["23",{"2":{"67":3,"124":1}}],["23699059147",{"2":{"15":1}}],["28",{"2":{"67":2}}],["28083",{"2":{"15":2}}],["26",{"2":{"67":5,"124":2}}],["24",{"2":{"67":7,"124":1}}],["274364",{"2":{"74":1,"78":1,"80":1}}],["274363",{"2":{"74":1,"78":1,"80":1}}],["27",{"2":{"67":2}}],["275543",{"2":{"6":5,"197":5}}],["2^",{"2":{"14":1}}],["21",{"2":{"67":4,"124":2,"202":4}}],["21427",{"2":{"11":5}}],["215118",{"2":{"6":2,"197":2}}],["25",{"2":{"67":3,"95":1,"124":1,"139":1,"202":3}}],["258",{"2":{"11":1}}],["257223563`",{"2":{"184":1}}],["257223563",{"2":{"6":2,"164":1,"184":1}}],["29",{"2":{"67":3,"205":1}}],["29th",{"0":{"8":1},"1":{"9":1,"10":1}}],["298",{"2":{"6":2,"164":1,"184":2}}],["20340",{"2":{"204":1}}],["2018",{"2":{"124":1}}],["2017",{"2":{"6":1,"68":1}}],["20",{"2":{"67":3,"124":2,"200":6,"202":1}}],["2024",{"0":{"7":1,"8":1},"1":{"9":1,"10":1}}],["20th",{"0":{"7":1}}],["2d",{"2":{"6":1,"30":1,"32":1,"161":1,"164":4,"179":2,"182":1}}],["22",{"2":{"67":3,"124":1}}],["22168",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1}}],["224758",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1}}],["2",{"2":{"1":19,"3":9,"5":1,"6":45,"13":1,"14":1,"15":3,"18":1,"30":2,"32":2,"37":1,"58":1,"61":3,"64":2,"65":4,"67":6,"68":32,"69":6,"70":7,"72":1,"73":2,"76":13,"79":2,"80":1,"84":1,"85":1,"86":3,"87":1,"89":1,"90":3,"93":4,"96":2,"109":2,"110":2,"112":2,"113":3,"124":11,"140":2,"150":2,"152":23,"155":2,"158":5,"159":2,"164":2,"169":1,"176":1,"185":1,"188":5,"190":7,"191":7,"192":5,"193":18,"197":8,"198":2,"200":3,"203":1,"205":1}}],["1st",{"2":{"79":6}}],["1998",{"2":{"74":1,"78":1,"80":1}}],["19",{"2":{"67":2,"124":2}}],["110m",{"2":{"201":2}}],["110",{"2":{"85":1,"201":1}}],["1116",{"2":{"19":1}}],["11",{"2":{"15":2,"67":2,"124":1,"158":1}}],["1145",{"2":{"74":1,"78":1,"80":1}}],["114",{"2":{"7":1}}],["165644",{"2":{"150":2}}],["163434",{"2":{"150":2}}],["169356",{"2":{"150":2}}],["166644",{"2":{"150":2}}],["164434",{"2":{"150":2}}],["16111",{"2":{"15":1}}],["16",{"2":{"13":1,"14":1,"67":2,"124":2}}],["180",{"2":{"61":1,"150":1,"164":2}}],["18593721105",{"2":{"15":1}}],["18",{"2":{"13":1,"14":1,"67":3,"124":2}}],["13401805979",{"2":{"15":2}}],["13",{"2":{"6":3,"67":1,"74":1,"80":2,"124":1}}],["10n",{"2":{"201":1}}],["10^9",{"2":{"13":1}}],["1000000",{"2":{"201":1}}],["1000",{"2":{"13":2,"183":2,"201":1,"207":2}}],["100",{"2":{"6":2,"14":3,"84":1,"86":1,"152":2,"205":1}}],["10",{"2":{"6":12,"11":1,"57":1,"67":5,"72":4,"73":10,"74":2,"78":1,"80":2,"92":2,"124":3,"126":2,"184":1,"188":4,"200":1}}],["14404531208901e",{"2":{"202":2}}],["14",{"2":{"3":1,"6":5,"67":2,"78":2,"79":2,"122":1,"123":1,"124":1,"183":2,"184":2}}],["15",{"2":{"3":1,"6":4,"67":1,"72":1,"73":1,"78":1,"79":1,"122":1,"123":1,"124":1}}],["170356",{"2":{"150":2}}],["17",{"2":{"3":1,"6":3,"67":3,"78":1,"79":1,"122":1,"123":1,"124":2}}],["125",{"2":{"6":2,"78":1,"79":1}}],["127",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1,"201":1}}],["123",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1}}],["126",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1}}],["12",{"2":{"3":1,"6":3,"67":2,"78":1,"79":1,"122":1,"123":1,"124":1,"208":1}}],["124",{"2":{"3":1,"6":3,"78":1,"79":1,"122":1,"123":1}}],["1",{"2":{"1":8,"3":38,"6":59,"13":1,"14":4,"15":1,"57":7,"60":4,"61":15,"64":4,"65":7,"66":2,"67":11,"68":16,"69":9,"70":15,"72":1,"73":10,"75":3,"76":72,"79":9,"80":4,"81":11,"86":6,"89":7,"90":6,"93":16,"95":2,"96":6,"98":2,"99":2,"108":2,"109":8,"110":12,"112":2,"113":5,"124":38,"127":6,"129":4,"130":5,"132":1,"139":2,"140":6,"150":16,"152":27,"155":2,"158":8,"159":4,"161":1,"162":1,"169":5,"170":2,"176":9,"184":1,"185":4,"188":8,"190":15,"191":3,"192":15,"193":6,"197":9,"198":2,"200":8,"201":6,"202":4,"203":1,"207":8,"208":3}}],["bx",{"2":{"150":2}}],["bigger",{"2":{"76":1}}],["bit",{"2":{"30":1,"32":1,"192":8,"200":2}}],["b2y",{"2":{"79":4}}],["b2x",{"2":{"79":4}}],["b2",{"2":{"76":2,"79":47,"90":3,"127":6}}],["b2t",{"2":{"76":9}}],["b1y",{"2":{"79":7}}],["b1x",{"2":{"79":7}}],["b1",{"2":{"76":10,"79":63,"127":6}}],["b1t",{"2":{"76":9}}],["b``",{"2":{"75":1}}],["b`",{"2":{"75":3,"79":4,"81":4}}],["breaks",{"2":{"176":1}}],["break",{"2":{"70":1,"75":2,"76":3,"93":4,"124":11,"127":1,"152":6,"176":2}}],["brevity",{"2":{"68":1}}],["broadcasting",{"2":{"6":1,"68":1}}],["broken",{"2":{"3":1,"6":1,"110":1}}],["building",{"2":{"200":1}}],["build",{"2":{"73":1,"74":1,"76":13,"78":1,"80":1,"183":2,"191":1,"192":1}}],["built",{"2":{"22":1,"25":1}}],["buffers",{"2":{"152":1}}],["buffered",{"2":{"62":2}}],["buffering",{"2":{"62":1,"68":1,"76":1}}],["buffer",{"0":{"62":1},"2":{"36":2,"62":5,"65":2,"76":1}}],["but",{"2":{"1":2,"3":5,"4":3,"6":12,"18":1,"20":1,"21":1,"23":1,"27":1,"30":1,"32":1,"36":1,"37":1,"57":1,"58":1,"61":1,"70":1,"76":5,"79":2,"81":2,"86":2,"87":2,"93":4,"98":2,"124":1,"126":1,"127":5,"129":1,"130":1,"133":2,"134":1,"139":1,"150":1,"151":1,"152":1,"155":2,"156":1,"158":12,"159":4,"161":5,"162":1,"164":7,"165":1,"166":1,"167":1,"178":1,"180":1,"185":2,"188":1,"196":2,"201":2,"202":2,"204":1,"206":1,"207":1,"208":2}}],["black",{"2":{"72":1,"201":1}}],["blue",{"2":{"14":1,"72":1,"92":2,"95":2,"112":2,"126":2,"139":2,"165":1,"207":2}}],["bloat",{"2":{"202":1}}],["block",{"2":{"6":2,"200":1}}],["blob",{"2":{"6":2,"188":1}}],["balancing",{"2":{"158":2,"159":2}}],["barrier",{"2":{"158":1}}],["barycentric",{"0":{"5":1,"66":1,"68":1},"1":{"67":1,"68":1},"2":{"0":6,"5":10,"6":17,"9":1,"36":1,"66":9,"67":4,"68":52}}],["basic",{"2":{"152":1}}],["base",{"2":{"36":4,"37":1,"62":1,"68":15,"76":3,"94":1,"152":6,"158":3,"159":2,"164":2,"165":2,"167":1,"181":1,"184":2,"196":3}}],["based",{"2":{"4":2,"6":2,"24":1,"58":2,"61":2,"65":1,"67":2,"70":1,"90":2,"93":1,"99":1,"113":1,"124":2,"127":1,"130":1,"140":1,"167":1,"204":1,"206":1,"207":1}}],["badge",{"2":{"6":2}}],["backing",{"2":{"76":1}}],["backwards",{"2":{"75":1,"76":1,"79":1,"81":1}}],["backs",{"2":{"73":4}}],["backend",{"2":{"36":1,"62":2,"196":1}}],["back",{"2":{"6":1,"20":1,"23":1,"27":1,"28":1,"73":4,"196":1}}],["b",{"2":{"3":2,"4":7,"6":13,"40":2,"41":2,"42":2,"43":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"70":9,"74":26,"75":18,"76":240,"77":3,"78":26,"79":77,"80":27,"81":39,"93":29,"124":2,"127":22,"203":1}}],["bouncings",{"2":{"76":1}}],["bouncing",{"2":{"75":3,"76":13,"79":4,"81":4}}],["bounce",{"2":{"74":1,"75":1,"76":8,"78":1,"79":1,"80":1,"81":1}}],["bound",{"2":{"77":1}}],["bounding",{"2":{"69":2,"70":3,"76":1}}],["boundscheck",{"2":{"68":14}}],["bounds",{"2":{"6":1,"152":4}}],["boundaries",{"2":{"3":2,"6":2,"108":2,"112":1,"113":1,"122":1,"123":1,"124":2,"152":1}}],["boundary",{"2":{"3":7,"6":7,"89":1,"95":1,"96":1,"98":1,"99":3,"102":4,"109":2,"110":9,"113":2,"115":1,"116":6,"117":3,"124":18,"129":2,"130":4,"132":3,"133":5,"134":3,"135":3,"139":1,"140":3}}],["box",{"2":{"69":2,"70":3,"207":1}}],["bold",{"2":{"62":1,"165":3,"181":1,"184":1}}],["both",{"2":{"3":5,"6":6,"76":3,"79":4,"80":1,"81":1,"86":2,"89":1,"93":3,"96":1,"110":4,"113":1,"124":2,"127":1,"134":1,"140":1,"183":1,"185":1}}],["booltype",{"2":{"36":1,"158":2,"159":1,"163":6,"185":1}}],["booleans",{"2":{"76":1,"124":2}}],["boolean",{"0":{"44":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"29":2,"75":1,"76":1,"79":1,"81":1,"163":2,"206":1}}],["boolsastypes",{"0":{"29":1,"163":1},"2":{"36":1,"37":1,"163":12,"185":3}}],["bools",{"2":{"10":1}}],["bool",{"2":{"3":17,"4":14,"6":40,"37":1,"76":4,"93":17,"96":1,"99":1,"109":2,"110":13,"113":1,"123":1,"124":2,"127":10,"130":2,"140":1,"150":7,"152":6,"163":2,"185":3,"197":5}}],["bypred",{"2":{"209":1}}],["by",{"0":{"103":1,"104":1,"144":1},"2":{"1":3,"3":2,"4":8,"6":29,"7":1,"22":1,"23":2,"24":1,"27":1,"29":1,"30":1,"31":1,"32":1,"57":1,"58":1,"60":1,"61":6,"62":1,"64":5,"65":4,"68":4,"69":1,"70":6,"72":1,"73":6,"74":1,"76":15,"78":1,"79":5,"80":4,"81":3,"87":2,"90":5,"93":8,"96":1,"98":1,"99":1,"103":2,"104":2,"105":1,"106":2,"108":1,"120":2,"124":10,"150":2,"152":4,"158":2,"161":7,"164":8,"173":2,"174":1,"176":3,"178":1,"179":1,"180":2,"181":1,"182":1,"184":3,"185":1,"186":1,"188":1,"189":1,"190":3,"191":1,"193":1,"200":1,"201":1,"202":1,"204":1,"206":5,"207":1,"208":2,"209":1}}],["berlin",{"2":{"208":1}}],["bessel",{"2":{"162":1}}],["best",{"2":{"24":1,"158":2,"164":2,"166":1,"188":1}}],["bearing",{"2":{"150":4}}],["beauty",{"2":{"9":1}}],["bedge",{"2":{"76":3}}],["because",{"2":{"76":2,"87":1,"153":1,"159":1,"164":1,"195":1}}],["becomes",{"2":{"76":1,"164":1}}],["become",{"2":{"27":1}}],["been",{"2":{"75":1,"152":1,"153":2,"159":1,"163":1}}],["being",{"2":{"61":1,"79":1,"124":1,"127":1,"174":1}}],["behind",{"2":{"30":1,"31":1,"32":1,"67":1,"153":1,"159":1}}],["behaviours",{"2":{"37":1}}],["behaviour",{"2":{"6":1,"23":1,"28":1,"188":1}}],["better",{"2":{"20":1,"110":1,"158":2,"159":2,"188":1}}],["between",{"2":{"4":4,"6":18,"28":1,"61":2,"68":13,"70":18,"74":1,"75":4,"76":2,"78":1,"79":11,"80":2,"81":4,"90":8,"93":1,"124":4,"127":4,"152":1,"164":2,"184":3,"185":1,"189":2,"190":2,"191":1,"201":1,"206":2,"207":1}}],["benchmarking",{"2":{"184":1,"188":1}}],["benchmarkgroup",{"2":{"184":2,"188":3}}],["benchmark",{"0":{"184":1,"188":1},"2":{"184":1,"188":1}}],["benchmarktools",{"2":{"13":1,"184":1,"188":1}}],["benchmarks",{"2":{"9":2}}],["beginning",{"2":{"70":1,"200":1}}],["begin+1",{"2":{"68":5}}],["begin",{"2":{"9":1,"68":7,"158":2,"159":2,"189":1,"204":1}}],["beware",{"2":{"6":1,"23":1,"185":1}}],["before",{"2":{"6":4,"38":1,"68":1,"74":1,"78":1,"79":1,"80":1,"188":1,"201":1}}],["below",{"2":{"6":2,"22":1,"62":1,"172":1,"190":1,"191":1,"192":1,"204":1}}],["be",{"2":{"1":7,"3":3,"4":11,"5":4,"6":63,"7":1,"9":1,"13":2,"18":1,"19":1,"20":1,"25":3,"28":2,"29":1,"30":3,"31":1,"32":3,"36":1,"37":1,"58":7,"61":8,"62":2,"64":1,"65":3,"66":2,"67":1,"68":10,"69":1,"70":2,"73":1,"74":7,"75":4,"76":14,"78":7,"79":12,"80":6,"81":5,"87":6,"89":2,"90":4,"93":15,"99":6,"108":2,"109":1,"113":6,"124":21,"127":2,"130":6,"140":6,"142":1,"143":1,"144":1,"145":1,"150":2,"152":1,"155":4,"156":2,"157":2,"158":9,"159":1,"160":1,"161":6,"162":4,"163":1,"164":9,"166":3,"169":1,"170":1,"171":1,"172":3,"173":4,"174":2,"176":2,"177":1,"179":5,"180":3,"181":1,"182":1,"184":8,"185":3,"188":10,"190":1,"192":3,"193":1,"196":2,"200":2,"202":1,"206":4}}],["hypot",{"2":{"185":1}}],["h2",{"2":{"124":6}}],["h1",{"2":{"124":11}}],["hm",{"2":{"67":2}}],["h",{"2":{"61":2,"76":2,"81":8}}],["human",{"2":{"204":1}}],["huilier",{"2":{"21":1}}],["hull`",{"2":{"87":2}}],["hulls",{"2":{"6":1,"82":1,"87":1}}],["hull",{"0":{"55":1,"82":1,"84":1,"85":1},"1":{"83":1,"84":1,"85":1,"86":1,"87":1},"2":{"0":1,"6":8,"36":2,"55":1,"82":2,"84":4,"85":1,"86":10,"87":15}}],["href=",{"2":{"6":2}}],["https",{"2":{"6":2,"74":1,"78":1,"79":1,"80":1,"87":1,"124":2,"164":1,"190":1}}],["high",{"2":{"204":1}}],["highest",{"2":{"202":1}}],["higher",{"2":{"6":1,"87":1}}],["hit",{"2":{"76":1,"158":1,"159":1,"161":3}}],["hits",{"2":{"23":1}}],["hidedecorations",{"2":{"67":2}}],["hinter",{"2":{"36":3,"62":1,"181":1,"184":1}}],["hint",{"2":{"36":3,"62":1,"184":1}}],["hinge=2",{"2":{"78":1}}],["hinge`",{"2":{"78":1}}],["hinge",{"2":{"6":1,"76":1,"79":13,"124":15}}],["hist",{"2":{"13":1}}],["histogram",{"2":{"13":1}}],["hcat",{"2":{"6":1}}],["heavily",{"2":{"158":1}}],["heatmap",{"2":{"13":5,"14":6,"67":2,"89":2,"152":1}}],["hello",{"2":{"162":1}}],["help",{"2":{"76":1,"163":1,"164":1}}],["helpers",{"0":{"76":1},"2":{"110":1,"127":1}}],["helper",{"0":{"75":1,"79":1,"81":1},"2":{"65":1,"73":1,"76":1}}],["helps",{"2":{"35":1}}],["held",{"2":{"1":1,"155":1,"158":1}}],["here",{"2":{"6":2,"9":1,"13":1,"14":1,"18":1,"25":1,"68":1,"79":1,"87":2,"110":1,"152":2,"158":2,"161":3,"164":1,"166":2,"169":1,"184":1,"201":2,"206":5,"207":3}}],["hours",{"2":{"208":1}}],["hood",{"2":{"204":1}}],["hook",{"2":{"6":1,"188":1}}],["home",{"2":{"201":1}}],["horizontal",{"2":{"70":1,"79":1,"152":1,"188":1}}],["hormann",{"0":{"75":1,"79":1,"81":1},"2":{"6":2,"68":2,"73":2,"74":1,"76":3,"78":1,"80":1}}],["how",{"0":{"20":1,"31":1},"2":{"6":1,"18":1,"31":2,"57":1,"68":1,"76":1,"79":1,"93":1,"152":2,"161":2,"178":1,"188":1,"201":1,"204":1,"206":2,"207":2,"208":1,"209":1}}],["however",{"2":{"3":1,"6":2,"21":1,"61":1,"65":1,"68":1,"76":1,"79":1,"86":1,"89":1,"93":1,"95":1,"109":1,"174":1}}],["hole",{"2":{"58":3,"61":1,"65":4,"67":2,"68":9,"70":3,"74":6,"76":60,"78":2,"81":15,"90":3,"102":1,"103":1,"104":1,"124":33,"152":5,"170":2,"200":1}}],["holes=",{"2":{"76":1}}],["holes",{"2":{"4":3,"5":1,"6":4,"9":2,"57":1,"61":2,"65":1,"68":2,"73":4,"74":2,"76":19,"78":2,"80":6,"81":29,"90":3,"93":3,"118":1,"124":11,"142":1,"152":17,"170":2,"200":4}}],["holds",{"2":{"76":1,"167":2,"186":1}}],["holding",{"2":{"6":1,"152":1,"158":2}}],["hold",{"2":{"6":1,"152":1,"163":1,"188":1,"204":1}}],["halign",{"2":{"188":1}}],["half",{"2":{"69":2}}],["hail",{"2":{"170":1}}],["handling",{"0":{"181":1},"2":{"153":1}}],["handler",{"2":{"62":1,"181":1}}],["handle",{"2":{"36":1,"150":1,"156":2,"158":1,"201":1}}],["handled",{"2":{"23":1}}],["hao",{"2":{"124":1}}],["had",{"2":{"74":1,"78":1,"93":1,"163":1,"183":1}}],["happens",{"2":{"76":1}}],["happen",{"2":{"29":1,"158":1}}],["have",{"2":{"3":3,"4":9,"6":15,"24":1,"28":1,"38":1,"58":3,"61":2,"62":1,"68":6,"76":6,"79":1,"87":2,"89":1,"90":2,"93":10,"124":5,"126":1,"127":3,"129":1,"130":1,"151":1,"152":1,"153":2,"157":1,"158":2,"159":3,"161":5,"162":3,"163":1,"164":2,"165":1,"166":2,"188":1,"190":1,"196":1,"200":1,"201":1,"206":1,"207":1,"208":3}}],["hasm",{"2":{"161":2}}],["hasz",{"2":{"161":2}}],["haskey",{"2":{"158":1,"196":1}}],["hash",{"2":{"152":1}}],["hasn",{"2":{"152":1}}],["hassle",{"2":{"1":1,"6":1,"193":1}}],["has",{"2":{"1":4,"6":1,"18":1,"57":2,"60":1,"68":2,"75":2,"76":2,"79":1,"81":1,"89":1,"90":1,"93":11,"132":1,"150":1,"155":4,"158":6,"162":1,"168":1,"179":1,"183":2,"192":1,"201":1}}],["xticklabelsvisible",{"2":{"201":1}}],["xticklabelrotation",{"2":{"13":2}}],["xoffset",{"2":{"200":4,"202":1}}],["x=x",{"2":{"197":1}}],["xplusoneoperation",{"2":{"166":1}}],["xp2",{"2":{"61":5}}],["x`",{"2":{"158":1}}],["xvec",{"2":{"152":4}}],["xbounds",{"2":{"152":4}}],["xhalf",{"2":{"152":2}}],["xlast",{"2":{"90":3}}],["xfirst",{"2":{"90":5}}],["x0",{"2":{"90":5}}],["xn",{"2":{"70":4}}],["xrange",{"2":{"67":3,"89":2}}],["xautolimits",{"2":{"67":2}}],["xind+1",{"2":{"152":1}}],["xind",{"2":{"152":2}}],["xinterior",{"2":{"65":2}}],["xi−xi−1",{"2":{"6":1}}],["xcentroid",{"2":{"65":13}}],["x26",{"2":{"58":6,"61":2,"62":4,"68":1,"70":36,"74":4,"75":4,"76":74,"79":24,"81":2,"90":3,"93":14,"105":2,"106":2,"110":48,"119":2,"120":2,"124":170,"127":22,"132":2,"136":2,"137":2,"146":2,"147":2,"150":4,"152":12,"158":2,"172":2,"176":6,"181":2,"184":2,"190":10,"191":2,"197":4,"206":4}}],["x2",{"2":{"6":3,"65":2,"68":4,"70":18,"90":8,"110":10,"124":5,"127":4,"152":5,"185":6,"197":2}}],["x1",{"2":{"6":4,"65":2,"68":3,"70":22,"90":8,"110":11,"124":6,"127":5,"152":5,"185":7,"197":2}}],["xs",{"2":{"6":3,"70":4,"152":30,"197":4}}],["xmax",{"2":{"6":1,"69":2,"70":48}}],["xmin",{"2":{"6":1,"69":2,"70":49}}],["x3c",{"2":{"5":1,"6":28,"36":1,"58":2,"61":4,"68":66,"70":11,"73":3,"74":1,"76":18,"78":1,"79":6,"80":1,"89":1,"90":13,"93":2,"110":33,"124":13,"127":10,"150":1,"152":4,"158":3,"159":2,"161":19,"162":14,"163":5,"164":6,"165":2,"166":4,"167":4,"170":2,"173":3,"176":5,"184":2,"189":2,"190":6,"191":3,"192":9,"198":1,"209":1}}],["xy`",{"2":{"180":1}}],["xyz",{"0":{"179":1}}],["xy",{"0":{"179":1},"2":{"1":4,"68":1,"180":3}}],["x",{"2":{"1":4,"4":1,"6":3,"7":1,"9":5,"11":6,"13":11,"14":10,"15":4,"55":2,"58":2,"61":9,"64":1,"65":10,"67":8,"69":1,"70":8,"73":6,"75":9,"76":20,"79":18,"81":9,"89":2,"90":7,"93":3,"110":21,"124":16,"127":7,"150":11,"152":2,"153":2,"155":3,"158":5,"159":4,"161":10,"162":1,"163":5,"166":1,"172":2,"177":2,"178":4,"179":5,"180":1,"185":2,"188":2,"190":2,"192":1,"193":2,"194":2,"197":33,"200":6,"201":2,"202":2,"206":1,"208":2}}],["=>",{"2":{"158":2}}],["=float64",{"2":{"65":3,"78":1,"80":1}}],["=false",{"2":{"61":1}}],["===",{"2":{"110":8,"150":4}}],["==",{"2":{"9":1,"24":1,"37":1,"58":2,"61":4,"62":2,"65":1,"68":9,"70":30,"75":1,"76":40,"79":20,"80":2,"81":1,"85":1,"89":1,"93":16,"124":44,"127":2,"150":3,"152":18,"158":2,"170":1,"172":1,"176":1,"181":1,"184":2,"188":1,"192":3}}],["=",{"2":{"1":5,"3":17,"4":7,"5":2,"6":60,"11":1,"13":19,"14":33,"15":18,"36":4,"37":7,"40":2,"41":2,"42":2,"43":2,"55":3,"57":6,"58":25,"60":4,"61":56,"62":3,"64":6,"65":36,"67":35,"68":110,"69":6,"70":96,"72":7,"73":29,"74":21,"75":30,"76":358,"78":18,"79":143,"80":21,"81":78,"84":6,"85":4,"86":14,"87":4,"89":15,"90":52,"92":7,"93":40,"95":7,"96":3,"98":4,"99":23,"100":3,"101":7,"102":14,"103":14,"104":4,"105":2,"106":2,"108":5,"109":3,"110":57,"112":7,"113":18,"114":3,"115":11,"116":17,"117":9,"118":3,"119":2,"120":2,"122":3,"123":3,"124":189,"126":7,"127":40,"129":3,"130":22,"131":3,"132":9,"133":14,"134":10,"135":6,"136":2,"137":2,"139":7,"140":22,"141":3,"142":11,"143":14,"144":14,"145":4,"146":2,"147":2,"150":32,"152":110,"153":1,"155":3,"158":45,"159":25,"160":4,"161":41,"162":6,"163":2,"164":3,"165":7,"166":3,"167":6,"169":2,"170":4,"172":9,"175":3,"176":30,"177":1,"179":4,"181":2,"183":16,"184":21,"185":25,"186":2,"187":5,"188":60,"189":11,"190":49,"191":7,"192":43,"193":2,"194":1,"196":3,"197":42,"198":9,"200":45,"201":19,"202":16,"203":3,"204":4,"205":7,"207":12,"208":6,"209":2}}],["utm",{"2":{"201":1}}],["utility",{"0":{"197":1},"2":{"36":1,"68":1,"158":1,"159":1}}],["utils",{"0":{"192":1},"2":{"36":5}}],["u2",{"2":{"124":4}}],["u1",{"2":{"124":4}}],["update",{"2":{"76":6,"152":10}}],["updated",{"2":{"76":6,"161":3}}],["updates",{"2":{"68":1}}],["up",{"2":{"76":2,"79":1,"124":1,"134":1,"156":1,"175":1,"190":2,"200":2}}],["upper",{"2":{"6":1,"152":1,"207":1}}],["uv",{"2":{"68":1}}],["us",{"2":{"58":1,"87":1,"201":1,"208":1}}],["usage",{"2":{"208":1}}],["usa",{"0":{"85":1},"2":{"19":1,"85":4,"188":15,"208":3}}],["usually",{"2":{"18":1,"31":2,"82":1,"158":1,"161":2,"164":1,"204":1}}],["usual",{"2":{"6":1,"170":1,"173":1}}],["usecases",{"2":{"30":1,"32":1}}],["uses",{"2":{"6":3,"20":1,"82":1,"87":1,"124":1,"164":1,"180":1,"184":1,"185":1,"188":1,"204":1}}],["users",{"2":{"36":1,"153":1,"174":1}}],["user",{"2":{"6":12,"28":1,"65":1,"74":3,"78":3,"80":3,"158":1,"166":1,"189":1,"190":1,"191":1,"206":1}}],["useful",{"2":{"6":10,"68":1,"76":1,"152":1,"182":1,"185":1,"188":2,"196":1}}],["used",{"2":{"1":1,"5":1,"6":4,"20":2,"58":1,"61":1,"65":2,"66":1,"68":1,"70":1,"73":1,"76":7,"79":1,"89":1,"90":1,"93":1,"127":1,"152":2,"155":1,"158":2,"159":1,"161":2,"162":1,"164":3,"167":1,"168":1,"188":1,"190":2,"195":2,"198":1,"201":1,"204":1,"206":2,"207":1}}],["use",{"2":{"1":2,"4":1,"5":1,"6":10,"11":1,"18":1,"20":3,"25":1,"28":1,"31":1,"68":1,"76":2,"81":1,"87":2,"110":2,"127":1,"151":1,"152":1,"155":1,"158":4,"159":3,"160":1,"164":2,"165":1,"166":1,"170":1,"178":1,"183":1,"185":2,"188":1,"190":2,"196":3,"200":1,"204":1,"206":2,"209":2}}],["using",{"0":{"201":1},"2":{"1":4,"4":1,"5":3,"6":11,"11":4,"13":4,"14":1,"15":1,"20":1,"36":7,"37":1,"55":1,"57":2,"58":2,"60":1,"61":1,"62":3,"64":2,"65":1,"67":4,"68":7,"69":2,"70":1,"72":2,"73":1,"75":3,"76":5,"77":1,"79":4,"81":3,"84":1,"85":2,"86":1,"87":2,"89":2,"90":2,"92":2,"93":1,"95":2,"96":1,"98":2,"99":1,"106":1,"108":2,"109":1,"110":1,"112":2,"113":1,"120":1,"122":2,"123":1,"124":1,"126":2,"127":1,"129":2,"130":1,"137":1,"139":2,"140":1,"147":1,"150":1,"151":1,"152":6,"153":2,"155":1,"156":1,"158":4,"159":2,"160":1,"161":1,"162":1,"163":1,"164":2,"165":1,"166":1,"167":1,"170":1,"173":1,"176":1,"177":2,"178":1,"179":1,"180":1,"181":3,"183":1,"184":5,"185":1,"188":3,"190":1,"192":1,"193":4,"194":2,"196":2,"198":1,"199":4,"200":1,"202":1,"203":2,"205":1,"206":1,"207":4,"208":2}}],["until",{"2":{"152":3,"156":1,"190":1,"196":1}}],["unprocessed",{"2":{"76":1}}],["unmatched",{"2":{"70":26,"76":9}}],["unknown=3",{"2":{"76":1}}],["unknown",{"2":{"70":15,"76":4}}],["undef",{"2":{"61":2,"76":1,"189":1,"190":1,"192":2,"197":2}}],["understand",{"2":{"195":1}}],["underspecified",{"2":{"166":1}}],["under",{"2":{"17":1,"58":2,"204":1}}],["undergrad",{"2":{"9":1}}],["unwrap",{"0":{"161":1},"2":{"36":2,"161":19}}],["unless",{"2":{"27":1,"75":2,"76":1,"79":2,"81":2,"158":1,"164":1}}],["unlike",{"2":{"23":1,"195":1}}],["unstable",{"2":{"13":1,"158":1,"163":1}}],["unneeded",{"2":{"6":3,"74":2,"76":1,"78":2,"80":2}}],["unnecessary",{"2":{"6":3,"152":1,"189":1,"190":1,"191":1}}],["universal",{"2":{"201":1}}],["unify",{"2":{"30":1,"32":1}}],["united",{"2":{"188":1}}],["unit",{"2":{"18":1,"164":1}}],["units",{"2":{"6":2,"185":2}}],["unique",{"2":{"6":2,"79":3,"173":2,"176":2}}],["unioning",{"2":{"81":1}}],["unionintersectingpolygons",{"2":{"0":1,"6":8,"74":1,"75":2,"78":1,"79":2,"80":1,"81":2,"173":2,"174":2,"175":1,"176":4}}],["unions",{"0":{"81":1},"2":{"23":1,"167":1}}],["union",{"0":{"41":1,"80":1},"2":{"0":1,"1":2,"3":2,"4":4,"6":18,"11":3,"28":2,"36":1,"37":1,"41":2,"58":1,"61":2,"65":4,"68":1,"70":1,"76":7,"78":2,"80":18,"81":30,"90":1,"93":8,"101":2,"102":4,"103":1,"105":2,"106":1,"115":2,"116":6,"119":2,"120":1,"127":4,"132":2,"133":4,"134":1,"136":2,"137":1,"142":2,"143":4,"144":1,"146":2,"147":1,"150":1,"152":5,"153":1,"155":2,"156":3,"158":3,"159":3,"167":4,"173":1,"174":1,"176":9,"185":5,"188":2,"189":3,"190":3,"191":3,"197":1}}],["unchanged",{"2":{"1":1,"6":1,"155":1,"158":1,"188":1}}],["gdal",{"2":{"204":1}}],["gml",{"2":{"204":1}}],["gpkg",{"2":{"204":3}}],["gadm",{"2":{"208":4}}],["ga",{"2":{"201":3,"205":2}}],["gaps",{"2":{"152":1}}],["global",{"2":{"201":1}}],["globally",{"2":{"159":1,"164":1}}],["gft",{"2":{"199":1,"201":2}}],["gc",{"2":{"172":6}}],["gb",{"2":{"36":1}}],["guarantee",{"2":{"24":1,"35":1}}],["guaranteed",{"2":{"1":1,"61":1,"155":1,"159":1}}],["g",{"2":{"18":1,"58":3,"61":3,"62":1,"65":3,"70":3,"76":2,"90":6,"156":1,"158":2,"161":4,"162":1,"164":1,"165":1,"166":1,"188":2,"197":2,"204":1}}],["grows",{"2":{"164":1}}],["ground",{"2":{"76":1}}],["grouped",{"2":{"200":1}}],["groups",{"2":{"6":1,"152":1}}],["grouping",{"2":{"1":1,"155":1,"159":3}}],["grand",{"2":{"208":1}}],["grained",{"2":{"183":1}}],["grahamscanmethod",{"2":{"87":1}}],["graph",{"2":{"76":1}}],["graphics",{"2":{"6":1,"68":1}}],["great",{"2":{"200":1,"202":1,"204":1}}],["greater",{"2":{"150":1}}],["greatly",{"2":{"76":1}}],["greiner",{"0":{"75":1,"79":1,"81":1},"2":{"73":2,"74":1,"76":3,"78":1,"80":1}}],["green",{"2":{"14":1,"165":1,"201":1}}],["grid",{"2":{"6":1,"67":1,"70":4}}],["g2",{"2":{"3":5,"6":5,"96":4,"99":12,"100":6,"101":9,"102":6,"103":6,"104":3,"105":4,"106":2,"109":3,"110":21,"113":10,"114":6,"115":10,"116":8,"117":4,"118":2,"119":4,"120":2,"130":10,"131":6,"132":10,"133":6,"134":5,"135":4,"136":4,"137":2,"140":10,"141":6,"142":9,"143":6,"144":6,"145":3,"146":4,"147":2}}],["g1",{"2":{"3":5,"4":1,"6":6,"96":4,"99":12,"100":6,"101":9,"102":6,"103":6,"104":3,"105":2,"106":4,"109":3,"110":21,"113":9,"114":6,"115":10,"116":8,"117":4,"118":2,"119":2,"120":4,"130":10,"131":6,"132":9,"133":6,"134":5,"135":4,"136":2,"137":4,"140":10,"141":6,"142":9,"143":6,"144":6,"145":3,"146":2,"147":4}}],["generic",{"2":{"27":1,"185":1}}],["generation",{"2":{"188":2}}],["generated",{"2":{"36":1,"37":1,"55":1,"58":1,"61":1,"62":1,"65":1,"68":1,"70":1,"73":1,"75":1,"76":1,"77":1,"79":1,"81":1,"87":1,"90":1,"93":1,"96":1,"106":1,"109":1,"110":1,"120":1,"123":1,"124":1,"127":1,"137":1,"147":1,"150":1,"151":1,"152":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"170":1,"173":1,"176":1,"177":1,"178":1,"179":1,"181":1,"185":1,"188":1,"192":1,"193":1,"194":1,"196":1,"198":1,"207":1}}],["generate",{"2":{"7":1,"13":2,"188":1,"207":2}}],["generalization",{"2":{"66":1}}],["generalized",{"2":{"6":1,"66":3,"68":1}}],["generalise",{"2":{"6":4,"188":1}}],["generally",{"2":{"6":2,"164":2,"196":3}}],["general",{"0":{"2":1,"4":1},"1":{"3":1,"4":1},"2":{"20":1,"23":1,"25":1,"30":1,"32":1,"36":1,"153":1,"159":1,"181":1}}],["gets",{"2":{"164":1}}],["getfeature",{"2":{"158":1,"159":1,"161":3,"197":5}}],["getcolumn",{"2":{"158":2,"159":2,"161":1}}],["getcoord",{"2":{"76":1}}],["getgeom",{"2":{"105":1,"106":1,"119":1,"120":1,"127":2,"136":1,"137":1,"146":1,"147":1,"158":3,"159":2,"161":3,"188":3,"197":6}}],["getring",{"2":{"76":1}}],["getindex",{"2":{"68":2}}],["gethole",{"2":{"58":1,"61":1,"65":1,"70":1,"73":1,"74":2,"76":4,"78":2,"81":6,"90":1,"93":2,"124":5,"170":1,"200":1}}],["getexterior",{"2":{"58":1,"61":1,"65":1,"68":1,"70":1,"73":1,"74":2,"76":3,"78":2,"80":3,"81":6,"90":1,"93":2,"124":5,"150":1,"152":1,"170":1,"200":1}}],["getpolygon",{"2":{"75":3,"79":2,"81":2,"93":3}}],["getpoint",{"2":{"57":2,"58":1,"60":1,"61":5,"64":1,"65":6,"68":1,"69":2,"70":3,"72":3,"76":2,"89":1,"90":6,"92":4,"93":13,"95":4,"98":1,"108":1,"110":7,"112":4,"122":2,"124":28,"126":4,"127":2,"129":2,"132":2,"139":4,"150":5,"170":3,"183":4,"185":2,"192":1,"197":3,"198":2,"200":2}}],["getproperty",{"2":{"13":2,"14":1}}],["get",{"2":{"6":1,"13":1,"37":1,"57":1,"62":1,"74":1,"75":1,"76":10,"78":1,"79":2,"80":2,"87":2,"152":4,"158":3,"159":1,"181":1,"184":3,"188":1,"189":1,"191":1,"192":2,"196":5,"197":1,"200":2,"208":2}}],["geoparquet",{"2":{"204":4}}],["geopoly1",{"2":{"202":1,"203":1}}],["geopoly2",{"2":{"202":1,"203":1}}],["geoaxis",{"2":{"201":4,"205":1}}],["geointeface",{"2":{"156":1}}],["geointerace",{"2":{"27":1}}],["geointerfacemakie",{"2":{"152":1,"187":1,"207":1,"208":1}}],["geointerface",{"0":{"35":1},"2":{"1":20,"3":9,"4":2,"6":35,"11":1,"13":1,"14":1,"15":1,"20":1,"27":3,"30":1,"32":1,"35":1,"36":7,"57":1,"58":1,"60":1,"61":1,"64":1,"65":1,"68":23,"69":1,"70":1,"72":1,"73":1,"74":1,"76":2,"78":1,"79":1,"80":1,"84":1,"85":1,"86":1,"89":1,"90":11,"92":1,"93":2,"95":1,"96":2,"98":1,"99":2,"108":1,"109":2,"110":1,"112":1,"113":3,"122":1,"123":2,"126":1,"127":2,"129":1,"130":2,"139":1,"140":2,"150":5,"152":1,"155":3,"156":3,"158":11,"161":5,"169":5,"172":1,"173":1,"175":9,"177":1,"180":2,"183":1,"184":1,"187":1,"188":2,"193":13,"194":1,"197":1,"199":1,"200":13,"201":3,"202":5,"205":1,"207":1,"208":1}}],["geo",{"2":{"152":1,"184":4,"201":2}}],["geotable",{"2":{"34":1}}],["geographic",{"2":{"17":2,"20":4,"164":3,"201":1,"204":1}}],["geographiclib",{"2":{"6":1,"184":1}}],["geojson",{"2":{"11":1,"164":3,"188":2,"199":1,"201":4,"204":3}}],["geodesy",{"2":{"164":1}}],["geodesic`",{"2":{"184":2}}],["geodesic",{"0":{"205":1},"2":{"6":7,"18":3,"36":3,"76":1,"162":2,"164":7,"166":2,"183":6,"184":8,"185":3,"205":1}}],["geodesicsegments",{"2":{"0":1,"6":1,"182":1,"183":3,"184":6,"185":1,"205":1}}],["geodataframes",{"2":{"20":1,"204":3}}],["geod",{"2":{"6":2,"184":3}}],["geoformattypes",{"2":{"1":2,"20":1,"180":2,"199":1}}],["geomakie",{"0":{"201":1},"2":{"199":2,"201":5,"205":2}}],["geomtype",{"2":{"158":2,"161":1}}],["geomtrait",{"2":{"76":2}}],["geoms",{"2":{"55":3,"76":1,"87":1,"124":1,"158":12,"161":10,"166":7}}],["geomfromgeos",{"2":{"37":1,"184":1}}],["geom2",{"2":{"3":8,"4":1,"6":9,"90":6,"93":1,"110":6,"113":1,"123":3,"127":6,"130":1,"140":2,"166":1}}],["geom1",{"2":{"3":8,"4":1,"6":9,"90":6,"93":1,"110":4,"113":1,"123":3,"127":6,"130":1,"140":2,"166":1}}],["geometrical",{"2":{"206":1}}],["geometric",{"2":{"30":2,"32":2,"64":1,"164":1}}],["geometries",{"0":{"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"200":1,"201":1,"202":1},"2":{"1":6,"3":8,"4":14,"6":57,"23":3,"25":1,"27":3,"30":2,"32":2,"34":4,"58":4,"60":1,"61":3,"65":1,"70":2,"73":1,"74":5,"76":1,"78":5,"79":4,"80":5,"87":6,"89":1,"90":4,"92":1,"93":7,"96":1,"98":1,"99":1,"110":2,"113":2,"122":1,"123":1,"124":1,"126":2,"127":3,"129":2,"130":2,"140":2,"142":1,"153":1,"155":3,"157":2,"158":6,"159":3,"160":1,"161":10,"164":2,"166":1,"177":1,"179":3,"180":2,"182":3,"183":1,"184":4,"185":1,"186":1,"189":1,"190":1,"191":1,"194":1,"197":1,"198":1,"199":5,"201":1,"202":2,"203":2,"204":1,"206":5,"207":1,"209":1}}],["geometry=",{"2":{"203":1}}],["geometrybasics",{"2":{"36":3,"67":2,"68":10,"87":1,"89":1,"99":1,"130":1,"140":1}}],["geometrycolumns",{"2":{"158":5,"159":2,"161":1}}],["geometrycollections",{"2":{"206":1}}],["geometrycollectiontrait",{"2":{"28":1,"37":1,"105":1,"106":1,"119":1,"120":1,"136":1,"137":1,"146":1,"147":1}}],["geometrycollection",{"2":{"6":1,"28":1,"208":1}}],["geometrycorrections",{"2":{"172":1}}],["geometrycorrection",{"2":{"0":1,"6":11,"170":2,"171":2,"172":13,"173":11,"176":4}}],["geometry",{"0":{"2":1,"78":1,"105":2,"106":2,"119":2,"120":2,"136":2,"137":2,"146":2,"147":2,"171":1,"180":1,"186":1,"199":1,"203":1},"1":{"3":1,"4":1,"172":1,"173":1,"181":1,"187":1,"188":1,"200":1,"201":1,"202":1,"203":1,"204":1},"2":{"1":10,"3":24,"4":12,"6":73,"9":1,"11":2,"17":1,"18":2,"20":7,"21":1,"23":4,"25":1,"28":3,"34":1,"36":1,"58":4,"61":7,"62":4,"65":3,"69":1,"70":4,"73":4,"85":1,"89":4,"90":6,"93":8,"95":5,"96":2,"98":4,"99":5,"100":4,"101":1,"105":3,"106":4,"108":4,"109":4,"110":3,"112":2,"113":5,"114":4,"115":2,"116":2,"119":3,"120":4,"122":2,"124":2,"127":3,"129":3,"130":4,"131":4,"132":2,"136":3,"137":4,"139":4,"140":5,"141":4,"146":3,"147":4,"149":1,"153":4,"155":3,"156":2,"158":28,"159":12,"161":11,"164":8,"166":3,"169":1,"170":1,"171":2,"172":23,"173":6,"177":1,"178":1,"179":6,"180":6,"182":3,"183":1,"184":5,"185":10,"188":6,"197":6,"198":2,"200":1,"201":1,"202":4,"203":2,"204":2,"206":1,"207":7,"208":4,"209":2}}],["geometryopsprojext",{"2":{"180":1,"181":1,"184":1,"185":1}}],["geometryopslibgeosext",{"2":{"62":1}}],["geometryopscore",{"2":{"0":2,"1":2,"36":3,"155":2,"161":4}}],["geometryops",{"0":{"0":1,"30":1,"36":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":111,"1":4,"3":18,"4":9,"5":3,"6":112,"7":2,"11":1,"13":1,"14":1,"15":1,"18":1,"20":4,"22":2,"30":1,"31":4,"32":1,"36":1,"37":2,"57":1,"60":1,"62":1,"64":1,"67":5,"69":1,"72":1,"73":1,"74":1,"76":7,"78":1,"79":1,"80":1,"82":1,"84":1,"85":1,"86":3,"89":1,"92":1,"93":1,"95":1,"96":2,"98":1,"99":2,"108":1,"109":2,"110":2,"112":1,"113":2,"122":1,"123":1,"126":1,"127":1,"129":1,"130":2,"139":1,"140":2,"150":3,"152":2,"155":1,"158":1,"164":3,"166":2,"169":1,"172":1,"173":4,"175":1,"181":1,"183":1,"184":2,"187":1,"188":2,"193":1,"195":1,"196":2,"197":1,"199":1,"200":3,"205":1,"206":1,"207":2,"208":2}}],["geom",{"2":{"1":7,"4":21,"6":45,"23":3,"36":12,"37":10,"40":5,"41":5,"42":5,"43":5,"45":4,"46":4,"47":4,"48":4,"49":4,"50":4,"51":4,"52":4,"53":4,"54":4,"58":17,"61":25,"65":28,"70":6,"73":15,"74":8,"75":2,"76":21,"78":12,"79":10,"80":9,"81":9,"90":28,"93":45,"99":4,"110":1,"113":4,"124":3,"127":1,"130":4,"140":4,"150":3,"152":1,"153":2,"155":4,"158":34,"159":13,"161":51,"166":1,"176":11,"178":4,"179":7,"185":24,"188":36,"192":3,"193":7,"194":4,"197":13,"198":17,"208":6}}],["geospatial",{"0":{"202":1,"204":1},"2":{"199":5,"201":1,"202":3,"204":5}}],["geoscontext",{"2":{"184":1}}],["geosdensify",{"2":{"37":2,"184":3}}],["geos",{"0":{"196":1},"2":{"0":1,"6":6,"36":1,"37":8,"38":1,"40":1,"41":1,"42":1,"43":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"62":4,"82":1,"86":4,"87":1,"162":2,"164":1,"166":1,"186":5,"188":2,"195":1,"196":12}}],["got",{"2":{"192":3}}],["good",{"2":{"6":1,"68":1,"196":2,"202":1}}],["goes",{"2":{"6":3,"150":2,"166":1,"198":1}}],["going",{"2":{"4":4,"6":5,"70":2,"86":1,"93":5,"150":1,"152":1,"166":1,"199":1}}],["go",{"2":{"1":5,"3":17,"4":2,"6":40,"11":9,"13":1,"14":1,"15":6,"23":1,"36":2,"37":5,"40":1,"41":1,"42":1,"43":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":2,"57":1,"60":1,"64":2,"68":1,"69":1,"72":2,"73":2,"74":2,"78":2,"79":2,"80":2,"84":3,"85":2,"86":8,"87":2,"89":6,"92":1,"93":2,"95":2,"96":2,"98":1,"99":2,"108":2,"109":2,"110":1,"112":1,"113":2,"122":1,"123":2,"126":1,"127":2,"129":1,"130":2,"139":2,"140":2,"150":6,"152":2,"153":1,"155":2,"158":2,"161":2,"166":2,"169":3,"175":3,"183":7,"184":8,"187":2,"188":49,"193":3,"196":1,"197":2,"199":1,"200":3,"202":1,"204":1,"205":3,"206":9,"207":2,"208":5,"209":1}}],["gtrait",{"2":{"90":2}}],["gt",{"2":{"1":1,"6":1,"9":2,"10":1,"11":5,"76":3,"150":3,"155":1}}],["gif",{"2":{"190":1}}],["gives",{"2":{"208":1}}],["give",{"2":{"124":1,"204":1}}],["given",{"2":{"4":7,"6":21,"18":1,"20":1,"23":2,"34":1,"58":2,"60":1,"61":1,"65":3,"70":3,"73":5,"74":1,"75":2,"76":8,"78":1,"79":2,"80":1,"81":2,"90":8,"93":4,"95":1,"96":1,"99":1,"108":1,"109":1,"113":1,"122":1,"123":1,"124":7,"130":1,"132":1,"140":1,"153":1,"159":1,"172":4,"173":1,"175":1,"182":2,"184":2,"185":2,"191":1}}],["github",{"2":{"6":2,"87":1,"164":1}}],["gis",{"2":{"5":1,"6":1,"19":1,"30":1,"32":1,"68":1}}],["gi",{"2":{"1":13,"3":42,"4":31,"6":109,"11":8,"13":15,"14":15,"15":8,"23":2,"36":1,"37":12,"40":3,"41":3,"42":3,"43":3,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"55":3,"57":5,"58":21,"60":3,"61":30,"64":5,"65":38,"67":1,"69":5,"70":17,"72":6,"73":13,"74":19,"75":16,"76":55,"78":25,"79":24,"80":17,"81":36,"84":1,"85":1,"86":3,"87":4,"89":8,"90":42,"92":7,"93":99,"95":7,"96":3,"98":3,"99":4,"100":6,"101":12,"102":10,"103":7,"104":4,"105":8,"106":6,"108":3,"109":3,"110":21,"112":7,"113":2,"114":3,"115":12,"116":14,"117":4,"118":2,"119":8,"120":6,"122":5,"123":3,"124":59,"126":7,"127":51,"129":5,"130":3,"131":6,"132":15,"133":10,"134":7,"135":4,"136":8,"137":6,"139":7,"140":2,"141":6,"142":12,"143":10,"144":7,"145":4,"146":8,"147":6,"150":32,"152":15,"153":4,"155":9,"158":42,"159":25,"161":55,"167":9,"169":2,"170":10,"172":9,"175":3,"176":8,"177":1,"178":5,"179":8,"183":6,"184":6,"185":13,"187":2,"188":34,"192":4,"193":9,"194":5,"197":55,"198":10,"199":1,"200":21,"201":2,"202":2,"205":2,"207":5,"208":2}}],["ty",{"2":{"152":3}}],["typically",{"2":{"66":1,"203":1}}],["typing",{"2":{"62":1,"181":1,"184":1}}],["typemax",{"2":{"90":1,"152":9}}],["typeof",{"2":{"24":1,"68":3,"158":2,"161":1,"162":1,"167":1,"179":1,"185":1,"198":1,"209":1}}],["type=",{"2":{"6":2}}],["type2",{"2":{"6":2,"93":4}}],["type1",{"2":{"6":2,"93":5}}],["types",{"0":{"195":1},"1":{"196":1},"2":{"6":4,"18":1,"28":1,"29":1,"36":2,"68":3,"70":1,"73":1,"124":3,"163":1,"165":2,"188":1,"195":3,"206":1}}],["type",{"2":{"4":11,"5":1,"6":42,"11":1,"20":4,"27":2,"28":1,"29":2,"35":2,"58":11,"61":9,"65":8,"67":1,"68":8,"70":8,"73":6,"74":7,"75":6,"76":23,"78":8,"79":19,"80":7,"81":5,"90":28,"93":2,"158":5,"161":41,"162":7,"163":6,"164":3,"166":2,"167":3,"171":1,"172":5,"173":2,"178":1,"184":1,"185":1,"188":3,"194":1,"196":1,"197":3,"198":7,"205":1}}],["tx",{"2":{"152":3}}],["tᵢ",{"2":{"68":1}}],["tutorial",{"2":{"199":1,"206":1}}],["tutorials",{"2":{"31":2}}],["tups",{"2":{"170":4}}],["tuplepoint",{"2":{"36":3,"197":1}}],["tuple",{"0":{"194":1},"2":{"4":1,"6":17,"36":2,"65":3,"68":2,"70":3,"73":1,"76":4,"79":31,"124":17,"150":2,"152":5,"158":2,"183":1,"188":2,"190":1,"192":2,"197":5,"198":3,"207":2}}],["tuples",{"2":{"0":1,"6":3,"36":1,"62":1,"65":1,"73":1,"74":3,"75":1,"76":1,"78":2,"79":1,"80":4,"81":5,"87":2,"170":2,"176":2,"188":2,"194":2,"198":1,"208":2}}],["turf",{"2":{"150":1}}],["turned",{"2":{"152":1,"158":1}}],["turning",{"2":{"152":8}}],["turn",{"2":{"6":1,"152":1}}],["text",{"2":{"165":3}}],["text=",{"2":{"6":2}}],["temporary",{"2":{"76":1}}],["term",{"2":{"58":1}}],["terms",{"2":{"6":1,"68":1}}],["teach",{"2":{"31":1}}],["technically",{"2":{"28":1,"168":1}}],["technique",{"2":{"11":1}}],["tell",{"2":{"23":1,"36":1,"124":1,"158":1,"163":1,"209":1}}],["test",{"2":{"76":1,"188":2,"196":1}}],["testing",{"0":{"15":1}}],["tests",{"2":{"9":2}}],["t2",{"2":{"6":5,"68":47,"100":1,"110":2,"131":1,"141":1}}],["t1",{"2":{"6":6,"68":51,"110":2}}],["t=float64",{"2":{"4":1,"6":3,"65":3}}],["two",{"2":{"3":5,"4":10,"6":23,"28":2,"57":1,"61":2,"65":1,"68":1,"70":3,"74":2,"76":6,"78":1,"79":14,"80":4,"81":3,"90":5,"92":3,"93":12,"95":2,"96":1,"98":1,"108":1,"109":1,"110":1,"112":1,"122":2,"123":2,"124":2,"126":4,"127":5,"129":3,"130":1,"139":2,"152":3,"166":1,"172":2,"173":1,"175":2,"176":2,"183":1,"196":1,"200":1,"206":3,"207":3}}],["task",{"2":{"158":6,"159":6}}],["tasks",{"2":{"158":10,"159":10}}],["taskrange",{"2":{"158":8,"159":8}}],["tags",{"2":{"76":4}}],["taget",{"2":{"6":2}}],["taylor",{"2":{"6":1,"68":1}}],["table2",{"2":{"206":4}}],["table1",{"2":{"206":12}}],["tables",{"2":{"27":4,"36":1,"158":6,"159":5,"161":2}}],["table",{"0":{"203":1},"2":{"6":4,"20":1,"23":1,"34":2,"158":13,"159":4,"179":3,"185":1,"188":1,"203":1,"204":1,"206":2}}],["taking",{"2":{"6":3,"65":1,"74":1,"75":1,"78":1,"79":1,"80":1,"81":1,"174":1}}],["takes",{"2":{"76":3,"206":1}}],["taken",{"2":{"25":1,"67":1}}],["take",{"2":{"1":1,"6":2,"34":1,"74":1,"75":1,"76":3,"78":1,"79":1,"81":1,"150":2,"152":2,"153":1,"159":1,"180":1}}],["target=gi",{"2":{"76":1}}],["target=nothing",{"2":{"40":1,"41":1,"42":1,"43":1,"74":1,"78":1,"80":1}}],["targets",{"2":{"28":1,"58":3,"61":2,"70":3,"90":3}}],["target",{"0":{"28":1},"2":{"1":14,"6":11,"15":3,"27":2,"28":2,"37":1,"65":2,"68":1,"74":5,"75":11,"76":1,"78":6,"79":10,"80":4,"81":13,"152":1,"153":1,"155":8,"156":5,"157":1,"158":34,"159":33,"161":87,"166":1,"167":3,"176":2,"180":3,"188":2}}],["tilted",{"2":{"70":1}}],["tie",{"2":{"61":1}}],["timings",{"2":{"13":5}}],["timing",{"2":{"13":2}}],["times",{"2":{"4":1,"6":1,"177":1}}],["time",{"2":{"1":5,"13":3,"29":1,"67":1,"152":1,"164":1,"180":4,"196":1,"200":1,"201":1,"202":2,"207":1,"208":1}}],["title",{"2":{"13":2,"67":2,"86":2,"152":1,"184":1,"188":2}}],["tip",{"2":{"1":1,"5":1,"6":1,"68":1,"180":1,"206":1}}],["trials",{"2":{"184":2,"188":2}}],["triangles",{"2":{"66":1}}],["triangle",{"2":{"6":1,"66":4,"166":1,"191":4,"207":1}}],["triangulation",{"2":{"6":1,"36":1,"87":1}}],["trivially",{"2":{"153":1}}],["try",{"2":{"77":3,"152":1,"156":1,"158":3,"159":3,"161":3,"208":1}}],["tr",{"2":{"58":3}}],["treating",{"2":{"188":1}}],["treats",{"2":{"58":1,"90":1}}],["treated",{"2":{"18":1,"19":2,"124":5,"200":1}}],["tree",{"2":{"36":1,"76":10,"206":1}}],["trues",{"2":{"176":3}}],["truebutstable",{"2":{"158":1,"159":1,"163":2}}],["true",{"0":{"29":1},"2":{"1":5,"3":25,"4":3,"6":40,"36":1,"58":1,"61":7,"62":1,"67":2,"70":6,"73":1,"74":1,"75":2,"76":31,"78":1,"79":1,"80":2,"81":3,"90":4,"93":21,"95":1,"96":1,"98":2,"99":6,"101":1,"102":1,"103":4,"105":1,"106":1,"108":2,"109":1,"110":9,"112":2,"113":2,"115":1,"116":1,"117":3,"119":1,"120":1,"122":3,"123":1,"124":78,"126":2,"127":18,"129":2,"130":6,"133":1,"134":1,"136":1,"137":1,"139":2,"140":7,"142":1,"143":1,"144":4,"146":1,"147":1,"150":4,"152":5,"155":2,"158":6,"159":2,"163":4,"165":3,"176":1,"181":1,"184":1,"188":1,"206":1,"209":1}}],["traditional",{"2":{"152":1,"164":1}}],["traverse",{"2":{"76":1}}],["traversal",{"2":{"36":1,"76":3}}],["track",{"2":{"76":4,"176":2}}],["traced",{"2":{"76":1}}],["traces",{"2":{"76":1}}],["trace",{"2":{"74":1,"76":2,"78":1,"80":1}}],["tracing",{"2":{"6":1,"70":1,"75":5,"76":5,"79":2,"81":2}}],["transverse",{"2":{"201":1}}],["transactions",{"2":{"76":1}}],["translate",{"2":{"67":2}}],["translation",{"2":{"1":2,"6":2,"188":2,"193":2,"200":3,"202":1}}],["transformations",{"2":{"36":11}}],["transformation",{"0":{"193":1},"2":{"6":1,"152":1,"158":1,"171":1,"180":1,"199":1}}],["transform",{"2":{"0":2,"1":6,"6":3,"15":2,"36":1,"153":1,"180":2,"188":1,"193":4,"200":4,"202":1}}],["trait`",{"2":{"161":1}}],["trait2",{"2":{"90":10,"93":2,"115":2,"116":2,"127":2,"132":2,"134":2,"135":2}}],["trait1",{"2":{"90":12,"93":2,"115":2,"116":2,"127":2,"132":2,"134":2,"135":2}}],["traits",{"2":{"6":1,"23":1,"127":1,"156":2,"167":3,"172":2,"188":2}}],["trait",{"2":{"1":5,"3":2,"4":2,"6":6,"23":7,"25":1,"27":1,"36":1,"37":1,"58":5,"61":2,"65":7,"68":6,"70":2,"73":3,"74":2,"75":2,"78":6,"79":4,"80":2,"81":2,"90":7,"93":11,"99":3,"110":2,"113":3,"124":4,"127":10,"130":3,"140":3,"150":1,"153":1,"155":5,"156":3,"158":19,"159":9,"161":27,"166":2,"167":8,"172":9,"173":1,"185":2,"188":2,"197":7,"198":3,"200":1}}],["traittarget",{"0":{"167":1},"2":{"1":2,"36":2,"37":1,"58":1,"61":1,"65":1,"70":1,"74":2,"75":4,"78":3,"79":4,"80":2,"81":4,"90":1,"153":1,"155":2,"158":6,"159":6,"166":1,"167":21,"185":1,"188":1}}],["thus",{"2":{"58":1,"61":1,"75":1,"76":3,"79":1,"81":1}}],["though",{"2":{"25":1,"169":1}}],["those",{"2":{"6":1,"38":1,"61":1,"76":2,"79":1,"101":1,"142":1,"164":1,"166":1,"185":1}}],["thing",{"0":{"35":1},"2":{"76":1,"166":1}}],["things",{"2":{"9":1}}],["this",{"0":{"19":1,"20":1,"35":1},"2":{"0":1,"1":1,"3":1,"4":6,"5":1,"6":31,"7":1,"17":1,"19":1,"20":6,"23":1,"28":3,"29":2,"30":2,"32":2,"34":1,"36":1,"37":3,"38":1,"55":1,"57":2,"58":9,"60":2,"61":6,"62":2,"64":1,"65":4,"67":3,"68":11,"69":1,"70":4,"72":1,"73":5,"75":1,"76":41,"77":1,"79":5,"80":1,"81":2,"87":5,"89":4,"90":6,"93":4,"95":1,"96":2,"98":3,"99":3,"106":1,"108":1,"109":2,"110":1,"113":3,"120":1,"123":2,"124":3,"126":1,"127":4,"130":3,"137":1,"139":1,"140":3,"147":1,"149":1,"150":3,"151":2,"152":8,"153":2,"156":2,"158":17,"159":9,"160":2,"161":3,"162":5,"163":4,"164":9,"165":5,"166":2,"167":3,"168":3,"170":3,"171":1,"172":6,"173":7,"174":4,"176":3,"177":2,"178":2,"179":2,"180":4,"181":3,"182":3,"183":5,"184":5,"185":5,"186":2,"188":3,"192":9,"193":1,"194":1,"195":3,"196":2,"198":2,"199":1,"200":2,"201":4,"202":3,"203":3,"204":1,"206":3,"207":3,"208":3,"209":1}}],["three",{"2":{"18":1,"20":1,"31":1,"66":1,"79":1,"164":1,"185":1}}],["thread",{"2":{"158":5,"159":5}}],["threading",{"0":{"158":1},"2":{"158":5,"159":2,"163":1}}],["threads",{"2":{"1":1,"155":1,"158":5,"159":8}}],["threaded=",{"2":{"158":4,"159":5}}],["threaded=true",{"2":{"158":1}}],["threaded=false",{"2":{"58":1,"65":4,"70":2,"90":8,"158":1,"159":1,"177":1,"188":1}}],["threaded==true",{"2":{"1":1,"155":1,"158":1}}],["threaded",{"2":{"1":3,"4":1,"6":5,"29":1,"36":1,"37":2,"58":1,"61":2,"65":3,"70":3,"90":5,"155":2,"158":26,"159":28,"160":1,"163":2,"166":2,"177":1,"185":13,"188":1}}],["through",{"2":{"6":4,"61":1,"68":1,"70":1,"72":1,"73":2,"76":3,"87":1,"99":1,"124":5,"140":1,"152":1,"156":1,"158":1,"173":2,"176":2,"190":1,"196":1,"200":1}}],["thrown",{"2":{"156":1,"165":1}}],["throws",{"2":{"6":1,"196":1}}],["throw",{"2":{"4":1,"6":1,"81":1,"93":1,"152":1,"158":1,"159":1,"161":3,"162":2}}],["than",{"2":{"1":1,"3":1,"6":10,"11":1,"76":4,"101":1,"110":1,"127":1,"142":1,"150":1,"152":2,"155":1,"157":1,"158":1,"173":2,"174":1,"175":1,"176":2,"182":1,"184":2,"185":1,"189":1,"196":2}}],["that",{"2":{"1":1,"3":3,"4":8,"6":40,"9":1,"17":2,"18":2,"19":1,"20":2,"22":1,"23":4,"24":3,"25":1,"27":3,"30":1,"31":1,"32":1,"36":2,"57":2,"58":4,"61":4,"62":2,"64":2,"65":3,"68":4,"69":3,"70":5,"74":4,"75":5,"76":24,"78":4,"79":14,"80":3,"81":5,"82":1,"86":3,"87":4,"90":2,"92":1,"93":11,"95":4,"96":1,"98":2,"99":1,"109":1,"112":1,"113":1,"122":1,"123":1,"124":3,"126":2,"127":10,"129":2,"130":2,"132":2,"139":3,"140":1,"142":3,"150":1,"152":4,"153":1,"155":1,"158":5,"159":1,"160":1,"161":5,"162":2,"163":3,"164":8,"165":3,"166":3,"167":1,"168":3,"169":2,"170":1,"171":3,"172":2,"173":4,"174":2,"175":3,"176":4,"180":1,"182":2,"183":2,"184":3,"185":2,"188":2,"190":1,"192":1,"196":1,"201":4,"202":1,"203":2,"204":3,"206":1,"207":2}}],["thewgs84",{"2":{"164":1}}],["theta",{"2":{"164":1}}],["theorem",{"2":{"90":1}}],["themselves",{"2":{"68":1}}],["them",{"2":{"30":1,"32":1,"76":1,"151":2,"152":2,"158":3,"161":2,"165":1,"169":2,"174":1,"175":1,"188":1,"200":1,"202":1,"204":3}}],["thereof",{"2":{"153":1,"159":1}}],["therefore",{"2":{"89":1,"168":1}}],["there",{"2":{"6":2,"20":1,"27":1,"61":1,"62":1,"68":2,"70":1,"73":2,"75":1,"76":3,"77":1,"79":6,"81":1,"124":1,"127":2,"151":1,"152":3,"153":1,"158":4,"164":1,"167":1,"169":1,"183":1,"192":1,"196":1,"201":2,"204":3}}],["then",{"2":{"6":6,"20":1,"23":1,"27":1,"34":1,"61":3,"68":2,"70":1,"74":1,"76":9,"77":2,"78":2,"79":6,"80":2,"81":2,"87":1,"124":1,"152":2,"153":1,"156":1,"158":2,"159":3,"162":1,"166":1,"174":1,"179":1,"184":2,"188":1,"201":1,"206":1,"207":1}}],["their",{"2":{"3":1,"4":1,"6":2,"64":2,"68":1,"81":1,"90":2,"118":1,"127":1,"129":1,"133":1,"134":1,"143":3,"144":3,"153":1,"159":1,"169":1,"175":1,"177":1}}],["they",{"2":{"3":3,"4":11,"6":24,"19":1,"25":2,"27":1,"28":1,"29":1,"36":1,"65":2,"66":1,"70":2,"74":2,"76":9,"78":1,"79":6,"80":2,"81":3,"86":1,"92":3,"93":16,"99":1,"112":1,"116":2,"117":1,"118":1,"122":1,"124":2,"126":2,"127":4,"132":1,"134":1,"135":1,"143":1,"144":1,"152":6,"158":2,"161":2,"166":1,"168":1,"173":2,"176":2,"179":2,"183":1,"192":1,"195":1,"198":1,"207":1}}],["these",{"2":{"1":2,"6":4,"17":1,"29":1,"61":1,"68":5,"76":3,"81":1,"92":1,"93":1,"95":1,"99":1,"108":1,"110":2,"112":1,"113":1,"122":1,"126":1,"127":1,"129":2,"130":1,"139":1,"140":1,"150":1,"152":3,"155":1,"156":1,"158":2,"179":1,"180":1,"184":1,"188":2,"196":1,"198":1,"204":1,"206":1}}],["the",{"0":{"31":1,"34":1,"64":1,"85":1,"86":1},"2":{"1":28,"3":64,"4":112,"5":12,"6":392,"7":5,"9":3,"10":1,"11":3,"17":3,"18":19,"19":5,"20":17,"21":6,"22":5,"23":10,"24":2,"25":4,"27":4,"28":5,"29":3,"30":3,"31":4,"32":3,"34":3,"36":3,"37":3,"57":12,"58":43,"60":1,"61":63,"62":6,"64":6,"65":25,"66":15,"67":12,"68":71,"69":7,"70":47,"72":2,"73":7,"74":27,"75":23,"76":138,"77":1,"78":27,"79":82,"80":29,"81":70,"82":6,"86":11,"87":16,"89":11,"90":81,"92":5,"93":47,"95":9,"96":11,"98":8,"99":25,"102":8,"103":9,"104":3,"105":3,"106":2,"108":4,"109":11,"110":5,"112":2,"113":21,"115":8,"116":6,"117":4,"119":3,"120":2,"122":5,"123":6,"124":123,"126":5,"127":26,"129":5,"130":21,"132":6,"133":10,"134":7,"135":3,"136":3,"137":2,"139":7,"140":24,"142":2,"143":9,"144":9,"145":6,"146":2,"147":2,"149":1,"150":8,"151":1,"152":47,"153":9,"155":14,"156":11,"158":73,"159":27,"160":2,"161":20,"162":9,"163":5,"164":34,"165":2,"166":6,"168":5,"169":5,"170":4,"171":2,"172":13,"173":10,"174":4,"175":8,"176":6,"177":1,"178":5,"179":6,"180":14,"181":2,"182":3,"183":5,"184":26,"185":21,"186":3,"188":18,"189":3,"190":6,"191":3,"192":2,"193":3,"194":1,"195":2,"196":21,"200":10,"201":11,"202":10,"203":2,"204":4,"206":10,"207":17,"208":3}}],["t",{"2":{"0":1,"4":28,"6":56,"9":1,"28":1,"36":8,"37":1,"58":41,"61":32,"65":38,"68":26,"70":44,"73":18,"74":12,"75":12,"76":91,"78":12,"79":156,"80":10,"81":20,"90":87,"93":17,"98":1,"116":1,"124":24,"127":1,"129":1,"133":2,"134":1,"152":14,"158":5,"159":4,"161":2,"162":3,"163":2,"164":12,"167":14,"173":2,"176":2,"184":3,"185":4,"188":1,"194":7,"196":3,"197":10,"198":20,"208":1}}],["tokyo",{"2":{"208":1}}],["toy",{"2":{"206":1}}],["together",{"2":{"79":1,"81":1,"200":1,"207":1}}],["touching",{"0":{"133":1},"2":{"79":1,"81":1}}],["touch",{"0":{"134":1,"135":1,"136":1},"2":{"76":1,"129":1,"132":2,"134":1,"136":1}}],["touches",{"0":{"47":1,"128":1,"129":1,"132":1},"1":{"129":1,"130":1},"2":{"0":2,"3":3,"6":3,"36":1,"47":2,"128":1,"129":3,"130":11,"131":6,"132":11,"133":15,"134":9,"135":8,"136":3,"137":4,"206":1}}],["totally",{"2":{"80":1}}],["total",{"2":{"58":1,"68":2,"70":1,"76":2}}],["towards",{"2":{"30":1,"32":1}}],["topright",{"2":{"188":1}}],["topologypreserve",{"2":{"186":1}}],["topology",{"2":{"186":1}}],["topological",{"2":{"164":2}}],["top",{"2":{"25":1,"31":1,"76":1,"152":1}}],["took",{"2":{"208":1}}],["tools",{"2":{"22":1}}],["too",{"2":{"6":1,"79":1,"166":1,"182":1,"185":1}}],["tol^2",{"2":{"189":1,"190":1}}],["tolerances",{"2":{"191":1,"192":29}}],["tolerance",{"2":{"189":1,"190":1,"191":1,"192":17}}],["told",{"2":{"164":1}}],["tol",{"2":{"6":12,"184":2,"188":18,"189":7,"190":15,"191":8,"192":18}}],["todo",{"2":{"3":2,"6":2,"37":1,"76":6,"79":1,"87":2,"110":4,"127":1,"152":1,"158":1,"162":1,"163":1,"170":1,"188":1,"198":1}}],["to",{"0":{"9":1,"28":1,"31":1,"77":1,"100":1,"114":1,"131":1,"141":1,"198":1},"2":{"0":3,"1":22,"3":1,"4":33,"5":4,"6":129,"7":2,"9":3,"10":2,"11":2,"13":1,"17":1,"18":4,"19":1,"20":14,"21":2,"22":2,"23":9,"24":1,"25":2,"27":3,"28":4,"29":2,"30":3,"31":2,"32":3,"34":4,"35":1,"36":2,"57":1,"58":4,"60":1,"61":8,"62":2,"64":2,"65":5,"66":4,"67":1,"68":26,"69":1,"70":12,"72":1,"73":3,"74":8,"75":4,"76":45,"78":8,"79":27,"80":7,"81":11,"82":1,"84":1,"85":1,"86":4,"87":6,"89":6,"90":32,"92":2,"93":17,"94":1,"95":1,"96":1,"98":2,"99":7,"108":3,"109":1,"110":2,"112":1,"113":7,"122":2,"123":1,"124":21,"126":3,"127":7,"129":1,"130":7,"132":1,"139":1,"140":7,"150":4,"152":16,"153":4,"155":9,"156":6,"157":1,"158":36,"159":12,"160":7,"161":24,"162":2,"163":6,"164":9,"165":2,"166":6,"167":2,"168":2,"169":3,"171":4,"172":8,"173":5,"174":3,"175":1,"176":4,"177":3,"178":1,"179":4,"180":4,"181":1,"182":3,"183":3,"184":9,"185":7,"186":1,"188":4,"189":1,"190":15,"191":1,"192":2,"193":4,"194":1,"195":2,"196":9,"197":28,"198":4,"199":4,"200":6,"201":10,"202":6,"203":7,"204":5,"205":1,"206":7,"207":5,"208":2,"209":8}}],["lhuilier",{"2":{"162":1,"166":1}}],["lj",{"2":{"152":2}}],["lrs",{"2":{"188":2}}],["lr",{"2":{"152":3,"158":3}}],["lp",{"2":{"124":2}}],["lstart",{"2":{"124":2}}],["ls",{"2":{"124":12}}],["ll",{"2":{"22":1,"67":1,"183":2,"188":1,"201":1,"203":1}}],["l",{"2":{"14":4,"21":1,"68":6,"76":5,"110":2,"124":32,"198":6}}],["lgeos",{"2":{"188":1}}],["lg",{"2":{"13":1,"14":1,"15":2,"37":5,"38":1,"40":3,"41":3,"42":3,"43":3,"45":3,"46":3,"47":3,"48":3,"49":3,"50":3,"51":3,"52":3,"53":3,"54":3,"55":3,"86":4,"184":9,"188":17}}],["l305",{"2":{"6":1}}],["log10",{"2":{"184":2,"188":4}}],["log",{"2":{"183":2}}],["lowest",{"2":{"166":1}}],["lower",{"2":{"6":1,"7":1,"152":1,"207":1}}],["loudly",{"2":{"158":1}}],["location",{"2":{"76":1,"124":6}}],["local",{"2":{"58":1,"61":3,"75":1,"76":5,"81":1,"152":1}}],["locally",{"2":{"17":2,"164":2}}],["loose",{"2":{"168":1}}],["lookup",{"2":{"152":1,"158":1}}],["looks",{"2":{"64":1}}],["look",{"2":{"57":2,"152":2,"166":2,"169":1,"183":1}}],["looping",{"2":{"152":1}}],["loop",{"2":{"36":1,"61":1,"65":3,"68":2,"70":1,"76":12,"79":1,"81":1,"124":5,"152":3,"190":1}}],["loopstatemachine",{"2":{"36":1,"76":3}}],["lon",{"2":{"6":2,"183":1,"184":2}}],["longitude",{"2":{"19":1,"164":3,"201":2}}],["long",{"2":{"6":1,"19":1,"79":1,"184":1,"208":1}}],["longer",{"2":{"6":3,"182":1,"184":2,"185":1}}],["lots",{"2":{"201":1}}],["lot",{"2":{"6":1,"28":1,"58":1,"61":1,"65":1,"70":1,"90":1,"93":1,"127":1,"153":1,"183":1,"196":2}}],["loading",{"2":{"62":1,"181":1,"184":1}}],["load",{"2":{"20":1,"158":2,"159":2,"188":1,"199":2}}],["loads",{"2":{"5":1,"6":1,"68":1}}],["loaded",{"2":{"1":1,"62":3,"180":1,"181":2,"184":2}}],["laptop",{"2":{"208":1}}],["land",{"2":{"201":8}}],["lazily",{"2":{"161":2}}],["layers",{"2":{"156":1}}],["label",{"2":{"14":4,"15":2,"84":2,"86":1,"89":1,"152":3,"183":2,"187":2,"188":2}}],["labels",{"2":{"13":2,"152":1}}],["later",{"2":{"58":1,"86":1,"152":1,"164":1}}],["latitude",{"2":{"19":1,"164":3,"201":2}}],["lat",{"2":{"6":3,"19":1,"183":1,"184":3}}],["larger",{"2":{"76":1,"80":1,"192":1}}],["large",{"2":{"6":8,"68":1,"76":1,"188":2,"204":1,"208":1}}],["lastindex",{"2":{"192":1}}],["last",{"2":{"4":3,"6":3,"9":1,"58":2,"61":11,"67":2,"70":4,"76":15,"90":7,"93":5,"124":20,"132":1,"152":6,"169":1,"176":2,"190":1}}],["lt",{"2":{"6":6,"79":4,"162":1,"166":2,"183":1}}],["len",{"2":{"190":7}}],["length",{"2":{"0":1,"5":1,"6":5,"9":1,"23":1,"63":1,"64":1,"65":22,"68":32,"70":1,"73":2,"74":2,"76":11,"78":1,"79":1,"80":1,"81":1,"124":1,"152":16,"158":3,"159":2,"176":2,"183":1,"189":1,"190":1,"191":1,"192":7}}],["legend",{"2":{"188":4}}],["le",{"2":{"124":10}}],["leaving",{"2":{"169":1}}],["leaf",{"2":{"158":1,"161":3}}],["leading",{"2":{"200":1}}],["lead",{"2":{"79":1,"169":1}}],["least",{"2":{"3":4,"6":4,"76":1,"79":1,"81":2,"124":14,"127":6,"130":1,"133":3,"134":2,"135":2,"136":1,"137":1,"140":1,"146":1,"150":1,"158":1}}],["leftjoin",{"2":{"206":1}}],["leftover",{"2":{"76":1}}],["left=1",{"2":{"76":1}}],["left",{"2":{"68":1,"76":5,"150":1,"152":2,"190":17,"192":5}}],["lets",{"2":{"58":1}}],["let",{"2":{"57":1,"64":1,"76":1,"124":1,"152":3,"183":1,"200":6,"201":4,"202":3,"203":2,"204":2,"209":1}}],["levels",{"2":{"152":1,"156":1,"167":1}}],["level",{"2":{"6":1,"7":1,"9":1,"23":2,"25":1,"34":1,"156":1,"158":2,"166":2,"168":1,"170":1,"172":4,"173":1,"174":1,"176":2,"202":2}}],["less",{"2":{"3":1,"6":7,"58":1,"61":1,"65":1,"68":1,"70":1,"76":1,"90":1,"93":1,"110":1,"127":1,"152":1,"166":1,"188":1,"189":1}}],["l289",{"2":{"6":1}}],["l2",{"2":{"3":4,"4":4,"6":8,"92":4,"93":12,"95":8,"109":2,"112":5,"126":4,"129":3,"130":2,"139":8}}],["l195",{"2":{"6":1}}],["l177",{"2":{"6":1}}],["l1",{"2":{"3":6,"4":4,"6":10,"76":2,"92":4,"93":12,"95":8,"98":4,"99":2,"108":4,"109":2,"112":5,"126":4,"129":3,"130":2,"139":8,"198":2}}],["li",{"2":{"152":2}}],["lie",{"2":{"79":1}}],["lies",{"2":{"76":3,"164":1,"207":1}}],["limitations",{"2":{"79":1}}],["limits",{"2":{"67":1}}],["limited",{"2":{"6":1,"182":1,"185":1}}],["library",{"2":{"73":1,"204":1}}],["libraries",{"2":{"58":1,"174":1,"204":1}}],["libgeos",{"2":{"6":2,"13":1,"14":1,"15":1,"28":1,"37":2,"58":1,"62":5,"86":1,"151":1,"184":7,"188":4,"196":2}}],["little",{"2":{"31":1}}],["literate",{"2":{"31":1,"36":1,"37":1,"55":1,"58":1,"61":1,"62":1,"65":1,"68":1,"70":1,"73":1,"75":1,"76":1,"77":1,"79":1,"81":1,"87":1,"90":1,"93":1,"96":1,"106":1,"109":1,"110":1,"120":1,"123":1,"124":1,"127":1,"137":1,"147":1,"150":1,"151":1,"152":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"170":1,"173":1,"176":1,"177":1,"178":1,"179":1,"181":1,"185":1,"192":1,"193":1,"194":1,"196":1,"198":1}}],["live",{"2":{"19":1,"164":1}}],["lift",{"2":{"14":2}}],["lin",{"2":{"184":5}}],["linked",{"2":{"82":1}}],["linrange",{"2":{"13":2,"14":5,"67":2,"89":1,"152":2,"184":1,"188":2}}],["linering",{"2":{"201":1}}],["lineedge",{"2":{"198":4}}],["line`",{"2":{"198":1}}],["linewidth",{"2":{"57":1,"200":1}}],["linesegment",{"2":{"150":2,"185":1}}],["lines",{"0":{"102":1,"116":1,"133":1,"143":1},"2":{"3":1,"4":4,"6":5,"72":1,"76":3,"79":9,"84":1,"85":2,"86":2,"89":1,"92":4,"93":4,"95":3,"98":1,"99":1,"108":2,"110":1,"112":3,"122":3,"124":2,"126":4,"127":2,"129":4,"139":3,"140":1,"152":3,"186":1,"200":4,"205":2}}],["linestrings",{"2":{"4":2,"6":2,"9":1,"93":2,"149":1,"168":1,"200":1}}],["linestringtrait",{"2":{"3":2,"4":4,"6":7,"11":3,"37":1,"61":1,"65":4,"78":2,"90":2,"93":8,"101":1,"102":4,"103":1,"110":6,"115":1,"116":5,"127":4,"132":1,"133":4,"134":1,"142":1,"143":4,"144":1,"156":1,"167":2,"172":2,"173":1,"185":2}}],["linestring",{"2":{"3":5,"4":6,"6":16,"23":1,"25":1,"61":2,"65":2,"90":4,"92":2,"93":2,"95":2,"96":1,"101":1,"102":3,"109":2,"112":2,"113":1,"115":1,"116":4,"124":2,"126":2,"132":1,"133":3,"134":1,"139":2,"140":1,"142":1,"143":4,"144":1,"150":7,"158":2,"159":2,"197":3,"198":2,"200":5,"205":1}}],["linetrait",{"2":{"3":2,"4":4,"6":6,"61":1,"73":2,"76":2,"78":2,"90":2,"93":8,"101":1,"102":4,"103":1,"115":1,"116":5,"127":4,"132":1,"133":4,"134":1,"142":1,"143":4,"144":1}}],["line2",{"2":{"3":3,"6":7,"78":2,"79":2,"110":5,"122":3,"123":2,"127":3,"150":5}}],["line1",{"2":{"3":4,"6":8,"78":2,"79":2,"110":5,"122":3,"123":2,"127":5,"150":5}}],["linea",{"2":{"1":1,"6":1,"193":1}}],["linearmap",{"2":{"188":1}}],["linearalgebra",{"2":{"36":1}}],["linear",{"2":{"4":7,"6":10,"9":1,"58":2,"64":1,"65":3,"68":1,"70":1,"79":1,"90":5,"93":8,"103":1,"124":2,"133":1,"134":2,"143":1,"149":1,"158":1,"159":1,"164":1,"170":3,"183":5,"184":3,"185":4,"198":1}}],["linearr",{"2":{"1":1,"6":1,"193":1}}],["linearrings",{"2":{"9":1,"117":1,"152":6,"168":1,"200":1}}],["linearringtrait",{"2":{"4":4,"6":4,"11":3,"37":1,"58":2,"61":3,"65":4,"76":4,"78":2,"90":2,"93":8,"101":1,"102":1,"103":4,"115":1,"116":2,"117":3,"132":1,"133":1,"134":4,"142":1,"143":1,"144":4,"167":2,"172":1,"185":2,"188":1}}],["linearring",{"2":{"1":10,"3":2,"4":1,"6":14,"36":1,"61":2,"65":2,"76":2,"80":2,"81":1,"87":1,"90":1,"101":1,"103":3,"115":1,"116":1,"117":2,"124":2,"127":4,"132":1,"133":1,"134":3,"142":1,"144":4,"150":1,"152":3,"155":2,"158":5,"159":2,"168":1,"169":2,"170":1,"175":3,"188":1,"193":8,"198":2,"200":16,"201":4,"202":4,"207":2}}],["linearsegments",{"2":{"0":1,"6":1,"182":1,"183":1,"184":3,"185":2}}],["line",{"0":{"124":1},"2":{"0":1,"3":13,"4":9,"6":53,"18":1,"28":1,"60":2,"61":7,"64":3,"65":10,"70":8,"72":6,"73":18,"76":17,"78":8,"79":67,"81":6,"90":11,"93":5,"96":2,"98":2,"99":1,"101":2,"102":11,"103":8,"108":1,"110":11,"113":2,"115":1,"116":9,"117":4,"122":2,"123":2,"124":141,"126":3,"127":12,"129":2,"130":2,"132":1,"133":10,"134":3,"140":2,"142":2,"143":10,"144":7,"150":6,"152":2,"185":1,"188":1,"189":1,"190":4,"191":1,"197":3,"198":2,"200":3}}],["lineorientation",{"2":{"0":1,"6":2,"78":2}}],["lists",{"2":{"25":1,"76":5,"127":1,"198":1}}],["listed",{"2":{"6":1,"61":1,"188":1}}],["list",{"2":{"6":17,"9":1,"61":20,"73":20,"74":14,"75":8,"76":236,"78":13,"79":5,"80":13,"81":1,"198":1,"208":2}}],["likely",{"2":{"156":1}}],["like",{"0":{"77":1},"2":{"1":2,"6":5,"22":1,"23":2,"24":1,"25":1,"28":1,"29":1,"34":1,"36":1,"58":1,"64":1,"67":1,"68":1,"70":1,"74":1,"76":1,"78":1,"80":1,"87":1,"89":1,"90":1,"93":1,"153":2,"155":2,"158":1,"159":2,"162":3,"166":3,"167":2,"172":2,"173":1,"182":1,"183":1,"201":2}}],["iah",{"2":{"205":2}}],["image",{"2":{"152":1}}],["impossible",{"2":{"73":1,"126":1}}],["important",{"2":{"183":1}}],["import",{"2":{"1":3,"6":4,"13":2,"14":2,"15":1,"36":10,"57":1,"60":1,"62":1,"64":1,"69":1,"73":1,"74":1,"78":1,"79":1,"80":1,"89":1,"92":1,"93":1,"95":1,"96":1,"98":1,"99":1,"108":1,"109":1,"110":1,"112":1,"113":1,"122":1,"123":1,"126":1,"127":1,"129":1,"130":1,"139":1,"140":1,"150":3,"155":1,"158":2,"159":1,"181":1,"184":2,"187":2,"188":3,"193":2,"197":1,"199":5}}],["implements",{"2":{"37":1,"196":1}}],["implementing",{"2":{"6":1,"188":1}}],["implement",{"2":{"6":1,"22":1,"28":1,"58":1,"61":1,"65":1,"68":1,"70":1,"87":1,"90":1,"93":1,"99":1,"113":1,"127":1,"130":1,"140":1,"153":1,"166":1,"171":1,"172":3,"173":1}}],["implementation",{"0":{"58":1,"61":1,"65":1,"70":1,"73":1,"87":1,"90":1,"93":1,"96":1,"99":1,"109":1,"113":1,"123":1,"127":1,"130":1,"140":1,"170":1,"176":1,"185":1},"2":{"6":1,"58":3,"61":3,"65":3,"68":1,"70":3,"80":1,"90":3,"93":3,"96":1,"99":2,"109":1,"113":2,"123":1,"127":3,"130":2,"140":2,"151":1,"152":2,"158":1,"159":1,"180":1,"185":1,"188":1,"196":1,"198":1}}],["implementations",{"2":{"6":1,"36":1,"99":1,"113":1,"130":1,"140":1,"151":1,"186":1,"196":3}}],["implemented",{"0":{"151":1},"2":{"1":1,"6":2,"36":2,"58":1,"68":3,"73":2,"75":2,"79":2,"81":2,"87":1,"90":2,"151":1,"153":2,"159":1,"172":2,"179":1,"180":1,"186":1}}],["improvements",{"2":{"9":2,"10":1}}],["improve",{"2":{"4":1,"6":1,"177":1}}],["i=2",{"2":{"150":1}}],["ipoints",{"2":{"124":4}}],["ip",{"2":{"93":2}}],["ipt",{"2":{"76":8}}],["ihole",{"2":{"93":2}}],["ih",{"2":{"81":22}}],["ii",{"2":{"76":8}}],["i2",{"2":{"70":2}}],["i1",{"2":{"70":2}}],["i+1",{"2":{"68":8,"152":1,"190":2,"192":1,"198":1}}],["io",{"2":{"62":5,"165":12,"181":5,"184":5}}],["i",{"2":{"9":1,"13":4,"17":1,"27":1,"58":1,"61":14,"68":16,"70":4,"75":2,"76":48,"80":2,"81":4,"90":2,"93":8,"110":7,"124":28,"150":14,"152":17,"158":8,"159":8,"165":6,"185":2,"189":3,"190":12,"192":28,"197":2,"198":4,"200":2,"201":1,"208":3}}],["id",{"2":{"203":1}}],["identical",{"2":{"158":1,"175":1}}],["identity",{"2":{"152":4,"161":2,"177":1}}],["ideal",{"2":{"20":1,"152":1}}],["idea",{"2":{"6":1,"18":1,"25":1,"30":1,"32":1,"68":1,"153":1,"159":1}}],["idx`",{"2":{"76":1}}],["idxs",{"2":{"76":2}}],["idx",{"2":{"61":6,"70":9,"73":23,"74":5,"76":188,"78":5,"80":2,"176":34,"190":51}}],["id=",{"2":{"6":2}}],["ignored",{"2":{"6":1,"152":1}}],["ignore",{"2":{"6":1,"152":2}}],["innerjoin",{"2":{"206":1,"207":1,"208":1}}],["inner",{"2":{"124":6,"158":5}}],["in=1",{"2":{"124":1}}],["in`",{"2":{"124":1}}],["inaccuracies",{"2":{"79":1}}],["inject",{"0":{"77":1},"2":{"181":1}}],["ind",{"2":{"208":2}}],["individual",{"2":{"202":1}}],["indication",{"2":{"166":1}}],["indicate",{"2":{"164":1}}],["indicates",{"2":{"25":1}}],["indices",{"2":{"76":15,"158":3,"159":3,"192":16,"198":3}}],["indeed",{"2":{"169":1}}],["index",{"2":{"68":8,"76":14,"124":1,"158":1,"190":1}}],["inds",{"2":{"152":3}}],["inplace",{"2":{"68":1}}],["inputmanifold",{"2":{"165":2}}],["inputs",{"2":{"6":1,"76":1,"93":1,"96":1,"109":1,"123":1,"192":1}}],["input",{"2":{"6":11,"61":1,"73":1,"74":1,"78":1,"79":1,"80":1,"152":1,"153":1,"159":1,"164":1,"166":1,"184":3,"185":1,"189":1,"190":1,"191":1,"201":1}}],["inbounds",{"2":{"68":16,"90":5,"124":1}}],["inspiration",{"2":{"73":1}}],["inspired",{"2":{"72":1,"73":2}}],["inside",{"2":{"61":3,"64":1,"70":1,"74":1,"75":1,"76":3,"78":1,"79":1,"80":1,"81":2,"89":3,"90":1,"101":1,"124":1,"139":1,"142":1,"152":2}}],["insertion",{"2":{"76":1}}],["insert",{"2":{"61":1,"190":1}}],["instability",{"2":{"29":2}}],["instantiating",{"2":{"25":1}}],["instead",{"2":{"23":1,"29":1,"159":1,"185":1}}],["instructs",{"2":{"6":1,"196":2}}],["inline",{"2":{"37":1,"124":4,"150":1,"158":13,"159":11,"163":2}}],["init=nothing",{"2":{"159":1}}],["init=typemax",{"2":{"90":2}}],["init=zero",{"2":{"58":1,"70":1}}],["initial",{"2":{"79":2,"184":1}}],["initially",{"2":{"76":1}}],["initialize",{"2":{"65":2,"68":3,"76":1,"79":1}}],["init",{"2":{"24":1,"36":1,"61":1,"65":2,"159":33,"166":2,"184":4}}],["incorrect",{"2":{"168":1,"169":1}}],["increase",{"2":{"76":1,"124":1}}],["increasing",{"2":{"6":1,"188":1}}],["increment",{"2":{"68":5}}],["including",{"2":{"61":1,"76":2,"79":1,"90":1,"101":1,"102":1,"103":1,"104":1,"124":2}}],["include",{"2":{"36":44,"61":1,"76":1,"82":1,"90":2,"163":1,"188":2,"202":2,"203":1}}],["included",{"2":{"6":2,"81":2,"173":2,"176":2,"202":1}}],["includes",{"2":{"4":2,"6":2,"81":1,"90":2,"93":1,"124":1}}],["incircle",{"0":{"16":1}}],["investigate",{"2":{"152":1}}],["investigating",{"0":{"86":1}}],["inverted",{"2":{"6":1,"87":1}}],["invalid",{"2":{"25":1,"75":2,"169":1,"174":1,"175":1}}],["invoke",{"2":{"25":1}}],["involved",{"2":{"153":1}}],["involve",{"2":{"25":1}}],["involving",{"2":{"6":3,"74":1,"78":1,"80":1}}],["invocation",{"2":{"23":1}}],["inv",{"2":{"18":1,"164":5}}],["ing",{"2":{"1":1,"6":2,"68":1,"193":1}}],["int",{"2":{"76":10,"81":7,"110":7,"162":2,"166":1,"185":1,"188":1,"190":5,"191":1,"192":1,"198":1}}],["intr2",{"2":{"76":2,"79":14}}],["intr1",{"2":{"76":3,"79":21,"124":2}}],["intrs",{"2":{"76":10,"79":5}}],["intr",{"2":{"70":9,"73":16,"76":28,"79":8}}],["introduction",{"0":{"32":1},"1":{"33":1,"34":1,"35":1}}],["introducing",{"2":{"29":1}}],["introduces",{"2":{"29":1}}],["introduced",{"2":{"20":1}}],["integrate",{"2":{"58":1}}],["integrating",{"2":{"58":1}}],["integrals",{"2":{"57":1}}],["integral",{"2":{"57":1}}],["intended",{"2":{"6":1,"19":1,"172":2,"173":1}}],["intermediate",{"2":{"70":1}}],["inter2",{"2":{"70":15}}],["inter1",{"2":{"70":23}}],["interpret",{"2":{"164":1}}],["interpreted",{"2":{"68":1}}],["interpolation",{"2":{"5":1,"6":1,"67":1,"68":2,"182":1}}],["interpolated",{"2":{"5":3,"6":3,"68":17,"182":1}}],["interpolate",{"2":{"0":2,"5":2,"6":4,"66":1,"67":2,"68":25}}],["interest",{"2":{"68":1,"90":1}}],["internal",{"2":{"67":1}}],["internals",{"2":{"29":1}}],["inter",{"2":{"6":3,"73":1,"74":1,"76":21,"78":5,"79":4}}],["interface",{"0":{"172":1},"2":{"6":3,"25":1,"82":1,"87":1,"158":1,"171":1,"172":4,"173":1,"188":1,"201":1}}],["interacted",{"2":{"124":1}}],["interaction",{"0":{"124":1},"2":{"124":2}}],["interactions",{"2":{"76":1,"81":3,"124":15}}],["interactive",{"2":{"13":1,"14":1}}],["interacting",{"2":{"6":1,"78":1,"124":2}}],["interacts",{"2":{"3":1,"6":1,"124":3,"129":1,"130":1,"133":3,"134":1,"135":1}}],["interact",{"2":{"3":2,"6":2,"80":1,"81":1,"112":1,"123":1,"124":5,"129":1,"130":1,"132":1,"133":2,"134":2,"135":1}}],["interior",{"2":{"3":6,"6":7,"57":1,"61":9,"65":5,"68":7,"76":1,"81":18,"95":1,"96":1,"98":1,"99":3,"102":5,"103":1,"104":2,"108":2,"109":1,"110":1,"113":2,"115":2,"116":6,"117":3,"124":15,"129":1,"130":3,"133":1,"134":2,"135":2,"139":1,"140":3,"145":2,"150":2,"170":1,"173":1}}],["interiors",{"2":{"3":6,"6":7,"68":20,"95":1,"96":1,"98":1,"108":1,"109":1,"112":1,"113":1,"118":1,"122":1,"123":1,"124":5,"129":1,"130":1,"132":1,"133":2,"134":1,"139":1,"140":1,"143":3,"144":3}}],["intersectingpolygons",{"2":{"6":3}}],["intersecting",{"0":{"174":1},"1":{"175":1,"176":1},"2":{"6":4,"36":1,"76":4,"81":2,"173":4,"174":1,"176":4}}],["intersections",{"0":{"79":1},"2":{"70":2,"75":1,"76":1,"78":2,"79":1,"81":1,"124":2}}],["intersection",{"0":{"42":1,"78":1,"121":1},"1":{"122":1,"123":1},"2":{"0":2,"3":3,"6":20,"9":1,"15":4,"28":1,"36":2,"42":2,"70":6,"73":3,"74":4,"75":4,"76":39,"78":15,"79":73,"80":2,"81":2,"110":2,"122":1,"124":6,"127":5,"166":2}}],["intersect",{"2":{"3":8,"6":11,"70":3,"74":2,"76":14,"78":1,"79":1,"80":1,"81":5,"95":1,"96":2,"98":1,"99":1,"109":1,"113":1,"116":1,"118":1,"122":2,"124":4,"127":1,"139":1,"140":2,"143":3,"144":3,"175":1,"176":4}}],["intersects",{"0":{"54":1,"122":1},"2":{"0":2,"3":3,"6":6,"36":1,"54":2,"76":3,"79":2,"81":2,"110":2,"121":1,"122":4,"123":4,"127":5,"145":1,"176":2,"198":1,"206":1}}],["into",{"2":{"5":1,"6":7,"20":1,"22":1,"31":1,"58":1,"61":1,"65":4,"68":1,"73":1,"74":1,"76":2,"78":1,"124":1,"152":4,"158":5,"159":4,"160":1,"161":2,"167":1,"176":1,"188":1,"197":2,"198":3,"200":2,"206":1}}],["int64",{"2":{"1":6,"6":6,"189":1,"190":1,"192":1,"193":6}}],["influence",{"2":{"164":1}}],["inference",{"2":{"158":1}}],["infinity",{"2":{"124":1,"127":1}}],["info",{"2":{"6":2,"164":1,"182":1}}],["information",{"0":{"202":1},"2":{"6":1,"34":1,"68":1,"69":1,"76":2,"79":1,"87":1,"124":1,"199":1,"202":3,"204":2}}],["inf",{"2":{"1":1,"9":1,"73":2,"189":1,"192":3}}],["in",{"0":{"28":1},"2":{"1":6,"3":3,"4":1,"5":4,"6":45,"7":1,"9":2,"13":6,"14":2,"18":1,"19":2,"20":3,"22":2,"23":4,"25":1,"28":3,"29":2,"30":1,"31":3,"32":1,"34":1,"35":1,"36":4,"37":1,"38":1,"57":1,"58":3,"61":7,"62":1,"64":2,"65":5,"66":2,"68":22,"70":31,"73":6,"74":9,"75":3,"76":99,"78":5,"79":29,"80":11,"81":28,"86":1,"87":3,"89":6,"90":6,"92":1,"93":17,"95":2,"96":1,"99":10,"102":1,"103":1,"104":1,"105":1,"106":1,"109":1,"110":7,"113":9,"115":1,"116":1,"117":1,"119":1,"120":1,"122":2,"123":1,"124":135,"126":1,"127":11,"129":1,"130":11,"134":1,"136":1,"137":1,"139":1,"140":10,"143":3,"144":3,"146":1,"147":1,"150":4,"151":3,"152":10,"153":1,"155":2,"156":2,"157":1,"158":9,"159":4,"161":8,"162":2,"163":1,"164":6,"165":1,"166":4,"167":1,"171":1,"172":1,"173":2,"174":1,"176":7,"177":1,"178":2,"180":3,"181":1,"182":2,"183":2,"184":14,"185":8,"186":1,"188":5,"189":2,"190":4,"191":1,"192":5,"193":2,"194":1,"195":4,"196":4,"197":8,"198":7,"199":1,"200":2,"201":6,"204":2,"206":4,"207":3,"208":1,"209":1}}],["itererable",{"2":{"197":1}}],["iter",{"2":{"161":31}}],["iterating",{"2":{"76":1}}],["iteration",{"2":{"58":1,"76":1}}],["iterate",{"2":{"68":2,"76":1,"156":1,"158":1,"161":4}}],["iterators",{"2":{"13":1,"68":1,"70":3,"76":5,"78":1,"81":2,"152":1,"158":3,"159":4,"161":8,"176":6,"185":1}}],["iterator",{"2":{"6":1,"76":4,"78":2,"161":4,"198":1}}],["iterabletype",{"2":{"158":5,"159":6}}],["iterable",{"2":{"4":1,"6":2,"23":1,"58":1,"70":1,"87":1,"158":17,"159":15,"161":11,"200":1}}],["iterables",{"2":{"1":2,"27":1,"155":2,"158":1,"159":2,"161":3}}],["ith",{"2":{"76":3,"81":7}}],["itself",{"2":{"70":1,"150":1,"156":1}}],["its",{"2":{"5":1,"6":9,"20":2,"23":1,"57":1,"68":1,"70":4,"76":2,"81":1,"102":1,"161":2,"171":1,"188":1,"189":1,"190":1,"191":3,"206":1}}],["it",{"2":{"1":4,"4":1,"6":17,"9":1,"20":4,"23":11,"24":2,"25":1,"27":1,"34":3,"35":1,"57":2,"58":3,"60":1,"61":1,"62":1,"65":2,"67":1,"69":1,"70":2,"74":1,"75":1,"76":2,"78":1,"79":4,"80":1,"81":3,"86":2,"87":2,"90":3,"93":1,"98":2,"101":3,"115":3,"124":14,"126":1,"127":1,"132":2,"142":3,"149":1,"150":2,"152":4,"153":3,"155":1,"156":3,"157":1,"158":10,"159":5,"161":9,"162":4,"163":2,"164":4,"165":4,"166":1,"167":2,"169":1,"170":1,"171":1,"173":1,"174":1,"179":2,"180":5,"183":2,"184":1,"185":1,"188":1,"190":1,"195":1,"196":7,"198":1,"201":3,"202":3,"204":3,"208":2,"209":2}}],["iff",{"2":{"158":1}}],["if",{"0":{"77":1},"2":{"1":5,"3":17,"4":19,"5":1,"6":70,"20":3,"23":1,"27":2,"37":1,"57":1,"58":6,"60":1,"61":15,"62":3,"65":1,"68":5,"70":36,"73":8,"74":13,"75":12,"76":101,"78":9,"79":44,"80":10,"81":22,"87":3,"89":2,"90":8,"92":2,"93":35,"95":1,"96":1,"98":1,"99":2,"101":4,"102":3,"103":3,"104":2,"105":1,"106":1,"108":1,"109":1,"110":9,"112":1,"113":3,"115":5,"116":4,"117":2,"118":2,"119":1,"120":1,"122":1,"123":1,"124":132,"126":4,"127":16,"129":1,"130":2,"132":4,"133":3,"134":2,"135":2,"136":1,"137":1,"139":1,"140":2,"142":5,"143":3,"144":3,"145":1,"146":1,"147":1,"150":5,"152":35,"155":3,"156":1,"158":19,"159":6,"161":8,"163":1,"165":1,"166":3,"170":1,"172":1,"173":2,"174":1,"176":12,"177":1,"178":1,"179":2,"180":3,"181":2,"184":6,"185":1,"188":1,"190":12,"192":12,"193":1,"194":1,"196":2,"198":1,"201":1,"204":1,"207":2,"208":1}}],["isolate",{"2":{"188":1}}],["isodd",{"2":{"73":1}}],["ismeasured",{"2":{"161":1}}],["istable",{"2":{"158":1,"159":1,"161":1}}],["isequal",{"2":{"152":1}}],["iseven",{"2":{"124":1}}],["isempty",{"2":{"58":1,"68":4,"70":1,"74":1,"75":2,"78":1,"152":1,"165":1,"172":1,"190":1}}],["isparallel",{"2":{"124":1,"150":8}}],["is3d",{"2":{"93":1,"161":1,"178":1,"179":1,"193":1,"194":1,"197":10}}],["issue",{"2":{"76":1,"165":1}}],["issues",{"2":{"30":1,"32":1}}],["isgeometry",{"2":{"76":1}}],["isa",{"2":{"23":1,"68":9,"158":3,"159":1,"185":2,"197":1}}],["isnothing",{"2":{"62":1,"73":1,"75":2,"76":9,"79":2,"81":2,"93":1,"152":1,"181":1,"184":1,"188":1,"189":1,"190":5,"191":1,"192":6}}],["isn",{"2":{"6":1,"58":1,"70":1,"73":1,"75":1,"76":4,"79":3,"81":2,"90":3,"93":1,"98":1,"124":9,"127":1,"188":1,"196":1}}],["isconcave",{"0":{"150":1},"2":{"0":1,"6":2,"86":1,"148":1,"150":3}}],["isclockwise",{"0":{"149":1},"2":{"0":1,"6":2,"70":1,"148":1,"150":5,"152":2}}],["is",{"0":{"19":1,"20":1,"30":1,"57":2,"60":1,"64":1,"69":1,"72":1,"89":2,"92":1,"95":1,"98":1,"108":1,"112":1,"122":1,"126":1,"129":1,"139":1,"156":1},"2":{"0":1,"1":10,"3":8,"4":43,"5":1,"6":105,"9":3,"11":1,"13":1,"14":1,"17":2,"18":4,"19":3,"20":12,"21":3,"23":3,"24":1,"25":1,"27":3,"28":2,"30":2,"32":2,"57":7,"58":19,"60":1,"61":19,"62":3,"64":2,"65":5,"66":2,"67":2,"68":15,"69":3,"70":22,"72":1,"73":2,"74":4,"75":13,"76":92,"78":4,"79":40,"80":7,"81":20,"82":1,"86":5,"87":4,"89":8,"90":23,"93":13,"95":2,"96":3,"98":4,"99":4,"101":7,"102":3,"103":3,"104":1,"105":1,"106":1,"109":3,"110":3,"112":1,"113":5,"115":9,"116":4,"117":2,"118":1,"119":1,"120":1,"123":2,"124":91,"126":3,"127":12,"130":4,"132":2,"139":4,"140":5,"142":8,"143":3,"144":3,"145":1,"146":2,"147":1,"149":2,"150":7,"151":1,"152":11,"153":3,"155":3,"156":3,"157":1,"158":18,"159":4,"161":7,"162":2,"163":1,"164":13,"165":3,"167":1,"168":7,"169":2,"170":1,"171":3,"172":2,"173":1,"174":4,"175":1,"176":2,"178":1,"179":1,"180":7,"181":2,"182":3,"183":3,"184":9,"185":8,"187":1,"188":4,"189":1,"190":2,"191":1,"193":2,"195":1,"196":3,"198":1,"200":4,"201":5,"202":3,"203":1,"204":3,"206":2,"207":5,"208":2}}],["cpu",{"2":{"208":1}}],["cp",{"2":{"205":1}}],["circumstances",{"2":{"164":2}}],["cy",{"2":{"150":2}}],["cyan",{"2":{"62":1,"181":1,"184":1}}],["cx",{"2":{"150":2}}],["cdot",{"2":{"150":1}}],["cs",{"2":{"124":9}}],["cshape",{"2":{"64":3}}],["cw",{"2":{"70":2}}],["cb",{"2":{"67":1,"86":1,"152":1}}],["cgrad",{"2":{"67":1}}],["cgal",{"2":{"67":1}}],["c",{"2":{"37":1,"58":1,"64":1,"70":4,"73":5,"77":3,"124":24,"184":1}}],["cleaner",{"2":{"87":1}}],["cleanest",{"2":{"87":1}}],["clear",{"2":{"69":1}}],["clearly",{"2":{"57":1,"60":1,"89":1}}],["clamped",{"2":{"79":18}}],["clamp",{"2":{"61":1,"79":1}}],["classified",{"2":{"76":1}}],["classify",{"2":{"76":4}}],["classical",{"2":{"19":1}}],["class",{"2":{"6":1,"152":1}}],["class=",{"2":{"6":6}}],["clipping",{"0":{"74":1,"75":1,"76":1,"79":1,"80":1,"81":1},"2":{"6":1,"9":1,"36":8,"73":3,"74":1,"76":9,"78":1,"80":1,"174":1}}],["closure",{"2":{"158":2}}],["closing",{"2":{"61":1}}],["closer",{"2":{"164":1}}],["close",{"2":{"61":5,"70":1,"73":1,"76":2,"79":1,"90":9,"152":1,"169":1,"170":4}}],["closest",{"2":{"4":3,"6":3,"79":2,"89":1,"90":6,"164":1}}],["closed2",{"2":{"93":2}}],["closed1",{"2":{"93":2}}],["closed",{"0":{"168":1},"1":{"169":1,"170":1},"2":{"4":4,"6":11,"9":1,"36":1,"58":3,"61":6,"65":3,"70":1,"76":1,"79":1,"81":3,"93":21,"101":2,"102":5,"103":5,"115":2,"116":5,"117":3,"124":52,"133":5,"134":1,"142":3,"143":5,"144":5,"150":1,"152":1,"168":1,"169":1,"170":2,"171":1,"173":1,"200":1}}],["closedring",{"2":{"0":1,"6":1,"168":1,"169":1,"170":4,"171":1,"172":1,"173":1}}],["clockwise",{"2":{"4":1,"6":4,"9":1,"57":1,"58":1,"70":7,"86":1,"149":2,"150":3,"152":1}}],["ceil",{"2":{"185":1}}],["ce",{"2":{"124":11}}],["certainly",{"2":{"79":1}}],["certain",{"2":{"22":1,"23":1,"31":1,"34":1,"165":1}}],["central",{"2":{"76":1}}],["centroids",{"2":{"64":1,"65":1}}],["centroid",{"0":{"63":1,"64":1},"1":{"64":1,"65":1},"2":{"0":4,"4":2,"6":6,"36":1,"63":3,"64":4,"65":38,"153":1,"159":1,"188":4}}],["cent",{"2":{"64":2}}],["centered",{"2":{"76":1}}],["center",{"2":{"6":1,"64":1,"152":1}}],["cells",{"2":{"152":1}}],["cell",{"2":{"6":4,"69":3,"70":28,"152":2}}],["children",{"2":{"188":1}}],["child",{"2":{"161":11}}],["chunks",{"2":{"158":8,"159":9}}],["chunk",{"2":{"158":12,"159":13}}],["chull",{"2":{"55":2}}],["changes",{"2":{"76":1}}],["changed",{"2":{"76":1,"161":1}}],["change",{"2":{"29":1,"76":3,"86":1}}],["chain=2",{"2":{"76":1}}],["chain=1",{"2":{"76":1}}],["chain",{"2":{"75":3,"76":66,"79":4,"81":4,"86":2}}],["chains",{"2":{"25":1,"76":1}}],["chairmarks",{"2":{"13":1,"184":1,"188":1}}],["chose",{"2":{"29":1,"152":1}}],["choice",{"2":{"21":1}}],["choose",{"2":{"6":1,"87":1,"152":2}}],["cheap",{"2":{"20":1}}],["checkargs",{"2":{"189":1,"190":1,"191":1,"192":1}}],["checks",{"0":{"110":1,"121":1},"1":{"122":1,"123":1},"2":{"20":1,"62":1,"76":1,"79":1,"92":1,"95":1,"98":1,"108":1,"112":1,"122":1,"124":5,"126":1,"127":1,"129":1,"139":1,"207":1}}],["checking",{"2":{"6":1,"76":2,"93":1,"190":1}}],["check",{"2":{"4":1,"6":1,"7":1,"65":1,"70":3,"73":1,"74":1,"76":9,"77":1,"79":4,"80":1,"93":8,"124":11,"152":5,"158":1,"161":1,"175":1,"177":1,"183":2,"190":1,"192":1}}],["checked",{"2":{"4":1,"6":1,"76":1,"79":1,"86":1,"124":1,"177":1}}],["c2",{"2":{"6":3,"15":2,"90":3,"93":14,"152":21}}],["c1",{"2":{"6":3,"15":2,"90":4,"93":13,"152":26}}],["ctor",{"2":{"1":1,"6":1,"193":1}}],["catch",{"2":{"165":1}}],["catches",{"2":{"162":1}}],["categorize",{"2":{"73":1}}],["categorical",{"2":{"67":1}}],["category",{"2":{"17":1}}],["came",{"2":{"73":1}}],["case",{"2":{"61":1,"65":1,"66":2,"74":1,"76":2,"79":2,"81":1,"124":16,"159":1,"162":3,"185":1,"209":1}}],["cases",{"2":{"6":1,"68":1,"73":2,"124":3,"156":1,"158":1,"159":1,"161":3}}],["caused",{"2":{"158":1}}],["cause",{"2":{"23":1,"28":1,"190":1}}],["carrying",{"2":{"162":1}}],["carry",{"2":{"162":1,"164":1}}],["carried",{"2":{"6":1,"196":1}}],["careful",{"2":{"68":1,"156":1}}],["care",{"2":{"22":1,"158":1,"164":1}}],["cartesian",{"2":{"18":1,"20":2}}],["cairomakie",{"2":{"13":1,"57":1,"60":1,"64":1,"67":2,"69":1,"72":1,"84":1,"85":1,"86":1,"89":1,"92":1,"95":1,"98":1,"108":1,"112":1,"122":1,"126":1,"129":1,"139":1,"152":1,"183":1,"184":1,"188":1,"199":1,"205":1,"207":1,"208":1}}],["california",{"2":{"208":1}}],["callable",{"2":{"152":4,"166":1,"172":1}}],["calls",{"2":{"76":1,"79":1,"81":1,"90":1,"99":1,"113":1,"130":1,"140":1,"156":1,"158":1,"185":1}}],["calling",{"2":{"38":1,"76":3,"158":1}}],["call",{"2":{"23":1,"29":1,"58":1,"65":1,"76":2,"158":4,"186":1}}],["called",{"2":{"6":2,"65":3,"76":1,"158":1,"165":3,"170":1,"172":1,"173":1,"196":1,"201":1}}],["calculation",{"2":{"79":1}}],["calculations",{"2":{"6":1,"20":1,"30":2,"32":2,"79":1,"164":2,"184":1}}],["calculating",{"2":{"4":1,"6":1,"23":1,"76":1,"177":1}}],["calculated",{"2":{"6":1,"64":2,"70":1,"79":2,"90":1,"158":4}}],["calculates",{"2":{"4":2,"6":6,"58":1,"68":2,"70":1,"79":2,"80":1,"90":2,"184":1,"191":1}}],["calculate",{"2":{"1":2,"5":1,"6":5,"11":1,"61":3,"65":1,"68":3,"70":1,"79":1,"124":1,"152":1,"155":1,"158":3,"160":1}}],["calc",{"2":{"1":2,"6":3,"29":1,"36":1,"37":1,"40":2,"41":2,"42":2,"43":2,"55":1,"61":4,"155":1,"157":1,"158":19,"160":1,"163":1,"177":1,"188":2}}],["caches",{"2":{"20":1}}],["cache",{"2":{"6":1,"68":1}}],["cant",{"2":{"93":1,"152":1,"197":1}}],["candidates",{"2":{"76":2}}],["cannot",{"2":{"3":3,"4":2,"6":5,"58":1,"93":1,"101":1,"104":1,"127":2,"130":1,"132":2,"134":1,"145":1}}],["can",{"2":{"1":1,"4":2,"6":14,"7":2,"9":1,"13":1,"14":1,"18":2,"21":1,"29":1,"31":1,"36":2,"58":1,"61":1,"62":1,"65":1,"66":2,"67":1,"68":3,"70":1,"74":3,"76":6,"78":3,"79":1,"80":3,"81":1,"86":1,"87":2,"92":1,"93":3,"95":1,"98":1,"110":1,"112":1,"122":2,"124":23,"126":2,"127":3,"129":1,"133":1,"134":1,"139":1,"142":1,"143":1,"144":1,"151":1,"152":1,"153":1,"155":1,"157":1,"158":9,"160":1,"161":2,"162":1,"164":3,"165":2,"166":3,"169":2,"170":1,"173":1,"174":2,"175":1,"177":1,"181":1,"183":1,"184":2,"188":2,"196":1,"200":6,"201":1,"202":3,"204":3,"206":3,"207":3}}],["creation",{"2":{"200":1,"202":1}}],["creating",{"0":{"199":1,"200":1,"203":1},"1":{"200":1,"201":1,"202":1,"203":1,"204":1},"2":{"124":1}}],["creates",{"2":{"7":1,"76":3}}],["create",{"0":{"202":1},"2":{"6":2,"13":2,"14":1,"73":1,"76":1,"79":2,"87":1,"152":2,"158":1,"165":1,"173":2,"174":3,"176":2,"199":2,"200":4,"201":5,"202":3,"203":1,"204":1,"207":1}}],["created",{"2":{"4":2,"6":2,"76":1,"90":3}}],["criteria",{"2":{"99":2,"113":2,"130":2,"140":2,"190":3}}],["cropping",{"2":{"67":2}}],["cross=1",{"2":{"78":1}}],["cross`",{"2":{"78":1}}],["crossings",{"2":{"76":3,"124":1}}],["crossing",{"0":{"110":1},"2":{"6":2,"74":1,"75":7,"76":81,"78":3,"79":7,"80":1,"81":6,"99":1,"110":1,"124":1,"140":1}}],["cross",{"0":{"137":1},"2":{"6":1,"9":1,"61":3,"73":14,"74":2,"75":1,"76":13,"77":4,"78":2,"79":10,"80":2,"81":1,"99":1,"110":2,"113":1,"124":17,"127":2,"130":1,"140":1,"150":3}}],["crosses",{"0":{"48":1},"2":{"0":2,"3":2,"6":3,"36":1,"48":2,"73":1,"76":1,"110":26,"124":2,"206":1}}],["crc",{"2":{"6":1,"68":1}}],["crs2",{"2":{"201":2}}],["crs1",{"2":{"201":2,"202":1}}],["crs=nothing",{"2":{"158":1,"177":1,"188":1}}],["crs=gi",{"2":{"158":5,"161":3}}],["crs`",{"2":{"158":1,"180":6}}],["crstrait",{"2":{"20":3}}],["crs",{"0":{"201":1},"2":{"1":16,"4":2,"6":8,"20":4,"36":1,"37":2,"40":2,"41":2,"42":2,"43":2,"55":2,"76":1,"87":1,"152":10,"155":2,"157":3,"158":36,"160":2,"161":4,"164":1,"177":1,"180":7,"188":1,"199":1,"201":13,"202":10,"204":1}}],["customize",{"2":{"158":2,"159":2}}],["custom",{"0":{"209":1},"2":{"6":3,"68":1,"165":1,"209":2}}],["curr^2",{"2":{"61":2}}],["curr",{"2":{"61":8,"73":9,"76":116,"81":3,"176":26}}],["currentnode",{"2":{"152":8}}],["current",{"2":{"61":1,"68":8,"73":2,"75":1,"76":3,"79":1,"81":6,"152":2,"176":3}}],["currently",{"2":{"5":1,"6":4,"28":1,"68":1,"73":1,"75":2,"76":2,"152":1,"158":1,"164":2,"198":2}}],["curvature",{"2":{"18":1}}],["curve",{"0":{"124":1},"2":{"3":1,"4":7,"6":18,"58":7,"61":6,"70":3,"76":5,"78":7,"89":1,"90":22,"93":6,"99":2,"101":4,"102":9,"103":9,"113":1,"115":4,"116":6,"117":3,"124":152,"127":1,"130":1,"133":6,"135":3,"140":1,"142":4,"143":6,"144":6}}],["curves",{"2":{"0":1,"3":1,"6":5,"58":3,"70":3,"79":1,"89":1,"90":1,"93":13,"104":1,"124":1,"127":1,"145":1,"188":2}}],["cutpolygon",{"2":{"72":1}}],["cuts",{"2":{"72":1}}],["cutting",{"0":{"71":1},"1":{"72":1,"73":1},"2":{"73":2,"76":1}}],["cut",{"0":{"72":1},"2":{"0":1,"6":6,"36":1,"68":1,"71":1,"72":5,"73":22,"124":1}}],["coastlines",{"2":{"205":1}}],["coarse",{"2":{"6":1,"182":1,"185":1}}],["cos",{"2":{"200":3,"201":1,"202":2}}],["copy",{"2":{"158":1,"172":1,"192":1}}],["coors1",{"2":{"150":2}}],["coors2",{"2":{"150":3}}],["coord",{"2":{"185":6}}],["coords",{"2":{"73":9,"185":8}}],["coordinatetransformations",{"2":{"1":2,"6":2,"188":1,"193":2,"199":1,"200":5,"202":2}}],["coordinate",{"0":{"68":1,"178":1,"201":1,"202":1},"2":{"1":4,"5":5,"6":7,"20":5,"30":1,"32":1,"67":2,"68":10,"180":4,"185":1,"199":3,"201":1}}],["coordinates",{"0":{"5":1,"66":1},"1":{"67":1,"68":1},"2":{"0":4,"1":1,"4":2,"5":7,"6":20,"19":2,"58":2,"66":8,"68":25,"69":1,"73":2,"74":1,"76":2,"78":1,"80":1,"90":1,"93":2,"153":1,"164":2,"178":2,"180":1,"183":1,"184":3,"201":2}}],["co",{"2":{"124":2}}],["corner",{"2":{"70":4,"152":1}}],["corners",{"2":{"70":1}}],["correspondent",{"2":{"150":1}}],["correspond",{"2":{"76":1}}],["corresponding",{"2":{"61":3,"75":2}}],["corrected",{"2":{"172":1}}],["correctness",{"2":{"168":1,"196":1}}],["correcting",{"2":{"25":1,"172":1}}],["corrections",{"0":{"171":1,"173":1},"1":{"172":1,"173":1},"2":{"169":1,"172":6,"175":1}}],["correction",{"2":{"6":10,"36":4,"74":1,"75":2,"78":1,"79":2,"80":1,"81":2,"168":1,"170":2,"171":2,"172":8,"173":7,"174":1,"176":2}}],["correctly",{"2":{"20":1,"158":1,"183":1}}],["correct",{"2":{"6":3,"20":1,"29":1,"58":1,"61":1,"65":1,"70":1,"74":1,"76":1,"78":1,"80":1,"90":1,"93":1,"99":1,"113":1,"127":1,"130":1,"140":1,"168":1,"169":2,"171":1}}],["cov",{"2":{"70":16}}],["cover",{"2":{"101":1,"105":1}}],["covering",{"2":{"6":2,"108":1,"173":2,"176":2}}],["covered",{"0":{"103":1,"104":1,"144":1},"2":{"3":1,"6":1,"75":1,"81":1,"98":1,"99":1,"103":2,"104":2,"105":1,"106":2,"108":1,"120":2,"124":3,"176":1}}],["coveredby",{"0":{"53":1,"97":1,"98":1,"101":1,"102":1,"105":1,"106":1,"120":1},"1":{"98":1,"99":1},"2":{"0":2,"3":4,"6":4,"36":1,"53":2,"76":1,"97":1,"98":3,"99":10,"100":6,"101":13,"102":15,"103":13,"104":5,"105":2,"106":2,"109":3,"206":1}}],["covers",{"0":{"52":1,"107":1,"108":1},"1":{"108":1,"109":1},"2":{"0":2,"3":5,"6":5,"36":1,"52":2,"107":1,"108":4,"109":5,"152":1,"206":1}}],["coverages",{"2":{"6":1,"70":1}}],["coverage",{"0":{"69":1},"2":{"0":1,"6":2,"36":1,"69":3,"70":16,"76":1}}],["code",{"2":{"7":1,"10":1,"31":5,"68":1,"99":1,"113":1,"124":1,"130":1,"140":1,"150":1,"163":1,"195":1,"208":1}}],["colatitude",{"2":{"164":1}}],["colname",{"2":{"158":3}}],["col",{"2":{"158":2,"159":1}}],["columns",{"2":{"158":2}}],["column",{"2":{"27":1,"158":9,"159":8,"161":2,"203":2,"206":8}}],["colored",{"2":{"207":1}}],["color=",{"2":{"201":2}}],["colors",{"2":{"84":1,"85":1,"205":1,"207":2}}],["colorrange",{"2":{"67":2,"89":1}}],["colorbar",{"2":{"67":1,"86":1,"89":1,"152":1}}],["colormap",{"2":{"14":1,"67":3,"89":1}}],["color",{"2":{"6":1,"57":1,"62":1,"64":1,"67":2,"68":1,"72":3,"84":1,"85":1,"86":2,"89":2,"92":4,"95":4,"98":1,"108":1,"112":4,"126":4,"139":4,"165":3,"181":1,"184":1,"200":1,"201":1,"205":1,"207":5}}],["collect",{"2":{"11":3,"13":1,"55":1,"57":2,"60":1,"64":1,"68":1,"69":2,"72":2,"87":2,"89":1,"152":3,"158":2,"159":1,"183":4,"197":2}}],["collections",{"0":{"105":1,"106":1,"119":1,"120":1,"136":1,"137":1,"146":1,"147":1},"2":{"1":2,"6":8,"27":1,"155":2,"157":1,"158":2,"159":2,"161":3,"188":2,"204":1}}],["collection",{"2":{"1":1,"4":7,"6":14,"23":2,"34":2,"58":3,"61":2,"70":2,"90":2,"105":2,"106":2,"119":2,"120":2,"136":2,"137":2,"146":2,"147":2,"153":1,"155":1,"158":3,"159":1,"179":3,"188":1,"194":1,"197":1}}],["collinear",{"2":{"3":1,"6":2,"74":2,"76":5,"78":3,"79":12,"80":2,"126":1,"127":2}}],["come",{"2":{"164":1}}],["commonly",{"2":{"204":1}}],["common",{"2":{"92":1,"160":1,"185":1,"199":1,"201":1,"202":1}}],["commented",{"2":{"150":1}}],["comments",{"2":{"124":1}}],["comment",{"2":{"35":1}}],["combination",{"2":{"76":1,"161":2}}],["combines",{"2":{"65":1}}],["combine",{"2":{"65":2,"76":5,"176":1}}],["combined",{"2":{"6":1,"76":4,"81":1,"173":1,"176":2,"200":1}}],["combos",{"2":{"75":1,"79":1,"81":1}}],["coming",{"2":{"70":1}}],["com",{"2":{"6":2,"79":1,"87":1,"164":1}}],["compilation",{"2":{"163":1}}],["compiled",{"2":{"29":1}}],["compiler",{"2":{"29":1,"158":2,"163":2}}],["components",{"2":{"64":1,"65":2,"159":1,"161":25}}],["component",{"2":{"58":3,"65":11,"70":8,"79":1,"158":2,"161":2}}],["composed",{"2":{"4":4,"6":5,"93":5,"200":2}}],["complexity",{"2":{"153":1}}],["complex",{"2":{"76":1,"153":1,"188":1,"206":1}}],["complete",{"2":{"58":1}}],["completely",{"2":{"1":1,"3":4,"6":4,"75":1,"76":2,"81":1,"95":2,"96":1,"99":1,"108":1,"109":1,"124":1,"140":1,"155":1,"158":1,"164":1}}],["complementary",{"2":{"20":1}}],["comprised",{"2":{"6":3,"74":1,"78":1,"80":1}}],["computing",{"2":{"19":1,"62":1,"82":1}}],["computational",{"2":{"6":1,"68":1}}],["computation",{"2":{"6":6,"65":1,"68":1,"74":1,"78":1,"80":1,"189":2,"190":2,"191":2}}],["computer",{"2":{"6":1,"68":1}}],["computes",{"2":{"6":1,"87":1}}],["compute",{"2":{"4":1,"6":3,"58":1,"68":1,"87":3,"185":1}}],["computed",{"2":{"4":4,"6":5,"58":3,"61":1,"68":3,"70":1,"205":1}}],["compact",{"2":{"208":3}}],["comparisons",{"2":{"206":1}}],["comparing",{"2":{"81":1,"93":1}}],["compares",{"2":{"152":1}}],["compared",{"2":{"93":1}}],["compare",{"2":{"3":1,"4":1,"6":2,"61":1,"81":1,"93":2,"127":1}}],["compatibility",{"2":{"58":1}}],["compatible",{"2":{"1":3,"27":1,"30":1,"32":1,"58":1,"61":1,"65":1,"68":2,"70":1,"90":1,"93":1,"96":1,"99":1,"109":1,"113":1,"123":1,"127":1,"130":1,"140":1,"155":1,"156":1,"158":1,"165":1,"180":2}}],["couple",{"2":{"203":1}}],["course",{"2":{"157":1}}],["country",{"2":{"208":8}}],["countries",{"2":{"11":1,"85":1,"188":1}}],["counted",{"2":{"79":2}}],["counters",{"2":{"68":8}}],["counterparts",{"2":{"38":1}}],["counter",{"2":{"6":1,"76":8,"124":1,"149":1,"150":1}}],["counterclockwise",{"2":{"4":1,"6":2,"9":1,"57":2,"58":1,"86":1,"87":1}}],["count",{"2":{"76":16,"152":1,"192":1}}],["couldn",{"2":{"9":1,"163":1}}],["could",{"2":{"4":1,"6":1,"58":3,"79":4,"81":1,"82":1,"90":1,"124":2,"164":1,"180":1}}],["conditions",{"2":{"206":4}}],["conflict",{"2":{"94":1}}],["connected",{"2":{"124":5}}],["connect",{"2":{"70":11}}],["connecting",{"2":{"61":1,"190":1,"200":2}}],["connections",{"2":{"6":2,"173":2,"176":2}}],["contents",{"2":{"158":1,"168":1}}],["context",{"2":{"37":4,"184":4,"201":2}}],["contours",{"2":{"152":1}}],["contour",{"2":{"152":4}}],["continue",{"2":{"58":1,"70":1,"75":2,"76":11,"79":1,"124":1,"158":1,"172":1,"176":3,"192":1,"208":1}}],["contributions",{"2":{"30":1,"32":1}}],["controlled",{"2":{"29":1}}],["control",{"2":{"28":1}}],["containing",{"2":{"69":1,"207":1}}],["contain",{"2":{"3":1,"6":1,"31":1,"81":1,"95":1,"127":1,"166":1,"200":1}}],["contained",{"2":{"3":1,"6":1,"9":1,"81":4,"96":1,"108":1,"126":1,"127":1,"158":1,"207":1}}],["contains",{"0":{"50":1,"94":1,"95":1},"1":{"95":1,"96":1},"2":{"0":2,"3":4,"6":4,"31":1,"36":1,"38":1,"50":2,"76":1,"81":1,"82":1,"94":1,"95":5,"96":4,"156":1,"175":1,"206":1,"207":1}}],["consistent",{"2":{"76":1,"153":1}}],["consistency",{"2":{"27":1}}],["considered",{"2":{"61":1,"68":1}}],["consider",{"2":{"57":1,"60":1,"64":1,"69":1,"70":3,"72":1,"89":2,"92":1,"95":1,"98":1,"108":1,"112":1,"122":1,"124":3,"126":1,"129":1,"139":1}}],["constprop",{"2":{"110":1}}],["constants",{"2":{"76":1}}],["const",{"2":{"36":4,"76":2,"99":4,"113":3,"130":4,"140":4,"160":3,"188":4}}],["constructors",{"2":{"167":2}}],["construct",{"2":{"76":1,"167":1}}],["constructing",{"2":{"76":2,"165":1,"202":1}}],["constructed",{"2":{"1":1,"25":1,"180":1}}],["constrained",{"2":{"6":3,"74":1,"78":1,"80":1}}],["conceptual",{"2":{"166":1}}],["concepts",{"0":{"33":1},"1":{"34":1,"35":1},"2":{"31":1}}],["concieve",{"2":{"9":1}}],["concave",{"2":{"6":1,"61":2,"64":2,"150":2}}],["convenience",{"2":{"68":1,"196":1}}],["convenient",{"2":{"18":1}}],["convention",{"2":{"64":1}}],["conversely",{"2":{"76":1}}],["conversions",{"2":{"161":1}}],["conversion",{"0":{"194":1},"2":{"27":1,"38":1}}],["converted",{"2":{"20":1,"27":1,"68":3}}],["converts",{"2":{"6":1,"197":1}}],["convert",{"0":{"100":1,"114":1,"131":1,"141":1},"2":{"6":4,"37":1,"40":2,"41":2,"42":2,"43":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"55":1,"68":6,"87":1,"89":1,"152":2,"179":1,"184":1,"188":3,"194":1,"196":1,"197":1,"198":1}}],["convexity",{"2":{"86":2}}],["convexhull",{"2":{"55":1}}],["convex",{"0":{"55":1,"82":1,"85":1},"1":{"83":1,"84":1,"85":1,"86":1,"87":1},"2":{"0":1,"6":7,"36":2,"55":1,"61":3,"82":4,"84":2,"85":1,"86":4,"87":11,"150":1}}],["ericsson",{"2":{"162":1,"166":1}}],["errors",{"0":{"165":1},"2":{"36":1,"79":1,"165":2,"185":1}}],["error",{"0":{"181":1},"2":{"4":1,"6":4,"7":1,"23":1,"36":6,"37":2,"62":4,"68":1,"76":2,"77":1,"79":2,"93":2,"152":1,"156":1,"165":2,"172":2,"181":3,"184":5,"192":4,"196":3,"197":1}}],["effect",{"2":{"158":1}}],["effects",{"2":{"158":1}}],["efficiently",{"2":{"25":1}}],["efficient",{"2":{"6":1,"68":1,"74":2,"78":2,"80":2,"87":1,"170":1}}],["e2",{"2":{"124":4}}],["e1",{"2":{"124":8}}],["euclid",{"2":{"70":2,"90":11,"124":1,"189":1}}],["euclidean",{"2":{"4":1,"6":1,"17":1,"68":13,"90":6,"164":6,"185":1}}],["epsg",{"2":{"201":5,"202":3}}],["eps",{"2":{"61":2,"79":14}}],["eponymous",{"2":{"6":1,"184":1}}],["everything",{"2":{"188":1}}],["everywhere",{"2":{"164":1}}],["every",{"2":{"76":1,"93":2,"156":1,"196":1}}],["ever",{"2":{"76":1,"166":1}}],["evenly",{"2":{"207":1}}],["eventually",{"2":{"76":1}}],["even",{"2":{"58":2,"70":1,"76":1,"79":1,"90":1,"93":1,"153":1,"169":1,"174":1}}],["evaluated",{"2":{"206":1}}],["eval",{"2":{"36":2,"158":1,"159":1}}],["est",{"2":{"208":1}}],["essentially",{"2":{"38":1,"167":1}}],["especially",{"2":{"6":1,"23":1,"28":1,"152":1}}],["eg",{"2":{"37":1,"162":1}}],["ecosystem",{"2":{"20":1}}],["e",{"2":{"9":1,"17":1,"18":1,"27":1,"62":1,"76":2,"152":1,"156":1,"158":2,"162":1,"164":1,"165":4,"166":1,"198":3,"200":2,"201":1,"204":1}}],["etc",{"0":{"161":1},"2":{"6":1,"25":2,"36":1,"57":1,"87":1,"167":1,"198":1,"204":1}}],["eltype",{"2":{"152":4}}],["ellipsoidparametrization",{"2":{"164":3}}],["ellipsoid",{"2":{"17":1,"18":4,"19":1,"20":1,"21":1,"164":3,"205":1}}],["ellipsoidal",{"2":{"6":1,"185":1}}],["elements",{"2":{"105":1,"106":1,"119":1,"120":1,"127":1,"136":1,"137":1,"146":1,"147":1}}],["element",{"2":{"6":6,"60":1,"73":2,"74":1,"76":4,"78":1,"79":1,"80":3,"183":1,"201":1}}],["elsewhere",{"2":{"73":1}}],["elseif",{"2":{"70":7,"74":1,"76":7,"78":1,"79":14,"80":2,"81":1,"110":3,"124":10,"150":1,"152":2,"176":1,"190":2,"192":2}}],["else",{"2":{"3":6,"6":6,"20":1,"61":1,"68":2,"70":9,"73":1,"75":2,"76":19,"79":9,"80":1,"81":9,"110":2,"124":17,"127":8,"152":20,"158":6,"159":2,"161":1,"170":1,"178":1,"181":1,"188":2,"190":4,"192":2,"193":1,"194":1,"196":1}}],["empty",{"2":{"4":2,"6":6,"61":2,"74":1,"76":2,"78":1,"79":2,"80":1,"152":2}}],["embedding",{"0":{"157":1,"177":1}}],["embedded",{"0":{"202":1},"2":{"152":1,"157":3,"199":1,"202":1}}],["embed",{"2":{"0":2,"4":1,"6":1,"157":1,"177":2}}],["equator",{"2":{"164":1}}],["equatorial",{"2":{"6":6,"184":4}}],["equality",{"2":{"76":1,"79":1,"206":1}}],["equal",{"2":{"3":2,"4":16,"6":19,"61":6,"79":1,"89":1,"90":4,"92":3,"93":22,"101":1,"115":1,"124":15,"126":1,"127":2,"132":2,"142":1,"169":1}}],["equals",{"0":{"45":1,"91":1,"92":1},"1":{"92":1,"93":1},"2":{"0":17,"4":3,"6":19,"36":1,"45":2,"61":2,"73":2,"76":5,"79":8,"90":1,"91":1,"92":2,"93":50,"101":1,"115":1,"124":10,"127":2,"132":3,"142":1,"206":1}}],["equivalent",{"2":{"3":1,"4":4,"6":6,"18":1,"58":1,"76":3,"79":1,"81":1,"93":5,"99":1,"124":1}}],["earlier",{"2":{"200":3}}],["earth",{"2":{"6":3,"18":2,"30":1,"32":1,"164":2,"184":2,"185":1,"188":1,"201":2,"206":1}}],["easiest",{"2":{"203":1}}],["easier",{"2":{"163":1,"165":1,"195":1}}],["easily",{"2":{"153":1}}],["east",{"2":{"70":9}}],["easy",{"2":{"1":1,"6":1,"174":1,"193":1}}],["eachindex",{"2":{"61":1,"150":1,"152":3,"158":1,"159":1,"189":1,"192":1}}],["each",{"2":{"3":2,"4":3,"6":7,"9":1,"23":2,"25":1,"58":2,"61":4,"66":4,"68":1,"70":1,"76":32,"79":3,"90":1,"93":2,"99":1,"113":1,"124":6,"126":1,"127":3,"130":1,"140":1,"150":1,"152":1,"158":1,"174":2,"188":1,"198":1,"203":1,"204":1,"207":2,"208":2,"209":1}}],["eachedge",{"0":{"198":1},"2":{"0":1,"6":1,"76":5,"198":8}}],["enable",{"2":{"209":1}}],["enabled",{"2":{"206":1}}],["enabling",{"0":{"209":1}}],["enclosed",{"2":{"124":1}}],["encode",{"2":{"29":1}}],["encompasses",{"2":{"23":1,"124":1}}],["encounters",{"2":{"23":1}}],["en",{"2":{"124":1,"190":1}}],["envelope",{"2":{"79":2}}],["envelopes",{"2":{"79":2}}],["enough",{"2":{"76":2}}],["enter",{"2":{"76":4}}],["entry",{"2":{"75":3,"76":11,"79":4,"81":3,"152":1}}],["ent",{"2":{"73":2,"76":19}}],["entirely",{"2":{"124":1}}],["entire",{"2":{"70":1,"124":4,"166":1}}],["ensuring",{"2":{"6":1,"182":1,"185":1}}],["ensure",{"2":{"6":3,"68":1,"74":1,"78":1,"80":1,"158":2,"168":2,"171":1}}],["ensures",{"2":{"6":3,"170":1,"173":3,"176":2}}],["enumerate",{"2":{"13":2,"61":1,"70":1,"73":1,"75":1,"76":11,"81":2,"124":1,"152":2,"176":2,"192":1,"198":1}}],["enum",{"2":{"6":2,"76":3,"78":3,"124":3}}],["endpt",{"2":{"190":3}}],["endpoint=3",{"2":{"76":1}}],["endpointtype",{"2":{"76":2}}],["endpoints",{"2":{"70":1,"75":1,"76":3,"79":6,"81":1,"90":2,"124":11,"127":2,"129":1}}],["endpoint",{"2":{"3":1,"6":2,"76":27,"78":1,"79":16,"90":2,"98":1,"124":3,"127":2,"188":4,"190":4,"200":1}}],["ending",{"2":{"70":1,"76":1}}],["end",{"2":{"1":1,"9":1,"13":4,"14":3,"36":4,"37":4,"40":1,"41":1,"42":1,"43":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"58":8,"61":18,"62":3,"65":10,"68":35,"70":43,"73":9,"74":8,"75":12,"76":144,"77":1,"78":5,"79":31,"80":6,"81":24,"87":3,"90":19,"93":20,"105":2,"106":2,"110":20,"119":2,"120":2,"124":104,"127":21,"132":1,"136":2,"137":2,"142":1,"146":2,"147":2,"150":9,"151":1,"152":44,"153":1,"155":1,"158":30,"159":20,"161":14,"162":9,"163":5,"164":8,"165":3,"166":4,"167":1,"168":1,"170":5,"172":3,"176":18,"178":4,"179":4,"180":1,"181":2,"184":8,"185":9,"188":7,"189":6,"190":30,"191":3,"192":27,"193":4,"194":4,"196":4,"197":19,"198":6}}],["enforce",{"2":{"0":1,"6":2,"37":3,"196":3}}],["executed",{"2":{"164":1}}],["exits",{"2":{"76":1}}],["exit",{"2":{"73":2,"75":3,"76":32,"79":3,"81":2}}],["existingnodes",{"2":{"152":3}}],["existing",{"2":{"76":3,"80":1,"152":1,"201":2,"203":1}}],["exists",{"2":{"70":1,"76":1,"79":1}}],["exist",{"2":{"6":1,"76":1,"79":3,"196":1}}],["excluding",{"2":{"118":1,"124":1,"142":2}}],["exclude",{"2":{"110":9}}],["exclusively",{"2":{"134":1}}],["exclusive",{"2":{"70":1,"79":2}}],["exc",{"2":{"62":2,"181":2,"184":2}}],["excellent",{"2":{"28":1}}],["exception",{"2":{"165":2}}],["exceptions",{"0":{"165":1}}],["except",{"2":{"23":1,"24":1}}],["excess",{"2":{"5":1,"6":1,"68":1}}],["exp10",{"2":{"184":1,"188":2}}],["expressed",{"2":{"66":2}}],["express",{"2":{"66":1}}],["experiment",{"2":{"163":1}}],["experimental",{"2":{"36":3}}],["expect",{"2":{"1":1,"122":1,"180":1}}],["explain",{"2":{"31":1,"76":1}}],["explanations",{"2":{"31":3}}],["explicitly",{"2":{"23":1,"29":1,"58":1,"61":2,"62":1,"68":1,"90":2,"93":1,"164":1,"165":1,"181":1,"184":1}}],["expose",{"2":{"82":1}}],["exposes",{"2":{"22":1}}],["export",{"2":{"36":1,"66":1,"94":1,"163":1,"182":1,"202":1,"204":1}}],["exponential",{"2":{"9":1}}],["ext2",{"2":{"124":3}}],["ext1",{"2":{"124":3}}],["ext",{"2":{"67":15,"70":2,"73":3,"74":8,"76":20,"78":8,"79":18,"80":8,"81":14,"110":7,"124":7,"198":2}}],["extrema",{"2":{"152":1,"197":1}}],["extremely",{"2":{"76":1}}],["extreem",{"2":{"61":10}}],["extract",{"2":{"87":1,"152":1,"158":1,"159":2,"166":1,"188":1}}],["extracted",{"2":{"20":1}}],["extracts",{"2":{"20":1,"87":1}}],["extra",{"2":{"6":3,"76":1,"80":1,"165":3,"182":1,"184":2,"185":1}}],["external",{"2":{"58":1,"124":2}}],["exteriors",{"2":{"9":1,"78":2,"80":2,"152":1}}],["exterior",{"2":{"3":4,"4":2,"6":10,"57":1,"58":1,"61":1,"65":2,"67":1,"68":36,"74":2,"76":4,"80":3,"81":14,"90":1,"93":2,"95":1,"96":1,"99":3,"109":1,"113":2,"124":9,"130":2,"139":1,"140":3,"143":3,"144":3,"150":6,"152":6,"170":3,"171":1,"173":1,"177":1,"200":2}}],["extending",{"2":{"127":1}}],["extended",{"2":{"90":1,"164":2}}],["extensions",{"2":{"36":1,"82":1,"204":1}}],["extension",{"2":{"1":1,"6":1,"62":1,"68":1,"87":1,"98":1,"151":1,"180":3,"181":2,"184":1,"185":1,"186":1,"204":1}}],["extent`",{"2":{"160":1,"177":1}}],["extent=e",{"2":{"198":1}}],["extent=ext",{"2":{"76":1}}],["extent=true",{"2":{"177":1}}],["extent=nothing",{"2":{"161":1}}],["extent=",{"2":{"158":4}}],["extent=false",{"2":{"158":1,"188":1}}],["extent=gi",{"2":{"152":3}}],["extents",{"2":{"4":3,"6":4,"36":5,"70":1,"76":5,"79":3,"124":5,"127":1,"152":3,"158":2,"177":2,"197":2,"198":3}}],["extent",{"0":{"177":1},"2":{"0":2,"1":4,"4":3,"6":9,"29":1,"36":3,"37":1,"40":2,"41":2,"42":2,"43":2,"55":1,"67":1,"69":1,"70":1,"76":10,"79":10,"124":4,"127":2,"152":12,"155":2,"157":4,"158":29,"160":3,"161":1,"163":1,"177":2,"188":1,"197":7,"198":3}}],["exactly",{"2":{"192":1}}],["exactpredicates",{"2":{"7":1,"13":2,"14":2,"36":1}}],["exact",{"2":{"3":5,"6":5,"7":2,"12":1,"13":1,"70":6,"73":7,"74":5,"76":36,"77":1,"78":5,"79":7,"80":5,"81":7,"96":2,"99":3,"101":1,"102":3,"103":3,"104":1,"109":2,"110":1,"113":2,"115":1,"116":3,"117":2,"118":1,"123":2,"124":24,"127":3,"130":2,"132":1,"133":3,"134":1,"135":1,"140":3,"142":1,"143":3,"144":3,"145":1,"152":1,"166":1,"175":1}}],["examples",{"0":{"183":1,"187":1},"2":{"3":8,"4":1,"6":11,"31":2,"93":1,"96":1,"99":1,"109":1,"110":1,"113":1,"127":1,"130":1,"140":1,"150":2,"197":1}}],["example",{"0":{"67":1,"83":1,"169":1,"175":1,"207":1,"208":1},"1":{"84":1},"2":{"1":3,"3":2,"6":11,"11":1,"19":1,"21":1,"25":1,"28":2,"57":1,"60":1,"64":1,"65":1,"67":1,"69":1,"72":1,"73":1,"74":1,"78":1,"79":1,"80":1,"89":1,"92":1,"93":1,"95":1,"98":1,"108":1,"110":1,"112":1,"122":1,"123":1,"124":1,"126":1,"129":1,"139":1,"150":1,"152":8,"153":1,"155":2,"158":2,"162":2,"164":1,"165":1,"166":1,"169":1,"171":1,"174":1,"175":1,"178":1,"187":1,"188":2,"193":1,"196":1,"207":1,"209":1}}],["either",{"2":{"1":2,"3":1,"6":2,"20":1,"21":1,"27":1,"30":1,"32":1,"74":1,"76":10,"78":1,"79":2,"80":1,"81":1,"89":1,"99":1,"122":1,"124":5,"129":1,"130":1,"140":1,"152":1,"155":2,"158":3,"162":1,"172":1,"206":1}}],["edgekeys",{"2":{"152":3}}],["edge",{"2":{"3":1,"4":3,"6":6,"25":1,"36":2,"58":1,"64":1,"70":13,"74":1,"76":34,"78":1,"79":6,"80":1,"90":4,"93":1,"101":2,"116":2,"117":1,"124":7,"127":21,"142":2,"143":1,"144":1,"152":7,"197":2,"198":1}}],["edges`",{"2":{"79":1}}],["edges",{"2":{"0":1,"4":2,"6":8,"70":8,"75":3,"76":29,"79":10,"81":3,"90":3,"92":2,"93":1,"95":1,"101":1,"102":3,"103":7,"104":3,"112":1,"115":3,"118":1,"124":3,"127":20,"139":1,"142":1,"152":22,"197":29,"198":8}}],["edgelist",{"0":{"198":1},"2":{"0":1,"6":4,"76":3,"198":3}}],["edgeintersect",{"2":{"0":1,"6":1,"76":7}}],["vw",{"2":{"188":3}}],["von",{"2":{"152":1}}],["v2",{"2":{"124":9}}],["v1",{"2":{"124":9}}],["v`",{"2":{"68":2}}],["vcat",{"2":{"61":1,"68":1,"158":2}}],["vararg",{"2":{"68":1}}],["varying",{"2":{"164":1}}],["vary",{"2":{"61":1}}],["variables",{"2":{"29":1,"68":8,"96":1,"109":1,"123":1}}],["variable",{"2":{"29":1,"75":2}}],["vals",{"2":{"190":9}}],["valign",{"2":{"188":1}}],["validated",{"2":{"75":2,"79":2,"81":2}}],["validate",{"2":{"9":1}}],["valid",{"2":{"1":1,"6":8,"65":1,"74":2,"78":2,"79":3,"80":2,"152":1,"168":3,"169":1,"174":1,"175":1,"192":1,"193":1}}],["val",{"2":{"61":2,"76":2,"79":8,"124":30,"127":4}}],["values=",{"2":{"152":2}}],["values=sort",{"2":{"152":1}}],["values",{"2":{"1":1,"5":3,"6":15,"18":2,"61":2,"65":2,"67":3,"68":40,"70":5,"76":5,"79":1,"90":2,"124":4,"152":19,"155":1,"158":2,"163":1,"190":2,"192":1}}],["value",{"2":{"0":1,"4":7,"5":2,"6":19,"14":1,"29":1,"36":1,"37":2,"57":2,"58":4,"61":1,"68":45,"70":2,"76":5,"79":7,"89":1,"90":3,"152":6,"158":2,"179":4,"190":11,"196":2,"206":1}}],["vs",{"0":{"15":1},"2":{"12":1,"79":2}}],["vᵢ",{"2":{"6":1}}],["v",{"2":{"5":2,"6":6,"14":4,"68":23,"90":8}}],["visvalingam",{"2":{"186":1}}],["visvalingamwhyatt",{"0":{"191":1},"2":{"0":1,"6":3,"188":4,"191":5}}],["visualized",{"2":{"169":1}}],["visualize",{"2":{"122":1,"201":1}}],["visa",{"2":{"76":1}}],["visited",{"2":{"76":4}}],["view",{"2":{"76":2,"87":1,"152":1,"176":1,"190":3,"208":1}}],["viewport",{"2":{"14":1}}],["views",{"2":{"1":1,"76":1,"80":1,"180":1}}],["vincenty",{"2":{"6":1,"185":1}}],["via",{"2":{"6":1,"36":1,"62":1,"82":1,"151":1,"164":1,"181":1,"184":1,"196":2}}],["vec",{"2":{"87":2}}],["vect",{"2":{"161":2}}],["vectypes",{"2":{"68":5}}],["vector",{"2":{"1":12,"4":6,"5":1,"6":48,"23":1,"28":1,"34":1,"60":1,"61":10,"68":14,"73":6,"74":4,"75":1,"76":11,"78":2,"79":3,"80":4,"124":1,"127":2,"150":3,"152":4,"153":1,"155":1,"158":6,"159":4,"170":1,"179":3,"182":1,"183":1,"185":2,"189":1,"190":4,"191":1,"192":2,"193":10,"197":14,"198":1,"201":1}}],["vectors",{"2":{"1":1,"4":2,"6":3,"27":1,"61":4,"68":3,"76":1,"87":1,"90":1,"149":1,"152":1,"155":1,"158":1,"161":2,"188":1}}],["ve",{"2":{"20":1,"22":1,"76":2,"158":1,"185":1}}],["vein",{"2":{"7":1}}],["version",{"2":{"196":1}}],["versa",{"2":{"76":1}}],["vert",{"2":{"192":21}}],["verts",{"2":{"188":2}}],["vertical",{"2":{"67":1,"70":1,"79":1,"152":1}}],["vertices",{"2":{"6":8,"9":1,"66":4,"68":5,"73":2,"76":4,"87":1,"101":1,"103":5,"112":1,"115":3,"118":1,"124":1,"142":1,"169":1,"182":2,"183":1,"184":3,"185":3,"188":1,"191":1}}],["vertex",{"2":{"5":1,"6":2,"61":1,"66":2,"68":2,"76":20,"79":12,"86":1,"101":2,"116":2,"117":1,"124":1,"142":3}}],["very",{"2":{"0":1,"183":1,"208":2}}],["rd",{"2":{"188":3}}],["rdbu",{"2":{"89":1}}],["rhumb",{"2":{"150":2}}],["rule",{"2":{"76":1}}],["rules",{"2":{"76":1}}],["runner",{"2":{"201":1}}],["running",{"2":{"76":1,"158":1,"161":2}}],["runtime",{"2":{"158":1}}],["runs",{"2":{"79":2,"149":1}}],["run",{"2":{"36":1,"76":1,"158":5,"159":3,"166":1,"208":1}}],["rightjoin",{"2":{"206":1}}],["right=2",{"2":{"76":1}}],["right",{"2":{"68":1,"73":1,"76":4,"90":1,"150":1,"190":19,"192":5,"200":1}}],["ring4",{"2":{"202":2}}],["ring3",{"2":{"201":1}}],["ring2",{"2":{"200":2}}],["ring1",{"2":{"200":2}}],["rings",{"0":{"103":1,"117":1,"134":1,"144":1,"168":1},"1":{"169":1,"170":1},"2":{"4":4,"6":6,"9":2,"58":1,"65":1,"76":3,"79":1,"93":7,"149":1,"152":5,"170":1,"173":1,"188":1,"198":1}}],["ring",{"2":{"4":7,"6":13,"9":1,"36":1,"58":2,"61":3,"64":1,"65":4,"68":1,"70":13,"76":12,"81":3,"90":5,"93":4,"101":1,"102":2,"103":5,"115":1,"117":1,"124":2,"132":1,"133":1,"134":3,"142":1,"143":2,"144":4,"150":3,"152":11,"168":2,"169":1,"170":14,"171":1,"200":1}}],["rtrees",{"2":{"25":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":{"188":1,"190":1,"192":1}}],["routines",{"2":{"11":1}}],["row",{"2":{"159":3}}],["rows",{"2":{"159":2}}],["robust",{"0":{"15":1},"2":{"86":1}}],["rotate",{"2":{"70":1}}],["rotation",{"2":{"1":1,"6":1,"193":1}}],["rotations",{"2":{"1":3,"6":3,"193":3}}],["rotmatrix2d",{"2":{"188":1}}],["rotmatrix",{"2":{"1":1,"6":1,"193":1}}],["r",{"2":{"6":1,"9":1,"13":11,"14":12,"37":1,"184":1,"192":2,"200":6,"201":2,"202":4}}],["rᵢ₋₁",{"2":{"68":20}}],["rᵢ∗rᵢ₊₁+sᵢ⋅sᵢ₊₁",{"2":{"6":1}}],["rᵢ₊₁",{"2":{"6":1,"68":29}}],["rᵢ",{"2":{"6":2,"68":49}}],["ramer",{"2":{"190":1}}],["raster",{"0":{"152":1},"2":{"152":4}}],["ray",{"2":{"124":4}}],["raw",{"2":{"23":1}}],["range",{"2":{"13":8,"14":4,"152":3,"158":3,"159":3}}],["ranges",{"2":{"6":1,"152":2}}],["randomly",{"2":{"207":2}}],["random",{"2":{"188":2}}],["randn",{"2":{"84":1}}],["rand",{"2":{"6":1,"86":1,"152":1,"207":2}}],["rather",{"2":{"6":1,"152":1,"175":1}}],["ratio",{"2":{"6":7,"79":1,"184":1,"188":1,"189":4,"190":6,"191":4,"192":11}}],["radii",{"2":{"6":1,"184":1}}],["radius`",{"2":{"184":1}}],["radius",{"2":{"6":6,"18":2,"68":13,"164":4,"184":4,"185":1}}],["radialdistance",{"0":{"189":1},"2":{"0":1,"6":2,"186":1,"188":4,"189":4}}],["rrayscore",{"2":{"1":1,"6":1,"193":1}}],["rring",{"2":{"1":1,"6":1,"193":1}}],["rewrap",{"2":{"158":2,"161":1}}],["req",{"2":{"124":44}}],["requirement",{"2":{"168":1,"174":1}}],["requirements",{"2":{"124":5}}],["required",{"2":{"87":1,"99":3,"113":3,"130":3,"140":3,"183":1,"199":1}}],["requires",{"2":{"62":1,"93":1,"95":1,"99":2,"102":3,"103":3,"104":1,"113":1,"116":3,"117":2,"118":1,"130":1,"133":3,"134":1,"135":1,"139":1,"140":1,"143":3,"144":3,"145":1,"181":1,"184":1,"196":1}}],["require",{"2":{"38":1,"87":1,"98":2,"99":6,"113":3,"124":32,"130":3,"140":3}}],["requests",{"2":{"30":1,"32":1}}],["reflected",{"2":{"188":3}}],["ref",{"2":{"89":1}}],["refers",{"2":{"164":1}}],["referring",{"2":{"124":1}}],["refer",{"2":{"6":1,"152":1}}],["references",{"2":{"6":1,"68":1}}],["reference",{"0":{"201":1,"202":1},"2":{"0":1,"1":2,"20":1,"180":2,"199":2,"201":1}}],["reveal",{"2":{"81":1}}],["reveals",{"2":{"81":1}}],["reverse",{"2":{"57":1,"67":1,"68":1,"76":2,"200":2}}],["rev",{"2":{"80":1}}],["render",{"2":{"67":1}}],["rendering",{"2":{"67":3,"68":1}}],["rename",{"2":{"10":1}}],["regardless",{"2":{"79":1,"124":1}}],["regridding",{"2":{"76":1}}],["regions",{"2":{"75":3,"79":5,"80":1,"81":3,"124":2,"208":1}}],["region",{"2":{"62":2,"79":3,"81":2,"208":1}}],["register",{"2":{"36":3,"68":3}}],["regular",{"0":{"15":1}}],["rebuilding",{"2":{"158":1,"159":1}}],["rebuild",{"2":{"36":2,"156":1,"158":3,"161":11,"185":1,"188":2}}],["rebuilt",{"2":{"1":1,"153":1,"155":1,"158":1,"161":2}}],["readable",{"2":{"204":1}}],["readability",{"2":{"76":1}}],["read",{"2":{"158":1,"201":2}}],["reading",{"2":{"158":1}}],["reads",{"2":{"158":1}}],["reached",{"2":{"158":1,"161":3}}],["reaches",{"2":{"156":1}}],["reach",{"2":{"156":1}}],["reasons",{"2":{"196":1}}],["reason",{"2":{"29":1,"163":1,"168":1,"174":1}}],["real`",{"2":{"184":1,"185":1}}],["reality",{"2":{"86":1}}],["really",{"2":{"58":1,"124":1,"152":1,"163":1}}],["real=1",{"2":{"6":2,"184":2}}],["real=6378137`",{"2":{"184":1}}],["real=6378137",{"2":{"6":2,"184":1}}],["real",{"0":{"208":1},"2":{"5":1,"6":13,"61":1,"65":2,"68":45,"79":1,"184":3,"185":3,"192":5,"206":1}}],["relateng",{"2":{"166":1}}],["related",{"2":{"20":1}}],["relation",{"2":{"76":2}}],["relations",{"2":{"36":10,"110":1,"127":1}}],["relationship",{"2":{"28":1,"206":2}}],["relative",{"2":{"68":3}}],["relevant",{"2":{"6":1,"10":1,"17":1,"87":1,"164":2}}],["reducing",{"2":{"159":2}}],["reduced",{"2":{"189":1,"190":1,"191":1}}],["reduces",{"2":{"24":1,"76":1,"81":1,"159":1}}],["reduce",{"2":{"1":1,"152":1,"155":1,"159":2,"172":1}}],["redundant",{"2":{"76":1}}],["red",{"2":{"14":1,"64":2,"89":1,"98":1,"108":1,"122":1,"165":1,"200":1,"201":1,"207":2}}],["removal",{"2":{"76":1}}],["removes",{"2":{"76":1,"153":1}}],["removed",{"2":{"75":5,"76":3,"152":1,"158":1}}],["remove",{"2":{"58":1,"70":1,"73":2,"74":5,"76":33,"78":5,"80":2,"176":2,"189":1,"190":3,"192":4}}],["removing",{"2":{"6":3,"75":1,"76":1,"189":1,"190":1,"191":1}}],["remainingnode",{"2":{"152":3}}],["remaining",{"2":{"76":1,"93":1,"124":2,"190":1}}],["remain",{"2":{"1":1,"6":8,"155":1,"158":1,"188":2}}],["resolution",{"2":{"201":1}}],["resolves",{"2":{"164":1}}],["resolved",{"2":{"152":1,"164":1}}],["resembles",{"2":{"164":2}}],["reset",{"2":{"76":1,"158":1}}],["reside",{"2":{"76":1}}],["resize",{"2":{"13":1,"14":1,"76":2}}],["resampled",{"2":{"6":1,"185":1}}],["respectively",{"2":{"76":1,"127":1,"200":1}}],["respect",{"2":{"6":2,"78":1,"79":1,"87":1,"124":6}}],["restrictive",{"2":{"162":1}}],["rest",{"2":{"6":1,"68":2,"80":1}}],["resulting",{"2":{"73":1,"81":1,"152":1,"207":1}}],["results",{"2":{"3":2,"6":2,"20":1,"79":1,"110":1,"127":1,"158":2,"159":2,"169":1,"190":25,"200":3}}],["result",{"2":{"1":2,"3":5,"4":5,"6":11,"19":1,"24":1,"37":3,"58":2,"61":1,"70":1,"79":15,"87":1,"90":2,"96":1,"99":1,"109":1,"123":1,"140":1,"155":2,"158":9,"159":2,"184":3,"192":6}}],["receives",{"2":{"158":1,"159":1}}],["recent",{"2":{"75":1,"76":1,"79":1,"81":1}}],["recalculate",{"2":{"157":1}}],["recursive",{"2":{"156":1}}],["recursively",{"2":{"4":1,"6":1,"156":1,"177":1}}],["rect",{"2":{"57":5,"60":3,"69":3,"89":7}}],["rectangle",{"2":{"57":2,"60":2,"67":2,"69":2,"70":1,"89":2,"183":5,"184":8,"207":2}}],["rectangletrait",{"2":{"37":1}}],["recommended",{"2":{"27":1}}],["reconstructing",{"2":{"188":1}}],["reconstructed",{"2":{"23":1}}],["reconstruct",{"2":{"1":1,"23":1,"36":2,"155":1,"158":2,"159":1,"161":28}}],["replace",{"2":{"76":1,"152":2,"190":1}}],["replaced",{"2":{"27":1}}],["repl",{"2":{"62":1,"181":1,"184":1}}],["repeat",{"2":{"65":1,"76":2,"93":6}}],["repeating",{"2":{"58":1,"81":1}}],["repeated",{"2":{"4":3,"6":3,"9":1,"61":2,"68":1,"76":2,"81":2,"90":2,"93":4,"124":1}}],["represented",{"2":{"164":1,"207":1}}],["represent",{"2":{"22":1,"68":1,"76":4,"93":1,"164":1}}],["representations",{"2":{"18":1}}],["representing",{"2":{"6":2,"75":1,"79":1,"81":1,"87":1,"89":1,"93":1,"164":1,"208":1}}],["represents",{"2":{"6":1,"164":1,"172":2,"173":1}}],["reprojects",{"2":{"180":1}}],["reprojection",{"0":{"180":1},"1":{"181":1}}],["reproject",{"2":{"0":1,"1":4,"36":2,"153":1,"180":6,"181":2}}],["re",{"2":{"1":1,"6":1,"22":1,"76":5,"87":1,"179":1,"193":1,"199":1,"201":1}}],["retrievable",{"2":{"1":1,"180":1}}],["returnval",{"2":{"124":9}}],["returntype",{"2":{"24":1}}],["returning",{"2":{"23":1,"62":1,"75":2}}],["return",{"0":{"27":1},"2":{"1":1,"3":18,"4":2,"6":37,"13":3,"14":3,"28":2,"35":1,"36":1,"37":3,"40":1,"41":1,"42":1,"43":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"58":5,"61":5,"62":1,"65":4,"68":20,"70":12,"73":12,"74":5,"75":4,"76":41,"78":4,"79":18,"80":6,"81":9,"87":2,"90":8,"93":30,"96":1,"99":1,"105":2,"106":2,"109":1,"110":18,"113":2,"119":2,"120":2,"122":1,"123":1,"124":71,"127":28,"130":1,"132":2,"136":2,"137":2,"140":1,"146":2,"147":2,"150":10,"152":12,"158":18,"159":4,"161":6,"162":2,"166":2,"168":1,"170":4,"172":6,"173":2,"176":2,"178":2,"179":2,"180":1,"185":4,"188":3,"189":1,"190":5,"191":3,"192":7,"193":2,"194":2,"196":3,"197":8,"198":3}}],["returned",{"2":{"1":1,"6":10,"27":2,"28":1,"73":1,"74":2,"76":3,"78":2,"79":2,"80":2,"86":1,"87":1,"152":1,"158":1,"161":2,"163":1,"180":1,"188":1}}],["returns",{"2":{"1":1,"3":5,"4":4,"5":3,"6":24,"20":1,"23":1,"27":2,"58":2,"61":1,"65":3,"68":6,"70":6,"73":1,"74":1,"76":4,"79":1,"80":1,"87":1,"90":8,"92":1,"95":2,"96":1,"99":1,"108":2,"109":1,"112":1,"123":1,"124":4,"127":2,"140":1,"152":2,"155":1,"158":2,"163":1,"185":1,"194":1,"198":1,"206":1}}],["ps",{"2":{"198":6}}],["psa",{"2":{"158":1,"159":1}}],["phi``",{"2":{"164":1}}],["physics",{"2":{"164":1}}],["pb",{"2":{"110":2}}],["p0",{"2":{"90":9}}],["pn",{"2":{"132":3}}],["pn2",{"2":{"76":6}}],["pn1",{"2":{"76":6}}],["ptm",{"2":{"150":3}}],["ptj",{"2":{"150":5}}],["pti",{"2":{"150":3}}],["ptrait",{"2":{"90":2}}],["pt2",{"2":{"76":10,"79":2}}],["pt1",{"2":{"76":13,"79":2}}],["pt",{"2":{"73":2,"76":117,"79":26,"124":8,"190":4}}],["pts",{"2":{"73":7,"76":22}}],["pfirst",{"2":{"58":3}}],["pu",{"2":{"207":2}}],["purpose",{"2":{"158":1}}],["pure",{"2":{"6":1,"87":1,"152":1}}],["purely",{"2":{"6":1,"23":1,"164":1,"184":1}}],["push",{"2":{"73":5,"74":2,"76":15,"78":2,"79":2,"80":4,"81":5,"152":3,"170":1,"185":3,"190":3,"198":2}}],["pulling",{"2":{"87":1}}],["pull",{"2":{"30":1,"32":1}}],["public",{"2":{"29":1}}],["pick",{"2":{"201":2}}],["piece",{"2":{"76":6,"176":6}}],["pieces",{"2":{"73":1,"75":2,"76":12,"80":4,"124":1,"176":9}}],["pi",{"2":{"13":2}}],["pixels",{"2":{"152":1}}],["pixel",{"2":{"6":2,"152":7}}],["pythagorean",{"2":{"90":1}}],["py",{"2":{"13":2,"14":2}}],["px",{"2":{"13":2,"14":2}}],["peucker",{"2":{"186":2,"188":3,"190":2}}],["peaks",{"2":{"152":2}}],["peculiarities",{"0":{"26":1},"1":{"27":1,"28":1,"29":1}}],["people",{"2":{"9":1}}],["persist",{"2":{"158":1}}],["perfectly",{"2":{"18":1}}],["performs",{"2":{"68":1,"159":1,"185":1}}],["performed",{"2":{"21":1,"164":1,"207":1}}],["perform",{"2":{"20":2,"31":1,"67":1,"68":2,"76":2,"153":1,"159":1,"162":2,"206":3,"207":2,"209":1}}],["performing",{"2":{"6":3,"28":1,"68":1,"74":1,"78":1,"80":1,"207":1}}],["performance",{"2":{"4":1,"6":2,"27":1,"152":1,"174":1,"177":1,"188":1,"204":1}}],["per",{"2":{"5":2,"6":2,"67":1,"68":2,"76":5,"152":1,"158":4,"159":4,"185":1}}],["pl",{"2":{"207":2}}],["plt",{"2":{"200":1}}],["please",{"2":{"76":1}}],["place",{"2":{"79":1,"206":1}}],["placement",{"2":{"76":1}}],["plainly",{"2":{"19":1}}],["plan",{"2":{"182":1}}],["plane",{"2":{"6":1,"19":1,"21":1,"68":1,"164":3,"185":1,"205":1}}],["planar",{"2":{"6":4,"18":2,"19":1,"20":1,"36":2,"76":1,"162":4,"164":7,"166":1,"185":9}}],["plots",{"2":{"67":2}}],["plottable",{"2":{"152":1}}],["plotted",{"2":{"64":1}}],["plotting",{"0":{"200":1},"2":{"6":1,"152":1,"182":1,"185":1,"199":1,"200":4,"201":1}}],["plot",{"0":{"201":1},"2":{"13":1,"67":3,"84":2,"85":1,"86":1,"92":1,"126":1,"152":1,"184":2,"188":4,"199":2,"200":9,"201":5,"202":1,"204":1,"207":1}}],["plus",{"2":{"5":1,"6":1,"68":1}}],["p4",{"2":{"6":1,"198":1}}],["p3",{"2":{"6":2,"76":8,"191":4,"198":2}}],["p2y",{"2":{"197":3}}],["p2x",{"2":{"197":3}}],["p2box",{"2":{"67":1}}],["p2",{"2":{"3":2,"4":2,"6":8,"15":12,"58":9,"61":12,"70":19,"76":13,"80":2,"86":1,"90":15,"93":11,"99":2,"108":2,"124":12,"127":2,"150":3,"183":1,"191":4,"197":3,"198":2,"200":2}}],["p1y",{"2":{"197":3}}],["p1x",{"2":{"197":3}}],["p1",{"2":{"3":3,"4":2,"6":8,"15":12,"58":8,"61":21,"67":4,"70":25,"72":1,"76":9,"80":2,"86":2,"90":15,"93":14,"98":5,"99":3,"108":5,"124":4,"127":2,"132":3,"150":3,"191":4,"197":3,"198":1,"200":1}}],["practice",{"2":{"202":1}}],["pred",{"2":{"206":5,"207":1,"208":2,"209":1}}],["predicate",{"2":{"7":1,"110":1,"206":6,"207":1,"209":5}}],["predicates",{"0":{"12":1,"15":1,"209":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"7":4,"12":1,"36":1,"76":5,"77":3,"79":4,"124":1,"206":1,"208":1}}],["precise",{"2":{"166":2}}],["precision",{"2":{"11":1}}],["precalculated",{"2":{"76":2}}],["pretty",{"2":{"179":1,"180":1}}],["prettytime",{"2":{"13":2}}],["pretend",{"2":{"76":1}}],["prevent",{"2":{"75":2,"79":2,"81":2}}],["prev^2",{"2":{"61":2}}],["prev",{"2":{"61":14,"76":70,"150":4}}],["previously",{"2":{"183":1}}],["previous",{"2":{"24":1,"61":1,"158":1,"189":3}}],["preparations",{"2":{"25":1}}],["prepared",{"2":{"25":1,"152":2}}],["preparedcrs",{"2":{"20":4}}],["prepare",{"0":{"25":1},"2":{"22":1,"25":1}}],["preserve",{"2":{"188":4,"190":3}}],["preserved",{"2":{"158":2}}],["preserving",{"2":{"186":1}}],["presentation",{"2":{"6":1,"68":1}}],["present",{"2":{"6":1,"158":1,"196":1}}],["presence",{"2":{"6":1,"37":1,"196":1}}],["prescribes",{"2":{"25":1}}],["press",{"2":{"6":1,"68":1}}],["pre",{"2":{"6":1,"80":1,"188":1,"190":2}}],["prefilter",{"2":{"6":1,"188":7}}],["protters",{"2":{"158":1,"159":1}}],["progressively",{"2":{"156":1}}],["program",{"2":{"22":1}}],["programming",{"2":{"22":1,"31":1}}],["promote",{"2":{"68":5}}],["property",{"2":{"159":2}}],["properties=gi",{"2":{"161":1}}],["properties=namedtuple",{"2":{"159":1}}],["properties=",{"2":{"152":1}}],["properties",{"2":{"6":1,"158":8,"161":1,"188":1,"192":1}}],["propagated",{"2":{"158":1}}],["propagate",{"2":{"68":16,"90":4}}],["prod",{"2":{"61":4}}],["product",{"2":{"61":1}}],["probably",{"2":{"58":1,"158":1}}],["problem",{"2":{"19":1}}],["process",{"2":{"76":1,"101":3,"102":3,"103":3,"104":1,"110":1,"115":3,"116":3,"117":2,"118":1,"124":11,"132":1,"133":3,"134":1,"135":1,"142":3,"143":3,"144":3,"145":1,"158":2,"159":2,"190":1}}],["processed",{"2":{"76":7}}],["processloopaction",{"2":{"76":3}}],["processors",{"2":{"36":1,"99":2,"113":2,"130":2,"140":2}}],["processor",{"2":{"36":1}}],["processing",{"2":{"18":1,"28":1,"76":1}}],["profile",{"2":{"9":1}}],["providers",{"2":{"169":1,"175":1}}],["provide",{"0":{"28":1},"2":{"6":6,"57":1,"60":1,"64":1,"66":1,"69":1,"72":1,"74":2,"78":2,"80":2,"89":1,"92":1,"95":1,"98":1,"108":1,"112":1,"122":1,"124":2,"126":1,"129":1,"139":1,"152":1,"192":1}}],["provides",{"2":{"6":1,"82":1,"87":1,"201":1}}],["provided",{"2":{"4":1,"6":3,"11":1,"76":1,"90":1,"93":1,"175":1,"184":2,"196":1}}],["projecting",{"2":{"201":1}}],["projection",{"2":{"20":1,"90":2,"199":1,"201":1}}],["projections",{"2":{"17":1,"18":1,"164":1}}],["project",{"2":{"9":1}}],["projects",{"2":{"9":1}}],["proj",{"2":{"1":2,"6":3,"18":2,"20":1,"36":1,"162":2,"166":2,"180":2,"181":4,"183":1,"184":6,"199":1}}],["prints",{"2":{"181":1}}],["printstyled",{"2":{"62":1,"165":3,"181":1,"184":1}}],["println",{"2":{"62":1,"165":1,"181":1,"184":1,"188":2}}],["print",{"2":{"62":2,"165":6,"181":2,"184":2}}],["primitives",{"0":{"161":1},"2":{"36":1,"161":1}}],["primitive",{"2":{"34":1}}],["primarily",{"2":{"30":2,"32":2,"167":1}}],["primary",{"2":{"3":2,"6":3,"99":1,"140":1,"188":1}}],["priority",{"2":{"1":1,"180":1}}],["pay",{"2":{"159":1}}],["paper",{"2":{"124":2}}],["pa",{"2":{"110":2}}],["pathof",{"2":{"188":2}}],["paths",{"0":{"205":1},"2":{"163":1,"205":2}}],["path",{"2":{"18":1,"57":3,"201":2}}],["parquet",{"2":{"204":3}}],["parent",{"2":{"163":1}}],["parse",{"2":{"124":1,"127":1}}],["parsed",{"2":{"20":1}}],["part",{"2":{"70":2,"81":2,"124":3,"157":1}}],["partition",{"2":{"158":4,"159":4}}],["partialsort",{"2":{"192":1}}],["partially",{"2":{"76":2,"81":2}}],["partial",{"2":{"70":4}}],["particularly",{"2":{"68":1}}],["particular",{"2":{"35":1,"61":1,"152":1,"201":2}}],["parallel",{"2":{"124":1,"150":1}}],["paradigm",{"0":{"34":1}}],["paradigms",{"0":{"22":1},"1":{"23":1,"24":1,"25":1},"2":{"22":2,"25":1}}],["parametrization",{"2":{"164":1}}],["parametrized",{"2":{"164":1}}],["parameterized",{"2":{"164":1}}],["parameters",{"2":{"18":1,"20":1,"164":1,"167":2}}],["parameter",{"2":{"6":1,"162":1,"167":3,"179":1}}],["params",{"2":{"6":2,"196":10}}],["parlance",{"2":{"5":1,"6":1,"68":1,"164":1}}],["past",{"2":{"6":1,"76":1}}],["passes",{"2":{"70":2,"124":1}}],["passed",{"2":{"1":2,"6":5,"87":1,"152":1,"161":4,"180":1,"184":2,"193":1,"196":2,"209":1}}],["passable",{"2":{"68":18}}],["passing",{"2":{"23":1,"76":1,"158":1,"186":1}}],["pass",{"2":{"5":1,"6":3,"23":1,"68":1,"76":1,"96":1,"109":1,"123":1,"124":2,"158":1,"163":1,"164":1,"184":1,"188":1}}],["pairs",{"2":{"76":1,"79":1,"200":1}}],["pair",{"2":{"3":2,"6":2,"70":1,"76":2,"127":2,"158":2,"159":1}}],["packages",{"2":{"30":1,"32":1,"82":1,"161":2,"168":1,"195":1,"199":3,"201":1,"204":1}}],["package",{"2":{"1":2,"6":1,"27":1,"30":2,"32":2,"62":1,"82":2,"87":1,"152":1,"180":3,"181":1,"184":1,"201":1,"204":2}}],["page",{"2":{"0":1,"9":1,"31":1,"34":1,"36":1,"37":1,"55":1,"58":1,"61":1,"62":1,"65":1,"67":1,"68":1,"70":1,"73":1,"75":1,"76":1,"77":1,"79":1,"81":1,"87":1,"90":1,"93":1,"96":1,"106":1,"109":1,"110":1,"120":1,"123":1,"124":1,"127":1,"137":1,"147":1,"150":1,"151":1,"152":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"170":1,"173":1,"176":1,"177":1,"178":1,"179":1,"181":1,"185":1,"192":1,"193":1,"194":1,"196":1,"198":1}}],["p",{"2":{"1":5,"6":2,"13":13,"14":12,"15":2,"57":1,"60":1,"64":1,"69":1,"70":5,"75":2,"76":9,"80":2,"84":1,"85":1,"89":3,"92":1,"95":1,"98":1,"108":1,"110":4,"112":1,"122":1,"124":20,"126":1,"129":1,"139":1,"150":4,"152":3,"153":3,"155":3,"158":5,"178":7,"183":1,"187":1,"188":1,"192":3,"193":9,"194":7,"197":11,"206":1,"207":1}}],["poylgon",{"2":{"124":1}}],["potential",{"2":{"70":1}}],["potentially",{"2":{"6":2,"76":4,"173":2,"176":2}}],["post",{"2":{"190":2}}],["postprocess",{"2":{"76":1}}],["possibly",{"2":{"158":1}}],["possiblenodes",{"2":{"152":2}}],["possible",{"2":{"6":3,"20":1,"74":1,"78":1,"80":1,"152":1,"158":1,"159":1}}],["possibility",{"2":{"156":1}}],["possibilities",{"2":{"79":1}}],["position=",{"2":{"188":1}}],["position",{"2":{"6":1,"150":1,"183":1}}],["positive",{"2":{"4":4,"6":4,"57":3,"58":1,"89":3,"90":3,"185":2,"192":1}}],["poles",{"2":{"164":1}}],["pole",{"2":{"164":2}}],["polgons",{"2":{"152":1}}],["polgontrait",{"2":{"1":1,"155":1}}],["polar",{"2":{"6":1,"184":1}}],["polynode",{"2":{"76":44}}],["polynodes",{"2":{"74":1,"76":8,"78":1,"80":1}}],["polypoints",{"2":{"68":46}}],["polys",{"2":{"6":2,"72":3,"73":10,"74":14,"75":14,"76":39,"78":9,"79":6,"80":14,"81":28,"176":26}}],["polys1",{"2":{"3":2,"6":2,"127":6}}],["polys2",{"2":{"3":2,"6":2,"127":6}}],["poly",{"2":{"3":2,"6":16,"15":2,"57":1,"58":6,"60":1,"64":1,"67":2,"68":3,"69":2,"70":4,"72":4,"73":20,"74":22,"75":12,"76":135,"78":15,"79":10,"80":19,"81":79,"84":2,"89":1,"90":3,"93":4,"110":10,"124":21,"127":8,"150":5,"152":5,"176":18,"183":2,"187":2,"188":8,"197":8,"200":2,"207":5}}],["poly2",{"2":{"3":3,"4":2,"6":7,"74":2,"93":2,"124":19,"127":7}}],["poly1",{"2":{"3":3,"4":2,"6":7,"74":2,"93":2,"124":14,"127":7}}],["polygon3",{"2":{"200":2,"201":1}}],["polygon2",{"2":{"200":6}}],["polygon1",{"2":{"200":4}}],["polygonization",{"2":{"152":1}}],["polygonizing",{"0":{"152":1}}],["polygonized",{"2":{"152":1}}],["polygonize",{"2":{"0":1,"6":6,"9":1,"36":1,"152":31}}],["polygon`",{"2":{"68":3,"87":1}}],["polygons",{"0":{"104":1,"135":1,"145":1,"174":1},"1":{"175":1,"176":1},"2":{"3":4,"4":3,"5":1,"6":18,"9":1,"28":5,"36":1,"58":5,"64":1,"65":1,"66":1,"68":2,"70":1,"73":2,"74":9,"75":5,"76":16,"78":3,"79":8,"80":6,"81":19,"89":1,"90":1,"93":5,"104":1,"127":5,"145":1,"150":1,"152":19,"156":1,"169":2,"173":3,"174":2,"175":2,"176":10,"186":1,"188":1,"200":3,"201":1,"207":5,"208":3}}],["polygontrait",{"2":{"1":1,"3":4,"4":6,"6":13,"15":3,"28":1,"37":1,"58":3,"61":2,"65":2,"68":3,"70":2,"73":1,"74":5,"75":5,"76":2,"78":3,"79":5,"80":4,"81":8,"90":2,"93":10,"101":2,"102":1,"103":1,"104":3,"105":1,"110":4,"115":2,"116":2,"117":1,"118":2,"119":1,"127":8,"132":2,"133":1,"134":1,"135":3,"136":1,"142":2,"143":1,"144":1,"145":3,"146":1,"153":1,"155":1,"156":2,"158":2,"159":1,"170":2,"172":2,"173":1,"176":2,"188":2,"197":1}}],["polygon",{"0":{"39":1,"71":1,"74":1,"75":1,"76":1,"79":1,"80":1,"81":1,"118":1},"1":{"40":1,"41":1,"42":1,"43":1,"72":1,"73":1},"2":{"0":1,"1":4,"3":4,"4":21,"5":9,"6":65,"9":2,"11":3,"15":4,"21":1,"25":1,"28":1,"57":2,"58":5,"60":1,"61":5,"64":2,"65":4,"66":5,"67":16,"68":57,"69":3,"70":4,"72":3,"73":10,"74":5,"75":7,"76":41,"78":5,"79":6,"80":6,"81":34,"82":1,"86":1,"87":3,"89":3,"90":14,"93":12,"99":1,"101":3,"102":3,"103":4,"104":8,"110":1,"115":3,"116":4,"117":4,"118":4,"124":66,"127":4,"130":1,"132":3,"133":4,"134":5,"135":7,"140":1,"142":3,"143":4,"144":4,"145":8,"150":5,"152":4,"155":1,"158":1,"166":1,"168":4,"169":8,"170":5,"171":1,"173":4,"174":3,"175":8,"176":7,"183":1,"184":4,"187":1,"188":9,"193":3,"197":6,"200":10,"201":5,"202":7,"203":2,"207":6}}],["pointwise",{"0":{"193":1},"2":{"180":1}}],["point1",{"2":{"90":4}}],["point`",{"2":{"79":1}}],["pointedgeside",{"2":{"76":1}}],["point3s",{"2":{"68":10}}],["point3f",{"2":{"67":1}}],["point₂",{"2":{"65":13}}],["point₁",{"2":{"65":13}}],["pointrait",{"2":{"6":1}}],["point2f",{"2":{"67":4,"68":2,"84":1,"89":1}}],["point2d",{"2":{"67":1}}],["point2",{"2":{"6":2,"68":5,"86":1,"90":4}}],["pointtrait",{"2":{"1":1,"4":4,"6":6,"23":1,"37":1,"55":1,"58":1,"61":2,"68":3,"70":1,"76":4,"78":2,"87":1,"90":17,"93":8,"101":6,"105":1,"115":6,"119":1,"132":6,"136":1,"142":6,"146":1,"153":2,"155":1,"156":1,"158":7,"159":4,"161":12,"167":2,"172":2,"173":1,"177":1,"178":2,"179":2,"188":2,"193":2,"194":2,"197":1}}],["point",{"0":{"115":1,"132":1},"2":{"1":4,"3":10,"4":37,"5":7,"6":83,"9":2,"18":1,"25":1,"55":1,"58":3,"61":12,"65":6,"66":3,"67":1,"68":126,"70":50,"73":13,"75":9,"76":102,"78":1,"79":71,"81":9,"87":3,"89":17,"90":73,"93":27,"96":3,"98":1,"99":2,"101":8,"110":21,"113":2,"115":10,"122":1,"124":138,"126":2,"127":21,"129":1,"130":3,"132":10,"133":1,"135":1,"140":4,"142":11,"150":1,"152":3,"155":1,"158":1,"168":1,"169":2,"173":2,"174":1,"176":2,"179":8,"180":1,"182":1,"188":2,"189":3,"190":9,"191":1,"193":2,"197":4,"198":1,"200":23,"201":1,"202":2,"207":2}}],["points2",{"2":{"3":1,"6":1,"127":3}}],["points1",{"2":{"3":1,"6":1,"127":3}}],["points",{"0":{"101":1,"142":1},"2":{"0":1,"1":3,"3":1,"4":11,"5":1,"6":54,"9":3,"13":1,"18":2,"57":3,"58":3,"61":2,"65":1,"67":8,"68":32,"70":5,"73":3,"74":5,"75":1,"76":54,"78":8,"79":28,"80":4,"81":1,"82":3,"84":4,"86":4,"87":6,"89":2,"90":8,"92":2,"93":13,"95":1,"99":6,"101":3,"102":4,"113":6,"115":1,"116":7,"117":3,"124":10,"127":5,"130":5,"132":1,"133":2,"134":4,"135":3,"139":1,"140":5,"142":3,"143":3,"144":3,"145":1,"149":1,"152":3,"158":2,"159":1,"166":2,"177":2,"180":1,"183":2,"184":2,"188":11,"189":11,"190":26,"191":10,"192":33,"193":2,"194":2,"197":25,"198":1,"200":8,"201":1,"206":1,"207":11}}],["pointorientation",{"2":{"0":1,"6":2,"124":2}}],["my",{"2":{"163":1,"208":1,"209":2}}],["myindependentalgorithm",{"2":{"162":3}}],["myexternalarbitrarypackagealgorithm",{"2":{"162":1}}],["mdk",{"2":{"158":2}}],["moore",{"2":{"152":1}}],["mode",{"2":{"209":3}}],["model",{"2":{"164":1,"206":1}}],["modify",{"2":{"200":1}}],["modified",{"2":{"158":1,"159":1}}],["module",{"2":{"76":1,"180":1,"185":1}}],["modules",{"2":{"6":1,"68":1}}],["mod1",{"2":{"68":5}}],["mod",{"2":{"68":1,"76":1}}],["move",{"2":{"65":1,"124":1}}],["moved",{"2":{"36":1,"76":1,"180":1}}],["monotone",{"2":{"25":1,"86":2}}],["monotonechainmethod",{"2":{"0":1,"6":1,"82":1,"86":2,"87":4}}],["most",{"2":{"18":1,"30":1,"32":1,"75":1,"76":1,"79":1,"81":1,"86":1,"124":1,"188":1,"204":2}}],["moment",{"2":{"6":1,"183":1,"185":1}}],["more",{"2":{"6":3,"7":1,"9":1,"10":1,"11":1,"20":1,"28":1,"31":1,"34":1,"36":1,"74":1,"76":1,"78":1,"80":1,"87":1,"124":1,"127":1,"158":4,"159":4,"164":2,"166":1,"170":1,"181":1,"183":1,"185":1,"200":2,"206":1}}],["missing",{"2":{"183":4}}],["missed",{"2":{"152":1}}],["mistakenly",{"2":{"174":1}}],["midpoint",{"2":{"76":2}}],["middle",{"2":{"76":3}}],["mid",{"2":{"70":2,"124":3}}],["mining",{"2":{"208":1}}],["minimal",{"2":{"208":1}}],["minimize",{"2":{"79":1}}],["minimum",{"2":{"4":7,"6":12,"69":1,"70":2,"90":12,"188":1,"189":1,"191":1}}],["mind",{"2":{"183":1,"207":1}}],["minmax",{"2":{"79":4}}],["min",{"2":{"70":1,"79":16,"90":15,"188":1,"190":3,"191":1,"192":28}}],["minus",{"2":{"57":1}}],["minpoints=0",{"2":{"152":1}}],["minpoints",{"2":{"6":2}}],["might",{"2":{"6":3,"30":1,"32":1,"36":1,"58":1,"74":1,"78":1,"79":1,"80":1,"171":1,"190":1}}],["mixed",{"2":{"6":4,"188":1}}],["m",{"2":{"5":1,"6":1,"15":10,"68":2,"70":6,"150":2,"162":29,"166":4,"201":1}}],["mp",{"2":{"110":2}}],["mp1",{"2":{"4":2,"6":2,"93":7}}],["mp2",{"2":{"4":2,"6":2,"93":8}}],["mason",{"2":{"158":1,"159":1}}],["markersize",{"2":{"200":2}}],["marker",{"2":{"200":2}}],["marked",{"2":{"75":1,"76":6,"79":1,"81":1}}],["mark",{"2":{"76":2}}],["marks",{"2":{"76":1}}],["marking",{"2":{"75":2,"79":2,"81":2}}],["mag",{"2":{"61":4}}],["making",{"2":{"76":1,"152":1,"156":1,"175":1,"200":1,"202":2}}],["makie",{"2":{"13":1,"14":1,"57":1,"60":1,"64":1,"67":3,"69":1,"72":4,"84":1,"85":1,"89":1,"92":1,"95":1,"98":1,"108":1,"112":1,"122":1,"126":1,"129":1,"139":1,"152":3,"187":1,"188":1,"205":1}}],["makevalid",{"2":{"188":2}}],["makes",{"2":{"58":1,"76":1,"90":1,"158":1,"165":1,"169":1,"174":1,"175":1}}],["make",{"2":{"9":1,"30":1,"32":1,"61":1,"76":3,"79":1,"90":1,"127":1,"152":2,"156":1,"170":1,"183":1,"192":1,"195":1,"198":1,"200":2,"202":1}}],["mainly",{"2":{"68":1,"89":1,"153":1,"159":1,"165":1}}],["maintain",{"2":{"58":1}}],["main",{"0":{"33":1},"1":{"34":1,"35":1},"2":{"7":1,"31":1,"76":1,"152":1,"158":1,"184":1}}],["manner",{"2":{"206":1}}],["manipulate",{"2":{"204":1}}],["manifoldindependentalgorithm",{"2":{"162":3}}],["manifolds",{"0":{"17":1,"18":1,"21":1,"164":1},"1":{"18":1,"19":1,"20":1,"21":1},"2":{"162":2,"164":4}}],["manifold",{"2":{"6":1,"17":1,"18":2,"20":5,"21":1,"36":2,"76":2,"162":19,"164":19,"165":4,"166":6,"185":3}}],["manually",{"2":{"168":1}}],["many",{"2":{"4":1,"5":1,"6":2,"28":1,"31":1,"68":1,"73":1,"75":1,"76":1,"79":2,"81":1,"93":1,"162":1,"169":1,"177":1}}],["mapped",{"2":{"204":1}}],["maptasks`",{"2":{"158":1}}],["maptasks",{"2":{"158":8}}],["mapreducetasks`",{"2":{"159":1}}],["mapreducetasks",{"2":{"159":6}}],["mapreduce",{"2":{"75":1,"152":2,"158":4,"159":9}}],["map",{"0":{"201":1},"2":{"6":1,"13":1,"23":3,"24":1,"34":1,"68":1,"76":1,"79":1,"127":2,"152":17,"158":15,"159":8,"161":10,"164":1,"167":1,"170":1,"188":1,"199":1,"201":1,"202":1,"204":1}}],["materialization",{"2":{"162":1}}],["materialized",{"2":{"166":2}}],["materialize",{"2":{"76":1}}],["materializer`",{"2":{"158":1}}],["materializer",{"2":{"27":1,"158":1}}],["matches",{"2":{"93":1,"152":1}}],["match",{"2":{"93":12,"127":3,"152":1,"158":1,"161":2,"162":1}}],["matching",{"2":{"3":1,"6":1,"27":1,"93":3,"127":1,"156":2}}],["matlab",{"2":{"72":1}}],["mathematical",{"2":{"164":1}}],["mathematically",{"2":{"6":1,"17":1,"150":1,"164":2}}],["mathematics",{"2":{"164":1}}],["mathrm",{"2":{"68":1}}],["math",{"2":{"7":1}}],["matrix",{"2":{"6":1,"14":2,"68":1,"76":1}}],["maxlog=3",{"2":{"185":1}}],["maximal",{"2":{"79":1}}],["maximum",{"2":{"3":1,"6":4,"14":1,"69":1,"70":4,"110":1,"152":1,"184":1,"185":1,"190":4}}],["max",{"2":{"6":9,"37":9,"61":2,"70":1,"152":1,"158":2,"159":2,"183":5,"184":8,"185":21,"190":36,"192":1,"205":1}}],["made",{"2":{"6":2,"65":1,"76":1,"79":1,"134":1,"156":1,"173":1,"176":1,"191":1}}],["maybe",{"2":{"37":1,"76":10,"124":4,"158":2,"159":3,"161":2,"162":1}}],["may",{"2":{"1":1,"6":3,"28":2,"29":1,"68":2,"76":3,"79":1,"86":1,"150":1,"151":1,"155":1,"156":1,"158":4,"161":1,"162":5,"164":2,"166":3,"167":1,"174":1,"175":1,"184":1}}],["measure",{"2":{"182":1}}],["measures",{"2":{"164":1}}],["meant",{"2":{"31":1}}],["meaning",{"2":{"3":3,"4":1,"6":4,"29":1,"58":1,"62":1,"127":4,"150":1,"164":1}}],["means",{"2":{"3":1,"6":2,"57":1,"58":1,"62":1,"98":1,"124":3,"126":1,"127":1,"150":1,"156":1,"163":2,"164":2}}],["mean",{"2":{"0":1,"6":5,"22":1,"67":2,"68":5,"159":1,"164":1}}],["meanvalue",{"2":{"0":1,"5":2,"6":3,"66":1,"67":2,"68":15}}],["mercator",{"2":{"201":1}}],["merge",{"2":{"158":1}}],["merit",{"2":{"76":1}}],["meets",{"2":{"124":9,"127":1,"190":1}}],["meet",{"2":{"79":3,"98":1,"99":1,"113":1,"124":7,"130":1,"140":1}}],["memory",{"2":{"68":1,"202":1}}],["mesh",{"2":{"67":1}}],["message",{"2":{"6":1,"196":1}}],["me",{"0":{"28":1}}],["mentioned",{"2":{"24":1}}],["mentions",{"2":{"6":1,"196":1}}],["menu",{"2":{"14":3}}],["median",{"2":{"13":4,"159":1}}],["mechanics",{"2":{"6":1,"68":1}}],["metadatakeys",{"2":{"158":1}}],["metadatasupport",{"2":{"158":2}}],["metadata",{"2":{"158":11}}],["met",{"2":{"124":44}}],["meters",{"2":{"6":4,"183":1,"184":4,"201":1}}],["methoderror",{"2":{"36":3}}],["methods",{"0":{"2":1,"3":1,"4":1,"6":1,"44":1},"1":{"3":1,"4":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"1":1,"6":7,"9":1,"30":1,"32":1,"36":27,"68":3,"82":1,"99":1,"113":1,"130":1,"140":1,"152":1,"156":1,"158":1,"161":2,"162":1,"165":1,"167":1,"183":1,"188":2,"193":1,"200":1}}],["method",{"0":{"181":1},"2":{"1":1,"4":1,"5":10,"6":30,"20":1,"29":1,"37":1,"58":1,"61":1,"62":2,"65":1,"68":37,"70":1,"79":1,"81":1,"86":3,"87":2,"90":4,"93":1,"99":2,"113":2,"127":1,"130":2,"140":2,"152":1,"158":1,"159":1,"161":3,"163":1,"180":1,"181":2,"183":2,"184":9,"185":22,"186":2,"196":3,"206":1,"209":1}}],["mutation",{"2":{"203":1}}],["mutlipolygon",{"2":{"4":1,"6":1,"65":1}}],["muladd",{"2":{"68":2}}],["multifloats",{"2":{"13":1,"14":1,"15":1}}],["multifloat",{"2":{"7":1}}],["multilinestringtrait",{"2":{"37":1,"172":1}}],["multilinestring",{"2":{"6":1,"197":2}}],["multi",{"0":{"105":1,"106":1,"119":1,"120":1,"136":1,"137":1,"146":1,"147":1},"2":{"4":2,"6":3,"58":1,"61":1,"70":1,"93":2,"105":1,"106":1,"119":1,"120":1,"136":1,"137":1,"146":1,"147":1}}],["multicurves",{"2":{"58":1,"70":1}}],["multicurve",{"2":{"4":1,"6":1,"58":1}}],["multigeometry",{"2":{"4":2,"6":2,"90":2}}],["multiplication",{"2":{"185":1}}],["multiplied",{"2":{"68":3,"164":1}}],["multiple",{"2":{"4":1,"6":1,"68":1,"124":1,"177":1,"192":1,"200":1,"204":1}}],["multiply",{"2":{"1":1,"6":1,"193":1}}],["multipolys",{"2":{"81":3}}],["multipoly`",{"2":{"74":2,"78":2,"80":2}}],["multipoly",{"2":{"6":9,"15":3,"74":1,"75":27,"78":1,"79":26,"80":1,"81":24,"176":21,"188":9}}],["multipolygon`",{"2":{"152":1}}],["multipolygons",{"2":{"3":1,"4":1,"6":11,"65":1,"74":3,"78":3,"79":3,"80":3,"89":1,"93":1,"127":2,"175":1,"200":1,"201":1}}],["multipolygon",{"2":{"3":2,"4":5,"6":17,"58":2,"64":1,"74":1,"75":7,"78":1,"79":5,"80":1,"81":6,"93":4,"127":2,"152":7,"173":2,"174":7,"175":8,"176":2,"188":3,"200":8,"201":1}}],["multipolygontrait",{"2":{"1":1,"3":4,"4":2,"6":6,"28":1,"37":1,"75":4,"79":4,"81":4,"93":6,"105":1,"106":1,"119":1,"120":1,"127":8,"136":1,"137":1,"146":1,"147":1,"155":1,"158":1,"172":1,"176":4}}],["multipoint",{"2":{"4":5,"6":5,"55":1,"58":1,"93":5,"110":6,"158":1,"159":2,"188":1,"200":5}}],["multipoints",{"2":{"3":2,"4":1,"6":3,"58":1,"70":1,"93":2,"127":2,"188":1,"200":1}}],["multipointtrait",{"2":{"1":1,"3":2,"4":4,"6":7,"37":1,"58":1,"61":2,"70":1,"93":8,"105":1,"106":1,"110":4,"119":1,"120":1,"127":4,"136":1,"137":1,"146":1,"147":1,"155":1,"156":1,"172":1,"188":2,"197":1}}],["multithreading",{"2":{"1":2,"4":1,"6":4,"155":1,"160":1}}],["must",{"2":{"1":1,"3":8,"4":2,"5":1,"6":22,"9":1,"19":1,"61":1,"62":1,"68":5,"70":3,"73":1,"76":2,"79":2,"93":5,"96":2,"99":1,"108":1,"109":1,"113":1,"124":13,"127":1,"129":1,"130":1,"140":2,"152":1,"158":1,"161":2,"171":1,"172":3,"173":1,"180":1,"184":1,"185":1,"188":1,"192":4,"196":1}}],["much",{"2":{"0":1,"6":3,"74":1,"78":1,"80":1}}],["df",{"2":{"203":3,"204":4,"207":10,"208":12}}],["dp",{"2":{"188":3}}],["dd",{"2":{"162":1}}],["dy",{"2":{"150":2,"185":3}}],["dy2",{"2":{"150":2}}],["dy1",{"2":{"110":10,"150":2}}],["dyc",{"2":{"110":2}}],["dx",{"2":{"150":2,"185":3}}],["dx2",{"2":{"150":2}}],["dx1",{"2":{"110":10,"150":2}}],["dxc",{"2":{"110":2}}],["drop",{"2":{"81":1,"176":1,"185":1}}],["driven",{"2":{"30":1,"32":1}}],["driving",{"2":{"30":1,"32":1}}],["duplicated",{"2":{"79":2}}],["during",{"2":{"76":1}}],["due",{"2":{"65":1,"76":1,"79":3}}],["dual",{"2":{"36":1,"76":4}}],["date",{"2":{"86":1}}],["datas",{"2":{"209":1}}],["datasets",{"2":{"201":1,"206":1,"207":1}}],["dataset",{"2":{"201":1,"206":1}}],["datainterpolations",{"2":{"182":1}}],["dataapi",{"2":{"36":1,"158":7}}],["dataaspect",{"2":{"13":1,"14":1,"57":1,"60":1,"64":1,"67":2,"69":1,"89":2,"152":2,"183":1,"188":1}}],["dataframes",{"2":{"203":3,"207":2,"208":1}}],["dataframe",{"2":{"34":1,"203":1,"206":1,"207":5,"208":2}}],["data",{"0":{"152":1,"204":1},"2":{"28":1,"30":1,"32":1,"85":1,"152":2,"158":1,"166":2,"188":10,"199":1,"201":2,"202":2,"203":2,"204":6,"207":1}}],["dashboard",{"0":{"14":1},"2":{"13":1,"14":1}}],["d",{"2":{"1":2,"5":1,"6":1,"68":1,"164":1,"165":6,"180":1,"190":3}}],["deu",{"2":{"208":2}}],["demonstrates",{"2":{"207":1}}],["densify",{"2":{"184":3}}],["densifying",{"2":{"184":1}}],["densifies",{"2":{"182":1}}],["denoted",{"2":{"124":1}}],["denotes",{"2":{"76":1}}],["debug",{"2":{"172":1}}],["debugging",{"2":{"68":1,"76":1}}],["derivation",{"2":{"79":1}}],["delete",{"2":{"110":1,"127":1,"152":1,"190":1}}],["deleteat",{"2":{"76":6,"190":1,"192":2}}],["deltri",{"2":{"87":1}}],["delayed",{"2":{"75":2,"76":10,"79":2,"81":2}}],["delay",{"2":{"74":2,"75":2,"76":14,"78":2,"79":2,"80":2,"81":2}}],["delaunay",{"2":{"6":1,"87":1}}],["delaunaytriangulation",{"2":{"6":1,"36":1,"82":1,"87":6}}],["dealing",{"2":{"70":1}}],["deprecated",{"2":{"185":1}}],["depth",{"2":{"68":2}}],["depends",{"2":{"73":1,"76":1}}],["depend",{"2":{"21":1,"76":2}}],["depending",{"2":{"1":1,"20":1,"28":1,"79":1,"155":1,"158":1,"164":1}}],["desktop",{"2":{"204":1}}],["dest",{"2":{"201":2}}],["destination",{"2":{"201":5}}],["designed",{"2":{"162":1,"165":1}}],["desiredmanifold",{"2":{"165":2}}],["desired",{"2":{"80":1,"204":1}}],["despite",{"2":{"61":1}}],["describe",{"2":{"18":1,"22":1}}],["describes",{"2":{"18":3,"162":1}}],["described",{"2":{"6":1,"65":1,"68":1,"76":1}}],["description",{"2":{"17":1}}],["de",{"0":{"44":1},"1":{"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"124":2,"206":1}}],["deconstruct",{"2":{"153":1,"159":1}}],["decomposition",{"2":{"23":1,"153":1}}],["decomposing",{"2":{"23":1}}],["decompose",{"2":{"6":1,"23":2,"34":1,"68":4,"159":1,"166":1,"168":1,"198":2}}],["decrementing",{"2":{"152":1}}],["decrease",{"2":{"65":1}}],["decreasing",{"2":{"6":1,"188":1}}],["decide",{"2":{"86":1,"152":1}}],["decision",{"2":{"29":1}}],["degeneracies",{"2":{"9":1}}],["degenerate",{"2":{"6":1,"68":1,"73":2}}],["degrees",{"2":{"6":1,"60":1,"150":1,"164":1,"184":1}}],["define",{"2":{"21":1,"67":1,"76":1,"79":2,"92":1,"152":2,"153":1,"156":1,"158":1,"164":1,"195":1,"209":2}}],["defines",{"2":{"20":1,"76":1,"153":1,"159":1,"160":1,"161":1,"171":1,"195":1}}],["defined",{"2":{"4":1,"5":1,"6":3,"7":1,"27":1,"61":2,"68":1,"69":1,"70":4,"76":1,"79":4,"90":2,"149":1,"158":1,"164":3,"185":1,"195":1}}],["definitions",{"2":{"196":1}}],["definition",{"2":{"4":4,"6":6,"93":8,"98":1,"164":3,"185":1}}],["default",{"2":{"1":2,"4":5,"6":14,"18":1,"37":1,"58":2,"61":1,"70":1,"74":1,"75":2,"78":1,"79":5,"80":1,"81":2,"87":1,"90":2,"152":5,"158":5,"161":2,"164":2,"179":1,"180":2,"188":2}}],["defaults",{"2":{"1":6,"4":2,"6":11,"20":1,"155":3,"158":1,"160":3}}],["deeper",{"2":{"1":1,"155":1,"157":1,"158":2}}],["detrimental",{"2":{"174":1}}],["detector",{"2":{"86":1}}],["detection",{"2":{"86":1,"152":1}}],["determined",{"2":{"70":1,"76":1}}],["determines",{"2":{"58":1,"76":3,"79":1,"124":10}}],["determine",{"2":{"20":3,"70":3,"74":2,"76":10,"78":2,"79":9,"80":2,"99":1,"113":1,"124":9,"127":1,"130":1,"140":1,"190":3,"206":1}}],["determinant",{"2":{"6":1,"20":1,"68":1}}],["detail",{"2":{"31":1}}],["details",{"2":{"6":2,"183":2}}],["details>",{"2":{"6":2}}],["det",{"2":{"0":1,"6":2,"68":4}}],["dirname",{"2":{"188":4}}],["dirty",{"2":{"187":1}}],["directive",{"2":{"158":1}}],["direction",{"2":{"6":1,"76":1,"93":5,"152":3}}],["direct",{"2":{"38":1}}],["directly",{"2":{"6":1,"87":3,"152":1,"184":1}}],["dig",{"2":{"158":1}}],["dict",{"2":{"152":5}}],["didn",{"2":{"81":1,"124":1,"163":1}}],["division",{"2":{"67":1}}],["divided",{"2":{"31":1}}],["ditance",{"2":{"4":1,"6":1,"90":1}}],["dimensionality",{"2":{"161":1}}],["dimensional",{"2":{"5":1,"6":3,"18":1,"57":1,"68":1,"87":2,"164":1}}],["dimensions",{"0":{"179":1},"2":{"3":1,"6":1,"127":2}}],["dimension",{"2":{"1":1,"3":4,"6":4,"110":2,"126":1,"127":4,"180":1,"198":1}}],["discouraged",{"2":{"202":1}}],["discussion",{"2":{"30":1,"32":1,"73":1}}],["distributed",{"2":{"207":2}}],["distinct",{"2":{"79":1,"152":1}}],["dist",{"2":{"79":40,"90":19,"124":2,"184":8,"190":40}}],["distance`",{"2":{"184":3,"185":2,"196":1}}],["distances",{"2":{"79":1,"89":1,"184":1,"189":5}}],["distance",{"0":{"88":2,"89":2},"1":{"89":2,"90":2},"2":{"0":4,"4":26,"6":47,"36":1,"37":9,"62":3,"68":13,"70":3,"79":32,"88":2,"89":17,"90":92,"124":1,"153":1,"159":1,"182":1,"183":5,"184":13,"185":28,"188":1,"189":3,"190":6,"191":1,"205":1,"209":2}}],["disagree",{"2":{"58":1}}],["displacement",{"2":{"164":1}}],["displaying",{"2":{"201":1}}],["display",{"2":{"13":1,"67":1,"201":1}}],["disparate",{"2":{"30":1,"32":1}}],["dispatches",{"2":{"6":1,"58":1,"61":1,"65":1,"68":1,"70":1,"90":1,"93":1,"99":1,"113":1,"127":1,"130":1,"140":1}}],["dispatch",{"2":{"4":1,"6":3,"29":1,"68":1,"76":1,"93":1,"161":3,"167":1,"196":1}}],["disjoint",{"0":{"46":1,"111":1,"112":1,"115":1,"116":1,"117":1,"118":1,"119":1},"1":{"112":1,"113":1},"2":{"0":2,"3":5,"6":7,"28":1,"36":1,"46":2,"81":2,"111":1,"112":3,"113":11,"114":6,"115":15,"116":18,"117":10,"118":5,"119":4,"120":2,"123":3,"124":16,"173":2,"174":2,"176":7,"206":1}}],["diffs",{"2":{"61":4}}],["diff",{"2":{"6":2,"61":17,"74":5,"75":3,"127":3,"176":8}}],["differs",{"2":{"201":1}}],["differ",{"2":{"4":1,"6":1,"90":1}}],["differently",{"2":{"4":3,"6":4,"58":2,"61":1,"70":1}}],["different",{"2":{"3":1,"4":4,"6":6,"25":1,"28":1,"58":4,"61":1,"70":1,"76":3,"79":2,"86":1,"127":3,"152":1,"156":1,"158":1,"174":2,"201":2,"204":1}}],["differences",{"0":{"75":1},"2":{"79":1,"190":1}}],["difference",{"0":{"40":1,"43":1,"74":1},"2":{"0":1,"6":7,"11":1,"28":1,"36":1,"40":2,"43":1,"74":12,"75":14,"76":3,"79":1,"80":1,"81":3,"173":1,"176":1,"184":1}}],["diffintersectingpolygons",{"2":{"0":1,"6":1,"173":1,"176":4}}],["domain",{"2":{"164":1}}],["doi",{"2":{"74":2,"78":2,"80":2,"124":1}}],["doing",{"2":{"22":1,"27":1,"76":2,"158":1,"202":1}}],["dot",{"2":{"61":2,"68":1}}],["download",{"2":{"201":1}}],["down",{"2":{"23":1,"34":1,"68":1,"161":2}}],["doable",{"2":{"9":1}}],["documenter",{"2":{"183":2}}],["documentation",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"31":1,"67":1,"160":1}}],["docstring",{"2":{"183":4}}],["docstrings",{"0":{"154":1},"1":{"155":1},"2":{"7":1,"160":1}}],["docs",{"0":{"31":1,"160":1},"2":{"31":1,"152":1}}],["doc",{"2":{"9":1,"10":1}}],["does",{"0":{"27":1},"2":{"6":1,"7":1,"24":1,"64":1,"79":2,"95":1,"98":3,"124":1,"164":2,"166":1,"179":1}}],["doesn",{"2":{"4":1,"6":2,"37":1,"58":1,"73":1,"93":1,"162":1,"184":1,"196":1,"208":1}}],["doublets",{"2":{"208":2}}],["double",{"2":{"191":4}}],["doubled",{"2":{"6":1,"191":1}}],["douglas",{"2":{"186":2,"188":2,"190":1}}],["douglaspeucker",{"0":{"190":1},"2":{"0":1,"6":5,"186":1,"188":5,"190":6}}],["done",{"0":{"10":1,"20":1},"2":{"13":1,"14":1,"76":3,"124":2,"152":1,"153":1,"162":1,"164":1,"174":1,"200":1,"206":1}}],["don",{"2":{"4":2,"6":2,"74":1,"76":4,"81":1,"93":6,"116":1,"124":1,"129":1,"133":1,"152":2,"158":3,"159":2,"196":1}}],["do",{"0":{"9":1,"28":1,"77":1},"2":{"1":1,"6":1,"14":1,"28":1,"36":2,"58":2,"61":1,"62":1,"65":1,"68":2,"70":1,"73":1,"76":3,"81":3,"90":2,"92":1,"93":1,"94":1,"108":1,"116":2,"117":1,"118":2,"124":1,"152":4,"153":1,"155":1,"158":6,"159":3,"161":4,"166":3,"169":1,"170":1,"175":1,"178":2,"179":2,"181":1,"184":1,"188":1,"193":2,"194":2,"201":2,"202":2,"203":3,"207":1,"208":1}}],["aim",{"2":{"164":1}}],["automanifold",{"2":{"162":3,"164":4}}],["automatically",{"2":{"127":1,"158":1,"164":2,"201":1}}],["autoalgorithm",{"2":{"162":5}}],["agnostic",{"2":{"162":1}}],["against",{"2":{"93":1,"124":2,"184":1,"188":1}}],["again",{"2":{"79":1,"158":1}}],["ay",{"2":{"150":2}}],["azimuth",{"2":{"150":2}}],["a3",{"2":{"85":1}}],["aedge",{"2":{"76":5}}],["a``",{"2":{"75":2}}],["a`",{"2":{"75":7,"79":3,"81":2}}],["a2y",{"2":{"79":4}}],["a2x",{"2":{"79":4}}],["a2t",{"2":{"76":10}}],["a2",{"2":{"67":4,"76":4,"79":54,"86":1,"127":6}}],["a1y",{"2":{"79":7}}],["a1x",{"2":{"79":7}}],["a1t",{"2":{"76":16}}],["a1",{"2":{"67":2,"76":15,"79":66,"86":1,"127":6}}],["away",{"2":{"62":1,"110":1,"209":1}}],["ams",{"2":{"205":2}}],["america",{"2":{"188":1}}],["am",{"2":{"124":1}}],["ambiguity",{"2":{"90":2,"158":1,"159":1,"161":3}}],["amounts",{"2":{"204":1}}],["amount",{"2":{"57":1,"69":1}}],["amp",{"2":{"6":1,"9":1,"76":2}}],["axes",{"2":{"152":6}}],["ax",{"2":{"13":3,"14":3,"150":2,"200":5}}],["axis`",{"2":{"164":1}}],["axislegend",{"2":{"84":1,"183":1,"187":1}}],["axis",{"2":{"13":2,"14":1,"18":1,"57":1,"60":1,"64":1,"67":4,"69":1,"86":2,"89":1,"152":2,"164":7,"183":1,"188":1,"205":1}}],["axs",{"2":{"13":2}}],["advised",{"2":{"167":1}}],["advance",{"2":{"65":2}}],["adjust",{"2":{"79":1}}],["adjacency",{"2":{"76":1}}],["adjacent",{"2":{"75":1,"76":1,"79":1,"81":1}}],["adaptivity",{"0":{"77":1}}],["adaptive",{"2":{"7":1,"13":3,"14":2,"77":1}}],["adapted",{"2":{"74":1,"78":1,"80":1,"150":1}}],["administrative",{"2":{"208":1}}],["admin",{"2":{"11":1,"85":1,"188":2}}],["adm0",{"2":{"11":7,"85":4}}],["additional",{"2":{"204":1}}],["additionally",{"2":{"76":3,"93":1}}],["addition",{"2":{"67":1,"81":1}}],["adding",{"2":{"4":1,"6":4,"7":1,"81":2,"152":1,"177":1,"182":1,"184":2,"185":1}}],["added",{"2":{"61":1,"70":1,"76":6,"81":2,"161":2,"176":2,"190":1}}],["add",{"2":{"3":1,"6":1,"7":2,"62":1,"68":1,"70":1,"73":4,"74":3,"76":15,"78":1,"79":2,"80":2,"81":9,"87":1,"110":1,"152":4,"161":1,"162":1,"163":1,"166":1,"182":1,"184":1,"190":10,"201":1,"203":2,"206":4}}],["average",{"2":{"65":4,"66":3,"79":1}}],["available",{"0":{"18":1,"173":1},"2":{"6":2,"36":1,"65":1,"167":1,"172":3,"182":1,"183":1,"185":1,"188":1,"192":1}}],["avoid",{"2":{"5":1,"6":7,"20":1,"68":1,"74":1,"78":1,"79":1,"80":1,"81":1,"94":1,"152":2,"158":1,"159":1,"161":3,"185":1,"189":1,"190":1,"191":1,"200":3}}],["a>",{"2":{"6":2}}],["achieve",{"2":{"174":1}}],["across",{"2":{"156":1}}],["acos",{"2":{"61":1}}],["activate",{"2":{"183":1}}],["action",{"2":{"25":2}}],["actions",{"2":{"25":2}}],["actual",{"2":{"10":1,"68":1,"150":1,"170":1,"180":1,"184":1}}],["actually",{"2":{"1":1,"6":1,"9":1,"68":4,"79":1,"81":3,"124":1,"152":1,"193":1,"204":1}}],["access",{"2":{"201":1}}],["accessed",{"2":{"196":1}}],["accessible",{"2":{"162":1,"164":1}}],["accelerated",{"2":{"76":1}}],["accepted",{"2":{"164":1}}],["acceptable",{"2":{"124":1}}],["accepts",{"2":{"87":1}}],["accept",{"2":{"6":1,"196":1}}],["according",{"2":{"169":1,"174":1,"175":1,"207":1}}],["accordingly",{"2":{"76":1}}],["accomodate",{"2":{"76":2}}],["account",{"2":{"74":1,"78":1}}],["accurary",{"2":{"79":1}}],["accuratearithmetic",{"2":{"11":2}}],["accurate",{"0":{"11":1},"2":{"11":3,"183":1}}],["accumulators",{"2":{"68":1}}],["accumulator",{"2":{"68":1}}],["accumulate",{"2":{"58":1,"65":3}}],["accumulation",{"0":{"11":1},"2":{"68":1}}],["after",{"2":{"6":8,"61":1,"76":12,"158":1,"159":1,"188":2}}],["ab",{"2":{"74":1,"76":3,"78":1,"79":5,"80":1}}],["able",{"2":{"25":1,"79":1}}],["ability",{"2":{"22":1}}],["about",{"2":{"6":1,"29":2,"35":1,"68":2,"124":1,"158":1,"164":2,"168":1}}],["above",{"2":{"4":1,"6":1,"61":1,"65":1,"76":2,"79":1,"81":1,"172":1}}],["abs",{"2":{"58":4,"61":1,"65":1,"70":2,"110":8,"127":2,"152":1,"191":1,"209":1}}],["absolutely",{"2":{"159":1}}],["absolute",{"2":{"4":1,"6":1,"57":1,"58":2}}],["abstractarray",{"2":{"158":4,"159":2,"161":1,"197":2}}],["abstractarrays",{"2":{"156":1}}],["abstractrange",{"2":{"152":6}}],["abstractmulticurvetrait",{"2":{"105":1,"106":1,"119":1,"120":1,"136":1,"137":1,"146":1,"147":1}}],["abstractmatrix",{"2":{"6":5,"152":13}}],["abstractpolygontrait",{"2":{"90":1}}],["abstractcurvetrait",{"2":{"58":1,"61":1,"70":1,"101":1,"104":1,"105":1,"110":1,"115":1,"119":1,"132":1,"135":1,"136":1,"142":1,"145":1,"146":1,"150":1,"188":2,"197":3,"198":1}}],["abstractwkbgeomtrait",{"2":{"37":1}}],["abstractfloat",{"2":{"36":1,"58":2,"61":1,"70":2,"73":1,"74":1,"76":1,"78":1,"79":1,"80":1,"90":8}}],["abstractgeodesic",{"2":{"18":1}}],["abstractgeometrytrait`",{"2":{"172":1}}],["abstractgeometrytrait",{"2":{"6":2,"37":1,"58":2,"70":1,"90":1,"106":1,"120":1,"137":1,"147":1,"156":1,"161":1,"172":4,"173":2,"197":5}}],["abstractgeometry",{"2":{"3":4,"6":4,"37":1,"96":2,"109":2}}],["abstract",{"2":{"6":3,"37":1,"68":3,"162":2,"163":3,"164":2,"166":1,"171":1,"172":4,"173":1,"188":3}}],["abstractvector",{"2":{"5":1,"6":1,"68":26,"152":8}}],["abstracttrait",{"2":{"1":2,"3":2,"6":2,"73":1,"75":2,"79":4,"81":2,"127":4,"153":1,"155":2,"158":1,"159":2,"161":11,"167":3}}],["abstractbarycentriccoordinatemethod",{"2":{"0":1,"5":1,"6":7,"68":18}}],["attribute",{"2":{"204":1}}],["attributed",{"2":{"203":1}}],["attributes",{"0":{"203":1},"2":{"199":1,"203":3}}],["attempt",{"2":{"164":1}}],["attempts",{"2":{"124":1}}],["attached",{"2":{"6":1,"198":1}}],["attach",{"2":{"1":2,"4":1,"6":4,"155":1,"160":1}}],["atomic",{"2":{"7":1}}],["at",{"2":{"3":4,"5":1,"6":6,"9":1,"23":1,"25":1,"29":1,"31":1,"57":1,"58":1,"61":2,"67":1,"68":2,"70":2,"76":5,"79":8,"81":2,"86":1,"124":17,"127":6,"129":1,"130":1,"133":3,"134":2,"135":2,"136":1,"137":1,"140":1,"146":1,"150":1,"156":1,"158":2,"166":1,"183":1,"185":1,"190":1,"192":1,"201":1,"202":2}}],["arbitrarily",{"2":{"156":1}}],["arbitrary",{"2":{"66":1,"153":1,"159":1,"200":1}}],["around",{"2":{"67":1,"68":2,"73":1,"89":1,"93":1,"152":1,"162":2,"164":1,"188":1,"207":1}}],["argmin",{"2":{"192":1}}],["arg",{"2":{"185":1}}],["argtypes",{"2":{"62":2,"181":1,"184":1}}],["args",{"2":{"13":2,"162":1}}],["argumenterror",{"2":{"81":1,"152":1,"158":1,"159":1,"161":3}}],["argument",{"2":{"4":5,"6":10,"58":2,"61":1,"65":1,"70":1,"74":1,"78":1,"80":1,"90":2,"158":1,"161":1,"166":1,"196":2,"201":1,"202":1}}],["arguments",{"2":{"1":1,"3":1,"6":5,"76":1,"99":2,"113":1,"130":1,"140":1,"180":1,"184":2,"185":1,"196":1}}],["arithmetic",{"2":{"11":1}}],["arclength",{"2":{"162":1,"164":1,"166":5}}],["archgdal",{"2":{"28":1}}],["arc",{"2":{"6":1,"184":1}}],["array",{"2":{"4":1,"6":2,"58":1,"70":1,"152":5,"158":5,"159":2,"189":1,"192":1}}],["arrays",{"2":{"1":1,"6":1,"27":1,"152":1,"155":1,"159":2}}],["aren",{"2":{"4":3,"6":5,"73":1,"75":1,"79":2,"81":4,"93":3,"173":2,"176":2}}],["are",{"0":{"18":1},"2":{"1":1,"3":4,"4":18,"5":2,"6":46,"9":2,"17":2,"18":2,"19":1,"25":2,"27":3,"29":1,"30":1,"31":2,"32":1,"36":1,"57":1,"58":2,"60":1,"61":8,"64":1,"65":3,"66":6,"68":11,"70":6,"73":3,"74":3,"75":15,"76":32,"78":2,"79":16,"80":5,"81":9,"86":3,"89":1,"90":1,"92":3,"93":26,"95":1,"99":7,"101":1,"102":3,"103":3,"104":1,"106":1,"112":1,"113":5,"115":1,"116":1,"117":1,"119":1,"120":1,"124":12,"127":7,"130":5,"132":1,"134":2,"139":1,"140":5,"142":1,"143":3,"144":3,"145":1,"147":1,"150":1,"151":1,"152":14,"155":1,"156":1,"158":6,"161":4,"162":1,"164":4,"166":3,"167":1,"168":1,"169":1,"170":1,"172":1,"173":3,"174":1,"175":1,"176":2,"177":1,"183":1,"184":1,"185":1,"188":4,"190":1,"192":2,"194":1,"195":2,"196":1,"198":1,"200":1,"203":2,"204":2,"205":1,"206":3,"207":6,"208":1,"209":1}}],["area2",{"2":{"65":4}}],["area1",{"2":{"65":4}}],["areas",{"2":{"4":2,"6":2,"58":3,"164":1,"191":2}}],["area",{"0":{"56":2,"57":2},"1":{"57":2,"58":2},"2":{"0":5,"4":15,"6":25,"11":6,"19":1,"21":1,"36":1,"56":2,"57":9,"58":61,"63":1,"64":3,"65":49,"69":2,"70":44,"76":1,"80":2,"81":1,"127":1,"153":1,"159":1,"162":2,"164":2,"166":5,"173":2,"176":2,"188":2,"191":4,"201":1}}],["asked",{"2":{"158":1}}],["ask",{"2":{"28":1}}],["aspect",{"2":{"13":1,"14":1,"57":1,"60":1,"64":1,"67":2,"69":1,"89":2,"152":2,"183":1,"188":1}}],["assign",{"2":{"199":1}}],["assigned",{"2":{"76":1,"152":7,"207":1}}],["assets",{"2":{"201":1}}],["assetpath",{"2":{"201":1}}],["assemble",{"2":{"170":1}}],["assert",{"2":{"65":1,"68":23,"73":1,"75":1,"76":1,"79":1,"185":2,"197":1}}],["associativity",{"2":{"24":1}}],["associated",{"0":{"1":1},"2":{"66":2,"162":1}}],["assume",{"2":{"127":2,"158":2,"169":1,"176":1}}],["assumed",{"2":{"20":1,"58":1,"93":1,"124":1}}],["assumes",{"2":{"6":3,"76":1,"90":1,"184":1,"185":2,"192":1}}],["as",{"2":{"1":8,"3":18,"4":6,"5":1,"6":74,"7":1,"11":2,"13":3,"14":3,"15":3,"18":1,"19":2,"20":1,"22":2,"23":2,"25":1,"27":1,"28":2,"29":1,"30":1,"32":1,"57":2,"58":3,"60":2,"61":4,"62":3,"64":2,"65":1,"66":4,"67":1,"68":4,"69":2,"70":5,"72":3,"73":5,"74":8,"75":2,"76":19,"78":7,"79":8,"80":7,"81":5,"82":1,"84":2,"85":2,"86":3,"87":3,"89":3,"90":1,"92":2,"93":2,"95":2,"96":2,"98":3,"99":3,"108":2,"109":2,"110":2,"112":2,"113":3,"122":2,"123":2,"124":7,"126":2,"127":2,"129":2,"130":3,"132":1,"139":2,"140":3,"150":8,"152":3,"153":3,"155":2,"156":2,"157":2,"158":12,"159":5,"161":4,"162":2,"163":2,"164":4,"167":2,"169":2,"170":2,"172":1,"173":1,"175":2,"177":1,"180":3,"182":2,"183":2,"184":3,"185":1,"186":2,"187":2,"188":7,"190":2,"193":3,"196":2,"197":2,"199":3,"200":2,"201":1,"202":1,"204":3,"205":3,"206":2,"207":3,"208":2}}],["alone",{"2":{"158":1}}],["along",{"2":{"4":4,"6":5,"70":2,"76":3,"79":4,"93":4,"124":1}}],["although",{"2":{"143":1,"144":1}}],["alternate",{"2":{"76":1}}],["alternative",{"2":{"76":1}}],["already",{"2":{"93":1,"124":2,"158":1,"162":1,"166":1,"190":1}}],["almost",{"2":{"79":1}}],["alg=nothing",{"2":{"188":1}}],["alg`",{"2":{"188":1}}],["alg",{"2":{"6":4,"37":2,"162":6,"166":11,"188":21,"189":3,"190":8,"191":3,"192":7,"196":9}}],["algorithms",{"0":{"21":1,"162":1},"2":{"6":3,"21":1,"82":1,"86":1,"162":1,"169":1,"185":1,"186":1,"188":4,"190":1,"192":1}}],["algorithm",{"0":{"189":1,"190":1,"191":1},"2":{"6":12,"21":2,"36":1,"67":1,"70":1,"73":3,"74":1,"76":2,"78":1,"80":1,"82":1,"87":4,"124":1,"162":11,"165":4,"166":5,"186":1,"188":8,"189":1,"190":3,"191":1,"196":4}}],["allocating",{"2":{"87":1}}],["allocations",{"2":{"5":1,"6":1,"68":1}}],["allocate",{"2":{"87":1}}],["allow=",{"2":{"124":1}}],["allows",{"2":{"11":1,"20":2,"23":1,"28":1,"29":1,"34":1,"99":2,"101":3,"102":3,"103":3,"104":1,"113":2,"115":3,"116":3,"117":2,"118":1,"130":1,"133":1,"134":1,"135":1,"140":3,"142":3,"143":3,"144":3,"145":1,"153":1,"186":1,"201":1,"203":1,"206":1}}],["allowed",{"2":{"6":1,"99":3,"113":3,"124":6,"130":5,"132":1,"133":2,"140":3,"188":1}}],["allow",{"2":{"1":1,"6":1,"28":1,"76":1,"79":1,"99":7,"110":3,"113":7,"124":73,"130":10,"140":10,"185":1,"193":1}}],["all",{"2":{"1":3,"3":2,"4":3,"6":12,"9":1,"11":7,"17":2,"27":1,"30":1,"32":1,"36":2,"58":3,"61":5,"68":1,"70":3,"74":1,"75":3,"76":15,"79":3,"81":5,"82":1,"85":3,"87":1,"89":1,"93":2,"95":1,"102":3,"103":3,"106":1,"119":1,"120":1,"124":7,"127":4,"139":1,"147":1,"150":1,"151":1,"152":3,"155":1,"156":2,"157":1,"158":7,"159":1,"161":2,"164":1,"170":1,"172":1,"174":1,"177":1,"178":1,"188":1,"193":2,"194":1,"195":1,"200":1,"202":1,"204":1,"206":1}}],["always",{"2":{"1":7,"4":6,"6":8,"30":1,"32":1,"57":1,"58":4,"70":2,"86":1,"89":1,"90":1,"93":1,"155":2,"158":3,"159":1,"162":1,"166":1,"180":4,"206":1}}],["also",{"2":{"1":2,"6":9,"18":1,"21":1,"28":1,"58":2,"61":1,"65":2,"70":1,"74":1,"76":5,"78":1,"79":2,"80":1,"82":1,"86":1,"87":1,"89":1,"90":2,"93":3,"127":1,"152":1,"155":1,"156":1,"158":1,"166":1,"167":1,"170":1,"173":3,"176":2,"181":1,"182":1,"183":1,"184":1,"186":1,"193":1,"200":2,"203":1}}],["a",{"0":{"28":1,"201":1,"203":1},"2":{"1":13,"3":5,"4":79,"5":1,"6":193,"7":3,"9":1,"11":1,"15":2,"17":2,"18":5,"19":1,"20":11,"21":1,"22":1,"23":6,"25":3,"27":3,"28":4,"29":2,"30":2,"32":2,"34":2,"35":2,"37":4,"40":3,"41":3,"42":3,"43":3,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":2,"52":2,"53":2,"54":2,"57":11,"58":20,"60":3,"61":22,"62":2,"64":5,"65":8,"66":13,"67":4,"68":11,"69":2,"70":17,"72":3,"73":4,"74":39,"75":30,"76":352,"77":3,"78":38,"79":91,"80":36,"81":45,"82":3,"84":3,"85":2,"86":1,"87":4,"89":15,"90":27,"92":2,"93":54,"95":2,"98":1,"99":3,"101":5,"102":3,"103":2,"105":2,"106":2,"108":2,"110":1,"112":1,"113":3,"115":4,"116":3,"117":1,"119":2,"120":2,"122":2,"124":52,"126":5,"127":27,"129":2,"130":4,"132":4,"133":2,"134":2,"135":1,"136":2,"137":2,"139":1,"140":3,"142":5,"143":2,"144":2,"146":2,"147":2,"149":1,"150":4,"152":79,"153":4,"155":4,"156":4,"158":29,"159":8,"161":7,"162":5,"163":6,"164":14,"165":8,"166":4,"167":6,"168":6,"169":2,"170":2,"171":5,"172":5,"173":9,"174":8,"176":6,"177":2,"178":3,"179":1,"180":8,"181":3,"182":5,"183":4,"184":8,"185":10,"187":3,"188":5,"191":3,"192":1,"193":2,"194":1,"196":12,"197":2,"198":4,"199":1,"200":17,"201":12,"202":5,"203":5,"204":11,"205":1,"206":5,"207":8,"208":3,"209":3}}],["apart",{"2":{"176":1}}],["april",{"0":{"7":1}}],["appears",{"2":{"169":1}}],["append",{"2":{"61":1,"74":1,"75":2,"76":5,"79":2,"80":1,"81":5,"176":2}}],["approximately",{"2":{"76":1,"183":1}}],["approach",{"2":{"24":1}}],["appropriately",{"2":{"207":1}}],["appropriate",{"2":{"6":1,"196":2}}],["applies",{"2":{"156":2}}],["applied",{"2":{"6":1,"25":1,"161":4,"164":1,"171":2,"172":2,"173":1}}],["applicable",{"2":{"21":2,"76":1}}],["application",{"2":{"1":1,"6":2,"155":1,"159":1,"170":1,"172":3,"173":1,"176":2,"182":1,"185":1}}],["apply`",{"2":{"158":1}}],["applys",{"2":{"58":1,"70":1}}],["applyreduce",{"0":{"24":1,"159":1},"2":{"0":1,"1":1,"22":1,"24":2,"34":1,"36":2,"58":1,"61":1,"65":2,"70":1,"90":2,"153":1,"155":1,"159":42,"163":1,"166":1}}],["apply",{"0":{"1":1,"23":1,"27":1,"34":1,"153":1,"156":1},"1":{"24":1,"154":1,"155":1,"156":1,"157":1,"158":1},"2":{"0":1,"1":4,"6":3,"22":1,"23":5,"25":1,"27":1,"29":1,"34":3,"36":3,"37":2,"153":5,"155":3,"156":4,"157":1,"158":55,"159":5,"160":1,"161":3,"163":1,"164":1,"166":1,"172":4,"173":1,"177":1,"178":3,"179":3,"180":1,"184":1,"185":1,"188":2,"193":3,"194":2}}],["apis",{"2":{"22":1}}],["api",{"0":{"0":1,"68":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"6":3,"29":1,"68":1,"184":1,"188":1,"196":1}}],["antipodal",{"2":{"166":2}}],["annotation",{"2":{"163":1}}],["annotated",{"2":{"31":1}}],["angular",{"2":{"164":1}}],["angels",{"2":{"61":1}}],["angle",{"2":{"61":35,"150":1}}],["angles",{"0":{"59":1,"60":1},"1":{"60":1,"61":1},"2":{"0":2,"4":10,"6":10,"36":1,"59":1,"60":4,"61":42}}],["answers",{"2":{"174":1}}],["answer",{"2":{"6":3,"74":1,"78":1,"79":1,"80":1}}],["another",{"2":{"3":1,"6":1,"18":1,"76":2,"79":1,"87":1,"89":1,"95":1,"98":1,"101":1,"103":1,"104":1,"108":1,"112":1,"115":1,"116":1,"117":1,"118":1,"122":1,"124":1,"126":1,"127":1,"129":1,"132":1,"133":1,"134":1,"135":1,"139":1,"142":1,"143":1,"144":1,"145":1,"152":1,"180":1}}],["anonymous",{"2":{"1":1,"6":1,"193":1}}],["an",{"2":{"1":3,"4":11,"5":1,"6":28,"9":1,"13":1,"14":1,"18":1,"23":1,"25":1,"28":2,"37":1,"57":1,"58":2,"60":1,"61":4,"62":2,"64":1,"67":1,"68":3,"69":2,"70":2,"72":1,"73":1,"74":2,"75":5,"76":20,"78":2,"79":9,"80":2,"81":2,"87":3,"89":2,"90":5,"92":1,"93":1,"95":1,"98":2,"101":2,"108":1,"112":1,"122":1,"124":13,"126":1,"127":1,"129":1,"139":1,"142":2,"143":1,"144":1,"151":1,"152":3,"155":1,"156":1,"157":1,"158":5,"159":2,"161":2,"162":3,"164":2,"165":1,"170":1,"177":1,"180":1,"184":1,"193":2,"196":3,"197":1,"198":1,"200":2,"201":2,"203":1,"205":1,"207":1}}],["anything",{"2":{"20":1,"67":1,"124":1,"164":1}}],["any",{"2":{"1":3,"3":1,"4":2,"6":17,"23":1,"29":1,"30":1,"32":1,"34":1,"65":1,"66":2,"70":1,"73":1,"75":1,"76":11,"79":4,"81":1,"90":2,"100":2,"101":1,"104":1,"112":1,"114":2,"115":1,"116":2,"117":1,"118":2,"124":8,"127":2,"131":2,"141":2,"145":1,"152":2,"153":2,"155":1,"158":2,"159":2,"161":2,"164":1,"166":1,"170":1,"171":1,"172":3,"173":4,"176":4,"179":3,"180":2,"182":1,"184":1,"185":1,"190":1,"197":1,"206":3,"207":2}}],["and",{"0":{"1":1,"21":1,"25":1,"27":1,"29":1,"56":1,"75":1,"79":1,"81":1,"88":1,"165":1,"200":1,"201":1,"203":1},"1":{"57":1,"58":1,"89":1,"90":1},"2":{"0":2,"1":8,"3":11,"4":18,"6":80,"7":1,"9":2,"17":3,"18":5,"19":2,"20":7,"22":4,"23":4,"25":2,"27":1,"28":2,"29":3,"30":2,"31":5,"32":2,"34":2,"35":1,"36":2,"37":2,"38":1,"57":1,"58":7,"61":13,"62":1,"63":2,"64":1,"65":29,"66":2,"67":2,"68":20,"69":2,"70":18,"72":1,"73":4,"74":4,"75":16,"76":78,"78":4,"79":38,"80":6,"81":15,"86":1,"87":2,"89":2,"90":13,"92":2,"93":13,"95":3,"96":2,"98":2,"99":3,"102":3,"103":4,"104":1,"108":2,"109":2,"110":1,"113":3,"116":3,"117":1,"118":1,"122":1,"124":36,"126":2,"127":3,"130":2,"134":2,"135":2,"139":3,"140":4,"142":2,"143":3,"144":3,"145":1,"150":2,"152":16,"153":6,"155":5,"156":2,"157":3,"158":16,"159":10,"161":2,"162":3,"163":3,"164":14,"165":1,"166":2,"167":1,"168":1,"169":2,"170":1,"171":1,"172":4,"173":2,"174":1,"177":2,"178":2,"180":2,"183":1,"184":5,"185":7,"186":2,"187":1,"188":8,"190":8,"191":1,"192":1,"193":1,"196":4,"198":2,"199":3,"200":9,"201":7,"202":2,"204":5,"206":2,"207":4,"208":2}}],["nselected",{"2":{"192":3}}],["nmax",{"2":{"192":2}}],["n+1",{"2":{"169":1}}],["nice",{"2":{"165":1,"190":1}}],["nfeature",{"2":{"158":1,"159":1}}],["nkeys",{"2":{"152":8}}],["nc",{"2":{"124":13}}],["ncoord",{"2":{"76":1,"93":2}}],["nl",{"2":{"124":11}}],["nbpts",{"2":{"76":2}}],["nb",{"2":{"76":4}}],["nhole",{"2":{"74":2,"76":2,"78":2,"80":2,"81":1,"93":2}}],["nt",{"2":{"196":2}}],["ntasks",{"2":{"158":5,"159":5}}],["nthreads",{"2":{"158":3,"159":3}}],["nthe",{"2":{"62":1,"181":1,"184":1}}],["ntuple",{"2":{"68":3,"185":1,"198":1}}],["n2",{"2":{"68":8,"93":10}}],["n1",{"2":{"68":8,"93":9}}],["ngeom",{"2":{"65":1,"158":2,"159":1,"197":1}}],["np2",{"2":{"110":4}}],["npts",{"2":{"76":6,"190":3}}],["npolygon",{"2":{"75":1,"93":3,"176":2}}],["npoints",{"2":{"61":6,"76":5,"124":3,"184":6,"190":7}}],["npoint",{"2":{"6":1,"57":1,"58":1,"61":2,"70":2,"76":2,"86":2,"90":1,"93":6,"110":6,"124":6,"132":1,"150":2,"170":1,"184":3,"185":1,"188":14,"192":1,"197":13,"198":1}}],["np",{"2":{"58":2,"90":5}}],["null",{"2":{"37":1,"184":1}}],["numeric",{"2":{"11":1}}],["numbers",{"2":{"6":1,"7":1,"66":2,"68":1,"184":1}}],["number=6",{"2":{"6":1,"187":1,"188":1}}],["number",{"2":{"6":12,"68":1,"73":1,"76":3,"82":1,"86":1,"89":1,"93":2,"124":2,"182":1,"183":1,"185":1,"188":2,"189":4,"190":7,"191":4,"192":12}}],["numverts",{"2":{"0":1,"6":1,"76":7}}],["n",{"2":{"6":1,"9":1,"62":2,"66":2,"68":36,"73":10,"76":51,"80":4,"81":4,"124":11,"132":2,"150":6,"152":5,"165":4,"169":1,"176":25,"181":2,"184":2,"185":3,"188":2,"192":7,"197":32}}],["naive",{"2":{"77":1}}],["napts",{"2":{"76":3}}],["na",{"2":{"76":4}}],["navigate",{"0":{"31":1}}],["natearth2",{"2":{"201":1}}],["natural",{"2":{"188":1,"201":2,"206":1}}],["naturalearth",{"2":{"11":2,"85":2,"188":3,"201":1}}],["nature",{"2":{"20":2,"152":1,"164":1}}],["native",{"2":{"6":1,"151":1,"196":4,"204":1}}],["nan",{"2":{"9":1}}],["named",{"2":{"158":1}}],["namedtuple",{"2":{"27":2,"158":2,"196":2}}],["name",{"2":{"6":1,"18":1,"36":2,"188":1,"196":1,"203":1,"204":2,"208":1}}],["namespaced",{"2":{"158":1}}],["names",{"2":{"6":1,"36":3,"158":3,"159":3,"196":1}}],["ne",{"2":{"201":2}}],["net",{"2":{"172":2}}],["nesting",{"2":{"156":2}}],["nestedloopfast",{"2":{"209":1}}],["nested",{"2":{"1":2,"4":1,"6":3,"23":1,"61":1,"76":2,"155":2,"156":2,"158":2,"159":2,"188":1,"194":1}}],["neumann",{"2":{"152":1}}],["neither",{"2":{"81":1}}],["neighborhood",{"2":{"152":2}}],["neighbor",{"2":{"76":27}}],["neighboring",{"2":{"6":6,"76":1,"188":1,"189":1,"190":1,"191":2}}],["nearly",{"2":{"204":1}}],["nearest",{"2":{"76":1,"79":2}}],["neatly",{"2":{"22":1}}],["nedge",{"2":{"76":2,"197":13}}],["never",{"2":{"76":1,"156":1,"189":1}}],["nextnode",{"2":{"152":27}}],["nextnodes",{"2":{"152":6}}],["next",{"2":{"65":1,"70":3,"73":4,"76":81,"124":14,"152":3,"176":13,"190":5}}],["necessarily",{"2":{"6":1,"150":1,"178":1}}],["necessary",{"2":{"6":1,"156":1,"162":1,"188":1}}],["newfeature",{"2":{"161":2}}],["newnodes",{"2":{"152":2}}],["new",{"2":{"6":1,"62":1,"70":9,"74":3,"75":1,"76":58,"81":16,"124":2,"152":4,"157":1,"158":22,"159":2,"172":2,"173":1,"174":1,"176":19,"185":10,"189":1,"190":2,"191":1,"202":1,"203":1,"208":1}}],["negative",{"2":{"4":3,"6":3,"57":2,"58":1,"66":2,"89":2,"90":3}}],["needs",{"2":{"18":1,"65":1,"76":1,"166":1}}],["needing",{"2":{"4":1,"6":1,"22":1,"177":1}}],["need",{"2":{"1":1,"3":1,"4":2,"5":1,"6":5,"18":1,"37":1,"64":1,"68":2,"75":1,"76":4,"86":1,"93":4,"108":1,"109":1,"124":1,"152":2,"153":1,"158":3,"159":1,"166":1,"177":1,"192":1,"193":1,"201":1,"202":2,"209":2}}],["needed",{"0":{"19":1},"2":{"1":2,"6":4,"61":1,"68":1,"70":1,"74":1,"76":4,"78":1,"80":1,"90":2,"124":5,"152":1,"158":2,"159":2,"172":1,"180":3,"202":1}}],["nomanifold",{"2":{"162":1}}],["noalgorithm",{"2":{"162":3,"166":2}}],["nodestatus",{"2":{"152":6}}],["nodes",{"2":{"76":1,"152":4}}],["node",{"2":{"76":26,"152":17}}],["north",{"2":{"70":12,"164":1}}],["nor",{"2":{"62":1,"164":1,"181":1,"184":1}}],["normalized",{"2":{"68":1}}],["normalize",{"2":{"68":1}}],["norm",{"2":{"6":1,"68":22}}],["now",{"2":{"6":1,"13":1,"30":1,"32":1,"57":1,"62":1,"67":2,"68":4,"73":1,"76":5,"81":1,"82":1,"90":1,"150":1,"152":2,"164":1,"175":1,"182":1,"183":3,"184":1,"188":1,"200":5,"201":6,"202":2,"203":1,"204":3,"207":2}}],["nonzero",{"2":{"185":2}}],["nonsensical",{"2":{"19":1}}],["none",{"2":{"6":4,"73":1,"74":1,"76":1,"78":1,"80":1,"81":1,"110":4,"112":1}}],["nondimensional",{"2":{"6":1,"184":1}}],["nonintersecting",{"2":{"6":1,"28":1,"173":1,"176":1}}],["non",{"2":{"3":2,"6":2,"27":1,"66":2,"74":2,"75":1,"76":15,"78":1,"79":4,"80":1,"81":2,"89":1,"127":2,"134":1,"156":1,"163":1}}],["note",{"2":{"4":4,"6":11,"24":1,"34":1,"58":2,"61":1,"64":2,"65":2,"68":1,"70":1,"73":2,"75":3,"76":3,"79":5,"81":3,"87":1,"90":1,"93":5,"124":1,"126":1,"127":1,"161":1,"163":1,"164":1,"180":1,"185":1,"189":1,"190":2,"191":1,"201":2,"202":1}}],["not",{"0":{"151":1},"2":{"1":2,"3":8,"4":1,"6":16,"21":1,"23":1,"24":1,"27":1,"29":1,"36":2,"58":1,"61":4,"62":1,"64":1,"68":4,"73":1,"76":18,"78":1,"79":7,"81":3,"86":1,"92":2,"93":4,"94":1,"95":2,"96":1,"98":2,"99":2,"108":1,"109":2,"113":3,"115":5,"116":3,"117":2,"118":2,"124":5,"126":1,"127":2,"130":1,"139":2,"140":2,"142":1,"150":4,"151":1,"152":2,"155":1,"156":1,"157":1,"158":7,"159":4,"161":3,"162":2,"163":1,"164":4,"165":1,"166":2,"167":1,"169":2,"172":2,"175":3,"178":1,"180":1,"181":1,"182":1,"184":2,"185":1,"195":1,"196":2,"201":1,"202":1,"206":1}}],["nothing`",{"2":{"75":2,"79":2,"81":2}}],["nothing",{"2":{"1":34,"4":1,"6":37,"15":3,"73":1,"75":2,"76":9,"78":1,"79":2,"81":2,"93":1,"124":1,"150":9,"152":3,"155":1,"158":3,"159":2,"161":3,"172":1,"181":1,"185":1,"188":2,"189":6,"190":6,"191":6,"192":1,"193":32,"197":3}}],["no",{"2":{"0":1,"6":8,"61":1,"68":2,"74":1,"75":1,"76":11,"78":1,"79":14,"80":1,"93":2,"99":3,"113":3,"124":2,"130":2,"132":1,"134":1,"135":2,"140":2,"142":1,"143":3,"144":3,"145":1,"151":1,"152":2,"153":1,"158":4,"179":1,"182":1,"184":2,"185":1,"188":1,"196":1,"204":1}}],["o",{"2":{"159":24}}],["odd",{"2":{"124":1}}],["own",{"2":{"81":1,"153":2}}],["occur",{"2":{"79":1}}],["occurs",{"2":{"79":1}}],["occupied",{"2":{"57":1}}],["old",{"2":{"76":9,"158":3}}],["ourselves",{"2":{"184":1}}],["our",{"2":{"29":1,"184":1,"200":4,"201":3,"207":1}}],["out=3",{"2":{"124":1}}],["out=4",{"2":{"78":1}}],["out`",{"2":{"78":1,"124":1}}],["out",{"2":{"6":3,"70":23,"76":12,"79":6,"81":4,"87":1,"89":5,"99":4,"110":1,"113":3,"124":102,"127":2,"130":4,"140":4,"150":1,"158":1,"185":1,"196":2,"198":3}}],["outside",{"2":{"3":2,"4":1,"6":3,"70":1,"75":2,"76":3,"79":4,"81":3,"89":2,"90":1,"98":1,"109":1,"112":1,"124":12,"127":3,"145":1}}],["outputs",{"2":{"76":1}}],["output",{"2":{"3":8,"4":1,"6":18,"23":1,"28":1,"73":2,"74":1,"78":1,"79":1,"80":1,"81":2,"93":1,"96":1,"99":1,"109":1,"113":1,"123":1,"127":1,"130":1,"140":1,"150":2,"188":1,"192":1,"197":1}}],["outerjoin",{"2":{"206":1}}],["outermost",{"2":{"158":1}}],["outer",{"2":{"1":1,"155":1,"156":1,"158":2,"207":1}}],["omit",{"2":{"6":1,"184":1}}],["obtain",{"2":{"158":1}}],["obtained",{"2":{"28":1}}],["observable",{"2":{"14":2}}],["obs",{"2":{"14":10}}],["obviously",{"2":{"4":1,"6":1,"177":1}}],["objects",{"2":{"1":4,"4":1,"6":11,"76":1,"155":4,"156":5,"158":4,"159":1,"161":6,"177":1,"182":1,"188":2,"194":1,"198":1}}],["object",{"2":{"1":4,"4":1,"5":1,"6":5,"25":1,"68":1,"89":1,"124":4,"155":1,"156":5,"158":1,"161":4,"177":1,"180":3,"184":1,"188":1,"194":1}}],["obj",{"2":{"1":4,"4":1,"6":10,"155":2,"158":1,"159":1,"161":13,"177":1,"178":2,"184":3,"188":3,"193":1,"194":1}}],["others",{"2":{"62":1,"176":1}}],["otherwise",{"2":{"4":2,"6":3,"62":1,"75":1,"76":1,"79":1,"90":2,"152":1,"164":1,"178":1,"181":1,"184":1,"197":1}}],["other",{"0":{"4":1,"6":1,"161":1},"2":{"3":4,"6":10,"61":1,"74":1,"76":5,"78":1,"79":1,"80":2,"81":3,"82":2,"90":2,"93":2,"95":1,"101":1,"122":1,"124":8,"126":1,"127":4,"129":2,"130":2,"133":1,"142":1,"152":1,"156":1,"158":1,"161":2,"167":1,"173":2,"174":1,"176":2,"188":2,"190":2,"195":1,"196":1,"201":1,"206":4,"209":1}}],["ogc",{"0":{"3":1}}],["overloads",{"2":{"166":1}}],["overlapping",{"2":{"76":14,"79":4,"81":6}}],["overlap",{"2":{"3":4,"6":4,"9":1,"76":4,"79":8,"81":2,"99":1,"108":1,"124":2,"126":5,"127":6,"140":1,"174":1}}],["overlaps",{"0":{"51":1,"125":1,"126":1},"1":{"126":1,"127":1},"2":{"0":10,"3":5,"6":13,"36":1,"51":2,"79":1,"125":1,"126":3,"127":30,"152":1,"206":1}}],["over=3",{"2":{"78":1}}],["over`",{"2":{"78":1}}],["overflow",{"2":{"73":1}}],["overhead",{"2":{"27":1,"76":1,"158":2,"159":2}}],["overrides",{"0":{"38":1},"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,"51":1,"52":1,"53":1,"54":1,"55":1},"2":{"38":1}}],["override",{"2":{"6":1,"68":1}}],["over",{"2":{"1":1,"6":2,"36":1,"57":2,"58":1,"65":3,"70":1,"76":8,"78":1,"79":11,"81":1,"86":1,"99":1,"110":1,"113":1,"124":15,"127":2,"130":1,"140":1,"155":1,"158":11,"159":13,"161":3,"200":3}}],["opposed",{"2":{"205":1}}],["opposite",{"2":{"3":5,"6":5,"75":1,"76":2,"79":2,"81":1,"96":2,"99":1,"109":2,"123":2,"140":1}}],["ops",{"2":{"159":1}}],["operable",{"2":{"164":1}}],["operates",{"2":{"158":1,"159":1,"168":1,"174":1}}],["operate",{"2":{"23":1,"34":1,"159":1}}],["operations",{"0":{"28":1,"39":1,"166":1},"1":{"40":1,"41":1,"42":1,"43":1},"2":{"20":1,"28":1,"31":1,"79":1,"81":1,"153":1,"166":4}}],["operation",{"2":{"6":3,"21":1,"76":1,"153":1,"159":1,"162":2,"164":4,"166":5,"173":2,"176":2,"196":2,"206":1}}],["open",{"2":{"76":1,"169":1,"201":1}}],["open>",{"2":{"6":2}}],["options",{"2":{"14":1,"76":1}}],["optional",{"2":{"4":5,"6":6,"58":2,"61":1,"70":1,"90":2}}],["optimisation",{"2":{"124":1}}],["optimise",{"2":{"110":1}}],["optimize",{"2":{"0":1,"6":1,"76":8}}],["optimal",{"2":{"6":1,"87":1}}],["op",{"2":{"1":3,"24":2,"65":1,"155":3,"159":38,"166":2}}],["on=2",{"2":{"124":1}}],["on`",{"2":{"124":1}}],["onto",{"2":{"90":1}}],["once",{"2":{"76":1,"110":1,"127":1,"152":1}}],["ones",{"2":{"175":1}}],["oneunit",{"2":{"68":1}}],["one",{"2":{"1":1,"3":9,"6":14,"18":2,"28":1,"58":2,"61":4,"65":1,"67":1,"68":1,"70":3,"74":1,"75":1,"76":5,"78":1,"79":32,"80":2,"81":2,"82":1,"89":2,"98":1,"105":1,"110":1,"112":1,"124":18,"126":1,"127":18,"129":2,"130":2,"133":3,"134":2,"135":2,"136":1,"137":1,"139":1,"140":1,"146":1,"150":1,"152":5,"158":1,"162":1,"164":2,"175":1,"180":1,"184":1,"192":1,"193":1,"201":1,"206":1}}],["on",{"0":{"201":1},"2":{"1":2,"4":3,"6":11,"9":1,"18":2,"19":2,"20":2,"21":2,"23":1,"25":1,"28":2,"30":3,"32":3,"34":2,"37":1,"58":3,"61":5,"65":3,"67":1,"68":2,"70":8,"73":1,"74":1,"75":5,"76":48,"78":1,"79":4,"80":1,"81":2,"87":1,"89":1,"90":3,"93":2,"98":1,"99":7,"101":2,"102":3,"103":3,"104":1,"110":4,"113":6,"115":4,"116":1,"117":1,"124":125,"127":9,"130":7,"132":2,"140":7,"142":2,"143":1,"144":1,"152":3,"153":1,"155":2,"158":13,"159":4,"161":2,"162":2,"163":2,"164":7,"166":3,"168":1,"170":1,"173":1,"174":1,"179":3,"182":1,"184":1,"185":1,"190":1,"198":1,"199":1,"201":3,"202":1,"204":1,"205":1,"206":4,"207":1,"208":2,"209":2}}],["only",{"2":{"0":1,"5":1,"6":11,"28":1,"38":2,"58":2,"62":1,"65":2,"67":2,"68":1,"70":3,"73":1,"74":1,"76":7,"78":1,"79":1,"80":1,"87":3,"90":2,"93":3,"126":3,"127":1,"129":1,"152":2,"158":1,"159":2,"162":2,"164":3,"165":1,"166":1,"175":1,"182":1,"183":1,"185":1,"195":1,"196":2,"198":2,"202":1,"208":1,"209":1}}],["often",{"2":{"19":1,"201":1}}],["offers",{"2":{"200":1}}],["offer",{"2":{"184":1}}],["offset",{"2":{"61":8,"93":1}}],["off",{"2":{"4":1,"6":1,"76":4,"93":1,"124":6,"159":1}}],["of",{"0":{"85":1},"2":{"1":7,"3":29,"4":66,"5":5,"6":196,"7":2,"9":4,"17":3,"18":6,"19":2,"20":4,"21":2,"22":3,"23":5,"24":1,"25":2,"27":1,"28":2,"29":2,"30":1,"31":1,"32":1,"34":3,"37":2,"57":5,"58":28,"60":1,"61":38,"62":1,"64":3,"65":12,"66":9,"67":1,"68":13,"69":5,"70":31,"73":5,"74":12,"75":13,"76":95,"78":10,"79":48,"80":9,"81":20,"82":5,"86":3,"87":3,"89":6,"90":18,"92":2,"93":19,"95":4,"96":5,"98":6,"99":18,"101":1,"102":5,"103":5,"104":1,"105":2,"106":1,"109":5,"110":1,"112":3,"113":14,"115":1,"116":1,"117":1,"119":2,"120":1,"122":1,"123":3,"124":85,"126":1,"127":13,"129":2,"130":15,"132":3,"133":7,"134":5,"135":1,"136":2,"137":1,"139":4,"140":18,"142":3,"143":6,"144":6,"145":4,"146":1,"147":1,"149":2,"150":3,"151":2,"152":19,"153":3,"155":6,"156":5,"157":2,"158":21,"159":7,"161":3,"162":1,"164":6,"165":1,"167":2,"168":1,"169":1,"173":2,"174":4,"176":4,"178":3,"179":3,"180":1,"182":2,"183":2,"184":5,"185":6,"188":8,"190":4,"191":2,"192":1,"194":1,"196":4,"197":2,"198":4,"200":6,"201":4,"202":2,"203":1,"204":4,"206":4,"207":4,"208":2}}],["org",{"2":{"74":1,"78":1,"80":1,"124":2,"190":1}}],["organise",{"2":{"10":1}}],["orange",{"2":{"72":1,"89":1,"92":2,"95":2,"112":2,"126":2,"139":2}}],["oro",{"2":{"11":2}}],["originate",{"2":{"81":1}}],["originals",{"2":{"27":1}}],["original",{"2":{"6":4,"23":1,"27":1,"73":5,"74":1,"76":10,"78":1,"81":4,"156":1,"158":7,"172":1,"178":2,"185":1,"187":4,"188":1}}],["orig",{"2":{"76":15}}],["orient",{"0":{"13":1},"1":{"14":1,"15":1},"2":{"13":7,"14":12,"76":15,"79":53}}],["orientation",{"0":{"148":1},"1":{"149":1,"150":1},"2":{"6":2,"10":1,"36":1,"58":1,"70":2,"74":1,"76":10,"78":2,"79":2,"80":1,"124":16,"149":1,"188":1}}],["ordered",{"2":{"57":1}}],["order",{"0":{"86":1},"2":{"1":4,"3":1,"4":2,"6":5,"20":1,"57":1,"58":2,"61":1,"68":1,"76":8,"79":1,"81":1,"86":4,"87":1,"90":2,"93":3,"96":1,"99":1,"109":1,"123":1,"155":2,"158":1,"159":1,"180":2,"188":1,"206":1}}],["or",{"0":{"29":1},"2":{"1":11,"3":3,"4":10,"6":48,"20":3,"21":1,"23":1,"25":1,"27":1,"28":1,"30":1,"32":1,"34":2,"36":2,"37":1,"58":1,"61":4,"62":1,"64":2,"65":4,"68":1,"69":1,"73":1,"74":1,"75":3,"76":26,"78":2,"79":9,"80":1,"81":2,"82":1,"87":1,"89":2,"90":4,"93":3,"95":1,"99":1,"101":2,"102":1,"103":1,"104":1,"105":1,"106":1,"112":2,"115":2,"116":3,"117":2,"118":1,"119":1,"120":1,"122":2,"123":1,"124":26,"126":1,"127":2,"129":1,"130":1,"136":1,"137":1,"140":1,"142":2,"146":1,"147":1,"149":2,"150":3,"152":7,"153":4,"155":7,"157":1,"158":8,"159":3,"160":2,"161":2,"162":5,"163":1,"164":5,"166":4,"167":3,"168":1,"170":1,"172":5,"173":2,"179":4,"180":2,"181":1,"182":2,"184":2,"185":4,"186":1,"188":3,"190":2,"192":2,"194":1,"197":2,"206":1,"208":2}}],["sd1xa",{"2":{"201":1}}],["snapped",{"2":{"152":1}}],["s3",{"2":{"76":3}}],["scratch",{"2":{"204":1}}],["sciences",{"2":{"201":1}}],["scalefactor",{"2":{"184":3}}],["scattered",{"2":{"207":1}}],["scatter",{"2":{"64":1,"89":2,"92":2,"95":2,"98":1,"108":1,"112":2,"126":2,"139":2,"207":1}}],["schema",{"2":{"158":5,"159":1}}],["scheme",{"2":{"65":1}}],["scenario",{"2":{"124":2}}],["scene",{"2":{"14":1}}],["square",{"2":{"90":1,"189":1,"190":1}}],["squared",{"2":{"6":2,"70":2,"90":12,"189":2,"190":7}}],["sqrt",{"2":{"61":2,"65":1,"90":3}}],["sgn",{"2":{"61":5}}],["smallest",{"2":{"61":2,"79":1,"82":1}}],["skipmissing",{"2":{"152":1}}],["skipped",{"2":{"76":1,"152":1}}],["skip",{"2":{"58":1,"76":1,"124":14,"152":1,"158":1,"162":1,"192":4}}],["skygering",{"2":{"7":1}}],["sᵢ₋₁",{"2":{"68":25}}],["sᵢ₊₁",{"2":{"6":2,"68":41}}],["sᵢ",{"2":{"6":4,"68":46}}],["src",{"2":{"6":2}}],["syntax",{"2":{"203":1}}],["sym10100477",{"2":{"124":1}}],["symdifference",{"2":{"43":1,"151":1}}],["symmetric",{"0":{"43":1},"2":{"43":1}}],["symbol=",{"2":{"110":1}}],["symbol",{"2":{"6":1,"196":2}}],["systems",{"2":{"20":2}}],["system",{"0":{"201":1,"202":1},"2":{"1":2,"20":4,"180":2,"199":2,"201":1}}],["switches",{"2":{"79":1,"81":1}}],["switch",{"2":{"76":1,"81":1,"163":1}}],["switching",{"2":{"6":1,"70":1}}],["swap",{"2":{"6":1,"81":1,"90":2,"178":1}}],["swapped",{"2":{"3":1,"6":1,"96":1,"99":1,"109":1,"110":1,"123":1,"127":1}}],["swapping",{"2":{"1":1,"155":1,"158":1}}],["s2",{"2":{"6":4,"68":6,"76":4}}],["s1",{"2":{"6":3,"68":6,"76":3}}],["saving",{"0":{"204":1}}],["saved",{"2":{"93":1}}],["save",{"2":{"61":1,"199":1,"204":3}}],["samples",{"2":{"13":1}}],["sample",{"2":{"13":1}}],["same",{"2":{"3":2,"4":12,"6":22,"23":1,"58":1,"61":3,"70":1,"73":1,"74":3,"76":16,"78":1,"79":1,"80":1,"81":1,"86":1,"89":1,"92":2,"93":30,"124":2,"126":1,"127":8,"156":1,"158":5,"161":2,"168":1,"173":2,"175":1,"176":2,"183":1,"200":1,"201":1,"204":1}}],["says",{"2":{"86":1,"164":1}}],["say",{"2":{"6":1,"68":1,"184":1}}],["spec",{"2":{"164":1}}],["special",{"2":{"164":2}}],["specialized",{"2":{"30":1,"32":1,"87":1,"158":1}}],["specify",{"2":{"161":2,"165":1,"201":1,"202":1,"206":1}}],["specific",{"2":{"76":1,"99":1,"113":1,"130":1,"140":1,"158":1,"159":1,"161":3,"164":2,"165":1}}],["specification",{"2":{"18":1,"166":1,"169":1,"172":1,"174":1,"175":1}}],["specifically",{"2":{"6":2,"68":3,"163":1,"164":1,"186":1,"206":1}}],["specified",{"2":{"3":1,"6":2,"75":2,"76":1,"79":2,"81":2,"127":1,"156":1,"162":1,"164":1,"188":1}}],["spliced",{"2":{"160":1}}],["split",{"2":{"73":1}}],["sp",{"2":{"124":2}}],["sphere",{"2":{"6":1,"17":1,"18":4,"19":1,"21":1,"164":3,"185":1}}],["sphericalgeodesics",{"2":{"18":1,"164":1}}],["spherical",{"2":{"6":1,"18":2,"36":2,"76":3,"162":1,"164":8,"185":1}}],["spatial",{"0":{"206":1},"1":{"207":1,"208":1,"209":1},"2":{"206":6,"207":3,"209":1}}],["spawn",{"2":{"158":5,"159":5}}],["sparse",{"2":{"76":1}}],["span>",{"2":{"6":2}}],["span",{"2":{"6":2,"207":1}}],["spaces",{"2":{"17":1}}],["space",{"2":{"6":1,"17":2,"18":1,"30":1,"32":1,"57":1,"61":1,"124":1,"164":7,"184":1}}],["slow",{"2":{"208":1}}],["slower",{"2":{"6":1,"196":2}}],["slope2",{"2":{"150":2}}],["slope1",{"2":{"150":2}}],["slidergrid",{"2":{"14":1}}],["sliders",{"2":{"14":3}}],["slightly",{"2":{"4":2,"6":2,"58":2}}],["suite",{"2":{"184":5,"188":13}}],["suitable",{"2":{"76":1}}],["suggestion",{"2":{"181":1}}],["suggests",{"2":{"18":1}}],["success",{"2":{"164":1}}],["successful",{"2":{"162":1}}],["such",{"2":{"4":1,"6":1,"19":1,"57":1,"72":1,"82":1,"156":1,"177":1}}],["sun",{"2":{"124":1}}],["suppose",{"2":{"208":1,"209":1}}],["supports",{"2":{"67":1,"68":1,"82":1,"158":3,"204":1,"209":2}}],["support",{"2":{"37":1,"62":1,"76":1,"182":1,"209":1}}],["supported",{"2":{"28":1,"204":1}}],["supertype",{"2":{"6":1,"68":1}}],["surrounds",{"2":{"124":1}}],["surface",{"2":{"17":1,"18":2,"20":1}}],["sure",{"2":{"9":1,"61":1,"76":2,"90":1,"127":1,"192":1}}],["sukumar",{"2":{"6":1,"68":1}}],["sum=1",{"2":{"68":1}}],["summary>",{"2":{"6":4}}],["sum",{"2":{"4":2,"6":3,"11":6,"57":1,"58":2,"66":2,"68":8,"70":1,"90":2,"150":5,"192":1,"197":4}}],["sublevel",{"2":{"208":1}}],["subsequent",{"2":{"200":1}}],["substantially",{"2":{"165":1}}],["substituted",{"2":{"1":1,"155":1,"158":1}}],["subgeom1",{"2":{"161":2}}],["subgeom",{"2":{"161":3}}],["subject",{"2":{"76":1}}],["subtype",{"2":{"158":1}}],["subtypes",{"2":{"6":2,"68":2}}],["subtracted",{"2":{"150":1}}],["subtitle",{"2":{"13":1,"67":2,"184":1,"188":2}}],["sub",{"2":{"4":6,"6":7,"58":3,"61":1,"70":1,"75":6,"79":3,"81":4,"90":2,"105":2,"106":2,"119":2,"120":2,"136":2,"137":2,"146":2,"147":2,"158":3,"174":4,"175":2,"176":4}}],["series",{"2":{"200":1}}],["serve",{"2":{"6":1,"68":1}}],["searchsortedfirst",{"2":{"190":1}}],["semiminor",{"2":{"164":1}}],["semimajoraxisinvflattening",{"2":{"164":1}}],["semimajor",{"2":{"18":1,"164":5}}],["seg2",{"2":{"150":2}}],["seg1",{"2":{"150":3}}],["seg",{"2":{"124":23,"127":9}}],["segmentation",{"2":{"183":1}}],["segments",{"2":{"28":1,"36":1,"60":2,"61":1,"64":1,"65":2,"70":1,"76":3,"79":6,"124":18,"184":1,"185":3}}],["segmentization",{"2":{"37":1,"164":1,"182":1}}],["segmentizing",{"2":{"6":3,"183":1,"184":2,"185":1}}],["segmentizemethod",{"2":{"184":3,"185":1}}],["segmentized",{"2":{"183":1}}],["segmentizes",{"2":{"182":1}}],["segmentize",{"0":{"37":1,"182":1},"1":{"183":1,"184":1,"185":1},"2":{"0":1,"6":4,"36":1,"37":9,"62":1,"153":1,"164":1,"182":1,"183":5,"184":11,"185":18,"205":1}}],["segment",{"2":{"4":4,"6":7,"61":1,"65":5,"70":3,"72":1,"76":6,"79":17,"90":2,"110":3,"124":43,"127":3,"150":2,"182":1,"184":2,"185":1}}],["seperate",{"2":{"79":1}}],["separates",{"2":{"124":1}}],["separate",{"2":{"76":1,"152":1,"158":1,"163":1,"204":1,"207":1}}],["separately",{"2":{"68":1,"152":1}}],["sense",{"2":{"58":1,"90":1}}],["several",{"2":{"25":2,"58":1,"168":1,"176":1}}],["select",{"2":{"167":1}}],["selects",{"2":{"164":2}}],["selected",{"2":{"152":1}}],["selectednode",{"2":{"152":3}}],["selection",{"2":{"14":1}}],["self",{"2":{"9":2}}],["section",{"2":{"31":1,"124":3,"126":1}}],["sections",{"2":{"10":1,"31":1}}],["seconds=1",{"2":{"184":3,"188":8}}],["secondisleft",{"2":{"152":4}}],["secondisstraight",{"2":{"152":7}}],["secondary",{"2":{"3":3,"6":3,"96":1,"99":1,"140":1}}],["second",{"2":{"3":8,"6":9,"76":1,"79":4,"93":1,"95":2,"96":1,"98":1,"99":1,"102":1,"103":1,"104":1,"109":2,"113":2,"124":2,"130":1,"139":1,"140":1,"143":1,"144":1,"145":2,"190":1,"202":1,"206":1}}],["seem",{"2":{"30":1,"32":1}}],["sees",{"2":{"20":1}}],["see",{"2":{"6":4,"7":1,"20":1,"34":1,"64":1,"87":1,"90":1,"92":1,"95":1,"98":1,"112":1,"122":1,"124":5,"126":1,"129":1,"139":1,"152":2,"166":1,"169":1,"170":1,"172":1,"173":3,"175":1,"176":2,"183":2,"190":1,"207":2}}],["setup=",{"2":{"99":1,"113":1,"130":1,"140":1}}],["sets",{"2":{"76":1,"86":1}}],["setting",{"2":{"28":1}}],["set",{"0":{"28":1,"39":1},"1":{"40":1,"41":1,"42":1,"43":1},"2":{"3":2,"4":7,"6":20,"28":1,"61":1,"66":2,"68":8,"74":2,"76":3,"78":2,"79":7,"80":2,"82":2,"92":2,"93":10,"99":1,"110":1,"113":1,"124":2,"127":1,"130":1,"140":1,"150":1,"152":1,"158":5,"166":1,"173":2,"176":2,"179":1,"190":2,"200":1,"204":1,"207":3}}],["sve",{"2":{"1":1,"6":1,"193":1}}],["svector",{"2":{"1":14,"6":14,"74":1,"76":7,"79":2,"81":6,"124":1,"152":1,"193":13,"198":1}}],["solution",{"2":{"124":1}}],["solve",{"2":{"19":1}}],["south",{"2":{"70":7,"164":1}}],["source",{"2":{"1":10,"3":19,"4":22,"5":3,"6":89,"31":4,"110":2,"155":2,"161":4,"172":1,"173":4,"180":3,"201":13,"202":1}}],["sort",{"2":{"73":2,"76":5,"79":2,"80":2,"124":1,"127":2,"152":1,"190":1}}],["sorttilerecursivetree",{"2":{"36":3,"76":2}}],["sorted",{"2":{"25":1,"76":2,"190":7,"206":1}}],["sometimes",{"2":{"166":1}}],["something",{"0":{"77":1},"2":{"10":1,"36":1}}],["someone",{"2":{"87":1,"196":1}}],["some",{"2":{"3":1,"6":5,"9":1,"17":1,"22":1,"68":4,"76":1,"93":1,"124":3,"127":1,"151":1,"152":1,"153":1,"156":2,"158":2,"159":1,"162":1,"166":2,"171":1,"172":2,"173":1,"185":1,"192":1,"195":2,"198":1,"199":2,"206":1,"209":1}}],["so",{"2":{"1":1,"4":4,"6":9,"9":1,"22":1,"24":1,"30":1,"32":1,"36":1,"67":1,"68":1,"69":1,"76":3,"79":1,"80":2,"81":2,"89":1,"90":1,"92":1,"93":4,"95":1,"112":1,"122":1,"124":2,"139":1,"152":3,"158":10,"161":2,"166":1,"182":1,"183":1,"184":3,"185":1,"192":1,"193":1,"196":2,"201":1,"202":1}}],["styles",{"2":{"158":1}}],["style",{"2":{"158":7}}],["step",{"2":{"74":1,"75":3,"76":7,"78":1,"79":3,"80":1,"81":3,"152":6,"197":1}}],["storing",{"2":{"204":1}}],["stored",{"2":{"76":2,"166":1,"207":1}}],["stores",{"2":{"76":1}}],["store",{"2":{"68":1,"204":1}}],["stopping",{"2":{"190":2}}],["stops",{"2":{"156":1}}],["stop",{"2":{"23":2,"110":3,"124":4,"127":3}}],["stubs",{"2":{"36":1}}],["stay",{"2":{"81":1}}],["states",{"2":{"188":1}}],["state",{"2":{"80":1,"208":9}}],["status",{"2":{"75":4,"76":31,"79":5,"81":4,"152":1}}],["static",{"2":{"162":1,"163":1}}],["staticarray",{"2":{"68":1}}],["staticarrays",{"2":{"36":1,"74":1,"76":5,"79":2,"81":6,"124":1,"152":1,"193":2}}],["staticarraysco",{"2":{"1":1,"6":1,"193":1}}],["staticarrayscore",{"2":{"1":10,"6":10,"68":1,"193":10}}],["statica",{"2":{"1":1,"6":1,"193":1}}],["statistics",{"2":{"13":2,"36":1}}],["stackoverflow",{"2":{"79":1}}],["stack",{"2":{"73":1}}],["stability",{"2":{"28":1,"35":1}}],["stabletasks",{"2":{"158":1,"159":1,"163":1}}],["stable",{"2":{"13":1,"29":1,"185":1}}],["stage",{"2":{"7":1}}],["standardized",{"2":{"124":1}}],["standards",{"2":{"124":1}}],["standard",{"2":{"6":1,"87":1,"164":1}}],["started",{"2":{"76":1}}],["starting",{"2":{"65":2,"70":1,"76":1,"79":1,"176":4}}],["startvalue",{"2":{"14":4}}],["start",{"2":{"6":1,"23":1,"61":7,"68":1,"70":17,"75":4,"76":78,"79":4,"81":5,"93":1,"110":4,"124":44,"127":3,"142":1,"152":2,"168":1,"190":16,"200":1}}],["strait",{"2":{"152":1}}],["straightline",{"2":{"152":3}}],["straight",{"2":{"18":1,"152":6,"159":1}}],["strdualquery",{"2":{"36":1,"76":2}}],["structs",{"2":{"25":1,"166":1,"172":1}}],["structures",{"2":{"153":1}}],["structure",{"2":{"6":1,"153":1,"161":2,"178":1}}],["struct",{"2":{"6":2,"20":1,"68":2,"76":2,"87":1,"162":4,"163":6,"164":5,"165":1,"166":1,"167":3,"170":1,"176":2,"184":2,"189":1,"190":1,"191":1,"196":4}}],["strtrees",{"2":{"36":1,"76":3}}],["strtree",{"2":{"6":1,"36":1,"76":8}}],["strings",{"2":{"6":1,"65":1,"79":1}}],["string",{"2":{"1":2,"14":1,"64":1,"65":1,"162":2,"165":1,"180":2}}],["still",{"2":{"0":1,"58":1,"65":1,"76":3,"98":1,"190":1}}],["shp",{"2":{"204":1}}],["ships",{"2":{"201":1}}],["shifting",{"2":{"202":1}}],["shift",{"2":{"200":3}}],["shewchuck",{"2":{"7":1}}],["short",{"2":{"158":1}}],["shorthand",{"2":{"87":1}}],["shortest",{"2":{"18":1}}],["showerror",{"2":{"165":1}}],["show",{"2":{"9":1,"11":1,"13":1,"14":1,"67":1,"165":2,"201":1,"204":1,"206":2}}],["shoelace",{"2":{"4":1,"6":1,"58":2,"70":1}}],["shouldn",{"2":{"79":1}}],["should",{"2":{"1":1,"4":1,"6":13,"22":1,"23":1,"25":2,"30":1,"32":1,"37":1,"58":1,"61":3,"65":1,"69":1,"76":4,"93":1,"124":4,"152":2,"155":1,"158":2,"161":2,"162":1,"163":1,"164":3,"169":1,"172":4,"173":2,"185":2,"188":2}}],["sharing",{"2":{"112":1}}],["shares",{"2":{"79":1}}],["share",{"2":{"4":7,"6":8,"92":2,"93":8,"116":2,"117":1,"118":1,"127":1,"135":1}}],["shared",{"0":{"192":1},"2":{"3":1,"6":1,"76":2,"79":2,"127":3}}],["shapes",{"2":{"90":1,"204":7}}],["shaped",{"2":{"67":1}}],["shapefiles",{"2":{"204":1}}],["shapefile",{"2":{"34":1,"204":4}}],["shape",{"2":{"18":1,"64":1,"75":1,"79":1,"92":1,"164":1,"175":1,"200":1}}],["shallower",{"2":{"1":1,"155":1,"158":1}}],["sites",{"2":{"208":1}}],["sides",{"2":{"76":3,"169":1}}],["side",{"2":{"61":4,"76":26}}],["signals",{"2":{"157":1}}],["sign",{"2":{"13":2,"14":2,"58":2,"61":7,"150":3}}],["signed",{"0":{"56":1,"57":1,"88":1,"89":1},"1":{"57":1,"58":1,"89":1,"90":1},"2":{"0":4,"4":15,"6":18,"11":3,"56":1,"57":5,"58":23,"70":3,"88":1,"89":7,"90":19}}],["six",{"2":{"6":1,"188":1}}],["size=",{"2":{"201":1}}],["sizehint",{"2":{"75":1,"76":2,"185":1}}],["size",{"2":{"6":4,"13":2,"14":5,"67":1,"81":1,"152":2,"158":4,"159":4,"188":1}}],["sin",{"2":{"200":3,"201":1,"202":2}}],["singed",{"2":{"90":1}}],["singular",{"2":{"79":1}}],["singlepoly",{"2":{"188":6}}],["singleton",{"2":{"166":1}}],["singlemanifoldalgorithm",{"2":{"162":3}}],["single",{"2":{"4":6,"6":10,"28":1,"58":1,"61":2,"70":1,"93":5,"126":2,"152":2,"159":1,"173":2,"174":1,"176":2,"200":3,"204":1}}],["since",{"2":{"1":1,"6":2,"31":1,"58":1,"61":1,"65":1,"70":2,"76":1,"80":1,"90":1,"93":1,"124":1,"127":2,"134":1,"158":1,"161":1,"163":1,"166":1,"180":1,"196":2,"208":1}}],["simulation",{"2":{"28":1}}],["simultaneously",{"2":{"25":1}}],["simply",{"2":{"7":1,"57":1,"62":1,"76":1,"79":1,"81":1,"96":1,"109":1,"123":1,"152":1,"171":1,"179":1,"180":1,"181":1,"184":1,"200":1,"203":1}}],["simpler",{"2":{"6":1,"152":1}}],["simple",{"0":{"38":1,"84":1,"207":1},"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,"51":1,"52":1,"53":1,"54":1,"55":1},"2":{"6":3,"38":1,"68":1,"76":1,"87":1,"153":3,"163":1,"164":1,"178":1,"180":1,"187":2,"188":2}}],["simplifier",{"2":{"188":4}}],["simplified",{"2":{"28":1,"187":1}}],["simplifies",{"2":{"6":3,"189":1,"190":1,"191":1}}],["simplification",{"0":{"186":1},"1":{"187":1,"188":1},"2":{"6":2,"162":1,"186":2,"188":3}}],["simplifying",{"2":{"186":1}}],["simplify",{"0":{"189":1,"190":1,"191":1},"2":{"0":1,"6":15,"9":1,"36":1,"76":1,"153":1,"187":1,"188":41,"189":1,"190":2,"191":1}}],["simplifyalgs",{"2":{"192":1}}],["simplifyalg",{"2":{"0":1,"6":8,"188":5,"189":2,"190":2,"191":2}}],["similarly",{"2":{"153":1}}],["similar",{"2":{"1":1,"6":3,"18":1,"23":1,"30":1,"32":1,"34":1,"62":1,"82":1,"87":1,"152":2,"155":1,"158":1,"184":2,"185":1,"194":1}}],["s",{"0":{"35":1},"2":{"0":1,"3":1,"6":11,"7":1,"9":1,"18":1,"20":4,"21":1,"23":1,"24":1,"34":1,"57":1,"58":4,"61":1,"64":3,"65":3,"66":1,"67":2,"68":5,"70":1,"72":1,"75":1,"76":4,"79":2,"81":3,"86":1,"90":1,"93":1,"108":2,"115":3,"116":4,"117":2,"124":9,"127":1,"129":1,"130":1,"135":1,"152":5,"153":2,"158":2,"159":1,"162":1,"163":2,"164":1,"165":1,"166":1,"167":2,"170":1,"173":4,"174":1,"176":3,"183":4,"184":1,"185":2,"186":1,"188":2,"192":4,"196":6,"200":6,"201":4,"202":4,"203":2,"204":5,"209":2}}],["fn",{"2":{"204":8}}],["f``",{"2":{"164":1}}],["fc",{"2":{"158":4,"159":5,"161":13,"188":3,"197":14}}],["fj",{"2":{"152":2}}],["f2",{"2":{"76":2}}],["f1",{"2":{"76":2}}],["f64",{"2":{"13":2,"14":2}}],["few",{"2":{"76":1,"165":1,"169":1}}],["fetched",{"2":{"152":1}}],["fetch",{"2":{"37":2,"158":2,"159":2}}],["feb",{"0":{"8":1},"1":{"9":1,"10":1}}],["featurecollection",{"2":{"6":2,"11":1,"23":1,"152":4,"158":6,"161":1,"201":2}}],["featurecollectiontrait",{"2":{"1":1,"155":1,"156":1,"158":3,"159":2,"161":10,"197":5}}],["features",{"0":{"100":1,"114":1,"131":1,"141":1},"2":{"1":1,"6":2,"11":1,"27":1,"87":1,"152":3,"155":1,"157":1,"158":11,"159":6,"161":2,"201":1}}],["featuretrait",{"2":{"1":2,"100":4,"110":2,"114":4,"131":4,"141":4,"155":2,"156":3,"158":3,"159":3,"161":10,"197":5}}],["feature",{"2":{"1":6,"4":1,"6":6,"23":2,"27":1,"58":1,"70":1,"152":2,"153":1,"155":6,"157":1,"158":22,"159":6,"161":22,"179":3,"188":2,"197":2,"204":1}}],["fra",{"2":{"208":2}}],["frame",{"2":{"203":1}}],["framework",{"2":{"153":4,"159":2}}],["fracs",{"2":{"73":1,"76":20}}],["frac",{"2":{"68":1,"76":2,"79":17,"188":2}}],["fractional",{"2":{"76":1,"79":3}}],["fractions",{"2":{"76":1,"79":4}}],["fraction",{"2":{"6":4,"79":2,"90":1,"188":1}}],["front",{"2":{"61":1}}],["from",{"2":{"1":3,"3":4,"4":16,"6":26,"7":1,"11":1,"18":2,"20":1,"25":1,"27":1,"31":1,"36":2,"58":2,"62":1,"65":1,"67":1,"68":4,"70":11,"73":1,"74":1,"75":3,"76":7,"78":1,"79":11,"80":1,"81":6,"87":1,"90":25,"113":2,"115":5,"116":4,"117":2,"118":1,"119":2,"124":6,"127":2,"150":2,"152":7,"158":1,"161":6,"162":1,"163":1,"164":2,"176":1,"180":4,"182":1,"188":1,"189":1,"190":3,"191":1,"197":1,"199":1,"201":5,"204":1,"206":1,"207":1,"209":1}}],["footprint",{"2":{"202":1}}],["foster",{"2":{"166":1}}],["foldable",{"2":{"158":1}}],["folder",{"2":{"76":1}}],["follows",{"2":{"76":2,"99":1,"113":1,"130":1,"140":1,"152":1}}],["followed",{"2":{"31":1}}],["following",{"2":{"6":1,"68":1,"72":1,"161":1,"169":1,"175":1,"188":1,"206":1}}],["focusing",{"2":{"30":1,"32":1}}],["foundational",{"2":{"22":1}}],["found",{"2":{"6":7,"31":1,"70":1,"73":1,"74":2,"78":2,"79":1,"80":2,"93":1,"152":5,"156":3,"158":2,"159":1,"161":5,"185":2}}],["forward",{"2":{"79":1}}],["forwards",{"2":{"75":1,"76":1,"81":1}}],["foreach",{"2":{"76":2}}],["formats",{"2":{"199":1,"202":1,"204":3}}],["format",{"2":{"73":1,"162":1,"204":3}}],["form",{"2":{"23":1,"76":3,"79":8,"81":3,"158":1}}],["formed",{"2":{"4":2,"6":3,"60":1,"61":4,"68":1,"76":8,"80":1,"81":1,"190":1}}],["formulae",{"2":{"6":1,"185":1}}],["formula",{"2":{"4":1,"6":1,"58":2,"70":1}}],["forcedims",{"2":{"36":1}}],["force",{"0":{"179":1},"2":{"1":1,"6":2,"158":3,"179":3,"180":1,"188":1}}],["forcexyz",{"2":{"0":1,"6":1,"179":3}}],["forcexy",{"2":{"0":1,"6":1,"179":3}}],["for",{"0":{"75":1,"79":1,"81":1},"2":{"0":2,"1":3,"3":1,"4":4,"5":3,"6":48,"7":4,"9":2,"13":5,"14":1,"18":3,"19":1,"20":2,"21":2,"23":1,"25":1,"27":1,"28":5,"30":3,"31":1,"32":3,"34":1,"36":5,"37":1,"38":1,"58":8,"61":5,"62":3,"65":7,"66":1,"67":1,"68":19,"70":11,"73":5,"74":2,"75":3,"76":49,"78":1,"79":7,"80":1,"81":9,"82":2,"85":1,"87":3,"89":2,"90":7,"93":13,"99":3,"105":1,"106":1,"108":1,"110":6,"113":2,"119":1,"120":1,"124":22,"126":1,"127":11,"130":2,"136":1,"137":1,"140":3,"146":1,"147":1,"149":1,"150":5,"151":1,"152":13,"153":3,"155":1,"158":7,"159":1,"161":1,"162":5,"163":3,"164":5,"165":4,"166":2,"167":1,"168":3,"169":2,"171":1,"172":5,"174":3,"175":1,"176":5,"177":1,"180":3,"182":4,"183":7,"184":6,"185":10,"186":4,"188":12,"189":2,"190":2,"191":1,"192":6,"196":5,"197":7,"198":5,"199":1,"201":4,"202":1,"204":3,"206":2,"208":2,"209":1}}],["fi",{"2":{"76":2,"152":2}}],["fine",{"2":{"183":1}}],["final",{"2":{"81":1,"172":4,"184":1}}],["finally",{"2":{"67":2,"79":1,"152":1,"158":4,"159":2,"204":1}}],["findmin",{"2":{"192":1}}],["findmax",{"2":{"188":1,"190":1}}],["findall",{"2":{"172":1}}],["finding",{"2":{"79":1}}],["findnext",{"2":{"76":3}}],["findlast",{"2":{"76":2}}],["findprev",{"2":{"76":2}}],["findfirst",{"2":{"73":2,"76":6,"85":1,"188":1}}],["finds",{"2":{"70":1,"76":1}}],["find",{"2":{"58":1,"61":6,"70":3,"73":2,"74":4,"76":13,"78":2,"79":8,"80":1,"90":3,"93":1,"124":7,"152":2,"190":5,"208":1}}],["finish",{"2":{"9":1}}],["fill",{"2":{"76":1,"152":1,"185":3}}],["filled",{"2":{"70":3,"76":5,"89":1,"90":2,"124":16}}],["files",{"2":{"195":1,"204":2}}],["file",{"2":{"31":1,"37":1,"38":1,"76":1,"99":3,"113":3,"130":3,"140":3,"151":1,"152":1,"153":1,"159":1,"160":1,"161":1,"165":1,"171":1,"180":1,"185":1,"186":1,"195":2,"199":1,"204":2}}],["filters",{"2":{"76":1}}],["filtering",{"2":{"6":1,"188":1}}],["filter",{"2":{"4":1,"6":2,"76":2,"158":2,"159":1,"176":2,"177":1,"188":1}}],["fit",{"2":{"22":1}}],["field",{"2":{"13":2,"76":2,"162":1}}],["figure",{"2":{"13":1,"14":1,"57":1,"67":2,"86":1,"201":3}}],["fig",{"2":{"13":6,"14":6,"86":5,"200":7,"201":4,"205":2}}],["fix1",{"2":{"158":1,"159":1}}],["fixme",{"2":{"150":1}}],["fixes",{"2":{"76":1}}],["fixed",{"2":{"6":3,"74":1,"78":1,"80":1,"162":1}}],["fix2",{"2":{"37":1,"76":2}}],["fix",{"0":{"25":1},"2":{"6":9,"9":3,"15":3,"22":1,"25":1,"74":1,"75":11,"78":1,"79":11,"80":1,"81":10,"86":2,"165":1,"169":1,"171":1,"172":1,"175":1}}],["firstisright",{"2":{"152":2}}],["firstisleft",{"2":{"152":4}}],["firstisstraight",{"2":{"152":4}}],["firstnode",{"2":{"152":9}}],["first",{"2":{"3":9,"6":10,"20":1,"58":7,"61":14,"62":1,"65":1,"67":1,"68":9,"70":2,"73":1,"74":2,"76":18,"78":1,"79":5,"80":3,"90":8,"93":4,"95":2,"96":2,"98":1,"99":2,"102":1,"103":1,"104":1,"109":2,"113":3,"124":22,"127":1,"130":2,"132":1,"139":1,"140":2,"143":1,"144":1,"145":2,"150":1,"152":16,"158":3,"159":2,"161":5,"169":1,"185":3,"189":1,"190":2,"197":2,"198":1,"199":1,"200":1,"201":1,"202":1,"206":1,"207":1}}],["flexijoins",{"2":{"206":2,"207":3,"208":1,"209":5}}],["flexible",{"2":{"158":1,"159":1,"198":1}}],["flow",{"2":{"20":1}}],["floating",{"2":{"6":1,"76":1,"79":5,"152":2}}],["float",{"2":{"6":3,"74":1,"78":1,"80":1}}],["float64x2",{"2":{"13":6,"14":6,"15":2}}],["float64",{"2":{"1":6,"4":10,"6":28,"13":1,"58":6,"60":1,"61":3,"65":1,"70":4,"73":2,"74":2,"76":1,"78":1,"79":3,"80":1,"86":1,"90":12,"124":4,"127":2,"150":4,"183":2,"184":2,"185":1,"189":4,"190":9,"191":2,"192":6,"193":6,"194":1,"197":6,"198":1,"201":1}}],["flag",{"2":{"73":1,"76":12}}],["flags",{"2":{"18":1,"76":5}}],["flattened",{"2":{"18":1,"23":1}}],["flatten",{"0":{"161":1},"2":{"11":3,"13":1,"23":1,"36":2,"55":1,"68":1,"70":3,"76":2,"78":1,"81":1,"87":2,"110":1,"161":33,"176":1}}],["flattening`",{"2":{"164":1}}],["flattening",{"2":{"6":4,"18":1,"159":1,"164":5,"184":2}}],["flat",{"2":{"6":2,"17":1,"185":1,"192":2,"197":1}}],["flipping",{"0":{"178":1},"2":{"178":1}}],["flipped",{"2":{"1":2,"155":2,"158":2}}],["flipaxis",{"2":{"67":1}}],["flip",{"2":{"0":1,"6":1,"36":1,"153":2,"158":1,"178":2}}],["fancy",{"2":{"200":1}}],["fancis",{"2":{"6":1,"68":1}}],["fair",{"2":{"183":1}}],["fail",{"2":{"1":1,"6":1,"155":1,"158":3,"159":1,"161":4,"184":1}}],["far",{"2":{"158":1,"166":1}}],["faafter",{"2":{"76":2}}],["fa",{"2":{"76":2}}],["fashion",{"2":{"57":1}}],["faster",{"2":{"68":1,"76":1,"158":1}}],["fast",{"2":{"12":1}}],["fact",{"2":{"19":1}}],["fallback",{"2":{"158":1}}],["falls",{"2":{"20":1}}],["fall",{"2":{"17":1}}],["falses",{"2":{"73":1,"74":1,"76":2,"78":1}}],["false",{"0":{"29":1},"2":{"1":29,"3":7,"4":3,"6":51,"36":1,"37":2,"40":1,"41":1,"42":1,"43":1,"55":1,"58":1,"61":2,"67":5,"70":5,"73":1,"74":1,"75":3,"76":26,"79":1,"80":4,"90":2,"92":2,"93":27,"95":2,"99":8,"101":2,"102":4,"103":1,"104":1,"105":1,"106":1,"108":2,"110":11,"113":9,"115":1,"116":4,"119":1,"120":1,"124":39,"127":22,"130":8,"132":3,"133":4,"134":1,"136":1,"137":1,"139":1,"140":7,"142":2,"143":4,"144":1,"145":1,"146":1,"147":1,"150":10,"152":5,"155":4,"158":11,"159":7,"163":4,"166":1,"169":4,"175":4,"176":4,"185":5,"188":1,"192":2,"193":20,"197":2,"200":10,"201":6,"202":6,"206":1}}],["f",{"2":{"1":12,"6":14,"15":1,"23":3,"24":1,"27":2,"57":2,"60":1,"62":1,"64":2,"67":4,"69":2,"72":2,"74":2,"75":2,"76":36,"78":2,"79":2,"80":2,"81":2,"84":2,"85":2,"89":5,"92":2,"95":2,"98":2,"108":2,"112":2,"122":2,"124":7,"126":2,"129":2,"139":2,"152":30,"155":7,"156":2,"158":66,"159":69,"161":52,"181":1,"183":2,"184":1,"187":2,"188":1,"192":6,"193":6,"196":5,"197":16,"200":6,"202":2,"207":3}}],["fulfilled",{"2":{"190":1}}],["fullellipsoidparametrization",{"2":{"164":1}}],["fully",{"2":{"6":1,"73":1,"76":4,"127":4,"166":1}}],["full",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"70":5,"164":1,"172":1,"208":4}}],["furthest",{"2":{"152":1}}],["further",{"2":{"64":1,"158":1}}],["furthermore",{"2":{"3":2,"6":5,"74":1,"76":1,"78":1,"80":1,"99":1,"140":1}}],["fun",{"2":{"200":1}}],["fundamental",{"2":{"31":1,"195":1}}],["func",{"2":{"13":5}}],["funcs",{"2":{"13":2,"14":3}}],["functionality",{"2":{"79":1,"178":1,"180":1,"185":1,"196":1}}],["functionalities",{"2":{"76":1}}],["functionally",{"2":{"1":1,"23":1,"34":1,"155":1,"158":1}}],["function",{"2":{"1":4,"4":1,"6":10,"7":2,"9":1,"13":3,"14":2,"23":2,"34":1,"36":1,"37":2,"58":3,"61":5,"65":6,"68":13,"70":7,"72":2,"73":4,"74":3,"75":3,"76":22,"77":1,"78":2,"79":7,"80":2,"81":4,"87":2,"90":6,"92":1,"93":8,"95":1,"98":1,"99":1,"105":1,"106":1,"108":1,"110":5,"112":1,"113":1,"119":1,"120":1,"122":1,"124":9,"126":1,"127":7,"129":1,"130":1,"136":1,"137":1,"139":1,"140":1,"146":1,"147":1,"150":4,"152":16,"153":1,"155":2,"156":2,"158":16,"159":12,"161":5,"162":1,"163":1,"165":1,"166":1,"170":2,"172":7,"173":2,"176":2,"178":2,"179":2,"180":1,"182":2,"184":2,"185":7,"188":3,"189":2,"190":3,"191":2,"192":7,"193":3,"194":1,"196":6,"197":12,"198":3,"200":1,"206":4,"209":4}}],["functions",{"0":{"1":1,"75":1,"79":1,"81":1,"155":1,"197":1},"2":{"6":1,"9":3,"22":1,"31":1,"34":1,"36":3,"38":1,"58":1,"65":1,"68":1,"70":1,"72":1,"76":2,"124":1,"151":1,"153":1,"156":1,"172":2,"173":1,"179":1,"198":1}}],["future",{"2":{"28":1,"82":1,"90":1,"182":2}}],["wₜₒₜ",{"2":{"68":8}}],["wᵢ",{"2":{"68":18}}],["wt",{"2":{"68":3}}],["wgs84",{"2":{"18":1,"164":3,"201":1}}],["wglmakie",{"2":{"14":1}}],["w",{"2":{"13":13,"14":7,"90":4,"152":1}}],["wrong",{"2":{"174":1,"192":1}}],["wrongmanifolderror",{"2":{"165":1}}],["wrongmanifoldexception",{"2":{"162":2,"165":4}}],["writing",{"2":{"204":1}}],["written",{"2":{"93":1}}],["writes",{"2":{"158":1}}],["write",{"2":{"7":1,"35":1,"152":1,"158":1,"204":7}}],["wrap",{"2":{"4":1,"6":1,"18":1,"37":3,"40":1,"41":1,"42":1,"43":1,"55":1,"177":1,"184":1}}],["wrapped",{"2":{"27":1,"152":2,"156":1,"158":1}}],["wrapper",{"0":{"35":1},"2":{"35":1,"58":1,"61":1,"65":1,"70":1,"90":1,"93":1,"99":1,"113":1,"127":1,"130":1,"140":1}}],["wrappers`",{"2":{"161":1}}],["wrappers",{"2":{"1":10,"6":11,"27":1,"150":2,"152":1,"161":1,"169":4,"170":1,"175":8,"183":1,"184":1,"188":1,"193":10,"197":1,"200":12,"201":3,"202":5}}],["wrappergeometry`",{"2":{"180":1}}],["wrappergeometry",{"2":{"1":1}}],["wrapping",{"2":{"1":1,"6":1,"93":1,"180":1,"194":1}}],["walk",{"2":{"73":1}}],["wall2",{"2":{"70":7}}],["wall1",{"2":{"70":12}}],["walls",{"2":{"70":3}}],["wall",{"2":{"70":69}}],["wachspress",{"2":{"68":1}}],["wasincreasing",{"2":{"152":10}}],["wasn",{"2":{"76":1}}],["was",{"2":{"36":1,"37":1,"55":1,"58":1,"61":1,"62":1,"65":1,"67":1,"68":4,"70":1,"73":1,"74":1,"75":3,"76":1,"77":1,"78":1,"79":2,"80":1,"81":3,"87":1,"90":1,"93":1,"96":1,"106":1,"109":1,"110":1,"120":1,"123":1,"124":1,"127":1,"137":1,"147":1,"150":1,"151":1,"152":1,"156":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":3,"166":1,"167":1,"170":1,"173":1,"176":1,"177":1,"178":1,"179":1,"181":1,"183":1,"185":1,"192":1,"193":1,"194":1,"196":2,"198":1}}],["wanted",{"2":{"209":1}}],["wants",{"2":{"87":1,"159":1}}],["want",{"0":{"28":1,"77":1},"2":{"13":1,"23":1,"28":1,"36":1,"68":1,"76":2,"150":1,"201":2,"203":1,"208":1,"209":1}}],["ways",{"2":{"162":1,"174":1}}],["way",{"2":{"6":1,"20":1,"22":1,"23":1,"29":1,"34":1,"66":1,"76":1,"153":1,"167":1,"171":1,"185":1,"196":2,"203":1}}],["warn",{"2":{"152":2,"185":1}}],["warned",{"2":{"6":1,"196":1}}],["warning",{"2":{"0":1,"5":1,"6":3,"29":1,"68":1,"87":1,"159":1,"184":1,"195":1,"208":1}}],["wonky",{"2":{"166":2}}],["wong",{"2":{"84":1,"85":1,"205":1}}],["won",{"2":{"28":1,"76":1,"159":1}}],["wouldn",{"2":{"79":1}}],["would",{"0":{"77":1},"2":{"6":3,"28":1,"74":1,"76":1,"78":1,"79":1,"80":1,"87":4,"152":1,"158":1,"163":2,"201":1,"208":1,"209":1}}],["wound",{"2":{"6":1,"87":1}}],["world",{"0":{"208":1},"2":{"206":1}}],["worrying",{"2":{"29":1}}],["words",{"2":{"3":1,"6":1,"95":1,"122":1,"129":1,"130":1}}],["workflow",{"2":{"110":1,"127":1}}],["workflows",{"2":{"28":1,"30":1,"32":1}}],["works",{"2":{"6":3,"20":1,"31":1,"162":2,"179":2,"180":1,"182":1,"198":1}}],["working",{"2":{"3":1,"6":1,"110":1,"201":1}}],["work",{"2":{"1":3,"6":2,"9":1,"58":2,"61":1,"65":1,"70":2,"73":2,"82":1,"90":1,"93":1,"124":1,"127":1,"150":1,"155":1,"158":1,"159":1,"179":1,"180":1,"193":1,"198":1,"208":1}}],["web",{"2":{"204":1}}],["were",{"2":{"76":1,"152":1,"207":1}}],["west",{"2":{"70":8}}],["welcome",{"2":{"30":1,"32":1}}],["well",{"2":{"22":1,"70":1,"76":2,"87":1,"163":1,"182":1,"185":1,"186":1}}],["weights",{"2":{"66":4}}],["weighting",{"2":{"64":2,"65":1}}],["weight",{"2":{"6":5,"65":1,"68":14}}],["weighted",{"2":{"0":1,"6":2,"65":4,"66":3,"68":4}}],["we",{"0":{"77":2},"2":{"6":1,"7":1,"11":1,"13":1,"18":1,"20":1,"22":3,"24":1,"28":3,"29":1,"30":2,"31":1,"32":2,"36":1,"37":1,"57":2,"58":2,"61":1,"62":2,"65":1,"67":4,"68":8,"70":4,"75":8,"76":26,"78":2,"79":3,"81":1,"82":1,"86":3,"87":2,"90":1,"92":1,"93":5,"95":1,"96":1,"98":1,"99":1,"109":1,"112":1,"113":1,"122":3,"123":1,"124":2,"126":1,"127":2,"129":1,"130":1,"139":1,"140":1,"151":1,"152":21,"156":1,"158":23,"159":8,"161":3,"162":1,"163":4,"164":6,"165":2,"166":6,"168":1,"181":1,"182":2,"183":2,"184":3,"185":1,"188":5,"192":2,"195":1,"196":1,"199":2,"200":4,"201":6,"202":4,"203":1,"204":3,"206":3,"207":7}}],["whole",{"2":{"124":1}}],["whose",{"2":{"3":1,"6":1,"110":1}}],["white",{"2":{"67":1}}],["while",{"2":{"61":1,"64":1,"65":1,"76":5,"79":2,"86":2,"89":1,"93":1,"110":1,"124":1,"152":3,"176":1,"190":1,"192":2,"207":1}}],["whichever",{"2":{"6":1,"188":1}}],["which",{"2":{"1":1,"4":2,"5":1,"6":9,"7":1,"11":1,"13":1,"14":1,"19":1,"20":3,"22":1,"23":4,"25":1,"28":2,"38":1,"57":1,"58":1,"62":1,"66":1,"67":2,"68":5,"70":2,"76":12,"79":2,"82":1,"87":1,"93":2,"124":3,"151":1,"152":3,"153":1,"158":1,"164":3,"166":1,"167":1,"168":2,"169":1,"172":1,"174":1,"175":1,"181":1,"182":1,"183":1,"184":3,"185":2,"188":1,"190":2,"193":1,"196":4,"198":1,"204":3,"206":3,"207":6,"209":1}}],["what",{"0":{"18":1,"27":1,"30":1,"35":1,"57":2,"60":1,"64":1,"69":1,"72":1,"89":2,"92":1,"95":1,"98":1,"108":1,"112":1,"122":1,"126":1,"129":1,"139":1,"156":1},"2":{"13":1,"14":1,"20":1,"21":1,"29":1,"64":1,"150":1,"152":1,"163":1,"166":1,"183":1,"201":1,"208":1}}],["whatever",{"2":{"1":1,"27":1,"155":1,"158":1}}],["whyatt",{"2":{"186":1}}],["why",{"0":{"19":1,"27":1,"28":1},"2":{"9":1,"22":1,"35":1,"58":1}}],["wheel",{"2":{"22":1}}],["whether",{"2":{"1":4,"4":1,"6":8,"149":1,"150":1,"155":2,"160":2,"163":1,"166":1,"168":1}}],["when",{"2":{"1":1,"4":2,"5":1,"6":4,"19":1,"20":2,"23":1,"25":1,"28":2,"29":1,"58":1,"65":1,"68":3,"75":5,"76":2,"79":6,"81":7,"124":1,"152":1,"155":1,"156":3,"158":1,"164":2,"165":2,"166":1,"169":1,"172":1,"177":2,"188":1,"201":1,"202":2,"204":1,"209":1}}],["whereas",{"2":{"164":1}}],["wherever",{"2":{"6":1,"194":1}}],["where",{"2":{"1":2,"4":5,"6":10,"25":1,"36":2,"58":12,"61":8,"65":8,"66":2,"68":24,"70":8,"73":5,"74":2,"75":5,"76":21,"78":3,"79":18,"80":2,"81":9,"90":25,"93":1,"124":9,"152":3,"155":1,"158":20,"159":20,"161":17,"162":3,"164":2,"165":2,"166":1,"167":5,"174":1,"180":1,"183":1,"194":1,"195":1,"197":3,"198":5}}],["widely",{"2":{"204":1}}],["widths",{"2":{"14":1}}],["wiki",{"2":{"124":1,"190":1}}],["wikipedia",{"2":{"124":1,"190":2}}],["wind",{"2":{"4":1,"6":2,"58":1,"93":1}}],["winding",{"0":{"86":1},"2":{"4":2,"6":3,"58":3,"76":7,"86":4,"87":1,"93":1,"152":1}}],["without",{"2":{"1":2,"6":1,"22":1,"29":1,"76":2,"112":1,"127":1,"158":1,"159":1,"161":3,"180":1,"193":1}}],["with",{"0":{"75":1,"79":1,"81":1,"189":1,"190":1,"191":1,"202":1,"203":1},"2":{"1":5,"3":5,"4":7,"6":23,"11":1,"25":1,"27":2,"28":1,"58":7,"60":1,"61":2,"65":1,"66":4,"67":1,"68":2,"70":6,"75":8,"76":17,"78":5,"79":15,"80":1,"81":12,"89":1,"90":2,"94":1,"99":1,"112":1,"116":1,"122":1,"124":28,"126":2,"127":5,"129":1,"130":1,"133":3,"134":2,"135":2,"145":1,"152":7,"153":1,"155":3,"156":1,"158":12,"159":3,"161":4,"162":2,"163":1,"164":1,"165":3,"169":1,"174":1,"177":1,"180":1,"182":1,"185":2,"188":2,"190":2,"191":1,"193":1,"196":1,"198":1,"199":1,"200":4,"201":6,"202":2,"203":2,"204":2,"206":1,"207":1,"208":1}}],["within",{"0":{"49":1,"138":1,"139":1,"142":1,"143":1,"145":1,"146":1,"147":1},"1":{"139":1,"140":1},"2":{"0":2,"3":9,"4":3,"5":1,"6":13,"7":1,"9":1,"36":1,"49":2,"58":1,"61":2,"65":1,"66":3,"68":1,"69":2,"70":5,"75":1,"76":11,"79":2,"80":1,"81":6,"89":1,"90":5,"95":2,"96":3,"98":2,"115":1,"124":9,"126":1,"127":9,"138":1,"139":6,"140":11,"141":6,"142":14,"143":15,"144":15,"145":7,"146":4,"147":4,"153":1,"206":1,"207":4,"208":2}}],["will",{"2":{"1":8,"4":7,"5":1,"6":40,"11":1,"23":3,"28":2,"29":1,"58":3,"61":4,"65":1,"68":2,"70":1,"73":1,"74":4,"75":4,"76":8,"78":4,"79":4,"80":4,"81":4,"87":1,"89":2,"90":4,"93":1,"110":1,"150":1,"152":2,"155":3,"156":1,"157":2,"158":4,"159":3,"161":7,"164":4,"166":1,"169":1,"173":2,"174":1,"176":2,"179":2,"180":3,"182":2,"184":3,"188":2,"190":1,"192":1,"193":2,"196":1,"201":1,"204":1,"206":2,"208":1,"209":1}}],["wip",{"2":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR259/assets/chunks/VPLocalSearchBox.CnqCziHd.js b/previews/PR259/assets/chunks/VPLocalSearchBox.3EF4bsHS.js similarity index 99% rename from previews/PR259/assets/chunks/VPLocalSearchBox.CnqCziHd.js rename to previews/PR259/assets/chunks/VPLocalSearchBox.3EF4bsHS.js index d8bf20be8..c0e5c01af 100644 --- a/previews/PR259/assets/chunks/VPLocalSearchBox.CnqCziHd.js +++ b/previews/PR259/assets/chunks/VPLocalSearchBox.3EF4bsHS.js @@ -1,4 +1,4 @@ -var Ot=Object.defineProperty;var Ft=(a,e,t)=>e in a?Ot(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,D as le,h as ge,aA as tt,aB as Rt,aC as At,aD as Mt,q as $e,aE as Lt,d as Dt,aF as nt,p as fe,aG as zt,ac as Pt,s as jt,aH as Vt,v as Me,P as he,O as _e,aI as $t,ak as Bt,W as Wt,R as Kt,$ as Jt,b as Ut,o as H,j as _,a0 as qt,a2 as Gt,k as L,a5 as Ht,ad as Qt,c as Z,e as Se,n as st,B as it,F as rt,a as pe,t as me,ab as Yt,aJ as at,aK as Zt,ap as Xt,au as en,aL as tn,_ as nn}from"./framework.mcBEtuSi.js";import{u as sn,c as rn}from"./theme.B_n0Ru8S.js";const an={root:()=>Ct(()=>import("./@localSearchIndexroot.gPJ_HSsN.js"),[])};/*! +var Ot=Object.defineProperty;var Ft=(a,e,t)=>e in a?Ot(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,D as le,h as ge,aA as tt,aB as Rt,aC as At,aD as Mt,q as $e,aE as Lt,d as Dt,aF as nt,p as fe,aG as zt,ac as Pt,s as jt,aH as Vt,v as Me,P as he,O as _e,aI as $t,ak as Bt,W as Wt,R as Kt,$ as Jt,b as Ut,o as H,j as _,a0 as qt,a2 as Gt,k as L,a5 as Ht,ad as Qt,c as Z,e as Se,n as st,B as it,F as rt,a as pe,t as me,ab as Yt,aJ as at,aK as Zt,ap as Xt,au as en,aL as tn,_ as nn}from"./framework.mcBEtuSi.js";import{u as sn,c as rn}from"./theme.C_XeUbhC.js";const an={root:()=>Ct(()=>import("./@localSearchIndexroot.XO-ieOtj.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var vt=["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=vt.join(","),gt=typeof Element>"u",re=gt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Oe=!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},Fe=function a(e,t){var n;t===void 0&&(t=!0);var s=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"inert"),r=s===""||s==="true",i=r||t&&e&&a(e.parentNode);return i},on=function(e){var t,n=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return n===""||n==="true"},bt=function(e,t,n){if(Fe(e))return[];var s=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&re.call(e,Ne)&&s.unshift(e),s=s.filter(n),s},yt=function a(e,t,n){for(var s=[],r=Array.from(e);r.length;){var i=r.shift();if(!Fe(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),l=o.length?o:i.children,c=a(l,!0,n);n.flatten?s.push.apply(s,c):s.push({scopeParent:i,candidates:c})}else{var f=re.call(i,Ne);f&&n.filter(i)&&(t||!e.includes(i))&&s.push(i);var v=i.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(i),h=!Fe(v,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(i));if(v&&h){var b=a(v===!0?i.children:v.children,!0,n);n.flatten?s.push.apply(s,b):s.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return s},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ie=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||on(e))&&!wt(e)?0:e.tabIndex},ln=function(e,t){var n=ie(e);return n<0&&t&&!wt(e)?0:n},cn=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},un=function(e){return xt(e)&&e.type==="hidden"},dn=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(n){return n.tagName==="SUMMARY"});return t},fn=function(e,t){for(var n=0;nsummary:first-of-type"),i=r?e.parentElement:e;if(re.call(i,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="legacy-full"){if(typeof s=="function"){for(var o=e;e;){var l=e.parentElement,c=Oe(e);if(l&&!l.shadowRoot&&s(l)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!l&&c!==e.ownerDocument?e=c.host:e=l}e=o}if(vn(e))return!e.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return ot(e);return!1},bn=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var n=0;n=0)},wn=function a(e){var t=[],n=[];return e.forEach(function(s,r){var i=!!s.scopeParent,o=i?s.scopeParent:s,l=ln(o,i),c=i?a(s.candidates):o;l===0?i?t.push.apply(t,c):t.push(o):n.push({documentOrder:r,tabIndex:l,item:s,isScope:i,content:c})}),n.sort(cn).reduce(function(s,r){return r.isScope?s.push.apply(s,r.content):s.push(r.content),s},[]).concat(t)},xn=function(e,t){t=t||{};var n;return t.getShadowRoot?n=yt([e],t.includeContainer,{filter:Be.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:yn}):n=bt(e,t.includeContainer,Be.bind(null,t)),wn(n)},_n=function(e,t){t=t||{};var n;return t.getShadowRoot?n=yt([e],t.includeContainer,{filter:Ce.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):n=bt(e,t.includeContainer,Ce.bind(null,t)),n},ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,Ne)===!1?!1:Be(t,e)},Sn=vt.concat("iframe").join(","),Le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,Sn)===!1?!1:Ce(t,e)};/*! diff --git a/previews/PR259/assets/chunks/theme.B_n0Ru8S.js b/previews/PR259/assets/chunks/theme.C_XeUbhC.js similarity index 99% rename from previews/PR259/assets/chunks/theme.B_n0Ru8S.js rename to previews/PR259/assets/chunks/theme.C_XeUbhC.js index b36514770..440922ed8 100644 --- a/previews/PR259/assets/chunks/theme.B_n0Ru8S.js +++ b/previews/PR259/assets/chunks/theme.C_XeUbhC.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.CnqCziHd.js","assets/chunks/framework.mcBEtuSi.js"])))=>i.map(i=>d[i]); -import{d as $,c as p,r as v,n as N,o as l,a as Q,t as A,b as S,w as m,T as le,e as k,_ as M,u as Se,i as Nt,f as Wt,g as je,h as L,j as d,k as s,l as ie,m as Y,p as w,q as H,s as Le,v as D,x as Fe,y as Ue,z as Et,A as Ht,F as O,B as F,C as ae,D as it,E as we,G as y,H as q,I as lt,J as ve,K as te,L as K,M as Bt,N as de,O as Be,P as Pe,Q as rt,R as Ve,S as Ot,U as It,V as Ct,W as ut,X as De,Y as Rt,Z as jt,$ as Ft,a0 as Ut,a1 as dt,a2 as ce,a3 as Dt,a4 as ct,a5 as zt,a6 as Me,a7 as ne,a8 as ze,a9 as pt,aa as Oe,ab as ht,ac as Ke,ad as Ge,ae as pe,af as Kt,ag as Gt,ah as qt,ai as vt,aj as Jt,ak as Yt,al as We}from"./framework.mcBEtuSi.js";const Xt=$({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(l(),p("span",{class:N(["VPBadge",e.type])},[v(e.$slots,"default",{},()=>[Q(A(e.text),1)])],2))}}),Qt={key:0,class:"VPBackdrop"},Zt=$({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(l(),S(le,{name:"fade"},{default:m(()=>[e.show?(l(),p("div",Qt)):k("",!0)]),_:1}))}}),ea=M(Zt,[["__scopeId","data-v-b06cdb19"]]),W=Se;function ta(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function Ie(o){return o.startsWith("/")?o:`/${o}`}function qe(o){const{pathname:e,search:t,hash:n,protocol:a}=new URL(o,"http://a.com");if(Nt(o)||o.startsWith("#")||!a.startsWith("http")||!Wt(e))return o;const{site:r}=W(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return je(u)}function be({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:a,hash:r}=W(),u=L(()=>{var i,h;return{label:(i=e.value.locales[t.value])==null?void 0:i.label,link:((h=e.value.locales[t.value])==null?void 0:h.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:L(()=>Object.entries(e.value.locales).flatMap(([i,h])=>u.value.label===h.label?[]:{text:h.label,link:aa(h.link||(i==="root"?"/":`/${i}/`),a.value.i18nRouting!==!1&&o,n.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:u}}function aa(o,e,t,n){return e?o.replace(/\/$/,"")+Ie(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const na={class:"NotFound"},oa={class:"code"},sa={class:"title"},ia={class:"quote"},la={class:"action"},ra=["href","aria-label"],ua=$({__name:"NotFound",setup(o){const{theme:e}=W(),{currentLang:t}=be();return(n,a)=>{var r,u,c,i,h;return l(),p("div",na,[d("p",oa,A(((r=s(e).notFound)==null?void 0:r.code)??"404"),1),d("h1",sa,A(((u=s(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),a[0]||(a[0]=d("div",{class:"divider"},null,-1)),d("blockquote",ia,A(((c=s(e).notFound)==null?void 0:c.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",la,[d("a",{class:"link",href:s(je)(s(t).link),"aria-label":((i=s(e).notFound)==null?void 0:i.linkLabel)??"go to home"},A(((h=s(e).notFound)==null?void 0:h.linkText)??"Take me home"),9,ra)])])}}}),da=M(ua,[["__scopeId","data-v-951cab6c"]]);function mt(o,e){if(Array.isArray(o))return ke(o);if(o==null)return[];e=Ie(e);const t=Object.keys(o).sort((a,r)=>r.split("/").length-a.split("/").length).find(a=>e.startsWith(Ie(a))),n=t?o[t]:[];return Array.isArray(n)?ke(n):ke(n.items,n.base)}function ca(o){const e=[];let t=0;for(const n in o){const a=o[n];if(a.items){t=e.push(a);continue}e[t]||e.push({items:[]}),e[t].items.push(a)}return e}function pa(o){const e=[];function t(n){for(const a of n)a.text&&a.link&&e.push({text:a.text,link:a.link,docFooterText:a.docFooterText}),a.items&&t(a.items)}return t(o),e}function Ce(o,e){return Array.isArray(e)?e.some(t=>Ce(o,t)):ie(o,e.link)?!0:e.items?Ce(o,e.items):!1}function ke(o,e){return[...o].map(t=>{const n={...t},a=n.base||e;return a&&n.link&&(n.link=a+n.link),n.items&&(n.items=ke(n.items,a)),n})}function Z(){const{frontmatter:o,page:e,theme:t}=W(),n=Y("(min-width: 960px)"),a=w(!1),r=L(()=>{const V=t.value.sidebar,x=e.value.relativePath;return V?mt(V,x):[]}),u=w(r.value);H(r,(V,x)=>{JSON.stringify(V)!==JSON.stringify(x)&&(u.value=r.value)});const c=L(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),i=L(()=>h?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),h=L(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),b=L(()=>c.value&&n.value),g=L(()=>c.value?ca(u.value):[]);function f(){a.value=!0}function _(){a.value=!1}function P(){a.value?_():f()}return{isOpen:a,sidebar:u,sidebarGroups:g,hasSidebar:c,hasAside:h,leftAside:i,isSidebarEnabled:b,open:f,close:_,toggle:P}}function ha(o,e){let t;Le(()=>{t=o.value?document.activeElement:void 0}),D(()=>{window.addEventListener("keyup",n)}),Fe(()=>{window.removeEventListener("keyup",n)});function n(a){a.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function va(o){const{page:e,hash:t}=W(),n=w(!1),a=L(()=>o.value.collapsed!=null),r=L(()=>!!o.value.link),u=w(!1),c=()=>{u.value=ie(e.value.relativePath,o.value.link)};H([e,o,t],c),D(c);const i=L(()=>u.value?!0:o.value.items?Ce(e.value.relativePath,o.value.items):!1),h=L(()=>!!(o.value.items&&o.value.items.length));Le(()=>{n.value=!!(a.value&&o.value.collapsed)}),Ue(()=>{(u.value||i.value)&&(n.value=!1)});function b(){a.value&&(n.value=!n.value)}return{collapsed:n,collapsible:a,isLink:r,isActiveLink:u,hasActiveLink:i,hasChildren:h,toggle:b}}function ma(){const{hasSidebar:o}=Z(),e=Y("(min-width: 960px)"),t=Y("(min-width: 1280px)");return{isAsideEnabled:L(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const fa=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,Re=[];function ft(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function Je(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:ba(t),link:"#"+t.id,level:n}});return ga(e,o)}function ba(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(fa.test(t.className))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function ga(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,a]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return ka(o,n,a)}function _a(o,e){const{isAsideEnabled:t}=ma(),n=ta(r,100);let a=null;D(()=>{requestAnimationFrame(r),window.addEventListener("scroll",n)}),Et(()=>{u(location.hash)}),Fe(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const c=window.scrollY,i=window.innerHeight,h=document.body.offsetHeight,b=Math.abs(c+i-h)<1,g=Re.map(({element:_,link:P})=>({link:P,top:ya(_)})).filter(({top:_})=>!Number.isNaN(_)).sort((_,P)=>_.top-P.top);if(!g.length){u(null);return}if(c<1){u(null);return}if(b){u(g[g.length-1].link);return}let f=null;for(const{link:_,top:P}of g){if(P>c+Ht()+4)break;f=_}u(f)}function u(c){a&&a.classList.remove("active"),c==null?a=null:a=o.value.querySelector(`a[href="${decodeURIComponent(c)}"]`);const i=a;i?(i.classList.add("active"),e.value.style.top=i.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function ya(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}function ka(o,e,t){Re.length=0;const n=[],a=[];return o.forEach(r=>{const u={...r,children:[]};let c=a[a.length-1];for(;c&&c.level>=u.level;)a.pop(),c=a[a.length-1];if(u.element.classList.contains("ignore-header")||c&&"shouldIgnore"in c){a.push({level:u.level,shouldIgnore:!0});return}u.level>t||u.level{const a=ae("VPDocOutlineItem",!0);return l(),p("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(l(!0),p(O,null,F(t.headers,({children:r,link:u,title:c})=>(l(),p("li",null,[d("a",{class:"outline-link",href:u,onClick:e,title:c},A(c),9,$a),r!=null&&r.length?(l(),S(a,{key:0,headers:r},null,8,["headers"])):k("",!0)]))),256))],2)}}}),bt=M(Sa,[["__scopeId","data-v-3f927ebe"]]),La={class:"content"},wa={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Pa=$({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=W(),n=it([]);we(()=>{n.value=Je(e.value.outline??t.value.outline)});const a=w(),r=w();return _a(a,r),(u,c)=>(l(),p("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:a},[d("div",La,[d("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),d("div",wa,A(s(ft)(s(t))),1),y(bt,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Va=M(Pa,[["__scopeId","data-v-b38bf2ff"]]),Ma={class:"VPDocAsideCarbonAds"},Aa=$({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(l(),p("div",Ma,[y(s(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),xa={class:"VPDocAside"},Ta=$({__name:"VPDocAside",setup(o){const{theme:e}=W();return(t,n)=>(l(),p("div",xa,[v(t.$slots,"aside-top",{},void 0,!0),v(t.$slots,"aside-outline-before",{},void 0,!0),y(Va),v(t.$slots,"aside-outline-after",{},void 0,!0),n[0]||(n[0]=d("div",{class:"spacer"},null,-1)),v(t.$slots,"aside-ads-before",{},void 0,!0),s(e).carbonAds?(l(),S(Aa,{key:0,"carbon-ads":s(e).carbonAds},null,8,["carbon-ads"])):k("",!0),v(t.$slots,"aside-ads-after",{},void 0,!0),v(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Na=M(Ta,[["__scopeId","data-v-6d7b3c46"]]);function Wa(){const{theme:o,page:e}=W();return L(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let a;return typeof n=="function"?a=n(e.value):a=n.replace(/:path/g,e.value.filePath),{url:a,text:t}})}function Ea(){const{page:o,theme:e,frontmatter:t}=W();return L(()=>{var h,b,g,f,_,P,V,x;const n=mt(e.value.sidebar,o.value.relativePath),a=pa(n),r=Ha(a,B=>B.link.replace(/[?#].*$/,"")),u=r.findIndex(B=>ie(o.value.relativePath,B.link)),c=((h=e.value.docFooter)==null?void 0:h.prev)===!1&&!t.value.prev||t.value.prev===!1,i=((b=e.value.docFooter)==null?void 0:b.next)===!1&&!t.value.next||t.value.next===!1;return{prev:c?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((g=r[u-1])==null?void 0:g.docFooterText)??((f=r[u-1])==null?void 0:f.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((_=r[u-1])==null?void 0:_.link)},next:i?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((P=r[u+1])==null?void 0:P.docFooterText)??((V=r[u+1])==null?void 0:V.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((x=r[u+1])==null?void 0:x.link)}}})}function Ha(o,e){const t=new Set;return o.filter(n=>{const a=e(n);return t.has(a)?!1:t.add(a)})}const J=$({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.tag??(e.href?"a":"span")),n=L(()=>e.href&<.test(e.href)||e.target==="_blank");return(a,r)=>(l(),S(q(t.value),{class:N(["VPLink",{link:a.href,"vp-external-link-icon":n.value,"no-icon":a.noIcon}]),href:a.href?s(qe)(a.href):void 0,target:a.target??(n.value?"_blank":void 0),rel:a.rel??(n.value?"noreferrer":void 0)},{default:m(()=>[v(a.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Ba={class:"VPLastUpdated"},Oa=["datetime"],Ia=$({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:n}=W(),a=L(()=>new Date(t.value.lastUpdated)),r=L(()=>a.value.toISOString()),u=w("");return D(()=>{Le(()=>{var c,i,h;u.value=new Intl.DateTimeFormat((i=(c=e.value.lastUpdated)==null?void 0:c.formatOptions)!=null&&i.forceLocale?n.value:void 0,((h=e.value.lastUpdated)==null?void 0:h.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(a.value)})}),(c,i)=>{var h;return l(),p("p",Ba,[Q(A(((h=s(e).lastUpdated)==null?void 0:h.text)||s(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:r.value},A(u.value),9,Oa)])}}}),Ca=M(Ia,[["__scopeId","data-v-475f71b8"]]),Ra={key:0,class:"VPDocFooter"},ja={key:0,class:"edit-info"},Fa={key:0,class:"edit-link"},Ua={key:1,class:"last-updated"},Da={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},za={class:"pager"},Ka=["innerHTML"],Ga=["innerHTML"],qa={class:"pager"},Ja=["innerHTML"],Ya=["innerHTML"],Xa=$({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=W(),a=Wa(),r=Ea(),u=L(()=>e.value.editLink&&n.value.editLink!==!1),c=L(()=>t.value.lastUpdated),i=L(()=>u.value||c.value||r.value.prev||r.value.next);return(h,b)=>{var g,f,_,P;return i.value?(l(),p("footer",Ra,[v(h.$slots,"doc-footer-before",{},void 0,!0),u.value||c.value?(l(),p("div",ja,[u.value?(l(),p("div",Fa,[y(J,{class:"edit-link-button",href:s(a).url,"no-icon":!0},{default:m(()=>[b[0]||(b[0]=d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Q(" "+A(s(a).text),1)]),_:1},8,["href"])])):k("",!0),c.value?(l(),p("div",Ua,[y(Ca)])):k("",!0)])):k("",!0),(g=s(r).prev)!=null&&g.link||(f=s(r).next)!=null&&f.link?(l(),p("nav",Da,[b[1]||(b[1]=d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),d("div",za,[(_=s(r).prev)!=null&&_.link?(l(),S(J,{key:0,class:"pager-link prev",href:s(r).prev.link},{default:m(()=>{var V;return[d("span",{class:"desc",innerHTML:((V=s(e).docFooter)==null?void 0:V.prev)||"Previous page"},null,8,Ka),d("span",{class:"title",innerHTML:s(r).prev.text},null,8,Ga)]}),_:1},8,["href"])):k("",!0)]),d("div",qa,[(P=s(r).next)!=null&&P.link?(l(),S(J,{key:0,class:"pager-link next",href:s(r).next.link},{default:m(()=>{var V;return[d("span",{class:"desc",innerHTML:((V=s(e).docFooter)==null?void 0:V.next)||"Next page"},null,8,Ja),d("span",{class:"title",innerHTML:s(r).next.text},null,8,Ya)]}),_:1},8,["href"])):k("",!0)])])):k("",!0)])):k("",!0)}}}),Qa=M(Xa,[["__scopeId","data-v-4f9813fa"]]),Za={class:"container"},en={class:"aside-container"},tn={class:"aside-content"},an={class:"content"},nn={class:"content-container"},on={class:"main"},sn=$({__name:"VPDoc",setup(o){const{theme:e}=W(),t=ve(),{hasSidebar:n,hasAside:a,leftAside:r}=Z(),u=L(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(c,i)=>{const h=ae("Content");return l(),p("div",{class:N(["VPDoc",{"has-sidebar":s(n),"has-aside":s(a)}])},[v(c.$slots,"doc-top",{},void 0,!0),d("div",Za,[s(a)?(l(),p("div",{key:0,class:N(["aside",{"left-aside":s(r)}])},[i[0]||(i[0]=d("div",{class:"aside-curtain"},null,-1)),d("div",en,[d("div",tn,[y(Na,null,{"aside-top":m(()=>[v(c.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":m(()=>[v(c.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":m(()=>[v(c.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":m(()=>[v(c.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":m(()=>[v(c.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":m(()=>[v(c.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):k("",!0),d("div",an,[d("div",nn,[v(c.$slots,"doc-before",{},void 0,!0),d("main",on,[y(h,{class:N(["vp-doc",[u.value,s(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),y(Qa,null,{"doc-footer-before":m(()=>[v(c.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),v(c.$slots,"doc-after",{},void 0,!0)])])]),v(c.$slots,"doc-bottom",{},void 0,!0)],2)}}}),ln=M(sn,[["__scopeId","data-v-83890dd9"]]),rn=$({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.href&<.test(e.href)),n=L(()=>e.tag||(e.href?"a":"button"));return(a,r)=>(l(),S(q(n.value),{class:N(["VPButton",[a.size,a.theme]]),href:a.href?s(qe)(a.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:m(()=>[Q(A(a.text),1)]),_:1},8,["class","href","target","rel"]))}}),un=M(rn,[["__scopeId","data-v-906d7fb4"]]),dn=["src","alt"],cn=$({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=ae("VPImage",!0);return e.image?(l(),p(O,{key:0},[typeof e.image=="string"||"src"in e.image?(l(),p("img",te({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:s(je)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,dn)):(l(),p(O,{key:1},[y(n,te({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),y(n,te({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):k("",!0)}}}),$e=M(cn,[["__scopeId","data-v-35a7d0b8"]]),pn={class:"container"},hn={class:"main"},vn={class:"heading"},mn=["innerHTML"],fn=["innerHTML"],bn=["innerHTML"],gn={key:0,class:"actions"},_n={key:0,class:"image"},yn={class:"image-container"},kn=$({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=K("hero-image-slot-exists");return(t,n)=>(l(),p("div",{class:N(["VPHero",{"has-image":t.image||s(e)}])},[d("div",pn,[d("div",hn,[v(t.$slots,"home-hero-info-before",{},void 0,!0),v(t.$slots,"home-hero-info",{},()=>[d("h1",vn,[t.name?(l(),p("span",{key:0,innerHTML:t.name,class:"name clip"},null,8,mn)):k("",!0),t.text?(l(),p("span",{key:1,innerHTML:t.text,class:"text"},null,8,fn)):k("",!0)]),t.tagline?(l(),p("p",{key:0,innerHTML:t.tagline,class:"tagline"},null,8,bn)):k("",!0)],!0),v(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(l(),p("div",gn,[(l(!0),p(O,null,F(t.actions,a=>(l(),p("div",{key:a.link,class:"action"},[y(un,{tag:"a",size:"medium",theme:a.theme,text:a.text,href:a.link,target:a.target,rel:a.rel},null,8,["theme","text","href","target","rel"])]))),128))])):k("",!0),v(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||s(e)?(l(),p("div",_n,[d("div",yn,[n[0]||(n[0]=d("div",{class:"image-bg"},null,-1)),v(t.$slots,"home-hero-image",{},()=>[t.image?(l(),S($e,{key:0,class:"image-src",image:t.image},null,8,["image"])):k("",!0)],!0)])])):k("",!0)])],2))}}),$n=M(kn,[["__scopeId","data-v-3d256e5e"]]),Sn=$({__name:"VPHomeHero",setup(o){const{frontmatter:e}=W();return(t,n)=>s(e).hero?(l(),S($n,{key:0,class:"VPHomeHero",name:s(e).hero.name,text:s(e).hero.text,tagline:s(e).hero.tagline,image:s(e).hero.image,actions:s(e).hero.actions},{"home-hero-info-before":m(()=>[v(t.$slots,"home-hero-info-before")]),"home-hero-info":m(()=>[v(t.$slots,"home-hero-info")]),"home-hero-info-after":m(()=>[v(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":m(()=>[v(t.$slots,"home-hero-actions-after")]),"home-hero-image":m(()=>[v(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):k("",!0)}}),Ln={class:"box"},wn={key:0,class:"icon"},Pn=["innerHTML"],Vn=["innerHTML"],Mn=["innerHTML"],An={key:4,class:"link-text"},xn={class:"link-text-value"},Tn=$({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(l(),S(J,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:m(()=>[d("article",Ln,[typeof e.icon=="object"&&e.icon.wrap?(l(),p("div",wn,[y($e,{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"?(l(),S($e,{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?(l(),p("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Pn)):k("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Vn),e.details?(l(),p("p",{key:3,class:"details",innerHTML:e.details},null,8,Mn)):k("",!0),e.linkText?(l(),p("div",An,[d("p",xn,[Q(A(e.linkText)+" ",1),t[0]||(t[0]=d("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):k("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Nn=M(Tn,[["__scopeId","data-v-f5e9645b"]]),Wn={key:0,class:"VPFeatures"},En={class:"container"},Hn={class:"items"},Bn=$({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=L(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,a)=>n.features?(l(),p("div",Wn,[d("div",En,[d("div",Hn,[(l(!0),p(O,null,F(n.features,r=>(l(),p("div",{key:r.title,class:N(["item",[t.value]])},[y(Nn,{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))])])])):k("",!0)}}),On=M(Bn,[["__scopeId","data-v-d0a190d7"]]),In=$({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=W();return(t,n)=>s(e).features?(l(),S(On,{key:0,class:"VPHomeFeatures",features:s(e).features},null,8,["features"])):k("",!0)}}),Cn=$({__name:"VPHomeContent",setup(o){const{width:e}=Bt({initialWidth:0,includeScrollbar:!1});return(t,n)=>(l(),p("div",{class:"vp-doc container",style:de(s(e)?{"--vp-offset":`calc(50% - ${s(e)/2}px)`}:{})},[v(t.$slots,"default",{},void 0,!0)],4))}}),Rn=M(Cn,[["__scopeId","data-v-7a48a447"]]),jn=$({__name:"VPHome",setup(o){const{frontmatter:e,theme:t}=W();return(n,a)=>{const r=ae("Content");return l(),p("div",{class:N(["VPHome",{"external-link-icon-enabled":s(t).externalLinkIcon}])},[v(n.$slots,"home-hero-before",{},void 0,!0),y(Sn,null,{"home-hero-info-before":m(()=>[v(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":m(()=>[v(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":m(()=>[v(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":m(()=>[v(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":m(()=>[v(n.$slots,"home-hero-image",{},void 0,!0)]),_:3}),v(n.$slots,"home-hero-after",{},void 0,!0),v(n.$slots,"home-features-before",{},void 0,!0),y(In),v(n.$slots,"home-features-after",{},void 0,!0),s(e).markdownStyles!==!1?(l(),S(Rn,{key:0},{default:m(()=>[y(r)]),_:1})):(l(),S(r,{key:1}))],2)}}}),Fn=M(jn,[["__scopeId","data-v-e40e30de"]]),Un={},Dn={class:"VPPage"};function zn(o,e){const t=ae("Content");return l(),p("div",Dn,[v(o.$slots,"page-top"),y(t),v(o.$slots,"page-bottom")])}const Kn=M(Un,[["render",zn]]),Gn=$({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=W(),{hasSidebar:n}=Z();return(a,r)=>(l(),p("div",{class:N(["VPContent",{"has-sidebar":s(n),"is-home":s(t).layout==="home"}]),id:"VPContent"},[s(e).isNotFound?v(a.$slots,"not-found",{key:0},()=>[y(da)],!0):s(t).layout==="page"?(l(),S(Kn,{key:1},{"page-top":m(()=>[v(a.$slots,"page-top",{},void 0,!0)]),"page-bottom":m(()=>[v(a.$slots,"page-bottom",{},void 0,!0)]),_:3})):s(t).layout==="home"?(l(),S(Fn,{key:2},{"home-hero-before":m(()=>[v(a.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":m(()=>[v(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":m(()=>[v(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":m(()=>[v(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":m(()=>[v(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":m(()=>[v(a.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":m(()=>[v(a.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":m(()=>[v(a.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":m(()=>[v(a.$slots,"home-features-after",{},void 0,!0)]),_:3})):s(t).layout&&s(t).layout!=="doc"?(l(),S(q(s(t).layout),{key:3})):(l(),S(ln,{key:4},{"doc-top":m(()=>[v(a.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":m(()=>[v(a.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":m(()=>[v(a.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":m(()=>[v(a.$slots,"doc-before",{},void 0,!0)]),"doc-after":m(()=>[v(a.$slots,"doc-after",{},void 0,!0)]),"aside-top":m(()=>[v(a.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":m(()=>[v(a.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":m(()=>[v(a.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":m(()=>[v(a.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":m(()=>[v(a.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":m(()=>[v(a.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),qn=M(Gn,[["__scopeId","data-v-91765379"]]),Jn={class:"container"},Yn=["innerHTML"],Xn=["innerHTML"],Qn=$({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=W(),{hasSidebar:n}=Z();return(a,r)=>s(e).footer&&s(t).footer!==!1?(l(),p("footer",{key:0,class:N(["VPFooter",{"has-sidebar":s(n)}])},[d("div",Jn,[s(e).footer.message?(l(),p("p",{key:0,class:"message",innerHTML:s(e).footer.message},null,8,Yn)):k("",!0),s(e).footer.copyright?(l(),p("p",{key:1,class:"copyright",innerHTML:s(e).footer.copyright},null,8,Xn)):k("",!0)])],2)):k("",!0)}}),Zn=M(Qn,[["__scopeId","data-v-c970a860"]]);function eo(){const{theme:o,frontmatter:e}=W(),t=it([]),n=L(()=>t.value.length>0);return we(()=>{t.value=Je(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const to={class:"menu-text"},ao={class:"header"},no={class:"outline"},oo=$({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=W(),n=w(!1),a=w(0),r=w(),u=w();function c(g){var f;(f=r.value)!=null&&f.contains(g.target)||(n.value=!1)}H(n,g=>{if(g){document.addEventListener("click",c);return}document.removeEventListener("click",c)}),Be("Escape",()=>{n.value=!1}),we(()=>{n.value=!1});function i(){n.value=!n.value,a.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function h(g){g.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),Pe(()=>{n.value=!1}))}function b(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(g,f)=>(l(),p("div",{class:"VPLocalNavOutlineDropdown",style:de({"--vp-vh":a.value+"px"}),ref_key:"main",ref:r},[g.headers.length>0?(l(),p("button",{key:0,onClick:i,class:N({open:n.value})},[d("span",to,A(s(ft)(s(t))),1),f[0]||(f[0]=d("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(l(),p("button",{key:1,onClick:b},A(s(t).returnToTopLabel||"Return to top"),1)),y(le,{name:"flyout"},{default:m(()=>[n.value?(l(),p("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:h},[d("div",ao,[d("a",{class:"top-link",href:"#",onClick:b},A(s(t).returnToTopLabel||"Return to top"),1)]),d("div",no,[y(bt,{headers:g.headers},null,8,["headers"])])],512)):k("",!0)]),_:1})],4))}}),so=M(oo,[["__scopeId","data-v-168ddf5d"]]),io={class:"container"},lo=["aria-expanded"],ro={class:"menu-text"},uo=$({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=W(),{hasSidebar:n}=Z(),{headers:a}=eo(),{y:r}=rt(),u=w(0);D(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),we(()=>{a.value=Je(t.value.outline??e.value.outline)});const c=L(()=>a.value.length===0),i=L(()=>c.value&&!n.value),h=L(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:c.value,fixed:i.value}));return(b,g)=>s(t).layout!=="home"&&(!i.value||s(r)>=u.value)?(l(),p("div",{key:0,class:N(h.value)},[d("div",io,[s(n)?(l(),p("button",{key:0,class:"menu","aria-expanded":b.open,"aria-controls":"VPSidebarNav",onClick:g[0]||(g[0]=f=>b.$emit("open-menu"))},[g[1]||(g[1]=d("span",{class:"vpi-align-left menu-icon"},null,-1)),d("span",ro,A(s(e).sidebarMenuLabel||"Menu"),1)],8,lo)):k("",!0),y(so,{headers:s(a),navHeight:u.value},null,8,["headers","navHeight"])])],2)):k("",!0)}}),co=M(uo,[["__scopeId","data-v-070ab83d"]]);function po(){const o=w(!1);function e(){o.value=!0,window.addEventListener("resize",a)}function t(){o.value=!1,window.removeEventListener("resize",a)}function n(){o.value?t():e()}function a(){window.outerWidth>=768&&t()}const r=ve();return H(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const ho={},vo={class:"VPSwitch",type:"button",role:"switch"},mo={class:"check"},fo={key:0,class:"icon"};function bo(o,e){return l(),p("button",vo,[d("span",mo,[o.$slots.default?(l(),p("span",fo,[v(o.$slots,"default",{},void 0,!0)])):k("",!0)])])}const go=M(ho,[["render",bo],["__scopeId","data-v-4a1c76db"]]),_o=$({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=W(),n=K("toggle-appearance",()=>{e.value=!e.value}),a=w("");return Ue(()=>{a.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,u)=>(l(),S(go,{title:a.value,class:"VPSwitchAppearance","aria-checked":s(e),onClick:s(n)},{default:m(()=>u[0]||(u[0]=[d("span",{class:"vpi-sun sun"},null,-1),d("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),Ye=M(_o,[["__scopeId","data-v-e40a8bb6"]]),yo={key:0,class:"VPNavBarAppearance"},ko=$({__name:"VPNavBarAppearance",setup(o){const{site:e}=W();return(t,n)=>s(e).appearance&&s(e).appearance!=="force-dark"&&s(e).appearance!=="force-auto"?(l(),p("div",yo,[y(Ye)])):k("",!0)}}),$o=M(ko,[["__scopeId","data-v-af096f4a"]]),Xe=w();let gt=!1,Ee=0;function So(o){const e=w(!1);if(Ve){!gt&&Lo(),Ee++;const t=H(Xe,n=>{var a,r,u;n===o.el.value||(a=o.el.value)!=null&&a.contains(n)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});Fe(()=>{t(),Ee--,Ee||wo()})}return Ot(e)}function Lo(){document.addEventListener("focusin",_t),gt=!0,Xe.value=document.activeElement}function wo(){document.removeEventListener("focusin",_t)}function _t(){Xe.value=document.activeElement}const Po={class:"VPMenuLink"},Vo=["innerHTML"],Mo=$({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=W();return(t,n)=>(l(),p("div",Po,[y(J,{class:N({active:s(ie)(s(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:m(()=>[d("span",{innerHTML:t.item.text},null,8,Vo)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),Ae=M(Mo,[["__scopeId","data-v-acbfed09"]]),Ao={class:"VPMenuGroup"},xo={key:0,class:"title"},To=$({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(l(),p("div",Ao,[e.text?(l(),p("p",xo,A(e.text),1)):k("",!0),(l(!0),p(O,null,F(e.items,n=>(l(),p(O,null,["link"in n?(l(),S(Ae,{key:0,item:n},null,8,["item"])):k("",!0)],64))),256))]))}}),No=M(To,[["__scopeId","data-v-48c802d0"]]),Wo={class:"VPMenu"},Eo={key:0,class:"items"},Ho=$({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(l(),p("div",Wo,[e.items?(l(),p("div",Eo,[(l(!0),p(O,null,F(e.items,n=>(l(),p(O,{key:JSON.stringify(n)},["link"in n?(l(),S(Ae,{key:0,item:n},null,8,["item"])):"component"in n?(l(),S(q(n.component),te({key:1,ref_for:!0},n.props),null,16)):(l(),S(No,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):k("",!0),v(e.$slots,"default",{},void 0,!0)]))}}),Bo=M(Ho,[["__scopeId","data-v-7dd3104a"]]),Oo=["aria-expanded","aria-label"],Io={key:0,class:"text"},Co=["innerHTML"],Ro={key:1,class:"vpi-more-horizontal icon"},jo={class:"menu"},Fo=$({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=w(!1),t=w();So({el:t,onBlur:n});function n(){e.value=!1}return(a,r)=>(l(),p("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=u=>e.value=!0),onMouseleave:r[2]||(r[2]=u=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":a.label,onClick:r[0]||(r[0]=u=>e.value=!e.value)},[a.button||a.icon?(l(),p("span",Io,[a.icon?(l(),p("span",{key:0,class:N([a.icon,"option-icon"])},null,2)):k("",!0),a.button?(l(),p("span",{key:1,innerHTML:a.button},null,8,Co)):k("",!0),r[3]||(r[3]=d("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(l(),p("span",Ro))],8,Oo),d("div",jo,[y(Bo,{items:a.items},{default:m(()=>[v(a.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),xe=M(Fo,[["__scopeId","data-v-04f5c5e9"]]),Uo=["href","aria-label","innerHTML"],Do=$({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=w();D(async()=>{var r;await Pe();const a=(r=t.value)==null?void 0:r.children[0];a instanceof HTMLElement&&a.className.startsWith("vpi-social-")&&(getComputedStyle(a).maskImage||getComputedStyle(a).webkitMaskImage)==="none"&&a.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const n=L(()=>typeof e.icon=="object"?e.icon.svg:``);return(a,r)=>(l(),p("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:a.link,"aria-label":a.ariaLabel??(typeof a.icon=="string"?a.icon:""),target:"_blank",rel:"noopener",innerHTML:n.value},null,8,Uo))}}),zo=M(Do,[["__scopeId","data-v-d26d30cb"]]),Ko={class:"VPSocialLinks"},Go=$({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(l(),p("div",Ko,[(l(!0),p(O,null,F(e.links,({link:n,icon:a,ariaLabel:r})=>(l(),S(zo,{key:n,icon:a,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),Qe=M(Go,[["__scopeId","data-v-ee7a9424"]]),qo={key:0,class:"group translations"},Jo={class:"trans-title"},Yo={key:1,class:"group"},Xo={class:"item appearance"},Qo={class:"label"},Zo={class:"appearance-action"},es={key:2,class:"group"},ts={class:"item social-links"},as=$({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=W(),{localeLinks:n,currentLang:a}=be({correspondingLink:!0}),r=L(()=>n.value.length&&a.value.label||e.value.appearance||t.value.socialLinks);return(u,c)=>r.value?(l(),S(xe,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:m(()=>[s(n).length&&s(a).label?(l(),p("div",qo,[d("p",Jo,A(s(a).label),1),(l(!0),p(O,null,F(s(n),i=>(l(),S(Ae,{key:i.link,item:i},null,8,["item"]))),128))])):k("",!0),s(e).appearance&&s(e).appearance!=="force-dark"&&s(e).appearance!=="force-auto"?(l(),p("div",Yo,[d("div",Xo,[d("p",Qo,A(s(t).darkModeSwitchLabel||"Appearance"),1),d("div",Zo,[y(Ye)])])])):k("",!0),s(t).socialLinks?(l(),p("div",es,[d("div",ts,[y(Qe,{class:"social-links-list",links:s(t).socialLinks},null,8,["links"])])])):k("",!0)]),_:1})):k("",!0)}}),ns=M(as,[["__scopeId","data-v-925effce"]]),os=["aria-expanded"],ss=$({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(l(),p("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},t[1]||(t[1]=[d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)]),10,os))}}),is=M(ss,[["__scopeId","data-v-5dea55bf"]]),ls=["innerHTML"],rs=$({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=W();return(t,n)=>(l(),S(J,{class:N({VPNavBarMenuLink:!0,active:s(ie)(s(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:m(()=>[d("span",{innerHTML:t.item.text},null,8,ls)]),_:1},8,["class","href","target","rel","no-icon"]))}}),us=M(rs,[["__scopeId","data-v-956ec74c"]]),yt=$({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=W(),n=r=>"component"in r?!1:"link"in r?ie(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),a=L(()=>n(e.item));return(r,u)=>(l(),S(xe,{class:N({VPNavBarMenuGroup:!0,active:s(ie)(s(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||a.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),ds={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},cs=$({__name:"VPNavBarMenu",setup(o){const{theme:e}=W();return(t,n)=>s(e).nav?(l(),p("nav",ds,[n[0]||(n[0]=d("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(l(!0),p(O,null,F(s(e).nav,a=>(l(),p(O,{key:JSON.stringify(a)},["link"in a?(l(),S(us,{key:0,item:a},null,8,["item"])):"component"in a?(l(),S(q(a.component),te({key:1,ref_for:!0},a.props),null,16)):(l(),S(yt,{key:2,item:a},null,8,["item"]))],64))),128))])):k("",!0)}}),ps=M(cs,[["__scopeId","data-v-e6d46098"]]);function hs(o){const{localeIndex:e,theme:t}=W();function n(a){var P,V,x;const r=a.split("."),u=(P=t.value.search)==null?void 0:P.options,c=u&&typeof u=="object",i=c&&((x=(V=u.locales)==null?void 0:V[e.value])==null?void 0:x.translations)||null,h=c&&u.translations||null;let b=i,g=h,f=o;const _=r.pop();for(const B of r){let j=null;const E=f==null?void 0:f[B];E&&(j=f=E);const C=g==null?void 0:g[B];C&&(j=g=C);const T=b==null?void 0:b[B];T&&(j=b=T),E||(f=j),C||(g=j),T||(b=j)}return(b==null?void 0:b[_])??(g==null?void 0:g[_])??(f==null?void 0:f[_])??""}return n}const vs=["aria-label"],ms={class:"DocSearch-Button-Container"},fs={class:"DocSearch-Button-Placeholder"},at=$({__name:"VPNavBarSearchButton",setup(o){const t=hs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,a)=>(l(),p("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":s(t)("button.buttonAriaLabel")},[d("span",ms,[a[0]||(a[0]=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),d("span",fs,A(s(t)("button.buttonText")),1)]),a[1]||(a[1]=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,vs))}}),bs={class:"VPNavBarSearch"},gs={id:"local-search"},_s={key:1,id:"docsearch"},ys=$({__name:"VPNavBarSearch",setup(o){const e=It(()=>Ct(()=>import("./VPLocalSearchBox.CnqCziHd.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=W(),a=w(!1),r=w(!1);D(()=>{});function u(){a.value||(a.value=!0,setTimeout(c,16))}function c(){const g=new Event("keydown");g.key="k",g.metaKey=!0,window.dispatchEvent(g),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||c()},16)}function i(g){const f=g.target,_=f.tagName;return f.isContentEditable||_==="INPUT"||_==="SELECT"||_==="TEXTAREA"}const h=w(!1);Be("k",g=>{(g.ctrlKey||g.metaKey)&&(g.preventDefault(),h.value=!0)}),Be("/",g=>{i(g)||(g.preventDefault(),h.value=!0)});const b="local";return(g,f)=>{var _;return l(),p("div",bs,[s(b)==="local"?(l(),p(O,{key:0},[h.value?(l(),S(s(e),{key:0,onClose:f[0]||(f[0]=P=>h.value=!1)})):k("",!0),d("div",gs,[y(at,{onClick:f[1]||(f[1]=P=>h.value=!0)})])],64)):s(b)==="algolia"?(l(),p(O,{key:1},[a.value?(l(),S(s(t),{key:0,algolia:((_=s(n).search)==null?void 0:_.options)??s(n).algolia,onVnodeBeforeMount:f[2]||(f[2]=P=>r.value=!0)},null,8,["algolia"])):k("",!0),r.value?k("",!0):(l(),p("div",_s,[y(at,{onClick:u})]))],64)):k("",!0)])}}}),ks=$({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=W();return(t,n)=>s(e).socialLinks?(l(),S(Qe,{key:0,class:"VPNavBarSocialLinks",links:s(e).socialLinks},null,8,["links"])):k("",!0)}}),$s=M(ks,[["__scopeId","data-v-164c457f"]]),Ss=["href","rel","target"],Ls=["innerHTML"],ws={key:2},Ps=$({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=W(),{hasSidebar:n}=Z(),{currentLang:a}=be(),r=L(()=>{var i;return typeof t.value.logoLink=="string"?t.value.logoLink:(i=t.value.logoLink)==null?void 0:i.link}),u=L(()=>{var i;return typeof t.value.logoLink=="string"||(i=t.value.logoLink)==null?void 0:i.rel}),c=L(()=>{var i;return typeof t.value.logoLink=="string"||(i=t.value.logoLink)==null?void 0:i.target});return(i,h)=>(l(),p("div",{class:N(["VPNavBarTitle",{"has-sidebar":s(n)}])},[d("a",{class:"title",href:r.value??s(qe)(s(a).link),rel:u.value,target:c.value},[v(i.$slots,"nav-bar-title-before",{},void 0,!0),s(t).logo?(l(),S($e,{key:0,class:"logo",image:s(t).logo},null,8,["image"])):k("",!0),s(t).siteTitle?(l(),p("span",{key:1,innerHTML:s(t).siteTitle},null,8,Ls)):s(t).siteTitle===void 0?(l(),p("span",ws,A(s(e).title),1)):k("",!0),v(i.$slots,"nav-bar-title-after",{},void 0,!0)],8,Ss)],2))}}),Vs=M(Ps,[["__scopeId","data-v-0f4f798b"]]),Ms={class:"items"},As={class:"title"},xs=$({__name:"VPNavBarTranslations",setup(o){const{theme:e}=W(),{localeLinks:t,currentLang:n}=be({correspondingLink:!0});return(a,r)=>s(t).length&&s(n).label?(l(),S(xe,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:s(e).langMenuLabel||"Change language"},{default:m(()=>[d("div",Ms,[d("p",As,A(s(n).label),1),(l(!0),p(O,null,F(s(t),u=>(l(),S(Ae,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):k("",!0)}}),Ts=M(xs,[["__scopeId","data-v-c80d9ad0"]]),Ns={class:"wrapper"},Ws={class:"container"},Es={class:"title"},Hs={class:"content"},Bs={class:"content-body"},Os=$({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=rt(),{hasSidebar:n}=Z(),{frontmatter:a}=W(),r=w({});return Ue(()=>{r.value={"has-sidebar":n.value,home:a.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(u,c)=>(l(),p("div",{class:N(["VPNavBar",r.value])},[d("div",Ns,[d("div",Ws,[d("div",Es,[y(Vs,null,{"nav-bar-title-before":m(()=>[v(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":m(()=>[v(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",Hs,[d("div",Bs,[v(u.$slots,"nav-bar-content-before",{},void 0,!0),y(ys,{class:"search"}),y(ps,{class:"menu"}),y(Ts,{class:"translations"}),y($o,{class:"appearance"}),y($s,{class:"social-links"}),y(ns,{class:"extra"}),v(u.$slots,"nav-bar-content-after",{},void 0,!0),y(is,{class:"hamburger",active:u.isScreenOpen,onClick:c[0]||(c[0]=i=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),c[1]||(c[1]=d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1))],2))}}),Is=M(Os,[["__scopeId","data-v-822684d1"]]),Cs={key:0,class:"VPNavScreenAppearance"},Rs={class:"text"},js=$({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=W();return(n,a)=>s(e).appearance&&s(e).appearance!=="force-dark"&&s(e).appearance!=="force-auto"?(l(),p("div",Cs,[d("p",Rs,A(s(t).darkModeSwitchLabel||"Appearance"),1),y(Ye)])):k("",!0)}}),Fs=M(js,[["__scopeId","data-v-ffb44008"]]),Us=["innerHTML"],Ds=$({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=K("close-screen");return(t,n)=>(l(),S(J,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:s(e)},{default:m(()=>[d("span",{innerHTML:t.item.text},null,8,Us)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),zs=M(Ds,[["__scopeId","data-v-735512b8"]]),Ks=["innerHTML"],Gs=$({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=K("close-screen");return(t,n)=>(l(),S(J,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:s(e)},{default:m(()=>[d("span",{innerHTML:t.item.text},null,8,Ks)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),kt=M(Gs,[["__scopeId","data-v-372ae7c0"]]),qs={class:"VPNavScreenMenuGroupSection"},Js={key:0,class:"title"},Ys=$({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(l(),p("div",qs,[e.text?(l(),p("p",Js,A(e.text),1)):k("",!0),(l(!0),p(O,null,F(e.items,n=>(l(),S(kt,{key:n.text,item:n},null,8,["item"]))),128))]))}}),Xs=M(Ys,[["__scopeId","data-v-4b8941ac"]]),Qs=["aria-controls","aria-expanded"],Zs=["innerHTML"],ei=["id"],ti={key:0,class:"item"},ai={key:1,class:"item"},ni={key:2,class:"group"},oi=$({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=w(!1),n=L(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function a(){t.value=!t.value}return(r,u)=>(l(),p("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:a},[d("span",{class:"button-text",innerHTML:r.text},null,8,Zs),u[0]||(u[0]=d("span",{class:"vpi-plus button-icon"},null,-1))],8,Qs),d("div",{id:n.value,class:"items"},[(l(!0),p(O,null,F(r.items,c=>(l(),p(O,{key:JSON.stringify(c)},["link"in c?(l(),p("div",ti,[y(kt,{item:c},null,8,["item"])])):"component"in c?(l(),p("div",ai,[(l(),S(q(c.component),te({ref_for:!0},c.props,{"screen-menu":""}),null,16))])):(l(),p("div",ni,[y(Xs,{text:c.text,items:c.items},null,8,["text","items"])]))],64))),128))],8,ei)],2))}}),$t=M(oi,[["__scopeId","data-v-875057a5"]]),si={key:0,class:"VPNavScreenMenu"},ii=$({__name:"VPNavScreenMenu",setup(o){const{theme:e}=W();return(t,n)=>s(e).nav?(l(),p("nav",si,[(l(!0),p(O,null,F(s(e).nav,a=>(l(),p(O,{key:JSON.stringify(a)},["link"in a?(l(),S(zs,{key:0,item:a},null,8,["item"])):"component"in a?(l(),S(q(a.component),te({key:1,ref_for:!0},a.props,{"screen-menu":""}),null,16)):(l(),S($t,{key:2,text:a.text||"",items:a.items},null,8,["text","items"]))],64))),128))])):k("",!0)}}),li=$({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=W();return(t,n)=>s(e).socialLinks?(l(),S(Qe,{key:0,class:"VPNavScreenSocialLinks",links:s(e).socialLinks},null,8,["links"])):k("",!0)}}),ri={class:"list"},ui=$({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=be({correspondingLink:!0}),n=w(!1);function a(){n.value=!n.value}return(r,u)=>s(e).length&&s(t).label?(l(),p("div",{key:0,class:N(["VPNavScreenTranslations",{open:n.value}])},[d("button",{class:"title",onClick:a},[u[0]||(u[0]=d("span",{class:"vpi-languages icon lang"},null,-1)),Q(" "+A(s(t).label)+" ",1),u[1]||(u[1]=d("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),d("ul",ri,[(l(!0),p(O,null,F(s(e),c=>(l(),p("li",{key:c.link,class:"item"},[y(J,{class:"link",href:c.link},{default:m(()=>[Q(A(c.text),1)]),_:2},1032,["href"])]))),128))])],2)):k("",!0)}}),di=M(ui,[["__scopeId","data-v-362991c2"]]),ci={class:"container"},pi=$({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=w(null),t=ut(Ve?document.body:null);return(n,a)=>(l(),S(le,{name:"fade",onEnter:a[0]||(a[0]=r=>t.value=!0),onAfterLeave:a[1]||(a[1]=r=>t.value=!1)},{default:m(()=>[n.open?(l(),p("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",ci,[v(n.$slots,"nav-screen-content-before",{},void 0,!0),y(ii,{class:"menu"}),y(di,{class:"translations"}),y(Fs,{class:"appearance"}),y(li,{class:"social-links"}),v(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):k("",!0)]),_:3}))}}),hi=M(pi,[["__scopeId","data-v-833aabba"]]),vi={key:0,class:"VPNav"},mi=$({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=po(),{frontmatter:a}=W(),r=L(()=>a.value.navbar!==!1);return De("close-screen",t),Le(()=>{Ve&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,c)=>r.value?(l(),p("header",vi,[y(Is,{"is-screen-open":s(e),onToggleScreen:s(n)},{"nav-bar-title-before":m(()=>[v(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":m(()=>[v(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":m(()=>[v(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":m(()=>[v(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),y(hi,{open:s(e)},{"nav-screen-content-before":m(()=>[v(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":m(()=>[v(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):k("",!0)}}),fi=M(mi,[["__scopeId","data-v-f1e365da"]]),bi=["role","tabindex"],gi={key:1,class:"items"},_i=$({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:a,isActiveLink:r,hasActiveLink:u,hasChildren:c,toggle:i}=va(L(()=>e.item)),h=L(()=>c.value?"section":"div"),b=L(()=>a.value?"a":"div"),g=L(()=>c.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),f=L(()=>a.value?void 0:"button"),_=L(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":a.value},{"is-active":r.value},{"has-active":u.value}]);function P(x){"key"in x&&x.key!=="Enter"||!e.item.link&&i()}function V(){e.item.link&&i()}return(x,B)=>{const j=ae("VPSidebarItem",!0);return l(),S(q(h.value),{class:N(["VPSidebarItem",_.value])},{default:m(()=>[x.item.text?(l(),p("div",te({key:0,class:"item",role:f.value},Rt(x.item.items?{click:P,keydown:P}:{},!0),{tabindex:x.item.items&&0}),[B[1]||(B[1]=d("div",{class:"indicator"},null,-1)),x.item.link?(l(),S(J,{key:0,tag:b.value,class:"link",href:x.item.link,rel:x.item.rel,target:x.item.target},{default:m(()=>[(l(),S(q(g.value),{class:"text",innerHTML:x.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(l(),S(q(g.value),{key:1,class:"text",innerHTML:x.item.text},null,8,["innerHTML"])),x.item.collapsed!=null&&x.item.items&&x.item.items.length?(l(),p("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:V,onKeydown:jt(V,["enter"]),tabindex:"0"},B[0]||(B[0]=[d("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):k("",!0)],16,bi)):k("",!0),x.item.items&&x.item.items.length?(l(),p("div",gi,[x.depth<5?(l(!0),p(O,{key:0},F(x.item.items,E=>(l(),S(j,{key:E.text,item:E,depth:x.depth+1},null,8,["item","depth"]))),128)):k("",!0)])):k("",!0)]),_:1},8,["class"])}}}),yi=M(_i,[["__scopeId","data-v-a4b0d9bf"]]),ki=$({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=w(!0);let t=null;return D(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Ft(()=>{t!=null&&(clearTimeout(t),t=null)}),(n,a)=>(l(!0),p(O,null,F(n.items,r=>(l(),p("div",{key:r.text,class:N(["group",{"no-transition":e.value}])},[y(yi,{item:r,depth:0},null,8,["item"])],2))),128))}}),$i=M(ki,[["__scopeId","data-v-9e426adc"]]),Si={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Li=$({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=Z(),n=o,a=w(null),r=ut(Ve?document.body:null);H([n,a],()=>{var c;n.open?(r.value=!0,(c=a.value)==null||c.focus()):r.value=!1},{immediate:!0,flush:"post"});const u=w(0);return H(e,()=>{u.value+=1},{deep:!0}),(c,i)=>s(t)?(l(),p("aside",{key:0,class:N(["VPSidebar",{open:c.open}]),ref_key:"navEl",ref:a,onClick:i[0]||(i[0]=Ut(()=>{},["stop"]))},[i[2]||(i[2]=d("div",{class:"curtain"},null,-1)),d("nav",Si,[i[1]||(i[1]=d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),v(c.$slots,"sidebar-nav-before",{},void 0,!0),(l(),S($i,{items:s(e),key:u.value},null,8,["items"])),v(c.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):k("",!0)}}),wi=M(Li,[["__scopeId","data-v-18756405"]]),Pi=$({__name:"VPSkipLink",setup(o){const{theme:e}=W(),t=ve(),n=w();H(()=>t.path,()=>n.value.focus());function a({target:r}){const u=document.getElementById(decodeURIComponent(r.hash).slice(1));if(u){const c=()=>{u.removeAttribute("tabindex"),u.removeEventListener("blur",c)};u.setAttribute("tabindex","-1"),u.addEventListener("blur",c),u.focus(),window.scrollTo(0,0)}}return(r,u)=>(l(),p(O,null,[d("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:a},A(s(e).skipToContentLabel||"Skip to content"),1)],64))}}),Vi=M(Pi,[["__scopeId","data-v-492508fc"]]),Mi=$({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=Z(),a=ve();H(()=>a.path,n),ha(e,n);const{frontmatter:r}=W(),u=dt(),c=L(()=>!!u["home-hero-image"]);return De("hero-image-slot-exists",c),(i,h)=>{const b=ae("Content");return s(r).layout!==!1?(l(),p("div",{key:0,class:N(["Layout",s(r).pageClass])},[v(i.$slots,"layout-top",{},void 0,!0),y(Vi),y(ea,{class:"backdrop",show:s(e),onClick:s(n)},null,8,["show","onClick"]),y(fi,null,{"nav-bar-title-before":m(()=>[v(i.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":m(()=>[v(i.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":m(()=>[v(i.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":m(()=>[v(i.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":m(()=>[v(i.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":m(()=>[v(i.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),y(co,{open:s(e),onOpenMenu:s(t)},null,8,["open","onOpenMenu"]),y(wi,{open:s(e)},{"sidebar-nav-before":m(()=>[v(i.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":m(()=>[v(i.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),y(qn,null,{"page-top":m(()=>[v(i.$slots,"page-top",{},void 0,!0)]),"page-bottom":m(()=>[v(i.$slots,"page-bottom",{},void 0,!0)]),"not-found":m(()=>[v(i.$slots,"not-found",{},void 0,!0)]),"home-hero-before":m(()=>[v(i.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":m(()=>[v(i.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":m(()=>[v(i.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":m(()=>[v(i.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":m(()=>[v(i.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":m(()=>[v(i.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":m(()=>[v(i.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":m(()=>[v(i.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":m(()=>[v(i.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":m(()=>[v(i.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":m(()=>[v(i.$slots,"doc-before",{},void 0,!0)]),"doc-after":m(()=>[v(i.$slots,"doc-after",{},void 0,!0)]),"doc-top":m(()=>[v(i.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":m(()=>[v(i.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":m(()=>[v(i.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":m(()=>[v(i.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":m(()=>[v(i.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":m(()=>[v(i.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":m(()=>[v(i.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":m(()=>[v(i.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),y(Zn),v(i.$slots,"layout-bottom",{},void 0,!0)],2)):(l(),S(b,{key:1}))}}}),Ai=M(Mi,[["__scopeId","data-v-a9a9e638"]]),nt={Layout:Ai,enhanceApp:({app:o})=>{o.component("Badge",Xt)}},xi=$({__name:"NuInputHighlight",props:{active:{type:Boolean}},setup(o){return(e,t)=>(l(),p("div",{class:N(["input-highlight",{active:!!e.active}]),transition:"outline duration-200 ease"},[v(e.$slots,"default",{},void 0,!0)],2))}}),ge=M(xi,[["__scopeId","data-v-02726a5a"]]),Ti=["title","disabled"],Ni=["value","name","checked","aria-checked","disabled"],Wi={"inline-flex":"~","items-center":"","align-middle":""},Ei=$({__name:"Option",props:{name:{},value:{},icon:{},text:{},title:{},disabled:{type:Boolean},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:e}){const t=o,n=e,a=L({get:()=>t.modelValue,set:r=>n("update:modelValue",r)});return(r,u)=>(l(),p("label",{title:t.title,class:N(["nolebase-ui-input-horizontal-option",{active:a.value===t.value&&!t.disabled,disabled:t.disabled}]),disabled:t.disabled,text:"[14px]","w-full":"","inline-flex":"","cursor-pointer":"","select-none":"","items-center":"","justify-center":"","rounded-md":"","px-3":"","py-2":"","font-medium":""},[ce(d("input",{"onUpdate:modelValue":u[0]||(u[0]=c=>a.value=c),type:"radio",value:t.value,name:t.name,checked:a.value===t.value,"aria-checked":a.value===t.value,disabled:t.disabled,role:"radio",hidden:""},null,8,Ni),[[Dt,a.value]]),d("span",Wi,[t.icon?(l(),p("span",{key:0,class:N(t.icon),"aria-hidden":"true"},null,2)):k("",!0),t.text?(l(),p("span",{key:1,class:N([t.icon?"ml-1":""])},A(t.text),3)):k("",!0)])],10,Ti))}}),Hi={flex:"~ row",bg:"zinc-100 dark:zinc-900",text:"sm zinc-400 dark:zinc-500","w-full":"","appearance-none":"","rounded-lg":"","rounded-md":"","border-none":"","p-1":"","space-x-2":""},_e=$({__name:"index",props:{disabled:{type:Boolean},modelValue:{},options:{}},emits:["update:modelValue"],setup(o,{emit:e}){const t=o,n=e,a=L({get:()=>t.modelValue,set:r=>n("update:modelValue",r)});return(r,u)=>(l(),p("fieldset",Hi,[(l(!0),p(O,null,F(t.options,c=>(l(),S(Ei,{key:c.name,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=i=>a.value=i),name:c.name,icon:c.icon,title:c.title,text:c.text,"aria-label":c.ariaLabel,disabled:t.disabled,value:c.value},null,8,["modelValue","name","icon","title","text","aria-label","disabled","value"]))),128))]))}}),Bi={flex:"~ row",bg:"zinc-200/50 dark:zinc-800/50","w-full":"","appearance-none":"","rounded-lg":"","border-none":"","p-1":"","space-x-2":"",text:"sm zinc-300"},Oi={class:"nolebase-ui-slider nolebase-ui-slider",relative:"","w-full":"","select-none":""},Ii=["name","min","max","disabled","step"],Ci=$({__name:"NuInputSlider",props:{name:{default:"Slider"},disabled:{type:Boolean},modelValue:{default:0},min:{default:0},max:{default:100},step:{default:1},formatter:{}},emits:["update:modelValue"],setup(o,{emit:e}){const t=o,n=e,a=w(null),r=w(null),u=w(t.modelValue),c=w(t.min),i=w(t.max),h=ct(a),b=w(!1);D(()=>{a.value&&(a.value.style.setProperty("--nolebase-ui-slider-value",u.value.toString()),a.value.style.setProperty("--nolebase-ui-slider-min",t.min?t.min.toString():"0"),a.value.style.setProperty("--nolebase-ui-slider-max",t.max?t.max.toString():"100"),a.value.addEventListener("input",()=>{a.value&&a.value.style.setProperty("--nolebase-ui-slider-value",a.value.value.toString())}))});function g(f,_){if(!f||!_)return;const P=t.max?t.max:100,V=t.min?t.min:0,x=(u.value-V)/(P-V),B=f.getBoundingClientRect(),E=(_.getBoundingClientRect().width-32)/2;_.style.setProperty("left",`${x*(B.width-32)-E}px`)}return H(u,f=>{fi.value&&(f=i.value),n("update:modelValue",f)}),H(c,f=>{u.value>=f||(u.value=f)}),H(i,f=>{u.value<=f||(u.value=f)}),H(h,()=>{b.value=!0,setTimeout(()=>{if(!h.value){b.value=!1;return}if(!a.value){b.value=!1;return}if(!r.value){b.value=!1;return}g(a.value,r.value),b.value=!1},50)}),H(u,()=>{a.value&&r.value&&g(a.value,r.value)}),(f,_)=>(l(),p("div",Bi,[d("label",Oi,[ce(d("input",{ref_key:"inputSliderRef",ref:a,"onUpdate:modelValue":_[0]||(_[0]=P=>u.value=P),type:"range",name:t.name,min:t.min,max:t.max,disabled:t.disabled,class:N([{disabled:t.disabled},"nolebase-ui-slider-input nolebase-ui-slider-input-progress-indicator"]),step:t.step,"w-full":""},null,10,Ii),[[zt,u.value]]),y(le,{name:"fade"},{default:m(()=>[ce(d("span",{ref_key:"inputSliderTooltipRef",ref:r,class:N(["nolebase-ui-slider-tooltip",{"opacity-0":s(h)&&b.value}]),absolute:"","min-w-12":"","rounded-lg":"","bg-black":"","p-2":"","text-center":"","text-white":""},A(t.formatter?t.formatter(u.value):u.value),3),[[Me,s(h)]])]),_:1})])]))}}),St=M(Ci,[["__scopeId","data-v-20d0b729"]]),X="0px",Lt=$({__name:"NuVerticalTransition",props:{duration:{default:250},easingEnter:{default:"ease-in-out"},easingLeave:{default:"ease-in-out"},opacityClosed:{default:0},opacityOpened:{default:1}},setup(o){const e=o;function t(i){return{height:i.style.height,width:i.style.width,position:i.style.position,visibility:i.style.visibility,overflow:i.style.overflow,paddingTop:i.style.paddingTop,paddingBottom:i.style.paddingBottom,borderTopWidth:i.style.borderTopWidth,borderBottomWidth:i.style.borderBottomWidth,marginTop:i.style.marginTop,marginBottom:i.style.marginBottom}}function n(i,h){const{width:b}=getComputedStyle(i);i.style.width=b,i.style.position="absolute",i.style.visibility="hidden",i.style.height="";const{height:g}=getComputedStyle(i);return i.style.width=h.width,i.style.position=h.position,i.style.visibility=h.visibility,i.style.height=X,i.style.overflow="hidden",h.height&&h.height!==X?h.height:g}function a(i,h,b,g,f){const _=i.animate(g,f);i.style.height=h.height,_.onfinish=()=>{i.style.overflow=h.overflow,b()}}function r(i,h){return[{height:X,opacity:e.opacityClosed,paddingTop:X,paddingBottom:X,borderTopWidth:X,borderBottomWidth:X,marginTop:X,marginBottom:X},{height:i,opacity:e.opacityOpened,paddingTop:h.paddingTop,paddingBottom:h.paddingBottom,borderTopWidth:h.borderTopWidth,borderBottomWidth:h.borderBottomWidth,marginTop:h.marginTop,marginBottom:h.marginBottom}]}function u(i,h){const b=i,g=t(b),f=n(b,g),_=r(f,g),P={duration:e.duration,easing:e.easingEnter};a(b,g,h,_,P)}function c(i,h){const b=i,g=t(b),{height:f}=getComputedStyle(b);b.style.height=f,b.style.overflow="hidden";const _=r(f,g).reverse(),P={duration:e.duration,easing:e.easingLeave};a(b,g,h,_,P)}return(i,h)=>(l(),S(le,{css:!1,onEnter:u,onLeave:c},{default:m(()=>[v(i.$slots,"default")]),_:3}))}});function He(o,e){if(!e)return;const t=String(o).split(".");let n=e;for(const a of t)if(n=n==null?void 0:n[a],!n)return;return typeof n=="string"?n:String(n)}function Ri(o,e,t){const{locales:n,defaultLocales:a}=t;if(!n&&!a||!o)return e;let r=n[o];r||(r=a[o],r||(r=t.defaultEnLocale));const u=He(e,r);if(u)return u;const c=a[o];if(c){const h=He(e,c);if(h)return h}const i=He(e,t.defaultEnLocale);return i||e}function ji(o,e,t){return()=>{const n=K(o,{locales:{}}),{lang:a}=Se(),r=L(()=>a.value||"en");return{t(u,c){const i=L(()=>Ri(r.value,u,{locales:n.locales||{},defaultLocales:e,defaultEnLocale:t}));return i.value?c!=null&&c.omitEmpty&&i.value===u?"":!c||!c.props?i.value:L(()=>{let h=i.value;return Object.entries(c.props||{}).forEach(([b,g])=>{h=h.replace(new RegExp(`{{${b}}}`,"g"),String(g))}),h}).value:c!=null&&c.omitEmpty?"":u}}}}function Ze(){const o=ne();return{trigger:e=>{e.classList.add("VPNolebaseEnhancedReadabilitiesLayoutSwitchAnimated"),ze(()=>{o.value&&e&&e.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchAnimated")},5e3)()}}}const re=Symbol("vitepress-nolebase-enhanced-readabilities"),et="vitepress-nolebase-enhanced-readabilities-layout-switch-mode",Fi="vitepress-nolebase-enhanced-readabilities-content-layout-max-width",Ui="vitepress-nolebase-enhanced-readabilities-page-layout-max-width",wt="vitepress-nolebase-enhanced-readabilities-spotlight-mode",Pt="vitepress-nolebase-enhanced-readabilities-spotlight-styles";var R=(o=>(o[o.FullWidth=1]="FullWidth",o[o.Original=3]="Original",o[o.SidebarWidthAdjustableOnly=4]="SidebarWidthAdjustableOnly",o[o.BothWidthAdjustable=5]="BothWidthAdjustable",o))(R||{});const ot=[1,3,4,5];var se=(o=>(o[o.Under=1]="Under",o[o.Aside=2]="Aside",o))(se||{}),he={title:{title:"Enhanced Readability",titleAriaLabel:"Enhanced Readability"},layoutSwitch:{title:"Layout Switch",titleHelpMessage:"Adjust the layout style of VitePress to adapt to different reading needs and screens.",titleAriaLabel:"Layout Switch",titleScreenNavWarningMessage:"No available layout can be switched in mobile screen.",optionFullWidth:"Expand all",optionFullWidthAriaLabel:"Expand all",optionFullWidthHelpMessage:"The sidebar and content area occupy the entire width of the screen.",optionSidebarWidthAdjustableOnly:"Expand sidebar with adjustable values",optionSidebarWidthAdjustableOnlyAriaLabel:"Expand sidebar with adjustable values",optionSidebarWidthAdjustableOnlyHelpMessage:"Expand sidebar width and add a new slider for user to choose and customize their desired width of the maximum width of sidebar can go, but the content area width will remain the same.",optionBothWidthAdjustable:"Expand all with adjustable values",optionBothWidthAdjustableAriaLabel:"Expand all with adjustable values",optionBothWidthAdjustableHelpMessage:"Expand both sidebar and document content and add two new slider for user to choose and customize their desired width of the maximum width of either sidebar or document content can go.",optionOriginalWidth:"Original width",optionOriginalWidthAriaLabel:"Original width",optionOriginalWidthHelpMessage:"The original layout width of VitePress",contentLayoutMaxWidth:{title:"Content Layout Max Width",titleAriaLabel:"Content Layout Max Width",titleHelpMessage:"Adjust the exact value of the document content width of VitePress layout to adapt to different reading needs and screens.",titleScreenNavWarningMessage:"Content Layout Max Width is not available in mobile screen temporarily.",slider:"Adjust the maximum width of the content layout",sliderAriaLabel:"Adjust the maximum width of the content layout",sliderHelpMessage:"A ranged slider for user to choose and customize their desired width of the maximum width of the content layout can go."},pageLayoutMaxWidth:{title:"Page Layout Max Width",titleAriaLabel:"Page Layout Max Width",titleHelpMessage:"Adjust the exact value of the page width of VitePress layout to adapt to different reading needs and screens.",titleScreenNavWarningMessage:"Page Layout Max Width is not available in mobile screen temporarily.",slider:"Adjust the maximum width of the page layout",sliderAriaLabel:"Adjust the maximum width of the page layout",sliderHelpMessage:"A ranged slider for user to choose and customize their desired width of the maximum width of the page layout can go."}},spotlight:{title:"Spotlight",titleAriaLabel:"Spotlight",titleHelpMessage:"Highlight the line where the mouse is currently hovering in the content to optimize for users who may have reading and focusing difficulties.",titleScreenNavWarningMessage:"Spotlight is not available in mobile screen temporarily.",optionOn:"On",optionOnAriaLabel:"On",optionOnHelpMessage:"Turn on Spotlight.",optionOff:"Off",optionOffAriaLabel:"Off",optionOffHelpMessage:"Turn off Spotlight.",styles:{title:"Spotlight Styles",titleAriaLabel:"Spotlight Styles",titleHelpMessage:"Adjust the styles of Spotlight.",titleScreenNavWarningMessage:"Spotlight Styles is not available in mobile screen temporarily.",optionUnder:"Under",optionUnderAriaLabel:"Under",optionUnderHelpMessage:"Add a solid background color underneath the hovering element to highlight where the cursor is currently hovering.",optionAside:"Aside",optionAsideAriaLabel:"Aside",optionAsideHelpMessage:"Add a fixed line with solid color aside the hovering element to highlight where the cursor is currently hovering."}}};he.title;he.layoutSwitch;he.spotlight;var fe={title:{title:"Повышенная читаемость",titleAriaLabel:"Повышенная читаемость"},layoutSwitch:{title:"Макет страницы",titleHelpMessage:"Измените стиль оформления документации, выберите максимально удобный вариант в зависимости от размера вашего экрана и типа устройства.",titleAriaLabel:"Макет страницы",titleScreenNavWarningMessage:"Изменение макета страницы недоступено на экранах мобильных устройств",optionFullWidth:"Развёрнутый",optionFullWidthAriaLabel:"Развёрнутый",optionFullWidthHelpMessage:"Страница и область содержимого занимают всю ширину экрана.",optionSidebarWidthAdjustableOnly:"Настраиваемая ширина страницы",optionSidebarWidthAdjustableOnlyAriaLabel:"Настраиваемая ширина страницы",optionSidebarWidthAdjustableOnlyHelpMessage:"Управление максимальной шириной страницы, область содержимого будет зафиксирована.",optionBothWidthAdjustable:"Полностью настраиваемый",optionBothWidthAdjustableAriaLabel:"Полностью настраиваемый",optionBothWidthAdjustableHelpMessage:"Управление максимальной шириной страницы и содержимого.",optionOriginalWidth:"Оригинальная ширина",optionOriginalWidthAriaLabel:"Оригинальная ширина",optionOriginalWidthHelpMessage:"Ширина страницы, предусмотренная разработчиками VitePress.",contentLayoutMaxWidth:{title:"Максимальная ширина страницы",titleAriaLabel:"Максимальная ширина страницы",titleHelpMessage:"Точное значение ширины страницы можно настроить для различных экранов и адаптировать условиям чтения.",titleScreenNavWarningMessage:"Изменение максимальной ширины страницы недоступно на экранах мобильных устройств.",slider:"Регулеровка максимальной ширины страницы",sliderAriaLabel:"Регулеровка максимальной ширины страницы",sliderHelpMessage:"Ползунок, позволяющий настроить максимальную ширину страницы. Может быть изменён в зависимости от размера экрана."},pageLayoutMaxWidth:{title:"Максимальная ширина содержимого",titleAriaLabel:"Максимальная ширина содержимого",titleHelpMessage:"Точное значение ширины содержимого можно настроить для различных экранов и адаптировать условиям чтения.",titleScreenNavWarningMessage:"Изменение максимальной ширины страницы недоступно на экранах мобильных устройств.",slider:"Регулеровка максимальной ширины содержимого",sliderAriaLabel:"Регулеровка максимальной ширины содержимого",sliderHelpMessage:"Ползунок, позволяющий настроить максимальную ширину содержимого. Может быть изменён в зависимости от размера экрана."}},spotlight:{title:"Подсветка",titleAriaLabel:"Подсветка",titleHelpMessage:"Выделите блок содержимого, на котором находится курсор.",titleScreenNavWarningMessage:"Подсветка недоступна на экране мобильного устройства.",optionOn:"Включить",optionOnAriaLabel:"Включить",optionOnHelpMessage:"Включите подсветку.",optionOff:"Выключить",optionOffAriaLabel:"Выключить",optionOffHelpMessage:"Выключите подсветку.",styles:{title:"Стиль подсветки",titleAriaLabel:"Стиль подсветки",titleHelpMessage:"Измените стиль выделения.",titleScreenNavWarningMessage:"Подсветка недоступна на экране мобильного устройства.",optionUnder:"Под блоком",optionUnderAriaLabel:"Под блоком",optionUnderHelpMessage:"Добавляет сплошную заливку блока под курсором.",optionAside:"Сбоку от блока",optionAsideAriaLabel:"Сбоку от блока",optionAsideHelpMessage:"Добавляет фиксированную сплошную линию рядом с блоком под курсором"}}};fe.title;fe.layoutSwitch;fe.spotlight;var ue={title:{title:"阅读增强",titleAriaLabel:"阅读增强"},layoutSwitch:{title:"布局切换",titleAriaLabel:"布局切换",titleHelpMessage:"调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。",titleScreenNavWarningMessage:"移动端无可切换布局。",optionFullWidth:"全部展开",optionFullWidthAriaLabel:"全部展开",optionFullWidthHelpMessage:"使侧边栏和内容区域占据整个屏幕的全部宽度。",optionSidebarWidthAdjustableOnly:"全部展开,但侧边栏宽度可调",optionSidebarWidthAdjustableOnlyAriaLabel:"全部展开,但侧边栏宽度可调",optionSidebarWidthAdjustableOnlyHelpMessage:"侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。",optionBothWidthAdjustable:"全部展开,且侧边栏和内容区域宽度均可调",optionBothWidthAdjustableAriaLabel:"全部展开,且侧边栏和内容区域宽度均可调",optionBothWidthAdjustableHelpMessage:"侧边栏和内容区域宽度均可调,调整后的侧边栏和内容区域将可以占据整个屏幕的最大宽度。",optionOriginalWidth:"原始宽度",optionOriginalWidthAriaLabel:"原始宽度",optionOriginalWidthHelpMessage:"原始的 VitePress 默认布局宽度",contentLayoutMaxWidth:{title:"内容最大宽度",titleAriaLabel:"内容最大宽度",titleHelpMessage:"调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。",titleScreenNavWarningMessage:"移动端暂不支持调整内容最大宽度。",slider:"调整内容最大宽度",sliderAriaLabel:"调整内容最大宽度",sliderHelpMessage:"一个可调整的滑块,用于选择和自定义内容最大宽度。",optionFullWidthAriaLabel:"内容最大宽度"},pageLayoutMaxWidth:{title:"页面最大宽度",titleAriaLabel:"页面最大宽度",titleHelpMessage:"调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。",titleScreenNavWarningMessage:"移动端暂不支持调整页面最大宽度。",slider:"调整页面最大宽度",sliderAriaLabel:"调整页面最大宽度",sliderHelpMessage:"一个可调整的滑块,用于选择和自定义页面最大宽度。"}},spotlight:{title:"聚光灯",titleAriaLabel:"聚光灯",titleHelpMessage:"支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。",titleScreenNavWarningMessage:"移动端暂不支持聚光灯。",optionOn:"开启",optionOnAriaLabel:"开启",optionOnHelpMessage:"开启聚光灯。",optionOff:"关闭",optionOffAriaLabel:"关闭",optionOffHelpMessage:"关闭聚光灯。",styles:{title:"聚光灯样式",titleAriaLabel:"聚光灯样式",titleHelpMessage:"调整聚光灯的样式。",titleScreenNavWarningMessage:"移动端暂不支持调整聚光灯样式。",optionUnder:"置于底部",optionUnderAriaLabel:"置于底部",optionUnderHelpMessage:"在当前鼠标悬停的元素下方添加一个纯色背景以突出显示当前鼠标悬停的位置。",optionAside:"置于侧边",optionAsideAriaLabel:"置于侧边",optionAsideHelpMessage:"在当前鼠标悬停的元素旁边添加一条固定的纯色线以突出显示当前鼠标悬停的位置。"}}};ue.title;ue.layoutSwitch;ue.spotlight;const Di={"en-US":he,en:he,"ru-RU":fe,ru:fe,"zh-CN":ue,"zh-Hans":ue,zh:ue},ee=ji(re,Di,he),zi=$({__name:"MenuHelp",props:{menuTitleElementRef:{},isPoppedUp:{type:Boolean}},emits:["update:isPoppedUp"],setup(o,{emit:e}){const t=o,n=e,a=pt(t,"menuTitleElementRef"),r=w(),u=w(),c=ne(),i=ct(r),h=Oe(a),b=Oe(u),g=L(()=>({top:`${h.top.value}px`,left:`${h.left.value-b.width.value-16}px`}));return H(i,f=>{n("update:isPoppedUp",f)}),H(i,()=>{h.update(),b.update()},{flush:"pre"}),(f,_)=>(l(),p(O,null,[d("span",{ref_key:"helpElementRef",ref:r,text:"$vp-nolebase-enhanced-readabilities-menu-text-color",class:"i-carbon:help-filled opacity-50 hover:opacity-100",transition:"all duration-200 ease","cursor-help":""},null,512),(l(),S(ht,{to:"body"},[y(le,{name:"fade"},{default:m(()=>[s(c)?ce((l(),p("div",{key:0,ref_key:"popupElementRef",ref:u,style:de(g.value),bg:"$vp-c-bg-elv",text:"$vp-nolebase-enhanced-readabilities-menu-text-color",border:"1 solid $vp-c-divider","pointer-events-none":"",fixed:"","z-100":"","rounded-xl":"","p-4":"","shadow-xl":""},[v(f.$slots,"default",{},void 0,!0)],4)),[[Me,s(i)]]):k("",!0)]),_:3})]))],64))}}),ye=M(zi,[["__scopeId","data-v-d976e511"]]),Ki={key:0},Gi=$({__name:"MenuTitle",props:{title:{},disabled:{type:Boolean}},setup(o){const e=o;return(t,n)=>(l(),p("h3",{class:N(["VPNolebaseEnhancedReadabilitiesMenuTitle",{disabled:!!e.disabled}]),text:"[14px] $vp-nolebase-enhanced-readabilities-menu-text-color","inline-flex":"","select-none":"","items-center":"","align-middle":"","font-medium":""},[v(t.$slots,"icon",{},void 0,!0),e.title?(l(),p("span",Ki,A(e.title),1)):k("",!0),v(t.$slots,"default",{},void 0,!0)],2))}}),oe=M(Gi,[["__scopeId","data-v-3a514c22"]]),qi={"space-y-2":"",role:"radiogroup"},Ji={"text-md":"","mb-1":"","font-semibold":""},Yi={text:"sm","mb-2":"","max-w-100":""},Xi={"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},Qi={text:"sm","mb-2":"",flex:"~","items-center":"","align-middle":""},Zi={"font-semibold":""},el=$({__name:"LayoutSwitch",setup(o){var _;const e=K(re,{}),t=w(),n=w(!1),a=w(!1),r=ve(),u=ne(),c=Y("(min-width: 768px)"),i=Ke(et,((_=e.layoutSwitch)==null?void 0:_.defaultMode)||R.Original),{t:h}=ee(),{trigger:b}=Ze(),g=L(()=>[{value:R.FullWidth,title:h("layoutSwitch.optionFullWidth"),helpMessage:h("layoutSwitch.optionFullWidthHelpMessage"),ariaLabel:h("layoutSwitch.optionFullWidthAriaLabel"),icon:"i-icon-park-outline:full-screen-one",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.SidebarWidthAdjustableOnly,title:h("layoutSwitch.optionSidebarWidthAdjustableOnly"),helpMessage:h("layoutSwitch.optionSidebarWidthAdjustableOnlyHelpMessage"),ariaLabel:h("layoutSwitch.optionSidebarWidthAdjustableOnlyAriaLabel"),icon:"i-icon-park-outline:full-screen-two",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.BothWidthAdjustable,title:h("layoutSwitch.optionBothWidthAdjustable"),helpMessage:h("layoutSwitch.optionSidebarWidthAdjustableOnlyHelpMessage"),ariaLabel:h("layoutSwitch.optionBothWidthAdjustableAriaLabel"),icon:"i-icon-park-outline:full-screen",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.Original,title:h("layoutSwitch.optionOriginalWidth"),helpMessage:h("layoutSwitch.optionOriginalWidthHelpMessage"),ariaLabel:h("layoutSwitch.optionOriginalWidthAriaLabel"),icon:"i-icon-park-outline:overall-reduction",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"}]);function f(P,V){switch(P){case R.FullWidth:V&&b(document.body),document.body.classList.add("VPNolebaseEnhancedReadabilitiesLayoutSwitchFullWidth"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchSidebarWidthAdjustableOnly"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchBothWidthAdjustable");break;case R.SidebarWidthAdjustableOnly:V&&b(document.body),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchFullWidth"),document.body.classList.add("VPNolebaseEnhancedReadabilitiesLayoutSwitchSidebarWidthAdjustableOnly"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchBothWidthAdjustable");break;case R.BothWidthAdjustable:V&&b(document.body),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchFullWidth"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchSidebarWidthAdjustableOnly"),document.body.classList.add("VPNolebaseEnhancedReadabilitiesLayoutSwitchBothWidthAdjustable");break;case R.Original:V&&b(document.body),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchFullWidth"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchSidebarWidthAdjustableOnly"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchBothWidthAdjustable");break}}return H(u,P=>{var V,x;P&&(f(i.value,!((V=e.layoutSwitch)!=null&&V.disableAnimation)),ot.includes(i.value)||(i.value=((x=e.layoutSwitch)==null?void 0:x.defaultMode)||R.BothWidthAdjustable))}),H(i,P=>{var V,x;u.value&&(f(P,!((V=e.layoutSwitch)!=null&&V.disableAnimation)),ot.includes(P)||(i.value=((x=e.layoutSwitch)==null?void 0:x.defaultMode)||R.BothWidthAdjustable))}),H(r,()=>{var P;f(i.value,!((P=e.layoutSwitch)!=null&&P.disableAnimation))}),H(c,()=>{c.value||(a.value=!0)}),D(()=>{c.value||(a.value=!0)}),(P,V)=>{var x;return l(),p("div",qi,[d("div",{ref_key:"menuTitleElementRef",ref:t,flex:"","items-center":""},[y(oe,{title:s(h)("layoutSwitch.title"),"aria-label":s(h)("layoutSwitch.titleAriaLabel")||s(h)("layoutSwitch.title"),flex:"1",disabled:a.value,"pr-4":""},{icon:m(()=>V[2]||(V[2]=[d("span",{"i-icon-park-outline:layout-one":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label","disabled"]),(x=s(e).layoutSwitch)!=null&&x.disableHelp?k("",!0):(l(),S(ye,{key:0,"is-popped-up":n.value,"onUpdate:isPoppedUp":V[0]||(V[0]=B=>n.value=B),"menu-title-element-ref":t.value},{default:m(()=>[d("h4",Ji,A(s(h)("layoutSwitch.title")),1),d("p",Yi,[d("span",null,A(s(h)("layoutSwitch.titleHelpMessage")),1)]),d("div",Xi,[(l(!0),p(O,null,F(g.value,(B,j)=>(l(),p("div",{key:j,text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},[d("h5",Qi,[d("span",{"mr-1":"",class:N([B.icon])},null,2),d("span",Zi,A(B.title),1)]),d("span",null,A(B.helpMessage),1)]))),128))])]),_:1},8,["is-popped-up","menu-title-element-ref"]))],512),y(s(ge),{active:n.value,class:"rounded-md"},{default:m(()=>[y(s(_e),{modelValue:s(i),"onUpdate:modelValue":V[1]||(V[1]=B=>Ge(i)?i.value=B:null),bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",options:g.value,disabled:a.value},null,8,["modelValue","options","disabled"])]),_:1},8,["active"])])}}}),tl={"space-y-2":"",role:"range"},al={"text-md":"","mb-1":"","font-semibold":""},nl={text:"sm","mb-2":"","max-w-100":""},ol={"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},sl={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},il={text:"sm","mb-2":"",flex:"~","items-center":"","align-middle":""},ll={"font-semibold":""},rl=$({__name:"LayoutSwitchContentLayoutMaxWidthSlider",setup(o){var j,E,C;const e=w(60),t=L(()=>e.value*100),n=w(100),a=L(()=>n.value*100),r=K(re,{}),u=w(),c=w(!1),i=w(!1),h=ne(),b=Y("(min-width: 768px)"),g=Y("(min-width: 1440px)"),f=pe(Fi,(((E=(j=r.layoutSwitch)==null?void 0:j.contentLayoutMaxWidth)==null?void 0:E.defaultMaxWidth)||80)*100),_=Ke(et,((C=r.layoutSwitch)==null?void 0:C.defaultMode)||R.BothWidthAdjustable),P=L({get:()=>{const T=Number.parseInt(String(f.value));return Number.isNaN(T)?a.value:Ta.value?a.value:T},set:T=>{Ta.value&&(T=a.value),f.value=T}}),{t:V}=ee(),{trigger:x}=Ze(),B=ze(T=>{var I,z,G,U;g.value?((U=(G=r.layoutSwitch)==null?void 0:G.contentLayoutMaxWidth)!=null&&U.disableAnimation||x(document.body),document.body.style.setProperty("--vp-nolebase-enhanced-readabilities-content-max-width",`${Math.ceil(T/100)}%`)):((z=(I=r.layoutSwitch)==null?void 0:I.contentLayoutMaxWidth)!=null&&z.disableAnimation||x(document.body),document.body.style.setProperty("--vp-nolebase-enhanced-readabilities-content-max-width","100%"))},1e3);return H(h,T=>{T&&B(P.value)}),H(b,()=>{b.value||(i.value=!0)}),H(g,()=>{B(P.value)}),D(()=>{b.value||(i.value=!0)}),H(P,T=>{h.value&&B(T)}),(T,I)=>(l(),S(s(Lt),{duration:200},{default:m(()=>{var z,G;return[ce(d("div",tl,[d("div",{ref_key:"menuTitleElementRef",ref:u,flex:"","items-center":""},[y(oe,{title:s(V)("layoutSwitch.contentLayoutMaxWidth.title"),"aria-label":s(V)("layoutSwitch.contentLayoutMaxWidth.titleAriaLabel")||s(V)("layoutSwitch.contentLayoutMaxWidth.title"),disabled:i.value,flex:"1","pr-4":""},{icon:m(()=>I[2]||(I[2]=[d("span",{"i-icon-park-outline:layout-one":"","mr-1":"","aria-hidden":"true"},null,-1)])),default:m(()=>[I[3]||(I[3]=d("span",{"i-icon-park-outline:auto-line-width":""},null,-1))]),_:1},8,["title","aria-label","disabled"]),(G=(z=s(r).layoutSwitch)==null?void 0:z.contentLayoutMaxWidth)!=null&&G.disableHelp?k("",!0):(l(),S(ye,{key:0,"is-popped-up":c.value,"onUpdate:isPoppedUp":I[0]||(I[0]=U=>c.value=U),"menu-title-element-ref":u.value},{default:m(()=>[d("h4",al,A(s(V)("layoutSwitch.contentLayoutMaxWidth.title")),1),d("p",nl,[d("span",null,A(s(V)("layoutSwitch.contentLayoutMaxWidth.titleHelpMessage")),1)]),d("div",ol,[d("div",sl,[d("h5",il,[I[4]||(I[4]=d("span",{"i-icon-park-outline:scale":"","mr-1":""},null,-1)),d("span",ll,A(s(V)("layoutSwitch.contentLayoutMaxWidth.slider")),1)]),d("span",null,A(s(V)("layoutSwitch.contentLayoutMaxWidth.sliderHelpMessage")),1)])])]),_:1},8,["is-popped-up","menu-title-element-ref"]))],512),y(s(ge),{active:c.value,class:"rounded-md"},{default:m(()=>[y(s(St),{modelValue:P.value,"onUpdate:modelValue":I[1]||(I[1]=U=>P.value=U),bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",name:"VitePress Nolebase Enhanced Readabilities content layout max width range slider","aria-label":s(V)("layoutSwitch.contentLayoutMaxWidth.optionFullWidthAriaLabel"),disabled:i.value,min:t.value,max:a.value,formatter:U=>`${Math.ceil(U/100)}%`},null,8,["modelValue","aria-label","disabled","min","max","formatter"])]),_:1},8,["active"])],512),[[Me,s(_)===s(R).BothWidthAdjustable]])]}),_:1}))}}),ul={"space-y-2":"",role:"range"},dl={"text-md":"","mb-1":"","font-semibold":""},cl={text:"sm","mb-2":"","max-w-100":""},pl={"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},hl={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},vl={text:"sm","mb-2":"",flex:"~","items-center":"","align-middle":""},ml={"font-semibold":""},fl=$({__name:"LayoutSwitchPageLayoutMaxWidthSlider",setup(o){var j,E,C;const e=w(60),t=L(()=>e.value*100),n=w(100),a=L(()=>n.value*100),r=K(re,{}),u=w(),c=w(!1),i=w(!1),h=ne(),b=Y("(min-width: 768px)"),g=Y("(min-width: 1440px)"),f=pe(Ui,(((E=(j=r.layoutSwitch)==null?void 0:j.pageLayoutMaxWidth)==null?void 0:E.defaultMaxWidth)||100)*100),_=Ke(et,((C=r.layoutSwitch)==null?void 0:C.defaultMode)||R.BothWidthAdjustable),P=L({get:()=>{const T=Number.parseInt(String(f.value));return Number.isNaN(T)?a.value:Ta.value?a.value:T},set:T=>{Ta.value&&(T=a.value),f.value=T}}),{t:V}=ee(),{trigger:x}=Ze(),B=ze(T=>{var I,z;g.value?((z=(I=r.layoutSwitch)==null?void 0:I.pageLayoutMaxWidth)!=null&&z.disableAnimation||x(document.body),document.body.style.setProperty("--vp-nolebase-enhanced-readabilities-page-max-width",`${Math.ceil(T/100)}%`)):document.body.style.setProperty("--vp-nolebase-enhanced-readabilities-page-max-width","100%")},1e3);return H(h,T=>{T&&B(P.value)}),H(b,()=>{b.value||(i.value=!0)}),H(g,()=>{B(P.value)}),D(()=>{b.value||(i.value=!0)}),H(P,T=>{h.value&&B(T)}),(T,I)=>(l(),S(s(Lt),{duration:200},{default:m(()=>{var z,G;return[ce(d("div",ul,[d("div",{ref_key:"menuTitleElementRef",ref:u,flex:"","items-center":""},[y(oe,{title:s(V)("layoutSwitch.pageLayoutMaxWidth.title"),"aria-label":s(V)("layoutSwitch.pageLayoutMaxWidth.titleAriaLabel")||s(V)("layoutSwitch.pageLayoutMaxWidth.title"),disabled:i.value,flex:"1","pr-2":""},{icon:m(()=>I[2]||(I[2]=[d("span",{"i-icon-park-outline:auto-width-one":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label","disabled"]),(G=(z=s(r).layoutSwitch)==null?void 0:z.pageLayoutMaxWidth)!=null&&G.disableHelp?k("",!0):(l(),S(ye,{key:0,"is-popped-up":c.value,"onUpdate:isPoppedUp":I[0]||(I[0]=U=>c.value=U),"menu-title-element-ref":u.value},{default:m(()=>[d("h4",dl,A(s(V)("layoutSwitch.pageLayoutMaxWidth.title")),1),d("p",cl,[d("span",null,A(s(V)("layoutSwitch.pageLayoutMaxWidth.titleHelpMessage")),1)]),d("div",pl,[d("div",hl,[d("h5",vl,[I[3]||(I[3]=d("span",{"i-icon-park-outline:scale":"","mr-1":""},null,-1)),d("span",ml,A(s(V)("layoutSwitch.pageLayoutMaxWidth.slider")),1)]),d("span",null,A(s(V)("layoutSwitch.pageLayoutMaxWidth.sliderHelpMessage")),1)])])]),_:1},8,["is-popped-up","menu-title-element-ref"]))],512),y(s(ge),{active:c.value,class:"rounded-md"},{default:m(()=>[y(s(St),{modelValue:P.value,"onUpdate:modelValue":I[1]||(I[1]=U=>P.value=U),bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",name:"VitePress Nolebase Enhanced Readabilities page layout max width range slider","aria-label":s(V)("layoutSwitch.pageLayoutMaxWidth.sliderAriaLabel"),disabled:i.value,min:t.value,max:a.value,formatter:U=>`${Math.ceil(U/100)}%`},null,8,["modelValue","aria-label","disabled","min","max","formatter"])]),_:1},8,["active"])],512),[[Me,s(_)===s(R).SidebarWidthAdjustableOnly||s(_)===s(R).BothWidthAdjustable]])]}),_:1}))}}),bl=xe,gl=$({__name:"SpotlightHoverBlock",props:{enabled:{type:Boolean}},setup(o){var j;const e=o,t=K(re,{}),n=w(!1),a=w({display:"none"}),r=w(),u=w(),c=ve(),i=pe(Pt,((j=t.spotlight)==null?void 0:j.defaultStyle)||se.Aside),{x:h,y:b}=Kt({type:"client"}),{isOutside:g}=Gt(r),{element:f}=qt({x:h,y:b}),_=vt(Oe(f)),P=Jt(u);Yt("scroll",_.update,!0);function V(E){return{display:"block",width:`${E.width+8}px`,height:`${E.height+8}px`,left:`${E.left-4}px`,top:`${E.top-4}px`,transition:"all 0.2s ease",borderRadius:"8px"}}function x(E){return E===null?null:E.parentElement===document.querySelector(".VPDoc main .vp-doc > div")?E:x(E.parentElement)}function B(){if(!(f.value&&!g.value))return;const E=x(f.value);if(u.value=E||void 0,u.value&&u.value.tagName==="P"){const C=u.value,T=window.getComputedStyle(C),I=Number.parseFloat(T.lineHeight),z=Math.floor(C.offsetHeight/I),G=C.getBoundingClientRect(),U=b.value-G.top;for(let Te=0;Te=Ne&&U{var E;document&&document.body&&(document.body.style.setProperty("--vp-nolebase-enhanced-readabilities-spotlight-under-bg-color",((E=t==null?void 0:t.spotlight)==null?void 0:E.hoverBlockColor)||"rgb(240 197 52 / 10%)"),r.value=document.querySelector(".VPDoc main .vp-doc"))}),H(c,async()=>{await Pe(),r.value=document.querySelector(".VPDoc main .vp-doc"),n.value=!0,a.value={display:"none"},_.update(),B(),n.value=!1}),H([h,b],()=>{e.enabled&&B()}),H(_,E=>{e.enabled&&(E.width===0&&E.height===0?a.value={display:"none"}:B())}),H(P,E=>{e.enabled&&!E&&(a.value={display:"none"})}),H(()=>e.enabled,E=>{E||(a.value={display:"none"})}),(E,C)=>(l(),S(ht,{to:"body"},[e.enabled&&!n.value?(l(),p("div",{key:0,style:de(a.value),"aria-hidden":"true",focusable:"false","pointer-events-none":"",fixed:"",class:N(["VPNolebaseEnhancedReadabilitiesSpotlightHoverBlock",[s(i)===s(se).Under?"VPNolebaseEnhancedReadabilitiesSpotlightHoverBlockUnder":"",s(i)===s(se).Aside?"VPNolebaseEnhancedReadabilitiesSpotlightHoverBlockAside":""]])},null,6)):k("",!0)]))}}),_l=M(gl,[["__scopeId","data-v-50775330"]]),yl={"space-y-2":"",role:"radiogroup"},kl={"text-md":"","mb-1":"","font-semibold":""},$l={text:"sm","mb-2":"","max-w-100":""},Sl={"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},Ll={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},wl={text:"sm","mb-2":""},Pl={"font-semibold":""},Vl={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},Ml={text:"sm","mb-2":""},Al={"font-semibold":""},xl=$({__name:"Spotlight",setup(o){var b;const e=K(re,{}),t=w(),n=w(!1),a=w(!1),r=ne(),u=Y("(pointer: coarse)"),c=pe(wt,((b=e.spotlight)==null?void 0:b.defaultToggle)||!1),{t:i}=ee(),h=L(()=>[{value:!0,title:i("spotlight.optionOn"),ariaLabel:i("spotlight.optionOnAriaLabel"),text:"ON",name:"VitePress Nolebase Enhanced Readabilities Spotlight Toggle Switch"},{value:!1,title:i("spotlight.optionOff"),ariaLabel:i("spotlight.optionOffAriaLabel"),text:"OFF",name:"VitePress Nolebase Enhanced Readabilities Spotlight Toggle Switch"}]);return D(()=>{a.value=u.value}),H(u,()=>{a.value=u.value}),(g,f)=>{var _;return l(),p("div",yl,[s(r)&&s(c)&&!a.value?(l(),S(_l,{key:0,enabled:s(c)&&!a.value},null,8,["enabled"])):k("",!0),d("div",{ref_key:"menuTitleElementRef",ref:t,relative:"",flex:"","items-center":""},[y(oe,{title:s(i)("spotlight.title"),"aria-label":s(i)("spotlight.titleAriaLabel")||s(i)("spotlight.title"),disabled:a.value,flex:"1","pr-4":""},{icon:m(()=>f[2]||(f[2]=[d("span",{"i-icon-park-outline:click":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label","disabled"]),(_=s(e).spotlight)!=null&&_.disableHelp?k("",!0):(l(),S(ye,{key:0,"is-popped-up":n.value,"onUpdate:isPoppedUp":f[0]||(f[0]=P=>n.value=P),"menu-title-element-ref":t.value},{default:m(()=>[d("h4",kl,A(s(i)("spotlight.title")),1),d("p",$l,[d("span",null,A(s(i)("spotlight.titleHelpMessage")),1)]),d("div",Sl,[d("div",Ll,[d("h5",wl,[f[3]||(f[3]=d("span",{"mr-1":"","font-bold":""},"ON",-1)),d("span",Pl,A(s(i)("spotlight.optionOn")),1)]),d("span",null,A(s(i)("spotlight.optionOnHelpMessage")),1)]),d("div",Vl,[d("h5",Ml,[f[4]||(f[4]=d("span",{"mr-1":"","font-bold":""},"OFF",-1)),d("span",Al,A(s(i)("spotlight.optionOff")),1)]),d("span",null,A(s(i)("spotlight.optionOffHelpMessage")),1)])])]),_:1},8,["is-popped-up","menu-title-element-ref"]))],512),y(s(ge),{active:n.value,class:"rounded-md"},{default:m(()=>[y(s(_e),{modelValue:s(c),"onUpdate:modelValue":f[1]||(f[1]=P=>Ge(c)?c.value=P:null),bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",options:h.value,disabled:a.value},null,8,["modelValue","options","disabled"])]),_:1},8,["active"])])}}}),Tl={key:0,"space-y-2":"",role:"radiogroup",class:"VPNolebaseEnhancedReadabilitiesSpotlightStyles"},Nl={"text-md":"","mb-1":"","font-semibold":""},Wl={text:"sm","mb-2":"","max-w-100":""},El={"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},Hl={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},Bl={text:"sm","mb-2":""},Ol={"font-semibold":""},Il={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},Cl={text:"sm","mb-2":""},Rl={"font-semibold":""},jl=$({__name:"SpotlightStyles",setup(o){var b,g;const e=K(re,{}),t=w(),n=w(!1),a=w(!1),r=Y("(pointer: coarse)"),u=pe(wt,((b=e.spotlight)==null?void 0:b.defaultToggle)||!1),c=pe(Pt,((g=e.spotlight)==null?void 0:g.defaultStyle)||se.Aside),{t:i}=ee(),h=L(()=>[{value:se.Under,title:i("spotlight.styles.optionUnder"),ariaLabel:i("spotlight.styles.optionUnderAriaLabel"),icon:"i-icon-park-outline:align-text-left-one",name:"VitePress Nolebase Enhanced Readabilities Spotlight Style Checkbox"},{value:se.Aside,title:i("spotlight.styles.optionAside"),ariaLabel:i("spotlight.styles.optionAsideAriaLabel"),icon:"i-icon-park-outline:align-left-one",name:"VitePress Nolebase Enhanced Readabilities Spotlight Style Checkbox"}]);return D(()=>{a.value=r.value}),H(r,()=>{a.value=r.value}),(f,_)=>(l(),S(le,{name:"fade-shift"},{default:m(()=>{var P;return[s(u)?(l(),p("div",Tl,[d("div",{ref_key:"menuTitleElementRef",ref:t,relative:"",flex:"","items-center":""},[y(oe,{title:s(i)("spotlight.styles.title"),"aria-label":s(i)("spotlight.styles.titleAriaLabel")||s(i)("spotlight.styles.title"),disabled:a.value,flex:"1","pr-4":""},{icon:m(()=>_[2]||(_[2]=[d("span",{"i-icon-park-outline:click":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label","disabled"]),(P=s(e).spotlight)!=null&&P.disableHelp?k("",!0):(l(),S(ye,{key:0,"is-popped-up":n.value,"onUpdate:isPoppedUp":_[0]||(_[0]=V=>n.value=V),"menu-title-element-ref":t.value},{default:m(()=>[d("h4",Nl,A(s(i)("spotlight.styles.title")),1),d("p",Wl,[d("span",null,A(s(i)("spotlight.styles.titleHelpMessage")),1)]),d("div",El,[d("div",Hl,[d("h5",Bl,[_[3]||(_[3]=d("span",{"i-icon-park-outline:align-text-left-one":"","mr-1":""},null,-1)),d("span",Ol,A(s(i)("spotlight.styles.optionUnder")),1)]),d("span",null,A(s(i)("spotlight.styles.optionUnderHelpMessage")),1)]),d("div",Il,[d("h5",Cl,[_[4]||(_[4]=d("span",{"i-icon-park-outline:align-left-one":"","mr-1":""},null,-1)),d("span",Rl,A(s(i)("spotlight.styles.optionAside")),1)]),d("span",null,A(s(i)("spotlight.styles.optionAsideHelpMessage")),1)])])]),_:1},8,["is-popped-up","menu-title-element-ref"]))],512),y(s(ge),{active:n.value,class:"rounded-md"},{default:m(()=>[y(s(_e),{modelValue:s(c),"onUpdate:modelValue":_[1]||(_[1]=V=>Ge(c)?c.value=V:null),bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",options:h.value,disabled:a.value},null,8,["modelValue","options","disabled"])]),_:1},8,["active"])])):k("",!0)]}),_:1}))}}),Fl=M(jl,[["__scopeId","data-v-8d8b97c4"]]),Ul=["aria-label"],Dl=$({__name:"Menu",setup(o){const e=ne(),{t}=ee();return(n,a)=>(l(),S(s(bl),{icon:"i-icon-park-outline:book-open",class:"VPNolebaseEnhancedReadabilitiesMenu VPNolebaseEnhancedReadabilitiesMenuFlyout","aria-label":s(t)("title.title"),role:"menuitem"},{default:m(()=>[s(e)?(l(),p("div",{key:0,"aria-label":s(t)("title.title"),"min-w-64":"","p-2":"","space-y-2":""},[y(el),y(fl),y(rl),y(xl),y(Fl)],8,Ul)):k("",!0)]),_:1},8,["aria-label"]))}}),zl={"space-y-2":""},Kl={border:"1 red/50 solid",bg:"red/30",flex:"","items-center":"","rounded-lg":"","p-2":"","opacity-50":""},Gl={"text-xs":""},ql=$({__name:"ScreenLayoutSwitch",setup(o){const{t:e}=ee(),t=L(()=>[{value:R.FullWidth,title:e("layoutSwitch.optionFullWidth"),ariaLabel:e("layoutSwitch.optionFullWidthAriaLabel"),icon:"i-icon-park-outline:full-screen-one",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.SidebarWidthAdjustableOnly,title:e("layoutSwitch.optionSidebarWidthAdjustableOnly"),ariaLabel:e("layoutSwitch.optionSidebarWidthAdjustableOnlyAriaLabel"),icon:"i-icon-park-outline:full-screen-two",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.BothWidthAdjustable,title:e("layoutSwitch.optionBothWidthAdjustable"),ariaLabel:e("layoutSwitch.optionBothWidthAdjustableAriaLabel"),icon:"i-icon-park-outline:full-screen",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.Original,title:e("layoutSwitch.optionOriginalWidth"),ariaLabel:e("layoutSwitch.optionOriginalWidthAriaLabel"),icon:"i-icon-park-outline:overall-reduction",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"}]);return(n,a)=>(l(),p("div",zl,[y(oe,{title:s(e)("layoutSwitch.title"),"aria-label":s(e)("layoutSwitch.titleAriaLabel")||s(e)("layoutSwitch.title"),disabled:""},{icon:m(()=>[v(n.$slots,"default",{ariaHidden:"true"})]),_:3},8,["title","aria-label"]),d("div",Kl,[d("span",Gl,A(s(e)("layoutSwitch.titleScreenNavWarningMessage")),1)]),y(s(_e),{bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",options:t.value,disabled:""},null,8,["options"])]))}}),Jl={"space-y-2":""},Yl={border:"1 red/50 solid",bg:"red/30",flex:"","items-center":"","rounded-lg":"","p-2":"","opacity-50":""},Xl={"text-xs":""},Ql=$({__name:"ScreenSpotlight",setup(o){const{t:e}=ee(),t=L(()=>[{title:e("spotlight.optionOn"),ariaLabel:e("spotlight.optionOnAriaLabel"),value:!0,text:"ON",name:"VitePress Nolebase Enhanced Readabilities Spotlight Toggle Switch"},{title:e("spotlight.optionOff"),ariaLabel:e("spotlight.optionOffAriaLabel"),value:!1,text:"OFF",name:"VitePress Nolebase Enhanced Readabilities Spotlight Toggle Switch"}]);return(n,a)=>(l(),p("div",Jl,[y(oe,{title:s(e)("spotlight.title"),"aria-label":s(e)("spotlight.titleAriaLabel")||s(e)("spotlight.title"),disabled:""},{icon:m(()=>a[0]||(a[0]=[d("span",{"i-icon-park-outline:click":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label"]),d("div",Yl,[d("span",Xl,A(s(e)("spotlight.titleScreenNavWarningMessage")),1)]),y(s(_e),{bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",options:t.value,disabled:""},null,8,["options"])]))}}),Zl={key:0,"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},er={flex:"~ col","pl-4":"","space-y-2":""},tr=$({__name:"ScreenMenu",setup(o){const e=ne(),{t}=ee();return(n,a)=>s(e)?(l(),p("div",Zl,[y(oe,{title:s(t)("title.title"),"aria-label":s(t)("title.titleAriaLabel")||s(t)("title.title")},{icon:m(()=>a[0]||(a[0]=[d("span",{"i-icon-park-outline:book-open":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label"]),d("div",er,[y(ql),y(Ql)])])):k("",!0)}}),ar=$({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(o){const e=w([]),t=w("Versions"),n=w(!1),{site:a}=Se(),r=()=>typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),u=()=>{if(typeof window>"u")return"";const{origin:h,pathname:b}=window.location;if(h.includes("github.io")){const g=b.split("/").filter(Boolean),f=g.length>0?`/${g[0]}`:"";return`${h}${f}`}else return h},c=()=>new Promise(h=>{if(r()){h(!1);return}const b=setInterval(()=>{window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION&&(clearInterval(b),h(!0))},100);setTimeout(()=>{clearInterval(b),h(!1)},5e3)});return D(async()=>{if(!(typeof window>"u")){try{if(r()){const h=["dev"];e.value=h.map(b=>({text:b,link:"/"})),t.value="dev"}else{const h=await c(),b=L(()=>u());if(h&&window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION)e.value=window.DOC_VERSIONS.map(g=>({text:g,link:`${b.value}/${g}/`})),t.value=window.DOCUMENTER_CURRENT_VERSION;else{const g=["dev"];e.value=g.map(f=>({text:f,link:`${b.value}/${f}/`})),t.value="dev"}}}catch(h){console.warn("Error loading versions:",h);const b=["dev"],g=L(()=>u());e.value=b.map(f=>({text:f,link:`${g.value}/${f}/`})),t.value="dev"}n.value=!0}}),(h,b)=>n.value?(l(),p(O,{key:0},[!h.screenMenu&&e.value.length>0?(l(),S(yt,{key:0,item:{text:t.value,items:e.value},class:"VPVersionPicker"},null,8,["item"])):h.screenMenu&&e.value.length>0?(l(),S($t,{key:1,text:t.value,items:e.value,class:"VPVersionPicker"},null,8,["text","items"])):k("",!0)],64)):k("",!0)}}),nr=M(ar,[["__scopeId","data-v-5454719c"]]),or=["href"],sr={class:"badge-container"},ir=["src","alt"],lr={key:1,class:"badge-container"},rr=["src","alt"],ur={__name:"AuthorBadge",props:{author:{type:String,required:!0},avatar:{type:String,default:""},platform:{type:String,default:"user"},link:{type:String,default:""}},setup(o){const e=o,t={github:"https://img.icons8.com/ios-filled/50/github.png",gitlab:"https://img.icons8.com/ios-filled/50/gitlab.png",x:"https://img.icons8.com/ios/50/twitterx--v2.png",linkedin:"https://img.icons8.com/ios-filled/50/linkedin.png",bluesky:"https://img.icons8.com/material-sharp/48/bluesky.png",mastodon:"https://img.icons8.com/windows/64/mastodon.png",user:"https://img.icons8.com/windows/64/user.png"},n=L(()=>e.avatar?e.avatar:e.platform&&t[e.platform.toLowerCase()]?t[e.platform.toLowerCase()]:t.user),a=r=>{const u=["#3eaf7c","#476582","#c53e3e","#986801","#8957e5"],c=r.split("").reduce((i,h)=>i+h.charCodeAt(0),0);return u[c%u.length]};return(r,u)=>o.link?(l(),p("a",{key:0,href:o.link,class:"badge-link",target:"_blank",rel:"noopener noreferrer"},[d("span",sr,[u[0]||(u[0]=d("span",{class:"badge-label"},"Author",-1)),d("span",{class:"author-badge",style:de({backgroundColor:a(o.author)})},[d("img",{src:n.value,alt:o.author,class:N([{"platform-avatar":!e.avatar},"author-avatar"])},null,10,ir),Q(" "+A(o.author),1)],4)])],8,or)):(l(),p("span",lr,[u[1]||(u[1]=d("span",{class:"badge-label"},"Author",-1)),d("span",{class:"author-badge",style:de({backgroundColor:a(o.author)})},[d("img",{src:n.value,alt:o.author,class:N([{"platform-avatar":!e.avatar},"author-avatar"])},null,10,rr),Q(" "+A(o.author),1)],4)]))}},dr=M(ur,[["__scopeId","data-v-5eb0e64d"]]),cr={class:"authors-container"},pr={__name:"Authors",setup(o){const{frontmatter:e}=Se(),t=e.value.authors||[];return(n,a)=>{const r=ae("AuthorBadge");return l(),p("div",cr,[(l(!0),p(O,null,F(s(t),u=>(l(),S(r,{key:u.name,author:u.name,avatar:u.avatar,platform:u.platform,link:u.link},null,8,["author","avatar","platform","link"]))),128))])}}},hr=M(pr,[["__scopeId","data-v-ec79a7d8"]]),vr=o=>{if(typeof document>"u")return{stabilizeScrollPosition:a=>async(...r)=>a(...r)};const e=document.documentElement;return{stabilizeScrollPosition:n=>async(...a)=>{const r=n(...a),u=o.value;if(!u)return r;const c=u.offsetTop-e.scrollTop;return await Pe(),e.scrollTop=u.offsetTop-c,r}}},Vt="vitepress:tabSharedState",me=typeof localStorage<"u"?localStorage:null,Mt="vitepress:tabsSharedState",mr=()=>{const o=me==null?void 0:me.getItem(Mt);if(o)try{return JSON.parse(o)}catch{}return{}},fr=o=>{me&&me.setItem(Mt,JSON.stringify(o))},br=o=>{const e=vt({});H(()=>e.content,(t,n)=>{t&&n&&fr(t)},{deep:!0}),o.provide(Vt,e)},gr=(o,e)=>{const t=K(Vt);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");D(()=>{t.content||(t.content=mr())});const n=w(),a=L({get(){var i;const u=e.value,c=o.value;if(u){const h=(i=t.content)==null?void 0:i[u];if(h&&c.includes(h))return h}else{const h=n.value;if(h)return h}return c[0]},set(u){const c=e.value;c?t.content&&(t.content[c]=u):n.value=u}});return{selected:a,select:u=>{a.value=u}}};let st=0;const _r=()=>(st++,""+st);function yr(){const o=dt();return L(()=>{var n;const t=(n=o.default)==null?void 0:n.call(o);return t?t.filter(a=>typeof a.type=="object"&&"__name"in a.type&&a.type.__name==="PluginTabsTab"&&a.props).map(a=>{var r;return(r=a.props)==null?void 0:r.label}):[]})}const At="vitepress:tabSingleState",kr=o=>{De(At,o)},$r=()=>{const o=K(At);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},Sr={class:"plugin-tabs"},Lr=["id","aria-selected","aria-controls","tabindex","onClick"],wr=$({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=yr(),{selected:n,select:a}=gr(t,pt(e,"sharedStateKey")),r=w(),{stabilizeScrollPosition:u}=vr(r),c=u(a),i=w([]),h=g=>{var P;const f=t.value.indexOf(n.value);let _;g.key==="ArrowLeft"?_=f>=1?f-1:t.value.length-1:g.key==="ArrowRight"&&(_=f(l(),p("div",Sr,[d("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:h},[(l(!0),p(O,null,F(s(t),_=>(l(),p("button",{id:`tab-${_}-${s(b)}`,ref_for:!0,ref_key:"buttonRefs",ref:i,key:_,role:"tab",class:"plugin-tabs--tab","aria-selected":_===s(n),"aria-controls":`panel-${_}-${s(b)}`,tabindex:_===s(n)?0:-1,onClick:()=>s(c)(_)},A(_),9,Lr))),128))],544),v(g.$slots,"default")]))}}),Pr=["id","aria-labelledby"],Vr=$({__name:"PluginTabsTab",props:{label:{}},setup(o){const{uid:e,selected:t}=$r();return(n,a)=>s(t)===n.label?(l(),p("div",{key:0,id:`panel-${n.label}-${s(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${n.label}-${s(e)}`},[v(n.$slots,"default",{},void 0,!0)],8,Pr)):k("",!0)}}),Mr=M(Vr,[["__scopeId","data-v-9b0d03d2"]]),Ar=o=>{br(o),o.component("PluginTabs",wr),o.component("PluginTabsTab",Mr)},Tr={extends:nt,Layout(){return We(nt.Layout,null,{"nav-bar-content-after":()=>[We(Dl)],"nav-screen-content-after":()=>We(tr)})},enhanceApp({app:o,router:e,siteData:t}){Ar(o),o.component("VersionPicker",nr),o.component("AuthorBadge",dr),o.component("Authors",hr)}};export{Tr as T,hs as c,W as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.3EF4bsHS.js","assets/chunks/framework.mcBEtuSi.js"])))=>i.map(i=>d[i]); +import{d as $,c as p,r as v,n as N,o as l,a as Q,t as A,b as S,w as m,T as le,e as k,_ as M,u as Se,i as Nt,f as Wt,g as je,h as L,j as d,k as s,l as ie,m as Y,p as w,q as H,s as Le,v as D,x as Fe,y as Ue,z as Et,A as Ht,F as O,B as F,C as ae,D as it,E as we,G as y,H as q,I as lt,J as ve,K as te,L as K,M as Bt,N as de,O as Be,P as Pe,Q as rt,R as Ve,S as Ot,U as It,V as Ct,W as ut,X as De,Y as Rt,Z as jt,$ as Ft,a0 as Ut,a1 as dt,a2 as ce,a3 as Dt,a4 as ct,a5 as zt,a6 as Me,a7 as ne,a8 as ze,a9 as pt,aa as Oe,ab as ht,ac as Ke,ad as Ge,ae as pe,af as Kt,ag as Gt,ah as qt,ai as vt,aj as Jt,ak as Yt,al as We}from"./framework.mcBEtuSi.js";const Xt=$({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(l(),p("span",{class:N(["VPBadge",e.type])},[v(e.$slots,"default",{},()=>[Q(A(e.text),1)])],2))}}),Qt={key:0,class:"VPBackdrop"},Zt=$({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(l(),S(le,{name:"fade"},{default:m(()=>[e.show?(l(),p("div",Qt)):k("",!0)]),_:1}))}}),ea=M(Zt,[["__scopeId","data-v-b06cdb19"]]),W=Se;function ta(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function Ie(o){return o.startsWith("/")?o:`/${o}`}function qe(o){const{pathname:e,search:t,hash:n,protocol:a}=new URL(o,"http://a.com");if(Nt(o)||o.startsWith("#")||!a.startsWith("http")||!Wt(e))return o;const{site:r}=W(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return je(u)}function be({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:a,hash:r}=W(),u=L(()=>{var i,h;return{label:(i=e.value.locales[t.value])==null?void 0:i.label,link:((h=e.value.locales[t.value])==null?void 0:h.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:L(()=>Object.entries(e.value.locales).flatMap(([i,h])=>u.value.label===h.label?[]:{text:h.label,link:aa(h.link||(i==="root"?"/":`/${i}/`),a.value.i18nRouting!==!1&&o,n.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:u}}function aa(o,e,t,n){return e?o.replace(/\/$/,"")+Ie(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const na={class:"NotFound"},oa={class:"code"},sa={class:"title"},ia={class:"quote"},la={class:"action"},ra=["href","aria-label"],ua=$({__name:"NotFound",setup(o){const{theme:e}=W(),{currentLang:t}=be();return(n,a)=>{var r,u,c,i,h;return l(),p("div",na,[d("p",oa,A(((r=s(e).notFound)==null?void 0:r.code)??"404"),1),d("h1",sa,A(((u=s(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),a[0]||(a[0]=d("div",{class:"divider"},null,-1)),d("blockquote",ia,A(((c=s(e).notFound)==null?void 0:c.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",la,[d("a",{class:"link",href:s(je)(s(t).link),"aria-label":((i=s(e).notFound)==null?void 0:i.linkLabel)??"go to home"},A(((h=s(e).notFound)==null?void 0:h.linkText)??"Take me home"),9,ra)])])}}}),da=M(ua,[["__scopeId","data-v-951cab6c"]]);function mt(o,e){if(Array.isArray(o))return ke(o);if(o==null)return[];e=Ie(e);const t=Object.keys(o).sort((a,r)=>r.split("/").length-a.split("/").length).find(a=>e.startsWith(Ie(a))),n=t?o[t]:[];return Array.isArray(n)?ke(n):ke(n.items,n.base)}function ca(o){const e=[];let t=0;for(const n in o){const a=o[n];if(a.items){t=e.push(a);continue}e[t]||e.push({items:[]}),e[t].items.push(a)}return e}function pa(o){const e=[];function t(n){for(const a of n)a.text&&a.link&&e.push({text:a.text,link:a.link,docFooterText:a.docFooterText}),a.items&&t(a.items)}return t(o),e}function Ce(o,e){return Array.isArray(e)?e.some(t=>Ce(o,t)):ie(o,e.link)?!0:e.items?Ce(o,e.items):!1}function ke(o,e){return[...o].map(t=>{const n={...t},a=n.base||e;return a&&n.link&&(n.link=a+n.link),n.items&&(n.items=ke(n.items,a)),n})}function Z(){const{frontmatter:o,page:e,theme:t}=W(),n=Y("(min-width: 960px)"),a=w(!1),r=L(()=>{const V=t.value.sidebar,x=e.value.relativePath;return V?mt(V,x):[]}),u=w(r.value);H(r,(V,x)=>{JSON.stringify(V)!==JSON.stringify(x)&&(u.value=r.value)});const c=L(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),i=L(()=>h?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),h=L(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),b=L(()=>c.value&&n.value),g=L(()=>c.value?ca(u.value):[]);function f(){a.value=!0}function _(){a.value=!1}function P(){a.value?_():f()}return{isOpen:a,sidebar:u,sidebarGroups:g,hasSidebar:c,hasAside:h,leftAside:i,isSidebarEnabled:b,open:f,close:_,toggle:P}}function ha(o,e){let t;Le(()=>{t=o.value?document.activeElement:void 0}),D(()=>{window.addEventListener("keyup",n)}),Fe(()=>{window.removeEventListener("keyup",n)});function n(a){a.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function va(o){const{page:e,hash:t}=W(),n=w(!1),a=L(()=>o.value.collapsed!=null),r=L(()=>!!o.value.link),u=w(!1),c=()=>{u.value=ie(e.value.relativePath,o.value.link)};H([e,o,t],c),D(c);const i=L(()=>u.value?!0:o.value.items?Ce(e.value.relativePath,o.value.items):!1),h=L(()=>!!(o.value.items&&o.value.items.length));Le(()=>{n.value=!!(a.value&&o.value.collapsed)}),Ue(()=>{(u.value||i.value)&&(n.value=!1)});function b(){a.value&&(n.value=!n.value)}return{collapsed:n,collapsible:a,isLink:r,isActiveLink:u,hasActiveLink:i,hasChildren:h,toggle:b}}function ma(){const{hasSidebar:o}=Z(),e=Y("(min-width: 960px)"),t=Y("(min-width: 1280px)");return{isAsideEnabled:L(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const fa=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,Re=[];function ft(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function Je(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:ba(t),link:"#"+t.id,level:n}});return ga(e,o)}function ba(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(fa.test(t.className))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function ga(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,a]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return ka(o,n,a)}function _a(o,e){const{isAsideEnabled:t}=ma(),n=ta(r,100);let a=null;D(()=>{requestAnimationFrame(r),window.addEventListener("scroll",n)}),Et(()=>{u(location.hash)}),Fe(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const c=window.scrollY,i=window.innerHeight,h=document.body.offsetHeight,b=Math.abs(c+i-h)<1,g=Re.map(({element:_,link:P})=>({link:P,top:ya(_)})).filter(({top:_})=>!Number.isNaN(_)).sort((_,P)=>_.top-P.top);if(!g.length){u(null);return}if(c<1){u(null);return}if(b){u(g[g.length-1].link);return}let f=null;for(const{link:_,top:P}of g){if(P>c+Ht()+4)break;f=_}u(f)}function u(c){a&&a.classList.remove("active"),c==null?a=null:a=o.value.querySelector(`a[href="${decodeURIComponent(c)}"]`);const i=a;i?(i.classList.add("active"),e.value.style.top=i.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function ya(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}function ka(o,e,t){Re.length=0;const n=[],a=[];return o.forEach(r=>{const u={...r,children:[]};let c=a[a.length-1];for(;c&&c.level>=u.level;)a.pop(),c=a[a.length-1];if(u.element.classList.contains("ignore-header")||c&&"shouldIgnore"in c){a.push({level:u.level,shouldIgnore:!0});return}u.level>t||u.level{const a=ae("VPDocOutlineItem",!0);return l(),p("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(l(!0),p(O,null,F(t.headers,({children:r,link:u,title:c})=>(l(),p("li",null,[d("a",{class:"outline-link",href:u,onClick:e,title:c},A(c),9,$a),r!=null&&r.length?(l(),S(a,{key:0,headers:r},null,8,["headers"])):k("",!0)]))),256))],2)}}}),bt=M(Sa,[["__scopeId","data-v-3f927ebe"]]),La={class:"content"},wa={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Pa=$({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=W(),n=it([]);we(()=>{n.value=Je(e.value.outline??t.value.outline)});const a=w(),r=w();return _a(a,r),(u,c)=>(l(),p("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:a},[d("div",La,[d("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),d("div",wa,A(s(ft)(s(t))),1),y(bt,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Va=M(Pa,[["__scopeId","data-v-b38bf2ff"]]),Ma={class:"VPDocAsideCarbonAds"},Aa=$({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(l(),p("div",Ma,[y(s(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),xa={class:"VPDocAside"},Ta=$({__name:"VPDocAside",setup(o){const{theme:e}=W();return(t,n)=>(l(),p("div",xa,[v(t.$slots,"aside-top",{},void 0,!0),v(t.$slots,"aside-outline-before",{},void 0,!0),y(Va),v(t.$slots,"aside-outline-after",{},void 0,!0),n[0]||(n[0]=d("div",{class:"spacer"},null,-1)),v(t.$slots,"aside-ads-before",{},void 0,!0),s(e).carbonAds?(l(),S(Aa,{key:0,"carbon-ads":s(e).carbonAds},null,8,["carbon-ads"])):k("",!0),v(t.$slots,"aside-ads-after",{},void 0,!0),v(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Na=M(Ta,[["__scopeId","data-v-6d7b3c46"]]);function Wa(){const{theme:o,page:e}=W();return L(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let a;return typeof n=="function"?a=n(e.value):a=n.replace(/:path/g,e.value.filePath),{url:a,text:t}})}function Ea(){const{page:o,theme:e,frontmatter:t}=W();return L(()=>{var h,b,g,f,_,P,V,x;const n=mt(e.value.sidebar,o.value.relativePath),a=pa(n),r=Ha(a,B=>B.link.replace(/[?#].*$/,"")),u=r.findIndex(B=>ie(o.value.relativePath,B.link)),c=((h=e.value.docFooter)==null?void 0:h.prev)===!1&&!t.value.prev||t.value.prev===!1,i=((b=e.value.docFooter)==null?void 0:b.next)===!1&&!t.value.next||t.value.next===!1;return{prev:c?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((g=r[u-1])==null?void 0:g.docFooterText)??((f=r[u-1])==null?void 0:f.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((_=r[u-1])==null?void 0:_.link)},next:i?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((P=r[u+1])==null?void 0:P.docFooterText)??((V=r[u+1])==null?void 0:V.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((x=r[u+1])==null?void 0:x.link)}}})}function Ha(o,e){const t=new Set;return o.filter(n=>{const a=e(n);return t.has(a)?!1:t.add(a)})}const J=$({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.tag??(e.href?"a":"span")),n=L(()=>e.href&<.test(e.href)||e.target==="_blank");return(a,r)=>(l(),S(q(t.value),{class:N(["VPLink",{link:a.href,"vp-external-link-icon":n.value,"no-icon":a.noIcon}]),href:a.href?s(qe)(a.href):void 0,target:a.target??(n.value?"_blank":void 0),rel:a.rel??(n.value?"noreferrer":void 0)},{default:m(()=>[v(a.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Ba={class:"VPLastUpdated"},Oa=["datetime"],Ia=$({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:n}=W(),a=L(()=>new Date(t.value.lastUpdated)),r=L(()=>a.value.toISOString()),u=w("");return D(()=>{Le(()=>{var c,i,h;u.value=new Intl.DateTimeFormat((i=(c=e.value.lastUpdated)==null?void 0:c.formatOptions)!=null&&i.forceLocale?n.value:void 0,((h=e.value.lastUpdated)==null?void 0:h.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(a.value)})}),(c,i)=>{var h;return l(),p("p",Ba,[Q(A(((h=s(e).lastUpdated)==null?void 0:h.text)||s(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:r.value},A(u.value),9,Oa)])}}}),Ca=M(Ia,[["__scopeId","data-v-475f71b8"]]),Ra={key:0,class:"VPDocFooter"},ja={key:0,class:"edit-info"},Fa={key:0,class:"edit-link"},Ua={key:1,class:"last-updated"},Da={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},za={class:"pager"},Ka=["innerHTML"],Ga=["innerHTML"],qa={class:"pager"},Ja=["innerHTML"],Ya=["innerHTML"],Xa=$({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=W(),a=Wa(),r=Ea(),u=L(()=>e.value.editLink&&n.value.editLink!==!1),c=L(()=>t.value.lastUpdated),i=L(()=>u.value||c.value||r.value.prev||r.value.next);return(h,b)=>{var g,f,_,P;return i.value?(l(),p("footer",Ra,[v(h.$slots,"doc-footer-before",{},void 0,!0),u.value||c.value?(l(),p("div",ja,[u.value?(l(),p("div",Fa,[y(J,{class:"edit-link-button",href:s(a).url,"no-icon":!0},{default:m(()=>[b[0]||(b[0]=d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Q(" "+A(s(a).text),1)]),_:1},8,["href"])])):k("",!0),c.value?(l(),p("div",Ua,[y(Ca)])):k("",!0)])):k("",!0),(g=s(r).prev)!=null&&g.link||(f=s(r).next)!=null&&f.link?(l(),p("nav",Da,[b[1]||(b[1]=d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),d("div",za,[(_=s(r).prev)!=null&&_.link?(l(),S(J,{key:0,class:"pager-link prev",href:s(r).prev.link},{default:m(()=>{var V;return[d("span",{class:"desc",innerHTML:((V=s(e).docFooter)==null?void 0:V.prev)||"Previous page"},null,8,Ka),d("span",{class:"title",innerHTML:s(r).prev.text},null,8,Ga)]}),_:1},8,["href"])):k("",!0)]),d("div",qa,[(P=s(r).next)!=null&&P.link?(l(),S(J,{key:0,class:"pager-link next",href:s(r).next.link},{default:m(()=>{var V;return[d("span",{class:"desc",innerHTML:((V=s(e).docFooter)==null?void 0:V.next)||"Next page"},null,8,Ja),d("span",{class:"title",innerHTML:s(r).next.text},null,8,Ya)]}),_:1},8,["href"])):k("",!0)])])):k("",!0)])):k("",!0)}}}),Qa=M(Xa,[["__scopeId","data-v-4f9813fa"]]),Za={class:"container"},en={class:"aside-container"},tn={class:"aside-content"},an={class:"content"},nn={class:"content-container"},on={class:"main"},sn=$({__name:"VPDoc",setup(o){const{theme:e}=W(),t=ve(),{hasSidebar:n,hasAside:a,leftAside:r}=Z(),u=L(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(c,i)=>{const h=ae("Content");return l(),p("div",{class:N(["VPDoc",{"has-sidebar":s(n),"has-aside":s(a)}])},[v(c.$slots,"doc-top",{},void 0,!0),d("div",Za,[s(a)?(l(),p("div",{key:0,class:N(["aside",{"left-aside":s(r)}])},[i[0]||(i[0]=d("div",{class:"aside-curtain"},null,-1)),d("div",en,[d("div",tn,[y(Na,null,{"aside-top":m(()=>[v(c.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":m(()=>[v(c.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":m(()=>[v(c.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":m(()=>[v(c.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":m(()=>[v(c.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":m(()=>[v(c.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):k("",!0),d("div",an,[d("div",nn,[v(c.$slots,"doc-before",{},void 0,!0),d("main",on,[y(h,{class:N(["vp-doc",[u.value,s(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),y(Qa,null,{"doc-footer-before":m(()=>[v(c.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),v(c.$slots,"doc-after",{},void 0,!0)])])]),v(c.$slots,"doc-bottom",{},void 0,!0)],2)}}}),ln=M(sn,[["__scopeId","data-v-83890dd9"]]),rn=$({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.href&<.test(e.href)),n=L(()=>e.tag||(e.href?"a":"button"));return(a,r)=>(l(),S(q(n.value),{class:N(["VPButton",[a.size,a.theme]]),href:a.href?s(qe)(a.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:m(()=>[Q(A(a.text),1)]),_:1},8,["class","href","target","rel"]))}}),un=M(rn,[["__scopeId","data-v-906d7fb4"]]),dn=["src","alt"],cn=$({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=ae("VPImage",!0);return e.image?(l(),p(O,{key:0},[typeof e.image=="string"||"src"in e.image?(l(),p("img",te({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:s(je)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,dn)):(l(),p(O,{key:1},[y(n,te({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),y(n,te({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):k("",!0)}}}),$e=M(cn,[["__scopeId","data-v-35a7d0b8"]]),pn={class:"container"},hn={class:"main"},vn={class:"heading"},mn=["innerHTML"],fn=["innerHTML"],bn=["innerHTML"],gn={key:0,class:"actions"},_n={key:0,class:"image"},yn={class:"image-container"},kn=$({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=K("hero-image-slot-exists");return(t,n)=>(l(),p("div",{class:N(["VPHero",{"has-image":t.image||s(e)}])},[d("div",pn,[d("div",hn,[v(t.$slots,"home-hero-info-before",{},void 0,!0),v(t.$slots,"home-hero-info",{},()=>[d("h1",vn,[t.name?(l(),p("span",{key:0,innerHTML:t.name,class:"name clip"},null,8,mn)):k("",!0),t.text?(l(),p("span",{key:1,innerHTML:t.text,class:"text"},null,8,fn)):k("",!0)]),t.tagline?(l(),p("p",{key:0,innerHTML:t.tagline,class:"tagline"},null,8,bn)):k("",!0)],!0),v(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(l(),p("div",gn,[(l(!0),p(O,null,F(t.actions,a=>(l(),p("div",{key:a.link,class:"action"},[y(un,{tag:"a",size:"medium",theme:a.theme,text:a.text,href:a.link,target:a.target,rel:a.rel},null,8,["theme","text","href","target","rel"])]))),128))])):k("",!0),v(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||s(e)?(l(),p("div",_n,[d("div",yn,[n[0]||(n[0]=d("div",{class:"image-bg"},null,-1)),v(t.$slots,"home-hero-image",{},()=>[t.image?(l(),S($e,{key:0,class:"image-src",image:t.image},null,8,["image"])):k("",!0)],!0)])])):k("",!0)])],2))}}),$n=M(kn,[["__scopeId","data-v-3d256e5e"]]),Sn=$({__name:"VPHomeHero",setup(o){const{frontmatter:e}=W();return(t,n)=>s(e).hero?(l(),S($n,{key:0,class:"VPHomeHero",name:s(e).hero.name,text:s(e).hero.text,tagline:s(e).hero.tagline,image:s(e).hero.image,actions:s(e).hero.actions},{"home-hero-info-before":m(()=>[v(t.$slots,"home-hero-info-before")]),"home-hero-info":m(()=>[v(t.$slots,"home-hero-info")]),"home-hero-info-after":m(()=>[v(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":m(()=>[v(t.$slots,"home-hero-actions-after")]),"home-hero-image":m(()=>[v(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):k("",!0)}}),Ln={class:"box"},wn={key:0,class:"icon"},Pn=["innerHTML"],Vn=["innerHTML"],Mn=["innerHTML"],An={key:4,class:"link-text"},xn={class:"link-text-value"},Tn=$({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(l(),S(J,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:m(()=>[d("article",Ln,[typeof e.icon=="object"&&e.icon.wrap?(l(),p("div",wn,[y($e,{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"?(l(),S($e,{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?(l(),p("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Pn)):k("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Vn),e.details?(l(),p("p",{key:3,class:"details",innerHTML:e.details},null,8,Mn)):k("",!0),e.linkText?(l(),p("div",An,[d("p",xn,[Q(A(e.linkText)+" ",1),t[0]||(t[0]=d("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):k("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Nn=M(Tn,[["__scopeId","data-v-f5e9645b"]]),Wn={key:0,class:"VPFeatures"},En={class:"container"},Hn={class:"items"},Bn=$({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=L(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,a)=>n.features?(l(),p("div",Wn,[d("div",En,[d("div",Hn,[(l(!0),p(O,null,F(n.features,r=>(l(),p("div",{key:r.title,class:N(["item",[t.value]])},[y(Nn,{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))])])])):k("",!0)}}),On=M(Bn,[["__scopeId","data-v-d0a190d7"]]),In=$({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=W();return(t,n)=>s(e).features?(l(),S(On,{key:0,class:"VPHomeFeatures",features:s(e).features},null,8,["features"])):k("",!0)}}),Cn=$({__name:"VPHomeContent",setup(o){const{width:e}=Bt({initialWidth:0,includeScrollbar:!1});return(t,n)=>(l(),p("div",{class:"vp-doc container",style:de(s(e)?{"--vp-offset":`calc(50% - ${s(e)/2}px)`}:{})},[v(t.$slots,"default",{},void 0,!0)],4))}}),Rn=M(Cn,[["__scopeId","data-v-7a48a447"]]),jn=$({__name:"VPHome",setup(o){const{frontmatter:e,theme:t}=W();return(n,a)=>{const r=ae("Content");return l(),p("div",{class:N(["VPHome",{"external-link-icon-enabled":s(t).externalLinkIcon}])},[v(n.$slots,"home-hero-before",{},void 0,!0),y(Sn,null,{"home-hero-info-before":m(()=>[v(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":m(()=>[v(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":m(()=>[v(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":m(()=>[v(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":m(()=>[v(n.$slots,"home-hero-image",{},void 0,!0)]),_:3}),v(n.$slots,"home-hero-after",{},void 0,!0),v(n.$slots,"home-features-before",{},void 0,!0),y(In),v(n.$slots,"home-features-after",{},void 0,!0),s(e).markdownStyles!==!1?(l(),S(Rn,{key:0},{default:m(()=>[y(r)]),_:1})):(l(),S(r,{key:1}))],2)}}}),Fn=M(jn,[["__scopeId","data-v-e40e30de"]]),Un={},Dn={class:"VPPage"};function zn(o,e){const t=ae("Content");return l(),p("div",Dn,[v(o.$slots,"page-top"),y(t),v(o.$slots,"page-bottom")])}const Kn=M(Un,[["render",zn]]),Gn=$({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=W(),{hasSidebar:n}=Z();return(a,r)=>(l(),p("div",{class:N(["VPContent",{"has-sidebar":s(n),"is-home":s(t).layout==="home"}]),id:"VPContent"},[s(e).isNotFound?v(a.$slots,"not-found",{key:0},()=>[y(da)],!0):s(t).layout==="page"?(l(),S(Kn,{key:1},{"page-top":m(()=>[v(a.$slots,"page-top",{},void 0,!0)]),"page-bottom":m(()=>[v(a.$slots,"page-bottom",{},void 0,!0)]),_:3})):s(t).layout==="home"?(l(),S(Fn,{key:2},{"home-hero-before":m(()=>[v(a.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":m(()=>[v(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":m(()=>[v(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":m(()=>[v(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":m(()=>[v(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":m(()=>[v(a.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":m(()=>[v(a.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":m(()=>[v(a.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":m(()=>[v(a.$slots,"home-features-after",{},void 0,!0)]),_:3})):s(t).layout&&s(t).layout!=="doc"?(l(),S(q(s(t).layout),{key:3})):(l(),S(ln,{key:4},{"doc-top":m(()=>[v(a.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":m(()=>[v(a.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":m(()=>[v(a.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":m(()=>[v(a.$slots,"doc-before",{},void 0,!0)]),"doc-after":m(()=>[v(a.$slots,"doc-after",{},void 0,!0)]),"aside-top":m(()=>[v(a.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":m(()=>[v(a.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":m(()=>[v(a.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":m(()=>[v(a.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":m(()=>[v(a.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":m(()=>[v(a.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),qn=M(Gn,[["__scopeId","data-v-91765379"]]),Jn={class:"container"},Yn=["innerHTML"],Xn=["innerHTML"],Qn=$({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=W(),{hasSidebar:n}=Z();return(a,r)=>s(e).footer&&s(t).footer!==!1?(l(),p("footer",{key:0,class:N(["VPFooter",{"has-sidebar":s(n)}])},[d("div",Jn,[s(e).footer.message?(l(),p("p",{key:0,class:"message",innerHTML:s(e).footer.message},null,8,Yn)):k("",!0),s(e).footer.copyright?(l(),p("p",{key:1,class:"copyright",innerHTML:s(e).footer.copyright},null,8,Xn)):k("",!0)])],2)):k("",!0)}}),Zn=M(Qn,[["__scopeId","data-v-c970a860"]]);function eo(){const{theme:o,frontmatter:e}=W(),t=it([]),n=L(()=>t.value.length>0);return we(()=>{t.value=Je(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const to={class:"menu-text"},ao={class:"header"},no={class:"outline"},oo=$({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=W(),n=w(!1),a=w(0),r=w(),u=w();function c(g){var f;(f=r.value)!=null&&f.contains(g.target)||(n.value=!1)}H(n,g=>{if(g){document.addEventListener("click",c);return}document.removeEventListener("click",c)}),Be("Escape",()=>{n.value=!1}),we(()=>{n.value=!1});function i(){n.value=!n.value,a.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function h(g){g.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),Pe(()=>{n.value=!1}))}function b(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(g,f)=>(l(),p("div",{class:"VPLocalNavOutlineDropdown",style:de({"--vp-vh":a.value+"px"}),ref_key:"main",ref:r},[g.headers.length>0?(l(),p("button",{key:0,onClick:i,class:N({open:n.value})},[d("span",to,A(s(ft)(s(t))),1),f[0]||(f[0]=d("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(l(),p("button",{key:1,onClick:b},A(s(t).returnToTopLabel||"Return to top"),1)),y(le,{name:"flyout"},{default:m(()=>[n.value?(l(),p("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:h},[d("div",ao,[d("a",{class:"top-link",href:"#",onClick:b},A(s(t).returnToTopLabel||"Return to top"),1)]),d("div",no,[y(bt,{headers:g.headers},null,8,["headers"])])],512)):k("",!0)]),_:1})],4))}}),so=M(oo,[["__scopeId","data-v-168ddf5d"]]),io={class:"container"},lo=["aria-expanded"],ro={class:"menu-text"},uo=$({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=W(),{hasSidebar:n}=Z(),{headers:a}=eo(),{y:r}=rt(),u=w(0);D(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),we(()=>{a.value=Je(t.value.outline??e.value.outline)});const c=L(()=>a.value.length===0),i=L(()=>c.value&&!n.value),h=L(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:c.value,fixed:i.value}));return(b,g)=>s(t).layout!=="home"&&(!i.value||s(r)>=u.value)?(l(),p("div",{key:0,class:N(h.value)},[d("div",io,[s(n)?(l(),p("button",{key:0,class:"menu","aria-expanded":b.open,"aria-controls":"VPSidebarNav",onClick:g[0]||(g[0]=f=>b.$emit("open-menu"))},[g[1]||(g[1]=d("span",{class:"vpi-align-left menu-icon"},null,-1)),d("span",ro,A(s(e).sidebarMenuLabel||"Menu"),1)],8,lo)):k("",!0),y(so,{headers:s(a),navHeight:u.value},null,8,["headers","navHeight"])])],2)):k("",!0)}}),co=M(uo,[["__scopeId","data-v-070ab83d"]]);function po(){const o=w(!1);function e(){o.value=!0,window.addEventListener("resize",a)}function t(){o.value=!1,window.removeEventListener("resize",a)}function n(){o.value?t():e()}function a(){window.outerWidth>=768&&t()}const r=ve();return H(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const ho={},vo={class:"VPSwitch",type:"button",role:"switch"},mo={class:"check"},fo={key:0,class:"icon"};function bo(o,e){return l(),p("button",vo,[d("span",mo,[o.$slots.default?(l(),p("span",fo,[v(o.$slots,"default",{},void 0,!0)])):k("",!0)])])}const go=M(ho,[["render",bo],["__scopeId","data-v-4a1c76db"]]),_o=$({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=W(),n=K("toggle-appearance",()=>{e.value=!e.value}),a=w("");return Ue(()=>{a.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,u)=>(l(),S(go,{title:a.value,class:"VPSwitchAppearance","aria-checked":s(e),onClick:s(n)},{default:m(()=>u[0]||(u[0]=[d("span",{class:"vpi-sun sun"},null,-1),d("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),Ye=M(_o,[["__scopeId","data-v-e40a8bb6"]]),yo={key:0,class:"VPNavBarAppearance"},ko=$({__name:"VPNavBarAppearance",setup(o){const{site:e}=W();return(t,n)=>s(e).appearance&&s(e).appearance!=="force-dark"&&s(e).appearance!=="force-auto"?(l(),p("div",yo,[y(Ye)])):k("",!0)}}),$o=M(ko,[["__scopeId","data-v-af096f4a"]]),Xe=w();let gt=!1,Ee=0;function So(o){const e=w(!1);if(Ve){!gt&&Lo(),Ee++;const t=H(Xe,n=>{var a,r,u;n===o.el.value||(a=o.el.value)!=null&&a.contains(n)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});Fe(()=>{t(),Ee--,Ee||wo()})}return Ot(e)}function Lo(){document.addEventListener("focusin",_t),gt=!0,Xe.value=document.activeElement}function wo(){document.removeEventListener("focusin",_t)}function _t(){Xe.value=document.activeElement}const Po={class:"VPMenuLink"},Vo=["innerHTML"],Mo=$({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=W();return(t,n)=>(l(),p("div",Po,[y(J,{class:N({active:s(ie)(s(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:m(()=>[d("span",{innerHTML:t.item.text},null,8,Vo)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),Ae=M(Mo,[["__scopeId","data-v-acbfed09"]]),Ao={class:"VPMenuGroup"},xo={key:0,class:"title"},To=$({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(l(),p("div",Ao,[e.text?(l(),p("p",xo,A(e.text),1)):k("",!0),(l(!0),p(O,null,F(e.items,n=>(l(),p(O,null,["link"in n?(l(),S(Ae,{key:0,item:n},null,8,["item"])):k("",!0)],64))),256))]))}}),No=M(To,[["__scopeId","data-v-48c802d0"]]),Wo={class:"VPMenu"},Eo={key:0,class:"items"},Ho=$({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(l(),p("div",Wo,[e.items?(l(),p("div",Eo,[(l(!0),p(O,null,F(e.items,n=>(l(),p(O,{key:JSON.stringify(n)},["link"in n?(l(),S(Ae,{key:0,item:n},null,8,["item"])):"component"in n?(l(),S(q(n.component),te({key:1,ref_for:!0},n.props),null,16)):(l(),S(No,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):k("",!0),v(e.$slots,"default",{},void 0,!0)]))}}),Bo=M(Ho,[["__scopeId","data-v-7dd3104a"]]),Oo=["aria-expanded","aria-label"],Io={key:0,class:"text"},Co=["innerHTML"],Ro={key:1,class:"vpi-more-horizontal icon"},jo={class:"menu"},Fo=$({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=w(!1),t=w();So({el:t,onBlur:n});function n(){e.value=!1}return(a,r)=>(l(),p("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=u=>e.value=!0),onMouseleave:r[2]||(r[2]=u=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":a.label,onClick:r[0]||(r[0]=u=>e.value=!e.value)},[a.button||a.icon?(l(),p("span",Io,[a.icon?(l(),p("span",{key:0,class:N([a.icon,"option-icon"])},null,2)):k("",!0),a.button?(l(),p("span",{key:1,innerHTML:a.button},null,8,Co)):k("",!0),r[3]||(r[3]=d("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(l(),p("span",Ro))],8,Oo),d("div",jo,[y(Bo,{items:a.items},{default:m(()=>[v(a.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),xe=M(Fo,[["__scopeId","data-v-04f5c5e9"]]),Uo=["href","aria-label","innerHTML"],Do=$({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=w();D(async()=>{var r;await Pe();const a=(r=t.value)==null?void 0:r.children[0];a instanceof HTMLElement&&a.className.startsWith("vpi-social-")&&(getComputedStyle(a).maskImage||getComputedStyle(a).webkitMaskImage)==="none"&&a.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const n=L(()=>typeof e.icon=="object"?e.icon.svg:``);return(a,r)=>(l(),p("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:a.link,"aria-label":a.ariaLabel??(typeof a.icon=="string"?a.icon:""),target:"_blank",rel:"noopener",innerHTML:n.value},null,8,Uo))}}),zo=M(Do,[["__scopeId","data-v-d26d30cb"]]),Ko={class:"VPSocialLinks"},Go=$({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(l(),p("div",Ko,[(l(!0),p(O,null,F(e.links,({link:n,icon:a,ariaLabel:r})=>(l(),S(zo,{key:n,icon:a,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),Qe=M(Go,[["__scopeId","data-v-ee7a9424"]]),qo={key:0,class:"group translations"},Jo={class:"trans-title"},Yo={key:1,class:"group"},Xo={class:"item appearance"},Qo={class:"label"},Zo={class:"appearance-action"},es={key:2,class:"group"},ts={class:"item social-links"},as=$({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=W(),{localeLinks:n,currentLang:a}=be({correspondingLink:!0}),r=L(()=>n.value.length&&a.value.label||e.value.appearance||t.value.socialLinks);return(u,c)=>r.value?(l(),S(xe,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:m(()=>[s(n).length&&s(a).label?(l(),p("div",qo,[d("p",Jo,A(s(a).label),1),(l(!0),p(O,null,F(s(n),i=>(l(),S(Ae,{key:i.link,item:i},null,8,["item"]))),128))])):k("",!0),s(e).appearance&&s(e).appearance!=="force-dark"&&s(e).appearance!=="force-auto"?(l(),p("div",Yo,[d("div",Xo,[d("p",Qo,A(s(t).darkModeSwitchLabel||"Appearance"),1),d("div",Zo,[y(Ye)])])])):k("",!0),s(t).socialLinks?(l(),p("div",es,[d("div",ts,[y(Qe,{class:"social-links-list",links:s(t).socialLinks},null,8,["links"])])])):k("",!0)]),_:1})):k("",!0)}}),ns=M(as,[["__scopeId","data-v-925effce"]]),os=["aria-expanded"],ss=$({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(l(),p("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},t[1]||(t[1]=[d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)]),10,os))}}),is=M(ss,[["__scopeId","data-v-5dea55bf"]]),ls=["innerHTML"],rs=$({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=W();return(t,n)=>(l(),S(J,{class:N({VPNavBarMenuLink:!0,active:s(ie)(s(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:m(()=>[d("span",{innerHTML:t.item.text},null,8,ls)]),_:1},8,["class","href","target","rel","no-icon"]))}}),us=M(rs,[["__scopeId","data-v-956ec74c"]]),yt=$({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=W(),n=r=>"component"in r?!1:"link"in r?ie(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),a=L(()=>n(e.item));return(r,u)=>(l(),S(xe,{class:N({VPNavBarMenuGroup:!0,active:s(ie)(s(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||a.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),ds={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},cs=$({__name:"VPNavBarMenu",setup(o){const{theme:e}=W();return(t,n)=>s(e).nav?(l(),p("nav",ds,[n[0]||(n[0]=d("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(l(!0),p(O,null,F(s(e).nav,a=>(l(),p(O,{key:JSON.stringify(a)},["link"in a?(l(),S(us,{key:0,item:a},null,8,["item"])):"component"in a?(l(),S(q(a.component),te({key:1,ref_for:!0},a.props),null,16)):(l(),S(yt,{key:2,item:a},null,8,["item"]))],64))),128))])):k("",!0)}}),ps=M(cs,[["__scopeId","data-v-e6d46098"]]);function hs(o){const{localeIndex:e,theme:t}=W();function n(a){var P,V,x;const r=a.split("."),u=(P=t.value.search)==null?void 0:P.options,c=u&&typeof u=="object",i=c&&((x=(V=u.locales)==null?void 0:V[e.value])==null?void 0:x.translations)||null,h=c&&u.translations||null;let b=i,g=h,f=o;const _=r.pop();for(const B of r){let j=null;const E=f==null?void 0:f[B];E&&(j=f=E);const C=g==null?void 0:g[B];C&&(j=g=C);const T=b==null?void 0:b[B];T&&(j=b=T),E||(f=j),C||(g=j),T||(b=j)}return(b==null?void 0:b[_])??(g==null?void 0:g[_])??(f==null?void 0:f[_])??""}return n}const vs=["aria-label"],ms={class:"DocSearch-Button-Container"},fs={class:"DocSearch-Button-Placeholder"},at=$({__name:"VPNavBarSearchButton",setup(o){const t=hs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,a)=>(l(),p("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":s(t)("button.buttonAriaLabel")},[d("span",ms,[a[0]||(a[0]=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),d("span",fs,A(s(t)("button.buttonText")),1)]),a[1]||(a[1]=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,vs))}}),bs={class:"VPNavBarSearch"},gs={id:"local-search"},_s={key:1,id:"docsearch"},ys=$({__name:"VPNavBarSearch",setup(o){const e=It(()=>Ct(()=>import("./VPLocalSearchBox.3EF4bsHS.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=W(),a=w(!1),r=w(!1);D(()=>{});function u(){a.value||(a.value=!0,setTimeout(c,16))}function c(){const g=new Event("keydown");g.key="k",g.metaKey=!0,window.dispatchEvent(g),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||c()},16)}function i(g){const f=g.target,_=f.tagName;return f.isContentEditable||_==="INPUT"||_==="SELECT"||_==="TEXTAREA"}const h=w(!1);Be("k",g=>{(g.ctrlKey||g.metaKey)&&(g.preventDefault(),h.value=!0)}),Be("/",g=>{i(g)||(g.preventDefault(),h.value=!0)});const b="local";return(g,f)=>{var _;return l(),p("div",bs,[s(b)==="local"?(l(),p(O,{key:0},[h.value?(l(),S(s(e),{key:0,onClose:f[0]||(f[0]=P=>h.value=!1)})):k("",!0),d("div",gs,[y(at,{onClick:f[1]||(f[1]=P=>h.value=!0)})])],64)):s(b)==="algolia"?(l(),p(O,{key:1},[a.value?(l(),S(s(t),{key:0,algolia:((_=s(n).search)==null?void 0:_.options)??s(n).algolia,onVnodeBeforeMount:f[2]||(f[2]=P=>r.value=!0)},null,8,["algolia"])):k("",!0),r.value?k("",!0):(l(),p("div",_s,[y(at,{onClick:u})]))],64)):k("",!0)])}}}),ks=$({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=W();return(t,n)=>s(e).socialLinks?(l(),S(Qe,{key:0,class:"VPNavBarSocialLinks",links:s(e).socialLinks},null,8,["links"])):k("",!0)}}),$s=M(ks,[["__scopeId","data-v-164c457f"]]),Ss=["href","rel","target"],Ls=["innerHTML"],ws={key:2},Ps=$({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=W(),{hasSidebar:n}=Z(),{currentLang:a}=be(),r=L(()=>{var i;return typeof t.value.logoLink=="string"?t.value.logoLink:(i=t.value.logoLink)==null?void 0:i.link}),u=L(()=>{var i;return typeof t.value.logoLink=="string"||(i=t.value.logoLink)==null?void 0:i.rel}),c=L(()=>{var i;return typeof t.value.logoLink=="string"||(i=t.value.logoLink)==null?void 0:i.target});return(i,h)=>(l(),p("div",{class:N(["VPNavBarTitle",{"has-sidebar":s(n)}])},[d("a",{class:"title",href:r.value??s(qe)(s(a).link),rel:u.value,target:c.value},[v(i.$slots,"nav-bar-title-before",{},void 0,!0),s(t).logo?(l(),S($e,{key:0,class:"logo",image:s(t).logo},null,8,["image"])):k("",!0),s(t).siteTitle?(l(),p("span",{key:1,innerHTML:s(t).siteTitle},null,8,Ls)):s(t).siteTitle===void 0?(l(),p("span",ws,A(s(e).title),1)):k("",!0),v(i.$slots,"nav-bar-title-after",{},void 0,!0)],8,Ss)],2))}}),Vs=M(Ps,[["__scopeId","data-v-0f4f798b"]]),Ms={class:"items"},As={class:"title"},xs=$({__name:"VPNavBarTranslations",setup(o){const{theme:e}=W(),{localeLinks:t,currentLang:n}=be({correspondingLink:!0});return(a,r)=>s(t).length&&s(n).label?(l(),S(xe,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:s(e).langMenuLabel||"Change language"},{default:m(()=>[d("div",Ms,[d("p",As,A(s(n).label),1),(l(!0),p(O,null,F(s(t),u=>(l(),S(Ae,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):k("",!0)}}),Ts=M(xs,[["__scopeId","data-v-c80d9ad0"]]),Ns={class:"wrapper"},Ws={class:"container"},Es={class:"title"},Hs={class:"content"},Bs={class:"content-body"},Os=$({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=rt(),{hasSidebar:n}=Z(),{frontmatter:a}=W(),r=w({});return Ue(()=>{r.value={"has-sidebar":n.value,home:a.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(u,c)=>(l(),p("div",{class:N(["VPNavBar",r.value])},[d("div",Ns,[d("div",Ws,[d("div",Es,[y(Vs,null,{"nav-bar-title-before":m(()=>[v(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":m(()=>[v(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",Hs,[d("div",Bs,[v(u.$slots,"nav-bar-content-before",{},void 0,!0),y(ys,{class:"search"}),y(ps,{class:"menu"}),y(Ts,{class:"translations"}),y($o,{class:"appearance"}),y($s,{class:"social-links"}),y(ns,{class:"extra"}),v(u.$slots,"nav-bar-content-after",{},void 0,!0),y(is,{class:"hamburger",active:u.isScreenOpen,onClick:c[0]||(c[0]=i=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),c[1]||(c[1]=d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1))],2))}}),Is=M(Os,[["__scopeId","data-v-822684d1"]]),Cs={key:0,class:"VPNavScreenAppearance"},Rs={class:"text"},js=$({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=W();return(n,a)=>s(e).appearance&&s(e).appearance!=="force-dark"&&s(e).appearance!=="force-auto"?(l(),p("div",Cs,[d("p",Rs,A(s(t).darkModeSwitchLabel||"Appearance"),1),y(Ye)])):k("",!0)}}),Fs=M(js,[["__scopeId","data-v-ffb44008"]]),Us=["innerHTML"],Ds=$({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=K("close-screen");return(t,n)=>(l(),S(J,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:s(e)},{default:m(()=>[d("span",{innerHTML:t.item.text},null,8,Us)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),zs=M(Ds,[["__scopeId","data-v-735512b8"]]),Ks=["innerHTML"],Gs=$({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=K("close-screen");return(t,n)=>(l(),S(J,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:s(e)},{default:m(()=>[d("span",{innerHTML:t.item.text},null,8,Ks)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),kt=M(Gs,[["__scopeId","data-v-372ae7c0"]]),qs={class:"VPNavScreenMenuGroupSection"},Js={key:0,class:"title"},Ys=$({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(l(),p("div",qs,[e.text?(l(),p("p",Js,A(e.text),1)):k("",!0),(l(!0),p(O,null,F(e.items,n=>(l(),S(kt,{key:n.text,item:n},null,8,["item"]))),128))]))}}),Xs=M(Ys,[["__scopeId","data-v-4b8941ac"]]),Qs=["aria-controls","aria-expanded"],Zs=["innerHTML"],ei=["id"],ti={key:0,class:"item"},ai={key:1,class:"item"},ni={key:2,class:"group"},oi=$({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=w(!1),n=L(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function a(){t.value=!t.value}return(r,u)=>(l(),p("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:a},[d("span",{class:"button-text",innerHTML:r.text},null,8,Zs),u[0]||(u[0]=d("span",{class:"vpi-plus button-icon"},null,-1))],8,Qs),d("div",{id:n.value,class:"items"},[(l(!0),p(O,null,F(r.items,c=>(l(),p(O,{key:JSON.stringify(c)},["link"in c?(l(),p("div",ti,[y(kt,{item:c},null,8,["item"])])):"component"in c?(l(),p("div",ai,[(l(),S(q(c.component),te({ref_for:!0},c.props,{"screen-menu":""}),null,16))])):(l(),p("div",ni,[y(Xs,{text:c.text,items:c.items},null,8,["text","items"])]))],64))),128))],8,ei)],2))}}),$t=M(oi,[["__scopeId","data-v-875057a5"]]),si={key:0,class:"VPNavScreenMenu"},ii=$({__name:"VPNavScreenMenu",setup(o){const{theme:e}=W();return(t,n)=>s(e).nav?(l(),p("nav",si,[(l(!0),p(O,null,F(s(e).nav,a=>(l(),p(O,{key:JSON.stringify(a)},["link"in a?(l(),S(zs,{key:0,item:a},null,8,["item"])):"component"in a?(l(),S(q(a.component),te({key:1,ref_for:!0},a.props,{"screen-menu":""}),null,16)):(l(),S($t,{key:2,text:a.text||"",items:a.items},null,8,["text","items"]))],64))),128))])):k("",!0)}}),li=$({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=W();return(t,n)=>s(e).socialLinks?(l(),S(Qe,{key:0,class:"VPNavScreenSocialLinks",links:s(e).socialLinks},null,8,["links"])):k("",!0)}}),ri={class:"list"},ui=$({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=be({correspondingLink:!0}),n=w(!1);function a(){n.value=!n.value}return(r,u)=>s(e).length&&s(t).label?(l(),p("div",{key:0,class:N(["VPNavScreenTranslations",{open:n.value}])},[d("button",{class:"title",onClick:a},[u[0]||(u[0]=d("span",{class:"vpi-languages icon lang"},null,-1)),Q(" "+A(s(t).label)+" ",1),u[1]||(u[1]=d("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),d("ul",ri,[(l(!0),p(O,null,F(s(e),c=>(l(),p("li",{key:c.link,class:"item"},[y(J,{class:"link",href:c.link},{default:m(()=>[Q(A(c.text),1)]),_:2},1032,["href"])]))),128))])],2)):k("",!0)}}),di=M(ui,[["__scopeId","data-v-362991c2"]]),ci={class:"container"},pi=$({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=w(null),t=ut(Ve?document.body:null);return(n,a)=>(l(),S(le,{name:"fade",onEnter:a[0]||(a[0]=r=>t.value=!0),onAfterLeave:a[1]||(a[1]=r=>t.value=!1)},{default:m(()=>[n.open?(l(),p("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",ci,[v(n.$slots,"nav-screen-content-before",{},void 0,!0),y(ii,{class:"menu"}),y(di,{class:"translations"}),y(Fs,{class:"appearance"}),y(li,{class:"social-links"}),v(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):k("",!0)]),_:3}))}}),hi=M(pi,[["__scopeId","data-v-833aabba"]]),vi={key:0,class:"VPNav"},mi=$({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=po(),{frontmatter:a}=W(),r=L(()=>a.value.navbar!==!1);return De("close-screen",t),Le(()=>{Ve&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,c)=>r.value?(l(),p("header",vi,[y(Is,{"is-screen-open":s(e),onToggleScreen:s(n)},{"nav-bar-title-before":m(()=>[v(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":m(()=>[v(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":m(()=>[v(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":m(()=>[v(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),y(hi,{open:s(e)},{"nav-screen-content-before":m(()=>[v(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":m(()=>[v(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):k("",!0)}}),fi=M(mi,[["__scopeId","data-v-f1e365da"]]),bi=["role","tabindex"],gi={key:1,class:"items"},_i=$({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:a,isActiveLink:r,hasActiveLink:u,hasChildren:c,toggle:i}=va(L(()=>e.item)),h=L(()=>c.value?"section":"div"),b=L(()=>a.value?"a":"div"),g=L(()=>c.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),f=L(()=>a.value?void 0:"button"),_=L(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":a.value},{"is-active":r.value},{"has-active":u.value}]);function P(x){"key"in x&&x.key!=="Enter"||!e.item.link&&i()}function V(){e.item.link&&i()}return(x,B)=>{const j=ae("VPSidebarItem",!0);return l(),S(q(h.value),{class:N(["VPSidebarItem",_.value])},{default:m(()=>[x.item.text?(l(),p("div",te({key:0,class:"item",role:f.value},Rt(x.item.items?{click:P,keydown:P}:{},!0),{tabindex:x.item.items&&0}),[B[1]||(B[1]=d("div",{class:"indicator"},null,-1)),x.item.link?(l(),S(J,{key:0,tag:b.value,class:"link",href:x.item.link,rel:x.item.rel,target:x.item.target},{default:m(()=>[(l(),S(q(g.value),{class:"text",innerHTML:x.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(l(),S(q(g.value),{key:1,class:"text",innerHTML:x.item.text},null,8,["innerHTML"])),x.item.collapsed!=null&&x.item.items&&x.item.items.length?(l(),p("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:V,onKeydown:jt(V,["enter"]),tabindex:"0"},B[0]||(B[0]=[d("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):k("",!0)],16,bi)):k("",!0),x.item.items&&x.item.items.length?(l(),p("div",gi,[x.depth<5?(l(!0),p(O,{key:0},F(x.item.items,E=>(l(),S(j,{key:E.text,item:E,depth:x.depth+1},null,8,["item","depth"]))),128)):k("",!0)])):k("",!0)]),_:1},8,["class"])}}}),yi=M(_i,[["__scopeId","data-v-a4b0d9bf"]]),ki=$({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=w(!0);let t=null;return D(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Ft(()=>{t!=null&&(clearTimeout(t),t=null)}),(n,a)=>(l(!0),p(O,null,F(n.items,r=>(l(),p("div",{key:r.text,class:N(["group",{"no-transition":e.value}])},[y(yi,{item:r,depth:0},null,8,["item"])],2))),128))}}),$i=M(ki,[["__scopeId","data-v-9e426adc"]]),Si={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Li=$({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=Z(),n=o,a=w(null),r=ut(Ve?document.body:null);H([n,a],()=>{var c;n.open?(r.value=!0,(c=a.value)==null||c.focus()):r.value=!1},{immediate:!0,flush:"post"});const u=w(0);return H(e,()=>{u.value+=1},{deep:!0}),(c,i)=>s(t)?(l(),p("aside",{key:0,class:N(["VPSidebar",{open:c.open}]),ref_key:"navEl",ref:a,onClick:i[0]||(i[0]=Ut(()=>{},["stop"]))},[i[2]||(i[2]=d("div",{class:"curtain"},null,-1)),d("nav",Si,[i[1]||(i[1]=d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),v(c.$slots,"sidebar-nav-before",{},void 0,!0),(l(),S($i,{items:s(e),key:u.value},null,8,["items"])),v(c.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):k("",!0)}}),wi=M(Li,[["__scopeId","data-v-18756405"]]),Pi=$({__name:"VPSkipLink",setup(o){const{theme:e}=W(),t=ve(),n=w();H(()=>t.path,()=>n.value.focus());function a({target:r}){const u=document.getElementById(decodeURIComponent(r.hash).slice(1));if(u){const c=()=>{u.removeAttribute("tabindex"),u.removeEventListener("blur",c)};u.setAttribute("tabindex","-1"),u.addEventListener("blur",c),u.focus(),window.scrollTo(0,0)}}return(r,u)=>(l(),p(O,null,[d("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:a},A(s(e).skipToContentLabel||"Skip to content"),1)],64))}}),Vi=M(Pi,[["__scopeId","data-v-492508fc"]]),Mi=$({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=Z(),a=ve();H(()=>a.path,n),ha(e,n);const{frontmatter:r}=W(),u=dt(),c=L(()=>!!u["home-hero-image"]);return De("hero-image-slot-exists",c),(i,h)=>{const b=ae("Content");return s(r).layout!==!1?(l(),p("div",{key:0,class:N(["Layout",s(r).pageClass])},[v(i.$slots,"layout-top",{},void 0,!0),y(Vi),y(ea,{class:"backdrop",show:s(e),onClick:s(n)},null,8,["show","onClick"]),y(fi,null,{"nav-bar-title-before":m(()=>[v(i.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":m(()=>[v(i.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":m(()=>[v(i.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":m(()=>[v(i.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":m(()=>[v(i.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":m(()=>[v(i.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),y(co,{open:s(e),onOpenMenu:s(t)},null,8,["open","onOpenMenu"]),y(wi,{open:s(e)},{"sidebar-nav-before":m(()=>[v(i.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":m(()=>[v(i.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),y(qn,null,{"page-top":m(()=>[v(i.$slots,"page-top",{},void 0,!0)]),"page-bottom":m(()=>[v(i.$slots,"page-bottom",{},void 0,!0)]),"not-found":m(()=>[v(i.$slots,"not-found",{},void 0,!0)]),"home-hero-before":m(()=>[v(i.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":m(()=>[v(i.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":m(()=>[v(i.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":m(()=>[v(i.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":m(()=>[v(i.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":m(()=>[v(i.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":m(()=>[v(i.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":m(()=>[v(i.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":m(()=>[v(i.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":m(()=>[v(i.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":m(()=>[v(i.$slots,"doc-before",{},void 0,!0)]),"doc-after":m(()=>[v(i.$slots,"doc-after",{},void 0,!0)]),"doc-top":m(()=>[v(i.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":m(()=>[v(i.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":m(()=>[v(i.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":m(()=>[v(i.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":m(()=>[v(i.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":m(()=>[v(i.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":m(()=>[v(i.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":m(()=>[v(i.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),y(Zn),v(i.$slots,"layout-bottom",{},void 0,!0)],2)):(l(),S(b,{key:1}))}}}),Ai=M(Mi,[["__scopeId","data-v-a9a9e638"]]),nt={Layout:Ai,enhanceApp:({app:o})=>{o.component("Badge",Xt)}},xi=$({__name:"NuInputHighlight",props:{active:{type:Boolean}},setup(o){return(e,t)=>(l(),p("div",{class:N(["input-highlight",{active:!!e.active}]),transition:"outline duration-200 ease"},[v(e.$slots,"default",{},void 0,!0)],2))}}),ge=M(xi,[["__scopeId","data-v-02726a5a"]]),Ti=["title","disabled"],Ni=["value","name","checked","aria-checked","disabled"],Wi={"inline-flex":"~","items-center":"","align-middle":""},Ei=$({__name:"Option",props:{name:{},value:{},icon:{},text:{},title:{},disabled:{type:Boolean},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:e}){const t=o,n=e,a=L({get:()=>t.modelValue,set:r=>n("update:modelValue",r)});return(r,u)=>(l(),p("label",{title:t.title,class:N(["nolebase-ui-input-horizontal-option",{active:a.value===t.value&&!t.disabled,disabled:t.disabled}]),disabled:t.disabled,text:"[14px]","w-full":"","inline-flex":"","cursor-pointer":"","select-none":"","items-center":"","justify-center":"","rounded-md":"","px-3":"","py-2":"","font-medium":""},[ce(d("input",{"onUpdate:modelValue":u[0]||(u[0]=c=>a.value=c),type:"radio",value:t.value,name:t.name,checked:a.value===t.value,"aria-checked":a.value===t.value,disabled:t.disabled,role:"radio",hidden:""},null,8,Ni),[[Dt,a.value]]),d("span",Wi,[t.icon?(l(),p("span",{key:0,class:N(t.icon),"aria-hidden":"true"},null,2)):k("",!0),t.text?(l(),p("span",{key:1,class:N([t.icon?"ml-1":""])},A(t.text),3)):k("",!0)])],10,Ti))}}),Hi={flex:"~ row",bg:"zinc-100 dark:zinc-900",text:"sm zinc-400 dark:zinc-500","w-full":"","appearance-none":"","rounded-lg":"","rounded-md":"","border-none":"","p-1":"","space-x-2":""},_e=$({__name:"index",props:{disabled:{type:Boolean},modelValue:{},options:{}},emits:["update:modelValue"],setup(o,{emit:e}){const t=o,n=e,a=L({get:()=>t.modelValue,set:r=>n("update:modelValue",r)});return(r,u)=>(l(),p("fieldset",Hi,[(l(!0),p(O,null,F(t.options,c=>(l(),S(Ei,{key:c.name,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=i=>a.value=i),name:c.name,icon:c.icon,title:c.title,text:c.text,"aria-label":c.ariaLabel,disabled:t.disabled,value:c.value},null,8,["modelValue","name","icon","title","text","aria-label","disabled","value"]))),128))]))}}),Bi={flex:"~ row",bg:"zinc-200/50 dark:zinc-800/50","w-full":"","appearance-none":"","rounded-lg":"","border-none":"","p-1":"","space-x-2":"",text:"sm zinc-300"},Oi={class:"nolebase-ui-slider nolebase-ui-slider",relative:"","w-full":"","select-none":""},Ii=["name","min","max","disabled","step"],Ci=$({__name:"NuInputSlider",props:{name:{default:"Slider"},disabled:{type:Boolean},modelValue:{default:0},min:{default:0},max:{default:100},step:{default:1},formatter:{}},emits:["update:modelValue"],setup(o,{emit:e}){const t=o,n=e,a=w(null),r=w(null),u=w(t.modelValue),c=w(t.min),i=w(t.max),h=ct(a),b=w(!1);D(()=>{a.value&&(a.value.style.setProperty("--nolebase-ui-slider-value",u.value.toString()),a.value.style.setProperty("--nolebase-ui-slider-min",t.min?t.min.toString():"0"),a.value.style.setProperty("--nolebase-ui-slider-max",t.max?t.max.toString():"100"),a.value.addEventListener("input",()=>{a.value&&a.value.style.setProperty("--nolebase-ui-slider-value",a.value.value.toString())}))});function g(f,_){if(!f||!_)return;const P=t.max?t.max:100,V=t.min?t.min:0,x=(u.value-V)/(P-V),B=f.getBoundingClientRect(),E=(_.getBoundingClientRect().width-32)/2;_.style.setProperty("left",`${x*(B.width-32)-E}px`)}return H(u,f=>{fi.value&&(f=i.value),n("update:modelValue",f)}),H(c,f=>{u.value>=f||(u.value=f)}),H(i,f=>{u.value<=f||(u.value=f)}),H(h,()=>{b.value=!0,setTimeout(()=>{if(!h.value){b.value=!1;return}if(!a.value){b.value=!1;return}if(!r.value){b.value=!1;return}g(a.value,r.value),b.value=!1},50)}),H(u,()=>{a.value&&r.value&&g(a.value,r.value)}),(f,_)=>(l(),p("div",Bi,[d("label",Oi,[ce(d("input",{ref_key:"inputSliderRef",ref:a,"onUpdate:modelValue":_[0]||(_[0]=P=>u.value=P),type:"range",name:t.name,min:t.min,max:t.max,disabled:t.disabled,class:N([{disabled:t.disabled},"nolebase-ui-slider-input nolebase-ui-slider-input-progress-indicator"]),step:t.step,"w-full":""},null,10,Ii),[[zt,u.value]]),y(le,{name:"fade"},{default:m(()=>[ce(d("span",{ref_key:"inputSliderTooltipRef",ref:r,class:N(["nolebase-ui-slider-tooltip",{"opacity-0":s(h)&&b.value}]),absolute:"","min-w-12":"","rounded-lg":"","bg-black":"","p-2":"","text-center":"","text-white":""},A(t.formatter?t.formatter(u.value):u.value),3),[[Me,s(h)]])]),_:1})])]))}}),St=M(Ci,[["__scopeId","data-v-20d0b729"]]),X="0px",Lt=$({__name:"NuVerticalTransition",props:{duration:{default:250},easingEnter:{default:"ease-in-out"},easingLeave:{default:"ease-in-out"},opacityClosed:{default:0},opacityOpened:{default:1}},setup(o){const e=o;function t(i){return{height:i.style.height,width:i.style.width,position:i.style.position,visibility:i.style.visibility,overflow:i.style.overflow,paddingTop:i.style.paddingTop,paddingBottom:i.style.paddingBottom,borderTopWidth:i.style.borderTopWidth,borderBottomWidth:i.style.borderBottomWidth,marginTop:i.style.marginTop,marginBottom:i.style.marginBottom}}function n(i,h){const{width:b}=getComputedStyle(i);i.style.width=b,i.style.position="absolute",i.style.visibility="hidden",i.style.height="";const{height:g}=getComputedStyle(i);return i.style.width=h.width,i.style.position=h.position,i.style.visibility=h.visibility,i.style.height=X,i.style.overflow="hidden",h.height&&h.height!==X?h.height:g}function a(i,h,b,g,f){const _=i.animate(g,f);i.style.height=h.height,_.onfinish=()=>{i.style.overflow=h.overflow,b()}}function r(i,h){return[{height:X,opacity:e.opacityClosed,paddingTop:X,paddingBottom:X,borderTopWidth:X,borderBottomWidth:X,marginTop:X,marginBottom:X},{height:i,opacity:e.opacityOpened,paddingTop:h.paddingTop,paddingBottom:h.paddingBottom,borderTopWidth:h.borderTopWidth,borderBottomWidth:h.borderBottomWidth,marginTop:h.marginTop,marginBottom:h.marginBottom}]}function u(i,h){const b=i,g=t(b),f=n(b,g),_=r(f,g),P={duration:e.duration,easing:e.easingEnter};a(b,g,h,_,P)}function c(i,h){const b=i,g=t(b),{height:f}=getComputedStyle(b);b.style.height=f,b.style.overflow="hidden";const _=r(f,g).reverse(),P={duration:e.duration,easing:e.easingLeave};a(b,g,h,_,P)}return(i,h)=>(l(),S(le,{css:!1,onEnter:u,onLeave:c},{default:m(()=>[v(i.$slots,"default")]),_:3}))}});function He(o,e){if(!e)return;const t=String(o).split(".");let n=e;for(const a of t)if(n=n==null?void 0:n[a],!n)return;return typeof n=="string"?n:String(n)}function Ri(o,e,t){const{locales:n,defaultLocales:a}=t;if(!n&&!a||!o)return e;let r=n[o];r||(r=a[o],r||(r=t.defaultEnLocale));const u=He(e,r);if(u)return u;const c=a[o];if(c){const h=He(e,c);if(h)return h}const i=He(e,t.defaultEnLocale);return i||e}function ji(o,e,t){return()=>{const n=K(o,{locales:{}}),{lang:a}=Se(),r=L(()=>a.value||"en");return{t(u,c){const i=L(()=>Ri(r.value,u,{locales:n.locales||{},defaultLocales:e,defaultEnLocale:t}));return i.value?c!=null&&c.omitEmpty&&i.value===u?"":!c||!c.props?i.value:L(()=>{let h=i.value;return Object.entries(c.props||{}).forEach(([b,g])=>{h=h.replace(new RegExp(`{{${b}}}`,"g"),String(g))}),h}).value:c!=null&&c.omitEmpty?"":u}}}}function Ze(){const o=ne();return{trigger:e=>{e.classList.add("VPNolebaseEnhancedReadabilitiesLayoutSwitchAnimated"),ze(()=>{o.value&&e&&e.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchAnimated")},5e3)()}}}const re=Symbol("vitepress-nolebase-enhanced-readabilities"),et="vitepress-nolebase-enhanced-readabilities-layout-switch-mode",Fi="vitepress-nolebase-enhanced-readabilities-content-layout-max-width",Ui="vitepress-nolebase-enhanced-readabilities-page-layout-max-width",wt="vitepress-nolebase-enhanced-readabilities-spotlight-mode",Pt="vitepress-nolebase-enhanced-readabilities-spotlight-styles";var R=(o=>(o[o.FullWidth=1]="FullWidth",o[o.Original=3]="Original",o[o.SidebarWidthAdjustableOnly=4]="SidebarWidthAdjustableOnly",o[o.BothWidthAdjustable=5]="BothWidthAdjustable",o))(R||{});const ot=[1,3,4,5];var se=(o=>(o[o.Under=1]="Under",o[o.Aside=2]="Aside",o))(se||{}),he={title:{title:"Enhanced Readability",titleAriaLabel:"Enhanced Readability"},layoutSwitch:{title:"Layout Switch",titleHelpMessage:"Adjust the layout style of VitePress to adapt to different reading needs and screens.",titleAriaLabel:"Layout Switch",titleScreenNavWarningMessage:"No available layout can be switched in mobile screen.",optionFullWidth:"Expand all",optionFullWidthAriaLabel:"Expand all",optionFullWidthHelpMessage:"The sidebar and content area occupy the entire width of the screen.",optionSidebarWidthAdjustableOnly:"Expand sidebar with adjustable values",optionSidebarWidthAdjustableOnlyAriaLabel:"Expand sidebar with adjustable values",optionSidebarWidthAdjustableOnlyHelpMessage:"Expand sidebar width and add a new slider for user to choose and customize their desired width of the maximum width of sidebar can go, but the content area width will remain the same.",optionBothWidthAdjustable:"Expand all with adjustable values",optionBothWidthAdjustableAriaLabel:"Expand all with adjustable values",optionBothWidthAdjustableHelpMessage:"Expand both sidebar and document content and add two new slider for user to choose and customize their desired width of the maximum width of either sidebar or document content can go.",optionOriginalWidth:"Original width",optionOriginalWidthAriaLabel:"Original width",optionOriginalWidthHelpMessage:"The original layout width of VitePress",contentLayoutMaxWidth:{title:"Content Layout Max Width",titleAriaLabel:"Content Layout Max Width",titleHelpMessage:"Adjust the exact value of the document content width of VitePress layout to adapt to different reading needs and screens.",titleScreenNavWarningMessage:"Content Layout Max Width is not available in mobile screen temporarily.",slider:"Adjust the maximum width of the content layout",sliderAriaLabel:"Adjust the maximum width of the content layout",sliderHelpMessage:"A ranged slider for user to choose and customize their desired width of the maximum width of the content layout can go."},pageLayoutMaxWidth:{title:"Page Layout Max Width",titleAriaLabel:"Page Layout Max Width",titleHelpMessage:"Adjust the exact value of the page width of VitePress layout to adapt to different reading needs and screens.",titleScreenNavWarningMessage:"Page Layout Max Width is not available in mobile screen temporarily.",slider:"Adjust the maximum width of the page layout",sliderAriaLabel:"Adjust the maximum width of the page layout",sliderHelpMessage:"A ranged slider for user to choose and customize their desired width of the maximum width of the page layout can go."}},spotlight:{title:"Spotlight",titleAriaLabel:"Spotlight",titleHelpMessage:"Highlight the line where the mouse is currently hovering in the content to optimize for users who may have reading and focusing difficulties.",titleScreenNavWarningMessage:"Spotlight is not available in mobile screen temporarily.",optionOn:"On",optionOnAriaLabel:"On",optionOnHelpMessage:"Turn on Spotlight.",optionOff:"Off",optionOffAriaLabel:"Off",optionOffHelpMessage:"Turn off Spotlight.",styles:{title:"Spotlight Styles",titleAriaLabel:"Spotlight Styles",titleHelpMessage:"Adjust the styles of Spotlight.",titleScreenNavWarningMessage:"Spotlight Styles is not available in mobile screen temporarily.",optionUnder:"Under",optionUnderAriaLabel:"Under",optionUnderHelpMessage:"Add a solid background color underneath the hovering element to highlight where the cursor is currently hovering.",optionAside:"Aside",optionAsideAriaLabel:"Aside",optionAsideHelpMessage:"Add a fixed line with solid color aside the hovering element to highlight where the cursor is currently hovering."}}};he.title;he.layoutSwitch;he.spotlight;var fe={title:{title:"Повышенная читаемость",titleAriaLabel:"Повышенная читаемость"},layoutSwitch:{title:"Макет страницы",titleHelpMessage:"Измените стиль оформления документации, выберите максимально удобный вариант в зависимости от размера вашего экрана и типа устройства.",titleAriaLabel:"Макет страницы",titleScreenNavWarningMessage:"Изменение макета страницы недоступено на экранах мобильных устройств",optionFullWidth:"Развёрнутый",optionFullWidthAriaLabel:"Развёрнутый",optionFullWidthHelpMessage:"Страница и область содержимого занимают всю ширину экрана.",optionSidebarWidthAdjustableOnly:"Настраиваемая ширина страницы",optionSidebarWidthAdjustableOnlyAriaLabel:"Настраиваемая ширина страницы",optionSidebarWidthAdjustableOnlyHelpMessage:"Управление максимальной шириной страницы, область содержимого будет зафиксирована.",optionBothWidthAdjustable:"Полностью настраиваемый",optionBothWidthAdjustableAriaLabel:"Полностью настраиваемый",optionBothWidthAdjustableHelpMessage:"Управление максимальной шириной страницы и содержимого.",optionOriginalWidth:"Оригинальная ширина",optionOriginalWidthAriaLabel:"Оригинальная ширина",optionOriginalWidthHelpMessage:"Ширина страницы, предусмотренная разработчиками VitePress.",contentLayoutMaxWidth:{title:"Максимальная ширина страницы",titleAriaLabel:"Максимальная ширина страницы",titleHelpMessage:"Точное значение ширины страницы можно настроить для различных экранов и адаптировать условиям чтения.",titleScreenNavWarningMessage:"Изменение максимальной ширины страницы недоступно на экранах мобильных устройств.",slider:"Регулеровка максимальной ширины страницы",sliderAriaLabel:"Регулеровка максимальной ширины страницы",sliderHelpMessage:"Ползунок, позволяющий настроить максимальную ширину страницы. Может быть изменён в зависимости от размера экрана."},pageLayoutMaxWidth:{title:"Максимальная ширина содержимого",titleAriaLabel:"Максимальная ширина содержимого",titleHelpMessage:"Точное значение ширины содержимого можно настроить для различных экранов и адаптировать условиям чтения.",titleScreenNavWarningMessage:"Изменение максимальной ширины страницы недоступно на экранах мобильных устройств.",slider:"Регулеровка максимальной ширины содержимого",sliderAriaLabel:"Регулеровка максимальной ширины содержимого",sliderHelpMessage:"Ползунок, позволяющий настроить максимальную ширину содержимого. Может быть изменён в зависимости от размера экрана."}},spotlight:{title:"Подсветка",titleAriaLabel:"Подсветка",titleHelpMessage:"Выделите блок содержимого, на котором находится курсор.",titleScreenNavWarningMessage:"Подсветка недоступна на экране мобильного устройства.",optionOn:"Включить",optionOnAriaLabel:"Включить",optionOnHelpMessage:"Включите подсветку.",optionOff:"Выключить",optionOffAriaLabel:"Выключить",optionOffHelpMessage:"Выключите подсветку.",styles:{title:"Стиль подсветки",titleAriaLabel:"Стиль подсветки",titleHelpMessage:"Измените стиль выделения.",titleScreenNavWarningMessage:"Подсветка недоступна на экране мобильного устройства.",optionUnder:"Под блоком",optionUnderAriaLabel:"Под блоком",optionUnderHelpMessage:"Добавляет сплошную заливку блока под курсором.",optionAside:"Сбоку от блока",optionAsideAriaLabel:"Сбоку от блока",optionAsideHelpMessage:"Добавляет фиксированную сплошную линию рядом с блоком под курсором"}}};fe.title;fe.layoutSwitch;fe.spotlight;var ue={title:{title:"阅读增强",titleAriaLabel:"阅读增强"},layoutSwitch:{title:"布局切换",titleAriaLabel:"布局切换",titleHelpMessage:"调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。",titleScreenNavWarningMessage:"移动端无可切换布局。",optionFullWidth:"全部展开",optionFullWidthAriaLabel:"全部展开",optionFullWidthHelpMessage:"使侧边栏和内容区域占据整个屏幕的全部宽度。",optionSidebarWidthAdjustableOnly:"全部展开,但侧边栏宽度可调",optionSidebarWidthAdjustableOnlyAriaLabel:"全部展开,但侧边栏宽度可调",optionSidebarWidthAdjustableOnlyHelpMessage:"侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。",optionBothWidthAdjustable:"全部展开,且侧边栏和内容区域宽度均可调",optionBothWidthAdjustableAriaLabel:"全部展开,且侧边栏和内容区域宽度均可调",optionBothWidthAdjustableHelpMessage:"侧边栏和内容区域宽度均可调,调整后的侧边栏和内容区域将可以占据整个屏幕的最大宽度。",optionOriginalWidth:"原始宽度",optionOriginalWidthAriaLabel:"原始宽度",optionOriginalWidthHelpMessage:"原始的 VitePress 默认布局宽度",contentLayoutMaxWidth:{title:"内容最大宽度",titleAriaLabel:"内容最大宽度",titleHelpMessage:"调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。",titleScreenNavWarningMessage:"移动端暂不支持调整内容最大宽度。",slider:"调整内容最大宽度",sliderAriaLabel:"调整内容最大宽度",sliderHelpMessage:"一个可调整的滑块,用于选择和自定义内容最大宽度。",optionFullWidthAriaLabel:"内容最大宽度"},pageLayoutMaxWidth:{title:"页面最大宽度",titleAriaLabel:"页面最大宽度",titleHelpMessage:"调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。",titleScreenNavWarningMessage:"移动端暂不支持调整页面最大宽度。",slider:"调整页面最大宽度",sliderAriaLabel:"调整页面最大宽度",sliderHelpMessage:"一个可调整的滑块,用于选择和自定义页面最大宽度。"}},spotlight:{title:"聚光灯",titleAriaLabel:"聚光灯",titleHelpMessage:"支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。",titleScreenNavWarningMessage:"移动端暂不支持聚光灯。",optionOn:"开启",optionOnAriaLabel:"开启",optionOnHelpMessage:"开启聚光灯。",optionOff:"关闭",optionOffAriaLabel:"关闭",optionOffHelpMessage:"关闭聚光灯。",styles:{title:"聚光灯样式",titleAriaLabel:"聚光灯样式",titleHelpMessage:"调整聚光灯的样式。",titleScreenNavWarningMessage:"移动端暂不支持调整聚光灯样式。",optionUnder:"置于底部",optionUnderAriaLabel:"置于底部",optionUnderHelpMessage:"在当前鼠标悬停的元素下方添加一个纯色背景以突出显示当前鼠标悬停的位置。",optionAside:"置于侧边",optionAsideAriaLabel:"置于侧边",optionAsideHelpMessage:"在当前鼠标悬停的元素旁边添加一条固定的纯色线以突出显示当前鼠标悬停的位置。"}}};ue.title;ue.layoutSwitch;ue.spotlight;const Di={"en-US":he,en:he,"ru-RU":fe,ru:fe,"zh-CN":ue,"zh-Hans":ue,zh:ue},ee=ji(re,Di,he),zi=$({__name:"MenuHelp",props:{menuTitleElementRef:{},isPoppedUp:{type:Boolean}},emits:["update:isPoppedUp"],setup(o,{emit:e}){const t=o,n=e,a=pt(t,"menuTitleElementRef"),r=w(),u=w(),c=ne(),i=ct(r),h=Oe(a),b=Oe(u),g=L(()=>({top:`${h.top.value}px`,left:`${h.left.value-b.width.value-16}px`}));return H(i,f=>{n("update:isPoppedUp",f)}),H(i,()=>{h.update(),b.update()},{flush:"pre"}),(f,_)=>(l(),p(O,null,[d("span",{ref_key:"helpElementRef",ref:r,text:"$vp-nolebase-enhanced-readabilities-menu-text-color",class:"i-carbon:help-filled opacity-50 hover:opacity-100",transition:"all duration-200 ease","cursor-help":""},null,512),(l(),S(ht,{to:"body"},[y(le,{name:"fade"},{default:m(()=>[s(c)?ce((l(),p("div",{key:0,ref_key:"popupElementRef",ref:u,style:de(g.value),bg:"$vp-c-bg-elv",text:"$vp-nolebase-enhanced-readabilities-menu-text-color",border:"1 solid $vp-c-divider","pointer-events-none":"",fixed:"","z-100":"","rounded-xl":"","p-4":"","shadow-xl":""},[v(f.$slots,"default",{},void 0,!0)],4)),[[Me,s(i)]]):k("",!0)]),_:3})]))],64))}}),ye=M(zi,[["__scopeId","data-v-d976e511"]]),Ki={key:0},Gi=$({__name:"MenuTitle",props:{title:{},disabled:{type:Boolean}},setup(o){const e=o;return(t,n)=>(l(),p("h3",{class:N(["VPNolebaseEnhancedReadabilitiesMenuTitle",{disabled:!!e.disabled}]),text:"[14px] $vp-nolebase-enhanced-readabilities-menu-text-color","inline-flex":"","select-none":"","items-center":"","align-middle":"","font-medium":""},[v(t.$slots,"icon",{},void 0,!0),e.title?(l(),p("span",Ki,A(e.title),1)):k("",!0),v(t.$slots,"default",{},void 0,!0)],2))}}),oe=M(Gi,[["__scopeId","data-v-3a514c22"]]),qi={"space-y-2":"",role:"radiogroup"},Ji={"text-md":"","mb-1":"","font-semibold":""},Yi={text:"sm","mb-2":"","max-w-100":""},Xi={"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},Qi={text:"sm","mb-2":"",flex:"~","items-center":"","align-middle":""},Zi={"font-semibold":""},el=$({__name:"LayoutSwitch",setup(o){var _;const e=K(re,{}),t=w(),n=w(!1),a=w(!1),r=ve(),u=ne(),c=Y("(min-width: 768px)"),i=Ke(et,((_=e.layoutSwitch)==null?void 0:_.defaultMode)||R.Original),{t:h}=ee(),{trigger:b}=Ze(),g=L(()=>[{value:R.FullWidth,title:h("layoutSwitch.optionFullWidth"),helpMessage:h("layoutSwitch.optionFullWidthHelpMessage"),ariaLabel:h("layoutSwitch.optionFullWidthAriaLabel"),icon:"i-icon-park-outline:full-screen-one",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.SidebarWidthAdjustableOnly,title:h("layoutSwitch.optionSidebarWidthAdjustableOnly"),helpMessage:h("layoutSwitch.optionSidebarWidthAdjustableOnlyHelpMessage"),ariaLabel:h("layoutSwitch.optionSidebarWidthAdjustableOnlyAriaLabel"),icon:"i-icon-park-outline:full-screen-two",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.BothWidthAdjustable,title:h("layoutSwitch.optionBothWidthAdjustable"),helpMessage:h("layoutSwitch.optionSidebarWidthAdjustableOnlyHelpMessage"),ariaLabel:h("layoutSwitch.optionBothWidthAdjustableAriaLabel"),icon:"i-icon-park-outline:full-screen",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.Original,title:h("layoutSwitch.optionOriginalWidth"),helpMessage:h("layoutSwitch.optionOriginalWidthHelpMessage"),ariaLabel:h("layoutSwitch.optionOriginalWidthAriaLabel"),icon:"i-icon-park-outline:overall-reduction",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"}]);function f(P,V){switch(P){case R.FullWidth:V&&b(document.body),document.body.classList.add("VPNolebaseEnhancedReadabilitiesLayoutSwitchFullWidth"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchSidebarWidthAdjustableOnly"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchBothWidthAdjustable");break;case R.SidebarWidthAdjustableOnly:V&&b(document.body),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchFullWidth"),document.body.classList.add("VPNolebaseEnhancedReadabilitiesLayoutSwitchSidebarWidthAdjustableOnly"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchBothWidthAdjustable");break;case R.BothWidthAdjustable:V&&b(document.body),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchFullWidth"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchSidebarWidthAdjustableOnly"),document.body.classList.add("VPNolebaseEnhancedReadabilitiesLayoutSwitchBothWidthAdjustable");break;case R.Original:V&&b(document.body),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchFullWidth"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchSidebarWidthAdjustableOnly"),document.body.classList.remove("VPNolebaseEnhancedReadabilitiesLayoutSwitchBothWidthAdjustable");break}}return H(u,P=>{var V,x;P&&(f(i.value,!((V=e.layoutSwitch)!=null&&V.disableAnimation)),ot.includes(i.value)||(i.value=((x=e.layoutSwitch)==null?void 0:x.defaultMode)||R.BothWidthAdjustable))}),H(i,P=>{var V,x;u.value&&(f(P,!((V=e.layoutSwitch)!=null&&V.disableAnimation)),ot.includes(P)||(i.value=((x=e.layoutSwitch)==null?void 0:x.defaultMode)||R.BothWidthAdjustable))}),H(r,()=>{var P;f(i.value,!((P=e.layoutSwitch)!=null&&P.disableAnimation))}),H(c,()=>{c.value||(a.value=!0)}),D(()=>{c.value||(a.value=!0)}),(P,V)=>{var x;return l(),p("div",qi,[d("div",{ref_key:"menuTitleElementRef",ref:t,flex:"","items-center":""},[y(oe,{title:s(h)("layoutSwitch.title"),"aria-label":s(h)("layoutSwitch.titleAriaLabel")||s(h)("layoutSwitch.title"),flex:"1",disabled:a.value,"pr-4":""},{icon:m(()=>V[2]||(V[2]=[d("span",{"i-icon-park-outline:layout-one":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label","disabled"]),(x=s(e).layoutSwitch)!=null&&x.disableHelp?k("",!0):(l(),S(ye,{key:0,"is-popped-up":n.value,"onUpdate:isPoppedUp":V[0]||(V[0]=B=>n.value=B),"menu-title-element-ref":t.value},{default:m(()=>[d("h4",Ji,A(s(h)("layoutSwitch.title")),1),d("p",Yi,[d("span",null,A(s(h)("layoutSwitch.titleHelpMessage")),1)]),d("div",Xi,[(l(!0),p(O,null,F(g.value,(B,j)=>(l(),p("div",{key:j,text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},[d("h5",Qi,[d("span",{"mr-1":"",class:N([B.icon])},null,2),d("span",Zi,A(B.title),1)]),d("span",null,A(B.helpMessage),1)]))),128))])]),_:1},8,["is-popped-up","menu-title-element-ref"]))],512),y(s(ge),{active:n.value,class:"rounded-md"},{default:m(()=>[y(s(_e),{modelValue:s(i),"onUpdate:modelValue":V[1]||(V[1]=B=>Ge(i)?i.value=B:null),bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",options:g.value,disabled:a.value},null,8,["modelValue","options","disabled"])]),_:1},8,["active"])])}}}),tl={"space-y-2":"",role:"range"},al={"text-md":"","mb-1":"","font-semibold":""},nl={text:"sm","mb-2":"","max-w-100":""},ol={"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},sl={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},il={text:"sm","mb-2":"",flex:"~","items-center":"","align-middle":""},ll={"font-semibold":""},rl=$({__name:"LayoutSwitchContentLayoutMaxWidthSlider",setup(o){var j,E,C;const e=w(60),t=L(()=>e.value*100),n=w(100),a=L(()=>n.value*100),r=K(re,{}),u=w(),c=w(!1),i=w(!1),h=ne(),b=Y("(min-width: 768px)"),g=Y("(min-width: 1440px)"),f=pe(Fi,(((E=(j=r.layoutSwitch)==null?void 0:j.contentLayoutMaxWidth)==null?void 0:E.defaultMaxWidth)||80)*100),_=Ke(et,((C=r.layoutSwitch)==null?void 0:C.defaultMode)||R.BothWidthAdjustable),P=L({get:()=>{const T=Number.parseInt(String(f.value));return Number.isNaN(T)?a.value:Ta.value?a.value:T},set:T=>{Ta.value&&(T=a.value),f.value=T}}),{t:V}=ee(),{trigger:x}=Ze(),B=ze(T=>{var I,z,G,U;g.value?((U=(G=r.layoutSwitch)==null?void 0:G.contentLayoutMaxWidth)!=null&&U.disableAnimation||x(document.body),document.body.style.setProperty("--vp-nolebase-enhanced-readabilities-content-max-width",`${Math.ceil(T/100)}%`)):((z=(I=r.layoutSwitch)==null?void 0:I.contentLayoutMaxWidth)!=null&&z.disableAnimation||x(document.body),document.body.style.setProperty("--vp-nolebase-enhanced-readabilities-content-max-width","100%"))},1e3);return H(h,T=>{T&&B(P.value)}),H(b,()=>{b.value||(i.value=!0)}),H(g,()=>{B(P.value)}),D(()=>{b.value||(i.value=!0)}),H(P,T=>{h.value&&B(T)}),(T,I)=>(l(),S(s(Lt),{duration:200},{default:m(()=>{var z,G;return[ce(d("div",tl,[d("div",{ref_key:"menuTitleElementRef",ref:u,flex:"","items-center":""},[y(oe,{title:s(V)("layoutSwitch.contentLayoutMaxWidth.title"),"aria-label":s(V)("layoutSwitch.contentLayoutMaxWidth.titleAriaLabel")||s(V)("layoutSwitch.contentLayoutMaxWidth.title"),disabled:i.value,flex:"1","pr-4":""},{icon:m(()=>I[2]||(I[2]=[d("span",{"i-icon-park-outline:layout-one":"","mr-1":"","aria-hidden":"true"},null,-1)])),default:m(()=>[I[3]||(I[3]=d("span",{"i-icon-park-outline:auto-line-width":""},null,-1))]),_:1},8,["title","aria-label","disabled"]),(G=(z=s(r).layoutSwitch)==null?void 0:z.contentLayoutMaxWidth)!=null&&G.disableHelp?k("",!0):(l(),S(ye,{key:0,"is-popped-up":c.value,"onUpdate:isPoppedUp":I[0]||(I[0]=U=>c.value=U),"menu-title-element-ref":u.value},{default:m(()=>[d("h4",al,A(s(V)("layoutSwitch.contentLayoutMaxWidth.title")),1),d("p",nl,[d("span",null,A(s(V)("layoutSwitch.contentLayoutMaxWidth.titleHelpMessage")),1)]),d("div",ol,[d("div",sl,[d("h5",il,[I[4]||(I[4]=d("span",{"i-icon-park-outline:scale":"","mr-1":""},null,-1)),d("span",ll,A(s(V)("layoutSwitch.contentLayoutMaxWidth.slider")),1)]),d("span",null,A(s(V)("layoutSwitch.contentLayoutMaxWidth.sliderHelpMessage")),1)])])]),_:1},8,["is-popped-up","menu-title-element-ref"]))],512),y(s(ge),{active:c.value,class:"rounded-md"},{default:m(()=>[y(s(St),{modelValue:P.value,"onUpdate:modelValue":I[1]||(I[1]=U=>P.value=U),bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",name:"VitePress Nolebase Enhanced Readabilities content layout max width range slider","aria-label":s(V)("layoutSwitch.contentLayoutMaxWidth.optionFullWidthAriaLabel"),disabled:i.value,min:t.value,max:a.value,formatter:U=>`${Math.ceil(U/100)}%`},null,8,["modelValue","aria-label","disabled","min","max","formatter"])]),_:1},8,["active"])],512),[[Me,s(_)===s(R).BothWidthAdjustable]])]}),_:1}))}}),ul={"space-y-2":"",role:"range"},dl={"text-md":"","mb-1":"","font-semibold":""},cl={text:"sm","mb-2":"","max-w-100":""},pl={"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},hl={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},vl={text:"sm","mb-2":"",flex:"~","items-center":"","align-middle":""},ml={"font-semibold":""},fl=$({__name:"LayoutSwitchPageLayoutMaxWidthSlider",setup(o){var j,E,C;const e=w(60),t=L(()=>e.value*100),n=w(100),a=L(()=>n.value*100),r=K(re,{}),u=w(),c=w(!1),i=w(!1),h=ne(),b=Y("(min-width: 768px)"),g=Y("(min-width: 1440px)"),f=pe(Ui,(((E=(j=r.layoutSwitch)==null?void 0:j.pageLayoutMaxWidth)==null?void 0:E.defaultMaxWidth)||100)*100),_=Ke(et,((C=r.layoutSwitch)==null?void 0:C.defaultMode)||R.BothWidthAdjustable),P=L({get:()=>{const T=Number.parseInt(String(f.value));return Number.isNaN(T)?a.value:Ta.value?a.value:T},set:T=>{Ta.value&&(T=a.value),f.value=T}}),{t:V}=ee(),{trigger:x}=Ze(),B=ze(T=>{var I,z;g.value?((z=(I=r.layoutSwitch)==null?void 0:I.pageLayoutMaxWidth)!=null&&z.disableAnimation||x(document.body),document.body.style.setProperty("--vp-nolebase-enhanced-readabilities-page-max-width",`${Math.ceil(T/100)}%`)):document.body.style.setProperty("--vp-nolebase-enhanced-readabilities-page-max-width","100%")},1e3);return H(h,T=>{T&&B(P.value)}),H(b,()=>{b.value||(i.value=!0)}),H(g,()=>{B(P.value)}),D(()=>{b.value||(i.value=!0)}),H(P,T=>{h.value&&B(T)}),(T,I)=>(l(),S(s(Lt),{duration:200},{default:m(()=>{var z,G;return[ce(d("div",ul,[d("div",{ref_key:"menuTitleElementRef",ref:u,flex:"","items-center":""},[y(oe,{title:s(V)("layoutSwitch.pageLayoutMaxWidth.title"),"aria-label":s(V)("layoutSwitch.pageLayoutMaxWidth.titleAriaLabel")||s(V)("layoutSwitch.pageLayoutMaxWidth.title"),disabled:i.value,flex:"1","pr-2":""},{icon:m(()=>I[2]||(I[2]=[d("span",{"i-icon-park-outline:auto-width-one":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label","disabled"]),(G=(z=s(r).layoutSwitch)==null?void 0:z.pageLayoutMaxWidth)!=null&&G.disableHelp?k("",!0):(l(),S(ye,{key:0,"is-popped-up":c.value,"onUpdate:isPoppedUp":I[0]||(I[0]=U=>c.value=U),"menu-title-element-ref":u.value},{default:m(()=>[d("h4",dl,A(s(V)("layoutSwitch.pageLayoutMaxWidth.title")),1),d("p",cl,[d("span",null,A(s(V)("layoutSwitch.pageLayoutMaxWidth.titleHelpMessage")),1)]),d("div",pl,[d("div",hl,[d("h5",vl,[I[3]||(I[3]=d("span",{"i-icon-park-outline:scale":"","mr-1":""},null,-1)),d("span",ml,A(s(V)("layoutSwitch.pageLayoutMaxWidth.slider")),1)]),d("span",null,A(s(V)("layoutSwitch.pageLayoutMaxWidth.sliderHelpMessage")),1)])])]),_:1},8,["is-popped-up","menu-title-element-ref"]))],512),y(s(ge),{active:c.value,class:"rounded-md"},{default:m(()=>[y(s(St),{modelValue:P.value,"onUpdate:modelValue":I[1]||(I[1]=U=>P.value=U),bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",name:"VitePress Nolebase Enhanced Readabilities page layout max width range slider","aria-label":s(V)("layoutSwitch.pageLayoutMaxWidth.sliderAriaLabel"),disabled:i.value,min:t.value,max:a.value,formatter:U=>`${Math.ceil(U/100)}%`},null,8,["modelValue","aria-label","disabled","min","max","formatter"])]),_:1},8,["active"])],512),[[Me,s(_)===s(R).SidebarWidthAdjustableOnly||s(_)===s(R).BothWidthAdjustable]])]}),_:1}))}}),bl=xe,gl=$({__name:"SpotlightHoverBlock",props:{enabled:{type:Boolean}},setup(o){var j;const e=o,t=K(re,{}),n=w(!1),a=w({display:"none"}),r=w(),u=w(),c=ve(),i=pe(Pt,((j=t.spotlight)==null?void 0:j.defaultStyle)||se.Aside),{x:h,y:b}=Kt({type:"client"}),{isOutside:g}=Gt(r),{element:f}=qt({x:h,y:b}),_=vt(Oe(f)),P=Jt(u);Yt("scroll",_.update,!0);function V(E){return{display:"block",width:`${E.width+8}px`,height:`${E.height+8}px`,left:`${E.left-4}px`,top:`${E.top-4}px`,transition:"all 0.2s ease",borderRadius:"8px"}}function x(E){return E===null?null:E.parentElement===document.querySelector(".VPDoc main .vp-doc > div")?E:x(E.parentElement)}function B(){if(!(f.value&&!g.value))return;const E=x(f.value);if(u.value=E||void 0,u.value&&u.value.tagName==="P"){const C=u.value,T=window.getComputedStyle(C),I=Number.parseFloat(T.lineHeight),z=Math.floor(C.offsetHeight/I),G=C.getBoundingClientRect(),U=b.value-G.top;for(let Te=0;Te=Ne&&U{var E;document&&document.body&&(document.body.style.setProperty("--vp-nolebase-enhanced-readabilities-spotlight-under-bg-color",((E=t==null?void 0:t.spotlight)==null?void 0:E.hoverBlockColor)||"rgb(240 197 52 / 10%)"),r.value=document.querySelector(".VPDoc main .vp-doc"))}),H(c,async()=>{await Pe(),r.value=document.querySelector(".VPDoc main .vp-doc"),n.value=!0,a.value={display:"none"},_.update(),B(),n.value=!1}),H([h,b],()=>{e.enabled&&B()}),H(_,E=>{e.enabled&&(E.width===0&&E.height===0?a.value={display:"none"}:B())}),H(P,E=>{e.enabled&&!E&&(a.value={display:"none"})}),H(()=>e.enabled,E=>{E||(a.value={display:"none"})}),(E,C)=>(l(),S(ht,{to:"body"},[e.enabled&&!n.value?(l(),p("div",{key:0,style:de(a.value),"aria-hidden":"true",focusable:"false","pointer-events-none":"",fixed:"",class:N(["VPNolebaseEnhancedReadabilitiesSpotlightHoverBlock",[s(i)===s(se).Under?"VPNolebaseEnhancedReadabilitiesSpotlightHoverBlockUnder":"",s(i)===s(se).Aside?"VPNolebaseEnhancedReadabilitiesSpotlightHoverBlockAside":""]])},null,6)):k("",!0)]))}}),_l=M(gl,[["__scopeId","data-v-50775330"]]),yl={"space-y-2":"",role:"radiogroup"},kl={"text-md":"","mb-1":"","font-semibold":""},$l={text:"sm","mb-2":"","max-w-100":""},Sl={"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},Ll={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},wl={text:"sm","mb-2":""},Pl={"font-semibold":""},Vl={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},Ml={text:"sm","mb-2":""},Al={"font-semibold":""},xl=$({__name:"Spotlight",setup(o){var b;const e=K(re,{}),t=w(),n=w(!1),a=w(!1),r=ne(),u=Y("(pointer: coarse)"),c=pe(wt,((b=e.spotlight)==null?void 0:b.defaultToggle)||!1),{t:i}=ee(),h=L(()=>[{value:!0,title:i("spotlight.optionOn"),ariaLabel:i("spotlight.optionOnAriaLabel"),text:"ON",name:"VitePress Nolebase Enhanced Readabilities Spotlight Toggle Switch"},{value:!1,title:i("spotlight.optionOff"),ariaLabel:i("spotlight.optionOffAriaLabel"),text:"OFF",name:"VitePress Nolebase Enhanced Readabilities Spotlight Toggle Switch"}]);return D(()=>{a.value=u.value}),H(u,()=>{a.value=u.value}),(g,f)=>{var _;return l(),p("div",yl,[s(r)&&s(c)&&!a.value?(l(),S(_l,{key:0,enabled:s(c)&&!a.value},null,8,["enabled"])):k("",!0),d("div",{ref_key:"menuTitleElementRef",ref:t,relative:"",flex:"","items-center":""},[y(oe,{title:s(i)("spotlight.title"),"aria-label":s(i)("spotlight.titleAriaLabel")||s(i)("spotlight.title"),disabled:a.value,flex:"1","pr-4":""},{icon:m(()=>f[2]||(f[2]=[d("span",{"i-icon-park-outline:click":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label","disabled"]),(_=s(e).spotlight)!=null&&_.disableHelp?k("",!0):(l(),S(ye,{key:0,"is-popped-up":n.value,"onUpdate:isPoppedUp":f[0]||(f[0]=P=>n.value=P),"menu-title-element-ref":t.value},{default:m(()=>[d("h4",kl,A(s(i)("spotlight.title")),1),d("p",$l,[d("span",null,A(s(i)("spotlight.titleHelpMessage")),1)]),d("div",Sl,[d("div",Ll,[d("h5",wl,[f[3]||(f[3]=d("span",{"mr-1":"","font-bold":""},"ON",-1)),d("span",Pl,A(s(i)("spotlight.optionOn")),1)]),d("span",null,A(s(i)("spotlight.optionOnHelpMessage")),1)]),d("div",Vl,[d("h5",Ml,[f[4]||(f[4]=d("span",{"mr-1":"","font-bold":""},"OFF",-1)),d("span",Al,A(s(i)("spotlight.optionOff")),1)]),d("span",null,A(s(i)("spotlight.optionOffHelpMessage")),1)])])]),_:1},8,["is-popped-up","menu-title-element-ref"]))],512),y(s(ge),{active:n.value,class:"rounded-md"},{default:m(()=>[y(s(_e),{modelValue:s(c),"onUpdate:modelValue":f[1]||(f[1]=P=>Ge(c)?c.value=P:null),bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",options:h.value,disabled:a.value},null,8,["modelValue","options","disabled"])]),_:1},8,["active"])])}}}),Tl={key:0,"space-y-2":"",role:"radiogroup",class:"VPNolebaseEnhancedReadabilitiesSpotlightStyles"},Nl={"text-md":"","mb-1":"","font-semibold":""},Wl={text:"sm","mb-2":"","max-w-100":""},El={"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},Hl={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},Bl={text:"sm","mb-2":""},Ol={"font-semibold":""},Il={text:"sm",bg:"$vp-nolebase-enhanced-readabilities-menu-background-color","max-w-100":"","rounded-xl":"","p-3":""},Cl={text:"sm","mb-2":""},Rl={"font-semibold":""},jl=$({__name:"SpotlightStyles",setup(o){var b,g;const e=K(re,{}),t=w(),n=w(!1),a=w(!1),r=Y("(pointer: coarse)"),u=pe(wt,((b=e.spotlight)==null?void 0:b.defaultToggle)||!1),c=pe(Pt,((g=e.spotlight)==null?void 0:g.defaultStyle)||se.Aside),{t:i}=ee(),h=L(()=>[{value:se.Under,title:i("spotlight.styles.optionUnder"),ariaLabel:i("spotlight.styles.optionUnderAriaLabel"),icon:"i-icon-park-outline:align-text-left-one",name:"VitePress Nolebase Enhanced Readabilities Spotlight Style Checkbox"},{value:se.Aside,title:i("spotlight.styles.optionAside"),ariaLabel:i("spotlight.styles.optionAsideAriaLabel"),icon:"i-icon-park-outline:align-left-one",name:"VitePress Nolebase Enhanced Readabilities Spotlight Style Checkbox"}]);return D(()=>{a.value=r.value}),H(r,()=>{a.value=r.value}),(f,_)=>(l(),S(le,{name:"fade-shift"},{default:m(()=>{var P;return[s(u)?(l(),p("div",Tl,[d("div",{ref_key:"menuTitleElementRef",ref:t,relative:"",flex:"","items-center":""},[y(oe,{title:s(i)("spotlight.styles.title"),"aria-label":s(i)("spotlight.styles.titleAriaLabel")||s(i)("spotlight.styles.title"),disabled:a.value,flex:"1","pr-4":""},{icon:m(()=>_[2]||(_[2]=[d("span",{"i-icon-park-outline:click":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label","disabled"]),(P=s(e).spotlight)!=null&&P.disableHelp?k("",!0):(l(),S(ye,{key:0,"is-popped-up":n.value,"onUpdate:isPoppedUp":_[0]||(_[0]=V=>n.value=V),"menu-title-element-ref":t.value},{default:m(()=>[d("h4",Nl,A(s(i)("spotlight.styles.title")),1),d("p",Wl,[d("span",null,A(s(i)("spotlight.styles.titleHelpMessage")),1)]),d("div",El,[d("div",Hl,[d("h5",Bl,[_[3]||(_[3]=d("span",{"i-icon-park-outline:align-text-left-one":"","mr-1":""},null,-1)),d("span",Ol,A(s(i)("spotlight.styles.optionUnder")),1)]),d("span",null,A(s(i)("spotlight.styles.optionUnderHelpMessage")),1)]),d("div",Il,[d("h5",Cl,[_[4]||(_[4]=d("span",{"i-icon-park-outline:align-left-one":"","mr-1":""},null,-1)),d("span",Rl,A(s(i)("spotlight.styles.optionAside")),1)]),d("span",null,A(s(i)("spotlight.styles.optionAsideHelpMessage")),1)])])]),_:1},8,["is-popped-up","menu-title-element-ref"]))],512),y(s(ge),{active:n.value,class:"rounded-md"},{default:m(()=>[y(s(_e),{modelValue:s(c),"onUpdate:modelValue":_[1]||(_[1]=V=>Ge(c)?c.value=V:null),bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",options:h.value,disabled:a.value},null,8,["modelValue","options","disabled"])]),_:1},8,["active"])])):k("",!0)]}),_:1}))}}),Fl=M(jl,[["__scopeId","data-v-8d8b97c4"]]),Ul=["aria-label"],Dl=$({__name:"Menu",setup(o){const e=ne(),{t}=ee();return(n,a)=>(l(),S(s(bl),{icon:"i-icon-park-outline:book-open",class:"VPNolebaseEnhancedReadabilitiesMenu VPNolebaseEnhancedReadabilitiesMenuFlyout","aria-label":s(t)("title.title"),role:"menuitem"},{default:m(()=>[s(e)?(l(),p("div",{key:0,"aria-label":s(t)("title.title"),"min-w-64":"","p-2":"","space-y-2":""},[y(el),y(fl),y(rl),y(xl),y(Fl)],8,Ul)):k("",!0)]),_:1},8,["aria-label"]))}}),zl={"space-y-2":""},Kl={border:"1 red/50 solid",bg:"red/30",flex:"","items-center":"","rounded-lg":"","p-2":"","opacity-50":""},Gl={"text-xs":""},ql=$({__name:"ScreenLayoutSwitch",setup(o){const{t:e}=ee(),t=L(()=>[{value:R.FullWidth,title:e("layoutSwitch.optionFullWidth"),ariaLabel:e("layoutSwitch.optionFullWidthAriaLabel"),icon:"i-icon-park-outline:full-screen-one",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.SidebarWidthAdjustableOnly,title:e("layoutSwitch.optionSidebarWidthAdjustableOnly"),ariaLabel:e("layoutSwitch.optionSidebarWidthAdjustableOnlyAriaLabel"),icon:"i-icon-park-outline:full-screen-two",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.BothWidthAdjustable,title:e("layoutSwitch.optionBothWidthAdjustable"),ariaLabel:e("layoutSwitch.optionBothWidthAdjustableAriaLabel"),icon:"i-icon-park-outline:full-screen",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"},{value:R.Original,title:e("layoutSwitch.optionOriginalWidth"),ariaLabel:e("layoutSwitch.optionOriginalWidthAriaLabel"),icon:"i-icon-park-outline:overall-reduction",name:"VitePress Nolebase Enhanced Readabilities Layout Mode Checkbox"}]);return(n,a)=>(l(),p("div",zl,[y(oe,{title:s(e)("layoutSwitch.title"),"aria-label":s(e)("layoutSwitch.titleAriaLabel")||s(e)("layoutSwitch.title"),disabled:""},{icon:m(()=>[v(n.$slots,"default",{ariaHidden:"true"})]),_:3},8,["title","aria-label"]),d("div",Kl,[d("span",Gl,A(s(e)("layoutSwitch.titleScreenNavWarningMessage")),1)]),y(s(_e),{bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",options:t.value,disabled:""},null,8,["options"])]))}}),Jl={"space-y-2":""},Yl={border:"1 red/50 solid",bg:"red/30",flex:"","items-center":"","rounded-lg":"","p-2":"","opacity-50":""},Xl={"text-xs":""},Ql=$({__name:"ScreenSpotlight",setup(o){const{t:e}=ee(),t=L(()=>[{title:e("spotlight.optionOn"),ariaLabel:e("spotlight.optionOnAriaLabel"),value:!0,text:"ON",name:"VitePress Nolebase Enhanced Readabilities Spotlight Toggle Switch"},{title:e("spotlight.optionOff"),ariaLabel:e("spotlight.optionOffAriaLabel"),value:!1,text:"OFF",name:"VitePress Nolebase Enhanced Readabilities Spotlight Toggle Switch"}]);return(n,a)=>(l(),p("div",Jl,[y(oe,{title:s(e)("spotlight.title"),"aria-label":s(e)("spotlight.titleAriaLabel")||s(e)("spotlight.title"),disabled:""},{icon:m(()=>a[0]||(a[0]=[d("span",{"i-icon-park-outline:click":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label"]),d("div",Yl,[d("span",Xl,A(s(e)("spotlight.titleScreenNavWarningMessage")),1)]),y(s(_e),{bg:"$vp-nolebase-enhanced-readabilities-menu-background-color",text:"sm $vp-nolebase-enhanced-readabilities-menu-text-color",options:t.value,disabled:""},null,8,["options"])]))}}),Zl={key:0,"space-y-2":"",class:"VPNolebaseEnhancedReadabilitiesMenu"},er={flex:"~ col","pl-4":"","space-y-2":""},tr=$({__name:"ScreenMenu",setup(o){const e=ne(),{t}=ee();return(n,a)=>s(e)?(l(),p("div",Zl,[y(oe,{title:s(t)("title.title"),"aria-label":s(t)("title.titleAriaLabel")||s(t)("title.title")},{icon:m(()=>a[0]||(a[0]=[d("span",{"i-icon-park-outline:book-open":"","mr-1":"","aria-hidden":"true"},null,-1)])),_:1},8,["title","aria-label"]),d("div",er,[y(ql),y(Ql)])])):k("",!0)}}),ar=$({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(o){const e=w([]),t=w("Versions"),n=w(!1),{site:a}=Se(),r=()=>typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),u=()=>{if(typeof window>"u")return"";const{origin:h,pathname:b}=window.location;if(h.includes("github.io")){const g=b.split("/").filter(Boolean),f=g.length>0?`/${g[0]}`:"";return`${h}${f}`}else return h},c=()=>new Promise(h=>{if(r()){h(!1);return}const b=setInterval(()=>{window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION&&(clearInterval(b),h(!0))},100);setTimeout(()=>{clearInterval(b),h(!1)},5e3)});return D(async()=>{if(!(typeof window>"u")){try{if(r()){const h=["dev"];e.value=h.map(b=>({text:b,link:"/"})),t.value="dev"}else{const h=await c(),b=L(()=>u());if(h&&window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION)e.value=window.DOC_VERSIONS.map(g=>({text:g,link:`${b.value}/${g}/`})),t.value=window.DOCUMENTER_CURRENT_VERSION;else{const g=["dev"];e.value=g.map(f=>({text:f,link:`${b.value}/${f}/`})),t.value="dev"}}}catch(h){console.warn("Error loading versions:",h);const b=["dev"],g=L(()=>u());e.value=b.map(f=>({text:f,link:`${g.value}/${f}/`})),t.value="dev"}n.value=!0}}),(h,b)=>n.value?(l(),p(O,{key:0},[!h.screenMenu&&e.value.length>0?(l(),S(yt,{key:0,item:{text:t.value,items:e.value},class:"VPVersionPicker"},null,8,["item"])):h.screenMenu&&e.value.length>0?(l(),S($t,{key:1,text:t.value,items:e.value,class:"VPVersionPicker"},null,8,["text","items"])):k("",!0)],64)):k("",!0)}}),nr=M(ar,[["__scopeId","data-v-5454719c"]]),or=["href"],sr={class:"badge-container"},ir=["src","alt"],lr={key:1,class:"badge-container"},rr=["src","alt"],ur={__name:"AuthorBadge",props:{author:{type:String,required:!0},avatar:{type:String,default:""},platform:{type:String,default:"user"},link:{type:String,default:""}},setup(o){const e=o,t={github:"https://img.icons8.com/ios-filled/50/github.png",gitlab:"https://img.icons8.com/ios-filled/50/gitlab.png",x:"https://img.icons8.com/ios/50/twitterx--v2.png",linkedin:"https://img.icons8.com/ios-filled/50/linkedin.png",bluesky:"https://img.icons8.com/material-sharp/48/bluesky.png",mastodon:"https://img.icons8.com/windows/64/mastodon.png",user:"https://img.icons8.com/windows/64/user.png"},n=L(()=>e.avatar?e.avatar:e.platform&&t[e.platform.toLowerCase()]?t[e.platform.toLowerCase()]:t.user),a=r=>{const u=["#3eaf7c","#476582","#c53e3e","#986801","#8957e5"],c=r.split("").reduce((i,h)=>i+h.charCodeAt(0),0);return u[c%u.length]};return(r,u)=>o.link?(l(),p("a",{key:0,href:o.link,class:"badge-link",target:"_blank",rel:"noopener noreferrer"},[d("span",sr,[u[0]||(u[0]=d("span",{class:"badge-label"},"Author",-1)),d("span",{class:"author-badge",style:de({backgroundColor:a(o.author)})},[d("img",{src:n.value,alt:o.author,class:N([{"platform-avatar":!e.avatar},"author-avatar"])},null,10,ir),Q(" "+A(o.author),1)],4)])],8,or)):(l(),p("span",lr,[u[1]||(u[1]=d("span",{class:"badge-label"},"Author",-1)),d("span",{class:"author-badge",style:de({backgroundColor:a(o.author)})},[d("img",{src:n.value,alt:o.author,class:N([{"platform-avatar":!e.avatar},"author-avatar"])},null,10,rr),Q(" "+A(o.author),1)],4)]))}},dr=M(ur,[["__scopeId","data-v-5eb0e64d"]]),cr={class:"authors-container"},pr={__name:"Authors",setup(o){const{frontmatter:e}=Se(),t=e.value.authors||[];return(n,a)=>{const r=ae("AuthorBadge");return l(),p("div",cr,[(l(!0),p(O,null,F(s(t),u=>(l(),S(r,{key:u.name,author:u.name,avatar:u.avatar,platform:u.platform,link:u.link},null,8,["author","avatar","platform","link"]))),128))])}}},hr=M(pr,[["__scopeId","data-v-ec79a7d8"]]),vr=o=>{if(typeof document>"u")return{stabilizeScrollPosition:a=>async(...r)=>a(...r)};const e=document.documentElement;return{stabilizeScrollPosition:n=>async(...a)=>{const r=n(...a),u=o.value;if(!u)return r;const c=u.offsetTop-e.scrollTop;return await Pe(),e.scrollTop=u.offsetTop-c,r}}},Vt="vitepress:tabSharedState",me=typeof localStorage<"u"?localStorage:null,Mt="vitepress:tabsSharedState",mr=()=>{const o=me==null?void 0:me.getItem(Mt);if(o)try{return JSON.parse(o)}catch{}return{}},fr=o=>{me&&me.setItem(Mt,JSON.stringify(o))},br=o=>{const e=vt({});H(()=>e.content,(t,n)=>{t&&n&&fr(t)},{deep:!0}),o.provide(Vt,e)},gr=(o,e)=>{const t=K(Vt);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");D(()=>{t.content||(t.content=mr())});const n=w(),a=L({get(){var i;const u=e.value,c=o.value;if(u){const h=(i=t.content)==null?void 0:i[u];if(h&&c.includes(h))return h}else{const h=n.value;if(h)return h}return c[0]},set(u){const c=e.value;c?t.content&&(t.content[c]=u):n.value=u}});return{selected:a,select:u=>{a.value=u}}};let st=0;const _r=()=>(st++,""+st);function yr(){const o=dt();return L(()=>{var n;const t=(n=o.default)==null?void 0:n.call(o);return t?t.filter(a=>typeof a.type=="object"&&"__name"in a.type&&a.type.__name==="PluginTabsTab"&&a.props).map(a=>{var r;return(r=a.props)==null?void 0:r.label}):[]})}const At="vitepress:tabSingleState",kr=o=>{De(At,o)},$r=()=>{const o=K(At);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},Sr={class:"plugin-tabs"},Lr=["id","aria-selected","aria-controls","tabindex","onClick"],wr=$({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=yr(),{selected:n,select:a}=gr(t,pt(e,"sharedStateKey")),r=w(),{stabilizeScrollPosition:u}=vr(r),c=u(a),i=w([]),h=g=>{var P;const f=t.value.indexOf(n.value);let _;g.key==="ArrowLeft"?_=f>=1?f-1:t.value.length-1:g.key==="ArrowRight"&&(_=f(l(),p("div",Sr,[d("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:h},[(l(!0),p(O,null,F(s(t),_=>(l(),p("button",{id:`tab-${_}-${s(b)}`,ref_for:!0,ref_key:"buttonRefs",ref:i,key:_,role:"tab",class:"plugin-tabs--tab","aria-selected":_===s(n),"aria-controls":`panel-${_}-${s(b)}`,tabindex:_===s(n)?0:-1,onClick:()=>s(c)(_)},A(_),9,Lr))),128))],544),v(g.$slots,"default")]))}}),Pr=["id","aria-labelledby"],Vr=$({__name:"PluginTabsTab",props:{label:{}},setup(o){const{uid:e,selected:t}=$r();return(n,a)=>s(t)===n.label?(l(),p("div",{key:0,id:`panel-${n.label}-${s(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${n.label}-${s(e)}`},[v(n.$slots,"default",{},void 0,!0)],8,Pr)):k("",!0)}}),Mr=M(Vr,[["__scopeId","data-v-9b0d03d2"]]),Ar=o=>{br(o),o.component("PluginTabs",wr),o.component("PluginTabsTab",Mr)},Tr={extends:nt,Layout(){return We(nt.Layout,null,{"nav-bar-content-after":()=>[We(Dl)],"nav-screen-content-after":()=>We(tr)})},enhanceApp({app:o,router:e,siteData:t}){Ar(o),o.component("VersionPicker",nr),o.component("AuthorBadge",dr),o.component("Authors",hr)}};export{Tr as T,hs as c,W as u}; diff --git a/previews/PR259/assets/damgmke.CeGTh3mf.png b/previews/PR259/assets/damgmke.CeGTh3mf.png deleted file mode 100644 index df7f361e89944b32a38bb5c5593d4bbf7cb4a483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58745 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 z 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 diff --git a/previews/PR259/assets/peeyyat.CgiryX2p.png b/previews/PR259/assets/drsvfbl.CgiryX2p.png similarity index 100% rename from previews/PR259/assets/peeyyat.CgiryX2p.png rename to previews/PR259/assets/drsvfbl.CgiryX2p.png diff --git a/previews/PR259/assets/ehpuvwt.CSAMkaNh.png b/previews/PR259/assets/ehpuvwt.CSAMkaNh.png deleted file mode 100644 index 783f0df7e51a22acfbf16b9261f450250323b66e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209339 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
8!`_!>HLPE>ZQS<>2-qQ99*HPK{(xL<^ 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 diff --git a/previews/PR259/assets/experiments_predicates.md.CLK_u2-Y.js b/previews/PR259/assets/experiments_predicates.md.CwpeGtcZ.js similarity index 99% rename from previews/PR259/assets/experiments_predicates.md.CLK_u2-Y.js rename to previews/PR259/assets/experiments_predicates.md.CwpeGtcZ.js index 0b609b845..cf80c8916 100644 --- a/previews/PR259/assets/experiments_predicates.md.CLK_u2-Y.js +++ b/previews/PR259/assets/experiments_predicates.md.CwpeGtcZ.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,o as h,az as k}from"./chunks/framework.mcBEtuSi.js";const n="/GeometryOps.jl/previews/PR259/assets/damgmke.CeGTh3mf.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 h(),a("div",null,s[0]||(s[0]=[k(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
+import{_ as i,c as a,o as h,az as k}from"./chunks/framework.mcBEtuSi.js";const n="/GeometryOps.jl/previews/PR259/assets/ywvqbqr.CTgutbHQ.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 h(),a("div",null,s[0]||(s[0]=[k(`

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/PR259/assets/experiments_predicates.md.CLK_u2-Y.lean.js b/previews/PR259/assets/experiments_predicates.md.CwpeGtcZ.lean.js
similarity index 74%
rename from previews/PR259/assets/experiments_predicates.md.CLK_u2-Y.lean.js
rename to previews/PR259/assets/experiments_predicates.md.CwpeGtcZ.lean.js
index e9ba8c581..510c598e7 100644
--- a/previews/PR259/assets/experiments_predicates.md.CLK_u2-Y.lean.js
+++ b/previews/PR259/assets/experiments_predicates.md.CwpeGtcZ.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as h,az as k}from"./chunks/framework.mcBEtuSi.js";const n="/GeometryOps.jl/previews/PR259/assets/damgmke.CeGTh3mf.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 h(),a("div",null,s[0]||(s[0]=[k("",10)]))}const F=i(p,[["render",l]]);export{y as __pageData,F as default};
+import{_ as i,c as a,o as h,az as k}from"./chunks/framework.mcBEtuSi.js";const n="/GeometryOps.jl/previews/PR259/assets/ywvqbqr.CTgutbHQ.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 h(),a("div",null,s[0]||(s[0]=[k("",10)]))}const F=i(p,[["render",l]]);export{y as __pageData,F as default};
diff --git a/previews/PR259/assets/oryldqg.D5-bot8v.png b/previews/PR259/assets/fytoaiu.D5-bot8v.png
similarity index 100%
rename from previews/PR259/assets/oryldqg.D5-bot8v.png
rename to previews/PR259/assets/fytoaiu.D5-bot8v.png
diff --git a/previews/PR259/assets/bnpxgdd.pAYw0Yqf.png b/previews/PR259/assets/gafzfvd.pAYw0Yqf.png
similarity index 100%
rename from previews/PR259/assets/bnpxgdd.pAYw0Yqf.png
rename to previews/PR259/assets/gafzfvd.pAYw0Yqf.png
diff --git a/previews/PR259/assets/lpkchxq.DaovVbE6.png b/previews/PR259/assets/gahyaod.DaovVbE6.png
similarity index 100%
rename from previews/PR259/assets/lpkchxq.DaovVbE6.png
rename to previews/PR259/assets/gahyaod.DaovVbE6.png
diff --git a/previews/PR259/assets/gektpcp.BaImpRtB.png b/previews/PR259/assets/gektpcp.BaImpRtB.png
deleted file mode 100644
index 00d4cc703bb6440d549dcea23c6d71669ec7b012..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 64223
zcmeFZcR1Gn`#!ExQD(y)p_G!9>`@XKQB-7>WN)%Zg^(FCvO|heMn+afMOLWny+d}$
z`ki;L&*wP4|Nj2_{*L2!zu!m6%YA!3ACK#CUFUV4=k*M@q9RYek6|AX5fQn(DVwt1w(>ZX4i9*ih+GWwljTdYHj-%EHUFH)P&?)mR)A|ex3Dk{Q-
z;dSo#?j3CZeM#h?_WytT|K>Frn&~AX`p6qvJ;)cUY!~3;;}b*IWBqRfX6EC{Ti+%fE?&HN{rYt!rF!YD)jQvk&kqgFk!~>8eEFi9B$c3J
zw>o!QL!AJ^zzVX@9r%y9flgiyztj?XgpODb2YQkvp=JV&z_-#*=
z^54I|e(hRUmgK*8pUcOapC4jj`8_k!Xq4yMpH@`lytT1r+?+Vm{#L*HESY=K^z`)n
z@RtZB$KO2)^vs0wMMUJO8@9Z|U-|m=r*Gd{E43uQer=(|C?qJjy1JS#Sbpf=&k%i+
zOZKDkZ-_l(oSB(fdu(WE==bm6Z5gV<0s`R?5#|;a+}zwjfq~-oW6F+>Ld8b6Z{NOh
z<=fDwKrgF^2PO_vKP{W$MMn-?xKQnAw*TKpn(StXuD6^Oy5C>(?sj$UZI)m;afb=2
z{%a9BJWjnI?iE_~veRm5Y4w#jy=~Mc)#5mI?Cx|&&d32efq&OMC;os%<_H7X9`Dx4
z_Co9aC>oaJ7LyXESrxogRgdpeS5w2aesGv%A2?wlR8m@6nwzVpr>Cc@tE;A#`+jD`
zMkGBwoovqqb#-+WmF)L%i$6L#G}Y9q3bBsC*2Y_J
z+~DNl$#CZXnuf-9rSALvPm-tzw{~A;|4v*PK0NZk{{8!REPwj+
ziJ6J1b_bix%d|8f>vJ7FJ?=AI?~kh{mU?bJ`(!{pdgI28>PO^p{C6Jlx$s6rL^LOe
zudL1w|NZN#V_<1nW;0mDf9LZNp90J7KSQ7PKVO&|tZsjO^MXW>zkf%bF{O+3mk{PN
z{QL@+F0HQgd!?qP2E;~0MMbr}xEv>T?_>`5dX~o9hYugJb8yVJ&Nzta%F7$qhOzba
z_3hiY?_u{wzt?tenVay*laJ%yU)R=loA{QZo}qH~%$ebmA74UQHC}6;=b2w#W)^cW
zv9z?jb?erpOSK3o+v4!>@SL3aQkO-!5GIAry5*_%o7^|9UZqZ#kdjJtPA_v^uJV$X
zm!Iv(@z$}N?JE-!5?Y;&6Shv2a8a8(mEKWgn;H>u(0Xkp;or&;eLFxx^1x({hktvt
zp0+YBh*3D?0QJ0X7~jd0X1JNPwY5@Jj}5HMmr#VYEKP|U
zt#M6Jy!up87aXRc33n60HrAeXS(j#HWK_kk9{9N9s}#aR$hwd4S$DpK)P4Q>
zcWo^}(k)7YFRsyOd~9sb?%ll=UfUlZ?DF12KGZ$d)6?@KOQXVVC1mB*#>U2eS{|Jb
z4yJ#XCK-h+24<`+OiYsVqbhHurKfK$x9dj=r+@hHccvS0SfFXirlCr-SO{;oPKbh%KuS8K|xWG
zNbx$4fWSgas(h)gDlwv}vdo_(1)smaR_F1L@82ytb4RDz-%kB}GwcynKWf#LKZyl6
zZRxqTaJT%y%Ucf~JXo3Sx1Q{biHSL_UGVbNs{~Q|7wKXMQYk5^P*&-&nM0Qq6mY&(
zTwIFp?|Iib9Z1V-WMq^mc2Du#9*x&&X*K=*Ne4#5C0!O|RaC6Dw>BTHwCTxu%KW=j
zqCNF0L@mi}ldi6=BL^t_@(k<3i|xmy-2S{qfQbKD8?5%Tmh<*OSj`9j<KmE@-(JfK!d_phgaALOh<4eNp1Su)$sZ*!S&CQjRl<);kIKETq
zHf$q;gYZJu`_AW}Sb@8W*oO+w&A&KJO3^$|Exh62;jy}N=Z=Yqrl#g9
z4(ZoZj{^cyzW3)DtDZlsZ=rkTP{N7hAPEtw^p`DAKq
zYcGAIuKVCL%aiPaj1<`(NEQC%3EP%c;KBcJ2_H^Xt+T5u%Fz9lAr`h8LxF?;Uh@}h
zZEe-n+i<4{kN&zk1ud;-P7x?MMtAQ%QKI41D>eIZa-$G2n2?~GB;`@tss8KNFCLwu
zcaAe!&yR|T6lG_JlpZ7}55|e0V`LomLxEfzZ&p=OS`TR#_uATcZ{9vs7hxgfRv&e`
zRQJh;4Jv=1&YjU1HANn)XJtEoB*_j~imFS=J=FJ;F
zaz-J?Y0U+d5LW4}#?>#at*r<|6Vkv>3yX{5PQRIoDb{=_8HLD%V{%zfoyxkJDn}|s
z;~N;Lq}1rPy(KxzPJ?uP!H?pTS7Gn}1PsZepqu%p&=0LRyvtIM%>rmj!Y>DpzTox@*?SlPCQz4WODw2H11R1@Q?ArcIy6
z8E<)hQKlej;P-Ep)Rq(LlU?sm70X_}+*n!pAeYU0*PPuUO&uMkH7-QG-KyfiOzJSR
zt0G~qPMJ`lvHyX~
z-fXGoY7Fn*jXtgYr(NIcBC5v4i)Aj0oRX58aRIj#6&0iKUsmVuNH`0Ki^m;^y>#gk
z(Am6|zwwtR$BrJ=)Yj(kagIKbywpUEsM^@v)PB15$XfnHf{L{z^FF(4K~yNyVxB#F+)k#9I@r)K!g%k{p+m&P#1=h8)brfC{Hes;{!Dk~8T*O~
zKIwSmG%16vE04RRpfEWxVQ6HuFV9Ok#+O{HWOYYe(wi2%R607$j%SFy}5i*zijO6o*!}y
z|1Vj53%NzXw%U2^+O^L?^!A&7?@3Ebe^n>jvulOq$)bNg4K-Ex_!yf{O-+qI6JP17
z%9V{eXTOSlvl)$>>*oPWd*7SWrrV$}+K)91zUiS?At4lqbL$TYXstO(I)ht;A2G6f
z_wF5W%CQ2YsO9+Xaazx@?^N0W$p5-5pmw7`A^eIYYi>w@~@A*ZTk5&F_I{r2cXy
zCKJeTwZ{PFYRv3T=j7%-C-y1QR=s%9SIr(M{*CU<5U1lVE-vo7WGMXFsCUZH6JD{8
z9_@Kv^X;3>@1EkBj-%8kd3f}SY}j1hpYsWO@}#9=d#k(k+UNdtpMN#bftb(mkpCmR
zCw&B1p}*&`FqyiBhCE5^vuA3q&aG{2+TBMNa^2|e2H02Oa?H%lwM(`O&Y3PcmHrBO
zm6CEB2M(_hnY(vKKYl#dXLT;OfBAnto9f#I64~meCLTV%Fde(C4Hq{zw?5xhlH%gx
zmX?;01Gshxo@-iKU0q#bY-|sle>EkD1MHUSDj-an6D2vKmnK?vg)+?i$cm1Mp>w%E
zlpyYeBPAEa^$DvI!X(N*Qg31IvHs`ScvnDZXmfpisvuq9kr()#
za)fV`UOfP=?bfbO0@e|Vy^
z%+1Nb01=y&ooxlY;pm7;R>-wWT~b2g!@VgviFipjp}Qdlw{H(lw4|c0VO!1!2p|P(
za{r{PaDBoLpkrspUbt2laUAeA2_PAuEiKK^({syfdz1FS0hzw9-@iM2e|goig{3e5
z911oozX5S#QfInSwDs>n!qTZGy*Q+(pg;h||KQ&bEXcj7pD7_u|G_lRGvFki#PZ*f
zla-ZKRwhf2uQPm+MtG6*^>lZ4*VOnppWxsa9v>f{oK(nO1TylYWG%?wivs^CkTyaI
zdm$Ih08}l8GKJT}?lwI%l#{=HDgG7*h`d?mdQWK?Iavs`FSVuXIX{9DH##!P
zisJok9QYpXcIDeURdnJd6P^}k+hGch&YT%WB#man=N
z6&)=N2pV>Z-+eDXe@>;>;qbe?tFeAl|x&-797mK{yWecDz|D+P?eD$x(>GT&8Ab$PZIvV@7xGa5!57u+j?{);7io1B4L(aA{aVOpIoG
zwl1(~LVWxSm4vS)BS&I$bM4S~qm*0smC_$P=xu+s)g&KyMCF-aU3GP8`n@?4e6XXV
zo%W3za-}rr`?R&Y
z>CYHZy|O)la(BY-in{u+wz|B$pIU^Iq!R)J(Wi%Y8*$?6>-*!!4*@hR3kxF}na`ig
zbcTk9AK1DeC--O}lFwPSH#Gi#8@?{5qfhoGU;i~Vb?W3vIx@LCcT&-+mzKKY-YV$5
zNjtPHE#G8j{&Je#QHX-?Tk7YsICfD^?f_+ma_rFf_=?B6^?qf}JT&)LuU^&C`cT&0
z%J%WUvrR=h!A5MUg6{gpje_Cn%jeHODD>hzeL8sK%Ju8Z@)T@#2M!!~_@&WN$mYNE
zA-i*@%v|?LE-q{cWie`;PigLMHa51DqM{fb1EBJP;9dW6ee$mR_o+4tun;T~&gb-u
z!c;Q4J3BkOy27)N`QGRhhwHHO@cf>h-iXj5{r8S@>nYaV1#il_iO$6#mTDUtkA?0Y
zwJWA%k$Cy$4bq&2g@v+;O1Z~+L1?I|i;JjBHEwh;{m;L56Rnn=SEHX3&wBaN#@_xE
zH}@gWgN%%E0NwsJtsMXT2s6#=3nZS#Ky%&F42g&`AlG?CtFlndi@+$DdgJ`1tte
z&!6Maqx?C&HTzfFi9Wss;ql)!5KW{3KK#$u|KDOjkM;GD6IG<3xd%aEWNeJyCARX`
z#3bQ`Y-)}&Q?Zqp
zm{|3ll7vJPafe!m2GNGJZ{u??W54YLSkKH?ujch0e=`xJqzqkJawum6no_S-VxXj?
zEO$dK%_}S%F9~?@VhrU}llz8JBhRT*i+}!%F|N`xFzA&!KWQ{7{Bv!i56g=s1HO3S);e&prmU^?M`5H
zl$K&09+^uwZv6cDvjEHl5D0pFz-J^`0K8~iCD>v7b)p-W^yhc4xUeuS+jrC~aq$wM
zo#>}e?;0C_`Sb~YZm*3e&Ck!Hq|;c&dFi6}M{8W9w3p5BAFcP%P@t`?4JRJ4x-#8q
z4-ikws}~a+``%jJs~lvcmzS4M*wd#!9v?o{RU%rElAkZ={wSLJ=Fr&K&%VaBr{{pA
z#_&5u7?>nomq04qH8iYkHZnA9cy=}`KmYreFXIFTtD+>~25?ZGakJ-$;{G{Ta8#b2
zc6;dsC@hzm6899guT$WMocVheudUjDUu4-vG)XAtBhuqlur!8sq#@
zD*@5o-pqTnQSt{V5eqMcLtp!Zhx#J^Fhgn%?hlbR&wUts^Xt*`snYN)L
zl^p5>CyY1i7u%(yR5ir#gVGu5)+HlaT_aHV_DB#uVdw;`K@NaU?nQGJFKUndXO(mn
zy!Y$-ACqC;>bg2E0f7T-M|pYs`z&`5ZIE$O2(wlEHNT#kCeo;Qq4He%g`T5;I~pJd
zhiJ`7t?R;%i7@DtyRW5O@G}u)Si6Zv0cBfMOe}<196W&S!blw&0{7$l>FMYuCMHO{
zda&0+zjuP-@%JbBS|G@P?wvrXp%EW%N>~TJ!(OT+NnO5%CUAFO
z`oq}RPPDX$Y20_>)2HtpCR;(g68
zc@3TD{i;ooSg-dJLvlsTj8QC|;j6)i6>BTYosAK77OXsC6s
zm!rc;Forg+5oynAvhi@8r`8V@n!rzkHlA}ANw;rTcUTBT)QyM>KYE^$avn)JCRANX
zgh>Uf8JcACZ9Ye&r>t3E7kgg)uV(>OWTeH#MGkg$Pxp7ie$_VtGo$O%+a`fAPJ5)bPA;7>ZaRAOXsOq>6d#`r
z2q^+%&Sh|a3VgzvRX0Ku6fN@S8Bx(YjV
zQKrqdlk55?^PyQkkITc)x8tsHpW@+fPV3L^OFeX~d~?0SacOzkEA-69BB5#WZZwLH
zjvkiQ%H-hW92+0kxO(;Wty>@0Eo5bD0HFHI+}eA3xWU6383}p(br2R7wzZW?YW4T`
z2l<0rOl&j)o+&CWexsT59LEUTj_p}rnf>wu&2lJ{Xe$o#8|}jK|2SHlU<)B_Jv~pf
zKwv;M)YOnF#KHR`$)fK{PfJ5}b$54XVrF)s)KXVJNJT}(!lI|Cd4iMkMM}!x#Ds{~
zmb;=}?#Rdp-ZJb>bLbEgSYru^(ibn}RobCMJ=g#+A?&V@Vs9^&$@W^4Iayt@Tpgr*H#GkA4eD*!3de06noZ?A4l
zk-sw=2xLG$G?ztAvn+9qO|`YF<&L?UuOUJBK6(VQ-d8Ra$RAnU4c%zX$28=a=*UQr
zF-Lr4WMmE;JUH)memW&Nc>wW%P8tPJL=f~p(^<3cNnTqD3SQ&0vjpvABcuna45}Bv
z3loJrbhpk<0?$MM`GTR9x2F3mq`A3YmzKt>WUK((AkrY4$%nEKL;yk4aP%$%XFdZ#BV?qc5M*RX8WY4dYDeh0>qd!{z`29J<7iT~Ag3)d9X-+ZumrR6~*!
zNTRG3?`nT={`B!S`Cl)9mGM!l)I+&bi{?X7XKCfR#P!Y#J{h$DPXKc50?Dh)%xvvK
z6`N6PrH`KTMFckbD<2bdA%JTe^{A((m55g{OMguOFtPTg7G%4H+Qv&Ya0x
zTO4<4u*%-vClwqhqTOr|zJKawgO|F#L|wB#Q&~}5!%8UU>Um|(#gV!Q5;mN{T3KB^4}pM9v6x(V
zg;2u>f%yQz^iMdKhCA8)9*$8@g_r*I>-W0yO~H`h;1bAc$b2}u?7z;mxXwIn
z+_T|{^GHrkewv#b%AD5w+t_AMBWs+T2~c2gf5ifR)uIj)Ak?U>_qBnfL9jwx_kPKA
z@F3)riIEY9^*@%7D=u8P0IJ#GAOv;*4`5?_1E_653VJ73u=~pI1aI$M*88zcTy?M6
z+1cmLLty}h@y>b@>NefMuXE<;Q6DEiq*@)G!t87c>7byXqq8^eKRu=4sqekJ$YD}V
z$&aAH-Y<109`Z$R2jIJ7+tR>b!DFVOx%s%G3SSappmCm`oGGuq^qI1ztBYNHUW`|_}|3gkx#_4}>
z2q;_(lS_T0TSDWsdbvysAYSbx1m>;1@`c
z=SRoK_p7sJuwB1$Y
zWk$3$3=FlbhsnGyF6zAwq2qu4;lnevVps*xVwOI|k|TF3y;APEmmVW(KL$NH*f}={
zi48emA!H#eI(qzaj`o!+=Nz~RvGl2?Cd?d3j*%_js#nZz5Dgd9E0xY0IywYlyehsS
z=~dB#mSfHb#Y!^My_#;bt0eSha;JiY*5KqJE!q|z2QZcJ+LG83V`n4?f8%qAsnTj!
zeDcq1-TFbB6HgI@RZj215h|ksdsN>5oM&cdbJ{VHF^es^H3y$KPsv6_@8q!!eEQx_aX=
zOc_9Sus@)50gE4^r&n+{zY_WM=^OouzNRLt&A-ct8c|WvI3Y_{(CLbbkK^Lve0*vM
zRAwm4X)Z1o$dJ%vA-Q^Ot@*i2=fbxE$`rc_$Z_h%>xs6EP<#s|39t{{JxUzZ!4t34
zA!h@8%cQn!0oOm+wHM4E?jKSxO5xEXM{a$M{qR
z3H*K&cXekz0D|Bqg2Hh22UZC~gzI}^K
zS5WW=tZZ9H2aX$>=2pT#e*AbkQ3pEFYjc@aD!#CA<^GOck&%(Odyp$sbaXIf49(8M
zWp&PU4ZYOx@NjQ$FD}
zEb^xit5@u)_xIBx5#`eJSGO5<45!w
zXkUT4y1Tlfo<5a?;Rr+=`gCx8p3A=u=WNNNv4d(4u8&%V!0HMZ`iF6NgW~
z%*-BR4fMDlRaFQaZet@OKsDPyb^u1GMJvn8$IRgNXsxf`&z6>zC2rXzh>t|l$2}Vx
z8xsUlRC>TBwv!-Q@k!IPlXxoHYuH->vEOSkOIS_7Hkd_sg~65YQ`kr)L|PoGgZLuJbZ0
zYieNNmXVPoP6?be(#~^4lw+nQCLgOgVFn0ck$fy40Ukw6RCH~16;(EAmJJLkWJMP=
zV@wGQ^z^WmboBKlelp0>e2sgiq!%D=j~BaVW@op6f>yhWfm&uS1(S(|#kCtZ%AIBt
zQ4n~L=a~5oYKm-!0c#4Z`&q!_hj_vr1K|~oX&O`sCGhibIF$pa2*o8tMxw~4p-F(m
zq27V@7*q<2BDlGRY62pw&`C`9l`*mzT3c5*&kwPh^1X$$L=$+7gTsEXYPW$!8su)o
zN?e>aNN1=cb2|n%*H^|HV)Kyp7k2Asbp^;12x>GvRQkz(|NaHUw6nLr!$*fTL2rFG
zltuE}HqR;KjXLAA92~nSzadE81_tiu`Tp(OyMh8MGqVpigFwbRt?Q8%Aon!G^fTxO
zHXcyBv7upOZg7_#196G-yn(GPe}W1n1x3O8_n&-G#UXV8f$U?cItlm52^KfUU*EZo
zA3v`1G9zOg=Wuj%83`WbjB2ca@2czrimaFxhmE@-d}kx}(JKqd+a$dE9^M$*Iw8|=
z?&p=Tzox@VK!wcA%(Fek7s!&jVQtFFGDk82AD?+W3tBU^%qmAPRh96h*EgKM-OX+G
zj*d63U%yBK0Dp*vhTZ4ypP5r5O##oGZT8C4*3=lH6cPk28xg=&^bDF{^>U&ebeXRqf3){MSlR(G${e)B?s8-b8vqJc=^@=_diIjL@D_Vx5Mh2rTKY!NmmC~
z*AGbPU{!2mRschzdG*?^pXn*mkIfMbg!MZQ+=NL_7%zl9%mll|MBH7&o~s&$zSZH=yK$
zn!-h0bk~g+cM54V0*}dg^ymODs|Cb-WKjemU^9-|@xr5!$nXU~fwav4QUBnV8R!N_
z1OPE$3oC+K54mu@-2qe`%s`r&bTXHKS%3Vv2QV5L_a3`>Cr1-TsZw25lspamgqhhd
zR1KSR&Oi%bX8HN~_4V}^dSt{B${lCA-o1MlWyHs$T@bY4L7;;?JT}395-_s=o*Z!Y
zdSIad`WlUf1)Y$JKGmDP)-DVo(c(LM_B|9M-kZ5cktHQ169js^V8e_wUpeo+r)AQ?
zpnQ}Pjx*gNo7=clpb$VNnWLlYzxSvkcL$;WhS5PlT}4^B;p^9vXU{&>G*zTSs{+fw
z5n~DqOK}9`V=6lbhqNA*slKvx_&AX}53;iI7Lk+fxr0X9K`giz+`uetT0%Sde;yiHZe8RG_PEnH^fHI^Lw(3Cxw7Za;&8MUsRX)IkDk3bbqs*-^
zA_76I?(8hm5Hq{_*gUR4x^C4`a`2rUf
z^&q>3^6d{HgZK6It^X@^WxUh$o;6z8|=&3fbBHj064|
zIXey{2m25z$`4c!|IpAcw7;EC_=Sh7+1T){+26IY@*Jt9?yGEeW*A96?@h4sCf+hK
zF>%J)C5DWww;K@E!;$SzXv)+z-DY9
zis(UKd=^|v8aHl$JC#^lzpSSxb>hSX4gmOR;9E&Jw0N2u8m?Wxo*-<^BFZ33f(=%c
zmmfzJcIG@oA5q67V0a1Uzgqp_P>5>&2NG10#GQCp+E=iLsK2GI%b5iQG;ER4(N54{
z;Ci#{DS8sWPR#2vJu)I2w2RF@Ab^}jLIeSNX*nt~(ue9-Z;9}%i5p05bcycKA>hCd
zrxW*gRF^4~jvAr?VWRMpONFs4$f+3x8&n+=#W*l;Rqo4vAjvb`p*;0Otu*FyLmw-u`e74g@Zj5$zvM*l>UWb|3$%Vuo2a
z-aHer9TMIfhZ_zp{Yy{ZA9(mRU}$N*k($(TtYQ&mnDrv3O8jc${dX^3?9sPfkR)_k
z@CZVAbzc8-n%F0qgHGI$d+qPxsg_hffCgja(0?!hmBEGP{!Y;mj+qyqwA
ze3NwQ+8kn6vJ+qr0Tfu+)6ft^LISFiN(PnLy@NQCGLOp+T9ca8b9f
z7o-_J2t7XXqsS51z%P)T*2?!^sdqYjGaH?r+
z3|^6gpxg?;jv}E#7A8kh<~;v!b}&ZSNLQEn?zj(y$oj6GGT%6%wBd!c{>dm$+I^LZ
zn%Wi^7}qZpR|d-+6cF~-j~C8DQ3^Q9G-m9?kC0
z``V8+qm}`_AGtbgh`NsZ713d9Yj58kYpRG#O47e}?NEXWehJ^*u0bc^qGJ|9;=mKf
zkB`IL1%(HZ{4qr-Yffd@^tyNeo1}Zc2W)UR$kRsbig8w;9-~m>PatKF?JW)~LYCk958W!Cprt|WFy@GF0w}S7(DgVG0cRz;x
zqK4OA{t4LW;z)B7m7O2}B_uSC+L;P6@K>P`}n7QY*<4KO1j2kkP*^MM>b%gcRc@53(0O@*&`
zO6_4h=_@q8Im2(&D;?b#famosL=)a`G<^BxHe=^AD#F5!ht(zx*`3br2Ku#&gDDJ
z?R85X&-XkU5cB@vNNZO+p*qDPOF}BTgU;&!WYe|sWf87+>~gF!XTRGy@N^*O>gwun
zfBMapA%)ewq8ceV!GpH^1C`XWpJYn2wt6;Sy2m<>c*xu9Zp3
zU4)bKQT$c(0;RAfqdLDaJ2QLsMpl=CPx9%qbr~?<>*GmY1oOe#iyP|d=BC82`DRlG
z#$IJ*4X0F9P4A#gwG6oQA^N;_+m)~`p{nWbWvY`|=H=09+|CSxCjzs@<(~z9N&yO@5
z%&={r9n4l`=KDk&Sl_w4C0%)M<8M$wJJm0_>gJ;jpDsXLE9ZA0c+`xW@~;KgkKWMG
zI4D_-3JgFpLBM#P8<)~V55Er1*6<>RyH*gW@eeFGpgh_6$#$#66Kt?xDKJ5kmwZv>-E~#v~i5
zc~)-|oKCZ>CoOtSgyq455jghR+S(N^i+eKKx20;HX&~E{l3ql0DHomgBY_#IhwE1Q
zSQJhB&WaOfMeB}vlTlo}TX^jOk6gFF>*`)5x$P45rv0Hm(ppT4XnkuBC^vmPdjEd;
z-y85eqlF7a7abI2n4{_5o|pdd!Y32KE0`0up
z194*!RO;$MMk`wpCWEA!E6Gt(`9%Wh$4F8@6YSTtik3)whmAtHgmy_zO6sySaTSN<
z;>AxmnvmZNjExc0Z=ycG8<_O9OgJOwQ+j$YtCGjnPP^wVDbF~W`4|oznEwg;`0Mn@
zS-KWUXY^bk9WefM#OLU-V?YpaQgEL>4ZcJQvrT=ZK9P;$6oeraBteK4+F(Gwe3AdC
zItzq2FQHXx5}KdyK;YW~1JTyO+h5^wXxA?9_;{xH6X6=?A6ya5)!M(kf%6p1aQ3ml
z{@>$BeA=bX{DGecsHOjW!6jL8D-)BBeA9z*jnF_vFcg(@#fRiQwtM$YPfw}Y7=8*r
zZ?DPSs{CEW_Qo*fz-#h^L;i$h7EE8Jmg{w7WMuwh^Lu=%+yw$?O^l2;kjDK?
z_b)3;ZP+63W6QZuo)kkf1v~t1ji$y%Kx}TA+MhpZ##11_)=X|e(2+MR82Nz$07?e^
z(-k}QLUFE{tNVn+=}F_(q)xT~0|88CA~+PJa&YPIO73Q@y?ZZG30&BoH^XI!uJ?WWHa
zUer=T4!L==7^*bX#VX~+b%0M$Lv@A%@M>;uY@i&Li#8Wm|GoQL;XVb0>W{kuv8Nk{
zs{J)X=+609d_~>=Sm=qMxN?Q6N#fC#aP}~$iqc)<1be4mTOl!PesOVZ4BxpM04R_a
z4juZQ85!4~@t-LkF^f?*U^MGViik@L@sPW}RD;O%6=txQ)OvRvx-?t|?!J{yCi94F
z1SA1=Cv${U4-VAzK#y`MO_y{)T2#&^Z@Z#z-*4oi{4Yx1c2bEm!jE^)Ezs&V+h9Q=q1yiHeW
zte1_v=F!#Cdb~?!L-g8}D<7ko+$)kgErdpgDmyypC{0aY@tc~O;)k(stG7XV
zq2=-y-w7xW-~oXa0r;6~2_{DEzm`>}l@%3-v~Pp7LhhpFbIj2tYZ3GuE--kVola*u
z5E@@JvhURTYR)M^!!EPjhGw=^`&EGUni^S&Z?tR?Z&a+9|kX406aU-(!!R5-hCR)6X%P>VL=_-
z|;?iF=}qax|R
zmD#TJp~A4AGgly@WjKXnWOyiXZ{>u;U(h|&GRIZo2NHa!4j+CGeG?t&IxWLZVxQwY
za@tcCI`8gv#66{8vtO6eytQ&SufG1SH*>I$;^H?RthRI8)Fws_SEI;Xj0V8A%#W_4
zIP>V3*d}=l0*}-)9f2eyz!Tgx&Yg5x$T&M$#GYAXJ%T!UKPR#d?fc%@kfpMr?
z_V#(8v}|W7y-E^6`v~*4V<)+Ui3x*fE3=_gVjy^|j8QCtn)2SC%JpyMNA
zeYkV{Jn{4ODZf#xgpk4hV!e(1Xwt07?Nwo1|**OaFhbW=;n
zL;hTa?Y;vQX4`Z-yeMEA`Whz@T4&e=?{!B9P67j@-^e3A-+%mY87G#LmoF6hA+!F_
zeE$&!C^?W_&ym1hO3o^^fzjHLSWmRADE)axja9A&iQ3#?b{f@-g)N~%vZ3o
zvJQEPMAVV(+gFv3>>=t}_*BIC!
z>m0Ld9l;bHgusFMSdk|KD`mfCO~$eR0NGiYneZwr_HY2bcfn*^uAp4L=acc%jc#5p
zu7LGK
zPF3f0PJfPiFWCLq0wVUv`UIhc^~g_5WU(C#AxzN~LlcLZ=2uOChgftM>%QJ%drYAT
zu(6$=i)jUMv%~Upt-d1Uy(%X&nF|+SxoKdmgtw$2Nt%_{`sM4_&@|63Tuw(|1qKAz
z7WbI8z1U4mOjTG%0%nZyj1gIM{Y-26{v3Ciy|Nm7;jQ!>Z>Bg?dh$-ooNwsrV(9M$
zAc9gt;AD+CE|BoYD#M5eH+EN-R-dpdNTXFPP@AKXDRRb5@s;&82iwLlay*|FfDvvS
z#_;Ml@J#F>CO+b01b(x@s3-SsAOuB(K8QEb5>v=fzbjvSa#g4?8
zYPmdGoCnEWDW=ViT(({mHF>zbzFqr+q!TVE)Cy3~8JFYa%6)F-Xc9!v7(;!tj4xLjwng
zDw-CeHK%@2+oS`gmLLnYwyNPz{EWkFUqag2KXC7#-n5foB2wGvE@Ya#Rw;
zJ{bzgWAf+j*GL@i_kZ5UK;?CF+e=Ig=-b)djXi=kgl5fFBp$s9hOjV}w?9!gIW;v8
zbpk^IoX3s@)A7qFDecb?_%fJ|9tR}4cK1mltpjv)CvM#xfu(myB`+$7;p|Cn?uMqO
zCIk`4A9yf?gbIp_Z_3E9W7sG6FHqj*Z+Mb!SNR~SOOKq^Yruu`z*`|IO7B$*5ee89
zy=}LeknU~HGiVDBtmL730b^ly<1fHBSSvCX2^f}(ytcQ%!=d8=(T5CMMS5{*X$f;W
zmlQZ!5FZfPjZqI!g#i=54x`KC!&3~RqIgc6SY4gxU?GezPgA*&uu
zOgjt@=eaBzVaKt)JkfDLY4Pzu_`y_Kc}Br;af}o`wG>Pux2&!8uUx^O@Qq@4zj4q8
zWpeIx1-epRouaUp5-{3>t$^E%V3Ngm|NQv_Y6Vo3v;W%1ZwzK9A9jTO*Mh*dn;0JFUAv$vpc
zqkF+fNoCy9uOCWkY76)QgfKGk^R`LwF^6qhaoGdY(>l=E@q`HE{yTTnb#*;fe(RRD
z%E7p_mnpc1XH|vf7~*0+n|qTPMGEdax`lfXJ(o~ydQanL)_fdL_tXjD;2@Vcl8V>=N=76tEtn5
z0GKer;7ms@`1_NTlCs>s&1?oJE&pqEBCE$Ud2>gHI6JqZdp?JF|m>G
zA@!YvQ>cFQC(Pu2Po6v}>H-Q`O}sAfmD<BH&=>A3%L7
z^jIGT2FPKw8jkk%!|QC7PjQJeGc#PH=sY1f9M7@GtO0z2=!7*iG~khfG547ac};`I~-DxwZ#h}j?;9bH+*AaI-q;bi5SD=Wp|gt4}Q*%
zZnVuv9}w|!$3fIFE|hR2L$sFfq_S}uLSd=(#dV@7O|!rl9t(P`$BSEW2jczW!y+SV
zM(qMfX)(r9!?K!aPev(@k&pSXXh#-HpMcBAXW1HoJ=&oM55*8D4X~fk(
zICyl++I7ForP}&;Ndcb^Uu8W-WC*GjjAk9|0KB}jKi|Z`R}L?MFzo|;3po=b4=sQQ
zVAV>AY+;G9vlEDG6yoQv>`%j?>40X3z#vvuUpo&F1B*<3b8~c97$06jLYz?-R?h?B
z0Eoftg9fbXwb7|GR%;t%2sDXs(qQ*6TAedTA#;M4@cbIgsBAiWYyVIYird5uppsxu
zv1oY3H-|m^WH30-0$pKbAK4zv${vFyOi}S`Rn^0u@hf2euU>s1zEZya9>XEPXNPHN
zfi?)Ug>Ttf5Mrq35Nh^EoR6#@MX|*AvOugd@*n(oeGTbE?yPt?0X_X%qZv-c>N6?4
z7axE1Y7004Y2Po|lyrRO6cq`l8Yu~jhD(Rh5$SJhERzr3RD2gWA3Yohb=(}55g~r;
zhIUXDBJt3kf%!4-lvP@)11}t^D!P5R{n?Cm;883Lo7Pdx
z^nsrMscwT!#7g7t0|M&MBCS2r?!ftiXM{kf8w#M@qQ4M>%`eLHDQ?QDuQWC>5%WGc
zwJ1ntMn)iI7cq>1DdIlOCG=be>G^gML#i7F5=Vu@y4X_3?`8r|1{3-ZmHy0N+g01<)@TuIq
zJXQ(k`&8^!4McNicJJAPA%|AvN#TpDpth)FU<`Tq-xwS7Nm*~JB8>xE8J=Q3!ZJb`0|
zaSsE#M}u^ij8I
z51+TGCO^ye{Hm?0pltxBSKexmA3WG&6Y!A#
z@#Fi9arf_kd`Hostl^}QAl5JKN@wg!V|43-xzXR{js01ffz3x6mP)4Fr81PM|6OeI
z|HXgr$8ZL+*WUBrVgu1~{H!}A4&@=N&d_m@ld$;Tt`k?uMC*I5!A$}ucz@+t>x#`k
zH;ohUBm;i<@?_a<=PLL1yUmt;j^Wvq11jy``csI9n%uZ~bMnJ)7Po2J-h1tYiIBQ6pOR64Gc=@2xSbrwND>D$#EE1wOe;~&Z{`R%&W>tx&zW4lmyJg^oj
ziFMK7Bm7Q`_6MD5!h?izEY}|~S~(LQdxX!(%Ko4z3)iLRpH5?^`e?$mZ1SQ&*4Bsl
zfcblio-x|np|{p^lmB=(eEnjsFKXSUp7et}D>XY?(^=*OWR7_p+J4umH}b3=4wzY4
z^PZ7plNgV;XYtywZNCQzy4T@6Pqg@;&q17~;Sawtz68hG&-q#BX33S2;eN@L9{bU!
z8bZt!zduY_Rcty^yWqkrRzLAN)@u+J_*O>llwQxm2G;=^o?Q+0d#1%lmV~dr)(^-!
zxnpNayi=cx*Vbaveu@Hm5|9Xf6wD07l`9q7n@QUn+`}ZLfI7+O7pb!2*nm{@>QBF;tTB1I+-NAK7?mcL=QJ;2e
zJ)DB)Rs2S(r(cgw?qkJA!kcyt{9oKX{32AuUU{DaXT7$e++yD(nlbPlRdS`{4kfh<
zHbZ=C2B>weNqjcnoCI-pjGw@eTZd_XUl>Uq>IrsB;$bb9^GC06$+xg(LMvWtdVn9H{}
zXPsJ&*&XR0qczRiAUFO8>y2%=HlOZ
zo0ePm!!=o$K<;!~D$_GySkV8qZi!HW%Ip#+dv3d)+k2;ovFLji0Lj?J*uO_(9#lsppIn7e*-2WV7zNqgo$n*gh%8sP?v6#88MW{-x`AKh_m(Bk0
zD-*7|Y|R`4fFNLr=61*B9~w?C2#=sl);Lq#)ucmXRCuTacHZwSq_y4Pcl<%r6uJm`
z_0Z*^OkO+rWBzhiiE3LV3bE6RG(NIs>Ftd;s}Ee;Nd=buj@_0OYmL?@T6c0f&}aSW
zwyxNCwTnVz0BgEcr|Ow&Sa;x#a(SH%B86SRak`^qw!CCA5jd`VZ7hzrXy75tH0~So
zUx40vP3bL?Q0edYeVsVxbdu)mD(Urwl`?QkyuUU{eRPpNkFeJn<~HVKPYG4L9**lM
z=p763O(<2cZyb*tt7n7<3^5QQ{=4XfV2snp9ee#RaYnRgjeD)QPv={TlU0wY8Z<>E@2mNnE2N8{heW*N|X*E*+{CysNeo9P^|f)e;`4ZvE~c6Zm~kz_bj>YZsxKQ
zDw2{T{p;=S_l>9W*jwi%Vyuc4?03IXb(H=2Cj^|!`Mm+P5PpzKdXhG$jWMRy!0Mzc
zoW$Z({BNx@1UTnpGmcrf)=QSB{Mk`9vq_=XX5BjKy)xr%?TVYba`h@3J4S;V^ExdG
z*6uR*A0^rO=H8TEjY?lyv9m;9`f#JJ%ji=a@ChuTIN`AlXN-bi#{~O`l(+Q%u=U>I
zSpM(-_*G<-Ei4Kcc@HeFomf6OVkC?5*;zr{;}N7FlbF
zO9@r=d9ePTT)BIbw`Q>W5-#0_p(Tsr9lNL8T3P3Ci0D|qB_Zbk%gjY@{)&b6V>hnMhdK+)~yC`K*}P@V4U4-Sn2
zCsft~XzcV>mHWyvQ?S$>{xW~#;t&{c^V|IJ8roGhf9M+5{0_blDKwKHgGnz#-2}1N
zMmMqeb{hY2Kr_}!ZNKjsGemu_f;Qz~BZxwC^_0&2gfL=~Jf|NP-h;EjzK>czcZp3b
z`}ltHyzkxUL=ki7v%==`F4C`8ksxg59IJSIgnK<~byf^Cd_wQukjJ>sxz5^y&5;uG
z2e)yPu07masxa^fopF3|>#`yx-ul({Bq%~cXO1k$RUKB;9V~g&uBRw5yR>sw>;rqx
zk&Ocls@z}WyEHqJjFpVsW-BIZQz+Z|s5*r2@j86W=h`)?Ct}#Dc-1Dr@!U~=1rGS?
z4YZg7#pJNB=&Y_PgK$b*S5UrVuj>i`0)Lfoe>t4}va->qDzP&aS67i9x9G;o8gEzb%ui>zyKn^J)E_00ctmL%-Nec0HV{Y7RpRm$yQLmHlnLF3}G_
z^(Nf`$7S@X@Xb?8J+Q0Z%ayb6FEvoMs5xOjte;FG2aQkN)v2ldyb=m{D(%h0Qw9qc
zgW_^D9LmD}k<0G0HNL(zu)mQl;YMfm@n%GpA-hI&21A;Deo&oTICmHEE)kTA>jqX2~v6cUoWBl>Czdix_|kO
zK1;U79LiVVQ6vWvy0LA@-!{!rws6V|u}!~~QQXL?(!E4d&J7Wwd8Ck>40Nv#{JgGv
z*QqH8pWLBpJ_`*(cKC1H>quzls@s=1T9=^DZhCEXm9l-@K1%Ft%YX_97y=A7ess8X
zv{_LH8gH|HEimJM;|&}@D(04zBB-Xcjeq)gFF1t3)0#JN6k^bGkpLOqIC_!wSr78$
zLcfEBy2FJ!1~3Pp5;RQ}nWd2nb#!l7i(&^GeIlBubcvc`wE#Dcy@vgAntvzgG=j>5
zA#mt`L+!D{4DJ^g6Xo{694>Jy<$$Kwy;hdj&~mWcc^vzlf5sDFwI4jg8Hjlk%Nfa`
zqL|A%uCk?peXJKEWfV3wk+Ma-8N3fs;E{=YI>}!I-hcYQmE-
zgiE4HugOaq@`qr^=PGV=d`>V5JpM4PU5Pq$Q|WnpJeGN5Sni!CC1as~qz6cjb0XJM
zSmwKAhmPp}p9>JM=$;-}>z!(1Whypy^S$|JHwhjp3nSOk7eRW*8
zumT$grLrC??eWW~Z4T2=XIz!1rtZr=ep7#5%3bDL7nYv#a7M!0i5}nFf6Y7spKn5t
zn>(xHKi_KjOwBLPgc^aiz#ctvempGmZi3_Co9m;de!O||HSu>T0X%Igp)nfnyzi>I
zT~4l6`y_y8j{o@n-SV#d+|3GXBNUk!c0#f9Cs+74%s`zHTM{#&#m$Ygbn$qAYbdeI
zi@c5}PLeB@k(&G=h9IK;Kkr@xFV>y^pFbAG1n@+1zyrF{oLsI49%$m^Dq>_<=4#%@
z^O6=~YC@p+Q%TuEL;d*8$(KpZO$gpdAHO8V+_fLurYDh79{#Lx
z^5@KZO02_tzF1i1B%CLMDNPU|rF!y%utIoqMZJlSZMh~U1Q@B~tAw@A(U0Ksa^r{*
z9X}as*d|VMXq=kLlafi&A7{M7jvvM~8~wDz!;aS
z;yS!-1J`THh~N>aL*=OFnCCO2?Dl3e&+u@mHtiCMuQm;)VU5sJljo5%T_Q{yIero~
z;VR#z=DJ0zv-+o!i#fLFynEZ*BK*LnsD!~NRG7D3hs!Bu|Nc@fa_ceX&4TVs
zzc>pR&q0MaYKto&?Ad|*c;~T>2O=}ZU~fXDu(kiwJF|oL7G-fcX5Or7TJJwYtSUKg
z?YN{;h<}jJuA>)dhO7jk*7Ay3!>f`Bks2i)sq?H9spw8i`=~T``xnj9Q~dm}8dpyi
zV*Hdtaz#yQMZp3Tw+Z
zLEJx8)5%sTISbI8FYL`PMAe6M^i-k6;By0}ZjC
z8S5VXQ_y%6hn@GXJ}U18Wo2BxIr^M!%kOdr#tK8
zf4Km;DOuIrAL_UN={Sdm{o~R}L57cQnvk3Reg{NtlHBoQ|O1_pu%?#^p(;{=Nh-;#jO|&nA
zdog$$Zs_{;cP{xrDOGGJ8_uLAusuKojvOZYVxGJP1lwD#kR*W3x=417vojdxmdnoSNL@nyPsb
z(q9H}EP$jFdR=@`{10aOrFj2$mL-obGu9a-)RQQnj~z$GQGgDC`SB*JQlMU>rpP#_
zs>d_^vCSP`wL9bZ5ANuzdUDnZLZq-r20>G>l>YFb@=pzS4LV)DRaSN^|4t0L(OsYY
zKPOm{OA>vpIXd!$v?WR@%a$e;SVL(8$4<|+k$UU~FaO55F1^T-m^Ou{B^j)Qh&vU!
zw$qg5_~F*OH;#w$oSc=c7xUNBADD!};&3KpD^>&aC*8O-u(Rzy
zz;*J`Z4C=satL)Y{^E_)h*VAXP!=!tgvrJ|kl_
zY)z^KTMQloaX;SK8z%qR!mwG9MFDg?<{rV^`@i@l!Uq4(^Pi1tF8Jtw_bsx^jD9gR
z^<-LQ^p}|nWA8Y%D?Ck!$l*ukVCPk%#Fp24qqA@hfcv=5mfOEFQ|itHo=M1RpnO?r
zKLX-zH=t`)RcJca>^nXpNo;wVymSnc1C|!uWobF+MF6Bg5oSR3e*Bx~LXC0xY<7M9;HJH*eOhyqabe$$b^eDgxUo?Gp)}#~9GS
z{dW6aFAv*7&Q>_n_p1kBk71i^fY~7(a|Cb;FyI#Gv)k^zN$h5u3Bycsyw18Gvzm8w
z7E1G(Qlo52z`tuD+X0d{8zwu&eHegg5x)?q0r>)GNfM2wHUP3%ADWP0qY%eAu1`!D
zxH$B}IalZsA(C1Vona7r+vLe|7n@T_A(FYPK}EK}c`XO_M9O_phn~%cZxtmtMB(#ZTYZ
zheK*yW11=JU4J{QJ>v{4aK7svgX@pilR0)>F_#o{w#P0;-*Wv&1jsOCcqO5CAJl^c
zOCZ3&E%Y9*LPgO8tfmW4A}<(RW1oLNFucJ3nT!;<#t^l&FyII}0xyj`=RqJ&7P@9;
zlE?RF06c`o5YQ7OlGtCdN_~{|FCT~v9-Tt7i;&G1EL0U#0~+bKo;-fH?7p^c9Y2E5
z(%1*$#0;JHyztC;97Cud3Fv}DnIeIXN*F&L(qq;-=ODB>Xl@L!#5GPDpQW+^pzpC`
z0JmIJU`f$>uvrTz+*%ultOexJ8FJ75{1WH-w9XhiueEDD%OPUnGXL3+N`O9Ab=Ind?RlOHSXxgm*dJKee*X!=U!3XPqwjh$
z%-JG<^)ce%pOQsw3@>s;8&yCLwdy{k;IM)1wH9bJ>
zG8HWk{jx5g41gkL@N|$h|9gh_(7dFKvoDQIB$rIPEnlbj
z@U0XwXER61Q3hH4tRHmThxS_m(JJw%37`*QmkK~PAk79*JdSZjXc26bIG9%j3OV$qe)kh%|StYxQqD%y%!cc)PqJxtHtc>sLo+P{8(y~YiS
zOzL5xfqD2T&zJ*AD?I0uv0jZ=?m((^YchwL^2uq*E?K6lWgrqkT6~ow(a!u;(n8fY
zu7wE3qwSV&*-g+lgI1jZB@%`rKvJ*CPuP|RpRtI)_xIySJ@?a3@FNleECRZBXHz_k
zYQ;1b8tel{HlQltR-%tcGNxTVpHi$;{?B1eZb>TRkmNNUWAS721OVY-y3nLUMlTVLFXUdRt!*WmBZyn
zK*(F}{Ram8e;fljd9Jm)3L6VsdEVl+s4*O51N-VMYZrh$2jne?o`>LfjS~P)*9tdMB0*xC$xx-g3outvADRMN$BEe=!
zgZN{(=bN@1x9f_N4}Bjlam)_XI{(b7qp$kCTGM;`@JNR$nE6)n;tY4pxN@x?trp;x
z@21o^gk*#$(EY);9c*+T1=#=IIGPCODi=?dc-TlPA8XQTO&we@=01{N@pE@~p-_-s
zi8+Sl)q@7}D43$+mawnDG7mSzLDCYGmh#32Hw!sjcVlMc-M+lDFFY72AE>=z)<~Vf
zXXYZHbTS^Uga8N8-C^jPL(RW_AQ4?KuU&oS7y+sYfQ!R3O~H#4ew;X)
z|4&_>{$I*p?`(9HRi)Hf)~XaPZPShw2@lrFT$OLy)pNKGVUwD}b|mAo+t(`50lvUv
zCc_+)c-^+&wy=g0yB>_Sk@sp7)CX!UEEmfLj8Jz1>h3bA>&`sKX&jZ>>J^;kKeW;=bXxq}v7V+rejK_tabs681wHP)Y`-UuA7@tL08Qq3{HR2li9Zcru
zt6rgBP^DsUZ$9C
zMK}Nw2F1ID*r&bIqt6PJ*s=XrQl^XmT*w-$51_+rp0y}YUdD(*7)PQyfCJ{
z-w>$T78$<8-a;{N&G^Xh$f?LDmvwrB(NT9%y~FHO+Lm5PvFU_8m)omn*Nzqk_d11h
zv?${6#2|>@Fv*u|@@{jEU1DeX(dsj`)K=_1J-A#*g6sxmi@zV5k10v~J22{@qwtRH
zB6?4;s2(}1%PUG3GR*9zKblpyO@!P)T$3r1A$ppLSxS6GH0ho#9=yQ0tp{;Ll&N%I
zPfo(y8wDl1Ya1>|XxQ>y7Q^v{3N#rYxo)nMa6N#sZ46tWoDoe;t3S=%|^
ztY8RDUEXj|&7&W=G4H~S^jgt@XRT~j=b7)nbhGK$6pys3^C14$T5-~67nIaK%D9@j
z)$wgIZcgo8U#j8$eP@8aLbYdsL#R9jk{qoFfdH0aK2x=aFi0sDS_H^>1z#I$;p{K*
ztMY6V7252}m+5WuX8jI-4p6=y`?)(End!Ut<7TIXg;wq#PI`3AWba95@Vybsa5-ZY
z3-MIg$z>iBDKmGcGVWGAkd^BwA5EBUw!7_9#Ve80C*kX`igmR6QG9Qn#Y1z8cB7qZ
z(c}BzJ2DDGeKfraYYgp#v{OHdfFg5E=sCQN8g}z7osjvv&k4`Eq}j6x-mB&rDIQ+x
z-t<10`7>NL!khb1?9r5ev9?3>!ZR{-BpvRZWb(grs52YGIOLiT$)0UtrM=i3YMlUy}rzZbPIq3QQ-cB{>LxgccOgsd)`W
zGKhzEd!l?@>(5Zh+<|cuA;ppNdc(K$EKFTR@jT-#EXgfC42`i@twRm}_hK#Hd)a2?
zV~4$Jx29C_z*vUiGJ10#EueKyqCi!@q-#c>wj0iI?ayUIIY1FB^ei@#X5VbxL(`Mk
zpJ665)OHft0*2DPRaW5@lnGa?fQtL9bAkV>AwVq;_1Gu5L5#W%IZ7o#A$^IXw4(k^(OA5G?8uJoKITD;Rj46{yUw
z-IkNROz`DHr|<%rW<6y|-3GHNs{xe|45m4On?tzoXAU*wp>ZTl4VRHQ-*g@ti4E@*
z+cK{pb65)56P)f*lC!ducyQQ{05p)3>XlmeKpv4Safbv?b_yIns0b@U2Nv`*Uv@i<
zw7tT2dBYbGcFMn(uX*tf?QrulsX~jpxlTk#Ks8GVLjwhePAHU}Z$jXj45S5wG`FzO
z7$PvB+T7NnLl9qYj2{Da`EF%~-Sp)qcZzQTh#K9_*dM?Bd-7=Tlj708TDXz4Y8rD_<_?GJ
z5Ih=;UdHj(qEzlfH_JE14HpS1
zRbx35h$Z$PT&3KDDSfp4I|L{o>#4KXQ`#(e!NrPBJ--S0Z@gmW^2f8c{=NUn6FUs6!u
zy|HuJh1)j>BG{_FW<|`5J(^7!xa*=^8+_*~Gp6?MUx)~xZJ||=hCP$Pb1ofa6*XW^
zAwKexISH-{(dlMFZSHX~W)`eq+F0D99$Za56R*=4pe8c|lGQbTeH
zl)6Z!*Ai?CDw#niWaTp!knNyYI{I+(83bv2^~AnvB@J-vSa71_%0_1;mbKiaX-&G
zrVg;18R{~JBF8QT7Ojjtm|P~sH(<*O-c%9u$ss_}yicHfu*b3VR3fdY!FbmlI*V(+
z%<%h8+q0qE8`bg~p6b_Ve1I02oJt9MoRuJA6F|KS6dA`zR~wRcmD=3>DxtmkR_I&v
zY95Z}-tO8r*^Wxay1IfuR{}I?8&a#NDoR9>lqN&gO2$e*DvZ>U;{^CTpLt5Ma>Z?K
z2cm%@OS!Lq8GeK3i|Cr%O_~d73o=E8GX(_Wxtm1+mjRa1r1(vkse2Kf37>7n*yY%6
zF9t!~f;?Ia2eHJ|c?HdeNaam?Ei&}X%F^MXw1RQxc1|G1&>IUpTAS+qj)kz2Lfk`<
zV&kY4fx`ZH`D}<9Km8(uDNOZ{*c$>F8a%M`#z!k55~K5$0M+;brS-NNF_MO@ln}Fj
zslHsk>0_G{4b53ZHm)yy*0#$LUOmVheAn-8%$;kPJqh~Y-}D}%7coFZn9D1ytpZBL
z1&5DPGM%F99iSCec(>9SP)2CsCyj=j!2$?a5${wG$t~`H)dgwC$E|h(zBj}9t%cb8
zyPQLE8%?I)-g=CvU6!)`Q&JziyEqekS9kzJ$V_LOb|J4oiNF=ySP9vXS|TViM_mw9
zk@*SJ1$;J1fCf*cnk9@0we0JceDwgHmIH$^H01=>J
z@f$~LTz~Pa{LGUfsf8{}un>xPOYLOi58(*bOBgs=@LRSN>C+}NTzc1TK;s|=Ns)lF
zXq?u+2@dr418Q2P{sSKwJkuN`=fzxoWkVogbd%CXO|Q*K+wA$YPTn1fUMA%HQy%8Y
zh5Y%u%7*R+&5o%!oL4BEtZvDATU);2m7=|B8+||x^3>I#1avowcItsyR0D)ZuwT$>
zsC4)hpXHUw$RQZN7y7qj+VQx)XH1^tGO
z_PdTArh+tmwBH*%WR5gKz}F{Xi24}sG_%Ml(SEOSB}D%?n+)qpKb3aJS$H&l)fPgd
zzRDRde0Ea7d&G)Oc^u>iWRd2p`P55cc5OMKpZ@h5089(re<`7(u(os!-Qq%DdH%`m
z5?xnfk4qBwshWKRK&UizFqN_QDu6R&+9`;?-2YY#Aae_wWanUzwM5k90=uU?NWYu@
z7TJNihC<7X9+NOzn^VpOP5w<_3or_R;Hn8Xc
zBO?TS6{fB%hzV{6uo*X%sL!XC&{?uTShe>ROEP-C+v4=nPWt$L8|(jM9y3qgRIj+u
zBW*@|V2b}YNlE5;@xxS@ivKlLl9d7b{GdZeSTX(T1
zs~-!oEX+{nVSkNv?004ty4P=Z4VbpyyOw#`)WD%brFk*u{>|6ARgwwq(8Dz<`x=ENMYVU3>vo-MiCCdBP-X^62nCdev7lYdv7rf
zZCDPJ$5B{jMoeuC4Irs$_w!RF
zpDu$-2M?4joTJ;}XRSd(trBE*URn`(bT6aR5w+9s{hzFDEJ48X8?JJ*U6=%i17@BG
zB5k=S2A^I9mL;fcTqz_%JO!Ze_*k6>=uHs>XZ*uNY5GA5hm3&kWrC>7if~wZIt?7E&$Lq;WgG?A8uq9dQWqx18c2^CmsI-*~6?K
zIn?U$z)JdW2$=GUNX*zv$Z$nK|LJ9jd_Is9o#XGe-I#-o3Yj7t=iUpXQ-ER{a%@le
zzu-F#3(4+fu8fqCiKN4GwOZfD^5-Ro4Cb8yC!ysQ-iDEw7zwR8iYpozR0B^Nz}p-c
zP%<7R|4bLIxpY<@WL~LFrID72o
z1`E)zC{_kV5(YfC@J?_98&VlYvgwg<$gix&?(6Ro!7T1bWni3t1>iEr@V6p!^v(-M
z(Rv3Sh81^Zh7PtAB6rNZ2Yc*|@Bas2c#@57oy^ReG5DpkA-;LXD@pvlhn><9bgxWz
z@O52v7ek7YUBCPp9-^AMe~*ezHR6Wv=bpMU%}XA1+;2XZK92{W1l_)wWqo6pMiZ2y
zn0AX&8StPr!xJ^ZP&UhC!$;ip5{8QAbGzoMrtMSRpsi#3`#`Mb#bG|FV8A0tgp5Px
z1w5kEUKHhPjhb%Z#Xe@m`VD0jD(w6!%OvQDqZM(tYyES|f2?@v^~<*}#e3_|EQ?cZ
zNo>S7Wazwi5`2Ur5(;y$lB#};{Q56~z#FpG(^mnO-Kc)s?YiGP0pY&->upXUzN=!>
zA2B=8>FBN=y24J1v?Y_aZV#`!Eo7!gX1?GNq4;1Ai+g_~Hqi}oNBi2mM(AUKBmY>G
z5=cxHknTr^GZko?gxTq?@mf}+10g8;hs9+}vt=)sp{x!7sphy%>W#j&kt2vPPIcy6}|M9WYbK7yQyCrhYznZPM
z^%%e99qQsHv0m`>GPT`>`~sShRiGveas;Iw^-#2`h1x8LRqUzy?P{`}!}7nz4SOWz
z6}EX3E@d?x!s>$N_)2?Kkk3YDjwYmpeel9w$z_!wtprE8ZnF|@ygva{ce>d=P+Z^L
zKxGb~u!>oOOmqi|(NXUe5$hOy<>vxJoawqyPIIsGaZknPY@zw+rw|5a%sirX+tXH9
zSM%jq{AzNx)QHCaMn}J&;{?oLF0jYIaWe1TiFWNp9c@Q}XVYCWbcak@Z2Q+^6uAJT
zTeEEqNuzI`ivaqCOYhp=Z2!xyZ}tz%9_uomq(!^uUI-S{_NE(j)%e76(OC
z==Y(2D@EG+_a-3x9pbr|c|FtG9)jNOIRo@~26-L8A@6+ptsk2oMUN1R~KHWG9*J9Ux0~rdrkeZ#Y
z-ji|Z$xD$Jb~A~4!~b@@Pt9ErCnL>1+HOqXdb?Tk%83{0)>jGnATj*ufuW&rw)}=F
zU3J$lr^h2cTF=oqpDX)ZEf+_$MTfh&dxNPFYqw?enFi<%YBA#(-$Jo?2z{EC3^!XO
z4%KC#sYo3FovH~WmVEVClE%6f1HFeODyX
zF7~C*1|9&**xE#I;eoHwIzKC>`D@JIe2Iy=+4rL_h@L6TZp;LaHt*W`2tb@mfBWC<
z8((&>K%DCk!H>5X|24QR^p+!XfFbbExfcr&qm=6;Loo%lB=F4&Ho4425`qg0sFh`sX30dE-bfZl(A#UCUVhT
zW2m*<2p=HB)WQnSLlv%(czhh)m5cOhu3{Jxfns|vXxCQPJ(Z@4al731e^8-?1|J{0+lG5PK8KF=RnPwAOElPS94U`@eMfZuVP&dS*|U_}4ZTpwhC4r%
zF@qNBF#}?V&Vrabl0K6ImM9DNoeOHVc-+12CcxSeuw#fl2H`j-X=3%e&5e+8Yd-Q+
zkFPo7KL1EsCcJK_ohAKy6Av-$mLfW@?tT~Okk?=-D0c8qOWL3PX}}Jk5QK)j_ozPI
z_c7dzr;0zcIb_+nW6kEaop5SEX=LxyO==#zSQS;`Am9&y?h8mdLg_XF5R4vf=Gc^}
z&u>c%)jKk<{59I=xzRM)K$TGW#xtR!N!9s?=&}($LLsp?es7Ee9hlR;dwMdBf>b#C
z1JJF`qV)xYOKN7#bH}8(-ajG~@NAgxGdT&OEgG=HoAlQ3H;7362*`tfLtmO0w6Fv8
z-ERe0mBc}5s2v=tI+b}UG?a(ABdjxl=~C|>at@$>aYW{6{f47aC5zoe*_)pYIdm}N
zovyhZ8}I<6^B`0FiMGDbn->O{jwv{mV*r*!@lHM{Sydgtg7Rw=R54$6B6uwMr35`@WW8
z#w(S8?^@q>Km@_VoFQiKDoaeOD9}(a&QNKF10A8IZ{n}tQFSOCB(0zUY5SI6(8fv5pF3zvECxL83pkW?DoQC;R47piQiGOt
z(E+#H#w`A0W++#9rExBhPjRSWT@nc;$}mH21*zh}v71*gpoRp}4a&GslHq5^!$HOZmQE%Y
z88ifa-gf&PNoU>gt4~wJIc=Iqb2Xq%MNan$5}Vr@5k?am#zODRq$Y>i!v#ePCosn0
zU!l)-E0fEI?MQ2d@AZz7D1#pWOn)n98AyBdkAC4w;02~tRe8eBRF6Ar!V)1Mbu(e;
z`?hG29+B1*jD$W(Qk5MnlIqHf1JBPj+>`1q)~XBQ1FZgmtSCjrJPCH2nuVsEtOe*y
z0p(;3m^iXi%aEi21xIEIXgF=z^`J;}?}J{~y3Eu}vg5r1g6>J`|FNlxizl4n2|^r1
zMlyt%+`5a{$8Zp1Z2+jLL&rTu0)JMl^ibf-p-4so6dayV8726cd;|tfAM|ZO5^Y~K
z11;s-UlJb%
z2I`;a5ym+jrcBPy;Mj3F_Qgm0%n2f><>)Uw4Iq&u
zM!yU6&jmWxH^=PqyUt9A%$4jfX#JMRpe8qbB>ut&LqJnXxk`NSl1HF#7Z_okHzoRC<W+cMvzGm1kh80=%Y1|<_RLnvZ3WvB;AC*Pq2%i
zV}p8mG#IJJWek!|@BMauZmm>DA)RdaHePh`v(ZvQ4vfVhw*}h_4q~05rSz5eQaQnD
z7?b}d$MoaLacHOaSR5oJ3PB|lpcJRD(`5AxC5aRiEJKhTE`x#I#82SQZ{JW&Ywy+1
z3sU*9SFE2hnpv|gZqr>#P(2($!2jidFc0M}Hf5Koe0(Rq+%ItX&!j^;zcn?+BGKnf
z=jZ#`9*xX|r{@x0P{e_ZuqtST1(Begdmyu9aKRnTDWN?OxQrm{rA%st>*}O`#g626T_2+71~};=;7g1Ox?($(>>x#Ju4}Hlkr_<5w7i(FP)rn#4LhY~ab<6+!fiq4q70O;UEWGvl!0M<
zLQ?w|+}tBLpHDW4uDfiiEg+cxebIB%FRqF_*Aagb^q0a{&IN(s+<9pbp-G2xd?DP=
zCj?kqZ{;RjDx9A$EsqJ7e`1Cff&UARp-VH+o=EWX;(p=LZef4(cJ0yn>!Z7PJW%v9
z$t95-Da{_kk*HN>`BPf$@tWWI)|Ud_hJ%i;l3$h;ptSfR4X(0w5$(O~9lg``;Kn|1
zwon2tG~$QQyWfG_(17R;l+rxv_Qp`2BAye3j;cxgxtG_m*@HJrD|A14m5#9Pe;5B@
zM$lK(5IolB>Pf>ZQ=^8kQt0k@Y2No}2(NA%+2WLvPx^5&&*S^k;a=Wnqkq36l2&Yb
z>WQDBiby3R-d+MdqFkVW=?%6NE%tzL985rVESa?TtjPGz>!Y35WGZB=w!?i!ck_Z)
zYBn^3ZN5H#ZhABLHV+>n8Iz^K!=(OQDzYN1S;5ADwx6owu*I;*IB7l0C7)1T3
zvUau#&k}xUuB)d=y-8_=_EVBAMVMfMb5aoDX()R7j%wp``B>$c;>jnex13clA_B7eoFri^&ysB%
z347`lT-so6Fbryxcc)tnC6?JGCcWI{lSmEZ=vrfFB_9Fve_DQTSoJ>FH7(xtw-;{)
zLV#n*A?r)H!qUNnG^99%DTpK+Iykz}*`}y+E^ebHVMP-&
zDRK`iV=O*u1zx}}a;@`UNM9*^Ihg(Q6A60J=^zarq>B6WMYX&7wsk+~Se4pgy@s8=
z8E@u{_;aD}=mDJuVVEd7R@g*4s$_`bRaT0a2R>b@`FUSGwWpv?*C
zY`-FFed1Wsv~PIvezf1x@E7w%&%%H&GdX+UUIv2PX^<`$O=7CNn5ca^}6idtd72
z#Blhz{9aWE@zY*SU85i`{}#%r?9AlvkOAQ)fYHE%-G;FF2?>D162L(NeK8)O@p2lJ
zgJ{Gi6m3DEGMB^*GAj_IFuFl^?T2W9j*Y696IjlzUR9c`i(eYTp2OAY;GvKbc1tEG
zoAIG?D?m7{g<315CrUH^aD3Z7l`cC!rF)HBpa0P7s>boqfboFDoy
z3km6?emyH8m1?Rd!(N)P{yM|qwiGP?HBdxe4wEb%2f!Dv$iL05isz&jRr`TRcy0G)
z_NEgiGgV(I_A1FC^pPhD*eBVK0B1g3Ew9)MR8OIzm_uR)ETG3Ygu|e-n=JSjs@iCM
z22}%jk5$?ao#E@86{ByyQ#l4c`SKfRzxJTxnK%jZmUZhXfA;}TwtMsdp!=h}x+5<@
zOlF1hHh-RP%8Jv$PbbsQz|Qv-;2%
zWU6+66c^xYAcy*=b(@but1rEK0?<3DD0pjk}w9GdL@lcuO5o}?o7X&<*R`4
zf0E@gC7EGKv}pS^l*Icz;;*shJ@$N~TrkUhQF%%E5$CxO{Va9*5*(e7U2P%lNZH?N
zNTvNV!TpKJx+&@+q4K@W=|T#7aaqk0Nt9WP{p6;LR(Oy8I4C7ahe84M9~@MHF%WKaifse0{f9oBi@Y#o^*SGpiX|dq5ZwkV!bfl^`WEQ=)=iHBPgdt*
zBP?=1C|2{=jXwk}18f%~$lF0Bc;uC7wL{qH-dY_eiAv4cuK}c}@jPR^a7XdSlCr&{
zk^pl}{F9rRHd;bDN9fvisiy%2D+A}IC1K{CtJFO6Y~NQb(>41{qM
z%nfn^-S`E}s^F3R`h};7=#qqUJ@GH1YB5%+DS$e|R;mWUU-ESAb<7NFqRhFe&St%%(2kd=c
zKwd#(jH`OF1o+QQldEX!5W1p3?FOxXLCE%wWNS&r_r9+4q|0(AaT!%iPkQHb&6EI^
zQt`XCap&37AxefslGUSNZL)yTLrfxrx$4rlB6~Tz*7g8oQ@%~ti7QUcs7rL0aMK;5
z-hQp&eOPX6fEpg!{{rSM3djmRpyi{N;gGCp=-mBk!|2R3S#jKcK#N9$Ug1*`&+W3{(;uJQOsS
zT-#P+f?v0F1PniKAh6+6g3yrnw{6OXtA>rBxl}j5%&jET_9BQ)Hy@J;r+*4s+m9d)
zIS3N}?~mqS?EjC;XO`_tJjOE7IVB#Z6GmtUdf!I7|HjFcA=kA*8#p0;xCa
zoW;cIN0J7oSMNnclasGNY#cvnVEZOP2#mwIF$AwWTzlOJn9WwlelZNKKb!%
znR;|?pI-G*(se={f-;tk`G3!F$6pRHaDNSGAh5l8mNTeV`n=Z~;vZj1$!5$VDiL=W
zoW>o5rD|(jTgB_+rqdJ-rs2&$qIK&P)V(@9&0JzM
z6^2D5QF32$Rbq=$pAG9b6od7QjbDq9fRZcP)J6xVe1IO@S>ePq+~9>Oy)Nb$mVp?P4#cq&ww;{khBt4NJ{t-XQGRL
zL_Xb6#ZQ`*owg4b2|3KZhH|%?Y11K0XzKS_bg4y5FnzS+U^dG%=q*LO&K=)Xm0#Ew
z4+Y#8rya$1UUKFc5G_-M9S%$tcF=fu^DrB_P9Of>M)5upGXNo<)T$TRXxh?;H@)ex
z9v+&xUNvL?s(u@ec)M4lKeMe;X_GAi7K{;CZSb2tsJ)`a18`8+f~bX@r_ck70HGgs
zYN42`-Q&_8ao1Jz*fUNE&?Gp{va5#|>JYU`^jXt}ld%kF$1=wA`U>|=tiBnSzb|;Y
z^i+S7)F&jB$JH)QJBK3a1&2Em9AfogJ={eqsV&+)@a^RwYGGIFbe4Yaa5(u1PQG}X
z0=i``D>q##KAU*MA)WnsXC^t@+g4AT;yUQ#p-2d9JygUG?9whIP^y_4ARdcytDqdY
z47s)h)Z#Sa$2i=F?MJhpD{**xMA6XP3EDxBH7PKTXUZgmxWAG55Z`#?cuFGRWt4kgh9_xx_&*a3a8yDMM74)T7`TW`+@p>w{~z6!nyPS5?iXh#~s2z8I{
z^x6*&`b?lX21f}(u;((lx(&Kla6-m0`FgPEHykzh4P@3lWxmIPY#0-wAS0y(nm`mA
z%k(C9NKJ30YcHE-jpf}~KZQ*FvQ2q#@G(z+Gn)8TAD#iPT{4jm^pI~gSQcP-0$cI
z|6+?N)L8Dm16`5m70FbXzQJNV4qzw!_FMe;88>|VU{$~o!Guqw0kpMWck1JZsyR#0
zL$qKD$<53p(8qUwZq>2`B|wKJ8s*MR!rY-`E=UGnmH+B5NS?8QC_YbDP+LwhQv)Ie
zn|$Lo=#HY;Ck1m76Av-{_9XaO1w5zyRZD%PT+az&3%3HCr$0i*O@jBR;4P4@0YU``
z$cz8q0eN!op%It%%h77ipC4J`tP^nv!P5K?IZtywfB8a~+*@T@JF1&j8xwO4fmbHc
zWfN+e2pnnD37);Ea^rWrqF6VYMfy%I{Ycf-8oyC$Q-GY0;1i$kn1F7RhJr}EpI2aHu>y7(OrT14+wJh@45yL`-gk1kg6_bn}~6zkH(sb6{+C`?L9Eu
z+8aOeCFx4ii+2O)7iFb((A5E15df*}vVl#TfNrSzpBxVreNo3csv}@Dv@W(xHUTgfxJtavcj|Oxx9Du=?;|O&#pK%Xcroe;95EDcV(HeBjxe)B3
z%52b}38#LuO~d&?Xmd0cv7MX8oBmxGW*=Bhw)gLQZY~M|85fSNuhT8u*o`k(z=^x}
zre}_)h3>;^!Efw%L9o2^U_GNy6)38~xry|^0)!MiN#p)diKTQX6j*yodX4Gw3k&^V
z4Z}$|70~MpbqA17M!8yGAnXUmZg*^zhFx&?tkeZs=NkZ38ZP3-%WRzuGBjwHyz{3L
zI{K1gA-oIAM%_kCG}i6BL2WtEU^uhtP4A(7HEt(3ttgYG7{xaN0k*w_8;_4R6paPu
z?QaP#{VWwBeKFHmFDCade1>||J(pU(gb6PV%R4`&mTGJC?HX^FutsnueYC(hKLsJ$
z^>gi7=Kky2lHG!Vf#tC3Z@4VP3;)9X61nX=#OXcJXOR3FV2P^sNa|AF&Mn;U>Kz#9
z&!qSB>s#)l`owoMs-UY(qky^&X`-us(-e4Hi$mn$O(2A5o#eeY=peP)iyGeV
zXupHH|F63@52tz!!$y}OQ)r1wL>6U=LWX2)mCQpZAtafnGL=$MhDtOTBAGHoGG0k8(=%NKSj
zxM&R!p&4VPA!Qj^^4_ZTJg=y`CvN>aZiR`P;cGmXEQt`Al-JR%;=fqFAP01z&wub7
zO8DdN1EiCSs(hldh7bd!;jXGFkVxXa;oHjk4K7hHceMXF5wp3_e&V+5Tna&@bG^uIrqF{@9E$6cz1<9bnc7p@1mg4y;HN+VfmdaXx5ZHfkHzsGwmE1hXcM%k*}
z>pZ>nTBgoPGMI)v*t_1DtiBYG`>nn={+he4Y`e%e?fw$IOOeqki4#w?d~1vj#`ND{
zXgCC$ipY2(^bR|A5y2axAl3s}1=KprB@?`jm
z@7(QGr#vaa?Pn0m)3~#dM2Zn|WoP9M$tj(*J5Om>we$(Ma
ztgR&vwMW(a`TcHQnSU5@7Czd%jgu;Wt-6CHN%p}{S2M$kA8{Nn7dc6ynidzT`MEu<*DTPE23c9YImDFq
ze&`@z&Pb0eK;@!oa~*gPqUF_H7eR%nszL)SjmCR2@+Vd=*85tVQ
zjGWKPwB377!tKr8uxaj=oku48=|nvrGE$jrkN=L8xMM0V2VP#-P&Q29V~>XFS{zWQ
z=`26_4OQ4r;5^+1#Wu3PoKym2jk+}XxeXko=Efh6aE98`1J?cNDZgE>N82J*8@uji
zseAp}x2zgwfKUhH$kt-qGbpnzlmGni(YrGMFNUIg=B+sm$%v}xmEz1DDf=9rE#ED|
z(L32Rvr|z023>87UtLhI-W59A&(PCPM)Rr;Jv>~9gOIY}B@8d*kkyc)!9Ziq_>o9l
zwS$Vye`G4(B!qGly)Cd0m1q@UqIDAS67UiYSO55S>M{IXbX_+;^v2o)3ls-$jU{-~
z<$!22FwLYSAX6hs_7dm{3E72mN|CytU(v=JH-8{}Iz~k@pUGGCa!*Pn|@l896avZI&07eEC5NUJv_?&(IyBv
zaIu$lQBDD&rg4{tMEV=Di77>W#R(d($nAexQ2e}Q`>J
zG1jL8u{pppMgn`-^+XlUZWQ+t_`UZH?H90Cgpff(Bfv&W61TWP_szqB*Pn2@sqFhW
z5b`A&8!!=lD2(+SH#t4veX|34g(L(zN
zWpsVN8HxJ9LI4vgTn~}8S5}4*kRDwl@}&()!QYwqNBdHy?LN0okz;E{I7aviwJ(vn
zUbddUl+csp)Wh%T<`V^C4+N|l#yPLDvYP$z6SQ@XVt7BSQ%dD72g5i~DhJ0X;BWV*
zBq`gA-*%aY&5U*biL;9oo9rQxj;fH=gHBg(HtX!5W3%05ykAn}xXxMumR#fo;QSNb
zC(Pl_fjScdMSC>m5{Y~I8S+3Ws_8?|D%!0^sYKv5)AU1j~1W{~1zXJt302zN`BjL|z-tVt!6egX5Nn
zVH#2{uxz56yaXyA8;`d<#zy0AO=zmS#J)SLIf{m4x*k)4?R4+2Xg>?=pD_TkRvxtX
z!%6&=MEuqHU67cK{q|UTMJWkM=ZWAw8wmce==>hVW|@crNuknWz3N=XW)F+Y!CsaP
zL9x#J)AUBkTeDSw9{wB!QS@TWMko?s@?6!h8;TBRagVyE*@?ICk(@25m&fTO_iJ7}V
z?EKOm9cH(sxL1B46!cq&tIk)PO*%>+9$`?4gysL6xPR4MP#3R!5}kc_doqAlKZ;;Ug-HakN!
zy6mqf94>f%zDDv+JEXKhTNe$0x?tw}$@4c;%_&zx`^6cP@3f
zkKUK49E^B0U@)X|c@q=Yoi#sL{olLPz;VVyEd2CHY@2!O(W8zs
zzh^qm|9L)q+mXPjB<6h#njpX*$X0g!wIoQZ5dUV8;v=b7dkv~<-m&dwwKO)~!KH3F
z?xw=VpxRSmKm42R_4y@LiXvHbQz@t+ydbqhKDwoO&fae=yW0&n?vjznEhy&GW~XP#
zz~i&hBEf@k=yqCw2grn?*VW@aS$l_N4zsYrb3WPK1vw;%)UkW|y3Z}kyp^IDenw4F0k
z_)({FJ|I8nWjuFtBNjX5uW_}(Y4PDX;v4UU7>KW%GS=>w+k98?*mFL`(fWPqD&8-G
zpEt3Suz!`w0*t~()G~+z{&MEvTkmhy;<;f^#8bja3*YCj%a7-Jj-9#?@WPqy`D68e
z_%JJ1V|4|Mx~`w~I8u?6yp+YPz0F0@)|r{I6!5Bl=X$mBJX^4Uu@==&*k=B
zg>-b__UjM53cCm8Jp${D_lm`-y
zBRAd?W9X+aZtxvZ|Ks44+s)s$5fnnE=-q>R3P|5|gOQ}>L?nZ`!bWpaEUwl3ysxwO
z^5y=04@;}wh{S9#@z^Y4T<1(%mv51ihWL
zxSeYj$1NEbMammS-IU3RPm(0lq)m#=QmmRhwz{G2QJa{KE<01cT8roPMC*LwaY>MI
z>EvkmVoqmD5DJ4~!uu#;i%z~_Rllz#z9X+Ec+k19>DJK#IaxvXhU2cHM!!I~XEg3L
zp#DV*PfOukh3`$unO1GuR4YZzB*HLV8FzRC4Zy1zC_^YmJ&U1q7fqo(BrAfuw0<=P
zd$XeYs=r5%ZpMt@PBtNlu`K&;ce%CnMis=fMXNaT?C%^ju-=@mY$I|cW}2A(mXAC<
zW_g46)%>U}S1kEi5-x{SWj)puyDZ>!n8~y8l?5eRxQ5viE1A
z>|;Y<~db$iDdF`&(yca;+CHHYh~_4gZF6$9Z?XMk
ziAvz_1B8h+kg1%wB)~%G4T=em1T*ar8RsE=s>DDn@x;NFsYSOn+6}T7$wPJ1yV<&V
zP0W^mrKz2NoYDU?L}IEdioMc)e)fij6(gKr3z2g>#w(ahLup01@eJ7m=S@Q5(r?>K
zOAQHZhKI1#-ZCd3r&O-Gz^i*c@uV&fC&R&H-@24%Dp_0U1Z=ELO5(2Vzlde
z1|os|>9x|C(yAf(88<-#A`>#w)(-{5w
zSFTPx8fRX&VllVVg{vx&dT+z{%!#{Q-@~H=jbjfU*c4+i8%9rt%;qh0T*xgNT<|tifsRl71xa*wu5ZhquSp4YrE;=|*QVbT
z2%LoNXH*@X&zS^FSBqi3a31+hN+t(!v4LERGi$+vQ
z-<{4Xro?uiNw>Og=#~<0Qgmp(FSVi&$DB`0s3r2SyyadRQ+irTV9{q+zTl_rT?}3N
z;X%c00HSL5zl=$kcwD^yVvE$J{TFX}J|LNL;hn~l3mBwHr}zu{1Zpi@j33OajC7KI
zGPWI);bjih!>v+KtShHL`nVYa_cC*4FoCKPQ{s8FHPgr$PVMI^KT<|oh?Xd}Ek1(Y
z-2~ojJl5!G5%g{P8^^v~Vv&v{AbK)i=f$(uN40A;
z6G}oTc8n0<+u%+vsJX}@ttcPD;K>lG6-27X^4_4^iDgJ%M=XQW7N!&>(ESfF*^EZJ
zjBtN(lwe??NIV*DR1Yg9-VP}vJdfkuJUp>}ABr-bnXFb<0BWw8y}pB)ko9=SOZure
zr@qQhgwSkP5>e_#In(_dF!r0TlX`C#v#b);I-0$zXr=$X3SAU2i{E>^N^!P^yL(xDlE;ly9O8cw)g0+?@9;ejS`L>G($tV;%
z6WpHc$ueWwUL7PUA99D`Q#PHb8sVUPOG@a}YL>TuQ6$uoc~gLN94DmLtXW=axTI37
zIGf7qPDc|h-C-u(6md4YcrebHdk=dtE&x(4h_!kna~Af!`)|jGN%gTU=X<>Etaa>t
zs{b+49)!}W^PfIM+k3HHa5y`ClGCGIC6#(-|HoT|mNUIfV^j?j&F1A}(}8xQ23ZKd
z1-p#{jrtOhh-T~ESoBYeXB5AiU7Lt~5x@Muo$14+we3bECpB71^Qu+rj(NGUu=TOB
z{&GRr;Xzm6%R3A`w{YJ&^rEP?MTUOOPSTJ7-l;Kbao^PBHItg1v=NhSyuK&HZsJ%m
z->MJy&)!#>n+iuu(vnBHk#zI|2UAdeWKc%Myn5g
zxyfRhl;VC=XO5ZJ>pk7-q;;=5cBl4~dzpxzbItnqE`Gg{3PW($6xR3%1tEpQX~6
z-a6{))Z-n~H~7VYdw*RtVNzC^dea4tqeDb=8g9pCX+hUdPY19!vLCrvQZB-q6hAAp
zr#t%DEdgA_DNb16jm%vP41C`otz%hyOuZ)Q%uSQ>wftYxO{MSR{)-11N{Ox3fU&33
zbnv{OW4F4dyzjNomfoawn$BwD6({@8oSzrkz9ko?Nj47)DWg`1Ta+zVqhM_up}QB4
znK;$myF(jTpH^Zp-&q!Fk-71v-v_VRTdPSrAWi2wh|B0pc67^bJ2O!Tnh#B0{zVt*
zjS=)3FT4a-&NH0hAhKv^CW~}#F`F!#(CM90FLEFYhls7H$V=|~PjlNd@q3X7zG(H-
zfA;wD!>z~u=b08aH};p_5mN^{Q+Dk&i&ELs^)%}7ko82px!qr~(+5SK9C4@H8~Y~H
zh_p`9X$$w1@kYzN5jTiy=>S0+z;Ec1!b$H=XY!y;Kea^`hQ}?3IvHo^!h8P*gIk)B
z6oX^xb2s02!r`clD+||ij|XJCF5+^W`_K0JI2gYHCl;tO2za^22Ie4#AUWY!6`zU0$j;emx>vso_L^%}{b$h|**!RuyR(E#2ZJ@HIuyp=p85UY
zm&tkG9!2d>;b%P@g!aHXQ@^b#;C4_Zev_=z4ZVe3$Uyvq1sL>SiLy2(t1Y9UPG_mR
z7f|L>a0&s}e2vdO#Pd$>(eOTKM`xKla7+GPAkE$6L`*
zURNBppC77-NdC?}kr1_Abuq9|@;WzlpM=P^
zbK*qUaLbYYW$)L0<)drH*75fU{rxKye@Fa9af>`I!Ox9P$@vVlS;uq!{Ma>nU9CZ7
zpgf3C)pz8_XGhKY%eW$YA7AGpHJ21lNmdaVZ{$jWQJou1Ueod!c_uV3O9Oc_$Zh(3
zTJ@=y!E)Rbzf&Zc7l|WxWKpYsqJQu*&^biIcF^>plnAg%nRw*9R$n@C`C34O>{)QFDIqQG0d&M2W%a^XGbU-L=}s^yP$~6w5lr@As`6
zG3#etiPF}h-g(`4jO4PL_uEgUp71Mb+1aj{{#kucLo!U3iPX#J8TRuVASZx@bOJs|
z^r)3*1Pr*5iZ-4532N(g6L(5z&w#K2cft%(rAccdf9vjIfj#)Td~9_e#^d|
z4ry{UZw&ZUg9#v8%MVr-Ov~@p=DZw#cl}V0SNGlE
zlg}~#T6_&{^2os8TsOaTiyU+IzSdH`wz4wjDxz|E5t3HD6S{Y+#ZWYi>8&w;8ZJCu`n35;%Rs(c
zg73G$6TTcM>k(CWNFM)&wxL&Fe|y%1yxcVEEL*$kkiSu!B>)7@_fg>J2Rtqokr9cU
zcYI8sqIrVE%EJvD)P;tcg$5k_Iq)>g@n6>zyeTho0lf}UgzN;?x7F(a~gYo7MssIJm;0Q7!Bv0UuI%;nI9g*G|GmK5^WzOwe^njLIP
zDUQ3w%6m;IuZp++&7kq&vv4*0tKGjfW^n$&+-w&Ax$cGD^QlhAh*BIGNuoCP^CxRe
zw^t6`8%XZRw@DTvGpyTlc4j1|MC}Edy3GT#SX}Y5xZ>duPH+5-AT-wfL4OdPr~>pe
z6@TF@kd_1|J*G;%yyM)kF2J~07y_A&V$X3Tw2(|)09U6YWxQ&6sW?D)oF*yX#-e1g
zB`qwxY1<3>3kMYW)XiYQW1EeF@vV
zgp#`g&|abrPoL=|AeGxPx*lu&%80HhRP7rmX!3iRvnj_DW}e=Q*nqDz&8tMmUO)bj
zcl@DzUx83z*)x6Noh^tZxF~%P;o8`nv)rg@&~&oI+F&+R2$;fP8dCqYbRsh=M1dQ%z}RR#^=KblOvLE8RL1q1ycA0SkyL?L}iz!_)^7e#1b=9W64yWOuPCU#cs9JtZ5am
z7ha-AqqNs#en(C6+_rN+CiZHcZ*;lr>F)H`QXY&Rz~z^xbcm4sj3m}`QiE%U^Rrgn
zv6<^e$~R#{p}Uf6>TTs6MQRuSdH`pEG6$sIomJ1HC$mk61OVL?$aKhj7jvmxhRb$g+x^;
z>fyj4TD>$s>iF(%ym_kZX7f)$5?T2VXFva14#p53lF>7!U_R4>2e$@0<+=t;{TdlL
za`5q`@Y(90m3i*nd{uQz<+ERLV67LBQUc~@05zd#Oq%mApHCwI=|u0tXn8iR_@5%T
z-c2s+E1mwLX<76;is`Pr-_!43&RHm}CfWCgcS%*dxG>uPm~xT}{-QM;Cv*8CU-bdg
z`kU;F$Yj~1Wa%-kN*rpvvtE96U-nMcG}L&xTc?+d%GShn5C#45E*=CaK0)-bG&jgt
z=ndsZ)bAmBt_00TFle9n(`$&Vx&Pm{%(;mwS)S8nk0M0}0!S%OiaJ6&|F8|G$m@MF
z@-a%U^c1yl5Bm*P6w-|=5K^L*EBP2e)8-rg0K_H|%&i)5T9(Is3b~XL*A8}Gd5KYt
zU@|(k|BO~F8vuViS`N0}dh?ygPl1(a2RL3q$l8bdp{#l)7b+NP>ru+7p9P2wj-*t-
zA5B_3J`=g4udrCpuKniT3v+E(79ZSQ`;LuNWZZRXG1DVR(WMr6(p#~1#=ILzMknZ>
zv)@tnFCq)Z=%8Te2U3gLO1!2&m4W=gO;u3K{z#%>>M=CWAfQI?&fJ71wRhKfe&Wo}y
z;lKlEbM!Dc)*ddJ0X(}H;nPD
zL{2cg{m+ZoHLX&SeD59K{bF4D9DQH|-$@bxEQ-xkk(iFp!l$tZC%qpd$(hpg1-7!|wu{n3vDf`~4lEAIo=cboGgHj-jqV_iEW^
z)|he7LLml9rt$sxwt4yVm**iUV@w8klPHieF;wwIhM%a(NV>4(PkC`+`Ok&2hwNP+
zKXUJ@0u;~6=e2<4yb
zNI4>%Cf%`>AWg`)mj=Fl70BP=ZEwYcOPW>va90iL3Gh1Ix;7r&IRzn
z!`N@2m;nJK`kkQZ0JW>mNp>D(aQlvrQiyi$#4!WO*I}@H!J^8Dh90Q-eoGgZYg^Ec
zTL4V{1*H`VgqEQL*mu7pfU~G?XA^G?uKiN{i>NaKMuy1A=K)}Za|vDvSoO*SadyCM
zcK3kg>V}~^H%lwWzw`j;ANO=4Jqq50&=9_(VWkTPowjT#uKH3ZFO6v6TFW8as-@?
zGJ)IyOcep@BcbSQ;4Rh|{p(Hu-wky=}f;fR=Pa*--41n4sZc4Tms*pf(2SBOON
zcCFQk#^TAeseAmnU1|Xk5IKZws+Fc{iR~saF$_$d=-rm()>vYDtKQYUbv5zPI-=cS
zmhv7Zy*cp=(}WURYKtH(wC*}03AS-^2bsr>C4=~Wcet#idb6bxTVjstjEEkS?8CaG
zfU;pE-n+hyoVSzjOvZfDu{l!Zys?>8JAnz)8zi1_ReZTi>e;cB
zH#!0&(kdd4%XN3XV1_a=WFrsa!x!uBt7idpAi44@ajclSV||Uf6M0p*+FrDcx`rWt
zw3+J&O;r~qtwelDLrfXxI{sv{0av9#kj78O7zP=we0&e_#3Pg0Y7fz{X7leh
zyrHzIfVB~cwUjIO7o#UH@}+iet2N?ffay=PqwKX%T}72__0ik*kwb?bpWFr)U%f2q
z-<@gZ!~9b$o2lv1n(o{f6Ty~VDe=E;`O0dX#gx^}qA(iEJCU8ybSpD35}pPBwbdT%
z46&G`7UE&X2k_+pfM7_bxBi#ST?rPbSF}>^N7vt1cQWD+B^F)45X&NJGWQ|$WO_QW
z3`0`*pigy8hx_@HQxAOEd`rb%|K^!!7NIhtcBo1IHv
z@n%X?I$G7fd+2DW^!f9k;j%$N+0JF!)MuG1OCCr)+8|2ux#O>!>@3N~LRsIjFm-$R
z^dj8+u7_-UgN(4xn{Y(b2eTp+HciYn=E{YvVa*vS@p)Ae`q8mNWMzce1ym+d;Y!x~B3So{0WlYo@t1dw$J1_)@Lt_*oSDl>3!&VM
z4cV==`libW=TJp;vST&xrfhcYq$l{8#6&7Rsf&`uerNJY`k?>cLyUag-s%Z8{3Snb
zs!Y0Q5xwH*vAj-uy_xjH+AMsHC@;P*?bVzaDl1Lh{yM{fJ(>HaxdjKlCYl~VT!GaY
zizy}n^?#Jr&L#sb@2RC|Q|qo@L0?8fS{;&Qhf>}p0W_)p
z8WQZ|n)KU*P&uyK&W1|4IWsf_MvAeeMT|&qJLOqrH|M&;&AP(*r^jCIZ)ezc4L;RI
za$H&9h*h8(&3{i&%F8#d)+ynj4H1%j9UTd~+-)blL(F81eVjws`3+blCM<5HDk0I?
zO=Xu{ZZ1|h@`SqU+;`R#ZTt%GaffEi0g{!8chu9PDg`AwY7l*jrQtJKi+fc46pnSX
zZ}AVVWaHf5VK+jDwKjfNZ;%RC#PJO*LNMN_bJA_CDBI30xdMzjR49T#GLa8jD>hbj
zzFAPvEK0pWmamoNO{Q?r%exc|S_AQ{EY`-vuTk|4y;};^;)@r)VD?
zH~95emN~kG91Kwn48STy-(ECi$a!nCYp$G2gTXKMMLe3c
z8@X?F<{zzMNx~2+(pF-4TO0=tI*rqKF4lp;bf$Y(@o^w#MA9(mvWuk=i18
zhn|o$K&I72(oB>w$_yegLGSN(^}eXfDxiX
za|+C?yZ>8Wk`Fh2Cyk5_r1G}$)s>HlqLZEx?aHv!6|t}yw=UeDg$D_x98Sgz0xv?h
zuKMn*hO!wf@Fjy^aOcF>_CU{*)Nf*T2C+8xPk+%0|L19vSSIE>N-yt6-&Ub5by~|k
z9lm2^0dom-!|XJjQcZOFJGV$_1^)Am6`0|i%Q)BOVwQAbO-bT>LFBrSm1hk-$0sTw
zbP0)HR~9o+2T}H5C(KW?K1G9`f~_RQM5Zf&%zR<=V88=iKV?-J=)hvAC03=&f;>ztEKJTW3hAcNTILca6&9f(
z73so<)E*UiWq;6X`0)6Sh4vxq+w0{x<>(*gTwxKvl6|F+i9&mizPy0-?ZVQoKcGaQ
z!++P#onN~6N7;Ko@!PM&sfp@A6`sa|;HGbr?>Z{mdfvJj)_qU)sBX#c3ZsAEF_V6J
zn1f?I%g(Fnm_{AVDvDmqt81K`YtES%239@!mM`QW&UN*{9iE7+sX20sR7ykm4ejm4;g&LQBrEh75vHWAP|A(=@0c|L1
zlGFjNU@2{rbMuTnttEN6EUB~Q%c7Rv;SO(!0Z6G3e;sgesM?#8Z&(14>U{W=0f(AA>~FBdwy~
z2dR$BWIypa^-NKiD*s>n`8Fbvq}P3gQ^eTV_*&vBjIr4T@Y;?~pK7l78SJ^tpa`aN
zR69rf`?tn8>9k=M;E%B1q(D7s>ScysfBqzcGNSMiX$gHg6oSd6rKKz(&p%d>meK4U
z&WZ$Hl9CaLt0!!X!<-!*9e?Z#T*mK>vrT>CD(`rlHeyO`c9PXEJ4JFj5Af*2>}-D^
z$fI>K3cYETatjKi6cjo-J1bD#{OaAR*?hESIhcFs@7!E`ytFH;q{jL4=dG=+QJ&Y+
z({n8`Tw)@5GX_UGe)S@8bpP-Ftnc}VKAl3|etw5?+K8E4AuZcGIu3sQ+LEcyYbQdx
zum+Qe*uOXI%KDdmeM#((6vbqDA_~2UZzFNj{6F1uVoyl2VHYo6gb$W+|9+Y0CshG~
z&xn6!tEq0==8C8~3XCWI{8_VlwJSWFN9oL+SFT@2Y3^xlZEe(myuP;a+tAQqv+r~0
z$C;>fzk{1hK0$COoQ%AYKRG#xk}-l_B`7FpCKwgpKTt5%-``I|L-Xv}GnSBhoif47
zV|`DQq@_;|w`BOPYPRj$$VMvm`}OM=nuqP&xpQh_qM)p719jiNeOYZIm0$mibvxSG
zr5TCt_8Afgp6&j$F5&ktC*O{>QST;MebW(FM
zh`fY@LERKlno(SA$|Q|CG>dNt;sEA-;&WhWKhi#B1qDZMkRx1COY!dAyGlDT_^=Pi
zf(i;{?WfnQxsFJPyqVvPs>hF&MMUm{3*qnwCF-s-(@vI_-2j9;Sq7Xt2bPj0hc_Hv
zvS)w0VNt-g(V<4w3iH?GrqDNkH8nHaz{S-A3IxB4o;~FU@G=av$c?;qEqc4_mP3aQ
zIXF1@`T3Q+`q^7m2D!V$z}8X<5*=!W@ypk*KUvQ^mFVc`Y)4O9rJF7#mFemG(%ygI
zY(*d*k%etBI_}{mB_;9k@yO}fo6M
zs=wgD7`cu{w41@?bj;N?$9*H3B4nG~hkSa7Y%V?)(QT`99>GU6)R{n$rMItduE;g^
zDT4!KTBnmssGRZ}`QQvDy_pwW>(^H!Zi;pL{rfi
z0z^(wx!+u0U;qC7`>w9t5)u#d)V88-%?BloElumztz%|p245Q!8=J3}mkjH>`g-G>
zHZd_VP>Fel#uRSLt!(OFIa{KnYtgIVnv?O=y
zT^1ga3L%z@sAL00wG`N`=1=K{`Mx1?n*?8l;_k{ru#AG%Ks9OifOX
z_{U(`$2VI+HX?L#mWE6|
z9xghrt&$JW{zEQBa3z6l*}~3mtZQp94mVNMjhJTN>2GYjyu3umiH%0EKL=#%-ueF1bv!DPgUoIlz=E0)s;+sMy9J~no4
ztV<5(3#3wKGOxAR_KC4jNsBvvv3&
zLWx*nqbHD~D>mzHMdk
zCxoi^>}Jl`GmMbaeof84^Yc2lcg;NX*sytX&9RqPFJETbx$_a!QM&~vKco+IRl3^R
z?@I}ar?u2;yb5_iVGL32LwtlR-M(#h`gHlU>*A^}kkVi>;`HtAJ*DmmD@+4ys=MMI
zWDZH8D%8=#QKPW+@wW@
zJ*RsKabvA9R6{>l9)qCmJ~jSheB64p9XV6n!!~98ASIA`JQTDEO^A^q*(xrsbH+kj
zr9%PIhhs)%+PpdW>(^uMf5B>!{@NO1+&ei2WV~1~PQ?z7oln3H(DeHCp!}uxF0#&H
zis$BipdUaF`F)Uh;lP_Q6{6+M!otGjq}P+gj@@UEp`d|!xi)N#!mGmP(Xv)y@rjA<
zc6L(;bbeocjr#((MqF~Tjj5?m!ti_B_DdJZfxp@+i~KP$T*uVQ=x;e%VrFKht6&qs
zBd1fQA}{av^6I)X&k)YrK#h)#BWl|S~MVXXziXxOM<;!J|iE*-0hs5htc;Fl%<6~mB2A>9{DyG@oY_ws+
zZ6!s4Vg~&#TLwl(-ti-oxCKVXuyFgcO;y3@RT+U`G?{wb-d=82-S*g>yjo?SAtS5%
z8Tt7?-7_`A%-2j+s@jm8qC-!E=%AR-g1#>!HaM7`@&dp3
zIXQ8(NKjBPJuI4uVr*iP!R%Gig%CCQ9yD)iYU-H;Ph4<8l{9%{)5|FVP*oLI_v#rqf(D29xB*Su{rrzLzcvkuhfBo|1nOG5M
z0H0c5Zt&Y#_*rKOc?nbGYmC?w>|8^*@#U~licFne;i1NR-OMnClQET9FpaRayj
ziD#Brq@(x$uhOTI@oIy5V9hKfjlAdwJmsfgT^u$`VCWbLX6znq_cN`6eG(
z2I&Bj98aXBrLj|J8Wm4;b@%AK^Zj(Qg_fg3?){8XtDnWwzkjQOz6x60AX(Mw06MU8
zNS|Mrh1ujn2YK;bocHZ@%s>Ly8O%r;8XA`v*DN8e8oFk4UvL#0+GnRysUQ?i=P
zsTrOp?5)qAe?|R$L}aAu>4~En8ZQY}6V!GxVY%MxyFv?V_yIu00_z$?|19*4a;t;@OE_0ON_M*%Qh8H
zyGOiulBB+W&QsE}f*siEnhNpRX@}CRQ|f8&nJC3M8$MJXWTKqwBsK0m`?c+YgO|m<
z`1iK=R^6+03xXdQw^m6>iLwv0p8EO`U)t;Ib$X>z{12O(YrA$HG&TLeBaj$>H`d9)
zC(bEoNXk+GqM4Zvz0k6z>#Us*E;o%GtWNwbVrHYxVoTotJ>4EpcV2nAbFLI+pMgQ-
zm-e2XBTw*Xt@}r?U$af|Z=A0<><_yVdxiZ`Myde)QJrGL7=3MR=^k-83v=^d8W$ai
zGVBAdoz1PS&yV*grh5OTZM?+JDapy_pt~3MSaf+sg|^LFT<*kYpkXa7EaXo)+$h5x
z%0gjbVPV~I5@xumcntZXuj~7_LsIW$-rJVSas`w0-h!GTgp9;hc6N5<7=FTGTT6wV
z^K4iAo>yogUkJ;Eh0=Fn`CPAGiNzBb?Ua4cnrz7)w6b!$^@`Pf;w0Iy=bTfJ2n?j{
z!-s1;a^e)qo($t&=xL;e2-A}Mys60(nXOmvIEw6CU6nlhlqoOpXvpK%Ub?8*Sb5m^
z>FHZ2FHrn7VqwSUwEN$c=Hb^{^YjIbq_Ligox67J!Zt}ryzT3&E-Es
zrzC09kT%=zz5Z?WEeFz7kS&UX*
zVC5KLIgQk;iHQk(G&^WCoRAouHt1RCiKN}W^|iHWiY6feKCqTVMMb5g3i3!H)IwBe
z!^4=Lon@k=hx4kb)xa!8vx)M#wIOetS0qbTk|kol-H%PA&)Xs6Fi*9!O+ojfv!-&D
z#YGtD>o;t`bd+}O;#S)5`O`o9!o&Cfc9dep(4kgYUhMP%r?&6
z#K)JIn3%Aw$|5}@gP8*F9*V^7g)EO&?xDf&-=m|WPy72T5>rA2-(G2?7^Jjew*GjJ
zHgo(cv~+aPX`@$ISy)Eir@e-|aR;2}+MTanzTBt~5vrx5GYP&YxQ6L%Uh{Es+CAJvN@+_GpeMzZ78e%-F3GJF-kx7nGzm~reO(=yT3%K43AA{x>bFQr
zy2DR~X&-U@dd+C!K26OXHq{Ggj~x-mO^Or5`3-#Y7YWICNh+>CBrGZj%WGhOg+e$j
zckkXsLE^iQ8|CUiYDhGl1>rEa5(i02W*n86aq`=?<-jI{bO;Lz---Vf_Ab-d$Vgxj
z-U0VFhe97)$CVd$nfx)D3SasE-$LOK=JrqOD!&ecP{@8KR-Y0
zfxEj-9)n|aErFR-OnVI(Hob0KrQg8JxJgk4WKI(k6WgsSdnUJnUdQgxp;&;NU}g7Z
zzJ2@lY?99&mlZ-I*g
zJiTBL$903Pv1-!l!hr;M5MG6wu5JSc4`X{AFsVGbNo1k{{5(jdQmw6%E?wFSLtjWp
zh>?vaeM4+w;uFUvet5tH`xP#JpzN++zy7nk>?cB0o^#GyL_|>CI)^G)c%XcUMtrJS
z#^qTF)0(ZWp#ezA`+mmb_^^wI2S1tod2rCILltY@fg59Xb~ZR9WE~e5lJ%<6(uL*a
z8}T-)545Lk8LSFXH)hnH;%ejZp-xD|^aq8`_DGUfp(3?}fSKBrFI<{=2V
zFgV@i{V>P?7%&Gny@p0eS=k>L75p3=sYasdb&UxMx1*zvRQUlBHalVK>N*PV3lTH}
zg*p7m@%V8rE-vV~x%v718XCjr1xU>goDihk(?W1qBcK6Um6VhWArof$H6L$pPU>Sw
zR9Ec8#0kp2SdzS2B=Rv{_?nYpxJ;>2Qd
zs!j%B3w=?xWMm8jfX1m7oKqJz4om>$(eY?-g>nLx!Oa^tnyb&9ebRwKZzUBKtDjpz
z=Dbn*SnwC#x!KwD^z@g7Wf*x<7(;n(~4G)p+zc+1qE7MScE!bnNwLe}6_<
zTSJ3xm#LK%-^Pv3ahEbO`my(;%ThE?_pPV^f1ow);)nqf3#OVWc$540?UQ|3C4n=E
zHqPOfFP{dk1{MIMlHd%yb?X)khV@)r#h#ze|N8opU>UQp=)%YGA}|pM@ALu^RjEXv
zPaYK&Ri65(>heK!$BukxAh`MK*R4B;<_~aCi4Z{@m@@+d1K~*V@+N@Ccy?}%;MfA?
zc-WfFk>TOIfT1Gb6cQ3*eG4%d_|k}2U{w`1X?>VNlV^mdw3*&RV`ETf{QW^W<^s8c
zPj~a?&5Vo;W11fD4uMZFQ4Juz0ibOW<4Z_L=#Wd#-XW6e!fnPR(s<}NQ|kV-?1vAd
zW4RIO+rE8!dxYCV4l3mZ_QJQjM92b%4hzxs8~R;m3{*WG@-8+0mo8pJV5)cwb}C2}
zV*94SMc4KF#tkwhI4n%l!s1Tpf!ss7mprMLvDwbu864DX)w?*i<4dF1dcnqf;8b?=
z_pc~jgbr^xVuV019zBX!1XZDYd)JnAEH7c-`Y7aDRUP7qx+`rLTKWr9y!92*o6U>p
zxUGnY2;~LVEzkX-V=%}#kJsG*=c99XLw$X^a|YpX^*#y<3+r>tI+W90;=00jcF*Iu
zpI@o$f)cPNmi)U&ahul1(2$B5pgkc)2*MT=oB$3-|JQn0eh{)ej|PD7(>Jf*VU0lN
zJ@=pRKGEZcOg&?8X?uoo1&X3^*j+4pdV3+)4~#^iaEg6Dzzqjbd`Ix*$jIL_Gi?mp
zxUNELtl^bk0e$j3Nz5^Qfc+;xewBao8({p)@#w?fPD_K&nOiaj@w2Eo|AdU;6nq(-
zRtDYLPKUS6?*3pcO0U`m!0wLRBd{ICRJ3IzB-}vdTKNpy+H!9X0x&9Y1tdQiKv|kU
zdezrw-A#nghm*x{r7d+>m!C*Q5OHYXkq$y|=vz7m?-q7cp9~F2N)ZNQ;Gttgr;P&#
z0PC%uz1QB|$0I5rpzax@KX&bPN{Yafqs~zlx$Ul-2@Rs+2CtV#HK3dgB6fS+ZX>)YX-H^-MD5P6s1NQBNd3+?(375iKd}a&lo@a`t~qw>7($zXoXtT6kFp2I-7Q_HO4C0xQpqt6
zWM0>kv!`&??oT@)$^{pZ$^=&ujB?MUcEK{5|AL)4lk)%;V2=S0?lxmK;l@L9AAs>i
zgv2uPLGP`ani^X>1l5sif%#p${PwNhSOO12cX#)xv91}MiLxj?T%|vEAB2*A&3{%x
zUj8>hJ$Ujfu8QNh-tmB9YYtNJA!6;@Yo9%{MX(=af}eKE$beogD>10kORFqzBLeDN
z)acu{H>_U|$6afcEu8(nX$_SYE={X4^E)oC1(ive0{#93>aNq$3I+~q*k&TISA=74
zZf@SPlyMw`O!qG>5%vZ}V7K=EQ(woeW+xkVz%nWK{8SB_>>tSBQv_V4q)tGmfmrz(
zY=OOg>?BD}Sgk1snb)i#SlEyoK}o?R;^TeqTB0jG6blQ2(10y>EG8y~$`nGS^e%~H
zoCKL;Ta9s+t-o{mxKnPit#7}OzMuQ&`?j;{t0kSA1L2qAA~Ys9U$V<-Il
zA|oPHKuHF69ApWWKy8HZXzdl_>BsA%#aa@*
z%9cEBe88a*(dU1G%E!ZFBu{P;0e
zUgulFzJ8sAO$DC9ySoaJtEhbL!gq4_g{1&a2jP7X$J{Zrr+-97
zNW*gep!j*jicDNjAcN%MG6H*Zd^ek=rKPi%vz6{Cow2Tf@h)TuS$U(PqB0IzrZ2jh
zb!N-O-@7N6E#P)qX67%5^`dUw^5GnB&+Ufk3)Mdd7Dpz^hXf57bSEkn!_97y{eVMS?qC^Z?hzqCZMj41yVk(mU$tZbxE`#lo
znF0$mBZy$=-pFtPmn3{8grW3Rth{k+BG61YXTTR{m1)yc<9nuoClLqenl(F@h@wYXsbtxrcH%IXN@@V+g$h|G(>o9yWyVdf;Gf5f(;e
z(@s&*y4KbySZYcuA)t`xCim?JOg1oY1KJu)t~lHnNBH#gW!P|lrt9*~0Tdd5
z#0i84=OH3Id^Ibp&xsRS1_rSnG-DqN(@dr1@8K}RZ+v*9V)7qDs1-Ar|MPPhZCf@W
z69*ACG%x@Yz2Auw<-l4aaOpERh~lPaY{4W83LA+eJOo61bafqc!N^slwp&!Y#v$b&
zdW+A@xWL=&-LVgM@$olnoeMcZo5iaPJBacE6+@Y2%kZ3rOOR$glaT%;(|>Bf*)qKj
z4iy}u(Q_NB%F8i*o`K}}_|AMAwI@d*5=dr3Dn|B$qNyrRZ=~$xxBaz(ue-bd!cseP
z^VIbE7CJQ?d?K__ZtxaVnBn2!GuFoD=5x5m#JE_Ve8#1{un^E&hZWIIIA&*864AoA
zg!BxLuu$W^nTd&J_anI6ene<;LicTgRdFSm?*D?x^g(kC%d(Gy-?BcQVa8(pz$u!|Ke0(iA04qm$c
z{{DyyC`123S;8wM*h}FgA*&Vo_$BOODX{-TF<-lO4GRttTO4|yhD#R44+{usSFheF
zv9N`Z)_<;OoeVEuUp9yd8(Z6I^xjbP8M;Bfhd6y#lm7hE-rim|wY!K_-~xt6N8~|D
zlNG)9SNgU>&;Idv1D3shgeWU2D)1Eu)cl&BMuAv#RFuhL7%NG51+*Y5(|fTQ01DDb
z?L8R+R3Kmi-T8m~sT>B7gKQCM?tE~W!eM%4KuC)7CK9mq$H%@qYjj2EiHt

diff --git a/previews/PR259/assets/hbovccs.Ooo070yi.png b/previews/PR259/assets/hbovccs.Ooo070yi.png
new file mode 100644
index 0000000000000000000000000000000000000000..273d82fc781bc8dca157bdfc12ffbf01c7649d28
GIT binary patch
literal 204956
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
bd+rk|uN(P1;~=#BA5BCBr35PYbbS8@l_Jf?

literal 0
HcmV?d00001

diff --git a/previews/PR259/assets/hemmjkf.DxSgu1w0.png b/previews/PR259/assets/hemmjkf.DxSgu1w0.png
deleted file mode 100644
index 727caafdd0ba6e4e872426924e65d623f910e2de..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 64245
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

diff --git a/previews/PR259/assets/hkdryle.Bv9yzSwF.png b/previews/PR259/assets/hkdryle.Bv9yzSwF.png
deleted file mode 100644
index 115de8d9f80cd69666452a422675791c78f6e118..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 65239
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 diff --git a/previews/PR259/assets/ifidzel.CuQ6xaOg.png b/previews/PR259/assets/ifidzel.CuQ6xaOg.png new file mode 100644 index 0000000000000000000000000000000000000000..b943d3b00b5e1b82be3d5995ed0ad82a724a16c7 GIT binary patch literal 75452 zcmdqJ1yt4R);_uv5fo5BBt$7e1f;v!2vPz9f;379NVjx|h@^mYNej~5hzN*ucXxN! zor`_W{?0kyIp6*6e~dfE9hdEJFO~IMZ_PQM`8?0d$7eEPSl91dM<5Vb65=BA2*j0K z1Omkq{WAQGz)h_z_}^7+DKQbmIr6_RRcRpz1Q|j?Tv7X`Y(&@hrmE1uXE*IxmV6}@ z&E;<+Gl|&Vmh@EQxlMBns_!1%MTe$k?%kPBfo`1f=x$cgA@rq2C92+?W_`Zi%gfCvWp}!YGzj%e6fQ^3X z;uQtnW%7#`LY~58S1w+8Kl}gB!=66je2MUS$iqVq3Y~h_0XrOsR`e=enFGWlEz0~ zL!;F~-NB)}vr0(B$i&3N(D0+bzrU|9Yk9bMCrUquw($QeOAQmc*d+5>W=tJx3`AOj zVN@R0%fCL1i5$6!ZsM;F*shX26iMxi`2W}`_^oS=f*4I*iYPsNW@S||PHP^{J;fkX zd}s9HSPO|iCi5Jd*ys#E6ByAbEK%x~xm(G?dKNlZXT@?v*iV3*y^wevRTB2zUXO#7 z=Ez1P&@*@=jV zh%>w9aOsLLy4kmCXVC>S`SB&jp6uNK&E($#gJmX!C7S~2A&@c&^9QRhXc~N#Kk)wXS_R~3c(Wy?flKP;rHtaY2(%L!w z^4OQ>=#Y)vx%`trY{Bb09aQj1LYxxP(xasoI{o((ACmCBH6P5^qf^TKM7bDVb28ie zLd&^Rlz^yrvgT|zr)12*sKJj2-SgEYXtqfn57kH zr5T8w`*{~d6%B%iDedc!7RU1wLk;`b7uQMdMv@#iE?^%?i@{jgF*0(p z+piTrPIR=t?s~jhVrQg)y@ZWUUMWoyG1IcP%+v9mX-KipZ08+u<$aOR@de_%PEHCs z=A-E7BW5fksz9j>&6Gp6-8<5YpZFM>rnkay^_y|KVmwA^lC|n0bo?EWagNP#;=^;? zx=MAtB*UYrH0m%K%y|BpcV<#zzNWPKaFWY(p(BBq({!Z9^*p_O$&OIz`SXKQmx@sV z`>mOZwescUB8gL%^W~fx84*_fww3;zc$baS{qdZfoOlisRa@J=v(sZO*VEnnd=@!8 zv>SK1bQ=7K%_@Ul5ms5Q4i&-a>C~#q&)>|+kpFj17X~(ItBO&~IrpznV>o$_Bm_ZxH$Kcw1BT>QSs`9OPwkPH@ z*KE_cE!c3nlh&`4ZyY+cwzevLV<#uCg>0PI+u!e-7!ea=oHs#X#pIXx5MtzRV@g^Y z@u(Ex@}8_)%~|`Ipvzv(x(m1J@pj%VG)mk4W*j+FQ&R~E2?qxUMa5pbUUjFd7SR=&omH%=}o#6iSef^`ev1z4H7w1wiT=_EZz%@u7}M!f&34A zrX*0U=2}#Wja8Twp9EMPMy|Necw8g*tV$+yX-1h=!p}-nqDb@~!=Yu)!|xuEx+nXz zb)8BLyCx`%T{eNf|Y zTE0`vB{O7{2`hdhd~4x+NOYae-=*Z}yS`veexoWyVt#)9JG7g)o!&V2J<#-2s;7MD zcBZ>irK9=mE#n28tB;nx*^SxHLomM3w4a60?=3p3Fdix0^yeHaJ(%)cFPo1eJzWrk z^UyAMeiFy;C~&+|Fdy&gQtN>#!UkukrKRPjz`@J;wpao!r%n2j5n&PMqaE_Z;Naj7 zBo5-;g)1v7!=@EkS~V_MSXj+r^uu{NjlAoXtgl-l&`91+Ty|EQXu(EL;Phs(3em0! zQvK+ieP?@mlvBE#Yw(SB`;OxS4qEm%-$%Y)vXW3ZY1K=t5Vs_-yGNXHujt;a6z}hF z+`7nHPp${3``*8)^BC5GEV2D2htH+m7ItFVs7m?o4|Y1{SF_Yg+G2TMC@NBvZ#EFW zYdk;duURtOsE0vs)S~Ua+aGgWZ+F=%h-B60U}ry_Qux-Zt3sgi{Dg9tef=4r@Lymo7Mxy&b~0|m!+o7ts_d8`*;J#XI| zEqgctVd;7}8y+4Sdb+H2E=a(joYnf+hKR?j1hR0%gIFt7?S6_e?=Cbo({%y_h`%-!tym}}H2NiKu$7>bw zu4ji6q&G?U1_lPiMW|E$80Fs|*&ZH0D^5z%f%Bw~D+g#vO0Pinx<9T z9QCp-*tGR>q3pjeT*M4(2&DSZ%7fu?nO-nHd5w# ze&&vXHfGsO->>PoI*_NcJB(4QjPBV%{EIz)@#YmrPShU^%2L4s94krmdz|Z^`54L? zsCu)hdvgfBYEN(GksHYnQVqm9MJb5Kif5J$N5d%Ho-ye?lm8sKyg{e`HS$yFTXIt} zzraAjed+mKAp?%+)xGZXwsQFBxB*#+0dvchc)TArO6MZ+3D%_v!O2nNcfL_ z)8$ld{ib`=9B`N0a&Kj@WW-YH_3OEt+}tPFrEOS0;_wZ&Ih{mBe&#wY^%87^5-PbY&3c0UmB9k@$sZ7IESO0dO9A(I zU54ASsb!sYZ+FJYZd|3pguDH^ zEp=Voz?5)kRQ>PSMvifXni07gZK37xZOTBY^;@vH4(`-xdh=M)+^Y(hk6q)qt)0R) z)fR6MGP!xiIt;<;wY)539&kL+^yHT`+j1&xcM&j7YS`D6|Op#As5FEH|m9~ z$?$P-m+j9_O0b7tDk8Y|l6V;$H;)nw^Tx~Nn5dK5Gd$>A*e9QE*O4Tl2~+TxjJz>0 z=s=l-w9RNhOixd*R$@9@Ze!%=IKPzn@#DvW*R2k#Mg5XeQmwBGGBUm?WtD&7|87^y z?}@#q+rCMRUST8}xm_QjeWgMnmsh8;GWjiC@}2MnhG2dpHqkDOLZRpx3ki}J%P($P z7C$0yrQxzfJ!bQ|<+pklR;vxAndzp?FNc>WqT_EXKLi#>bK8phu(M9CEVu4NWM*bU zN%;Nyx8Uib?BU@dHUIGs48~viE%_^+*KRQw5Sx}9!}+32Opyv-s^~@2)7NioZ0zsv zZ)RagX1V$RK;HAbF;{B>9Og&uX@0EbvA4L?l&o$4`0+XMb9D5r)U3Q4@n%cgS)oz4 z%|wsgendyGFP7Z09!|24!C&_mrx-5}#E=PtG zL$FJbk4e$5c*xRgl9Cmc^XE@768o9Ow0H(OI$}114kS*Ei5VFhx?`*}_4A`l z8uR`c0*+tFEn*o$=c%Fg@$HTyL~rDWT&2&jM}Qb zdi6?8E!stGqM%(sN<>!RP}jz0SIw+SQBCdmXgLSXm&hxU-KZ~^N@@pHE@7UTKlhjM z*H?sI4!Sm@=E?uil{a&zpYMzMKo4;d(DPk^;!QkqjKL~U4ECgb==|2CH*S# zT-nQ!PvBw8RhbBt0jGK$MxAdr*7vY&7LkThPBCMbvnN z-Re+pPY)&fk3$WOLs&S1+qV_}4ypBie@<6OTN)1|6P4pI9T681Jn9VeIKKk;&!K9} z<@88TFSb%XV0e{*k+DSi(F=78(f(;08yg6%Er%-GiqrDt>|35~v$)9A^!)jZZN>8P za!5$XF?0~E?EUJNO;q!nwhrzWNHAXQits_$#&u8kzIRxpm=qKZ#!^*fG%K7QFHkJ& zl+rVlw@Oc>d3U5<)x2lll+d{%7WdLF>Xz6o<}_X@Mo4<(m))_2FI|3B@|{`;ot+#P z-Jf;Q< z8V|>F-X)&j;kKU{sk~UJ{qXLV;frbJkP;&aDWQE~GSA$Ubjwwq(}Yibj^QcVTvplv z+{}#}mI<^RzlxUOAPC0k=rqo&MgcR53ke#dFkJ0JE)c#IlawCE<4A6~UU4rRd^ zIxh9YXuAyU`#5=WhN-2s`dRC!%2HZVudAt8wMdC2Ny62qgWvQA4V9&RqUG=oZARwz zi1_GRPp;Wg$Is!(Q{(uacO$F!1ltBP&X3R;ZWokJU?PtUGamJu^^tA|-9xWnsmCg6 zz)G3iX0MUW(4Z^xO<4++jOJCwHW*ws8kDNQXMRl=&(k#Z>sD9JtoDzWz8CCCDK_#s zhs&IX?i|Qg+tas+sXX>mT|^eXSX_OOn21k_ur+~%V!h?+Rq4>(%dP7nBlW=*5#C&C zVN~~Dn9pp|OcTj4^f~rLE$y6Kz(OaMtSOAb62MZp1~mTqi2=3SI2(rp}fZ=s83U`PvfQ!;8PgE zMsY+krf#MmgwQ9&GBl*3ghl3(rBnpQ7HoeI*NHCbJXUKfI2w4iRhqmc%U<(>vE%a% zXX6EWjSg;(Lf-c~i++QzjpvcW*{CDO7Cxx;xlrpe+{P~?n3oIOk z8#L1gY-z}lw8C5=LcYNT9XJ?4>f&TEvPvexHcKaCai1LdtxRZjn+jAz0vA!EDB#H9 z5{J?bq^aJu_i(;bxBs`fA85kdTOO{)0cj!f(;VMwEA&Z8_pwD^%fbpWam%BeC29Gt zQ8a0+m<|1ryomZn%tY+4D_|?-r}>;`kjMT0sb8$r0S~nQtj>rwV2OYDt*9gkPAD|6 zs(;RF6~XV*m1$w7o*Q_=@Vwrk%(jZ;hT@@tzB@#<o)PskWFwSRk?3ZKvbK@#DIA}MPFCAY%JwKEWQ{Cap-G< zapb#&JYgHDI`Ur_exsmJ5@(|JV=2FPfZx~kf|Pi#6aP5c?yva2(}D3k?+;R95*-)Q ze+0#Y18vCQr@)7T7{bu+E7MT_A;I_6ZXP*Se2%2FW$QeQLoxK>YA%*a2snJ83qO`kP+lXZ;Rq{S8}OA zhN)kWy}iXZmAuy|AcJKOf29f5{DM04IZC!HN_O@%uy;8B5fQRklqG66_ek(Z4r+%3 z0-pnbudCaxsN=1+u-mM? zJ0{GfKl(^rTfG?`LOvO7Rt-(2G>|LM&9ktwqG8>!h9>dG9Z#*O_zw8$>A|~wyBDY{ zQ$c$pqi>DVuT(gAdDR4Q(XT*>6c>q%jKud%8P?jo{0Gd>{T{j_X9FJne|y{JUyB0fl1u66hn6xyDJO;_zu2nh9?S+uM_bj=@qHBj)Ye31?KIJ_pE z?P8^>-mjuvCt~oCE%TAJx(;j>bL00oIC>5ZKi*@w?pKT(Mm-TZJ=z6M;On5V0CZl^ z`%y}$=Ib_zkvbPz&A0jaVJ7ju-*AJIM*j9)B#jFpap)Us-VOz2UjdH7*-ukhpWdh= zPis!sN!HPJRF?&$7>x$6ex^BP9b!P0rPy(fYh`J14nE%b1qJ6oA4^ACPUWXZMMaID zuG!^O?WyYMOe0wxms5w3YoxoAD;o-z;lrvPLXW5%Lr*uPgdM9P^hU^ZfL8Ig6im(# zEhv@XN~71$sDor?kNdK@ysaOTJ`!Gl*adu`e(Zr3`DifnD`>edYq>j3wqL)ys|%k| z6QKS$5ZJBJoCNszXHx__ar`CAE@%4RH%sL5E*$D z6%}>$y95Mw&GaP)r)NldEh$hSBRgA0Qt}Q^M<_S>uq*$t*k2okWxJnva&pq0ty^F` zm>(8~Uoq-Zhs9~le^!e|>a^1-Hak0uS*NR~r{TC-1ih3-js?H@#P_A%Zyz5rGOqWq z3!iTWx)zp{XjylP0uja4%(+$yJKhhpuPt{e842K> zrVe9BDI_&CM&V(+JUo7;uwP`@Tuuk(ii)9~{+=b~=T{D(2U2v!Snkgew9>P(+RoOf zuw5OR-99WQab2(4mx-lg!Q5U*3jCcvQk4JotGD-6Ou~+V0WQ;#(vWKC(=w8iMRG<8 z^aEWsWL=NC(_>3VO}$=ui)*1$4~%816v#+Z!Jfc*y%tskO9jV9gzeRjD~gI0amBg0 zpS-yOhRbc1BWrHo6g*+V@rS*KP=zju9=mm2z37-n5C$xuof%@*cHvq3mN1w%&`p(YDgeSkptQZab)_pA7^K zDIA;JS9Rq9HD|EjBX6huL3Waok*NkIC;XAh*1>cj?38?W;XEXPFf~)|UB0N))15TI z(MtPmMwd6akAZv=S>Hhiz)Cz8A&H3rNLi+}ApoUQm`75g> z9?AqbH1h9rrp1rM*)G2Om>d%D5Ddw=tO;@7WVOU7NIr%SPj zIVyoruC-E9ROH|Kbzfu$$W8~KN9VV)zGY-Yaa%pWK}tQ}UgVrjyt|oQvBpEO^_EZY z{II=!7PE?&f#^MxIaErv%!erBXu#@P0U_EqxviKdm#sl(uMW)b>et1;2+cLfjSns-B{ioefBaDkZR_sY@wy<4n_9Hh#|b4j{qJ4?AD_n`Zoq_58JlAS zoR35aG%9i*L|nXP!`!DuG%Q1KDA#;Pa|>O=>$CiNTrG4o{A%&7S`dLk%9zpuqQj+vPp@FVf1Qy zRUEy_rRI|oK9Eo(iu&SfAi0CB z2AjK$u@2J4OoV9T;y-_QVhhJQO*zPo2%(Sq-NxO?Bga8i-Sb}429mhnwBxx7W58e-A5&9V8RK1T zWFmih(3vErrm8wMHB~OaZqV_?iu)XBbYMnGZI=5oGBPGECp(axEXumlqI|$UfB7ZXbL& z=7mPVyE}QP=;;1ffDk&tCmPeQ?4}O^q@xba9MK0?i1Td)b=gw>6DqBv)}qm!Q9Wv% z%A{uW#6ln@eP^dl?i1V@tzS$@OqIoPX~D4@NCYkCxC}So4#r8V12|A?F%t;Dq-y! z-b&j5Gb7E|_4Ed4eRSLJNC)j)rtf%Q52&v9sP|nAy_C2Wh*-4({*zab5X(&yk}rc* znYv3&O=6<<#CLc7ugD@-y)_T)U7XLbs}6q4 zBd1{LFXc)$koJ<=V!{6Jz!3V1*`rqY7rrftiGk{u?o(L?`}oDA4|Sh*I&CQnv>GmQ zcK7J#B547k9P8cQ7f5JAnFtctE>aaGqV3OIRCgsOY(Q4;o*wIijmhplG{(pLR&9I* zpwN8&{MmS{vMe?A0XzFHFpmT_Dl)0dhcH55vfEBud=inMeRXvelqw+JFbEisx=uQA zqn1G}|5ZoQN3X;eGNFa}pH+!_a(*w*MNOuE38U}5gFGI!ZUp%oY^EMz;K02t$Kus&9mX8NdeWTaBJ374WA z%D1byBQrDe(cC&V2pl$KuhUPaH5iQ+J$kx#3SYNIp`hJR_kMwiik#pHmKu9a zp!d@}6mFx`&Q(N=-(=!W-YfaBy_xfzse^%ypE)nsMSB{(klnyJ?>8&shor2z`oL0Z z2_6r&r^?35h(O(wNwb1UXv8bx&9=Lq6;v~$v~M5nrj!o@Yd_`7_#hGbB7G3NYNx@& z1!Csjq0{REm39q5Pl21jt|yV8S1?c~Nj-gv1l%7DHmB+xu4B>C)Az1p#_&7ZGCi@i zwniR3cOf#U-Q%3vuxUp`aSluA{EmAk-@Rl*V`HU7%&HGxD<~*zOe8%1;BwfkWqWM& z{>I2-^n`ECyNNP7yqCD>+8pFS#;~@%lzs`6(&vhg?A6aw?}@~Q$3Con3=QP)O*~wq zsgMTr06rucAJEX6hd`LGg)wTyg@+>r9>7&q1(K|Sdqg0Nuj%nk{vB9FtMju{JHWbA^}daMM9|vBk5<@$q$)4>`4Y<2%9E|; z+Ns0s`StM{K?a63;L>lBI8A+|R?1Y~L;_{#(8lxin)ip|&N5w2rb*49@lH*B4VVQU zS~6;S4nZ>xKB~RFJ@|d!arB7r2{hf-uh4|irT#s29mtrN^$!jR8V~2Fzd0aAh}toL zE>il2)KQR_0N~Sy;^N}f;S#&p1DwvEA8$bp>U~w`6}$7kU&C$`+z+PJhjUw7TfKlp zHLFwwO$!DA*oID|ZU}k~8n?B#_ty<03;9qLb7E3biOKNZca)oz;Dq6Y7B5dnY$M&U zJCz;)5NNwcq#6wU-*T!YMHs7gf=5knhF$a6XdpK8BNf!FF@Ij;S6soj)A3kOPY*~4 zK_erhclWzN#sMgpo1UIta#c8$Am_`G#!i+L#fE=8hIIFcDQ6wijSqDbGACn0cDE#U zZ`GxaC^xDG`>momM6}NvnVJ@>W?j3cKmLsq)4->u>?yFmYg5@eb+-uHVwmJ}d4Zz^ z-;*EKW3m6q+US|5xp%E&c^8mcrdG|^^rm-W1hRU^@+aI3Sj&LM`i;V|`MUun<1;TGTw9V@0qq&&kpiim^Q)5f6P0h7$dH;%u2>D!c znz`H2yi+VR@cy4fiZp!Cl%19+Yu5_7Ugyir7v5)5=YrIA9UHv@Rp65F*K0vS-cnD< zMI=f!@f>LSy815=c7LN6P&NIf$wM~DS9dNe8e`Li`-V0LG7EB2`{Az0fFmtgh63MJ z2M9SK&bmenbh)lg`bB$QFonot>R(W`9iUG1Q1&}9fC8qN*R=+1&+`i($Y)!6?e`)A zCiySzt`o7A8u%fts9zk(u!SGW^DbQ$+sDSK+j81cd{Tm9UYjSZJwNbYgk`!de|oGV zbGm$p00$)nQ0BhC4O(4Kzx9!wco6AH^W=v5FDmaZrDanW<8)ichq?To8;Rau#HCC8 z^9m(P0;yiQP!79XvX1=z{`_zlP>Yg)O>lh>b+T4-J)zS$Bl1!Ak&mM0i21&oh+Ruq z(EG1+<>;66e9bS1&cPMRmISwO^qcc_XRZhE3Fz_FU3;Ze-<{9jyK^bQ0-6Yw`hBP(S3H?S;FNRrh8u_sMjy(MYx8-vlc(E1}xjkzb%uh5y?Hojn>LTwq2{wXG6-Z*v z|IQ5p^`BZwesvFN*&;`U*~yrr36t<*UydR6^6hH$Dvr_L%}W4&y*K`iOOECjntMkB z9ctxYtc(rpt}k{I6|`PZ+TXz_g00Oa3f2cfyp>XS>kiEFz~}@$#>FcF3 zmk{-uCN)Xp=NT{K-&o9C+cU%*Z|rD*Cw-ZRGiShUQT5e1BQF-rJ2C96JQZZnMfJFy zFZ5s7w2q@~7l>VO!B;aZS6!IoM8h1z{VI9lR}t4169<@?7j_}-7sd>@V*@Fuj-J^R z6QLv1lIO1uE+NZR2mZSmTb*r}r8hw)jFxoPlg$g$6|hOH52E7&$T`+g4a1o500jy= zktR{SM8dTtP1D4f6;VZEBvGt8r^d2<;TVHpEc2c5qEAi-vc3-@5p=>>oyQdlzkbbz zG~(9X8RmxluqJ>5OAZb@=|wVRY%n~iTd+k?T&)A)Xc?&$lJ#eY@G*31B-{2_;{z{R zfu9#fDX{wnnH{zUzOp?&MtWOFL4FZN&n7@+x@)xfEfDM2!1uJ37d)ZB7#A&zV=bU& z415j5`sZXo*=KyAJeiZgdU%RAmLxac@I*A|C_5XAgF#6?M18vqPK6?sq@xYUHefRV zwcs}HVPO+^N_AT%61%ZhiD3@aXfTJ{86#7m6oHoHv?P)=e97&WGI`#%>ElG9W|B^g zNByNULs(I?%cvPWJ@zH!e@T{yJ=ZXs|4aihSfH3(FPpRK!lPiJ)@azWfHQ(f)Bh_E z{AU4U!|;XLU3=jpYlhVL3yJW%-5+G0&u~WEpXKuUuUYQybY%W z457;$Z+wzLBjot2W4#83gdny5k7!LBgxU-!400Acu8$faR$yca?0#yf`z0 zd>d5D?#ru|r>~ndD9Z)qoI-0a*Q<4|(Hjds`xTK0?lPyS?yhwQg?K4HBcxX64J#}H zl8<{I3a}%It>HX(b^4rJAE)9}!aO3P>LZJ~+ zK`+GNm;P?H)&=|@no!iGq@;|Ejn(h2tu6Ay2T=ZsV?RQHRK`G!vTzU3dtnv?hL8f! zOu01lP)K<{rPkw?&g1{C8BieC{>nAT2|JpY1Sv>cNspd!spNLa5~LR-?H{vCQ7fPb zWq!wq&?+-87OKdO1F|ZyHFXoA+XH#l@eQ@nEBWe-R~FO`WInLPw$c2Za&V)F^dYQ^ zI6$mB_qn#NRCLF1MWHVXAy2>H6=5dLFM2sca*staKN$p&zOv>;bleAvE=zzck$y9I zQIgVDCjMxBzP>+gi8cN|<_4da@vlMq+Djh@gAn*aOpfibnLNGhyJe{0{mS3uD#8JD zy*unLO~Fl&OmjBJ(y2jN=35bf)f-R_Iwp|uA17O`-A5J6t`GW^4D6V z!?Nr2#6dOm>d5yR`%+vvsSR87m?%pQ+Co~NWKSs4XF3Lt2%s{V|~0;J-5 zUsk*(0Gt6AOVHr~OVD+B^{j#MqqjGXd=5t`F#=sS^HT>h@Tan{M@8X)s8{@f1M7A6_=SRQ0Pa3K13rU8|tb6g+q|Ivr`g&K}oP%a8NVg~^- zrU{*Q8$-uMCIAkM7?K*0V{{9NHqwBZu#z@O^e)yw3BPi_;R ziq())c+DQpY$CH<6{(I--+!;fs6$YgORU`mIC``hbhL9=iot#BhBTC7-tTovHDfYa zb41mFn=UsHB4H5NDUY*xcxm z$;5y_EQ!r~!F)y_&tBXh;H7)sq;*_Yvu9;SW6|e(<@h<0Na`l64!jU^tx@23_{}Vi z1S27YkoQC;fv7%#h(5umJD-S)B^B#U!~}W+oF9W{z-Rp#SmnSn@$bYuEb(^1hRC}p&71A}R9Q(dnO6j}b`LxX0v>RQS^7Baw z`ko;O_hxqaPL&DHkc^xz9+y6M@RrGjBJZ^hI8(V${AH(DUEY+~*{%2FcZMxMs04@-) zg+@4Zlv{=&AX@*5s1;4SP$>{NaP)))s;j?#n)})1gy=BJ6;1?9{#S`k9@I! z5HU`qb^*7ME5HuK0ymI{uYXlSkp|{Xy+*~7;Nx20?eWPA@^EV{q)kq8U-FCJ9}X`J1^SLJ`^PD3XjU6@a*Frk%V zBZ8%1RUGF;aZ&3 z0k7X*L9Pk99MpR-6tdKOk=fK=1FjhST<82CBuKXb@H>6a7rl5MMZ7(l>#j0DOW19N?P= zV904qF5L?zAp(4Zc91*+F90V>YNqMah$xqYHzhu^Xp!CS?{mT};U)o!f?o&k?8 zoOIYpcJ!DCC{qV10&$Y?>g#OaMEd**19@?f28TPg4JlhCr>z0E?FsG)a6?C5imknQ zi>p}6(CQXWb7SN!F=YA|(tQctM+B3J^lyLmqk&JpGJKYOCAZC%C99EMs@PXgyg^-t0<#vLqo&G z@tSi8#kXfq!*ia-^6X-^m#Z^SWPJO!JcsXyD&5UTazO;kzjF zX1Ltc6%HGodd#KGGm3!3hebt2kD60cQevy_On7WMRKej^`c@pb;l^`rcNh&Q#)4=p0j?a-_-3O^Fc=Sga>K zlqAER;JOj7`CS>Vk{fdXd8sWt5be1}l?3;KtHGPWVK(+uq_eXV(#!^EGts7H+G69w zOuFNxd4FA|3^3(Qqv)%;l|w^;0~cy`OKc^s9^4R!&nYV#d{eX(-HISgsjk+F|J={lO_i9lpxqxCEjAJ2|XN$ZLkIN_^2N{IFt`QTNK}w z=Y0dW9)YX)&uBCL_ZA`0jGms5+0=@S%fLIpCf(fLt_6&*N`Ihx2emydIC3D0u1c0c8}*lDYth)AY{c&q_5#|ZODptG18 zfwLkmdv<$yc4*gu>-lWbf48>di)DWbYQA2oPl))E_FicU%wP<(v=oW<+jHbtdpGju zS%GMo3Snq0hjj?@Dxw7D3h?QLR~ekxBf0O{6roGJnrB%CrlAWm@E=gJH+I79a_~mr ziIOL3oi4pN-*-LV*U;k}F@FpfG;Z#p&dc(+ppeIVK`V`*7}(59usLv2H2!SV4-VSr zikXFuJQyB2bzpp#!i{$*BDqm!kV%V%Fu(L(i7fN$*ACLVAbViyWo4zQOx_Vz2*0go z4)_6qjguFa41H_wc%{NtDG-m(E8?ElfFsx+xV3*Fmxs6zLX3E-?&iNfk;65S8I@)) zEaEHy@&HNqJ^K>EA*AEFCzwSdSx~K#$EJTCCDPmiuX{0co9KGb?s9Wb{zWz! zaT;V~5*WC|&oG3I)FV0NznNrXzvn7{x{H`Nfq8psUWJYW@!cNo&;0LO+*855HQwCx zWhc^uGSwHu!}+uBXx$BuP+sQ{3ge2SUmN6Yee=t}HmcCDYwy^ICph?%=P~h5XS3mxcFb$2mEFGyB?%vY zG;B}Omc9|I`c(hXmt8BGJoSMYpxG~@l3(#DSY^`xM(yc6^RcT`PPp+B!foS0-^@ey zecBIW&AhyW4fithe!9$|={M%Bp)y!0rrC??A6}Qt{Ir<*Ti$n;2!krm{_^Xq2z2L% z=;Y7J8L_+4!(YbW!TkpeD!K9!EcW-V7G}gOUbv~ISnEs`1RD&|j>8@5M^F2U6RIO* zqGcu6e>^}#p#OnwerYaK{Oa3rP@fJZKm4Ep7tZiZCb+d2;|3RkE-?HJ8fGI*O`Scm11QG9%q=iR0(zU-TFZ5lnnQ~Cx1+X?1D z=71R!L2Zl+&6Xy`$ETdqsnMx4lrdTE%$Y^~nc7&(+{IN!m*#beOA7plTT?`mJDRLn zXNWKs{N7Wj#C$2cgz!Lvy}9!4nkU4Yq{#JHihT~zH4{%eZq=JZMoKK~-yBSdEsL)@ z?uPFzFGRDp387n z4oKB%BIlKbz1dv+#N#Nf!G!HL_HjmHE0YR-F`uXf^r84Az$G%K-DvcAYex8lHIup< zOP35!lvTAJNztb&yvD(C@wn`U?q1XO{k#n;=KIBFV|@NqWg>n(ZY~19uhbp(tmvD1 ztXDQF-~1Q{r5>a2!WEUJyQ*4G)3nHyQm;i3BPO&H$gZ60I0hu6!C9fB;Hic8qgxb{ z=E3UvQ$0O>{eyc1gDW*7z@5J6qNj}nMz5kvSbX; z<5^|Nqka6n1%WvAfVK8xKABk?cpx43RO0!?vo=s9Gs5&Aeb#?O=~>#MxEB@rbd|RF z72Ue_2*%sA&~%mho=gf)Z+7mj9aQTE;Yd>+s?_%_ScnO%>%toaR=3bCG$Dp4f|Ns& zemjbU?xU}-=n~s8vD2-xk5@cOs~~`f_UYuP1Xewf_?$mO1AA{jr>JccW*&42apVa@ z$`lie)P5BL9Pbr8D!H!zmLZ<~s91pvQ4oR*65Q@MvHGaHJVg<0%0kQY^4ev&O_vbm zu*|NOQMBq|Z-mjQdVk?IVBCWhClmh}bvI>BbGF0LKHT4ApzV&-3Oilws@TP-V&`th z&eA>16Hbk$g+1S`@A4GB#EOEz#`B!e%G@+|?fg6_LV245x*?$rIqmn3!_O2B2=f5+c;CN|0zpMnSH6__-_!;cFhNMIhqzJbK5SxxBy4xU&8T<9~MFm70&I=_PpKbkw9x&2ISApu}=88RWR)3Sq`AsQHC-=o0uG90(CwSPRb4c~Qet z^%xtN&xXf82ByF9>1#WSUwI}P7=H^&$s5%VgC2Z3XyQ1=< znHdo0i6WJ$Zh`l1#qa3{7{2l+CVYHN;aKp6zDED$xaD#a<-L6GfbbMe;bq^&!shx6 z>p!f35M{p=tX9Ypr3P1toTsM^k`Tg z20i^Xg22vz^gy~{{2|Gn6q2X5%I`<+-7pvtwEs#ES$-BM3I#stYSZ~~|B@cIba|ZJ zojQ886;q*Hll6QdyCV2u zW=}A!`JFclk|^`%h&?{qzL}2ndh3SEs)B*I-5yub5R(v)f-l>p$sXZzz|S)h`h3gC z^0|HB*DaFC*jVG~8-2>!g4?8r8@G3r1lf^2qMH4 zWFWaQ$5aV<2e81z65N9y8agv)G4|n|)$3(z`%%FN($yddBJ)Fcm5Bj^bLyY5*qWAn z=T!)b5K{t~r|;|%TdAO3@=r^{E!~7^7*0f9e)hgy{Nd84$+t=GEi6?me%sdthsiXP z;H6>nsLo&;S$>Xk41K<HDwHir47TD@>|@u&y=K`C_d4>yf4z|5)5>-94}w@Qsw$ zT>xq*Xgh6RMYy?eshd?F)m7bY?OS_sgGl;=Un-~F^BiTCqd5!1%ddUKKPy|<4u9Gi z;81VoeF~#*wuL`>_YM}iFk~^Nb~B_Tt0IT*_63GtPsoh?xoTGvYg<|z^}{=LYc{fE z`fQHp(QrR^9oB`sBYh-kZAOgS*2J-@{pJNT;E-k)VdT=zKG#3=Y1_IjLK#Gb-${gF z=$yy)>Mr?b$eG^*pJD%~*Iwok9lhw6o?gL4u#W3Iu<&3=U^sbBiF5xq78YMGh+dLJ-f<9Yu0@)L@K zp>V?M7E&(9`)W0Vngzk>r=*RAw)7Jk0b%lDQt7i3z7+PskMzR$bS}kK3yDmhGrE~W z$z}LmcFmIu6qHvfAvPMPlVjT%wWh5~wwoUuZwj*0l_n(mHjN#hAIvXqm=In0{GYO8 z+n8?7S(oOi9ukf!hp9eIYoVYx`Fag|X+w)f{mNKC@p#E;)Kd%Zn{!+ejp z28~bKFV&qqRq3D*jizK@1q;h~*dLz&cRnZJYaNUpJn~0IkjCs1pX1T~N-;TLDiP{m z^79=>+K?QS(+MDR?p#A9$Bap`&p9qHQx2u+yn(|5?3>`p+sw`n>{#2ZtRC18cv1`& z5+pLV9(-e#%(Dl`mfxez zqxS$O!R*%m#nxL#MfpbGqeICcHI#HogLF5HfFLajN=k!tcL<}TpdcWfg3=}3Al=>F z-5_}%KHuN>-gWP~v*sUN!_50Wan9cR?DM=*P-$r>%7o9yukGhF5JcjLO-cp&T&_-i z(Z?`{gDh#)e6ejq>7&6c@Ed7sACWR-_HCZOI^;Vj<~k#fPk5s=7r9^IWZQq98GD|Y zwQC9>&ClK_^JiHj90YlXA2Iz8!D4TEU?B+3Z@Acae;b|!gdGl^?#8?z7tpFWy|Rtc zJ|E{tla4?o4vESIWC6S}XgQo>>dhE5YC{VaTAcK-5$-{s{=azWT{qTC#L5(;1%^Qh zX(2k;b>`cn2j=&o-%hA1V3n!9J9` z+yB=mN;nD4e<%$~8&&lUWcNV_2;|D#FlGO`^-O;Pl}U+jWH8Eaf$w}vIIvN|L~Pum zL{xX`s9Q0JX@EQd;c$u<81>8IzhL@=-6=kg#5e@pD~Muu(gCoR|KHdihkq@CGrDd+ zmPi`^_IvJ6*~?6nL272Gp?}Rl*z&{RX6ig1F_>3#D6JldU_|>pZS`VDCowS~p7q08 z4rrb};}!ux@?~FrclyO~ze=;Io<3{03_S1P=vk zeFK9-zYemyh7!k_-_28eO{!dr19{Z*M$Ha_*ktO;fD;2DPov&3Qp z6QiSQgfZWi)>7O~y5SG8P~Q89Rpd4_Eh~`OsN^m1>WzJH@fIV)f~Qef75DmDy$Fo2 zJ}fvT`In8Jv?jGTPW)yvVbRCj+z1g*Qo*v`-!$flpPrfdqithtoj>?4Ll(wLOo%wd zlz4)m7#TiHHED5@p;xFb`4sgbFcy}93W#&WBi@r4>PWwe#_|2#grb74p?0ZX?{faN z61?VtL%|2o@C;zCD|)UKhUEX7pD>BljH&^P1JPk8EH37+#FSf{Ha0tpm*Y6iF2NPi z(D>~Dpy{n5DSP&ui+ZjXHqV_{;@1Xm`E7bNdw%q-moV<%2&kL2 z{~NA3z9^!mJoUry=L!sfJzAb^3L!iN1+(Iuuc0|6hMZ(H$_9J_TUK%bqtn|JEE@U`b;1( zv#aItR}z|hkX(J8-sS48zXYt|jbe1@e~1t=1kV~|akL9dJX`SFab+*O@+%V5^O}rp zJ<;>>$6vn6yweL6ahu7#_T++`qP>tyUjS!|DW|A}nEZ!K{eullMR!DYc`#x~^S*|P z@9AWEE9xprZRr8FH{WBBZ6hWt2{?%6P2ohOG9tl zm+P2OiC0#!7;9x@etuZP$14l~z%K2c(#qZA`QM0b0b;NfM$1>bz2^?raVS&r_g!uo zo=4TBk|#T)R_G_N<<&}ViNZTEe^cL>B)nh#K2o|eMEAG}px{9RF^$HdTY3Otkt+6_ zJID=U>~bv(^(bg%*y40!Qjc|yz8d=6fGQtkX>;fx;@OP$*a;El%8j+(oLkV2WVPk& z7#a)lU2GES+H%0CU3d6gQQffnO2%XX%W$lT!c1n@y~ppnLMHQ#M`9vUm#sOBgOU;B z&w;D}dm6>0xbheb^S51U(H&wRPxrYHMmK(WDECw{b=-J_mrGBj=~;^z0Oo!kJ~O`` za%FP{6>BkKDGB z)eeN|!=X3_(rMnF#dm+ivFlX~UGBZ@J1ri2G6NRFTN~|V*oT3ONy2n-E%9WN@3cQC zXO2stz^k~;jgq(G-3vT8ecPG;@f$d@P!Bnc(PAg_DXy{5j5^~PzG1W!DgY&zJ8a_5 z-Y3nTlT=Ue6RwSvI_>-<>q9iwrWSPQJC)ywHQ7Ukka7yrs3*(lwk!z|FnP}c z)rHIJvlAplttaov&Gt&_UQt={EsYdg+)Xa?$tRE2az}4Y6sVTdXZldt?>#FUq69of z#ze!uKJR4Dv6I&hO53p!P6@7@%2n2wB1=f8XrhQkws}Ld#0y|Jl()enO zS0!shz5<6~;Pp)eRCOxe&6LlAH$Q|lIQFhqGIJ|K4aqB}SS2ath5R@D17O|&YB44S!k&Jiri)^FOo{&VUEM3s zok{(6*v0AS?nkh5mO9t%_5R(ZJmMYMsRbOsN^*K)2Z0ZPV%}Hr*p=(gOw{5kb!qE< z74hd}8^U=L;XZk5J$-@NQGv@vEtLg!W`hxkDeQne$plLFktd~QZSKtJV2;?aE8&_^ z!3Kl8KB)Y0^?X}=tu&LHi7nlO0=Xlii?h`eIcw+&G-(tgkIIT=H_$z7Uk*U>Gwu5! z89WyF!1S9P5C4W?KZd2-A0T`GO`=rb99co8MNRtr#IM@q(7;u|*Y{V~lE?%oL(}@4 zM>VVVcK@^|rT=hapEV!Hk9pz(a2n)eS~`QBf#~+nf2{(V?X-$P|RMEb&$+&{hc z<~E3pV&?zES!vhs5oRRbpv!%UV|imCDf=jx0_Xrt;2Ne}0YVBfDP8>y@A&vDEh<#M z-utje>k9{qUG9gi@1eiNlFjU>f`g=yOd!Mq)97g76xf5+am{oEt*bT&cgzzRYmqEP-EaMqes zt#Xmw*ZnDNLntEI+5&d<#*4lsr1#{>@xa`{<-s zVRG>RKV4O5EKnB~S#QxJR_U3E*SDxrQj&9HFe$NVvK++x&R#VBdgOIgRj$bv_sl>S zw)z?(Ra4V*Q(!ZK4-Y=OBoC!^d%4m9rF<;){t|&-*M!=#S>8~`a&MP-r|WoZUq7{O zKSfbUcedVW{j2kOC!0Ew|8X)7P1fy2nxWO3gRwL)U@FwV1<~1YA*b{MHL)tS;V?J1 z_@A2`C?JrCEj^&O+Us|*JTE4>V0=I%kfq+YDJdmx7_)WKJsFxGo{m_|L532iQggZM zHyr^YT%V8R-!$}uU35Y(dwBtfdoU6(=LnnG{#t7UOraNA!m76^1fy3i6r1jOY zU!}TVlIJ>sAczfI?~9*9X=om1<(~VZ%yL14Vur(-3StP<8dc9E;=gDu7DMmNUUnyn z7frnydo^Q-t3u^pY;2mWKkFBO~s58Dl7e6C=`%VIg;?nZS5UNgey}*4Q2r3$_dlQ);>_44K zrD=71^IQIr09-r-@m zMkr<&!Ei|f+$dp)Z0MZ9kWtHM=Be-0fxwDUqDT^hEUlfOxady^=?cX^g0YTf4(UD0 zpahvcIj^jL${_#-SNJ}h#R8&U+Ewe%=a{el_|%KSbM8*oS_9+JX>^5z@7y#0?v%D} zcA>&}fHW<-M7?jmb0kRF=k=)%<)LPi?v`&@e=Qv=*5^}4mGL56_iE%en)r(n;4f$% zHD7SEcNpLOuNOcmL_^)bz4U(@6 zhO8M7tBhb@Y!i8LR&gr!~ZVn(|Ck;$MHVn1s{ru75BVFboX18Zl z87T(sQxR!0$@Mz7MiG;`+mpc9`3SLF_k4$?Yp*1VD+ZuTYKySX`n(We4*9?w63?M6eIkHr zQQPGU@}~G*gL_8C$Ar*OZGytN!Eu-F(DUgGLB_r1hdEbnDZ48qN=v% znXDUWFn-l@DDh%amQ5TeD5m;-wD+?Kn&2#MEDT)n!21;0ghWH8ATz3X5+u%LIw)v* zCP^+L@-9w7PG5}vx4XsDJ0n!61Gj8XLbxQ@8z^i-?@XsU)6rSW0d>&`OK$2*pWZA%1W43xnW0PGuXkK80(S#2fvX~f)Iq}y4g zCPt1XF3hXn?z?2#Q6w_Tv-)>F4xEl9I*1Za$sfZn(JBlv zm;S3;ewY8|xP)9SbJ`!J9@XHLJwTb@Jac&pkwb+*i;Hkb5AL^NE4yninh3tcda$|v znW|gJJ})93Pq8R1_Nm`lz6@#*pS=*HfoxX($T0o>Rt4(7cd#S&?<2^w$WS!e8)Tiv z=G(y?5B18P&rE(U*O&U71oK=1dx@g$nO~@+inQ~sZGz_Jb>flITbGupZu>PHT(bMl z?|nr`+hhx=TllPd3`2so_d;Qe9E1{*l;R; zX0Ueh3yukZQqfVKfO{ulHk|mdtf638<8+h@P2=DJauBm+=B`gc7bhVGJat=B&GL_6 z6)&wspENXfScqu77t#esnZ+u{u)7hP7QW?qEV`Y({?D-Lz29ORIaLDPb%VY~31Qr0cQWw}t z!udx`7bw(%Zzky>-UbP0It8^(uVJ5 z3kfK5G^K(JrL0(Y9yDt8ydJN!%WNkvF>jp0PHfIBI{24i*EWzAag}?h>?8Y(v174` z`aa{->avm*OgzC=c-7r@*XRB1*g2sOSEc&j2#RUDfine>`lxs`k3lt$!880c!F)}Q zf0x-M1HGg-%JD}amoF`st;EFPs3s&Q25bI-d}JJ`it2ycG@9?|7N?+F9Hcg>`4I{V zNVD!0zQz+8vwVh`5Sehr&-A{2Rr4na%jpWu7`$B6dj%egdCy(VCj=OGmV3gpc`~<> zlXDuYjaydp@4iqKSXRzmtfh~2kb5=!_!V`#Rl1~q(24d=I`@2Wg%{l4)zab?2!C(? z7`@is<4+2Xz3XK&c6+G-$0S=apu8Z%_4~RtY{QUsqfkPe2 zsaAKD5wLIYj=Z4dGBZe{yQAhl?u%`43X0?eN=XTEXQq%MiFx-6V#y27<3IDgx_9&Y zD3N`g$K$u9I&Ty=%GYK%DO!fCO+nZi{5{^^sLQ=%j&c(^H4cV=1^gYUG_j)J^2=+-?&>}t*s_kw1|CSsvLcxK?=%I6LBsTX!g*f|d&)#z!`}CzCE)p!3bC{qvfAJ1k3L8T zk>C*pDO$^e#yNJYl+#aZ)6$L<%y*$g=B#Mwso-%U{XD3z`RCtGb8u$$$fqm*V!AW4 zBCGuTyqYlqc+Po^qw%MUEva$OQk`t@{V)-m22ho)H(Q(9=c&aY(zYpqTw#J6 zc(I}~Z^?j=FMr;){cKp14q!X^%&(!u>pM@@cMv$kxcb+bHSr`toIO~S;S>DH`FV5u zhg=5_26GE0cJpva7ne8|KULvf34qdc2_GWZhOFt;gF8cNQ(p6$50_4MMI(>s)97_2 zdFa!}ED{#z{%TB`rnxU9)_esH?h9(!siiJkaA;u=y6Hfp`N{U;haMfhwZW@Pe zXV`LcYwBo)7hc(#vuL)?7|h)LT!R!YuL+*BGoItI`8>LgnvIe$=eyz|HvO`+ANIHO%u*B@6o1EG#Vtkh17*{y8pC%+cpry@?EMd%8WZ z5a?Uwm7z2nY4>zsfYNawt5<*F<X5Gm#n70=|TUr<`Ws(?xc#HsiG z_9lGO-0g*!2p(M;1oW(Xot0^0>*;LCqn>F3Wz6H2-)I(tCT*-Q_fzXOl&-f|zT{|& zGCXCKlyx#~;1HA^Ti|5K_(h~BXAqxy+`XO)X!)G1yLR{uparUZRNhO!M!;S^i`&Wu*F;0(o#Y=BFc=sTUqZlp zJK}FHonkAU(!al&@GKn8+Fl51fc#^fIW{q=BFbwNGiLMmGe1}+nGlD8beZa3xbvBS z*3%i4^U5ey8x0vjnb~!XD%OfNfk~UTimxu0k30sxK=h@O6;u7b@4nbSq?vM!NihiE z++4ZIi4V*VR_z_{pVM{;OtK^}ZAsM>4mXJGzXl z)Pw@@N5aqJ0XCJ|)V}M~m0jhQb)-#VzL*ew>kALyFG93ZNgJ-O1SFs&Vr*_Z>msTfKgnC)zL2vuWl-6g}n3x>^I>izinqm2}9WxI7Z`uzGP;ba!1w^SfnkQD*F8hk2d*R&jHPo@u&_jB;PZ{XoGd zgE@%?gOM@d+3}R!+34ae0teK$B)Uoj19-y$7UxT0?U%w8Ux2GITfyiv1|@n8-;ekl zP0Ewv#f9q+K=I_H3azfZ%}!@%Ocgx6IQg8g+mBOAr_P{}R%Wp%tg9OxL!|yX>Lufo z|7@YqXEsAT?ZpwmR9Jv6qFR?pac2dhnR`$G*GpiHxCm5|)S9Fp908_+C+%Avedt~v z)L{Bp1-cnAD@6^ydDbPil4Il6rYnTQ8PX*lB40MnfYNkFrx z+ONqVlB{;65|_&F6#j80tP`2G*E=Xn8+s}gHLm?B$N^$aaP$h$y()zzI0|l$&0En0 z!>b*vwcit|NI~_EP)a1uXz1 zD0X#gn8HL{Dq1}wDfuHh?OAs?rrLY|CKhnTCykks6qfeMx5dxd;${Us1~E@Q|27c{ zz|jM4B%M>wof;3s*Zyc~)<+8*BYiLtLVu>qw`^n&ZlO3ZxgmYTY)9%o&=8H6^@R#* z-2q=w{b4Oa)#MWMeun&;?KM@25>pG-;`aohOj?wCf5@Djs;bPz^uMD)l@r-?9vjRZ z+q|pK>lm->+P|4;@6IsQNqlzs3#UK*%xNv~2~a_oL|xe#lHz)3AT4k(3N=iyVb4=y zZ1xpiPf7oY5k&7K4LuSK!rNg`ZEASqMh-5Y*mtyFI3jMq!keJNr!D3;#r~$?%aeB8 ze~^HmQ{5bQ7Ip@1b$~6}-CFy7rIQXGQMqAaP{)HO*_e(K*ge2j0z$;luWRIVEMn;M zUYE=>{Q=53VOlyNLkOT^r!{7CAqKPTVneIH{he3b8#1P@dHe@UtgYVUbg8CS}`RqArH#Y#*kApxa5XZ#8Jh})~^bI-s!{9RbWI@xZ+qwL(u4muwSQwPIv{*dz*P)mXkp8c2r4x8Fqtdrf%PA zIcmC#HMX5U66`2Yyc})o`H6DZN3<9SJU2Je3#W~)$jQ&_4>1k1CR{EVfCYz-T(8A> z#LXR~x4miytbbcumKSqB?m~o5&UBcE?_~a!l=26fkz!q;!t3*!wN+^c*7(V8&uJ#5 zuy44k?R>zrTNh;Z5>{YwtNSm_YB#6R6#!-Js?^}aGC>5zO?tS z;PUqrVkzfg74I1C{58ra<~s3bZ92JlxFCKmdJFN8>FJL1s*ETAs;K@lnh}f}%_wjK z0rQdQTl3?(HKN}fl(Bqlg3YY~H-vo!pSCvYFPDF|iiMNbdCMHPj+EU-ByqT_ z>%-LBZzT(cgZZsVtF7%l0Rfd3ie~6+*l&y5?aa%}&2CNN|Ml<5YO6TEhu_?fyWy*@ zA{+AS?)9pTi3iPsCsSe5qWOGbrakiI*!h*FX5Dd6Eu+5sfEoiq+^po*9ZO)pmm)2Z zB(M2lrJKsv;9^Or;rcgHVeRUi=Wog!3CuiiPEj-BKdi1q{a6A|1~KG`kpR9c|C6Oo z3uj@$kFX8d<^^2}gQ;Olv!vhJBKbO>tAy^>RWJM;1_w`MgTk)&?QauSzNF6c*g8n( zs!auODzML-b(S~U<$9ZMZ0%=fhOka06Y!?6QQ_0YonO_0s&s*s+^y~YpbJw%uC|CQ zA!$@rgY(;0884r-?LvH`Gt%$9W-eu^cS}UQEWaiurd^%JIy9@IEw#+)WxLGj!h;Kz z7XXXyer5KU^6?@C>*E6{4MN$B(__Jf!%rz?W55JbBu4Y);HLq@zzIJ;KcTFt$@@vl z%iQ_iy7I!CvRfdx6p9K6V{`{)n{p<{iZ9mFg#8_!p3c?GTUlATjT>cZG;msu-08XY zjEfD%k&xgO@yd8z>003|Vnh_R>;9AZgDuj-ky8IdOvJ(^*CCC}ya_39J<2zBm8)f( zwba*BImxN=Hg8+;{2Z!vL2sr}i4b_wP1-#TG^s*aad*rB)Q}zMqMuMfNA`KZv9|T~ zdU<2uh~~%14BDvaju<_XVO(7O6|MUp)MS|CSLDD#d)oG~CgLBPtDyFe6i&@Q&UfqA zbUhWX^#nCj35r;$5`HA6;j=4$zQgz0KF6x#Mgk= zd(&P_q{`>R4|w~fW)GuT`)?DYbSG)|K^6B0n}z5z@T(wz<;saY0}O!!1O<5@{sQAV zvo1B7B-d0j=KPG4KL2DvP2c$hb_@a*`ZNsl)k0l1%{$6%L9GcYyWKPSx2ky&0z$%6 z#7mG2ja#p z*tPFMIuKoiOUlGPV|Hp-Qp~DT7a1$S+u!ivJ%Be2zmBOvjl*n#7l5kGfB>!!|I*UNaJ{TikPJ}FGke3EmcRd;)Yn6fG<&^0PILTJilZ{q3zXCl>lf58r;^z`ikQ*)M)dMM-QKm$0P5c<$n zkk0@r6PFQliWnO(AsFOw%cg_vBEq+@Sb-)=NSJeCkE6UKLl~xTV>(}KQgq7;7+e~| zWe;fSdIXevqL;ah2%#AqoybNOPyi%EsG|@=X<@_0M7Ou>pCi6D$o-(AYjp9h+29}0 z=b;BV1445g{AO!geE^_Ebl-z*K6iawm<5;~3=>U@`ER0b7gza&X-O-n@4(N{7B%FFRE8w=eZ~E5tnUq{T|Uqr=Qz#USnuq&20>lqF$vby zC;YDRXni|99VKYV8{Z5H$2ee+989P2Os5HdywM-F9rj5X8IO@kx_Y^0$j#gL>x$2n zw}>1EWmC4%;ct^=(=fRP04M?HP_3N${>s5OG@DCYE_^BwXywEmod2}81Wnsd^oxN0 zar<`wAY8j=958wkEJ(6vh}e#Z*O?#211wOkIfmdV08pm>7|@aTwJ(N2(fe`+#BNLO z;};F$-c|FvE=NEu{|&$Ew5S9SPdY_qlMpiWt8d*MKwR7)auvRJx)iC2zv{fJ_S3hf z)aMs3_J-Rr^O|k#Y>QIFnD=AhoRw*`&TWLZ(GPn}ssEgAe8mnpo`I4g!!k=7?hR^Y zLz;5XbQzv_+ZtfQK<*<=a^DPjckRn-{5MJ+I09Z>s2__U#L)bOi`AWh zp!mhg5kPCxHaNU1VsFi_8dFsw+&xx6;UAtu5FWj{tl46F^Q5#=|z*1mO|4+-u$4(jbEH3f&6otU~y6nYEUMFCC9tYlw)Y#y4Y(;Iq zg{(%-UIGDn2%;g>YzL^7+zFnRFJ?hO^18^UcAy+h@(uH(-R|yt-IR$Wi}Iuodsr$| zhnOz&#!*$s4{Iw?G4;WG!9qd$#e0Jh_TXfa1$6N&??pp}g-PZo;5#WzXdjh;91ii` zi;f!}IK38JS*5z&?*t|sG~QRiT-x3V?|p0fVkwKToJkJJztNiwAIFZBL6-(xQR7qlsFM!|E?DS;c{G^%q;exTi1@AcM z^YL)P?yeG_Q)OqQT36f|D9ApAP7);hsi~5<7Tt2| z7Ls;2$_`jSOmvo(CK+;%C|KC^4eyNLxwaAobw078e-jO4)aKcM$`%9ZQzj-ZL5=l^ zG8rLpl34nBc0k+D5l`y*=jyBX9Mr!5f>!~7Y{XMAVyu^j%7Q)bGktqPE(J@Y2{(xt z4@|0$hXH3eeF@&=QDb?<+)lzHUX6(%#cM~<(7}(7=i;WGy}=Jm9vy6ShmR1E`i-8e z#FbAXl!i{d9fs4Y_%D<^&!cGJKam@O*PgAk$W791SNmm^g%}xjfRskOd^?HaEG}q@ zx#rD*j@X`TRVajweZvbI=Yga+Pf~jImsieEe9-2R5FhV|_Ja6c0IS;{CbDah+iyfg zZ89S}?VCm9nUW)Bc^~!&)lK9xSl@(s1>(U)k3c=?18_Z7Q2(Lw(u=wOF&IL_`fyYE zv@J|9M)z9%gVFl8_hu=&9;cG%*b!xOlq{jodKLe5#CQY}WEOtQTu8PpvnlxS zTacGbn}Xpq-sp<)gs#w-;IR zL*btDvi-u<#P~@$99JhYE`a;xab&$*_%=VJgO0O=#b!ONOr$|hD;pB-^ipt4=>_4X< zMvOQ%Ec#rNg?V8^Kbww=7u!9F`6|SMLh3I6pmV25?&+CGs7b5`>N;y35f#t(_jyWq zB_3j&1R(;iXQ(RKO&fzY>W3k~yn_zNMkb-z%)GW2@dCJ3`yAbE9Y>IQM~9m~)O(^u zWV>c&Nnw)HUd!>q+QJPQr#c?dE?38UU!JVjO+*U(*eIHOaHSsnfW`ZGS6vqwaDu=% zK(}3J68YQ!Wi2(_jTFiUZZ8kCs&$HSZVL#ooArsy*3W1D;1zP%^ND`V<8Y{fg!lv; zAXlc?NjX_{9tK}>s5mI0>7ZqaM$Ke-3g?9)%R@I$ylplZKdTR}HzDThpz7ti7m__vAn^M~_lRX7X^e;+ ziR~7|-La-%B#6I)hCYOArzi2Il+lDTpI01kb?~p+1NL;(|MddwNF{&vHSs(rD0BR2 ziFk9?+5=U5JgiR9K{W+xp*6Ik1i8dl=BW)UM=fB@|XN2CuWp) zc>#24)%N~NrA--F$)SS2iP0BxbQPIX&^uK{^6qHfYuvnpE$}OSODFw&V`X=X6H`IP zl;;WB*!xQMH|)56ZbF^kAWviEGm=j~dqtENY&(rtNpDKQN?MM|@!iKVGqD~66V_aS zSn>qF)+z%!tpcJ;`A}arXe+$q{zBtZedLG1JwUO>3g#o9qWE)~)L4clCH|*xeFS13 zaH z=W9;lSG*lVX}SDmE!n_;SSF)qWbw;qzxFb|u}F614EpSq)p0USP^ssFl#fEzLqh}dg3D_< zI*C6}BEuvmXUfQSE6QqY_C-b6!$(fE>>X(v>7K}wvn9N^^%*HGcr%AB`z-tkoxv;JALzLOn4Z^y|%kwgjr-ac@-!@z$}RcQ4ZsumBl)~SE(S(NfPJf525D-glz ziTRol6*93PxK%(oR%9nSCLSoELR(+Wbqnkn^m&$sE7;))v2AQW3zGG1xv`Ja-{C<{ z1LZT=wdYGcAJNwBjS`18yA4~$Jx<1W`nX~31(|sVcif*?;DG-7lAs-k;4Q8Dyf!bk z`#?#%DrfztVo<6Z@AjNt4)xW!y<3koaR;>x7kD>TUiUssaV+IOI@MYIw_X_&ABty2 z?nPZks>;=IS_T;WT*Xf2?`_Nhm55qNWO zimX88eM6608@TWqig3=R{TrHlpSjzqe%EC%(wn^q+7U0Zgf)1j7}`@l&v0Bf*ngZx&=rfz4s$wXJxC5^$@jtHI=kFAI%~Lsx&Rbx>N&Nl0Rfp<;2gHGze`&J(M`a;9)REqwnfBG@sIk7iqz+EQ zW@!>A4$I&JnEI?PtYBf+_xskv1;nJCZZ#NWY|oa~^Y6v5YYyx*O6uCVIXY5*cD|Sx zcr{GwRv;_dkZ#}C)RO{ud}Sxvm;xHE-!Z;mt9vI|AyQN8;X*C#?I4G6L<|1z!4 z-xm?%sUGGzz@z6-)&K+P6_^FMoCbtnwRJ1#V(YllT z93C9w@}|-iM^)3{brt4!!FQY_xC$%Blo74t0J9;iRuuS&AQuv}W%xqw>eMcmtT#REjw5Lf27+zLy^0t%A-gpb3tg5GC9BoM`a*+6HRQ7#e8JuX^+a zdG(`uFfV70IEisq*_Ko3yzvEI9tSvSNNtZdS_=|+mlpIb(;ecJ3h#%6rewKs5}~!m}PVNp9oE`saQ!TP7q)U-c*NFTVcs+G|q6lk%Y_m?c(D(8>6p@Qri4L{ z&DFH}Z_oz{yd(#SVivbP(c|-?TP-XnBG^8A7My;)fHfX_$>Rpe`jzC5SGTjO<9O9@N}@gA^90?xd@GZ%H79XB3> z&aDDf|MHgg3-xm-=nl^IQGJMxR0-WOIFC@67Bg6~mJNtZQ{425Iq&OO{RZOCw zWzM@gecRr_6@6n#h!29uf4~MCX!o<)XMhM;+~6kRTQRZQ{c{kZt*gIM1P6iC^fdhi zQoJzNM_9nKH*5jpd#B9c-O$CO6H$^zcO6U*GP-7Sc{rPHIy@E z`ejl{n2mWH838A@)isb;R?IjGlJ!5-nlQZZe4G~TV)Oe$yrh`0&^LJKGmqS-7n(Y2 zjTp4qbGS_UZ{$K82+r>q-)Mr*4bv>c7Qo3u`dCY1o8e0IdlLIZW1E*U|GCjU5YWalVKE7qar@3BdWONksWVkVRGeZ>p&~ zXv@qmt6(h7+a;U{u99$Q$<56R(8B>vfB-tsGuZ<_S-kbxCJZGSguEbt)ni4Wum05Y z$@HlXeV>&So~ryt0^83r8bY6lJmNw+0Noj&386V06>=9vlyf-UlK_i~hW$ceF_h-N zkp{)vFu;i5N#qKVm?qiSRv}qwdLJdEL&mjYNNdlzV;>1MgHik&`8C#yW0VwCTyEO&C zpmnYV_mADjzb%xsd;esYL zj!*UvIPrgKl;vcSWBU)9tz5-|Ih+N@dZg!wL^_hG<%ngJmw7>VETWz zc&-wi{W1ql5r&VzT_HVE0f#k61;)oWcz4Vh+|>Op{cGZOECz1iUfklxQTzFe2GQ`3 z=a2xe_bazTKJSH?x*&k5X`su zISG<`wr}*c0yz5x(j=%7VQ_et;={jJ-*62qoZOCEiYG%QPo&;!lr97O^}BUnXvo6F z!P_-}M>eokZ9@b5{?FcO5IDmHgw*njkg6#IP`GKqaD}#}WS+tP=Zv7P;miLi2IEri z3y)~=Z=N524&}8O5?#ik$!hET2@)8S`QLQ1T}p;=743O|fKMls_9Efv0ib1@Yxhiu zQ>5dT7?iBt&;B6=ZlL9dUDx!IfB*|2R)`go<-T+Ue((Xhx*lMkhte@aTj&2zllNj7 zPi7aV6*!9%;d;~a^c@9l+nk=j@4ftxSFwQC=Bvw?JS5Q9e~6S*s72k3IhWM!=@7NrM{!k(yRSk zGV%le3Gt8faFRY24b#YKNqJ+CuU&faahH^C(S-=I7-RoUJLRtQq~d6IC#xiMPRxJh z(i$D2wLgs10uz#gf-`bH8*X-OIb4{?-Z(aFy{^}{V}P$_SUPNfVv+WyXa~oi)%~D9 zl6Ly{=*6`|LODr<|H)-k3zt+mcxUk2Di-2_Nviy1N?&mssYuy1Z=_6vP zVQOdE&4ezYblkRL>;U$O(?pbDk$IA5yMS2{Go4KaYFMR4A{4SG1llgaUpz;>dl!Y* zlU#Y`0TjMdjK^?0Q>!aVS~6OCXcFS+r}e`*K;Sj|l)AQk$}C_vpNpuj&y}JHU};ab z>z^2iVgqn44|ts-!bXqFwUR2oY|JC}dD65VKAr`b?QWM{==tKZ8%Q!GmY%a<)ge|@ghoz)RlAVq(YZ}*f^}E6# zKj;Q_=k?6kXB;4vO@A3UWunj5C2?V&TjV{#XPd<9$4bon{t7Z}lVKBcM$)5qQ6-Vw zF1A@nM3f|A`!|0MdwqPWb=E;810@}(UnB5BSEcH4Wo{y}|1@|l#AnW&_=L7C8gc9s zJ@s(h3&dXUQ~UQj+y2Ds?wVX_gqnKTQAr$?x3NU)H^_VGi+vuK8EcoBDIC-) z6ma?v`c?r>RK}DFn5gF3mwY03o+4sw{J=qEZr1NGXIH$3lI6V3Z0=6I+ z&xCC*ibK*MAKGxyaU*L$vG8X0Lq#-{HZ=Q$981-ft=IEjt)RcfRSG<_xASbRS#pAe z6m;M0*nfMOa+d)1&J9^FjD6{N4Iw1<#M&Yw^S3L1 z>P_{0SSaaZG=5k6-gb#LN}}9G*Y)pSLMpA+>8lJ-n!eJinZH~z@iixp)@ zIu$RZtS;-`22t^TSHO1oO6RSScO_2!In^_q<;BTinRn3| zYc*`cemK?dAXSXBS~pW)jP0>@&fb0caleur|5T!m4!ISR<5d^0zT3P&vR@e2_tHf4 zVyOOIUC8agx6?uON5yRNjE=R8ZS9H!!zyqsV}h8TJ1KNUj8sx>_%Yq%x`BN6`+%J6jWOq>UpriHLm=_?FY{R$ z7Gx-c?n&CX8Btgn)6p!hCJ{kUnS;Jgq(_sY&NAelq63M=Xk2+it?S z7GznZdGP9r?UAL`U85Xpdrg=~pewQ|Nlz+|l;~tHsvY>md)>5?68_7`zvz$HdQA<4 zryY~$OkX>>mLx;D9?w^LpzEysy~}9%8V?QJsqtsy!cvaZPz@67NTOd{x_f1qIJECc zy6d}3OE-HF;}ODnqdB`%#u~CXGc$5c_8!DpeT-J0GRY4M68lDO@zVv%oj33%1ZfqdySuv^r3C@$ zl9KN325FEk>F%z(_|84|dG0@d;Je>gYpyZJ7<10Uo7s~+8!6P7E7H`rg7T@g?kMLu z@DMaXSf^mBRqrh;u_XhJF_UE;w(~YTQJZ(zHSwfda!^q31&I62RMO@Dk3*@aSCCK66K7D5e5(d=y$tr<5Se z-J@ft55||Yq6vPIWB9@MwMK!0{Om$)0rh00pRy}Ch>C<@wMBg=B}cbN$siy^-#5os zlTHIG_(mOt>NS2gMak(^?~7u5rl7KStGTQ-aRjJ$V2U0 z{@u&)W3BGun}}O^MxtHDq&FSHj2%%2nh99A4}V)ueYTWLhayW5ao~(>m_De-6L;vd zjWQxiEj}(Lk}I+#^IIJ~e7fmO>`A?fP(WQfpHd3V6&6xI^OiSqyX#i`tS{8!sB~O- z7W?lZXWtmk*NCvBPur!uQFe{o;sD=ny&5c&0E}!cQWm`tFmM;l`^%g%Z~SkbvCnZk zqW;MgS63$+P+f+eP6o#U>o*Ybu(7cNZi67UL#7<& z)#{0|xt|MWhG7vBA~NuO+&pc}G)hNWJmp?D8Zc{UXcQ}3=<2RaJzWyLC0|y*2Dhp+ z5=_@ckd}71MXCEXX3G-3+VbIB>igmZVQQQcpL&!1lt9R)V*UFVLoo0#suzsCG~h=i zygjeSOb&a(1aL(HLDL0hP3JbFOP9^j(UA@pMOYZa>o-r;n~(LjCupmOi;XsQs|dx) zVQbfQc57g?V%A4GEYatl^NTLaL(Y7;vl{lMPDGcPkgpgWfL`*x`A$gnt+Q%VFtp%2_2uO3(->WM}4N0@x{Vwr6Fh0x^=N8O~GMs zSfbC%{gJt5%~zzi-hb4%vRJj;pGrztxYgg^zp1GSERCAlT2}QcBq-<`FKo5g5O)wB z-cY5(fr|ke{{<5V#9bdp7w&?=1#{Y_mTgcC)MVs=A;c-+bPIhNS)VB+@qn;B2v2!z5}dFjAWM_e?ApZXn=2d%~rvs%WLJg0m$lz#0U^^Acb7-XVI zLrGJEQ)SdL@vj2uLis$e*(SkYD*8^z3L}KostC8fDw(N41Re|NSjh z%^ursg2wi{YrTr?2YsdZ`T4b;cGtCv+Z6<-+TV`s(lF9IHI=6pBx+0;~*|pHiZ%H5=_CX+O!qZ8Tm(eX__0_t+Ic4>6|X_v0ICj&KueOAhvw0UYVT&7PZsg6(Y!7|h;7xr>bze)t$Fa8s@Vb(kOov|Dl|4{6>LA*uvxyvXdfFK>LO)9R8M)%bv4ROIM0 z6!_|^cdh~Pl5?9{?5CEs4=Pmx)C5KV!#obSW z*qRzbXpI-Bf6_hl0Hz&Gzu-znhf?99fDem@S0eF`uaqJioP*&J-W}-(N?HnFkiOj!Z=Q9TGWE*E5lJ?daaL6!aTfOA*HyG{eitozmOVqcf%o@spr`cZ4Az%1 zJ1n@FO;g$3aXtU*1%Qt1(>-1~W~VlBoKn$$Y;e{)z5nHXL@-pm?=ll}7 z&Wgt(h3x6P`IRtk1k&TI93Vg*b$6uQ_7T^7vb5^QJq0M+YQ-O!$@z$IcXLyoih}n1 z-ahYihkc+?JksJwnMSyq`#49<_4i@tg;2W2(@{bu88c#Pt!Ky9+xYlgGokb-J=Io_ zQS_Q?QQ#Ggt2-x{#peWTTD9oWyy^3@P^(rV%#TKE78Jj?2Iue3GIRYuzrVfNILKuv zR_p7Gg*6gc$WJY~)+kptansjW-8>u8k}Pti!#92ZKt>ey z*&l(S^6ctuRBu3ncpJ)cxy_t8w_-fa-1sZ=>mL-y44#Y_)C;#%tV~RQ+_I++?%+kL zYHD8F)YZ9Mkj{Ay%msrcn|_`~tb!`M)OnxRoQK-&uPokSp2fiaIyBbP;%0E&{t}=& zL%hnG8jHooEI;(!{5Uk#;_a{2t6snrG$f#KMAYb*_Perfxmu;0%s>n#Kd*wk5mOaa1KwVz-vD(1i_peTKee)wHQNr`lsp&Q`{w zg2h+*8296RygR?CDJ6?8@T0x`+lhWc6PtU774dD$z`958)||?OPC`Krk1~Yw6-Imk zVg99VSdc@O)+2*-72?_<@o~CTxPbF&$)Q`9xD;?VfH6ZtOAl89xibv7`kM1kG!dK!*aw$C654>qDAti{Z7QtNe={QKu`YVBx z0g=a}oR0$n{OsOF&Pt^UH#bN%Oe3MkBz*=95Z^+OfQY#@79tN{xbIE(h78{S%48^2 z28xPZv$2X@;TS>$cU!dIjd7_M4+T`bhP>+U{U2v?HeK-0ELsh?&>sm2DoT@Q0iZL{ z4FZ${4D0>+6$wA)&DY%h%lNRVQaVGLMm>S=FV{Df@Ah0@YxjRhIb}uL{KJY^%pK11RQBkRV9yieUof0WCFU>u4%2(F5 ziaZ+`NAzpy*RB4n*~qn};vKyZhH4gkB-iVU?9A*xaTdsKlyvM!fd$+yYQ?gP9F~mpoYQC?YgGek@tDc*6hYM)N)QeXEuH8OS=5ngpia* zQMx$k>0*r#tbzW1DLFZ>-GaQoC0hJ0hYKO(?qKSv>&ZV7o2Ksv;Q@!^-eaS)`!pw` zUTc)Sfeq#yS64fBV+_a!Zov!%(Fs_u(68{sIFTR;tK|2-rz?3ggF$ox#9}WuJ*X$7 zAuB8`DWM)cZWBt!ESVtz6=E=3D58O*a@>pO-2^%xsA9mRYnLUrtwfWw*+v&uxd|{c z{0vO{h(Zt0$-3+T^qcsStuGc7=@lMJFxJaEKxSw6#20KPx5V^px0K z%e+$s^xhDmBk@0wN?poEm!}74O6-t#I?5Pdaw5DmjEO5LvR-N{|Qd zQ(*Cli^auL*BEyh8L}o`Bz_=LW=2LvFS$qf0WMP+C&m9z*(NLcHVir9p7)tjV}O5< zKvF}N{)nk>mf7$yBeQ7lKREKCiRQoRIoMKFl=>fexh$KizCHcCK)}tD7&Tmy&PS59>f{$?!u;qjVj=io!S224|VZtv~M5)hI&RIMVC*hm3UQlQGACEJoku?*g?U{|i9{H8^=-O1r^n^k z-j;cQy>IsgQOIIGK9Vk^*et!;J(kCP8+gcLRbtka=dSSL{7ozmNY4NvTDrP0JvYa6a>81eNNwGmR*s ztVE#sWrCUPWsuH#HL+E*(A`;mZeA_H8&c458$u|(zEgTkmAMTFlxdKElmO^p%u#z zm?q#_A=TeYdPj%?9=T2(S5C$Jk99&^bs`}ktRYOlM}Kk=aCm)Jxzn&KoD!)38J6Hr zn@hexR4mcUcv6`u12Ua!55kMUP9o(;We%)}FV(F)A#*61t)|Q2T>nmrgZ30Au_tquZ9GXET{PDlWj-6ezV=4&dBZQX z62gvNGW|yiNtXtVFqkfh#q_Xf{HGfa{t>Gj+K=+ouZll6AykIdhQLL2QPpdv}xx4xAz2Isa_Jis92l53)}?k~ZK#4V#YB zz-RU}VwlhLm0UrCCZiE*MtCItUFtye_Tr z;QWg9n(nr8A<05$u(GWl=~zW!={aeHG2-g_pt7&Dvb4 z0@LHE>v$3z8n@8g^cm$g zRdP1c>#jv8S{i5;ftxwv1>Z2}ib{v1R+;z9YT+&<#lt}Sr&p0e`PoUrnONnL@T6&3 zMN(v#_M%3TM)uy`Z1&V#!qtzriHNp3?mv%`g8ID#Nq%Gbcxdo#{?>(Gk^acxwRM$8 zaet#3l}Q7ngi;-!)AYvBS(F|%3X0;tKQ#{yhi%v_TSq%o)1YngpFwn6U>PhtFg@J& z`pgJX>EXWX1l0h`Rvu5mHu5aj0!JpW!BeK_sQGK7$v>iD#o zocqZvdFa@f&nYh_xS0)N4%)XdfGEGtx*!bl~ zJn8xY|=Ve>?ny*(@C)Or?l8NsYimp8>UhA)Pydvc2HFs36 zOm5(oJ_jo?FpacH^$Uj=EZ=gfH>2v2yU-j}yX@S`RX<3}eAk2MI} zWQ!ye!6iN_&!2O1^S4U%FIXs5$38{y(;Y=S ziLJQD>9?I@?Bba4u=6udujVD#p(4of=PTZRonb0Sag%56#CmFjqEbJn_F}l;= zI`DX?bIyY?QH4`MI( zQn){NO$qFe_nu2rz)bY}${dTfMNTQ|e~D?mXPcY}AV_F!o@ZNfb4h#6-C_$hD>8pr&;^ifi^z&$pySP* zmflK6v!2G~aCsZO9{ONq{wERPp*C;V!|M|0Tk)>8hSr2AS9mr6F~*Weq+4+~&LLGR z@z5x(-t=Ith`QI=xYx1H)3=q`niz|Fi|I`-p2gSc`hhfWATMhY-w*4vOwd{EqKg2m ztUqRmD!ZV(*X~IH2$P#mcUH7GC?8Kz{~%TLuV^s=(xTc2CzK=p~c7!=j;T(3$F3f&x3{zZxUH7`1`S_?kHxRP3 zxuM1vM%gM-TKlry{*y#qX>#M3NRYhrez z#qZ->6B`P8gzB|SoOsTZkd;(eBWsKmXrTYP;E1>#dT{1lW%eNn#g|db{P83^G#Qj1 z5ywY5wT3_(f}M|-%Q>hthabx?+B&iCb+;9$y0FJ`n~ z@hEG5xjwJLejI)CJ&Y~sPSG1N$$=?K?JfG-L_BpLVk}KfS592PSVKz_n9ihj-Rrf)4>_BvuE>sRGO za_3RaRBL(Ds%~-kxU$Q9&rLuj%t4=&^AXs1aPr5kB0R7}F^0_Okm`|>25c#46g>KE z<}eB7|IBbC2|5gQQvgcOb`G@_uNCMqy9ekO&%gP2BXIT|a=dVAhfQ+Sciw8rkgCpb ze|Q-V78#JCofE2t9yn?x0or@3`YptV_i16B*mlX*bfhd9{`^G=mOEnl z&*YmH&0_f+TtOGA&Q=422TC(R856HEb6dQP`d6>~KWMLtX zq8aio;HTv)pMQD)xfJ>_r;uQC_mb7ADqS2YQAU_DV#<5Mrz6gH!_f`%sEuGm|oG}K1C{fIj<4+yoP}^!RlOW;fW5> zJIDIA0J+_!BR25&7RBke=0&&Zzjcz8UZk0<#@u)-Ns1S@Flr$8(Zcv*zEIL%F!?qb z9lq-L}poIAM(R-ME-w_9Fu#lTG2N{5)`^K@}&j|AF2I&7;A2 zCy>&j+JC>}MnieiQ~+VB8y$B$>Zx?AZaBpJozuaMPgNX9uC(y#qlqRH5@%jFw#@S* z_%mlONt1eIySHPfalC{E(se}Fs{1(NWi99s!-_3k(_QsSS7xt3ppXoT&;IMy)8S~& ztq8t;am%_tuiL+q10C{%K}9LhrhsHw^b1xHNr~WY0E^g^W8nR>Z_tln$mdf@n@`GF zN&Pwd(4pG!Sh_AxBPF|Lm&-+Vgu%>d(Ffom0+}jUHH*Wn&D6|4fT+jw9oK6b(?pZ> zhpUs#&ME`X+(3(UEN#XZ9Rcw0E!w7IUEGrbS|HWsfH{PNpZ4YLYiC6m=k9!}(jf)= z@|6N2yHR3tFhA(zalALTt4@^-s_rIf%wymN%$5(@f4y7!SM*`zvY+@r4=It3(t<>? zC*fJV5;QW?Ljc|2Z9-PIBk5F2b46R5H)`srod0+NfZpj0~-8^Q7Rv!`>(BP_??G z+w?2}rC0KHF%=IxJEjbH%U0rCc`m!<46LP4AGSYSWHJ=@7$zXO8FW4z4x_YMSO(6c z=RnZvHs!A(tmea={j*l@Vx2slf}0NrMf);&nNgB^ok@=gK4M{zWgQ3Yz6f!=i;wOh z7LQHMOQYr=#G9qi<2jEd&F%2)9vO)=;eP?q{g9Z7#l{bXK*h&6BHNQK+i1Qa22hK8 zlKvK9!OCa7j02&P6kbCj1lP~L>M1L>BcouradVuts?p@rUuE!#0O#SJK@496&NuWv z;x=CyFC&gom0*XASES~)<*nw2(tdO3Ws*!(QCZ>D3vaQ=RpaoV1rzNj zl5je0Zg+z!R$;sV*X$P;%{D?bg3|{H;6ckmUQ~;p@C6dNZC^}ok@C<|B(fK_XjQgi ztxqCw($$Fl-)l^7(lS#JjO{7fneW(KnRwU_W3j;j@C-6Su|zt{mZy6$0W~zyzFFg3 z$}Q)ls)|(9|85>~Y`b5WJmIbN##&y~_j*K6reCB2TrAbi-dxo8$D(Tnzu)di%Uj}Y z#!lu@Bge06jEWBg>7!(I?Mt3mP{V@zG!A7(lY9R=`2ReGCGim%9L9~ZeJWp9r->k) z(^)?0*N_Q8BFgNgOQ zZ8@N2ODk_Y&k#cxqLlVXse-UVzsOjRAo=L47o|t}9+*NP&d0X0%t4HImSES%-el23J>Jsy(4_`#f7^Te4<(c<|lv@ z&8kf%HEp&rdPplwIspQ(SYrM=!+~O}HsQr(JD~C`^Wd8AdWW;fr*spDQ;iou;Vsxnek2-o`5F7RArR`Rg; z{4VKydsMk#UYvNN)K=YqF?h%Og#~|dm+8r_{`sqG!0(2686h#B$E{+4>?5eh370!y<#lsg#%v;IfWjE0V(&`Za zsMivk&7h7D6-#Jn7qhgsLp0pL@YOE}9kzkd+1XeKnRbYda)c$eE&BH%o<_fguCT>< zKR5&!Pdm2KlZbzxE>A^+(4<&#)M*(|=f`j<0*DL;ZqJl>YJ0)P&gCPn$R}8G&wu?D zawa6pb2{D)+DA=;z2&pWFr|NF{)8SIa1%m&nSZ|PNr-xdmh<&Bl9pea4-+sdiGrBp z5EB?DpeEbfo=o2uNh8|;$KCfiT>=K2edT0UUo*_AYOAbdL>%l2zyI1cjT`Y_&)Aa; zIkvkdF;>f)$_~SGw_v43gJB%z*jBlBy_5}DIv9Wyn3^gDaQP1uP66`LG*Evk2Kke; zO=5|}#P;{0t*4_8PFIM?p-W#DZavKA^SC2hTr{a<#sI~Mlh2MMMh~K*Ao>faRx;`2=Ls2O6^5Vc1y_Thqs|sQEvxW`;R&If#pDAFmwcb8`2-r$|?=8hU-s*zaw8 zD;Yuu%*pqH$zSjwl*M(cs@2w)dA)y}$78!IaqbcMM|88z&R17|Py4W1aLzT5E8QYJ z3Q-;=5>dLQJc;jgc7753-Od94zI4IS+OW*i^H3~xxZ1rk9%C=hA`ig5)lKo7tr-{{&}=IDvEXFK zS(i=#6kzz%v=_!XreQCHom@G9Fj!gP8`=JcfY98rMd1{+=A4XY1`sfKBS%av)(^=3 z|IV?c_@$bg^18ZVW3rxZk_%rze4%JG3bufK2j)cJf#WnuV7f>QyW&UXavXkxDDCOol>zl_2Stf?LD}SgE9&d-&LuV^c{gD@$F$KiZ&t-3>axZ z8%{goDf4C(hj@)L@PkA4W^F-ysLgETMjTS;<7Qy8Oi`nZ`W~MyELHN7#@n|GDhtz< z2BLV+r`cP~?ZNg?XNC9|1L8W1DVHO>$N{M)AICV{En1V^kASJv+Qg=;FLpOI!&KoG z4h9lTu9?5y{~BljW=`8-06SrUDIn*sq*SGHpL_$&f&ECGA7gRKZC6d);VKo88>~Q} z&`(>K5|fo4=+aLJAvez10OZB~@rfp3kl#lVArnL9^b4|7zdc>?8=k|JyDSQC4GBfY( z_PUpm6@REYBd0N`n3P|Ig<^nKZDanl#xn26^7@PdWfKvk7kz|u7JNu-uiyEjw_DEOO+9DPGk$I%Xo*= zTR~SWgu$-`R1qMAG4Q*NAUgyr+M&m!OAtsLU_|QDsL-cJR0n>0>)O8$p;#5lPYMQf zio**7vG2>thWM{ikH(4%QX2eM~$m&c+^@? zWY@o264Guw4a9h52thq_@xA|ThG87{;9CROCmCK z$5aY7XSc}bC>!ScU03F_f`tY>N2JL50v~H)oVmTVyxj|h2lv&a5qsKFe*1}F#dPw* zH**5SBK`5Iab1;03yT$*SZ5T8q-*X&4wWmuERfEGcV2e)8DhzpTQPMI6wy)c=S?x_ zGEP9qB98Pao@S`TEIt(7viB7BwUD=r`;m=8qincx#PQal2H$8Qu&6c?dcPYx$I(DF z!=MPi1xWISCLrtuxQ%w*4b5hbx2i4rO@*C)+5Q_>+BI#4v`4p(e`b8PnjFgX6{Mce z*WAho%=;tFeUdwnbCdmPQlb95vv!#cBs@b|x;(_h7Cu%x^P+}Q6BUJT%}ZKQIzYV& zzJp&Cf+9iZ^r+B`{#ydDF2JX(bauJ+?;Y4ob9@+!z`lk~u~m05(DbXUg*k%kHQ}($8Zzp{lv-u2oGNe-05B6Rn=NC8D_+`VAZS$23cNCTXjC>Xu zu@4y^PdDEj>F~!C>jKuUuF3-UcEA>N2x}A6TcLV-U+=lm4cnu1?&rL$KexKe2Zt0N z=Ix^^Ds5vh1f1{(j6Ln%pGp;%tSdZ5_nt&$($8pT-;X(pDCW%@nUK_9XEXm>6JAce z=p-WoETUE?RMCIk0-rkletz;pjzZMMa+7hwBfG_&kN^I+UCL0w!h~bevH;A1@X^) z+Xmoi_>;c@S;%48U+ecsv%4-eM=3=~)e*E|#{9%CK-(P_;Jvt;KyOX4VX$JyrXnkh z2gbT48_!>&Xu|GGz5Br=@)EIMdDlxy=#x&)&DC+Vu}IAuryiP%ElL>NBgyat1Z(e? zlI&N~H2-vB34LD*TFt>j2x&l=0QFA-?Jtf?a9vSw`hKu;{}2B{1OnF8k+> zA!7!6Zcgns5Clq)*yT%W6udcOW8(b~PnLswGP@uSm`A~f%x`4)l4i-@vUac^Kl>C! zcLUj#%@_W6*o#at2V$T)TOS2b?1Jv=5B~iV+W#0|UPvmB{tBw7vAELC?t4^y*_v{o z3qfn(spbINAw_V800uLiv{0YvvyWW3@&T)jOS7>(n#-9-{)B{U1zD8^R(|R)?ODa! z_RQbI*61Gs*0X$urCd$*&tCWYW|{VBm%im+lk>=-AsB#jiNJ|S}w8gn)-Ta%1s7YLhT&QK1|wK=H$}cnZ=b>7GN72 z`q>5O%=0>-WHEQt#ILl+x=HB{Soy#|?U{CUdt{XALnb*kZsxI`aK^};x?wr58Wu2l z!3FaI0%`Jp7q{62<7K3Z_ySt@vcnhoF-#t1GI6*uHw&|>l{M>N!KwtQ%~w^B+E{*> zavzkOSP3&v@|+PE)UiKtZOWQ5Guivw_Ge0Nz(S7=O?kDE%MNCfC`P_F!_`qz3tZ8 z9APf%%~Oo{Ptxg&g%z}JPu`#M8he8qwXvuOhGfvHc=|9gzBFjxh*+<+Z8WIo?Ohmv z;-m;Kqm2WaElL{x8wSo=OTzqYS(QmiAwX;r&xPc^s4oL27=Q(@pq-lhqr3>qXDls3KAF1iVtZ~%{D0G@KZM>&XlCZ%15ke;pw6#G`wze|oSg(g~4Jp!c z*-H#~r|cbGHX}$RBrqm&ehE8Vp~tu&dVpDA40@+k3D+(Cx1ED#HWvg@Y8`*kz&2APHO`TP)&C0*|3NPS!=e1`2aCv@|fSv)k2?}NzC+pPWqcZo? zJWl7i2}B`-*5>NgBG4{nFsxDLkPK1LD!A@Qfm`6X)nPHJX;aC3X{4ZupYh+?o}w4L z*RVc}uf=t!tL(PS{Kb#zI1cVpDz7wCNC3LGl`qT+jsyELw@9rGz1eTEXIZ%`Q*bN! z0lQ1AgEQa6trOW%7dD zA#CM=kB|@+G}zQDv3{zKyu?9*I_#MIDxb5tjjF@qDu+O3fY$-QKajJx;CB^JTR&lu zc6My+V?y?;urJ)NrrE>PBhUh2ir9Gb2{0xv)Y18@m`xvVJSWhz#eT}ZXq&>yXHNk! z$U_~s{ObWv=kzG=8(7ueXDV~+x@+mM$--hGdsZlNl%NujCv1VUNWaxBN~SfWcBOO0 z!lRUe@7=1)Sl2p?%#rUX(vlWaogClJB4361y3A>qjs9G`zw=I18I&c2AOx;_)*%8+ z9?hjszh5T&+P8?a5^Gx9Hhp-6i{>+RWE zcB9N($}(q%dXIKeEpD=G7C?zcB~|P3st0b!6sc zafEmTfNVtIlHeJyQ3>2Ba8LXM4|7LP3twd4MYO}T=wFeEKXk#8V`v%qUbVS`{QWFf z47E{04NgO%T^Bol{GMRL{7P%j6qIehP4Jf34*S9G-O~;8{HW`FRWR;i17 z`u8FMy&_0ni#-YK3csu4(Q9+X?xdY_5E_pB;3ts$rm^$c0Xjy4hHO^RIkL>#1=H7w zA|YTO;$)?zui?1los~3iL>q63i|TX%8pQXCPrcacZJk+7edDjGgSs2-f}D;bq}D37 z7l?%-c~S8>C0al1-I_q)>m^Sn-4mIZY*}dC+1~&}j*Y^U4d0&e_6tHw2Yo#6Lzb6I zv3Tvz3s}0=Aka1_nv?V)6)_m?nIJqxU$$9Kw=#Zab5-OY$diD?U-Ir7q5)n?vE+Yx zeJ2}fXIc`ri;wgAaMs^5IfTl9@Z+;YGKy$?=P!t4BOKe9U(B^iZ;oy8WO)n|M7uo9 z+`HBq3-5>p?Bw*@fD!ahFzkvs@+8qP3A`nd5hiY+FU<1__Ot(S7&UJi;^*vWex<`W z;;I#Yi#Fd5)=Q7PyW`Ix>AIbsovC|Icu@NV<2L%FQB+@mftAi0ahfpi6$lf(`!KLGYV^ zbo@X=l-L4G&Nc)V%iipyTCcSpEKJYueqzU-K^3NpjZs|Lb z5U28xGY6yuJ{a}Jo04pf9cc{1s^uA0(A28wy^yK3eCZxK97=&t_%xZr(6kQ=&B~eCwS^t z^!kH$j>5?|_$Mmr!oB}cso8t8w>Pph?Ip+PhP8C`-C6udUjCY-kDBW&x|qd z#OdlGF{5SBTsQVFb{<8`a;0cWE$wM&YBGY6o%_u@YV0~~2X;qB7zi51V~#|2-mKhP zOA!&I8K|6EaS{-+9Dh1H0@aK?O{deD4gv{DDcY-ByJJt_9@*}=+w^9DE)V;KxWg3*Dyk!kLsPSc zCRz3XS0;hWwe0fV2L@)1gGW=(QqQS-0&)Q~JYN{rN8I_XW}2UV9asO2lMG)d zG6%ljr2Ed}F0DuL!hO1z5?d4>(XFLFnkvR3^<|oTo%t-gUyl(IZR>Gg#}BA?C5b3xrt0Cakuq4@URX2audwVmD#xZRj$sv zMzBEp^_jQk+F^=(*f=Pep4?%g6kERvKl_KCC20D`D>As%-{|3@Bjwsn3g)?t(L+rm zc`VXk2FTz;JDE|kp(mHpB#<^cSSN%rI~b_Asl1p-pMdK(M5fO7=2Huc!3LN~gDs*+ zvl>w~HWY;^_0<+1>4EY#Fee9mIZ9Q@SfX~1<3ar*$S`orhZQpK8^1Za6r(|v=8Ok` zNq&aa$}SpYS3)4#vClntUQ2m5)sKBPR);cr2{fSO#iRYLN&^nn<>l{wSQR`U-lT6e zC)>b4mfmMb*D862VcDBzl%j#Ee)#=P+svb1tS?~JF6uEULtn{VBxz0D=iaN3x-mZ| ze&8?^IF)G!-?qVq=Kih*wKg}TL?eE8OAUQOhg?41#jfLcz>?lnyLv~n@PyS$>lf_( z(9L@Ggaq3Dbc3e*PgcxcO_dJ78MrBqN(6i{s9>b-@Jqtkrd&bqO9$F$+I9mPBtk+B z<^^;G1yJ&79KYA1H0V4K57@x^i_LkENxOV4dQ8N*l7H$v!A-jtIqeKgORwrpMSqyz z)FIhWd|L__llb#U1)!8_6z2P70hbq-0f6HDxvE_C-+fQ2KPpZ7p6iMeYXYRq zNMM}sZ2uy4u?g|HF+ULi^n|OzD<1F=M)+N{K(;_rQI&VGT;W^Ym4?mO5;~X3Hhs_4 zryOWcy@DbW|66OiPdW%i%K<_-lGnGh5`{m^EwQZ~u0lnDFidZWBh-tPpKF8|YAVnD zvvzzQl`A&ixkZKXg8Uq8w%)v+3Ovg;!OCXS13!BL)U*`xtKok?+ONm$Z1xK$e`+yd zot)IDln~|HS1lSw`8fE5bdOEL!e9#DtyitTn)UUpZvl3(iYJE;(~{w@>bJX=bH%T3 zUIos{UDl^>rkRcEv@pH-czFkhgRpB3U4f0EA|WPr70_0lIZk~#akCy0{+~i*F@C7} z4M@7A`~vO*kQ)fmf+Hg_f<#xhxZ84E=UGnzGfAQAt=G6IB)gG*121~yA=aymFDFqW zQN)b-j?{m1nL7{tVzRz1gKI0x^KL%wX{i{jy_`kb{Z<@wL|&vzJ>^@8JxSa98=Q~l zsu3ac{C9i(X4ad7!aQ%>A*}M=J`L^f0mEz`JxSok33st^8-w*~v6+Eiox1+MpzGc2 z(wEs`b1bMMi1y9O0Z5rK%4;#KQ6Bb4I1rnYe}^$~$-@`T$MA}u)?rTghTJKO>7%)?V+tgXE_V0a%GZO?$ zbh~h^I)Q?HZ&>;xumI~ajjWjMoNq6FsWch94GS?4UgW&&u16M(>_m3G{*C+z5p;?! z>s=RcW9*-qm!p8OnF`E5xQb{zJ`eB6%L9I=YER9;uRc2}m#kaK3y;ubK~*?k6<6WB z@e60(m@Hud&A3bJ;d&Z4#mqKH zDuFXOQ+Bu+r>4ITFUp(L$>5|Al9jeU752BAGOTs=mM4@*X$o>W+em3hB?I|}FwPJd ztiGBso7{HCe)2#Wb~LBAUmR>Xi#D^YQQqD6y-s)dIJf$NrfWBx;wCxE>lcKr32fgZ z8vGtlx{9xPu#(XmNP_GA9n$f_icRUnw&>2=tk#|*? zEsUgr>Ds2sGmlh~5K0fU&tl9)-aA4B5`4)TgvjRWvjYstf#E>6am4`#)&=LC9T=wmm8KXFqPqeYOj)Zr6l~`DRlAS-A3&5& z=6ns!ph!1ySg4qcKJ!VxJpQ#^Qk=Qk@-Kwuefr&96+qx+$yT~2cKdr8d;Gk*&(o@aFJV*9n5u|)04Sa#n~~`Au?xwz&elfCP8|lvr6~339DKRs<(pE9t8d5@| zqu+Jl$KVF%SZdMXHppu5RRzh<6Y)Jf86%)5(goqG&wbX-`0*J9p61;wtY4WSOvU$Z zsV4q%!`TXEnTEk9zwou0)0nRDxSXrK?}t-U7gytxm%UplM~Pm`)RmMz?!qM(0@=d@ z^e-6mNK>QTu8&tsN=h=73FdVBsit#}m>zC*gx$7Q-ZWAUv-Uq+Nd*W` zmbS}MQgOQW63p(nu>^(jia9m)7|12iOIjTFE9%#4mOo- zz%MJL8cZ)tst0E%C^uEae4v+iKd`jbFXtj+#Bd@-D?hjh`og-8|#c zl}@suVR>orxX`Yo?nnJ0G_=eHH-N_pJBU1(73SY5t|Hv(Dj@ibgu`IkNf<`zcX_x4_=G8WMgiX0m^1f@V zZKQUZORZdUqL)3j=>@RJ?lW1Flk40DR+Sv+eQ8xF|gb z{Vl`WBCym-n?P0d)t@Q;LIkswB%#$6=Mk%=rq7nw-=6u`e*MNSrfRGa1JCDh?)vsL z`o#M%o}RFSAb>C{J?oX?k7)u!69nsU_IHa3M7^Ks|&~24G96Hyrynk=nW+aRK<s$>IlAa|?;r zHj=5lNRN0G$XPI`&3S06S)J8MVVbD)sW+L4D#v=ai#EOjMPj%5SXQbziZISXoa zZ@kFL^08{bY!Rj>WSFvyGhMF#r6XdIO4!2t?i*DpyTrjgSxN>%-{GJ46E`4qbB&_5 z_4lAl*+q$iY#Tl+LWu*7uV2UIh*dCM*e=Iqq)GWOZQk@Z@s`7O|J&1st7;V$L~WtA zw~p1)@m}ED$IB9aope4)PYkh7EWyjM zNFffcGi2^Y0M|+T>Lc9BPjxR!x4Te=qD!9dswt*7bP1-CGwbk}Ph| z>=Q!NVv_lEhEtzUI=hXh1ax#|oDgY)WoKcooJ4G>&WCV&=twbwWp#^C z-wjP5B650JwG3^#zHjHK)4n;@fR#!`ram5WU!A6~QE{8nBbRF{RnPuo`X99b+!D+) zUoZE*-SqKD9duzmHWGLEawij4dH=p|jR-xYEsV+GG%pC>nFJanVK}VBRR#aD)ETGA z#HrZdW4h~x-u;X5-jR)T?j|e6BNk0=6Uix>`3--}1>B&-+2bQ)=PhR`kNoqrz`5n) zrdFI8rY}9i++2mTuY2{S3`CY^3oPy@tbF@MeYP*aM{s_UO3xC9A)Q)IWtRFF8oKll z2*qemI?88rnxE}+>EDdc2RpT6eutmZ$2yIe!kod>a&c~)Ax{!PHKnYnTv5un?q!4H z6Gbl7r!mb3En8O&QOkZ1;xr}Gq!aTX!fx)og`NK~|m ze;f{H-SbPxa%IB%pub5jLmoNv0gm7Kl^8U3Av7?_$zp>a3NeVB8#M*HSaTw4GUprfIlNWHB5;T{txSrc&&ae+rTA zH)_0m>SSLl(x6%^ZS!*K^W`gdR=h@uA0MK^cw zJAweG++NPC7|=*xZu?j*fR~Wu)UDhvp2{ZW2&eWyoqk)*iMO60f)!yb6blRabU855 z`?{dwgh_5fq=STITSrj+Zs6_{%^FC1Sq*Nq0&9+K1B}8t}zLWL1itzI}T)M z|A*AM@p|u!eFcvfaw3(H;$?4VBEAW-gxFu}*4gg?8z>F>1S>st3=qicthyB(#rp{bXC4OLHkPeCZ5RQB!b)n~uhNcPHsPiOTQEIrB71N6 zwJXoi-hZ^sbvLx`^*|N-D(Q?dAlabU^mbGB1J4ldwPkq7T0|b7xE!^%T!4jwlEK`t z)CxyE%dmCFA6Ypzzi`{)6gIALdj(?p)aKE zFN@z*(+YQ_k&56wlR){{0jvj`nW<~%zF5l9gY}=Pt`%aN@79A|J60!+pYhK4e7_hXa1fgK z`}T%UF`uK!*Tqa6mXtwIjL3idHtWJ4;H0U{x|L~TH5Ud#jMf;DLpf%LcRT&;{ZWHB zwE%P|9?klB4j?#rV{e3F`Drw*@622sJo#p)FTvt>(o#|#Z{g>8np!@oo1S(f!M@-=9^FP_g-h9TRpZBP}NjM@UpM|8YZ!j5;p88@G>@c`#d6^Q#=vj2)Bx z^kgwraP`z!Hg$OeS)+w*K&5y z`&(*(MBj{mH@z(Sr2ZImC>B9zbaUK?>UrnQ)pVjiwn1Vaio>zC9Wn>G^bE(t5F-xH?^36(mu zrOPf=Q6a<*xR)q+X>^=?JT^-Kl&JVf9cAmah@-qyRmTzGJB4p0oG3D~Mj~Op$6G~T z`r1l#LE{eOi%`D+_uf0A7IJ#! zxbRxhv!M=GBm&6$eS`H6o{}4oh~g}5IfUWoa8g`M=r7Ce$hQ-9o0T^6lp=VrS}zkl zYNyNQxk8@8I3GGhx&N@4vsJ{xeayy;-8{@Z65NtJVOeU8@ zVNrQ?86S))W(7UE_?Ojn`^DgybeB5JwVfqNo`>fPm#aGZf3F5IT=w_&P7*O8gq?kq zIi-DFS@bt}VyG<=?-%<{oNcVS%?~J~P#~M6oYz}plC3=L$bANqM6J&V2I|lH3vE34 zQ6j@m`sSJJu44x+J83$SQ~gc((TQK#u3-J=r5TdD>a^o;^%nPUAGT~&omz~PevXFQ zZV=v6x&bNAs-vKfpzp5Ga10{yp0-v0Sr#!-};3ohFl*77|QdHsBH=U+S*Ez>W+ z;@4iObc6{jqBNeKnE^LQdwA6JE?2-4f?gOTm>IOL^9M$||BFOhT3Qa=Rz9={hM0|x zjj@Gm8BtpiQiZ0})Cgt_CdS6bCMJ>%mKN1+i|y62L4nM_*ov25IL&b+d%x7ObHBMO zmfz+w+{U{)=@cEBwaU*`);@}`uV9M4bpukM*q_89wiiTbty?*y=>Tv>h$*-KWN1~A z{$3Q582J5{AC@6N5lB2^kXLap4EWtI29l-_0ljs0( zxLkAWl-Z95?uU3SGOZh86~y>a8oMpwUnB#YX7&WQ;cUZzeb(Ap2UM14DGZis)xVd^ zVvGQPmKvk8VNy+x*vjlOD?4gmAxos(zU{~fvOq6Jg{N)f*s`ui3(U4!Eq(J4hH{LS zK`h6vxZ}!vbe=XO1uxD2vZD6s<${&lXmY?qAf1o4WU$*lE~TDn3)mQJc5HGozVHx$ znTkl+>^k%2y=_OeKvIQ!iLWMMOUvq?Mo%!383w6Se7d(X?SiM!UaMPHtLj`EDnCaG z4MG@>gmaexIQxVSbKz0e`J;A`a^SrBq_eCr4TVhdV71E}e}kh);L0~&&3Xt_`~BYK zG_*H_Wt?|k`FJBUhhbdl@yoxi!09XVXUFF#>9r{+9rY6x3ao|x$14ZGjoG8HqFW=4 zkG-$TJ8-J;!M%22)`QWJR>#g;vA2Q=bFCx}Ob(?kc5fmheoMAMqU^mn8M90K6o3;E z)ZqPqESgi{KFb4(=j5|rFY7(?0KlhLMva#fpHjr2;N(G1IwL_Nj5YlbBJEPmrQ#1161cZMWgA$tvn>y9B5C=bYp(ioN7CRo}s8 znNW!TB11R6fO7(9aH4$dR9TnI1f|1#neccW=Xm3z((?jB=x6WET<7Y>eF3u#u=+1} zC|WiVXo+s;PYhxtU}f$G0S4Q9)yoX7`%) z7DTIUNG>aaFp?TP#mdAi;XIW!fK`jDcptjv2$SIEx+Bic&5nlKV5)l0}e8NCT9kaq7Us(2Lib4IedW!ob$mg#d31``Pz?C4ve zYsJnsx1o0)#euhJ9i7eZE6aY+K{ogfeH$a~_~q8J#F+$*gv}$I3MVn=4YK=jlX|2t zaCH(;h&SWR1b(&#Lqb&48L^knt7;!zfdigpVwUMoE2(`+mO$Zj+NJru4HX`9gE2_D zMKR+|(pd{w+a&bb&cKAO*EYnFqr0L_DC2UeSN-L78j!5BWUZK`MqaeGGBNZE)V}C{`0a(}Qkm1Dsz?c3hRjkN^g=TB6rdv7d!?WR4SVY%x!?R`=zhM1wc(7cUND)sH< z8K;fUYMh>)=%2xyOG<7XOc8(dQPP|P=__crzA@?q=je7v7|ahO;|vbqrV zGMi#Tm`75Ng0QcFe#CkFU_l+D@NSO%iP=8uE#(Ox=thCz=#8`JyN?H?%_$lawH zZ{#@#R-+c5&D#ManNGT~=FioIZd9?Ui8%WlGlq1b`Dz$ZCpLZ5cP3`eoj$2Ud%nt2 zFQna%WcSxxi?JOw8wt(7CaC{-pk8Kn;>A31SN=5$pZ`10=`KI=g%BG0X=7%<>%|Dz zz-b-wYskMM=gW-)Ahuj0a+&ESkf>kTTT`|5&m~#xM4;I0TgQzaug_RK+bZ7$&JCCu zkMkDy`ePoqch-)dWL{ylRTWcR?hU0g(rC_OLD~Ycm-7d30MXIvjcbf22MHh~$NFD~ z5*lwC>zP6X?zw$Vyb-pweRJ-vPWlrrY>E{m)luiS2M}pLd7F>kNdlr6!0oPmSEgG7JR{3YD~N-$Tz|H=xik>44A*|oLImn@q;RXT}{*g^-Sp_LNS+Q|jGg7sp4x1+W znvOFjgYGIWxW+GrP+!1p$G?9c1!rxeRyI)VS$qx$+2xNVcnk_oD{;nsfA0OY`r08B zL>N%m`SB?5)aFWcfSf9;^aMnFrg|C`mEBFHbuz@mOBmyK8K#~^x|;AcEtU7*bQ08y zT0Tj%THfWj1NjLut`j;J5$GUddc@=gO9&D41xf74Y{|Y!PpXUY5|7(S+KPK#hj+kX zU-`hGPNbosNCJOo_Cd2%9tXRpybrsS3=CB-i{g+^RmOlE{1~{$7%Gh&;S{sgWxRJb z%lCi;*exDWdx_0NPn|0ys@{L-QSaA=zaK}gR$b!}o?6{*tP@-u7i(v|>KUJ%L6qT- z-S1<+Bs&RL)yqY+M|c3A7V~6flq$aXPNPsMzl zP54=hC$%g)!~1}nen-WoX16G}zoAh@+o6Hn_pv!8IkDUb3`JQr*SbNUg6+T*F^>x+ zY$C~ug40v&ecf|ocHuG9aMYRyt<%;1c>Onb$22pGw`$WBF30iv;g!_kAb5um2Cr;9 zptoENi+xIm853E&lIl^KELG$_QX51eD7q=WIoKn%AAN8qanhKA_*oZE)A8(psk6AP z!SlgxdCB67-K*`(#dud;Rqm>CK?o#MR1~^4#SkPrA9SxHPLoc=N)0jOK7d=nXo_vN zPQzJhx-x$*LtjiU6-siD(^)%rd=xNe$CKGj+ptDJTRiVGnNSE0y9UKbXsU4o1I=h^YQWJ<39|6x0;EIbbV#N&RzPAjEIdb9NS=pJP%9wpF^%HK^+OS*j z>82TDI`a((4|OsCepo(MYPSLi6|C*mWPc>9+A$X~zBj&|vDfguZ7sjN_7PLu?Rg3Q z6D)zo=D$e!1#N%>Tl4C?tv?RyuC#%8jtN-4lK4Suz$UqnA35zelnKwC2OxClU%wO` za@bNBk9yi|~n7R{KPbit0EW5JDT z^S2JdP6Lfz0Uifv6olzv|DnDq1?9(dR^Uxy7#yt=#F@JB>4PY2{}h`(n7j%Fi*l=w zL&6W4NlJ=!G4H~<2V9*m$oibXZ+^&_89Hc6ai|@yJ`MbPGFt_Pofoz+mwl3e90O88 zC*Yi$ZEfJ4H>Bz4K@-M5*!mh^O16H@@7XW5-*c9lkW4k_{b%Ol<3ol5*@Wy5HXq@i ztKUKVhh()z&!?i}xy^RQt9DnXjDN1R3PYkc{#WS-TL(=LFtiRkjI;J)t78Tb`bSl5 zos$k)4k9>R@@wA?H#nK)@2UdC3&dVa-IM~UOeao+355{-gQpT)Xn0y#G3k9N$C42H2Hr!9VbEC< zm|rb`7!Jo(=k0w~9a=`W(frw$l$B(5CRu>>Q8fqn@Lmcl>>x|X5Jw=co;@xb(d{_h|)#6L7$Kdb(|RZ!=9Y3vtz z|633ZRv(&G+7|{^pIj1+icfnp;zm_~Frz{77a%kqy75c~7{7Io1*Hx(FAR0&BBRVa zMIexfhhQPh3Xz}y+iIA_WM!bh*6WZVE6d;-;jVLvxsc7XSoWia<%%AuuX1jBT>8MW z%nYLW>@={6M*HU-3)8PY z+`Zk9COCcz(rim_ClX$1gl(2YkF0G)xyaqap!dH=Z$nb2>)7@AyuHgTf1PvigH4bR z{K09NM|Y{9^~Im|cYc0s`|r8?>NfiU*@mSUa`Vsa!w*+~o;c_VZ@__JwetJ>v#L0M z2Ls|i_gTQ(9BiIi6u?hur+Frh)<R(@esQwM54`N7?dT^WvS3-?2A&vz= z`Zayhz(zYDZ1aWki#3M^8B;*_@*ltJ!bP4%^Bn%*mLmWo5dCR7+tb~FJGgcpbp0MX z<(7K9UK3trphJz6{9W*g@?{~{>+a#76AEb12I*SILPv}(ycpgyc^-*;_GR0c{zPSG zug-`hc7|_WdFgihBrYSkf`l12WAAD=QPjlMzxo~UV(5p4CakmV#WoRh9<)Eb?Exv# zy*<7nahU_6w9gq7XpW0~8^oAdS#sD!M=v$e+_#Mz0IB3R0?O!vu=S@s?Jt){N-F$l zjzc*(=z|_o+@raBj|OQGIOjLZ9Yk1BXc=E1qD^8GoUHv-lszt$E!;JRDQ`9%R%Aoc z*jVZn>R^4pBaa*ckrV5eXewF}p?^AAnUhB*dP|-TlLsT*Wf*2M@3%B8@naY?7FSbp zVAYa{87)nWD4@E0)N0DyrYx_n6dt3KyYh@xgtV{{>KUgX7ZCrLk!yKorDKHUe4)Sa zZ%s)67dZIk+}~G@#*F?$%775t1?(mH4IAC>v@=FCt|v+}nYz>W@6hur(v}J&iX=Z2 zrYtS6HIAFlKPv*c;1=G$b1l3PM>plpZfIU9Ed@P#su226z7aUY{-S58%Y~IjuM>(y zMwmFoOw{ii4)7l)m2!yh{7}`bW#H%?JlRZCkJo>S4Qc*E?a04@e8|C9!FT@_i+(}v za{2#6kqv9X9e&sjQ}E`_?|Of9Zub4WUf8fXUdd9=i>Bpy#q8bv;)hJEPKsI@Y3iMA z4&sC%Q_-cuy^K$GE8~Pg+LLjg=e6h08L!@YW52WPuQoQ3ZaR$~n(KZg$-jFn%X9ki zX(eaJ#&q=bKBuQk9*jx9BoEQl)y-p7di}Z_SxuKyU0r?pwlOs|wV^>A?m(e261&(Z z9ZP85#|#7bz$4MMVj;>17zZ80`1av#hLK7G{s?tvj_Z6ESXQ)_fF{;moyhovf@o?p9EWz?9|W%@kJBT6n6vV%k{M zOor`T;Be>>(kU{sLbhrxN&?@6D*eG~Idn9}mrak#_{w(9M$??1SGR(-IsQSxG--$y zd(j_QSj*yk);EhOHg6BPX#p>BENL2(a#^HoZ7S|COPG;ZJ;$bL?@aIpF_mOjXGbH! zrg^MOarp>XB;HJpdMXCyqX^a&mFTL}SntuvuHK)|pOH)&V`+8G*9u*pANuUj>?I{I z2X(1wa~D#d?X0S%h(7E^4MTpl*`ZFOrSoC6;flJG#sjP%6y!0#uikaFbY|n2zt`Z? z49k{?OZ>|9s8`CyK43BEJx!!)7*YkfmXAs#_B4=-yHg~S`?OuZWMyD<&qg_N_8tc@ zxg&@2+s!0(U&QWziX0hR=Swpr5!bI3NnC>vUHpGZD4l44EX4Y=~H1s@D3WIYZvaUMcrxCL+ zM`V&q-XgT1p$ErKt=5YkG0+NrT;IcpD3a$RS(1RHl9e}FO*VZcK%s<{qcaS%GGa>FN4F2pnegdn>N^;qgfVI{+!?8HXL zy>Y8-`=OOt>ZcSJ=hm)2SE^mg-8QFgcQ$BZJ>Hm$bDJT*zAO<85%6sn+mP-$HsnFuEPr&c#t+Iz-nn=Pk{vaFY=w}nGafrnaz8!k4|4LCJ;p!Q55S> zfczS>Xz$o;lD#i88&P?si&6m7onFeV!c4iX^E+YN`b+s$=cnAZzkUa)ahC5>bu#7Ti1w{L)Fqgi7nVp?bN$SG zyR%XpZr826XMeQtoB$Fbt~kE8`ahO31cAuHUys5=X%+;LfBj~8Wun<(8Ps&lYJ^~8 z-#;O)TV2oxMOC#za{71KgTAl#xd`Uo=9vcCg4tpQu#U9RT|VZGi_8~oQEZy86Fj*! zn3&BWB`Vw7&fKSSu41&OWrDLsoqc*X(|)N^+YWi^Wgr|RC)yZl#_}$=f{heXFF17Tb0|7@E{9{9!rPnVF^Q4C&$Mx z6ND9%NUYxovpueO9Fm>gd14n8+95JhlB)aClN5YjRfCeEB9IUek5U};*m1$xm5jp3 zv7642J9D1%KG4wf^K;M}2$7#}yE>4TBIpRZ=1hS5*e~}In~Z!KA%3Eq-+qZ+qoZ0Kv*fe!2dj96LCB?KfE&=DK_h}sk5Ft9y z$c*7ZX@ZtjYM=^3bkN!2v! zGv&YWB_%tXZNQ~npG#@tC^aIx4M_EE)iCe4IM$$4&Fp2}2eHJiHVXFE#k98}{;_#= ztMV9MQD}<)X$w}%)!))9UOYxd#zoMH2&EVZ4Fx+Ubu?+wo5<~KXXmxo%>p_OSW|t# z^lzJpB_8R>7;zoum9dup_JBh6N0mK$gAa86j`&~?pKO6IE}xC!wG^n$<@3B5xL z-lik$TUiFJ^i9QLY1ZDo{Xr@2pwE0ZYFD0tKYo=M!-EJ(NlAB0@E}?$qj9W#WkZ@H zvBYpP)|zdi+_@`!>-_eEm-w*Aq!A*;FnJ+mCT0wXxs29u^(@8jgipa%A&41ji@_>* zCT6@|01qdpV}G*1O$2Ph*wYJPLf@8?XhPYU34vrpSO3m_+G?6}<^kBgD=NHbVqmpg za}^BKRA{jvQ3oI|^QyP=UxDK*x-e4g+vfV?+A5X_6?oH5)agQK#R;k zJ3BjYs7IQhl_xnl*-~FHg4MMq;Jcl(v-4R5vKsFLhx#*M(@*T@jx4WY`^T6HH3_k6 z9cPY^JHA50FRg*0P?x%>LXv`8WEhH&`Xz&>FJec_k3Yvv)~S;RuzG?P5mziRSFsjq zM~Y$VRt&J@W%7H=i=c+W#%eIUA?kbvSe|IbFmb}s(b0n}+KV+H#Dc2Y*t_wiZ4uX59KO8OfpR1~VWKzt@$?=$Y7dJjPhdT7GtgJNVN(4A-rB6dS8@@h7 zk@pRFR*TQHI}(e}UMH|mEgSgeq-ydrRMSYl{SH>Ptc*uO!sn?Ib}FQmXJcc7MAnSf zda~%-xBk`r<)x*i<>e{k-ZH)4M;)E6!B#l>G@hy{*_M;WL$5!`xP)zEf9+hXyZpQP zzG3U{W~nLM!!aY4K;qyhf$yK28G|fApM{*~(mdztT$rhpFr!N4AU}Ca8nZ&_g#a)SL?YWF6MQO-N#-fV1Y3@q}d)1m&+Y*pK~yy%3Cfk zX=&-0SJ(!+FSHhz=ue1lLb?@Q2PX_YasT=Kd@z1zB+c26+q8II`rzMAtKa3SUu5~e?+jp?vQn7w6Nr5-v@^4_*$4K3rBV!oM5*vk zG)RvvqNTeCSboj7AEpZQdua%mqV{D8 z7MND%9AD-nD7cch`(Q(1T<@HRnwdJw&d%;mYPX+L>3ys?-toR)oB!C28I~Ef^jV4k z@?t3;o|hg&e1q4$@l>~uD#>+lQ}m#U5PCeU`!F0B zV$c?5JyTZ3Gmw*mBLYo$9tbw;We)z?*-0cOz#j6v_dB0Wvnx49$D1FGmKu`m2l(k( z#tCd8MkV0$;JC?jQ&fvaeZ_tj(mR_*uSt~&{02f@ElR|KortI$jQz zp1ci^EM(>&yA3dh2dPzkQB#^l@^VCm9&6vkZmWbrKL>=oXgbQPV3Zn0R_Q9Gauw*8 z`;bEvo)tQz=X;r;qx*i=rVfCKaluIbZ4BL!sPZ-wfS%q5SsgS5QrO?2nIji%C_nCI zWqWJ`)V~wBTDlvyXrVrcU;hNYznPWi|L6dB-K&Q3JwFg85XK-5nMg3`LCJ&8|G~cr z9!paEhkqkqjw|K`wKh}kZP&#%?cI&H}GQiv9G_6Q(CT0st05hxJrFtbRxn$<2(a zijW3=Fo~GdrY>1byElVV#6>-KSm+q$1X~}eEo{ggLpUxrEX-!4iY>=X$+EZ_LfAk^ zv4bB3nhxFLu7#%p;u{R9(`}DNLPPqrQ#TiFuVb*Z3um6xxO~e*httZXh}W$JYw34& zK;62HI!VN&!G!mEEA5<{^(iP1!ao4VrKx?aZlQ;QbZYQ+vL`K`rSi*gMx$~OS_@9f zJ8M_FW_fK&B8#7&H2H0bxa_-%McxgRzu5a$*zhcTS~BuP6!SD~{dy2|rMs!7H09LFd1i zyP}dn;{~`+4*@EgYNh94NK$4T^u7r{8PduGg(Z}ZF!w7-gk#1~jr#Ep-}KR48{-A_ z$~N`9u;+|t()nvI^4Fxx)->|-Mfq#M|HoT`!J}&gjk-vej;Fdt5Ada9qMuEqYAmJz zJM4)YPs@rWRfW71>CwvsBo_5Y@W16)6TY+NrP!~P8aukBsC2~C zE~40-o^7fAEG^c&mi87PlFnXI09b49%zOu}!H_MYb(2MMxC-`f$2+OV(^5f%7SHCH zQ!m#F8ggdY9(@Lv}zNXf&`Gp3AcpTJS zm{5LvfaVk-M=4Pmk1bvvmE;~Vdd~qq?_wYcG4HPMo1vdiVzVnYv2Ho?X7nw=5Wgmh z@CPLQUpn!;Tl#5_MCO~O3N|=&D|&+ZoS#bXX}jhr+b86BlG9XMe^DGDM_cv)XFm|V z(w~EpeQwDIJ`Z%ehVg?tj6IL`X4kc08A39g);5TtsaJg^VK?1GNpJFtkybp+BV`5R zc&mLY3>qW9_8Yp9lp>3BmvJMYpq}_sItQ2Ke!Vf6Z6pKe$jvn zGkoGpW~GtGQpSl4Mp^tu`aBJ`gduhiI-LQDVtw#^EAEuJP73CwZtS2t*nN(-4YN^g zbe9bl-J-#Uc~2gQ&`Pk@(2^ufT|GpH(6g%z+1b5d3YfA2Hig+DpH}s6On#Z*h5qev z1DqhlAJb)V;SNZY!*(=!=T`7rt9p=0A6S-bY2yL zV;=;G9^=P%!f!feu--EGBCNqeb)OZ(5BN}+YO z`L*x>R`|6!53>phX_D6LVPM8!lye;KtZYnR1dETld+z8-+c}4PgZ@>wDEJAKAhT)`Abc7Sb)+uCmGOi0>z#W34CG z@`o;TtiQ~yy%eS-`Q#d4KG>kmoRu&37|pV*$0U=&Z)3d7u3OpUoRQ5g#S8d}!T?+H z3To*HCWdzSI~cN8ARR_|DA-vS$bd`oc*73m6>#wh`?}8fdILf2-0&^KFO&MtatROR z-kEO#D<0~dvGzoBJg#_n&LWIMqb(mS4qiai^}Hw}oo}~C+M8`?qRc~X>wWnQl;K$a zOTI8mZ)5|x1pccQ{s|-c?iSwGMw)~nX0~-OHJ0nCDSZG|039+qEViYq3EmF2I%*2D z!n|$pWpZTwz?LN?)vn4T=pz%Syt~@?%n=S>F)%|oYSnNCF|)^^6^Wvq#U5E^Ex>+QXkn3 z=t&U7$g0zg8cN=`*6T_}98Q8V4z!4Upd{hsv-B7}O82z)7^eydxzsE>^UiYkq9*8b zpY>6aEXYe~@tPlslRGZ)*TzWvu$8i;F#bJmY;eg27L^LUs1RaM0DnvG%OqM~4ZnP! zz^Ro*s2^a3-*m44hZmTb9}Wh#<<_lGZNCp9thZrDTR(_`Mof%kF;;j0i1(g20~$6> zbLXA_>k-&R%lq9Fi#j%S;JjH7Ns&Ah1Ek*S3p0q&b(MT=iQ8PAg4Zh)q10I?y&F{) zaVaDMlvkUHljZqf;7Mkw3ds3_S14KuwyB zAU_?S-e<+(6K}?7=NGB`4iv;Dc&Y2-&>~%7R=`iV0LU=Id&{rAJ%qeu?a2@x6^%fB zQxD!KRoY$ozy*I?lE6T;6nuz_*p&}7N4Y8Xha>Oh@S;g?sQT|l-s|=GwbV5Y0e@<3 zW1N8%j&^~2vItenxq?3jaGz1o0@n(!TX-^hS%423Qu=ioA(IziJK@LJp~nATlOGbA$Rr!ls^Hx1M&=D zkhb`(u0)zsK)Pk@50SBYJj2!gc;G*%q)iD)UzuZ11io#6$p;F+WxntRqMr{FZt_5dfZ`BoR>D?BO_C zd47=Y`N)QZEosr>Q2a3fhS62jpl}&oB=UFYjE?2n8bg?x)^JH~Z&>m*W5}8Xe~S$K z5gF*CMo=dG8aP^ueSSuTVIxe@)itFJ){1oL?sgu~h7yphP$u53u=jD2qin@Na z5JQS(6{_N3AioyO`#Ly2=o8c7{je0Vi_Y(<5kter?j3HhkIWsIsmjb8w7h)J(2440 zru;WxtV=2`$u*I9uNRM|6F+hc79eLlez)80$i>|p5OEM21{F`u_0FaYjkfS)i{V%mDvDf0)yjJ|7UK+&RlKX17 z!EZd1*Z4<@S}ktM87wVrMO+}H4rU|euAhf6Q7U$GJm>w;KAF>*D%dI~uewv-HYhqp zjRt#MNiGuyRWcIq?^TCT*H!lSMNp%TpYFsYt6V!0NK89WzQcho!pyljiG=S>-gzU% z{n4Mo-o{w!ScB%IkJ(-FsWg*knJE5!EE7vXlD$bzvToARR8nUK^7U~@p?JILitQtJ zYOaxFB^p($$lS;F%7b}5dweeo1k?Y$Mr#0T1b1gnW0^0t(SLtYT6WZ7AVcusfKGeH zOHZ^_fDk&bs&MKFuL%a~<1d2~^m*wIY5%=4j!}6Sr2AgHRr4P8)Y11o*Z@d(XkPW< zwef=#DinAJ09bgEHO~hvJfVK_LmT?QDK|ud#0cL24&-S zs9%Z<6ZN^|<0`r2ky+0e>z-fx14wpN`9Kv31;N%Qwk-5RQJMcf{{Nq!&)~RafQI!* zL{AUm0S>dGe`>{9>L(xt=mOk4JU~BND{E^HH@8V+T&?LH-(xsv=DQn0<#e*`?C0Rg zsbFW5;d6xk9iUJ%+{g6+pF66ftE;P}rDbGfWN3K(H)tBt8F4sn=mg?2F;p4+egwJP zwe_cyy@pqi|NEbc3070apjrfA`CAca?+lR+2U)cLCqL0;a9J|i+9T-_Fi}xa>w#4L z=g+M@MHJlC0Vn$X_2Pi|z6u=oNem#PXQ~}^ZES4x^`}xrT$vOr;0)RPjfX!>e!O^f zb$OwqqqErYF-64H+S)o7Nor=v0}Z7=2T3F@HZ}?&r`Zat-sj&81k7466MNlP(>z03 z&EU#1;nP)iBdcKb#8BT`QP8M9{0HK1eqfQsB_sf%w2sW!ZK%O(|Djsy$;sj;PzR<( zHvjiUR!2uiQE8(nA75ofh0FGIH7*&Kn`j#Q^Ww=yA2>3{43iN1@n;9XK^GR46c!cT zgGNyBMY4W=&$V>k_tjw*SkW*;y z>)S|}SzrG**`cIvvjo0Xg3lK2>{HeYNNs+{=_;1=H!b|Csw0mcJ>uo%RT+7EaX7Ks zpK{zObvcB>cwGUmh4`t=jX21Yx=_R}cUvDuz>XgPP9L2%`ucm?p_CN*_Fza}2K2zi9K^8jN zQY$&xRZ;BhyPx9d=tx09(e!t$6zt#;3b}cFmf^LMw6I`qJkfOc&DrPgI;ai`i)GMH zu=2dCpiybvKV5DiZ)W!U^5P8SBw$VM%kjFPyLK!z6ny6MXU`^|(P;$_uEMV_&pfv# zcQ=Yk!M6*$xEyYbZH|AdtmR?KIozBmHKuO=9&Jg@nKQ-2xInyfq{z^EG*?@P?CLfdmW26k6&Q7K`e>d$C{#GFNpO=sXxe z>tqg&hSQZ4SVjh~RgYDo@xvg!S|?*V!m>Q!Y-02m6q`1gU`MB=T>zbi4;s3z^ywqK ztAEx082ZGO73u^&J(>*nKF8V>3P=hNZH^C$7@>ignVECSBu-5i9+$uAJxsioN$J~8 zS2IfO3^Hm#2k^7A`K!jFMboKnaNi)7;?pP3iZ;PwNFL9E>vQngf}DL6Fr!Ve+1c4g zMn=w>4E6O-`}hX8W@-m{@MJX?Olagl9r4gd3ceNC{8>6V9pU)s=+lQ(iE(jlaNg|n z+1c5yp0UvPw7#F`!wDIEo1}*29OfFlF6Jdb&Y6+hV`om4?rHJvH-fNVnIE_e8s5Af zbq<4u%Dl(FLmwU6yj|6bEeEo}PUJ)nsTdL)pxaj^Z2+z(Yg z|GYx}EBVP7oN%RpFx5(K-hvgCmihs~2_{6Rbk1?0cx54ko!cM@b3Rt;%N+E5A)Gx| zEe(`{f|Fd+)6)#xpgDOaCo&K1F50qGZf zIr-;kd*&&_5ZJWoX@eb&a~2$WZ7m?DaQH-tF$|bG*6^d9`KyEVkzic1aWS%HH{cnr z2D4ccdj)QvpX@S*XFg>hGJWVT)$xIh+hc1oS}CW|_oCi*C=>3v6PdBzgJ*?r#wsT# z=k4wNkfz3Ubs%g%gjT{EoNW}~=O>XJ0-1g;lZMYqIljtD7=OSvZBULkB`D>@bX($i zy=VaDZ{x@D&b$MDetO1t3WDY>L2>a^wLE8JJ*liFLp126_xx0E5>jS<9fG(l}87C8aQUGAT7(A)R*1r zYanoNvb%^tAT&v6#NYe@r3=al9H+*o*d62F4D(#rxl9|yLwNqgjuq(+rU;cjd*pL| z@_Jzmd_%la4r@60BQhAj|KB%2D}h(qJAKQW)Zl$+FE1~Txc9i9q(y^6uZ%8D?J6tL zk~e8?Ztf{VbiZ}pULwAVtb;?*)arTp%0L?2ZX{Q?)CBSN)Ma7Jh)Y*uvcgKap$@XK zI8*Bkwqam(A6PKIy```W2OH)OJsO4u&w8vYHA&n(JnRFdg@Fu^$qwzW4!(c?-mm_d zu})E4-6`2j6-M7fA0M9#DL`8n7YSZn>(Z%f^L zQ`x=m$RrL0KJD;zKFcqQ>%{;o;A1CFoOpP+ee%gCo72x5&GgwBlb4zK^3|(V?ze#%BP!~ZY)fP|uxQzyf8Va;ML>M~{Ra;oym*mOT>QC_ zncd3T`mKY<-XAZN>v(y2@7}#TneX#Ki_5B7Q@!>A4`^iwU>BPTYzK2paRTft|m>t6{}|#;VslF0`gy+6{C$ N18^^m%Q~loCIJ0oUxxqy literal 0 HcmV?d00001 diff --git a/previews/PR259/assets/opybygz.niLCt72m.png b/previews/PR259/assets/irpmxop.niLCt72m.png similarity index 100% rename from previews/PR259/assets/opybygz.niLCt72m.png rename to previews/PR259/assets/irpmxop.niLCt72m.png diff --git a/previews/PR259/assets/orziclx.3UVIT8DR.png b/previews/PR259/assets/izbsurh.3UVIT8DR.png similarity index 100% rename from previews/PR259/assets/orziclx.3UVIT8DR.png rename to previews/PR259/assets/izbsurh.3UVIT8DR.png diff --git a/previews/PR259/assets/fpshubg.DC3TvBOO.png b/previews/PR259/assets/jbxzeyr.DC3TvBOO.png similarity index 100% rename from previews/PR259/assets/fpshubg.DC3TvBOO.png rename to previews/PR259/assets/jbxzeyr.DC3TvBOO.png diff --git a/previews/PR259/assets/czstwla.DuRAWgH5.png b/previews/PR259/assets/jfdzwod.DuRAWgH5.png similarity index 100% rename from previews/PR259/assets/czstwla.DuRAWgH5.png rename to previews/PR259/assets/jfdzwod.DuRAWgH5.png diff --git a/previews/PR259/assets/zmkscox.Bglvb-jp.png b/previews/PR259/assets/jgenehz.Bglvb-jp.png similarity index 100% rename from previews/PR259/assets/zmkscox.Bglvb-jp.png rename to previews/PR259/assets/jgenehz.Bglvb-jp.png diff --git a/previews/PR259/assets/tyqfueu.DI6pFDzZ.png b/previews/PR259/assets/julymcg.DI6pFDzZ.png similarity index 100% rename from previews/PR259/assets/tyqfueu.DI6pFDzZ.png rename to previews/PR259/assets/julymcg.DI6pFDzZ.png diff --git a/previews/PR259/assets/kmmnlnv.BJ-fni57.png b/previews/PR259/assets/kmmnlnv.BJ-fni57.png new file mode 100644 index 0000000000000000000000000000000000000000..5c596db6adba30efcd7d5bae244755bb17b260b5 GIT binary patch literal 66927 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 diff --git a/previews/PR259/assets/ltpuwqf.BJOgYTTM.png b/previews/PR259/assets/ltpuwqf.BJOgYTTM.png new file mode 100644 index 0000000000000000000000000000000000000000..66438de7e6b586f9b2bd8f28b38953fc15c4ae4c GIT binary patch literal 79898 zcmeFZRajPS+XiTh7$9MQNQj`MN;e`R4U*C#U5a#LfQUheq=X1acPOnW(nyyAk^+J> z(#-k1-!U`0voRa9G5j09pD#YoTKBr|>pJUN{>q9sjuKN5@7lHNsEo9v%C24ea(3<7 z>qE2$e&fx;^^VYRss$}>7{;bSL zN=mrAUAxRL?DP5G-%%0orvL9x51vSf6aDw6xAFh~uVEqn-&qjZ(k$v-yFRIFYu9_F zW@a}1Ui_1GxloGjgj|x!cv4tcSU`XxP0>MoANOu0rjSlY>R;_k{|3Fo!^6|FzKqNt zIdVi^LE#PGy}S4B863`(RZw{O^y%&JrN8~9G9gTbwwB6qk00;d80*P3>dw$o)qI(H z+{DD>_xCun@B*vuEYFRV=~wqhzFn7+y27bbWbHcB$76D^v94|n-=V6inxv8%8>>I^ z?PdSZpO$64xQw~FYb5j@7sPfp?X|Qb*O%GZ+5L{3zG71U`n|#%ua6qlU%#?x<@x9> zbQ^fn)A^8OCMNpW4>iS#ydft|yC@>Eg%2hnCcbmB$fA9GVXUFkk^!G;&e%xrv(6wS zN0;v@5BDLu`H~tZ!Q_`VW!%L-%7c%&qukEXy2p#hfnC1IHYD#?@^|u z5p(lU89YTR;MTTFSTUiMS2=G{Tq$u|7#qZGy z;rsfyJXUR;vZPbhqC!JMqoX%hW^@!4f~5=Y4OS${g?HWE8($G|#e{gnB%DKUDuuqV zzPtN_!W-U3Ip51?ligcdTIRYkb&gW=ZvJ|S4}G9Su}30BBwaJRtGzvhv(jm%@4MJe z^qV&g97m2FlM+wK4P)2Q=vGMC8^WZJmZNBBNWYPkp3eI2D&f|S;nx1GFaKchtt>cgz8tm0zV#|MtO2oD^*YfX7*-=n1^hjZr=m=vPS zE!3@2isYGCSy<{D8ba!f$H&J_O-(xu5@!2LoqKzG-@kwVlA14TJbu)_didwhpYPr= z(9pyjI7-EB*)j3hOMxNyf{>67+X)>lt@{RqN1WNsd$DR$V^R4E*>E|OiUa=E9SMaGBYt@zM|rX z%lP~EFMet7!DAU!{jT!zja9yfd(Y!?M7=gYR@G~1X^}I@-wt10U+2&+c&eJ2kui-O zYxX_Xb9suA{W3TA8Bvc_zCjNo3ya8z2!8u`624L?y)iRfr*J};pJ&;UFK`f_1x$DddG9itKS z+H{eXC1&q#ZJq2)@5Z9w+cURse4StJHefz~{xau}5BDlf8cwV)PPQjcCUKDY_mn0k zC0!1m!0&pm4*B5`IQjY>K6&iaCGnw2-n&0fk&#uEjn2E=2s~R@P>^A_f%5;$$map+ z)bsJCH}-p~urU;ABIQqzlIFPoyZca_&fBM|stWsBzuav(P;C2Fxm#grse2Mt3vO^4>Ej56Zx+z`f|u8}#_ zolTqkNRnZwfLBZ`&VHZbejIUZEu7@b@pQ|mK_(4hzCJ$t_U$`GMU|yjy7KAa-YbzW zJhQyldxQc_ZKs>5UY7D)Tu|G;S+Dg&>zq^ey?`r_iBuy!mNx@u|#c4PIk zl{>NI6c=B|#B7a)8`!_3PKKi>mL{T>QQ0P_+8`b`~RM zS7v??$6fhaU7ee7RiYM4DrP-`+VNH&m|}Uqd(IgXL&MKrYYm*0KEA%GuH62Td3UOx z;VEjQ9o^pEjwbWn9WTk?Pv~qY5qbB%Vk2Q;)Nh>JzkmOfaZ|DFP!-zGYv0QY%`rm% zYG}RHZrS|l%0$&m`?K%BfqG6m<@lbSp5;H?=~`M$A(^*w8AL@Z^2~-ldaUJ55kGwR z5cjRB$IQp){N>5fv_C&T-XFn5r~MIjT`(T24^8{yL5F&ZvS1wk`t@r`DXIGIQQ_8K z^DYZY*KjA|onQ5YhO;VYhU90QdOlGC)(88P*wE~TQWw_k%f)z zML>mpNWpfpP;s@((*U39DzW#5N;gLx)$D>>y86BC=89*PV#DJd6LE=fq#o;2|I z>{V>@gLiHFvXD?Idi&zqW^JuB)t23p+WLm(=IyoLaRR<2B_${w92^{I97}rk-@5+x z6*m0%QF_hq7)yYzwze!0_RY+X56-r>7ueZ7SEf%VH(iOGo@h-#UrD2`%e^-!s;H#* z;cmZFz!?iOGiFkvS0N!vaiTQXy4LKRoP)*oztQnn9Z&dXWMl|BP9M(M|gv!kf{`}+q3jLXjmxvxyu2A^ZyXid#= zT{IQ+v#on|9>>+FUdUl$4ppr^Zc@08{@N4WO0SsmdoC`kzvH}{1%9Ex^l}1*yjIZP zPiVH(XtqYU{Q6MV%FTtt$v-PD{;1Y`i_1qfmQ2%yPQnGueIY4`(_jc@GpNw@x|9|ZqbDxDYcb5A!b1SPZG|~HER2bi z==B(riHnQN^v~iD8Htdfpt(*>gZovJj}MY`-4?HHEEwIC%PlAvl|R0;vch}i%AI5y zViFRA+&lYA1H|cmy>P2`xrr_O(w9C#+1+b%zQ&hr@%MLHzPr(Wel=yTi~L&Gi0BEe z&dY0UVXQq_saJ=Z@2&@~y_xDzY;5cTjY6_wOq$v`;J~Vj!L-TshltQCdpbJQJ1k^{s>5J~r#!bb4k(S7S2Xz-pC?aFP*9}sf6UFDj}>u` zXn9KdE;F+njax@Y$Ek31)Oh(uI+?`2J-f}`W)v3kFt?2?u1#}>|5YDaRqsUSoNHGS zyPV*(=CO@08$H*kp01HQX!oPY=EjRtpR?#f>eL$36SY6w^_=^4)k#+6#*G?sW<^_# z2Ophgq6E3ftfB!McDA>A&s$hn$iLEI!5$XL4f_6@RZf@y7~_P2&)hlmN*o@JwI#^~ z2M43PF7OCBP4^@#(TQMukkHW3C}ydlCCB|KRLRmWry?c&RQI&K(tAf|C;euERHr~gOZ+tfD{89Kr|;XD z@>+I0<*E!IZ9`#E^v{#beu0u+$7y-T#H2d%0ZXtnz>11tgV??`KdR`|oM?SrC8h5y z$svRT7D$5w<_vOydQks&V2CYKifHJ?kXo(`QwZu{hRV@jKa~#edj!bB#VH_gJ&MQb zTV&=xl!KLq02(0{-H#HQn$GBuEK&5dinb;BJ)>fzovpQIah~sUbVX$|)JWpvc#0JpNTGA*&v_rQmgiz^@C?Sjywm>8Pm z#Jn%Z4<4oZ>QCPDuRVHzQt|G$g$29jN!-HwX~}?q0G6oFuH8PQ%{5gTz0R4|@n!V~ zq!*qXrGB3y%)#*&sQwHvFaXDRbIb<#jAn%D4NuDEb=7=DUuzqiP*2Iu$~nttn|oMr zw2e5DS65w}{4y&lDmGPu2yIV*lvKjg(9GMrpVGE82L$x2&FCd&6_vRhyh77 zvvk*n{Af{9F5epvZeIQ2rda)<_v3w|X6`D>fTGM}iku(hnM&`E9N3CnluSTX=OJUk z&i-_RSW7B?B?G9%%a|_iJ0Bn4hr&X2{&#`H@+7L|bAriN=o71qV;45Jwj!y`C8VXK zzBPn%;$UsyQ9GSz|1P@mg1n;syLfwR>rJNJ~uWJ$~^&Z zJ4^(5Ff+fAWH>}jj0%KqcbJ((wp=|m`)!n~YWkPn-pKq1vMBf|Hxr)f$}*0g#6E1X zB_fJnIdWF`V;((eb)5@+)7H(FK8~xDq{aKy7#J92<>bzj9TNHxl$(1W{p!!#`*@bh z_t5w~_VG_LJb(UtEIjo#BQvwTEdL?i4#V5Ge~pZM;fQZ164*^|_WlI@*PfmTuDibI`M>+{{*Ef;fMe6};@a7>X93*;o<8MA&qAjfQ*~33h*$O+`?h|Oon1kT zN@XqkEqVfN+12{{2e=OVRuO1OsdHez7cDJq^B6&CiaM~H9@k<;Pbx9meI_|k<)Ycp z)w6*$T2c}U(HoOs{gp2Bk3@!=s;hnTEonR7D^RaA0A%=H2D-XgF7?hMU%dl;XkW7A z_O7;XS2azz_GUqt-1l;Pjcv*qk#0z15OnV_OV=GWd)Zit5R4VWxd_= zQJV2p#w#;C8;#U3x@!a1sIYVzd(*HsIH-ErsB)$_(z zdY@6U_E=rIAlLQ%&|XF|8FBFk9)a04`LVbPrmyY6=cQzLTJ(_@)Vg>A< z=vDn*EOq?ze)tz{ZAYrAp4O9NH1(;#pqJ2zu}`T_pU!Rgb7@D`WTrRYkBj>?DcQ-B z&SUkIPX6)nhA6OBxq8I59Ib!4v-3|z=j7xB?SvC9`hQD#hK5GKpY`zJ!zeRNldibS z&Ee|j0vn1Em*Op%#}?OsaHq*u>b*Qf4SL-i79I{`Utyh`oh}u7?`(rtq~6^XSc7(X zCVB2pc4dYA?_;H-AT~zdUJSi3I>T+Q9K*&l@b3EIl?D(H-z|$fxgX2QqV*WWM2iMw z6&26oU%G!YRa5H#Am!KcctS#(m7Q(yCv$@~dcPV9XAhS)dTm-|JwcoEm=01qAbJej zJCfUitdx<1<8I5_tJoy7XbOggLm|vcqv3Z5$GeCvRuBi8gjO`eHl(yvsB|YN6F3Lh zG5Xtde<|OkOF4i;V`F2jt*w?>%6zU1qhI_;@;4*~%iZ~G`nWYUHBX*Asi)Tuta^~- z?Ca3b+<$FdUEAYt?sW)wySOkqn4DCI5iHD#sxj}$iBC>uHjB8hcjP)s z`~y_@Kwp3pJaCdT{GT{HcD6ll5q=`7^c)-=ou_-^?{xYRJ5IF3yDp9ss}`qJMCun> zhE`UJB{y7PX7=Ms%aH(_r{=Ye5U^(w8VHhRMAN}f{fahprK$6?VrMuxv(d&t&|hCf z3kI^s56g-ruEoPGcHO^bq;>XPLBUdM!j0({G1iAqu;qOCklp|OBCl~RDd@_}mkOQZ zU64~hF(0@lHI$GGD6=MDQ4flFcd(+rx3@Tod5mpNVRCB9&MwHV0C2H0O?`ot!7e3a ze(=W+cd!o2V>2UQ7<#FN{@;ItRjXG|%`7-LICNzj7%=bEP5%U7`T6rz$C%^iq~zc5 zW;*q$#(Qn8U(|K>!gHt8kHemLdx(^@>c(UIdvF?jCgdtLz4oT2nV-e>0|Nt{VyRUR zazO1NL8LjK;WBOf_L6!m{CpzT5e=@yyp_SR?~>Q%YUTENLtUMWBM%4&@Co~^9Pt<< zFMf1bQ0X!GO0{pTt@9}KU?8+5>O9q-KGD(9eQIu29MZ6{nGvub&(JF^Iu@Sz`_iRL z6W!Ty9s=K<6U1hq&bj!H#l`op#B|i^E%+QFN1t_qS_54}%xx(JCo&9d$FwPGd7{keLvg)(_payq(#_y=U%!6!S(ek;wySt%5uA-^0 zuP>U{Hte5yN6PW!M^&q3s>zDeG|+xBb5f(P-EWJlw|8(TbC_(4^WJs^uzvlTLc1qX zhMbl*ZhoYOl{!Ob=naF9!$ix&t(ZNA*el!bCt~TMy4ltbUxFnDCgOJUlTq z^#XfSotKKyXKu}7&8fm|`I)N9kom1~bIYy_=B4H3KlZh1CWW?Z>T&W+DlPjv&CvqvIz_LuPoFu{=mox-oSv@J8Mf!b ziL+;$^&`IGh~e}*cAvpVq!_@nxS+0~QDoXgwIVO}KeeRO9rA_kd+T!V9WM~H==-lw zDl0rUcuNyey*uw-`Ly#iAYdCBNzZv{W&#bcCL-GXk>T9Ao%KJQk@72}b>z*&3#g3Q zm+IZo`ZJit(UQ07V7Xv|B2aWAD9al*F%jkn~-7D1Z(a}+y zpIpxCdU|@z1?u<;0^r&G5%N{d=|-8;r%uVE2v+s$6qx4%Eu!P*AC41ttvY?9{@d?G zT=b7bnGlwO6XFBtly{7b#u^Ac?e1OujTu6vbW5*b3)`>!eSU2d6jeQj;;m26X)e>v zg$7Q`_cy@`f0n!dgWQ$gE&hPmVY=u3P?fJ^KLJbpw_<9IeSL0#Zp0^3HBE=V`gdm= z#EE(mMCm-iOzlGLGM9Nkg7u|IRr02N$}hhE-dJBhD_{qp^D*lO;dCz_?xNrKtG>1t zG)w#D&0v@b*fUT`1)cxu##}$PxUg{L%9XbE_Q^*Js6e0rHr-h~v)~r8wVsM*p+&1--rjHenUUPGEv_$T$Gvws?a6%w( zm_Z7H7z{JXu}zrpySo&gBwkTIh=zvUP=*sH^^)qi1f=GvlI#Ed_b4Km3z6V$E^cmQ z63?DLZ*Ol8RcD3egy!54ynoL_d8YK7C`pFnMEgPo?PO&9)mYRkyx@H1 z3Wej9Z}loYfkJ!OS7P~(TvFSsSFc#&juF0KivGxH-x5i8qC@o26Hw!x`1ou>fI4*O z(AwIX@Y(NB?Xb>pYo-8+0&9#cMPV7>%wbcqYGg<&DGio5{=osjVKoEVA06d3`gX*? zz+i0=62=N1LAF6FIv}OL0m%cUqu} z7v1frqM&#k9$qstkKKiCnG?xnW=EB9=N}puglZF0Q!)u4t)Kn<-~_k{E6RI2V6{*t zak;4YfQ$woZ4Eo^Itj}pUj7K?fQq&@6}`{*-_T?78&0y_vRzv+8BdaDYG`UIhm8mk z>~~{i{_W3uOjVtnoNR4#%FDMvSB9eAx?Lz z$Xe_6Z8}vIH8lrx{h**AG`IQ>Ie=Dh5JjA(PpP714UdfQS@)2hJzL@UM}wN0+Ei6n zSJ&3o7R4kCUeCg)OdnaKd{|^;F(}fD7cX!#9)EupLq?F3drqpNtLuSnhdpRe>eN(K zB@v^<#>{L6D`v?)Ax_@TZUMa;_^J?38!~d*z!p#)5ZH78D<^n3DT082DKT#cRZ zYVbd0@pP<2{2Y)HtO}S6!1vLDHV3d&58Mu4lZtOH!-C)=eMqqxR<4jFE5*HUy^Y5i za8|?(rpVmf9G0t{BZEfBiShjT`^V0c`I~-^Z5o*`x;J>%M^v)(|I7kVQZ7&T=Hqd+ zcd`{(_rAh2?a&4KdU+rwCI-j$3>8%gR9i7Iv4`S0D6wl&cYE`Er5*#r05Fun*@fT2 zBp)G8


!PoR}G@3G6Hg^X%nI5umKlP)hnylp5GBg?V{`E_1ix(V?$d zh^yndtj-zoh!p@i!dSw|py9Wr!#0M#4j_2mNAmjhi$~0RfhsD{SKvoN0=WMC#1_g4 zuoc#(AU_{xRd-m+x^RT>J#H_jstc_eEIwpqDcaJ=_9w>9gEn!!~ zFhx~)euBNH)Y#07nu_Yc!Gl~|j_@$rK~kpDvq3Mh|3PpM(W4;Z8kl^RrhDyiw%6C! zeMk=;Jjlt(NlpC*Hg`z-DgY$l?{m`OKYuphEwn6iP0!4@qs6DGr;jy+S9+{101ZZm zuH*1w{}dV5k*&A&_j^vZB>@f5`g92|;G-&N^I z<)gSQs-ICVnc$KS966N(JLB!!x3#skc!(_)k;F4Sx!34O!L`l^IW>a3pAh8dhsEy> zlN8_rwP30}nPjFsQIa7zGP1Wf-z<`(3@jVSat-ic-=5FF)XlLX>81^YCi(WP1T6ep z&_5lv44}7B3%kr=<iFTHSVu(9)NI)GpM+x2<$Wz<-TCQs0KY_{qu1L5o!q+xn`da39nI&Y({az=qvQ zTU%R{kTXZAkJE5#xjA=j$8=lLVS1kc2X(*T;N!{6$~rpkSPYaQpCEA3i$8Kdeq1HA z!63sgPcFC8ncTfAihd>`t*iSpQ|AM}kYY4{Fu51(hn9*aW>i-975Szx0$LLnA-I|< z9v&W2QU{Xf!VSEj%`+$ecuD#S$0sHxb6UB8BuD{dR!J#PPeN!|SXelU?;eMN>({5p z7n%~5ZES1=-oR@|9V4PgTZmQw-vLgUCL1?F$rA__;9=#49=WE+#>O^L6B-ebVqF8R zI_j0fXl?Lm=ZXU$iT|JW)afd~vXF z?E<#HJ^{%wDaD?lppg8%aUW@i#Kc6vMA%L^3OG)$!@^jEZswadu~?&YU7`O93OJ;( z=JY->F@--52ZLVn0>${~XpWEow8K!Iw|PTx!fVQ5?_6ckKT&F`91@nwA%&uiWoFKR zk4IX*25YL4$_WxV78aFTJ1DJ7epCN8QkArfCfFoJ<2c30UtQtiI_CpT|G7iyeXlTG1?6go%^6~S__iI&wu7lzu*~%?_fV{BH)c#Vh z=jh%tu&cFoEaE${6#jGneXTd7SB};mDMqr(=aCxnA>F%oFTsHr`}9e?q_7_ADn&#< zg9fofXqd3hep7hOSD*9=Lb?PP^*%3TK7(?%P*R4tqsxzFWn>N=IWkHS%YXmT%Ir&8 zG5y{ETpH{_pCI(hTrpcqoT)33aKoiVwf+D?@z3Xo)Ac}cqEAF2AZC6_0QR41_5c;0 zj|vJYUywu(Iz$g1fJP!8e~V4jZRtWjm3wHoAOy!7=mkXd*bf7_Mh9QoLtq5@sa&68 zU7Nm$p0~QW`27$)u=g5-xrnS{RNF)3OwvgzSW&nn>Y10-QOI9$nKie3!(Nyftn|iK z^C5-qh2B6Zw7ohK=o5t2aM|cv%dS_X45UOSIQ8YlX27o?McJ;%%F9Rd-)Cs&d-M7= zx810;pq(SiBhTglVQt?!86Lx3u(GmBNJE(e(F>|FNgrJx2S{b@ZEYG^y2V~wZp_Td5Kja>n?HTJjV|o4R-wJv#5afl1e<=D3+@sN zg=6>jXi;wN8nPQ|vp?YcLZ?HLh>wZsJ>()lJjep~@89Pxn(oT{fsYp`J#y;Oug-MM zn>TMl(uLMS>Mtq3Bmrj8j>KcqzZ6&^AP zSK)UZKFN_neim7uRiMVi{s%~Z5$dKiqoAN5{+lr1k;lqSa`F&(pzVRI7ccrtJ;uFb zW9gSTSTt3N5T0j>o^YhRMz_r_WjY+K%a?OgQc?g#0gz1YQ2I;0di~n?&K;Ge{UmVI zkyqN@-f{;agPIL+l9m+*{6#~fr>uP2*ti3ng2h3x>n+p)?8z4|j_lq07z|3CH~+aL z1BBQ*C}Y)k?gNbK>gm0F@j`7@LM-dmD>7Er^t=5ft=8g%>zT{F_J74SFBwx1{%V)_ zHF`Qi=Yhtc{D0HsJre)@)vlwy5B_6t|NpQ3KU$F2PI`R*Te!Cs7s&koiAW!EjR}e7 z{AD$-twTj(Gw5J#My3{!wfGMv9e#f#tKX8ct z-eF%>3H@$UcgurrM7!UP%P_ve{y?!3J9iG45e65(fI#ubkNkpyX|6t~C2*N4Jk}7? zxCVz6AxS`fbX1_NP#gI>ci!D%0|>~Pn?{aBKtRBU)ZKjp$R4O(;;FCib+D*0*5}p3 zNHIt}&CSit%*?FX`>m!%j*;waU^jMdJ@1C9dUn=P32DH29Ff;HJlx#SPdnRG*5{T` z9Tt2+tQ#9MKuuVj_OYBhH-Z4xy@4_?f`XhJTRXzf!rWX-yXwE)n~3;9U)opmG~b9h|YPO$A3tBUAh68Ghv-B@UR{17OxCfYN}LBkV0VV6`Hq7 z4EYg~Jz%Bvys1$JDRFUed7iGqu`gdXLC_~BBV+lIrql+VV}jWpA|Nqq&DXD+=zd~o zfgtPVbuX!RicP-P)um3Srh5#f(z>EN*3WW~5~1JpzP-A4ZCzVi8y);*V4!B}G?)#_ zS>0^I??s^X=-02+dcW_c5IhkodqO{Bt};Bb+OfZl>Itfmr974bh$KQxZRuutWuI`W<4_l)tFw(zsLDY`MuHJ*bV41Zg_Qk_7&h3*cNXwoSpxH>mbdTk7D2W8!(fJ)<+fK4GrDY5_b(< z#2I7)JQ?5EWP4c@aeI!1KV30>8q)p5-gOY1Upj$t&*2L)lU3Y%;9Xo z-G(@jAtB_dpX=%@AO&Fw(GXcnMWFGj_DmB3j2ljWx@^!B20a#=pyMJqYaXAPI*F6V zvV8M_gwQNgDmm$ZXNYDud!`|Z{#(=0-@my&j3bo!?8S>wYrQ;U7@+`z1_nEju@-K8 zbeJUDYR5Ju@OLv~T`S|hUUPm8^AqXE4)MN05(gt&|-rRK7eFYbPOFZ-U7l4h6 zBR^RIuJh43JLEx5)XB3)iE!FZ8wBU&U0DgJtE*Fp;*P&@R@mjz?~`hZip`vrn-a7) z7F^08ir6=A%ne-w5SEa}hJ>W^bwEv9yTtytVo7IH(@T5(lt&>-Z5@Y*3{2wv;LEU_ zo|V)z%5N4`2$ZfT_h+5YDa(rxT7Wr`doQY2LPBDqkr-M7A}A~GQMw847U>;hj#(flN><85}WenK}rD|jOw*us&mpL#0Ez{F%6Xk{|&2i$t$ zC%92Q;9Ws8&|`jLVKib9)E=z!hr|9fHgOF;v$u25cUJaqD;J z_IlBoVw-b&?Ys50wbSN^&_3WN*KcpJs5WuFKHyXTjiS~#4{CRdXR^YZ_ogA1aUUhs zDB^;5*pgNiiW1d2Q~IY;)WjpAqdg$a;RK1g%smKGqo>Q*_Pw#Us@}^P#0ALxZH?}S zyD@o|aIc|CBv+0>RjwY8^!AR5h`2y~65B$<%|qBDqk_+M&%it4cb}yi9#xZ7d)JEU z;{=Fm1*#t2_*+u5&2GBT9y-fW;bNezKi?ec@Vl92{a{^xzn)_g%#zTqBZm$dhAV;O zhJoPfEFXu1c+Cp>+V!UK%g!X|6e_o_(vi08eutGbBBm8_ll&J2J2`n977`IXHrLXz z?=3AsdtcvnaOttn8s|ugOsm+SO!chQrtb1)pE5Ju>pEk! z@9@g8v`b!Z9s7!Gi3t;ymVIbP4ETSEs_0;Y; zdB9KCg3-~0IK`HocVRKIqW_e2RTh<=qaxL(ONifUI;^D8`Ctz2)>0X$|4qF`RJ(%l zAo^=PV@np$cH{DBt}`5;VT=YKPU<^wMk1GSF(&1A08!`eA(C+YE=M`5f#gv7gS)o> zR4vN?vvK}1V&Cgqois*$kE!Hd=^IXEtF#yE=p`iUd)w3BHzK!XaiaxlcVrd7@A^VM z5=M~h)MyQX^c^^Qkw869mQ)Y;+4Jx=svv?XAl9e?dSxz`n|2yCwhm|4Bm6H-1gT|IEXdAGE*1gyn_`4|&{u(uK_r!SH|JG{?CC33oZ zcV^QOibRftKHke(Q!|Oye`*fzrvJozAxWJ7Z_h}ZU20Y4<7Ga#Fq$Ly#uxDDdA>GcsO~E`Wh+@ZTS7YaV6p*EHF;rLB$N$FIHnYdid};pC#xbxM_zb|6jju zuk4OI)dnv<=0q2jjEwBi%>64exVo|Zm#-gJwVHES-oev#a^l_k{O#NOybX-3#Jyaq~c7e+K6RMXT?-qjfh?pYRHvp0N-Me={rxkbm1)({ZD)Ou28Cs%qLN8Y&io9&} zM6i|0CRU9_#Cuzq9aRE)o=*^x{F@$0N`DCQ1cb!qII+s8qh0dv>@1o$R9d~e&sv*U zoDuv|UYL~Yp}<)qWyn>^*P=?e{sP}5B_;U; zLF1B$S%;7Wg?!p1YGRdEL`1}~ZRxl~#L|&yF9Aw|&EOq0%gDygUJimm|8;OMEBD@`?A;kK$2+RrrvuCq{0^k(0I&P$AHPTE1^#!syxotzz-(`)}6ozwh-@gmd*m z)=@{@GM8XNC;WOuST(Mwh?mCr6eZ>PbS0~ufkyeV(7G8pL)HuA+w%*GM`MEnXo~=y z9UU`s@~{vHTUJzv=C2Q8LrhM+MTJ)VXuZp?xL9E3UEtHFDWA`duz1HK-Bj=)8E1#5 zGlD9ZJd)0fQ{`qnBTwaoqf}<$4bKFrmnbso5H~SAmk-zttq0;F#mSR_G(syFu#qpc z)OS(;cErZSi!*h6Z0!0$%6xCnRkPr0dyP!6ZM*-=$V>pPZDV+2S^>t4gA22J*@fyOt1q5DJq1T+E7IxkEghZqRs*cu z!DDB@pA=+d3}Y{VOU9A5rK&OuPApv`XNqCtRIwtBqRSo5wV&PAO8oIvH74P7!Krkc zKJDwifx~^uaA)rUr!GC*!Z)X{__iG$!Ne7gsl$^tzeR4bt21`_1?XM>m-??Q@?N-wmkUViwtSm5I{6!37Q9IK7KDe99d;VxSs; zC`nqS#2U-47vxH9oE5bhsR?>YwdJvIT~bc@J%5=x^&rS8 z{P_8hGqBSp-(GdaK;(O_3OjrIL-Y=}UkDZy6j1S4zK)8LbyjOf@!n|3ci)U>pu)eEoEiG;Lc9|(u@#Y@srr^PXNIA9ij#Ax=#y`3|mc^KPvEe=(amP zAXq;z4OhiG-1bjr42$&x|bOXs4nLLXW%C!mXAFb5PfH$R} z{r;F+b)L6p?~fnIrkO**MA?RAj$tSgM5>M)NqkdQUXHM6f3|^`<9g%6SM|o%C32tg zWPVc)9~3vZ5h8ZAiI|8mgNROH)01=cIsxtqL%)RjZhGb^Jae3xPz6oYmKx;KA}7xy zM+V;4k3*4EMKC<=57d+v7vp@TOU0V*zCeF2(bQ|>^0`|S$La|YqloF?Gx)f8zAXne zdiS@teJAo9X9v?eO=K}``4@T2AlW475V!Xrn<0N=Z@{U`kC-ftkbFaM4=E)#H{An509g_C0w+Iz!~vgWr#*%<8@C7w4`zEz-?ts)K>srBqE6XkIy33U zV_Xm>!$>Abqt-joL?Eb2q&*mmxH{V~SuM_DFVgb-q1v{avO@Jq7BYVh-H&grYoIH) zvz=2uhcG>>SmA1Vc7=AaoeBIxq+Vg!X>A=2eEI!1*IyUkg18}ZXUnev$8pN)kA>!? zt6L$-S9cp)Sfp;Y8w7yS5QNjg!&qvVdl)Ih%|q-(>SpI}=`8;;LK5E@TdX=#ZUR=h zx~?HjL72GmBcV+@O&%-cd>3Y)!zox_{gCM)IV zqEeatlw-$dMtW{F(I>>EPM>Am(R&_9`YI@hZm_r?X=u|zgEY)bH|Lu{8iI43?tD!U zvibks3lMRcGjLm|Fem3Nr&2Wk=Q_6J?CkGrd{!nVozOWDT}F!J9^C%{DcC&iK9?6p zu3w}gCHAcX=tRJ>zsxlsV5?@t)!m)T5iYYWSPe8E&`y*{s>?_)YQGUr8MMnN@_jDI zBX{RRo$O(??$*Mogz=!8HtpZlG*=0ay%y^m`B47_>>i}ahY>s(8X7|00O?spMfEz) z8si(AE&Y#uf&z|aYC5Qd-Uz z5rBtZ@|L{tKx9!-8?TDhTgQPBK9l`v?@y3R9I>H_^3wRMxfvH#bYe;^{W!6i(bVK5 zLc#Pv<=bDfw|#4PP3kF1rh^10)HT)A7(-<{ql2ZhZ;kUYzbPzSM#l#RJ|8NZ@a`Qp z8N#rVJ3leQh(XjpIGTmLY-2`@p>@yX8hTHkIO4GS{s2|~<=U3l4=!Pf5K)B2+jmXS zVlb(noRmaKN_xp@`j(N=2&#iZ#3g!B(QQNtFp>4QBb8ir4fz3XD(spXSORF?C~e3& zXk^?9Ms+}_DC&qp;q>%$T?jK&JH(_gNm$?Bo?lkBiGK(qpMuyISOvu|k@e#46tOT7 z1G)h(J{iZDrfYqU1zC~u&T!h6{4j{J_F~|i)Qh)P6qdc4Y`n0v?zAY{Em%DdE@rX?V zgqpr;g$ZwvB@Cb=npA z3NLL&Vd)z_ zm6Ml;N#HvwQ}(u3xQB$42rTeHc*^717Yf#L@iRg zym;!`6R@o*C^~@Ozy%1JM4hfYkyfE4CH>cd0ntmBf}9Ru#LFDkGp5mY@7|3$*6(p* z*>hUIkUj!#%g)TCIdw`}XfFobk?r6Jl|>jZG&Z)vduJOd5zP^dPU2WA?I{HNH(IvkL^TIsUdd|%`LaFofLwpZ&^p8v}Z_eOpIV5(W*(k~Zdo_9K zUn3eCJ)DGZ*oKXW!~%Ati@Q5^e*0%VX!sf{t3{Z{+b z0Si5IhLGhzLMvolP`@K(>))f*y?J&?R);2jkYuKs2YIM2UC3 zZX;!k8No&E6gU_2x3kDbr*CZd?_YvyX*Z?DOO^4#z&w=a?|1~wytZz}5^r5?b5%j8 zx(%<4!X4n=OAZ-K@?)9Z&n711_<|y%sq>L3E2~JV33J1)^9{^rNe7DUZ}je?bVVCx@VTX} zjrJI%_ZO+cJ71pyKx67t>jFiakUxPQU%B#%G!NnY=9ZQ?ul0*`bmB}QF#`7Qs~!Z! zIzT;(j*mZgBf!DdR$5+O*mK>%cef$Bql(I_*x0i)4GuUIkeN=NIH9ehv$3(k^`!v5 zB*6m3D=-iM$9o4>*VZmZKiY&;g3WLq?#Oo_CS$rq8Jum>al>Z?;sjX${MDvSP z0bNH|0{=1^=r6bT_Ij@LnqiVr&~CIAerm>aF#9#Hhx`TxgJ85|5-4f$f)AFQjr}!n{ecWvJ=XOuY?kAQueFYdh zdw0l`yOT{OF&!1ltuYD45mB*7BK)e|i8Ijp+m2A!7B`0P9GjS>jy|_{Br?I7d!)cI$9U2$^4uEkK|JS*UdX zC&t=}0BG0X;9zerVT4~7Z4+GysN*N3SRA?Va8~{76H}R=XQCvV|4k2;T;AZ6-s?G2 z?RjRlY3t|D2kya|?HETnL=T~1;Y%(*LEwmcoZ|?9f+07bpvs-?(yFl$r`Z98xOl}_ z;mAnU#0oroG6~|thoSddJZOcZ*J(dLX+t}+$xO)G)hh8~2#MZD*lRO_$s4J^tPkW5 zmS+y=9C_A}|Mz<{%hz^`+tXz|cYcYm_fy4=t{m5+W@$;i10zWNR&xM{{kx>JXb|eUgI{y*EuzDD$ zZqDu9^pY&0c4zzRG08ws#pxv>9_st>B#C;*tD72|wVK9eySfX-cJ1tFx3mrM{T=Ud z3JA=KG^8m~*gu~2f*tRwI3{y@Pt}xxi+VzGG9gJMQHxW-D$hhgPJZoP4~ChWGVDfw z{Sqg-i1%Z_<9p^A$;dsG%(XRIM|6?Qe{sKwJa}34vaqshKOd-FWQ|F$pM*C`Y;*bi)pms8Sh&^MPP9*YqsAp(t7a)Hn|w^YFj!d#1hU|W z_}1izj&@Cde>t&Dx(S(K*addUh)rj$70=YfrM)ppu?E!eu35IZFPU?mr%wb1y=eR- zy(!}IwIO|=T3Q}Uip)g}(Wmw%3evNkykUGkM#0UEot;BdZDB|e?+!V;{?Gw$N)i(@ z(BfH18;%YPj}%#jcE|cdkL`p~6t};|8)RCeY|_V1PW}FUg9zVtbJ1a0wK!)+EcA-1FUN+js%o5mu4-xEKhOQUjr9RuOHy zb?DiOHE4wfhRs3->*b3LcPy2ku2ti0IkXtGc}*)|=d)HmK09lmvJh7}5APGDmfi<> zgDatvj4o#boyQwbzgK1?YyC5#>Xd^c<$WW1tu-_(piWM)M`PL=-BrIzOAfSk5n zIrr90uJj@lU{M?z+6fnrKU`NvrVg~&LiX<2z~t$;G(mIc-CUdF=%$o^tIqP5-yf0k zb?ljM#N>b4&oU(?_*lCS(G;gtx7v<46f#Ky;_!MI(R2Eqn-9fw+_ zdK|B5q$qkda0&8XD_xjxGtuDwzq|H(7tB{9ySKcS}uD`HA)!BBE#3 z^=BVugyjES-WYlEWu8&MKPcMXZov(CVClabg8zzNMf+@cigvFGUfGWkm#gv0HiOgr z&9vrj`>MV^{rRD6eJcIoltAU={XOxdcR)K^#h#-N3H^}R9OtX_cWoQ-7!r6mmzJLO ztljVi|Cs=y>>PR zg^u1Wohj1x+G&q4`EmZCEhF(?j-zMNh$6+dv=Z{TCGR-Eb$xQNKd6Y9GW zc;yD1oO5#YLaGdy)jeH45%*&T?<2?y34@%ZJ0`t#3Qab{Q4$q!nfqnrl^f$a9*OWW_KCz(P%=3C zT`s8ra*`)9geDV1(yYbsO|?35@X?2z=@~)|sDsN7BJ(^V%yK347t(8v-*k!S8ALpW zd`}LuvAGWWGgsi*Vby{+`lSBOdhe7D&Kl(0{*3+Tz1CpBYt?0q(hAd#lbwBQz6P(~ z_<8D>ACJPuZ?PT1P{R#c&jJ{}<2Sf~Nm#Q!-a*~o+5T5K==LWwL{Tsm**F-kcw>}y zxtpW0^FvidfiVF0Kx+!!gptjMf>zy;@9Sp0UNW@b&;B_4Oq%^e9`?AdW2buXd=T(O z^S>@v7qGX*#YI^39#w~!kI)Emi-~z7irw5&4<<}tt>XvpZ*mILeBnVe%l{1k zE)j-OVfo-UX3*=Qzu`9Y;H4wbpIy1#=Q@P9lT83~+#Agn>CbC;^xooz=@Hr9yVYum zmYO%M_@ntQPLVvEyHvR|cTBi*X8xD_{(wz&yS|!xY%DhH+G8P>Q5s`cObW}S3kA0V_oNdM>I*21CL>1Y+~|x1@DgGI`^kdj&r6hsR07t z7Wf1PNWAAhAH1w|86%iK?v`dE7+bR_YXvV8H+`-_qGMboc$pm;{;2S9&9Q5cR7X7C zT4;k*uIfDv%gcUQJNN+!EPj#~8O_VxmD?bLSMNkC+PZL26p@xL zfkP-D-6+x>3P>X*jexY2pb`qw(kKm5(w!1YcMFILh?JDHz?&QH|K50a{Ns-MAI{ll zpS9PT@y&03^LQmI&d?K-$69}EKoi5G*plA<{-!^*D;)J3Eno`1o>FioX)NYUkjs-+xq0?!=P`)#(Z#hV&sY&a#S|WC`84eLntMAEnN=Jt0-k;+RhH!V0 zrk5QN_5S*RKRiQIOVAW!CVx?E>6aXd{DdyIg;VbS{9* z&>dl-y3gUJ^zXqY5>jH40e2q)YI4xOBDP}B-aAo=8DD86RvVG5M5@bCBg8}|bsOVS z%Oyt)^4H6!cO7J-q`$-qugwXD+0!m6gm2Ri())g#bVIcmN_TVT|LNXX>n0pGS19t3hE3_f}s4a(69pBf{SZ~^^R z2x@02{9{v6jAkh9Vc)yv{f1i6rgpCNJN4}fN3avOTl*obeQ%OKs#|HB@IWHC-eNTc z&)`i2BMWGAAeic7RfexXkbt1;BwX~+3J9)XDWMPJ2{h2d-2&)DM)7P0KtaH)$|0}l z+GIg0S4u5?IA+@@ZL>tVf=n**!Gpf)v|t|y$r0mZLb@L z!i_M@J(>FrFb?ccpwe<5yTm zDssg6PsT|o-WYk<>;SL9pWx{?56hm-4lnE4LODD`ueFN7qELXq@(XL1-#`7fd33ya z)@#WaWj<*xao6+9_vYXT6CTqIOQmhQn>L(Vl}0h2J*O()D_{boHMo{<%NB-{6wSzT zQoFdB!pHNCZYy(V4L18e6lpnYf2V_AMzw(_0KK*aY>w(wSStRoctrJ+kik|*h6H8w zdt<~%H_GX*-dmhF`VXC4gVOW_G|>5e)6%^Y{1|J>OvPhuA!<@dXl$Pm9{Q*+h-!mE z5i>gH)Nz?6W=LBOPj}WCPX0 zZC3=*z=-->DdW*0^c$Z_ZkOC8-$^3-jY)cYh`4)vI&)urDtJw8(UpQvEdG!#H*GgR zzku#f@WVlaHc#1+b@cM7$cna#RjwGl{9D}yAJfLUn2n11Q5XC31_>(Z8O4bNus)_QSN%y zeWr!U4FXL2{qadjD{K$c4(PM38@K!J+$+j^=vQv98#@Y^dU(6@xWUuU?|?6`2UJX% zojKF9&gcbVj5n;3g8|JJy7pLp?cw6?BmCnJ=bUOvpdq+;CfH+qu&WvK(l8{ zC6OGw(;kR@_;>#f03+s^=qyv*!y$NJ056K}PMBs}BdBBLl>Hlf-~PLMJ;`^Ez;;1s zTYtPe1t?zyu(GrbJw8ufUrBpK;}mP*xbH1`^DC?ydueV7!Ox#>IDHP6K8PKymVr3% zR^58zo%Q-{0Oh^b8y0P?J(sfLlD)S&gATSh8~zT#vwi{r$Nt8Ts%a;LvVhyF1C}O) zf)`qav#r0H#~H-NC&O<*!!zn&79+eIKwz)gw__#Ud|R6CUl2qZ;Hc&h>yNlk@Sz=> zaGv0le=Z;x20H?5*ryN*fSeY@h3fOwj0*6|p6j@Qc9LZ@qcxQ0EZ@710jfaj`8%yc z7TCQ|i5CHj+7cDP#~PN=O32w$u;eQqG!sgDB}q5T%iE0JM*VCiV@<3CQ2@2aW3+5wp*aB3b9Dl zjN24MuM^-ZyVj7Ng3lz{;NisS=oHjpS^96U6hM5i+jXm`U|MIGZ*kJpt)Q=`2Z`1} z+L8qGlI;{UJuU%<3bENxgcIuP%j4eK-hTf^`W2|7$>LO2xrJ0P!+k{uW)QQEZQ2Rjww@wPCKk|pD zkQU?84R+*AMktpANWeo>C08c6h=LcM&vUWWF%pdRwyH(682{XCID6NnlVV-cA%@2f zZGxj0UDe2yxz6A0&%<8FnEEQbhn!f_tY*{}%dhj3;B~l+_)iU1oUR%g%?I!o68zsc|h3oPUm@n>0(} zZcb7pLjni?l!^(L%zqaQjc-Y%SMZ=nd_&>K5^{Fs@9vr$I2P5>)K#(uT%XV1M;$lO zlFGK=!Ga@zbAG$+9i?kS&#&?M=#l@m8o5k`b$+v^5++=@=U@6yB-Snt@^i^J~)J&KMkADrE6OeKk#YabN?QVe#jZnjB$QT zsTQbKR@~)ZkzJ{5K_W%nA9+lRO&HEr^7RKNlYxw`8bcL}x6Og!=WC-EgY8#C)0@F< z%B6CCGaAjL>1;U<$d#X*-+l=*jsW5Lf6A$m+iINO0A9WZd9+hQ;;Ss_VX_xUe~8sX zm*FTTg-BoZ%`&?m*i?-X*Mucain-~|zC5($OL}lS*^?9FnUm{GfPsx$B$#?tzH_lz z91~71wvNHTX)S#hTgtfLuEEKRL3N?Ca?NZHX-XA8_O$!lM`ihpY@j!OPKBpDj$`Rg zj)CF)YyBAKyL!sU1WUnZza_IqhU(21ktz`$UM|_dY;T9-?}fdkW(r+y`4k*jexaDd zQiy%$6SV%bH<~4Z@;4Hs)hnO;*mXI9W60Q4>TGKaP40PhkFT=4nf*1aA`?tq*Mmce ze)d2j`Wk2T4Na+L$_1!%Ct+shZQDQc~a20m#1vmm;+#HdujJWPJJ zo1XJ!CTXe3REwBlqW;{?P%@FIxcuqI`y^!=&G=7+sDNT_q{k@2-W%0QCcsd2$RUH5 z@QdAftk0lMur`5BVI0SPFWhLi$0@(__l>CYN1lm4Q?BS2Xs_4zA&Rl|p$+5uv#JlP zt*%Fcv<0f>HIK`Bw!JEuZM#OAWkb)`HK;3~`C(CBmokx51v4(vKZ~1;SdWI<7CP1I zhV;loYSq#-QGH;pg)7s0zAREQCIsz4xRH)L zU&<&rSlRL(hGYQ})Kq6{HNZt4Ye0y(^6Lk)JX|GQ8xeaMKvN}`es;c_SVCLqmhm}} zW<)yIgH{V&c`8*!_rp18if`h!HCJphFnn-zUbxo`p@T=A{LS{Xvb7F{QQSSA>XG8-$$GW z$DAL_Paf_30rL@KL_Rz_D0ITiIP^>BZ%#MLNxqfGB%J|xPGE0KNEIyLq z|9$FO9xF~QUjXxKv-A7f=`LR#N~Ph6=YAc1zB`xI#08bm;S=fS7jG!GRihj!eBHzN zKQ4gZ;UI+{V!1x5lSwb1f3GX2l}^@$nNs{X3=)N|?tzDFOu@weT~K|Y#W+x@)A2D} z^yT?Q-v_bdbg3uDwa}@bpX?m?#zBJf1(}22fJ=P#5QW^}<<#?+O{L-G>t`?TPv&vp zc=9d3w9>)!->e682}DCrhf_{QfHEW03z-Nn(Ci`6Se%~+R_6LU=RU`phhlp*K$_VG zRt3VNR*Qz>X&7jdLuY*Z;8S=gh&`95ih4Hh8qx(-#wzIa0UW>+I31b-%q%Q5kf8z# zo9J0FM95F-H^02T#$a>62J!sHCv@md=kCo|=kgFqZaO_)ulnY>!u^y6F6!EMZkgd} zscZ! zC)ssO7gCe~K6Y{(5P&lQm)w3D0M}2wcL{gpIVZJ(Uoabg=YW%fpH&B@zb2&Hkc#iG zJ@KV#nuJIxmQ9!5zj`S<32JYGfOtWyVh^Gc9C5b@FdsrlRN+wwO0L(pm(e)onyIRyCtPOx9s)!v7^_8Fv{{shp@4ZW8p zq5b<4rs0#7?~{^_zIm-f$}fBcYC#7nr~l-lGL5%#cs}Ql$z>&+!dg1Q z*b2L4>4o?{5fa%!jMVbOA(S01So7@24b=wuz2?r%$J-Afxk=2vih}%(>J%dNKIn$Q zZ0RpXu7*TD|p98yt)Y%QPWPpcP zhd=bgoz98Oz|VvYdec81o|z1p0kQKgAOQ7?$zJ{hfM#^{_lG;bhfp23+_liw2FC&Z z^ar|o()$fP7Gh5SEs7zqALu_bAG$+-2_y`|fHrkR0-+hSfE%4uS7AYbTmxx0s^LdKU}qFfvJCAf!7{5=#OGs)LDO zqx&9HHK3*o#f4D=Y0MHxgul8pg1k!oc3+v@5rS>qO!4Lc&>k|ft0?5|08g|YOqXdo z=zRjGZ5s~29f>NCaz+q@Q94+!E0Cei(LbN>M zfsH5KtX0M4@#Th6-F?~gV$m(b&yM`Sdp8&CemB{q3OkUl+`R{Nt z08UUhjf1QdC|ngz3yL?p!hj+G1^_tsm39b+6JKQG6QGAHqx{MH)9L%Mo`M{%cT21Y;>k+&#ow zG=+e^6h}FvV-tbfUJSsZ(L)o#iHyx;J|r;GWCF1NCct7rE((?NZ;+h~vLj#-)FGf! zImM?Uqjq+Xh$Y{-{|t)c`(6DbkP3d%P5%kt|HH1ZS(Rd6Nq{fU{ZhJyHG@SdC+A*6 z!qUwYr^rU@ml;$eT;zPI#grKHl0SicRb5wE@x4ns^Wt6O{hisI5oy zM&Y{mg%_gZW1hSl%#?iHkvjJBdBs~6 zob+qPhO6987#^~*jG@l`3~tT?X-2#3l?OS5z(~Mog!br#VGun}&0nyrmiMz_#Pn~^0f0#IHTW5A4>#Zm zOJZtj&MDJ{Jj|?J5hA-L*=DPz<6Bt2)dlQFQK)nP>Jj)Lb{eu)K=k;b2mqK)7hi9i z3&cBg7i>{^4;7<#Ob2oZFvHa#!G-?U-PK&D&t#S+F+}%-nkUmlPh_M=PKaVS>HPss zXm{ML+=aGG`-Yt{=!dKZr4BHy4d4x-Qp@S@z7V60WYPYvaQRe2HS$Z;@O)h$E5$^y zbsvHPf$6=;$~9`2uWf^XA3#wL)dor|tSPQ|AXiZdCwXhK)?9ZCs$sAcG?OvkR(8Uu zg|`p@7rqXp5uT#jAf42ioqSo0f3VypqRNg?R>w7rD%Mr?&%Y?W31b7VO*K4 zmelAJ2@`@)$`>2touwjYwh_Px(f#j!9Y6y73DtNkl;`fM2e3cn!hrc>t>G&8=FYwz}p27Kw;_-M2yqJi@>Tu zT|n}6n$)Ws**D=HTniIhQoA$M$)z*CR1&rSdD?U|1IUmzY{1T@3ak=)ma@SV=&lU_J~~BCG(!0J5t9jwxIVd~=!!IiQsFJ7fAp!$e^5ObK`j zIIGB>+#yyq%Y_L0#LkICH~1YSYHD6MiZzD48S0c5V9z$sZ9<`ZJxYl~x74f?(*F0? zk|kdQ0~(OXiZ56Fuk}4*2ZOZ=cSe&CnUlASjxR#+;9h|?kjxI@93m(O(DA^q-8vir z*bO|3u%#;n+<}Iv-fl*Uy{C6)tRIP-WwlGk-if(#)h&z)=Uws;YRhm5xPaVJ9PpjGFXp{^Pmk;b4Y)~(FOcI>+F?UqFvAj!oa6_cyJp5 z`=Pd0WjmS9tO%$+Y(^tczD$cXVCUd)V+{sUy>@g8j@Le%XHYyx1{=UG`#lHi4&0DX zf}ap|#H63l#YRW>0M`zXJbDQRzfEq`kj_vX`T zUuEq@Q!GDm^RxJy&v?(b{Dc!*pv{`=I9(L-Oox03`rqKtU;h3bmk_SNryuM?I%v8Vm(uK(NX_d};Z)`KK^(|{s;hmXt|^rQ;q@eUq5+Cj)LA&6Dp49BRAR0* ztjz9H_V&)aV87GNY$b8Ovp`(Dm58SRy-{_d*j}uH>mIKH;e)>A{ie>k&wlS{DzfzT7n#HCN9=_(`8TYcyjlfENA|459ab-J-75!?70BM74+LJ$= zwW-2s+z(r@a7O5DQLT z>AMw87MzQnl4tiv9}ns2KjC_XvRnc-kY|$ zm>V_=qvp`4;~?2q0^B5#l~|ewSF$T1@8(A;53VV71Hs6L#A&> zo%|9d`Pm)%(7;>1e%~X7w^W!l0 zi)F^S7>bG9ed=KDe_Nl&l)%d6{8Dgzw88WLlo=>iM6WfMBf+?vD3<|uX^7nA^S_o5 z?uz46Y9aT6cJ|96cHyEqXGfdPPPdX7_qW8{?~rDkxTv{7X6%a&XZJDmK-ok!G7Cac zi*N}vwX^S7`T{3N6@Qr+uWH}l2mIxG+<(&c2V&M9)pP16C<@_xv-T z5V*AV+57`Ip*Cmu!$9#lBnsZ=48HtA3V(?ve8EMIGu zPcYUT$WwC=VBZDh!1?cRQG^!;ewo(y-zIpcn$^!|*5tDDtB`O(AO04Q zBxa#Jps-8_W_gHuYlR`@_|c50QIF#k=@Xy2m7|6Q=R(T(G!_U3W4G!#R8ZI#T|YI| zRok{Et2zc`b|k-Cou;vyK1k^Nqw!3^B4ESl^l%)C6Sw@yq4}QZzQ`aDg(Unipfl)e zE`j|-@sDsIw1A%uAOK*&_rB->j3WVuPsd`Pcsvtwdct|nZ^~zIsc`syhf_YF*y%i& z)PfCc#cS`O>2@_pl(|#A`BO{f;_h31Cf)1#VhU77_EWpC>a70cFq95LzCav`bZb2q zKS(c-3KsOq5=p9}!0&{Ha+=j|?S$>y86I0$hROB1im}l#soRU!yPNuZU>(K#;GoK(GL_2_*;g|^F(OE}2 za53MfCWGb8e16=hYL~diUZly3wn@=wyqUPRIkkHF$WQ)P@Vgy)>lXv1Y$$*0#LXn= z2EI-EyVh|18B{LhDRc|<*iYhC6oL%eo(J~rHPKJyq1FPFj?;eHD80tj7`ljva}%V4 z_#ZIq!iQ}kKbOR;nwo*ty0ilZhwk!U+XMqsDw)_?{(ePq%je}}9QY&I34gH1p57;9 zvwpGRPjt^A(C?f3TkXxh&b%y%YJ(b3j`ddv%S3@M00FoVfe>XEWJN%< zK+q~kwn0bcX0khd&@ntZdGaaJ1yn{3eL>RLv1zT1V#U+P6dVhK+n$W2PsAyU*{6n7 z7zoCmNz9P(`PJIRLwbv4Q`p&^80AAnc*B_%z7T@Fn<|O(f14-WB*%9k=Ubny8BQ=` zRv6mu7hAX0Moh!E7N~NJgfb8%Fe2?nWea@b zpmh>BY4nqo8v&uezb~rKBQWvS?$1v|N|p6Z_Or2mJ_>{eSUl~!wg*So-s>&6M@^W} zjZU@*sB{;zwHCMuI@d168xO&H!mgjy;jYy)pC?HZrfw>y6LVCpaEDd|Y^}uEb_o_0C{@DJbWGhSVqLArJC9wz{##1qBRK*n)hKga$KV&G`@-l2 zRR?&ki94$Q1XN}yyf|x&V&2v~kb3{-dXnKRsQOqZzB=6%R@+E=(wJKa>?0^0hY_R$ zf1G>f4h^&)BBN+-yBqwBE)tZ z?~$OJ$vRK&=1~DO z4|icVDVR>Wd33x63|j-7StlDYy7WX#C0n;k@Cz;1$38T;FDj_;^fIJSzIKTu0j#xG zFPc088SQ`Y!|u6p=2_^DArdH%{sL+L4dU!`*y`t!IAUGMF(GOK*I0f_Kr;QFL0F$3J{{cgzd@6NFW6U?wtzer|H2q3;e<7A8%~1SKXOBDPg1N1tnJ=ZUd<28_RHUVo@%o$%l*w(f!CNsZfN=b> zga6dpNsTs$Z+i{7!!ZbW{OU8}N_r-&x~} z>y80xa#9j7a>jvJhmAtMV8(TvAMgm!bOQZD016>7H(5}6201^#R*ryHHW(I-ufV*E zZ9wd*o_X~$s?K9pM638vg35HK88n*&5l;b-)Nd)Fj;KnxIOWN}*}Yy|)% zFj1h{NO4+M4idmXt3+@{2z3x#z&f#%O^&q$C}YnccIy|}?t$ir+fDM3w1+@;fDscG6io-$E)^On`hX%%;IPrs*#-ql!;xoyFJV6nQM zRLi?u`9vYE=chiLE*oV(fbeL-7Xd=JryNIU3ys}3P2Uv+M(iDhABJ@EgGjn%gdHF!2zeJcvcGE!R}O)G@h&m{ zS#s;n_mXZX#ZEuaJSo;Lu~O53NmU5DbwrM7L!Q${6TiS|V{wD@y-)r3@FLs8Uw-e! z?6YZIPhtzZZExRk=qO#?bZ1T3 z@oX6EwVCVpJ#qdU-3@3G2`MR}I|3j)9ISTG*s|=2S5sGiL>~Bn-DNoffZaE`!M_0a za?F;K6^ICV0=uAMl^qRj>88~L$>AWCi7w$JhpuUzM<%zve5GAdrJder!+;&ipG~2Z z@!jciK0~FwKB^l>-(rE98N2f%Gl#-pW}@>9S0r~qY7?{2mPb%SHmEHEDhmObcG38K z3p#J84xRk{AT~N-3q_p4TMpSomI3NAxtJ$v?^l6QH(N`=BQhW#{uFffA-a4^FTIUGs;o|LsY$*C5eLDtzdnv$8XW8 zK0tKYU7GCv^D0UjfY216YQi1|8}SB;niN0mZ`t958vM{+i;Hn~pG=O;lpB3HeU_dMo)J&mM^BW+m zdZKl6i!fZA4tF0Zc8CA-`v?_bKsC%HGT#Nif2HUGF!l7+m@jeJ3v@S{<B^6G{^F^6&QE_cB`7+3pqZDnbW%fG%w{Tj?I-HIY)Cy zGMQJ#wDqDkJ??U4??I{U+_&F;b)*IMPU^3AO|P)heC(3b4TRyA(Rkx%Ofs>fp7)Jn z?d}|1!N6@TEPv6!+D#*~&8k=1x0jEvaC8qG$OFtlC~M!u#X|9^tN;@brddHD(COr0x%?g3T)wA! zz6b|+mlx87Ya}Lf&pC+|{PNgH%xX(#Sgi?izigZZ>o?#l{n_z89?pJ=Bh^99s2kma&Ngsof{*#CLL^CCw!48|w%ledag|n)^+4&`^ITf2gS{)y zKBIg;4P*?bvUckx)+OA`Pq=wY-}x*4jYj63C-cir~$3} zlsquAHe6jF3b0RQH;Q4z8l%F3|$q_@X!FfV%TViDkN|VNhN^|eFCij zO7wN$ZCQEQ>T>8cNcrgVe_Pg!zEqCW>TjKYZd$h8s+lG=S~#Zz&~Nf*v3S%Bjz6wZ z@iGB(x>TxmuS2)JrWT1>$`fDd#ZOVHbY_%;RN4{fE7C)akNae?BcG8`-=lljaQK^2 zlp`)5@)ks=bJ{b_WC@I98PQz2%p0Vb0%Kc+E=b9;cYDr9${|Mx>M3$~o+8P-eL|*S zwSj#{Ea?qyb!P?_N`sexQ75AeS^+ndG6&HZNsaVF2bhOw4eF*95}x@uy6?7TGZS9@8+F9)var8NCgMr zA^4}S8FnbBb$=@@0ERM9^FxD{ew?wSfhqCqU?Gm7$*Z;y$gjtMXAnxZ{iQ~G{^bi9 z58k2cafi_DI94*V+OnCYgJk}ppdZ+y*$E_L3^C%LGZbuIMoBJElRt~4)|rhuxVZ{t zW|(hd4Z5+=9pfdV26|G+fN`XB3!MPefRjMM4IQ-UnVhpr_^o2ip$>arBT--y-h{9( zzdkN9C^nXW3Neg)1vxC}x4C86giMWxDlRYgU2hnM4z*(F1#*KY4X1AgikN&jrVw%5 z3qaa~K$!f|BhQOy;(3EAz;hG`8_{7@Fsm71OQ%zZ9JA8obI8SyVXX zkOAqEhHwy>Z3n_TQ%{P zgs~HI(24}Zu8LpwiN}@eJ~eesqRLr)5-NSFtX7^2uZyz8HD%43Ah+ zzLYUH*mp54l#?^p-r3{xN7tqu<@jK_Iz0A= z;`B6YsuqO8ANPe-$B36YSlK>5u6&ZT9YYfKzW9TM$L(<1*qL09>u#ac6VJ~8TfDLW zX6)sYjX`}KAS+2!TI=4!D{#5#%XlSEU6b>xgTm*=e!=LEv)5U{b#4&P&%d9@J{Typ z$*#M1TNcmuH6a-$(t!mcGBi`BuvJTpn_t$h0mVbSJOY8$w>v^4bfduj2S{Xw2??vp zM-{M?=E-+X5Wc0JNM*9uauK4&3$UrUtQZsiajFj>25Fs20~#KnH}PNZd=Z#KjsD)# zczHowA?ji2Pc;pEVXg(HLdpF}%M{qeYZEk6u({yTj9Vim9siv4vlR4xdgVMu-rT(S z6qj9oqGOsu*NZ?HesN`4YgBk3--bqp;j#d6&lw^aZ9Zi#!9Y+!_ew6txq+B3Lb=jh zzxLV_A7gcAxn&FLtO z$)K0*r_!H)eEQ%eV7GleDqx!FgRxnDi}EPRhiCQF%#3l8c(xk|yq)S;0vxyjKMdgS z8MQd263|;w?)ls~oun1pqw<_LZtOnteReNt`mtHhN(%LaJEL>QZvb+C>>WKGE(QH0 zux1|5_O1Y4*#M;xdLjzv=IjQ;yn+xH^ud2UL>_W&j@K_C)%FZvXP?|)=d znExcpobaMJHT63bCM&ExpoNCRu)aFE4(jsUMfh3n9;RT|VKl&c)RjX1g z+X1-sdYD`TnbfRf`}LqzazHGppp1qQ8UY2fAgz4r_z2e!(b=kxEjcFo>voMl;eUOT zDk8zZ)HLD>BG9RVhz&HpEI5UN1TGZcp$RaV$6OIw>3p}7W*O@qz*Bqi|Eg-~K9d0N z#2T98MKkIu>fnV;EO35QDZ^qIX-P7eeJ_!xuq5_6FYjKGfC}d3cR&0ab)0Yk6t~@x zu}n1|E3O3+Hjr5p?6iR>svxef{NCl>RGPOK=9+3E9PHg07S%-WFjS`U7Sd4=*fiep zBaTidX?YD637iA!w{4KGo)gU{x{-dm?QSUY0- zG%ws=@;}>M{+IQS0h4YNpNy8K!o3!K{64L%3sQn>6WsZEY+l6dQlrEQjkVpWYb2k2 zbq^d}R9&n}d7e!KeBfJ;Po-h_%oh^6bUJ%_ZR;2)H$q*Ew^6a4OhO*zQ*M;6TFs0-$|pn!i% zj6Dsdws*`ZE=b`g$o8=4M#1jZfHL7IF}hGnXp##sm|^ zh;kCq3(OB(Qn$jf?fzD0Hq+Se!-xK(LqgkLHhJ6d;kC`Ct~fEWNpUK-!nruY~MfQDKbu^NKp}-C%ts zZ_4rj%=p8!2w&e%+N5~0AK(i0d9mxe0(%wxddDQING5Ay7r?*nwi+e>osmd8AWYbJ%=p z88FBGaNRn2c;~BHA(h0{0+nv9zF zv><5nXXn-FRp;iA*VgE=>#i9|Ro2-_RY zH@WGg2wPBkmV709r@8hRdyLk7^&gS%aFy$PH4=~%gui|~z%hHLK&p`~=wZ<>1w(}^EWM-^)T=ihD^xG>zlS&?DlM4tj=o&6 z8FLheHD@zG{R+c;2IJ5iye8Cp0)=C26u_LLfB;LoLYg_kIYsJwXl(EfBi2r=-s-Jf zOpth-md7d)A7Bb~2lwdeR`DZe1# z1a#I#Eg+5wx&V@xjzIYCP2l~oRd*-b8iq(7L&|$i5@DDt=U+ynvn!a;Ep4a{jP$wX z7VEE^gN%HH+%bRv z0x^&`w*H$918GtvydEzUZWj6Ko0j$8c;}?};l|b9`0DTMCM!+!0*=Vy%uZgSoElTJK9#&$r?M_|QX||rT*2uL zAgUHX#d@ZeH8AWQbUH%g9HBJ<+H;q5{R&U9+Ygui(1wOWv}UgniO!^;PNMsOQO4d; zac@9k_64V)=BB%X%~Sg(PoP+tW8@j}jAU3D2E;@RpfL(t0m=!yZ7bj>LW}=j1n_`< zgZtyIGHM9b4N!Ri+rmIcpyn?49oIrT`;TANE4uUDCWSKvySeOIT`&Sp{23W#A}dnt zQOrTRP1Nx-H3!M}eKA+rg`HHpmURXWL%vPEUv|Ha)mjR_m8-=fi#n&PRBn(*LnShv z`ZWeaf|TqnUKMA6nSl*4&c}WhE$p;Z%0!AyFBQFE{b_&WTaERXUt;fpUWOu>$Tk-i zE*`?o%j_u49;w!`sve;QWUqAII`N}L?Mm^JY`e=U3|7m7Z_%#@GkR%^=37y|MIS`V z8dFtXz|Vn%8+FnnU$G%;bIyar5}v<>g= z>=Xu{y;3O#wl>lh)#WFf$x1FzaOT;&-Eu9^C_E zI5)U}H7e>|Nt_$w6+MfdnNmgt4&6>w1AAQ)3h&GpZI@e=IBFPAV*MQ70kjHYxP`-i z;ODemUAEBe;0iBbVz>%5Wqz5HZaJ#tL)&~#m-5{qzG2sK>zm5AD|oHBU{jjw#oA*H z=Xo=*J`N_j{C0>RB|X7|9taO7=1HVM@J~&?qUE1iK`xRnsNiffK!4#2hXJA6!~-9p z*HI;s3DxGe=+d-ZPDJ{Iw<3+Jum?%0|eXhId(A3-XztS>Iu{Ze)w zPd`?=aC|{c_j!q93D65dZQ_E}Vov+NJ!@CcoH<56O?I|_pI}!UkcIUUGu^o8>Z737 zvKe1!GQvI5uO_xL9(pSCa@!;_sfAF|nm!syk!1+Fj%)Lp{4zQ?@i9E9~JHNO?u(yI4|-pPOrx;<6uQs_(xs+bJM?nn8wJ=|7)T>uR+GX z5gTPkaDErFBqquq10zjC|79IZf8gZpTNQi{O({f5pT7N&DC?ql$nls(wa8BYXt{DU zDV;qeBFKDnF*L#H;b?q_UzU2<2GL9$PDQ-Eai=Pu5V03sw0a|m7eRmzj9rJc#g_z< zm}!PVwIa)#^Kv+{@*eVnSQ^(aEhJrJ^55|MePgz2{Ne03_obIN_i|D2MOL)Tm({{Q zjA4&bu$S>&C&RdMn<-{1VB^5&>D$wHjdlA0e}?GL*d7-iZOU!?IQ(WY2%`$oRjx`1 zn~EQ#)9w(T`1Z{QXxKnDE^3d2imwIDFF$07j^~^vf9=0FV8WEfVSn_9d;3MfEBh@< z)4fAd)VPsW>J)*yYaFy(D&(Eg{gvjQ8{u`0a`_f30?vm<+_&%hLBJzG|syVf_ zo&X)HcR{}fh~r?Q1YjhsttF7V^?mX)iV9aq5)jLcM*Vc!5fqzY z2$ZRm6v95f@M&Abp#6i_HTXH{a}G7PmYIg>m@<2YUisrF`=LjuM`0&#NcWJ0jWgk@ zzvrGBXd&g@@y?b&vvM(QptvC(^ZQ1&g#QppK~4`e^nh4h5BU_t87e9&4i3=f-rL(d zXr(di#%bWQlW+746elI^wUUHn@Dw=k;lCh)7_E&9sP+X({rV9fNDx^wqJMlc`!7H@@ zU+Qjk0L#o2)pp-!>+MD5YsdyjXuDf-Yx%}7U51%_M-C=MJjNA5rWl83V#^!Vw;CF- zz7WVJMa$O(e3i~O_U0)kzT^9Ak+vg2^)bT%Y{!|AtQdU zp6Jg<@Q46atYCW#${|70^!>cj@Pkyz9_D?CpZc}m=|I4vquIvCKOH0}&YYFm?=ii= z{oyfQrawh3sX#@9!nQisjc4{@-+S%rQP8r2*3mN71xyXIgE)JCv4tLv??R z5=1~EYTJ#o{!Vzk0qHF0*?a{9i1&7>Y7X}S(5AX z%Z=WBSE4OCW|F69z*LABE;iQ zAUN&N3dDa^1B2^rlE@7%yuJ9_!M$hY;ahHU_A*!8mDjt@UbUS^5xWXpVl(q)s%T&z zr|%o!;FvAZPkfiAeR%w*e(kY<8y~OajabbTL5nV5S{GX#UNqE5gCs@^Jb)e;cm-fJ znghtcBh7ng4xrC~G*hCf8XEqowcq&t9eNJKT+I=yA>!;k_-CunZ5xd#mQCPX#$9+QHh5+3WX%FYOUcYkMtfD8ByeqCbqQR~(#;iK`KS`NLTHII zbcA}nfh!4Gc~w;kbfW-w=$=y#$iN&ytu;V0?PV_^>O^-5gd zuD?`DAny*<6&; zgpF2DtEacGz93{S!^MVGlT%bExp~FypiS;Mm#nL7#mkR13R%=YZu+kW6>@84j97Te zw;JBSTzJThaklUz{;GNG%`?$5jQW;Yv4ON*Z(d%cdHUixDUTP8e%s9ag-;|RVBxnz z^rfT{3+KjE{kO81Y0#}~Z1jNn1HVjZcN)>=*@nC>1=@kGTz645Sqy|V#U)gWle?Q7 zf*%sG6=6?oPlZxcT(zA!SRb`}{1met9gW>K_PU7o#NSRJXv9S-vMxD)&WcK)xi&&E zjD7H$PMfFsSZHtl8+Q!BBURENocyCd*D%wlSvIgtU?3b&e2<|x|A1xTs4;uZhs+&l zGkqf4%4pR*(C(-@0#;g0Ny%Vo0Wgn0q@}$m>3ixAQe2HN7!9;gO6|Nrbr5NDy0938JOg=- zxVlI7Jh+4xnd+u`O)1$(r+%^b#$%u>cGwlM&(tM}C@kH0Ld=Tm#B|5IsyV2#I%tGX z9-dL4X9#)s7h&_2|`9g`jmkp@(k2gJl0qhn;j7^YU^F zKD69Glz&BUa#X*MPmAJ ztJkNR*tzJm%_@^eJG7v*p_0}{|2xi(U)-L}LwA@~RiK9G9 zl$V}^B0O4zI*dws2AW$QiPXp~6a0VfP9}+-slITL|oH?~=sjasR5!%508k&ZEDP-JG7DNm$r#iWgotG^f}# zuz_XqcVni3w4@-hRHT<6n!&w{>WRGc9dAK?T$^ZFm$I*6IQ*?BWk1ZFTdN?}!`>4> zQO33c9mhuHR%#$YYVzv3mY!bX?e9pp-^t+$(r}9Y35+RJ_S7Rh=wVYIYY%9q_x_Ol zgXc%dBqeFlVZ0yNAkUne*`Bqc6n+bZGGAdb(GU`8{3zUAG!EU%X11<{H>+`)sLF8I?Pb8+Wk*LQ=CpyHdp;vz zWEFHWp`eL0r-2~H$x+kk5v2bt-x-lO>7;|G6b1#|Rf{0Nq|$3Mo=o{BcaWADC93_9 zIbl~J1T8IknQ}DY?|!Y=$*szdEOQEqcm)X#qb^Zp0;uM(0ioGjmoSvG;h=MeqMa=I ztDb6o7bg#IUk4Kh4D&jeJ$^h29Dvi~+0zDSbZ6`CI-N#5hmYa~7a@^fuCd;HXP&E0 zk@%hZ5Lwilzgk~V3e0~H)Ua7&_- z`WU@NtjeXUM&)-zvSvi0Cj$dqrLogf=EZZP8UFci+#Rg=ktUnl`!~YE_&vElh6s*7 z>{->*8__mO4slO?va4LRY)m@a>sM|H6QDh8o||^g`d#`Ugz(Yh+FqCIRe|(;R>pKl z%yw9k)15(c-zU$~Kl+smgQfXRHOLTt9y46on$eWHTk{l;(VsjzfUot@ekVbi#Ff)3 zIpkAJMjZmLj#yBPk8G|#&po=O*JyzboGhSCjCIjX{{?gj740}r@wD*HNO2dvOTziLV zcp8c|Q8%mCGhM@t{q+(9^`)*!qH(#eQv+h+ZfCdVhc6m$t_+geh|JT22Sh>Awo_0^ zLiCN^m6$&=296NfLkIBZ9GskjD$W2x0K4}8F!q%}RjuK_o9^yz5kVRW0bzqQiiAoD zNJxVqB`t_ZgEUHmgp`DIDkUNyN`nf5bV-NzS)Ti!xpU`!xX$>&GiR^8_M1=q;(P12 zhcjc5u)!GhO$5C@Oj|K>V{0J6nmOYDA5YRBsn{mjMf|ZjeiBMFy>)Vqs^ev=ML`nh zHQRtZ=QHE0R~(~jZP=DIhc~X0+^G4WonNSk4*yU?_@%s#tDy0z9XSVfNW=Pj&}*O- zxa$haVKYD>XTSr1;tBvZiz_NN-TXkQ3ZQrhTq0#22{Zsuv3wGcGLN7T5H-Ym<+K~C z*I~hsu<90*ru4K7ng)&=aE`q#$D>562Ykc&+xT$VNpq>fdHvK|*r|6bi!GpAI*&}9 zw*!s+P2`t@o(m-v9pN z|4yA6hMM*i_+PIEtIrw!iPfZ&O-skcFt>A`X>d6|dd=2Giqhay-LjFKjSH{yyZr3=GdQ(?ZBLHkyXh0%#(SH=u5Re|Y z2J9LP6ug=kASAzkhhazO41u=V5s-;mAff|`{|&d(vUjs9QZY_b2yFJ2Dhmz@;8xN= z-vvx?4Mda(M0W0M!^^?m{&+tZRyZyehe5`C6W{vc<>=&zyEyrqG<}cFORkk0pPqdE zyS(vrDrN9mQO!!t?vF%3u@RGb<&fUwhATWmKVb9S2i0~(@&cPq`2jJj}! z8rIJ*&1tHpTnJ4>HNrxpBFO8AHZ>={VPW9s4UFzpre*E5>+2S037tLI7x5DC=aL{{ zj7nm-tzA?zT`5As8TvS{J$MTi2NKW+ZiTRcWNq;7;ImBAu`__Xls7D;>CO*q`($L^)ml$KuWy-l#!8|GdOU%+28oh<&)Ifb&`y{ z%Zvp)jfPIDVd?cSUo|d-M_-2_pB8Ldd%L)3gGz-w4`gq_o#{8YLqmq+2j6s4cKba@ zY1}C@@&FE0AOsItZ6}?u)_@`&f7*jg)=acXtDldK!xG4!Xa{=0f`kt#gF`kTxVvN7 z$WSmTSg4P03vawimp_jZ8}tSwSu)5I{5JsL90XsNJ8XNb*}5qyA%UTAJTixb-;mN^ z1Qpr=z)Xvq680@LU7KK8V<6P(mF-4YtMYBxrOE?TeVs0hJiqF4#7e#oU{H__X2kc+G|grFxunjN+|b`GM@dFpQIck%xWZq= z-5;Mr3=Re+dmu}r%anveGolj4*ITJ8b{I}nrf*>}TeaTA?z<1j$Z}fHlv;hHZ_IxViyeT4? z(f}>KI277uAXtGw2Q!MgOT%0t$PMQ}@tBY7(eLd3w24b^pSIkxd0uVTLpUCPBFz~} z$W?1=El4du?)m5us=d;p>#geS!g=5R{(dt~r(Dw`(K+sfn~%6xo7PqjUH6UoG9|) zpsmfwxEU{JGWRAu!uH}>(hd7^PlEo0&F$2wl+H@J>(h%?DI4xt9}4tIg?TV|^iZPe zoM$Gdrx7{mjWC=&qlEcgE@o0J)RGB){P|sTw>v7r0!Jb9QVgGyv~fcS2Cf-6CF(JItvSy zVgLL@T@#J02W3=widF9ww(?zZyh6!zjZnqLQTQCV)^&x(TD+)hr7X1_PQEMEv0|AI z_B(h@ybhzHgdheJqFGB811TKy*k1r?otdF87n?QUM1iSx$4tq&inH=bjfcnm>yj9N7A=IMl z(O~yt+vQTK*MI$Ixi(hh`vB@f&;cXi0Knmr~!k>=;fzv)+N(IHQ zW!Oa*KJ%KMwr?*j9o!5eXAB~&L(>yJEpOSM1Pt#cL<>oF>2r{~K(|*H56WRkXaEC_ z69fp%lcSeYQ1*Vp1~uK6t+Ta2V-W0m!Uo#LxrrKcy9`mFCO?q*Ykx1d!F+0;1?sb~ zA3&GK7lEe(F0lpNX~sOvfU1K7$VRyOLCmzFNd|%wBHe$!9cGCC+rju?3DKw zTC31dORV_Yj3pO#ug8lUr{6ky0;g;IO?|m|7QVk->AGZZH|*$l9e>Z^>6+4E#@s0) zDgq~Y6BMWci9QQ*v`%m#85kINcz6JM@#VF^fJ%a0&}C^`On2Cku3F%7hYG!VV7NO( zqbT!q8_^6FP#{H-N2>r=Q4-9XqUL@5h+WKtCYj30%35SoBXl2wpcX*+pCkVh!hdFR zuJ3sG((HUE1p$L@R>Y8_LvClxXYCC6vN^3z>iP{YCcj|wJ80c4d?{%S(E?I|xng^5 zN>XU1dESiwmFapPR}O_zSXO}Tgkr6!%6>I7em~7L#q^JW*uyT($02n6VGUZ50v`W^3DD&UYoN_0UgrqFKg_}e># z9`VcPKEUwte@-B>x99e*TX1zr5OYbnLEQq+TKY@RCcsjGih>se+AMqP*L~;Ve$#dd zI0R5gVQivqCd8lcSU>pny0NO9@c^0#{KapE5d;^={`m+b390_84K&Mk!tDje8@v2t zn-Lg6gSOV=7e(+K81*ZEJtdQrKe=ZQ1&G7_MUudygP6dwX}J=!b)qB<=_l_VKR@lJyEp8t^pn}} zabMkoi3j9NTw3~U?5nj%(a$<@9X6kG;V>kXnc=b)CW115Mlx;F#vSa zp^=)X#*I*;;8!65F^(2HcmP8gK9u|?2-zT}B%3EycOBtey<_qa2gUsGJq2837AuFK zOt1Z=2C6kL;f_*#Sz1xi1~l}L1Zm{+5+&}js+yV~^MQk;osOuj1!P9ZaYT#6Q4t$IDBQhJV^{z_RA$71n!kAa{2OQkTllt@YqXf{Zr7|@_6g_J|uD; z0F1C^1~Gm%qzkOr_Fj$qXJh&12}&5qqL4yJwoJ`JUH%cE@NojOfJp$)>DY!Su^F)C z#l~_>OiUqfMZnt(aX4CPu=PSvN}#c94Gu04dTfl4SwfPkXys&Qr(Whx75O1XcBgk^ z|LHyVPZChUa~1lx^(PL@?jAM0ySDo9ZjaDs=7BWfx`KzF*k*q}9M4~Eg(_#qZm_Z? z&dnfp zP)$R`^Co_ETr(XDDP?mX5Xsujop=QmYb25!Nom!;eY=}J11JR$Fd*9Hcz4EXTI9n+ zyM7>nKFDMMmus&!M_5+N}t|i3w*4Inks6BVS5BqwL?x_g}z}y|3oPNE0z#s-uXa)4+07jyH z<>$w1pLZe0q_+gUp_?uYS%S2Y0HDnSZ`;O385g>B&bu7Q#D%cGPINPsv^^bXDqn@7 zrX1ySzszfxu<~vkv{i2ho)34~^sa;({@s`*b-guv+ z8-= z2Vs%^K09=k0t>1`Su^pgXthm96H^NjU5wU7Wa+cU2*ohzDH5n}N~Nr<^-1_-=-!HN z)iF`yNSi6e%&_s18q-_3kqjkok&9w!VbbIr;;4nI%+4i>q>QcNzq-pjE5;gUoA0nU#3tYbSNl(Q{ix{iww^|7xn$>+|dnL*1$i*s?||r z;!Z20#fnQ_@SR2Yd{DLTk&X8woWD~|Iy;i!?V_i7Y#uVqD|GE=dk&8AVSkpEwD9wl zH!Jziug>Gj*SJWGCqmU5oss_(cW3gaBk#_S3`VB zd@`}1#JY`x$Z2wtk*Co+oBxW2ac*6Ed9jQvS!Y*D+?T zdH%+wR3Z~OwFOBQc_+Jj?k$7C#dtlYkI`Met6qY4f2m%*%AH2@WAY0r%i}`~>5O7G z94~CIeP=c{wMB)a^EWouR!hGOp1P@yO+I zc~%bb@&77>`@y_c#+^%izRFIol8h$5ms}}Mq~38~Y(K?!GkGu;s zDkzpt3jJ5HYS|A@HcIcn)h60`BTbHR8_4DQ8LV| zyD|sNqUe6dnNeKt^4%-}J9qBr`AsrG7Bc&9 zV>J(+V<##U7fc+gH9FM^$9%i+P?ijHM^~=wkbGSxxdL%V{ro zyb!@m#il^p22#s=@lZZ*f{rT`EeW1=LDQwSwiZ%k6jIVeuIHF}>c>xzQW;LlM^h2W zl^rWaVkRSx=MwEB*_68Vt!&!=AO<7sIiZZ{w4$|@AGGAgZW5e-@4C~d8G_onan?PR za$YSzJiOLz*_x7$%g0eycqi4fmWEH#G14v-7ha={=8&P2M>E;PwF3t($Qyyn*Zv-T zMwAe&`xBvL0X%TgzwSy%{TRPk#w2s=z+U*Sjoo94QSD{^j>p+Q(S2HbXbDCEf<-5J zr_9|H5;hyQ-9QJrz?1J(2?dHF7j`au)d~Y|U3AfB>Ydw&01E`CICid3zd^oAFJz8F zm06JwDRe+U-3U&1@>xiv0WTF+N0Z1 zDfaGw=uR3g#`hM}4B52eCjST($-11pTY2KS8A-S6Cu0&(4ovVUd|=a64aF(nBWu$_8wP?TdHW9UUBe zAu`AK4vCyRlzl{Fq@nGN)K;0jbFC4RLb#y3`G@)-|SLjzPgAk#Z)t+1PfvUZyFIP`XiP%wMlE26Mm zj+Hy0>!|bim)Gm39aq0-9(&%Wc8NwjdMjUT{gH=`-PioLD_@;R3*H*GZ+k}KmG{$L(>{HKxy$JE^NhT~{*P9$nsxZ^vcCkICZ{Rg{=d*z`zX2w z&2=#pvuis>@tzIR=bCl*1H4YREbA#3(p)j1_%eF@g>_g?dT3djlpE(U+*@4QG|Lwm#P z1da7SQKSRr-^pNAR%409%$w(D{dERY_nlC}tu;H-!_WNw#w|nfz$aY};uB}?v*@cX zvY)Sl&J3tmW1@Ipx^_Zd1tqXkYZzY0swP0x6Uur}&sRc0b+?6tp_dO zlvXfQ4X4nk%YUcP^&PdG{qRf0D|3clwz50|R5_*47x`Z4T>Tl&oVmz^ zbI~vxd(mx{r$DIqYG))eyAXmqCYUtLV9!d>qQQV7f+)xr*-m$uAKgw zW684qU92E+Wq*XKpEo+_JQ1sbtG=rNb08Rw!6E89|N46SA^+#C&3IX-IO)^hLj;l0 znS`y z_XrKsBqWm;Sqv?~2iJ$phn!;eq`G4pLMbmh{<4ra{P!mMmDx#Z+%OB9aB74188mjP z-Z*bY;<0+0v%ZFNqsW^ti1b;HY^H1{K3}zm9)H9T<>>R}PingLn=&F0xsYpI8lSO+ znT?K)Mj=HDQ;-mTnvRRKo!@U?Z~FLx1eYMVGUqyRnL@3l3?By%T?7$N60L|YbHxPi z$CGcjk)a19pa3~!2P~)yH#4K43mB>sTc5a2>gDsma1bp)uT=nTaxypb9rM2W71qG2 zNB5lsmul($ee^9H$IPNu_^8AbFQ>ssI0y=K33FLveO`SUV&LH^w4o~}|Cq^qF==2( zva>{x|C*K6YQNLWnM{rq0DBrs&58o^>`-L>!ibR~vVV9yX+NrLF$?A1na(zsH_D znSsTR(@Y0Z!1Yre~y0urEyMFa;SqsZ>JC4hIbZ68@Yh-DT zrLb;}Xk?P3#k+}3t4T^6tZwcql~m_EV`KM^AD>8X%n%p9-#Z=|Qz2z#HFuLTk>5Mf z*QxvkIT#2n>*k4rzjv5vZpMW#wjEgwu;TQ^k=kQD2vWe#o1EZr{AQ6x8tNQ0DG8BUCuoAN7l-M;R>sQ0vcbrWW0F9G250l(c1MQ<{|8^Kex5aG zTU@{(a8RrgOpSiXaYlR@n}8=&BzO3Je{jI@yM|OO7}E7;Ps$L@K+p;yK)H^n^CEsi z{j;f=x|1``y6`+Kg-*J4(v*_w4)gazoDCbJW0s_&^k3=wlsG>Ty0b&qFYV{UiXWyF zQ(E|z1$YceJt&q+nwy0Cc)(|1fkl?m2AvZqPyDyYJ9nNsy8D?uy1=3b*r`FcZ{|9D zI89k(194cvX3uep ze<7P|g2r`Iie2xWa231af;6KWlrg#*5BdB_b*;x)LXiEAE5|dPEcw}Ub@sQL$@{w6 zvn8fxAH(IU0~)LQ(gu|ZQr7*{-Q!S%B9g#B#(cD(gZ*DlkhABro@zz9HX?HWz$3&z zr%}bNl6~U$dsfrG=NTTWt3TH*W~AQa?k7C_a--~3oKGe)oJB*qnl9QmL)5Fjx<{qI zc!MQ4u#~uy9cQ3|Oc0RlSCDQWfVqey@Zj5gx(gh=>OWqcPwTKvD|7H?>Pt+JTT)PQ zORmVAsb9vQA%(|A+Te;F5MM8!#4oma*B!@IvGBKP_&caU#f z$el*CE=NbHPuChZKwPGgiQ&2OjszbJq`#Kh*Nwv)g8Sk7oOrsXACEG~Ep0)VIw_gfgG!I#bCCN3Odg70N#e{3zh zW#{3(|F&|wVMG2Oit%Xz!^G-6p>;uTgYVt8V z2Ac1y#H3d&*Ty?qNn^z)K{_MmM#_@A!jQ?KeQ#-~(}glEv@cj#{vIA>=A2m+XtN*n z3r<&ZyY`{EQ$`Rjg#DffmUW@>H*-VudZ_uZ&{jXSPd~W&pQPkJ@$9*oU*kWttWv0FE!oQcAswBclo$jJ|1tBwDzE);%tXQBCy%k{&{ijRg;oI+z<+-$kY?R zrdwzYLD5a3%Ws*B65V)iy3Qq``6LQ*3wz9@?SB`Y-Qxo!P7PV2{)oXe#t)mp;B=e; z&QVlQFUK4W%j&!XYriXNXMaq~T+tDF7a^Z4cvVT;J{8Gx^t=#^I>kZvJanAG4T9*>ak7R01=?UQ z3{V_9#r6<=%tEJ@(rstcbtw8MVQF1{L;7lyXn3Ap_4`rR>P}R zw9luaD$LFX#mesGe(c@t);ii%PccW@8?E`Fl%)8o1VUY<`dkB;HZSfiv~$xkcA&YA z9mB2*R75XBZ5ks;8Mw&*8pHERYGS zHIo_`I`w0}lGRZH+V9ew-x9Nl8a2Pq8f*Jo!II@1SsNy93FMWOs8{9@z z_;yjDlh~YAI5Lj2F^4**xttuNRQ?{JV3Q9!gnQ0DWN5d#q)I_RxI%rTT(wX#F&Lx8 z%Qf?^r9yaZlTGyO3AR%lsi>BlJ=xYGB^2$C$K6WDGoF@M{$kqs@{ zbeN^S6!J~Y$!6pbLwO}?{JkHK z5(~GXvQa!Zk&(^8Fc6VpCVKb1jzJnj4~-m|YW(mG?kt>U@8 zAyG42sG$Gw-TYs;kfMznZ*On}FT2whc@F(sA-1%O?ef81Qm_x?Tmho*#zAwjzCHE< zn_moDN~>D5AJnI~YQn!^<Y)jBmt--X%pKhelhw){}XI*#DX|IZ^Xqj$3}c;M3e zX)PCGWkmGt;<{*5-V)f0a6-$e;WS$IviTI&(6M`IH z(S*C?QYLCy@v-Wofnc8$C|iU5G8k5Bo*Wy4LKiq}E0Pw%hPD+#myo9L>Kfs!L?y2P z9AiF{cBJ~$IYET`Wi`P@$l45-04$4F79MUeIAlEfTdvu?qov9A+_tQ04_~Xa{+N@3 z>74m5Hk~rcW!Fk7;I8MqYbe$arfAQrOSwL(NA0-U-o0M_IvvLoMCEfhbN}ty=UQYe zI?=*JsoKJLv^QG+uEa|H42PF|WESWE(3^%-Vt6ocPoPYzixHGS7%EJlEUpopzp=!T zI69d6c6;LB?MwT^bf=5MbU-|BNcK^v-5>gggc3^6u>fhTEeW1A+~nxCsNc6iRZO)7~S(P_hWD*to2|NsWs<`7S`}k*>m2cu*UnE%%Z>Q#Xa495k;@m zsbY9B@I}wRH^ol;qafAJQqbr;gko~ zyjV<4H(WnOad34t98+0<_R8M(BZbb0hhk*^X17xhf`})r6n0P^=NZ7Zp|Gd)vuSGk zSEt5$`RD1MhNW%KXS;$ei(D7JFno=u>Sg-(Ic6Q_8K#YIDc2uSk(VTC*Qf+uuaFV^ z=*?q79`lnlpN>j%QNiYy+u+4_YAH>Q8;(5+lOFf0H&UZs2~YKJ{A7&(bpFG5~CLf66dg_3RPjY8C@7L%PzVTos?M(jS92eCB6fVXY5x*#=!IC&Rn0 z$tMA5AL!&;v(;JkC4l!bJ2NS0pJfzE!+%FerDj}S|4)eW^z7`pbYU!jYVw7=fgq<^ zA7Ib;sKIeRREduyZFHzug{u%cgb}pjeZiQFAxOn z(YTEHA~CgEMUvMWJbUt%#L2ItC7h253OhPbckq3GA@CgFvNMxD%Nw@!vdjc3JKTgL z2WNskh(!$O(zCUgTs8q+0VvGrnwic0I;?*>ApUUm zUl{80Y_|3_-uvPA|1JMS0Q=XroJ6xeBRLyk>fX|W5LsVen0)^Yuw|gd3!diw$qMzL z*P0h2)Bo@#ARQ4)AAn9G2Eah^*#X@(jCQhstq?QFbmi{#ddz@Z76LUD+0SD;`~9YR zFrsH3@I-USU#xaSPz-9;`|E5Z9HVBB_-I~42oo|!Yf|pYWOaPGc)7M_x{UBxSN5IV zk*4vTG8dObjToUaS%-yu&2E;=DzZ?1@0Y&+EhFuRA6VittB*FzHUp}Aek7UQ%O#WJ zB-=$_$HB6Ahe+DNYa@QiP@YmG9iYS)0#GaBDNqNbwt$nOycj~#$C+M$OucMUKUB94 z0%lNtv16dS=KiXLT=375Vna4}Iedg3XM#iMebjtPb1VHPso78&Y`OH>T z+08zm2#gjkT}&`lj$H@{E2=kVU;73KzDCEHH9_*ay1Ls21`h|n+`&w_Y>fD5qv}E6 z;Cw0YocDwV#=aLZFaiJ{A~dZVOT=MsZx1+B@M&uXNrKIjqorjDj`xs@14v!38_2Ws zDlyFJRjq93qogWeF!n<37=}J+~b3Lq0@ljstQWH%_nB=k3}-o_`Kldzd!Y)GuSTOJ5+2lMvTIee6?Q5NPO%C zTQv7UjPHOXUE3J}peA%TNl+cL!vc(qjPf888^vo81wLZwzp&a_co;0Q@Nef8n~50}yyi!$tJ(-PLk^Vvf+2 zsEIJzy3}HRjY*bS`rQP(I0{j2D`EnMhJgE^o83BT3h*KoUeB(dbdz$t5+tH%E(CCJ zsm%4R7_hiPb=Yoc)c0@34GN~&>fCFh+_+~Kr(;el^0C-d&+`;3)Wf(bGhInD=FnQc zFe-w~d2IO`pkPu?kANg(TIXo!#TAkQtd~@#&rQ=M>QfI?aL|F}Lk)>LfsNsF<=ocR08rP15f(w2JQ}_( zcaM&vCh%=y1P3tBu~c3dD^Rue)~M=#R2qyp-k7`MabiP%xU}z~?d(_td}oB46}*Rr zii!}-V`(T+Cr)q8Sgd`hAw<3d3nDE$sSynB#&q{MW)=mz480$Hh+4Y45M*+Lkw(ab zV+{+eweW%fB_fiXBiI>?$BK^v%+I!WbI%J@JAmVxuBxw8{(r!Ram9G@5&m*`DDbi= zRniJpDU6BIl&8)VvW2Yl1{|~x`^4dRy5yLgdZZSDs%*A?_Trm-D^boudY$R7FjJ}s z{Zxc!z%k03_$P6W@|97^FYE}CcDw!6r;tqgNZ+wmot|UX?#+7dd zrrtVD-C#*RPd#2#6edsHGJ(RKqEsQhz`k#`YP>V@ePd(PK^6J@M}v1QUAmj1%d#2|Zv#N$ zqMG?|zu)RvmQz-Up$ zuQiUPd`mZA*t}+Rq^9{#dJ141nw~VFFY2IlKB%S{|D7*PBGdkWFZW=wD#=EQ>>t!y zNj;8LO{muN{XKlH0c?Ae7)GTG-HI4J{)vJVGcKy9uUW3&V`kK1;%28b9XkJ7h&Tx2x3AoZYAVJk_W*VYoqde0c~`Eee|B>-vo0&OwXw6KKu2=X$tVcsz6CbRL(&C@ zl7sc0CVfNG0|4SUmgb?3<$Gs%VI^rQ*PD5C_UcygjX(Icmx@i5qTI}Bok_0y1R1NG zv;*OX5H)Q32o7Gr{jKe+fEzC=yQgO>0Sg+U3Fiy8u9RQI5BQLqdVk0KlE(6X*k4{u z1#w1yknjRAcif(b0buot1R*VLGU$-^8woiKY!vySwo&#`m6>h+L`bR}e`?S7+E=*& zq*JZ}<@K^UM!WgI{l*XCDxw2^x;~$JmI5|iGLqYBtbe7~;o`VL_uDYFjm33VgEvS5<}ya!)_Za*Nb8Z_Cbp&<^AI%Ft7 zG4=-}fTO5Zn&>aE{__DbUj)1$SkVesG0GLhE*ZmyPo5*HByiGyRPu+2)A3l1@0aw_ z%PwiCzkfu8Oc%D*xJ7}zgZ(g(BX<{ec~C*HLvT! zWUN!7ub#er`0QX0fww4(SIlnX(_jaX4dVfo!e;O#0SbE2%OkWuk;u}2PB;qD`|;7i zuY&e5pmiOm>qR`a#@fz3P^o~81u;3j*w27z05%%xZ&u4m%!`u76TEY|ciK~fS4x5& z73*Th7m`PW%Pu#5>it!0o?-ehoc7i_JfVAEmrL z{@p<3;B_t>sQu~rabHVV;i_P)(ekKiCazta$OXa#Z3-6J;S%LkT#2r5rRbubA%6Wa zh6mQqOB*#jP6`!O1~@egX^n#~%k|v%Qq#x-SuE6(#;ulljGtt|!ZM)L#j8F7U}|LT ziVeO3umMQNA`&Rie}lNzDqt+%J%q>%w5NOzHspMEtmY!80X_?I%wryBKp8T7=lrUq z1UNjKZGT&(t-O{CQU+5+@`_mie|!!cX=pfm02u&;ncV?7+sNwIa!5dRfqWSJo4~N=qE%QX{7gJJ+MQfKjo;N+Jot~F9)w}hxr2MvA*yk}hOv@|k zgLUIXYj)DKP1=d^m>8(^5GE5Z#tqTDMRBhr*V+i;T1Bi2q7xkg(of11Di?(N2I)&y zb7(9S#}qNH0hE6M9AtmFN+CSsS|3nW0AFi|^OJ$WK|ydLiH!w10cfDL7Gwf}MNHD| zH>jk8FPfjwTY%Sq>1@f{w+Z1RBO}w!?@CIPN5S_CP~%{$e4WD68z7dYcPcjE6Y*TC zr~6&>U{TFr2v(YYV-3aS<*c&au0@SQ0894;tUJXl3p>S`aA5TAz>zS?+Y^r!sanOS z`O?>Q^ttViQVMa;1L)|h!xIb=-*D2t!Gb6wtlvYD!MWV`$txQz z{UT2r_MdDu_VgT4YVg*eK`UlIS|seW0aOWiYf}*Jh!PPaf!5CU0pu4wY=LW%+c%Sc zL1i8x(?QQOfQ~`tk?pNp!|-nbT1^9kq>_^5B`~^PjLsa?z65cz=pxYo54S1cAKPWMjisKB>p>sCiRuYUU+Kk61*Qf zUn_FTv@PZ5EbG6sDq5)2AT70x&q&AhV6|cyHhJb2ERl=5bi?$r#~5`}N&mFOV3?hb z)f1)LlXqEg>i!6P2ouLg4KYt=Pp)$g(wDoNl>NCGqGgp}T4_bJk7?6qk$`1KZgee* zT*VAfU=ZiYWaY>)fSg8D7$saglR`kVfF0~DRW$n7C^d+Gje%Bj|f%dcr_ zUH;)uWh0}>r>FR^Vy#Ycx-{FIYYZ!VdB-PhuD9w(Wi@&zOKfhM23Ltk{? zNhxpe_*90+=b41vajBp7R_D(w6zbDblb4_H_*GU)#@h_h^3S@4;f5t@4$r*^M28p^ zukdhs%Xk=yw|50#u%f@sU>LP!>*0midomJhQ#XS3%YV86ZzyW}?uQxJ&k_pSkUm;2 z;T?ZtE`~R$Y)Gkti-{VNoi^c0Ty_3CgQ=}mG{cXsF@L9^W(&H@aU=E4^y#d9^1;g7 z(&^RAFP*n`%a4;R!_{b?YLyB^YM-MXa%A9vD&&0qpaboxY>+-Vf5Q4u#nKFuxHvKV^LBUD6j;J4u2 zN#*?uYb<1ZB;dxVi@)^JA&ddXKUQ=3+W@Q6=S?}9#g?P4CduLpy=BWZg4#_%jJMpY zbY2%SV$A7^-H*69$vqLV&Iyvd;k_Q->R;al>S(TBakqJ*D=gzbq^HsG`@2i~>^4d{ z6r8~Lg58xWJ_ch1{=qS{N*G_B%<-iy*W-VwC=~aNPx5a>CdI6_q<4X_`|+9qy-)N- z-i>b(?ypkYnJ)?#;^)!;JwF>GAmAgGgzr5k?}4qC=gn5@^-&gq5B~%V9k{L!D74LB zI*3rxxZALM5`|I+8>qba0+#Y0KYrZZ-MtD#+7W*YTlGb1MWwG;ub<#2^m5;dTm3uR zq*+ROc~;l|k4cDUl-se{=<*~-u0-xK=U3LUkpdqVT8n7g&ZeSc zrFR1){+YFDhtFSLd*V;z9ZeP+fgcZmXsa2_wa6L|d zvqTz&LJQZ3MNTo5{}k3voX(lJQ;shc1s6!Tjwm6jFVuZdVn)XyC1U#n_60S{7dYR> zZxAn=?tW>y;)FMtEs@J`Tb-cFyLgbq#nkq@p%|Xgbp~V^i1)jDx*v+GDQ6})g*D}S zMl%rOVu~a4^gNbo%wr}Gr!P24MBO}LeC-U2i3aB53K=#kT&88md_KC~Lh9yoyH{0S zvassVC^d5vNn!)Z(V&M{x>MVguXElCpUH0`m&koPv=z3v80>7S7tJoMLvcNl-7p>t zPJj41o!B3Okwq;F=5Al=NHNtYkPYBn-_cOATEbW_j-tX*q)Zd&ezZ*!qW4sj#Eh$i zv627%VzBKqG$KIPx?M`V!Xq4B4;06ci~9!+#m4mrUlhwd{?j%YDH6c!^uFp8MMBalli_ zKMwqaQBS^x8*y`dxkMB-9k%$*BZbw9%Eu8B_#ttVrN${2Zef&VF8axUfOL%fUxQlr zd#S4hdw~M9GuUdRe^+3A7QT@&uTZQ970-qhEL9; zKHiJbevOfU0rJ^3GTM{c@Z3)rtNHoWpYT(wUKKZC0# z2(vh3l-kti{^>hLX{C5$#_7}5y~%`@2eV=;KW?yHLm*`ARZ$S$tkoRI!T7CONj*p_lpG!w65ZMjSES#PCZf0)T#f9q| z_x*TVB7c;otp83eid%F6ex5mTQU(V8=ozs$bspsSL9v(hcV{SyCzc>2pF6ze8+W(=9Db1;^TinFaqej-k9& zRwc1_Bx@5FUfhs4?^b+zB(lkjQdoUZv}df0T|VH5#>ZA8_m;4w| z(|IR;sQ$;W#Jh4I;u)_^Z-b>IXAiBZ^0lkoO8##+ICBL=@*Ey}uK5z8h6o=z7v=l* zZn<_*)${6<9h2K~gz=O~?>3K12-4c6+#uXz#$igRuT7N2XW9$2~%pwv8@Jxz6#uESH1Gr(1` zzJo-2-ad6^!8&4_xC37)n=?G(BE^FnWOw`t4KF9e*(F^Me&t~>Q@wolOSN^kj3o(Y zJ4aLH>~pp{Ed>t^DlU$b|j^Hq1OV zViBy}(KqCw^tEB}+I3;lrann7?8mWpd}}mP7X8UA7j*K)uSe~MJwu`B!t{0{1=Gnf z(`-2uIo28o<1lqFaN` z1AdoLL%=jFCoC!AGFmxMf{KV+=>0@^CxOS^L#}KE+eM>eo9eAXAyIyk@T-7=a zG3xu%rSH@x&cc}%7s*Wy*s(DcUVvA1ezKU^hIDJ;#Zg0^kHf321X|{bZtRv?lsMAq znje(qu+#rNXMTF+$I3)Smw06jQw zdhZ!M*M+flsv_jQykX_=Eu3b)2;((3NDb=`l(N7@ySL~l#-K@~xUnO&bd-k&g0%^Q z?-fzt1aapjKRY3;pdG7?IMbM|Y>bCf0%gmHjSiyzc}afGmdVRd;sth}eM5UJ)gH&t zkWx~inK!<8jtVs@0Z+0%2h^T(7{9*e^ueP_HRq2yKE8*FL)_LA*d(RKNXl1@w0}px zUNLs>4zz!R^ zzT+-64z7j`Drb!RX2LO~E_2KGvU^Vc`zhlsl$yTDu6mID_g47}e7@vVmrcB$H6&zP z^-Y}J|DuUfBY-jJ3t0`zSv3*s{jOMTIC;I{0b`Te|cB!E{&qR zg|aQ+)C{V{eoi1tAX;5l<lQ8B)Xkq-^;lj6w-AFUfqp zpg=ZeKv`9rcyF*Dm=*RcJwUS1V1`)fJ8E{)1Zh96tc7^j3O z%qH|CW@1_pO`Ur2aD(}G=1{>7+k-EA-yNO>cu_D-=Q*uM8)@VJ*(s%t)4oF9g~s zcV=J9n zUsCx$wr@M|jxQ_ey-hP7usgvuJNB0SQf?7`0%tgSI%Q+wivp30@7avr0j+^Ne1`>-QjIupci}3qr*aZ+#?6i0&Eka2|huyAjumyEfaV zi0c+e7;!!fe#m*Fu|uM(OZp+K^`}H}Ir-`oYf8O$bL5mLjovgOyM+ACrzvu@PUQp^ ziW?6btwzb~06nyTE?%UM%C{Ml%B z4$JIl=pfmBTE3iKxKg4xJrq6JIoN(68XSL7G`Na<^~wM0?!V)){Nwjw{8A{DtTIwa zXxKZOx++CNMuZ{>8QFWJl37-foid_m*pkX9LPip@%gD?w>psrj-_Q5=d))Wqao_*l zf85tU4VUXW&)4~SJ;(8UK93_%D`Ae6iS<%dJ*O0lnU##6 zlvWxoJW*j<_v*XJH_vm(DBGm}t26Pm^Chny-F%CDi^egI7CIPF@cKNj6^27^KlOfL zI7_L(FS5|TB$w%I+1UA=Hkw0v|G3Bg(Laq}_i@`@vtSK;cQC+3<-vg{Y9^q8;NQZuq_iXa>;2z1aLhW@DPuL?zdUgM(gITEx zbzUCTWz1GzaJC-6*JviTa^Y0J%^6Ut*nE#VST#?^pk%d(t@6Uvfk65#OgnjCE^BYaKd&iZQ%O+zhuzjk&JT-QvW1k7# zs}C2N6bAM(!f%p>=eJ2!(3LrmFz_H-!M^J-OC(YM&*l-+xpI*n z8vNT`zM2NPao9fc(#e&S+7@KkWO)=1|4Vi^ZJO_y&3v-l9w~9I4AI=yG=Q3J;O@f5 zj(0Tf>+dSQ6I0xnsQ)s+`?0d1Wf)}+!{rD6?&IJMFMZ0(fpr@T17n@28Np7$_W6gz z!B=hqa`=qRHzWGK^Xitq`hDwo(*93ZH}1U@z!Uc~m4_>l%!wzb%{(kCu4Ct3Jh}Ig zukEn^FYg+%f%=r0l~S$G%KCewCfDDe<1E9E=~Iy2Zsly|dSS)zScSVq*Es)B7FBow zTrV=_^Smo+n^X;r21{?((|??g5P$VRvuy88E^!snyO&KCT1uSOMU937-W*jQi&DI1 zqW%|>F^cq?_r5qO#T#XDD&us-VEL-&spf4a{n|cP$vd?^K0hUP{|AMt)OU6Ng4PX{ zPj?(rRo7J2iA$y5I>UZWz2flj{*)N|VgtE~_NkaeIRUTn3aYDi&SlW%x=wtsLFeOO zsr2S-EwAOorMdl7R5=Xk+j4AtpHPnCTwZwF2es8Z{04V&i;N~mzGWQqy!RBr zZG?PrBkkQ18A>+85!W6=P2`ADL7Pabe0a(NhlSVs$sLOyjIZz)o1SxQ5%bD#VEbYa z5uu$%I5!&M7DLS!zO3{Gsc1glV3Z9 z+A_&I@LkWCh64>_No||0Rd(_ns+txB=-JjUOhKZ|{B``6+UyANInTJCQC(J#8MD}! z#tiY1UBHM`wY)-e6ubQ<&2K?{e6{PcQJcc&Lv6n55{L5~$B17FFCG$S{AMYbMIabq z#IkLsx=zpabGOn|>6O~X^)BOaFA=4NnGZQ$-7-&^u)))U$E-VqDm_Air4HugU2L$e z;nm!_g+zLBL-#m^_NRv}@sYyz^1A(7JQpHgu&g_(>rW}A9p91qXIp`FyLemK1u>&5 zSMQ3vYjO4d8=+JybK`x*J*T8?k^_dCQyjmusHjN(d`EHVf|poqIdPrgCimvvel20GLP6rn*3{k*aioxg zpDu+ucqH%q9o#k@mXRfGU~E%Bh6?vUY1vBX`PtlM4fUyCShc{q$}a(1v~4%+F#i$& zq}REBYK!s~gNiAmN48QNhdw5AiZ_QK zV<3s%av=HZypxH&S)*hicAS}pQ<)R;+BX92AmqJx1oD43c?w|MQQz`;%1AkCLT)e-4CHCrwTJL7^MJ zxX@kZ#wqWvxuY8Vqt2+>{FWwB_9d3N;B&qk+Rk?_ad?FAxaVK1wrO213RjyVMKKJU z7gMI6end;9#{O7^M6#q6*-p=NzR;!wytf3aqs8k*f*bfplp3ZQ#ewwJM(-!IJHb%X z0oD3PJttMo;*s_lI^4^AS~Iv1?01Xp{_W##G_weZKjnRJ3H8}T5k)s_SkNzfwfNJ$ z_oCs0`dsc;jrKsVP_E4Rb=$;JC{WQeZ!nE1>7E>h2a4a>30;^O%}6lHt%(h~`9(*XXJmn$aR=3Xi^!Q)0U6io zLo{R_k%giM8{QPtRU2x==0$|JO76}96$S4L837T#+fIRASP_;>nJ}>Qkg(jZ$5_4pS zdGn!Am0ow_-uGjFnPqiX)ziE9La9c>g{3x<=AC07>P0^M%W)|{{pF2dDQ+{eZHBk5 z!JK(RPkXW9PuqRNw4YgL61A@#dyQ5Y68(lj`HON!mZd0k&P`6NyG(&ZtK7OR`=c-x zD;7*P1PebN>8xBEDm@!FZ4bkigj7VN(J%DFW9UytMg|*nR!;ZqS*Phf74BcHnRn@J zm;wmhBeW^XTKUs-92&(;GcYY?#27XRDn-Kfe>Tlyfo_t`SKb+=0+s5bAPD>Qci^2 z6r`ju3m7xX8L~d@V|9Q*w1&(d-J-hr&sZdU?nP&LPnd}&fu$hMJy0}8TW8rKC!rLV z0c2z^8}}}W10VCF(cnvv$;M|)^j1`$qm`wpH6l@CINz!j!X-hL7(XRcxMh=w1BzlF zn13UZlF&49=EJ}n`iGr+Rdg5GzkG<`Qnq0`)Sg{3WOFToM*XFDt;)6w@1Xx@c9hFT zuwG1qyA*ti8$Nr|aU8zJb^Q7?CiR zT{avlWFE1XrvgqhOVnha&$1_-43D1Vc^0U3!`@U?v)FRqyCXNLQs5_iWt~UpTgUd% z7cxsqN|Jd#IX2xgc|A*=lXGb&Mg4NJtV=d1{pIAkyu4AxN4Yq3MHc*1cYKGngWr{$ z*q>>!B*;=3B*6G8NS!(ElupNy?v1KuVcRT&g?J`6TcPeszIH`1-s3;!8BVW z)~4A-VZ=c9neq3;>Zht!5%>L|-QUsgV@jV1TEQk|= ziS+?zl|6Q4nah|fbd9}145pF!s=4UsE4IY!@36~d`89(r+w6CllUy#o;o&h93LZSlW=jNUW8_=?*TSjLC=M8t2c+;r!QW7 zI1PoUdKMhK5G!d=*DCq0xEFPm;|LJ!$!PQGc@u!L;n)bZTefF- z_Hv*yHzVt-x`3mRJQSQqDa-i>+&>SN|@iuuf|%Zt*P40ata zd8eP2P+EdmA;9hwLr6)h56`C6a{~9#rjCuCvhph@52vi&w3g`am^pt`b134X!#%l? zh>O1Qysd}!(Qc>;dFXhigs|5JWIE!*K3#rft#uns>o(ZbYl%20>DMQLR!09Bh{g42d!Gze&H^^Lo*rc7QC% zPd*}DJSCtq<#1gq{#cz_P6BTb&;NRwR&l`rVW!c#SWKG&$Q9Eu(3_$n6CA z?6G6j=%xuC!Az2EOZRoB$(FE|i$?>PPkt=qryBk09Lgif`(vZ>*=xCNthukg8`sSL z?Y$Xy02Zz9)=V5T{MF^-W#}3qlsJ0^(R1&P7Oe`j2%$64XL+IsDn8G$vkk%Siy8Nz z5p1SCAYeN?RRFj5NvOV31qtHt|0Vj4DWt`2w+oOE zl|0>r_8XAZpdCrz(~NCV_t&SK(mSn&1XS)$7Cm|W_G7N9tHBN}mM!#WzxNqR@@?5b zB1we&nQ*7p5=CDKExVKv94~klx5#@~@+85`o zXJV9H60uQRjz0QjCaZ#(Ag1?dvAEi-!%CH~h;as@k2ushbg zMyAAN5lSXEyF|l=oTSn1=Oq z__qHZBpbqKvQBrFmP_V|#he%S>kR@z4qRkc@&7hhnsBx4%e6Ev(a75ED5xPYpaztE z?Fb!B)Uh2RxUKz(PL6BX0KJdJ~z^E|J4-PmULyXbq#jOC3l_F|ds=;-mr6zMG^1`O^MvQalGj1B{t% zLxLz&{FgS%XlcHTHovm%LLJtDOuJ$4W7!*L!%yV=9`RL)VCdM*-L+9W@+f$pP4C*se`#K+j@9ED5kruElqk{f2bk77^Ck}-Y=kX zT{K7FqAERCa`D4RlghST-2W{T#W@}7C>5*lzq8fHILBot+`P|aK6SGz&p)4AxpHC~ z&4zrA@6*=`4vmmi_&R9*yKfYi8BGdKaL)d!vHkFQlR}qJ<=?i|eX}hwnnwe+AB&=- zRPlFz_iz2aQeJp>*~W6E{3G1*BVy)x=s}hB~YU-c{zHvRp5ahn-x8mM)AA0 zLzA+fx_{EPq*|KZ-~BE=l*q8?{ZOR}Zs=R_E80!dJM>6lxKXEcYm4B9eP!Gom$k^7 zDT5wGFj4WcNAKq86J|iP6Z$U2RMlqrb6aAr^KJV}*WS#US2t|zGPo?DNkK1}d^V-@ zPHxj7I(mnL-)^pZ=3yj5hC>nDfeMYFW=WGzhrB7AGqlZ>K1EtyTYRYA}B z-!sDYvxz-@3IlxEJ*y#!((+#QWoCvf1Bu&;h$vgiegD60nlDEDvY4$SPs2;@tJI`$ zvG2U;oW@Ud$G6I-CwFVVw6H-vMC@Qv!1#fYi)p+X<=C$NA5)DsF?Lnkj&D!@{jg%q zR(zm|&0j~eWbk*YRnudA&Sy(Q?TYB1tQ9&pOR2UU!g?fSe)OIMH}Hib>!aP$l61-a z_t^i|yiy{aROes4f3+=KLQLn`fd57Qi;lAQ!->WCIi0zS(d2_bS7%wETjPsO$#pMl z)huY=ymr!9@uG^bIXql?B2R`x>wEz>I=pZ%S;}m5JU7(j%qKm~>(_mKoI8p#edW(T zV>=$Zd-+GtAEy(p2h~61^ZE}BP)p03XPIYxpQazK;xN{+2eO-t){-76Fl9=A@PNcy8?og>%l{q{vszB-#6O+~GCFo4MYg zc19XF^d(A!g7@J$Mr!<@*>)gjTno>6V9H7Pr-%Yz2Y+HymN+g4uIv;-_n;(B2*-)N`&41)3b}jb!&R|JV#c? ztaXHVK#Yvp!}8_vw?z^TCt3eBf-oV+Cq1J=4+e=rYkpGy&>LT_A69&Y4`$M%qyviW zz6Sgiq+wd3#>4&cY-`BB%TLuMmWE603);fia-B@$4^Ult`Qgop{y>UboubMrHUHKs zf?l%(aCh=R-uujVol?n;Dveo6Rje;Mc}-O#*zVt?AYmI35BFdgdzH&Tso{bTWw;Br zKtvnMe>d8K8}u^*Wnt-u zbj0rj6TLfz+lR@XK0k6&rdUMzzECMWQCyRB`*|j}EXTDmr)QN>Kj-zPV_s$X*Uxl# zt-SVVr^GK>Hel0e@4nkwL*v3OZ=||#DPUY_j^#$9Q$gL?m3t;0{*=e+#-IH#J|3`p zzKr;)d}{2XC#nj|F7uOrCeNm@HMXkfqy53w*rL;`(KJe7i#}b{s?NZ1rd;~Nt-?|r z#07FydX>^ye@yY@w1pDmV?1i&TY|PC zIQXKyTDcOkF2Cc~)3_c<`%VqMOseDom#)8(em6FWFVirJ9=sL_%m!~)BDxaH-0MPO zjjGz}L~L6&Dct+I{$gv__q<424&p7T_ueX^`=QFm#)aq*Y+PN>cdOuU;TN-im-#vM z!X*Z1j|6W4Tau-mD)#&z6nXYuAUAkuda3Qi zn~NTKS^>Oy%~I<5!HQeMxv3BalXyh&9_IHl`)@p;_Uu_SYxb7pbaQ8N~O` zi}Eot#klG>yL}Gyi`G6obYu#_1&KrhXCFoFmU3=PcILXPudsu$`k2kANcC3_Y8uC_ zF1MY;;@o0{uLa#@-{INc7*w;i>xaTS_LbsA&W(YK0=6GM$=vwTvd1*{*NCKaR08ZA zNty9&AydS*xp=0Z>=vGl-ap-p>P8|Z7kV8VQ%8DRgs0k`bq>TX3aLJSeL|g!F^8kO^GtU3Sa*6(*CobjGCaJb<>{a`(M|ktyVcJ z1FsXe`~=KYj3(7z*R$8wZi&zeO!!94M&Dhz8}D(qyV zJ@e~W+lL2%y!u*PZ;%&6}>7a6Y6cR`_=*mD)Rx*I$u`5 zt(RQOdGPXF&>1)4XC%hW_}tfXDrbW4+Gtw$J?g^Y`Ps$%f!>SQVxbI|7tV1uQ?8q$ThEtX zA>KuLwu3P0cqxY*sXg#Ne}myBUPSWy?=Pf-TVRif7uT_qg5B5kOfkj^LKHAhoCo2Jj!H>ULbeAvf!Az4XqRut zV9=Rl`3I4aqLxjmm=Qk^(h@fI-xn^uJM@T5zCle3lGILMB~WDzkm^gsjLwuFrk$OQ z7di3`pM6$ZUjanBv1@(0k`5RPCYfTV-eE=pNMl*QcxK+r%uLGq$}ll^GWBlz9$A6| z4$0e{Y3~2N=3%ON4Cv_3L-z7b10e{oKgC%`fV#EOxF8k9kB#s%uhp%7DN0~gy_Qah(uo4j#wg=1)tXW)G5g!G( zRB~`XN)32T-)p)4JR`#bqZ$NuS}9E|1sGaSaPPt#2a;k8C_&ix+T2JpMkJV;35WsA zCCi0=P%3CllsQU1+ORPYJa#kT@fF~Z$2^7#8Q5HQR@P>} z6ODf$EpdWOkVpZZV7oN*8v`MjwBJh3$Fv6~Wgb6KlKi(8{&~0vu-E|=opF~BFZ|-- z)0VAEcE&_t{?+!zMIC5PLN@CZ87eu`97ZLMyu*p23wYSe#=kH=%Eg`8T4L8-IxXD| z+EF~O;1N*P-{O%xw={f3Y59S`CtqpW%OJ19Q>(+s(s42`FE61>0M!Bshz^goW?~1; z0?xc{?;x85g3(`CE=A0^;NyBgEQGzIL|bV&2d#U&BCcsm&=aF@w|}ibMrli{BM_1y z`T@*c?sRtr%tW38!s~IH4SalC2_XJVSE23dt_vPN?+uY2b?|Mozd=wnOz9jyUV|xO z?vl+6J^(!+3-K0XkgotaQ*5MO0TKTylo8(i8A<@IMJ)2K=0_iJLEc@EVi*RLUk-_L z&=pJ&gs3P55Xct#qEl#DMN%I>e%#ze*l2{&C!3YyVq@D&G)zrRX-=)WnlH{Jl%{BpCi4Q`Y|dMYZ4F|_(6E)4~dIKg3Pb6{W>(lSqtN?JypJ8cS& z+y66_q~HzLpEE$xWoYZ|N(T3@Wi{%TFY_`uG&Tf#^bD$WC4{q=TP=mgwFmRiGd6<& zumAK7f;C$3!kh0Ct|{^!Gmz%uPQ%U8Ye7xnwN;Zdz_EnT3}zOV1i{Ly&MQb-@Z$cl z*f0MJLYn=~vcalaJEpW#-Uu*<{&`=2T`2aGz~CGQU8mxRwa|5GTE9ru+)Ip z-BezAx2Lof%3a)@fZ6~nQqysa+sa&g>yHA^amRhp8CH?fMDS1YXTGWYZF5fBDROo; zwZfQdSp!Q*TErQhtp&bMI(lrr6U)dGH5Mo9I?j6N{NH$-I@C~%h1#e4D+whCJWQOC z+lS86KEl6F`}_+xNcllKjCJ@NEz+}!n7`azOf{%ExH&-PQ!YdkM%v!9#Qg1+SUJXB za_8Vmwu}jJre_niHDi;{qcPJ-X3oU z%=W!~wO=DqrBz>5SXwM|%FbT9P43jr;zA+tZUu{h!MGPhsrP2cM}<26R7byL&AoQzL0h z=}MSKD=fo%xYG#I57el_{!S3fOG>2zUq_nX z`WninNVpY7!Xj^c^&Q4nBSmq-mMO3UBIxr`j43Rqxv!~?Wcm91_)4=mA^?f^zJ&>?!!4z>1 zcq6cx|Ktv8o0z;YtKPyb=4LN#jN^pS?yT%=!W3b_O?uU^Fb{txDPIzrmkY_ zqv-u-OfbcYLV^sKKBsDYK3!NlLdGn8V{Ps4!gbW78U`Vs2%+;r4^8@;AQoQ2 z@a;Tq8}qn7X(LbtB=o$3h{6@Y0^sadPY`0^_(N^!&re~$(K783j6{MaAiFBRTV)~~{CmN@&(SYa<1XjyjdWN7YtccWqc z(vd&?w>c4cc>Wg*&i^8?dJq018)cFje}0O!@63M!NtV>qi%`$Vt7IE2Nflo7B;DdFxN{;@qvBq!pXqH>mg%mgd*x zt)#vWB4LQ>wg%8IUD-oQ)6i|hE~tAc4_kbHQq2ai?@JZ5j_gNTS4{jR^9#+*rR9G~ z0x2SmfNO}C_Wxf@{eKrp6X+B1dVFBrr-g#i*w^<>?pWG^Lgy1C?IS8G6bN;`w(P+( z2z&AV{SkRP((kPdB2*N`Kg+ig7vKoneGWAxY&guko(SJ13A22El0jK)8H7+^eKIsLA!ffZ z@@szON|EzjlJU?k+C0DB;`LR2-h)S4^Lz_dWXbAD8hFmiosks9EgCB zkgIG`5s2AQD|1s(ezrw9hAq$mq)T~5C1U&b?c?Xip!ubajt+!^AQ|8{1ZsJ55>;Cy z2`{@QXy)EA`UUQFd6NAXF&JU7pvY@8`i8_)f}v_cjQaWWYeY0j$0;NzNF3;1#COoT zdYE2D9dUE*Z+k_qQ3+9>6c83xa{NIQ%?}R~)A^&m6g)DgTM79FJv}`WyJjeStTJ+(o`~J1MFOD{@X#bGoc|^^WLq z@nk|AOUI~;ZoKPo@8?CdrNV<(gDG?*Im`9n1lo`xZJH12b8rB;5Y~g-Ffct z=!_BWo^T*qJIYU>OvSYsm9qd(8q9C{4Q#8#8}FJ=6Y}MdZM(uEXh=+;Z=JkogiZe* z@^BikccCF6@AErwPjjQKd$ym@)4N}7#)k4WYK=z}Dsgb8x-g^v#s_JGS?gtgO6KnU zlb|p_MG^z-(Tg9UBU_BDaqrPUa>W=aIM7M)TA#AhihS6|l;SJskpfkQ$b~YaT#S~N zgBTnR!xC0=&WkR>lG}R#{2F48KU71jqmq&^SM4_wo#KrZd$=n$CT0a<8z=#O#gutk zckj1BQZS)iub_|=gy*s=y8+Li|C3{%-wzZ>b#*1{tBD=0sY!psWFt>@oT5YGY+70x z0+247LfpoQvMEyVFxYbTb0cERI6a$OjASalA-8y7OYEneH{NXINmflR1|>b$w8N#a zRnQM_?py=y*#wxi5L=#kOLrgLl$5DfooFqn{M@v!kwxHzhA6+qvR;>wrgzI1Y_fibK*S+3$VMu`eq&LWg7udJ zvr7m#j&>jDfAf(d=+Lwb}BLYmq#OvUs`*D9tcfeUquFjwExWn9jBtrs}2s| zrT()naI+xdbHi3bTv4--8Nx_;#IoEDxB50uB*0f*5H!F%!9l)|y0BF)1Zy)8XAF8Kbr+;`zjv`p5wzb7C1A~=_Zx?oP5 z^&3KQ4Pu`=vVQ`&sGtA3VgC#wi&ShqLeB|@7m*5US!3? z*SwLw8Bv+{+KR`l3wRR{a2_qN`NedlsEg1T@dB!V7<{@=-f3tXgUk3g(NZNU<+Pxc zU~&Er*;*0w+@#JCvIp+kJr)JL^8!LeJ;A9l6)z10GjXa6dXA(=; zJ0R|IBYC2yT#kVdA~4NOxyC6VdSr9$MOY5FI{Dk)|t zP^$7ZxDR9?$_2vlwx*<{M0AW#Im)tz3E4yuTwWuBNPqxBv18x_#1WfXr{$18Z0AF* zYJ_tLw81nt0`~_BPBtBVeWpmaztNlt4MSZ5O=zWHesqU|C*4BcVX@cGZ?`OUL`?jm zG{o(vMl)0Hxb%{u!afX&W{wB?4IJ@#EW!JIlUn`wZS%J>`?+h*#l0e%EB2GFU7xO^ zsA5V!>|gv_QL{g#n8)io&`P$$ySH;YmKdpg_FU|jOrUs6^`2=H{h5C;oY{-GXqQSQ z2Ml?@wu^nNt4k}5pHjxAp0%aMQ1Y4G%JTie8-p@o;{MmC#i@}v6+FMlHBAvdm<$J# zV17neS?%5bd}yurz@6PPjB`)_R6Vebq6Tbv105#}S|A!D#KYZPVfV;43koUHsQ%~U z_s<54rwAx%WI8QQcE>oM*-iWsXkRu5D3cL^&&au8-x5g=Spwov%p+{dV*mRdtk7Ua zcE(Y7tG)yW^CbJ!$;GOFH}mOJ0%21L!e8I56a=`FoqZ@o3}isezxF7<{NERB1qX@F zEb<(rWSSR?O<9rOY-5-oZM}ltKf%_LZ`c_;qM&p;8FhzfxTKZdK}5JXs)Vd5V2I=( zFblmwkWlE%NfEUP55S$cJZaam)fXQ)_NC#Gt^*Pg-A{{Vmn%s0(F(jbO$k)>52eyo zb#`+x5JKcbelLK2(Y6sXv^~S(Xr5c<{DYL`yPcc7*Vc#;;^DRel29RUzr9bLUEYDz z+%m#+g|$Yo==*?Aop(wx42?vxaX1~Mqs>14U7zUo()r@D_Tl$pkdZ{vwr|C(T-#!g zwKkgZ1svw*>KeM`%r7Wg9g;D`@v8o{&VGYRfrEGN@45BGsM>ZXi!j^PZ@Ihbju{AF zOoO;efT=+2k&BeRe%_z$8xz@-^~uabf0jZOdl$Vc>}!U?gq2dJhUF|H^kDP~5R=>F zSs-7**+a&p`$PwB$B$gq&>$!zB&49wT~jlpD7AIY-Fv`)*$Rtn_)Ln2=kbkQiVknf z9lOpXo=S&*>wIo{BQGy6=s-%bzrR1aus>8+cUK&rV$p@z4C_XPPKZ1pJ7wvD8@4M+}@?KRJxD@MEV z`WP#|-BUg2IuOf?^%+=Vkbt|--;0{+r6cko-&qT$=v2t?y;rMucVE{Inwl+423SO@8Mk$IbPFM7wWMygky5nS&6-9$w(zd%)m%OsNT2{nF8fjjtqa@8y zU;C^^EcUeuh273;kRplM|FAPYDZTWaaOmz1Gs&ipEC( zh%+BQs!B^2b-nq4-st90XJ21mgqb2TIz~o`@$sF=P4qALw23ScbVi7=85kJeymlq!HG?W)*IYEsMJKx(>l zFqHb(-2pE%gUu0w?H{;HomrY)KE!r`>K!DG&ZToiS z$cmMp!Vpvz|0A|X!mPdpG&txZZdhDQYM!$Dqsz%iio^CdlQpnhxDkQWFAS$ zHj%@~UKlzMjUa=9fbD4wMrLLUcQ46Z;k8=f#~mbTDa&l$BEBJVMb@lZLM$NRe_dPv| zLPC@9Nc;i6@f1?MGsd3qAL_xoF00UgpuA~(-N8aZ*= zY8U^ZL-A1508b>~MK%tOo-bdVm!|vY=H}3(3H#s!eKKt3QdRYJWHQ;( zas&}}TtY$_Y*HwT@EtaBK56OpA4xW?V5KYan6<#p1CSQRDw>7|tEjk!4F@FH*4ujp zLl?(>giH4TaQzEx0~)L;P&@AHyLi;x_>H#*ikLwFs1?P;THd{TSX_K~@7{ix38K?j zQ!|25jv_U7WRkoEMqfO6FP<^Xn@%CCgQFuHlUVL+ees*zjO^@J2sm0cA4nAdV{cK!3m1xpS7RHdaw7s^~u8*Kgc*qikQTe7rO=|M`_U#)F zA78dkHg<9aN?FDZ!7x?=sHwP{BZaG@b8v8IY-|kt{r0Ug)Xf;Ql3Op<*VPfq=#Y|5 zHH8QAK}dS&UUo@IN5mskj&KC_GMrRbpPQW(-;tw}4R@wE|K%+A3}D^|iAH(tw*v!x ze^;|$H9n&>(calGAA|6&U4;ur+i);Ny1_x48xh}V+VwV%9tuPkJ)n6#vQ*UFv$O_OSb>_q4)=^pC z2|$|ICDkK$b@80=o9~Gj4{30dEjv6m!BsV)8*t+W?uDNlF`(6KVUY$bkXXmX*5?CS zIc@Pf_-`8;8miaqKa*_ZOV>qUo-lk2wVytnJ^p5O;XK3d>1mPPh2vxsWSk5K1qCJP z5{U_dJ!`T!b=+cCzX}X4J!X}0eEjnJ7m+rPb`*il6^qSl85yiBEj7hVkVT?IL9XJV zJp>ulR=`VgHWsKZ4}DH^hn7^8W$c%Q!?Lo6l)OQz2sBSjaR&=aY+~YT=+}2)h)!Yi zB9KbY1T;zG78K~FYa`M) zNlr{kLUe!C#0W9l3f6`y+E^E|h*OWlJ39?|Zye0gZJ^~;louDDEqrBNG>;RPKzD~# z^gVu>*Umo-=t|1y%WHSQwMPTD$sor|k{BEuL@5V0893qMlP6Dz%pP3?Y&&;KLSYRo zfkqv9n@OIW=xazV!uqmH*|;M#1a@V1=@Ko!$hzBsqTC0FjTj@*ylqn9+uhM&Kywpg zRD7RUP9IR)9o}s!A!+`6Avq&;&I5f8ax&+=cJJO@pUHWw3a+-H;dEx}!D0P)C{XHs z?I`T1$0411%r$=6_Sv&{cgsZK zQTnZ~A!2^`@ZnxSsQ}IaKJ~)+CXGMaLQ=pCE2&A&2djiydvq~V+|=y z?qgpCfBNV(=6%=c`2O7+YK&4>1g1`kyJ--~LMH+4|2KBm@eeUv#=;`Qc0i0MH7rk& zy5H<98%cTU$M`tGfg1b~BNl)~drb@y#5Guij7Hu!lEuWuyLPWbp8g8y1b58=|!Mw8<6@QlBq3@ywo~G<+~;ndlCH^NM~1 zOn7E}R-*qHJ6aPO6r{PK3m7j38SGYO z8WN=WpSZw~Bw6i~lKR@&SqdI{^gh%)Aevr~=yDGX4l*$@wLVY_`iS67|LHl?xG-Bg zJCovTrkZNajAiz;EN`Di7FCw;oke4@w)`?l<;_;jzVPQtEEKWN)Ik~&L ztE<-sG3;}e?M7ij7~^(8XW{#D$4a$1Y($VCAR=D{=CA1TO9xNz?Ahpof_ZrI@RV!Q z0Ap|8ylGVCD#*jbBTrPK`*EreIoFle5w%=|mr0{lpFR;3+(0Vo>g#vQI%nzS%+Jio z;sK*R2Rir|-^pvC@e2poe^k}f@a^A^W(i~uzkyxVweFKwPyjx4`sh#0pgxC2HOgAJ z-^c0cFcevBzY-I7|730=)H6<*y}pg`QcX<_Ak#7qZCP>g)AL0_A|li15}D|)yiG_y z;-q7L6&S7#-c`y-Pe179`v$@8cje8g`c_n6r$z%+&WwwmfkB7KY20alv+L~eXKBTJ z-&N1^=g$x39pmTE(aq62n2>bNz<`Zq(wQ4iV2&5dE*aQ?AhzhaKUya%fM zq(wb1*h9STlnxyo-Qc^MHz_L%BzA?1xx=bNM9{ZZhy>4J^t3jL7mulEwVEPzlU9N2 z>OupFo= z_tNtqoWPo|U!|m_Q4TKG&ovrFdZn!V_SI*_tM>N27VB`Xe}NMMQ8Luh>hJ688yuX4 zm?Yc6X2~U>7bvcEjsGb8FQ3Cdum-#L?Af?+BP=$jd*Ag&BQxAG^50fV3ET$Oxwf_z zmIHD?2!fHv1_cF)(D{ZS>E3<#nsR0<(j9&M_UF%^16PaNAuTQKht3slF|(@8mCG5g zfuBqc**79v4+#yO7$4uTabx(0ty{LloR=;yFAtx(PxR>!EpJ98+UL)Y!NvUiiQz1r zO`C4t@w-eKaUcMeR5jL3?*YV+nxv%e{i}a&J@#MG^Z)W^wG)o4a%>zrYS3FCcCGL2 zq#Y%xNywG$Ut`?X>L@J&r+KdVU)A#edw;HPVt(m6*1LSQkhss2$27>fM=l2ZAHC9U APXGV_ literal 0 HcmV?d00001 diff --git a/previews/PR259/assets/lvdeuyz.ClUWLGb5.png b/previews/PR259/assets/lvdeuyz.ClUWLGb5.png deleted file mode 100644 index e2d54542258f5ff8411324416b4ed729a8434d2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70133 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

Ou+RsteqixnT}DTEC9CNpS&&QpV8jlKB4Pj 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 OC}{~f@gjtd@BagTWS1fU diff --git a/previews/PR259/assets/lwksvhj.Cb9ft44q.png b/previews/PR259/assets/lwksvhj.Cb9ft44q.png new file mode 100644 index 0000000000000000000000000000000000000000..058126f1022319bc76a2ac964633be539556c63e GIT binary patch literal 226019 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 literal 0 HcmV?d00001 diff --git a/previews/PR259/assets/lxudkwo.ClxMIRwN.png b/previews/PR259/assets/lxudkwo.ClxMIRwN.png deleted file mode 100644 index 834bc6cd0da0e82039bd27afe2381114074f7e85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231498 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

X>EE}~I?`8O-xFZ|#Bk&T4$R%JK{j}9E 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%0AHzSr{mB5(AUi$%M=SW2KMaG3g8L-ux}Q8 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

Wq*8hOiVVuVfFOLIMfP8x{41|AInLFuP^id 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 SMR1yj?nmB=%RWH5 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%0ANO@YJQY8dKNx3q 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

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,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/ajrqdho.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 n(),a("div",null,s[0]||(s[0]=[h(`

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/PR259/assets/source_methods_angles.md.BrEpcqfH.lean.js b/previews/PR259/assets/source_methods_angles.md.QSMePFXJ.lean.js
similarity index 87%
rename from previews/PR259/assets/source_methods_angles.md.BrEpcqfH.lean.js
rename to previews/PR259/assets/source_methods_angles.md.QSMePFXJ.lean.js
index 3ed86794d..b51c4222b 100644
--- a/previews/PR259/assets/source_methods_angles.md.BrEpcqfH.lean.js
+++ b/previews/PR259/assets/source_methods_angles.md.QSMePFXJ.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/xllhyfu.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 n(),a("div",null,s[0]||(s[0]=[h("",27)]))}const F=i(k,[["render",t]]);export{y as __pageData,F as default};
+import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/ajrqdho.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 n(),a("div",null,s[0]||(s[0]=[h("",27)]))}const F=i(k,[["render",t]]);export{y as __pageData,F as default};
diff --git a/previews/PR259/assets/source_methods_area.md.Dah0srf2.js b/previews/PR259/assets/source_methods_area.md.ZZGCMhJb.js
similarity index 99%
rename from previews/PR259/assets/source_methods_area.md.Dah0srf2.js
rename to previews/PR259/assets/source_methods_area.md.ZZGCMhJb.js
index 98ffe2a2d..becebe09b 100644
--- a/previews/PR259/assets/source_methods_area.md.Dah0srf2.js
+++ b/previews/PR259/assets/source_methods_area.md.ZZGCMhJb.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/xllhyfu.Dig-DWOQ.png",e="/GeometryOps.jl/previews/PR259/assets/wzhomjb.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 n(),a("div",null,s[0]||(s[0]=[h(`

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,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/ajrqdho.Dig-DWOQ.png",e="/GeometryOps.jl/previews/PR259/assets/pbslvov.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 n(),a("div",null,s[0]||(s[0]=[h(`

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/PR259/assets/source_methods_area.md.Dah0srf2.lean.js b/previews/PR259/assets/source_methods_area.md.ZZGCMhJb.lean.js
similarity index 77%
rename from previews/PR259/assets/source_methods_area.md.Dah0srf2.lean.js
rename to previews/PR259/assets/source_methods_area.md.ZZGCMhJb.lean.js
index a7091ddb6..040a1d747 100644
--- a/previews/PR259/assets/source_methods_area.md.Dah0srf2.lean.js
+++ b/previews/PR259/assets/source_methods_area.md.ZZGCMhJb.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/xllhyfu.Dig-DWOQ.png",e="/GeometryOps.jl/previews/PR259/assets/wzhomjb.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 n(),a("div",null,s[0]||(s[0]=[h("",40)]))}const F=i(l,[["render",p]]);export{y as __pageData,F as default};
+import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/ajrqdho.Dig-DWOQ.png",e="/GeometryOps.jl/previews/PR259/assets/pbslvov.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 n(),a("div",null,s[0]||(s[0]=[h("",40)]))}const F=i(l,[["render",p]]);export{y as __pageData,F as default};
diff --git a/previews/PR259/assets/source_methods_barycentric.md.FNhm1rob.js b/previews/PR259/assets/source_methods_barycentric.md.SwJFTLbx.js
similarity index 99%
rename from previews/PR259/assets/source_methods_barycentric.md.FNhm1rob.js
rename to previews/PR259/assets/source_methods_barycentric.md.SwJFTLbx.js
index c111b1bc0..6a397e69b 100644
--- a/previews/PR259/assets/source_methods_barycentric.md.FNhm1rob.js
+++ b/previews/PR259/assets/source_methods_barycentric.md.SwJFTLbx.js
@@ -1,4 +1,4 @@
-import{_ as k,c as n,o as h,az as t,j as s,a}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/bnpxgdd.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,o as h,az as t,j as s,a}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/gafzfvd.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/PR259/assets/source_methods_barycentric.md.FNhm1rob.lean.js b/previews/PR259/assets/source_methods_barycentric.md.SwJFTLbx.lean.js
similarity index 99%
rename from previews/PR259/assets/source_methods_barycentric.md.FNhm1rob.lean.js
rename to previews/PR259/assets/source_methods_barycentric.md.SwJFTLbx.lean.js
index b79204283..84e3e19ce 100644
--- a/previews/PR259/assets/source_methods_barycentric.md.FNhm1rob.lean.js
+++ b/previews/PR259/assets/source_methods_barycentric.md.SwJFTLbx.lean.js
@@ -1 +1 @@
-import{_ as k,c as n,o as h,az as t,j as s,a}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/bnpxgdd.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("",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("",35))])}const b=k(p,[["render",C]]);export{m as __pageData,b as default};
+import{_ as k,c as n,o as h,az as t,j as s,a}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/gafzfvd.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("",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("",35))])}const b=k(p,[["render",C]]);export{m as __pageData,b as default};
diff --git a/previews/PR259/assets/source_methods_centroid.md.Dm0OZPBY.js b/previews/PR259/assets/source_methods_centroid.md.DLnq527K.js
similarity index 99%
rename from previews/PR259/assets/source_methods_centroid.md.Dm0OZPBY.js
rename to previews/PR259/assets/source_methods_centroid.md.DLnq527K.js
index d97b7d582..7b2a7bf15 100644
--- a/previews/PR259/assets/source_methods_centroid.md.Dm0OZPBY.js
+++ b/previews/PR259/assets/source_methods_centroid.md.DLnq527K.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/lrsbchc.BD0hVfse.png",k="/GeometryOps.jl/previews/PR259/assets/rknpvdh.DHcwB147.png",o=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),p={name:"source/methods/centroid.md"};function l(e,s,r,E,d,g){return n(),a("div",null,s[0]||(s[0]=[h(`

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,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/pjrencp.BD0hVfse.png",p="/GeometryOps.jl/previews/PR259/assets/nplnzhx.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 n(),a("div",null,s[0]||(s[0]=[h(`

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
@@ -6,7 +6,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t
 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)
 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
@@ -90,4 +90,4 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t
     x = (x1 * area1 + x2 * area2) / area
     y = (y1 * area1 + y2 * area2) / area
     return (x, y), area
-end

This page was generated using Literate.jl.

`,57)]))}const c=i(p,[["render",l]]);export{o as __pageData,c as default}; +end

This page was generated using Literate.jl.

`,57)]))}const c=i(k,[["render",l]]);export{o as __pageData,c as default}; diff --git a/previews/PR259/assets/source_methods_centroid.md.Dm0OZPBY.lean.js b/previews/PR259/assets/source_methods_centroid.md.DLnq527K.lean.js similarity index 56% rename from previews/PR259/assets/source_methods_centroid.md.Dm0OZPBY.lean.js rename to previews/PR259/assets/source_methods_centroid.md.DLnq527K.lean.js index 7fd6906d0..77956ad1a 100644 --- a/previews/PR259/assets/source_methods_centroid.md.Dm0OZPBY.lean.js +++ b/previews/PR259/assets/source_methods_centroid.md.DLnq527K.lean.js @@ -1 +1 @@ -import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/lrsbchc.BD0hVfse.png",k="/GeometryOps.jl/previews/PR259/assets/rknpvdh.DHcwB147.png",o=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),p={name:"source/methods/centroid.md"};function l(e,s,r,E,d,g){return n(),a("div",null,s[0]||(s[0]=[h("",57)]))}const c=i(p,[["render",l]]);export{o as __pageData,c as default}; +import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/pjrencp.BD0hVfse.png",p="/GeometryOps.jl/previews/PR259/assets/nplnzhx.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 n(),a("div",null,s[0]||(s[0]=[h("",57)]))}const c=i(k,[["render",l]]);export{o as __pageData,c as default}; diff --git a/previews/PR259/assets/source_methods_clipping_clipping_processor.md.ChDFCqHs.js b/previews/PR259/assets/source_methods_clipping_clipping_processor.md.CVJUFgvw.js similarity index 81% rename from previews/PR259/assets/source_methods_clipping_clipping_processor.md.ChDFCqHs.js rename to previews/PR259/assets/source_methods_clipping_clipping_processor.md.CVJUFgvw.js index 696d07fce..ce6796088 100644 --- a/previews/PR259/assets/source_methods_clipping_clipping_processor.md.ChDFCqHs.js +++ b/previews/PR259/assets/source_methods_clipping_clipping_processor.md.CVJUFgvw.js @@ -1,4 +1,40 @@ -import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),t={name:"source/methods/clipping/clipping_processor.md"};function p(l,s,k,e,E,d){return n(),a("div",null,s[0]||(s[0]=[h(`

Polygon clipping helpers

This file contains the shared helper functions for the polygon clipping functionalities.

This enum defines which side of an edge a point is on

julia
@enum PointEdgeSide left=1 right=2 unknown=3

Constants assigned for readability

julia
const enter, exit = true, false
+import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),t={name:"source/methods/clipping/clipping_processor.md"};function l(p,s,k,e,E,r){return n(),a("div",null,s[0]||(s[0]=[h(`

Polygon clipping helpers

This file contains the shared helper functions for the polygon clipping functionalities.

This file specifically defines helpers for the Foster-Hormann clipping algorithm.

julia
"""
+    abstract type IntersectionAccelerator
+
+The abstract supertype for all intersection accelerator types.
+
+The idea is that these speed up the edge-edge intersection checking process,
+perhaps at the cost of memory.
+
+The naive case is \`NestedLoop\`, which is just a nested loop, running in O(n*m) time.
+
+Then we have \`SingleSTRtree\`, which is a single STRtree, running in O(n*log(m)) time.
+
+Then we have \`DoubleSTRtree\`, which is am simultaneous double-tree traversal of two STRtrees.
+
+Finally, we have \`AutoAccelerator\`, which is an automatic accelerator that chooses the best
+accelerator based on the size of the input polygons.  This gets materialized in build_a_list for now.
+"""
+abstract type IntersectionAccelerator end
+struct NestedLoop <: IntersectionAccelerator end
+struct SingleSTRtree <: IntersectionAccelerator end
+struct DoubleSTRtree <: IntersectionAccelerator end
+struct AutoAccelerator <: IntersectionAccelerator end
+
+"""
+    FosterHormannClipping{M <: Manifold, A <: Union{Nothing, Accelerator}} <: GeometryOpsCore.Algorithm{M}
+
+A type that represents the Foster-Hormann clipping algorithm.

Arguments

julia
- \`manifold::M\`: The manifold on which the algorithm operates.
+- \`accelerator::A\`: The accelerator to use for the algorithm.  Can be \`nothing\` for automatic choice, or a custom accelerator.
+"""
+struct FosterHormannClipping{M <: Manifold, A <: IntersectionAccelerator} <: GeometryOpsCore.Algorithm{M}
+    manifold::M
+    accelerator::A

TODO: add exact flag TODO: should exact flag be in the type domain?

julia
end
+
+
+FosterHormannClipping(; manifold::Manifold = Planar(), accelerator = nothing) = FosterHormannClipping(manifold, isnothing(accelerator) ? AutoAccelerator() : accelerator)
+FosterHormannClipping(manifold::Manifold, accelerator::Union{Nothing, IntersectionAccelerator} = nothing) = FosterHormannClipping(manifold, isnothing(accelerator) ? AutoAccelerator() : accelerator)
+FosterHormannClipping(accelerator::Union{Nothing, IntersectionAccelerator}) = FosterHormannClipping(Planar(), isnothing(accelerator) ? AutoAccelerator() : accelerator)

special case for spherical / geodesic manifolds since they can't use STRtrees (because those don't work on the sphere)

julia
FosterHormannClipping(manifold::Union{Spherical, Geodesic}, accelerator::Union{Nothing, IntersectionAccelerator} = nothing) = FosterHormannClipping(manifold, isnothing(accelerator) ? NestedLoop() : (accelerator isa AutoAccelerator ? NestedLoop() : accelerator))

This enum defines which side of an edge a point is on

julia
@enum PointEdgeSide left=1 right=2 unknown=3

Constants assigned for readability

julia
const enter, exit = true, false
 const crossing, bouncing = true, false
 
 #= A point can either be the start or end of an overlapping chain of points between two
@@ -34,31 +70,75 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
 GI.ncoord(::GI.PointTrait, p::PolyNode{T}) where T = 2 # TODO: change this to accomodate 3D spherical points
 GI.getcoord(::GI.PointTrait, p::PolyNode{T}, i::Int) where T = p.point[i]
 GI.crs(p::PolyNode{T}) where T = nothing # TODO: change this to accomodate 3D spherical points

Checks equality of two PolyNodes by backing point value, fractional value, and intersection status

julia
equals(pn1::PolyNode, pn2::PolyNode) = pn1.point == pn2.point && pn1.inter == pn2.inter && pn1.fracs == pn2.fracs
-Base.:(==)(pn1::PolyNode, pn2::PolyNode) = equals(pn1, pn2)
_build_ab_list(::Type{T}, poly_a, poly_b, delay_cross_f, delay_bounce_f; exact) ->
-    (a_list, b_list, a_idx_list)

This function takes in two polygon rings and calls '_build_a_list', '_build_b_list', and '_flag_ent_exit' in order to fully form a_list and b_list. The 'a_list' and 'b_list' that it returns are the fully updated vectors of PolyNodes that represent the rings 'poly_a' and 'poly_b', respectively. This function also returns 'a_idx_list', which at its "ith" index stores the index in 'a_list' at which the "ith" intersection point lies.

julia
function _build_ab_list(::Type{T}, poly_a, poly_b, delay_cross_f::F1, delay_bounce_f::F2; exact) where {T, F1, F2}

Make a list for nodes of each polygon

julia
    a_list, a_idx_list, n_b_intrs = _build_a_list(T, poly_a, poly_b; exact)
-    b_list = _build_b_list(T, a_idx_list, a_list, n_b_intrs, poly_b)

Flag crossings

julia
    _classify_crossing!(T, a_list, b_list; exact)

Flag the entry and exits

julia
    _flag_ent_exit!(T, GI.LinearRingTrait(), poly_b, a_list, delay_cross_f, Base.Fix2(delay_bounce_f, true); exact)
-    _flag_ent_exit!(T, GI.LinearRingTrait(), poly_a, b_list, delay_cross_f, Base.Fix2(delay_bounce_f, false); exact)

Set node indices and filter a_idx_list to just crossing points

julia
    _index_crossing_intrs!(a_list, b_list, a_idx_list)
+Base.:(==)(pn1::PolyNode, pn2::PolyNode) = equals(pn1, pn2)

Finally, we define a nice error type for when the clipping tracing algorithm hits every point in a polygon. This stores the polygons, the a_list, and the b_list, and the a_idx_list. allowing the user to understand what happened and why.

julia
"""
+    TracingHitEveryPointError{T1, T2} <: Exception
+
+An error that is thrown when the clipping tracing algorithm hits every point in a polygon.
+This is a bug in the algorithm, and should be reported.
+
+The polygons are contained in the exception object, accessible by try-catch or as \`err\` in the REPL.
+"""
+struct TracingHitEveryPointError{T1, T2, T} <: Exception
+    poly_a::T1
+    poly_b::T2
+    a_list::Vector{PolyNode{T}}
+    b_list::Vector{PolyNode{T}}
+    a_idx_list::Vector{Int}
+end
+
+function Base.showerror(io::IO, e::TracingHitEveryPointError{T1, T2}) where {T1, T2}
+    println(io, "TracingHitEveryPointError: Clipping tracing hit every point - clipping error. Please open an issue with the polygons contained in this error object.")
+    println(io)
+    if max(GI.npoint(e.poly_a), GI.npoint(e.poly_b)) < 10
+        println(io, "Polygon A:")
+        println(io, GI.coordinates(e.poly_a))
+        println(io)
+        println(io, "Polygon B:")
+        println(io, GI.coordinates(e.poly_b))
+    else
+        println(io, "The polygons are contained in the exception object, accessible by try-catch or as \`err\` in the REPL.")
+    end
+end
_build_ab_list(::Type{T}, poly_a, poly_b, delay_cross_f, delay_bounce_f; exact) ->
+    (a_list, b_list, a_idx_list)

This function takes in two polygon rings and calls '_build_a_list', '_build_b_list', and '_flag_ent_exit' in order to fully form a_list and b_list. The 'a_list' and 'b_list' that it returns are the fully updated vectors of PolyNodes that represent the rings 'poly_a' and 'poly_b', respectively. This function also returns 'a_idx_list', which at its "ith" index stores the index in 'a_list' at which the "ith" intersection point lies.

julia
function _build_ab_list(alg::FosterHormannClipping, ::Type{T}, poly_a, poly_b, delay_cross_f::F1, delay_bounce_f::F2; exact) where {T, F1, F2}

Make a list for nodes of each polygon

julia
    a_list, a_idx_list, n_b_intrs = _build_a_list(alg, T, poly_a, poly_b; exact)
+    b_list = _build_b_list(alg, T, a_idx_list, a_list, n_b_intrs, poly_b)

Flag crossings

julia
    _classify_crossing!(alg, T, a_list, b_list; exact)

Flag the entry and exits

julia
    _flag_ent_exit!(alg, T, GI.LinearRingTrait(), poly_b, a_list, delay_cross_f, Base.Fix2(delay_bounce_f, true); exact)
+    _flag_ent_exit!(alg, T, GI.LinearRingTrait(), poly_a, b_list, delay_cross_f, Base.Fix2(delay_bounce_f, false); exact)

Set node indices and filter a_idx_list to just crossing points

julia
    _index_crossing_intrs!(alg, a_list, b_list, a_idx_list)
 
     return a_list, b_list, a_idx_list
 end
 
 "The number of vertices past which we should use a STRtree for edge intersection checking."
-const GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS = 75
+const GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS = 75

Fallback convenience method so we can just pass the algorithm in

julia
function foreach_pair_of_maybe_intersecting_edges_in_order(
+    alg::FosterHormannClipping{M, A}, f_on_each_a::FA, f_after_each_a::FAAfter, f_on_each_maybe_intersect::FI, poly_a, poly_b, _t::Type{T} = Float64
+) where {FA, FAAfter, FI, T, M, A}
+    return foreach_pair_of_maybe_intersecting_edges_in_order(alg.manifold, alg.accelerator, f_on_each_a, f_after_each_a, f_on_each_maybe_intersect, poly_a, poly_b, T)
+end
+
 function foreach_pair_of_maybe_intersecting_edges_in_order(
-    f_on_each_a::FA, f_after_each_a::FAAfter, f_on_each_maybe_intersect::FI, poly_a, poly_b, _t::Type{T} = Float64
-) where {FA, FAAfter, FI, T}

TODO: dispatch on manifold this is suitable for planar but spherical / geodesic will need s2 support at some point, or – even now – just buffering

julia
    na = GI.npoint(poly_a)
+    manifold::M, accelerator::A, f_on_each_a::FA, f_after_each_a::FAAfter, f_on_each_maybe_intersect::FI, poly_a, poly_b, _t::Type{T} = Float64
+) where {FA, FAAfter, FI, T, M <: Manifold, A <: IntersectionAccelerator}

TODO: dispatch on manifold this is suitable for planar but spherical / geodesic will need s2 support at some point, or – even now – just buffering

julia
    na = GI.npoint(poly_a)
     nb = GI.npoint(poly_b)
 
+    accelerator = if accelerator isa AutoAccelerator
+        if na < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS && nb < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS
+            NestedLoop()
+        elseif na < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS && nb > GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS
+            SingleSTRtree()
+        else
+            DoubleSTRtree()
+        end
+    else
+        accelerator
+    end
 
-    if na < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS && nb < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS

if we don't have enough vertices in either of the polygons to merit an STRtree, then we can just do a simple nested loop this becomes extremely useful in e.g. regridding, where we know the polygon will only ever have a few vertices. This is also applicable to any manifold, since the checking is done within the loop. First, loop over "each edge" in poly_a

julia
        for (i, (a1t, a2t)) in enumerate(eachedge(poly_a, T))
+    if accelerator isa NestedLoop

if we don't have enough vertices in either of the polygons to merit an STRtree, then we can just do a simple nested loop this becomes extremely useful in e.g. regridding, where we know the polygon will only ever have a few vertices. This is also applicable to any manifold, since the checking is done within the loop. First, loop over "each edge" in poly_a

julia
        for (i, (a1t, a2t)) in enumerate(eachedge(poly_a, T))
             a1t == a2t && continue
             f_on_each_a(a1t, i)
             for (j, (b1t, b2t)) in enumerate(eachedge(poly_b, T))
                 b1t == b2t && continue
-                LoopStateMachine.@processloopaction f_on_each_maybe_intersect(((a1t, a2t), i), ((b1t, b2t), j))
+                LoopStateMachine.@processloopaction f_on_each_maybe_intersect(((a1t, a2t), i), ((b1t, b2t), j)) # this should be aware of manifold by construction.
             end
             f_after_each_a(a1t, i)
-        end

And we're done!

julia
    elseif na < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS && nb > GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS

This is the "middle ground" case - run only a strtree on poly_b without doing so on poly_a. This is less complex than running a dual tree traversal, and reduces the overhead of constructing an edge list and tree on poly_a.

julia
        ext_a, ext_b = GI.extent(poly_a), GI.extent(poly_b)
+        end

And we're done!

julia
    elseif accelerator isa SingleSTRtree

This is the "middle ground" case - run only a strtree on poly_b without doing so on poly_a. This is less complex than running a dual tree traversal, and reduces the overhead of constructing an edge list and tree on poly_a.

julia
        ext_a, ext_b = GI.extent(poly_a), GI.extent(poly_b)
         edges_b, indices_b = to_edgelist(ext_a, poly_b, T)
         tree_b = STRtree(edges_b)

Loop over each vertex in poly_a

julia
        for (i, (a1t, a2t)) in enumerate(eachedge(poly_a, T))
             a1t == a2t && continue
@@ -77,7 +157,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
             end
             f_after_each_a(a1t, i)
         end
-    elseif na >= GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS && nb >= GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS

If both of the polygons are quite large, then we do a dual-tree traversal of the STRtrees and find all potentially overlapping edges. This is kind of like an adjacency list of a graph or a sparse matrix that we're constructing.

First, we materialize an edge list for each polygon as a vector of GI.Line objects.

julia
        ext_a = GI.extent(poly_a)
+    elseif accelerator isa DoubleSTRtree

If both of the polygons are quite large, then we do a dual-tree traversal of the STRtrees and find all potentially overlapping edges. This is kind of like an adjacency list of a graph or a sparse matrix that we're constructing.

First, we materialize an edge list for each polygon as a vector of GI.Line objects.

julia
        ext_a = GI.extent(poly_a)
         ext_b = GI.extent(poly_b)
         edges_a, indices_a = to_edgelist(ext_b, poly_a, T) # ::Vector{GI.Line} # with precalculated extents
         edges_b, indices_b = to_edgelist(ext_a, poly_b, T) # ::Vector{GI.Line} # with precalculated extents

Now, construct STRtrees from the edge lists. TODO: we can optimize the strtrees by passing in only edges that reside within the area of extent overlap between poly_a and poly_b. this would greatly help for e.g. coverage transactions BUT this needs fixes in SortTileRecursiveTree.jl to allow you to pass in a vector of indices as well as extents / geometries.

julia
        tree_a = STRtree(edges_a)
@@ -109,12 +189,11 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
 
             last_a_idx_orig = a_idx_orig
 
-        end
-    end
+        end

println("DOUBLE TREE TRAVERSAL")

julia
    end
 
     return nothing
 
-end
_build_a_list(::Type{T}, poly_a, poly_b) -> (a_list, a_idx_list)

This function take in two polygon rings and creates a vector of PolyNodes to represent poly_a, including its intersection points with poly_b. The information stored in each PolyNode is needed for clipping using the Greiner-Hormann clipping algorithm.

Note: After calling this function, a_list is not fully formed because the neighboring indices of the intersection points in b_list still need to be updated. Also we still have not update the entry and exit flags for a_list.

The a_idx_list is a list of the indices of intersection points in a_list. The value at index i of a_idx_list is the location in a_list where the ith intersection point lies.

julia
function _build_a_list(::Type{T}, poly_a, poly_b; exact) where T
+end
_build_a_list(::Type{T}, poly_a, poly_b) -> (a_list, a_idx_list)

This function take in two polygon rings and creates a vector of PolyNodes to represent poly_a, including its intersection points with poly_b. The information stored in each PolyNode is needed for clipping using the Greiner-Hormann clipping algorithm.

Note: After calling this function, a_list is not fully formed because the neighboring indices of the intersection points in b_list still need to be updated. Also we still have not update the entry and exit flags for a_list.

The a_idx_list is a list of the indices of intersection points in a_list. The value at index i of a_idx_list is the location in a_list where the ith intersection point lies.

julia
function _build_a_list(alg::FosterHormannClipping{M, A}, ::Type{T}, poly_a, poly_b; exact) where {T, M, A}
     n_a_edges = _nedge(poly_a)
     a_list = PolyNode{T}[]  # list of points in poly_a
     sizehint!(a_list, n_a_edges)
@@ -143,7 +222,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
         if (b_pt1 == b_pt2)  # don't repeat points
             b_pt1 = b_pt2
             return
-        end

Determine if edges intersect and how they intersect

julia
        line_orient, intr1, intr2 = _intersection_point(T, (a_pt1, a_pt2), (b_pt1, b_pt2); exact)
+        end

Determine if edges intersect and how they intersect

julia
        line_orient, intr1, intr2 = _intersection_point(alg.manifold, T, (a_pt1, a_pt2), (b_pt1, b_pt2); exact)
         if line_orient != line_out  # edges intersect
             if line_orient == line_cross  # Intersection point that isn't a vertex
                 int_pt, fracs = intr1
@@ -198,10 +277,10 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
     end
     \`\`\`
     =#
-    foreach_pair_of_maybe_intersecting_edges_in_order(on_each_a, after_each_a, on_each_maybe_intersect, poly_a, poly_b, T)
+    foreach_pair_of_maybe_intersecting_edges_in_order(alg, on_each_a, after_each_a, on_each_maybe_intersect, poly_a, poly_b, T)
 
     return a_list, a_idx_list, n_b_intrs
-end
_build_b_list(::Type{T}, a_idx_list, a_list, poly_b) -> b_list

This function takes in the a_list and a_idx_list build in _build_a_list and poly_b and creates a vector of PolyNodes to represent poly_b. The information stored in each PolyNode is needed for clipping using the Greiner-Hormann clipping algorithm.

Note: after calling this function, b_list is not fully updated. The entry/exit flags still need to be updated. However, the neighbor value in a_list is now updated.

julia
function _build_b_list(::Type{T}, a_idx_list, a_list, n_b_intrs, poly_b) where T

Sort intersection points by insertion order in b_list

julia
    sort!(a_idx_list, by = x-> a_list[x].neighbor + a_list[x].fracs[2])

Initialize needed values and lists

julia
    n_b_edges = _nedge(poly_b)
+end
_build_b_list(::Type{T}, a_idx_list, a_list, poly_b) -> b_list

This function takes in the a_list and a_idx_list build in _build_a_list and poly_b and creates a vector of PolyNodes to represent poly_b. The information stored in each PolyNode is needed for clipping using the Greiner-Hormann clipping algorithm.

Note: after calling this function, b_list is not fully updated. The entry/exit flags still need to be updated. However, the neighbor value in a_list is now updated.

julia
function _build_b_list(alg::FosterHormannClipping{M, A}, ::Type{T}, a_idx_list, a_list, n_b_intrs, poly_b) where {T, M, A}

Sort intersection points by insertion order in b_list

julia
    sort!(a_idx_list, by = x-> a_list[x].neighbor + a_list[x].fracs[2])

Initialize needed values and lists

julia
    n_b_edges = _nedge(poly_b)
     n_intr_pts = length(a_idx_list)
     b_list = PolyNode{T}[]
     sizehint!(b_list, n_b_edges + n_b_intrs)
@@ -240,7 +319,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
     end
     sort!(a_idx_list)  # return a_idx_list to order of points in a_list
     return b_list
-end
_classify_crossing!(T, poly_b, a_list; exact)

This function marks all intersection points as either bouncing or crossing points. "Delayed" crossing or bouncing intersections (a chain of edges where the central edges overlap and thus only the first and last edge of the chain determine if the chain is bounding or crossing) are marked as follows: the first and the last points are marked as crossing if the chain is crossing and delayed otherwise and all middle points are marked as bouncing. Additionally, the start and end points of the chain are marked as endpoints using the endpoints field.

julia
function _classify_crossing!(::Type{T}, a_list, b_list; exact) where T
+end
_classify_crossing!(T, poly_b, a_list; exact)

This function marks all intersection points as either bouncing or crossing points. "Delayed" crossing or bouncing intersections (a chain of edges where the central edges overlap and thus only the first and last edge of the chain determine if the chain is bounding or crossing) are marked as follows: the first and the last points are marked as crossing if the chain is crossing and delayed otherwise and all middle points are marked as bouncing. Additionally, the start and end points of the chain are marked as endpoints using the endpoints field.

julia
function _classify_crossing!(alg::FosterHormannClipping{M, A}, ::Type{T}, a_list, b_list; exact) where {T, M, A}
     napts = length(a_list)
     nbpts = length(b_list)

start centered on last point

julia
    a_prev = a_list[end - 1]
     curr_pt = a_list[end]
@@ -254,7 +333,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
             b_next = j == nbpts ? b_list[1] : b_list[j+1]

determine if any segments are on top of one another

julia
            a_prev_is_b_prev = a_prev.inter && equals(a_prev, b_prev)
             a_prev_is_b_next = a_prev.inter && equals(a_prev, b_next)
             a_next_is_b_prev = a_next.inter && equals(a_next, b_prev)
-            a_next_is_b_next = a_next.inter && equals(a_next, b_next)

determine which side of a segments the p points are on

julia
            b_prev_side, b_next_side = _get_sides(b_prev, b_next, a_prev, curr_pt, a_next,
+            a_next_is_b_next = a_next.inter && equals(a_next, b_next)

determine which side of a segments the p points are on

julia
            b_prev_side, b_next_side = _get_sides(#=TODO: alg.manifold, =#b_prev, b_next, a_prev, curr_pt, a_next,
                 i, j, a_list, b_list; exact)

no sides overlap

julia
            if !a_prev_is_b_prev && !a_prev_is_b_next && !a_next_is_b_prev && !a_next_is_b_next
                 if b_prev_side != b_next_side  # lines cross
                     a_list[i] = PolyNode(curr_pt; crossing = true)
@@ -372,7 +451,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
 or a crossing point that isn't in a chain. Then take the midpoint of this point and the next
 point in the list and perform the in/out check. If none of these points exist, return
 a \`next_idx\` of \`nothing\`. =#
-function _pt_off_edge_status(::Type{T}, pt_list, poly, npts; exact) where T
+function _pt_off_edge_status(alg::FosterHormannClipping{M, A}, ::Type{T}, pt_list, poly, npts; exact) where {T, M, A}
     start_idx, is_non_intr_pt = findfirst(_is_not_intr, pt_list), true
     if isnothing(start_idx)
         start_idx, is_non_intr_pt = findfirst(_next_edge_off, pt_list), false
@@ -384,14 +463,14 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
     else
         (pt_list[start_idx].point .+ pt_list[next_idx].point) ./ 2
     end
-    start_status = !_point_filled_curve_orientation(start_pt, poly; in = true, on = false, out = false, exact)
+    start_status = !_point_filled_curve_orientation(#=TODO: alg.manifold=#start_pt, poly; in = true, on = false, out = false, exact)
     return next_idx, start_status
 end

Check if a PolyNode is an intersection point

julia
_is_not_intr(pt) = !pt.inter
 #= Check if a PolyNode is the last point of a chain or a non-overlapping crossing point.
 The next midpoint of one of these points and the next point within a polygon must not be on
 the polygon edge. =#
-_next_edge_off(pt) = (pt.endpoint == end_chain) || (pt.crossing && pt.endpoint == not_endpoint)
_flag_ent_exit!(::Type{T}, ::GI.LinearRingTrait, poly, pt_list, delay_cross_f, delay_bounce_f; exact)

This function flags all the intersection points as either an 'entry' or 'exit' point in relation to the given polygon. For non-delayed crossings we simply alternate the enter/exit status. This also holds true for the first and last points of a delayed bouncing, where they both have an opposite entry/exit flag. Conversely, the first and last point of a delayed crossing have the same entry/exit status. Furthermore, the crossing/bouncing flag of delayed crossings and bouncings may be updated. This depends on function specific rules that determine which of the start or end points (if any) should be marked as crossing for used during polygon tracing. A consistent rule is that the start and end points of a delayed crossing will have different crossing/bouncing flags, while a the endpoints of a delayed bounce will be the same.

Used for clipping polygons by other polygons.

julia
function _flag_ent_exit!(::Type{T}, ::GI.LinearRingTrait, poly, pt_list, delay_cross_f, delay_bounce_f; exact) where T
-    npts = length(pt_list)

Find starting index if there is one

julia
    next_idx, status = _pt_off_edge_status(T, pt_list, poly, npts; exact)
+_next_edge_off(pt) = (pt.endpoint == end_chain) || (pt.crossing && pt.endpoint == not_endpoint)
_flag_ent_exit!(::Type{T}, ::GI.LinearRingTrait, poly, pt_list, delay_cross_f, delay_bounce_f; exact)

This function flags all the intersection points as either an 'entry' or 'exit' point in relation to the given polygon. For non-delayed crossings we simply alternate the enter/exit status. This also holds true for the first and last points of a delayed bouncing, where they both have an opposite entry/exit flag. Conversely, the first and last point of a delayed crossing have the same entry/exit status. Furthermore, the crossing/bouncing flag of delayed crossings and bouncings may be updated. This depends on function specific rules that determine which of the start or end points (if any) should be marked as crossing for used during polygon tracing. A consistent rule is that the start and end points of a delayed crossing will have different crossing/bouncing flags, while a the endpoints of a delayed bounce will be the same.

Used for clipping polygons by other polygons.

julia
function _flag_ent_exit!(alg::FosterHormannClipping{M, A}, ::Type{T}, ::GI.LinearRingTrait, poly, pt_list, delay_cross_f, delay_bounce_f; exact) where {T, M, A}
+    npts = length(pt_list)

Find starting index if there is one

julia
    next_idx, status = _pt_off_edge_status(alg, T, pt_list, poly, npts; exact)
     isnothing(next_idx) && return
     start_idx = next_idx - 1

Loop over points and mark entry and exit status

julia
    start_chain_idx = 0
     for ii in Iterators.flatten((next_idx:npts, 1:start_idx))
@@ -409,7 +488,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
                 else  # delayed bouncing
                     next_idx = ii < npts ? (ii + 1) : 1
                     next_val = (curr_pt.point .+ pt_list[next_idx].point) ./ 2
-                    pt_in_poly = _point_filled_curve_orientation(next_val, poly; in = true, on = false, out = false, exact)
+                    pt_in_poly = _point_filled_curve_orientation(#=TODO: alg.manifold=#next_val, poly; in = true, on = false, out = false, exact)
                     #= start and end crossing status are the same and depend on if adjacent
                     edges of pt_list are within poly =#
                     start_crossing = delay_bounce_f(pt_in_poly)
@@ -424,8 +503,8 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
         end
     end
     return
-end
_flag_ent_exit!(::GI.LineTrait, line, pt_list; exact)

This function flags all the intersection points as either an 'entry' or 'exit' point in relation to the given line. Returns true if there are crossing points to classify, else returns false. Used for cutting polygons by lines.

Assumes that the first point is outside of the polygon and not on an edge.

julia
function _flag_ent_exit!(::GI.LineTrait, poly, pt_list; exact)
-    status = !_point_filled_curve_orientation(pt_list[1].point, poly; in = true, on = false, out = false, exact)

Loop over points and mark entry and exit status

julia
    for (ii, curr_pt) in enumerate(pt_list)
+end
_flag_ent_exit!(::GI.LineTrait, line, pt_list; exact)

This function flags all the intersection points as either an 'entry' or 'exit' point in relation to the given line. Returns true if there are crossing points to classify, else returns false. Used for cutting polygons by lines.

Assumes that the first point is outside of the polygon and not on an edge.

julia
function _flag_ent_exit!(alg::FosterHormannClipping{M, A}, ::GI.LineTrait, poly, pt_list; exact) where {M, A}
+    status = !_point_filled_curve_orientation(#=TODO: alg.manifold=#pt_list[1].point, poly; in = true, on = false, out = false, exact)

Loop over points and mark entry and exit status

julia
    for (ii, curr_pt) in enumerate(pt_list)
         if curr_pt.crossing
             pt_list[ii] = PolyNode(curr_pt; ent_exit = status)
             status = !status
@@ -436,7 +515,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
 
 #= Filters a_idx_list to just include crossing points and sets the index of all crossing
 points (which element they correspond to within a_idx_list). =#
-function _index_crossing_intrs!(a_list, b_list, a_idx_list)
+function _index_crossing_intrs!(alg::FosterHormannClipping{M, A}, a_list, b_list, a_idx_list) where {M, A}
     filter!(x -> a_list[x].crossing, a_idx_list)
     for (i, a_idx) in enumerate(a_idx_list)
         curr_node = a_list[a_idx]
@@ -445,7 +524,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
         b_list[curr_node.neighbor] = PolyNode(neighbor_node; idx = i)
     end
     return
-end
_trace_polynodes(::Type{T}, a_list, b_list, a_idx_list, f_step)::Vector{GI.Polygon}

This function takes the outputs of _build_ab_list and traces the lists to determine which polygons are formed as described in Greiner and Hormann. The function f_step determines in which direction the lists are traced. This function is different for intersection, difference, and union. f_step must take in two arguments: the most recent intersection node's entry/exit status and a boolean that is true if we are currently tracing a_list and false if we are tracing b_list. The functions used for each clipping operation are follows: - Intersection: (x, y) -> x ? 1 : (-1) - Difference: (x, y) -> (x ⊻ y) ? 1 : (-1) - Union: (x, y) -> x ? (-1) : 1

A list of GeoInterface polygons is returned from this function.

Note: poly_a and poly_b are temporary inputs used for debugging and can be removed eventually.

julia
function _trace_polynodes(::Type{T}, a_list, b_list, a_idx_list, f_step, poly_a, poly_b) where T
+end
_trace_polynodes(::Type{T}, a_list, b_list, a_idx_list, f_step)::Vector{GI.Polygon}

This function takes the outputs of _build_ab_list and traces the lists to determine which polygons are formed as described in Greiner and Hormann. The function f_step determines in which direction the lists are traced. This function is different for intersection, difference, and union. f_step must take in two arguments: the most recent intersection node's entry/exit status and a boolean that is true if we are currently tracing a_list and false if we are tracing b_list. The functions used for each clipping operation are follows: - Intersection: (x, y) -> x ? 1 : (-1) - Difference: (x, y) -> (x ⊻ y) ? 1 : (-1) - Union: (x, y) -> x ? (-1) : 1

A list of GeoInterface polygons is returned from this function.

Note: poly_a and poly_b are temporary inputs used for debugging and can be removed eventually.

julia
function _trace_polynodes(alg::FosterHormannClipping{M, A}, ::Type{T}, a_list, b_list, a_idx_list, f_step, poly_a, poly_b) where {T, M, A}
     n_a_pts, n_b_pts = length(a_list), length(b_list)
     total_pts = n_a_pts + n_b_pts
     n_cross_pts = length(a_idx_list)
@@ -466,7 +545,9 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
         while curr_not_start
             step = f_step(curr.ent_exit, on_a_list)

changed curr_not_intr to curr_not_same_ent_flag

julia
            same_status, prev_status = true, curr.ent_exit
             while same_status
-                @assert visited_pts < total_pts "Clipping tracing hit every point - clipping error. Please open an issue with polygons: $(GI.coordinates(poly_a)) and $(GI.coordinates(poly_b))."

Traverse polygon either forwards or backwards

julia
                idx += step
+                if visited_pts >= total_pts
+                    throw(TracingHitEveryPointError(poly_a, poly_b, a_list, b_list, a_idx_list))
+                end

Traverse polygon either forwards or backwards

julia
                idx += step
                 idx = (idx > curr_npoints) ? mod(idx, curr_npoints) : idx
                 idx = (idx == 0) ? curr_npoints : idx

Get current node and add to pt_list

julia
                curr = curr_list[idx]
                 push!(pt_list, curr.point)
@@ -500,7 +581,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
     a_in_b = a_pt_orient != point_out && b_pt_orient != point_in
     b_in_a = b_pt_orient != point_out && a_pt_orient != point_in
     return a_in_b, b_in_a
-end
_add_holes_to_polys!(::Type{T}, return_polys, hole_iterator, remove_poly_idx; exact)

The holes specified by the hole iterator are added to the polygons in the return_polys list. If this creates more polygons, they are added to the end of the list. If this removes polygons, they are removed from the list

julia
function _add_holes_to_polys!(::Type{T}, return_polys, hole_iterator, remove_poly_idx; exact) where T
+end
_add_holes_to_polys!(::Type{T}, return_polys, hole_iterator, remove_poly_idx; exact)

The holes specified by the hole iterator are added to the polygons in the return_polys list. If this creates more polygons, they are added to the end of the list. If this removes polygons, they are removed from the list

julia
function _add_holes_to_polys!(alg::FosterHormannClipping{M, A}, ::Type{T}, return_polys, hole_iterator, remove_poly_idx; exact) where {T, M, A}
     n_polys = length(return_polys)
     remove_hole_idx = Int[]

Remove set of holes from all polygons

julia
    for i in 1:n_polys
         n_new_per_poly = 0
@@ -509,9 +590,9 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
                 curr_poly = return_polys[j]
                 remove_poly_idx[j] && continue
                 curr_poly_ext = GI.nhole(curr_poly) > 0 ? GI.Polygon(StaticArrays.SVector(GI.getexterior(curr_poly))) : curr_poly
-                in_ext, on_ext, out_ext = _line_polygon_interactions(curr_hole, curr_poly_ext; exact, closed_line = true)
+                in_ext, on_ext, out_ext = _line_polygon_interactions(#=TODO: alg.manifold=#curr_hole, curr_poly_ext; exact, closed_line = true)
                 if in_ext  # hole is at least partially within the polygon's exterior
-                    new_hole, new_hole_poly, n_new_pieces = _combine_holes!(T, curr_hole, curr_poly, return_polys, remove_hole_idx)
+                    new_hole, new_hole_poly, n_new_pieces = _combine_holes!(alg, T, curr_hole, curr_poly, return_polys, remove_hole_idx)
                     if n_new_pieces > 0
                         append!(remove_poly_idx, falses(n_new_pieces))
                         n_new_per_poly += n_new_pieces
@@ -519,7 +600,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
                     if !on_ext && !out_ext  # hole is completely within exterior
                         push!(curr_poly.geom, new_hole)
                     else  # hole is partially within and outside of polygon's exterior
-                        new_polys = difference(curr_poly_ext, new_hole_poly, T; target=GI.PolygonTrait())
+                        new_polys = difference(#=TODO: alg=#curr_poly_ext, new_hole_poly, T; target=GI.PolygonTrait())
                         n_new_polys = length(new_polys) - 1

replace original

julia
                        curr_poly.geom[1] = GI.getexterior(new_polys[1])
                         append!(curr_poly.geom, GI.gethole(new_polys[1]))
                         if n_new_polys > 0  # add any extra pieces
@@ -527,7 +608,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
                             append!(remove_poly_idx, falses(n_new_polys))
                             n_new_per_poly += n_new_polys
                         end
-                    end

polygon is completely within hole

julia
                elseif coveredby(curr_poly_ext, GI.Polygon(StaticArrays.SVector(curr_hole)))
+                    end

polygon is completely within hole

julia
                elseif coveredby(#=TODO: alg.manifold=#curr_poly_ext, GI.Polygon(StaticArrays.SVector(curr_hole)))
                     remove_poly_idx[j] = true
                 end
             end
@@ -535,12 +616,12 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
         n_polys += n_new_per_poly
     end

Remove all polygon that were marked for removal

julia
    deleteat!(return_polys, remove_poly_idx)
     return
-end
_combine_holes!(::Type{T}, new_hole, curr_poly, return_polys)

The new hole is combined with any existing holes in curr_poly. The holes can be combined into a larger hole if they are intersecting. If this happens, then the new, combined hole is returned with the original holes making up the new hole removed from curr_poly. Additionally, if the combined holes form a ring, the interior is added to the return_polys as a new polygon piece. Additionally, holes leftover after combination will be checked for it they are in the "main" polygon or in one of these new pieces and moved accordingly.

If the holes don't touch or curr_poly has no holes, then new_hole is returned without any changes.

julia
function _combine_holes!(::Type{T}, new_hole, curr_poly, return_polys, remove_hole_idx) where T
+end
_combine_holes!(::Type{T}, new_hole, curr_poly, return_polys)

The new hole is combined with any existing holes in curr_poly. The holes can be combined into a larger hole if they are intersecting. If this happens, then the new, combined hole is returned with the original holes making up the new hole removed from curr_poly. Additionally, if the combined holes form a ring, the interior is added to the return_polys as a new polygon piece. Additionally, holes leftover after combination will be checked for it they are in the "main" polygon or in one of these new pieces and moved accordingly.

If the holes don't touch or curr_poly has no holes, then new_hole is returned without any changes.

julia
function _combine_holes!(alg::FosterHormannClipping{M, A}, ::Type{T}, new_hole, curr_poly, return_polys, remove_hole_idx) where {T, M, A}
     n_new_polys = 0
     empty!(remove_hole_idx)
     new_hole_poly = GI.Polygon(StaticArrays.SVector(new_hole))

Combine any existing holes in curr_poly with new hole

julia
    for (k, old_hole) in enumerate(GI.gethole(curr_poly))
         old_hole_poly = GI.Polygon(StaticArrays.SVector(old_hole))
-        if intersects(new_hole_poly, old_hole_poly)

If the holes intersect, combine them into a bigger hole

julia
            hole_union = union(new_hole_poly, old_hole_poly, T; target = GI.PolygonTrait())[1]
+        if intersects(#=TODO: alg.manifold=#new_hole_poly, old_hole_poly)

If the holes intersect, combine them into a bigger hole

julia
            hole_union = union(alg, new_hole_poly, old_hole_poly, T; target = GI.PolygonTrait())[1]
             push!(remove_hole_idx, k + 1)
             new_hole = GI.getexterior(hole_union)
             new_hole_poly = GI.Polygon(StaticArrays.SVector(new_hole))
@@ -565,7 +646,7 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
 
 #= Remove collinear edge points, other than the first and last edge vertex, to simplify
 polygon - including both the exterior ring and any holes=#
-function _remove_collinear_points!(polys, remove_idx, poly_a, poly_b)
+function _remove_collinear_points!(alg::FosterHormannClipping{M, A}, polys, remove_idx, poly_a, poly_b) where {M, A}
     for (i, poly) in Iterators.reverse(enumerate(polys))
         for (j, ring) in Iterators.reverse(enumerate(GI.getring(poly)))
             n = length(ring.geom)

resize and reset removing index buffer

julia
            resize!(remove_idx, n)
@@ -579,12 +660,12 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
                     p2 = p
                     continue
                 else
-                    p3 = p

check if p2 is approximately on the edge formed by p1 and p3 - remove if so

julia
                    if Predicates.orient(p1, p2, p3; exact = _False()) == 0
+                    p3 = p

check if p2 is approximately on the edge formed by p1 and p3 - remove if so TODO: make this manifold aware

julia
                    if Predicates.orient(p1, p2, p3; exact = _False()) == 0
                         remove_idx[i - 1] = true
                     end
                 end
                 p1, p2 = p2, p3
-            end

Check if the first point (which is repeated as the last point) is needed

julia
            if Predicates.orient(ring.geom[end - 1], ring.geom[1], ring.geom[2]; exact = _False()) == 0
+            end

Check if the first point (which is repeated as the last point) is needed TODO: make this manifold aware

julia
            if Predicates.orient(ring.geom[end - 1], ring.geom[1], ring.geom[2]; exact = _False()) == 0
                 remove_idx[1], remove_idx[end] = true, true
             end

Remove unneeded collinear points

julia
            deleteat!(ring.geom, remove_idx)

Check if enough points are left to form a polygon

julia
            if length(ring.geom)  (remove_idx[1] ? 2 : 3)
                 if j == 1
@@ -601,4 +682,4 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g
         end
     end
     return
-end

This page was generated using Literate.jl.

`,200)]))}const y=i(t,[["render",p]]);export{g as __pageData,y as default}; +end

This page was generated using Literate.jl.

`,214)]))}const y=i(t,[["render",l]]);export{g as __pageData,y as default}; diff --git a/previews/PR259/assets/source_methods_clipping_clipping_processor.md.ChDFCqHs.lean.js b/previews/PR259/assets/source_methods_clipping_clipping_processor.md.CVJUFgvw.lean.js similarity index 75% rename from previews/PR259/assets/source_methods_clipping_clipping_processor.md.ChDFCqHs.lean.js rename to previews/PR259/assets/source_methods_clipping_clipping_processor.md.CVJUFgvw.lean.js index e58754d8a..155f7d565 100644 --- a/previews/PR259/assets/source_methods_clipping_clipping_processor.md.ChDFCqHs.lean.js +++ b/previews/PR259/assets/source_methods_clipping_clipping_processor.md.CVJUFgvw.lean.js @@ -1 +1 @@ -import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),t={name:"source/methods/clipping/clipping_processor.md"};function p(l,s,k,e,E,d){return n(),a("div",null,s[0]||(s[0]=[h("",200)]))}const y=i(t,[["render",p]]);export{g as __pageData,y as default}; +import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const g=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),t={name:"source/methods/clipping/clipping_processor.md"};function l(p,s,k,e,E,r){return n(),a("div",null,s[0]||(s[0]=[h("",214)]))}const y=i(t,[["render",l]]);export{g as __pageData,y as default}; diff --git a/previews/PR259/assets/source_methods_clipping_coverage.md.I3CmYQZR.js b/previews/PR259/assets/source_methods_clipping_coverage.md.7AzAfHEY.js similarity index 99% rename from previews/PR259/assets/source_methods_clipping_coverage.md.I3CmYQZR.js rename to previews/PR259/assets/source_methods_clipping_coverage.md.7AzAfHEY.js index 22ef57cff..c547279d5 100644 --- a/previews/PR259/assets/source_methods_clipping_coverage.md.I3CmYQZR.js +++ b/previews/PR259/assets/source_methods_clipping_coverage.md.7AzAfHEY.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/mzfaxpf.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 n(),a("div",null,s[0]||(s[0]=[h(`
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,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/tdtjlfv.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 n(),a("div",null,s[0]||(s[0]=[h(`
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/PR259/assets/source_methods_clipping_coverage.md.I3CmYQZR.lean.js b/previews/PR259/assets/source_methods_clipping_coverage.md.7AzAfHEY.lean.js
similarity index 87%
rename from previews/PR259/assets/source_methods_clipping_coverage.md.I3CmYQZR.lean.js
rename to previews/PR259/assets/source_methods_clipping_coverage.md.7AzAfHEY.lean.js
index a2cdd9787..ce511dc94 100644
--- a/previews/PR259/assets/source_methods_clipping_coverage.md.I3CmYQZR.lean.js
+++ b/previews/PR259/assets/source_methods_clipping_coverage.md.7AzAfHEY.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/mzfaxpf.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 n(),a("div",null,s[0]||(s[0]=[h("",58)]))}const F=i(k,[["render",p]]);export{y as __pageData,F as default};
+import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/tdtjlfv.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 n(),a("div",null,s[0]||(s[0]=[h("",58)]))}const F=i(k,[["render",p]]);export{y as __pageData,F as default};
diff --git a/previews/PR259/assets/source_methods_clipping_cut.md.BZkVBeDi.lean.js b/previews/PR259/assets/source_methods_clipping_cut.md.BZkVBeDi.lean.js
deleted file mode 100644
index e54f8e956..000000000
--- a/previews/PR259/assets/source_methods_clipping_cut.md.BZkVBeDi.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/xzplnml.-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 n(),a("div",null,s[0]||(s[0]=[h("",34)]))}const o=i(l,[["render",p]]);export{y as __pageData,o as default};
diff --git a/previews/PR259/assets/source_methods_clipping_cut.md.BZkVBeDi.js b/previews/PR259/assets/source_methods_clipping_cut.md.s0ApEmIZ.js
similarity index 73%
rename from previews/PR259/assets/source_methods_clipping_cut.md.BZkVBeDi.js
rename to previews/PR259/assets/source_methods_clipping_cut.md.s0ApEmIZ.js
index d93692091..93a49cb6d 100644
--- a/previews/PR259/assets/source_methods_clipping_cut.md.BZkVBeDi.js
+++ b/previews/PR259/assets/source_methods_clipping_cut.md.s0ApEmIZ.js
@@ -1,15 +1,15 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/xzplnml.-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 n(),a("div",null,s[0]||(s[0]=[h(`

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
-
-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)])
-cut_polys = GO.cut(poly, line)
-
-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
"""
+import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g=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(h,s,e,k,r,d){return n(),a("div",null,s[0]||(s[0]=[t(`

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:

@example
import GeoInterface as GI, GeometryOps as GO
+using CairoMakie
+using Makie
+
+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)])
+cut_polys = GO.cut(poly, line)
+
+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
"""
     cut(geom, line, [T::Type])
 
 Return given geom cut by given line as a list of geometries of the same type as the input
@@ -84,4 +84,4 @@ import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t
         end
     end
     return return_coords
-end

This page was generated using Literate.jl.

`,34)]))}const o=i(l,[["render",p]]);export{y as __pageData,o as default}; +end

This page was generated using Literate.jl.

`,33)]))}const o=i(l,[["render",p]]);export{g as __pageData,o as default}; diff --git a/previews/PR259/assets/source_methods_clipping_cut.md.s0ApEmIZ.lean.js b/previews/PR259/assets/source_methods_clipping_cut.md.s0ApEmIZ.lean.js new file mode 100644 index 000000000..1601e3e12 --- /dev/null +++ b/previews/PR259/assets/source_methods_clipping_cut.md.s0ApEmIZ.lean.js @@ -0,0 +1 @@ +import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g=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(h,s,e,k,r,d){return n(),a("div",null,s[0]||(s[0]=[t("",33)]))}const o=i(l,[["render",p]]);export{g as __pageData,o as default}; diff --git a/previews/PR259/assets/source_methods_clipping_difference.md.BOSoRQpu.lean.js b/previews/PR259/assets/source_methods_clipping_difference.md.BOSoRQpu.lean.js deleted file mode 100644 index 38e5fe7c0..000000000 --- a/previews/PR259/assets/source_methods_clipping_difference.md.BOSoRQpu.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),p={name:"source/methods/clipping/difference.md"};function t(h,s,e,k,r,d){return n(),a("div",null,s[0]||(s[0]=[l("",22)]))}const E=i(p,[["render",t]]);export{y as __pageData,E as default}; diff --git a/previews/PR259/assets/source_methods_clipping_difference.md.BOSoRQpu.js b/previews/PR259/assets/source_methods_clipping_difference.md.DEXW95_U.js similarity index 74% rename from previews/PR259/assets/source_methods_clipping_difference.md.BOSoRQpu.js rename to previews/PR259/assets/source_methods_clipping_difference.md.DEXW95_U.js index 70279cfdb..aeccd223c 100644 --- a/previews/PR259/assets/source_methods_clipping_difference.md.BOSoRQpu.js +++ b/previews/PR259/assets/source_methods_clipping_difference.md.DEXW95_U.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),p={name:"source/methods/clipping/difference.md"};function t(h,s,e,k,r,d){return n(),a("div",null,s[0]||(s[0]=[l(`

Difference Polygon Clipping

julia
export difference
+import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const E=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),h={name:"source/methods/clipping/difference.md"};function p(t,s,k,e,r,g){return n(),a("div",null,s[0]||(s[0]=[l(`

Difference Polygon Clipping

julia
export difference
 
 
 """
@@ -29,26 +29,26 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
 \`\`\`
 """
 function difference(
-    geom_a, geom_b, ::Type{T} = Float64; target=nothing, kwargs...,
+    alg::FosterHormannClipping, geom_a, geom_b, ::Type{T} = Float64; target=nothing, kwargs...,
 ) where {T<:AbstractFloat}
     return _difference(
-        TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b;
+        alg, TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b;
         exact = _True(), kwargs...,
     )
-end
+end

fallback definitions

julia
difference(geom_a, geom_b, ::Type{T} = Float64; target=nothing, kwargs...) where T = difference(FosterHormannClipping(Planar()), geom_a, geom_b, T; target, kwargs...)

if manifold but no algorithm - assume FosterHormannClipping with provided manifold.

julia
difference(m::Manifold, geom_a, geom_b, ::Type{T} = Float64; target=nothing, kwargs...) where T = difference(FosterHormannClipping(m), geom_a, geom_b, T; target, kwargs...)
 
-#= The 'difference' function returns the difference of two polygons as a list of polygons.
-The algorithm to determine the difference was adapted from "Efficient clipping of efficient
-polygons," by Greiner and Hormann (1998). DOI: https://doi.org/10.1145/274363.274364 =#
-function _difference(
-    ::TraitTarget{GI.PolygonTrait}, ::Type{T},
-    ::GI.PolygonTrait, poly_a,
-    ::GI.PolygonTrait, poly_b;
-    exact, kwargs...
-) where T

Get the exterior of the polygons

julia
    ext_a = GI.getexterior(poly_a)
-    ext_b = GI.getexterior(poly_b)

Find the difference of the exterior of the polygons

julia
    a_list, b_list, a_idx_list = _build_ab_list(T, ext_a, ext_b, _diff_delay_cross_f, _diff_delay_bounce_f; exact)
-    polys = _trace_polynodes(T, a_list, b_list, a_idx_list, _diff_step, poly_a, poly_b)

if no crossing points, determine if either poly is inside of the other

julia
    if isempty(polys)
-        a_in_b, b_in_a = _find_non_cross_orientation(a_list, b_list, ext_a, ext_b; exact)

add case for if they polygons are the same (all intersection points!) add a find_first check to find first non-inter poly!

julia
        if b_in_a && !a_in_b  # b in a and can't be the same polygon
+#= The 'difference' function returns the difference of two polygons as a list of polygons.
+The algorithm to determine the difference was adapted from "Efficient clipping of efficient
+polygons," by Greiner and Hormann (1998). DOI: https://doi.org/10.1145/274363.274364 =#
+function _difference(
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    ::GI.PolygonTrait, poly_a,
+    ::GI.PolygonTrait, poly_b;
+    exact, kwargs...
+) where T

Get the exterior of the polygons

julia
    ext_a = GI.getexterior(poly_a)
+    ext_b = GI.getexterior(poly_b)

Find the difference of the exterior of the polygons

julia
    a_list, b_list, a_idx_list = _build_ab_list(alg, T, ext_a, ext_b, _diff_delay_cross_f, _diff_delay_bounce_f; exact)
+    polys = _trace_polynodes(alg, T, a_list, b_list, a_idx_list, _diff_step, poly_a, poly_b)

if no crossing points, determine if either poly is inside of the other

julia
    if isempty(polys)
+        a_in_b, b_in_a = _find_non_cross_orientation(#=TODO: alg=#a_list, b_list, ext_a, ext_b; exact)

add case for if they polygons are the same (all intersection points!) add a find_first check to find first non-inter poly!

julia
        if b_in_a && !a_in_b  # b in a and can't be the same polygon
             poly_a_b_hole = GI.Polygon([tuples(ext_a), tuples(ext_b)])
             push!(polys, poly_a_b_hole)
         elseif !b_in_a && !a_in_b # polygons don't intersect
@@ -57,17 +57,17 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
         end
     end
     remove_idx = falses(length(polys))

If the original polygons had holes, take that into account.

julia
    if GI.nhole(poly_a) != 0
-        _add_holes_to_polys!(T, polys, GI.gethole(poly_a), remove_idx; exact)
+        _add_holes_to_polys!(alg, T, polys, GI.gethole(poly_a), remove_idx; exact)
     end
     if GI.nhole(poly_b) != 0
         for hole in GI.gethole(poly_b)
             hole_poly = GI.Polygon(StaticArrays.SVector(hole))
-            new_polys = intersection(hole_poly, poly_a, T; target = GI.PolygonTrait)
+            new_polys = intersection(alg, hole_poly, poly_a, T; target = GI.PolygonTrait)
             if length(new_polys) > 0
                 append!(polys, new_polys)
             end
         end
-    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(polys, remove_idx, poly_a, poly_b)
+    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(alg, polys, remove_idx, poly_a, poly_b)
     return polys
 end

Helper functions for Differences with Greiner and Hormann Polygon Clipping

julia
#= When marking the crossing status of a delayed crossing, the chain start point is crossing
 when the start point is a entry point and is a bouncing point when the start point is an
@@ -89,7 +89,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
 #= Polygon with multipolygon difference - note that all intersection regions between
 \`poly_a\` and any of the sub-polygons of \`multipoly_b\` are removed from \`poly_a\`. =#
 function _difference(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.PolygonTrait, poly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     kwargs...,
@@ -97,7 +97,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
     polys = [tuples(poly_a, T)]
     for poly_b in GI.getpolygon(multipoly_b)
         isempty(polys) && break
-        polys = mapreduce(p -> difference(p, poly_b; target), append!, polys)
+        polys = mapreduce(p -> difference(alg, p, poly_b; target), append!, polys)
     end
     return polys
 end
@@ -107,7 +107,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
 sub-polygon. Unless specified with \`fix_multipoly = nothing\`, \`multipolygon_a\` will be
 validated using the given (default is \`UnionIntersectingPolygons()\`) correction. =#
 function _difference(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.PolygonTrait, poly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -118,7 +118,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
     polys = Vector{_get_poly_type(T)}()
     sizehint!(polys, GI.npolygon(multipoly_a))
     for poly_a in GI.getpolygon(multipoly_a)
-        append!(polys, difference(poly_a, poly_b; target))
+        append!(polys, difference(alg, poly_a, poly_b; target))
     end
     return polys
 end
@@ -129,7 +129,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
 \`multipolygon_a\` will be validated using the given (default is \`UnionIntersectingPolygons()\`)
 correction. =#
 function _difference(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -144,9 +144,9 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
         pieces of \`multipolygon_a\`\` are removed, continue to take difference with new shape
         \`polys\` =#
         polys = if i == 1
-            difference(multipoly_a, poly_b; target, fix_multipoly)
+            difference(alg, multipoly_a, poly_b; target, fix_multipoly)
         else
-            difference(GI.MultiPolygon(polys), poly_b; target, fix_multipoly)
+            difference(alg, GI.MultiPolygon(polys), poly_b; target, fix_multipoly)
         end
         #= One multipoly_a has been completely covered (and thus removed) there is no need to
         continue taking the difference =#
@@ -154,13 +154,13 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
     end
     return polys
 end

Many type and target combos aren't implemented

julia
function _difference(
-    ::TraitTarget{Target}, ::Type{T},
+    alg::GeometryOpsCore.Algorithm, target::TraitTarget{Target}, ::Type{T},
     trait_a::GI.AbstractTrait, geom_a,
     trait_b::GI.AbstractTrait, geom_b,
 ) where {Target, T}
     @assert(
         false,
-        "Difference between $trait_a and $trait_b with target $Target isn't implemented yet.",
+        "Difference between $trait_a and $trait_b with target $Target and algorithm $alg isn't implemented yet.",
     )
     return nothing
-end

This page was generated using Literate.jl.

`,22)]))}const E=i(p,[["render",t]]);export{y as __pageData,E as default}; +end

This page was generated using Literate.jl.

`,26)]))}const y=i(h,[["render",p]]);export{E as __pageData,y as default}; diff --git a/previews/PR259/assets/source_methods_clipping_difference.md.DEXW95_U.lean.js b/previews/PR259/assets/source_methods_clipping_difference.md.DEXW95_U.lean.js new file mode 100644 index 000000000..b7c9a0282 --- /dev/null +++ b/previews/PR259/assets/source_methods_clipping_difference.md.DEXW95_U.lean.js @@ -0,0 +1 @@ +import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const E=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),h={name:"source/methods/clipping/difference.md"};function p(t,s,k,e,r,g){return n(),a("div",null,s[0]||(s[0]=[l("",26)]))}const y=i(h,[["render",p]]);export{E as __pageData,y as default}; diff --git a/previews/PR259/assets/source_methods_clipping_intersection.md.CLIavVgq.js b/previews/PR259/assets/source_methods_clipping_intersection.md.Bigo6bS9.js similarity index 85% rename from previews/PR259/assets/source_methods_clipping_intersection.md.CLIavVgq.js rename to previews/PR259/assets/source_methods_clipping_intersection.md.Bigo6bS9.js index 16eaf08b5..91cf0fb53 100644 --- a/previews/PR259/assets/source_methods_clipping_intersection.md.CLIavVgq.js +++ b/previews/PR259/assets/source_methods_clipping_intersection.md.Bigo6bS9.js @@ -36,33 +36,39 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g \`\`\` """ function intersection( - geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs..., + alg::FosterHormannClipping, geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs... ) where {T<:AbstractFloat} return _intersection( - TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b; + alg, TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b; exact = _True(), kwargs..., ) -end

Curve-Curve Intersections with target Point

julia
_intersection(
-    ::TraitTarget{GI.PointTrait}, ::Type{T},
+end

fallback definitions if no manifold - assume planar (until we have best_manifold)

julia
function intersection(
+    geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs...
+) where {T<:AbstractFloat}
+    return intersection(FosterHormannClipping(Planar()), geom_a, geom_b; target, kwargs...)
+end

if manifold but no algorithm - assume FosterHormannClipping with provided manifold.

julia
function intersection(m::Manifold, geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs...) where {T<:AbstractFloat}
+    return intersection(FosterHormannClipping(m), geom_a, geom_b; target, kwargs...)
+end

Curve-Curve Intersections with target Point

julia
_intersection(
+    alg::FosterHormannClipping, ::TraitTarget{GI.PointTrait}, ::Type{T},
     trait_a::Union{GI.LineTrait, GI.LineStringTrait, GI.LinearRingTrait}, geom_a,
     trait_b::Union{GI.LineTrait, GI.LineStringTrait, GI.LinearRingTrait}, geom_b;
     kwargs...,
-) where T = _intersection_points(T, trait_a, geom_a, trait_b, geom_b)
+) where T = _intersection_points(alg.manifold, alg.accelerator, T, trait_a, geom_a, trait_b, geom_b)
 
 #= Polygon-Polygon Intersections with target Polygon
 The algorithm to determine the intersection was adapted from "Efficient clipping
 of efficient polygons," by Greiner and Hormann (1998).
 DOI: https://doi.org/10.1145/274363.274364 =#
 function _intersection(
-    ::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, ::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.PolygonTrait, poly_a,
     ::GI.PolygonTrait, poly_b;
     exact, kwargs...,
 ) where {T}

First we get the exteriors of 'poly_a' and 'poly_b'

julia
    ext_a = GI.getexterior(poly_a)
-    ext_b = GI.getexterior(poly_b)

Then we find the intersection of the exteriors

julia
    a_list, b_list, a_idx_list = _build_ab_list(T, ext_a, ext_b, _inter_delay_cross_f, _inter_delay_bounce_f; exact)
-    polys = _trace_polynodes(T, a_list, b_list, a_idx_list, _inter_step, poly_a, poly_b)
+    ext_b = GI.getexterior(poly_b)

Then we find the intersection of the exteriors

julia
    a_list, b_list, a_idx_list = _build_ab_list(alg, T, ext_a, ext_b, _inter_delay_cross_f, _inter_delay_bounce_f; exact)
+    polys = _trace_polynodes(alg, T, a_list, b_list, a_idx_list, _inter_step, poly_a, poly_b)
     if isempty(polys) # no crossing points, determine if either poly is inside the other
-        a_in_b, b_in_a = _find_non_cross_orientation(a_list, b_list, ext_a, ext_b; exact)
+        a_in_b, b_in_a = _find_non_cross_orientation(alg, a_list, b_list, ext_a, ext_b; exact)
         if a_in_b
             push!(polys, GI.Polygon([tuples(ext_a)]))
         elseif b_in_a
@@ -71,8 +77,8 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g
     end
     remove_idx = falses(length(polys))

If the original polygons had holes, take that into account.

julia
    if GI.nhole(poly_a) != 0 || GI.nhole(poly_b) != 0
         hole_iterator = Iterators.flatten((GI.gethole(poly_a), GI.gethole(poly_b)))
-        _add_holes_to_polys!(T, polys, hole_iterator, remove_idx; exact)
-    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(polys, remove_idx, poly_a, poly_b)
+        _add_holes_to_polys!(alg, T, polys, hole_iterator, remove_idx; exact)
+    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(alg, polys, remove_idx, poly_a, poly_b)
     return polys
 end

Helper functions for Intersections with Greiner and Hormann Polygon Clipping

julia
#= When marking the crossing status of a delayed crossing, the chain start point is bouncing
 when the start point is a entry point and is a crossing point when the start point is an
@@ -93,7 +99,7 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g
 Unless specified with \`fix_multipoly = nothing\`, \`multipolygon_b\` will be validated using
 the given (default is \`UnionIntersectingPolygons()\`) correction. =#
 function _intersection(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.PolygonTrait, poly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -103,7 +109,7 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g
     end
     polys = Vector{_get_poly_type(T)}()
     for poly_b in GI.getpolygon(multipoly_b)
-        append!(polys, intersection(poly_a, poly_b; target))
+        append!(polys, intersection(alg, poly_a, poly_b; target))
     end
     return polys
 end
@@ -112,11 +118,11 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g
 polygon with the multipolygon and thus simply switches the order of operations and calls the
 above method. =#
 _intersection(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.PolygonTrait, poly_b;
     kwargs...,
-) where T = intersection(poly_b, multipoly_a; target , kwargs...)
+) where T = intersection(alg, poly_b, multipoly_a; target , kwargs...)
 
 #= Multipolygon with multipolygon intersection - note that all intersection regions between
 any sub-polygons of \`multipoly_a\` and any of the sub-polygons of \`multipoly_b\` are counted
@@ -124,7 +130,7 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g
 \`multipolygon_a\` and \`multipolygon_b\` will be validated using the given (default is
 \`UnionIntersectingPolygons()\`) correction. =#
 function _intersection(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -136,18 +142,18 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g
     end
     polys = Vector{_get_poly_type(T)}()
     for poly_a in GI.getpolygon(multipoly_a)
-        append!(polys, intersection(poly_a, multipoly_b; target, fix_multipoly))
+        append!(polys, intersection(alg, poly_a, multipoly_b; target, fix_multipoly))
     end
     return polys
 end

Many type and target combos aren't implemented

julia
function _intersection(
-    ::TraitTarget{Target}, ::Type{T},
+    alg::GeometryOpsCore.Algorithm, target::TraitTarget{Target}, ::Type{T},
     trait_a::GI.AbstractTrait, geom_a,
     trait_b::GI.AbstractTrait, geom_b;
     kwargs...,
 ) where {Target, T}
     @assert(
         false,
-        "Intersection between $trait_a and $trait_b with target $Target isn't implemented yet.",
+        "Intersection between $trait_a and $trait_b with target $Target and algorithm $alg isn't implemented yet.",
     )
     return nothing
 end
@@ -168,14 +174,20 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g
 inter_points = GO.intersection_points(line1, line2)

output

julia
1-element Vector{Tuple{Float64, Float64}}:
  (125.58375366067548, -14.83572303404496)
 """
-intersection_points(geom_a, geom_b, ::Type{T} = Float64) where T <: AbstractFloat =
-    _intersection_points(T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b)
+intersection_points(geom_a, geom_b, ::Type{T} = Float64) where T <: AbstractFloat = intersection_points(FosterHormannClipping(Planar()), geom_a, geom_b, T)
+function intersection_points(alg::FosterHormannClipping{M, A}, geom_a, geom_b, ::Type{T} = Float64) where {M, A, T <: AbstractFloat}
+    return _intersection_points(alg.manifold, alg.accelerator, T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b)
+end
+
+function intersection_points(m::Manifold, a::IntersectionAccelerator, geom_a, geom_b, ::Type{T} = Float64) where T <: AbstractFloat
+    return _intersection_points(m, a, T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b)
+end
 
 
 #= Calculates the list of intersection points between two geometries, including line
 segments, line strings, linear rings, polygons, and multipolygons. =#
-function _intersection_points(::Type{T}, ::GI.AbstractTrait, a, ::GI.AbstractTrait, b; exact = _True()) where T

Initialize an empty list of points

julia
    result = Tuple{T, T}[]

Check if the geometries extents even overlap

julia
    Extents.intersects(GI.extent(a), GI.extent(b)) || return result

Create a list of edges from the two input geometries

julia
    edges_a, edges_b = map(sort!  to_edges, (a, b))

Loop over pairs of edges and add any unique intersection points to results

julia
    for a_edge in edges_a, b_edge in edges_b
-        line_orient, intr1, intr2 = _intersection_point(T, a_edge, b_edge; exact)
+function _intersection_points(manifold::M, accelerator::A, ::Type{T}, ::GI.AbstractTrait, a, ::GI.AbstractTrait, b; exact = _True()) where {M <: Manifold, A <: IntersectionAccelerator, T}

Initialize an empty list of points

julia
    result = Tuple{T, T}[]

Check if the geometries extents even overlap

julia
    Extents.intersects(GI.extent(a), GI.extent(b)) || return result

Create a list of edges from the two input geometries

julia
    edges_a, edges_b = map(sort!  to_edges, (a, b))

Loop over pairs of edges and add any unique intersection points to results TODO: add intersection acceleration here.

julia
    for a_edge in edges_a, b_edge in edges_b
+        line_orient, intr1, intr2 = _intersection_point(manifold, T, a_edge, b_edge; exact)
         line_orient == line_out && continue  # no intersection points
         pt1, _ = intr1
         push!(result, pt1)  # if not line_out, there is at least one intersection point
@@ -210,7 +222,7 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g
 that point.
 
 Calculation derivation can be found here: https://stackoverflow.com/questions/563198/ =#
-function _intersection_point(::Type{T}, (a1, a2)::Edge, (b1, b2)::Edge; exact) where T

Default answer for no intersection

julia
    line_orient = line_out
+function _intersection_point(manifold::M, ::Type{T}, (a1, a2)::Edge, (b1, b2)::Edge; exact) where {M <: Manifold, T}

Default answer for no intersection

julia
    line_orient = line_out
     intr1 = ((zero(T), zero(T)), (zero(T), zero(T)))
     intr2 = intr1
     no_intr_result = (line_orient, intr1, intr2)

Seperate out line segment points

julia
    (a1x, a1y), (a2x, a2y) = _tuple_point(a1, T), _tuple_point(a2, T)
@@ -221,14 +233,14 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g
     a1_orient != 0 && a1_orient == a2_orient && return no_intr_result  # α < 0 or α > 1
     b1_orient = Predicates.orient(a1, a2, b1; exact)
     b2_orient = Predicates.orient(a1, a2, b2; exact)
-    b1_orient != 0 && b1_orient == b2_orient && return no_intr_result  # β < 0 or β > 1

Determine intersection type and intersection point(s)

julia
    if a1_orient == a2_orient == b1_orient == b2_orient == 0

Intersection is collinear if all endpoints lie on the same line

julia
        line_orient, intr1, intr2 = _find_collinear_intersection(T, a1, a2, b1, b2, a_ext, b_ext, no_intr_result)
+    b1_orient != 0 && b1_orient == b2_orient && return no_intr_result  # β < 0 or β > 1

Determine intersection type and intersection point(s)

julia
    if a1_orient == a2_orient == b1_orient == b2_orient == 0

Intersection is collinear if all endpoints lie on the same line

julia
        line_orient, intr1, intr2 = _find_collinear_intersection(manifold, T, a1, a2, b1, b2, a_ext, b_ext, no_intr_result)
     elseif a1_orient == 0 || a2_orient == 0 || b1_orient == 0 || b2_orient == 0

Intersection is a hinge if the intersection point is an endpoint

julia
        line_orient = line_hinge
         intr1 = _find_hinge_intersection(T, a1, a2, b1, b2, a1_orient, a2_orient, b1_orient)
     else

Intersection is a cross if there is only one non-endpoint intersection point

julia
        line_orient = line_cross
         intr1 = _find_cross_intersection(T, a1, a2, b1, b2, a_ext, b_ext)
     end
     return line_orient, intr1, intr2
-end
+end

TODO: deprecate this

julia
_intersection_point(::Type{T}, (a1, a2)::Edge, (b1, b2)::Edge; exact) where T = _intersection_point(Planar(), T, (a1, a2), (b1, b2); exact)
 
 #= If lines defined by (a1, a2) and (b1, b2) are collinear, find endpoints of overlapping
 region if they exist. This could result in three possibilities. First, there could be no
@@ -236,7 +248,7 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g
 returned. Second, the two regions could just meet at one shared endpoint, in which case it
 is a hinge intersection with one intersection point. Otherwise, it is a overlapping
 intersection defined by two of the endpoints of the line segments. =#
-function _find_collinear_intersection(::Type{T}, a1, a2, b1, b2, a_ext, b_ext, no_intr_result) where T

Define default return for no intersection points

julia
    line_orient, intr1, intr2 = no_intr_result

Determine collinear line overlaps

julia
    a1_in_b = _point_in_extent(a1, b_ext)
+function _find_collinear_intersection(manifold::M, ::Type{T}, a1, a2, b1, b2, a_ext, b_ext, no_intr_result) where {M <: Manifold, T}

Define default return for no intersection points

julia
    line_orient, intr1, intr2 = no_intr_result

Determine collinear line overlaps

julia
    a1_in_b = _point_in_extent(a1, b_ext)
     a2_in_b = _point_in_extent(a2, b_ext)
     b1_in_a = _point_in_extent(b1, a_ext)
     b2_in_a = _point_in_extent(b2, a_ext)

Determine line distances

julia
    a_dist, b_dist = distance(a1, a2, T), distance(b1, b2, T)

Set collinear intersection points if they exist

julia
    if a1_in_b && a2_in_b      # 1st vertex of a and 2nd vertex of a form overlap
@@ -380,4 +392,4 @@ import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g
         min_pt, min_dist = b2, dist
         α, β = _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.

`,80)]))}const y=i(h,[["render",l]]);export{g as __pageData,y as default}; +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.

`,86)]))}const y=i(h,[["render",l]]);export{g as __pageData,y as default}; diff --git a/previews/PR259/assets/source_methods_clipping_intersection.md.CLIavVgq.lean.js b/previews/PR259/assets/source_methods_clipping_intersection.md.Bigo6bS9.lean.js similarity index 87% rename from previews/PR259/assets/source_methods_clipping_intersection.md.CLIavVgq.lean.js rename to previews/PR259/assets/source_methods_clipping_intersection.md.Bigo6bS9.lean.js index 6c165cfd0..f1040e121 100644 --- a/previews/PR259/assets/source_methods_clipping_intersection.md.CLIavVgq.lean.js +++ b/previews/PR259/assets/source_methods_clipping_intersection.md.Bigo6bS9.lean.js @@ -1 +1 @@ -import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),h={name:"source/methods/clipping/intersection.md"};function l(p,s,k,e,r,E){return n(),a("div",null,s[0]||(s[0]=[t("",80)]))}const y=i(h,[["render",l]]);export{g as __pageData,y as default}; +import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const g=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),h={name:"source/methods/clipping/intersection.md"};function l(p,s,k,e,r,E){return n(),a("div",null,s[0]||(s[0]=[t("",86)]))}const y=i(h,[["render",l]]);export{g as __pageData,y as default}; diff --git a/previews/PR259/assets/source_methods_clipping_union.md.cKYnnZNN.js b/previews/PR259/assets/source_methods_clipping_union.md.D30VBadw.js similarity index 69% rename from previews/PR259/assets/source_methods_clipping_union.md.cKYnnZNN.js rename to previews/PR259/assets/source_methods_clipping_union.md.D30VBadw.js index 16b073430..ede5ba90d 100644 --- a/previews/PR259/assets/source_methods_clipping_union.md.cKYnnZNN.js +++ b/previews/PR259/assets/source_methods_clipping_union.md.D30VBadw.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),h={name:"source/methods/clipping/union.md"};function p(t,s,k,e,r,E){return n(),a("div",null,s[0]||(s[0]=[l(`

Union Polygon Clipping

julia
export union
+import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const y=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),l={name:"source/methods/clipping/union.md"};function p(t,s,k,e,r,E){return n(),a("div",null,s[0]||(s[0]=[h(`

Union Polygon Clipping

julia
export union
 
 """
     union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())
@@ -29,28 +29,34 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
 \`\`\`
 """
 function union(
-    geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs...
+    alg::FosterHormannClipping, geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs...
 ) where {T<:AbstractFloat}
     return _union(
-        TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b;
+        alg, TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b;
         exact = _True(), kwargs...,
     )
-end
-
-#= This 'union' implementation returns the union of two polygons. The algorithm to determine
-the union was adapted from "Efficient clipping of efficient polygons," by Greiner and
-Hormann (1998). DOI: https://doi.org/10.1145/274363.274364 =#
-function _union(
-    ::TraitTarget{GI.PolygonTrait}, ::Type{T},
-    ::GI.PolygonTrait, poly_a,
-    ::GI.PolygonTrait, poly_b;
-    exact, kwargs...,
-) where T

First, I get the exteriors of the two polygons

julia
    ext_a = GI.getexterior(poly_a)
-    ext_b = GI.getexterior(poly_b)

Then, I get the union of the exteriors

julia
    a_list, b_list, a_idx_list = _build_ab_list(T, ext_a, ext_b, _union_delay_cross_f, _union_delay_bounce_f; exact)
-    polys = _trace_polynodes(T, a_list, b_list, a_idx_list, _union_step, poly_a, poly_b)
+end

fallback definitions if no manifold - assume planar (until we have best_manifold)

julia
function union(
+    geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs...
+) where {T<:AbstractFloat}
+    return union(FosterHormannClipping(Planar()), geom_a, geom_b; target, kwargs...)
+end

if manifold but no algorithm - assume FosterHormannClipping with provided manifold.

julia
function union(m::Manifold, geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs...) where {T<:AbstractFloat}
+    return union(FosterHormannClipping(m), geom_a, geom_b; target, kwargs...)
+end
+
+#= This 'union' implementation returns the union of two polygons. The algorithm to determine
+the union was adapted from "Efficient clipping of efficient polygons," by Greiner and
+Hormann (1998). DOI: https://doi.org/10.1145/274363.274364 =#
+function _union(
+    alg::FosterHormannClipping, ::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    ::GI.PolygonTrait, poly_a,
+    ::GI.PolygonTrait, poly_b;
+    exact, kwargs...,
+) where T

First, I get the exteriors of the two polygons

julia
    ext_a = GI.getexterior(poly_a)
+    ext_b = GI.getexterior(poly_b)

Then, I get the union of the exteriors

julia
    a_list, b_list, a_idx_list = _build_ab_list(alg, T, ext_a, ext_b, _union_delay_cross_f, _union_delay_bounce_f; exact)
+    polys = _trace_polynodes(alg, T, a_list, b_list, a_idx_list, _union_step, poly_a, poly_b)
     n_pieces = length(polys)

Check if one polygon totally within other and if so, return the larger polygon

julia
    a_in_b, b_in_a = false, false
     if n_pieces == 0 # no crossing points, determine if either poly is inside the other
-        a_in_b, b_in_a = _find_non_cross_orientation(a_list, b_list, ext_a, ext_b; exact)
+        a_in_b, b_in_a = _find_non_cross_orientation(alg, T, a_list, b_list, ext_a, ext_b; exact)
         if a_in_b
             push!(polys, GI.Polygon([_linearring(tuples(ext_b))]))
         elseif b_in_a
@@ -67,8 +73,8 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
         sort!(polys, by = area, rev = true)  # sort by area so first element is the exterior

the first element is the exterior, the rest are holes

julia
        @views append!(polys[1].geom, (GI.getexterior(p) for p in polys[2:end]))
         keepat!(polys, 1)
     end

Add in holes

julia
    if GI.nhole(poly_a) != 0 || GI.nhole(poly_b) != 0
-        _add_union_holes!(polys, a_in_b, b_in_a, poly_a, poly_b; exact)
-    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(polys, [false], poly_a, poly_b)
+        _add_union_holes!(alg, polys, a_in_b, b_in_a, poly_a, poly_b; exact)
+    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(alg, polys, [false], poly_a, poly_b)
     return polys
 end

Helper functions for Unions with Greiner and Hormann Polygon Clipping

julia
#= When marking the crossing status of a delayed crossing, the chain start point is crossing
 when the start point is a entry point and is a bouncing point when the start point is an
@@ -88,11 +94,11 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
 #= Add holes from two polygons to the exterior polygon formed by their union. If adding the
 the holes reveals that the polygons aren't actually intersecting, return the original
 polygons. =#
-function _add_union_holes!(polys, a_in_b, b_in_a, poly_a, poly_b; exact)
+function _add_union_holes!(alg::FosterHormannClipping, polys, a_in_b, b_in_a, poly_a, poly_b; exact)
     if a_in_b
-        _add_union_holes_contained_polys!(polys, poly_a, poly_b; exact)
+        _add_union_holes_contained_polys!(alg, polys, poly_a, poly_b; exact)
     elseif b_in_a
-        _add_union_holes_contained_polys!(polys, poly_b, poly_a; exact)
+        _add_union_holes_contained_polys!(alg, polys, poly_b, poly_a; exact)
     else  # Polygons intersect, but neither is contained in the other
         n_a_holes = GI.nhole(poly_a)
         ext_poly_a = GI.Polygon(StaticArrays.SVector(GI.getexterior(poly_a)))
@@ -103,7 +109,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
         curr_exterior_poly = n_a_holes > 0 ? ext_poly_b : ext_poly_a
         current_poly = n_a_holes > 0 ? ext_poly_b : poly_a

Loop over all holes in both original polygons

julia
        for (i, ih) in enumerate(Iterators.flatten((GI.gethole(poly_a), GI.gethole(poly_b))))
             ih = _linearring(ih)
-            in_ext, _, _ = _line_polygon_interactions(ih, curr_exterior_poly; exact, closed_line = true)
+            in_ext, _, _ = _line_polygon_interactions(#=TODO: alg.manifold=# ih, curr_exterior_poly; exact, closed_line = true)
             if !in_ext
                 #= if the hole isn't in the overlapping region between the two polygons, add
                 the hole to the resulting polygon as we know it can't interact with any
@@ -116,7 +122,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
                 between poly_a and poly_b within the overlap are added, in addition to all
                 holes in non-overlapping regions =#
                 h_poly = GI.Polygon(StaticArrays.SVector(ih))
-                new_holes = difference(h_poly, current_poly; target = GI.PolygonTrait())
+                new_holes = difference(alg, h_poly, current_poly; target = GI.PolygonTrait())
                 append!(polys[1].geom, (GI.getexterior(new_h) for new_h in new_holes))
             end
             if i == n_a_holes
@@ -131,12 +137,12 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
 #= Add holes holes to the union of two polygons where one of the original polygons was
 inside of the other. If adding the the holes reveal that the polygons aren't actually
 intersecting, return the original polygons.=#
-function _add_union_holes_contained_polys!(polys, interior_poly, exterior_poly; exact)
+function _add_union_holes_contained_polys!(alg::FosterHormannClipping, polys, interior_poly, exterior_poly; exact)
     union_poly = polys[1]
     ext_int_ring = GI.getexterior(interior_poly)
     for (i, ih) in enumerate(GI.gethole(exterior_poly))
         poly_ih = GI.Polygon(StaticArrays.SVector(ih))
-        in_ih, on_ih, out_ih = _line_polygon_interactions(ext_int_ring, poly_ih; exact, closed_line = true)
+        in_ih, on_ih, out_ih = _line_polygon_interactions(#=TODO: alg.manifold=# ext_int_ring, poly_ih; exact, closed_line = true)
         if in_ih  # at least part of interior polygon exterior is within the ith hole
             if !on_ih && !out_ih
                 #= interior polygon is completely within the ith hole - polygons aren't
@@ -147,7 +153,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
             else
                 #= interior polygon is partially within the ith hole - area of interior
                 polygon reduces the size of the hole =#
-                new_holes = difference(poly_ih, interior_poly; target = GI.PolygonTrait())
+                new_holes = difference(alg, poly_ih, interior_poly; target = GI.PolygonTrait())
                 append!(union_poly.geom, (GI.getexterior(new_h) for new_h in new_holes))
             end
         else  # none of interior polygon exterior is within the ith hole
@@ -161,14 +167,14 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
                 #= interior polygon's exterior is outside of the ith hole - the interior
                 polygon could either be disjoint from the hole, or contain the hole =#
                 ext_int_poly = GI.Polygon(StaticArrays.SVector(ext_int_ring))
-                in_int, _, _ = _line_polygon_interactions(ih, ext_int_poly; exact, closed_line = true)
+                in_int, _, _ = _line_polygon_interactions(#=TODO: alg.manifold=# ih, ext_int_poly; exact, closed_line = true)
                 if in_int
                     #= interior polygon contains the hole - overlapping holes between the
                     interior and exterior polygons will be added =#
                     for jh in GI.gethole(interior_poly)
                         poly_jh = GI.Polygon(StaticArrays.SVector(jh))
                         if intersects(poly_ih, poly_jh)
-                            new_holes = intersection(poly_ih, poly_jh; target = GI.PolygonTrait())
+                            new_holes = intersection(#=TODO: alg, =#poly_ih, poly_jh; target = GI.PolygonTrait())
                             append!(union_poly.geom, (GI.getexterior(new_h) for new_h in new_holes))
                         end
                     end
@@ -188,7 +194,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
 with \`fix_multipoly = nothing\`, \`multipolygon_b\` will be validated using the given (default
 is \`UnionIntersectingPolygons()\`) correction. =#
 function _union(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.PolygonTrait, poly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -198,7 +204,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
     end
     polys = [tuples(poly_a, T)]
     for poly_b in GI.getpolygon(multipoly_b)
-        if intersects(polys[1], poly_b)

If polygons intersect and form a new polygon, swap out polygon

julia
            new_polys = union(polys[1], poly_b; target)
+        if intersects(#=TODO: alg.manifold, =#polys[1], poly_b)

If polygons intersect and form a new polygon, swap out polygon

julia
            new_polys = union(alg, polys[1], poly_b; target)
             if length(new_polys) > 1 # case where they intersect by just one point
                 push!(polys, tuples(poly_b, T))  # add poly_b to list
             else
@@ -213,18 +219,18 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
 #= Multipolygon with polygon union is equivalent to taking the union of the polygon with the
 multipolygon and thus simply switches the order of operations and calls the above method. =#
 _union(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.PolygonTrait, poly_b;
     kwargs...,
-) where T = union(poly_b, multipoly_a; target, kwargs...)
+) where T = union(alg, poly_b, multipoly_a; target, kwargs...)
 
 #= Multipolygon with multipolygon union - note that all of the sub-polygons of \`multipoly_a\`
 and the sub-polygons of \`multipoly_b\` are included and combined together where there are
 intersections. Unless specified with \`fix_multipoly = nothing\`, \`multipolygon_b\` will be
 validated using the given (default is \`UnionIntersectingPolygons()\`) correction. =#
 function _union(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -236,16 +242,57 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y
     multipolys = multipoly_b
     local polys
     for poly_a in GI.getpolygon(multipoly_a)
-        polys = union(poly_a, multipolys; target, fix_multipoly)
+        polys = union(alg, poly_a, multipolys; target, fix_multipoly)
         multipolys = GI.MultiPolygon(polys)
     end
     return polys
+end
+
+function _union(
+    alg::FosterHormannClipping, target::TraitTarget{GI.MultiPolygonTrait}, ::Type{T},
+    ::GI.PolygonTrait, poly_a,
+    ::GI.PolygonTrait, poly_b;
+    kwargs...,
+) where T
+    return UnionIntersectingPolygons(#=TODO: alg.manifold=#)(GI.MultiPolygon([poly_a, poly_b]))
+end
+
+function _union(
+    alg::FosterHormannClipping, target::TraitTarget{GI.MultiPolygonTrait}, ::Type{T},
+    ::GI.PolygonTrait, poly_a,
+    ::GI.MultiPolygonTrait, multipoly_b;
+    fix_multipoly = UnionIntersectingPolygons(),
+    kwargs...,
+) where T
+    res = union(alg, multipoly_b, poly_a; target = GI.PolygonTrait(), kwargs...)
+    if !isnothing(fix_multipoly)
+        return fix_multipoly(GI.MultiPolygon(res))
+    else
+        return GI.MultiPolygon(res)
+    end
+end

this is the opposite of the above

julia
function _union(
+    alg::FosterHormannClipping, target::TraitTarget{GI.MultiPolygonTrait}, ::Type{T},
+    ::GI.MultiPolygonTrait, multipoly_a,
+    ::GI.PolygonTrait, poly_b;
+    fix_multipoly = UnionIntersectingPolygons(),
+    kwargs...,
+) where T
+    union(alg, poly_b, multipoly_a; target, fix_multipoly, kwargs...)
+end
+
+function _union(
+    alg::FosterHormannClipping, target::TraitTarget{GI.MultiPolygonTrait}, ::Type{T},
+    trait_a::GI.MultiPolygonTrait, multipoly_a,
+    trait_b::GI.MultiPolygonTrait, multipoly_b;
+    fix_multipoly = UnionIntersectingPolygons(), kwargs...,
+) where T
+    return GI.MultiPolygon(_union(alg, TraitTarget{GI.PolygonTrait}(), T, trait_a, multipoly_a, trait_b, multipoly_b; fix_multipoly, kwargs...))
 end

Many type and target combos aren't implemented

julia
function _union(
-    ::TraitTarget{Target}, ::Type{T},
+    alg::GeometryOpsCore.Algorithm, target::TraitTarget{Target}, ::Type{T},
     trait_a::GI.AbstractTrait, geom_a,
     trait_b::GI.AbstractTrait, geom_b;
     kwargs...
 ) where {Target,T}
     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.

`,28)]))}const d=i(h,[["render",p]]);export{y as __pageData,d as default}; +end

This page was generated using Literate.jl.

`,34)]))}const d=i(l,[["render",p]]);export{y as __pageData,d as default}; diff --git a/previews/PR259/assets/source_methods_clipping_union.md.cKYnnZNN.lean.js b/previews/PR259/assets/source_methods_clipping_union.md.D30VBadw.lean.js similarity index 59% rename from previews/PR259/assets/source_methods_clipping_union.md.cKYnnZNN.lean.js rename to previews/PR259/assets/source_methods_clipping_union.md.D30VBadw.lean.js index 01eee6d0f..e97ecc3f8 100644 --- a/previews/PR259/assets/source_methods_clipping_union.md.cKYnnZNN.lean.js +++ b/previews/PR259/assets/source_methods_clipping_union.md.D30VBadw.lean.js @@ -1 +1 @@ -import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const y=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),h={name:"source/methods/clipping/union.md"};function p(t,s,k,e,r,E){return n(),a("div",null,s[0]||(s[0]=[l("",28)]))}const d=i(h,[["render",p]]);export{y as __pageData,d as default}; +import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const y=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),l={name:"source/methods/clipping/union.md"};function p(t,s,k,e,r,E){return n(),a("div",null,s[0]||(s[0]=[h("",34)]))}const d=i(l,[["render",p]]);export{y as __pageData,d as default}; diff --git a/previews/PR259/assets/source_methods_convex_hull.md.C85szPKf.js b/previews/PR259/assets/source_methods_convex_hull.md.DsezimTp.js similarity index 99% rename from previews/PR259/assets/source_methods_convex_hull.md.C85szPKf.js rename to previews/PR259/assets/source_methods_convex_hull.md.DsezimTp.js index 4a96fa6e9..e47c2e9d4 100644 --- a/previews/PR259/assets/source_methods_convex_hull.md.C85szPKf.js +++ b/previews/PR259/assets/source_methods_convex_hull.md.DsezimTp.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const h="/GeometryOps.jl/previews/PR259/assets/lvdeuyz.ClUWLGb5.png",t="/GeometryOps.jl/previews/PR259/assets/rmhjrlj.mCtKcWOr.png",e="/GeometryOps.jl/previews/PR259/assets/hemmjkf.DxSgu1w0.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 n(),a("div",null,s[0]||(s[0]=[l(`

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,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/ifidzel.CuQ6xaOg.png",h="/GeometryOps.jl/previews/PR259/assets/ykfdwsk.mCtKcWOr.png",e="/GeometryOps.jl/previews/PR259/assets/kmmnlnv.BJ-fni57.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 n(),a("div",null,s[0]||(s[0]=[l(`

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)
@@ -6,7 +6,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const h
 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
 
@@ -14,7 +14,7 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const h
 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)
diff --git a/previews/PR259/assets/source_methods_convex_hull.md.C85szPKf.lean.js b/previews/PR259/assets/source_methods_convex_hull.md.DsezimTp.lean.js
similarity index 60%
rename from previews/PR259/assets/source_methods_convex_hull.md.C85szPKf.lean.js
rename to previews/PR259/assets/source_methods_convex_hull.md.DsezimTp.lean.js
index cba4e4460..121bf8453 100644
--- a/previews/PR259/assets/source_methods_convex_hull.md.C85szPKf.lean.js
+++ b/previews/PR259/assets/source_methods_convex_hull.md.DsezimTp.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const h="/GeometryOps.jl/previews/PR259/assets/lvdeuyz.ClUWLGb5.png",t="/GeometryOps.jl/previews/PR259/assets/rmhjrlj.mCtKcWOr.png",e="/GeometryOps.jl/previews/PR259/assets/hemmjkf.DxSgu1w0.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 n(),a("div",null,s[0]||(s[0]=[l("",35)]))}const u=i(p,[["render",k]]);export{c as __pageData,u as default};
+import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/ifidzel.CuQ6xaOg.png",h="/GeometryOps.jl/previews/PR259/assets/ykfdwsk.mCtKcWOr.png",e="/GeometryOps.jl/previews/PR259/assets/kmmnlnv.BJ-fni57.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 n(),a("div",null,s[0]||(s[0]=[l("",35)]))}const u=i(p,[["render",k]]);export{c as __pageData,u as default};
diff --git a/previews/PR259/assets/source_methods_distance.md.BiREGcW9.js b/previews/PR259/assets/source_methods_distance.md.CS0zsiKS.js
similarity index 99%
rename from previews/PR259/assets/source_methods_distance.md.BiREGcW9.js
rename to previews/PR259/assets/source_methods_distance.md.CS0zsiKS.js
index f04df427d..037ce7c32 100644
--- a/previews/PR259/assets/source_methods_distance.md.BiREGcW9.js
+++ b/previews/PR259/assets/source_methods_distance.md.CS0zsiKS.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/ykjufqt.DiwGEg2f.png",k="/GeometryOps.jl/previews/PR259/assets/ofcembu.CSlwc-Vp.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 n(),a("div",null,s[0]||(s[0]=[h(`

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,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/cbphmub.DiwGEg2f.png",k="/GeometryOps.jl/previews/PR259/assets/pzxxmit.CSlwc-Vp.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 n(),a("div",null,s[0]||(s[0]=[h(`

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/PR259/assets/source_methods_distance.md.BiREGcW9.lean.js b/previews/PR259/assets/source_methods_distance.md.CS0zsiKS.lean.js
similarity index 78%
rename from previews/PR259/assets/source_methods_distance.md.BiREGcW9.lean.js
rename to previews/PR259/assets/source_methods_distance.md.CS0zsiKS.lean.js
index b4a082123..2714969ea 100644
--- a/previews/PR259/assets/source_methods_distance.md.BiREGcW9.lean.js
+++ b/previews/PR259/assets/source_methods_distance.md.CS0zsiKS.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/ykjufqt.DiwGEg2f.png",k="/GeometryOps.jl/previews/PR259/assets/ofcembu.CSlwc-Vp.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 n(),a("div",null,s[0]||(s[0]=[h("",54)]))}const o=i(p,[["render",l]]);export{F as __pageData,o as default};
+import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/cbphmub.DiwGEg2f.png",k="/GeometryOps.jl/previews/PR259/assets/pzxxmit.CSlwc-Vp.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 n(),a("div",null,s[0]||(s[0]=[h("",54)]))}const o=i(p,[["render",l]]);export{F as __pageData,o as default};
diff --git a/previews/PR259/assets/source_methods_equals.md.C0JGt2AW.js b/previews/PR259/assets/source_methods_equals.md.D83aqY81.js
similarity index 99%
rename from previews/PR259/assets/source_methods_equals.md.C0JGt2AW.js
rename to previews/PR259/assets/source_methods_equals.md.D83aqY81.js
index 2fdb9f264..b69bdb8fb 100644
--- a/previews/PR259/assets/source_methods_equals.md.C0JGt2AW.js
+++ b/previews/PR259/assets/source_methods_equals.md.D83aqY81.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/peeyyat.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 n(),a("div",null,s[0]||(s[0]=[l(`

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,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/drsvfbl.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 n(),a("div",null,s[0]||(s[0]=[l(`

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/PR259/assets/source_methods_equals.md.C0JGt2AW.lean.js b/previews/PR259/assets/source_methods_equals.md.D83aqY81.lean.js
similarity index 87%
rename from previews/PR259/assets/source_methods_equals.md.C0JGt2AW.lean.js
rename to previews/PR259/assets/source_methods_equals.md.D83aqY81.lean.js
index 48edeff22..e6edc285f 100644
--- a/previews/PR259/assets/source_methods_equals.md.C0JGt2AW.lean.js
+++ b/previews/PR259/assets/source_methods_equals.md.D83aqY81.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/peeyyat.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 n(),a("div",null,s[0]||(s[0]=[l("",47)]))}const o=i(p,[["render",h]]);export{F as __pageData,o as default};
+import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/drsvfbl.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 n(),a("div",null,s[0]||(s[0]=[l("",47)]))}const o=i(p,[["render",h]]);export{F as __pageData,o as default};
diff --git a/previews/PR259/assets/source_methods_geom_relations_contains.md.VIlx77Qk.js b/previews/PR259/assets/source_methods_geom_relations_contains.md.CgzN2dAX.js
similarity index 99%
rename from previews/PR259/assets/source_methods_geom_relations_contains.md.VIlx77Qk.js
rename to previews/PR259/assets/source_methods_geom_relations_contains.md.CgzN2dAX.js
index d08729d02..1ee01a310 100644
--- a/previews/PR259/assets/source_methods_geom_relations_contains.md.VIlx77Qk.js
+++ b/previews/PR259/assets/source_methods_geom_relations_contains.md.CgzN2dAX.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const e="/GeometryOps.jl/previews/PR259/assets/djftybr._0R9BbFk.png",g=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 n(),a("div",null,s[0]||(s[0]=[t(`

Contains

do not export to avoid conflict with Base.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,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const e="/GeometryOps.jl/previews/PR259/assets/locpohl._0R9BbFk.png",g=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 n(),a("div",null,s[0]||(s[0]=[t(`

Contains

do not export to avoid conflict with Base.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/PR259/assets/source_methods_geom_relations_contains.md.VIlx77Qk.lean.js b/previews/PR259/assets/source_methods_geom_relations_contains.md.CgzN2dAX.lean.js
similarity index 88%
rename from previews/PR259/assets/source_methods_geom_relations_contains.md.VIlx77Qk.lean.js
rename to previews/PR259/assets/source_methods_geom_relations_contains.md.CgzN2dAX.lean.js
index 9a5ef58a9..6f3e5fdd6 100644
--- a/previews/PR259/assets/source_methods_geom_relations_contains.md.VIlx77Qk.lean.js
+++ b/previews/PR259/assets/source_methods_geom_relations_contains.md.CgzN2dAX.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const e="/GeometryOps.jl/previews/PR259/assets/djftybr._0R9BbFk.png",g=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 n(),a("div",null,s[0]||(s[0]=[t("",18)]))}const c=i(h,[["render",l]]);export{g as __pageData,c as default};
+import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const e="/GeometryOps.jl/previews/PR259/assets/locpohl._0R9BbFk.png",g=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 n(),a("div",null,s[0]||(s[0]=[t("",18)]))}const c=i(h,[["render",l]]);export{g as __pageData,c as default};
diff --git a/previews/PR259/assets/source_methods_geom_relations_coveredby.md.CLu86Dst.js b/previews/PR259/assets/source_methods_geom_relations_coveredby.md.sX_y8V1r.js
similarity index 99%
rename from previews/PR259/assets/source_methods_geom_relations_coveredby.md.CLu86Dst.js
rename to previews/PR259/assets/source_methods_geom_relations_coveredby.md.sX_y8V1r.js
index 0ae2cc07b..e37980d22 100644
--- a/previews/PR259/assets/source_methods_geom_relations_coveredby.md.CLu86Dst.js
+++ b/previews/PR259/assets/source_methods_geom_relations_coveredby.md.sX_y8V1r.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as e}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/fpshubg.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 n(),a("div",null,s[0]||(s[0]=[e(`

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,o as n,az as e}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/jbxzeyr.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 n(),a("div",null,s[0]||(s[0]=[e(`

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/PR259/assets/source_methods_geom_relations_coveredby.md.CLu86Dst.lean.js b/previews/PR259/assets/source_methods_geom_relations_coveredby.md.sX_y8V1r.lean.js
similarity index 88%
rename from previews/PR259/assets/source_methods_geom_relations_coveredby.md.CLu86Dst.lean.js
rename to previews/PR259/assets/source_methods_geom_relations_coveredby.md.sX_y8V1r.lean.js
index bdbb4c834..1c9550203 100644
--- a/previews/PR259/assets/source_methods_geom_relations_coveredby.md.CLu86Dst.lean.js
+++ b/previews/PR259/assets/source_methods_geom_relations_coveredby.md.sX_y8V1r.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as e}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/fpshubg.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 n(),a("div",null,s[0]||(s[0]=[e("",45)]))}const y=i(h,[["render",t]]);export{o as __pageData,y as default};
+import{_ as i,c as a,o as n,az as e}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/jbxzeyr.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 n(),a("div",null,s[0]||(s[0]=[e("",45)]))}const y=i(h,[["render",t]]);export{o as __pageData,y as default};
diff --git a/previews/PR259/assets/source_methods_geom_relations_covers.md.5TIFrjW7.js b/previews/PR259/assets/source_methods_geom_relations_covers.md.Qct8xDi5.js
similarity index 99%
rename from previews/PR259/assets/source_methods_geom_relations_covers.md.5TIFrjW7.js
rename to previews/PR259/assets/source_methods_geom_relations_covers.md.Qct8xDi5.js
index b17001a2d..37476f5ad 100644
--- a/previews/PR259/assets/source_methods_geom_relations_covers.md.5TIFrjW7.js
+++ b/previews/PR259/assets/source_methods_geom_relations_covers.md.Qct8xDi5.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as e,az as n}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/fpshubg.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 e(),a("div",null,s[0]||(s[0]=[n(`

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,o as e,az as n}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/jbxzeyr.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 e(),a("div",null,s[0]||(s[0]=[n(`

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/PR259/assets/source_methods_geom_relations_covers.md.5TIFrjW7.lean.js b/previews/PR259/assets/source_methods_geom_relations_covers.md.Qct8xDi5.lean.js
similarity index 88%
rename from previews/PR259/assets/source_methods_geom_relations_covers.md.5TIFrjW7.lean.js
rename to previews/PR259/assets/source_methods_geom_relations_covers.md.Qct8xDi5.lean.js
index 7832135d0..52b0fc772 100644
--- a/previews/PR259/assets/source_methods_geom_relations_covers.md.5TIFrjW7.lean.js
+++ b/previews/PR259/assets/source_methods_geom_relations_covers.md.Qct8xDi5.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as e,az as n}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/fpshubg.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 e(),a("div",null,s[0]||(s[0]=[n("",17)]))}const E=i(p,[["render",l]]);export{g as __pageData,E as default};
+import{_ as i,c as a,o as e,az as n}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/jbxzeyr.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 e(),a("div",null,s[0]||(s[0]=[n("",17)]))}const E=i(p,[["render",l]]);export{g as __pageData,E as default};
diff --git a/previews/PR259/assets/source_methods_geom_relations_disjoint.md.QOuhVB9O.js b/previews/PR259/assets/source_methods_geom_relations_disjoint.md.B3kUZtEp.js
similarity index 99%
rename from previews/PR259/assets/source_methods_geom_relations_disjoint.md.QOuhVB9O.js
rename to previews/PR259/assets/source_methods_geom_relations_disjoint.md.B3kUZtEp.js
index 91367dc53..6e8a3977a 100644
--- a/previews/PR259/assets/source_methods_geom_relations_disjoint.md.QOuhVB9O.js
+++ b/previews/PR259/assets/source_methods_geom_relations_disjoint.md.B3kUZtEp.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const h="/GeometryOps.jl/previews/PR259/assets/liwhgnp.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 n(),a("div",null,s[0]||(s[0]=[t(`

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,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const h="/GeometryOps.jl/previews/PR259/assets/piftqdk.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 n(),a("div",null,s[0]||(s[0]=[t(`

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/PR259/assets/source_methods_geom_relations_disjoint.md.QOuhVB9O.lean.js b/previews/PR259/assets/source_methods_geom_relations_disjoint.md.B3kUZtEp.lean.js
similarity index 88%
rename from previews/PR259/assets/source_methods_geom_relations_disjoint.md.QOuhVB9O.lean.js
rename to previews/PR259/assets/source_methods_geom_relations_disjoint.md.B3kUZtEp.lean.js
index 4e6bd94f5..520007fc1 100644
--- a/previews/PR259/assets/source_methods_geom_relations_disjoint.md.QOuhVB9O.lean.js
+++ b/previews/PR259/assets/source_methods_geom_relations_disjoint.md.B3kUZtEp.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const h="/GeometryOps.jl/previews/PR259/assets/liwhgnp.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 n(),a("div",null,s[0]||(s[0]=[t("",39)]))}const y=i(l,[["render",p]]);export{o as __pageData,y as default};
+import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const h="/GeometryOps.jl/previews/PR259/assets/piftqdk.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 n(),a("div",null,s[0]||(s[0]=[t("",39)]))}const y=i(l,[["render",p]]);export{o as __pageData,y as default};
diff --git a/previews/PR259/assets/source_methods_geom_relations_intersects.md.WNMjFrcC.js b/previews/PR259/assets/source_methods_geom_relations_intersects.md.B3WWAOpP.js
similarity index 99%
rename from previews/PR259/assets/source_methods_geom_relations_intersects.md.WNMjFrcC.js
rename to previews/PR259/assets/source_methods_geom_relations_intersects.md.B3WWAOpP.js
index 7a60fc296..0247ff80b 100644
--- a/previews/PR259/assets/source_methods_geom_relations_intersects.md.WNMjFrcC.js
+++ b/previews/PR259/assets/source_methods_geom_relations_intersects.md.B3WWAOpP.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as e,az as n}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/jquwtio.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 e(),a("div",null,s[0]||(s[0]=[n(`

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,o as e,az as n}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/opjywme.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 e(),a("div",null,s[0]||(s[0]=[n(`

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/PR259/assets/source_methods_geom_relations_intersects.md.WNMjFrcC.lean.js b/previews/PR259/assets/source_methods_geom_relations_intersects.md.B3WWAOpP.lean.js
similarity index 88%
rename from previews/PR259/assets/source_methods_geom_relations_intersects.md.WNMjFrcC.lean.js
rename to previews/PR259/assets/source_methods_geom_relations_intersects.md.B3WWAOpP.lean.js
index 826459edc..7aad197c9 100644
--- a/previews/PR259/assets/source_methods_geom_relations_intersects.md.WNMjFrcC.lean.js
+++ b/previews/PR259/assets/source_methods_geom_relations_intersects.md.B3WWAOpP.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as e,az as n}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/jquwtio.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 e(),a("div",null,s[0]||(s[0]=[n("",18)]))}const E=i(p,[["render",l]]);export{g as __pageData,E as default};
+import{_ as i,c as a,o as e,az as n}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/opjywme.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 e(),a("div",null,s[0]||(s[0]=[n("",18)]))}const E=i(p,[["render",l]]);export{g as __pageData,E as default};
diff --git a/previews/PR259/assets/source_methods_geom_relations_overlaps.md.0TWszI_z.js b/previews/PR259/assets/source_methods_geom_relations_overlaps.md.DE3_JRNZ.js
similarity index 99%
rename from previews/PR259/assets/source_methods_geom_relations_overlaps.md.0TWszI_z.js
rename to previews/PR259/assets/source_methods_geom_relations_overlaps.md.DE3_JRNZ.js
index 62e51e2da..2c70dd2ef 100644
--- a/previews/PR259/assets/source_methods_geom_relations_overlaps.md.0TWszI_z.js
+++ b/previews/PR259/assets/source_methods_geom_relations_overlaps.md.DE3_JRNZ.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const p="/GeometryOps.jl/previews/PR259/assets/peeyyat.CgiryX2p.png",o=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/overlaps.md"};function e(h,s,k,r,d,g){return n(),a("div",null,s[0]||(s[0]=[l(`

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,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const p="/GeometryOps.jl/previews/PR259/assets/drsvfbl.CgiryX2p.png",o=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/overlaps.md"};function e(h,s,k,r,d,g){return n(),a("div",null,s[0]||(s[0]=[l(`

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
diff --git a/previews/PR259/assets/source_methods_geom_relations_overlaps.md.0TWszI_z.lean.js b/previews/PR259/assets/source_methods_geom_relations_overlaps.md.DE3_JRNZ.lean.js
similarity index 88%
rename from previews/PR259/assets/source_methods_geom_relations_overlaps.md.0TWszI_z.lean.js
rename to previews/PR259/assets/source_methods_geom_relations_overlaps.md.DE3_JRNZ.lean.js
index 39fd7622f..400488e83 100644
--- a/previews/PR259/assets/source_methods_geom_relations_overlaps.md.0TWszI_z.lean.js
+++ b/previews/PR259/assets/source_methods_geom_relations_overlaps.md.DE3_JRNZ.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const p="/GeometryOps.jl/previews/PR259/assets/peeyyat.CgiryX2p.png",o=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/overlaps.md"};function e(h,s,k,r,d,g){return n(),a("div",null,s[0]||(s[0]=[l("",37)]))}const E=i(t,[["render",e]]);export{o as __pageData,E as default};
+import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const p="/GeometryOps.jl/previews/PR259/assets/drsvfbl.CgiryX2p.png",o=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/overlaps.md"};function e(h,s,k,r,d,g){return n(),a("div",null,s[0]||(s[0]=[l("",37)]))}const E=i(t,[["render",e]]);export{o as __pageData,E as default};
diff --git a/previews/PR259/assets/source_methods_geom_relations_touches.md.CWU5CXuI.js b/previews/PR259/assets/source_methods_geom_relations_touches.md.CVRi9dgb.js
similarity index 99%
rename from previews/PR259/assets/source_methods_geom_relations_touches.md.CWU5CXuI.js
rename to previews/PR259/assets/source_methods_geom_relations_touches.md.CVRi9dgb.js
index 747386aa8..c44ff3feb 100644
--- a/previews/PR259/assets/source_methods_geom_relations_touches.md.CWU5CXuI.js
+++ b/previews/PR259/assets/source_methods_geom_relations_touches.md.CVRi9dgb.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const h="/GeometryOps.jl/previews/PR259/assets/dbytsic.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 n(),a("div",null,s[0]||(s[0]=[t(`

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,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const h="/GeometryOps.jl/previews/PR259/assets/nomkzrh.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 n(),a("div",null,s[0]||(s[0]=[t(`

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/PR259/assets/source_methods_geom_relations_touches.md.CWU5CXuI.lean.js b/previews/PR259/assets/source_methods_geom_relations_touches.md.CVRi9dgb.lean.js
similarity index 88%
rename from previews/PR259/assets/source_methods_geom_relations_touches.md.CWU5CXuI.lean.js
rename to previews/PR259/assets/source_methods_geom_relations_touches.md.CVRi9dgb.lean.js
index 3ff7cf80c..baa65e9a1 100644
--- a/previews/PR259/assets/source_methods_geom_relations_touches.md.CWU5CXuI.lean.js
+++ b/previews/PR259/assets/source_methods_geom_relations_touches.md.CVRi9dgb.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const h="/GeometryOps.jl/previews/PR259/assets/dbytsic.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 n(),a("div",null,s[0]||(s[0]=[t("",41)]))}const y=i(l,[["render",e]]);export{o as __pageData,y as default};
+import{_ as i,c as a,o as n,az as t}from"./chunks/framework.mcBEtuSi.js";const h="/GeometryOps.jl/previews/PR259/assets/nomkzrh.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 n(),a("div",null,s[0]||(s[0]=[t("",41)]))}const y=i(l,[["render",e]]);export{o as __pageData,y as default};
diff --git a/previews/PR259/assets/source_methods_geom_relations_within.md.Bg8YPm-m.js b/previews/PR259/assets/source_methods_geom_relations_within.md.TxMgBL2-.js
similarity index 99%
rename from previews/PR259/assets/source_methods_geom_relations_within.md.Bg8YPm-m.js
rename to previews/PR259/assets/source_methods_geom_relations_within.md.TxMgBL2-.js
index 593f3b083..3c8e7b293 100644
--- a/previews/PR259/assets/source_methods_geom_relations_within.md.Bg8YPm-m.js
+++ b/previews/PR259/assets/source_methods_geom_relations_within.md.TxMgBL2-.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/djftybr._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 n(),a("div",null,s[0]||(s[0]=[h(`

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,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/locpohl._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 n(),a("div",null,s[0]||(s[0]=[h(`

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/PR259/assets/source_methods_geom_relations_within.md.Bg8YPm-m.lean.js b/previews/PR259/assets/source_methods_geom_relations_within.md.TxMgBL2-.lean.js
similarity index 88%
rename from previews/PR259/assets/source_methods_geom_relations_within.md.Bg8YPm-m.lean.js
rename to previews/PR259/assets/source_methods_geom_relations_within.md.TxMgBL2-.lean.js
index 7efe3782f..f56810ef9 100644
--- a/previews/PR259/assets/source_methods_geom_relations_within.md.Bg8YPm-m.lean.js
+++ b/previews/PR259/assets/source_methods_geom_relations_within.md.TxMgBL2-.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/djftybr._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 n(),a("div",null,s[0]||(s[0]=[h("",41)]))}const y=i(l,[["render",e]]);export{o as __pageData,y as default};
+import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/locpohl._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 n(),a("div",null,s[0]||(s[0]=[h("",41)]))}const y=i(l,[["render",e]]);export{o as __pageData,y as default};
diff --git a/previews/PR259/assets/source_src_apply.md.CVvCElZR.js b/previews/PR259/assets/source_src_apply.md.Kbhd3sJW.js
similarity index 99%
rename from previews/PR259/assets/source_src_apply.md.CVvCElZR.js
rename to previews/PR259/assets/source_src_apply.md.Kbhd3sJW.js
index adae5a8de..14e39e8ae 100644
--- a/previews/PR259/assets/source_src_apply.md.CVvCElZR.js
+++ b/previews/PR259/assets/source_src_apply.md.Kbhd3sJW.js
@@ -5,7 +5,7 @@ import{_ as h,C as l,c as p,o as k,az as a,j as i,a as t,G as n}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/PR259/assets/source_src_apply.md.CVvCElZR.lean.js b/previews/PR259/assets/source_src_apply.md.Kbhd3sJW.lean.js
similarity index 100%
rename from previews/PR259/assets/source_src_apply.md.CVvCElZR.lean.js
rename to previews/PR259/assets/source_src_apply.md.Kbhd3sJW.lean.js
diff --git a/previews/PR259/assets/source_src_other_primitives.md.dtBRK5Cf.js b/previews/PR259/assets/source_src_other_primitives.md.PuhCqAkV.js
similarity index 99%
rename from previews/PR259/assets/source_src_other_primitives.md.dtBRK5Cf.js
rename to previews/PR259/assets/source_src_other_primitives.md.PuhCqAkV.js
index e21b04fd5..7833e126c 100644
--- a/previews/PR259/assets/source_src_other_primitives.md.dtBRK5Cf.js
+++ b/previews/PR259/assets/source_src_other_primitives.md.PuhCqAkV.js
@@ -1,6 +1,6 @@
 import{_ as e,C as l,c as p,o as k,j as i,az as a,a as t,G as h}from"./chunks/framework.mcBEtuSi.js";const A=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"},[t("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]=t()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=a(`
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]=t()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a(`
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]=t()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=a('
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]=t()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=a('
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]=a(`
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

`,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]=t()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a(`
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]=t()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=a('
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]=t()),h(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=a('
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]=a(`
julia
"""
     unwrap(target::Type{<:AbstractTrait}, obj)
     unwrap(f, target::Type{<:AbstractTrait}, obj)
 
diff --git a/previews/PR259/assets/source_src_other_primitives.md.dtBRK5Cf.lean.js b/previews/PR259/assets/source_src_other_primitives.md.PuhCqAkV.lean.js
similarity index 100%
rename from previews/PR259/assets/source_src_other_primitives.md.dtBRK5Cf.lean.js
rename to previews/PR259/assets/source_src_other_primitives.md.PuhCqAkV.lean.js
diff --git a/previews/PR259/assets/source_transformations_correction_geometry_correction.md.CJuqib7t.js b/previews/PR259/assets/source_transformations_correction_geometry_correction.md.Dl_s_MAo.js
similarity index 76%
rename from previews/PR259/assets/source_transformations_correction_geometry_correction.md.CJuqib7t.js
rename to previews/PR259/assets/source_transformations_correction_geometry_correction.md.Dl_s_MAo.js
index 9fec08da7..777ecac19 100644
--- a/previews/PR259/assets/source_transformations_correction_geometry_correction.md.CJuqib7t.js
+++ b/previews/PR259/assets/source_transformations_correction_geometry_correction.md.Dl_s_MAo.js
@@ -1,4 +1,4 @@
-import{_ as r,C as o,c as l,o as p,az as e,j as i,a as t,G as n}from"./chunks/framework.mcBEtuSi.js";const _=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:""},y={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""};function m(E,s,u,C,F,b){const a=o("Badge");return p(),l("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,c as l,o as p,az as e,j as i,a as t,G as n}from"./chunks/framework.mcBEtuSi.js";const _=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,C,F,b){const a=o("Badge");return p(),l("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,c as l,o as p,az as e,j as i,a as t,G as n}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",y,[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",d,[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 T=r(h,[["render",m]]);export{_ as __pageData,T 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 T=r(h,[["render",m]]);export{_ as __pageData,T as default}; diff --git a/previews/PR259/assets/source_transformations_correction_geometry_correction.md.CJuqib7t.lean.js b/previews/PR259/assets/source_transformations_correction_geometry_correction.md.Dl_s_MAo.lean.js similarity index 85% rename from previews/PR259/assets/source_transformations_correction_geometry_correction.md.CJuqib7t.lean.js rename to previews/PR259/assets/source_transformations_correction_geometry_correction.md.Dl_s_MAo.lean.js index 23cb733cf..fd7e9ac20 100644 --- a/previews/PR259/assets/source_transformations_correction_geometry_correction.md.CJuqib7t.lean.js +++ b/previews/PR259/assets/source_transformations_correction_geometry_correction.md.Dl_s_MAo.lean.js @@ -1 +1 @@ -import{_ as r,C as o,c as l,o as p,az as e,j as i,a as t,G as n}from"./chunks/framework.mcBEtuSi.js";const _=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:""},y={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""};function m(E,s,u,C,F,b){const a=o("Badge");return p(),l("div",null,[s[15]||(s[15]=e("",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("",5))]),s[16]||(s[16]=e("",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("",5))]),i("details",y,[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("",3))]),i("details",d,[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("",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("",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 T=r(h,[["render",m]]);export{_ as __pageData,T as default}; +import{_ as r,C as o,c as l,o as p,az as e,j as i,a as t,G as n}from"./chunks/framework.mcBEtuSi.js";const _=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,C,F,b){const a=o("Badge");return p(),l("div",null,[s[15]||(s[15]=e("",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("",5))]),s[16]||(s[16]=e("",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("",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("",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("",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("",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 T=r(h,[["render",m]]);export{_ as __pageData,T as default}; diff --git a/previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.D3Q-1by7.js b/previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.Kc5GxVrF.js similarity index 93% rename from previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.D3Q-1by7.js rename to previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.Kc5GxVrF.js index 1be5b3779..12255ca17 100644 --- a/previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.D3Q-1by7.js +++ b/previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.Kc5GxVrF.js @@ -1,7 +1,7 @@ -import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const d=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),h={name:"source/transformations/correction/intersecting_polygons.md"};function t(p,s,k,e,r,E){return n(),a("div",null,s[0]||(s[0]=[l(`

Intersecting Polygons

julia
export UnionIntersectingPolygons

If the sub-polygons of a multipolygon are intersecting, this makes them invalid according to specification. Each sub-polygon of a multipolygon being disjoint (other than by a single point) is a requirement for a valid multipolygon. However, different libraries may achieve this in different ways.

For example, taking the union of all sub-polygons of a multipolygon will create a new multipolygon where each sub-polygon is disjoint. This can be done with the UnionIntersectingPolygons correction.

The reason this operates on a multipolygon level is that it is easy for users to mistakenly create multipolygon's that overlap, which can then be detrimental to polygon clipping performance and even create wrong answers.

Example

Multipolygon providers may not check that the polygons making up their multipolygons do not intersect, which makes them invalid according to the specification.

For example, the following multipolygon is not valid:

julia
import GeoInterface as GI
+import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const d=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),p={name:"source/transformations/correction/intersecting_polygons.md"};function h(t,s,k,e,r,E){return n(),a("div",null,s[0]||(s[0]=[l(`

Intersecting Polygons

julia
export UnionIntersectingPolygons

If the sub-polygons of a multipolygon are intersecting, this makes them invalid according to specification. Each sub-polygon of a multipolygon being disjoint (other than by a single point) is a requirement for a valid multipolygon. However, different libraries may achieve this in different ways.

For example, taking the union of all sub-polygons of a multipolygon will create a new multipolygon where each sub-polygon is disjoint. This can be done with the UnionIntersectingPolygons correction.

The reason this operates on a multipolygon level is that it is easy for users to mistakenly create multipolygon's that overlap, which can then be detrimental to polygon clipping performance and even create wrong answers.

Example

Multipolygon providers may not check that the polygons making up their multipolygons do not intersect, which makes them invalid according to the specification.

For example, the following multipolygon is not valid:

julia
import GeoInterface as GI
 polygon = GI.Polygon([[(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)]])
-multipolygon = GI.MultiPolygon([polygon, polygon])
GeoInterface.Wrappers.MultiPolygon{false, false}([GeoInterface.Wrappers.Polygon([GeoInterface.Wrappers.LinearRing([(0.0, 0.0), … (3) … , (0.0, 0.0)])]), GeoInterface.Wrappers.Polygon([GeoInterface.Wrappers.LinearRing([(0.0, 0.0), … (3) … , (0.0, 0.0)])])])

given that the two sub-polygons are the exact same shape.

julia
import GeometryOps as GO
-GO.fix(multipolygon, corrections = [GO.UnionIntersectingPolygons()])
GeoInterface.Wrappers.MultiPolygon{false, false}([GeoInterface.Wrappers.Polygon([GeoInterface.Wrappers.LinearRing([(0.0, 0.0), … (3) … , (0.0, 0.0)])])])

You can see that the the multipolygon now only contains one sub-polygon, rather than the two identical ones provided.

Implementation

julia
"""
+multipolygon = GI.MultiPolygon([polygon, polygon])
GeoInterface.Wrappers.MultiPolygon{false, false}([GeoInterface.Wrappers.Polygon([GeoInterface.Wrappers.LinearRing([(0.0, 0.0), … (3) … , (0.0, 0.0)])]), GeoInterface.Wrappers.Polygon([GeoInterface.Wrappers.LinearRing([(0.0, 0.0), … (3) … , (0.0, 0.0)])])])

given that the two sub-polygons are the exact same shape.

@example
import GeometryOps as GO
+GO.fix(multipolygon, corrections = [GO.UnionIntersectingPolygons()])

You can see that the the multipolygon now only contains one sub-polygon, rather than the two identical ones provided.

Implementation

julia
"""
     UnionIntersectingPolygons() <: GeometryCorrection
 
 This correction ensures that the polygon's included in a multipolygon aren't intersecting.
@@ -94,4 +94,4 @@ import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const d
         keepat!(diff_multipoly.geom, keep_idx)
     end
     return diff_multipoly
-end

This page was generated using Literate.jl.

`,22)]))}const y=i(h,[["render",t]]);export{d as __pageData,y as default}; +end

This page was generated using Literate.jl.

`,21)]))}const y=i(p,[["render",h]]);export{d as __pageData,y as default}; diff --git a/previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.D3Q-1by7.lean.js b/previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.Kc5GxVrF.lean.js similarity index 65% rename from previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.D3Q-1by7.lean.js rename to previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.Kc5GxVrF.lean.js index 21de63624..1e27e9c06 100644 --- a/previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.D3Q-1by7.lean.js +++ b/previews/PR259/assets/source_transformations_correction_intersecting_polygons.md.Kc5GxVrF.lean.js @@ -1 +1 @@ -import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const d=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),h={name:"source/transformations/correction/intersecting_polygons.md"};function t(p,s,k,e,r,E){return n(),a("div",null,s[0]||(s[0]=[l("",22)]))}const y=i(h,[["render",t]]);export{d as __pageData,y as default}; +import{_ as i,c as a,o as n,az as l}from"./chunks/framework.mcBEtuSi.js";const d=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),p={name:"source/transformations/correction/intersecting_polygons.md"};function h(t,s,k,e,r,E){return n(),a("div",null,s[0]||(s[0]=[l("",21)]))}const y=i(p,[["render",h]]);export{d as __pageData,y as default}; diff --git a/previews/PR259/assets/source_transformations_segmentize.md.BSWtZ6uM.js b/previews/PR259/assets/source_transformations_segmentize.md.cTDQnynI.js similarity index 99% rename from previews/PR259/assets/source_transformations_segmentize.md.BSWtZ6uM.js rename to previews/PR259/assets/source_transformations_segmentize.md.cTDQnynI.js index 2efb8f093..0e88eabd7 100644 --- a/previews/PR259/assets/source_transformations_segmentize.md.BSWtZ6uM.js +++ b/previews/PR259/assets/source_transformations_segmentize.md.cTDQnynI.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/oryldqg.D5-bot8v.png",l="/GeometryOps.jl/previews/PR259/assets/gektpcp.BaImpRtB.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 n(),a("div",null,s[0]||(s[0]=[h(`

Segmentize

julia
export segmentize
+import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/fytoaiu.D5-bot8v.png",l="/GeometryOps.jl/previews/PR259/assets/pevsyum.BQvae1s1.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 n(),a("div",null,s[0]||(s[0]=[h(`

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/PR259/assets/source_transformations_segmentize.md.BSWtZ6uM.lean.js b/previews/PR259/assets/source_transformations_segmentize.md.cTDQnynI.lean.js
similarity index 68%
rename from previews/PR259/assets/source_transformations_segmentize.md.BSWtZ6uM.lean.js
rename to previews/PR259/assets/source_transformations_segmentize.md.cTDQnynI.lean.js
index 0994ec429..1378420f3 100644
--- a/previews/PR259/assets/source_transformations_segmentize.md.BSWtZ6uM.lean.js
+++ b/previews/PR259/assets/source_transformations_segmentize.md.cTDQnynI.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/oryldqg.D5-bot8v.png",l="/GeometryOps.jl/previews/PR259/assets/gektpcp.BaImpRtB.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 n(),a("div",null,s[0]||(s[0]=[h("",39)]))}const F=i(k,[["render",e]]);export{o as __pageData,F as default};
+import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/fytoaiu.D5-bot8v.png",l="/GeometryOps.jl/previews/PR259/assets/pevsyum.BQvae1s1.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 n(),a("div",null,s[0]||(s[0]=[h("",39)]))}const F=i(k,[["render",e]]);export{o as __pageData,F as default};
diff --git a/previews/PR259/assets/source_transformations_simplify.md.CGLyBXhr.js b/previews/PR259/assets/source_transformations_simplify.md.7t6xu-a1.js
similarity index 99%
rename from previews/PR259/assets/source_transformations_simplify.md.CGLyBXhr.js
rename to previews/PR259/assets/source_transformations_simplify.md.7t6xu-a1.js
index 25c04fc88..7549ee417 100644
--- a/previews/PR259/assets/source_transformations_simplify.md.CGLyBXhr.js
+++ b/previews/PR259/assets/source_transformations_simplify.md.7t6xu-a1.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/zmkscox.Bglvb-jp.png",k="/GeometryOps.jl/previews/PR259/assets/cxxsirk.B94PsR1K.png",t="/GeometryOps.jl/previews/PR259/assets/lratuul.dWQJO9xl.png",p="/GeometryOps.jl/previews/PR259/assets/hkdryle.Bv9yzSwF.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 n(),a("div",null,s[0]||(s[0]=[h(`

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,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/jgenehz.Bglvb-jp.png",k="/GeometryOps.jl/previews/PR259/assets/wnsinzo.B94PsR1K.png",t="/GeometryOps.jl/previews/PR259/assets/ltpuwqf.BJOgYTTM.png",p="/GeometryOps.jl/previews/PR259/assets/xikmlzv.D2HA1hzZ.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 n(),a("div",null,s[0]||(s[0]=[h(`

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/PR259/assets/source_transformations_simplify.md.CGLyBXhr.lean.js b/previews/PR259/assets/source_transformations_simplify.md.7t6xu-a1.lean.js
similarity index 56%
rename from previews/PR259/assets/source_transformations_simplify.md.CGLyBXhr.lean.js
rename to previews/PR259/assets/source_transformations_simplify.md.7t6xu-a1.lean.js
index a36b7b221..cf8256d5c 100644
--- a/previews/PR259/assets/source_transformations_simplify.md.CGLyBXhr.lean.js
+++ b/previews/PR259/assets/source_transformations_simplify.md.7t6xu-a1.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/zmkscox.Bglvb-jp.png",k="/GeometryOps.jl/previews/PR259/assets/cxxsirk.B94PsR1K.png",t="/GeometryOps.jl/previews/PR259/assets/lratuul.dWQJO9xl.png",p="/GeometryOps.jl/previews/PR259/assets/hkdryle.Bv9yzSwF.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 n(),a("div",null,s[0]||(s[0]=[h("",71)]))}const C=i(e,[["render",E]]);export{c as __pageData,C as default};
+import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const l="/GeometryOps.jl/previews/PR259/assets/jgenehz.Bglvb-jp.png",k="/GeometryOps.jl/previews/PR259/assets/wnsinzo.B94PsR1K.png",t="/GeometryOps.jl/previews/PR259/assets/ltpuwqf.BJOgYTTM.png",p="/GeometryOps.jl/previews/PR259/assets/xikmlzv.D2HA1hzZ.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 n(),a("div",null,s[0]||(s[0]=[h("",71)]))}const C=i(e,[["render",E]]);export{c as __pageData,C as default};
diff --git a/previews/PR259/assets/source_utils_STRDualQuery.md.CdYCwv_Y.js b/previews/PR259/assets/source_utils_STRDualQuery.md.BtZT1ewz.js
similarity index 93%
rename from previews/PR259/assets/source_utils_STRDualQuery.md.CdYCwv_Y.js
rename to previews/PR259/assets/source_utils_STRDualQuery.md.BtZT1ewz.js
index aed7701c4..53799affc 100644
--- a/previews/PR259/assets/source_utils_STRDualQuery.md.CdYCwv_Y.js
+++ b/previews/PR259/assets/source_utils_STRDualQuery.md.BtZT1ewz.js
@@ -15,8 +15,6 @@ import{_ as a,c as i,o as n,az as e}from"./chunks/framework.mcBEtuSi.js";const o
 import GeoInterface as GI
 
 "helper function to get the extent of any STR node, since leaf nodes don't store global extent."
-node_extent(node::STRNode) = node.extent
-node_extent(node::STRLeafNode) = reduce(Extents.union, node.extents)
 
 """
     maybe_overlapping_geoms_and_query_lists_in_order(tree_a::STRtree, tree_b::STRtree, edges_a::Vector{<: GI.Line}, edges_b::Vector{<: GI.Line})
@@ -57,7 +55,7 @@ import{_ as a,c as i,o as n,az as e}from"./chunks/framework.mcBEtuSi.js";const o
     node_b::Union{STRNode,STRLeafNode},
     edges_a::Vector{<: GI.Line},
     edges_b::Vector{<: GI.Line}
-)

Early exit if bounding boxes don't overlap

julia
    if !Extents.intersects(node_extent(node_a), node_extent(node_b))
+)

Early exit if bounding boxes don't overlap

julia
    if !Extents.intersects(GI.extent(node_a), GI.extent(node_b))
         return
     end

Case 1: Both nodes are leaves

julia
    if node_a isa STRLeafNode && node_b isa STRLeafNode
         for idx_a in node_a.indices
@@ -157,4 +155,4 @@ import{_ as a,c as i,o as n,az as e}from"./chunks/framework.mcBEtuSi.js";const o
     # Test empty tree with empty tree
     result3 = maybe_overlapping_geoms_and_query_lists_in_order(empty_tree, empty_tree)
     @test isempty(result3)
-end

end


This page was generated using Literate.jl.

`,25)]))}const E=a(p,[["render",l]]);export{o as __pageData,E as default}; +end

end


This page was generated using Literate.jl.

`,25)]))}const c=a(p,[["render",l]]);export{o as __pageData,c as default}; diff --git a/previews/PR259/assets/source_utils_STRDualQuery.md.CdYCwv_Y.lean.js b/previews/PR259/assets/source_utils_STRDualQuery.md.BtZT1ewz.lean.js similarity index 72% rename from previews/PR259/assets/source_utils_STRDualQuery.md.CdYCwv_Y.lean.js rename to previews/PR259/assets/source_utils_STRDualQuery.md.BtZT1ewz.lean.js index 9be29fdbd..065859b45 100644 --- a/previews/PR259/assets/source_utils_STRDualQuery.md.CdYCwv_Y.lean.js +++ b/previews/PR259/assets/source_utils_STRDualQuery.md.BtZT1ewz.lean.js @@ -1 +1 @@ -import{_ as a,c as i,o as n,az as e}from"./chunks/framework.mcBEtuSi.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils/STRDualQuery.md","filePath":"source/utils/STRDualQuery.md","lastUpdated":null}'),p={name:"source/utils/STRDualQuery.md"};function l(t,s,h,k,r,d){return n(),i("div",null,s[0]||(s[0]=[e("",25)]))}const E=a(p,[["render",l]]);export{o as __pageData,E as default}; +import{_ as a,c as i,o as n,az as e}from"./chunks/framework.mcBEtuSi.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils/STRDualQuery.md","filePath":"source/utils/STRDualQuery.md","lastUpdated":null}'),p={name:"source/utils/STRDualQuery.md"};function l(t,s,h,k,r,d){return n(),i("div",null,s[0]||(s[0]=[e("",25)]))}const c=a(p,[["render",l]]);export{o as __pageData,c as default}; diff --git a/previews/PR259/assets/mzfaxpf.Cb0_DiYE.png b/previews/PR259/assets/tdtjlfv.Cb0_DiYE.png similarity index 100% rename from previews/PR259/assets/mzfaxpf.Cb0_DiYE.png rename to previews/PR259/assets/tdtjlfv.Cb0_DiYE.png diff --git a/previews/PR259/assets/tutorials_creating_geometry.md.cmMoMkYm.js b/previews/PR259/assets/tutorials_creating_geometry.md.KKAr36jr.js similarity index 99% rename from previews/PR259/assets/tutorials_creating_geometry.md.cmMoMkYm.js rename to previews/PR259/assets/tutorials_creating_geometry.md.KKAr36jr.js index 642205884..510c59f1b 100644 --- a/previews/PR259/assets/tutorials_creating_geometry.md.cmMoMkYm.js +++ b/previews/PR259/assets/tutorials_creating_geometry.md.KKAr36jr.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,o as t,az as e}from"./chunks/framework.mcBEtuSi.js";const n="/GeometryOps.jl/previews/PR259/assets/gndpngj.Dz86q2IX.png",h="/GeometryOps.jl/previews/PR259/assets/eszdrmb.Cx40vhB3.png",p="/GeometryOps.jl/previews/PR259/assets/hfcyqzz.0OJvb21A.png",l="/GeometryOps.jl/previews/PR259/assets/lpkchxq.DaovVbE6.png",k="/GeometryOps.jl/previews/PR259/assets/twfeprn.B9NpLJr_.png",r="/GeometryOps.jl/previews/PR259/assets/vwpdddx.CG4dr3Lx.png",d="/GeometryOps.jl/previews/PR259/assets/rifctxq.3sfpQl2i.png",o="/GeometryOps.jl/previews/PR259/assets/mdypbur.Dab1-ETk.png",g="/GeometryOps.jl/previews/PR259/assets/fhasrqb.C4--srcf.png",E="/GeometryOps.jl/previews/PR259/assets/opybygz.niLCt72m.png",c="/GeometryOps.jl/previews/PR259/assets/czstwla.DuRAWgH5.png",D=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 u(F,s,C,m,b,v){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,o as t,az as e}from"./chunks/framework.mcBEtuSi.js";const n="/GeometryOps.jl/previews/PR259/assets/kxdvzuc.Dz86q2IX.png",h="/GeometryOps.jl/previews/PR259/assets/wtrbvkh.Cx40vhB3.png",p="/GeometryOps.jl/previews/PR259/assets/udwcilo.0OJvb21A.png",l="/GeometryOps.jl/previews/PR259/assets/gahyaod.DaovVbE6.png",k="/GeometryOps.jl/previews/PR259/assets/wgdatcw.B9NpLJr_.png",r="/GeometryOps.jl/previews/PR259/assets/xnnvwmq.CG4dr3Lx.png",d="/GeometryOps.jl/previews/PR259/assets/mvxalhg.3sfpQl2i.png",o="/GeometryOps.jl/previews/PR259/assets/akxuysk.Dab1-ETk.png",g="/GeometryOps.jl/previews/PR259/assets/zhgkkba.C4--srcf.png",E="/GeometryOps.jl/previews/PR259/assets/irpmxop.niLCt72m.png",c="/GeometryOps.jl/previews/PR259/assets/jfdzwod.DuRAWgH5.png",D=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 u(F,s,C,m,b,v){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
diff --git a/previews/PR259/assets/tutorials_creating_geometry.md.KKAr36jr.lean.js b/previews/PR259/assets/tutorials_creating_geometry.md.KKAr36jr.lean.js
new file mode 100644
index 000000000..2e2e1452b
--- /dev/null
+++ b/previews/PR259/assets/tutorials_creating_geometry.md.KKAr36jr.lean.js
@@ -0,0 +1 @@
+import{_ as i,c as a,o as t,az as e}from"./chunks/framework.mcBEtuSi.js";const n="/GeometryOps.jl/previews/PR259/assets/kxdvzuc.Dz86q2IX.png",h="/GeometryOps.jl/previews/PR259/assets/wtrbvkh.Cx40vhB3.png",p="/GeometryOps.jl/previews/PR259/assets/udwcilo.0OJvb21A.png",l="/GeometryOps.jl/previews/PR259/assets/gahyaod.DaovVbE6.png",k="/GeometryOps.jl/previews/PR259/assets/wgdatcw.B9NpLJr_.png",r="/GeometryOps.jl/previews/PR259/assets/xnnvwmq.CG4dr3Lx.png",d="/GeometryOps.jl/previews/PR259/assets/mvxalhg.3sfpQl2i.png",o="/GeometryOps.jl/previews/PR259/assets/akxuysk.Dab1-ETk.png",g="/GeometryOps.jl/previews/PR259/assets/zhgkkba.C4--srcf.png",E="/GeometryOps.jl/previews/PR259/assets/irpmxop.niLCt72m.png",c="/GeometryOps.jl/previews/PR259/assets/jfdzwod.DuRAWgH5.png",D=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 u(F,s,C,m,b,v){return t(),a("div",null,s[0]||(s[0]=[e("",120)]))}const A=i(y,[["render",u]]);export{D as __pageData,A as default};
diff --git a/previews/PR259/assets/tutorials_creating_geometry.md.cmMoMkYm.lean.js b/previews/PR259/assets/tutorials_creating_geometry.md.cmMoMkYm.lean.js
deleted file mode 100644
index 3e24efcdc..000000000
--- a/previews/PR259/assets/tutorials_creating_geometry.md.cmMoMkYm.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as i,c as a,o as t,az as e}from"./chunks/framework.mcBEtuSi.js";const n="/GeometryOps.jl/previews/PR259/assets/gndpngj.Dz86q2IX.png",h="/GeometryOps.jl/previews/PR259/assets/eszdrmb.Cx40vhB3.png",p="/GeometryOps.jl/previews/PR259/assets/hfcyqzz.0OJvb21A.png",l="/GeometryOps.jl/previews/PR259/assets/lpkchxq.DaovVbE6.png",k="/GeometryOps.jl/previews/PR259/assets/twfeprn.B9NpLJr_.png",r="/GeometryOps.jl/previews/PR259/assets/vwpdddx.CG4dr3Lx.png",d="/GeometryOps.jl/previews/PR259/assets/rifctxq.3sfpQl2i.png",o="/GeometryOps.jl/previews/PR259/assets/mdypbur.Dab1-ETk.png",g="/GeometryOps.jl/previews/PR259/assets/fhasrqb.C4--srcf.png",E="/GeometryOps.jl/previews/PR259/assets/opybygz.niLCt72m.png",c="/GeometryOps.jl/previews/PR259/assets/czstwla.DuRAWgH5.png",D=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 u(F,s,C,m,b,v){return t(),a("div",null,s[0]||(s[0]=[e("",120)]))}const A=i(y,[["render",u]]);export{D as __pageData,A as default};
diff --git a/previews/PR259/assets/tutorials_geodesic_paths.md.Bi6AfT8k.js b/previews/PR259/assets/tutorials_geodesic_paths.md.DVzoewbj.js
similarity index 97%
rename from previews/PR259/assets/tutorials_geodesic_paths.md.Bi6AfT8k.js
rename to previews/PR259/assets/tutorials_geodesic_paths.md.DVzoewbj.js
index dff17b34a..54ae28a7f 100644
--- a/previews/PR259/assets/tutorials_geodesic_paths.md.Bi6AfT8k.js
+++ b/previews/PR259/assets/tutorials_geodesic_paths.md.DVzoewbj.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/tyqfueu.DI6pFDzZ.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(e,s,l,E,r,d){return n(),a("div",null,s[0]||(s[0]=[h(`

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,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/julymcg.DI6pFDzZ.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 n(),a("div",null,s[0]||(s[0]=[h(`

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/PR259/assets/tutorials_geodesic_paths.md.Bi6AfT8k.lean.js b/previews/PR259/assets/tutorials_geodesic_paths.md.DVzoewbj.lean.js
similarity index 75%
rename from previews/PR259/assets/tutorials_geodesic_paths.md.Bi6AfT8k.lean.js
rename to previews/PR259/assets/tutorials_geodesic_paths.md.DVzoewbj.lean.js
index 1059b24c1..37629b306 100644
--- a/previews/PR259/assets/tutorials_geodesic_paths.md.Bi6AfT8k.lean.js
+++ b/previews/PR259/assets/tutorials_geodesic_paths.md.DVzoewbj.lean.js
@@ -1 +1 @@
-import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/tyqfueu.DI6pFDzZ.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(e,s,l,E,r,d){return n(),a("div",null,s[0]||(s[0]=[h("",4)]))}const y=i(p,[["render",k]]);export{o as __pageData,y as default};
+import{_ as i,c as a,o as n,az as h}from"./chunks/framework.mcBEtuSi.js";const t="/GeometryOps.jl/previews/PR259/assets/julymcg.DI6pFDzZ.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 n(),a("div",null,s[0]||(s[0]=[h("",4)]))}const y=i(p,[["render",k]]);export{o as __pageData,y as default};
diff --git a/previews/PR259/assets/tutorials_spatial_joins.md.BhkCpzpU.js b/previews/PR259/assets/tutorials_spatial_joins.md.C5qn5hXN.js
similarity index 99%
rename from previews/PR259/assets/tutorials_spatial_joins.md.BhkCpzpU.js
rename to previews/PR259/assets/tutorials_spatial_joins.md.C5qn5hXN.js
index 151cce1db..377eb8b7d 100644
--- a/previews/PR259/assets/tutorials_spatial_joins.md.BhkCpzpU.js
+++ b/previews/PR259/assets/tutorials_spatial_joins.md.C5qn5hXN.js
@@ -1,4 +1,4 @@
-import{_ as l,c as t,o as n,j as i,az as h,a}from"./chunks/framework.mcBEtuSi.js";const e="/GeometryOps.jl/previews/PR259/assets/orziclx.3UVIT8DR.png",p="/GeometryOps.jl/previews/PR259/assets/ehpuvwt.CSAMkaNh.png",k="/GeometryOps.jl/previews/PR259/assets/lxudkwo.ClxMIRwN.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 n(),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,[(n(),t("svg",d,s[0]||(s[0]=[h('',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]=h(`

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,o as n,j as i,az as h,a}from"./chunks/framework.mcBEtuSi.js";const e="/GeometryOps.jl/previews/PR259/assets/izbsurh.3UVIT8DR.png",p="/GeometryOps.jl/previews/PR259/assets/hbovccs.Ooo070yi.png",k="/GeometryOps.jl/previews/PR259/assets/lwksvhj.Cb9ft44q.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 n(),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,[(n(),t("svg",d,s[0]||(s[0]=[h('',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]=h(`

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/PR259/assets/tutorials_spatial_joins.md.BhkCpzpU.lean.js b/previews/PR259/assets/tutorials_spatial_joins.md.C5qn5hXN.lean.js
similarity index 92%
rename from previews/PR259/assets/tutorials_spatial_joins.md.BhkCpzpU.lean.js
rename to previews/PR259/assets/tutorials_spatial_joins.md.C5qn5hXN.lean.js
index 35ad51bfb..c1d769108 100644
--- a/previews/PR259/assets/tutorials_spatial_joins.md.BhkCpzpU.lean.js
+++ b/previews/PR259/assets/tutorials_spatial_joins.md.C5qn5hXN.lean.js
@@ -1 +1 @@
-import{_ as l,c as t,o as n,j as i,az as h,a}from"./chunks/framework.mcBEtuSi.js";const e="/GeometryOps.jl/previews/PR259/assets/orziclx.3UVIT8DR.png",p="/GeometryOps.jl/previews/PR259/assets/ehpuvwt.CSAMkaNh.png",k="/GeometryOps.jl/previews/PR259/assets/lxudkwo.ClxMIRwN.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 n(),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,[(n(),t("svg",d,s[0]||(s[0]=[h("",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]=h("",37))])}const T=l(r,[["render",o]]);export{C as __pageData,T as default};
+import{_ as l,c as t,o as n,j as i,az as h,a}from"./chunks/framework.mcBEtuSi.js";const e="/GeometryOps.jl/previews/PR259/assets/izbsurh.3UVIT8DR.png",p="/GeometryOps.jl/previews/PR259/assets/hbovccs.Ooo070yi.png",k="/GeometryOps.jl/previews/PR259/assets/lwksvhj.Cb9ft44q.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 n(),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,[(n(),t("svg",d,s[0]||(s[0]=[h("",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]=h("",37))])}const T=l(r,[["render",o]]);export{C as __pageData,T as default};
diff --git a/previews/PR259/assets/hfcyqzz.0OJvb21A.png b/previews/PR259/assets/udwcilo.0OJvb21A.png
similarity index 100%
rename from previews/PR259/assets/hfcyqzz.0OJvb21A.png
rename to previews/PR259/assets/udwcilo.0OJvb21A.png
diff --git a/previews/PR259/assets/twfeprn.B9NpLJr_.png b/previews/PR259/assets/wgdatcw.B9NpLJr_.png
similarity index 100%
rename from previews/PR259/assets/twfeprn.B9NpLJr_.png
rename to previews/PR259/assets/wgdatcw.B9NpLJr_.png
diff --git a/previews/PR259/assets/cxxsirk.B94PsR1K.png b/previews/PR259/assets/wnsinzo.B94PsR1K.png
similarity index 100%
rename from previews/PR259/assets/cxxsirk.B94PsR1K.png
rename to previews/PR259/assets/wnsinzo.B94PsR1K.png
diff --git a/previews/PR259/assets/eszdrmb.Cx40vhB3.png b/previews/PR259/assets/wtrbvkh.Cx40vhB3.png
similarity index 100%
rename from previews/PR259/assets/eszdrmb.Cx40vhB3.png
rename to previews/PR259/assets/wtrbvkh.Cx40vhB3.png
diff --git a/previews/PR259/assets/xikmlzv.D2HA1hzZ.png b/previews/PR259/assets/xikmlzv.D2HA1hzZ.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1567ad6f7181202110e69c70ccdcfdf4a69672f
GIT binary patch
literal 63890
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%0AR5hauhYlV*aNxjD
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
z
zHx#G@^-O4$G+N9HMQX+_zp9w1oVd@t-@ajdn
zHa~U@2p)j6W?!QsBTwIy&O_cPBVYc5a`$P@ejwK0}n%>L4~|nB~PrxM}~cF
ze;rU}lu5{rtg%teg@9n(MNOEwagYq<4dXtXW%9eMX%$4<||2DfKb
zQJwL69=q35;e`a#YrLjB-Pt@SXd-@j(buu;{HYFZj><1mAp~bWq;D
z`S8J;u4+^cyo!8O6wZ6QGN`Hft=b-JD=qV%F-quhh%jHRnsRh{@RjeQ9<}x+LBcf*
z8Q#oJE%nsKm4$j8pYG2y#xBHC+j_KRY}s=xbLsb6_ERmQb}iorj&VwBrE-?vS{E!v
z4C#b{DA$-swMns<@5`fmY6gFIXT87rA>;d;sv>Usv{CZmXm7z-bq{sL7m1XWV4EFX
zZT4KlC)NdX)ILf(oO&gnjh{sIP38Tjzzv(GR!S$Qo*eDiTFb~dVw~4}VEu=?PA#(O
z512S{*z%PMwv>FYxYpY}dKn%uqfP;~lV~}}yVW4*^
zTg`WIYJJt}@{coTp4b}`q52=C`N{0kvg(|nFJXD+A`R+WrIIM+|6yiwHBD$M>K>_E
z79T80cOQ;?bLsbvWnHt5C7Oy5`8H%1cY4!z{
zPMye_9N1f-C$rf>x<2Mbk?wS5qL&pbQt1~qzBon|ydLXm#98V@@`G<`3>S8q$L1cS
zAWyHCVtY_zV;%0`YP62Za-PrG&<%r7{ZEU&^{7&bO~Si-zzBQNogh09y1XP?{*QhXh(`pd`nmh|?YAM@rCfWfWO-{Vw!6dYsG6$~hwFvf{ISZ>+#u4`
z+~4y@=kF(B%9Dh<9orZe`Ce66OG(=!VAhN8>3Z{PUgP9J>+zh-R=0dn``*Q8a<=eB
zNSy_3Bw`>(^rdJxzSl%~Uw&VId}XZf_M0DuGaHsW+Pp60HgZ#u9x<^EE{FO{){Ol&
z&eJLI-gI^?l06(ivhz?*<)OZnMmnC_AI7l6DiEcaW3S@?wc=Z-i
ztkeLN*qee#RN7N8M^qF6+&az%rxjJO7cqM?`+aLC1Y3j$ZYU)E)T|$bZ$U-E(E#um
zrymt5hX|=^VVtN)oWwsv)_&_w{4*Qdn=1G`&AV@CSJ#0IHu^qwg7Uy0IKR9CuKE}R
zJCSCRg)|3blH24Qf%_w=lht{Fz__7m*TzFl)piT(K_TPV*@bTnpyd!bK%}h)tmd*_UNQ+O>}av#iEA@Qpz{e4vPAn3RV2fpJ7-X?jy5+@(04UwfI6V^c2s7i88sk%>Tg$k8a2uPmqeu;#PokW(2_f$u0HJ{
z1IofJcBXZ43s2+*>cIZ_c+JOEE+PP|nJ56sFG;2Z3Q2t@Ly70(AobefwqfoNpwD9PUI_w(K
z4cg8FWd8B|D;3Q0H~dtg1c8#`Q=&#-m{88uK+EL+_%vW|kq*V8FyT9rxz!&(s-HM9
z+?LjXSxmAwtw{or%LNh<$kIqZ%|ONz`Tz4+0Y5iV1v^wJ#@Tp9NSx$VqNkyXYyTdu
zQ!qdHwDIuJ_K_J7|6@Q}$vzGmOkVqK)QoWywWS)QAt?!7iiml>_+`GYD3w4>cM3C0
zDEM7OVrLZz?^E1>2;
zs59qljdw{8LF2(d!Ig#*BEjiK{%*-{6>Pg~EI}yaf?d~NJk@YgRrT=!TTL&o1+=RI
zX{P+`vqO$~-gvvX4fzuoB3Lz`mSAR3n&pls#12P_Sj3%)icIWXDov_@tS!(C;U|N&
zEi~f@6(MD$k$0kob2GOj{qlcr=X80=WXu%%#v33-L3V8k+O|Y9&XHP_pu7ZY3XC}v
z?rjpyKMjH)w6DmM5QUiqCk7@Xz}1EF1ItDII>3$HUu-ni4XiPb|drs
zPzuN5k-G4CA|tOS8|XNcp}Uzg>7koYZ8`VzNa%i=c6Scy%)GZ6Vsc)|&*^_x#v^;Fl2rd;xo%IgW^EB_&1O)|2
zq2T=Kj?=wa8W8r-)b;PC@GQzp(=3mHag3^hFkj?carEc
zR(sKh6~cR{Z8`k|l2?Q>4}+!x1$7Ij{*+VgRn_wors=BWCDTM&_0;l~KBKjP)sIXyjBAgcTHpz;qFYwd(G+4rFB+
z{2a4%%`Q_VhbY{pZxN1Sf>yc%*WF=Z{=Z7=a!McVK!8uas**M{6<
zzZH&Rtm3i45y~#;kqka{a)d1Ji9ONN9c3$o%#d4AH+vM-Rn~;1TFcX3+3K@?ITQa)
z4hHKO!{aIZyyc$MZKu>CT{{ji`!u&>Wu6^=9in5k>&Opigtf@U_+cV15?1*^;&PqbMzO~
zi7h4-An-h*2}NHlH6K4t&-*Y1J^$Q|Qz=9h=4<^>{tb`dU(1!>a
zC*-0}o;;bO7LK#g=5f-x%BQJD)F-YJlol3x;WID@?Lu)-W!`s%=tT%_CtK*H5qliR
z=rL=T!n~jHEXauDOE~``yy)y_Bs6lsH-m`c>e7(>?e1TlIYXceCj6dxMWslb?N_;u
z@ulAYlMLjU;}i?unKlJ~Pp}#Zf&lpw9uMavO(rT^2!%m#Z+<~$`&z6k#NTdLL*`QV
z_kwGqY#yjdZ?8rsj(CBXD9h6b3dQ!H_w1lUWm4)>pdZ(_F^(R7B~>M#A1NgYlvSAI
zJunR0aW2ZQ{JD=2Lf~%(_gqGyqVf;WM49DwNQ#LyhFk%^po4x
zVw{6ixXhER99DXfkp%y_z7)`%6iMd0mIT4
z*}1c#-`U*dJ$wI?jid*kSz*+yw#!HBYl09VhjKO8B|da8LEoQ%k;p_@5D)wpzx3{%
zBx$suX|FH*mh@9ae=$Z77pm6hHQ+l3dpw>m44n%6;#hPM#~KWPDaNO9u$#?C7^*vE
ztIOlis(vTEl~0;*EEKlClEqYq#wcC3Z;C4?lw$8~H$j!7?gsQ7Sx8OGR8v)TF6xd<
zgh=kMDA$H3(1L+h?Ws#y75!N;(jX!9jo|J2FOOKFv}^22QH1VYZYgfGN`~cJs$|s)
zmnnO_52m}l;^dVmlxL3P9-vBV|Mq%*{BC+4O(7d9YR*6{6hv)s4{#&sX@kXpYQ+Uy
zL+j}1Yla4zVAtB0cN7Qe^h&o6)NxkqtQCvDx9$0`m8<=|bKT(nwzmAf6*)$_Ydw!7
zX{x
z6^VsF=@LIyOsROyiiwQ)m8@v(aW6YbM9Wm#4EQ70pr*f=x4qDYB|5vmFRX8JrvEP&
zpmnO_X9FGKI9?4qv}K0^qia$buh-Q{P7l9WA{HyO(Q1vFnYr-+)V1!2_|6Aw8<69h
z_ExI>AKiClEbZ@ny5*)CA1D+;#Pj^88}Cy)vDZm+{_N(wm?q=PensG!3*L+UkE)V^
zKxr+kJ(TAuLM+XvgaW<&f94I}s#nFHrb@74=D%u}7~Zc_YCdq-s&H1gk!7HcwMDo}
zvm!g`uh=Y0!)~SX9%1q1P^
z!qTtUT^N;l+$hae!8pL>wWds_n)H`%A|zK|HDNaW^b_^6z_KVZKs`NmymJk;BvwFq#qZ(5Q-1
zXN--nuAjLh5k%xEw{(NPCM-qs@bnMse0QH8N3)N6x~@&`&MjXoQ#&7|UL3@O{6R7~
zE|9R8hD`f<_*S$cZCr!L*t$)bQg6Bi;sd$tLA6xL>k_rL@>qLGwInItB!ZP!ho$O|
z5fe`@kI_0j3m;}p(>kqf7W_?^Bzfv`P~y?shBrV4;)}!
zornWJFWi&Mr9cClmx}ZrH@KH_?tuaxx!+D3i--$34Tn7Wj%$IATYm0yVAXn{fZra%
zy&QNWv7D(CDD*cJMiq!(Q-veTTA8LMwehmObduc?@xtwvCq-ZB0_haGw?rX9{vw!qcX{P4C_Jc*
z0JV{F;h}=EVA&+6pwk&+x*_)m^xyz9Z_=LNdcFKoONQwNjxyrKEThtZG)
ztWF+}&;`xz3*2U$$2jDZM+$>MqqM~@+rxBN_G?Uu`Onu8RT%9iwuJC0%ac9YyVoX`
z?}PF_5;{ATz)2>faN(iosX}AU+q8--CScN|I1;>3^fB8O>PcOda^ZnO_tthG3+O+{
z@=Epw;$pT?RBkG8?=t{9ow7?z%n5}N5GkZ@`Egagd2Je9gslRaBsEyz7*1z_7jG)&
zQ<{B$cth&ee{(NP`JMC`Wcd(P(9aMFUTX{!`fx<^!@wn4j!rnjX!#1K=Ip}$~!4=S-apva*N4b31D*8zHw=0El!uF!`cvOF#
z>7L`yVm^Nb*kZMKD^fOvJf86Has{f=iIzB{5Z(LAS)%fvU@U^`hJyOfNAwd>7z$E(
z@knM7N--XWhrb4evdL_-&L*LX=$y%WFhuM}zbb28Xg~eAD3ilBV&+ZX?f`4K=znXU
zmb{f-`3L;u$1NIwi)ewu`Y|D`N3C)`p{CLgu9xAp{o?hy#ltI_x02yn>D!_$9$5
ze=&4Z(9L5-b-a{U@&1Xee@k=bx4wVrQ23MS-)2^rrcsR3{fqu0ciuIf4bzG-PpXn7
zA5*#hOS5^HnOGETw|>}fMJ!T^c~QDQPe=;<%`005|C*^WoWvR~_VO!YlEi~%uI(MH
z+W-Y8%4;^WB3$mr&P>`714
z^iDBWrLz1e%7
zDPmr@>YLr?Ju*4OSgrK)*Y|@6J2^FV{pB=j3ck8W!>yB&-dXvg@}AL6rW@F1X#)jk
zo)Senq}x_;-><;CAc`bZ8>yQG3hFfOwfb52cKn+0*K}>&*n0yXyUN8jCVK-xQTCCB
z+o}lg(F6sk4v$rFx1&>Y{LRcN1!v{QPi}6=;m{K7^ij+aXx%npuKVaISwa|J=L@7P
zK9f)otljr@=85-^%F50Wb<0eVf{3)v;S;Bv-n7|s4nH9Vzn?EGz!}W{M0+R{OX#xV
zS8zG@g`M0Fcgn(%8*RijR8@&?J|2n0%caUy`LTHUY2rL0kBBZ~MIkBILG}AptX{GF
z#9!kW$lK}RhaB3RvAey&d3{t>1_{7ZpmjqFMl_mIKTwJa^O&;c-rf%iCK
zcFujq+9m(im8qytK-0*KmrTswvOKRnaN}^a_CAw907*zJba_M0{)pG~PlsqG;!mwt
zq9hQ~V=1%2yTXrx$iKSNtEPK>f@;I3QS8RS#-@Mn9G(UsO>HFMuH$=qL%%8!uO7id
z$Q|^Xt^`JP-s1@IH|-)yw&G`Sp(1qMRZkgq{mf`pUt
zb-J0w%UM*D%>f_CMF@-<2F!$Pe-sz-u~s^r?kn%cXK@xnLgqaYU}3_zhlhzjDwyB;
zr65QK7B&o8K8{I%#=OG?|MRE63d!LP;9Xz2@)t`Vic(}*qQI9bn76qnNLy%N#%m3w
z3XMSl4IJJGJLVfG8udJOEFjSyA?2NEbK>`WnUu-!W*`IHfjaHo=+!|8vDmh??W%)1*k5B3z9XNJhzB3fpao9jayjZ#jg*hUm#6cHtEfLbAPkzP*^8jMp|PhiSx`QCGU`0Wip;)D3>y
zYlz9Scw(Q9;mcV*O2qvfUfMYwWii0Cb)b%x#S;}siJH;eJ|n33Sw=b8PBNN;Kr_Sc
z=Md4w3#v_`kIsYK55$kreAYweI^AXnasa!WLrc%6lJ>gmd)GEN+pULs$DuHCtxU$b
z?=8kfmU@zn>J~-Hd22Hy`{;ilS4l9JnMq`_+}K
z`_K7Rs~3@%_lNrmON7pm8n6CC1iwHa9w;B#`nnX-c
zurdqNjleT9D9J_nC!jo?iOFVY6haw40o4w8j@y0HA)UpZIl+kT3vt!=j_{dkZE|i^
z<2s7+=YVD#e&t3h_nIO|$7fw(MvdW3zXl*qFy@42P~;$d0YdH-rHs*llnHkOiw9@5
z2pI*DrvS`(&5p?uu&h#`PLyBSZ)z)p0{Nz6Z4*ZU8c{16>a7F?@(p>bu(yXXEYyPFQGl4$pMP
z5>;Xw-G8Mdg#_m=yncM`8g*JJ##7SN_{XaRkiR2<4OE-S5!xP`w=wa`$p9dPL-QGV
z8)SYCK%X0jX}6?Cn!SptX=LM&H?C!x=ji+8VjgXbD++<((Fc*O^1h%e@xYZLh=7+t
zarUHGi9SWN;73?f3o&?7h5io|uf30~091uza)(dd_$;AK_1|&$n(Qej3@Px60Te0k
z!l{M=qdk+!0F;{-9zq70+v^7oF=2B1I%#Iv>Hp4fsR^NWnn-P|3?S3th8@yA2l;1X
zoi}*0fFK{#o3~d39wKwVf`Yi3TRvjMXyVN)nIisp$N+dj?Jw`@TooWh
zz4okaa8+^UkE7Z$C7Opkg7gBEdXRMZ09%^jWDD79+bEag5xn^rG|U(DNl>h32kqi#
z8z5ikjQj)n5{hw61msRa=m_J2t=-Oq_tu5f&i4En0`@@`3cCSFjTRqF(HPblw1{9r2n6igc*(#+vukDQs;Y2G
zzT@E6L|2PGxU5JDl2BEsSRwxVN>Q+}FW*J!r}mNM-4ddOKjZO+gH`cN!V*D(GV6$l
zJa|1SPScu)RQ8cf1yXRDK#3-Z%O)bJ*kT+zCf)5$^LGG+y~uSSyH$$N6)rB;C`z%H
z|K-`zTU{}bSy3nGMR%Oc0-tqLn!FWC{t)$`tebs1c)v1iNR;24;)Iw8NWZVjVTx}T`WaI
z4S08}Ii@Q56o~yryZ0PM&m@*+w`B+q_yXEJ$#aG~vSm2Eb>?*5*GqLr$BT2YoBrvd
z7a?{evV;ID3x;CM%DdtO7*GNdi|NILY%;cQQ)gf$t+v(
z8X<+#PtN({S%vqa2{y5@1Dl%yK-
ztsr&`i&Y5J7y+~FT;Fw~6L5if;F*uH@@421fc_-sDK>Gm(5lIjk7a
zUf58C{G~XE(e+9e0utCq7+6?Lj3^l*!hWca+j&UqcD)U>Pt`3fdhkX}fB8_`_JkJ&
zO#s6##2ZomL1dTVX)2A!Gcup*2x8nSfyP9{_z8uDm6h2tVBT_Y=aD2k_QICXrHDID
zkszV@2|OFygI}GA{xcAp9@OO&j6ujugoJLpY|afA`qc_0?K@RC4fjyg?P?p>a~!5?
zsj+0DGrRa5pxvk#7rv&F6q$I~@#`UE!(c;%UlvO^mjH_;mIs6viKH#fUuVKZ2g|dV
zNjMPQw2-I4S^g9beaz)gCzyhiC>Ny7AWK(;V-v;Ls5C|Ys3X}A7`Y$=AN&!H48%>}
zJHkV2=o&kO-WYF{A&WqOG<6U0M>>&FmnWF95O8R7>@3RnoQka
z7z$@7hNWzG1w)~7F#jR!M7{(ZB-*Xrglxt20rosn(%wp-!p;?M4tkwmFd)48k9hB1
z0Lx!HwCx3)jzgU=vc2P48XCSZ_0->SaKl9GCMp;)pxbVLipEQGEQn*2U;22D$M?I2
zz4P2s@L(~`8Ri9(g}@Q8*Z!|kaVd6nscP?y8227eDOqBIs6w}}2Z+D5$pM%x@hL}8
z4}Jr29f&g8*xL5GRPA^_Mz~PdndP$XjWCvXaS4&z=i{x3Af|#uk0p5oHHvsy#6w^{
zue>TE<{9CJgV&l5O&0J8Ks&He$YZ5;d5<8?E0EC$CAuQKPXCpuSb!a`HCc1NjKY^W
z1m}sz>*q5ojh)+>s^C9SUf?+bZUd*!77c92Og62Do0>ipZtjk57QILlA`{3~#54C(
z!CK<*VNY0pZ0xT%iP28Y;(WgyJ`Fr+9IpZM|M2KqSoZ2<+Ub^J)`O^IZ4%j_L}Zb1
zq@=kWY2$-8gOB5B?lsV6MxcW`7V~`we^6ZOREU?=CRq6J&WDGHNWu*AKM!0g_%{57
zI25!qCk*IOrLK#nU%9h|=9$=bM&tjY)rXrb`PMuyN(B8Z|Gr1|k;t>qPhTLeN2UMB
z?j?!nS%hp%^bt3r^8dxqnv3Bg@GhwKapFAGOpuq}4VBU#rxIEL|A~-^Z0%wz@%6PB
zVGts!;2gl!8MwC{+m~x_Ew0H`+cis)!wF}|jaq95v{=m?A%{(_b{37#C8sW}evcIz
z=I5tTPDAT8t
zTTJ2CD^kDMb6|G1>ZXgdwZz7nujj@_=Bwl!8)RJ@_iWibE;|&%iU#l}9v~Ol$)pvF
zZcqRM6VF5wWA1w>x#a08<8tc4e+;jb&B`%uIy*(uzJr(~%dPwO8ygzlND*CTDPXdk
zKEI#)Zh3h*$87Dy?3rKb3|HUPc_m
zX+|BX`fJ}kX&R$6M~L@a{9;J)L&6Ql^p-06!hmyP#PZ~jixsg<9okyY9YTkt%_D28
zGw+2pU%FmW1DpdK%rC(#XzcB^ych-M1L8*IT~IgdR<)`Aj~|87VS#RI4`uf0_jbh%
z>4qaH+J(1_K0h50Y=FTr8wnvs@^-Vq2cifLFKeC1qdQ&brAX)l{B54bBgOhHq$~&g
z3*#pfT=?$Xzt4Nf`80CUFai9x-&>uBECk3I-ytKqA7;3(;`h!4bV
z!|KCgPaY=$B%56g89AG4itt954C`f>#6VajssZI31qh1o2k^$?iGzEOMkLxX8O157
ztA7Lo=M8f9EKksrcI4lColV3BOGPYx4s;)~mGo0!?dX2A45>?qi$=-&`{4n9>CE8p
zL&~>Nav!0rMfEl8Lx4EsaFK~7R40MnZ0gN0%;>^tI0?lNZ*T9SQfcCY&Q9DL6b&Hz
zfRhx*20KJsq5Oy`0RVrTLXm-@2o~k1!Zn!0Su5h7vKE!OR*r@>@qMbUf4{k^`48$*
zNcsl?#p!{Iho2@P5clx&lMTc^{9F$CxAu-$w-;WOH`(_POXdTFW^dkWxMp7rV@SN+p(Svh
zWDq$*XNI%m8C+%f9=`B=PnkeR10x7{7$7bx3b*?Tf*|%#_OW%@_Ap=qx;BIug@VFcIGVtAP4fxY2_iy*X>CW4Ekd`8
zqSCdec7~;R2QC6mDZ!9zFf9OHb99U%3h{>n37DPG-oIYnSG%?(-j>+EN%@GwolW@<
z8b?54W5;De+=?Le;HMx}k{EvzZ9R2A)P5+tBqdwH_C1z|^DK=M;F0_PXZ2yzhp1k-
zkY1Rg?t)nLLN71zU2O}Pcc3gr2btWm%
z*S49X)^~;EF2p&AZ&{#O4aw5SkBK&PyEP&y6bkx$J;S0fHCpqO#!__uEwrm6c!_s{
z0h)Y+%j5QS59pGBe0reGe_oAPR8-4Nmjbg8mx3S$Jeg?$Ee1tpWMs(XZxC!16^39A
z71gvt-Bv~0?J^$P6bLoPyRD78&+(%ukC>#Sq^#_zl7?z{*Z%&i-;M}}fEp)6MjV?d
zw1zNFSF{C)<1_UE(zK=fKAskL7MCS18h+HMOlb}}ED%gh=|FT>`|+cB_PJZvS8Q?$
zupEIbxSVh!J{h+&!dGuA@h=5hmzgjfZvwYK2b;h(g!O8S%fAc$)VG#LwJd%}qRVwP`AGfX+xE;y#OsPH%<0wPanVzYqvL`z54
zo}#x$NazFwGdc^coTEpNnvGBsYv!%&liVFEpt;_cnXHD-&d}Qh{2Pk_?FJ8C_^geF
zyB!^Cb2_F`xAh$Yr(SFr2W}8c`>?#u@Ge1y$xf0RqV-omd4g86ozZUMvGVtbtnbI{
z#e|3d7#hk$A05QjP|RDUXJUHOy<8=~@(QPJTwEN4vJucLR2*3wj)*-6J=AXhVvuH(
z!NypB_?>K>NxYp%cck)PLX0Qqy-RYEdUUMHkcyJa>G2nz(gTI1R3V>k|79Gv20jc9q$U-Ey
zrdf5$y*n3j+|PCDSS5(>zg@QbpWR1zM`BQ6;onKJPjyePU
zh*oHd5dRye$Nlo742YY=851iP9TPJaXNJ&YWxmnBFg;Zl%1x8g)9Ju5p2YqKX=jNi
z#U&+mul5q(6%2*p#Y*6Tp4NLSp;xvEz6lc`ivru-3VArNG4;C|ckkX!M3Zpg(bRrR
zD4q?T#wAcP(UFv0d(G2edtri}9JP_iz(&$7P7kv}>Hl;{I%gPMxV!{FJLl#8!<$N
zX5b#lI!Y8rTQLreC|U0}z$fzN{{!TpNEyrj&Sb`|Uk^z#z@otSfP4sFMCmyuiI~jw5Q&rl2dG3p%=1HP#@Ldg4R@SnCL(paeeF-`@=8##*d#
z?;fJXK6ti1*jmI3M}SQDoD&n(fMH_T7zpH7
zeR;G)`vpU3NZAcZsq^jo+-S!^DL|C-45~)0^UFFY#osA$k#L7`VvZ
z9vz$*TUy?*pz*1Ch#=up#a{2O02$?&A}T${?!Zd6FO3Z#oC0-
z{g%4wni`ixQ;h5XY45$mxqjof;g5zE6(K2&PfJEhMrDUml)Wnokv&4lC@G^Qt7I$5
z9+{C6Sy^R|M2YOk%DT@>zu)gUj{7<8<38@^c#ivi{&@WH{Z>BX{l4DU^&02ve4Q`K
zi|(EtwWyjVzKvp&&H9jne0FE0F%@G1q~-Vdx128)zX5YRYf;USdgOj~wga3oqNH}H
z-QiF`9o$FO-af13veGFH{g>qi>Doz?Z^}eq3X$D2`=RiBOvR&>*nWwbe(ZHmG2ILa
zR!FnM&XVd{FEEatX+0;0*5Ar5H)~xt*A_X*JTE?LXtwsb7=zN{X_h976kyp@o5{fz
z0Mys;zbp-^%Z(fLfBNmR8KMG=web2#8k4<0+9Tst!Wk*fwU#VeKKv8w(r}polmdG4N9{m%O}OV+`X%+2-Q|c9IMbD3Jt7
zapY6n)p3w8!)>4c0YO3agk`TkCu$v;=*F(~9BEy+*_@}wkCEI!gfXIg5%^O|!K5~%
zMKPp+o23#lD@y&>yNlN}1&|MWH-Qg>|JfpTV;Zr8ddkHlHTsa$f@cnxomAw|a1zs$
zf>)jhtTP_OkZXvFk!gK^dLW`%W+sRUJs3b!8n~2-SncHzGSzx*tb_|D>yI
z%T(&`M~MkVuW=-MfNK}P<1q%TV|^eFXg7pJy?ra+xUl%jh~D{%s2u#R{rK`gjf+In
z5#d`MA^@G)f0ZL{D!K)%B^^)3{Kgm`MA`~+a?aSwLqcL|Ofnbh`n$cCs<6p8TytOp
zn3blW(0=r2Wp!s~rWnK#8
z5m;?QCSl5%k0Js@?BBu_5Ya~1Jfu_z@8IG?A!r8dQ<})yCBGucJYwlBtD#`m{p0t*
z}Mn{M+Iee!NmFG55SU=YAP7Sk~ei=Hwj;efb>YLVIO>D
zkyDVq5|{)yy5mQ#VO+=G(W1Lskn7d8wFzUYwS=>kRq9^`oo~Pzz$|GZ6M4~=gXtWw
z=EY4-*|->$Sotj?*He!K;sz;k(R3!X?&@IQegFRb>^>FT#JW?$8jz98z4q&IVWAt4
zF9B|XaJg4*T#9BSUY^f3;0NLdtzs%83(F)5lD=g?0Yh)xJtQJBhXTs0=D*~#C5+As
zNj(95>HGKHRK%?!ZVUNd^@&)FSGVBA}SR*`D&b%f5
zK<(Dxw^C0+L%FFqWJu8rJ(hxVpW@i1T^XrzGWb3}GEUfY5DiNVcQ5^Vo7IJ#`6$*x
zLKJs(L6AzW<{eGb$`ebM^#VLg@`tehK4U-ca%dh1fdZyuv?|Q}{VNFBPHI0nos;#L%5sfmKq>Up4<0l53>!kjHB71c9AuuJakH`-3YeZk9B@{I*
z%s{qU*hMz4A}7hjlB1Skdy0aP1uMo`JN*6o5mHLLzN0NbVAONF|00K7
z9I|vH`0(1-ki8}?7uWXL`jmx>I>S=qU(%KhVMr(GV?#I?=C}mU1_V7@RRrAD8Apg}
z1Edh}FCmD*WY3|>1*a|ZgZ%nW-6`L>$Y>5YGc=PFe3v*1Y7X?9ePsbXu3Ep1fbqZ|
zlL?)Ka9OZO&#Lx*dJk>}Iz_1m4wUO1x`*+f$SVI#PJYGez<7hNNJsktAmHDr5#66|
zOZG)^o5T9s5b-6FztUtR8BA(grf#my3sB@R!wm~{PF|jS^c80P!SSHS^BXC;F|4|2
zg?PiE!!Fp1uwvk>Xgws&bpb!YhVm{^W{}-|r$Wgz?%bgTZ~&0gM<&gq3P5DYZF)!Y+GdqdstN>{oscc{CDq1aoAH;}`(DU8TYqnYA1K6JJOgt8b1XH=z&IQ}p2jTHYKmuGNT^q+p76x#I_80I)c~^VX|{
ztpu_kw^_iXKGm`_+cILv2|F76jg!_JFcvDK0VGO>-6xsewh@{$`|$wHOE+%hJJrRj
zB@{UzBBi7Ch~@wVbg$SMX(YDUSnLLPyU`@L{UtDvv^x(Bn7R#svJr~3+Po*V!9*0m
zAHqgbcSMOi+q|vuX%ul5sxrgdR>Og78N4aEj2O+&t3E}y^J%mC9y^sZz!BhTbSc?u-O%7ggphb-HtLL8FRL+_-i8_O>F+3pk*{Bm)Xvn`ue`
z3yMd9fn+cOIe;krDxmy|=u1gbitLx#P~lZ4oDuE-4t@g%g)URlF$h2k6W_UYvOazI
z5M#FC-h&4$ezmo=ShvFYAxnTi*##~d*znn3oe0(C;O|{mGFm!23(ItXAkTvaD^7xz
z_W-~u)eXFXni!>Nf;N?gbU%nz0il(;cGY87SWTOJ-<#@BE$l-AF3J5hYVM6eg2
z0DyOp8}>9Cl@x}<&#JKDkK6vd=e1(hDjn`1h_@o5zXygpaEX4-Dn8<4LG4FpoIXDr
z!M7C@YWSLdX{xFQkQFVIILMCu9vmF(rOC}=6mE-dOCJsbPS)n~@m{_5_~Npt7PDa#
z_&_g2gpL7Kh!oJLSctFzVO_w`O{^W&2H`ow7I0n2EV;mF#M2=NGzq&8HWoXcSj!hq
zW~dqf#Y@A?SLE^j<*-9LNH>^aLhTmd)GXltJb(?*!*JV^->c5vL4JI6MX-)-*tN?dyLnwi)y)(l|VRmxJvbP+m{sLH*hO>NB>SY{vq#jC2
zN+7hwj{|QlzH*S?-C>ypdrP94n}xwAXmN$
zS3yj%HlCCuBucD%_4oUHLB?n4j7CH-;?NbKK&9ZP0S<68GHrgWK&O+v`s?z9tG0xOp*FF!f
zIv^}66*YWLeEUTI3yUO-)BLk68_aaT!@T6W*3i*i8-0Wu0^+SD4IXC!V%^}R$IAe8
z1#@d%?j%nURO!vbSNYj6OF{(i!G2Hdg1?lx3
z=<$S~!G51`+EBERlx7n&i@O+bv&AeN2p68m9DYFxY;gNGL*~(>k8Il+=G^0bDrS4?
zEMiAynKYb{M%I%BTCL9BezS}6^7mYNmx0xGuuaapdb+K1;pfPRI9l!*yn#YNWZybv
znf*ZH5H>&Fei0NI0A2Ng$uLEz?a$ywWS-;Ss~-}qHqzuU)6Ck?Hr7LW?#EXe@jXSY
zn+ZS6%yyVJz<`?Rg+f;sYzLp&K}ex@UjI)2FQlOgBc#~?W*-<>{bU;f;l!}SmtVsG
z9?a7|2Rdp(HAkO=dEhV9ch-LT$$S+&XfV0VygLBj<-_j53UuUHOG(2nn%2jm(38aB
zlXO@>AQLE5)4HMB_*7-IS`Fl5xIH|Z>QA4{AQ~<$efzt{>=`amQ5W!S0FNTcH3MDx
zs)8LaZ$DiZfM3#kff0JJo^V9hhTD&EaKshYoRpElSvYv`Ah3W!Tp%1_epS`ECFklo
zJhwjTJ}RRyn1r<^Spzhq5H^gfugg#$C1W&K+*m~E3tyJly_DH0uF0MG50bw1{~#?2
zI4Brc=S?){!DM63hHwIYgkpU4_me+RJkt!A$p8PVqWixo_RnY}!45^D$7ZjnP}j+<
zl)JC2>2>|!Qe@MgAztYK6M`z_>
z4xeZ{vT-PpY3F?>>fG2hT?TEsbOdgQHi~sjRG$<$ud62WoqZ{Bezd6L99@Q(Q3K;;
zb<>3oh?bV@&7~~Wv)#X5kgw8yJ)ZBe9>4uMv-hJ~PtN-P_*Igq-xEuoF2lSX5BBB6
zvT9uZSK4!m;<&8Fln||%=tI4n#;GpDtv-;Z^QP>m)v(Ex@RI&ZHVLN%{-wA=N(Nsu
zGUJ+LTo3K<>_>+%x6j>I`M!<+5?+ahNDh;@O}-6IT)*ZW%?}(LI<{-iyM$t~_pae@
z!-ttyts%HFh4Z1#76ql36NAZ?w1sU3hrA?<4fxsUFY~j?pY(9Dc1w7ay|{H~I>SLI
z#qP}q4Y7aq)PtAR0+tthM1p(s|bG0p9%VZ(V@iK%jEm6+0(usFvW`=ouM0uzBV)Lpl}0BOPa)KH7Y8u9nUB8}EKt8nokFs@vAX
zBFzpUg6%Nbq#Y$?>iO?&KisnWRL8@W&*@|}v(^huS@ei{NXpwEab*sh3T1NOadwuk
zcwwsbc6;pPrJEgFY1JMVaT1XsghZa*556UM~^}<
zR(xss`us}b6OV;YkNt2Ul&R4;WYT9&UM
zUm#a3b86Ij&vO1^I`YNs?Gd~qT7g4{5A2;Rye2Bld91*~-Qm^Aw5pMouu{ELOK#H{
ziIqzLN@TpU#a_`jA6Sb`-YEJUy|-&vJL`zTx$-g$cr{PyZ;2?@bEsmt5%+k>48`3G
zxOG~=MPa1IFw{`kF(u@s%A1mU`akPO1#MUCXy3l{vlj21
z+=6{lmV|9K@O%Py@8Fg$TyvRc%%VVI#DjO@RnLf{bI)?MhyZoM*qQ+
z`^N>So+zj~nIyOT{9STN6xCi`s)^=MPv9Br_;lTe8f4QM($mORt#eqx#eAg3`z>Ee
z*NRAH!9d(~o|V86%aM}$`ow&SrET!v2Gd#Rs~7xsC*v(Oj``vb)eE2g_Gu4U>F!LF
zqbWk0-9()$LN--yDAlo$;fQ&EC`YZ#SxQ@A&7`f1=sB}0YUA1`ja*YnT9h1`pnG_S
zgFWBjf|2M>|IfB-JJ*g1T5j(wF!gw>@WS?S^uanNp6n}W;@0n1>SQ38BzxkWd5>12
zd9S5-V8F%mcT*)sR8&UBrZ^p|0xGkw%-CwDJhrS_7I{XWfPq#zTo3jfmGwa8u06Tg
zS%3eenSrpiWI~eGpu%}Q`u&t(BCb!FGEfV!+yD5?;N*w8+n0v=1DYaNeyuw4wKb$9
zXnwU5g_D`=oH)J(qmi?3*tMA6tP!1Ucvg4dLF_8Ew5Ig1EqOUfT1TyEBm&VdPoZdY
znt$YCHkwp9+_GLf$4=?GDa)p<85FA}4wPc`pmHb&RXstOW6YapR_**2T0dGzu{YH(
zj}JG#jUNa27hJl3
za3VpYgGaLLdiIFPm9M5-6?ob^e|=d6d5uFh}e
zZLaxJzUnbvV)2k1SBvgSm$dazLONgdY1YQA-M4^^ykC*5)bP7_j%Nz{gPYAilt1@l
z?^lB1L_f!$aEE^5+~d4;h&4ziR!Z~zG@79zE_{_
z731tW$zZgB>E-i#FPjy92hO)Gr$`9H*t>r;OW@~GmtjcLG=Hylqo`g>%?PgGbS>
z(p4_{;vKiH+nWX5QG_%eUzY-QaUh2dATRv|u5+mEOZe`itVv-y%f9`EeDV)if>)Sv2b=oNpp
z-;h#JN>ne2_mWWxIPuK(>jFohl?|Yb9M)$Q6ssNHLNbVrOwf2G==6H6*9FR&5U?*N}dIxV98
z2y5~4lVba(;O$M}m?fCAMzd|nrsZzgG^-r3k0EoOStgBBSB)
z&4y=LQkyG&KLSg0)gh*@{^P?xGsQb?-~Zl(NO4JMh2!ztWnCaS0xUTME)eLI!hJ!H
z9*v^d2N=B3fDfFrIVf=?D#hIKSU|xY*`YpQP6-JK;FF*RivjEU+^F6vd2>wpn16WP
zw|Ze`-ibAfHg0C&CEDlj!iNuATuca+!)jS={(Jnc704C@Qb+CfA|x59!W=$hQ1*gw
zVCChh%a60Or%;7O^XyE~Jdg|k@!5cyXFnqUbOB2fkb`}C{O9#+kG`_{oY9>0H8JP8
zku%o_)?!?&)zP&(K1Sy2+Oglwhtp0C)SC1Nu;8gatE;0UbRH0jxJq3x*9uk3Z4AK1
z0beVip9=64SSJ9w!Fr2u9zHf(jl>*i_ctVNGS30-<6Ff*3IRg*y}KJjCUXFaq11a!
zMe`NyN@=0fHK%K)j8%o+Igj=0ue`W#PA(%Pg3h#UPjgMl1RjX$uDmC^RGAC`7a}zm
zcKQ?N#Uvzk9n=7zD+hc&gD`{o`ONIBZyBIy@K;H{j~a*0W=J&Fqa{#0;x#?Ltk_UN@|nzlIF#XC-!v$b>H
z_J(b8XUuWj*^YGwK4^_EN8zH4&3D~xg35wp%go9O27ov6`qox({~Ad_R0*6KF;ILn
zm6QSq(<
z8QL+z4eLgeuc>ra?-e~z*db)e8T#iQtDN4QKJ~
zL3YdN2cWWb)e#2od-n!Ezo-PN1c1c6@(Olc-u2(nUZneZ@~WcrN%Ss2cMm)U;Do~K
zZ@*x#PXiW4vT{DYbmYh@E%xr&6UTd83~e}`Liyzt6@M`#4o`OTrcL^MPl4CZP7Dyb
za7*&dX`fDiR`}8y#Y$
zi*Ak`lXb#9aBLOYa2q;}&42^Vbp*`Jsmu0l+qkh7>;`}b&3_T}Jm5jw6l&j?=E%EkHF#b14M}Kiy?#?72ipYea`Ekr
zmd11dG1$|f7dfDyfhLN*4-(cSMAOaNEPhlu?P>YK;D=bgS!e6ZH|y`kxd=-g_5Z`&
zBN}6bO!M}0k`gvqjZ0_(CpBpZb$Zx`vQEDYApWj5AoHm40?Ymau~VHz@VT@zeVXgu
zf*%bu7nq4UQ;FgnjqwZi*X<=AKcYy%zjyBoYz|CKLwmo$KbaWPU5i69kFv@IaEfK_
zInTZovwBs=A6Jph`CVh%v2hb|URwtL&^?5VE79}wX02mdT3Wvh;L^37nF3e=rK&3?
zi&WvZR)|#i`}_OK-!t6$x;+Wg1;O&Kti<(PfD(kpRw5LOvWF{h8~`bJzGJ_Czw(N*
z{9^P*?x^qFWs}C%@7`0=_2~*uEX0hz9jRhD=d|y8Qq$zp!;5QQeOm|vUlTUFy2_X-
zr&uf;paM)v9kDcZsO^;8$vqU=Lj-22pX1fIKu8kBMgm)ml(gyz&ndzdr)F(@s;m#y
znKw45*}Up~oVKGzg^164mVS#1taO*>jx2QKbGR-eEP|X1Sn~K<3?a1y^O2DO=99X3
zYow>=#YKZFS6ZjCGlQE8&(rca02N~L1Gy6@Yxg9NMy7qk9mLQFy$D0
zGF4EH#l;s%S#&V1w7)5(6YwK=`$rqIm
z-xs45Hct}&ozxX4o`EnlK@}5wJK7-^Y_Z+mNSH@)NY}tf$1S5}@Y~8FK00j%G@Wc>
zW+s$QII;v4zuuY%-BdkEd<|ed(=<&^i@vtQS#r2rILnSN-B}O9@aYsJu%of4F2-%n
zirG0BcFgu0-DzxMS0o0#`u_f41_n)DvIi81}^y=r548eb$4D77>H6%KK~w&BM>HDh+`t?Qcrtp!@oA)nX&seS~*$n;jCG4GIkn
z1$*nYl|oD%nTLvIpqeL#W8U$AR|Ww=+23z|s?rjy?%_aIS4zi8hxn%0a}r-dTwOv|
z)a1XEsekRNe@0u8Fis>^-=2i?H)Qa>f1eEHHoLE$FaZ?2rmSpqY|IG-2(zJ+G1iC_
zsH9H=G?=zlRK-Y1d8rEobr4h2LJ-i=_((`dAl>k7=zo4#|07tB2~E(^fbGmq661-4
z4eHNU{I>Hw>Qxr4uTM*3OI~cPyHKw8=q5wvqCoryzu;Nvvjf@YMPVr$j4$qgr!$a;
zD|C;4AIY&dqW7m@{r3d`(Jw!y7KI}yf#QOXN9sN+-|)o&}!8C
zP-V32$P?JN?_(qSC6`vaV2($5yB2#I&srY8igvDb(u*8G|(gPxw(M7jHV@*o8jOmDve|r*L4f7
z;;BY?SK0tF6M(v3yQ!k6g@zm{B6OYk?j<3I)2>*-wD7(U18YfR_7XweJzhrl$nB-N
zI@&?%Q%3sOGeBM?Z67FBf-Qx14%8vZz;^2}W|fZGnqiu63p-ZleYB_TK&KEM8$u*;~$q-
zUnPh8O8D1v5>IPS<}8A(^`9)O|CdNkgew!*Iyutm_U#=_QUdvkc6C&EkE5+ja>M?O
z-B}2ZY|#s;4MBc9-y|@Sqq>*vk|U59MdIa?UB%|V+H=QIsK`uSW@wP94H^TQ{m>%O
zm?^Q9l#jc6dtch^sy(?xrTslQDfm=gyJ;Ey4-{5=dO$zD?&M^0VI99-nkHi5v-|wB
zv$GpBBUdmBiE>cEtl=E~Md8eV5)V!m%JYP+JfIzUAM_UOq(;z|+3s_**2RD!iyc*f
zZU>P3$;TIiZdzK}1f~o2KKTdm)_6EMIS(C5CGA2@%XoeZk-PmLx1{~g3K&epQ(BRlZ2k&zU<><-+bv2h%^
zPfrQ`CGrqiOiJWGK#cPLm}bRS6?#l%fQ_Q6jG!+3u>MKx*tz+6xxqP*c{Gz6VX5;X
z59ORhq_jBSxd;Npu?2n9^ya}5A=A#}7-SZ&ZhyDF$k*3mIB32F%}jEvp#y~^_y
z5`o`7ZE*jq>%9!pJpJiZrGuJ$Ya@-}yylT=o*5+aeYh$3n%umJhBM=}rIw$(B3OibSqF!b10tJ%Ci{4&dPf%S28texFs(kbVqk0G*e(m(r
zI1Z#TP&)JV@*4f~=US~fxCW5;f^>nR8wKU;DbU4WvIS8*R11ub&WHXQs+y$jEH=Zx
zkWbO`=*;qs%*@PeY(z76L)In+hOQ8*(nW}IHUvTb9Uc5&co-emePdtsG#n8rd>t%(
z5uD>d4iT4xn}WPSo#oq^kFRW$zJjO@5%oOx#q<#77%=9AQ6S$
zU>#qaqdMas0w*+xmeQFsHnHFdoRyPPVR}&z>MU+|O9q>?V#23p?W?QS8sfarW@=s2nYb
zq+^o7F?8{EQwFJNq%P(z3=%R!ARz8E%Mnqjp6`Y94W19=Q?9^uRx^E@OQBP}ZL?@9
z@yeAF9UYDF2N3;Y+PF~>ryEQsGHKj!?p)+9`cB;yR?o22m6Egt7%=i%*V+a2FC8pV
z(c*A|
zXc>g{6xY)`6Mrm4Ko8S%B#`>$hMzf1EKC@>55-JkpEN$eGzdzVnyqWW3J(ZL5
zSanC_kT8z>_mCfCMHi&u3;Z5ELPW7mRc7b4r#K}R2uVRv1!j>oPhr};8l9bS_S4{T
z47TYy_AqCn{;6%}hi(Zrn*K4}@2XA>i1dV0D~!l?@>%^+A6x#dddf-p5h
zRKQ?Yut8WC-JBh^YuLVBq?vPh?USw=r}|pk)-p@B`mA?3$q=5LT$bLsMB>a!I`A+O^tT@-lt&Ykq8gPN)Cx)Dh`-GBy!7WVb^K~SOR
z#}6hJmd1VgfOa<4AtxOe+Y)sJ%ZL5<45mN3BO>~CYGUHOp;h`uM*A7PbHrq`^?0bFNDUN2NlRoLMs98-TdfNdvyf2j^{lCsBNz3^=tmeb~F41B%ItJe`T>gg#1P#1^4x9VAG;101Hnp8h4
z@ryZDT|^)bt>@m}r@`J9?=5v#FtoI+>FfoFD&=EBI_>a`_N34l8yh1W-j4YJpbKMF
z2EA{3sV8c_?-b`05U|4@1&q5D@~w#33_80BuJQNJRWmd0wnuDi67UMs^xtqQU|oGU
zF*fC?S9?c?;o{;0*25$n0wMG*jw1+Mnq7!TK!kdiA_xK;VgZ18P1V)s`som_66Xcs
zFH_exz4xh((uxXjHMzMu*gS|Zd`!}5N#ia-e%T@ISB$f&#lC9QDs^K^OE>gOx@H0!
zGcqtRL!5`4HNCf#N9sWT$l-7LTP0*=%V0-&FXorg?mB`X;d5Qxr3~iCIz{`FYbg=K
zIP8Ps>Fwh5>2<<+d3m_~^iz-^@W$Aj#5?1a=T-xf1-RSJC6T1%d?c(O*
z(q})4G%ZjxBrvdq4VNZM-y0kvHH}S!-4-V595mne>({H8m=E&{j$n>q&H=xG0Q4}#
z=Xbv^)l10d?B8|G-hLm|!NDQ-RLh(cJUd%8udwGJ9x1$8_d|)Fdh0KJNEj)lw9vkD
zqq`0%8~7H;1?FD;0MaTnjghp>{du^e!rgp7MU_QI{cC&s`Qfiwo@(ijF!Tf4#Ol@1
zx~rzfe889z8yjnu{UwVR=m+aK(FJ(-(1Ze<0-1X|?Q+CN4PU;%6?6iiA$H!-ka^3N
zT!6#Gu0K$q*p(biZl{%Sn`fMkqm__GhA=Tcu77sjTdRqARy}?FO~CFUiNeK|0C;%v
z*OyY9iudm?VVg$$+9a|3{Uaqx;9f=qt4Z5-`UYxfX!uG~MX>~Sv~;ZBMn)`ga04*`
zCkyd-y7R?MOuFjqj41rHhJ)Rd@;s8>$`d?HrE9b;m8~%OKq=rW8U3Q7c4e;$WBRdN
z_g2VO3d5GITaB((0$O_zS6{kf`?+`;LsZkbr}TtPjqU%6efdcD%7UPgWEa5nhI|Pf+^UPN72{c
z*k}*Z?c29++xb@*b6dTqs5XKV>+SXI>P}C)^;Qi(*f7TnVbt_qM8$@3L8lREiMDN^
zf4gn4!o=9PtU#zKmZt1tBRZI@XD-2sKbm$a&*9P;=e^0sMqxlW<+B)r?V;)qAps2N
zF~87#+eukT>HW`#4KHX?1#ZtEIZ2F5ALLmckTCp^CY@el^6`l7BBBR7|MYZF{kDL8uWpi&W(x=ojGM=CWmZ;DF{K;?{
zhfAQ4EpGd8MTPltyd~u)w#wPED=sWudvc6A7Oe
zV&&Bi%hXD6$A$(5W!nwu-F4|z?`38RY~|dSO_T33n}tV#t7UtWW3!bqKOsk+S$xw7nxC)7AfwWc9~u21D#b|kpuKeE
z%E#e9>GbYg*KBR^*e&|XBBLOuciRj7!(5!4&)28X)vZlA;#wVK=(rJjg5@-cXN
zdX|)yj#qvtDncaYWeoA63U4~L6{ZxNfHmva{|tr)h7!pmFRf{Mtamfm{rbFewlw~~mfjFzmHx4@Xd3y6gjDm)qu^jT`q;?Gom5z$
z2e1X{`nR3-sG{UO`t^O3%<=dA>s>jnr*5x@(aLzuwF*STa#tz9$dB+G8QcLDL9qjC|J1xtM
zqr_4ZavjI7$S{M9jjz$lgyXjDkc5fDH_>n5tX~zSC@T$F0TorrJ&bn4?N2XULn$oz
zu(7ErLM1_iIK>^nL%ibuJt?-
zrC28VqZ|pW@4b85K#P{xc^$YO19DQxO+gSzZ|uohJ^IKy;=f_3g~h~N(S?uG0wnNq
znx?L9XH%09^u<1ZPTwWv`F9kW_h&hn(qHWUL3$p{%mzWrrl+Up;^Ol4@qu@NVMNjG
z&W0UdA4Q!Yqp>^`Ij&h-E2&EE+(=0M2;LBDNf!?6%SShL`Fwbq0u5G^`X8#z+8jgM26~zR^7m$Ah@9Z
z{(es3ZHl*0R`8OJhSV?{D=UXEi{dg7T6e1KQmZTUtC{W)rWStU4j{-|`Y~C%X4ldm
z+(WR(m;MwP`-rfq@bkanWuH}-bQ>e0QJsN`suuz={FuaHIw2>EFLq7?Zsv~9xd%Uf
z7!W@Cm!>9-%dB>L{A9uQU%Pf~Vp0-49bEuBXw3D@c;b{uC3M=zqel)|`CxaqG7^5N
zvr&r8@USqG{F-JqX~uAFfm=^r0M-wTOh-!#rvfRTiq<7aGw~qc0y2UyT0ThH3a63eqV_u}lrwjZ
z;VIST{Oaoq2o6RM3&JCTtGC3jH3lQXn0$!(#Q~wmDCt1V&D{%7Z(_SF$O06LQ1UKR
z`)+yRwqlC4%=;tr@hA0t+PnQCck+pt|kvtJR(fTpG(Ic<$+CJy;!l|8b!*r9`1pAB0eC^2j1(`F
z|0<*SH1L|(=g;AVLY_Xwvg7^F7Cmto158j>I_X8vwkH~m1c>rXOiee{!CD)d;*|__
z$Z>NSQ30W%e(jfZW9-Li>gU?pZ<~P~ZK?y@ibl)l7BTo5n3e@FR}7DAL-WPLY0WMq
z%FS=a*Q~e&K7dcjZ1W6%qmEj5oYo&
zfu4}Z;8C6B%RLY!SvMqKEa2Sw0T71i(Q*9OyR5BE7$gd~2<4QauLZNv$$5Tp48H;R
zTK3j2EbIb&e&N2#9xo1V?t5IwZT2&;BWXhD4eP7C-x`hlZ!f~dzKX#f7*s?|gMx$^
zU2AJAsj19VuAmq{uO-ap`xk+cBg10YxDmx$Prwcz+S=ZTecj8!(T5xd!6H;+?>jL+!7NS+%$aAEXcY@1&$5WVK02
zNuckb1m+(RQF!&sK0jF|M#iEBs3}4v%?$!%2$zYzLSNrB?h)}3CS7ugh_p8}2pm7I
z4OEk}3~_yFaWN#&>l+)@vvw<0fHnbDqZ87ATelvwd7hbRcj8158e7n*3zpQ{b?da2
zwd3)?bRqivfs2s-f$GDnSFhsa{CW58H3Sz)Mn(p`o^}onDRFT*(658$4UPd$+YV7D
zgUgqTOw?6Xj~+XgwpU(ML;+c!q;zs}GVJZ0J9lt_
zfK?$q3haBZvrt@4n1-V2lYT@QTUg=!$gafXf0`=!(7+NSVUbvD>^zlyvsg+h92!x
zt^nCRiR1UZ(7N_1Fk}0PpdHmu4tuz{%0StxnWF;FJvb=HrU#c~#%+w<gqb@!1M7Ex7I
zwK%ZQdFlZ@7dyZ4#>G!TK|#u$QPR|_E$Mq1&W0Ti)IB098fLeM2JLQ-9os08b?>7g
z^ANfAb!Mj2i4!Z9Ndi!WXx_kg9%S&T;HbHlz)d=x&MEbGv2-9{&1D1Anc1}*0*s1yUM()d(`x(qT-(Kkd
zaXIZe1UOLi?}^YQ0(S@$u;qcr_VxGM^gv<@k4YNdMPtg&33VmX_~%-VR>o<((jvK=C^!EX$6EXu=T~m`$@Btp4q@PV<
z(8h?2biW=Pm$I4A;Q7`3&~t+4&7rCoiYo7=0E
zg1HP25v|4Z3B$ubuQ+v&b(ip6Qv5@ee1CLK&QbL-Y(_>uc%;E}A!(>(Fi|VY${w9P
zN=A=VKHS94epVX!_>Y$g@-Un&Rw~H}6oSPz&0ulLGp!8nQQt
zDqqsmONFUMr`e0=&sVHiVYT~E;Wo4W5CAD$R8AhAswG|&yBuMSJ-@?y=91L58Iz|W
zHpiYscQ9#&)RJAZ2=I0L>a@|8k&}(Zu4rtEamE|5mXN>g=cEO5$%iSYHULBKG1z}O<;GJIak`)RJvPP$S_|F-k$5)ho>Y?pPNC%ts)FiSyaTiezEV%^GKwM9fl6*$e4g
z=y{F~eo|9YJAa7LTbk-u=2C97CRPw?&s$ko>_MOeLJ=nJCWag-F_9Y~1|Odd+!`)A
zrK%MzpZC`xFQzC8fTB2nqlE|)Izi=EDjLEE6Z322l!P`9>^&kNU^w1mW@d(x5PSj}
zkT2}Gl)C=((oWPt)gr84aGAds(hbzH3>=J6^fu@`A}sz)RZC56Vys6lS2QSM?~~R|
zBr_pWSS~nQC^(?kl8o@h%VDiZPHYjepCa+yQ^pV_`UWC%00$#YqDnA;4#e-vF8u{h
zF~Pb;360|IV+0A6Hqh7q;A&8=fS%^|3QSx02lqv6yAvM1ee3yn<6r00t4qeqaeDXb
zux{G)LEZdPZ?Afb-&T27S24NO1KZ`R5M{^2#LUn@z``0~A{rfA3f;sRfJFnHZ!*OJ
zpx;1(;*lmd{mUA+l26MZ|Uexx5a{s%aIL{YMp8q7P6T!ga9df
zfeT9q1O?dx?`-jh0z8qPoW<$U36^cvAyJ>WxNg59nm1u-yvqQF9JG{_<~|ZU2Jr+2
zC6vHs|NN4|&t6KasCqyCLQAU^qEYO5}
zIw3wDu`9m5>)W?SSZ|cbKqhcSXDf_pQej;4M_R=B>`;Nmc^F3cf{e+>XD!S(0>n{=
zqtjqhAvyz<1OLS*fmD3ZPZlM^=9~&x59kRs?qvjAh)LX-Qh$(>Gah-ui72Qs_9Nbc
zb>#&#`@7!8n@y&9*)fng@HK$cBpe-QkSH||GoZnp2rg?7@+0bj-abC?zNa7p4##}+
zrlh<)-LqvTW@exGKGwt`fCK}Dl!*TH`FVSn!-Iu|hGH_W8`vP`I1gx^$HtTG}d^coT{$3@GUpl5zp%O2oS`yi?o|MOJA%C^xDt*yuLH~X+B2+Dz@
zz6yr_<;B||P-8$vW1xw#>b)f*&!Nt#**
zm*Qm%v#vb5x45JPOR1%;O{#Q(co6r!5cR%{iGkEK9%u{FTOjZM0HXheV_
z1)e|3F7O@Z=H>)L7C3PXhw8Mve8AT7RmhXTpWJu&a9Ug(&_%2TW?m!!=&^J3MR)>6
zSP_;FgkfYzNMT_w9jAuFuqQA)2jQ*3Ch>i!vP0DuBI?{M&q6}-a&zgCxW?P4sWqUa
z;a&Fr{mt30&6_Qd*39-Gkf90)sA*_4m6v<#LYTHV)&fZLsF56m627B|fGP(pLKx7s
zz`zE?XSi(Bg);aFCgLY3)1Ri-M5XJ~P~1cGl$PXUF(Ey*r#GKu
zj=#8arTd6+%t5ql`}?SycKfTeC->h9bl-iKf9r{Vs6H}_u71@627`eCip4c&aKiw_4h8YU>oL`B2n0V~>=y)Ln-)JD
z|K;$uO$bELKkmUfs@pFh5P=E5{E9&QuJFGHTv#F*xBL({uJDFF)iGvo
z2h;ysWT^HfQS9_5;(8rX$!~e~v5N}4_MnNe2F1g#v}@~R3g7L8rS!;8z{JOAWvifN
z)53@%t+b_Xw6_FPP*9M9{~jue`+jr_tg#cKs@`=c3&^+YPAa1!@c6}?a}2J^SFc`u
zvaK2waYCbMJq5G_v7Duu5LCivL*>1fc>Z%I+eRnbO_;)_EEZer_?qNhi!_AidD}JF*x(ko#!+%G7>H4YF_F+
z_gq*p&UZ5Ht=dCYKR0rmso8jLEM_Pm5!2_-SiItQzO|#HATKX3KYxkVhnzA)C^$7V
zG!*GxTnH2DKhZ`e`_1-O)YjHUL_}mb)T9UPtn6DKm1nNfO9n$Ejk7GxjEusuvpIEA
zYn6h8Q_k%fk*I(b6l(-E+7ONTw%25F{-0_OcqZ)6Vpt#Z@&ctIPr{Fcgao{%rXdtm
z`IHx%I12#ZY(iXZQ=}G(Pu+qs*q~krTJpP*3+GZpO^l6IX3MvP9l3fQrZAVJ(u3s}
zQE*R)Y$K<1KNUJRKUDAIYh-LJclK;sYwM!yDTKpI)nG2VkU%R<5TT=IXlSUet_~Xv
zc3OMxa9bCi7-@OC=DwiyYlH4mACLB2SY0vn#`j`ZB%U3TmlCGwJm9?ZsIu5@F_=$f
zxj&dsOIw?y%pfPaRhKcd$M)Ul9M7pdueMC~An}T-td}k{_7rb5l+k=wsy|;Jo
z-U5oRv(`k-(fIXA6JmE~=WA?fSs9apr7_zJ2;m0iAFo%8M55wG@Gt`Pw;w5LuMNzL
zJtw4bD|JTc#{TTJK2*L-SLY|&lH%fgbRUI6i8Cl(pRbENVfKpt6h8DV;bSBJd;IFs
zOvxYLLb7qpDR?q48|c!x@9miuJv}{8ZX%?tR=b_EjZ91&l*OTrp04iav4K)dJH*8&
zQtCO;to~#llQY22&L(DNUBfkDu=Ze{BI38h(*EsOq4p&#kBE}@>f%I8iZ00)c1Gaf
zHTTG;u)$x5{)t8TFNF|)59Z$j$p1%7Q@ASsojZ4^Jq6iCMJpHO002eLdyZcT1+Kxb
z$ECWwJQT_Yb?z>=$hf_(hDOz^!`gt4D1Ci>D=TI1*?ymeQCC1}v>NPifij+;*~drY
z#{Ja{4O^ZbklAP@tSOnwDy&dmf@UF^y3~tGFy;kP^iji
zMa-ohlWgl)gExv8YHhfryi4atC^?(9aLJxM+Ylw=&`0oJ*)PB;t>I$>SOBnW6fvOX
z{Z%%L#wNJ+7E|QWT{-qE^CJ?;=R8JFpa`W&N&ifig-br(bCd!gOsCWPSW5*^g;`2Z
zp+@VG=WjijO-qSet#?pa_?+!OQ+W2Zf$#83jpC9LNl8gj-|@GWyrcDT%4-h}xm}h}
zp8LAzAv})YAsGGF7ojruhN?o@xyZHLIB5>)u$DtI$Q}~O-QC?4!Q42ziPfoW-0DOM
zj#1K=X;DC(uaidZN#uO?WvEyTjIlmS21}Seysf9Zo8q_7fN$PwVtH$L@@$7?m?Df<
zoKzsIf36hLV=(6ash^xSQ)ua9&r)*FL!7ZD-)BBwFR&fFPO0100*&1<~rZCDJI=cbDb
zIVU;k^XGIFacSfG%IL->)P(eb%q5Jmogxn+B_Ta?#@$)nwj*hNzEUemCi5dJuc)Uf
z1+TKc@=n8Te0qAC=@W6nthw$cb$#HasCn4iFAw=T+QMlR~?i^6{Xxcu~SfL+WxHI
zyz*M6xJz
zTmy)ZrnB>uAaVH{%=fMXXNEtdXLWzHQG-2(TOSe)6*_ljY7=03h$<9;30>T3OFU~4
z*s^;DFYr1uV64IzvOa9{uCA`mPE%`Z72tqpo!eorD8_S^xWFeKw<~N|@uC<~;HE8v
zwO(4lm||ZS5r@;(u6wjw{P^+Xjq8qZyLUkx9L>th^IV=CFw=!=>c#AsQ@#gBhVTBh
zrQZJtg!l_e?7yG;pGly?9hA%UTie>ope9wBXJ%xSj=y^{e~u6Ig8uQZVx?@>8m)vz
z*pT)k^bQnhObPa~dK$mr0Lwbwfxsv9Tc&{+LaJXZviNy23TNB;bR0+jc_
zeePXC)yjo8+dkl%dog`wKs&bX+{ZC-&cT>|*FRP$R&RBtyQ!%OCK~hyyQ_KH?
zaNlwM{P|r%DoqAUZlG2{q#9LhwE=HnWekjf1riFxq;jaVWug1hbQhFd^E}5Nyz*rC
zimifn@*DaL2IjXs@DTXJrBD%NkjZ>V)?;12!H3B80f7CE&dx%=m3dHY^!b1G_V$)#
zj5dlsKX`UBkH^panvqeghYrTp_Or}AghL|0B3-<sshlPSVfFmPyS2=x2V!>
zdXz(4SFVGu)Y|6yMj0bm?Jqm;pc79$fYuP*yY@Zem#az?^Utihwp%F43NcQI?<
z;HAM}cMN=am~B~fyCP^S+_BkbSQlvQfGZMLqt4jV
zC)=b6%Y&edF*Ds9SHfq0IL$C6U_LCq-dC2RgY_S&zBYu}x3Gw&1B*qdr+-wr#sx=8
zcXPn*ui{_+U0nan;`$dcvHxBKsTcSvmzI`*9NQ}c-Tr;|@g}k9@p01}yPD;>A<5&%
zfw6NW6`E2y(^KG}EC}b!9s4Tga`WaJ@OZVLrBhQ0%kL_AcfxwqHK%xtAejc?@UDF;9jKoB*p2@vWEe#`E6w!pap
zkD=m?#bKqAuUS|qf~*fcVTEJTC6fD?RLoR+X5IBOoC;=Os@mD!zBC$*evi*891IaR
z$u1gwL#{Z4E`9kgfinPRdv9A?xWPf08}%>K#V)XiG!=j+HR0X6!PG;y9kyZfh3l*^yyYwo&2sECrPGVVl;#bu$N;Z0vbMIivhpV*41UMhKGeF3EC?a1F4)Cx!TOTduEdzCvXpGXxS!+aWtP{U*R
zroTUvTh#A`!9m44E(A`faqK+Y8F&YRD8E};PJsCuSxZU^PR&WB&taMCJq46D)G|T&
zdudI8Q|^dHv#Xm!_DULPwY9ZzJl+3T3GS*2IMzDez{;vu4ZQq;sy?u|HAMYolVvef
zvLk~FuvcNv4ykP^SEHA@NC9%mo*33ssM0kKP`?emucP=?O84L)LFNCIGUqAY3UvvL$U;ixy|IA?d|2rlh
zmlpu06ShF`9i6k=i1VYSt$Ibx4vVJ$3|+~SVOct)HiVx5QeWAkKss&-mhE(jj@V`
zTAw$5z?6j3^Eh%7iio_N+j_5=sp5O$vSaLK8-Qw{#DR^(@#+Cq)-9|?h8WRDaPmr>0zM732vK{
zwFOU@>H+ePJc8?}zwHk?g{g4_H3{js8)0SCspWlmWF)#fZvtFxF!Gyb3i>E*ZS)ao
zToL0aB)}fe*Pc=Q8NDqsa}#=Qy|m&
znwwwIPxu%CkBFu7u;Y=-!N|_STSNbcNJaM+d;Jut2f=cLKvBA|Kgc?6_@d6QgoQ@M
z6dQ6&5`jQSPPPY34&v{3X(f}_mwM1Cc&XCa3&@&Hjh7&Q211pQks)-(?s9wXdiIY*
zjTC&NW6s`*7g~IZF$tLN_aN3NaFg)
zt%BI)t#U=y$oZSlqJz+BkK(OV@n2mZ5M>QKrm;B=EC$EG05Y+eeQbY<&zNx0uNXJ?
z<|NG&*NcEtsXL}NcO8(qF-&5;IL;E?5t(
z+uA;ZtcEX6E-8Uz!WW_!GtvfI1=NR>gm8PL7EF{3v)mgT?QEPmY4!#T;vDN!qE434!DzuKDO+jj>z+0|${Ace75YLQ`z
z4)}oeB=41LKdZ#8neNY1`8{q}*2)-`CHeH=*_(5N-@w*uxN{1j^EH0GCcbpORx
zY$m@4BC9yR#x3QKP0M`gV8?KJd@@Zx4Vq%12GO9!LPNwSDLMHtqZ)WOYciWPNiCsK
zfs7K4G;lj?lgWkemCP!9mz4$j1(FE&{&EmQu-*HhaR+53`3!uW}C<4-QEd8jE{W5}vpfauL8bN4d{PG*zI%|AF*Bb#-s2%V%W)s5jH?1_tm4|82N561
zpXz~JsnN|j#2+}+39cNdL=WygN3K-+3L&0PKo<%)gnZDc#L=Y8r2=AuvUi5|rK!nD
zsF2Y9qXe#(L%e_fnB8?KV<{^1H1JVF_n-cwBg;zNW597PW=g3}Yb`2iL%5a$OQtNeT;|$Xu
zWO9rFr)BA(G%u{8^&TR#2j5I7!=n7@Z8Gw%aoa0hN+B(iNQTz3)oP-7A!~KYP%ASt
z^V=f(!0&Ti-~ekm!LwCgi2RE9b`xTxP`_#r>DaCq?Arh^ORvN!t%z%b5I8O=sVz|k
zg~q|HTWLY0l1Elfj@p%bbR#4dH*si;iBepq!$XfE`5nm)+vHvedh+O%*G*krD^My&
z+{9!-DM=Wq_e0yc*BQ8n28?H`XF
zRrv*etNuk=WS{QN?h2`_6L{0e-d$V%aiesOfOcE)Q%SLjQ(o7p^K)=m0%v1-`surI
z7z#4W4UMki28A7YejkE(BCLjok55-e$GXth+k1IsVeD84WDZhbxUf$1>S>B8-iV2ZLEGR-MRH!R~wEr)6aYh*{@PpPpl`%*@OH
zSR4zvq@f`xdl12%h7AsHjNJBdcRv--$i5;Kc}P?=^xZg2RE=HEg)N(BrGZnX!!(Ax
zgW$#wtcq#BPo_^rd5S#7bl`H|M%Rc&%Koc)%`*2=2?SPMq%`p9-mb2iu?477lKY-4
zEG#4@CZ?pM)Y#2KiU5}j7ugf|q^-T3Qh3W2tPvoSb#-;g25EZ7TwGln>gzczqr<~V
zZ{PkJ-C&(ee7mLa3^YsZ+O_Ld&2V{nd1(6Mi|>Gk0)vOnkLc)VFdH6U92}{O{PN|?
ziXUs0KE;9an>UNsKjFeI7FlL3^4vWht_41!si~;~h5(;+b)A78$-PlK0#OVoQWFys
z-aChA^u@*c#>Q^<&HW^f7?DR)k_^&ZnXIb2oBL9*AXp
z1pPp2Y#hB^)Y8%dV=TeYouxF9|YWxva+(^;9xM0!bNxk
zp8(OGq0!jWf|W8r-6lLaP+3(~1xb&;zdyuCH=Ue{^3F*=6a&X@8y*=B#A4gert5$A
c*H-zW*fTGGY@1vM;)u{x*SVN=;d;>j0+Po8zW@LL

diff --git a/previews/PR259/assets/rmhjrlj.mCtKcWOr.png b/previews/PR259/assets/ykfdwsk.mCtKcWOr.png
similarity index 100%
rename from previews/PR259/assets/rmhjrlj.mCtKcWOr.png
rename to previews/PR259/assets/ykfdwsk.mCtKcWOr.png
diff --git a/previews/PR259/assets/ywvqbqr.CTgutbHQ.png b/previews/PR259/assets/ywvqbqr.CTgutbHQ.png
new file mode 100644
index 0000000000000000000000000000000000000000..14b3d959ff94c74ce2556bd9fa4b30aa2f3bc0fb
GIT binary patch
literal 58855
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
bk*WE;0$*5zmfsg6`*Oe1L0W>M@umL(cr2}3

literal 0
HcmV?d00001

diff --git a/previews/PR259/assets/fhasrqb.C4--srcf.png b/previews/PR259/assets/zhgkkba.C4--srcf.png
similarity index 100%
rename from previews/PR259/assets/fhasrqb.C4--srcf.png
rename to previews/PR259/assets/zhgkkba.C4--srcf.png
diff --git a/previews/PR259/call_notes.html b/previews/PR259/call_notes.html
index 6792f751e..f2c97eefe 100644
--- a/previews/PR259/call_notes.html
+++ b/previews/PR259/call_notes.html
@@ -9,9 +9,9 @@
     
     
     
-    
+    
     
-    
+    
     
     
     
@@ -22,7 +22,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/PR259/experiments/accurate_accumulators.html b/previews/PR259/experiments/accurate_accumulators.html index 8d82c1d28..347775fb8 100644 --- a/previews/PR259/experiments/accurate_accumulators.html +++ b/previews/PR259/experiments/accurate_accumulators.html @@ -9,9 +9,9 @@ - + - + @@ -27,7 +27,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/PR259/experiments/predicates.html b/previews/PR259/experiments/predicates.html index 654c1a09b..28afc598d 100644 --- a/previews/PR259/experiments/predicates.html +++ b/previews/PR259/experiments/predicates.html @@ -9,11 +9,11 @@ - + - + - + @@ -62,7 +62,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
@@ -119,7 +119,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/PR259/explanations/crs.html b/previews/PR259/explanations/crs.html index d0ed6ddd2..9c20c5d7b 100644 --- a/previews/PR259/explanations/crs.html +++ b/previews/PR259/explanations/crs.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@
Skip to content
- + \ No newline at end of file diff --git a/previews/PR259/explanations/manifolds.html b/previews/PR259/explanations/manifolds.html index 2cbab801a..ee90a3e4c 100644 --- a/previews/PR259/explanations/manifolds.html +++ b/previews/PR259/explanations/manifolds.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@
Skip to content

Manifolds

A manifold is, mathematically, a description of some space that is locally Euclidean (i.e., locally flat). All geographic projections, and the surface of the sphere and ellipsoid, fall under this category of space - and these are all the spaces that are relevant to geographic geometry.

What manifolds are available?

GeometryOps has three Manifold types: Planar, Spherical, and Geodesic.

  • Planar() is, as the name suggests, a perfectly Cartesian, usually 2-dimensional, space. The shortest path from one point to another is a straight line.

  • Spherical(; radius) describes points on the surface of a sphere of a given radius. The most convenient sphere for geometry processing is the unit sphere, but one can also use the sphere of the Earth for e.g. projections.

  • Geodesic(; semimajor_axis, inv_flattening) describes points on the surface of a flattened ellipsoid, similar to the Earth. The parameters describe the curvature and shape of the ellipsoid, and are equivalent to the flags +a and +f in Proj's ellipsoid specification. The default values are the values of the WGS84 ellipsoid. For Geodesic, we need an AbstractGeodesic that can wrap representations from Proj.jl and SphericalGeodesics.jl.

The idea here is that the manifold describes how the geometry needs to be treated.

Why this is needed

The classical problem this is intended to solve is that in GIS, latitude and longitude coordinates are often treated as planar coordinates, when they in fact live on the sphere/ellipsoid, and must be treated as such. For example, computing the area of the USA on the lat/long plane yields a result of 1116, which is plainly nonsensical.

How this is done

In order to avoid this, we've introduced three complementary CRS-related systems to the JuliaGeo ecosystem.

  1. GeoInterface's crstrait. This is a method that returns the ideal CRS type of a geometry, either Cartesian or Geographic.

  2. Proj's PreparedCRS type, which extracts ellipsoid parameters and the nature of the projection from a coordinate reference system, and caches the results in a struct. This allows GeometryOps to quickly determine the correct manifold to use for a given geometry.

  3. GeometryOps's Manifold type, which defines the surface on which to perform operations. This is what allows GeometryOps to perform calculations correctly depending on the nature of the geometry.

The way this flow works, is that when you load a geometry using GeoDataFrames, its CRS is extracted and parsed into a PreparedCRS type. This is then used to determine the manifold to use for the geometry, and the geometry is converted to the manifold's coordinate system.

There is a table of known geographic coordinate systems in GeoFormatTypes.jl, and anything else is assumed to be a Cartesian or planar coordinate system. CRStrait is used as the cheap determinant, but PreparedCRS is more general and better to use if possible.

When GeometryOps sees a geometry, it first checks its CRS to see if it is a geographic coordinate system. If it is, it uses the PreparedCRS, or falls back to crstrait and geographic defaults to determine the manifold.

Algorithms and manifolds

Algorithms define what operation is performed on the geometry; however, the choice of algorithm can also depend on the manifold. L'Huilier's algorithm for the area of a polygon is not applicable to the plane, but is applicable to either the sphere or ellipsoid, for example.

- + \ No newline at end of file diff --git a/previews/PR259/explanations/paradigms.html b/previews/PR259/explanations/paradigms.html index be64b5653..10d5b9b68 100644 --- a/previews/PR259/explanations/paradigms.html +++ b/previews/PR259/explanations/paradigms.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,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/PR259/explanations/peculiarities.html b/previews/PR259/explanations/peculiarities.html index be30d60d3..cfc149efe 100644 --- a/previews/PR259/explanations/peculiarities.html +++ b/previews/PR259/explanations/peculiarities.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,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/PR259/explanations/winding_order.html b/previews/PR259/explanations/winding_order.html index 8d91d5e19..8db21e5ec 100644 --- a/previews/PR259/explanations/winding_order.html +++ b/previews/PR259/explanations/winding_order.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@
Skip to content
- + \ No newline at end of file diff --git a/previews/PR259/hashmap.json b/previews/PR259/hashmap.json index 033066545..8b0f45a66 100644 --- a/previews/PR259/hashmap.json +++ b/previews/PR259/hashmap.json @@ -1 +1 @@ -{"api.md":"BjOA8ThU","call_notes.md":"13Fr_TRb","experiments_accurate_accumulators.md":"DoRevHkn","experiments_predicates.md":"CLK_u2-Y","explanations_crs.md":"Bf--HcZh","explanations_manifolds.md":"CLjHFpct","explanations_paradigms.md":"BjaIN6hE","explanations_peculiarities.md":"DUuFqdB_","explanations_winding_order.md":"idA6wv2x","index.md":"B_IHom4P","introduction.md":"Da77bdJE","source_geometryops.md":"Ce7nlYQj","source_geometryopsflexijoinsext_geometryopsflexijoinsext.md":"Bp_G6x8O","source_geometryopslibgeosext_buffer.md":"CYzSCJgw","source_geometryopslibgeosext_geometryopslibgeosext.md":"CbgB4JxQ","source_geometryopslibgeosext_segmentize.md":"Bdscc5e2","source_geometryopslibgeosext_simple_overrides.md":"CkCJb5Yh","source_geometryopslibgeosext_simplify.md":"C2QUha4_","source_geometryopsprojext_geometryopsprojext.md":"Dwoh3ExF","source_geometryopsprojext_reproject.md":"Dl8AtACk","source_geometryopsprojext_segmentize.md":"CpuSS602","source_methods_angles.md":"BrEpcqfH","source_methods_area.md":"Dah0srf2","source_methods_barycentric.md":"FNhm1rob","source_methods_buffer.md":"BIwYl2eW","source_methods_centroid.md":"Dm0OZPBY","source_methods_clipping_clipping_processor.md":"ChDFCqHs","source_methods_clipping_coverage.md":"I3CmYQZR","source_methods_clipping_cut.md":"BZkVBeDi","source_methods_clipping_difference.md":"BOSoRQpu","source_methods_clipping_intersection.md":"CLIavVgq","source_methods_clipping_predicates.md":"DABa4nX5","source_methods_clipping_union.md":"cKYnnZNN","source_methods_convex_hull.md":"C85szPKf","source_methods_distance.md":"BiREGcW9","source_methods_equals.md":"C0JGt2AW","source_methods_geom_relations_contains.md":"VIlx77Qk","source_methods_geom_relations_coveredby.md":"CLu86Dst","source_methods_geom_relations_covers.md":"5TIFrjW7","source_methods_geom_relations_crosses.md":"CC6SNNlO","source_methods_geom_relations_disjoint.md":"QOuhVB9O","source_methods_geom_relations_geom_geom_processors.md":"Di67Igoe","source_methods_geom_relations_intersects.md":"WNMjFrcC","source_methods_geom_relations_overlaps.md":"0TWszI_z","source_methods_geom_relations_touches.md":"CWU5CXuI","source_methods_geom_relations_within.md":"Bg8YPm-m","source_methods_orientation.md":"B99ezNoa","source_methods_polygonize.md":"Cu1LHUXm","source_not_implemented_yet.md":"CJx2MqA9","source_primitives.md":"DvXJorSu","source_src_apply.md":"CVvCElZR","source_src_applyreduce.md":"Bl7ZVjCO","source_src_geometry_utils.md":"Z-sKENUm","source_src_geometryopscore.md":"D-pvoVt_","source_src_keyword_docs.md":"CWBMX7V2","source_src_other_primitives.md":"dtBRK5Cf","source_src_types_algorithm.md":"BITxKhi_","source_src_types_booltypes.md":"y_SU5z79","source_src_types_exceptions.md":"DF6p4Bm7","source_src_types_manifold.md":"Ct-e-cXz","source_src_types_operation.md":"BvP9V0jW","source_src_types_traittarget.md":"CbqzubXc","source_transformations_correction_closed_ring.md":"DwyhD2WE","source_transformations_correction_geometry_correction.md":"CJuqib7t","source_transformations_correction_intersecting_polygons.md":"D3Q-1by7","source_transformations_extent.md":"DRYVuHgf","source_transformations_flip.md":"CN2XEkuc","source_transformations_forcedims.md":"DID_ckJ1","source_transformations_reproject.md":"BCaJrZww","source_transformations_segmentize.md":"BSWtZ6uM","source_transformations_simplify.md":"CGLyBXhr","source_transformations_transform.md":"Dba0cKQP","source_transformations_tuples.md":"eLzpE384","source_types.md":"CZ5zvd6l","source_utils_loopstatemachine.md":"BFmBIDzI","source_utils_strdualquery.md":"CdYCwv_Y","source_utils_utils.md":"DrIeaE16","tutorials_creating_geometry.md":"cmMoMkYm","tutorials_geodesic_paths.md":"Bi6AfT8k","tutorials_spatial_joins.md":"BhkCpzpU"} +{"api.md":"2CTl0mwp","call_notes.md":"13Fr_TRb","experiments_accurate_accumulators.md":"DoRevHkn","experiments_predicates.md":"CwpeGtcZ","explanations_crs.md":"Bf--HcZh","explanations_manifolds.md":"CLjHFpct","explanations_paradigms.md":"BjaIN6hE","explanations_peculiarities.md":"DUuFqdB_","explanations_winding_order.md":"idA6wv2x","index.md":"B_IHom4P","introduction.md":"Da77bdJE","source_geometryops.md":"Ce7nlYQj","source_geometryopsflexijoinsext_geometryopsflexijoinsext.md":"Bp_G6x8O","source_geometryopslibgeosext_buffer.md":"CYzSCJgw","source_geometryopslibgeosext_geometryopslibgeosext.md":"CbgB4JxQ","source_geometryopslibgeosext_segmentize.md":"Bdscc5e2","source_geometryopslibgeosext_simple_overrides.md":"CkCJb5Yh","source_geometryopslibgeosext_simplify.md":"C2QUha4_","source_geometryopsprojext_geometryopsprojext.md":"Dwoh3ExF","source_geometryopsprojext_reproject.md":"Dl8AtACk","source_geometryopsprojext_segmentize.md":"CpuSS602","source_methods_angles.md":"QSMePFXJ","source_methods_area.md":"ZZGCMhJb","source_methods_barycentric.md":"SwJFTLbx","source_methods_buffer.md":"BIwYl2eW","source_methods_centroid.md":"DLnq527K","source_methods_clipping_clipping_processor.md":"CVJUFgvw","source_methods_clipping_coverage.md":"7AzAfHEY","source_methods_clipping_cut.md":"s0ApEmIZ","source_methods_clipping_difference.md":"DEXW95_U","source_methods_clipping_intersection.md":"Bigo6bS9","source_methods_clipping_predicates.md":"DABa4nX5","source_methods_clipping_union.md":"D30VBadw","source_methods_convex_hull.md":"DsezimTp","source_methods_distance.md":"CS0zsiKS","source_methods_equals.md":"D83aqY81","source_methods_geom_relations_contains.md":"CgzN2dAX","source_methods_geom_relations_coveredby.md":"sX_y8V1r","source_methods_geom_relations_covers.md":"Qct8xDi5","source_methods_geom_relations_crosses.md":"CC6SNNlO","source_methods_geom_relations_disjoint.md":"B3kUZtEp","source_methods_geom_relations_geom_geom_processors.md":"Di67Igoe","source_methods_geom_relations_intersects.md":"B3WWAOpP","source_methods_geom_relations_overlaps.md":"DE3_JRNZ","source_methods_geom_relations_touches.md":"CVRi9dgb","source_methods_geom_relations_within.md":"TxMgBL2-","source_methods_orientation.md":"B99ezNoa","source_methods_polygonize.md":"Cu1LHUXm","source_not_implemented_yet.md":"CJx2MqA9","source_primitives.md":"DvXJorSu","source_src_apply.md":"Kbhd3sJW","source_src_applyreduce.md":"Bl7ZVjCO","source_src_geometry_utils.md":"Z-sKENUm","source_src_geometryopscore.md":"D-pvoVt_","source_src_keyword_docs.md":"CWBMX7V2","source_src_other_primitives.md":"PuhCqAkV","source_src_types_algorithm.md":"BITxKhi_","source_src_types_booltypes.md":"y_SU5z79","source_src_types_exceptions.md":"DF6p4Bm7","source_src_types_manifold.md":"Ct-e-cXz","source_src_types_operation.md":"BvP9V0jW","source_src_types_traittarget.md":"CbqzubXc","source_transformations_correction_closed_ring.md":"DwyhD2WE","source_transformations_correction_geometry_correction.md":"Dl_s_MAo","source_transformations_correction_intersecting_polygons.md":"Kc5GxVrF","source_transformations_extent.md":"DRYVuHgf","source_transformations_flip.md":"CN2XEkuc","source_transformations_forcedims.md":"DID_ckJ1","source_transformations_reproject.md":"BCaJrZww","source_transformations_segmentize.md":"cTDQnynI","source_transformations_simplify.md":"7t6xu-a1","source_transformations_transform.md":"Dba0cKQP","source_transformations_tuples.md":"eLzpE384","source_types.md":"CZ5zvd6l","source_utils_loopstatemachine.md":"BFmBIDzI","source_utils_strdualquery.md":"BtZT1ewz","source_utils_utils.md":"DrIeaE16","tutorials_creating_geometry.md":"KKAr36jr","tutorials_geodesic_paths.md":"DVzoewbj","tutorials_spatial_joins.md":"C5qn5hXN"} diff --git a/previews/PR259/index.html b/previews/PR259/index.html index d23f78a19..65872ca47 100644 --- a/previews/PR259/index.html +++ b/previews/PR259/index.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,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/PR259/introduction.html b/previews/PR259/introduction.html index 6006c8570..cb890f3cb 100644 --- a/previews/PR259/introduction.html +++ b/previews/PR259/introduction.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,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/PR259/source/GeometryOps.html b/previews/PR259/source/GeometryOps.html index 2c804c458..307e48f44 100644 --- a/previews/PR259/source/GeometryOps.html +++ b/previews/PR259/source/GeometryOps.html @@ -9,9 +9,9 @@ - + - + @@ -113,7 +113,7 @@ end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/GeometryOpsFlexiJoinsExt/GeometryOpsFlexiJoinsExt.html b/previews/PR259/source/GeometryOpsFlexiJoinsExt/GeometryOpsFlexiJoinsExt.html index 88b4e7236..14f383e57 100644 --- a/previews/PR259/source/GeometryOpsFlexiJoinsExt/GeometryOpsFlexiJoinsExt.html +++ b/previews/PR259/source/GeometryOpsFlexiJoinsExt/GeometryOpsFlexiJoinsExt.html @@ -9,9 +9,9 @@ - + - + @@ -37,7 +37,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/PR259/source/GeometryOpsLibGEOSExt/GeometryOpsLibGEOSExt.html b/previews/PR259/source/GeometryOpsLibGEOSExt/GeometryOpsLibGEOSExt.html index c4b10d44b..b2c7b52ad 100644 --- a/previews/PR259/source/GeometryOpsLibGEOSExt/GeometryOpsLibGEOSExt.html +++ b/previews/PR259/source/GeometryOpsLibGEOSExt/GeometryOpsLibGEOSExt.html @@ -9,9 +9,9 @@ - + - + @@ -52,7 +52,7 @@ include("simple_overrides.jl") end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/GeometryOpsLibGEOSExt/buffer.html b/previews/PR259/source/GeometryOpsLibGEOSExt/buffer.html index 69ea6bc5b..798ef1a6b 100644 --- a/previews/PR259/source/GeometryOpsLibGEOSExt/buffer.html +++ b/previews/PR259/source/GeometryOpsLibGEOSExt/buffer.html @@ -9,9 +9,9 @@ - + - + @@ -52,7 +52,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/PR259/source/GeometryOpsLibGEOSExt/segmentize.html b/previews/PR259/source/GeometryOpsLibGEOSExt/segmentize.html index 45cbaa697..cda9687cc 100644 --- a/previews/PR259/source/GeometryOpsLibGEOSExt/segmentize.html +++ b/previews/PR259/source/GeometryOpsLibGEOSExt/segmentize.html @@ -9,9 +9,9 @@ - + - + @@ -42,7 +42,7 @@ threaded ) end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides.html b/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides.html index c844b5d44..44e3d7f70 100644 --- a/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides.html +++ b/previews/PR259/source/GeometryOpsLibGEOSExt/simple_overrides.html @@ -9,9 +9,9 @@ - + - + @@ -67,7 +67,7 @@ calc_extent = false ) end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/GeometryOpsLibGEOSExt/simplify.html b/previews/PR259/source/GeometryOpsLibGEOSExt/simplify.html index ccce5199d..62f4a2daf 100644 --- a/previews/PR259/source/GeometryOpsLibGEOSExt/simplify.html +++ b/previews/PR259/source/GeometryOpsLibGEOSExt/simplify.html @@ -9,9 +9,9 @@ - + - + @@ -50,7 +50,7 @@ kw... ) end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/GeometryOpsProjExt/GeometryOpsProjExt.html b/previews/PR259/source/GeometryOpsProjExt/GeometryOpsProjExt.html index e1fb1bf60..f170361fa 100644 --- a/previews/PR259/source/GeometryOpsProjExt/GeometryOpsProjExt.html +++ b/previews/PR259/source/GeometryOpsProjExt/GeometryOpsProjExt.html @@ -9,9 +9,9 @@ - + - + @@ -29,7 +29,7 @@ include("segmentize.jl") end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/GeometryOpsProjExt/reproject.html b/previews/PR259/source/GeometryOpsProjExt/reproject.html index 8da591e6f..62c81c824 100644 --- a/previews/PR259/source/GeometryOpsProjExt/reproject.html +++ b/previews/PR259/source/GeometryOpsProjExt/reproject.html @@ -9,9 +9,9 @@ - + - + @@ -65,7 +65,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/GeometryOpsProjExt/segmentize.html b/previews/PR259/source/GeometryOpsProjExt/segmentize.html index e241a9fff..a675b2bd8 100644 --- a/previews/PR259/source/GeometryOpsProjExt/segmentize.html +++ b/previews/PR259/source/GeometryOpsProjExt/segmentize.html @@ -9,9 +9,9 @@ - + - + @@ -52,7 +52,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/PR259/source/methods/angles.html b/previews/PR259/source/methods/angles.html index 01c3d622b..6bef46c1c 100644 --- a/previews/PR259/source/methods/angles.html +++ b/previews/PR259/source/methods/angles.html @@ -9,11 +9,11 @@ - + - + - + @@ -26,7 +26,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
@@ -145,7 +145,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/PR259/source/methods/area.html b/previews/PR259/source/methods/area.html index bcf103b74..65632da11 100644 --- a/previews/PR259/source/methods/area.html +++ b/previews/PR259/source/methods/area.html @@ -9,11 +9,11 @@ - + - + - + @@ -27,10 +27,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
@@ -108,7 +108,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/PR259/source/methods/barycentric.html b/previews/PR259/source/methods/barycentric.html index 9bec4c042..e98486f97 100644 --- a/previews/PR259/source/methods/barycentric.html +++ b/previews/PR259/source/methods/barycentric.html @@ -9,11 +9,11 @@ - + - + - + @@ -88,7 +88,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
@@ -436,7 +436,7 @@
 
 struct Wachspress <: AbstractBarycentricCoordinateMethod
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/buffer.html b/previews/PR259/source/methods/buffer.html index 2846458e0..ec8c65ffb 100644 --- a/previews/PR259/source/methods/buffer.html +++ b/previews/PR259/source/methods/buffer.html @@ -9,9 +9,9 @@ - + - + @@ -32,7 +32,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/PR259/source/methods/centroid.html b/previews/PR259/source/methods/centroid.html index 60c36e614..3b3dac588 100644 --- a/previews/PR259/source/methods/centroid.html +++ b/previews/PR259/source/methods/centroid.html @@ -9,11 +9,11 @@ - + - + - + @@ -27,9 +27,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
@@ -114,7 +114,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/PR259/source/methods/clipping/clipping_processor.html b/previews/PR259/source/methods/clipping/clipping_processor.html index db97b5add..bd1124216 100644 --- a/previews/PR259/source/methods/clipping/clipping_processor.html +++ b/previews/PR259/source/methods/clipping/clipping_processor.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,7 +21,43 @@ -
Skip to content

Polygon clipping helpers

This file contains the shared helper functions for the polygon clipping functionalities.

This enum defines which side of an edge a point is on

julia
@enum PointEdgeSide left=1 right=2 unknown=3

Constants assigned for readability

julia
const enter, exit = true, false
+    
Skip to content

Polygon clipping helpers

This file contains the shared helper functions for the polygon clipping functionalities.

This file specifically defines helpers for the Foster-Hormann clipping algorithm.

julia
"""
+    abstract type IntersectionAccelerator
+
+The abstract supertype for all intersection accelerator types.
+
+The idea is that these speed up the edge-edge intersection checking process,
+perhaps at the cost of memory.
+
+The naive case is `NestedLoop`, which is just a nested loop, running in O(n*m) time.
+
+Then we have `SingleSTRtree`, which is a single STRtree, running in O(n*log(m)) time.
+
+Then we have `DoubleSTRtree`, which is am simultaneous double-tree traversal of two STRtrees.
+
+Finally, we have `AutoAccelerator`, which is an automatic accelerator that chooses the best
+accelerator based on the size of the input polygons.  This gets materialized in build_a_list for now.
+"""
+abstract type IntersectionAccelerator end
+struct NestedLoop <: IntersectionAccelerator end
+struct SingleSTRtree <: IntersectionAccelerator end
+struct DoubleSTRtree <: IntersectionAccelerator end
+struct AutoAccelerator <: IntersectionAccelerator end
+
+"""
+    FosterHormannClipping{M <: Manifold, A <: Union{Nothing, Accelerator}} <: GeometryOpsCore.Algorithm{M}
+
+A type that represents the Foster-Hormann clipping algorithm.

Arguments

julia
- `manifold::M`: The manifold on which the algorithm operates.
+- `accelerator::A`: The accelerator to use for the algorithm.  Can be `nothing` for automatic choice, or a custom accelerator.
+"""
+struct FosterHormannClipping{M <: Manifold, A <: IntersectionAccelerator} <: GeometryOpsCore.Algorithm{M}
+    manifold::M
+    accelerator::A

TODO: add exact flag TODO: should exact flag be in the type domain?

julia
end
+
+
+FosterHormannClipping(; manifold::Manifold = Planar(), accelerator = nothing) = FosterHormannClipping(manifold, isnothing(accelerator) ? AutoAccelerator() : accelerator)
+FosterHormannClipping(manifold::Manifold, accelerator::Union{Nothing, IntersectionAccelerator} = nothing) = FosterHormannClipping(manifold, isnothing(accelerator) ? AutoAccelerator() : accelerator)
+FosterHormannClipping(accelerator::Union{Nothing, IntersectionAccelerator}) = FosterHormannClipping(Planar(), isnothing(accelerator) ? AutoAccelerator() : accelerator)

special case for spherical / geodesic manifolds since they can't use STRtrees (because those don't work on the sphere)

julia
FosterHormannClipping(manifold::Union{Spherical, Geodesic}, accelerator::Union{Nothing, IntersectionAccelerator} = nothing) = FosterHormannClipping(manifold, isnothing(accelerator) ? NestedLoop() : (accelerator isa AutoAccelerator ? NestedLoop() : accelerator))

This enum defines which side of an edge a point is on

julia
@enum PointEdgeSide left=1 right=2 unknown=3

Constants assigned for readability

julia
const enter, exit = true, false
 const crossing, bouncing = true, false
 
 #= A point can either be the start or end of an overlapping chain of points between two
@@ -57,31 +93,75 @@
 GI.ncoord(::GI.PointTrait, p::PolyNode{T}) where T = 2 # TODO: change this to accomodate 3D spherical points
 GI.getcoord(::GI.PointTrait, p::PolyNode{T}, i::Int) where T = p.point[i]
 GI.crs(p::PolyNode{T}) where T = nothing # TODO: change this to accomodate 3D spherical points

Checks equality of two PolyNodes by backing point value, fractional value, and intersection status

julia
equals(pn1::PolyNode, pn2::PolyNode) = pn1.point == pn2.point && pn1.inter == pn2.inter && pn1.fracs == pn2.fracs
-Base.:(==)(pn1::PolyNode, pn2::PolyNode) = equals(pn1, pn2)
_build_ab_list(::Type{T}, poly_a, poly_b, delay_cross_f, delay_bounce_f; exact) ->
-    (a_list, b_list, a_idx_list)

This function takes in two polygon rings and calls '_build_a_list', '_build_b_list', and '_flag_ent_exit' in order to fully form a_list and b_list. The 'a_list' and 'b_list' that it returns are the fully updated vectors of PolyNodes that represent the rings 'poly_a' and 'poly_b', respectively. This function also returns 'a_idx_list', which at its "ith" index stores the index in 'a_list' at which the "ith" intersection point lies.

julia
function _build_ab_list(::Type{T}, poly_a, poly_b, delay_cross_f::F1, delay_bounce_f::F2; exact) where {T, F1, F2}

Make a list for nodes of each polygon

julia
    a_list, a_idx_list, n_b_intrs = _build_a_list(T, poly_a, poly_b; exact)
-    b_list = _build_b_list(T, a_idx_list, a_list, n_b_intrs, poly_b)

Flag crossings

julia
    _classify_crossing!(T, a_list, b_list; exact)

Flag the entry and exits

julia
    _flag_ent_exit!(T, GI.LinearRingTrait(), poly_b, a_list, delay_cross_f, Base.Fix2(delay_bounce_f, true); exact)
-    _flag_ent_exit!(T, GI.LinearRingTrait(), poly_a, b_list, delay_cross_f, Base.Fix2(delay_bounce_f, false); exact)

Set node indices and filter a_idx_list to just crossing points

julia
    _index_crossing_intrs!(a_list, b_list, a_idx_list)
+Base.:(==)(pn1::PolyNode, pn2::PolyNode) = equals(pn1, pn2)

Finally, we define a nice error type for when the clipping tracing algorithm hits every point in a polygon. This stores the polygons, the a_list, and the b_list, and the a_idx_list. allowing the user to understand what happened and why.

julia
"""
+    TracingHitEveryPointError{T1, T2} <: Exception
+
+An error that is thrown when the clipping tracing algorithm hits every point in a polygon.
+This is a bug in the algorithm, and should be reported.
+
+The polygons are contained in the exception object, accessible by try-catch or as `err` in the REPL.
+"""
+struct TracingHitEveryPointError{T1, T2, T} <: Exception
+    poly_a::T1
+    poly_b::T2
+    a_list::Vector{PolyNode{T}}
+    b_list::Vector{PolyNode{T}}
+    a_idx_list::Vector{Int}
+end
+
+function Base.showerror(io::IO, e::TracingHitEveryPointError{T1, T2}) where {T1, T2}
+    println(io, "TracingHitEveryPointError: Clipping tracing hit every point - clipping error. Please open an issue with the polygons contained in this error object.")
+    println(io)
+    if max(GI.npoint(e.poly_a), GI.npoint(e.poly_b)) < 10
+        println(io, "Polygon A:")
+        println(io, GI.coordinates(e.poly_a))
+        println(io)
+        println(io, "Polygon B:")
+        println(io, GI.coordinates(e.poly_b))
+    else
+        println(io, "The polygons are contained in the exception object, accessible by try-catch or as `err` in the REPL.")
+    end
+end
_build_ab_list(::Type{T}, poly_a, poly_b, delay_cross_f, delay_bounce_f; exact) ->
+    (a_list, b_list, a_idx_list)

This function takes in two polygon rings and calls '_build_a_list', '_build_b_list', and '_flag_ent_exit' in order to fully form a_list and b_list. The 'a_list' and 'b_list' that it returns are the fully updated vectors of PolyNodes that represent the rings 'poly_a' and 'poly_b', respectively. This function also returns 'a_idx_list', which at its "ith" index stores the index in 'a_list' at which the "ith" intersection point lies.

julia
function _build_ab_list(alg::FosterHormannClipping, ::Type{T}, poly_a, poly_b, delay_cross_f::F1, delay_bounce_f::F2; exact) where {T, F1, F2}

Make a list for nodes of each polygon

julia
    a_list, a_idx_list, n_b_intrs = _build_a_list(alg, T, poly_a, poly_b; exact)
+    b_list = _build_b_list(alg, T, a_idx_list, a_list, n_b_intrs, poly_b)

Flag crossings

julia
    _classify_crossing!(alg, T, a_list, b_list; exact)

Flag the entry and exits

julia
    _flag_ent_exit!(alg, T, GI.LinearRingTrait(), poly_b, a_list, delay_cross_f, Base.Fix2(delay_bounce_f, true); exact)
+    _flag_ent_exit!(alg, T, GI.LinearRingTrait(), poly_a, b_list, delay_cross_f, Base.Fix2(delay_bounce_f, false); exact)

Set node indices and filter a_idx_list to just crossing points

julia
    _index_crossing_intrs!(alg, a_list, b_list, a_idx_list)
 
     return a_list, b_list, a_idx_list
 end
 
 "The number of vertices past which we should use a STRtree for edge intersection checking."
-const GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS = 75
+const GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS = 75

Fallback convenience method so we can just pass the algorithm in

julia
function foreach_pair_of_maybe_intersecting_edges_in_order(
+    alg::FosterHormannClipping{M, A}, f_on_each_a::FA, f_after_each_a::FAAfter, f_on_each_maybe_intersect::FI, poly_a, poly_b, _t::Type{T} = Float64
+) where {FA, FAAfter, FI, T, M, A}
+    return foreach_pair_of_maybe_intersecting_edges_in_order(alg.manifold, alg.accelerator, f_on_each_a, f_after_each_a, f_on_each_maybe_intersect, poly_a, poly_b, T)
+end
+
 function foreach_pair_of_maybe_intersecting_edges_in_order(
-    f_on_each_a::FA, f_after_each_a::FAAfter, f_on_each_maybe_intersect::FI, poly_a, poly_b, _t::Type{T} = Float64
-) where {FA, FAAfter, FI, T}

TODO: dispatch on manifold this is suitable for planar but spherical / geodesic will need s2 support at some point, or – even now – just buffering

julia
    na = GI.npoint(poly_a)
+    manifold::M, accelerator::A, f_on_each_a::FA, f_after_each_a::FAAfter, f_on_each_maybe_intersect::FI, poly_a, poly_b, _t::Type{T} = Float64
+) where {FA, FAAfter, FI, T, M <: Manifold, A <: IntersectionAccelerator}

TODO: dispatch on manifold this is suitable for planar but spherical / geodesic will need s2 support at some point, or – even now – just buffering

julia
    na = GI.npoint(poly_a)
     nb = GI.npoint(poly_b)
 
+    accelerator = if accelerator isa AutoAccelerator
+        if na < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS && nb < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS
+            NestedLoop()
+        elseif na < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS && nb > GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS
+            SingleSTRtree()
+        else
+            DoubleSTRtree()
+        end
+    else
+        accelerator
+    end
 
-    if na < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS && nb < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS

if we don't have enough vertices in either of the polygons to merit an STRtree, then we can just do a simple nested loop this becomes extremely useful in e.g. regridding, where we know the polygon will only ever have a few vertices. This is also applicable to any manifold, since the checking is done within the loop. First, loop over "each edge" in poly_a

julia
        for (i, (a1t, a2t)) in enumerate(eachedge(poly_a, T))
+    if accelerator isa NestedLoop

if we don't have enough vertices in either of the polygons to merit an STRtree, then we can just do a simple nested loop this becomes extremely useful in e.g. regridding, where we know the polygon will only ever have a few vertices. This is also applicable to any manifold, since the checking is done within the loop. First, loop over "each edge" in poly_a

julia
        for (i, (a1t, a2t)) in enumerate(eachedge(poly_a, T))
             a1t == a2t && continue
             f_on_each_a(a1t, i)
             for (j, (b1t, b2t)) in enumerate(eachedge(poly_b, T))
                 b1t == b2t && continue
-                LoopStateMachine.@processloopaction f_on_each_maybe_intersect(((a1t, a2t), i), ((b1t, b2t), j))
+                LoopStateMachine.@processloopaction f_on_each_maybe_intersect(((a1t, a2t), i), ((b1t, b2t), j)) # this should be aware of manifold by construction.
             end
             f_after_each_a(a1t, i)
-        end

And we're done!

julia
    elseif na < GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS && nb > GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS

This is the "middle ground" case - run only a strtree on poly_b without doing so on poly_a. This is less complex than running a dual tree traversal, and reduces the overhead of constructing an edge list and tree on poly_a.

julia
        ext_a, ext_b = GI.extent(poly_a), GI.extent(poly_b)
+        end

And we're done!

julia
    elseif accelerator isa SingleSTRtree

This is the "middle ground" case - run only a strtree on poly_b without doing so on poly_a. This is less complex than running a dual tree traversal, and reduces the overhead of constructing an edge list and tree on poly_a.

julia
        ext_a, ext_b = GI.extent(poly_a), GI.extent(poly_b)
         edges_b, indices_b = to_edgelist(ext_a, poly_b, T)
         tree_b = STRtree(edges_b)

Loop over each vertex in poly_a

julia
        for (i, (a1t, a2t)) in enumerate(eachedge(poly_a, T))
             a1t == a2t && continue
@@ -100,7 +180,7 @@
             end
             f_after_each_a(a1t, i)
         end
-    elseif na >= GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS && nb >= GEOMETRYOPS_NO_OPTIMIZE_EDGEINTERSECT_NUMVERTS

If both of the polygons are quite large, then we do a dual-tree traversal of the STRtrees and find all potentially overlapping edges. This is kind of like an adjacency list of a graph or a sparse matrix that we're constructing.

First, we materialize an edge list for each polygon as a vector of GI.Line objects.

julia
        ext_a = GI.extent(poly_a)
+    elseif accelerator isa DoubleSTRtree

If both of the polygons are quite large, then we do a dual-tree traversal of the STRtrees and find all potentially overlapping edges. This is kind of like an adjacency list of a graph or a sparse matrix that we're constructing.

First, we materialize an edge list for each polygon as a vector of GI.Line objects.

julia
        ext_a = GI.extent(poly_a)
         ext_b = GI.extent(poly_b)
         edges_a, indices_a = to_edgelist(ext_b, poly_a, T) # ::Vector{GI.Line} # with precalculated extents
         edges_b, indices_b = to_edgelist(ext_a, poly_b, T) # ::Vector{GI.Line} # with precalculated extents

Now, construct STRtrees from the edge lists. TODO: we can optimize the strtrees by passing in only edges that reside within the area of extent overlap between poly_a and poly_b. this would greatly help for e.g. coverage transactions BUT this needs fixes in SortTileRecursiveTree.jl to allow you to pass in a vector of indices as well as extents / geometries.

julia
        tree_a = STRtree(edges_a)
@@ -132,12 +212,11 @@
 
             last_a_idx_orig = a_idx_orig
 
-        end
-    end
+        end

println("DOUBLE TREE TRAVERSAL")

julia
    end
 
     return nothing
 
-end
_build_a_list(::Type{T}, poly_a, poly_b) -> (a_list, a_idx_list)

This function take in two polygon rings and creates a vector of PolyNodes to represent poly_a, including its intersection points with poly_b. The information stored in each PolyNode is needed for clipping using the Greiner-Hormann clipping algorithm.

Note: After calling this function, a_list is not fully formed because the neighboring indices of the intersection points in b_list still need to be updated. Also we still have not update the entry and exit flags for a_list.

The a_idx_list is a list of the indices of intersection points in a_list. The value at index i of a_idx_list is the location in a_list where the ith intersection point lies.

julia
function _build_a_list(::Type{T}, poly_a, poly_b; exact) where T
+end
_build_a_list(::Type{T}, poly_a, poly_b) -> (a_list, a_idx_list)

This function take in two polygon rings and creates a vector of PolyNodes to represent poly_a, including its intersection points with poly_b. The information stored in each PolyNode is needed for clipping using the Greiner-Hormann clipping algorithm.

Note: After calling this function, a_list is not fully formed because the neighboring indices of the intersection points in b_list still need to be updated. Also we still have not update the entry and exit flags for a_list.

The a_idx_list is a list of the indices of intersection points in a_list. The value at index i of a_idx_list is the location in a_list where the ith intersection point lies.

julia
function _build_a_list(alg::FosterHormannClipping{M, A}, ::Type{T}, poly_a, poly_b; exact) where {T, M, A}
     n_a_edges = _nedge(poly_a)
     a_list = PolyNode{T}[]  # list of points in poly_a
     sizehint!(a_list, n_a_edges)
@@ -166,7 +245,7 @@
         if (b_pt1 == b_pt2)  # don't repeat points
             b_pt1 = b_pt2
             return
-        end

Determine if edges intersect and how they intersect

julia
        line_orient, intr1, intr2 = _intersection_point(T, (a_pt1, a_pt2), (b_pt1, b_pt2); exact)
+        end

Determine if edges intersect and how they intersect

julia
        line_orient, intr1, intr2 = _intersection_point(alg.manifold, T, (a_pt1, a_pt2), (b_pt1, b_pt2); exact)
         if line_orient != line_out  # edges intersect
             if line_orient == line_cross  # Intersection point that isn't a vertex
                 int_pt, fracs = intr1
@@ -221,10 +300,10 @@
     end
     ```
     =#
-    foreach_pair_of_maybe_intersecting_edges_in_order(on_each_a, after_each_a, on_each_maybe_intersect, poly_a, poly_b, T)
+    foreach_pair_of_maybe_intersecting_edges_in_order(alg, on_each_a, after_each_a, on_each_maybe_intersect, poly_a, poly_b, T)
 
     return a_list, a_idx_list, n_b_intrs
-end
_build_b_list(::Type{T}, a_idx_list, a_list, poly_b) -> b_list

This function takes in the a_list and a_idx_list build in _build_a_list and poly_b and creates a vector of PolyNodes to represent poly_b. The information stored in each PolyNode is needed for clipping using the Greiner-Hormann clipping algorithm.

Note: after calling this function, b_list is not fully updated. The entry/exit flags still need to be updated. However, the neighbor value in a_list is now updated.

julia
function _build_b_list(::Type{T}, a_idx_list, a_list, n_b_intrs, poly_b) where T

Sort intersection points by insertion order in b_list

julia
    sort!(a_idx_list, by = x-> a_list[x].neighbor + a_list[x].fracs[2])

Initialize needed values and lists

julia
    n_b_edges = _nedge(poly_b)
+end
_build_b_list(::Type{T}, a_idx_list, a_list, poly_b) -> b_list

This function takes in the a_list and a_idx_list build in _build_a_list and poly_b and creates a vector of PolyNodes to represent poly_b. The information stored in each PolyNode is needed for clipping using the Greiner-Hormann clipping algorithm.

Note: after calling this function, b_list is not fully updated. The entry/exit flags still need to be updated. However, the neighbor value in a_list is now updated.

julia
function _build_b_list(alg::FosterHormannClipping{M, A}, ::Type{T}, a_idx_list, a_list, n_b_intrs, poly_b) where {T, M, A}

Sort intersection points by insertion order in b_list

julia
    sort!(a_idx_list, by = x-> a_list[x].neighbor + a_list[x].fracs[2])

Initialize needed values and lists

julia
    n_b_edges = _nedge(poly_b)
     n_intr_pts = length(a_idx_list)
     b_list = PolyNode{T}[]
     sizehint!(b_list, n_b_edges + n_b_intrs)
@@ -263,7 +342,7 @@
     end
     sort!(a_idx_list)  # return a_idx_list to order of points in a_list
     return b_list
-end
_classify_crossing!(T, poly_b, a_list; exact)

This function marks all intersection points as either bouncing or crossing points. "Delayed" crossing or bouncing intersections (a chain of edges where the central edges overlap and thus only the first and last edge of the chain determine if the chain is bounding or crossing) are marked as follows: the first and the last points are marked as crossing if the chain is crossing and delayed otherwise and all middle points are marked as bouncing. Additionally, the start and end points of the chain are marked as endpoints using the endpoints field.

julia
function _classify_crossing!(::Type{T}, a_list, b_list; exact) where T
+end
_classify_crossing!(T, poly_b, a_list; exact)

This function marks all intersection points as either bouncing or crossing points. "Delayed" crossing or bouncing intersections (a chain of edges where the central edges overlap and thus only the first and last edge of the chain determine if the chain is bounding or crossing) are marked as follows: the first and the last points are marked as crossing if the chain is crossing and delayed otherwise and all middle points are marked as bouncing. Additionally, the start and end points of the chain are marked as endpoints using the endpoints field.

julia
function _classify_crossing!(alg::FosterHormannClipping{M, A}, ::Type{T}, a_list, b_list; exact) where {T, M, A}
     napts = length(a_list)
     nbpts = length(b_list)

start centered on last point

julia
    a_prev = a_list[end - 1]
     curr_pt = a_list[end]
@@ -277,7 +356,7 @@
             b_next = j == nbpts ? b_list[1] : b_list[j+1]

determine if any segments are on top of one another

julia
            a_prev_is_b_prev = a_prev.inter && equals(a_prev, b_prev)
             a_prev_is_b_next = a_prev.inter && equals(a_prev, b_next)
             a_next_is_b_prev = a_next.inter && equals(a_next, b_prev)
-            a_next_is_b_next = a_next.inter && equals(a_next, b_next)

determine which side of a segments the p points are on

julia
            b_prev_side, b_next_side = _get_sides(b_prev, b_next, a_prev, curr_pt, a_next,
+            a_next_is_b_next = a_next.inter && equals(a_next, b_next)

determine which side of a segments the p points are on

julia
            b_prev_side, b_next_side = _get_sides(#=TODO: alg.manifold, =#b_prev, b_next, a_prev, curr_pt, a_next,
                 i, j, a_list, b_list; exact)

no sides overlap

julia
            if !a_prev_is_b_prev && !a_prev_is_b_next && !a_next_is_b_prev && !a_next_is_b_next
                 if b_prev_side != b_next_side  # lines cross
                     a_list[i] = PolyNode(curr_pt; crossing = true)
@@ -395,7 +474,7 @@
 or a crossing point that isn't in a chain. Then take the midpoint of this point and the next
 point in the list and perform the in/out check. If none of these points exist, return
 a `next_idx` of `nothing`. =#
-function _pt_off_edge_status(::Type{T}, pt_list, poly, npts; exact) where T
+function _pt_off_edge_status(alg::FosterHormannClipping{M, A}, ::Type{T}, pt_list, poly, npts; exact) where {T, M, A}
     start_idx, is_non_intr_pt = findfirst(_is_not_intr, pt_list), true
     if isnothing(start_idx)
         start_idx, is_non_intr_pt = findfirst(_next_edge_off, pt_list), false
@@ -407,14 +486,14 @@
     else
         (pt_list[start_idx].point .+ pt_list[next_idx].point) ./ 2
     end
-    start_status = !_point_filled_curve_orientation(start_pt, poly; in = true, on = false, out = false, exact)
+    start_status = !_point_filled_curve_orientation(#=TODO: alg.manifold=#start_pt, poly; in = true, on = false, out = false, exact)
     return next_idx, start_status
 end

Check if a PolyNode is an intersection point

julia
_is_not_intr(pt) = !pt.inter
 #= Check if a PolyNode is the last point of a chain or a non-overlapping crossing point.
 The next midpoint of one of these points and the next point within a polygon must not be on
 the polygon edge. =#
-_next_edge_off(pt) = (pt.endpoint == end_chain) || (pt.crossing && pt.endpoint == not_endpoint)
_flag_ent_exit!(::Type{T}, ::GI.LinearRingTrait, poly, pt_list, delay_cross_f, delay_bounce_f; exact)

This function flags all the intersection points as either an 'entry' or 'exit' point in relation to the given polygon. For non-delayed crossings we simply alternate the enter/exit status. This also holds true for the first and last points of a delayed bouncing, where they both have an opposite entry/exit flag. Conversely, the first and last point of a delayed crossing have the same entry/exit status. Furthermore, the crossing/bouncing flag of delayed crossings and bouncings may be updated. This depends on function specific rules that determine which of the start or end points (if any) should be marked as crossing for used during polygon tracing. A consistent rule is that the start and end points of a delayed crossing will have different crossing/bouncing flags, while a the endpoints of a delayed bounce will be the same.

Used for clipping polygons by other polygons.

julia
function _flag_ent_exit!(::Type{T}, ::GI.LinearRingTrait, poly, pt_list, delay_cross_f, delay_bounce_f; exact) where T
-    npts = length(pt_list)

Find starting index if there is one

julia
    next_idx, status = _pt_off_edge_status(T, pt_list, poly, npts; exact)
+_next_edge_off(pt) = (pt.endpoint == end_chain) || (pt.crossing && pt.endpoint == not_endpoint)
_flag_ent_exit!(::Type{T}, ::GI.LinearRingTrait, poly, pt_list, delay_cross_f, delay_bounce_f; exact)

This function flags all the intersection points as either an 'entry' or 'exit' point in relation to the given polygon. For non-delayed crossings we simply alternate the enter/exit status. This also holds true for the first and last points of a delayed bouncing, where they both have an opposite entry/exit flag. Conversely, the first and last point of a delayed crossing have the same entry/exit status. Furthermore, the crossing/bouncing flag of delayed crossings and bouncings may be updated. This depends on function specific rules that determine which of the start or end points (if any) should be marked as crossing for used during polygon tracing. A consistent rule is that the start and end points of a delayed crossing will have different crossing/bouncing flags, while a the endpoints of a delayed bounce will be the same.

Used for clipping polygons by other polygons.

julia
function _flag_ent_exit!(alg::FosterHormannClipping{M, A}, ::Type{T}, ::GI.LinearRingTrait, poly, pt_list, delay_cross_f, delay_bounce_f; exact) where {T, M, A}
+    npts = length(pt_list)

Find starting index if there is one

julia
    next_idx, status = _pt_off_edge_status(alg, T, pt_list, poly, npts; exact)
     isnothing(next_idx) && return
     start_idx = next_idx - 1

Loop over points and mark entry and exit status

julia
    start_chain_idx = 0
     for ii in Iterators.flatten((next_idx:npts, 1:start_idx))
@@ -432,7 +511,7 @@
                 else  # delayed bouncing
                     next_idx = ii < npts ? (ii + 1) : 1
                     next_val = (curr_pt.point .+ pt_list[next_idx].point) ./ 2
-                    pt_in_poly = _point_filled_curve_orientation(next_val, poly; in = true, on = false, out = false, exact)
+                    pt_in_poly = _point_filled_curve_orientation(#=TODO: alg.manifold=#next_val, poly; in = true, on = false, out = false, exact)
                     #= start and end crossing status are the same and depend on if adjacent
                     edges of pt_list are within poly =#
                     start_crossing = delay_bounce_f(pt_in_poly)
@@ -447,8 +526,8 @@
         end
     end
     return
-end
_flag_ent_exit!(::GI.LineTrait, line, pt_list; exact)

This function flags all the intersection points as either an 'entry' or 'exit' point in relation to the given line. Returns true if there are crossing points to classify, else returns false. Used for cutting polygons by lines.

Assumes that the first point is outside of the polygon and not on an edge.

julia
function _flag_ent_exit!(::GI.LineTrait, poly, pt_list; exact)
-    status = !_point_filled_curve_orientation(pt_list[1].point, poly; in = true, on = false, out = false, exact)

Loop over points and mark entry and exit status

julia
    for (ii, curr_pt) in enumerate(pt_list)
+end
_flag_ent_exit!(::GI.LineTrait, line, pt_list; exact)

This function flags all the intersection points as either an 'entry' or 'exit' point in relation to the given line. Returns true if there are crossing points to classify, else returns false. Used for cutting polygons by lines.

Assumes that the first point is outside of the polygon and not on an edge.

julia
function _flag_ent_exit!(alg::FosterHormannClipping{M, A}, ::GI.LineTrait, poly, pt_list; exact) where {M, A}
+    status = !_point_filled_curve_orientation(#=TODO: alg.manifold=#pt_list[1].point, poly; in = true, on = false, out = false, exact)

Loop over points and mark entry and exit status

julia
    for (ii, curr_pt) in enumerate(pt_list)
         if curr_pt.crossing
             pt_list[ii] = PolyNode(curr_pt; ent_exit = status)
             status = !status
@@ -459,7 +538,7 @@
 
 #= Filters a_idx_list to just include crossing points and sets the index of all crossing
 points (which element they correspond to within a_idx_list). =#
-function _index_crossing_intrs!(a_list, b_list, a_idx_list)
+function _index_crossing_intrs!(alg::FosterHormannClipping{M, A}, a_list, b_list, a_idx_list) where {M, A}
     filter!(x -> a_list[x].crossing, a_idx_list)
     for (i, a_idx) in enumerate(a_idx_list)
         curr_node = a_list[a_idx]
@@ -468,7 +547,7 @@
         b_list[curr_node.neighbor] = PolyNode(neighbor_node; idx = i)
     end
     return
-end
_trace_polynodes(::Type{T}, a_list, b_list, a_idx_list, f_step)::Vector{GI.Polygon}

This function takes the outputs of _build_ab_list and traces the lists to determine which polygons are formed as described in Greiner and Hormann. The function f_step determines in which direction the lists are traced. This function is different for intersection, difference, and union. f_step must take in two arguments: the most recent intersection node's entry/exit status and a boolean that is true if we are currently tracing a_list and false if we are tracing b_list. The functions used for each clipping operation are follows: - Intersection: (x, y) -> x ? 1 : (-1) - Difference: (x, y) -> (x ⊻ y) ? 1 : (-1) - Union: (x, y) -> x ? (-1) : 1

A list of GeoInterface polygons is returned from this function.

Note: poly_a and poly_b are temporary inputs used for debugging and can be removed eventually.

julia
function _trace_polynodes(::Type{T}, a_list, b_list, a_idx_list, f_step, poly_a, poly_b) where T
+end
_trace_polynodes(::Type{T}, a_list, b_list, a_idx_list, f_step)::Vector{GI.Polygon}

This function takes the outputs of _build_ab_list and traces the lists to determine which polygons are formed as described in Greiner and Hormann. The function f_step determines in which direction the lists are traced. This function is different for intersection, difference, and union. f_step must take in two arguments: the most recent intersection node's entry/exit status and a boolean that is true if we are currently tracing a_list and false if we are tracing b_list. The functions used for each clipping operation are follows: - Intersection: (x, y) -> x ? 1 : (-1) - Difference: (x, y) -> (x ⊻ y) ? 1 : (-1) - Union: (x, y) -> x ? (-1) : 1

A list of GeoInterface polygons is returned from this function.

Note: poly_a and poly_b are temporary inputs used for debugging and can be removed eventually.

julia
function _trace_polynodes(alg::FosterHormannClipping{M, A}, ::Type{T}, a_list, b_list, a_idx_list, f_step, poly_a, poly_b) where {T, M, A}
     n_a_pts, n_b_pts = length(a_list), length(b_list)
     total_pts = n_a_pts + n_b_pts
     n_cross_pts = length(a_idx_list)
@@ -489,7 +568,9 @@
         while curr_not_start
             step = f_step(curr.ent_exit, on_a_list)

changed curr_not_intr to curr_not_same_ent_flag

julia
            same_status, prev_status = true, curr.ent_exit
             while same_status
-                @assert visited_pts < total_pts "Clipping tracing hit every point - clipping error. Please open an issue with polygons: $(GI.coordinates(poly_a)) and $(GI.coordinates(poly_b))."

Traverse polygon either forwards or backwards

julia
                idx += step
+                if visited_pts >= total_pts
+                    throw(TracingHitEveryPointError(poly_a, poly_b, a_list, b_list, a_idx_list))
+                end

Traverse polygon either forwards or backwards

julia
                idx += step
                 idx = (idx > curr_npoints) ? mod(idx, curr_npoints) : idx
                 idx = (idx == 0) ? curr_npoints : idx

Get current node and add to pt_list

julia
                curr = curr_list[idx]
                 push!(pt_list, curr.point)
@@ -523,7 +604,7 @@
     a_in_b = a_pt_orient != point_out && b_pt_orient != point_in
     b_in_a = b_pt_orient != point_out && a_pt_orient != point_in
     return a_in_b, b_in_a
-end
_add_holes_to_polys!(::Type{T}, return_polys, hole_iterator, remove_poly_idx; exact)

The holes specified by the hole iterator are added to the polygons in the return_polys list. If this creates more polygons, they are added to the end of the list. If this removes polygons, they are removed from the list

julia
function _add_holes_to_polys!(::Type{T}, return_polys, hole_iterator, remove_poly_idx; exact) where T
+end
_add_holes_to_polys!(::Type{T}, return_polys, hole_iterator, remove_poly_idx; exact)

The holes specified by the hole iterator are added to the polygons in the return_polys list. If this creates more polygons, they are added to the end of the list. If this removes polygons, they are removed from the list

julia
function _add_holes_to_polys!(alg::FosterHormannClipping{M, A}, ::Type{T}, return_polys, hole_iterator, remove_poly_idx; exact) where {T, M, A}
     n_polys = length(return_polys)
     remove_hole_idx = Int[]

Remove set of holes from all polygons

julia
    for i in 1:n_polys
         n_new_per_poly = 0
@@ -532,9 +613,9 @@
                 curr_poly = return_polys[j]
                 remove_poly_idx[j] && continue
                 curr_poly_ext = GI.nhole(curr_poly) > 0 ? GI.Polygon(StaticArrays.SVector(GI.getexterior(curr_poly))) : curr_poly
-                in_ext, on_ext, out_ext = _line_polygon_interactions(curr_hole, curr_poly_ext; exact, closed_line = true)
+                in_ext, on_ext, out_ext = _line_polygon_interactions(#=TODO: alg.manifold=#curr_hole, curr_poly_ext; exact, closed_line = true)
                 if in_ext  # hole is at least partially within the polygon's exterior
-                    new_hole, new_hole_poly, n_new_pieces = _combine_holes!(T, curr_hole, curr_poly, return_polys, remove_hole_idx)
+                    new_hole, new_hole_poly, n_new_pieces = _combine_holes!(alg, T, curr_hole, curr_poly, return_polys, remove_hole_idx)
                     if n_new_pieces > 0
                         append!(remove_poly_idx, falses(n_new_pieces))
                         n_new_per_poly += n_new_pieces
@@ -542,7 +623,7 @@
                     if !on_ext && !out_ext  # hole is completely within exterior
                         push!(curr_poly.geom, new_hole)
                     else  # hole is partially within and outside of polygon's exterior
-                        new_polys = difference(curr_poly_ext, new_hole_poly, T; target=GI.PolygonTrait())
+                        new_polys = difference(#=TODO: alg=#curr_poly_ext, new_hole_poly, T; target=GI.PolygonTrait())
                         n_new_polys = length(new_polys) - 1

replace original

julia
                        curr_poly.geom[1] = GI.getexterior(new_polys[1])
                         append!(curr_poly.geom, GI.gethole(new_polys[1]))
                         if n_new_polys > 0  # add any extra pieces
@@ -550,7 +631,7 @@
                             append!(remove_poly_idx, falses(n_new_polys))
                             n_new_per_poly += n_new_polys
                         end
-                    end

polygon is completely within hole

julia
                elseif coveredby(curr_poly_ext, GI.Polygon(StaticArrays.SVector(curr_hole)))
+                    end

polygon is completely within hole

julia
                elseif coveredby(#=TODO: alg.manifold=#curr_poly_ext, GI.Polygon(StaticArrays.SVector(curr_hole)))
                     remove_poly_idx[j] = true
                 end
             end
@@ -558,12 +639,12 @@
         n_polys += n_new_per_poly
     end

Remove all polygon that were marked for removal

julia
    deleteat!(return_polys, remove_poly_idx)
     return
-end
_combine_holes!(::Type{T}, new_hole, curr_poly, return_polys)

The new hole is combined with any existing holes in curr_poly. The holes can be combined into a larger hole if they are intersecting. If this happens, then the new, combined hole is returned with the original holes making up the new hole removed from curr_poly. Additionally, if the combined holes form a ring, the interior is added to the return_polys as a new polygon piece. Additionally, holes leftover after combination will be checked for it they are in the "main" polygon or in one of these new pieces and moved accordingly.

If the holes don't touch or curr_poly has no holes, then new_hole is returned without any changes.

julia
function _combine_holes!(::Type{T}, new_hole, curr_poly, return_polys, remove_hole_idx) where T
+end
_combine_holes!(::Type{T}, new_hole, curr_poly, return_polys)

The new hole is combined with any existing holes in curr_poly. The holes can be combined into a larger hole if they are intersecting. If this happens, then the new, combined hole is returned with the original holes making up the new hole removed from curr_poly. Additionally, if the combined holes form a ring, the interior is added to the return_polys as a new polygon piece. Additionally, holes leftover after combination will be checked for it they are in the "main" polygon or in one of these new pieces and moved accordingly.

If the holes don't touch or curr_poly has no holes, then new_hole is returned without any changes.

julia
function _combine_holes!(alg::FosterHormannClipping{M, A}, ::Type{T}, new_hole, curr_poly, return_polys, remove_hole_idx) where {T, M, A}
     n_new_polys = 0
     empty!(remove_hole_idx)
     new_hole_poly = GI.Polygon(StaticArrays.SVector(new_hole))

Combine any existing holes in curr_poly with new hole

julia
    for (k, old_hole) in enumerate(GI.gethole(curr_poly))
         old_hole_poly = GI.Polygon(StaticArrays.SVector(old_hole))
-        if intersects(new_hole_poly, old_hole_poly)

If the holes intersect, combine them into a bigger hole

julia
            hole_union = union(new_hole_poly, old_hole_poly, T; target = GI.PolygonTrait())[1]
+        if intersects(#=TODO: alg.manifold=#new_hole_poly, old_hole_poly)

If the holes intersect, combine them into a bigger hole

julia
            hole_union = union(alg, new_hole_poly, old_hole_poly, T; target = GI.PolygonTrait())[1]
             push!(remove_hole_idx, k + 1)
             new_hole = GI.getexterior(hole_union)
             new_hole_poly = GI.Polygon(StaticArrays.SVector(new_hole))
@@ -588,7 +669,7 @@
 
 #= Remove collinear edge points, other than the first and last edge vertex, to simplify
 polygon - including both the exterior ring and any holes=#
-function _remove_collinear_points!(polys, remove_idx, poly_a, poly_b)
+function _remove_collinear_points!(alg::FosterHormannClipping{M, A}, polys, remove_idx, poly_a, poly_b) where {M, A}
     for (i, poly) in Iterators.reverse(enumerate(polys))
         for (j, ring) in Iterators.reverse(enumerate(GI.getring(poly)))
             n = length(ring.geom)

resize and reset removing index buffer

julia
            resize!(remove_idx, n)
@@ -602,12 +683,12 @@
                     p2 = p
                     continue
                 else
-                    p3 = p

check if p2 is approximately on the edge formed by p1 and p3 - remove if so

julia
                    if Predicates.orient(p1, p2, p3; exact = _False()) == 0
+                    p3 = p

check if p2 is approximately on the edge formed by p1 and p3 - remove if so TODO: make this manifold aware

julia
                    if Predicates.orient(p1, p2, p3; exact = _False()) == 0
                         remove_idx[i - 1] = true
                     end
                 end
                 p1, p2 = p2, p3
-            end

Check if the first point (which is repeated as the last point) is needed

julia
            if Predicates.orient(ring.geom[end - 1], ring.geom[1], ring.geom[2]; exact = _False()) == 0
+            end

Check if the first point (which is repeated as the last point) is needed TODO: make this manifold aware

julia
            if Predicates.orient(ring.geom[end - 1], ring.geom[1], ring.geom[2]; exact = _False()) == 0
                 remove_idx[1], remove_idx[end] = true, true
             end

Remove unneeded collinear points

julia
            deleteat!(ring.geom, remove_idx)

Check if enough points are left to form a polygon

julia
            if length(ring.geom)  (remove_idx[1] ? 2 : 3)
                 if j == 1
@@ -625,7 +706,7 @@
     end
     return
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/clipping/coverage.html b/previews/PR259/source/methods/clipping/coverage.html index df269cd8f..45bd306f7 100644 --- a/previews/PR259/source/methods/clipping/coverage.html +++ b/previews/PR259/source/methods/clipping/coverage.html @@ -9,11 +9,11 @@ - + - + - + @@ -31,7 +31,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
@@ -244,7 +244,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/PR259/source/methods/clipping/cut.html b/previews/PR259/source/methods/clipping/cut.html index cc15dddcb..a361c2850 100644 --- a/previews/PR259/source/methods/clipping/cut.html +++ b/previews/PR259/source/methods/clipping/cut.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,18 +21,18 @@ -
Skip to content

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
-
-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)])
-cut_polys = GO.cut(poly, line)
-
-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
"""
+    
Skip to content

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:

@example
import GeoInterface as GI, GeometryOps as GO
+using CairoMakie
+using Makie
+
+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)])
+cut_polys = GO.cut(poly, line)
+
+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
"""
     cut(geom, line, [T::Type])
 
 Return given geom cut by given line as a list of geometries of the same type as the input
@@ -108,7 +108,7 @@
     end
     return return_coords
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/clipping/difference.html b/previews/PR259/source/methods/clipping/difference.html index 9a71c327a..7c8b5bd42 100644 --- a/previews/PR259/source/methods/clipping/difference.html +++ b/previews/PR259/source/methods/clipping/difference.html @@ -9,11 +9,11 @@ - + - + - + @@ -52,26 +52,26 @@ ``` """ function difference( - geom_a, geom_b, ::Type{T} = Float64; target=nothing, kwargs..., + alg::FosterHormannClipping, geom_a, geom_b, ::Type{T} = Float64; target=nothing, kwargs..., ) where {T<:AbstractFloat} return _difference( - TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b; + alg, TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b; exact = _True(), kwargs..., ) -end +end

fallback definitions

julia
difference(geom_a, geom_b, ::Type{T} = Float64; target=nothing, kwargs...) where T = difference(FosterHormannClipping(Planar()), geom_a, geom_b, T; target, kwargs...)

if manifold but no algorithm - assume FosterHormannClipping with provided manifold.

julia
difference(m::Manifold, geom_a, geom_b, ::Type{T} = Float64; target=nothing, kwargs...) where T = difference(FosterHormannClipping(m), geom_a, geom_b, T; target, kwargs...)
 
-#= The 'difference' function returns the difference of two polygons as a list of polygons.
-The algorithm to determine the difference was adapted from "Efficient clipping of efficient
-polygons," by Greiner and Hormann (1998). DOI: https://doi.org/10.1145/274363.274364 =#
-function _difference(
-    ::TraitTarget{GI.PolygonTrait}, ::Type{T},
-    ::GI.PolygonTrait, poly_a,
-    ::GI.PolygonTrait, poly_b;
-    exact, kwargs...
-) where T

Get the exterior of the polygons

julia
    ext_a = GI.getexterior(poly_a)
-    ext_b = GI.getexterior(poly_b)

Find the difference of the exterior of the polygons

julia
    a_list, b_list, a_idx_list = _build_ab_list(T, ext_a, ext_b, _diff_delay_cross_f, _diff_delay_bounce_f; exact)
-    polys = _trace_polynodes(T, a_list, b_list, a_idx_list, _diff_step, poly_a, poly_b)

if no crossing points, determine if either poly is inside of the other

julia
    if isempty(polys)
-        a_in_b, b_in_a = _find_non_cross_orientation(a_list, b_list, ext_a, ext_b; exact)

add case for if they polygons are the same (all intersection points!) add a find_first check to find first non-inter poly!

julia
        if b_in_a && !a_in_b  # b in a and can't be the same polygon
+#= The 'difference' function returns the difference of two polygons as a list of polygons.
+The algorithm to determine the difference was adapted from "Efficient clipping of efficient
+polygons," by Greiner and Hormann (1998). DOI: https://doi.org/10.1145/274363.274364 =#
+function _difference(
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    ::GI.PolygonTrait, poly_a,
+    ::GI.PolygonTrait, poly_b;
+    exact, kwargs...
+) where T

Get the exterior of the polygons

julia
    ext_a = GI.getexterior(poly_a)
+    ext_b = GI.getexterior(poly_b)

Find the difference of the exterior of the polygons

julia
    a_list, b_list, a_idx_list = _build_ab_list(alg, T, ext_a, ext_b, _diff_delay_cross_f, _diff_delay_bounce_f; exact)
+    polys = _trace_polynodes(alg, T, a_list, b_list, a_idx_list, _diff_step, poly_a, poly_b)

if no crossing points, determine if either poly is inside of the other

julia
    if isempty(polys)
+        a_in_b, b_in_a = _find_non_cross_orientation(#=TODO: alg=#a_list, b_list, ext_a, ext_b; exact)

add case for if they polygons are the same (all intersection points!) add a find_first check to find first non-inter poly!

julia
        if b_in_a && !a_in_b  # b in a and can't be the same polygon
             poly_a_b_hole = GI.Polygon([tuples(ext_a), tuples(ext_b)])
             push!(polys, poly_a_b_hole)
         elseif !b_in_a && !a_in_b # polygons don't intersect
@@ -80,17 +80,17 @@
         end
     end
     remove_idx = falses(length(polys))

If the original polygons had holes, take that into account.

julia
    if GI.nhole(poly_a) != 0
-        _add_holes_to_polys!(T, polys, GI.gethole(poly_a), remove_idx; exact)
+        _add_holes_to_polys!(alg, T, polys, GI.gethole(poly_a), remove_idx; exact)
     end
     if GI.nhole(poly_b) != 0
         for hole in GI.gethole(poly_b)
             hole_poly = GI.Polygon(StaticArrays.SVector(hole))
-            new_polys = intersection(hole_poly, poly_a, T; target = GI.PolygonTrait)
+            new_polys = intersection(alg, hole_poly, poly_a, T; target = GI.PolygonTrait)
             if length(new_polys) > 0
                 append!(polys, new_polys)
             end
         end
-    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(polys, remove_idx, poly_a, poly_b)
+    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(alg, polys, remove_idx, poly_a, poly_b)
     return polys
 end

Helper functions for Differences with Greiner and Hormann Polygon Clipping

julia
#= When marking the crossing status of a delayed crossing, the chain start point is crossing
 when the start point is a entry point and is a bouncing point when the start point is an
@@ -112,7 +112,7 @@
 #= Polygon with multipolygon difference - note that all intersection regions between
 `poly_a` and any of the sub-polygons of `multipoly_b` are removed from `poly_a`. =#
 function _difference(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.PolygonTrait, poly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     kwargs...,
@@ -120,7 +120,7 @@
     polys = [tuples(poly_a, T)]
     for poly_b in GI.getpolygon(multipoly_b)
         isempty(polys) && break
-        polys = mapreduce(p -> difference(p, poly_b; target), append!, polys)
+        polys = mapreduce(p -> difference(alg, p, poly_b; target), append!, polys)
     end
     return polys
 end
@@ -130,7 +130,7 @@
 sub-polygon. Unless specified with `fix_multipoly = nothing`, `multipolygon_a` will be
 validated using the given (default is `UnionIntersectingPolygons()`) correction. =#
 function _difference(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.PolygonTrait, poly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -141,7 +141,7 @@
     polys = Vector{_get_poly_type(T)}()
     sizehint!(polys, GI.npolygon(multipoly_a))
     for poly_a in GI.getpolygon(multipoly_a)
-        append!(polys, difference(poly_a, poly_b; target))
+        append!(polys, difference(alg, poly_a, poly_b; target))
     end
     return polys
 end
@@ -152,7 +152,7 @@
 `multipolygon_a` will be validated using the given (default is `UnionIntersectingPolygons()`)
 correction. =#
 function _difference(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -167,9 +167,9 @@
         pieces of `multipolygon_a`` are removed, continue to take difference with new shape
         `polys` =#
         polys = if i == 1
-            difference(multipoly_a, poly_b; target, fix_multipoly)
+            difference(alg, multipoly_a, poly_b; target, fix_multipoly)
         else
-            difference(GI.MultiPolygon(polys), poly_b; target, fix_multipoly)
+            difference(alg, GI.MultiPolygon(polys), poly_b; target, fix_multipoly)
         end
         #= One multipoly_a has been completely covered (and thus removed) there is no need to
         continue taking the difference =#
@@ -177,17 +177,17 @@
     end
     return polys
 end

Many type and target combos aren't implemented

julia
function _difference(
-    ::TraitTarget{Target}, ::Type{T},
+    alg::GeometryOpsCore.Algorithm, target::TraitTarget{Target}, ::Type{T},
     trait_a::GI.AbstractTrait, geom_a,
     trait_b::GI.AbstractTrait, geom_b,
 ) where {Target, T}
     @assert(
         false,
-        "Difference between $trait_a and $trait_b with target $Target isn't implemented yet.",
+        "Difference between $trait_a and $trait_b with target $Target and algorithm $alg isn't implemented yet.",
     )
     return nothing
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/clipping/intersection.html b/previews/PR259/source/methods/clipping/intersection.html index 44e4e6d1f..d6413de97 100644 --- a/previews/PR259/source/methods/clipping/intersection.html +++ b/previews/PR259/source/methods/clipping/intersection.html @@ -9,11 +9,11 @@ - + - + - + @@ -59,33 +59,39 @@ ``` """ function intersection( - geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs..., + alg::FosterHormannClipping, geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs... ) where {T<:AbstractFloat} return _intersection( - TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b; + alg, TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b; exact = _True(), kwargs..., ) -end

Curve-Curve Intersections with target Point

julia
_intersection(
-    ::TraitTarget{GI.PointTrait}, ::Type{T},
+end

fallback definitions if no manifold - assume planar (until we have best_manifold)

julia
function intersection(
+    geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs...
+) where {T<:AbstractFloat}
+    return intersection(FosterHormannClipping(Planar()), geom_a, geom_b; target, kwargs...)
+end

if manifold but no algorithm - assume FosterHormannClipping with provided manifold.

julia
function intersection(m::Manifold, geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs...) where {T<:AbstractFloat}
+    return intersection(FosterHormannClipping(m), geom_a, geom_b; target, kwargs...)
+end

Curve-Curve Intersections with target Point

julia
_intersection(
+    alg::FosterHormannClipping, ::TraitTarget{GI.PointTrait}, ::Type{T},
     trait_a::Union{GI.LineTrait, GI.LineStringTrait, GI.LinearRingTrait}, geom_a,
     trait_b::Union{GI.LineTrait, GI.LineStringTrait, GI.LinearRingTrait}, geom_b;
     kwargs...,
-) where T = _intersection_points(T, trait_a, geom_a, trait_b, geom_b)
+) where T = _intersection_points(alg.manifold, alg.accelerator, T, trait_a, geom_a, trait_b, geom_b)
 
 #= Polygon-Polygon Intersections with target Polygon
 The algorithm to determine the intersection was adapted from "Efficient clipping
 of efficient polygons," by Greiner and Hormann (1998).
 DOI: https://doi.org/10.1145/274363.274364 =#
 function _intersection(
-    ::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, ::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.PolygonTrait, poly_a,
     ::GI.PolygonTrait, poly_b;
     exact, kwargs...,
 ) where {T}

First we get the exteriors of 'poly_a' and 'poly_b'

julia
    ext_a = GI.getexterior(poly_a)
-    ext_b = GI.getexterior(poly_b)

Then we find the intersection of the exteriors

julia
    a_list, b_list, a_idx_list = _build_ab_list(T, ext_a, ext_b, _inter_delay_cross_f, _inter_delay_bounce_f; exact)
-    polys = _trace_polynodes(T, a_list, b_list, a_idx_list, _inter_step, poly_a, poly_b)
+    ext_b = GI.getexterior(poly_b)

Then we find the intersection of the exteriors

julia
    a_list, b_list, a_idx_list = _build_ab_list(alg, T, ext_a, ext_b, _inter_delay_cross_f, _inter_delay_bounce_f; exact)
+    polys = _trace_polynodes(alg, T, a_list, b_list, a_idx_list, _inter_step, poly_a, poly_b)
     if isempty(polys) # no crossing points, determine if either poly is inside the other
-        a_in_b, b_in_a = _find_non_cross_orientation(a_list, b_list, ext_a, ext_b; exact)
+        a_in_b, b_in_a = _find_non_cross_orientation(alg, a_list, b_list, ext_a, ext_b; exact)
         if a_in_b
             push!(polys, GI.Polygon([tuples(ext_a)]))
         elseif b_in_a
@@ -94,8 +100,8 @@
     end
     remove_idx = falses(length(polys))

If the original polygons had holes, take that into account.

julia
    if GI.nhole(poly_a) != 0 || GI.nhole(poly_b) != 0
         hole_iterator = Iterators.flatten((GI.gethole(poly_a), GI.gethole(poly_b)))
-        _add_holes_to_polys!(T, polys, hole_iterator, remove_idx; exact)
-    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(polys, remove_idx, poly_a, poly_b)
+        _add_holes_to_polys!(alg, T, polys, hole_iterator, remove_idx; exact)
+    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(alg, polys, remove_idx, poly_a, poly_b)
     return polys
 end

Helper functions for Intersections with Greiner and Hormann Polygon Clipping

julia
#= When marking the crossing status of a delayed crossing, the chain start point is bouncing
 when the start point is a entry point and is a crossing point when the start point is an
@@ -116,7 +122,7 @@
 Unless specified with `fix_multipoly = nothing`, `multipolygon_b` will be validated using
 the given (default is `UnionIntersectingPolygons()`) correction. =#
 function _intersection(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.PolygonTrait, poly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -126,7 +132,7 @@
     end
     polys = Vector{_get_poly_type(T)}()
     for poly_b in GI.getpolygon(multipoly_b)
-        append!(polys, intersection(poly_a, poly_b; target))
+        append!(polys, intersection(alg, poly_a, poly_b; target))
     end
     return polys
 end
@@ -135,11 +141,11 @@
 polygon with the multipolygon and thus simply switches the order of operations and calls the
 above method. =#
 _intersection(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.PolygonTrait, poly_b;
     kwargs...,
-) where T = intersection(poly_b, multipoly_a; target , kwargs...)
+) where T = intersection(alg, poly_b, multipoly_a; target , kwargs...)
 
 #= Multipolygon with multipolygon intersection - note that all intersection regions between
 any sub-polygons of `multipoly_a` and any of the sub-polygons of `multipoly_b` are counted
@@ -147,7 +153,7 @@
 `multipolygon_a` and `multipolygon_b` will be validated using the given (default is
 `UnionIntersectingPolygons()`) correction. =#
 function _intersection(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -159,18 +165,18 @@
     end
     polys = Vector{_get_poly_type(T)}()
     for poly_a in GI.getpolygon(multipoly_a)
-        append!(polys, intersection(poly_a, multipoly_b; target, fix_multipoly))
+        append!(polys, intersection(alg, poly_a, multipoly_b; target, fix_multipoly))
     end
     return polys
 end

Many type and target combos aren't implemented

julia
function _intersection(
-    ::TraitTarget{Target}, ::Type{T},
+    alg::GeometryOpsCore.Algorithm, target::TraitTarget{Target}, ::Type{T},
     trait_a::GI.AbstractTrait, geom_a,
     trait_b::GI.AbstractTrait, geom_b;
     kwargs...,
 ) where {Target, T}
     @assert(
         false,
-        "Intersection between $trait_a and $trait_b with target $Target isn't implemented yet.",
+        "Intersection between $trait_a and $trait_b with target $Target and algorithm $alg isn't implemented yet.",
     )
     return nothing
 end
@@ -191,14 +197,20 @@
 inter_points = GO.intersection_points(line1, line2)

output

julia
1-element Vector{Tuple{Float64, Float64}}:
  (125.58375366067548, -14.83572303404496)
 """
-intersection_points(geom_a, geom_b, ::Type{T} = Float64) where T <: AbstractFloat =
-    _intersection_points(T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b)
+intersection_points(geom_a, geom_b, ::Type{T} = Float64) where T <: AbstractFloat = intersection_points(FosterHormannClipping(Planar()), geom_a, geom_b, T)
+function intersection_points(alg::FosterHormannClipping{M, A}, geom_a, geom_b, ::Type{T} = Float64) where {M, A, T <: AbstractFloat}
+    return _intersection_points(alg.manifold, alg.accelerator, T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b)
+end
+
+function intersection_points(m::Manifold, a::IntersectionAccelerator, geom_a, geom_b, ::Type{T} = Float64) where T <: AbstractFloat
+    return _intersection_points(m, a, T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b)
+end
 
 
 #= Calculates the list of intersection points between two geometries, including line
 segments, line strings, linear rings, polygons, and multipolygons. =#
-function _intersection_points(::Type{T}, ::GI.AbstractTrait, a, ::GI.AbstractTrait, b; exact = _True()) where T

Initialize an empty list of points

julia
    result = Tuple{T, T}[]

Check if the geometries extents even overlap

julia
    Extents.intersects(GI.extent(a), GI.extent(b)) || return result

Create a list of edges from the two input geometries

julia
    edges_a, edges_b = map(sort!  to_edges, (a, b))

Loop over pairs of edges and add any unique intersection points to results

julia
    for a_edge in edges_a, b_edge in edges_b
-        line_orient, intr1, intr2 = _intersection_point(T, a_edge, b_edge; exact)
+function _intersection_points(manifold::M, accelerator::A, ::Type{T}, ::GI.AbstractTrait, a, ::GI.AbstractTrait, b; exact = _True()) where {M <: Manifold, A <: IntersectionAccelerator, T}

Initialize an empty list of points

julia
    result = Tuple{T, T}[]

Check if the geometries extents even overlap

julia
    Extents.intersects(GI.extent(a), GI.extent(b)) || return result

Create a list of edges from the two input geometries

julia
    edges_a, edges_b = map(sort!  to_edges, (a, b))

Loop over pairs of edges and add any unique intersection points to results TODO: add intersection acceleration here.

julia
    for a_edge in edges_a, b_edge in edges_b
+        line_orient, intr1, intr2 = _intersection_point(manifold, T, a_edge, b_edge; exact)
         line_orient == line_out && continue  # no intersection points
         pt1, _ = intr1
         push!(result, pt1)  # if not line_out, there is at least one intersection point
@@ -233,7 +245,7 @@
 that point.
 
 Calculation derivation can be found here: https://stackoverflow.com/questions/563198/ =#
-function _intersection_point(::Type{T}, (a1, a2)::Edge, (b1, b2)::Edge; exact) where T

Default answer for no intersection

julia
    line_orient = line_out
+function _intersection_point(manifold::M, ::Type{T}, (a1, a2)::Edge, (b1, b2)::Edge; exact) where {M <: Manifold, T}

Default answer for no intersection

julia
    line_orient = line_out
     intr1 = ((zero(T), zero(T)), (zero(T), zero(T)))
     intr2 = intr1
     no_intr_result = (line_orient, intr1, intr2)

Seperate out line segment points

julia
    (a1x, a1y), (a2x, a2y) = _tuple_point(a1, T), _tuple_point(a2, T)
@@ -244,14 +256,14 @@
     a1_orient != 0 && a1_orient == a2_orient && return no_intr_result  # α < 0 or α > 1
     b1_orient = Predicates.orient(a1, a2, b1; exact)
     b2_orient = Predicates.orient(a1, a2, b2; exact)
-    b1_orient != 0 && b1_orient == b2_orient && return no_intr_result  # β < 0 or β > 1

Determine intersection type and intersection point(s)

julia
    if a1_orient == a2_orient == b1_orient == b2_orient == 0

Intersection is collinear if all endpoints lie on the same line

julia
        line_orient, intr1, intr2 = _find_collinear_intersection(T, a1, a2, b1, b2, a_ext, b_ext, no_intr_result)
+    b1_orient != 0 && b1_orient == b2_orient && return no_intr_result  # β < 0 or β > 1

Determine intersection type and intersection point(s)

julia
    if a1_orient == a2_orient == b1_orient == b2_orient == 0

Intersection is collinear if all endpoints lie on the same line

julia
        line_orient, intr1, intr2 = _find_collinear_intersection(manifold, T, a1, a2, b1, b2, a_ext, b_ext, no_intr_result)
     elseif a1_orient == 0 || a2_orient == 0 || b1_orient == 0 || b2_orient == 0

Intersection is a hinge if the intersection point is an endpoint

julia
        line_orient = line_hinge
         intr1 = _find_hinge_intersection(T, a1, a2, b1, b2, a1_orient, a2_orient, b1_orient)
     else

Intersection is a cross if there is only one non-endpoint intersection point

julia
        line_orient = line_cross
         intr1 = _find_cross_intersection(T, a1, a2, b1, b2, a_ext, b_ext)
     end
     return line_orient, intr1, intr2
-end
+end

TODO: deprecate this

julia
_intersection_point(::Type{T}, (a1, a2)::Edge, (b1, b2)::Edge; exact) where T = _intersection_point(Planar(), T, (a1, a2), (b1, b2); exact)
 
 #= If lines defined by (a1, a2) and (b1, b2) are collinear, find endpoints of overlapping
 region if they exist. This could result in three possibilities. First, there could be no
@@ -259,7 +271,7 @@
 returned. Second, the two regions could just meet at one shared endpoint, in which case it
 is a hinge intersection with one intersection point. Otherwise, it is a overlapping
 intersection defined by two of the endpoints of the line segments. =#
-function _find_collinear_intersection(::Type{T}, a1, a2, b1, b2, a_ext, b_ext, no_intr_result) where T

Define default return for no intersection points

julia
    line_orient, intr1, intr2 = no_intr_result

Determine collinear line overlaps

julia
    a1_in_b = _point_in_extent(a1, b_ext)
+function _find_collinear_intersection(manifold::M, ::Type{T}, a1, a2, b1, b2, a_ext, b_ext, no_intr_result) where {M <: Manifold, T}

Define default return for no intersection points

julia
    line_orient, intr1, intr2 = no_intr_result

Determine collinear line overlaps

julia
    a1_in_b = _point_in_extent(a1, b_ext)
     a2_in_b = _point_in_extent(a2, b_ext)
     b1_in_a = _point_in_extent(b1, a_ext)
     b2_in_a = _point_in_extent(b2, a_ext)

Determine line distances

julia
    a_dist, b_dist = distance(a1, a2, T), distance(b1, b2, T)

Set collinear intersection points if they exist

julia
    if a1_in_b && a2_in_b      # 1st vertex of a and 2nd vertex of a form overlap
@@ -404,7 +416,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/PR259/source/methods/clipping/predicates.html b/previews/PR259/source/methods/clipping/predicates.html index 964b3452e..bb4a8ac23 100644 --- a/previews/PR259/source/methods/clipping/predicates.html +++ b/previews/PR259/source/methods/clipping/predicates.html @@ -9,9 +9,9 @@ - + - + @@ -65,7 +65,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/PR259/source/methods/clipping/union.html b/previews/PR259/source/methods/clipping/union.html index a2f77c70b..e2bd1cb3f 100644 --- a/previews/PR259/source/methods/clipping/union.html +++ b/previews/PR259/source/methods/clipping/union.html @@ -9,11 +9,11 @@ - + - + - + @@ -52,28 +52,34 @@ ``` """ function union( - geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs... + alg::FosterHormannClipping, geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs... ) where {T<:AbstractFloat} return _union( - TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b; + alg, TraitTarget(target), T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b; exact = _True(), kwargs..., ) -end +end

fallback definitions if no manifold - assume planar (until we have best_manifold)

julia
function union(
+    geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs...
+) where {T<:AbstractFloat}
+    return union(FosterHormannClipping(Planar()), geom_a, geom_b; target, kwargs...)
+end

if manifold but no algorithm - assume FosterHormannClipping with provided manifold.

julia
function union(m::Manifold, geom_a, geom_b, ::Type{T}=Float64; target=nothing, kwargs...) where {T<:AbstractFloat}
+    return union(FosterHormannClipping(m), geom_a, geom_b; target, kwargs...)
+end
 
-#= This 'union' implementation returns the union of two polygons. The algorithm to determine
-the union was adapted from "Efficient clipping of efficient polygons," by Greiner and
-Hormann (1998). DOI: https://doi.org/10.1145/274363.274364 =#
-function _union(
-    ::TraitTarget{GI.PolygonTrait}, ::Type{T},
-    ::GI.PolygonTrait, poly_a,
-    ::GI.PolygonTrait, poly_b;
-    exact, kwargs...,
-) where T

First, I get the exteriors of the two polygons

julia
    ext_a = GI.getexterior(poly_a)
-    ext_b = GI.getexterior(poly_b)

Then, I get the union of the exteriors

julia
    a_list, b_list, a_idx_list = _build_ab_list(T, ext_a, ext_b, _union_delay_cross_f, _union_delay_bounce_f; exact)
-    polys = _trace_polynodes(T, a_list, b_list, a_idx_list, _union_step, poly_a, poly_b)
+#= This 'union' implementation returns the union of two polygons. The algorithm to determine
+the union was adapted from "Efficient clipping of efficient polygons," by Greiner and
+Hormann (1998). DOI: https://doi.org/10.1145/274363.274364 =#
+function _union(
+    alg::FosterHormannClipping, ::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    ::GI.PolygonTrait, poly_a,
+    ::GI.PolygonTrait, poly_b;
+    exact, kwargs...,
+) where T

First, I get the exteriors of the two polygons

julia
    ext_a = GI.getexterior(poly_a)
+    ext_b = GI.getexterior(poly_b)

Then, I get the union of the exteriors

julia
    a_list, b_list, a_idx_list = _build_ab_list(alg, T, ext_a, ext_b, _union_delay_cross_f, _union_delay_bounce_f; exact)
+    polys = _trace_polynodes(alg, T, a_list, b_list, a_idx_list, _union_step, poly_a, poly_b)
     n_pieces = length(polys)

Check if one polygon totally within other and if so, return the larger polygon

julia
    a_in_b, b_in_a = false, false
     if n_pieces == 0 # no crossing points, determine if either poly is inside the other
-        a_in_b, b_in_a = _find_non_cross_orientation(a_list, b_list, ext_a, ext_b; exact)
+        a_in_b, b_in_a = _find_non_cross_orientation(alg, T, a_list, b_list, ext_a, ext_b; exact)
         if a_in_b
             push!(polys, GI.Polygon([_linearring(tuples(ext_b))]))
         elseif b_in_a
@@ -90,8 +96,8 @@
         sort!(polys, by = area, rev = true)  # sort by area so first element is the exterior

the first element is the exterior, the rest are holes

julia
        @views append!(polys[1].geom, (GI.getexterior(p) for p in polys[2:end]))
         keepat!(polys, 1)
     end

Add in holes

julia
    if GI.nhole(poly_a) != 0 || GI.nhole(poly_b) != 0
-        _add_union_holes!(polys, a_in_b, b_in_a, poly_a, poly_b; exact)
-    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(polys, [false], poly_a, poly_b)
+        _add_union_holes!(alg, polys, a_in_b, b_in_a, poly_a, poly_b; exact)
+    end

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(alg, polys, [false], poly_a, poly_b)
     return polys
 end

Helper functions for Unions with Greiner and Hormann Polygon Clipping

julia
#= When marking the crossing status of a delayed crossing, the chain start point is crossing
 when the start point is a entry point and is a bouncing point when the start point is an
@@ -111,11 +117,11 @@
 #= Add holes from two polygons to the exterior polygon formed by their union. If adding the
 the holes reveals that the polygons aren't actually intersecting, return the original
 polygons. =#
-function _add_union_holes!(polys, a_in_b, b_in_a, poly_a, poly_b; exact)
+function _add_union_holes!(alg::FosterHormannClipping, polys, a_in_b, b_in_a, poly_a, poly_b; exact)
     if a_in_b
-        _add_union_holes_contained_polys!(polys, poly_a, poly_b; exact)
+        _add_union_holes_contained_polys!(alg, polys, poly_a, poly_b; exact)
     elseif b_in_a
-        _add_union_holes_contained_polys!(polys, poly_b, poly_a; exact)
+        _add_union_holes_contained_polys!(alg, polys, poly_b, poly_a; exact)
     else  # Polygons intersect, but neither is contained in the other
         n_a_holes = GI.nhole(poly_a)
         ext_poly_a = GI.Polygon(StaticArrays.SVector(GI.getexterior(poly_a)))
@@ -126,7 +132,7 @@
         curr_exterior_poly = n_a_holes > 0 ? ext_poly_b : ext_poly_a
         current_poly = n_a_holes > 0 ? ext_poly_b : poly_a

Loop over all holes in both original polygons

julia
        for (i, ih) in enumerate(Iterators.flatten((GI.gethole(poly_a), GI.gethole(poly_b))))
             ih = _linearring(ih)
-            in_ext, _, _ = _line_polygon_interactions(ih, curr_exterior_poly; exact, closed_line = true)
+            in_ext, _, _ = _line_polygon_interactions(#=TODO: alg.manifold=# ih, curr_exterior_poly; exact, closed_line = true)
             if !in_ext
                 #= if the hole isn't in the overlapping region between the two polygons, add
                 the hole to the resulting polygon as we know it can't interact with any
@@ -139,7 +145,7 @@
                 between poly_a and poly_b within the overlap are added, in addition to all
                 holes in non-overlapping regions =#
                 h_poly = GI.Polygon(StaticArrays.SVector(ih))
-                new_holes = difference(h_poly, current_poly; target = GI.PolygonTrait())
+                new_holes = difference(alg, h_poly, current_poly; target = GI.PolygonTrait())
                 append!(polys[1].geom, (GI.getexterior(new_h) for new_h in new_holes))
             end
             if i == n_a_holes
@@ -154,12 +160,12 @@
 #= Add holes holes to the union of two polygons where one of the original polygons was
 inside of the other. If adding the the holes reveal that the polygons aren't actually
 intersecting, return the original polygons.=#
-function _add_union_holes_contained_polys!(polys, interior_poly, exterior_poly; exact)
+function _add_union_holes_contained_polys!(alg::FosterHormannClipping, polys, interior_poly, exterior_poly; exact)
     union_poly = polys[1]
     ext_int_ring = GI.getexterior(interior_poly)
     for (i, ih) in enumerate(GI.gethole(exterior_poly))
         poly_ih = GI.Polygon(StaticArrays.SVector(ih))
-        in_ih, on_ih, out_ih = _line_polygon_interactions(ext_int_ring, poly_ih; exact, closed_line = true)
+        in_ih, on_ih, out_ih = _line_polygon_interactions(#=TODO: alg.manifold=# ext_int_ring, poly_ih; exact, closed_line = true)
         if in_ih  # at least part of interior polygon exterior is within the ith hole
             if !on_ih && !out_ih
                 #= interior polygon is completely within the ith hole - polygons aren't
@@ -170,7 +176,7 @@
             else
                 #= interior polygon is partially within the ith hole - area of interior
                 polygon reduces the size of the hole =#
-                new_holes = difference(poly_ih, interior_poly; target = GI.PolygonTrait())
+                new_holes = difference(alg, poly_ih, interior_poly; target = GI.PolygonTrait())
                 append!(union_poly.geom, (GI.getexterior(new_h) for new_h in new_holes))
             end
         else  # none of interior polygon exterior is within the ith hole
@@ -184,14 +190,14 @@
                 #= interior polygon's exterior is outside of the ith hole - the interior
                 polygon could either be disjoint from the hole, or contain the hole =#
                 ext_int_poly = GI.Polygon(StaticArrays.SVector(ext_int_ring))
-                in_int, _, _ = _line_polygon_interactions(ih, ext_int_poly; exact, closed_line = true)
+                in_int, _, _ = _line_polygon_interactions(#=TODO: alg.manifold=# ih, ext_int_poly; exact, closed_line = true)
                 if in_int
                     #= interior polygon contains the hole - overlapping holes between the
                     interior and exterior polygons will be added =#
                     for jh in GI.gethole(interior_poly)
                         poly_jh = GI.Polygon(StaticArrays.SVector(jh))
                         if intersects(poly_ih, poly_jh)
-                            new_holes = intersection(poly_ih, poly_jh; target = GI.PolygonTrait())
+                            new_holes = intersection(#=TODO: alg, =#poly_ih, poly_jh; target = GI.PolygonTrait())
                             append!(union_poly.geom, (GI.getexterior(new_h) for new_h in new_holes))
                         end
                     end
@@ -211,7 +217,7 @@
 with `fix_multipoly = nothing`, `multipolygon_b` will be validated using the given (default
 is `UnionIntersectingPolygons()`) correction. =#
 function _union(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.PolygonTrait, poly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -221,7 +227,7 @@
     end
     polys = [tuples(poly_a, T)]
     for poly_b in GI.getpolygon(multipoly_b)
-        if intersects(polys[1], poly_b)

If polygons intersect and form a new polygon, swap out polygon

julia
            new_polys = union(polys[1], poly_b; target)
+        if intersects(#=TODO: alg.manifold, =#polys[1], poly_b)

If polygons intersect and form a new polygon, swap out polygon

julia
            new_polys = union(alg, polys[1], poly_b; target)
             if length(new_polys) > 1 # case where they intersect by just one point
                 push!(polys, tuples(poly_b, T))  # add poly_b to list
             else
@@ -236,18 +242,18 @@
 #= Multipolygon with polygon union is equivalent to taking the union of the polygon with the
 multipolygon and thus simply switches the order of operations and calls the above method. =#
 _union(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.PolygonTrait, poly_b;
     kwargs...,
-) where T = union(poly_b, multipoly_a; target, kwargs...)
+) where T = union(alg, poly_b, multipoly_a; target, kwargs...)
 
 #= Multipolygon with multipolygon union - note that all of the sub-polygons of `multipoly_a`
 and the sub-polygons of `multipoly_b` are included and combined together where there are
 intersections. Unless specified with `fix_multipoly = nothing`, `multipolygon_b` will be
 validated using the given (default is `UnionIntersectingPolygons()`) correction. =#
 function _union(
-    target::TraitTarget{GI.PolygonTrait}, ::Type{T},
+    alg::FosterHormannClipping, target::TraitTarget{GI.PolygonTrait}, ::Type{T},
     ::GI.MultiPolygonTrait, multipoly_a,
     ::GI.MultiPolygonTrait, multipoly_b;
     fix_multipoly = UnionIntersectingPolygons(), kwargs...,
@@ -259,12 +265,53 @@
     multipolys = multipoly_b
     local polys
     for poly_a in GI.getpolygon(multipoly_a)
-        polys = union(poly_a, multipolys; target, fix_multipoly)
+        polys = union(alg, poly_a, multipolys; target, fix_multipoly)
         multipolys = GI.MultiPolygon(polys)
     end
     return polys
+end
+
+function _union(
+    alg::FosterHormannClipping, target::TraitTarget{GI.MultiPolygonTrait}, ::Type{T},
+    ::GI.PolygonTrait, poly_a,
+    ::GI.PolygonTrait, poly_b;
+    kwargs...,
+) where T
+    return UnionIntersectingPolygons(#=TODO: alg.manifold=#)(GI.MultiPolygon([poly_a, poly_b]))
+end
+
+function _union(
+    alg::FosterHormannClipping, target::TraitTarget{GI.MultiPolygonTrait}, ::Type{T},
+    ::GI.PolygonTrait, poly_a,
+    ::GI.MultiPolygonTrait, multipoly_b;
+    fix_multipoly = UnionIntersectingPolygons(),
+    kwargs...,
+) where T
+    res = union(alg, multipoly_b, poly_a; target = GI.PolygonTrait(), kwargs...)
+    if !isnothing(fix_multipoly)
+        return fix_multipoly(GI.MultiPolygon(res))
+    else
+        return GI.MultiPolygon(res)
+    end
+end

this is the opposite of the above

julia
function _union(
+    alg::FosterHormannClipping, target::TraitTarget{GI.MultiPolygonTrait}, ::Type{T},
+    ::GI.MultiPolygonTrait, multipoly_a,
+    ::GI.PolygonTrait, poly_b;
+    fix_multipoly = UnionIntersectingPolygons(),
+    kwargs...,
+) where T
+    union(alg, poly_b, multipoly_a; target, fix_multipoly, kwargs...)
+end
+
+function _union(
+    alg::FosterHormannClipping, target::TraitTarget{GI.MultiPolygonTrait}, ::Type{T},
+    trait_a::GI.MultiPolygonTrait, multipoly_a,
+    trait_b::GI.MultiPolygonTrait, multipoly_b;
+    fix_multipoly = UnionIntersectingPolygons(), kwargs...,
+) where T
+    return GI.MultiPolygon(_union(alg, TraitTarget{GI.PolygonTrait}(), T, trait_a, multipoly_a, trait_b, multipoly_b; fix_multipoly, kwargs...))
 end

Many type and target combos aren't implemented

julia
function _union(
-    ::TraitTarget{Target}, ::Type{T},
+    alg::GeometryOpsCore.Algorithm, target::TraitTarget{Target}, ::Type{T},
     trait_a::GI.AbstractTrait, geom_a,
     trait_b::GI.AbstractTrait, geom_b;
     kwargs...
@@ -272,7 +319,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/PR259/source/methods/convex_hull.html b/previews/PR259/source/methods/convex_hull.html index 5521c61cd..4b1eef7fb 100644 --- a/previews/PR259/source/methods/convex_hull.html +++ b/previews/PR259/source/methods/convex_hull.html @@ -9,11 +9,11 @@ - + - + - + @@ -29,7 +29,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
 
@@ -37,7 +37,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)
@@ -48,7 +48,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`.
@@ -78,7 +78,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/PR259/source/methods/distance.html b/previews/PR259/source/methods/distance.html index 6700370a4..80c3948f7 100644 --- a/previews/PR259/source/methods/distance.html +++ b/previews/PR259/source/methods/distance.html @@ -9,11 +9,11 @@ - + - + - + @@ -32,13 +32,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
@@ -202,7 +202,7 @@
     end
     return min_dist
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/equals.html b/previews/PR259/source/methods/equals.html index 4c54cd585..baffd7764 100644 --- a/previews/PR259/source/methods/equals.html +++ b/previews/PR259/source/methods/equals.html @@ -9,11 +9,11 @@ - + - + - + @@ -32,7 +32,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.
@@ -286,7 +286,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/geom_relations/contains.html b/previews/PR259/source/methods/geom_relations/contains.html index 96643cd66..8d8a8d106 100644 --- a/previews/PR259/source/methods/geom_relations/contains.html +++ b/previews/PR259/source/methods/geom_relations/contains.html @@ -9,11 +9,11 @@ - + - + - + @@ -32,7 +32,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
 
@@ -54,7 +54,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/PR259/source/methods/geom_relations/coveredby.html b/previews/PR259/source/methods/geom_relations/coveredby.html index 25ec09106..80ccbc056 100644 --- a/previews/PR259/source/methods/geom_relations/coveredby.html +++ b/previews/PR259/source/methods/geom_relations/coveredby.html @@ -9,11 +9,11 @@ - + - + - + @@ -30,7 +30,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,)
@@ -204,7 +204,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/geom_relations/covers.html b/previews/PR259/source/methods/geom_relations/covers.html index 45cd5417d..0c21398ab 100644 --- a/previews/PR259/source/methods/geom_relations/covers.html +++ b/previews/PR259/source/methods/geom_relations/covers.html @@ -9,11 +9,11 @@ - + - + - + @@ -32,7 +32,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
 
@@ -54,7 +54,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/PR259/source/methods/geom_relations/crosses.html b/previews/PR259/source/methods/geom_relations/crosses.html index 2427fd3ac..f26bd55ad 100644 --- a/previews/PR259/source/methods/geom_relations/crosses.html +++ b/previews/PR259/source/methods/geom_relations/crosses.html @@ -9,9 +9,9 @@ - + - + @@ -141,7 +141,7 @@ end return false end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/geom_relations/disjoint.html b/previews/PR259/source/methods/geom_relations/disjoint.html index 627ecea45..3d0112866 100644 --- a/previews/PR259/source/methods/geom_relations/disjoint.html +++ b/previews/PR259/source/methods/geom_relations/disjoint.html @@ -9,11 +9,11 @@ - + - + - + @@ -32,7 +32,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(),)
@@ -199,7 +199,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/geom_relations/geom_geom_processors.html b/previews/PR259/source/methods/geom_relations/geom_geom_processors.html index 20f4dbcc3..4c9cb1552 100644 --- a/previews/PR259/source/methods/geom_relations/geom_geom_processors.html +++ b/previews/PR259/source/methods/geom_relations/geom_geom_processors.html @@ -9,9 +9,9 @@ - + - + @@ -458,7 +458,7 @@ end return skip, returnval end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/geom_relations/intersects.html b/previews/PR259/source/methods/geom_relations/intersects.html index 175048f1c..f058f9629 100644 --- a/previews/PR259/source/methods/geom_relations/intersects.html +++ b/previews/PR259/source/methods/geom_relations/intersects.html @@ -9,11 +9,11 @@ - + - + - + @@ -30,7 +30,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.
@@ -48,7 +48,7 @@
 ```
 """
 intersects(geom1, geom2) = !disjoint(geom1, geom2)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/geom_relations/overlaps.html b/previews/PR259/source/methods/geom_relations/overlaps.html index 94fa57199..828e421a5 100644 --- a/previews/PR259/source/methods/geom_relations/overlaps.html +++ b/previews/PR259/source/methods/geom_relations/overlaps.html @@ -9,11 +9,11 @@ - + - + - + @@ -32,7 +32,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
"""
+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
"""
     overlaps(geom1, geom2)::Bool
 
 Compare two Geometries of the same dimension and return true if their
@@ -233,7 +233,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/PR259/source/methods/geom_relations/touches.html b/previews/PR259/source/methods/geom_relations/touches.html index 74619be74..d33e1cfa6 100644 --- a/previews/PR259/source/methods/geom_relations/touches.html +++ b/previews/PR259/source/methods/geom_relations/touches.html @@ -9,11 +9,11 @@ - + - + - + @@ -31,7 +31,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)
@@ -195,7 +195,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/geom_relations/within.html b/previews/PR259/source/methods/geom_relations/within.html index c09192be3..6cea7cd2d 100644 --- a/previews/PR259/source/methods/geom_relations/within.html +++ b/previews/PR259/source/methods/geom_relations/within.html @@ -9,11 +9,11 @@ - + - + - + @@ -32,7 +32,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)
@@ -214,7 +214,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/methods/orientation.html b/previews/PR259/source/methods/orientation.html index 097e5e9ec..4db3e5fc7 100644 --- a/previews/PR259/source/methods/orientation.html +++ b/previews/PR259/source/methods/orientation.html @@ -9,9 +9,9 @@ - + - + @@ -121,7 +121,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/PR259/source/methods/polygonize.html b/previews/PR259/source/methods/polygonize.html index 9dedcd30a..4b4978027 100644 --- a/previews/PR259/source/methods/polygonize.html +++ b/previews/PR259/source/methods/polygonize.html @@ -9,9 +9,9 @@ - + - + @@ -311,7 +311,7 @@ end return edges end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/not_implemented_yet.html b/previews/PR259/source/not_implemented_yet.html index c077457a2..e6743e014 100644 --- a/previews/PR259/source/not_implemented_yet.html +++ b/previews/PR259/source/not_implemented_yet.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@
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/PR259/source/primitives.html b/previews/PR259/source/primitives.html index 9f92b869f..dd2ec8a00 100644 --- a/previews/PR259/source/primitives.html +++ b/previews/PR259/source/primitives.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@
Skip to content
- + \ No newline at end of file diff --git a/previews/PR259/source/src/GeometryOpsCore.html b/previews/PR259/source/src/GeometryOpsCore.html index 9dc0f218e..7eaf573ab 100644 --- a/previews/PR259/source/src/GeometryOpsCore.html +++ b/previews/PR259/source/src/GeometryOpsCore.html @@ -9,9 +9,9 @@ - + - + @@ -53,7 +53,7 @@ include("geometry_utils.jl") end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/src/apply.html b/previews/PR259/source/src/apply.html index 631809a08..b3402d34e 100644 --- a/previews/PR259/source/src/apply.html +++ b/previews/PR259/source/src/apply.html @@ -9,11 +9,11 @@ - + - + - + @@ -30,7 +30,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
@@ -174,7 +174,7 @@
         end
     end

Finally we join the results into a new vector

julia
    return mapreduce(fetch, vcat, tasks)
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/src/applyreduce.html b/previews/PR259/source/src/applyreduce.html index 43b4364f4..918a73eab 100644 --- a/previews/PR259/source/src/applyreduce.html +++ b/previews/PR259/source/src/applyreduce.html @@ -9,9 +9,9 @@ - + - + @@ -101,7 +101,7 @@ 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/PR259/source/src/geometry_utils.html b/previews/PR259/source/src/geometry_utils.html index 8ff09e0bd..588c40406 100644 --- a/previews/PR259/source/src/geometry_utils.html +++ b/previews/PR259/source/src/geometry_utils.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,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/PR259/source/src/keyword_docs.html b/previews/PR259/source/src/keyword_docs.html index 8745c3ef4..aa4cab513 100644 --- a/previews/PR259/source/src/keyword_docs.html +++ b/previews/PR259/source/src/keyword_docs.html @@ -9,9 +9,9 @@ - + - + @@ -30,7 +30,7 @@ $CRS_KEYWORD $CALC_EXTENT_KEYWORD """

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/src/other_primitives.html b/previews/PR259/source/src/other_primitives.html index 7fa0fafc1..b40559a2c 100644 --- a/previews/PR259/source/src/other_primitives.html +++ b/previews/PR259/source/src/other_primitives.html @@ -9,11 +9,11 @@ - + - + - + @@ -22,8 +22,8 @@
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)
 
@@ -138,7 +138,7 @@
 
     return T{hasZ,hasM}(child_geoms; crs, extent)
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/src/types/algorithm.html b/previews/PR259/source/src/types/algorithm.html index 7c7b953d1..1a82a0e4e 100644 --- a/previews/PR259/source/src/types/algorithm.html +++ b/previews/PR259/source/src/types/algorithm.html @@ -9,9 +9,9 @@ - + - + @@ -56,7 +56,7 @@ end MyIndependentAlgorithm(m::Manifold; kw1 = 1, kw2 = "hello") = MyIndependentAlgorithm(m, kw1, kw2)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/src/types/booltypes.html b/previews/PR259/source/src/types/booltypes.html index bd03634d4..2c90b4983 100644 --- a/previews/PR259/source/src/types/booltypes.html +++ b/previews/PR259/source/src/types/booltypes.html @@ -9,9 +9,9 @@ - + - + @@ -53,7 +53,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/PR259/source/src/types/exceptions.html b/previews/PR259/source/src/types/exceptions.html index 92269864f..a5f62333e 100644 --- a/previews/PR259/source/src/types/exceptions.html +++ b/previews/PR259/source/src/types/exceptions.html @@ -9,9 +9,9 @@ - + - + @@ -53,7 +53,7 @@ print(io, e.extra_text) end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/src/types/manifold.html b/previews/PR259/source/src/types/manifold.html index 609c32dcd..a4073c0d0 100644 --- a/previews/PR259/source/src/types/manifold.html +++ b/previews/PR259/source/src/types/manifold.html @@ -9,9 +9,9 @@ - + - + @@ -95,7 +95,7 @@ semiminor_axis::T inv_flattening::T end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/src/types/operation.html b/previews/PR259/source/src/types/operation.html index 6bfa6b578..d14143d01 100644 --- a/previews/PR259/source/src/types/operation.html +++ b/previews/PR259/source/src/types/operation.html @@ -9,9 +9,9 @@ - + - + @@ -35,7 +35,7 @@ function (op::Area{Alg})(data; threaded = _False(), init = 0.0) where {Alg <: Algorithm} return GO.area(op.alg, data; threaded, init) end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/src/types/traittarget.html b/previews/PR259/source/src/types/traittarget.html index d2f867e9f..7a1772137 100644 --- a/previews/PR259/source/src/types/traittarget.html +++ b/previews/PR259/source/src/types/traittarget.html @@ -9,9 +9,9 @@ - + - + @@ -48,7 +48,7 @@ Base.in(::Trait, ::TraitTarget{Target}) where {Trait <: GI.AbstractTrait, Target} = Trait <: Target

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/transformations/correction/closed_ring.html b/previews/PR259/source/transformations/correction/closed_ring.html index 695c2857c..f166cb29a 100644 --- a/previews/PR259/source/transformations/correction/closed_ring.html +++ b/previews/PR259/source/transformations/correction/closed_ring.html @@ -9,9 +9,9 @@ - + - + @@ -51,7 +51,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/PR259/source/transformations/correction/geometry_correction.html b/previews/PR259/source/transformations/correction/geometry_correction.html index 8ea8434bc..c57009933 100644 --- a/previews/PR259/source/transformations/correction/geometry_correction.html +++ b/previews/PR259/source/transformations/correction/geometry_correction.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,7 +21,7 @@ -
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.
@@ -51,8 +51,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/PR259/source/transformations/correction/intersecting_polygons.html b/previews/PR259/source/transformations/correction/intersecting_polygons.html index 71d017b72..0470e331a 100644 --- a/previews/PR259/source/transformations/correction/intersecting_polygons.html +++ b/previews/PR259/source/transformations/correction/intersecting_polygons.html @@ -9,11 +9,11 @@ - + - + - + @@ -23,8 +23,8 @@
Skip to content

Intersecting Polygons

julia
export UnionIntersectingPolygons

If the sub-polygons of a multipolygon are intersecting, this makes them invalid according to specification. Each sub-polygon of a multipolygon being disjoint (other than by a single point) is a requirement for a valid multipolygon. However, different libraries may achieve this in different ways.

For example, taking the union of all sub-polygons of a multipolygon will create a new multipolygon where each sub-polygon is disjoint. This can be done with the UnionIntersectingPolygons correction.

The reason this operates on a multipolygon level is that it is easy for users to mistakenly create multipolygon's that overlap, which can then be detrimental to polygon clipping performance and even create wrong answers.

Example

Multipolygon providers may not check that the polygons making up their multipolygons do not intersect, which makes them invalid according to the specification.

For example, the following multipolygon is not valid:

julia
import GeoInterface as GI
 polygon = GI.Polygon([[(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)]])
-multipolygon = GI.MultiPolygon([polygon, polygon])
GeoInterface.Wrappers.MultiPolygon{false, false}([GeoInterface.Wrappers.Polygon([GeoInterface.Wrappers.LinearRing([(0.0, 0.0), … (3) … , (0.0, 0.0)])]), GeoInterface.Wrappers.Polygon([GeoInterface.Wrappers.LinearRing([(0.0, 0.0), … (3) … , (0.0, 0.0)])])])

given that the two sub-polygons are the exact same shape.

julia
import GeometryOps as GO
-GO.fix(multipolygon, corrections = [GO.UnionIntersectingPolygons()])
GeoInterface.Wrappers.MultiPolygon{false, false}([GeoInterface.Wrappers.Polygon([GeoInterface.Wrappers.LinearRing([(0.0, 0.0), … (3) … , (0.0, 0.0)])])])

You can see that the the multipolygon now only contains one sub-polygon, rather than the two identical ones provided.

Implementation

julia
"""
+multipolygon = GI.MultiPolygon([polygon, polygon])
GeoInterface.Wrappers.MultiPolygon{false, false}([GeoInterface.Wrappers.Polygon([GeoInterface.Wrappers.LinearRing([(0.0, 0.0), … (3) … , (0.0, 0.0)])]), GeoInterface.Wrappers.Polygon([GeoInterface.Wrappers.LinearRing([(0.0, 0.0), … (3) … , (0.0, 0.0)])])])

given that the two sub-polygons are the exact same shape.

@example
import GeometryOps as GO
+GO.fix(multipolygon, corrections = [GO.UnionIntersectingPolygons()])

You can see that the the multipolygon now only contains one sub-polygon, rather than the two identical ones provided.

Implementation

julia
"""
     UnionIntersectingPolygons() <: GeometryCorrection
 
 This correction ensures that the polygon's included in a multipolygon aren't intersecting.
@@ -118,7 +118,7 @@
     end
     return diff_multipoly
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/transformations/extent.html b/previews/PR259/source/transformations/extent.html index d3e91ced7..b29199909 100644 --- a/previews/PR259/source/transformations/extent.html +++ b/previews/PR259/source/transformations/extent.html @@ -9,9 +9,9 @@ - + - + @@ -34,7 +34,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/PR259/source/transformations/flip.html b/previews/PR259/source/transformations/flip.html index eb777e080..3fcc4c6aa 100644 --- a/previews/PR259/source/transformations/flip.html +++ b/previews/PR259/source/transformations/flip.html @@ -9,9 +9,9 @@ - + - + @@ -43,7 +43,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/transformations/forcedims.html b/previews/PR259/source/transformations/forcedims.html index 5e686f9c6..5e492c34a 100644 --- a/previews/PR259/source/transformations/forcedims.html +++ b/previews/PR259/source/transformations/forcedims.html @@ -9,9 +9,9 @@ - + - + @@ -49,7 +49,7 @@ (x, y, z) end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/transformations/reproject.html b/previews/PR259/source/transformations/reproject.html index 90f5f8068..2f20c9e64 100644 --- a/previews/PR259/source/transformations/reproject.html +++ b/previews/PR259/source/transformations/reproject.html @@ -9,9 +9,9 @@ - + - + @@ -62,7 +62,7 @@ nothing end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/transformations/segmentize.html b/previews/PR259/source/transformations/segmentize.html index e2f99823c..4f96959af 100644 --- a/previews/PR259/source/transformations/segmentize.html +++ b/previews/PR259/source/transformations/segmentize.html @@ -9,11 +9,11 @@ - + - + - + @@ -42,7 +42,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
@@ -80,7 +80,7 @@
 
 end
 
-plot_trials(segmentize_suite)

julia
abstract type SegmentizeMethod end
+plot_trials(segmentize_suite)

julia
abstract type SegmentizeMethod end
 """
     LinearSegments(; max_distance::Real)
 
@@ -182,7 +182,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/PR259/source/transformations/simplify.html b/previews/PR259/source/transformations/simplify.html index 64257183f..6e3717946 100644 --- a/previews/PR259/source/transformations/simplify.html +++ b/previews/PR259/source/transformations/simplify.html @@ -9,11 +9,11 @@ - + - + - + @@ -32,7 +32,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
@@ -45,7 +45,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"))
@@ -59,7 +59,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)
@@ -78,7 +78,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
@@ -511,7 +511,7 @@
     end
     return nothing
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/transformations/transform.html b/previews/PR259/source/transformations/transform.html index 6db7f5397..e2f54a345 100644 --- a/previews/PR259/source/transformations/transform.html +++ b/previews/PR259/source/transformations/transform.html @@ -9,9 +9,9 @@ - + - + @@ -76,7 +76,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/transformations/tuples.html b/previews/PR259/source/transformations/tuples.html index fa397ee90..11ed657ff 100644 --- a/previews/PR259/source/transformations/tuples.html +++ b/previews/PR259/source/transformations/tuples.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/PR259/source/types.html b/previews/PR259/source/types.html index 3fbe1abc2..2935a0c7a 100644 --- a/previews/PR259/source/types.html +++ b/previews/PR259/source/types.html @@ -9,9 +9,9 @@ - + - + @@ -59,7 +59,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/PR259/source/utils/LoopStateMachine.html b/previews/PR259/source/utils/LoopStateMachine.html index 18067e2f4..04c8f2809 100644 --- a/previews/PR259/source/utils/LoopStateMachine.html +++ b/previews/PR259/source/utils/LoopStateMachine.html @@ -9,9 +9,9 @@ - + - + @@ -95,7 +95,7 @@ end end end

You can define more actions as you desire.

julia
end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/utils/STRDualQuery.html b/previews/PR259/source/utils/STRDualQuery.html index f5c455df8..0e4ee6897 100644 --- a/previews/PR259/source/utils/STRDualQuery.html +++ b/previews/PR259/source/utils/STRDualQuery.html @@ -9,11 +9,11 @@ - + - + - + @@ -38,8 +38,6 @@ import GeoInterface as GI "helper function to get the extent of any STR node, since leaf nodes don't store global extent." -node_extent(node::STRNode) = node.extent -node_extent(node::STRLeafNode) = reduce(Extents.union, node.extents) """ maybe_overlapping_geoms_and_query_lists_in_order(tree_a::STRtree, tree_b::STRtree, edges_a::Vector{<: GI.Line}, edges_b::Vector{<: GI.Line}) @@ -80,7 +78,7 @@ node_b::Union{STRNode,STRLeafNode}, edges_a::Vector{<: GI.Line}, edges_b::Vector{<: GI.Line} -)

Early exit if bounding boxes don't overlap

julia
    if !Extents.intersects(node_extent(node_a), node_extent(node_b))
+)

Early exit if bounding boxes don't overlap

julia
    if !Extents.intersects(GI.extent(node_a), GI.extent(node_b))
         return
     end

Case 1: Both nodes are leaves

julia
    if node_a isa STRLeafNode && node_b isa STRLeafNode
         for idx_a in node_a.indices
@@ -181,7 +179,7 @@
     result3 = maybe_overlapping_geoms_and_query_lists_in_order(empty_tree, empty_tree)
     @test isempty(result3)
 end

end


This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/source/utils/utils.html b/previews/PR259/source/utils/utils.html index 585646bc1..33a9cb5ab 100644 --- a/previews/PR259/source/utils/utils.html +++ b/previews/PR259/source/utils/utils.html @@ -9,9 +9,9 @@ - + - + @@ -185,7 +185,7 @@ e = GI.extent(l) return GI.Line(l.geom; extent=e) end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/previews/PR259/tutorials/creating_geometry.html b/previews/PR259/tutorials/creating_geometry.html index d19e0ab03..324958bda 100644 --- a/previews/PR259/tutorials/creating_geometry.html +++ b/previews/PR259/tutorials/creating_geometry.html @@ -9,11 +9,11 @@ - + - + - + @@ -31,37 +31,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)
Point{false, false}((0, 0))

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)
Point{false, false}((0, 0))

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}([Point((20.0, 0.0)), … (627) … , Point((20.001115954499138, -1.4219350464667047e-5))])

Now, let's make the LinearRing into a Polygon.

julia
polygon1 = GI.Polygon([ring1]);
GeoInterface.Wrappers.Polygon{false, false}([GeoInterface.Wrappers.LinearRing([Point((20.0, 0.0)), … (627) … , Point((20.001115954499138, -1.4219350464667047e-5))])])

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}([Point((20.0, 0.0)), … (627) … , Point((20.001115954499138, -1.4219350464667047e-5))])

Now, let's make the LinearRing into a Polygon.

julia
polygon1 = GI.Polygon([ring1]);
GeoInterface.Wrappers.Polygon{false, false}([GeoInterface.Wrappers.LinearRing([Point((20.0, 0.0)), … (627) … , Point((20.001115954499138, -1.4219350464667047e-5))])])

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}([GeoInterface.Wrappers.LinearRing([Point((20.0, 0.0)), … (627) … , Point((20.001115954499138, -1.4219350464667047e-5))]), GeoInterface.Wrappers.LinearRing([Point((-5, -5)), … (2) … , Point((5, -5))])])

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)));
@@ -71,7 +71,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)
EPSG: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/Sd1xa/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)
EPSG: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/Sd1xa/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,
@@ -79,8 +79,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)
EPSG: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)
EPSG: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}:
@@ -90,7 +90,7 @@
 
  5.0e6
  5.0e6

Now create a LinearRing from Points

julia
ring3 = GI.LinearRing(Point.(zip(x, y)))
GeoInterface.Wrappers.LinearRing{false, false}([[1.5e6, 5.0e6], … (627) … , [1.499984780817334e6, 4.999999967681458e6]])

Now create a Polygon from the LineRing

julia
polygon3 = GI.Polygon([ring3])
GeoInterface.Wrappers.Polygon{false, false}([GeoInterface.Wrappers.LinearRing([[1.5e6, 5.0e6], … (627) … , [1.499984780817334e6, 4.999999967681458e6]])])

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) .* ϴ);
@@ -110,7 +110,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/PR259/tutorials/geodesic_paths.html b/previews/PR259/tutorials/geodesic_paths.html index 80895222b..a6b8ee94a 100644 --- a/previews/PR259/tutorials/geodesic_paths.html +++ b/previews/PR259/tutorials/geodesic_paths.html @@ -9,11 +9,11 @@ - + - + - + @@ -31,8 +31,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/PR259/tutorials/spatial_joins.html b/previews/PR259/tutorials/spatial_joins.html index 5b7ba1c50..eb3f60074 100644 --- a/previews/PR259/tutorials/spatial_joins.html +++ b/previews/PR259/tutorials/spatial_joins.html @@ -9,11 +9,11 @@ - + - + - + @@ -41,14 +41,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
@@ -73,7 +73,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